Saturday, August 29, 2009

Soal Pascal 3


Konstanta

Konstanta ini seperti variabel, hanya saja nilainya sudah didefinisikan sebelumnya dan selalu tetap dan tidak bisa diubah dalam program.
Contoh:

Const
Myconst = 1234;
Var
i:word;
Begin
i:=40;
writeln(i*myconst);
End.

Sudah jelas to maksud program di atas? Ingat! Nilai konstanta tidak dapat diubah. Jika dalam program dicoba untuk diubah, maka akan error.


Percabangan

Salah satu dari tiga konstruksi fundamental adalah percabangan/branching. Dalam pascal, percabagan menggunakan syntax if then else dan case of.

Syntax:

IF kondisi THEN
BEGIN
...
END;

Dengan ELSE:

IF kondisi [and] kondisi [or] kondisi THEN
BEGIN
...
END {memang tanpa titik koma di sini; sebelum ELSE tidak perlu titik koma!!!}
ELSE
BEGIN
...
END;

Apabila kondisi terpenuhi, maka program akan menjalankan b\perintah yang ada setelah THEN. Tapi jika kondisi tidaki terpenuhi, maka program akan menjalankan program setelah ELSE.

Contoh penggunaan:

Var i: integer;
Begin
Write('Masukkan bilangan antara 1-100: '); readln(i);
If i<=50 then
Write('bilangan kecil')
Else
Write('bilangan besar');
End.

Penggunaan CASE … OF:
Penggunaan Case OF ini lkebih berguna jika kondisi yang dibandingkan berupa range. Lihat contoh berikut:

CASE nilai OF
80..100 : grade:='A';
70..79 : grade:='B';
55..69 : grade:='C';
45-54 : grade:='D';
ELSE grade:='E';
END;

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

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?


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.



Sederhana bukan? Silahkan berkreasi dengan program yang lain. Be Creative!!

Followers

 

Collection of Lesson. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com