Belajar Menggunakan Pascal
Kali ini kita akan coba membuat program billing warnet sederhana memakai bahasa pascal. Warnet yang akan kita buat billingnya, memiliki tarif harga 20 rupiah per 10 detik. Tetapi, jika user menggunakan inernet selama 30 detik atau kurang, maka user diwajibkan membayar sebanyak 1000 rupiah. Sebelum kita masuk ke coding, alangkah baiknyakita memahami algoritmanya terlebih dahulu. Berikut penjelasan algoritmanya.
Judul
program_billing_warnetKamus
const biaya : 20 {per pulsa 20 rupiah}
const pulsa : 10 {satu pulsa = 10 detik}
TYPE jam: < style="color: rgb(0, 0, 255);">{jam dibatasi antara pukul 0 sampai 23}
mm : integer[0..59] {menit dibatasi antara 0 sampai 59}
ss : integer[0..59] {detik dibatasi antara 0 sampai 59} >jam1, jam2, jam3 : jam
detik1, detik2, detik3 : integral
harga : realAlgoritma
{masukkan waktu mulai, hh, mm, ss}
input(jam1.hh,jam1.mm,jam1.ss){masukkan waktu selesai, hh, mm, ss}
input(jam2.hh,jam2.mm,jam2.ss){convert ke satuan detik}
detik1 <– (jam1.hh*3600)+(jam1.mm*60)+jam1.ss; {waktu awal}
detik2 <– (jam2.hh*3600)+(jam2.mm*60)+jam2.ss; {waktu akhir}
detik3 <– detik2-detik1; {mencari selisih waktu dalam detik}{karena 30 detik pertama harganya 1000 rupiah, kita buat dengan if}
if detik3<=30 then {30 detik pertama} output(detik3) output(’biaya yang harus dibayar 1000 rupiah)else
{mengubah detik ke format hh,mm,ss}
jam3.hh <– detik3 div 3600 jam3.mm <– detik3 mod 3600 div 60 jam3.ss <– detik3 mod 3600 mod 60{menghitung biaya}
harga <– (detik3/pulsa)*biaya{tampilkan lama penggunaan dan biaya}
output(jam3.hh,jam3.mm,jam3.ss,harga)
endif
Penjelasan :
- Buat konstanta bernama “biaya” dan “pulsa”. “Biaya” diisi dengan nilai 20, sedangkan “pulsa” diisi dengan 10.
- Kita buat suatu tipe baru dengan nama jam, yang berisi variabel hh,mm,dan ss. Type ini digunakan untuk mendefinisikan waktu.
- Definisikan variabel jam1, jam2, dan jam3 sebagai type “jam”. Definisikan variabel detik1, detik2, dan detik3 sebagai integer. Definisikan variabel harga sebagai real.
- Input waktu mulai dan selesai. Formatnya hh,mm,ss.
- kemudian convert waktu ke dalam satuan detik melalui rumus detik1 <– (jam1.hh*3600)+(jam1.mm*60)+jam1.ss; Lakukan langkah ini untuk waktu awal dan waktu akhir.
- Hitung selisih waktu dengan rumus detik3 <– detik2-detik1.
- Karena 30 detik pertama harganya 1000 rupiah, kita buat dengan IF. Jika waktu >= 30, maka tampilkan waktu penggunaan, dan biayanya sebesar 1000 rupiah.
- Jika lebih dari 30 detik, ubah jam dalam satuan detik tadi dalam format hh,mm,ss.
- Lalu hitung biayanya dengan rumus harga <– (detik3/pulsa)*biaya
- Tampilkan lama penggunaan dan biaya..
Sekarang langsung saja masuk ke kode.. Here is the code..
program warnet;
uses WinCrt;
const
biaya=20; {per pulsa 20 rupiah}
pulsa=10; {satu pulsa = 10 detik}type
jam = record
hh : integer; {jam dibatasi antara pukul 0 sampai 23}
mm, ss : integer; {menit dan detik dibatasi antara 0 sampai 59}
end;var
jam1,jam2,jam3 : jam;
detik1,detik2,detik3 : integer;
harga : real;begin
clrscr;
write(’jam awal : ‘; readln(jam1.hh); {catat jam awal}
write(’menit awal : ‘;readln(jam1.mm); {catat menit awal}
write(’detik awal : ‘;readln(jam1.ss); {catat detik awal}
writeln;
write(’jam akhir : ‘;readln(jam2.hh); {catat jam akhir}
write(’menit akhir : ‘;readln(jam2.mm); {catat menit akhir}
write(’detik akhir : ‘;readln(jam2.ss); {catat detik akhir}
writeln;
{mengubah waktu ke satuan detik}
detik1:=(jam1.hh*3600)+(jam1.mm*60)+jam1.ss; {waktu awal}
detik2:=(jam2.hh*3600)+(jam2.mm*60)+jam2.ss; {waktu akhir}
detik3:=detik2-detik1; {mencari selisih waktu dalam detik}{karena 30 detik pertama harganya 1000 rupiah, kita buat dengan if}
if detik3<=30 then {30 detik pertama}
begin
writeln(’waktu anda ‘,detik3,’ detik. Anda dikenakan biaya 1000 rupiah. Terima kasih’;
endelse
begin
{mengubah detik ke format hh,mm,ss}
jam3.hh:=detik3 div 3600;
jam3.mm:=detik3 mod 3600 div 60;
jam3.ss:=detik3 mod 3600 mod 60;{menghitung biaya}
harga:=(detik3/pulsa)*biaya;writeln(’waktu anda : ‘,jam3.hh,’ jam ‘,jam3.mm,’ menit ‘,jam3.ss,’ detik.’;
writeln(’Anda dikenakan biaya ‘,harga:0:2,’ rupiah. Terima kasih’;
end;
end.