Penghitungan Biaya Parkir Dengan Pascal

11
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

description

Programming, Turbo Pascal, Information Technology, Academic,

Transcript of Penghitungan Biaya Parkir Dengan Pascal

Page 1: 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

Page 2: Penghitungan Biaya Parkir Dengan Pascal

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 Dengan Pascal

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

Page 4: Penghitungan Biaya Parkir Dengan Pascal

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 Dengan Pascal

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 Dengan Pascal

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 Dengan Pascal

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 Dengan Pascal

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 Dengan Pascal

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 Dengan Pascal

Menampilkan Data (Pilihan 2)

Menghapus Data / Mengeluarkan Kendaraan (Pilihan 3)

Page 11: Penghitungan Biaya Parkir Dengan Pascal

Menampilkan Data (Setelah ada yang dihapus)