Prosedur dan Fungsi di Turbo Pascal
A.
Konsep
pemrograman prosedural
Ketika program yang dibuat
sudah terlalu panjang ratusan bahkan puluhan ribu baris, sehingga kita
mengalami kesulitan untuk memahami jalannya program secara keseluruhan, maka
ada baiknya bila program tersebut dipecah menjadi beberapa bagian yang biasanya
disebut modul, subprogram atau subrutin. Konsep semacam ini biasa disebut
dengan pemrograman prosedural. Dalam tulisan ini selanjutnya akan digunakan
kata modul supaya lebih ringkas. Turbo Pascal yang digunakan pada
percobaan ini adalah versi 7.1, bila anda menggunakan Turbo Pascal 7.0 maka
prosesnya tidak jauh berbeda.
Memecah program menjadi
modul-modul tentunya akan lebih memudahkan dalam mencari kesalahan, memperbaiki
serta membuat dokumentasinya. Pembuatan modul
di Turbo Pascal dibagi dua jenis yaitu : Prosedur dan Fungsi. Prosedur
atau Fungsi adalah suatu modul program yang terpisah dari program utama,
diletakan dalam blok tersendiri yang berfungsi sebagai bagian dari program.
Setiap prosedur diawali dengan kata cadangan (reserver word) Procedure,
sedangkan Fungsi diawali dengan kata
cadangan Function.
Prosedur atau Fungsi banyak digunakan pada program terstruktur, karena :
1.
Merupakan penerapan konsep modular, yaitu memecah program
menjadi modul-modul atau subprogram-subprogam yang lebih sederhana.
2.
Untuk hal-hal yang sering dilakukan berulang-ulang, cukup
dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan
sewaktu-waktu bila diperlukan.
B.
Penulisan
Prosedur (Procedure)
Prosedur memiliki struktur
yang sama dengan struktur program, yaitu terdiri dari nama prosedur,
deklarasi-deklarasi dan bagian deskripsi (statement atau aksi di dalam
prosedur). Semua deklarasi di dalam prosedur bersifat lokal sehingga hanya bisa
digunakan oleh prosedur itu saja, sedangkan deklarasi di dalam program utama
bersifat global sehingga dapat dikenali di seluruh bagian program. Struktur
umum prosedur adalah sebagai berikut :
Procedure Nama_Prosedur (param_formal1:tipe_param1, param_formal2:tipe_param2,…);
{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;
…………
Statement-n;
end;
Gambar 1. Cara Penulisan
Prosedur di dalam Turbo Pascal
C.
Bagaimana
jika tanpa prosedur ?
Apakah dalam suatu program
harus selalu terdapat prosedur? Jawabannya adalah tidak. Bila kita membuat
program yang sangat sederhana, misalnya program untuk menampilkan kata “hallo
world” di layar, maka boleh saja tidak menggunakan prosedur. Untuk
lebih jelasnya berikut disajikan contoh program untuk menghitung luas dan keliling
persegipanjang yang menggunakan prosedur dan tanpa prosedur.
Program PersegiPanjang; {Judul Program Utama}
uses crt;
var {deklarasi variabel global}
p,l:byte; {p :panjang, l:lebar}
ls,kel:integer; {ls:luas, kel:keliling}
begin
clrscr;
writeln('Program Untuk Menghitung luas dan keliling persegipanjang');
writeln;
write('Masukan panjang : ');readln(p);
write('Masukan lebar : ');readln(l);
writeln;
ls:=p*l; {luas=panjang x lebar}
Kel:=(2*p)+(2*l); {keliling=(2 x panjang) + (2 x lebar)}
writeln('Luas : ',ls);
writeln('Keliling : ',kel);
readln;
end.
Gambar 3. Program Persegipanjang
tanpa prosedur
Silahkan anda bisa mencoba
dengan menginputkan angka yang berbeda, yang penting tidak melebihi 255, karena
type data byte yang digunakan oleh variabel p dan l
seperti pada contoh program diatas
hanya mampu menampung data berupa angka sampai dengan 255, sedangkan variabel luas
& keliling hanya mampu menampung angka -32768
s/d 32767 karena menggunakan tipe data integer. Mengapa demikian, bagaimana
cara mengetahui jangkauan suatu tipe data?, Untuk mengetahui jangkauan (range)
tipe data, anda bisa melihat di bagian help. Caranya : Help > Index,
kemudian cari kata integer, lalu tekan enter
Oh ya! di Turbo Pascal,
terdapat fasilitas untuk mengatur warna tampilan, misalnya warna Sintaks (sintax),
bila anda ingin mencoba silahkan masuk ke menu Option > Environment
> Color. Di bagian Group cari kata Syntax,
selanjutnya di bagian Item, terdapat item-item : Whitespace,
Comments, Reserver Words, Identifiers, Symbols, Strings, Numbers, Assembler yang dapat diatur warna tampilannya, caranya
pilih salah satu Item kemudian pilih warna apa yang dikehendaki pada bagian Foreground
untuk warna depan sedangkan Background untuk warna latar
belakang.
Pengaturan tampilan warna sintax pada
Editor Turbo Pascal memang bukan suatu kewajiban, dan tidak akan berpengaruh
terhadap proses program. Tetapi hal ini bermanfaat pada saat proses
pembuatan/pengetikan program, dimana perbedaan warna item-item sintax akan membantu kita
dalam pembacaan program.
D.
Menggunakan
prosedur
|
Selanjutnya kita modifikasi program tadi, dengan menambahkan prosedur sehingga menjadi seperti dibawah ini :
Pada program tanpa
prosedur maka seluruh statement dituliskan di dalam blok program
utama, sehingga ketika program semakin besar maka blok program utama semakin
padat. Tetapi bila menggunakan prosedur maka di dalam blok program utama akan
lebih sedikit, karena hanya berisi nama prosedur yang dibutuhkan dan statement
tambahan lainnnya yang dibutuhkan. Pada contoh diatas nama prosedur yang
dipanggil di dalam blok program utama yaitu
Hitung_Luas
dan Hitung_Keliling dan arah pemanggilan prosedur
digambarkan dengan garis putus-putus berwarna merah agar lebih jelas.
Bila dituliskan di Editor Turbo Pascal kira-kira tampilannya seperti
dibawah ini. Untuk melihat hasilnya, seperti biasa silahkan tekan Ctrl + F9.
Bila program sudah dieksekusi maka kedua program tersebut (program dengan
prosedur atau tanpa prosedur) akan memberikan hasil yang sama, tetapi dari
teknik pembuatan program jelas berbeda.
Ketika kita membuat suatu
program tanpa prosedur maka seluruh statement yang terdapat di dalam program
utama akan dieksekusi secara beruntun (sequential) dari atas ke bawah,
sedangkan bila menggunakan prosedur,
maka program utama hanya akan mengeksekusi prosedur-prosedur yang dipanggil,
bila prosedur tersebut dipanggil di dalam
program utama, jadi bila untuk sementara kita tidak membutuhkannya, maka
cara mudah yang dapat kita lakukan yaitu tidak usah menghapusnya tetapi cukup dengan
tidak memanggilnya di dalam blok program utama.
E.
Variabel Global dan Variabel Lokal
Untuk lebih memudahkan kita memahami variabel lokal dan variabel global, mari
kita modifikasi listing prorgram pada Gambar 9, perubahannya hanya sedikit
yaitu, memindahkan penulisan variabel ls ke dalam Procedure
Hitung_luas , dan variabel kel dipindahkan ke
dalam Procedure Hitung_keliling, sehingga menjadi seperti dibawah ini.
Variabel p dan l pada listing program di Gambar 11 diatas, bersifat
global sehingga dapat dikenali baik di program utama maupun didalam Procedure
Hitung_luas dan Procedure
Hitung_keliling, variabel semacam
itulah yang dimaksud dengan variabel global. Sedangkan variabel ls dan variabel kel bersifat lokal dan hanya dikenali oleh program itu
sendiri, variabel seperti itu disebut variabel lokal. Bila variabel lokal
dipanggil diluar prosedur tersebut maka tidak akan dikenali dan program menjadi
error, sebagai bukti mari kita sedikit
modifikasi listing program pada gambar 11, output program yang terdapat pada
masing-masing program kita pindahkan ke dalam blok program utama, sehingga di
dalam setiap prosedur hanya terdapat satu statement saja, hasilnya seperti dibawah ini.
Bila program tersebut dicompile
maka akan terjadi error karena variabel ls dan kel
tidak dikenali (unknown identifier) di dalam blok program utama. Prosedur yang terdapat di dalam
program pada listing diatas adalah contoh prosedur tanpa parameter.. Bila
prosedur tidak memiliki parameter maka tanda kurung setelah nama prosedur tidak
perlu disertakan. Agar listing program pada gambar 12 tidak terjadi error ketika dicompile, maka dapat
dilakukan cara sebagai berikut :
1.
Dibuat
bersifat global
Supaya suatu variabel bersifat global, maka harus dideklarasikan di atas
modul yang menggunakannya. Misalnya listing program pada gambar 12 dikembalikan
sepertii listing program pada gambar 11.
2.
Dikirim sebagai parameter ke modul yang membutuhkannya.
Bagaimana
caranya?, apa yang dimaksud dengan parameter?, semoga tulisan berikut ini bisa
menjawab kedua pertanyaan tersebut.
No comments:
Post a Comment