for i := 1 to 1000 do
begin
writeln('Hello World');
end;
readln;
end.
Di bagian var, saya membuat sebuah variabel i dengan tipe data integer. Variabel ini
saya siapkan sebagai variabel counter.
Di dalam bahasa pemrograman komputer, variabel i, j, dan k sering digunakan sebagai
variabel counter. Anda akan sering melihat huruf-huruf ini dalam setiap perulangan, tidak hanya
dalam bahasa Pascal saja.
Karena keterbatasan ukuran layar, kita tidak akan bisa menghitung jumlah “Hello
World” ini. Tapi kita bisa memanfaatkan variabel counter i. Saya akan ubah kode programnya
menjadi seperti berikut:
program for_do_loop;
uses crt;
var
i: integer;
begin
clrscr;
for i := 1 to 1000 do
begin
writeln('Hello World ke - ',i);
end;
readln;
end.
Disini, saya menambahkan variabel counter i ke dalam blok perulangan.
Kode writeln(„Hello World ke – „,i), artinya saya ingin menampilkan Hello World – 1, Hello
World – 2, Hello World – 3, hingga Hello World – 1000.
Jika komputer anda cukup lambat (eh), ketika program dijalankan akan terlihat teks Hello
World menaik secara perlahan dari 1 hingga 1000.
for i := 1 to 10 do
begin
writeln('7 x ',i,' = ',7 * i);
end;
readln;
end.
Ini sebenarnya modifikasi dari kode program perulangan Hello World. Saya merangkai
tampilan daftar perkalian menggunakan perintah writeln(„7 x „,i,‟ = „,7 * i). Jika anda mengikuti
tutorial belajar pascal duniailkom dari awal, ini adalah penyambungan teks dengan variabel.
Tanda koma digunakan untuk memisahkan mana bagian teks, dan mana variabel Pascal.
Sebagai contoh terakhir, mari kita coba modifikasi kode program diatas agar lebih
interaktif. Kali ini saya ingin membuat daftar perkalian tapi angka perkaliannya diinput oleh
program for_do_loop;
uses crt;
var
i,angka: integer;
begin
clrscr;
writeln('========================');
writeln('Program Daftar Perkalian');
writeln('========================');
writeln;
writeln;
for i := 1 to 10 do
begin
writeln( i ,' x ', angka ,' = ', i * angka);
end;
readln;
end.
Disini saya menggunakan 2 buah variabel: i dan angka. Variabel angka digunakan untuk
menampung inputan, sedangkan variabel i sebagai variabel counter.
Selain tambahan kode readln(angka), kode program diatas mirip seperti sebelumnya.
Tentu saja di dalam blok perulangan saya harus membuat baris writeln( i ,‟ x „, angka ,‟ = „, i *
angka) agar variabel angka di proses sebagai bilangan pengali.
program for_do_loop;
uses crt;
var
i: integer;
begin
clrscr;
readln;
end.
WHILE (condition) DO
begin
(kode program yang ingin diulang disini...)
(kode program untuk mengubah condition..)
end;
Kunci dari perulangan WHILE DO ada di condition dan kode program untuk
mengubah condition. Condition bisa dikatakan sebagai syarat agar perulangan bisa dijalankan.
Selama syarat ini terpenuhi (bernilai TRUE), perulangan akan terus dijalankan. Jika syarat ini
tidak terpenuhi (bernilai FALSE), perulangan tidak akan berjalan.
Mari kita lihat contoh kode programnya.
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 0;
while i < 10 do
begin
writeln('Variabel i sekarang bernilai: ',i);
i:= i + 1;
end;
readln;
end.
Kondisi perulangan WHILE DO yang saya pakai sama persis seperti sebelumnya. Hanya
saja kali ini perintah yang dijalankan pada setiap perulangan adalah writeln(„Variabel i
sekarang bernilai: „,i).
Ini akan membantu kita melihat nilai variabel counter i yang terus bertambah 1 selama
perulangan dijalankan.
while i <= 10 do
begin
writeln('Variabel i sekarang bernilai: ',i);
i:= i + 1;
end;
readln;
end.
Kuncinya adalah bagaimana menentukan kondisi awal variabel i, dan kondisi akhir dari
perulangan. Dengan membuat i:= 5, dan while i <= 10 do, artinya nilai i akan mulai dari 5, 6, 7,
8, 9, dan 10.
Tapi saya juga bisa menggunakan kode program berikut:
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 5;
while i < 11 do
begin
writeln('Variabel i sekarang bernilai: ',i);
i:= i + 1;
end;
readln;
end.
Dapatkah anda melihat bedanya? Perhatikan bahwa kali ini saya menggunakan
kondisi while i < 11 do. Sebenarnya ini sama seperti while i <= 10 do. Angka 10 akan TRUE
jika dibandingkan dengan “< 11″, maupun “<= 10“.
Konsep seperti ini agar selalu diperhatikan ketika membuat perulangan WHILE DO.
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 5;
while i < 11 do
begin
writeln('Variabel i sekarang bernilai: ',i);
end;
readln;
end.
Jika anda menjalankan kode program diatas, akan terjadi Infinity Loop. Ini karena
kondisi while i <= 10 do akan selalu TRUE. Di dalam perulangan saya tidak membuat „sesuatu‟
yang bisa mengubah nilai variabel i (untuk membuat syarat i <= 10 menjadi FALSE).
Infinity Loop biasanya terjadi karena kesalahan logika dari programmer, terutama untuk
perulangan WHILE DO dan REPEAT UNTIL. Untuk menghentikan infinity loop, anda bisa
menekan kombinasi tombol CRTL + C, atau menutup paksa Free Pascal.
while i >= 0 do
begin
writeln('Hitung mundur: ',i);
i:= i - 1;
end;
readln;
end.
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 3;
while i <= 30 do
begin
write(i,' ');
i:= i + 3;
end;
readln;
end.
Sampai disini saya sarankan anda mencoba2 berbagai kombinasi perulangan lain,
misalnya membuat perulangan yang lompat setiap 7 angka, atau perulangan yang mundur 4
angka, misalnya dari 100, ke 96, ke 92, ke 88, dst.
Dalam tutorial belajar pascal kali ini kita telah membahas perulangan WHILE DO. Di
dalam pascal masih ada 1 lagi struktur perulangan, yakni REPEAT UNTIL. Apa bedanya
perulangan WHILE DO dengan REPEAT UNTIL? Inilah yang akan kita bahas dalam tutorial
selanjutnya: Perulangan REPEAT UNTIL dalam Pascal.
program repeat_until;
uses crt;
var
i: integer;
begin
clrscr;
i:= 0;
repeat
begin
writeln('Hello World');
i:= i + 1;
end;
until i = 10;
readln;
end.
Terlihat sangat mirip dengan WHILE DO, bedanya variabel counter i akan di cek di akhir
perulangan.
Mari kita tampilkan nilai variabel i dalam setiap iterasi:
program repeat_until;
uses crt;
var
i: integer;
begin
clrscr;
i:= 0;
Kembali, jika anda sudah paham konsep perulangan WHILE DO, tidak akan sulit
memahani perulangan REPEAT UNTIL.
Perbedaan mendasar, bagaimana jika nilai variabel counter ini sudah tidak bisa dipenuhi
saat perulangan di jalankan? Mari kita coba:
program repeat_until;
uses crt;
var
i: integer;
begin
clrscr;
i:= 10000;
repeat
begin
writeln('Variabel i sekarang bernilai: ',i);
i:= i + 1;
end;
until i > 10;
readln;
end.
Perhatikan di awal kode program, saya mengisi variabel counter i dengan nilai 1000. Di
akhir looping REPEAT UNTIL, saya membuat kondisi until i > 10. Artinya, kondisi ini sudah
tidak memenuhi. 1000 tentu lebih besar dari 10, sehingga i > 10 akan menghasilkan
nilai FALSE.
Namun inilah keunikan perulangan REPEAT UNTIL. Karena kondisi diperiksa di akhir
perulangan, isi perulangan itu bisa berjalan minimal 1 kali. Berikut hasil kode program tersebut:
repeat
begin
write(i,' ');
i:= i + 5;
end;
until i > 100;
readln;
end.
Kunci dari pembuatan deret ini ada di variabel counter. Saya menggunakan perintah i:= i
+ 5 dalam perulangan. Artinya, variabel i ditambahkan 5 dalam setiap iterasi. Hasil akhir berupa
deret dari 5, 10, 15, dst hingga 100.