Tutorial Belajar Pascal Part 45: Perulangan Bersarang (Nested Loop) dalam Pascal (1)

Jika pembahasan tentang perulangan FOR DO, WHILE DO dan REPEAT UNTIL sudah cukup rumit, maka materi kali ini akan membuat anda semakin pusing, hehe…

Dalam tutorial belajar bahasa pemrograman Pascal di Duniailkom kali ini kita akan membahas perulangan bersarang atau nested loop.

Karena pembahasan tentang nested loop ini cukup panjang, saya akan pecah menjadi 2 artikel.

Pengertian Perulangan Bersarang (Nested Loop) Pascal

Secara sederhana, perulangan bersarang atau dalam bahasa inggris sering disebut sebagai nested loop adalah perulangan di dalam perulangan. Sebelumnya kita sudah mempelajari tentang nested IF, yakni IF di dalam IF. Nested loop kurang lebih mirip seperti itu.

Berikut format dasar nested loop menggunakan perulangan FOR DO:

FOR (variabel_counter_1) := (nilai_awal_1) TO (nilai_akhir_1) DO
begin

  (kode program yang ingin diulang disini...)
  
  FOR (variabel_counter_2) := (nilai_awal_2) TO (nilai_akhir_2) DO
  begin
    (kode program yang ingin diulang disini...)
  end;
  
end;

Materi tentang nested loop ini memang cukup rumit, karena melibatkan 2 kali perulangan. Maka tidak heran jika banyak tugas sekolah / kampus / kuliah yang berkaitan dengan nested loop.

Soal yang hampir selalu keluar adalah membuat segitiga bintang, yang menggunakan prinsip nested loop. Agar lebih paham, mari kita masuk ke contoh kode program.


Contoh Kode Program Pascal untuk Nested Loop

Sebagai permulaan, saya akan membuat sebuah perulangan FOR DO 'biasa', yang kode programnya adalah sebagai berikut:

program nested_loop;
uses crt;
var
  i: integer;
begin
  clrscr;

  for i := 1 to 5 do
    begin
      writeln('*');
    end;
    
  readln;
end.

Tidak ada yang baru disini. Saya membuat perulangan FOR DO menaik sebanyak 5 kali dari angka 1 ke 5. Disetiap perulangan ini saya menampilkan sebuah karakter bintang. Hasilnya terlihat 5 bintang ditampilkan ke bawah. Ini karena saya menggunakan perintah writeln.

Contoh Program Pascal - Perulangan FOR DO writeln

Bagaimana jika saya ganti writeln menjadi write? Dapatkan anda menebak hasilnya?

program nested_loop;
uses crt;
var
  i: integer;
begin
  clrscr;

  for i := 1 to 5 do
    begin
      write('*');
    end;
    
  readln;
end.

Contoh Program Pascal - Perulangan FOR DO write

Yup, sekarang bintang ini berjejer dari kiri ke kanan dalam 1 baris. Jumlah bintangnya ada 5 buah karena saya memang menjalankan 5 kali perulangan (perintah for i := 1 to 5 do).

Pemahaman tentang perbedaan writeln dan write di dalam perulangan sangat penting untuk bisa memahami konsep nested loop yang kita pelajari.

Baik saya akan membuat sebuah kode program untuk nested loop. Bisakah anda menebak bagaimana hasil akhirnya?

program nested_loop;
uses crt;
var
  i,j: integer;
begin
  clrscr;

  for i := 1 to 5 do
  begin
        
    for j := 1 to 5 do
      begin
        write('#');
      end;
          
  writeln('*');
  end;
    
  readln;
end.

Di awal program saya mendefenisikan 2 buah variabel, yakni i dan j. Kedua variabel ini berfungsi sebagai variabel counter. Variabel i untuk perulangan terluar, dan variabel j untuk perulangan terdalam.

Silahkan anda pelajari sejenak kode program diatas. Kalau perlu corat coret di kertas bagaimana setiap perulangan di jalankan.

Ketika perulangan i dijalankan pertama kali, program akan lanjut ke perulangan j. Di perulangan j ini saya membuat 5 kali perulangan untuk perintah write('#'). Artinya, di layar akan tampil tanda # sebanyak 5 kali. Karena saya menggunakan write, maka tanda pagar akan berjejer dalam 1 baris.

Setelah perulangan j selesai dijalankan sebanyak 5 kali, berikutnya terdapat perintah writeln('*'). Ini akan menampilkan 1 karakter bintang dan pindah baris. Artinya di layar akan tampil #####*. Lima buah tanda pagar berasal dari perulangan j, dan satu tanda bintang berasal dari perulangan i.

Kode program akan kembali menjalankan perulangan i kedua (ingat, saya membuat for i := 1 to 5 do, artinya perulangan i akan dijalankan sebanyak 5 kali). Di perulangan kedua ini akan dijalankan kode program yang kurang lebih sama seperti sebelumnya, dan akan menampilkan tanda #####*.

Ini terus dilakukan sebanyak 5 kali. Hasil akhirnya adalah sebagai berikut:

Contoh Program Pascal - Perulangan Nested Loop FOR DO bintang

Jika anda kurang memahami kenapa hasilnya bisa seperti ini, kembali silahkan baca dengan perlahan penjelasan saya sebelumnya.

Anda juga bisa ubah kode program tersebut, misalnya diganti dengan karakter lain, atau menambah total perulangan, kemudian analisa bagaimana hasilnya. Pemahaman ini sangat diperlukan untuk mengerti bagaimana konsep nested loop.

Tutorial tentang nested loop ini akan berlanjut, dimana kita akan menggunakan variabel counter i dan j di dalam perulangan bersarang.


eBook Pascal Uncover Duniailkom
Apabila anda serius ingin mempelajari Pascal dan butuh materi Pascal yang jauh lebih lengkap, Duniailkom telah menerbitkan eBook Pascal Uncover yang membahas bahasa pemrograman Pascal dari dasar hingga procedure, function dan contoh kasus. Penjelasan lebih lanjut bisa ke eBook Pascal Uncover Duniailkom.

6 Comments

  1. McKarlson
    16 Mar 17
    • Andre
      18 Mar 17
      • derry
        13 Dec 17
        • Andre
          14 Dec 17
  2. Nobita
    24 Jan 18

Add Comment