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:
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.
Kak
Klo kayak gini gimanay
1
12
123
1234
12345
Konsep yang sama bisa dibaca2 kesini: https://www.duniailkom.com/tutorial-belajar-pascal-cara-membuat-segitiga-bintang-bahasa-pemrograman-pascal/
kalau programnya untuk kek gini gimana yah ? (pake while do)
1
3 6
4 7 10
5 8 11 13
6 9 12 14 15
(Catatan : tabel di atas adalah hasil untuk baris sama dengan 5)
1 nya harusnya di atas 6
Requestnya saya tampung dulu ya, kebetulan sedang ada kesibukan lain…
Ka kalo outputnya gini gimana
*
**
*
**
***
Konsep dasar pembuatan segitiga bintang di Pascal bisa lanjut ke sini: https://www.duniailkom.com/tutorial-belajar-pascal-cara-membuat-segitiga-bintang-bahasa-pemrograman-pascal/
Tapi untuk dua baris di awal akan butuh kondisi if tambahan.
Kak kalo kayak gini gimana ya
*
***
*****
*******
*********
***********
Bisa lanjut ke sini: https://www.duniailkom.com/tutorial-belajar-pascal-cara-membuat-segitiga-bintang-bahasa-pemrograman-pascal/
Kalau output nya
11111
22222
33333
44444
55555
Itu pake while do gimana ya min ?
5
5 4
5 4 3
5 4 3 2
5 4 3 2 1