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.
"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 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.
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;
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 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.