Ada dua macam subrutin pada Pascal, yaitu procedure dan fungsi.
Kedua jenis subrutin ini memiliki kegunaan yang sama, yaitu melakukan tugas
tertentu. Perbedaannya, fungsi selalu mengembalikan suatu nilai setelah dipanggil
sedangkan procedure tidak.
Kita memerlukan subrutin karena dalam program yang besar, akan
lebih baik jika tugas tertentu dilakukan oleh subrutin tertentu. Dengan
demikian program menjadi lebih mudah dibaca. Perhatikan program-program dibawah
ini :
Begin
Baca Data;
Proses
Data;
Tulis Hasil;
End.
Disamping mudah dibaca, pelacakan kesalahan program juga menjadi
lebih mudah. Untuk contoh diatas, apabila terjadi kesalahan dalam pembacaan
data, kita bisa memusatkan perhatian pada subrutin Baca Data. Apabila
berikutnya terjadi kesalahan dalam penulisan hasil, kita hanya perlu memusatkan
perhatian pada subrutin Tulis Hasil.
A.
Pengertian
dan Contoh Procedure dan Function
Berikut ini
adalah sintaks penulisan procedure secara umum :
Procedure nama_procedur
{parameter1;
parameter2; . . .}
Begin
{pernyataan-pernyataan}
End;
Berikut ini
sintaks penulisan fungsi secara umum :
Function nama_fungsi
{parameter1; parameter2; . . . }:
Tipe_kembalian
Begin
{pernyataan-pernyataan}
End;
Nama_procedur
dan nama_fungsi merupakan nama yang diberikan ke procedur atau fungsi.
Tipe_kembalian adalah tipe data dari nilai yang dikembalikan oleh fungsi.
Parameter1, parameter2, ... merupakan informais yang diberikan ke prosedur atau
fungsi. Berikut ini adalah contoh sebuah prosedur dengan nama prosedurku:
Procedure prosedurku;
Begin
{pernyataan-pernyataan}
End;
Berikut adalah
contoh fungsi dengan nama fungsiku :
Function fungsiku : integer;
Begin
{pernyataan-pernyataan}
End;
Kedua subrutin
diatas belum memiliki parameter. Berikut ini adalah contoh subrutin dengan
parameter. Dalam memberikan parameter, harus ditentukan tipe parameternya.
Procedure coba (S:string);
Begin
{
pernyataan-pernyataan }
End;
Bila sebuah
procedure atau fungsi memerlukan beberapa parameter, masing-masing parameter
dipisahkan dengan tanda titik koma. Contoh :
Procedure cobalagi (S:string; x:integer);
Begin
{
pernyataan-pernyataan}
End;
Untuk beberapa
parameter dengan tipe sama, maka cukup menuliskan tipe satu kali tetapi
maisng-masing parameter dipisahkan dengan tanda koma.
Contoh :
Function lagi (i,j:longint) : longint;
Begin
{
Pernyataan-Pernyataan }
End;
Fungsi lagi
diatas memerlukan dua perameter bertipe longint, yaitu I dan J. Fungsi lagi
diatas mempunyai tipe kembalian longint. Untuk mengembalikan nilai pada suatu
fungsi, berilah nilai pada variabel yang bernama sama dengan fungsinya. Sebagai
contoh, untuk lagi diatas, dapat dituliskan pernyataan berikut :
Function lagi (i,j:longint) : longint;
Begin
Lagi := i + j;
End;
Pemanggilan
sebuah prosedur dan fungsi dilakukan dnegan menyebutkan namanya.
Contoh :
Prosedurku;
Bila terdapat
paramter, letakkan parameter didalam tanda kurung.
Contoh :
Coba (‘Pascal’);
Memanggil
prosedur coba dengan parameter ‘Pascal’,
Contoh lain :
Cobalagi (‘Pascal’,100);
Utnuk menangkap
nilai kembalian dari sebuah fungsi, harus menyediakan variabel.
Contoh :
x := lagi (2,5);
ada dua cara
yang dapat dilakukan dalam melewatkan parameter ke sebuah prosedur atau fungsi:
1.
Passing by
value / dilewatkan dengan nilai. Bila melewatkannya dengan nilai, subrutin yang
dipanggil tidak dapat mengubah nilainya. Hal ini dikarenakan parameter yang
dilewatkan secara nilai kaan dikopi sebagai nilai local di procedure/function
yang bersangkutan.
Contoh :
Setelah dieksekusi, nilai bil tidak berubah dan hanya berubah pada
lingkup lokal procedure Ubah itu sendiri dan ketika bil dipanggil tanpa
memanggil procedure Ubah, maka nilai kembali ke asal yaitu 1. Hal ini dapat
dibuktikan dengan hasil eksekusi contoh program diatas adalah sebagai berikut :
2.
Passing by
reference / melewatkan dengan referensi, subrutin yang dipanggil dapat mengubah
nilainnya. Untuk melewatkan parameter dengan referensi tambahan kata kunci var
didepan nama parameter.
Contoh :
Setelah dieksekusi, nilai bil akan berubah setelah pemanggilan
procedure Ubah. Hal ini dikarenakan pada parameter procedure tersebut
ditambahkan kata kunci var nilai bil berubah menjadi 10. Berikut hasil eksekusi
contoh program diatas :
Didalam sebuah prosedur atau fungsi,
dapat dideklarasikan tipe, variabel, atau konstanta yang bersifat lokal. Dapat
juga dideklarasikan tipe, variabel, atau konstanta di luar kelas, dengan
demikian sifatnya global.
Contoh :
Var global : integer;
Procedure coba;
Var
Lokal : integer;
Begin
End;
0 komentar "SUBRUTIN (PROCEDURE DAN FUNCTION)", Baca atau Masukkan Komentar
Posting Komentar