Dasar Pemrograman : Loop dan Nested Loop


Selamat datang di Belajar Pemrograman Bahasa C. Sebelum kita mulai untuk belajar ngoding, alangkah baiknya kita mengenal dasarnya terlebih dahulu, selain memudahkan kita untuk memahami setiap kasus yang ada, juga akan menjadi Fondasi kita untuk ngoding menggunakan bahasa C.



Perulangan ( Loop )

Perulangan atau looping dalam definisi bisa diartikan dengan mengulangi statement atau rangkaian statement beberapa kali. Tujuan daripada perulangan sendiri agar statement atau rangkaian statement yang sama tidak perlu ditulis berkali-kali.

Dalam perulangan terdapat 3 bentuk statement yang digunakan, antara lain : 
for, while, dan do-while. Langsung saja kita ke contohnya.

Kita akan mencetak bilangan ganjil yang ada pada range nilai 0-5 menggunakan perulangan for, while, dan do-while.

Perulangan for : 

int i;
for(i=0;i<=5,i++) {
   if(i%2!=0) {
     printf("%d",i);
   }
}

Perulangan while : 

int i;
i = 0;
while(i<=5){
   if(i%2!=0){
      printf("%d",i);
   }
   i+=1;
}

Perulangan do-while : 

int i;
i = 0;
do{
   if(i%2!=0){
      printf("%d",i);
   }
   i+=1;
}while(i<=5)

Hal-hal yang perlu diperhatikan dalam perulangan : 
Iterator
Sebuah perulangan memerlukan objek yang menjadi acuan berjalannya proses perulangan. Sebuah iterator akan berubah nilainya agar mencapai batas dimana perulangan akan berhenti. Pada contoh program diatas, variabel i merupakan sebuah iterator.

Nilai awal / kondisi awal ( initial state )
Perulangan memerlukan kondisi atau nilai awal agar perulangan itu dapat berjalan. Nilai awal tersebut biasanya diwujudkan dalam bentuk sebuah variabel yang memiliki nilai. Pada contoh program diatas variabel i dengan nilai 0 merupakan nilai awal.

Batasan ( boundary ) / final state
Perulangan memerlukan kondisi atau batasan agar perulangan itu dapat berhenti. Batasan diwujudkan dalam bentuk sebuah ekspresi relasional. Pada contoh program diatas, ekspresi i<=5 adalah batas perulangan dimana perulangan akan berhenti bila i lebih besar dari 5 ( tidak memenuhi batasan ).

Pembaruan nilai ( update value ) / statement control
Sebuah perulangan memerlukan proses pembaruan nilai agar perulangan dapat berjalan dan berhenti dengan benar. Pembaruan nilai diwujudkan dalam bentuk assignment. Pada contoh program diatas i++ adalah proses pembaruan nilai. Nilai sebuah iterator dapat bertambah maupun berkurang sesuai dengan kondisi perulangan yang dibuat. Berikut ini adalah beberapa operator yang dapat digunakan untuk membantu melakukan pembaruan nilai.




Dari contoh program diatas, cara penulisannya adalah sebagai berikut :


Perulangan for
for (inisialisasi; batasan; update value)
{
    (statement yang akan diulang);
}
Perulangan while
(nilai awal);
while (batasan) 
{
    (statement yang akan diulang);
    (update value);
}
Perulangan do-while
(nilai awal);
do
{
    (statement yang akan diulang);
    (update value);
}
while (batasan);

Selanjutnya adalah break dan continue. Break adalah kata kunci untuk menghentikan sebuah perulangan, keluar dari proses perulangan lalu menjalankan statement berikutnya. Kemudian continue adalah kata kunci yang digunakan untuk melewati atau melompati sebuah peerulangan dilanjutkan dengan proses perulangan berikutnya. Berikut adalah contoh programnya : 

break : 

int i;
for (i=1; i<=10; i++)
{
    if (i==5)
    {
 printf("Exit by break\n");
 break;
    }
     printf("%d\n",i);
}

Berikut hasilnya :

continue :


int i;
for (i=1; i<=10; i++)
{
    if (i%3==0){
 continue;
    }
    printf("%d\n",i);
}

Berikut hasilnya : 

Perulangan Bersarang ( Nested Loop )

Konsep dari perulangan bersarang itu sendiri sangat sederhana, yaitu ada loop didalam loop. Tidak perlu bingung, karena hanya menambahkan loop lagi pada aksi loop sebelumnya. Formatnya seperti ini : 
for(iterator_outer;batasan_outer;perubahanNilai_outer){
   ///Aksi atau proses yang akan dijalankan
   for(iterator_inner;batasan_inner;perubahanNilai_inner){
      ///Aksi atau proses yang akan dijalankan
   }
}

iterator_outer;
while(batasan_outer){
     ///Aksi atau proses yang dijalankan
     iterator_inner;
     while(batasan_inner){
          ///Aksi atau proses yang dijalankan
          perubahanNilai_inner;
     }
     perubahanNilai_outer;
}

iterator_outer;
do{
     iterator_inner;
     do{
          ///Aksi atau proses yang dijalankan
          perubahanNilai_inner;
        }while(batasan_inner);
        perubahanNilai_outer;
}while(batasan_outer);

contoh program nested loop bisa dicek DISINI, bisa juga dirun loh
Sekian pembahasan tentang Dasar Pemrograman Bahasa C : Perulangan ( Looping ), jika teman-teman ada yang kurang paham atau kurang jelas bisa untuk komen dibawah atau bisa kontak saya. Terimakasih.