Anda di halaman 1dari 21

RANGKUMAN MATERI

TURBO PASCAL

PUSAT ILMU KOMPUTER dan MANAJEMEN INDONESIA


2006

©husnan_sarofi 2006
Pengenalan Pemrograman Pascal

DAFTAR ISI

.............................................................................................. i
DAFTAR ISI ....................................................
BAB I PENULISAN CODE PROGRAM DI TURBO PASCAL ........................................... 1
I.1 STRUKTUR PROGRAM PASCAL................................................................................................................................ 1
I.2 MENAMPILKAN TULISAN DI LAYAR ................................................................................................................... 1
I.3 TIPE DATA.................................................................................................................................................................... 1
I.4 TEXTCOLOR DAN TEXTBACKROUND...................................................................................................................2
I.5 PROGRAM DENGAN PENGGUNAAN VARIABEL .................................................................................................3
I.5.1 PROGRAM PENAMBAHAN.................................................................................................................................................3
I.5.2 PROGRAM PENILAIAN ......................................................................................................................................................3
BAB II STRUKTUR PERNYATAAN IF dan IF-ELSE.................................................. 4
II.1 PERNYATAAN IF.........................................................................................................................................................4
II.1.1 CONTOH PROGRAM DENGAN LOGIKA IF ..................................................................................................................4
II.2 PERNYATAAN IF-ELSE .............................................................................................................................................5
II.2.1 CONTOH PROGRAM IF-ELSE ..........................................................................................................................................5
II.3 PERNYATAAN IF BERSARANG (NESTED-IF) ....................................................................................................6
II.3.1 CONTOH PROGRAM dengan NESTED IF......................................................................................................................7
II.4 PERNYATAAN CASE-OF............................................................................................................................................7
II.4.1 CONTOH PROGRAM dengan CASE-OF ..........................................................................................................................8
.................................................................. 9
BAB III PENGULANGAN/ LOOPING ....................................................
III.1 COUNTED LOOP ..........................................................................................................................................................9
III.1.1 Pernyataan FOR-TO-DO................................................................................................................................................9
III.1.2 Pernyataan FOR-DOWNTO-DO ..................................................................................................................................9
III.1.3 Contoh lain FOR-TO -DO ............................................................................................................................................ 10
III.2 CONDITIONAL LOOP ..............................................................................................................................................10
III.2.1 REPEAT – UNTIL .......................................................................................................................................................... 10
III.2.2 WHILE - DO....................................................................................................................................................................11
III.2.3 CONTOH LAIN REPEAT – UNTIL ............................................................................................................................11
III.2.4 CONTOH LAIN WHILE - DO.................................................................................................................................... 12
III.3 NESTED LOOP............................................................................................................................................................12
III.3.1 Beberapa contoh penggunaaan NESTED LOOP ..................................................................................................... 12
............................................................................. 14
BAB IV SUB ALGORITMA ....................................................
IV.1 PROCEDURE (Prosedur)............................................................................................................................................14
IV.2 PARAMETER................................................................................................................................................................17
IV.3 FUNCTION (FUNGSI)..............................................................................................................................................18

i © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

BAB I
PENULISAN CODE PROGRAM DI TURBO PASCAL

I.1 STRUKTUR PROGRAM PASCAL


Struktur dari suatu program Pascal terdiri dari sebuah judul program(program heading) dan suatu
blok program(program block) atau badan program(body programf). Blok program dibagi lagi menjadi
dua bagian, yaitu : bagian deklarasi(declaration part) dan bagian pernyataan( statement part). Bagian
deklarasi dapat terdiri dari deklarasi label(labels declaration), deklarasi konstanta(constants
declaration), deklarasi tipe(type declaration), deklarasi variabel(variables declaration), deklarasi
prosedur(procedures declaration), dan deklarasi fungsi(function declaration). Secara ringkas dapat
digambarkan sebagai berikut :
1. Judul Program
2. Blok Program
a. Bagian Deklarasi
- deklarasi label
- definisi constanta
- definisi tipe
- deklarasi variabel
- deklarasi prosedur
- deklarasi fungsi
b. Bagian pernyataan.

I.2 MENAMPILKAN TULISAN DI LAYAR


program tulisan; judul program
uses crt; deklarasri fungsi

begin awal memulai program


clrscr; membersihkan layar
writeln('SELAMAT DATANG DI PIKMI’); menampilkan tulisan SELAMAT DATANG DI PIKMI
write('SEMOGA ANDA PUAS’); menampilkan tulisan SEMOGA ANDA PUAS
readln; menyetop utk sementara eksekusi program
end. Akhir dari program

#bagian yang dicetak tebal(dari begin – end.) adalah bagian pernyataan (statement)

I.3 TIPE DATA


Tipe Data Jangkauan
Numerik
Byte 0 … 255
Word 0 … 65535
Longint -2147483648 … 2147483647
Integer -32768 … 32767
Shortint -128 … 127
Real -2.9E-39 … 1.7E38
Logika True or False
Karakter
Char 1 karakter
String 1 … 255 karakter

1 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

I.4 TEXTCOLOR DAN TEXTBACKROUND


Berfungsi untuk memberikan warna pada text dan warna background text, warna yang ditampilkan
tergantung pada kode warna yang digunakan (lihat tabel warna berikut ini)
Kode warna Warna Kode warna Warna
0 Black 8 Dark Grey
1 Green 9 Light Blue
2 Blue 10 Light Green
3 Cyan 11 Light Cyan
4 Red 12 Light Red
5 Magenta 13 Light Magenta
6 Brown 14 Yellow
7 Light Gray 15 White

CONTOH1
program hello;
uses crt;
begin
textcolor(6);
textbackground(11);
clrscr;
write('AAAkuuuuuuuuuuu’);
write('Kaaaaaanggggggggggennn’);
write('Ama Kamuuuuuuuuuuuuuuu');
end.

CONTOH1
program hello;
uses crt;
var
nama:string;
gender:char;
umur:byte;
begin
clrscr;
textcolor(6);
textbackground(11);
write('Masukkan nama anda : ');readln(nama);
write('Masukkan gender : ');readln(gender);
textcolor(7);
textbackground(11);
write('Masukkan Usia : ');readln(umur);
writeln('Nama anda : ',nama,', gender : ',gender,', berusia : ', umur,' tahun');
readln;
end.

2 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

I.5 PROGRAM DENGAN PENGGUNAAN VARIABEL


I.5.1 PROGRAM PENAMBAHAN
Program tambah;
Uses crt;
Var a,b:integer; mendeklarasikan variabel untuk angka pertam(a)dan angka kedua(b) yg berjenis integer
Hasil:integer; mendeklarasikan variabel “hasil” untuk menampung hasil dari penjumlahan a dan b
Begin
Clrscr;
Write(‘Masukkan angka pertama : ’); readln(a); menampilkan text dan membaca masukan sebagai variabel a
Write(‘Masukkan angka kedual : ’);readln(b); menampilkan text dan membaca masukan sebagai variabel b
Hasil:=a+b; memproses variable hasil dengan rumus a+b
Write(‘Hasil penambahan adalah : ‘,hasil); menampilkan hasil dari proses yg sudah dilakukan
Readln; memberhentikan sementara proses pembacaan program agar tidak langsung keluar dr layar
End.

I.5.2 PROGRAM PENILAIAN


Program nilai;
Uses crt;
Var nim,nama:string;
Utk,uak,tugas:integer; mendeklarasikan variabel yang digunakan
N_akhir:real;
Begin
Clrscr;
write('NIM :');readln(nim); menampilkan text NIM dan memasukkan isiannya ke variabel nim
write('nama :');readln(nama); menampilkan text NAMA dan memasukkan isiannya ke variabel nama
write('Nilai UTK : ');readln(utk);
write('Nilai UAK : ');readln(uak);
write('Nilai Tugas: ');readln(tugas);
N_akhir:=(0.2*utk)+(0.4*uak)+(0.4*tugas); memproses n_akhir dengan rumus yg sdh ditentukan
write('Nilai Akhir yang diperoleh adalah :',N_akhir:10:2); memunculkan nilai akhir
readln; memberhentikan sementara proses pembacaan program agar tidak langsung keluar dr layar
end.
*:10:2 di belakang variabel n_akhir maksudnya Æ n_akhir yg berjenis real ditampilkan maksimal 10 digit dan 2 angka di
belakang koma

Kita bisa mengatur peletakan/ posisi dari text yang ditampilkan (seperti di FoxPro) dengan
menggunakan perintah GOTOXY(x,y), untuk lebih jelasnya lihat contoh berikut : (perintah ini hanya
bisa anda gunakan jika anda mengaktifkan crt unit(uses crt) )

program tulisan;
uses crt;
begin
clrscr;
gotoxy(10,2);writeln('SELAMAT DATANG DI PIKMI’);
gotoxy(10,3);writeln('SEMOGA ANDA PUAS’);
readln;
end

3 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

BAB II
STRUKTUR PERNYATAAN IF dan IF-ELSE

II.1 PERNYATAAN IF
Struktur logika dari penyataan IF adalah sbb :
T
kondisi PERNYATAAN PERNYATAAN

Sintax logika IF dalam PASCAL


IF <kondisi> THEN
<pernyataan>;

Bila pernyataan yang dihasilkan, lebih dari satu baris maka sintaxnya menjadi :
IF <kondisi> THEN
BEGIN
<pernyataan_1>;
<pernyataan_2>;
<pernyataan_n>;
END;

II.1.1 CONTOH PROGRAM DENGAN LOGIKA IF


Contoh1
Program cth_if;
uses crt;
var jml_beli:integer;
begin Dalam program ini jika jumlah beli
clrscr; dimasukan dengan angka lebih dari
Write('Masukkan jumlah beli : ');readln(jml_beli); atau sama dengan 20 maka akan
IF jml_beli>=20 THEN muncul tulisan “Anda dapat Diskon”
write('anda dapat diskon'); jika tidak tidak akan memunculkan
readln;
apa-apa
end.

Contoh 2
Program cth_if;
uses crt;
var jml_beli:integer; Dalam program ini jika jumlah beli
begin dimasukan dengan angka lebih dari
clrscr; atau sama dengan 20 maka akan
Write('Masukkan jumlah beli : ');readln(jml_beli); muncul tulisan “Anda dapat Diskon”
IF jml_beli>=20 THEN dan “Anda dapat voucher belanja
begin
Rp.5000”, jika tidak tidak akan
writeln('anda dapat diskon');
memunculkan apa-apa
write('anda dapat voucher belanja Rp 5000');
end;
readln;
end.

4 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

II.2 PERNYATAAN IF-ELSE


Struktur Logika IF-ELSE adalah sbb:
Jika syarat yang ditentukan
T terpenuhi( T ) maka pernyataan akan
kondisi PERNYATAAN 1
dijalankan, jika syarat tidak terpenuhi
( F ) maka pernyataan2 yang
F dijalankan
PERNYATAAN 2

Sintax IF-ELSE dalam PASCAL


IF <kondisi> THEN
<pernyataan1>
ELSE
<pernyataan2>;

Bila pernyataan yang dihasilkan, lebih dari satu maka sintaxnya menjadi :
IF <kondisi> THEN
BEGIN
<pernyataan_1>;
<pernyataan_2>;
<pernyataan_n>;
END
ELSE
BEGIN
<pernyataan_A>;
<pernyataan_B>;
<pernyataan_n>;
END;

II.2.1 CONTOH PROGRAM IF-ELSE


Contoh 1
Program cth_if;
uses crt;
var nama1,nama2:string;
j_kel1,j_kel2:char;
begin
clrscr; Dalam program ini jika jenis kelamin
Write('Masukkan nama anda : ');readln(nama1); yang dimasukkan berbeda(tidak sama)
write('Jenis kelamin anda [l/p] : ');readln(j_kel1); maka akan memunculkan tulisan
write('Masukkan nama pasangan : ');readln(nama2); “ANDA BERDUA SANGAT
write('Jenis kelaminnya [l/p] : ');readln(j_kel2); BERJODOH” jika tidak maka tulisan
IF j_kel1<>j_kel2 THEN yang muncul adalah “ANDA BERDUA
Write('Anda berdua sangat berjodoh')
TIDAK COCOK”
ELSE
Write('Anda berdua tidak cocok');
readln;
end.

5 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal
Contoh 2
Program cth_if;
uses crt;
var nama1,nama2:string;
j_kel1,j_kel2:char;
begin
clrscr;
Write('Masukkan nama anda : ');readln(nama1);
write('Jenis kelamin anda [l/p] : ');readln(j_kel1); l
write('Masukkan nama pasangan : ');readln(nama2);
write('Jenis kelaminnya [l/p] : ');readln(j_kel2); L

IF upCase(j_kel1) <> upCase(j_kel2) THEN


BEGIN Dalam program ini jika jenis kelamin yang dimasukkan
Write('Anda berdua sangat berjodoh'); berbeda(tidak sama) maka akan memunculkan tulisan
Write(‘Teruskan hubungan anda’); “ANDA BERDUA SANGAT BERJODOH” dan
END “TERUSKAN HUBUNGAN ANDA” jika tidak maka
ELSE tulisan yang muncul adalah “ANDA BERDUA TIDAK
BEGIN COCOK” dan “ANDA BERDUA EDANNNNNNN”
Write('Anda berdua tidak cocok');
Write(‘Anda berdua edannnnnn’);
END;
readln;
end.

II.3 PERNYATAAN IF BERSARANG (NESTED-IF)


Pernyataan NESTED IF adalah suatu pernyataan yang mungkin membutuhkan lebih dari satu syarat agar hasil
yang diinginkan diperoleh.
Contoh: seorang atlet akan menembus babak final setelah melewati babak penyisihan, kemudian perempat
final, dan akhirnya babak semifinalfinal, baru kemudian ia akan bersaing di babak final.
Dalam hal tersebut untuk mencapai babak final, maka babak-babak sebelumnya harus berhasil ia
lewati, jika tidak maka hal tersebut tidak akan pernah terjadi. ( untuk lebih jelasnya lihat
flowchartnya sebagai berikut)

Melewati T Melewati T Melewati T Babak


Babak Babak Babak
penyisihann per4final semifinal final

F F F

Struktur logika NESTED IF adalah sbb:

Syarat 1
T Syarat 2
T
Pernyataan

F F
Struktur pernyataan NESTED IF bergantung pada
syarat/ pernyataan ............................
kondisi dari masalah yang akan diselesaikan. Bisa jadi
yg lain
setelah syarat 1 dipenuhi langsung menghasilkan
sebuah pernyataan, tetapi jika syarat tdk terpenuhi
akan menghasilkan syarat yang lain agar pernyataan
yang ditentukan bisa terpenuhi. Bisa juga kondisinya
berbeda.

6 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

Sintax NESTED IF dalam PASCAL


IF <syarat> THEN
IF <syarat> THEN
BEGIN
<pernyataan>;
END
ELSE
BEGIN
<pernyataan>;
END
ELSE
IF <syarat> THEN
BEGIN
<pernyataan>;
END
ELSE
BEGIN
<pernyataan>;
END;

II.3.1 CONTOH PROGRAM dengan NESTED IF


program nest_if; WRITE('Yang terbesar adalah angka pertama')
uses crt; ELSE
var a,b,c:integer; WRITE('Yang terbesar adalah angka ketiga')
begin ELSE
clrscr;
IF b>c THEN
WRITE('Yang terbesar adalah angka kedua')
write('Masukkan angka pertama : ');readln(a);
ELSE
write('Masukkan angka kedua : ');readln(b);
WRITE('Yang terbesar adalah angka ketiga');
write('Masukkan angka ketiga : ');readln(c); READLN;
IF a>b THEN END.
IF a>c THEN
Di atas adalah program untuk mencari angka terbesar dari 3 angka yang
dimasukkan. Pertama jika angka pertama lebih besar dari angka kedua,
maka akan angka pertama akan dibandingkan lagi dengan angka ketiga
untuk kemudian ditentukan mana yang terbesar jika tidak maka angka
kedua yang akan dibandingkan dengan angka ketiga kemudian ditentukan
mana yang terbesar.

II.4 PERNYATAAN CASE-OF


Pernyataan CASE-OF dibutuhkan jika suatu kondisi katakanlah expresi utama jika dibandingkan dengan
pembanding1 maka akan menghasilkan suatu keputusan(keputusan1), jika expresi utama dibandingkan dengan
pembanding2 akan menghasilkan keputusan yan lain(keputusan2), atau jika expresi utama dibandingkan dengan
pembanding3 maka keputusan yang berbeda(keputusan3) pun akan diperoleh.
Sebagai contoh adalah Golongan dalam suatu pekerjaan :
Jika Golongan=A maka gaji pokok Rp 500000,- Dalam hal ini golongan dapat dikatakan sebagai
Jika Golongan=B maka gaji pokok Rp 400000,- sebagai expresi utama sedangkan A,B,C,D dapat
Jika Golongan=C maka gaji pokok Rp 300000,- dikatkan sbg pembnding1,2,3 atau 4 sedangkan
Jika Golongan=D maka gaji pokok Rp 200000,- banyaknya Gaji pokok dikatakan sebagai keputusan
yang diperoleh menurut golongannnya masing-masing
Sintax CASE OF dalam PASCAL
CASE <expresi_utama> OF
<pembanding1> : <keputusan1>
<pembanding2> : <keputusan2>
<pembanding3> : <keputusan3>
ELSE
<keputusan4>
END;

7 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

II.4.1 CONTOH PROGRAM dengan CASE-OF


Contoh 1
program case_of;
uses crt;
var nip,nama:string;
gol:char;
gapok:real;
begin
write('NIP :');readln(nip);
write('NAMA :');readln(nama);
write('GOLONGAN :');readln(gol);
case gol of
'A':gapok:=500000;
'B':gapok:=400000;
'C':gapok:=300000;
else
gapok:=200000;
end;
writeln('GAJI POKOK :Rp',gapok:10:2);
readln;
end.

Contoh 2
program pembelian;
uses crt;
var beli,potongan:integer;

BEGIN
CLRSCR;
write('Total Pembelian : ');readln(beli);
CASE beli OF
0..1000 :potongan:=0;
1001..10000:potongan:=400;
10001..30000:potongan:=1000;
ELSE
potongan:=2000;
END;

Writeln;
writeln('Total pembeliannya : Rp.',beli);
writeln('Potongan : Rp.',potongan);
writeln('*********************************');
writeln('Total Bayar : Rp.',beli-potongan);
READLN;
END.

8 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

BAB III
PENGULANGAN/ LOOPING

Pengulangan atau biasa disebut dengan looping digunakan untuk melakukan pengulangan sebuah proses
pada program yang dibuat. Sebagai contoh bila kita memasukkan password untuk memasuki sebuah program/
sistem operasi, maka jika password kita keliru dengan otomatis akan meminta password ulang (tidak langsung
keluar dari program), baru setelah password yang dimasukkan benar program yang diminta akan dijalankan. Nah
untuk membuat seperti hal tersebut maka kita memerlukan yang namanya LOOPING
Looping ada dua jenis
1. Counted Loop(pengulangan pasti)
2. Conditional Loop(pengulangan berkondisi)
3. Nested Loop(pengulangan bersarang)

III.1 COUNTED LOOP


Counted Loop(pengulangan Pasti) adalah sebuah bentuk pengulangan yang disertai counter(penghitung) di
dalamnya, selama loop ini mengulang suatu proses maka nilai akan bertambah atau berkurang sejumlah tertentu.
Sehingga banyaknya pengulangan dapat dipastikan jumlahnya melalui angka(10x, 5x atau yang lain).
Pada bahasa pascal, Counted Loop digunakan melalui perintah FOR- TO-DO dan FOR-DOWNTO-DO.

III.1.1 Pernyataan FOR-TO-DO


SINTAX:
FOR <counter_1> TO <counter_2> DO
BEGIN
<proses /code program yang diulang>;
END;
CONTOH 1
PROGRAM for_do;
Contoh disamping untuk mengulangi proses secara
uses crt;
sederhana. Dimana yang diulang adalah tulisan “PIKMI
var a:integer;
Jember” dan “For The Real World”
begin
Dalam perintah FOR-TO -DO jumlah counter akan
clrscr;
for a:=1 to 5 do bertambah 1 tiap pengulangan proses terjadi
begin Dalam contoh disamping counternya menggunakan variable
writeln('PIKMI Jember'); a, dimana counter pertama a bernilai 1 dan counter
writeln('For The Real World'); kedua bernilai 5, jadi jumlah pengulangan adalah 5
end; dihitung dari angka 1 sampai 5 (1,2,3,4,5)

readln;
end.

III.1.2 Pernyataan FOR-DOWNTO-DO


SINTAX :
FOR <counter_1> DOWNTO <counter_2> DO
BEGIN
<proses /code program yang diulang>;
END;
CONTOH 1
PROGRAM for_down;
uses crt;
var a:integer;
Dalam perintah FOR-DOWNTO-DO jumlah counter akan
begin
berkurang sebanyak 1 angka, tiap proses pengulangan
clrscr;
terjadi.
for a:=5 downto 1 do
begin
writeln('PIKMI Jember');
writeln('For The Real World');
end;

9 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal
readln;
end.
III.1.3 Contoh lain FOR-TO -DO
Bila diperlukan dalam pernyataan FOR-DO kita bisa menghentikan pengulangan langsung berdasarkan
kondisi tertentu. Contohnya program password berikut ini.
PROGRAM PASSWORD
program password;
uses crt;
var sandi:string;
a:integer;
begin Pada contoh di samping. Jika password yang dimasukkan
clrscr; salah maka akan mengulang untuk menanyakan password lagi.
for a:=1 to 3 do Dan akan terus mengulang sampai 3 kali jika password yang
begin dimasukkan masih salah.
write('Masukkan Password : ');readln(sandi); Namun jika password yang dimasukkan benar maka akan
if sandi='PIKMI' then menampilkan tulisan “SELAMAT ANDA BERHASIL” dan
begin pengulangan langsung dihentikan.
a:=3; Untuk menghentikan pengulangan, langsung dimasukkan
writeln('Selamat Anda Berhasil'); angka counter terakhir(lihat syntax yg tebal) dimana
end dalam contoh disamping jika password yang dimasukkan
else benar(PIKMI), maka angka counter langsung berubah
writeln('Password Salah Goblok'); menjadi 3(pengulangan terakhir). Sekaligus menampilkan
end; tulisan “SELAMAT ANDA BERHASIL”
readln;
end.

III.2 CONDITIONAL LOOP


Dalam Conditional Loop jumlah pengulangan tergantung pada kondisi tertentu, dengan kata lain jumlah
pengulangan tidak bisa ditentukan dengan menggunakan angka.
Dalam bahasa pascal dikenal 2 bentuk conditional Loop, yaitu :
1. REPEAT - UNTIL
2. WHILE – DO

III.2.1 REPEAT – UNTIL


Repeat Until adalah sebuah bentuk pengulangan dimana proses pengulangan akan terus terjadi sampai
syarat yang telah ditentukan terpenuhi.
Misal : seorang anak mendapat perintah untuk mengelilingi lapangan sampai pingsan. Dalam keadaan
tersebut yang dimaksud dengan syarat adalah “sampai pingsan”, jadi jika si anak belum pingsan maka ia
akan terus mengelilingi lapangan. Baru setelah dia pingsan maka proses mengelilingi lapangan akan
langsung berhenti.
SINTAX :
REPEAT
<proses yang diulang>;
UNTIL <syarat yang ditentukan>;

CONTOH 1 CONTOH 2
program demo_repuntil; program demo_repuntil;
uses crt; uses crt;
var Nilai:char; var Nilai:char;
begin
repeat begin
write('Nilai Anda(x- clrscr;
berhenti):');readln(Nilai); repeat
until (Nilai='x') or (Nilai='X'); writeln('Aku sayang kamu');
end. writeln('Dan selalu merindumu');
write('Mau mengulang [y/t]: ');readln(nilai);
until (Nilai='T') or (Nilai='t');
end.

10 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

Pada CONTOH 1 tulisan “Nilai Anda(x-berhenti):” akan terus ditampilkan sampai anda memasukkan huruf ‘x’
atau ‘X’ pada inputan

Sedang pada CONTOH 2, tulisan “AKU SAYANG KAMU” dan “DAN SELALU MERINDUMU” akan
ditampilkan lagi jika anda memasukkan huruf selain ‘t’ dan ‘T’ pada inputan. Dan pada saat memasukkan huruf
‘t’ atau ‘T’ maka langsung keluar dari proses pengulangan dan karena tidak ada perintah lagi di bawah
perintah pengulangan maka, program pun langsung berakhir.

III.2.2 WHILE - DO
Dalam pernyataan WHILE – DO, sebuah proses akan terus diulang selama syarat yang ditentukan masih
terpenuhi. Bisa dikatakan bahwa perintah WHILE – DO adalah kebalikan dari perintah REPEAT- UNTIL
SINTAX :
WHILE <syarat yang ditentukan> DO
BEGIN
<proses yang akan diulang>;
END;
CONTOH 1 CONTOH 2
program demo_whiledo; program while_do1;
uses crt; uses crt;
var Nilai:char; var ulang:char;
begin begin
clrscr; clrscr;
while(Nilai<>'x') and (Nilai<>'X') do while (ulang<>'T') and (ulang<>'t') do
begin begin
write ('Nilai Anda(x-berhenti:'); writeln('Aku sayang kamu');
readln(Nilai); writeln('Dan selalu merindumu');
end; write('Mau ngulang[y/t]? : ');readln(ulang);
end. end;
end.

III.2.3 CONTOH LAIN REPEAT – UNTIL


program repeat_until; sound(4563);
uses crt; delay(100);
var ulang:char; NoSound;
pass,nama:string; ulang:='t'
begin end
clrscr; else
repeat begin
clrscr; writeln('Sorry men');
write('Masukkan Nama writeln('Cek lagi nama dan password anda');
Anda');readln(nama); sound(1004);
write('Masukkan delay(1000);
Passwordnya');readln(pass); sound(6666);
IF (nama='Asep') and (pass='supernova') delay(100);
then ulang:='y';
begin NoSound;
writeln('Selamat Memasuki Program end;
kami'); until (ulang='T') or (ulang='t');
sound(1467); end.
delay(1000);

Contoh diatas adalah sebuah contoh program password


Dalam contoh tersebut jika nama dan password yang dimasukkan sesuai persyaratan( dalam contoh tersebut
nama memakai ‘Asep’ dan passwordnya ‘supernova). Maka akan memunculkan tulisan ‘SELAMAT ANDA
MEMASUKI PROGRAM KAMI’ dan mengeluarkan bunyi tertentu (lihat perintah SOUND(….) dan DELAY(…..)
yang berwarna merah), sekaligus keluar dari perulangan. Tapi jika salah, maka tampilan yang muncul adalah
tulisan ‘SORRY MEN’ dan ‘CEK LAGI NAMA DAN PASSWORD ANDA’, dan juga mengeluarkan bunyi seperti
yang dideklarasikan pada perintah SOUND. Sekaligus melakukan pengulangan (karena variable ULANG diberi
nilai ‘y’, dimana syarat mengakhiri perulangan ialah jika variable ULANG bernilai ‘t’ atau ‘T’).

11 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

III.2.4 CONTOH LAIN WHILE - DO


program demo_whiledo;
uses crt;
var ulang:char;
r,t:integer;
vol,luas:real;
begin
clrscr;
while (ulang<>'t') and (ulang<>'T') do
begin
clrscr;
writeln('MENGHITUNG VOLUME dan LUAS PERMUKAAN TABUNG');
writeln('*******************************************');
write('Masukkan panjang jari-jari : ');readln(r);
write('Masukkkan tinggi tabung : ');readln(t);
vol:=3.14*r*r*t;
luas:=(2*3.14*r*r)+(2*3.14*r*t);
writeln('*******************************************');
writeln('Volume tabung adalah : ',vol:10:2);
writeln('Luas permukaan tabung adalah :',luas:10:2);
writeln('*******************************************');
write('Mau mengulang [y/t]: ');readln(ulang);
end;
end.

III.3 NESTED LOOP


Adalah sebuah perulangan (looping) yang berada di dalam perulangan yang lainnya. Perulangan yang lebih
dalam akan diulang terlebih dahulu sampai habis, kemudian perulangan yang lebih luar akan diproses
selanjutnya. Perulongan seperti ini bisa terdiri dari beberapa perulangan yang jenisnya sama ataupun berbeda.
Misal didalam perulangan menggunakan FOR – DO terdapat perulangan FOR-DO lagi atau di dalam perulangan
FOR – DO terdapat perulangan menggunakan REPEAT – UNTIL atau yang lainnya.

III.3.1 Beberapa contoh penggunaaan NESTED LOOP

CONTOH 1
program NESLOOP1;
uses crt;
var a,b:integer;

BEGIN
CLRSCR;
for a:=1 to 5 do
BEGIN
for b:=1 to 3 do
begin
writeln('Kutunggu kedatanganmu');
writeln('Karena aku selalu merindukanmu');
writeln;
end;
end;
readln;
end.

12 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

CONTOH 2
program nestedloop1;
uses crt;
var ulang:char;
i:integer;
begin
clrscr;
repeat
for i:=1 to 5 do
begin
writeln('Aku tak bisa memiliki');
writeln('Kamu tak sendirian');
end;
write('Mau ngulang lagi[y/t] : ' );readln(ulang);
until (ulang='t') or (ulang='T')
end.

CONTOH 3
program nestedloop1;
uses crt;
var ulang:char;
i:integer;
begin
clrscr;
repeat
writeln('Belajar Pascal');
writeln('Ueeenak tenannn');
repeat
write('Mau ngulang lagi[y/t] : ' );readln(ulang);
until (ulang='t') or (ulang='T') or (ulang='y') or (ulang='Y')
until (ulang='t') or (ulang='T')
end.

CONTOH 3
program nestedloop;
uses crt;
var ulang:char;
i:integer;
nama,cita:string;
begin
clrscr;
repeat
clrscr;
gotoxy(2,4);write('Nama : ');readln(nama);
gotoxy(2,5);write('Cita-cita : ');readln(cita);
repeat
gotoxy(2,7); write('Mau ngulang lagi[y/t] : ' );readln(ulang);
until (ulang='t') or (ulang='T') or (ulang='y') or (ulang='Y')
until (ulang='t') or (ulang='T')
end.

13 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

BAB IV
SUB ALGORITMA
Sub Algoritma adalah sebuah algoritma pendek yang ditulis terpisah dari Algoritma utama, dimana setiap
saat dibutuhkan dapat dipanggil tanpa menulis ulang. Dalam pembuatan program Sub Algoritma disebut juga
dengan Sub Program
Dengan adanya Sub Algoritma atau Sub Program dapat memberikan kemudahan dalam pembuatan atau
pemahaman terhadap program, karena program yang panjang dapat dipisah menjadi blok-blok kecil yang
mempunyai tugas sendiri sendiri.
Keuntungan lain dari Sub Program adalah bila dalam sebuah program terdapat proses tertentu yang
sering digunakan dalam program, maka dengan adanya sub algoritma kita tidak perlu menuliskan proses tersebut
berulang ulang, cukup memanggil sub program yang sudah disiapkan.
Bentuk Sub Program dapat berupa sebuah Prosedur ataupun Fungsi, dan dalam setiap Prosedur atau
Fungsi tersebut dapat dilewatkan sebuah Parameter agar Prosedur/ Fungsi tersebut mampu menerima inputan
dari program utama.

IV.1 PROCEDURE (Prosedur)


Procedure adalah sebuah sub program yang dapat dipanggil sewaktu – waktu jika diperlukan oleh program
utama. Sebuah procedure dapat dipanggil langsung oleh program utama ataupun dipanggil berdasarkan kondisi-
kondisi tertentu. Sebuah procedure biasa tidak dapat menerima masukan dari program utama, jadi hanya
dapat dipanggil saja. Jadi semua blok program yang diperlukan (dari input, proses, sampai output) harus
diletakkan pada procedure, dan program utama hanya bertugas memanggil saja jika diperlukan.\
Procedure biasa seperti ini biasa diapakai dalam pembuatan, program yang menggunakan pilihan-pilihan
atau menu
Pada pemrograman pascal sebuah procedure dideklarasikan sebelum program utama.

SINTAX :
PROCEDURE <nama procedure>;
BEGIN
<blok program yang merupakan isi procedure>;
END;
Untuk memanggil Procedure cukup dengan menuliskan nama prosedurnya diikuti dengan tanda (;).
Contoh
Satu; Æ ‘satu’ merupakan nama procedure yang dipanggil
Untuk lebih jelasnya lihat contoh berikut ini :

CONTOH 1
program proc1;
uses crt;
procedure satu; Pendeklarasian nama prosedure
begin
writeln('-----------');
writeln(' P I K M I '); Isi prosedure
writeln('-----------');
end;
procedure dua;
begin
writeln('--------------------');
writeln(' FOR THE REAL WORLD ');
writeln('--------------------');
Program Utama
end;

begin
clrscr;
DUA; Pemanggilan Procedure
readln;
end.

14 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

Pada Contoh 1. ada dua procedure yang dideklarasikan yaitu PROCEDURE SATU, dan PROCEDURE DUA.
Dimana procedure satu berisi perintah menampilkan tulisan ‘PIKMI’ sedang procedure dua menampilkan
tulisan ‘FOR THE REAL WORLD’.
Pada program utama (di dalam lingkaran ) dilakukan pemanggilan procedure, dimana yang dipanggil adalah
PROCEDURE DUA. Sehingga perintah-perintah di dalam PROCEDURE DUA yang akan dijalankan yaitu
menampilkan tulisan ‘FOR THE REAL WORLD’ sedang PROCEDURE SATU tidak dipanggil sehingg tidak
dijalankan.
Pemanggilan procedure dapat dilakukan berdasarkan suatu kondisi misal dalam program menu berikut ini
CONTOH 2
program proc2;
uses crt;
var pilihan:string;
procedure satu;
var a,b,hasil:integer;
begin
write('Masukkan angka pertama : ');readln(a);
write('Masukkan angka kedua : ');readln(b);
hasil:=a-b;
writeln('Hasil pengurangan adalah : ',hasil);
end;
procedure dua;
var a,b,hasil:integer;
begin
write('Masukkan angka pertama : ');readln(a);
write('Masukkan angka kedua : ');readln(b);
hasil:=a+b;
writeln('Hasil penjumlahan adalah : ',hasil);
end;

begin
clrscr;
WRITELN('1. Pengurangan');
writeln('2. Penambahan ');
writeln('MASUKKAN PILIHAN ANDA : ');readln(pilihan);
IF pilihan='1' then
satu
else
dua;
readln;
end.

Contoh diatas akan menghasilkan tampilan awal sebagai berikut

Jika anda memasukkan inputan angka 1 maka yang dijalankan adlah procedure satu (sesuai dengan perintah IF pada
program utama) yaitu algoritma pengurangan sebagaimana yang ditunjukkan pada gambar 1 dibawah. Gambar 2
menunjukkan tampilan yang muncul jika yang diinputkan adalah selain angka 1.

Gambar 1 Gambar 2

15 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

CONTOH 3
program procedure_gabungan;
uses crt;
var pilih,ulang:char;

procedure lingkar;
var r:integer;
luas_l:real;
begin
writeln('');
writeln('PENGHITUNGAN LUAS LINGKARAN');
write('Masukkan Jari-jari lingkaran');readln(r);
luas_l:=3.14*r*r;
write('Luas lingkarannya adalah : ',luas_l:10:2);
readln;
end;

procedure persegi;
var p,l:integer;
luas_p:real;
begin
writeln('');
writeln('PENGHITUNGAN LUAS PERSEGI PANJANG');
write('Masukkan panjangnya : ');readln(p);
write('Masukkan lebarnya : ');readln(l);
luas_p:=p*l;
write('Luas Persegi Panjang adalah : ',luas_p:10:2);
readln;
end;

BEGIN
CLRSCR;
repeat
CLRSCR;
writeln(' MENU UTAMA ');
Writeln('******************************');
writeln('1. Menghitung Luas Lingkaran');
writeln('2. Menghitung Luas Persegi Panjang');
writeln('');
write('Masukkan pilihan anda [1/2] : ');readln(pilih);
IF pilih='1' THEN
LINGKAR
ELSE
persegi;

write('Mau mengulang[y/t] ? ');readln(ulang);


until (ulang='t') or (ulang='T');

END.

16 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal

IV.2 PARAMETER
Perlu diingat bahwa sebuah prosedur biasa tidak bisa menerima inputan nilai dari program utama (hanya
bisa dipanggil saat diperlukan).
Tetapi sebuah prosedur akan bisa menerima inputan dari program utama jika dilengkapi dengan sebuah
PARAMETER. Parameter adalah variabel dalam sebuah prosedur atau fungsi yang gunanya untuk menampung
nilai yang dikirimkan oleh program yang memanggil prosedur atau fungsi tersebut.
PARAMETER dideklarasikan setelah nama prosedur, diikuti dengan jenis variabelnya.
Contoh :
PROCEDURE satu(n_akhir:integer);

Nama Procedure Nama Parameter diikuti jenis parameternya

Untuk lebih jelasnya lihatlah contoh berikut ini

CONTOH 1
program prmtr1;
uses crt;
var n:integer; Procedure yang dideklarasikan
procedure ulangi(jml_ulang:integer);
Dimana procedurenya bernama ULANGI
var i:integer;
dan didalamnya terdapat PARAMETER
begin
dengan nama JML_ULANG berjenis
for i:=1 to jml_ulang do
INTEGER
writeln('I Love YOU');
end;

begin
write('MASUKKAN JUMLAH PERULANGAN: ');readln(n);
ulangi(n);
Pemanggilan procedure sambil mengirimkan
readln;
sebuah nilai yaitu N
end.

Pada saat program diatas dijalankan, tampilan pertama adalah tulisan ‘MASUKKAN JUMLAH PERULANGAN’
Kemudian jika diinputkan sebuah angka maka angka tersebut akan dibaca sebagai variable n, setelah inputan
dimasukkan, ada pemanggilan procedure ULANGI sekaligus mengirimkan nilai n (ulangi(n);).
Setelah masuk ke procedure ULANGI, nilai n akan ditampung ke dalam parameter JML_ULANG.
Kemudian ada proses menampilkan tulisan ‘I LOVE YOU’ yang diulang sebanyak inputan yang kita masukkan

CONTOH 2
program prmtr1;
uses crt;
var a,b:integer;
procedure tambah(x,y:integer);
var hasil:integer;
begin
hasil:=x+y;
write('hasilnya :',hasil);
end;

begin
clrscr;
write('a: ');readln(a);
write('b: ');readln(b);
tambah(a,b);
readln;
end.

17 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal
CONTOH 3
program prmtr1; writeln('PILIH MENU BERIKUT INI');
uses crt; writeln('1. Menghitung Luas Persegi Panjang');
var p,l,r:integer; writeln('2. Menghitung Luas Lingkaran');
pilih,ulang:char; write('Tentukan Pilihan Anda : ');readln(pilih);
IF pilih='1' Then
procedure persegi(x,y:integer); begin
var hasil:integer; writeln('PENGHITUNGAN LUAS PERSEGI PANJANG');
begin write('Masukkan lebarnya : ');readln(l);
hasil:=x*y; write('Masukkan panjangnya : ');readln(p);
write('hasilnya :',hasil); persegi(l,p);
end; end
ELSE
procedure lingkar(jari:integer); begin
var hasil:real; writeln('PENGHITUNGAN LUAS LINGKARAN');
begin write('Masukkan jari-jari lingkaran : ');readln(r);
hasil:=3.14*jari*jari; lingkar(r);
write('hasilnya :',hasil:10:2); end;
end;
writeln('');
write('Mau ngulangi[y/t] : ');readln(ulang);
begin until (ulang='t') or (ulang='T');
repeat end.
clrscr;

IV.3 FUNCTION (FUNGSI)


Function hampir sama dengan prosedur, bedanya function hanya menghasilkan satu nilai output, dan
sebuah function bisa mengembalikan nilai output yang dihasilkannya tersebut ke program utama(pemanggilnya).

PENDEKLARASIAN FUNCTION :
FUNCTION <namafunction>(parameter):<tipe function>;
VAR <variabel yg diperlukan>;
BEGIN
<baris proses>;
END;

CONTOH 1
program fungsi1;
uses crt;
var c:integer;
hasil:real;
function conv(cel:integer):real;
var r:real;
Pendeklarasian
begin
r:=(cel*4/5); fungsi
conv:=r;
end;
Tampilan pertama akan muncul tulisan ‘MASUKKAN SUHU
begin CELCIUS ‘ jika dimasukkan angka maka yang anda masukkan
clrscr; akan terbaca sebagai variable c, proses selanjutnya ada
write('Masukkan suhu celcius: ');readln(c); pemanggilan fungsi (conv(c) ), yang artinya fungsi conv
hasil:=conv(c); dipanggil oleh program dan sekaligus mengirimkan nilai c ke
write('Hasilnya adalah:',hasil:10:2); fungsi yang dipanggil.
readln; Pada saat fungsi dipanggil nilai c yang dibawa akan dimasukkan
end. pada variable ‘cel’ (lihat pendeklarasian fungsi) setelah itu
diproses Berdasarkan perintah yang ada dan hasilnya
dikembalikan lagi ke program utama(pemanggilnya);

18 © Husnan Sarofi 2006


Pengenalan Pemrograman Pascal
CONTOH 2
program prmtr1; begin
uses crt; clrscr;
var c:integer; write('Masukkan suhu celcius: ');readln(c);
hasil:real; hasil:=conv(c);
function conv(cel:integer):real; write('Hasilnya adalah:',hasil:10:2);
begin readln;
conv:=(cel*4/5); end.
end;

CONTOH 3
program fungsi_gabungan;
uses crt;
var pilih,ulang:char;
r,p,l:integer;
luas_l,luas_p:real;

function lingkar(jari:integer):real;
begin
lingkar:=3.14*jari*jari;
end;

function persegi(panjang,lebar:integer):real;
begin
persegi:=panjang*lebar;
end;

BEGIN
CLRSCR;
repeat
CLRSCR;
writeln(' MENU UTAMA ');
Writeln('******************************');
writeln('1. Menghitung Luas Lingkaran');
writeln('2. Menghitung Luas Persegi Panjang');
writeln('');
write('Masukkan pilihan anda [1/2] : ');readln(pilih);
IF pilih='1' THEN
begin
writeln('');
writeln('PENGHITUNGAN LUAS LINGKARAN');
write('Masukkan Jari-jari lingkaran : ');readln(r);
Pemanggilan
Luas_l:=lingkar(r);
writeln('Luas Lingkaran adalah : ',Luas_l:10:2); Fungsi
end
ELSE
begin
writeln('');
writeln('PENGHITUNGAN LUAS PERSEGI PANJANG');
write('Masukkan panjangnya : ');readln(p);
write('Masukkan lebarnya : ');readln(l); Pemanggilan
Luas_p:=persegi(p,l);
Fungsi
writeln('Luas Persegi Panjang adalah : ',luas_p:10:2);
end;

writeln('');
write('Mau mengulang[y/t] ? ');readln(ulang);
until (ulang='t') or (ulang='T');

END.

19 © Husnan Sarofi 2006