Wednesday, December 5, 2012

Prosedur dan Fungsi pada Turbo Pascal


            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