Tutorial Belajar Pascal Part 46: Perulangan Bersarang (Nested Loop) dalam Pascal (2)

Tutorial kali ini merupakan lanjutan dari pembahasan tentang nested loop dalam bahasa pemrograman PASCAL. Kali ini kita akan coba mengakses variabel counter dari dalam perulangan nested loop pascal.


Contoh Kode Program Pascal untuk Nested Loop

Sebelumnya, kita telah membuat kode program nested loop untuk menampilkan karakter pagar dan bintang. Kali ini saya akan menampilkan variabel counter i dan j ke dalam kode program. Berikut kode programnya:

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(i*j);
        write(' ');
      end;
          
    writeln;
    end;
    
  readln;
end.

Agar lebih paham, silahkan anda pelajari sejenak apa yang dilakukan dari kode program diatas. Disini saya membuat nested loop dengan variabel counter i dan j. Kemudian di dalam perulangan j saya menulis write(i*j); dan write(' ');.

Saat perulangan i dijalankan pertama kali (i = 1), kode program akan langsung masuk ke perulangan j.

Ketika berada ke dalam perulangan j, nilai i = 1, dan j = 1. Kemudian jalankan perintah write(i*j); dan write(' ');, hasilnya adalah 1  * 1 = 1, lalu sebuah spasi. Dilayar akan tampil angka 1 dan sebuah spasi.

Selanjutnya variabel counter j akan naik menjadi 2. Kembali dijalankan write(i*j); dan write(' ');. Hasilnya adalah 1 * 2 = 2, dikuti sebuah spasi. Dilayar akan tampil angka 2 dan sebuah spasi.

Begitu seterusnya hingga perulangan j selesai dan di layar akan tampil 1 2 3 4 5. Kode program akan keluar dari perulangan j dan lanjut ke perintah writeln;. Ini bisa diartikan sebagai instruksi agar tampilan pindah ke baris baru.

Kita masih ada di dalam perulangan i, dan variabel counter i akan naik menjadi 2, kemudian masuk kembali ke dalam perulangan j. Disini akan dijalankan kode program yang sama, yakni write(i*j); dan write(' ');. Karena i saat ini bernilai 2, hasil akhir seluruh perulangan j (sebanyak 5 kali) adalah: 2 4 6 8 10.

Perulangan seperti ini akan dijalankan sebanyak 5 kali, dan hasil akhirnya adalah sebagai berikut:

Contoh Program Pascal - Perulangan Nested Loop FOR DO variabel counter

Jika anda masih kurang paham kenapa hasilnya bisa seperti ini, silahkan pelajari kembali penjelasan diatas. Kalau perlu buat catatan apa yang terjadi untuk setiap perulangan.

Sebagai tambahan, perintah write(i*j); dan write(' ') bisa disingkat menjadi 1 kali pemanggilan, menjadi write(i*j,' '). Seperti kode program berikut:

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(i*j,' ');
      end;
        
    writeln;
    end;
    
  readln;
end.

Tidak ada perbedaan hasil dari kode program sebelumnya.


Contoh Nested Loop Menggunakan Perulangan WHILE DO

Dalam 2 tutorial tentang nested loop sebelum ini saya menggunakan perulangan FOR DO agar kode programnya sedikit sederhana. Namun hal yang sama juga bisa dilakukan menggunakan perulangan lain seperti WHILE DO dan REPEAT UNTIL.

Jika menggunakan WHILE DO atau REPEAT UNTIL kita harus memastikan variabel counter dinaikkan pada saat yang tepat, kalau tidak bisa terjadi infinty loop.

Berikut kode program nested loop dari contoh sebelumnya, tapi kali ini saya menggunakan WHILE DO:

program nested_loop;
uses crt;
var
  i,j: integer;
begin
  clrscr;
  i := 1;
  
  while i <= 5 do
  begin
    j := 1;    
    
    while j <= 5 do
    begin
      write(i * j,' ');
      j := j + 1;
    end;
    
    writeln;
    i := i + 1;
  end;
  
  readln;
end.

Dari hasil yang tampil tidak terdapat perbedaan dengan contoh dari FOR DO sebelumnya. Tapi dari kode program tampak lebih 'njelimet'. Silahkan anda pelajari dan bandingkan dengan contoh yang menggunakan FOR DO.


Seperti yang saya tulis dalam tutorial sebelumnya, nested loop memang cukup rumit dan melibatkan alur logika yang kompleks. Tugas-tugas kuliah sering menjadikan nested loop sebagai penguji logika dan pemahaman algoritma. Yang paling terkenal adalah membuat segitiga bintang, piramida bintang, dengan berbagai macam bentuk.

Pembahasan tentang segitiga bintang, piramida, deret, dll saya rencanakan akan dibahas di tutorial khusus tentang studi kasus bahasa pemrograman Pascal.

Selanjutnya, kita akan masuk kepada fungsi perintah break dalam perulangan Pascal.


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.

11 Comments

  1. Farel Nuafal Azhari
    26 Apr 18
  2. rizqul
    10 Oct 18
    • rizqul
      10 Oct 18
      • Andre
        11 Oct 18
  3. Rangga Ariq
    10 Dec 20
  4. Rudy Rizky
    27 Sep 22
  5. Ara
    20 Nov 22
  6. VIN
    22 Dec 22

Add Comment