Professional Documents
Culture Documents
TURBO PASCAL
©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
BAB I
PENULISAN CODE PROGRAM DI TURBO PASCAL
#bagian yang dicetak tebal(dari begin – end.) adalah bagian pernyataan (statement)
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.
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
BAB II
STRUKTUR PERNYATAAN IF dan IF-ELSE
II.1 PERNYATAAN IF
Struktur logika dari penyataan IF adalah sbb :
T
kondisi PERNYATAAN PERNYATAAN
Bila pernyataan yang dihasilkan, lebih dari satu baris maka sintaxnya menjadi :
IF <kondisi> THEN
BEGIN
<pernyataan_1>;
<pernyataan_2>;
<pernyataan_n>;
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.
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;
F F F
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.
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.
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)
readln;
end.
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.
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.
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.
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.
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.
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.
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.
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
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;
END.
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);
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.
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);
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.