You are on page 1of 9

Cara Penerapan Fungsi Procedure Pada Pascal

Selamat malam sobat netter. Pada kesempatan ini saya ingin berbagi ilmu tentang " Cara
Penerapan Fungsi Procedure Pada Pascal ".
Sebelum kita bahas lebih lanjut mari kita tinjau, apa itu "procedure" dan tujuan
pemakaiannya.

Apa Itu Procedure?


Procedure dan function merupakan sub-program yang memiliki bagian deklarasi dan
begin-end; tersendiri seperti suatu program pada pascal. Didalam penerapan
"procedure",terdapat variable global dan variable local.

"Variable Global" adalah variable yang bisa dipanggil dari mana saja(baik dalam modul
maupun program utama).
Sedangkan "Variable Local" merupakan variable yang hanya bisa dipanggil dari modul yang
mendefinisikan variable tersebut.
Tujuan dari fungsi "procedure" adalah untuk memecah program kita menjadi kesatuan logika
yang
lebih kecil (sub-sub program) untuk menghindari perulangan pengetikan dan memudahkan
pembacaan.
Baiklah sekarang kita lanjut pada contoh "Cara Penerapan Fungsi Procedure Pada
Pascal".
Pada contoh berikut saya terapkan disebuah program transaksi sebuah Klinik. List program
berikut bisa dicopy dan dimodify sesuai keperluan. Berikut list programnya;
program dataklinik;
uses crt;
var bdok,bob,bkm,dsc,tby,tbr:real;
np:string[10];

nap:string[30];
jkl:string[10];
klh:string[17];
dok:string[30];
kin:string[10];
ob:string[3];
lin,pil:byte;
procedure data_dktr;
begin
write('Nomor Pasien=');
readln(np);
write('Nama Pasien=');
readln(nap);
write('Jenis Kelamin=');
readln(jkl);
write('Keluhan=');
readln(klh);
writeln('Jika Pasien rawat jalan, maka isi lama inap adalah "1"');
write('Lama inap=');
readln(lin);
if klh='umum' then begin
dok:='dr.ilham';
bdok:=100000*lin;
end
else
if klh='gigi' then begin
dok:='dr.Artalya';
bdok:=110000*lin;
end
else
if klh='anak' then begin
dok:='dr.Salim';
bdok:=125000*lin;
end
else begin
dok:='dr.Kartini';
bdok:=95000*lin;
end;
writeln('Dokter=',dok);
writeln('Biaya Dokter=',bdok:2:0);
end;
procedure data_obat;
begin
write('Type Obat=');
readln(ob);
if ob='a' then begin
bob:=50000;

end
else
if ob='b' then begin
bob:=65000;
end
else
if ob='c' then begin
bob:=75000;
end
else begin
bob:=100000;
end;
writeln('Biaya Obat=',bob:2:0);
end;
procedure data_kamar;
begin
writeln('Jika Pasien rawat jalan, maka isi kelas kamar adalah "jalan"');
writeln('dan isi lama inap adalah"1"');
write('Kelas kamar=');
readln(kin);
write('Lama Inap=');
readln(lin);
if kin='vip' then begin
bkm:=150000*lin;
end
else
if kin='k1' then begin
bkm:=125000*lin;
end
else
if kin='k2' then begin
bkm:=110000*lin;
end
else
if kin='sal' then begin
bkm:=70000*lin;
end
else begin
bkm:=0;
end;
writeln('Biaya Kamar=',bkm:2:0);
end;
procedure data_trans;
begin
data_dktr;

data_obat;
data_kamar;
tby:=bdok+bob+bkm;
dsc:=tby*0.05;
tbr:=tby-dsc;
writeln('Total Biaya=',tby:2:0);
writeln('Discount =',dsc:2:0);
writeln('Total Bayar=',tbr:2:0);
end;
procedure menu;
begin
writeln('Menu Program Klinik');
writeln('_____________________');
writeln('[1].Data Dokter');
writeln('[2].Data Biaya Obat');
writeln('[3].Data Biaya Kamar');
writeln('[4].Data Transaksi');
writeln('_____________________');
write('Pilihan Anda=');readln(pil);
if pil=1 then begin
data_dktr;end
else if pil=2 then begin
data_obat;end
else if pil=3 then begin
data_kamar;end
else if pil=4 then begin
data_trans;end
else begin
writeln('Pilihan tidak tersedia');end;
end;
begin
clrscr;
menu;
readkey;
end.
Pembuatan Program mengenai Penjualan Contoh Soal
================================================
=============== CV. Nugiez Computer JL. Melati No.11 Yogyakarta Kode
Barang : (Dimasukkan secara manual / INPUT) Jumlah Barang : (Dimasukkan
secara manual / INPUT) Nama Barang : (Muncul secara Otomatis) Harga Satuan :
(Muncul secara Otomatis) Total Biaya : (Muncul secara Otomatis)
================================================
=============== dengan ketentuan: Jika Kode Barang : HD maka, Nama
Barang : Harddisk & Harga Satuan : 850000 Jika Kode Barang : MTR maka, Nama
Barang : Monitor & Harga Satuan : 550000 Jika Kode Barang : PRNT maka, Nama

Barang : Printer & Harga Satuan : 500000 Total Bayar : Jumlah barang * Harga
Satuan maka akan menghasilkan dibawah ini adalah listing Programnya... Uses
crt; Var Kode_Barang:String; Jumlah_Barang:Integer; Total_Bayar:Real; begin
clrscr; gotoxy(30,2); Writeln('CV Nugiez Computer'); gotoxy(25,3);
Writeln('JL.Melati no 11 Yogyakarta'); gotoxy(1,4);
Writeln('*****************************************************'); gotoxy(20,7);
Writeln('Kode Barang :'); gotoxy(20,8); Writeln('Jumlah Barang :'); gotoxy(20,10);
Writeln('++++++++++++++++++++++++++++++++'); gotoxy(20,11);
Writeln('+ Nama Barang + Harga Satuan +'); gotoxy(20,12); Writeln('+++++++
+++++++++++++++++++++++++'); gotoxy(20,13); Writeln('+ + +');
gotoxy(20,14); Writeln('++++++++++++++++++++++++++++++++');
gotoxy(20,16); Writeln('Total Biaya :'); gotoxy(45,20); Writeln('Terima Kasih Atas
Kunjungan Anda'); gotoxy(45,21);
Writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'); gotoxy(48,22);
Writeln('Design By. Wulandari Dewi A'); gotoxy(36,7); Readln(Kode_Barang);
gotoxy(36,8); Readln(Jumlah_Barang); gotoxy(23,13); If Kode_Barang='HD' then
begin Writeln('Harddisk'); gotox(40,13); Writeln('850000'); gotoxy(37,16);
Total_Biaya:= Jumlah_Barang * 850000; Writeln('',Total_Biaya:2:0); readln; end;
gotoxy(23,13); If Kode_Barang='MNTR' then begin Writeln('Monitor');
gotox(40,13); Writeln('550000'); gotoxy(37,16); Total_Biaya:= Jumlah_Barang *
550000; Writeln('',Total_Biaya:2:0); readln; end; gotoxy(23,13); If
Kode_Barang='PRNT' then begin Writeln('Printer'); gotox(40,13);
Writeln('500000'); gotoxy(37,16); Total_Biaya:= Jumlah_Barang * 500000;
Writeln('',Total_Biaya:2:0); readln; end; readln; end.
Make Money Online : http://ow.ly/KNICZ

Program Discount Penjualan.

Program ini program penjualan dimana jika jumlah penjualan lebih dari
Rp. 65.000 mendapatkan diskon sebesar 10%. Berikut listing
programnya :
Program Discount;
Uses wincrt;
Var

Nama:string;
Jumlah, Diskon, Bayar:real;
Begin
writeln('Program Discount');
writeln('Dodik Sriyanto(S1) STMIK Tasikmalaya');
writeln('==================================');
repeat
writeln(' ');
write('Masukkan Nama Anda : ');
readln(Nama);
write('Masukkan Jumlah Pembelian = Rp ');
readln(Jumlah);
Diskon := 0;
if Jumlah>65000 then Diskon := Jumlah*0.1;
Bayar := Jumlah-Diskon;
writeln(' ');
writeln('Jumlah Pembelian = Rp',Jumlah:10:2);
writeln('Jumlah Discount = Rp',Diskon:10:2);
writeln('==================================');
writeln('Jumlah Pembayaran = Rp',Bayar:10:2);
writeln('Terima Kasih ',Nama);
until keypressed;
readln;
End.

Program Gaji Karyawan

Program ini di buat untuk keperluan penggajian Pegawai / Karyawan


dengan ketentuan Gaji pokok + Tunjangan Ppn 10%. Berikut listing
programnya :
Uses wincrt;
Var nama:string[20];jabatan:string;
Gaji:longint;
Tunj,ppn,Total,gajibersih:real;
Begin
Clrscr;
Write( 'Nama Karyawan
: '); readln(nama);
Write('Masukkan Jabatan : '); readln(jabatan);
If (jabatan='Direktur') or (jabatan='direktur') then
Begin
Gaji:=3000000;
Tunj:=0.2* gaji;
End
Else If (jabatan='Manager') or (jabatan='manager') then
Begin
Gaji:=2000000;
Tunj:=0.2* gaji;

End
Else If (jabatan='Karyawan') or (jabatan='karyawan') then
Begin
Gaji:=1000000;
Tunj:=0.2* gaji;
End
Else
Begin
Gaji:=800000;
Tunj:=0.2* gaji;
End;
Writeln('Gaji Bersih
: Rp.',gaji);
Writeln('Tunjangan Jabatan : Rp.',tunj:9:2);
ppn:=0.1*gaji;
Writeln('PPN 10 %
: Rp.',ppn:9:2);
Total:=gaji+Tunj-ppn;
Writeln('Total Gaji
: Rp.',total:9:2);
Readln;

Program Penghitung Luas Segitiga.

Program ini bertujuan untuk menghitung luas segitiga dengan


memasukan nilai Alas dan Tingginya. Berikut listing programnya :
program luas;
uses wincrt;
var
a,t: integer;
L: real;
begin
clrscr;
write('Masukan Nilai Alas: ');
readln (a);
write('Masukan Nilai Tinggi: ');
readln(t);
writeln(' ');
L:=(a*t)/2;
writeln('Luas Segitiga adalah =',L:6:2);
readln;
end.

Program Kalkulator Sederhana.

Program ini sebagai kalkulator sederhana dengan memasukan nilai


angka ke 1 dan ke 2 serta pilihan operator nya. Berikut listing programnya
:
uses wincrt;

var x,y,hasil:real;
jawab:char;
begin
write ('masukan angka ke-1 = ');readln (x);
write ('pilih operator= (+)/(-)/(*)/(/) = ');
readln (jawab);
write ('masukan angka ke-2 = ');readln (y);
if ( jawab= '+') then
begin
hasil:= x+y
end;
if ( jawab = '-') then
begin
hasil:= x-y
end;
if ( jawab = '*') then
begin
hasil:= x*y
end;
if (jawab='/') then
begin
hasil:= x/y
end;
write ('hasilnya: ',(hasil):5:2);
end.

Program Penghitung Luas Persegi Panjang.

Program ini untuk menghitung luas dari sebuah persegi panjang dengan
memasukan nilai panjang dan pendeknya. Berikut listing programnya :
Program Luas_Persegi_Panjang;
uses wincrt;
var
panjang, lebar, luas : real;
begin
write ('Masukkan panjang? '); readln (panjang);
write ('Masukkan lebar? ') ; readln (lebar);

luas := panjang*lebar;
writeln;
writeln ('Luas segiempat = ', luas:5:2, ' satuan luas');
end.