Pemrogaman Looping Selain percabangan, konstruksi fundamental pemrograman yang lainnya adalah looping atau perulangan. DI Pascal ada 3 macam looping. Kita akan pelajari satu per satu:
1. For … to … do
Contoh penggunaan:
Program di atas akan menuliskan angka 1 sampai 5 ke bawah di layar.
Jika ingin melakukan perhitungan mundur dari 5 ke 1, gunakan perintah DOWNTO sebagai pengganti TO (FOR i:=5 DOWNTO 1 DO).
BONUS!!! Untuk variabel yang bertipe char, bisa juga menggunakan FOR dengan cara berikut:
FOR c:='A' TO 'Z' DO write(c,' ');
Atau boleh juga menulisnya dengan
FOR c:='Z' DOWNTO 'a' DO write(c,' ');
Atau untuk tipe boolean, bisa juga seperti ini:
FOR b:=false TO true DO writeln(b);
Bagaimana? Keren kan?
Contoh Program Supermarket
2. While … do
Syntax:
WHILE kondisi DO
BEGIN
…apa_yang_dilakukan…
END;
Bedanya dengan FOR ... DO, adalah pada WHILE ... DO, sebelum memulai masuk ke blok begin end, ada kondisi yang harus dicek. Jika terpenuhi baru masuk ke blok BEGIN END dan terus-menerus diulang hingga kondisi tidak tercapai. Jadi bisa saja yang di dalam blok BEGIN END tidak dijalankan sama sekali.
Contoh penggunaan:
3. Repeat … until
Syntax:
REPEAT
…apa_yang_dilakukan…
UNTIL kondisi
Ini adalah kebalikan dari WHILE DO, jika pada WHILE DO, sebelum menjalankan statement, maka kondisi dicek terlebih dahulu. Maka sebaliknya, pada REPEAT UNTIL, program menjalankan statement dalam blok BEGIN END satu kali terlebih dahulu, baru di akhir dilakukan pengecekan kondisi. Jika kondisi terpenuhi, maka Blok statement akan diulang lagi, sampai kondisi sudah tidak terpenuhi. Jadi, minimal blok program dalam REPEAT UNTIL dijalankan satu kali.
Contoh penggunaan:
Nah, itu semua adalah dasar dari pemrograman Pascal. Untuk lebih lanjut akan dibahas pada waktu berikutnya (semoga saya sempat membuat tutorial berikutnya). Berikut ini saya berikan bonus program BINTANG BERGERAK MEMANTUL-MANTUL DI LAYAR.
PROGRAM BintangMantulMantulSampaiDitekanEscape;
1. For … to … do
Syntax:
FOR variable := nilai_awal TO nilai_akhir DO
BEGIN
…apa_yang_diulang….
END;
Contoh penggunaan:
FOR i:=1 TO 5 DO
BEGIN
Writeln(i);
END;
Program di atas akan menuliskan angka 1 sampai 5 ke bawah di layar.
Jika ingin melakukan perhitungan mundur dari 5 ke 1, gunakan perintah DOWNTO sebagai pengganti TO (FOR i:=5 DOWNTO 1 DO).
BONUS!!! Untuk variabel yang bertipe char, bisa juga menggunakan FOR dengan cara berikut:
FOR c:='A' TO 'Z' DO write(c,' ');
Atau boleh juga menulisnya dengan
FOR c:='Z' DOWNTO 'a' DO write(c,' ');
Atau untuk tipe boolean, bisa juga seperti ini:
FOR b:=false TO true DO writeln(b);
Bagaimana? Keren kan?
Contoh Program Supermarket
2. While … do
Syntax:
WHILE kondisi DO
BEGIN
…apa_yang_dilakukan…
END;
Bedanya dengan FOR ... DO, adalah pada WHILE ... DO, sebelum memulai masuk ke blok begin end, ada kondisi yang harus dicek. Jika terpenuhi baru masuk ke blok BEGIN END dan terus-menerus diulang hingga kondisi tidak tercapai. Jadi bisa saja yang di dalam blok BEGIN END tidak dijalankan sama sekali.
Contoh penggunaan:
i:=1;
WHILE i<6 DO
BEGIN
Writeln(i);
i:=i+1;
END;
3. Repeat … until
Syntax:
REPEAT
…apa_yang_dilakukan…
UNTIL kondisi
Ini adalah kebalikan dari WHILE DO, jika pada WHILE DO, sebelum menjalankan statement, maka kondisi dicek terlebih dahulu. Maka sebaliknya, pada REPEAT UNTIL, program menjalankan statement dalam blok BEGIN END satu kali terlebih dahulu, baru di akhir dilakukan pengecekan kondisi. Jika kondisi terpenuhi, maka Blok statement akan diulang lagi, sampai kondisi sudah tidak terpenuhi. Jadi, minimal blok program dalam REPEAT UNTIL dijalankan satu kali.
Contoh penggunaan:
i:=1;
REPEAT
Writeln(i);
i:=i+5;
UNTIL i>5;
Nah, itu semua adalah dasar dari pemrograman Pascal. Untuk lebih lanjut akan dibahas pada waktu berikutnya (semoga saya sempat membuat tutorial berikutnya). Berikut ini saya berikan bonus program BINTANG BERGERAK MEMANTUL-MANTUL DI LAYAR.
PROGRAM BintangMantulMantulSampaiDitekanEscape;
USES crt;
CONST
lebar=80;
tinggi=25;
xawal=1;
yawal=1;
VAR
x,y : byte;
dx,dy : shortint;
c : char;
BEGIN
{inisialisasi awal}
x:=xawal;
y:=yawal;
dx:=1;
dy:=1;
c:=#0;
REPEAT
clrscr; {bersihkan layar}
gotoxy(x,y);
write('*'); {mencetak bintang pada posisi X,Y}
x:=x+dx; {ubah koordinat x}
y:=y+dy; {ubah koordinat y}
{cek, jika sudah sampai di batas layar,
maka ubah dx & dy untukk ganti arah}
IF (X>=lebar) OR (X<=1) THEN dx:=-dx;
IF (Y>=tinggi) OR (Y<=1) THEN dy:=-dy;
{jika ada penekanan tombol, maka tombol tersebut dideteksi}
IF keypressed THEN c:=readkey;
delay(100); {menunda selama 100ms}
UNTIL c=#27;
END.
0 comments:
Post a Comment