Anda di halaman 1dari 24

ALGORITMA 2

By: Millati Izzatillah, S. Kom, M. M. S. I

CHAPTER 3: Procedure
• Prosedur adalah suatu program terpisah dalam blok
sendiri yang berfungsi sebagai subprogram (program
bagian).
• Merupakan sebuah program kecil untuk memproses
sebagian dari pekerjaan program utama.
• Procedure diawali dengan kata Procedure di dalam
bagian deklarasi procedure.
• Prosedur dipanggil dan digunakan di dalam blok program
yang lainnya dengan menyebutkan judul prosedurnya.
Kenapa Menggunakan Proedure??

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 yang sering dilakukan berulang-ulang,


cukup dituliskan sekali saja dalam prosedur dan
dapat dipanggil atau dipergunakan sewaktu-
waktu bila diperlukan
Parameter dalam Proedure??

• Parameter adalah nama-nama peubah yang


dideklarasikan pada bagian header prosedur

• Nilai dalam suatu modul program Pascal


sifatnya lokal, artinya hanya dapat digunakan
pada modul atau unit program yang
bersangkutan saja, tidak dapat digunakan
pada modul atau unit program lainnya.
Blok Procedure
PROGRAM Judul-program;
BEGIN
PROCEDURE Judulprosedur;
END;
BEGIN
Judulprosedur;
END.
Contoh
Misal akan dibuat suatu procedure untuk menentukan
bilangan bulat terbesar diantara tiga bilangan bulat, maka
procedure tersebut adalah sebagai berikut :

PROCEDURE maksimum;
VAR maks : integer;
BEGIN
IF a > b THEN maks := a ELSE maks :=
b;
IF c > max THEN maks := c;
WRITELN(maks);
END.
PROGRAM contoh_1; HEADER program utama
VAR a,b,c : integer;
PROCEDURE maksimum;
VAR maks : integer;
BEGIN
IF a>b THEN maks := a ELSE maks := b; Deklarasi program
IF c>maks THEN maks := c; di dalam prosedur
WRITELN(maks);
END;

BEGIN
READLN(a,b,c);
Statement program utama
Maksimum
(Pemanggilan Prosedur)
END.
PROGRAM CONTOH_2;
VAR p,l,t,vol,pl : real;

PROCEDURE kotak;
VAR v,pl : real;
BEGIN
v := p * l * t ;
pl := p + 2.0 * t;
writeln(v,pl);
END;
BEGIN
writeln(‘panjang’ : 10,’lebar’ : 10,’tinggi’ : 10);
readln(p,l,t);
kotak;
END.
Latihan
• Buatlah program dengan prosedur
yang membaca panjang alas dan tinggi
segitiga, menghitung luas segitiga
dengan rumus luas = (alas x tinggi)/2,
dan mencetak luas segitiga tersebut!
Pemanggilan Prosedur
• Prosedur bukan program yang berdiri sendiri
• Tidak dapat dieksekusi secara langsung
• Instruksi-instruksi di dalam prosedur dapat
dilaksanakan hanya bila prosedur tersebut diakses
atau dipanggil di program utama.
• Prosedur diakses dengan cara memanggil
namanya dari program pemanggil (misalnya dari
program utama atau dari modul program lainnya)
• Jika prosedur tanpa parameter, maka
pemanggilannya cukup dengan namanya saja:
NamaProsedur
Jangkauan Identifier
• Identifier yang dideklarasikan dalam suatu blok program
hanya berlaku pada blok dimana identifier tersebut
didefinisikan.
PROGRAM p;
VAR x : real;
PROCEDURE pl;
VAR y : integer;
begin
………………..; Daerah
berlakunya y
………………..; Daerah
end; berlakunya x
begin
………………..;
………………..;
end.
y → variabel global
Program P ;
Var x,y : real; y (real) berlaku disemua blok
…………… program P, kecuali di P1
…………… x (real) berlaku disemua
blok P, kecuali di P2
Procedure Pl ;
Var y : integer; hanya berlaku di P1 saja (lokal)
……………
Begin
………
………
End;

Procedure P2;
Var x : char; hanya berlaku di P2 saja (lokal)
……………
Begin
………..
………..
End;
Begin
…………
x := ……. x dan y yang dimaksud adalah x dan y real
y := ……. (variabel global)
…………
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.
CONTOH Procedure Dengan Parameter
Prosedur Tanya_hitung; Prosedur Tanya_hitung;
Var X,Y :real; Var X,Y :real;
Begin Begin
Write (‘Nilai X ?’); Write (‘Nilai X ?’);
Readln(X); Readln(X);
Y:=X*X; Y:=X*X;
Writeln(‘Nilai Y = ‘,Y:6:2); Writeln(‘Nilai Y = ‘,Y:6:2);
End; End;
Begin Begin
Tanya_Hitung; Tanya_Hitung;
End. Writeln(‘Nilai Y = ‘,Y:6:2);
End.
Hasilnya :
Nilai X ? 5 HASIL = Error 31: Unknown identifier
Nilai Y = 25.00

Keterangan :
Variabel X dan Y sifatnya adalah lokal untuk prosedur
Tanya_hitung, artinya hanya dapat digunakan pada modul itu
saja, Pada modul yang lain tidak dapat digunakan
Procedure Dengan Parameter
Agar nilai-nilai variabel dapat digunakan
di modul lainnya yang
membutuhkannya, bisa dilakukan
beberapa cara:
1. Dibuat bersifat global
2. Dikirimkan sebagai parameter ke
modul yang membutuhkannya
1. DIBUAT BERSIFAT GLOBAL
2. PENGIRIMAN PARAMETER
• Parameter yang dikirimkan dari modul utama ke
modul prosedur disebut ACTUAL PARAMETER
• Parameter yang ada dan dituliskan pada judul
prosedur disebut FORMAL PARAMETER
• Proses pengiriman data lewat actual parameter
ke formal parameter disebut PARAMETER
PASSING
• Actual parameter dan formal parameter harus
dengan tipe yang sama
• Pameter dapat dikirimkan secara nilai (by value)
atau secara acuan (by reference)
Pengiriman parameter secara nilai (by value)
Procedure Hitung(A,B : integer); Formal Parameter
Var C : integer;
Begin
C := A + B;
Writeln(‘Nilai C = ‘,C)
End;
Var X,Y : integer; Actual Parameter
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ?’);
Readln(Y);
Hitung(X,Y);
End.
Pengiriman parameter secara acuan (by reference)

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 (by reference).
Pengiriman parameter secara acuan (by reference)
Contoh :
Procedure Hitung(Var A,B,C : integer);
Formal Parameter
Begin
C := A + B;
End;
Var X,Y,Z : integer; Actual Parameter
Begin
X := 2; Y:= 3;
Hitung(X,Y,Z);
Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.
Hasilnya :
X=2Y=3Z=5
PROSEDUR LAIN
• Prosedur memanggil prosedur lain
• Prosedur tersarang
• Prosedur memanggil dirinya sendiri
– Proses dari suatu program bagian yang memanggil
dirinya sendiri dikenal dengan isitilah RECURSION
• Acuan FORWARD
– digunakan untuk mendeklarasikan di muka judul
prosedur terpisah dari bloknya
– Judul prosedur yang berisi parameter terpisah ini
merupakan judul yang semestinya dan dideklarasikan
dengan menambahkan kata cadangan FORWARD
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. FillChar
– digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel.
PROSEDUR STANDAR
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.

Anda mungkin juga menyukai