Struktur Dasar Algoritma: Perulangan FOR Bersarang (Nested Loop)

Setelah menguasai dasar-dasar perulangan tunggal (seperti FOR-DO), saatnya Anda mempelajari konsep yang lebih kompleks namun sangat kuat: Perulangan Bersarang atau Nested Loop.

Perulangan bersarang adalah perulangan yang berada di dalam perulangan yang lainnya. Konsep ini sangat penting dalam algoritma untuk memproses data yang berbentuk dua dimensi, seperti tabel, matriks, atau pola-pola geometris.

Cara Kerja Perulangan FOR Bersarang

Untuk memahami logika nested loop, ingatlah prinsip ini:

Perulangan yang lebih dalam (inner loop) akan diproses terlebih dahulu sampai selesai (habis), kemudian perulangan yang lebih luar (outer loop) baru akan bertambah. Setelah itu, proses akan kembali ke perulangan yang lebih dalam lagi, dimulai dari nilai awalnya, dan seterusnya.

Struktur Umum:

For I := nilai_awal_luar to nilai_akhir_luar Do 
begin
  // Perulangan Luar (Outer Loop)

  For J := nilai_awal_dalam to nilai_akhir_dalam Do
  begin
    // Perulangan Dalam (Inner Loop)
    // Kode ini diulang sepenuhnya untuk setiap langkah 'I'
  end;
  
  // Perintah pindah baris (biasanya Writeln)

end;

Contoh 1: Mencetak Kombinasi Angka Baris dan Kolom

Contoh ini menunjukkan bagaimana perulangan luar (I) dan perulangan dalam (J) berinteraksi, dengan output pasangan angka dibatasi oleh titik (.).

Algoritma:

  • Perulangan luar (I) berjalan dari 1 sampai 5.
  • Perulangan dalam (J) berjalan dari 1 sampai 3.
  • Aksi mencetak I.J.
Program ForBersarang;
Deklarasi
  I, J: integer;
Algoritma
  For I = 1 to 5 Do
    For J = 1 to 3 Do
      Write(I, '.', J) // Mencetak I.J
    Endfor
  Endfor
End Algoritma

Implementasi Pascal:

Program ForBersarang;
Var
  I,J: integer;
Begin
  For I:=1 to 5 Do
  Begin
    For J:=1 to 3 Do
    Begin
      // Output direvisi menjadi I.J untuk kejelasan
      Write (I, '.', J, ' '); 
    End;
    Writeln; // Pindah baris setelah inner loop selesai
  End;
  Readln;
End.

Hasil Output:

Output terdiri dari 5 baris dan setiap baris memiliki 3 pasangan angka I.J:

1.1 1.2 1.3 
2.1 2.2 2.3 
3.1 3.2 3.3 
4.1 4.2 4.3 
5.1 5.2 5.3 

Studi Kasus: Membuat Pola Bintang (Pola Geometris)

Nested loop adalah alat utama untuk membuat pola-pola geometris di layar. Perulangan luar (X) mengontrol baris, sementara perulangan dalam (Y) mengontrol kolom di setiap baris.

Contoh 2: Pola Segitiga Siku-siku (Naik)

Untuk membuat segitiga, jumlah kolom harus bergantung pada nomor baris saat ini.

Algoritma:

  • Perulangan luar (X) berjalan dari 1 sampai 5.
  • Perulangan dalam (Y) berjalan dari 1 sampai X.
  • Aksi mencetak bintang (*).
Program Bintang;
Deklarasi
  x,y: integer
Algoritma
  for x = 1 to 5 do // Baris
    for y = 1 to x do // Kolom
      write('*')
    writeln // Pindah baris
  endfor
  endfor
End Algoritma 

Hasil Output:

*
**
***
****
*****

Contoh 3: Pola Segitiga Terbalik (Menurun)

Untuk membuat pola terbalik, kita membuat perulangan dalam agar berjalan dari nomor baris saat ini (X) hingga batas akhir.

Algoritma:

  • Perulangan luar (X) berjalan dari 1 sampai 5.
  • Perulangan dalam (Y) berjalan dari X sampai 5.
  • Aksi mencetak bintang (*).
Program Bintang2;
Deklarasi
  x,y: integer
Algoritma
  for x = 1 to 5 do // Baris
    for y = x to 5 do // Kolom
      write('*')
    writeln
  endfor
  endfor
End Algoritma 

Hasil Output:

***** 
**** 
*** 
** 
* 

Penggabungan Logika: Nested Loop dengan IF-THEN-ELSE

Nested loop dapat digabungkan dengan struktur IF-THEN-ELSE untuk membuat pola yang lebih kompleks berdasarkan kondisi tertentu.

Contoh 4: Pola Pagar Baris Ganjil-Genap

Contoh ini membuat pola di mana baris ganjil dicetak dengan * dan baris genap dicetak dengan #. Logikanya adalah menguji variabel perulangan luar (X) menggunakan operator modulo (mod).

 

Algoritma:

  • Perulangan luar (X) dan dalam (Y) sama-sama berjalan 1 sampai 5.
  • Jika nomor baris (X) dibagi 2 sisanya tidak nol (<> 0), berarti baris Ganjil, cetak *.
  • Selain itu (Genap), cetak #.
Program Pagar;
Deklarasi
  x,y: integer
Algoritma
  for x = 1 to 5 do
    for y = 1 to 5 do
      if (x mod 2 <> 0) then // Cek Ganjil
        write('*')
      else // Cek Genap
        write('#')
      endif
    writeln
  endfor
  endfor
End Algoritma 

Hasil Output:

***** 
##### 
***** 
##### 
***** 

Kesimpulan

Perulangan FOR Bersarang (Nested Loop) adalah teknik kunci dalam pemrograman yang memungkinkan Anda memproses data dan struktur dua dimensi secara efisien. Kuncinya adalah selalu mengingat hierarki: perulangan luar mengontrol baris dan perulangan dalam menyelesaikan semua kolom untuk setiap langkah perulangan luar.

Dengan menggabungkan Nested Loop dengan struktur IF-THEN-ELSE, Anda dapat membuat program yang menghasilkan pola visual yang sangat beragam dan kompleks.

Tantangan: Modifikasi Contoh 4 (Pola Pagar) agar simbol * dan # bergantian, tidak hanya berdasarkan baris ganjil/genap, tetapi juga kolom ganjil/genap di setiap baris.

This article was updated on October 8, 2025