Perulangan

Seandainya kalian diberi tugas untuk mengulang-ulang suatu tindakan di dunia nyata, itu pasti melelahkan dan mungkin terasa membosankan. Tapi, bagi program, berapa kalipun suatu statement diulang, itu tidak akan terasa membosankan.

Dalam pemrograman, kalian bisa mempersingkat penulisan kode program saat kalian hanya menampilkan output yang sama, atau saat mengeksekusi statement lainnya berulang kali. Kalian bisa melakukan perulangan dengan menggunakan bahasa pemrograman untuk mengeksekusi statement yang sama berdasarkan syarat tertentu.

Dalam Bahasa C, ada 3 macam perulangan. Perulangan-perulangan yang bisa kita gunakan dalam C yaitu :
  1. while
  2. for
  3. do-while
Berikut ini adalah contoh kode program tanpa perulangan yang bisa kita sederhanakan dengan perulangan.
#include <stdio.h> 

int main(){
    printf("*");
    printf("*");
    printf("*");
    printf("*");
    printf("*"); 
    return 0;
}
Kalian bisa menyederhanakannya dengan menggunakan for sehingga jadi seperti ini.
#include <stdio.h> 

int main(){
    for(int i=0;i<5;i++)printf("*");
    return 0; 
}
Pada dasarnya, yang diulang perulangan adalah statementnya, dan bukan karakter atau tulisan yang ditampilkan. Jadi, sekalipun kita memberikan perintah yang sama, hasilnya bisa berbeda. Untuk lebih jelasnya, perhatikan contoh berikut ini!
#include <stdio.h> 
int main(){
int i=0; 
    for(int i=0;i<5;i++)printf("%d\n", i);
    return 0;
}
Pada contoh di atas, sudah terlihat dengan jelas bahwa saat perulangan menampilkan nilai i, nilai i akan selalu berubah.

While vs Do While
Selain menggunakan for, kalian juga bisa menggunakan while dan do-while. While dan do-while penulisannya hampir sama, bedanya ada di penempatan dari pengecekan kondisinya. Isi dari perulangan dengan do-while akan selalu dikerjakan walaupun sekali. Berbeda dengan do-while yang akan selalu menampilkan statement di dalamnya minimal sekali, perulangan dengan while akan segera menghentikan perulangan dan tidak menampilkan apa-apa saat kondisi tidak terpenuhi.
#include <stdio.h> 

int main(){
int i=0;  
    while(i<5){
        printf("*");
        i++; 
    } 
    return 0; 
}
Perulangan dan percabangan yang memiliki lebih dari satu statement harus mengapit statement-statement di dalamnya dengan menggunakan tanda kurung kurawal ( {...} ). Tanpa tanda kurung kurawal, statement yang akan diulang atau dieksekusi hanya statement pertama di dekat percabangan atau perulangan.

Selanjutnya, kalian bisa mencoba menggunakan do while yang hasilnya sebenarnya tidak jauh beda dengan while do. Perbedaannya akan terlihat jika kondisi sudah tidak sesuai dengan syarat yang ditentukan saat perulangan dimulai.
#include <stdio.h> 

int main(){
int i=0;  
    do{
        printf("*");
        i++; 
    }while(i<5);
    return 0; 
}
Coba ubah nilai variabel i dari dua contoh di atas supaya "nilainya lebih besar dari 5", misalnya ubah "int i=0;" jadi "int i=7;". Lihat perbedaan hasil dari while dan do-while saat nilai variabel sudah tidak sesuai sejak awal.

Perulangan dalam Perulangan
Perulangan tidak hanya bisa digunakan untuk menampilkan pola yang linear dan sederhana, perulangan juga bisa digunakan untuk menampilkan berbagai pola yang unik dan menarik. Kita bisa menggunakan perulangan yang dimasukkan di dalam perulangan lain untuk membentuk pola 2 dimensi seperti segiempat, segitiga. dan beberapa pola lainnya.

Jika kita meletakkan perulangan dalam perulangan, maka perulangan yang di dalam akan dikerjakan sampai selesai sebelum mengulang perulangan terluar. Jika kita menampilkan beberapa karakter yang sama dalam satu baris dengan perulangan, dan kemudian kita mengulangannya dengan perulangan di luar perulangan tersebut, kita bisa mendapatkan pola persegi atau persegi panjang.

Berikut ini adalah contoh kode program untuk menampilkan "pola segiempat".
#include <stdio.h>

int main(){
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++)
            printf("*");
        printf("\n") ;

    }
    return 0;
}
Yang perlu diingat adalah, perulangan tidak mengulang pola yang sama, tapi perulangan mengulang statement yang sama. Jadi, kalau nilai variabel diubah dengan operator aritmatika di dalam perulangan, maka apa yang ditampilkan dalam perulangan akan berubah sesuai dengan nilai variabelnya hingga perulangan selesai walaupun statementnya sama. Karena yang diulang adalah statement-nya, kita bisa menghasilkan pola yang "mengerucut" atau berubah di tiap barisnya sehingga pola yang ditampilkan bisa terlihat seperti segitiga atau pola lain selain pola segiempat.
#include <stdio.h>

int main(){
    for(int i=0;i<10;i++){
        for(int j=0;j<=i;j++)
            printf("*");
        printf("\n") ;
    }
    return 0;
}

Kita tidak hanya bisa menggunakan satu atau dua perulangan, tapi kita juga bisa menggunakan beberapa perulangan untuk menampilkan pola lainnya.

#include <stdio.h>
int main(){
    for(int i=0;i<=9;i++){
        for(int j=i;j<9;j++)
            printf(" ");
        for(int j=0;j<=i;j++)
            printf("*");
        printf("\n") ;
    }
    return 0;
}
Dengan menggunakan beberapa perulangan kita bisa menggabungkan beberapa bentuk sehingga bisa menjadi bentuk lainnya.Misalnya dua segitiga siku-siku yang berlawanan arah bisa kita gabungkan jadi satu segitiga sama kaki.
#include <stdio.h>

int main(){
    for(int i=0;i<=9;i++){
        for(int j=i;j<9;j++)
            printf(" ");
        for(int j=0;j<=i;j++)
            printf("*");
        for(int j=1;j<=i;j++)
            printf("*");
        printf("\n") ;
    }
    return 0;
}

Kalian bisa menghasilkan pola-pola lainnya asalkan kalian paham tentang cara menggunakan perulangan. Semoga contoh-contoh di atas bisa membantu kalian menganalisa bagaimana cara menggunakan perulangan di dalam perulangan.

Break dan Continue
Kalian juga mungkin perlu menghentikan perulangan. Untuk keluar dari perulangan, kalian bisa menggunakan break. Kalian akan memerlukan if sebagai penentu kapan break akan dieksekusi. Contohnya bisa kalian lihat di bawah ini.
#include <stdio.h> 

int main(){
    for(int i=0;i<5;i++){
        printf("%d", i);
        if(i>=5)break; 
        printf(", "); 
    } 
    return 0;
}
Coba hilangkan satu baris yang menggunakan break dan lihat hasilnya!

Continue
Untuk melanjutkan perulangan dan melewati baris tertentu, kalian bisa menggunakan continue. Selanjutnya, coba gunakan continue dalam kode program!
#include <stdio.h> 

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

    return 0;
} 
Coba ubah "if(i<3)" menjadi "if(i<4)", dan lihat apa yang terjadi!?