Kamis, 11 Juni 2015

:: Prosedur dalam Pascal ::

Prosedur dalam Pascal

Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Dengan kata lain, prosedur adalah program di dalam program.
Mengapa menggunakan prosedur?
–      Dengan prosedur, program yang rumit dapat dipecah menjadi program-program bagian yang lebih sederhana.
–      Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Bentuk Umum :
PROCEDURE judul_prosedur ;
Begin
Statement prosedur ;
…
…
…
End ;
Begin
Statement program utama ;
…
…
…
end.

Parameter dalam Prosedur :

  • Parameter Lokal :

Parameter yang digunakan dalam satu prosedur bersifat lokal atau hanya berlaku pada satu subprogram itu saja.
Contoh :
Procedure Hitung ;
 Var
 X, Y : real ;
 Begin
 Write (‘Nilai X =’) ;
 Readln (X) ;
 Y : = X * X ;
 End ;
Begin
 Hitung ;
 Writeln (‘Nilai Y =’, Y : 6 : 2 ) ;
 End.
Jika program tersebut dieksekusi, maka compiler akan mendeteksi ‘Y’ sebagai  variabel yang tidak teridentifikasi, sebab dalam program utama tidak dideklarasikan tentang  variabel ‘Y’, variabel ‘Y’ hanya berlaku pada subprogram atau procedure Hitung  saja.
Dengan demikian, maka diperbolehkan digunakannya variabel yang sama antar procedure dan tidak akan terdeteksi sebagai kesalahan oleh compiler ketika program dieksekusi.
Contoh :
Procedure Kurang ;
 Var
 X, Y : real ;
 Begin
 Write (‘Nilai X = ’) ;
 Readln (X) ;
 Y : = X - 2 ;
 End ;
Procedure Tambah;
 Var
 X, Y : integer;
 Begin
 Write (‘Nilai X = ‘);
 Readln(X);
 Y:= X + 3;
 End;
Begin
 Statement program
 ...
 ...
 End.
Penggunaan X dan Y dalam dua subprogram tidak mengapa dan tidak dideteksi oleh compiler sebagai satu kesalahan, sebab variabel tersebut bersifat lokal, yaitu hanya berlaku di subprogramnya saja. Variabel ‘X’ di dalam procedure Kurang berbeda dengan variabel ‘X’ yang ada di procedure Tambah, begitu pula dengan variabel ‘Y’.
Contoh yang lain :
Procedure persegi;
 Var
  A : real;
 Begin
 Write( 'Masukkan nilai A : ' );
 Readln( A );
 Writeln( 'Luas persegi : ', A * A );
 End;
Procedure lingkaran;
 Var
  A : real;
 Begin
 Write ('Masukkan nilai A : ');readln(A);
 Writeln ('Luas lingkaran : ',3.14*A*A);
 End;
Begin
 Statement program
 ...
 ...
 End.
  • Parameter Global :
Parameter ini berlaku di keseluruhan program, dan letaknya di luar prosedur.
Contoh :
Var
Ch : Char;
Procedure Menu ;
Begin
Writeln ( 'Pilihan Menu :' );
Writeln ( '1. Persegi' );
Writeln ( '2. Lingkaran' );
Writeln ( '3. Segitiga' );
Writeln;
Writeln ('4. Keluar.');
Writeln;
Writeln ('Masukkan pilihan!');
Readln (Ch);
end;
Begin
Repeat
Menu ;
Case Ch of
'1': Persegi;
'2': Lingkaran;
'3': Segitiga;
End;
Until ch='4';
End.
‘Ch’ merupakan parameter global diluar procedure, sehingga dapat di gunakan didalam prosedur dan di program utama.
  • Passing Parameter
Istilah Passing Parameter adalah istilah untuk aktivitas pengiriman / transfer parameter yang ada di dalam sebuah prosedur, baik secara nilai maupun secara acuan.
  • Passing Parameter secara nilai.
Mengirim nilai dari suatu parameter sebuah program ke program atau subprogram yang lain. Contoh :
Procedure segitiga( A, B : Real );
Begin
Write('Masukkan nilai A : ');readln(A);
Write('Masukkan nilai B : ');readln(B);
Writeln('Luas segitiga : ',0.5*A*B);
Readln;
End;
Var
X, Y : integer ;
Begin
Write ( ‘Nilai X =’ ) ; Readln ( X ) ;
Write ( ‘Nilai Y =’ ) ; Readln ( Y ) ;
Segitiga ( X, Y ) ;
End.
Maka, nilai dari ‘X’ dan ‘Y’ dalam program utama akan ditransfer ke Prosedur Segitiga dengan mengisi nilai ‘A’ dan ‘B’.
  • Passing Parameter secara acuan
Model passing parameter ini memungkinkan terjadinya perubahan nilai di kedua parameter yang di hubungkan. Penggunaannya ditandai dengan adanya kata cadangan ‘Var’ sebelum penulisan parameter dan tipe parameter.
Contoh :
uses crt;
Procedure satu ( a,b : integer; var c : integer );
Begin
Writeln('Nilai A, B dan C adalah : ',a,b,c );
Writeln('A X B + C = ',a*b+c);
Writeln;
end;
Procedure dua (a,b : integer; var c : integer);
begin
Writeln('Ubah nilai C : '); readln (c);
Writeln('Nilai A, B dan C adalah ',a,b,c);
Writeln('A X B + C = ',a*b+c);
Writeln;
end;
var a,b,c:integer;
begin
clrscr;
Writeln ('Masukkan nilai A : '); readln (a);
Writeln ('Masukkan nilai B : '); readln (b);
Writeln ('Masukkan nilai C : '); readln (c);
satu (a,b,c);
writeln;
dua (c,b,a);
writeln;
writeln('Sekarang nilai B, C dan A menjadi : ',b,c,a);
Writeln('A X B + C = ',a*b+c);
readln;
end.
Coba jalankan program di atas dan berikan inputan yang berbeda untuk A, B dan C. Kemudian ikuti instruksi yang ada di dalam program. Semoga dapat membantu dalam memahami bagaimana prinsip kerja Passing Parameter Acuan.
Contoh program di atas menjelaskan bahwa nilai C dapat berubah-ubah dan nilai A dan B dapat bertukar tempat tergantung urutan penulisan saat Passing.
.:: Semoga Bermanfaat ::.

Tidak ada komentar:

Posting Komentar