Hitung Sewa dengan Pascal
Halaman 1 dari 1
Hitung Sewa dengan Pascal
Pembahasan ini adalah contoh program dengan menggunakan bahasa Pascal untuk menghitung besar sewa seorang penyewa komputer pada sebuah rental komputer dengan ketentuan sebagai berikut:
Penjelasan Kasus
Belajar Pascal berarti belajar Algoritma. Dan belajar algoritma tidak akan lepas dari deskripsi cerita. Oleh karenanya, sebelum ke bahasan lebih lanjut, saya ingin bercerita lebih dulu. Begini ceritanya:
Di Kota Cirebon tersebutlah sebuah rental computer yang bernama INOCHI Computer. Rental ini baru beberapa hari saja dibuka, namun langsung memiliki banyak pelangan, sang pengelola sebut saja namanya Ajat, sedikit merasa kewalahan, karena INOCHI Computer bukan hanya melayani jasa rental saja, tetapi juga melayani kursus, perbaikan PC, penjualan, pemograman sampai ke video shooting dan video editing. Akhirnya tercetuslah ide untuk membuat program yang dapat mengelola layanan rental ini.
Dipanggillah programmer yang masih merupakan tim dari INOCHI Computer, sebut saja namanya Agung. Mulailah Agung bekerja mengumpulkan data yang diperlukan. Akhirnya terkumpullah data sebagai berikut:
Harga sewa PC per jam adalah Rp. 1.000,-
Harga sewa dihitung per 15 menit, artinya INOCHI Computer memberlakukan tarff flat sebesar Rp. 250 per 15 Menit.
Agung pun mulai merencanakan membuat program. Dipilihlah Pascal sebagai bahasa yang mudah dan murah (dengan artian, mudah dalam kompilasi dan murah untuk ukuran file yang relative kecil).
Pengkodean
Pengujian
Setelah pengkodean selesai, dilakukanlah pengujian. Dijalankannya program dengan menklik menu: Run Run Ctrl + F9.
Pertama-tama Agung mengetikkan “Nama Penyewa”, kemudian dilanjutkan dengan menekan tombol Enter pada keyboard. Setelah menekan Enter, tampilan program berubah menjadi seperti gambar ilustrasi di bawah ini dan penghitunganpun dimulai.
Sekarang Agung tinggal berfikir bagaimana mencetak data hasil penyewaan menjadi sebuah laporan. Bagaimana mencetak data menjadi laporan? Akan diuraikan pada artikel berikutnya.
- Harga sewa sebesar Rp. 1.000,- per jam
- Tarif sewa flat, dihitung per 15 menit
Penjelasan Kasus
Belajar Pascal berarti belajar Algoritma. Dan belajar algoritma tidak akan lepas dari deskripsi cerita. Oleh karenanya, sebelum ke bahasan lebih lanjut, saya ingin bercerita lebih dulu. Begini ceritanya:
Di Kota Cirebon tersebutlah sebuah rental computer yang bernama INOCHI Computer. Rental ini baru beberapa hari saja dibuka, namun langsung memiliki banyak pelangan, sang pengelola sebut saja namanya Ajat, sedikit merasa kewalahan, karena INOCHI Computer bukan hanya melayani jasa rental saja, tetapi juga melayani kursus, perbaikan PC, penjualan, pemograman sampai ke video shooting dan video editing. Akhirnya tercetuslah ide untuk membuat program yang dapat mengelola layanan rental ini.
Dipanggillah programmer yang masih merupakan tim dari INOCHI Computer, sebut saja namanya Agung. Mulailah Agung bekerja mengumpulkan data yang diperlukan. Akhirnya terkumpullah data sebagai berikut:
Harga sewa PC per jam adalah Rp. 1.000,-
Harga sewa dihitung per 15 menit, artinya INOCHI Computer memberlakukan tarff flat sebesar Rp. 250 per 15 Menit.
Agung pun mulai merencanakan membuat program. Dipilihlah Pascal sebagai bahasa yang mudah dan murah (dengan artian, mudah dalam kompilasi dan murah untuk ukuran file yang relative kecil).
Pengkodean
- Code:
Program Menghitung_Sewa;
Uses Dos, Crt;
Type JAM = Record
HH, MM, SS : Word;
End;
Var
I : Integer; J : LongInt;
JamSekarang, JamMulai,
JamSelesai, JamSewa : JAM;
NamaUser : String;
TotalDetikMulai, TotalDetikSewa,
TotalDetikSekarang,HargaSewa : Word;
DD, MM, YY, DOW : Word;
Const
HargaSewaPerJam = 1000;
FixMenit = 15;
Hari : Array [0..6] of String[9] =
('Minggu','Senin','Selasa',
'Rabu','Kamis','Jum' + #39 + 'at', 'Sabtu');
Bulan : Array [1..12] of String[10] =
('Jan', 'Peb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul',
'Agu', 'Sep', 'Okto', 'Nop', 'Des');
Procedure Tulis(X, Y: Integer; Teks : String);
Begin
GoToXY (X, Y); Write (Teks);
End;
Procedure Banner;
Var TeksJudul : String; Panjang : Integer;
Begin
TextAttr :=$17; ClrScr;
TeksJudul := 'Rental Komputer INOCHI Computer';
Panjang := Length (TeksJudul);
For I:= 1 to 79 Do
Begin
Tulis (I, 1, #205); Tulis (I, 5, #205);
End;
Tulis (1, 1, #201); Tulis (80, 1, #187);
For I := 2 to 5 Do
Begin
Tulis (1, I, #178); Tulis (80, I, #178);
End;
Tulis (1, 5, #200); Tulis (80, 5, #188);
Tulis ((80-Panjang) Div 2, 2, TeksJudul);
TeksJudul := 'Jl. P. Drajat Gg. Jepun No. 48 ' +
'Cirebon 45133';
Panjang := Length (TeksJudul);
Tulis ((80-Panjang) Div 2, 4, TeksJudul);
End;
Function FormatWaktu(W : Word) : String;
Var
S : String;
Begin
Str(W:0,s);
If Length(S) = 1 then S := '0' + S;
FormatWaktu := S;
End;
Procedure PutarJam;
Var pX, pY : Integer;
Begin
GetDate(YY, MM, DD, DOW);
{-----------------------------------------}
Window (1, 11, 80, 25); TextAttr := $30;
For pX := 1 to 80 Do
Begin
For pY := 1 to 14 Do
Begin
GotoXY (pX, pY);
Write(#177); {179}
End;
End;
{-----------------------------------------}
Tulis (28, 2, ' Jam Mulai : ' +
FormatWaktu(JamMulai.HH)+':'+
FormatWaktu(JamMulai.MM)+':'+
FormatWaktu(JamMulai.SS) + ' ');
{-----------------------------------------}
Repeat
GetTime(JamSekarang.HH,JamSekarang.MM,
JamSekarang.SS,JamSekarang.SS);
{-----------------------------------------}
TotalDetikSekarang := (JamSekarang.SS) +
(JamSekarang.MM * 60) +
(JamSekarang.HH * 3600);
{-----------------------------------------}
TotalDetikMulai := (JamMulai.SS) +
(JamMulai.MM * 60) +
(JamMulai.HH * 3600);
TotalDetikSewa := TotalDetikSekarang - TotalDetikMulai;
{-----------------------------------------------}
JamSewa.HH := TotalDetikSewa div 3600;
JamSewa.MM := (TotalDetikSewa Mod 3600) Div 60;
JamSewa.SS := (TotalDetikSewa Mod 3600) Mod 60;
{-----------------------------------------------}
HargaSewa := (HargaSewaPerJam div (3600 div (60 *
FixMenit))) * (1 + (TotalDetikSewa div
(60 * FixMenit)));
Window (43, 8, 80, 8); TextAttr := $40; ClrScr;
{-----------------------------------------}
GoToXy (3, 1); Write(HARI[DOW],', ', DD:0, ' ',
BULAN[MM],' ', YY:0, ' ');
Tulis(27, 1, #16 + ' ' +
FormatWaktu(JamSekarang.HH)+':'+
FormatWaktu(JamSekarang.MM)+':'+
FormatWaktu(JamSekarang.SS));
{-----------------------------------------}
Window (25,16,55,19); TextAttr := $67; TextBackGround(4);
For I:= 1 to 29 Do
Begin
Tulis (I, 1, #205); Tulis (I, 4, #205);
End;
Tulis (1, 1, #201); Tulis (30, 1, #187);
For I := 2 to 3 Do
Begin
Tulis (1, I, #178); Tulis (30, I, #178);
End;
Tulis (1, 4, #200); Tulis (30, 4, #188);
Tulis (2, 2, ' Lama Sewa : ' +
FormatWaktu(JamSewa.HH)+':'+
FormatWaktu(JamSewa.MM)+':'+
FormatWaktu(JamSewa.SS)+ ' ');
{-----------------------------------------}
Tulis (2, 3, ' Harga Sewa : Rp. ');
GoToXY(22, 3); Write(HargaSewa:7, ' ');
For j := 0 To 10000000 Do;
Window (57,25,79,25); TextAttr := $89; ClrScr;
Tulis (1, 1, ' Created By Viansastra');
Until KeyPressed;
End;
Procedure CetakDataPenyewa;
Var pX, pY : Integer;
Begin
Window (1, 6, 80, 25); TextAttr := 15; ClrScr;
Window (1, 7, 41, 9); TextAttr := $20; ClrScr;
Tulis (1, 1, #214); Tulis (40, 1, #183);
For I:= 2 to 39 Do
Begin
Tulis (I, 1, #205); Tulis (I, 3, #205);
End;
Tulis (1, 3, #211); Tulis (40, 3, #189);
Tulis (1, 2, #186); Tulis (40, 2, #186);
Tulis (4,2, 'Nama Penyewa : ');
Window (20, 8, 38, 8); TextAttr := $61; ClrScr;
Repeat
ReadLn(NamaUser);
Until NamaUser <> '';
Write (NamaUser);
GetTime(JamMulai.HH,JamMulai.MM, JamMulai.SS, JamMulai.SS);
PutarJam;
End;
(* Program Utama *)
Begin
Banner;
CetakDataPenyewa;
end.
Pengujian
Setelah pengkodean selesai, dilakukanlah pengujian. Dijalankannya program dengan menklik menu: Run Run Ctrl + F9.
Pertama-tama Agung mengetikkan “Nama Penyewa”, kemudian dilanjutkan dengan menekan tombol Enter pada keyboard. Setelah menekan Enter, tampilan program berubah menjadi seperti gambar ilustrasi di bawah ini dan penghitunganpun dimulai.
Sekarang Agung tinggal berfikir bagaimana mencetak data hasil penyewaan menjadi sebuah laporan. Bagaimana mencetak data menjadi laporan? Akan diuraikan pada artikel berikutnya.
Similar topics
» Program Zodiac dengan Pascal
» Fungsi-Fungsi pada Pemograman Pascal
» Pemograman Melalui Visual Basic dan Turbo Pascal
» "Rental Komputer" dengan Pascal
» "Ramal Zodiak" dengan Pascal
» Fungsi-Fungsi pada Pemograman Pascal
» Pemograman Melalui Visual Basic dan Turbo Pascal
» "Rental Komputer" dengan Pascal
» "Ramal Zodiak" dengan Pascal
Halaman 1 dari 1
Permissions in this forum:
Anda tidak dapat menjawab topik
|
|