BAB V SUBRUTIN
STMIK “AMIKOM “PURWOKERTO
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; uses wincrt; function pangkat (x,y : real): real; var s : real; begin if (x < 0.0) then begin if (round (y) = y ) then begin if (round (y) mod 2 = 0) then s := exp ( y * ln (-x)) else s := -exp (y * ln (-x)); end else
begin pangkat :=0.0; writeln('tidak dapat diselesaikan'); exit; end ; end else if ( x > 0.0 ) then s := exp ( y * ln (x)) else s:= 0.0;
pangkat := s; end; var x,y : real; begin write('masukan x = '); readln(x); write('masukan y = '); readln(y); writeln('x^y :', pangkat (x,y):1:3); end.