SUBRUTIN Ada dua macam subrutin pada pascal, yaitu prosedur dan fungsi. Prosedur dan fungsi memiliki fungsi yang sama yaitu melakukan tugas tertentu, perbedaannya adalah apabila fungsi mengembalikan suatu nilai setelah dipanggil sedangkan untuk prosedur tidak. Mengapa Kita perlu SUbRUTin……? Jawabnya adalah sederhana saja kerena dalam program pascal yang besar, akan lebih baik jika tugas tertentu dilakukan oleh subrutin tertentu, dengan demikian program akan menjadi lebih mudah dibaca Contioh : Begin Bacadata; Prosesdata; Tulishasil; End; PROSEDUR DAN FUNGSI Berikut ini adalah sintak penulisan prosedur secara umum : Procedur nama_prosedur(parameter1;parameter2;…) Begin (pernyataan-pernyataan) End. Berikut ini adalah sintak penulisan fungsi secara umum : function nama_fungsi(perameter1;parameter2;….). tipe_kembalian begin (pernyataan-pernyataan) end; Nama procedure dan Nama_fungsi merupakan nama yang anda berikan ke prosedur atau fungsi. Tipe kembalian adalah tipe data dari nilai yang dikembalikan oleh fungsi. Parameter1,parameter2…… adalah merupakan informasi yang diberikan ke prosedur atau fungsi. Berikut adalah sebuah contoh prosedur dengan nama procedurku dan sebuah fungsi dengan nama fungsiku: Procedure prosedurku; Begin (pernyataan-pernyataan); End; Fungction fungsiku : integer; Begin (pernyataan-pernyataan); End; Kedua subrutin diatas belum memiliki paramter CONTOH SUBRUTIN YANG MEMILIKI PARAMETER Perhatikan dalam memberikan parameter, anda harus menentukan tipe parameter : procedur coba (b : string); begin (pernyataan-pernyataan); end; Berikut adalah contoh prosedur dan fungsi dengan beberpa parameter, masing-masing perameter dipisahkan dengan tanda titik koma (;) procedure cobalagi (b:string ; x:string ); begin (pernyataan-pernyataan) end; Untuk beberapa parameter dengan tipe yang sama, anda cukup menuliskan tipe satu kali, tetapi masing-masing parameter dipisahkan dengan tanda (,) contoh ;
function lagilagicoba (I,j : longint); longint;
begin (pernyataan-pernyataan) end; Fungsi LagiLagiCoba diatas memerlukan dua parameter bertipe longint, yaitu I dan j. Untuk mengembalikan nilai pada suatu fungsi, berilah nilai pada variabel yang bernama sama dengan nama fungsinya. Contohnya pada LagiLagiCoba dpt ditulis :
function LagiLagiCoba (i,j:longint): longint;
begin LagiLagiCoba := i + j; end; Pemanggilan sebuah prosedur atau fungsi dilakukan dengan menyebutkan namanya. Contoh : prosedurku; Bila terdapat parameter, letakkan parameter di dalam tanda kurung. Contoh : Coba (‘Pascal’); Memanggil prosedur Coba dengan parameter ‘Pascal’ Contoh : CobaLagi (‘Pascal’, 100); Untuk menangkap nilai kembalian dari sebuah fungsi, harus menyediakan variabel. Contoh : x := LagiLagiCoba (2, 5); Untuk melewatkan parameter dengan referensi, tambahkan kata kunci var di depan nama parameter. Contoh : procedure Coba (var i, j : longint); begin i := 100; j := 200; end; Dalam sebuah prosedur atau fungsi, dpt mendeklarasikan tipe, variabel atau konstanta yg bersifat lokal. Bisa juga mendeklarasikan tipe, variabel atau konstanta diluar prosedur, dgm demikian sifatnya global. Contoh : var Global: integer; procedure Coba; var Lokal : integer; begin end; CONTOH PROGRAM uses wincrt; var p,q,x,y : byte; procedure tambahkali(a,b :byte); begin p:= a+b; q:= a*b; writeln('x+y =',p); writeln('x*y =',q); end; begin write('x =');readln(x); write('y =');readln(y); tambahkali(x,y); end. program contohfungsi; begin pangkat :=0.0; uses wincrt; writeln('tidak dapat diselesaikan'); function pangkat (x,y : real): real; exit; end ; var end s : real; else if ( x > 0.0 ) then begin s := exp ( y * ln (x)) if (x < 0.0) then else begin s:= 0.0; if (round (y) = y ) then pangkat := s; begin end; if (round (y) mod 2 = 0) then var x,y : real; s := exp ( y * ln (-x)) begin else write('masukan x = '); s := -exp (y * ln (-x)); readln(x); end write('masukan y = '); else readln(y); writeln('x^y :', pangkat (x,y):1:3); end.