Sabtu, Juli 11, 2015

Programming in C - Part 8: Looping ( Pengulangan ) dalam bahasa C

Salah satu alasan penting mengapa kita membutuhkan bantuan komputer / pemrograman komputer adalah looping atau pengulangan. Kemampuan dan kemauan manusia untuk melakukan suatu perkerjaan yang sama secara berulang-ulang sangat terbatas. Bayangkan jika anda diminta untuk mengucapkan kata "belajar" sebanyak 500 kali. Apa yang akan anda rasakan? bosan ?. Bagaimana jika dimintah sebanyak 1000 kali atau bahkan ratusan ribu kali ? atau bagaimana jika anda diminta menyebutkan deret bilangan yang dimulai dari 1 dan angka berikutnya adalah jumlah dari angka sebelumnya dengan urutan penyebutan angkanya ?.. Pasti menyusahkan dan akan banyak kesalahan kan ?. Disinilah perlunya kita menggunakan loop / pengulangan karena komputer tidak pernah merasa 'bosan' dan tidak pernah menolak perintah serta kemungkinan kesalahannya yang sangat kecil...

Looping adalah proses mengulang melakukan suatu perintah secara berulang-ulang. Jika anda menyuruh seseorang untuk mengulang, maka tentu anda akan menentukan berapa kali pengulangan akan dilakukan (frequensi). Dalam bahasa komputer, frequensi ini dinyatakan dalam 3 stateteman yaitu : mulai(awal), selesai (akhir), langkah. Dalam bahasa pemrograman lebih dikenal dengan istilah : inisiasi, kondisi, increment.

Pengulangan dalam Bahasa C adalah sebagai berikut :

 

Pengulangan for


for ( inisiasi; kondisi; increment )  {
  
    perintah yang diulang  ;
  
    }



 

Pengulangan while


while (kondisi terpenuhi) {
  
         perintah yang diulang  ;
    }

Pengulangan do while


do {
  
        perintah yang diulang  ;
      
} while (kondisi terpenuhi);


Anda dapat membuat pengulangan bertingkat dengan menggunakan kombinasi dari ketiga di atas. yang dimaksud dengan pengulangan bertingkat adalah pengulangan yang ada dalam blok perintah pengulangan lainnya. Seperti adanya pengulangan while didalam pengulangan while sebelumnya. demikian seterusnya.

Contoh penggunaan Loop for dan loop bertingkat

/* =======================================
 * Contoh Loop for
 * Created by: Sastrawan
 * Topik : Menggunakan loop for
 *
 * ========================================
 */

 #include<stdio.h>

 int main( int argc, char *argv[])
 {
  
    int x ;

    printf("Contoh looping dengan for \n");
      
    for(x=0;x<10;x++)  // x=0, diinisiasi dengan nilai 0
                        // x < 10,  pengulangan dilakukan 10 kali
                        // x++ setiap selesai 1 pengulangan nilai x + 1
    {
        printf("Ini pengulangan yang ke %d \n ", x);

    }

    printf("\nContoh pengulangan bertingkat \n\n");
  
    int i, j;
    for(i= 0 ; i< 5 ; i++) {
  
        printf("\n\nLoop luar : %d \n",i) ;
      
        for(j=0 ; j <= 3; j++)
        {
      
            printf(" Loop dalam  : %d ",j) ;
          
        }
  
    }  
    return 0;
    
 }


 outputnya adalah sbb:

 Contoh looping dengan for
Ini pengulangan yang ke 0
 Ini pengulangan yang ke 1
 Ini pengulangan yang ke 2
 Ini pengulangan yang ke 3
 Ini pengulangan yang ke 4
 Ini pengulangan yang ke 5
 Ini pengulangan yang ke 6
 Ini pengulangan yang ke 7
 Ini pengulangan yang ke 8
 Ini pengulangan yang ke 9

Contoh pengulangan bertingkat

Loop luar : 0
 Loop dalam  : 0  Loop dalam  : 1  Loop dalam  : 2  Loop dalam  : 3

Loop luar : 1
 Loop dalam  : 0  Loop dalam  : 1  Loop dalam  : 2  Loop dalam  : 3

Loop luar : 2
 Loop dalam  : 0  Loop dalam  : 1  Loop dalam  : 2  Loop dalam  : 3

Loop luar : 3
 Loop dalam  : 0  Loop dalam  : 1  Loop dalam  : 2  Loop dalam  : 3

Loop luar : 4
 Loop dalam  : 0  Loop dalam  : 1  Loop dalam  : 2  Loop dalam  : 3



Perhatikan bahwa perhitungan pengulangan dimulai dari 0 karena kita menginisiasi nilai pencatat pengulangan dengan 0.

Latihan :

Ubahlah program sehingga perhitungan dimulai dari 1 (bukan nol) dan pengulangan tetap sebanyak 10 kali !


Contoh Pengulangan while

/* =======================================
 * Contoh Loop While
 * Created by: Sastrawan
 * Topik : Menggunakan loop while
 *
 * ========================================
 */

 #include<stdio.h>

 int main( int argc, char *argv[])
 {
  
    int x ;

    printf("Contoh looping dengan while \n");
    x = 0;             // x=0, diinisiasi dengan nilai 0
    while (x <= 10) {
        printf("Ini pengulangan yang ke %d \n ", x);
        x++ ;    // x++ setiap selesai 1 pengulangan nilai x + 1

    }
    return 0 ;
}



program ini menghasilkan output yang sama dengan program sebelumnya. penggunaanya mirip hanya saja inisiasi dilakukan sebelum memasuki loop while dan increment ditambahkan manual

Contoh penggunaan loop do while

/* =======================================
 * Contoh Loop Do While
 * Created by: Sastrawan
 * Topik : Menggunakan loop do while
 *
 * ========================================
 */

 #include<stdio.h>

 int main( int argc, char *argv[])
 {
  
    int x ;

    printf("Contoh looping dengan while \n");
    x = 0;             // x=0, diinisiasi dengan nilai 0
    do
    {
        printf("Ini pengulangan yang ke %d \n ", x);
        x++ ;    // x++ setiap selesai 1 pengulangan nilai x + 1

    }  while (x <= 10)  ;
    return 0 ;
}



Penggunaan while dan do while sangat mirip. Perbedaanya terletak pada pengujian kondisi. Pengulangan while menguji kondisi sebelum masuk ke blok perintah. Jadi ada kemungkinan blok perintah tidak dikerjakan sama sekali jika kondisi sejak awal tidak terpenuhi. Sedangkan pengulangan do while menguji perintah setelah minimal satu kali memasuki blok perintah.

Statement break dan continue


break digunakan jika anda ingin keluar langsung dari sebuah loop karena alasan tertentu. Artinya loop tidak dikerjakan semuanya (diinterupsi) dan langsung mengerjakan perintah berikutnya di luar loop tempat statemen break berada.

contoh penggunaan break

/* =======================================
 * Contoh Loop Do While dengan break
 * Created by: Sastrawan
 * Topik : Menggunakan break
 *
 * ========================================
 */

 #include<stdio.h>

 int main( int argc, char *argv[])
 {
  
    int x ;

    printf("Contoh looping dengan break \n");
    x = 0;             // x=0, diinisiasi dengan nilai 0
    do
    {
        printf("Ini pengulangan yang ke %d \n ", x);
        x++ ;    // x++ setiap selesai 1 pengulangan nilai x + 1
        if(x == 3 ) break ;        // perintah akan selesai jika x == 3;

    }  while (x <= 10)  ;
    return 0 ;
}



Hasilnya :
Contoh looping dengan break
Ini pengulangan yang ke 0
Ini pengulangan yang ke 1
Ini pengulangan yang ke 2


Pada pengulangan ke 4 loop berhenti dilakukan karena ada perintah break.

Bagaimana dengan statement continue ?


 /* =======================================
 * Contoh Loop Do While dengan Continue
 * Created by: Sastrawan
 * Topik : Menggunakan Continue
 *
 * ========================================
 */

 #include<stdio.h>

 int main( int argc, char *argv[])
 {
  
    int x ;

    printf("Contoh looping dengan break \n");
    x = 0;             // x=0, diinisiasi dengan nilai 0
    do
    {
        x++ ;    // x++ setiap selesai 1 pengulangan nilai x + 1
        if(x == 3 ) continue ;  // perintah setelah baris ini tidak;
                                // akan dikerjakan karena ada continue
        printf("Ini pengulangan yang ke %d \n ", x);
    }  while (x <= 10)  ;
    return 0 ;
}
 


Hasilnya adalah sbb.

Contoh looping dengan break
Ini pengulangan yang ke 1
 Ini pengulangan yang ke 2
 Ini pengulangan yang ke 4
 Ini pengulangan yang ke 5
 Ini pengulangan yang ke 6
 Ini pengulangan yang ke 7
 Ini pengulangan yang ke 8
 Ini pengulangan yang ke 9
 Ini pengulangan yang ke 10
 Ini pengulangan yang ke 11


 Perhatikan bahwa pengulangan ke 3 tidak dikerjakan. Contoh ini juga mendemonstrasikan cara kerja pengulangan do while dimana kondisi diuji pada akhir perintah pengulangan. Inilah penjelasan mengapa anda pengulangan 11 padahal kondisinya adalah kurang dari atau sama dengan 10

 Jika anda memahami tentang pengulangan ini, maka anda sudah menguasai satu aset yang sangat berharga dalam dunia programming. Perlu diketahui bahwa konsep yang anda pelajari dari tulisan ini dapat digunakan pada semua jenis bahasa pemrograman. Jika anda menemukan kemiripan sintaks yang anda pelajari dari sini dengan bahasa pemrograman lain, maka kemungkinan besar bahasa tersebut diturunkan dari bahasa C ( C-like programming language). Coba perhatikan pengulangan pada bahasa lain seperti C++, Java, PHP, dll !

0 comments:

Posting Komentar

Write your comment here