Anda di halaman 1dari 22

PROCEDURE DAN FUNCTION

Program yang baik adalah suatu program


yang dapat dibagi atau dikelompokkan ke
dalam beberapa bagian atau modul.
Pengelompokan demikian ke dalam sub
program sering disebut Modular Programing.
Dalam pascal ada dua
Jenis subrogram yakni PROCEDURE dan
FUCTION


PROSEDURE
Adalah subprogram yang menerima masukan tetapi
tidak mempunyai keluaran secara langsung.
Prosedur dalam pascal terdiri dari 2 bagian :
1. Prosedure non parameter
2. Prosedure dengan parameter
Semua Procedure dituliskan di bawah nama program
dan Unit serta dapat dipanggil dari program utama.
Procedure Non Parameter

Procedure non parameter adalah prosedure
yang tidak meengirimkan parameter atau
variabel tertentu ke program utama.
Cara mendefenisikannya :
Procedure NamaProcedure;
Begin
{Statement};
End;
Program Contoh_Procedure1;

Uses Crt;
Procedure Tampil_Menu; {Nama Procedure}
begin
writeln('1. Nasi Goreng');
writeln('2. Bakmi Goreng');
writeln('3. Bakmi Godok');
writeln('4. Es teh');
writeln('5. Es Jeruk');
end;
{**** Program Utama **** }
begin
ClrScr;
writeln('Selamat Datang di Warung G4UL');
writeln('Tekan Enter untuk melihat daftar menu .....');
readln;
Tampil_Menu;{Cara Memanggil Procedure Non Parameter}
writeln('Selamat Mencoba');
readln;
end.

Procedure dengan Parameter
Adalah suatu parameter atau variabel dimana
data masukan untuk sub program yang
nantinya akan diproses lebih lanjut pada sub
program tersebut.
Prosedure dengan parameter terbagi dua
1. Parameter nilai
2. Parameter referensi
Contoh Prosedure dengan
Parameter
Procedure B(X : integer; var Y : integer);
begin
{ statement }
End;
X adalah parameter nilai
Y adalah parameter referensi
Dan parameter referensi yang dipakai sebagai
vriabel keluaran dari prosedure.
Contoh Program dengan 2 prosedur
Langkahnya :
1. Buat nama program
2. Tuliskan unit yang dipakai
3. Tuliskan variabel global (bisa juga di awal prog utama)
4. Tulis Prosedur_1 (secara lengkap)
5. Tulis Prosedur_2 (secara lengkap)
6. Tuliskan variabel yang akan dipakai(awal prog utama)
7. Statement ( tulis dan baca kalau ada)
8. Panggil Prosedur_1
9. Statement( tulis dan baca kalau ada)
10. Panggil Prosedur_2
11. Statement (kalau ada)
12. End.
Contoh buat program
Untuk menghitung luas segitiga dan luas persegi
panjang, dimana :
satu prosedur untuk segitiga dan
satu prosedur untuk persegi panjang
Procedure Prosedur_1;
Luas Segitiga
Variabel yang dipakai :
A,t,dan l
Sebagai masukan adalah a,t inilah yg merupakan parameter nilai
Sebagai keluaran adalah l dan ini merupakan parameter referensi
Jadi Programnya
Procedure Luas_segitiga(a,t : byte; var l:real);
Begin
L:=a*t/2;
End;
Procedure Prosedur_2;
Luas dan keliling Persegi panjang
Variabel yang dipakai :
P,l dan Ls,k
P,l merupakan parameter nilai
Ls,k merupakan pameter referensi
Jadi programnya
Procedure Luas_persegi(p,l:byte;var ls,k:real);
Begin
Ls:=p*l;
k:=2*p+2*l;
End;
Program Luas;
Uses crt;
Var alas,tinggi, panjang, lebar : byte;
kel,luas : real;
Procedure Prosedur_1;
Procedure Prosedur_2;
Begin
Clrscr;
WritelMasukkan alas segitiga :);readln(alas);
WritelMasukkan tinggi segitiga :);readln(tinggi);
Luas_segitiga(alas,tinggi,luas);
Writeln(Luas Segitiga adalah :,luas);Readln;
WritelMasukkan panjang persegi :);readln(panjang);
WritelMasukkan lebra persegi :);readln(lebar);
Luas_persegi(panjang,lebar,luas,kel);
Writeln(Luas persegi panjang adalah :,luas, Keliling persegi panjang adalah :,kel);
readln; end.




Program Prosedur_Parameter1;
Uses Crt;
Var luas,kel: real;
alas,tinggi:byte;
Procedure Luas_segitiga(a,t:byte; var l:real);
begin
l:=(a*t)/2;
end;
Procedure Luas_persegi(a,t:byte; var l,k:real);
Begin
l:=a*t;
K:=2*a+2*t;
End;
{**** Program Utama ****}

begin
clrscr;
Write('Alas :');readln(alas); write('Tinggi :');readln(tinggi);
Luas_segitiga(alas,tinggi,luas);
writeln;
write('Luas Segitiga adalah :,luas:3:0);
readln;
Write(Panjang :');readln(alas); write(Lebar :);
readln(tinggi);
Luas_persegi(alas,tinggi,luas,kel);
writeln(Luas Persegi Panjang adalah : ,luas:3:0,keliling persegi
Panjang :,kel:3:0);
Readln;
End.
Menggunakan beberapa Prosedure
Program Prosedur_banyak;
Uses Crt;
Prosedure satu;
Begin
{Statement};
End;
Prosedure dua;
Begin
{Statement};
End;
Prosedure ke_n
Begin
{Statement};
End;
Var
{Program Utama}
Begin
Stetemen1;
Satu;
Dua;
Tiga;
Statement2
End.



LATIHAN
Buat program dengan menggunakan 2 prosedur,
satu prosedur untuk konversi suhu dengan input
celcius yang dikonversi ke Reamur, Farenheit,
Kalvin dan satu prosedur untuk hitung konversi
waktu dengan input detik, output dalam jam,
menit, detik.
Misalnya input 10000, maka output :
2 Jam 46 Menit 40 Detik
Latihan
Buatlah program menu untuk menghitung
1. Konversi suhu,
2. Konversi waktu,
3. Keluar;
Ketika dijalankan / run tampil

1.Konversi Suhu
2.Konversi Waktu
3.Konversi Berat
4.Keluar
Prosedur1
Procedure konversi_suhu(c:byte; var
r,f,k:real);
Begin
R:=4/5*c;
F:=9/5*c+32;
K:=273+c;
End;

Prosedur2
Procedure konversi_waktu(t:byte; var
j,m,d:integer);
Begin
J:=t div 3600;
M:= (t mod 3600) div 60;
D:=(t mod 3600) mod 60;
End;
Program konversi;
Uses crt;
Var celcius,t : byte;
reamur,farenheit,kalvin : real;
jam,menit,detik : integer;
Prosedur1
prosedur2
Begin
Write(Masukkan derajat celcius :);readln(celcius);
Konversi_suhu(celcius,reamur,farenheit,kalvin);
Write(Derajat reamur :,reamur, Farenheit :,farenheit,kalvin :,kalvin);
Write(Masukkan waktu dalam detik :);readln(t);
Konver_waktu(t,jam,menit,detik);
Write( Dalam jam :,jam,Menit :,menit,Detik :,detik);
Readln;
End.
Program menu;
Uses crt;
Procedure tampilmenu;
begin
Writeln(1. Penjumlahan);
Writeln(2. Perkalian);
Writeln(3. Pembagian);
Writeln(4. Keluar);
End;
Procedure jumlah(a,b:byte;var x:integer);
Begin
X:=a+b;
End;
Procedure kali(a,b:byte ; var c:integer);
Begin
C:=a*b;
End;
Var a,b,jw:bye; c:integer;
Begin
Clrscr;


lanjutan
Tampilmenu;
Write(masukkan pilihan dgn angka:);real(jw);
Case jw of
1 : begin
Write(bil 1:);readln(a);
Write(bil 2:);readl(b);
Jumlah(a,b,c);
Readln;
End;
2 :begin
Write(bil 1:);readln(a);
Write(bil 2:);readl(b);
kali(a,b,c);
Readln;
End;
3 : begin


4 : begin
exit;
end;
End.

Anda mungkin juga menyukai