tag:blogger.com,1999:blog-29124207642687354742023-11-15T07:04:11.702-08:00for, while, do-whiletomikohttp://www.blogger.com/profile/13585468739549775929noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-2912420764268735474.post-30894257475987789402009-02-08T18:44:00.000-08:002009-02-13T03:26:27.432-08:00Perintah for, while, dan do-while<span style="font-size:85%;"><span style="font-family: verdana;">Ketiga perintah ini digunakan dalam GNU C untuk melakukan perulangan.</span><br /><span style="font-family: verdana;">Perbedaannya terletak pada syntax (format penulisan) serta fungsinya.</span><br /><span style="font-family: verdana;">Perintah for hanya bisa melakukan perulangan yang terhitung, sedangkan perintah while dan do-while bisa melakukan perulangan baik yang terhitung maupun tidak terhitung.</span><br /><br /><span style="font-family: verdana;">Kita bahas perintah for dahulu... Yok ayoookk.. S'mangat! for itu mudah dan menyenangkan!! ^^</span><br /><span style="font-family: verdana;">Syntax:</span><br /><span style="font-size:100%;"><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>for (inisialisasi;kondisi;modifier)</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>{</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">____</span>statement;</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>}</span></span><br /><br /><span style="font-family: verdana;">Keterangan:</span><br /><span style="font-family: verdana;">Untuk mempermudah pembahasan, kita beri nomor</span><br /><span style="font-family: verdana;">1 untuk bagian inisialisasi,</span><br /><span style="font-family: verdana;">2 untuk bagian kondisi,</span><br /><span style="font-family: verdana;">3 untuk bagian modifier, dan</span><br /><span style="font-family: verdana;">4 untuk bagian statement. OK?</span><br /><span style="font-family: verdana;">Pertama, program hanya akan menjalankan bagian 1 sebanyak sekali, lalu dicek pada bagian 2. Bila benar, bagian 3 akan dijalankan, diikuti bagian 4.</span><br /><span style="font-family: verdana;">Setelah itu, program akan kembali melakukan cek pada bagian 2. Apabila masih benar, akan dilanjutkan dengan menjalankan bagian 3 dan 4 seperti sebelumnya.</span><br /><span style="font-family: verdana;">Program akan terus berputar pada bagian 2 - 3 - 4. Sampai kapan? Sampai ketika bagian 2 (kondisi) tidak terpenuhi (hasil pengecekan bernilai salah).</span><br /><br /><span style="font-family: verdana;">Jadi, kesimpulannya:</span><br /><span style="font-family: verdana;">Program akan berjalan dengan urutan 1 - 2 - 3 - 4 - 2 - 3 - 4 - 2 - 3 - 4 dst. sampai dengan bagian 2 (kondisi) tidak terpenuhi.</span><br /><span style="font-family: verdana;">Perhatikan: bagian 1 hanya dilakukan sekali, lalu jalannya perulangan akan berputar pada bagian 2 - 3 - 4.</span><br /><br /><span style="font-family: verdana;">Contoh penggunaan perintah for:</span><br /><span style="font-size:100%;"><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>for(a=1;a<=3;a=a+1)</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>{</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">____</span>printf("Ini baris ke %i\n",a);</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>}</span><br /></span><br /><span style="font-family: verdana;">Program tersebut akan membuat tampilan sbb:</span><br /><span style="font-weight: bold;font-size:100%;" ><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>Ini baris ke 1</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>Ini baris ke 2</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>Ini baris ke 3</span><br /></span><br /><br /><span style="font-family: verdana;">Sekarang kita bahas perintah while dan do-while...</span><br /><span style="font-family: verdana;">Syntax while:</span><br /><span style="font-size:100%;"><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>while(kondisi)</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>{</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">____</span>statement;</span><br /><span style="font-family: courier new; font-weight: bold;"><span style="color: rgb(255, 255, 255);">__</span>}</span><br /></span><br /><span style="font-family: verdana;">Syntax do-while:</span><br /><span style="font-weight: bold;font-size:100%;" ><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>do</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>{</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">____</span>statement;</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>}</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>while(kondisi);</span><br /></span><br /><span style="font-family: verdana;">Persamaan kedua perintah di atas adalah sama-sama hanya menggunakan satu parameter, yaitu kondisi.</span><br /><span style="font-family: verdana;">Perbedaannya adalah pada perintah while pengecekan dilakukan pada awal blok, sedangkan perintah do-while melakukan pengecekan pada akhir blok.</span><br /><span style="font-family: verdana;">Hati-hati: Pada akhir perintah do-while dilengkapi dengan ; (titik koma), lain dengan perintah for dan while.</span><br /><br /><span style="font-family: verdana;">Lalu, muncul pertanyaan:</span><br /><span style="font-family: verdana;">Bagaimana perintah while dan do-while melakukan perulangan seperti perintah for?</span><br /><span style="font-family: verdana;">Padahal, perintah while dan do-while hanya menggunakan 1 parameter (kondisi), sedangkan perintah for menggunakan 3 parameter (inisialisasi, kondisi dan modifier).</span><br /><span style="font-family: verdana;">Jawabnya adalah bagian inisialisasi dan modifier kita masukkan dalam baris program biasa sedemikian sehingga alur perulangan menjadi sama dengan perintah for.</span><br /><br /><span style="font-family: verdana;">Contoh penggunaan perintah while dan do-while untuk membuat tampilan yang sama dengan contoh perintah for di atas:</span><br /><span style="font-family: verdana;">Dengan menggunakan perintah for:</span><br /><span style="font-weight: bold;font-size:100%;" ><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>for(a=1;a<=3;a=a+1)</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>{</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">____</span>printf("Ini baris ke %i\n",a);</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>}</span><br /></span><br /><span style="font-family: verdana;">Dengan menggunakan perintah while:</span><br /><span style="font-weight: bold;font-size:100%;" ><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>a=1;</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>while(a<=3)</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>{</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">____</span>printf("Ini baris ke %i\n",a);</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">____</span>a=a+1;</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>}</span><br /></span><br /><span style="font-family: verdana;">Dengan menggunakan perintah do-while:</span><br /><span style="font-weight: bold;font-size:100%;" ><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>a=1;</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>do</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>{</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">____</span>printf("Ini baris ke %i\n",a);</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">____</span>a=a+1;</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>}</span><br /><span style="font-family: courier new;"><span style="color: rgb(255, 255, 255);">__</span>while(a<=3);</span><br /></span><br /><span style="font-family: verdana;">Bisa kita lihat, bahwa bagian inisialisasi diletakkan di luar blok perulangan, sedangkan bagian modifier diletakkan di dalam blok perulangan.</span><br /><span style="font-family: verdana;">Mengapa? Why? Opo'o?</span><br /><span style="font-family: verdana;">Hal ini sesuai dengan alur perulangan yang akan berjalan (ingat urutan perulangan pada perintah for), yaitu 1 - 2 - 3 - 4 - 2 - 3 - 4 - 2 - 3 - 4 dst. (kalau lupa apa itu 1, 2, 3 dan 4, scroll dan lihat di atas. OC? hehe.. Semangat2!! while dan do-while itu mudah dan menyenangkan!! ^^)</span><br /><span style="font-family: verdana;">Perhatikan: Karena bagian inisialisasi [a=1;] hanya dilakukan sekali, maka ia harus diletakkan sebelum blok perulangan. Sebaliknya, bagian modifier [a=a+1;] yang dilakukan berulang harus diletakkan dalam blok perulangan.</span><br /><br /><span style="font-family: verdana;">OK, sekian untuk post pertama. Saia harap post ini bisa memberikan penjelasan tambahan mengenai materi yang disampaikan di kelas. Bila ada pertanyaan bisa langsung memberikan comment...</span><br /><br /><span style="font-family: verdana;">Thx,</span><br /><span style="font-family: verdana;">tomiko_lin</span></span>tomikohttp://www.blogger.com/profile/13585468739549775929noreply@blogger.com29