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