-->

Prosedure dan Fungsi

PROCEDURE DAN FUNCTION

Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan program utama.
            Dalam bahasa Procedure dan Function, pertukaran nilai dapat dilewatkan melalui parameternya, sedangkan perbedaan yang signifikan antara Procedure dan Function terletak pada suatu prosedure, nilai hanya bertukar melalui parameter saja sedangkan pada Function, nilai dapat bertukar melalui nama fungsi juga dapat melalui parameternya. Meski sebenarnya ada juga Procedure atau Function yang menggunakan anpa parameter.
            Pada teknik ini, akan dibedakan antara main program dengan subprogram. Procedure dan Function termasuk dalam subprogram. Subprogram dapat dibagi menjadi subprogram bebas, subprogram yang memanggil subprogram lain, dan subprogram yang memanggil dirinya sendiri. 

 PROCEDURE

Prosedure diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul  prosedurnya.

Prosedur banyak digunakan pada program yang terstruktur, karena :
1.  Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
2.  Untuk    hal-hal  yang  sering  dilakukan   berulang-ulang,   cukup   dituliskan   sekali   saja   dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.

Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block. Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja. Bentuk Umum header suatu procedure adalah :

  PROCEDURE nama;
  Atau
  PROCEDURE nama (formal parameter : jenis);

Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus dituliskan pada bagian deklarasi.
PROGRAM contoh_1;                                                                HEADER program utama
uses wincrt;
Procedure Tanya_hitung;
Var X,Y :integer;
Begin
   Write ('Nilai X = ');                                                             Deklarasi Program utama
   Readln(X);
   Y:=X*X;                                                                            
   Writeln('Nilai Y = ',Y);
End;

Begin
   Tanya_Hitung;                                                                                   Statement Program Utama
End.




PROCEDURE  DENGAN  PARAMETER

Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan  saja, tidak dapat digunakan pada modul atau unit program yang lainnya.
            Berdasarkan penulisannya terdapat 2 jenis parameter, yaitu : parameter formal (formal parameter) dan parameter aktual (actual parameter). Parameter formal adalah parameter yang disertakan/dituliskan  pada saat pendefinisian prosedur/fungsi itu sendiri. Sedangkan parameter aktual adalah parameter yang disertakan pada saat pemanggilan prosedur/fungsi tersebut di blok program utama.

Berdasarkan tujuannya terdapat 3 jenis parameter formal :

·         Parameter masukan (input parameter), yaitu : parameter yang nilainya berfungsi sebagai masukan untuk prosedur/fungsi, jenis parameter ini kadang disebut juga parameter nilai (value parameter atau parameter by value).
·         Parameter keluaran (output parameter), yaitu : parameter yang berfungsi untuk menampung keluaran yang dihasilkan oleh prosedur.
·         Parameter masukan/keluaran (input/output parameter) adalah parameter yang berfungsi sebagai “pintu” masuk dan keluar bagi prosedur tersebut. Parameter keluaran (output parameter) dan parameter masukan/keluaran (input/output parameter) kadang disebut parameter acuan (reference parameter atau paramater by reference).

Contoh :          Parmeter formal
Uses wincrt;
Procedure psg4 (p : integer ; l : integer );                    
Var                                                                                          
     Luas : integer ;
begin
     Luas : = p *l ;
     Writeln ( ‘ Luasnya = ‘, luas );
End;

{ program utama }
Var
      x,y : integer ;
begin
      write ( ‘ Inputkan panjang = ‘ ) ;
      readln ( x ) ;
      write ( ‘ Inputkan lebar = ‘ ) ;
      readln ( y ) ;
      psg4 ( x, y ) ;                                              Parameter real
end.     
 Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan
parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter.

1. Pengiriman parameter secara nilai
Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur
akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur.
 
Perhatikan procedure berikut : 

Procedure konversi;

 begin
     f := (5/9) * c + 32;                                                           f dan c variabel global, c sebagai input dan
     writeln(c,f);                                                                      f sebagai output.
 end;

Procedure di atas dapat dipanggil dengan variabel yang berbeda, tetapi penulisannya harus diubah dengan menggunakan parameter sbb:

  Uses wincrt ;
Procedure konversi (var f : real; c : real);                               disebut formal parameter 
Begin
  F := (5/9) * c + 32;       
  Writeln(c,f);
End;

Selanjutnya procedure di atas dapat dipanggil dengan parameter lain, misalnya :

 konversi (x,y) ;                                              actual parameter

x dan y disebut sebagai actual parameter.
Pada eksekusinya x akan menggantikan c dan y akan menggantikan f.
x dan y ini dapat berupa :
-  konstanta
-  variabel
-  procedure, atau
-  fungsi

Contoh :
Uses wincrt ;
Procedure Hitung(A,B : integer);
Var C : integer;
Begin
    C := A + B;
    Writeln(‘Nilai C = ‘,C)
End;

   Var X,Y : integer;
Begin
   Write(‘Nilai X ? ‘);
   Readln(X);                                           
   Write(‘Nilai Y ?’);
   Readln(Y);
   Hitung(X,Y);
End.

2. Pengiriman parameter secara acuan

Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter .

Procedure hitung(Var A,B,C : integer);                 Menunjukkan pengiriman parameter           
        secara acuan.

Contoh :
 Uses wincrt ;
Procedure Hitung(Var A,B,C : integer);
Begin
    C := A + B;                                                      
End;

Var  X,Y,Z : integer;
Begin
    X := 2; Y:= 3;
    Hitung(X,Y,Z);
    Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.

Prosedur Standar
 Prosedur yang disediakan oleh Turbo Pascal :
1.  Prosedur standar EXIT
Digunakan untuk keluar dari suatu blok. 
2.  Prosedur standar HALT
Digunakan untuk menghentikan proses program baik di program bagian maupun di program
utama.
3.  Prosedur standar MOVE
Bentuk umum :  MOVE (Var source,dest; count : word);
Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest.
4.  Prosedur standar FILLCHAR
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut 
FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch
sebanyak count byte.

FUNCTION

Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya.
Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah fungsi yang kita buat sendiri.
Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu
kuantitas.
Hal ini dapat dilihat dari bentuk header-nya  yang menyebutkan jenis data dari kuantitas yang dihasilkan.
Secara umum bentuk header suatu function adalah :
 
 FUNCTION nama : jenis hasil;
Atau   FUNCTION nama (formal parameter : jenis ) : jenis_hasil;
     
Contoh :

1.  Akan dibuat suatu fungsi dengan nama MAX  yang dapat menentukan integer terbesar di antara dua integer.

Uses wincrt ;
Function MAX (x,y : integer) : integer;
Begin
   If x < y then MAX := y ;
   Else MAX := x;
End;
            Selanjutnya kita dapat menggunakan fungsi di atas dalam suatu program, misalnya dengan menyatakan sebagai berikut :
 P := MAX(a,b);
 Z := MAX(a+b,a*b);
 Q := MAX(MAX(a,b),c);
 …………………………
 dsb.


2.  Function LOG (x : real) : real;
Begin 
    LOG := ln (x) / ln (10.0);
End;



3.  Function POWER (x,y : real) : real;
Begin
   POWER := exp (y * ln (X))
End;

           ab  = POWER (a,b)
           ba  = POWER (b,a)
           (p + q) r/s  = POWER (p + q, r/s)
           ………………………………..
           dll
contoh :
uses wincrt ;
Function Hitung(Var A,B : integer): integer;
Begin
    Hitung := A + B;      
End;

Var X,Y : integer;
Begin
   Write(‘Nilai X ? ‘);
   Readln(X);
   Write(‘Nilai Y ? ‘);
   Readln(Y);
   Writeln;
   Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y));
End.










DAFTAR PUSTAKA

-       Jogianto Hartono, MBA, Ph. D., “Konsep Dasar Pemrograman Bahasa C”, Andi Yogyakarta, 2003

-       Junaedi Fajar , EP , “ Algoritma dn Pemrogaman”, 2007
-       Catatan Muryanto, ST

0 komentar:

Posting Komentar

Template by:

Free Blog Templates