Memahami Perulangan Bersarang
Untuk itulah terlahir struktur perulangan di dalam bahasa pemrograman. Oke, hal mendasar ini tidak kita bahas secara lebih pada postingan ini. Jika ingin memahami secara mendasar mengenai perulangan, ada lebih baiknya membaca topik yang telah diberikan sebelumnya disini Memahami Skema Perualngan .
Perulangan Bersarang (Nested Loop)
"Perulangan Bersarang (Nested Loop)" adalah struktur perulangan yang berada didalam struktur perulangan lainnya. Pada umumnya, struktur perulangan yang berada didalam struktur perulangan lainnya memiliki hubungan yang saling terkait dalam menyelesaikan sebuah kasus komputasi. Jika struktur perulangan luar (struktur perulangan yang menampung struktur perulangan lain didalamnya) tidak memiliki hubungan terkait dan tidak memiliki kepentingan dalam melakukan proses komputasi, sebaiknya jangan lakukan perulangan bersarang (nested loop), karena hanya akan menghabiskan waktu eksekusi yang sia-sia dan program berjalan tidak optimal. Oke, mari kita lihat langsung bagaimana bentuk dari perulangan bersarang itu.for(; ; ) { for(; ;) { //kode diletakkan disini... } }
Anda juga dapat menggabungkan seluruh struktur perulangan yang disediakan oleh bahasa pemrograman yang Anda gunakan untuk menyelesaikan suatu proses komputasi. Bentuknya seperti berikut.
do { //kode dapat diletakkan disini... for(; ; ) { //kode dapat diletakkan disini... while(true) { //kode dapat diletakkan disini... } //kode dapat diletakkan disini... } //kode dapat diletakkan disini... } while(condition);
Pada bentuk umum "nested loop" (kedua) di atas, merupakan bentuk nested loop yang digunakan untuk menyelesaikan kasus komputasi yang cukup kompleks. Latihan membuat program dengan perulangan bersarang dalam berbagai kasus akan meningkatkan pemahaman Anda dalam penggunaan perulangan bersarang ini. Pada setiap bahasa pemrograman, baik bahasa C, C++, JAVA, C#, Python, dan lainnya, skema dan pola dari nested loop adalah sama saja, yang berbeda adalah sintaks dari struktur perulangan tersebut (tergantung setiap bahasa pemrograman). Nah, untuk meningkatkan sedikit pemahaman mengenai topik ini, mari kita lihat studi kasus berikut ini.
Studi Kasus Perulangan Bercabang (Nested Loop)
Kita akan mencoba menyelesaikan satu studi kasus sederhana mengenai matriks untuk memulai memahami penggunaan perulangan bercabang ini. Kasus yang akan dibahas disini ialah
Buatlah sebuah program yang mampu menampung nilai dari matriks mxn
dan program mampu mengecek apakah keseluruhan nilai dari setiap kolom
pada baris tertentu pada matriks adalah nol (0). Ketika keseluruhan
nilai setiap kolom pada baris tertentu pada matriks adalah nol (0),
program akan menampilkan sebuah pesan yang menyatakan bahwa "Matriks ini
memilik baris yang nilai kolomnya nol semua". Jika tidak, program akan
menampilkan pesan lainnya (pesan yang ditampilkan tergantung Anda
sendiri). Ketentuan lainnya yang harus diperhatikan ialah, ukuran dan
nilai-nilai pada matriks ditentukan oleh user melalui keyboard.
Berangkat dari kasus yang diberikan di atas, mari kita lihat kode program dalam bahasa c berikut ini.
- #include <stdio.h>
- /*
- * Program : nestedLoop.c
- * Author : Hendro Pramana Sinaga
- * Date : 11 Januari 2015
- */
- int main()
- {
- int jlhBaris, jlhKolom, i, j, nol, penentu = 0;
- printf("Masukkan jumlah baris dan kolom sekaligus (Mis= 2 2): ");
- scanf("%d %d", &jlhBaris, &jlhKolom);
- int matriks[jlhBaris][jlhKolom];
- for(i = 0; i < jlhBaris; i += 1) {
- for(j = 0; j < jlhKolom; j += 1) {
- printf("Masukkan nilai Matriks[%d][%d]: ", i+1, j+1);
- scanf("%d", &matriks[i][j]);
- }
- }
- for(i = 0; i < jlhBaris; i += 1) {
- nol = 0;
- for(j= 0; j < jlhKolom; j += 1) {
- if(matriks[i][j] == 0) nol += 1;
- printf("%d ", matriks[i][j]);
- }
- if(nol == 4)
- penentu = 1;
- puts("");
- }
- if(penentu) {
- printf("\nMatriks ini memilik baris yang nilainya nol semua");
- }
- return 0;
- }
Untuk hasil kompilasi dari kode program di atas, dapat dilihat pada screenshoot di bawah ini.
Nested Loop - kodeprogramcpp |
ConversionConversion EmoticonEmoticon