Perulangan DO WHILE yang akan kita pelajari kali ini dalam banyak hal mirip seperti perulangan WHILE sebelumnya, namun dengan 1 kunci perbedaan. Apa itu? dalam lanjutan tutorial bahasa pemrograman C di Duniailkom kali ini kita akan bahas dengan lebih detail.
Pengertian Struktur Perulangan DO WHILE Bahasa C
Perulangan DO WHILE merupakan modifikasi dari perulangan WHILE, yakni dengan memindahkan posisi pemeriksaan kondisi ke akhir perulangan. Artinya, kita akan lakukan dulu sebuah perulangan, baru di akhir diperiksa apakah kondisi variabel counter sudah terpenuhi atau belum.
Berikut format dasar struktur perulangan DO WHILE dalam bahasa C:
start; do { // kode program // kode program increment; } while (condition)
Sama seperti perulangan WHILE, di bagian start biasanya terdapat perintah inisialisasi variabel counter, misalnya i = 0. Kemudian di dalam block do ditulis kode program yang akan di ulang, tidak lupa sebuah perintah untuk menaikkan nilai variabel counter, misalnya dengan perintah i++.
Di bagian paling bawah, terdapat perintah while (condition). Di sinilah kondisi perulangan akan diperiksa. Selama kondisi ini menghasilkan nilai true, maka perulangan akan lanjut ke iterasi berikutnya.
Contoh Kode Program Perulangan Do While Bahasa C
Agar bisa dibandingkan dengan bahasan di perulangan FOR dan WHILE, berikut contoh kode program bahasa C untuk menampilkan 5 kali teks 'Hello World' menggunakan perulangan DO WHILE:
#include <stdio.h> int main(void) { int i = 1; do { printf("Hello World \n"); i++; } while (i <= 5); return 0; }
Hasil kode program:
Hello World Hello World Hello World Hello World Hello World
Di baris 5 saya mendefinisikan variabel counter i dan memberikan nilai awal 1.
Kemudian terdapat block kode program do di baris 6 – 9. Inilah kode program yang akan di ulang, yakni berisi sebuah perintah printf untuk menampilkan teks 'Hello World', dan sebuah perintah increment i++ untuk menaikkan nilai variabel i sebanyak 1 angka.
Terakhir di baris 10 terdapat perintah while (i <= 5). Artinya, selama variabel counter i bernilai kurang dari atau sama dengan 5, jalankan kembali perulangan.
Dalam perulangan DO WHILE ini kita juga bisa mengakses variabel counter, seperti contoh berikut:
#include <stdio.h> int main(void) { int i = 1; do { printf("%i ",i*3); i++; } while (i <= 5); return 0; }
Tanpa menjalankan kode program ini, bisakah anda menebak hasil yang tampil?
Yup, ini adalah kode program untuk membuat sebuah deret dengan kelipatan 3:
3 6 9 12 15
Kunci penting yang membedakan perulangan DO WHILE dengan perulangan WHILE adalah posisi pemeriksaan kondisi. Karena dalam perulangan DO WHILE pemeriksaan kondisi di lakukan di akhir, maka perulangan akan selalu di jalankan minimal 1 kali, meskipun syarat perulangan sudah tidak dipenuhi.
Berikut contoh kasusnya:
#include <stdio.h> int main(void) { int i = 10; do { printf("%i ",i*3); i++; } while (i <= 5); return 0; }
Hasil kode program: 30.
Di baris 5 saya mengisi angka 10 ke dalam variabel counter i. Namun syarat kondisi adalah while (i <= 5). Apakah i <=5 ? tidak (false). Namun meskipun kondisi ini tidak dipenuhi, perulangan akan tetap dijalankan 1 kali.
Jika kondisi yang sama dibuat menggunakan WHILE, perulangan tidak akan pernah dijalankan karena kondisi di periksa di awal. Inilah yang jadi perbedaan antara perulangan WHILE dan DO WHILE dalam bahasa C.
Dalam tutorial ini kita telah membahas tentang prinsip kerja dari perulangan DO WHILE dalam bahasa C. Berikutnya akan disambung dengan tutorial tentang penggunakan perintah break dalam perulangan.
Asalamulaikm.wr.wb…
sangat bermanfaat, terimakasih.
ada tutorial yg tidak dapat dijalankan, kalau tidak salah ke 23.
saya berharap dapat dilanjutkan dengan bahasa c++.
semoga ilmu dan amalnya barokah ya.
Waalaikumsalam… Aamiin,
Siap, requestnya di tampung. Untuk tutorial yang g jalan di bagian mananya ya?
#include <stdio.h>
#include <string.h>
int main()
{
char strref[41], str1[41], end1[4]="END", end2[4]="end";
int sesuai, i, strhasil, strend1, strend2;
printf(">Masukkan karakter string referensi (maks. 40 karakter):\n>");
scanf("%s", strref);
printf(">Masukkan karakter string (maks. 40 karakter):\n");
printf(">Masukkan END atau end untuk keluar.\n");
do
{
printf(">");
scanf("%s", i);
strhasil=strcmp(strref, str1);
strend1=strcmp(end1, str1);
strend2=strcmp(end2, str1);
if (strhasil==0)
{
i=0;
sesuai=sesuai<=0;
printf("Sesuai %d kali.\n", sesuai);
++i;
}
else if (strend1==0 || strend2==0)
{
printf("Selesai.");
break;
}
else
{
printf("Input error!\n");
i=0;
}
} while (i=0);
return;
}
mau nanya min..kenapa ketika program dijalankan..
hasilnya dimulai dari 11 ya?..
bukan dari 1
terimakasih gan, sangan bermanfaat sekali…., saya pantengin terus ini webb
min mau tanya dong cara biar program yg kita buat dapat mengulang lgi gmn ya
#include <stdio.h>
int main()
{
int panjang, lebar, tinggi, luas, volume;
printf("masukan panjang : ");
scanf("%d", &panjang);
printf("masukan lebar : ");
scanf("%d", &lebar);
printf("masukan tinggi : ");
scanf("%d", &tinggi);
volume = panjang * lebar * tinggi;
luas = panjang * lebar;
printf("volume persegi panjang adalah %d\n", volume);
printf("luas persegi panjang adalah %d\n", luas);
return 0;
}
nahh mksd saya biar kita dapat menhitung ulang (memasukan kembali nilai panjang,dll dari nol kembali)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int panjang, lebar, tinggi, luas, volume;
char ulangi;
do{
system("cls");
printf("masukan panjang : ");
scanf("%d", &panjang);
printf("masukan lebar : ");
scanf("%d", &lebar);
printf("masukan tinggi : ");
scanf("%d", &tinggi);
volume = panjang * lebar * tinggi;
luas = panjang * lebar;
printf("volume persegi panjang adalah %d\n", volume);
printf("luas persegi panjang adalah %d\n", luas);
//pilihan kembali ke menu atau tidak
printf("\n\n—————————–\n\n");
printf("Kembali ke Menu Utama (Y/T)? : ");
scanf("%s", &ulangi);
printf("\n");
}
while(ulangi=='Y'||ulangi=='y');
printf("\n****** Terima Kasih ******\n");
return 0;
}
Terima kasih bang sungguh bermanfaat
sudah saya benerin ya mas, mampir2 lah ke website saya @samudra
#include
typedef struct student {
unsigned int nim;
char nama[100];
char c;
} stdt;
void input(struct student *ST){
printf("Nim :");
scanf("%d" , &ST->nim);
printf("Nama: ");
scanf("%*c%[^\n]%*c", ST->nama);
printf("Nim :%d\tNAMA : %s \n", ST->nim, ST->nama);
}
int main(void){
stdt *ST;
stdt SN;
ST = &SN;
do{
input(ST);
printf("\n Masukkan pilihan Y or T? :");
scanf("%s",&ST->c);
}
while(ST->c == 'y');
return 0;
}
cara biar paas input T ,dia bakal nampilin nim nim nama nama yg udh dimasukin td gmn bg ?
Thanksss
#include
typedef struct student {
unsigned int nim;
char nama[100];
char c;
} stdt;
void input(struct student *ST){
printf("Nim :");
scanf("%d" , &ST->nim);
printf("Nama: ");
scanf("%*c%[^\n]%*c", ST->nama);
printf("Nim :%d\tNAMA : %s \n", ST->nim, ST->nama);
}
int main(void){
stdt *ST;
stdt SN;
ST = &SN;
do{
input(ST);
printf("\n Masukkan pilihan Y or T? :");
scanf("%s",&ST->c);
}
while(ST->c == 'y');
return 0;
}
cara biar paas input T ,dia bakal nampilin nim nama yg udh dimasukin td gmn bg ?
Thanksss
Bang, mau nanya klo mau but program perkalian 5 pake while do
Tampilannya:
1×5 = 5
2×5 =10
Dst, sampe 10×5
Gimana yah bang?