Sunday, October 21, 2018

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:
  • for
  • while
  • do - while
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:
  • Question
  • Sentinel
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:
  • Break
  • Continue

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.

No comments:

Post a Comment