Program Control Repetition - Penggunaan For, While, Do-While

Repetisi merupakan hal yang paling umum dalam dunia pemograman. Namun, bagi yang masih baru dalam hal programming pasti belum mengetahui dengan jelas, apa itu repetisi?

Dalam artikel ini, saya akan menjelaskan repetisi secara dasar saja dan jenis-jenis yang ada pada repetisi. Jadi..

Apa itu Repetisi?

Repetisi atau yang biasa disebut dengan perulangan merupakan sebuah/sekumpulan perintah yang diulang untuk jumlah tertentu.

Untuk menentukan jumlah repetisi yang diinginkan, kita harus memberikan kondisi tertentu pada bagian kondisi(akan dijelaskan dibawah) agar repetisi yang terjadi tidak terulang terus atau yang lebih dikenal dengan infinite loop.

Selain memberikan kondisi pada bagian kondisi, kita juga dapat memberikan kondisi di dalam statement repetisi(akan diberikan contoh dibawah).

Setelah mengetahui pengertian dari repetisi, kita akan melihat jenis-jenis dari repetisi yang ada. Umumnya, repetisi memiliki 3 jenis, yaitu:
  • Do-While
  • While
  • For
Masing-masing repetisi memiliki syntax yang berbeda-beda dan memiliki penggunaan yang berbeda juga. Untuk lebih jelasnya, kita lanjut ke masing-masing syntax repetisi.

Do-While

Syntax :
do{
    <statements>;
} while(kondisi);

Berdasarkan syntax diatas maka, statement yang ada pada perintah do akan tereksekusi terlebih dahulu, kemudian lanjut ke perintah while(kondisi). Jika kondisi yang ada di dalam while memenuhi atau bernilai true, maka perintah pada do akan dieksekusi lagi. 

Contoh 1.1:
#include<stdio.h>

int main(){
int a = 0;

do{

    printf("Ini Perulangan Do-While\n");
    a++;
} while(a<10);

return 0;
}

Output:
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While
Ini Perulangan Do-While

Berdasarkan syntax diatas, maka repetisi yang akan terjadi sebanyak 10 kali dan kata Ini Perulangan Do-While akan tercetak sebanyak 11 kali. Lah, kok bisa repetisi 10 kali, cetak katanya 11 kali? Karena, seperti yang telah saya katakan tadi, yang pertama dilakukan adalah mengeksekusi seluruh perintah yang ada di dalam do, kemudian melakukan pengecekan pada perintah while.

Begitu seterusnya hingga kondisi yang ada di dalam while tidak terpenuhi atau bernilai false atau kondisi yang ada dalam perintah do menghentikan repetisi (silahkan lihat contoh dibawah).

Contoh 1.2:
#include<stdio.h>


int main(){
int a = 0;
do{
    printf("%d ", a);
    if(a == 5)
        break;
    a++;
} while(true);
return 0;
}

Output:
0 1 2 3 4 5 6

Berdasarkan syntax diatas, maka repetisi yang akan terjadi sebanyak 6 kali dan akan mencetak 6 angka. Mengapa? Karena pada perintah do terdapat sebuah kondisi yang mengecek jika a == 5, maka repetisi akan dihentikan. Untuk penggunaan break akan dijelaskan dibawah.

Dibawah ini merupakan contoh Flow Chart dari repetisi DO-WHILE:
Contoh 1.3:

do{
   printf(”%d\n”,counter);
} while(++counter <=10);


While

Syntax :
while (kondisi) statements;
or
while(kondisi){
statement1;
statement2;
   …..
}

Sedikit berbeda dengan repetisi Do-While tadi, pada repetisi While, kondisi yang ada terlebih dahulu di cek, kemudian jika kondisinya terpenuhi, statement yang ada dalam repetisi akan tereksekusi. Begitu seterusnya hingga kondisi yang ada di dalam while tidak terpenuhi.

Salah satu perbedaan yang mencolok juga antara repetisi Do-While dengan While adalah, pada repetisi Do-While, bisa dipastikan jika perintah yang ada dalam do akan tereksekusi minimal satu kali, sedangkan repetisi while tidak.

Contoh 1.4:
#include<stdio.h>


int main(){
int counter = 1;
while ( counter <= 10 ) { 
    printf( "%d\n", counter );
    ++counter;
}
return 0;
}

Output:
1
2
3
4
5
6
7
8
9
10

Berdasarkan syntax diatas, maka repetisi yang terjadi sebanyak 10 kali dan mencetak 10 angka. Mengapa bukan 9? Karena, pada kondisinya diberikan tanda '=' yang berarti nilai dari counter bisa sama dengan 10 sehingga repetisi yang terjadi sebanyak 10 kali.

Dibawah ini merupakan contoh Flow Chart dari repetisi WHILE

Contoh 1.5:
while(product <= 1000) 
    product = 2*product;

For

Syntax:
for(inisialisasi; kondisi; increment/decrement) statement;
or
for(inisialisasi; kondisi; increment/decrement){
statement1;
statement2;
…….
 }

Inisialisasi, kondisi, dan increment/decrement merupakan opsional dan dapat terdiri lebih dari satu dipisahkan dengan koma.

Inisialisasi merupakan deklarasi variable yang akan dicek pada kondisi yang kemudian akan diincrement/decrement setelah proses di dalam for selesai.

Contoh 1.6:
#include<stdio.h>

int main(){
for(int i=0; i<5; i++){
    printf("I love BINUS so much\n");
}
return 0;
}

Output:
I love BINUS so much
I love BINUS so much
I love BINUS so much
I love BINUS so much
I love BINUS so much

Pada syntax diatas, i akan terus dicek apakah lebih kecil dari 5, kemudian perintah print akan dieksekusi. Setelah dieksekusi, nilai i akan bertambah satu. Dari 0, 1, 2, 3, 4. Ketika i mencapai 5, maka kondisi yang ada tidak terpenuhi sehingga perintah didalamnya tidak dijalankan.

Dibawah ini merupakan contoh Flow Chart diri Repetisi FOR
Contoh 1.7.1:
for (x=1; x <= 10; x++) 
    printf(“%d\n”, x);



Contoh lain penggunaan FOR 1.7.2:
#include<stdio.h>


int main(){
    int x;
    for( x = 1 ;  x <= 10 ;  x++ ) 
        printf( "%d\n", x );

    return 0;
}

Setelah melihat seluruh jenis repetisi yang ada, kita dapat melihat bahwa 1 masalah dapat diselesaikan menggunakan lebih dari 1 jenis repetisi.

Contoh 1.8:
#include<stdio.h>
void main() {
   int x;
   for( x = 1 ;  x <= 10 ;  x++ )
         printf( "%d\n", x );
}

sama dengan:


#include<stdio.h>
void main() {
   int x = 1;
   while (x<=10) {
        printf( "%d\n", x );
        x++;
   }
}

Output:
1
2
3
4
5
6
7
8
9
10

Jika di selection kita mengetahui bahwa dalam selection bisa diberikan selection lagi, maka sama halnya dengan repetisi. Kita sebut dengan Nested Loop.

Contoh 1.9:
#include<stdio.h>

int main(){
for(int i=0; i<5; i++){
    for(int j=0; j<6; j++){
        printf("#");
    }
    printf("\n");
}
return 0;
}

Output:
######
######
######
######

######

Break and Continue

Jika kalian memperhatikan pada contoh 1.2 diatas, maka kamu pasti menemukan perintah break didalam if. Jadi, apa sih gunanya break itu? 

Break memiliki fungsi untuk menyelesaikan repetisi yang ada. Selain digunakan pada repetisi, break juga digunakan pada switch-case untuk menghentikan pengeksekusian perintah dibawahnya. Jadi, sudah jelas bahwa break berguna untuk menghentikan suatu kondisi atau repetisi. 

Contoh:
#include <stdio.h> 
int main() {
        int x;
        for(x=1; x<=10; x++) {
    if (x == 5) break;
      printf("%d ", x);
        }
        return 0;
}

Output :
1 2 3 4

Output yang keluar hanya sampai angka 4 saja dikarenakan adanya perintah break jika x = 5 sehingga repetisi tidak dilanjutkan lagi.

Sedangkan untuk continue, biasanya digunakan pada pengecekan kondisi yang berfungsi untuk melewati perintah yang ada dan lanjut ke repetisi selanjutnya.

Contoh:
#include <stdio.h>
int main() {
        int x;
        for(x=1; x<=10; x++) {
    if (x == 5) continue;
      printf("%d ", x);
        }
        return 0;
}

Output: 
1 2 3 4 6 7 8 9 10
Jika kamu lihat pada kolom output, angka 5 tidak terprint dikarenakan adanya perintah continue jika x = 5, sehingga perintah print tidak tereksekusi dan lanjut ke repetisi selanjutnya.

Sekian artikel mengenai Program Control Repetition - Penggunaan For, While, Do-While, semoga dapat bermanfaat untuk menjadi pembelajaran.


Bernhard Owen Josephus
NIM: 2201768821
binus.ac.id
skyconnectiva.com

Comments

Popular posts from this blog

Array dan Pointer