penghitungan biaya parkir

16
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

Upload: mastermi

Post on 18-Jun-2015

622 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Penghitungan Biaya Parkir

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

Page 2: Penghitungan Biaya Parkir

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.

Page 3: Penghitungan Biaya Parkir

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 parkir2 -> Cek Jumlah Kendaraan, untuk menampilkan daftar kendaraan yang terdapat di area parkir3 -> Kendaraan Keluar, untuk mencari kendaraan yang akan keluar dari area parkir, sekaligus menghitung biaya parkir yang harus dibayar4 -> 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

Page 4: Penghitungan Biaya Parkir

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;

Page 5: Penghitungan Biaya Parkir

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);

Page 6: Penghitungan Biaya Parkir

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');

Page 7: Penghitungan Biaya 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;

Page 8: Penghitungan Biaya Parkir

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

Page 9: Penghitungan Biaya Parkir

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)

Page 10: Penghitungan Biaya Parkir

Menampilkan Data (Pilihan 2)

Menghapus Data / Mengeluarkan Kendaraan (Pilihan 3)

Page 11: Penghitungan Biaya Parkir

Menampilkan Data (Setelah ada yang dihapus)