Apabila ada sekelompok pernyataan yang harus ditulis lagi di baris lain dalam program maka sebaiknya pernyataan-pernyataan tersebut dijadikan sub program yang dimanfaatkan bila diperlukan. Cara memanfaatkan sub program dilakukan dengan ’memanggilan’ sub program tersebut. Dengan cara ini maka programmer tidak perlu lagi menulis ulang dan akhirnya dapat menghemat memori. Kelompok pernyataan (sub program) dikenal juga sebagai sub rutin.
Dalam pemprograman Pascal dikenal dua macam sub rutin: 1. kelompok pernyataan yang dapat menghasilkan nilai, disebut dengan function. dan 2. kelompok pernyataan yang tidak menghasilkan nilai, disebut procedure. Kompiler Pascal sudah dilengkapai dengan berbagai macam procedure dan function, meskipun begitu Pascal mengijinkan programmer membuat procedure dan
function sendiri. Berikut ini adalah contoh beberapa procedure dan function
yang telah disediakan Pascal.
Nama Proc. Fungsi Unit
Write() Menulis ke consol output (monitor) System Writeln() Menulis ke consol output (monitor) System
Clrscr() Menghapus layar yang aktif Crt Gotoxy() Memindah kursor ke kolom x baris y Crt
Nama Funct. Fungsi Unit
Abs(x) Menghasilkan nilai absolut dari x (= + …,…) System Arctan(x) Menghasilkan invers tangen dari x (radian) System
Cos(x) Menghasilkan cos dari x (radian) System
Exp(x) Menghasilkan exponen dari x (= ex) System
Frac(x) Menghasilkan bagian pecahan dari x (= ± 0, …) System Int(x) Menghasilkan bagian bulat dari x (= ± …) System
Ln(x) Menghasilkan logaritma natural dari x (= elog(x)) System
Pi Menghasilkan nilai 22/7 System
Round(x) Menghasilkan nilai pembulatan dari x (= ± …) System
Sin(x) Menghasilkan sin dari x (radian) System
Sqr(x) Menghasilkan kuadrat dari x (= x2) System
Sqrt(x) Menghasilkan akar kuadrat dari x (= √x) System Trunc(x) Menghasilkan nilai absolut dan nilai bulat dari x (= + …) System
Odd(x) Menghasilkan status ganjil/genap dari x (= true bila ganjil) System Random(x) Menghasilkan bilangan bulat acak dari 0 hingga < x System
Random Menghasilkan bilangan pecahan acak dari 0 hingga 1 System
Procedure dan function yang ada pada unit system dapat langsung digunakan (dipanggil). Selain itu, yang tidak ada pada unit system, program harus melibatkan unit yang terdapat deklarasi procedure dan function tersebut. Untuk melibatkan unit yang dimaksud, digunakan kata kunci USES.
PROGRAM nama_program;
Pemprogram boleh membuat function baru dengan cara mendeklarasikannya, sebagai berikut:
FUNCTION nama_fungsi(daftar_parameter_parameter_formal): tipe_hasil; VAR nama_nama_variabel_internal_fungsi : tipe variabel;
BEGIN
pernyataan_pernyataan_dalam_function; nama_fungsi := nilai_hasil;
END;
Sedangkan untuk membuat procedure baru deklarasinya adalah sebagai berikut:
PROCEDURE nama_prosedur(daftar_parameter_parameter_formal); VAR nama_nama_variabel_internal_prosedur : tipe variabel; BEGIN
pernyataan_pernyataan_dalam_prosedure; END;
Penulisan daftar parameter-parameter formal didahului dengan nama parameter dan diikuti dengan tipenya, berikut ini contoh penulisannya:
a, b : byte {dua parameter bertipe sama}
c : integer; d : real {dua parameter berbeda tipe}
var a, b : byte; c : word {paramter yang dideklarasikan dengan var dapat digunakan untuk input dan output bagai function dan procedure}
Procedure dan function boleh memanggil procedure dan function
yang lain dengan syarat procedure dan function yang dipanggil sudah dideklarasikan diatasnya. Salah satu perbedaan antara procedure dan function
adalah ada dan tidaknya baris yang digunakan untuk memberikan nilai output (lihat baris function).
Procedure dan function yang dibuat sendiri dapat ditulis menjadi satu naskah (satu file) dengan program utama atau ditulis dalam naskah yang terpisah. Penulisan dalam naskah yang terpisah akan menghasilkan file unit. Format naskah file unit ditunjukkan dibawah ini, dan harus disimpan dengan nama yang sama dengan nama unitnya. File unit harus dikompilasi dan akan menghasilkan file dengan ekstensi TPU.
UNIT nama_unit; INTERFACE
USES daftar_nama_unit; {bila diperlukan}
{berisi deklarasi function dan procedure secara umum} IMPLEMENTATION
{berisi deklarasi function dan procedure} {serta implementasi function dan procedure} BEGIN
Latihan 1: Procedure Tujuan :
1. Mengetahui cara deklarasi dan memanggil procedure.
Langkah Percobaan
1. Tulislah program dibawah ini pada editor Turbo Pascal
Brs
ke Naskah program Keterangan
1 Program membuat_dan_memanggil_procedure;
2 (* --- *)
3 (* Nama : *)
4 (* NIM : *)
5 (* --- *)
6 Const spasi = #32;
7 Procedure garis(kar : char; jumlah: byte); Deklarasi procedure
8 Var n : byte; Variabel internal prosedur garis
9 Begin Awal penulisan pernyataan prosedure
10 For n := 1 to jumlah do
Pernyataan yang ada dalam prosedur garis
11 Write(kar);
12 Writeln;
13 End; Akhir penulisan pernyataan prosedur
14 Begin Awal program utama
15 Garis(#205, 22); Pemanggilan prosedur
16 Writeln(spasi:5,’Hallo Pascal’);
17 Garis(#205, 22); Pemanggilan prosedur
18 Readln;
19 End. Akhir program utama
2. Kompilasi dan jalan program. Berikan respon pada perintah yang diberikan oleh program. Amati output program pada layar monitor dan catat hasilnya.
Data dari hasil pengamatan layar monitor
Baris Kolom
12345678901234567890123456788901234567890 Keterangan/komentar
1
2
3
4
5
6
7
8
9
10
11
Pengamatan data
Lengkapi kolom keterangan/komentar.
Latihan 2: Function Tujuan :
1. Mengetahui cara deklarasi dan memanggil procedure.
Langkah Percobaan
1. Tulislah program dibawah ini pada editor Turbo Pascal
Brs
ke Naskah program Keterangan
1 Program membuat_dan memanggil_function;
2 (* --- *)
3 (* Nama : *)
4 (* NIM : *)
5 (* --- *)
6 Var A, B, C : real;
7 Function NilaiMax(x, y : real): real;
8 Begin
9 If x > y then nilaimax := x;
10 Else nilaimax := y;
11 End;
12 Begin
13 Write(’masukkan tiga buah bilangan -> ’);
14 Readln(a , b, c);
15 Writeln(’Nilai terbesar = ’, maksimum(a, mak
16 simum(b, c));
17 Readln;
18 End.
2. Kompilasi dan jalan program. Berikan respon pada perintah yang diberikan oleh program. Amati output program pada layar monitor dan catat hasilnya.
Data dari hasil pengamatan layar monitor
Baris Kolom
12345678901234567890123456788901234567890 Keterangan/komentar
1
2
3
4
5
6
7
Pengamatan data
Lengkapi kolom keterangan/komentar.
Latihan 3: Membuat Unit Tujuan :
1. Mengetahui cara membuat unit dan menggabungkan dengan program utama.
Langkah Percobaan
1. Tulislah program dibawah ini pada editor Turbo Pascal
Brs
Ke Naskah program dalam unit ‘unitku.pas’ Keterangan
1 Unit unitku; Unit buatan sendiri
2 Interface Awal bagian interface
3 Const spasi = #32; Konstanta global
4 Procedure garis(kar : char; jumlah: byte); Prosedur bersifat global 5 Function NilaiMax(x, y : real): real; Funcsi bersifat global 6 Implementation Awal bagian implementasi 7 Function NilaiMax(x, y : real): real; Implementasi fungsi 8 Begin
9 If x > y then nilaimax := x;
10 Else nilaimax := y;
11 End;
12 Procedure garis(kar : char; jumlah: byte); Implementasi prosedur
13 Var n : byte; Deklarasi variabel lokal
14 Begin
15 For n := 1 to jumlah do
16 Write(kar);
17 Writeln;
18 End;
19 End. Akhir unit (tidak ada inisialisasi
2. Simpan dengan nama unitku.pas. Kompilasi dan pastikan Anda sudah mempunyai file unitku.tpu.
3. Tuliskan program berikut ini untuk menguji unit yang telah dibuat.
Brs
Ke Naskah program dalam unit ‘unitku.pas’ Keterangan
1 Program penguji_unitku;
2 Uses unitku; Melibatkan unit: unitku.tpu
3 Const spasi = #32;
4 Var A, B, C : real;
5 Begin
6 Garis(#205, 22); Pemanggilan prosedure garis
7 Writeln(spasi:5,’menguji unitku’);
8 Garis(#205, 22); Pemanggilan prosedure garis
9 Write(’masukkan tiga buah bilangan -> ’);
10 Readln(a , b, c);
11 Writeln(’Nilai terbesar = ’, Pemanggilan fungsi nilaimax 12 Nilaimax(a, Nilaimax (b, c));
13 Readln;
Data dari hasil pengamatan layar monitor
Baris Kolom
12345678901234567890123456788901234567890 Keterangan/komentar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Pengamatan data
Lengkapi kolom keterangan/komentar.
Lengkapilah pernyataan berikut
1. Berikan contoh deklarasi procedure dengan dua parameter yang berbeda tipe.
…….………..
…….………..
…….………..
…….………..
…….………..
2. Berikan contoh pemanggilan procedure dengan dua parameter yang berbeda tipe.
…….………..
…….………..
3. Berikan contoh deklarasi function dengan dua parameter yang berbeda tipe dan
outputnya bertipe boolean.
…….………..
……….
4. Berikan contoh pemanggilan function dengan dua parameter yang berbeda tipe
…….………..
…….………..
5. Anggap nama unit berbeda dengan nama file.
a) Apakah ada pesan kesalahan saat kompilasi?
…….………..
b) Apa pesan kesalahannya?
…….………..
c) Apakah ada pesan kesalahan saat pemanggilan procedure dan fungsi?
…….………..
d) Apa pesan kesalahannya?