Penghitungan Biaya Parkir Dengan Pascal
description
Transcript of Penghitungan Biaya Parkir Dengan Pascal
PROGRAM
PENGHITUNGAN BIAYA PARKIR
DENGAN PASCAL
Disusun Oleh :
Moh. Habibi – 10508656
Baban Bakti Nugraha – 10508654
Andi Markus – 10508646
Agam Amrullah – 10508684
Kelas : MI – 14
JURUSAN MANAJEMEN INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2010
TEMA : PENGHITUNGAN BIAYA PARKIR
PERMASALAHAN
Di era globalisasi ini teknologi informasi dan komunikasi sudah tidak asing lagi di dunia
terlebih lagi bagi para pengguna teknolog itu sendiri.
kemajuan dan perkembangan teknologi informasi memang membantu masyarakat dalam
kehidupan sehari-hari. oleh karena itu, banyak orang atau perusahaan besar maupun instansi
kecil yang mengggunakan kemajuan teknologi dan informasi untuk mempermudah pekerjaan
mereka. sebagai contohnya dalam kehidupan sehari-hari kita sering menjumpai perusahaan besar
seperti swalayan tempat-tempat hiburan sekarang ini telah menerapkan salah satu bentuk
kemajuan teknologi tersebut yaitu program biaya parkir. program aplikasi ini digunakan untuk
mengatur keluar masuknya kendaraan dan menggunakan tarif perjam. dan terbukti bahwa
penerapan program tersebut memang membawa keuntungan untuk kedua belah pihak baik
pelanggan maupun pengelola itu sendiri.
Dengan menggunakan program aplikasi biaya parkir ini Pengelola parkir akan lebih
mudah mendata setiap kendaraan yang keluar masuk. Dengan sistem ini mereka akan lebih
diuntungkan karena menggunakan tarif perjam. Di samping itu, Para pelanggan merasa lebih
nyaman dengan sistem tersebut karena data nomor kendaraan mereka akan tersimpan selama
kendaraan belum meninggalkan area parkir sehingga memperkecil resiko kehilangan Itulah salah
satu contoh dari bentuk kemajuan teknologi yang digunakan oleh pengelola parkir untuk
mempermudah pekerjaan mereka.
ASUMSI / BATASAN MASALAH
Program yang kami buat mencakup pemasukan data yang berupa nomor plat kendaraan,
jenis kendaraan, jam masuk kendaraan ke dalam area parkir, jam keluar kendaraan dan
penghitungan biaya parkir.
Saat kendaraan masuk, user akan mencatat nomor plat dan jenis kendaraan tersebut,
untuk kemudian dimasukkan dalam record, kemudian tulis jam masuknya. Ketika kendaraan
akan keluar, user akan mengecek nomor plat kendaraan ke dalam record program, jika nomor
sesuai dengan data yang ada pada record, maka program akan menampilkan data tentang jenis
kendaraan, nomor plat kendaraan, jam masuk, dan meminta user untuk memasukkan jam keluar
kendaraan dari parkir dan akan menghitungnya untuk diketahui besarnya biaya parkir yang harus
dibayarkan. Setelah itu, user akan memberitahukan biaya parkir sesuai dengan jenis kendaraan
dan lamanya parkir kepada pelanggan tersebut. Jika pelanggan sudah menyerahkan biaya
parkirnya, maka kendaraan akan dipersilakan untuk keluar dari area parkir.
Untuk jenis kendaraan motor, diberlakukan tarif Rp 1.000,- untuk 1 jam pertama dan Rp
500,- untuk perjam berikutnya. Sedangkan untuk jenis kendaraan mobil, diberlakukan tarif Rp
2.000,- untuk jam pertama dan Rp 1.000,- untuk perjam berikutnya.
ALGORITMA
Dalam pembuatan program ini, kami memakai beberapa prosedur, diantaranya prosedur
batas untuk membatasi tampilan di layar, prosedur masuk untuk mencatat kendaraan masuk,
prosedur urut untuk mengurutkan kendaraan berdasarkan nomor plat kendaraan, prosedur cek
untuk menampilkan daftar kendaraan yang ada di area parkir, dan prosedur keluar (sekaligus
pencarian) untuk mencari kendaraan yang akan keluar berdasarkan nomor plat kendaraan dan
menghitung biaya parkir yang harus dibayar.
Langkah-langkah program :
Dalam menu utama, akan ditampilkan pilihan perintah/prosedur yang terdapat dalam program,
yaitu :
1 -> Kendaraan Masuk, untuk memasukkan data kendaraan yang akan masuk ke area parkir
2 -> Cek Jumlah Kendaraan, untuk menampilkan daftar kendaraan yang terdapat di area parkir
3 -> Kendaraan Keluar, untuk mencari kendaraan yang akan keluar dari area parkir, sekaligus
menghitung biaya parkir yang harus dibayar
4 -> Keluar Program, pilihan untuk keluar dari program.
Dan selanjutnya kita akan diminta untuk memasukkan pilihan antara 0 – 3.
Jika kita memasukkan pilihan 1, maka perintah-perintah pada prosedur masuk akan dijalankan,
Dalam prosedur masuk, pertama-tama terdapat perintah untuk membersihkan layar,
kemudian prosedur batas untuk membuat batasan pada layar, dan selanjutnya inisialisasi simpul
baru yang bertipe data kendaraan. Setelah inisialisasi selesai, program akan meminta kita untuk
memasukkan nomor plat kendaraan yang selanjutnya akan disimpin pada variabel plat,
kemudian jenis kendaraan yang akan disimpan pada variabel jenis, dan jam masuk kendaraan
yang akan disimpan pada variabel jam, mnt, dtk secara berurutan. Jika dalam simpul belum
terdapat elemen (awal=nil), maka simpul baru akan dijadikan sebagai awal dari simpul dan akhir
dari simpul. Jika tidak, maka simpul baru ini disebelah kanannya disambungkan ke simpul awal,
sehingga simpul baru berada di sebelah kiri dari simpul awal. Selanjutnya simpul baru ini akan
dijadikan sebagai simpul awal. Selesailah prosedur masuk, dan selanjutnya program akan
kembali ke menu utama.
Jika kita memasukkan pilihan 2, maka prosedur yang ajan dieksekusi adalah prosedur cek.
Dalam prosedur cek ini, pertama-tama terdapat perintah untuk membersihkan layar,
kemudian prosedur batas untuk membuat batasan pada layar, dan selanjutnya mengeksekusi
prosedur urut yang terdapat di dalamnya.
Dalam prosedur urut, terdapat variabel mobil1 dan mobil2 yang bertipe data kendaraan
yang berfungsi sebagai variabel pembantu. Pertama, variabel mobil1 dijadikan sebagai simpul
awal, kemudian perulangan (while) dengan kondisi selama mobil1 tidak sama dengan simpul
akhir, maka variabel mobil2 didefinisikan sebagai sebelah kanannya dari variabel mobil1.
Kemudian kembali terdapat perulangan (while) dengan kondisi selama variabel mobil2 tidak nil,
maka eksekusi perintah penukaran jika nomor plat pada variabel mobil1 lebih kecil dari nomor
plat pada variabel mobil2, maka simpan nomor plat yang ada pada variabel mobil1 ke variabel
temp_plat, kemudian simpan nomor plat yang ada pada variabel mobil2 ke variabel mobil1,
dan selanjutnya menyimpan nomor plat dari variabel temp_plat ke variabel mobil2. Demikian
juga halnya dengan jenis, jam, mnt, dan dtk. Setelah dilakukan pertukaran, selanjutnya variabel
mobil2 berpindah ke sebelah kanan dari variabel mobil2 dan begitu juga dengan variabel
mobil1, berpindah ke sebelah kanan dari variabel mobil1 itu sendiri.
Setelah selesai mengurutkan, selanjutnya di dalam prosedur cek akan menampilkan daftar
data kendaraan (nomor plat, jenis, jasm masuk) yang ada di area parkir. Selesailah prosedur urut
dan cek, selanjutnya program akan kembali ke menu utama.
Jika kita memasukkan pilihan 3, maka prosedur keluar akan dieksekusi.
Dalam prosedur keluar ini, sama seperti prosedur lainnya, pertama-tama terdapat perintah
untuk membersihkan layar, kemudian prosedur batas untuk membuat batasan pada layar.
Selanjutnya prosedur cek akan dipanggil untuk menampilkan daftar kendaraan yang terdapat di
area parkir untuk memudahkan pencarian. Selanjutnya simpul bantu disediakan sebagai simpul
awal dari pencarian yang akan dilakukan. kemudian, program akan meminta kita untuk
memasukkan nomor plat kendaraan yang akan keluar, kemudian menelusurinya ke dalam daftar
tersebut. Penelusuran/pencarian ini akan terus berulang sampai data yang dicari ketemu atau
variabel simpul bantu sebelah kanan sama dengan nil.
Jika data yang dicari ketemu, maka program akan menampilkan data yang telah dicari sesuai
dengan nomor plat kendaraan yang telah dimasukkan untuk pencarian. Setelah data kendaraan
(nomor plat, jenis kendaraan dan jam masuk) ditampilkan, maka program akan meminta kita
untuk memasukkan jam keluarnya kendaraan dari area parkir. Selanjutnya lamanya parkir dan
jenis kendaraan akan dikalkulasi untuk mengetahui jumlah biaya parkir yang harus dibayar.
Selanjutnya, variabel simpul bantu2 akan diletakkan di sebelah kiri simpul bantu (yang
akan dihapus), kemudian bantu3 diletakkan di sebelah kanan dari simpul bantu. Simpul bantu2
sebelah kanan disambungkan dengan simpul bantu3 dan simpul bantu3 sebelah kiri
disambungkan dengan simpul bantu2. Dan kemudian simpul bantu di-dispose (dihapus) yang
menandakan bahwa kendaraan telah keluar dari area parkir, sehingga semua data tentang
kendaraan tersebut dihilangkan. Selesailah prosedur keluar dan program akan kembali ke menu
utama.
Jika kita memasukkan pilihan 4, maka perintah untuk keluar dari program akan dijalankan.
Program pun selesai.
LIST PROGRAM
uses crt;
type str10=string[10];
kendaraan=^kndrn;
kndrn=record
plat:str10;
jam,mnt,dtk:byte;
jenis:str10;
kanan,kiri:kendaraan;
end;
var awal,akhir,mobil:kendaraan;
pilih:byte;
procedure batas;
var i:byte;
begin
for i:=1 to 25 do
begin
gotoxy(28,i); write(chr(186));
end;
end;
procedure masuk(var awal,akhir,mobil:kendaraan);
var baru:kendaraan;
begin
clrscr;
batas;
new(baru);
with baru^ do
begin
kiri:=nil;
kanan:=nil;
plat:='';
jenis:='';
jam:=0;
mnt:=0;
dtk:=0;
gotoxy(35,5); write('Nomor Plat : '); readln(plat);
gotoxy(35,6); write('Jenis Kendaraan : '); readln(jenis);
gotoxy(35,7); write('Jam Masuk : '); readln(jam,mnt,dtk);
end;
if awal=nil then
begin
awal:=baru;
akhir:=baru;
end
else
begin
baru^.kanan:=awal;
awal^.kiri:=baru;
awal:=baru;
end;
end;
procedure urut(awal,akhir:kendaraan);
var mobil1,mobil2:kendaraan;
temp_plat,temp_jenis:str10;
temp_jam,temp_mnt,temp_dtk:byte;
begin
mobil1:=awal;
while (mobil1<>akhir) do
begin
mobil2:=mobil1^.kanan;
while (mobil2<>nil) do
begin
if (mobil1^.plat<mobil2^.plat) then
begin
temp_plat:=mobil1^.plat;
mobil1^.plat:=mobil2^.plat;
mobil2^.plat:=temp_plat;
temp_jenis:=mobil1^.jenis;
mobil^.jenis:=mobil2^.jenis;
mobil2^.jenis:=temp_jenis;
temp_jam:=mobil^.jam;
mobil1^.jam:=mobil2^.jam;
mobil2^.jam:=temp_jam;
temp_mnt:=mobil^.mnt;
mobil1^.mnt:=mobil2^.mnt;
mobil2^.mnt:=temp_mnt;
temp_dtk:=mobil^.dtk;
mobil1^.dtk:=mobil2^.dtk;
mobil2^.dtk:=temp_dtk;
end;
mobil2:=mobil2^.kanan;
end;
mobil1:=mobil1^.kanan;
end;
end;
procedure cek(awal,akhir:kendaraan);
var simpul:kendaraan; i:byte;
begin
clrscr;
batas;
urut(awal,akhir);
gotoxy(30,2); write(' DAFTAR KENDARAAN YANG ADA');
gotoxy(30,3); write(' DI AREA PARKIR');
gotoxy(30,4);
write('ÚÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿');
gotoxy(30,5); write('³ NO ³ NOMOR PLAT ³ JENIS KENDARAAN ³ JAM MASUK ³');
gotoxy(30,6);
write('ÃÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´');
simpul:=awal;
i:=1;
while simpul<>nil do
begin
gotoxy(30,6+i); write('³ ³ ³ ³ ³');
gotoxy(33,6+i); write(i);
gotoxy(37,6+i); write(simpul^.plat);
gotoxy(55,6+i); write(simpul^.jenis);
gotoxy(69,6+i); write(simpul^.jam,':',simpul^.mnt,':',simpul^.dtk);
gotoxy(30,7+i);
write('ÀÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÙ');
simpul:=simpul^.kanan;
i:=i+1;
end;
end;
procedure keluar(awal,akhir,mobil:kendaraan);
var bantu,bantu2,bantu3:kendaraan;
no:str10;
lama:integer;
bayar:longint;
j1,j2,m1,m2,d1,d2:byte;
ketemu:boolean;
begin
clrscr;
batas;
cek(awal,akhir);
bantu:=awal;
gotoxy(30,18); write('Nomor Plat Kendaraan Keluar : '); readln(no);
repeat
bantu:=bantu^.kanan;
ketemu:=no=bantu^.plat;
until ketemu or (bantu^.kanan=nil);
if ketemu then
begin
gotoxy(30,20); writeln('DATA DITEMUKAN SEBAGAI BERIKUT :');
gotoxy(30,22); writeln('Nomor Plat : ',bantu^.plat);
gotoxy(30,23); writeln('Jenis Kendaraan : ',bantu^.jenis);
gotoxy(30,24); writeln('Jam Masuk : ',bantu^.jam,':',bantu^.mnt,':',bantu^.dtk);
gotoxy(58,23); write('Jam Keluar : '); readln(j1,m1,d1);
lama:=(bantu^.jam*3600)+(bantu^.mnt*60)+bantu^.dtk-(j1*3600)+(m1*60)+d1;
j2:=lama div 3600;
m2:=(lama mod 3600) div 60;
d2:=(lama mod 3600) mod 60;
if (m2>0) or (d2>0) then
j2:=j2+1;
if (bantu^.jenis='MOTOR') then
begin
if j2<2 then
bayar:=1000
else
bayar:=1000+(500*j2);
end else
if (bantu^.jenis='MOBIL') then
begin
if j2<2 then
bayar:=2000
else
bayar:=2000+(1000*j2);
end
else
bayar:=0;
gotoxy(58,24); write('Biaya Parkir : ',bayar);
bantu2:=bantu^.kiri;
bantu3:=bantu^.kanan;
bantu2^.kanan:=bantu3;
bantu3^.kiri:=bantu2;
dispose(bantu);
end;
end;
begin
clrscr;
batas;
repeat
gotoxy(2,2); write('=========================');
gotoxy(2,3); write(' MENU UTAMA');
gotoxy(2,4); write('=========================');
gotoxy(2,6); write(' 1. Kendaraan Masuk');
gotoxy(2,8); write(' 2. Cek Jumlah Kendaraan');
gotoxy(2,10); write(' 3. Kendaraan Keluar');
gotoxy(2,12); write(' 0. Keluar Program');
gotoxy(2,14); write('=========================');
gotoxy(2,15); write(' Pilih : ');
gotoxy(2,16); write('=========================');
gotoxy(17,15); readln(pilih);
case pilih of
1:masuk(awal,akhir,mobil);
2:cek(awal,akhir);
3:keluar(awal,akhir,mobil); else
write('Pilihan Salah');
end;
until pilih=0;
end.
PRTUNJUK PENGGUNAAN
Jalankan program yang bernama "parkir.exe". Untuk mencatat nomor plat kendaraan
yang akan masuk ke dalam area parkir, pilih nomor 1, maka akan muncul form yang harus diisi,
yaitu nomor plat , jenis kendaraan dan jam masuk. Untuk memeriksa banyaknya jumlah
kendaraan yang telah masuk ke dalam area parkir, pilih 2. Maka program akan menampilkan
data-data kendaraan yang ada di dalam area parkir. Jika ada kendaraan yang akan keluar dari
area parkir, maka pilih nomor 3. Dalam bagian ini, user akan diminta memasukkan nomor plat
kendaraan yang akan keluar. Jika nomornya sama, maka program akan meminta user untuk
memasukkan jam keluar dan setelah itu, program akan menampilkan data mengenai lama parkir
kendaraan dan biaya yang harus dibayar oleh pemilik kendaraan. Jika telah selesai menggunakan
program, pilih 0 untuk keluar dari program.
OUTPUT PROGRAM
Memasukkan Data Kendaraan Masuk (Pilihan 1)
Menampilkan Data (Pilihan 2)
Menghapus Data / Mengeluarkan Kendaraan (Pilihan 3)
Menampilkan Data (Setelah ada yang dihapus)