|  | 
| Tampilan Program Tarif Parkir | 
Setelah
kita mengetahui div dan mod serta mengetahui cara mengonversi berbagai macam
satuan dalam pembahasan di artikel yang sudah saya post sebelumnya Mengenal Div dan Mod serta Mengonversi Detik dalam Algoritma dan Pemrograman Bahasa Pascal  dan mengetahui struktur pemilihan (selection) dalam algoritma dan pemrograman, kita dapat membuat sebuah algoritma
dan program untuk menentukan tarif parkir sebuah kendaraan perjam disuatu
tempat parkir.
Contohnya persoalan berikut :
Buatlah algoritma dan program
untuk menentukan tarif parkir perjam sebuah kendaraan dengan ketentuan diantaranya:
1. No. Polisi dimasukkan oleh user dan beri validasi dgn menggunakan struktur pemilihan (if … then …) agar tidak melebihi 4 digit angka.
2. Waktu
masuk dan waktu keluar sebuah kendaraan di input atau dimasukkan oleh user
(diberi validasi dgn menggunakan struktur pemilihan) agar waktu yang terdiri
dari Jam, menit, detik yang dimasukkan valid atau sesuai.1. No. Polisi dimasukkan oleh user dan beri validasi dgn menggunakan struktur pemilihan (if … then …) agar tidak melebihi 4 digit angka.
3. Tampilkan Keterangan yang telah diinput tersebut (Tampilkan No.Polisi, Waktu masuk, dan waktu keluar)
4. Tentukan berapa waktu lamanya parkir dan tampilkan waktu lamanya parkir.
5. Tentukan tarif perjam dan tampilkan tarif perjam (tarif perjam bias anda tentukan sendiri)
Nah dari persoalan diatas kita
dapatkan algoritma sebagai berikut :
menghitung_lama_parkir_kendaraan_motor_dan_tarif_parkir;
{ I.S. : user memasukan No
Polisi, Jam Masuk, dan Jam Keluar }
{ F.S. : menampilkan No Polisi,
Jam Masuk, Jam Keluar dan lama parkirnya }
Kamus :
  
J1hh,J1mm,J1ss : integer {waktu saat masuk}
  
J2hh,J2mm,J2ss : integer {waktu saat keluar}
 
 J3hh,J3mm,J3ss : integer {waktu lamanya parkir}
  
nopol    : integer
  
TotalDetik1,TotalDetik2,selisihdetik,sisa : integer
  
bayar_parkir : integer
Algoritma :
   Input (nopol)
  
{validasi No.Polisi}
   if (nopol > 9999)
   then
        Output ('No polisi tidak boleh melebihi
4 digit !')
        Input (nopol);
  
Endif
 
{memasukkan waktu (jam, menit, detik) masuk } 
  
Input (J1hh) {memasukkan jam}
  
{validasi jam}
  
if (J1hh > 24)
  
then
       
Output ('Jam yang anda masukkan tidak
valid !')
        Input (J1hh)
  
endif
  
Input (J1mm) {memasukkan menit}
  
{validasi menit}
  
if (J1mm > 59)
  
then
        Output ('Menit yang anda masukkan tidak
valid !')
        Input (J1mm)
  
endif
  
Input (J1ss) {memasukkan detik}
  
{validasi detik}
  
if (J1ss > 59)
  
then
        Output ('Detik yang anda masukkan tidak
valid !')
        Input (J1ss)
  
Endif
  
{Memasukkan waktu (jam,menit,detik) keluar}
  
Input (J2hh) {memasukkan jam}
  
{validasi jam}
  
if (J2hh > 24)
  
then
        Output ('Jam yang anda masukkan tidak
valid !')
        Input (J2hh)
  
endif
  
Input (J2mm) {memasukkan menit}
  
{validasi menit}
  
if (J2mm > 59)
  
then
        Output ('Menit yang anda masukkan tidak
valid !')
        Input (J2mm)
  
endif
  
Input (J2ss) {memasukkan detik}
  
{validasi detik}
  
if (J2ss > 59)
  
then
        Output ('Detik yang anda masukkan tidak
valid !')
        Input (J2ss)
  
endif
  
{konversi masing masing jam ke detik dulu bro :)}
  
TotalDetik1 ← (J1hh*3600) + (J1mm*60) + J1ss
  
TotalDetik2 ← (J2hh*3600) + (J2mm*60) + J2ss
  
{selisih detik}
  
selisihdetik ← TotalDetik2 - TotalDetik1
  
{konversi selisih detik ke jam-menit-detik agar dapet waktu lamanya
parkir :) }
  
J3hh ← selisihdetik div 3600
   sisa ←
selisihdetik mod 3600
  
J3mm ← sisa div 60
  
J3ss ← sisa mod 60
  
{menampilkan hasil input dan penghitungan}
  
Output (nopol)
  Output (J1hh,':') Output (J1mm,':') Output (J1ss) {menampilkan waktu
masuk parkir}
  Output (J2hh,':') Output (J2mm,':') Ouput (J2ss) {menampilkan waktu
keluar parkir}
  
{menampilkan waktu lamanya parkir}
   Output (nopol)
  
Output (J3hh,':') Output (J3mm,':') Output (J3ss) {menampilkan lamanya
parkir}
  
{Menentukan Tarif Parkir}
  
if j3hh < 2
  
then
       bayar_parkir ← 1000
  
else
       if j3hh <= 4
       then
           bayar_parkir ← 2000
       else
           if j3hh <= 6
           then
               bayar_parkir ← 4000
           else
               bayar_parkir ← 5000
 
         endif
       endif
  
endif
 
{menampilkan biaya atau tarif parkir}
   Output (bayar_parkir) 
Kita berhasil membuat
algoritmanya, sekarang kita buat deh program parkirnya, berikut adalah coding programnya
:
program menghitung_lama_parkir_kendaraan_motor_dan_tarif_parkir;
{ I.S. : user memasukan No
Polisi, Jam Masuk, dan Jam Keluar }
{ F.S. : menampilkan No Polisi,
Jam Masuk, Jam Keluar dan lama parkirnya }
uses crt;
{Deklarasi / Kamus}
var
  
J1hh,J1mm,J1ss : integer;
  
J2hh,J2mm,J2ss : integer;
  
J3hh,J3mm,J3ss : Integer;
  
nopol    : integer;
  
TotalDetik1,TotalDetik2,selisihdetik,sisa : integer;
  
bayar_parkir : integer;
begin
  
gotoxy(14,1);textcolor(white);write('SELAMAT DATANG');
  
gotoxy(5,2);textcolor(white);write('DI UNIVERSITAS KOMPUTER INDONESIA');
  
gotoxy(12,3);textcolor(white);writeln('JL.DIPATIUKUR NO.112');
  
writeln('-----------------------------------------');
  
write(' No. POL (max 4 digit) : ');readln(nopol);
  
{validasi No.Polisi}
  
if nopol > 9999
  
then
  
begin
       
gotoxy(2,6);
        write('No polisi tidak boleh melebihi 4
digit !');
        readln;
        gotoxy(2,6);clreol;
        gotoxy(26,5);clreol;
        gotoxy(26,5);readln(nopol);
  
end;{endif}
  
gotoxy(1,6);
  
write(' MASUK  JAM            : ');readln(J1hh);
  
{validasi jam}
  
if (J1hh > 24)
  
then
  
begin
        gotoxy(2,7);
        write('Jam yang anda masukkan tidak
valid !');
        readln;
        gotoxy(2,7);clreol;
        gotoxy(26,6);clreol;
        gotoxy(26,6);readln(J1hh);
  
end;{endif}
  
gotoxy(1,7);
  
write('        MENIT          : ');readln(J1mm);
  
{validasi menit dgn if}
  
if (J1mm > 59)
  
then
  
begin
        gotoxy(2,8);
        write('Menit yang anda masukkan tidak
valid !');
        readln;
        gotoxy(2,8);clreol;
        gotoxy(26,7);clreol;
        gotoxy(26,7);readln(J1mm);
  
end;{endif}
  
gotoxy(1,8);
  
write('        DETIK          : ');readln(J1ss);
  
{validasi detik}
  
if (J1ss > 59)
  
then
  
begin
        gotoxy(2,9);
        write('Detik yang anda masukkan tidak
valid !');
        readln;
        gotoxy(2,9);clreol;
        gotoxy(26,8);clreol;
        gotoxy(26,8);readln(J1ss);
  
end;{endif}
  
gotoxy(1,9);
  
write(' KELUAR JAM            :
');readln(J2hh);
  
{validasi jam}
  
if (J2hh > 24)
  
then
  
begin
        gotoxy(2,10);
        write('Jam yang anda masukkan tidak
valid !');
        readln;
        gotoxy(2,10);clreol;
        gotoxy(26,9);clreol;
        gotoxy(26,9);readln(J2hh);
  
end;{endif}
  
gotoxy(1,10);
  
write('        MENIT          : ');readln(J2mm);
  
{validasi menit}
  
if (J2mm > 59)
  
then
  
begin
        gotoxy(2,11);
        write('Menit yang anda masukkan tidak
valid !');
        readln;
        gotoxy(2,11);clreol;
        gotoxy(26,10);clreol;
        gotoxy(26,10);readln(J2mm);
  
end;{endif}
  
gotoxy(1,11);
  
write('        DETIK          : ');readln(J2ss);
  
{validasi detik}
  
if (J2ss > 59)
  
then
  
begin
        gotoxy(2,12);
        write('Detik yang anda masukkan tidak
valid !');
        readln;
        gotoxy(2,12);clreol;
        gotoxy(26,11);clreol;
        gotoxy(26,11);readln(J2ss);
  
end;{endif}
  
{konversi masing masing jam ke detik dulu bro :)}
  
TotalDetik1 := (J1hh*3600) + (J1mm*60) + J1ss;
  
TotalDetik2 := (J2hh*3600) + (J2mm*60) + J2ss;
  
{selisih detik}
  
selisihdetik := TotalDetik2 - TotalDetik1;
  
{konversi selisih detik ke jam-menit-detik lagi :)}
  
J3hh := selisihdetik div 3600;
  
sisa := selisihdetik mod 3600;
  
J3mm := sisa div 60;
  
J3ss := sisa mod 60;
  
{menampilkan hasil input dan penghitungan}
  
textcolor(green);
  
gotoxy(1,12);
  
writeln('-----------------------------------------');
  
gotoxy(1,13);
  
write(' No. POL               :
',nopol);
  
gotoxy(1,14);
  
write(' MASUK                 :
');write(J1hh,':');write(J1mm,':',J1ss);
  
gotoxy(1,15);
  
write(' KELUAR                :
');write(J2hh,':');writeln(J2mm,':',J2ss);
  
gotoxy(0,16);
  
writeln('-----------------------------------------');
  
gotoxy(1,17);
  
write(' No. POL               :
',nopol);
  
gotoxy(1,18);
  
write(' PARKIR SELAMA         :
');write(J3hh,':');write(J3mm,':',J3ss);
  
writeln;
  
{Menentukan Tarif Parkir}
  
if j3hh < 2
  
then
       bayar_parkir := 1000
  
else
       if j3hh <= 4
       then
           bayar_parkir := 2000
       else
           if j3hh <= 6
           then
               bayar_parkir := 4000
           else
               bayar_parkir := 5000;
           //endif
       //endif
  
//endif
  
write(' Tarif Parkir          :
Rp. ');write(bayar_parkir);
  
writeln;
  
writeln('-----------------------------------------');
  
gotoxy(14,21);
  
writeln('Selamat Jalan');
  
gotoxy(11,22);
  
write('Selamat Sampai Tujuan');
  
readln;
end.Anda juga dapat mendapatkan program menghitung tarif parkirnya, bisa anda download programnya disini !
Note : Validasi dengan menggunakan struktur pemilihan (if...then) hanya berlaku 1 kali validasi, sebenarnya validasi itu harus menggunakan struktur pengulangan. Nanti akan saya postingkan juga artikel mengenai struktur pengulangan. Dan tempat Di Universitas Komputer Indonesia hanyalah keinginan saya untuk membuat program parkir yang bertempatkan di Universitas Komputer Indonesia serta tarifnyapun saya yang karang sendiri.
Bila anda tidak mempunyai aplikasi pemrograman pascalnya, bisa anda download dan anda pelajari tipsnya disini Download Dev-Pascal 1.9 dengan Penjelasan serta Tipsnya
Alhamdulillah
artikel tentang Menghitung Lama Parkir dan Menentukan Tarif Parkir
Perjam Dalam Algoritma Dan Pemrograman telah selesai. Semoga bermanfaat bagi kita semua !
Bisnis online termudah, Bahkan jika Anda seorang yang awam sekalipun, Anda pasti bisa menjalankan bisnis ini. "Bukan member get member". Isi survei terlebih dahulu dan jalankan bisnisnya
Bisnis online termudah, Bahkan jika Anda seorang yang awam sekalipun, Anda pasti bisa menjalankan bisnis ini. "Bukan member get member". Isi survei terlebih dahulu dan jalankan bisnisnya
:d (k)
BalasHapusTerima kasih telah berkunjung dan membaca artikel sederhana tentang "Menghitung lama parkir dan menentukan tarif parkir dengan bahasa Pascal"
Hapusgan, gimana cra mkek rumus hitungan itu
BalasHapusSangat membantu sekali artikel ini :)
BalasHapus