About

SUBRUTIN (PROCEDURE DAN FUNCTION)



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