Prosedur dan fungsi adalah suatu bagian program ( sub program ) yang memiliki tugas untuk mengerjakan deretan perintah tertentu. Dengan prosedur memungkinkan untuk melakukan suatu pekerjaan yang berulang – ulang tanpa harus menuliskan kembali instruksi – intruksi yang dilakukan. Pekerjaan yang dilakukan berulang –ulang . Prosedur dan fungsi bedanya kalau prosedur hasilnya tidak ditipedatakan sedangkan fungis hasilnya harus ditipedatakan. Syntak penulisannya :
Procedure NamaPRogram;
Begin
Statement
End;
Begin
Pemanggilan Program;
End;
Dan &&&
Function NamaProgram:Tipedata;
Begin
Statement
End;
Begin
PemanggilanProgram;
End;
Latihan – Latihan
Program Menghitung _Berbagai_Luas;
Uses Crt;
Var
S,SE,PP,LL,LJ : Real;
P,Alas,Tinggi,Panjang,Lebar,Jari,Sudut,Pil : Integer;
Pilihan : Char;
Procedure Matematika;
Begin
Writeln;
Writeln(‘Ketikan angka pilihan dibawah ini dan tekan < Enter > ‘);
Writeln(‘1. Luas Segitiga’);
Writeln(‘2. Luas SegiEmpat’);
Writeln(‘3. Luas Persegi Panjang’);
Writeln(‘4. Luas Lingkaran’);
Writeln(‘5. Luas Juring’);
Writeln(‘6. Selesai’);
End;
Procedure Luas_Segitiga;
Begin
Writeln;
Write(‘Alas : ‘);Readln(Alas);
Write(‘Tinggi : ‘);Readln(Tinggi);
S:=alas * (Tinggi / 2);
Writeln(‘Luas Segitiga : ‘,S);
End;
Procedure Luas_SegiEmpat;
Begin
Writeln;
Write(‘Panjang : ‘);Readln(Panjang);
Write(‘Lebar : ‘);Readln(Lebar);
SE:=Panjang * Lebar
Writeln(‘Luas SegiEmpat : ‘,SE);
End;
Procedure Luas_Persegi_Panjang;
Begin
Writeln;
Write(‘Panjang : ‘);Readln(Panjang);
Write(‘Lebar : ‘);Readln(Lebar);
PP:=Panjang * Lebar
Writeln(‘Luas Persegi Panjang : ‘,PP);
End;
Procedure Luas_Lingkaran;
Begin
Writeln;
Write(‘Jari - Jari : ‘);Readln(Jari);
LL:=Pi * Sqr(Jari);
Writeln(‘Luas Lingkaran : ‘,LL);
End;
Procedure Luas_Juring;
Begin
Writeln;
Write(‘Sudut Juring : ‘);Readln(Juring);
Write(‘Jari - Jari : ‘);Readln(JAri);
LJ:=Sudut / 360 * Pi * Sqr(Jari);
Writeln(‘Luas Juring : ‘,LJ);
End;
Procedure Laksanakan_Matematika;
Begin
P:= Ord(Pilihan) – 48
Case P Of
1 : Luas_Segitiga;
2 : Luas_SegiEmpat;
3 : Luas_Persegi_Panjang;
4 : Luas_Lingkaran;
5 : Luas_Juring;
6 : Begin
Writeln;
Writeln(‘ &&&& Selesai &&&&’);
End;
End;
End;
Begin
Write(‘Pilihan : );Readln(Pil);
Write p <> 6 Do
Begin
Repeat
Matematika;
Write(‘Pilihan angka yang dipilih : ‘);read(Pilihan);
Writeln(Pilihan);
Laksanakan_Matematika;
Until (pilihan = 6);
End;
End.
Program Perpustakaan;
Uses Crt;
Var
Kode_Buku : Char;
Harga_Sewa, Denda_Hari, Sewa_Hari, Bayar : Real;
Procedure Masukan(Var Tr_Kode ; Var Tr_hari:Real);
Begin
Gotoxy(15,12);Write(‘Kode Buku Pinjaman :’);Readln(Tr_Kode);
Gotoxy(15,13);Write(‘Lama Hari Pinjam :’);Readln(Tr_Hari);
End;
Funtion HargaSewa(Tr_Kode2 : Char);Real;
Begin
If Upcase(Tr_Kode2) = ‘A’ Then
HargaSewa := 300
Else If Upcase (Tr_Kode2) = ‘B’ Then
HargaSewa := 250
Else If Upcase (Tr_Kode2) = ‘L’ Then
HargaSewa := 350;
End;
Funtion Denda(Tr_Kode3 : Char; Tr_Kode2 : Real);Real;
Var
A : Real;
Begin
If Upcase(Tr_Kode3) = ‘A’ Then
A:= 50
Else If Upcase (Tr_Kode3) = ‘B’ Then
A := 25
Else If Upcase (Tr_Kode3) = ‘L’ Then
A:= 100;
If Tr_Hari2 > 7 Then
Denda := (Tr_Hari2 – 7) * A
Else Denda := 0;
End;
Procedure Cetak(Tr_Sewa, Tr_Denda, Tr_Total : real);
Begin
Gotoxy(15,15);Write(‘Harga Sewa 7 Hari : Rp.’,Tr_Sewa:5:0);
Gotoxy(15,16);Write(‘Denda Harus Bayar : Rp.’,Tr_Denda:5:0);
Gotoxy(15,17);Write(‘================================);
Gotoxy(15,18);Write(‘Total Pembayaran : Rp.’,Tr_Total:5:0);
End;
Clrscr; { Membersihkan Layar }
Masukan(Kode_Buku, Sewa_Hari);
Harga_Sewa := HargaSewa(Kode_Buku);
Denda_Hari := Denda(Kode_Buku,Sewa_Hari);
Bayar := Harga_Sewa + Denda_Hari;
Cetak(Harga_sewa, Denda_Hari,Bayar);
End.
No comments:
Post a Comment