Posted by : BayuBayyz Senin, 10 Februari 2014

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.
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 ! http://www.ziddu.com/download/23568972/MenentukanTarifParkirPerjam.exe.html

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 DISINI !

{ 4 comments... read them below or Comment }

  1. Balasan
    1. Terima kasih telah berkunjung dan membaca artikel sederhana tentang "Menghitung lama parkir dan menentukan tarif parkir dengan bahasa Pascal"

      Hapus
  2. gan, gimana cra mkek rumus hitungan itu

    BalasHapus
  3. Sangat membantu sekali artikel ini :)

    BalasHapus

Welcome to BIG !!!

Find BIG on Facebook

Popular Post

Copyright © 2013 Bayyz Informatics Gallery. Diberdayakan oleh Blogger.

- Copyright © Big Informatics Gallery by Bayu Wijaya Permana Putra - Powered by Blogger - Supported by Google -