Wednesday, April 23, 2008

Dasar Pemograman Pascal

I. Deklarasi
I.1. Pengenal
Pengenal (identifier) merupakan nama yang biasa digunakan untuk variabel, konstanta, fungsi atau obyek yang lain yang didefinisikan oleh pemogram.
Beberapa aturan pembuatan pengenal:
1. harus diawali dengan huruf
2. tidak boleh ada spasi
3. panjangnya hanya 63 karakter
4. huruf kapital atau huruf kecil dianggap sama
contoh:
benar salah
jumlah 3jumlah
harga_jual harga jual

I.2. Kata Baku
Kata Baku merupakan kata khusus yang disediakan oleh bahasa pemograman untuk kebutuhan program. Dalam bahasa Pascal ada beberapa kata baku misalnya:
Absolute external mod shr And file
nil string Array for not then
Begin forward object to Case function
of type Const goto or unit
Constructor if packed until Destructor implementation procedure uses Div in program
var Do inline record virtual Downto
interface repeat while Else interrupt set
with End label shl xor
Suatu kata, terkadang ditulis dengan huruf kapital, huruf kecil ataupun combinasi ke duanya tidak mengubah makna .
Contoh:
PROCEDURE=procedure=PROcedure
I.3. Tipe Data
Tipe data dalam pemograman Pascal dibedakan atas:
a. tipe data sederhana
Tipe data sederhana dibagi lagi atas 2 tipe data yaitu:
1. tipe ordinal dan
2. tipe real
Tipe ordinal merupakan tipe data sederhana sekain tipe real (pecahan), berupa:
* Tipe bilangan bulat

Tipe Kawasan ukuran memori
Shorint -128...127 1 byte
Integer -32768...32768 2 byte
Longint -2147483638...2147483647 4 byte
Byte 0...255 1 byte
Word 0...65535 2 byte

* Tipe Boolean
Suatu tipeyang nilainya berupa False (salah) atau True (benar) saja.
* Tipe Char
Tipe yang hanya terdiri dari sebuah karakter, karakter yang dimaksud dapat berupa karakter ASCII.
* Tipe real
merupakan tipe bilangan pecahan, berupa
Tipe Data Kawasan Ukuran memori
Real ±2,9X10-39...1,7X1038 6 byte
Single ±1,5X10-45...3,4X1038 4 byte
Double ±5,0X10-324...1,7X10308 8 byte
Extended ±5,0X10-4951...1,1X104932 10 byte
Comp -263...263-1 8 byte

b. Tipe data String
String atau literal dapat berupa nol atau sejumlah karakter.
Contoh
‘Selamat datang dalam Pemograman Pascal.’

c. ARRAY
Menurut definisi, array(larik) adalah sebuah variabel yang dapat menyimpan lebih dari satu nilai sejenis (memiliki tipe data sama). Setiap nilai yang disimpan dalam array disebut elemen array. Misalnya array A yang memiliki 10 buah elemen nilai yang bertipe integer, maka kita dapat merepresentasikannya sebagai berikut:
Berikut ini bentuk umum pendeklarasian Array:
NamaArray : array[Indeksawal..IndeksAkhir] of tipe_data;
Contoh:
A:array[1..10]of integer;
Dalam bahasa pascal, tersedia dua fungsi yang dapat mengambil index terrendah dan tertinggi dari sebuah array, yaitu fungsi Low dan High.
CP
Var
A:array[0..5]of integer;
Begin
A[1]:=1;A[2]:=2;A[3]:=3;A[4]:=4;A[5]:=5;
End.
Berikut ini contoh program penggunaan Array
Program AksesArray;
Const
Max:=26
Var
A: array[1..max]of char;
C:char;
I:integer;
Begin
Clrscr;
C:=’a’;
I:=1;
While (i<=max) do begin
A[i]:=c;
Inc(c);
Inc(i);
End;
For i:=1 to max do begin
Write(A[i],’ ‘);
End;
Readln;
End.
Keterangan
Pada kode program di atas kita memiliki array A yang digunakan untuk menyimpan karakter ‘a’ sampai ‘z’. Hasil yang akan diberikan oleh program di atas adalah:
a b c d e f g h i j k l m n o p q r s t u v w x y z
Array Dua Dimensi
Array dua dimensi adalah array yang memiliki dua buah elemen bertipe array.
Pseudocod
NamaArray:array[1..banyakbaris,1..banyakkolom] of tipe_data;
Berikut ini adalah program yang menggunakan array2dimensi
Program JumlahMatriks;
Const
Jbaris=2; jkolom=3;
Type
Matriks23=array[1..jbaris,1..jkolom]of integer;
Var
A,B,C:matriks23;
J,k:integer;
Begin
Writeln(‘Matriks A’);
For j:=1 to jbaris do begin
For k:=1 to jkolom do begin
Write(‘A[‘,j,’,’,k,’]=’);readln(A[j,k]);
End;
Writeln;
End;
Writeln;
Writeln(‘matriks B’);
For j:=1 to jbaris do begin
For k:=1 to jkolom do begin
Write(‘B[‘,j,’,’,k,’]=’);readln(B[j,k]);
End;
Writeln;
Writeln(‘Hasil Penjumlahan’);
For j:=1 to jbaris do begin
For k:=1 to jkolom do begin
C[j,k]:=A[j,k]+B[j,k];
Writeln(‘C[‘,j,’,’,k,’]=’);readln(A[j,k]);
End;
Writeln;
End.
Array Tiga Dimensi
Merupakan array yang memiliki tiga subkrip dan lebih kompleks bila dibandingkan dengan array dua dimensi.
Psudocode
NamaArray:array[1..xmaks,1..ymaks,1..zmaks]of tipe_data;
d. Record
Record merupakan tipe data yang tersusun atas beberapa variabel yang berbeda (atau sama) tipe datanya. Variabel-variabel yang terdapat dalam record biasanya disebut sebagai field. Dalam bahasa pascal tipe Record didefinisikan dengan record, sedangkan dalam C adalah struct
Pseudocode
Namarecord=record
Namafield1:tipe_data1;
Nama_field2:tipe_data2;
...
End;
Setelah didefinisikan, tipe rekaman ini dapat langsung digunakan untuk mendeklarasikan variabel, seperti halnya tipe data lainnya.
Type
Tsiswa =record
NIM:string[8];
Nama:string[25];
Umur:integer;
End;
{menggunakan tipe Tsiswa untuk mendeklarasikan variabel}
Var
S:tsiswa;
Selanjutnya untuk mengakses field dari record di atas kita dapat menggunakan operator titik(.)
{mengisikan nilai ke dalam variable s yang bertipe Tsiswa}
s.nim:=”dddda123”;
s.nama:=”agus”;
s.umur:=18;
untuk menghindari pengulangan dalam penulisan kode, maka pascal menawarkan kemudahan dengan menghadirkan statemen with, sehingga kode di atas dapat dituliskan :
with s do begin
nim:=”dddda123”;
nama:=”agus”;
umur:=18;
end;
Berikut ini contoh program sederhana
Program TipeRecord;
Type
tSiswa=record
nim:string[8];
nama:string[25];
umur:integer;
end;
var s:tSiswa;
begin
writeln(‘Isikan Informasi mengenai diri Anda :’);
write(‘NIM : ‘);readln(s.nim);
write(‘Nama : ‘);readln(s.nama);
write(‘Umur : ‘);readln(umur);
writeln(‘Berikut ini informasi yang telah anda isikan...’);
writeln(‘NIM =’,s.nim);
writeln(‘Nama =’,s.nama);
writeln(‘Umur=’,s.umur);
readln;
end.
e. Tipe Data SetSebuah set merupakan suatu himpunan yang berisi nilai (anggota). set merupakan Tipe data yang khusus untuk Pascal. Set dalam pemrograman sangat mirip dengan himpunan dalam ilmu matematika,
contoh: A = { 1, 2, 3, 4, 5 }Syntax: set of contoh:type Digits = set of 0..9;Letters = set of 'A'..'Z';type Day = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);CharSet = set of Char;Digits = set of 0..9;Days = set of Day;const EvenDigits: Digits = [0, 2, 4, 6, 8];Vowels: Letters = ['A', 'E', 'I', 'O', 'U', 'Y'];Kita tidak bisa menulis atau membaca isi dari set, tetapi kita bisa melakukan operasi yang lain dengan data yang ada pada set (mis. relasional).Contoh:
Program contoh_set;Uses wincrt;type hari = (ahad, sen, sel, rab, kam,jum, Sab);var semua_hari : set of hari;hari_kerja : set of sen .. jum;hari_ini : hari;beginhari_ini:=sen;if hari_ini in hari_kerja thenwriteln('HARI INI HARI KERJA')elsewriteln('HARI LIBUR');end.
Salah satu manfaat dari penggunaan tipe data set adalah untuk mengecek apakah suatu nilai muncul dalam suatu range tertentu. Misalnya, untuk mementukan apakah suatu karakter berupa lower case letter (huruf kecil), mis. Ch adalah tipe Char, kita bisa menulis,
if (Ch >= 'a') and (Ch <= 'z') then Writeln( Ch,' merupakan huruf kecil.');
atau, dengan notasi set, kita bisa menulis ,
if Ch in ['a'..'z'] then Writeln( Ch,' merupakan huruf kecil.');
f. Tipe Data Pointerpointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memory. Suatu variabel yang points(menunjuk) ke sesuatu sehingga disebut pointer. Ada dua macam pointer:-typed(tertentu): merupakan pointer yang menunjuk pada tipe data tertentu pada variable.-generic(umum): merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable.Contoh deklarasi pointer:
var p : ^integer;
Contoh di atas merupakan deklarasi variabel p sebagai pointer dari integer. Dengan menambahkan tanda caret (^) di depan nama tipe data variabel yang dideklarasikan:contoh :
program contoh_pointer1;uses wincrt;var p : ^integer;m, n : integer;beginm:=10;n:=15;p:=@m; { p sekarang menunjuk ke m }p^:=12; { hal ini sama dengan m:=12; }p:=@n; { p sekarang menunjuk ke n }p^=m; { { hal ini sama dengan n:=m; }writeln('m = ',m,', n = ',n); { m = 12, n = 12 }end.
Ketika p menunjuk ke m ( p:=@m;), mengakses p^ sama dengan mengakses m. Dalam membuat program, dalam penggunaan pointer kita memerlukan alokasi memori tertentu: Ketika kita mendeklarasikan variabel pointer dalam "var" sehingga merupakan suatu static variable, yang mana Static variable ini dibatasi oleh kapasitas 64KB untuk tiap module. Yang berarti dalam program utama kita hanya bisa menggunakan hanya 64KB dan tiap unit Pascal hanya bisa memakai 64KB. Sehingga kita perlu memecahkan program kebeberapa unit. Salah satu teknik yang dipakai untuk mengatasi persoalan ini adalah seperti program berikut.
Program contoh_pointer2;uses wincrt;Type Pemployee = ^Temployee;Temployee = record Name : string[10];Position : char;Salary : longint;end;var p : pemployee;beginnew(p);p^.name:='Saddam';p^.position:='S';p^.salary:=3000;writeln(p^.name,' ',p^.position,' ',p^.salary);dispose(p);end.
Pada blok begin...end blok, kita bisa melihat meskipun p tidak menunjuk pada suatu variable tetapi dapat diisi dengan nilai. Pernyataan new(p); tidak memerlukan alokasi memori. Setelah itu kita bisa melakukan apapun pada variabel tersebut sampai kita membuangnya dari memori dengan memakai perintah dispose(p);. Variable dengan cara ini dinamakan dengan dynamic variable. Generic Pointer adalah pointer tanpa tipe data tertentu. Biasanya, pointer berkaitan dengan tipe data khusus, sedangkan generic pointer tidak.Deklarasi:
Var P : pointer;
Dipergunakan sebagai buffer sementara (tidak permanen). Sehingga kita bisa melepasnya untuk suatu saat tidak diperlukan. Untuk itu pointer sangat bagus karena sifatnya yang dinamis. Tetapi, generic pointer tidak sama dengan typed pointer. Typed pointer menggunakan "new" untuk menampung memori dan "dispose" untuk melepasnya. Generic pointer menggunakan "getmem" untuk mendapatkan memori dan "freemem" untuk melepasnya. Pada pointer dengan tipe tertentu, program Pascal mengetahui ukuran dari memori yang harus dilaokasikan, sedangkan tipe umum (generic pointer) Pascal tidak bisa, karena Pascal tidak mengetahui variabel apa yang akan dipakai. Sehingga dengan getmem kita perlu untuk menentukan berapa besar memori yang akan kita alokasikan. Ukuran terbesar adalah 65532 bytes (hampir 64K).
Program contoh_pointer2;uses wincrt;Var P : pointer;BeginGetmem(p,8192); { Reserve 8192 bytes }{ We use it then }freemem(p,8192); { Release it, 8192 bytes }end.
I.4. Variabel
Merupakan pengenal yang nilainya berubah-ubah dalam pemograman dan juga untuk menyimpan suatu nilai. Variabel harus dideklarasikan terlebih dahulu sebelum digunakan dalam program, maksudnya menentukan memori yang akan digunakan variabel untuk menyimpan nilai atau data dan menentukan tipe data yang digunakan.
Pseudocod
Var pengenal : Tipe Data;
Contoh:
Var bil:integer;
Var Luas:real;
Var pilihan:char;
Contoh Program (CP)1
Uses wincrt;
Var bil:integer;
Luas:real;
Begin
Bil:=10;
Luas:=55.5;
Writeln(‘Bilangan variabel bil adalah ’,bil,’ dan luas adalah ‘,luas);
End.
simpan dengan nama lat2.pas dan kompile program dengan Ctrl + F9
I.5. Konstanta
Merupakan suatu nilai yang tetap dalam program.
Penggunaan konstanta dapat kita lihat pada CP diatas.
Berikut ini konstanta yang sering digunakan dalam pemograman:
^G bell, membunyikan bel komputer
pendeklarasian konstanta pada program diaturkan penulisannya seperti contoh berikut ini:
const pi=3.14;
nama=’ANDI’;
pilihan=’a’;
keterangan:
pendeklarasian konstanta harus diawali dengan kata baku Pascal Const, kemudian nilai konstantanya.
II. Operator
Merupakan simbol atau karakter yang digunakan dalam program untuk melakukan suatu operasi.
- Operator Aritmetika
* perkalian
/ pembagian
+ penjumlahan
- pengurangan
div pembagian real
mod sisa pembagian
Operator-operator aritmetika diatas tersusun menurut urutan dan kekuatannya dalam suatu operasi, bila terdapat semua operator diatas maka operasi yang pertama dilaksanakan adalah perkalian (*) kemudian pembagian (/), penjumlahan (+) atau pengurangan (-). Operator div dan mod hanya bisa dikenakan pada operand bertipe bilangan bulat, hasil operasi juga bilangan bulat.
Misalnya untuk memperoleh nilai diskriminan dari suatu persamaan kuadrat adalah :
d=b2-4ac
CP2.
Uses wincrt;
Var a,b,c,d:real;
Begin
A:=3;
B:=4;
C:=7;
D:=b*b-4*a*c;
writeln(‘diskriminan= ’,d);
end.
simpan dan eksekusi program dengan Ctrl+F9
-Operator Boolean
Ada 4 buah operator boolean, yaitu AND, OR, XOR dan NOT
Berikut ini diberikan tabel hasil operasi boolean
Operand1
Operand2
Hasil Operasi
AND
OR
XOR
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
TRUE
FALSE
TRUE
TRUE
TRUE
FALSE
FALSE
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
FALSE
- Operator penaikan dan penurunan
+ penaikan; nilai tambah satu
- penurunan; nilai berkurang satu
Berikut ini adalah contoh program aplikasi perhitungan luas lingkaran
CP3.
USES wincrt;
Var r, luas:real;
Const pi=3.14;
begin
writeln(‘Program Menghitung luas lingkaran.’);
Write(‘Masukkan Jari-jari lingkaran R =’);Readln(r);
luas=pi*r*r;
Writeln(‘Maka luas lingkaran dengan jari-jari ‘,r,’ adalah ’,luas);
End.
- Operator Relasi
= sama dengan
> lebih besar dari
>= lebih besar dari dan sama dengan
< lebih kecil dari
<= lebih kecil dan sama dengan
<> tidak sama dengan
Latihan.
Buatlah 3 buah program
menghitung luas persegi panjang dengan panjang dan lebar bilangan bulat
menghitung volume balok dengan Panjang, lebar dan tinggi adalah bilangan real.
menghitung konversi suhu Celcius ke Franheit sebaliknya Reamur ke Franheit,

Pengantar Pemograman Pascal

Bentuk umum sebuah program yang ditulis menggunakan bahasa Pascal. Adalah:

Program namaProgram;
Const NamaPengenal=NilaiKonstan;
Var namaPengenal : TipeData;
Begin
Tubuh program utama
End.

Keterangan
Setiap program yang ditulis menggunakan bahasa Pascal harus terdapat program utama. Program utama ini diawali dengan kata BEGIN dan diakhiri dengan END. , harus kita perhatikan kata END diakhiri dengan tanda titik. Setiap pernyataan atau instruksi harus diakhiri dengan tanda titik koma (;). Uses ; merupakan pernyataan bahwa program yang kita buat menggunakan atau memanggil file unit merupakan file-file yang berisi pustaka Pascal yaitu fungsi-fungsi yang biasa dipakai dalam pemograman PASCAL. File *.TPU juga dapat dibuat sendiri sesuai dengan kebutuhan pemograman.
merupakan pernyataan untuk pendeklarasian. Pendeklarasian dapat berupa pendeklarasian variabel, konstanta, label, dan type yang digunakan dalam program. Parameter tidak diharuskan ada dalam program, hanya tergantung kebutuhan program saja.
Bisa kita lihat dibawah ini, contoh pogram yang memiliki pendeklarasian yang lengkap:
Program Hitung_luas _segitiga;
{keterangan program}
Label
10,Selesai,akhir;
Const
Jamkerja=40;
Var gaji:real;
Begin
Pernyataan;
End.

Untuk menjalankan program yang telah dituliskan kita menggunakan tombol F9 untuk mengetahui apakah program yang kita buat sudah layak atau tidak erorr lagi saat dijalankan atau dieksekusi pada mesin komputer. Sedangkan untuk melihat hasil eksekusi program, kita menggunakan CTRL+F9.
Berikut ini sebuah contoh program yang ditulis dalam bahasa Pascal.
Begin
Writeln(‘Selamat datang dalam pemograman Pascal’);
End.
setelah selesai Anda ketik list program di atas dalam editor Free Pascal, lakukan compile dengan menekan tombol F9 kemudian Ctrl + F9 untuk membentuk file executable file atau file yang dapat dijalankan.Jika compilasi file berhasil, jalankan program maka akan muncul tampilan pada monitor sepeti:
Selamat datang dalam pemograman Pascal
Pernyataan Writeln(‘Selamat datang dalam pemograman Pascal’);
Merupakan pernyataan untuk menampilkan teks yang diapit tanda petik pada layar monitor.
Fungsi WRITELN dan WRITE
Fungsi Writeln dan write merupakan fungsi atau instruksi dalam pemograman pascal untuk menampilkan ke layar monitor atau ke kertas melalui mesin printer. Perbedaan kedua fungsi ini adalah bila Writeln, menampilkan kemudian pindah pada baris berikutnya sedangkan write, menampilkan tetapi kursor masih berada pada baris yang sama.
Pseudocod:
WRITELN(‘......’);
WRITE(‘.......’);
Fungsi Readln dan Read
Readln atau read adalah argumen atau pernyataan dalam pemograman Pascal untuk menerima dan menyimpan input dari keyboard ke dalam memori dengan nama variabel tertentu.
Pseudocod:
READLN(variabel);
READ(Variabel);
Contoh penggunaan Writeln, Write, Readln, Read dapat dilihat pada contoh program.
b.Praprosesor USES
USES merupakan salah satu jenis pengarah praprosesor. Pengarah praprosesor ini dipakai untuk membaca file yang dinamakan file–pustaka(*.TPU), yaitu file yang diantaranya berisikan deklarasi fusngsi dan defenisi konstanta. Dalam turbo Pascal file pustaka ini berekstensi *.TPU. misalnya pada program terdapat USES WINCRT; menyatakan kompiler agar membaca file bernama wincrt.tpu saat pelaksanaan kompilasi.
Contoh Program
Uses wincrt;
Begin
Writeln(‘Program Menerima Input dari keyboard’);
Writeln(‘Tekan Enter sekarang juga’);
Readln;
Write(‘Anda telah menekan enter!!!! ’);
Writeln*’Terima kasih’);
End.
Keterangan:
Ketikan list program diatas, kemudian compile dengan Ctrl+F9. Bila program dijalankan atau dieksekusi akan muncul output pada layar monitor,
Program Menerima Input dari Keyboard
Tekan Enter sekarang juga.
Program menunggu Anda menekan Enter, Setelah Anda menekan tombol enter, kemudian akan muncul
Anda telah menekan enter!!!! Terima kasih
Kalau di dalam list program kalimat ini dituliskan dalam 2 baris pernyataan tetapi outputnya menjadi satu baris, di sini terlihat perbedaan Writeln dan write.