Anda di halaman 1dari 18

Tutorial Belajar Pascal Part 45: Perulangan Bersarang (Nested Loop) dalam Pascal (1)03 Nov 16 |

Andre | Tutorial Pascal | 6 Comments

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 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.

Tutorial Belajar Pascal Part 47: Fungsi Perintah BREAK Dalam Perulangan Pascal08 Nov 16 | Andre |
Tutorial Pascal | 2 Comments

Dalam lanjutan tutorial belajar bahasa pemrograman Pascal di duniailkom kali ini kita akan
membahas fungsi dari perintah BREAK. Perintah BREAK sendiri masih berhubungan dengan materi
tentang perulangan pascal.

Pengertian dan Fungsi Break Pascal

Sesuai dengan namanya, perintah break digunakan untuk berhenti. Berhenti dari apa? Berhenti dari
perulangan yang sedang berlangsung. Apakah itu perulangan FOR DO, WHILE DO, maupun REPEAT
UNTIL, akan dipaksa berhenti saat ketemu perintah break.

Umumnya perintah break disimpan dalam sebuah kondisi IF ELSE. Selama kondisi belum terpenuhi,
perulangan tetap terus berlangsung. Jika kondisi sesuai, maka break!

Mari langsung kita bahas menggunakan contoh kode program.

Contoh Kode Program Penggunaan Break Pascal

Silahkan anda pelajari sejenak kode program berikut:

Program penggunaan_break;

Uses crt;
Var

I: integer;

Begin

Clrscr;

For i := 1 to 10 do

Begin

Writeln(‘Hello Indonesia ‘,i);

If (i = 5) then

Break;

End;

Readln;

End.

Disini saya membuat sebuah perulangan FOR DO, yakni menampilkan string ‘Hello Indonesia 1’,
‘Hello Indonesia 2’, dst hingga ‘Hello Indonesia 10’.

Akan tetapi, di dalam perulangan ini terdapat perintah if (i = 5) then break. Artinya, saat variabel
counter i mencapai nilai 5, kondisi (i = 5) akan bernilai true. Dengan demikian, perulangan akan
berhenti di posisi i = 5:

Contoh Program Pascal – Fungsi dan Pengertian Perintah Break

Yang mesti diperhitungkan, adalah kapan kita menjalankan kondisi break. Dari kode program
dibawah ini, bisakah anda menemukan sesuatu yang salah?

Program penggunaan_break;

Uses crt;

Var

I: integer;

Begin
Clrscr;

For i := 100 downto 10 do

Begin

Writeln(i ,’ * 3 = ‘,i*3);

If (i = 5) then

Break;

End;

Readln;

End.

Contoh Program Pascal – Fungsi dan Pengertian Perintah Break2

Saya membuat sebuah perulangan mundur, yakni dari variabel counter i = 100 hingga 10. Dalam
setiap perulangan, tampilkan nilai perkalian 3, seperti 100 * 3 = 300, 99 * 3 = 297, dst hingga 10 * 3 =
30.

Di dalam perulangan terdapat 1 kondisi break: if (i = 5) then break. Perintah ini tidak akan pernah
dijalankan karena secara logika variabel counter i tidak akan pernah bernilai 5. Ini karena perulangan
itu sendiri akan berhenti duluan, yakni saat i bernilai 10.

Bahasan lain yang cukup menarik adalah, posisi peletakan perintah break bisa mempengaruhi hasil
akhir. Contohnya kode program berikut:

Program penggunaan_break;

Uses crt;

Var

I: integer;

Begin

Clrscr;

For i := 1 to 10 do
Begin

Writeln(i ,’ * 5 = ‘,i*5);

If (i = 7) then

Break;

End;

Readln;

End.

Contoh Program Pascal – Fungsi dan Pengertian Perintah Break

Saya ingin menampilkan perkalian 5 untuk variabel counter i, mulai dari 1 hingga 10. Di dalam
perulangan terdapat kondisi if (i = 7) then break. Artinya pada saat variabel counter i bernilai 7,
perulangan akan berhenti.

Perhatikan bahwa saya menulis perintah writeln(i ,’ * 5 = ‘,i*5) sebelum break. Bagaimana jika
dibalik?

Program penggunaan_break;

Uses crt;

Var

I: integer;

Begin

Clrscr;

For i := 1 to 10 do

Begin

If (i = 7) then

Break;

Writeln(i ,’ * 5 = ‘,i*5);

End;
Readln;

End.

Contoh Program Pascal – Fungsi dan Pengertian Perintah Break

Kode program ini sama persis seperti sebelumnya. Hanya saja saya membalik posisi letak kondisi if (i
= 7) then break, menjadi sebelum perintah writeln(i ,’ * 5 = ‘,i*5).

Hasilnya, perulangan kita hanya tampil sampai 6 * 5 = 30, tidak sampai ke 7. Padahal kondisi break
baru bernilai true pada saat i = 7.

Perbedaan ini terjadi karena pada contoh kedua, break sudah dijalankan sebelum pascal sampai ke
baris writeln(i ,’ * 5 = ‘,i*5). Akibatnya hasil akhir berhenti pada 6 * 5 = 30, bukan 7 * 5 = 35.

Contoh Break Pascal pada WHILE DO

Contoh penggunaan perintah break sebelumnya saya menggunakan perulangan FOR. Kita juga bisa
menggunakannya pada perulangan lain seperti WHILE DO maupun REPEAT UNTIL.

Berikut contoh penggunaan perintah break pada perulangan WHILE DO:

Program penggunaan_break;

Uses crt;

Var

I: integer;

Begin

Clrscr;

I:= 0;

While i < 10 do

Begin

Writeln(‘Variabel i sekarang bernilai: ‘,i);


I:= i + 1;

If (i = 6) then

Break;

End;

Readln;

End.

Contoh Program Pascal – Fungsi dan Pengertian Perintah Break While Do

Tidak ada perbedaan mendasar. Ketika variabel counter i sampai ke 6, perintah if (i = 6) then break,
akan bernilai true. Akibatnya perulangan WHILE DO akan berhenti di i = 6.

Tutorial Belajar Pascal Part 48: Fungsi Perintah CONTINUE Dalam Perulangan Pascal09 Nov 16 |
Andre | Tutorial Pascal | 25 Comments

Perintah continue yang akan kita bahas dalam tutorial belajar bahasa pemrograman pascal kali ini
mirip seperti perintah break dari tutorial sebelumnya, yakni sama-sama menghentikan perulangan,
namun dengan sedikit perbedaan.

Pengertian dan Fungsi Continue Pascal

Jika perintah break di gunakan untuk menghentikan perulangan saat itu juga, maka perintah
continue digunakan untuk menghentikan 1 iterasi yang saat ini sedang berlangsung.

Perulangan tidak berhenti total, yang dihentikan hanya 1 kali perulangan yang sedang terjadi,
kemudian kode program akan melanjutkan perulangan.

Contoh Kode Program Penggunaan Continue Pascal

Sebagai contoh kode program pascal untuk penggunaan perintah continue, silahkan anda perhatikan
kode berikut ini:

Program penggunaan_continue;

Uses crt;
Var

I: integer;

Begin

Clrscr;

For i := 1 to 10 do

Begin

If (i = 5) then

Continue;

Writeln(‘Hello Indonesia ‘,i);

End;

Readln;

End.

Contoh Program Pascal – Fungsi dan Pengertian Perintah Continue

Hasilnya perulangan tetap dijalankan mulai dari i = 1 hingga i = 10.

Tampak tidak ada perbedaan? Perhatikan lagi secara seksama, terutama untuk baris ‘Hello Indonesia
5′.

Yup, baris Hello Indonesia 5 tidak tampil! Ini terjadi berkat kondisi if (i = 5) then continue. Artinya,
ketika variabel counter i mencapai 6, perintah continue akan memutus perulangan saat itu, dan
lanjut ke i = 7. Inilah fungsi dari perintah continue.

Sama seperti break, posisi perintah continue ini sangat berpengaruh. Berikut contoh kasusnya:

Program penggunaan_continue;
Uses crt;

Var

I: integer;

Begin

Clrscr;

For i := 1 to 10 do

Begin

Writeln(‘Hello Indonesia ‘,i);

If (i = 5) then

Continue;

End;

Readln;

End.

Contoh Program Pascal – Fungsi dan Pengertian Perintah Continue

Disini saya memindahkan posisi perintah if (i = 5) then continue setelah baris writeln(‘Hello
Indonesia ‘,i). Terlihat baris Hello Indonesia 5 tetap tampil, bahkan seluruh baris tampil, mulai dari
Hello Indonesia 1 hingga Hello Indonesia 10. Kenapa bisa begini?

Hal ini terjadi karena pada saat i = 5, baris writeln(‘Hello Indonesia ‘,i) sudah dijalankan terlebih
dahulu, barulah perintah continue di proses. Akibatnya, sudah terlambat untuk melompati iterasi
saat itu. Solusinya, kita harus jalankan perintah continue sebelum baris writeln(‘Hello Indonesia ‘,i).

Contoh Continue Pascal pada WHILE DO

Untuk perulangan while do, penggunaan perintah continue harus ditambahkan dengan menaikkan
nilai variabel counter. Berikut contohnya:

Program penggunaan_break;

Uses crt;

Var

I: integer;
Begin

Clrscr;

I:= 0;

While i < 10 do

Begin

If (i = 6) then

Begin

I:= i + 1;

Continue;

End;

Writeln(‘Variabel i sekarang bernilai: ‘,i);

I:= i + 1;

End;

Readln;

End.

Contoh Program Pascal – Fungsi dan Pengertian Perintah Continue While Do

Anda mungkin bertanya, untuk apa tambahan baris:

If (i = 6) then

Begin

I:= i + 1;

Continue;

End;

Kenapa tidak if (i = 6) then continue saja?


Perintah untuk menaikkan nilai variabel counter i, yakni baris i:= i + 1 harus ditambahkan sebelum
perintah continue. Jika tidak, akan terjadi infinity loop.

Jika saya menulis if (i = 6) then continue tanpa menaikkan nilai variabel counter, perulangan while do
akan berputar di i = 6 dan tidak akan bisa lanjut ke i = 7 (karena memang tidak ada perintah untuk
menaikkan nilai i ke 7). Baris i:= i + 1 saya tempatkan di akhir perulangan, sehingga akan dilompati
oleh perintah continue.

Tambahan perintah begin dan end digunakan sebagai block kode program ketika kondisi if (i = 6)
dipenuhi. Jika ini tidak ditulis, perintah continue tidak akan dianggap sebagai bagian dari if (i = 6).

Jika dibandingkan dengan perintah break, perintah continue tidak terlalu sering dipakai. Namun
kedua perintah ini hampir selalu hadi di setiap bahasa pemrograman, tidak hanya di Pascal saja.

Anda mungkin juga menyukai