Program Control: Repetition
Looping/ Pengulangan merupakan satu / beberapa instruksi yang diulang terus menerus dalam suatu waktu tertentu / sampai syarat untuk berhenti terpenuhi.
Dalam bahasa pemrograman C, terdapat 3 jenis looping / pengulangan:
1. Looping For:
for(A; B; C) statement;
atau
for(A; B; C)
{
statement1;
statement2;
...
}
Dimana contoh yang pertama digunakan untuk menjalankan 1 buah perintah / statement saja, sedangkan statement kedua digunakan untuk menjalankan beberapa perintah sekaligus.
Keterangan:
A= Initialization (Dimana suatu variabel diberi nilai awal)
B= Condition (Diberikan sautu syarat supaya looping dapat berhenti / dimana looping berhenti)
C= Counter (Dimana suatu variabel diberi nilai operasi matematika (+ / - / * / / ) agar looping dapat memenuhi condition (Kondisi) supaya berhenti
Tips: Bagian a dan c dalam suatu looping dapat berisi lebih dari 1 ekspresi, dipisahkan dengan tanda koma (,).
Contoh looping menggunakan for:
for( i = 1, j = 8; i <= j; i++, j--)
{
printf("Test looping");
}
Keterangan:
Dalam looping for, hal yang pertama kali dijalankan adalah bagian A (Initialization), dilanjutkan dengan B (Condition), lalu bagian statement (Dimana program akan print kata "Test looping") dan diakhiri dengan bagian C (Counter).
Dalam looping for, terdapat 2 looping turunan yang dapat dibuat:
- Infinite loop:
Looping dimana pengulangan yang terjadi tidak terbatas. Looping ini dapat dibuat dengan tidak menggunakan seluruh ekspresi (Initialization, Condition, Counter). Looping dapat dihentikan dengan menggunakan break.
Contoh:
for(;;)
{
printf("Infinite");
}
- Nested loop:
Loop di dalam loop / loop bertingkat, program akan dijalankan dari loop bagian dalam.
Contoh:
for(i = 1; i <= 5; i++)
{
for(j = 1; j <= 3; j++)
{
printf("Nested");
}
}
2. Looping While:
while(Condition) statement; (Counter);
atau
while(Condition)
{
statement1;
statement2;
(Counter);
...
}
Dimana contoh yang pertama digunakan untuk menjalankan 1 buah perintah / statement saja, sedangkan statement kedua digunakan untuk menjalankan beberapa perintah sekaligus.
Contoh looping menggunakan while:
int i = 1
while(i <= 10)
{
printf("While");
i++;
}
Keterangan:
Yang pertama kali dibaca oleh program adalah deklarasi i = 1 yang merupakan Initialization, dilanjutkan dengan pengecekan Condition (i <= 10), menjalankan printf("While"), dan diakhiri dengan Counter i++.
3. Looping Do - While:
do
{
statement1;
statement2;
(Counter);
...
while(Condition);
}
Contoh looping menggunakan do-while:
int i = 1
do
{
printf("Do-While");
i++;
}
while(i <= 10);
Keterangan:
Yang pertama kali dibaca oleh program adalah deklarasi i = 1 yang merupakan Initialization, dilanjutkan dengan menjalankan printf("While"), menjalankan Counter i++, dan diakhiri dengan pengecekan Condition (i <= 10).
Dari sini, kita dapat mengetahui bahwa dalam looping do-while, suatu proses akan dijalankan minimal 1x karena proses dijalankan terlebih dahulu sebelum pengecekan, maka dari itu, dalam looping do-while, proses akan selalu kelebihan 1x.
Terdapat 2 cara untuk mengakhiri looping:
1. Question
Looping akan berhenti bila kita memasukan perintah berhenti.
Contoh:
printf("Apakah mau melanjutkan? (Y/N): \n");
scanf("%c", lanjut);
while(lanjut == 'Y')
{
printf("Question");
printf("Apakah mau melanjutkan? (Y/N): \n");
scanf("%c", lanjut);
}
Keterangan: Dapat kita lihat bahwa looping akan terus berjalan bila kita memasukan huruf Y dan akan berhenti bila kita memasukan huruf selain Y.
2. Sentinel
Looping akan berhenti bila kita memasukan angka 0.
Contoh:
do
{
printf(” Masukan lebar : ”);
scanf(”%d”, &lebar);
printf(” Masukan tinggi: ”);
scanf(”%d”, &tinggi);
area = lebar * tinggi;
printf(” Area = %d\n”, area);
}
while((lebar != 0) && (tinggi != 0));
Keterangan: Dapat kita lihat bahwa looping akan terus berjalan bila kita memasukan angka selain 0 kedalam lebar dan tinggi.
Terdapat 2 cara untuk menghentikan suatu loop secara paksa:
1. Break
Break akan menghentikan seluruh proses loop ketika kondisi memenuhi.
Contoh:
int i
for(i = 1; i <= 8; i++)
{
if (i == 4) break;
printf("%d", i);
}
Maka output yang dikeluarkan adalah: 1 2 3
Hal ini terjadi karena setelah kondisi break memenuhi (i = 4), maka seluruh proses looping segera dihentikan.
1. Continue
Continue akan menghentikan proses loop yang sedang dikerjakan saat itu ketika kondisi memenuhi.
Contoh:
int i
for(i = 1; i <= 8; i++)
{
if (i == 4) continue;
printf("%d", i);
}
Maka output yang dikeluarkan adalah: 1 2 3 5 6 7 8
Hal ini terjadi karena setelah kondisi continue memenuhi (i = 4), maka proses looping yang terjadi pada saat itu juga dihentikan, dan dilanjutkan ke proses looping selanjutnya.