Professional Documents
Culture Documents
TUGAS AKHIR
disusun oleh :
FINAL PROJECT
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
MOTTO :
WORK, STUDY HARD, AND PRAY
HARDEST!
Atas rahmat Yesus Kristus dan Bunda Maria dengan segala kerendahan hati
kupersembahkan skripsi ini kepada :
Terimakasih untuk semangat, motivasi, dukungan, serta tawa yang kalian berikan.
Kepada segenap keluarga besarku, terimakasih atas segalanya semoga kelak saya
dapat membahagiakan, membanggakan, dan bisa membuat kalian tersenyum
dalam kebahagiaan.
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INTISARI
Proses Penggunaan tempat parkir mobil dalam gedung masih menggunakan sistem
pada umunya. Pengendara tidak dapat mengetahui secara langsung tempat parkir mana saja
yang masih kosong, ataupun lokasi parkir yang terdekat dengan pintu masuk kendaraan.
Sistem seperti ini kurang efisien bagi pengendara karena membutuhkan waktu yang cukup
banyak untuk menemukan tempat parkir yang dapat digunakan.
Untuk menanggulangi hal tersebut maka dibuat sistem aplikasi penampil Visual Basic
untuk optimasi ketersediaan tempat parkir mobil yang terdiri dari mikrokontroler ATmega32,
power supply +5Volt, sensor cahaya Light Dependent Resistor, rangkaian komparator.
Rangkaian ini akan melakukan deteksi di tiap-tiap tempat parkir dengan menggunakan sensor
cahaya yang kemudian diproses oleh mikrokontroler ATmega32 dan proses optimasi
pencarian jalur terpendek untuk mencari lokasi parkir yang terdekat diproses dan ditampilkan
pada penampil Visual Basic di komputer.
Hasil dari peneltian ini adalah mendeteksi ada atau tidaknya mobil pada sensor yang
diletakkan pada tiap-tiap tempat parkir dan juga mengetahui letak parkir yang kosong dan
terdekat. Hasil pendeteksian tersebut ditampilkan pada aplikasi Visual Basic dan dicetak
sebagai karcis masuk client yang akan masuk
Kata kunci : Mobil, Sensor LDR, Visual Basic, Algoritma Dijkstra, ATmega32.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
The use of the process in building a car park still using the system in general. The
rider can not know directly the parking lot which is still empty, or the location of parking
closest to the entrance of the vehicle. Such systems are less efficient for motorists because it
takes quite a lot to find a parking space that can be used.
To overcome this, the viewer application system created Visual Basic for optimizing
the availability of car park consisting of microcontroller ATmega32, power supply + 5volt,
light sensor Light Dependent Resistor, comparator circuit. This circuit will detect in each
park using a light sensor which is then processed by a microcontroller ATmega32 and
process optimization shortest path searching to find the nearest parking area is processed and
displayed on the viewer Visual Basic on the computer.
Results of this research is to detect the presence or absence of a car on a sensor that is
placed on each park and also know the location of empty parking lot and nearby. The
detection result is displayed on a Visual Basic application and printed as a ticket to a client
who will sign
Keywords: Car, LDR Sensor, Visual Basic, Dijkstra's algorithm, ATmega32.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan Syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala berkat
dan rahmat-Nya, sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik. Penulis
menyadari bahwa banyak pihak yang telah memberikan doa, dukungan, perhatian serta
bantuan kepada penulis sehingga dapat menyelesaikan tugas akhir ini. Oleh karena itu,
penulis mengucapkan terimakasih yang sebesar-besarnya kepada:
1) Sudi Mungkasi, S.Si., M.Math. Sc., Ph. D selaku dekan Fakultas Sains dan Teknologi
Universitas Sanata Dharma Yogyakarta.
2) Petrus Setyo Prabowo, S.T.,M.T., Ketua Program Studi Teknik Elektro Universitas
Sanata Dharma Yogyakarta.
3) Bernadeta Wuri Harini S.T., M.T.,selaku dosen pembimbing akademik yang telah
mendampingi dan membimbing penulis selama perkuliahan.
4) Djoko Untoro Suwarno S.Si., M.T., selaku dosen pembimbing yang dengan penuh
pengertian, sabar dan ketulusan hati member bimbingan, kritik, saran, serta motivasi
dalam penulisan tugas akhir ini.
5) Ibu Wiwin Widyastuti S.T., M.T., dan Bapak Ir. Tjendro, M.Kom, selaku dosen
penguji yang telah bersedia memberikan masukan, bimbingan, dan saran dalam
memperbaiki tugas akhir ini.
6) Bapak/ Ibu dosen yang telah mengajarkan banyak hal selama penulis menempuh
pendidikan di Program Studi Teknik Elektro, Fakultas Sains dan Teknologi,
Universitas Sanata Dharma.
7) Kedua orang tua tercinta, Papah Stevanus Sudjito dan Mamah Maria Purwaningsih
atas kasih sayang, dukungan dan doa yang tiada henti.
8) Kakak tercinta Maria Yosephine Gyang Prakasita dan Adik-Adik tercinta Maria
Angeline Gandes Kirana dan Alexander Parahita yang selalu mendukung dan
mendoakan saya, sehingga dapat menyelesaikan tugas belajar dengan baik.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9) Richard Bagus Dean Mahendra sebagai teman, sahabat, dan kekasih yang selalu setia
mendukung, menyemangati, dan dengan sabar mengajari, serta memberi masukan dan
saran untuk penulis sampai terselesaikannya tugas akhir ini.
10) Staff sekretariat Teknik Elektro yang telah membantu dalam hal administrasi.
11) Staff dan petugas laboratorium Teknik Elektro yang telah membantu banyak hal
untuk kelancaran tugas-tugas perkuliahan.
12) Teman-teman seperjuangan angkatan 2012 Teknik Elektro yang selalu mendukung
dan menyemangati saya dalam menyelesaikan tugas akhir ini.
13) Adik-adik angkatan 2013 Teknik Elektro yang telah ikut membantu dan mendukung
saya dalam menyelesaikan tugas akhir ini
14) Semua pihak yang tidak dapat disebutkan satu per satu atas semua dukungan yang
telah diberikan dalam penyelesaian tugas akhir ini.
Penulis menyadari bahwa dalam penulisan tugas akhir ini masih banyak kekurangan,
kelemahan dan jauh dari sempurna. Oleh sebab itu, dengan segala kerendahan hati,
penulis mengharapkan kritik dan saran yang membangun untuk penyempurnaan tugas
akhir ini. Dan semoga tugas akhir ini dapat bermanfaat sebagai mana mestinya.
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
BAB I PENDAHULUAN
1.1. Latar Belakang ............................................................................................. 1
1.2. Tujuan dan Manfaat ..................................................................................... 2
1.3. Batasan Masalah .......................................................................................... 2
1.4. Metodologi Penelitian ................................................................................. 3
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
xix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I
PENDAHULUAN
1.1. Latar Belakang
Di era globalisasi saat ini, pengguna kendaraan pribadi khususnya mobil banyak
mengalami peningkatan. Seiring bertambahnya jumlah kendaraan pribadi sekarang ini
membuat kebutuhan lahan sebagai sarana parkir semakin meningkat, peningkatan jumlah
kendaraan yang akan menggunakan lahan parkir kadang tidak diimbangi dengan ketersedian
lahan parkir terutama pada sistem parkir di dalam gedung. Dengan banyaknya kendaraan
yang parkir di dalam gedung membuat sering terjadinya masalah kemacetan dalam pencarian
lokasi parkir dan kurangnya informasi ketersediaan lokasi parkir yang masih tersedia
Dalam tugas akhir ini penulis membuat sistem yang memudahkan penggunanya untuk
melakukan parkir kendaraan. Dengan cara memberikan informasi melalui penampil pada
tiket masuk pengunjung yang akan menunjukkan letak lahan parkir kosong terdekat, yang
nantinya dalam tugas akhir ini akan ditampilkan menggunakan aplikasi Visual Basic,
sehingga pengguna jasa parkir dapat memprediksikan dimana akan parkir sesuai informasi
yang telah didapat melalui tiket masuk yang diterima.
Sistem penampil untuk mendeteksi ketersediaan tempat parkir mobil yang masih
kosong ini sebelumnya pernah dilakukan, metode yang digunakan untuk dapat mendeteksi
keberadaan tempat parkir menggunakan SMS (short message service) [1]. Pada Penulisan ini,
penulis membuat Aplikasi Penampil Menggunakan Visual Basic untuk Optimasi
Ketersediaan Tempat Parkir Mobil. Dengan menggunakan sensor LDR (Light Dependent
Resistor) sebagai sensor pendeteksi kendaraan dan aplikasi visual basic sebagai penampil
untuk pendeteksi ketersediaan tempat parkir. Mikrokontoler ATmega32 beperan sebagai
kontroler untuk sistem penampil pendeteksi tempat parkir mobil.
Prinsip kerja sistem ini adalah input berupa mobil yang masuk ke dalam gedung
parkir. Tahap pertama proses pengambilan data terdeteksi menggunakan sensor LDR, lalu
data diproses pada mikrokontroler kemudian dikirim menggunakan komunikasi serial ke
visual basic yang akan menjalankan perintah untuk menampilkan jumlah ketersediaan dan
lahan parkir mobil terdekat yang masih tersedia.
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II
DASAR TEORI
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
konvensional, pemasangan LDR dalam suatu rangkaian sama persis seperti pemasangan
resistor biasa. Simbol LDR dapat dilihat pada gambar 2.2 berikut.[3]
= . + (2.1)
Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega32. Hampir semua instruksi
dieksekusi dalam satu siklus clock dan mempunyai 32 register general-purpose,
timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal, serial UART,
programmable Watchdog Timer, dan power saving mode. AVR juga mempunyai ADC,
PWM internal dan In-System Programmable Flash on-chip yang mengijinkan memori
program untuk diprogram ulang [4].
10
2.3.3.1.Memori Program
Kode program disimpan dalam flash memory, yaitu memori jenis non-volatile yang
tidak akan hilang datanya meskipun catu daya dimatikan [5]. Dalam ATmega32 terdapat
32Kbyte On-Chip di dalam sistem Memory Flash Reprogrammable untuk penyimpanan
program. Untuk keamanan perangkat lunak, flash memori dibagi menjadi dua bagian, yaitu
boot program dan bagian aplikasi program [4].
2.3.3.2.Memori Data
Memori data adalah memori RAM (Random Access Memory) yang digunakan untuk
keperluan program. Memori data terdiri dari 32 General Purpose Register (GPR) yang
merupakan register khusus yang bertugas untuk membantu eksekusi program oleh Arithmetic
Logic Unit (ALU) dan I/O register dan additional I/O register yang difungsikan khusus
untuk mengendalikan berbagai peripheral dalam mikrokontroler antara lain pin, port,
timer/counter, USART. ATmega32 memiliki kapasitas memori data sebesar 608 Byte yang
terbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM [6].
11
2.3.4.1.Inisialisasi USART
Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART
dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi
USART. Register-register yang digunakan untuk komunikasi USART antara lain:
1. USART I/O Data Register (UDR)
UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama,
yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau
tempat data diterima (RXB) sebelum data tersebut dibaca.
12
d) FE (Frame Error)
Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika stop bit
pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan bernilai 0 ketika
stop bit data yang diterima berlogika nol.
e) DOR (Data OverRun)
Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag akan
bernilai satu ketika terjadi tumpang tindih data.
f) PE (Parity Error)
Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini berfungsi jika ada
kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila bit
paritas digunakan.
g) U2X (Double the USART Transmission Speed)
Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya
berlaku untuk modus asinkron, untuk mode sinkron bit ini diset nol.
h) MPCM (Multi Processor Communication Mode)
Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang diterima oleh
USART tidak mengandung informasi alamat akan diabaikan.
2. USART CONTROL AND STATUS REGISTER B (UCSRB)
13
Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin diaktifkan
maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan
sebagai saluran penerima USART.
e) TXEN (Transmitter Enable)
Bit ini berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin diaktifkan
maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan
sebagai saluran pengirim USART.
f) UCSZ2 (Character Size)
Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk
memilih tipe lebar data bit yang digunakan.
10 7
11 8
100-110 Tidak dipergunakan
111 9
14
2.4. Komparator
Komparator adalah suatu rangkaian pembanding dimana dapat mendeteksi suatu
sinyal pada level tegangan tertentu, atau bukan nol. Hal ini dapat dilakukan dengan
memberikan tegangan refrensi (Vref) pada salah satu terminal masukan. Ada beberapa cara
untuk mendapatkan tegangan refrensi. Contohnya yaitu dapat dilihat pada gambar 2.21 yaitu
dengan pembagi tegangan dan gambar 2.19 dengan menggunakan dioda zener [10].
Sesuai dengan karakteristik op-amp sebagai komparator, jika[10] :
15
16
Tabel 2.3 menunjukkan spesifikasi IC regulator seri 78xx denga keluaran dan masukan
minimum dan maksimum.
VIN (Volt)
Type VOUT (Volt)
Min Maks
7805 5 7,3 20
7806 6 8,3 21
7808 8 10,5 23
7810 10 12,5 25
7812 12 14,6 27
7815 15 17,7 30
7818 18 21 33
7824 24 27,1 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Nilai komponen c1 dan c2 difungsikan sebagai filter capasitor yang bertujuan untuk
menghilangkan tegangan ripple agar tegangan keluaran menjadi lebih stabil. Untuk
mendapatkan nilai capasitor yang sesuai, dapat mengacu pada persamaan 2.1 dan 2.2 [12].
2.4 2.4
= 4 = = (2.2)
3 .
( )
= 100% (2.3)
2.6. Algoritma
18
19
Keterangan :
s=titik awal
t=tujuan
G=Graph
U=PL
T=TL
20
Contoh penerapan algoritma Dijkstra ke suatu graf seperti pada gambar berikut ini:
Jawab :
1. L1=0, ~L2=8, ~L3=5, ~L4=7 PL={1}, TL={2.3.4}
2. L3=min {~L2,~L3,~L4}=5, k=3 PL={1,3}, TL={2,4}
3. ~L2=min {8, L3+l32}=min {8, 5+1}=6
~L4=min {7, L3+l34}=min {7, }=7
2. L2= min {~L2,~L4}=6, k=2 PL={1,2,3}, TL={4}
3. ~L4=min {7, L2+l24}= min {7, 6+2}=7
2. L4= 7, k=4 PL={1,2,3,4}, TL={ }
Sehingga lintasan terpendek yang dihasilkan masing-masing :
L2=6, L3=5, L4=7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III
PERANCANGAN PENELITIAN
Dalam bab III ini akan dibahas mengenai perancangan perangkat keras dan
perancangan perangkat lunak. Pembahasan meliputi :
Sistem parkir mobil dirancang untuk mendeteksi tempat parkir yang terdekat dari
pintu masuk kendaraan dan juga mendeteksi jumlah pakir yang tersedia disetiap blok nya.
Proses awal sistem dimulai dari client atau mobil yang akan masuk ke area parkir mobil
yang akan mengambil tiket masuk kendaraan melalui PC dengan menekan tombol perintah
cek kondisi pada aplikasi Visual Basic, setelah itu perintah tersebut akan dikirim ke
mikrokontroler melalui USB to TTL converter setelah perintah diterima maka
mikrokontroler mendeteksi sensor untuk mendeteksi keberadaan letak parkir yang masih
21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
kosong dan tersedia setelah karakter dari sensor diolah dan dideteksi oleh mikrokontroler
maka karakter dikirim kembali ke PC melalui USB to TTL converter untuk ditampilkan
pada GUI Visual Basic, sehingga client dapat menerima informasi mengenai informasi
letak parkir yang terdekat dan tersedia. Seperti ditunjukan pada gambar 3.1 yang
merupakan diagram blok sistem.
Pada perancangan mekanik dari sistem parkir, antara lain mendesain prototype
sistem parkir, perancangan design tempat parkir, penggunaan dasar untuk pembuatan
prototype yaitu akrilik setebal 3mm. Dan dimensi prototype menggunakan ukuran sebesar
70cm x 35cm. Desain prototype ini menggunakan Software Corel Draw.
Keterangan Gambar:
23
Perancangan design parkir mobil ini dapat menampung sejumlah 20 buah mobil
yang dibagi dalam 5 blok antara lain, blok PA PB PC PD dan blok PE, dimana setiap blok
parkir dapat menampung 4 buah kendaraan atau terdapat 4 row . Jarak tiap slot parkir
adalah 0.3cm. Pada gambar 3.3 diatas dapat terlihat juga jalur yang akan dilewati oleh
mobil supaya bisa dilakukan optimasi.
24
25
Pada gambar 3.6 terdapat resistor yang memiliki resistansi sebesar 4,7 K yang
difungsikan sebagai pull-up. Resistor pull-up eksternal dapat digunakan untuk menjaga
agar pin RESET tidak berlogika 0 secara tidak disengaja. Kapasitor 10nF digunakan untuk
menghilangkan noise yang disusun seri dengan resistor. Rangkaian reset minimum system
ATmega32 merupakan gabungan dari rangkaian push-button dan low-pass filter
Gambar 3.6. Rangkaian Minimum System ATmega32 dan Regulator Tegangan 7805
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Sensor LDR digunakan untuk mendeteksi ketersediaan parkir mobil yang diletakan
pada bagian permukaan disetiap blok parkir. Cara kerjanya yaitu jika sensor LDR terhalang
oleh mobil, maka lampu led yang terdapat pada komparator akan menyala yang berarti
bahwa tempat parkir tersebut telah terisi, namun jika sensor tidak terhalang maka lampu
led pada komparator akan mati maka tempat parkir tersebut masih kosong. Pada bagian
sensor LDR ini menggunakan rangkaian pembagi tegangan untuk mengetahui nilai Vout,
dan dari nilai Vout itu digunakan untuk mengetahui kondisi high/low pada saat sensor
menerima cahaya atau tidak menerima cahaya. dan dapat diketahui dengan persamaan
pembagi tegangan berikut:
= . + (3.1)
Resistor yang akan digunakan adalah sebesar 10K, saat sensor LDR ditutup atau
berada ditempat gelap maka besar nilai R pada LDR adalah sebesar 10M maka didapat
Vout sebesar:
10000
= 5. 10000 +10=4.995 x 10-3 Volt
Dari hasil vout bisa diketahui bahwa pada saat tegangan keluaran sebesar 5 x 10-7
Volt maka kondisi sensor adalah low atau mati. Tetapi pada saat sensor dibuka atau
menerima cahaya, besar nilar R pada LDR sebesar 150 maka didapat Vout sebesar:
10000
= 5. 10000 +150=4.92 Volt
Dari hasil vout bisa diketahui bahwa pada saat tegangan keluaran sebesar 2 volt
maka kondisi sensor adalah high atau menyala dan rangkaian Sensor LDR dengan pembagi
tegangan ditunjukan pada Gambar 3.7.
27
3.3.3. Komparator
28
Algoritma ini digunakan untuk melakukan pencarian jalur terpendek dari satu titik
awal ke titik tujuan, titik awal berupa pintu masuk kendaraan dan titik akhir adalah tempat
parkir mobil yang terdeteksi kosong atau masih tersedia.
Penerapan algoritma dijkstra dalam sistem parkir ini dilakukan dengan penerapan
ke dalam bentuk graf seperti yang tertera pada gambar 3.9. Merupakan letak blok parkir
yang diimplementasikan ke dalam bentuk graf dimana titik awalnya adalah X dimana X
adalah pintu masuk kendaraan dan A,B,C,D, dan E merupakan letak dari blok parkir pada
sistem parkir. Dari gambar graf ini dapat dicari lintasan terpendek dengan algoritma
dijkstra dibawah ini:
29
30
Gambar 3.10. Diagram Alir Pengendalian Sistem Ketersediaan Parkir Mobil pada
Mikrokontroler
31
akan kembali keawal untuk proses inisialisasi, setelah itu adalah pengecekan 20 sensor
pada setiap row pada blok parkir proses dilakukan dengan proses subrutin pada setiap blok
PA sampai dengan blok PE, setelah pengecekan adalah pengiriman paket data yang akan
dijelaskan melalui format paket data pada 3.4.2 setelah pengiriman paket data adalah
proses pengambilan keputusan tentang adanya while(i) atau tidak, jika tidak maka proses
selesai, tetapi jika ya maka proses akan kembali ke proses adanya data yang masuk atau
tidak, kondisi while(i) ini adalah pengulangan pada mikrokontroler saat ada atau tidak data
M yang masuk tadi, atau ada tidaknya client yang akan mengecek kondisi tempat parkir.
Diagram alir pengendalian ketersedian parkir mobil pada mikrokontroler dapat dilihat pada
gambar 3.10.
32
33
34
Format paket data yang akan dikirimkan sejumlah 20 karakter, 20 karakter tersebut
merupakan data fix semua sensor yang akan diolah pada mikrokontroler yaitu sebanyak 20
buah sensor. Paket data tersebut digunakan untuk mendeteksi sensor yang terdeteksi
maupun tidak yang nantinya dari master akan dikirim menuju slave untuk mengetahui
posisi tempat parkir yang terdeteksi masih kosong dan lokasi yang terdekat yang nantinya
akan diolah oleh slave dengan optimasi, simbol perintah tersebut diawali dengan karakter
* dan diakhiri dengan karakter #. Format data tersebut adalah data yang akan dikirim
oleh master, berikut format data yang akan dikirim pada paket data disesuaikan dengan
lokasi sensor yang terdapat pada setiap blok parkir:
*PA1PA2PA3PA4PB1PB2PB3PB4PC1PC2PC3PC4PD1PD2PD3PD4PE1PE2PE3PE4#
Dari format paket data tersebut bisa dijelaskan pada tabel 3.1. sebagai berikut:
Format H P P P P P P P P P P P P P P P P P P P P E
Sensor A A A A B B B B C C C C D D D D E E E E
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Contoh Data * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 #
Contoh Paket
Data *00000000000000011111#
Keterangan :
0=Tidak Terisi
1=Terisi
Berdasarkan contoh data yang dijelaskan pada tabel 3.1. ditunjukkan data memiliki
format data dengan jumlah karakter yang telah disepakati oleh sistem, data lokasi sensor
berupa nama blok daro setiap tempat parkir yaitu dari blok P.A1 sampai dengan P.E4 yaitu
sejumlah 20 tempat blok parkir sehingga sensor membutuhkan sebanyak 20 buah. Data
yang dikirimkan adalah 0 dan 1, dimana 0 menunjukkan kondisi saat blok parkir belum
terisi oleh mobil, dan 1 menunjukkan kondisi saat blok parkir sudah terisi oleh mobil.
Karakter yang dikirim sejumlah 20 karakter, setiap sensor mengirimkan 1 buah karakter.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Gambar 3.16 menunjukkan diagram alir pada penampil Visual Basic. Pada proses
ini, penampil digunakan sebagai simulasi karcis parkir yang diterima oleh pengguna jasa
parkir yang akan masuk ke area parkir. Awal nya adalah proses user saat menekan tombol
cetak yang terdapat pada perintah Visual Basic, jika user menekan tombol perintah cetak
maka VB akan mengirim karakter y secara serial menuju mikrokontroler, dan proses
menunjukkan bahwa sistem menggunakan komunikasi dua arah, namun jika tidak maka
proses akan kembali ke awal. Setelah pengiriman karakter maka selanjutnya adalah
pengambilan keputusan, apakah VB menerima info data sensor yang telah terdeteksi yang
diolah pada mikrokontroler, jika tidak maka bisa disebabkan oleh info yang diterima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
mikro bekum selesai diolah sehingga user tidak menerima informasi yang didapat,
sehingga user harus menunggu beberapa saat kemudian menekan kembali tombol cetak ,
namun jika ya maka proses selanjutnya adalah proses sub program optimasi dengan
algotirma dijkstra untuk pencarian jalur terpendek yang akan dilalui oleh mobil, setelah itu
proses yang terakhir hasil data dari optimasiakan tampil pada penampil berupa informasi
jalur yang akan dilewati mobil.
37
menunjukkan diagram alir subrutin optimasi hasil data, proses diawali dengan melakukan
inisialisasi titik awal yaitu dalam sistem titik awal merupakan pintu masuk kendaraan dan
inisialiasi jarak pada setiap blok parkir setelah inisialisasi adalah proses pemberian tabel
sementara untuk jarak pada setiap blok parkir, selanjutnya adalah penentuan jarak
minimum dari lokasi parkir yang terdeteksi kosong dimana jarak minimum atau vertex
yang minimum merupakan bagian dari penetapan tabel sementara yang telah ditentukan
diproses sebelumnya, selanjutanya adalah proses pengambilan keputusan apakah vertex
yang terdeteksi minimum tadi adalah titik dari tujuan yang diinginkan atau tidak, Jika ya
maka lintasan terpendeknya ditemukan dan proses selesai, jika tidak maka proses akan
kembali untuk mencari jarak minimum dari lokasi parkir yang terdeteksi kosong sampai
menemukan kondisi dimana vertex yang terdeteksi minimum merupakan tujuan akhir yang
dituju.
38
39
BAB IV
40
Gambar 4.3. Denah Parkir Mobil Gambar 4.4. Prototype Parkir Mobil
Mekanisme kerja sistem prototype parkir mobil adalah interface pada aplikasi Visual
Basic akan memberikan informasi kepada client letak parkir yang kosong dan terdekat
dengan pintu masuk secara otomatis sesuai dengan perintah yang telah di program, dan saat
client menekan tombol cetak pada Visual Basic maka tiket akan tercetak secara otomatis
melaui perangkat keras yaitu printer. Proses yang terjadi ketika catu daya regulator pada
posisi ON yaitu sistem akan bekerja pada saat client akan masuk menuju tempat parkir,
saat akan masuk kedalam lokasi parkir client harus menekan tombol cek parkir pada
penampil Visual Basic, saat client menekan tombol cek parkir, maka mikrokontroler
ATmega32 akan mengirimkan karakter M secara serial melalui komunikasi serial USART.
Kemudian laptop akan menerima karakter tersebut berupa kondisi dari sensor LDR dan
kondisi yang didapat dari mikrokontroler ATmega32 diolah oleh PC melalui Visual Basic
untuk memperoleh informasi letak blok parkir yang masih kosong dan terdekat.Proses
selanjutnya yaitu Visual Basic akan menampilkan informasi berupa tampilan kepada client
berupa denah lokasi parkir, dan informasi blok parkir yang ditujukkan untuk client yanng
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
akan masuk kedalam lokasi parkir. Setelah Visual Basic menampilkan informasi denah parkir
dan informasi blok, tiket yang diterima client akan secara otomatis tercetak melalui perangkat
keras printer. Proses akan berulang kembali saat ada mobil yang akan masuk kedalam lokasi
parkir, ketika parkir penuh maka akan muncul pesan bahwa parkir sudah penuh.
42
A 1 0 1.26 0.79
2 0 1.16 0.56
D 1 0 3.24 2.64
2 0 1.21 0.63
3 0 2.67 2.33
4 0 2.60 1.92
3 0 1.03 0.57
Tabel 4.1. menunjukkan nilai tegangan pada output sensor LDR pada saat ada
mobil dan tidak ada mobil, dan tegangan referensi pada potensio di komparator. Nilai
tegangan keluaran pada sensor yang didapat pada saat keadaan ada mobil rata-rata lebih kecil
dibandingan dengan tegangan keluaran pada saat keadaan tidak ada mobil hal itu sesuai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
dengan teori yang terdapat pada persamaan 3.1. yang menunjukkan bahwa nilai Vout saat ada
mobil lebih kecil dibandingkan dengan saat tidak ada mobil. Nilai tegangan referensi yang
didapat saat pengukuran juga sudah sesuai, nilai tegangan referensi adalah nilai tegangan
pembanding yang stabil, op-amp yang terdapat pada komparator mempunya 2 input,
pengukuran vref dilakukan pada potensio sebagai inputan sinyal, sehingga nilai yang
dihasilkan rata-rata adalah nilai tengah dari tegangan keluaran sensor LDR yang telah diukur.
44
Pengujian sensor LDR dan Komparator diluar ruangan ditunjukan pada tabel 4.2.
pengujian dari data yang didapatkan sama dengan pengujian saat didalam ruangan antara lain
nilai tegangan LDR saat ada dan tidak ada mobil, tegangan referensi saat ada dan tidak ada
mobil. Nilai-nilai yang didapatkan berbeda dengan percobaan sebelumnya, nilai tegangan
LDR rata-rata lebih besar dibandingkan dengan pengujian didalam ruangan hal itu
disebabkan cahaya yang diterima lebih banyak sehingga resistansi LDR dalam menerima
cahaya pada keadaan terang juga akan besar nilai keluarannya.
Pengujian sensor LDR untuk memperoleh nilai VLDR dilakukan dengan mengukur
kaki yang terdapat pada sensor LDR dan saat pengukuran diberi tegangan masukkan sebesar
5Volt. Kondisi saat ada mobil berarti bahwa adanya mobil yang terdapat pada blok parkir
sehingga sensor terhalang oleh mobil, sedangkan kondisi saat tidak ada mobil berarti bahwa
tidak ada mobil yang terdapat pada blok parkir sehingga sensor tidak terhalang oleh mobil.
Sedangkan pengujian Vref dilakukan dengan mengukur kaki pin 1, 7, 9 dan 14 atau pin
output pada komparator LM324 dan saat pengukuran diberi tegangan masukkan sebesar
5Volt.
45
Pengujian form monitor komunikasi serial dimaksudkan untuk menguji apakah paket data
(frame) yang dikirim dari mikrokontoler ATmega32 sudah sesuai, dan pengecekkan
menggunakan serial monitor dengan aplikasi Visual Basic.
1 *00000#
2 *08000#
3 * 0 0 12 0 0 #
4 *00050#
5 *00006#
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
* 12 7 14 15
13 #
* 15 15 15 15
15 #
8
Tabel 4.2.menunjukkan data form serial monitor, data yang diambilsebanyak 8 kali
percobaan, serial monitor digunakan untuk mengetahui paket data yang dikirim melalui
komunikasi serial dari mikrokontroler ATmega32 menuju ke Visual Basic telah terkirim
sesuai dengan keadaan yang terjadi. Dari ke-8 percobaan yang dilakukan semua data yang
termonitor sudah benar.
Paket data yang digunakan diubah dari bilangan biner menuju ke desimal oleh
mikrokontroler ATmega32 supaya pengirimannya lebih cepat. Contoh paket data yang
dikirim saat paket data bernilai * 0 0 0 0 0 # menunjukkan data yang diterima oleh serial
monitor menunjukkan tidak terdeteksinya sensor LDR karena data yang diterima semua
bernilai 0, paket data yang diolah dikirim dalam 1 frame. 1 frame dibagi menjadi 5 karakter
dalam bilangan desimal yang menunjukkan blok parkir A sampai dengan E. Tabel 4.3.
menunjukkan sistem paket data akan dikirim oleh mikrokontroler ATmega32 pada saat
keadaan blok parkir semua kosong atau belum terisi oleh mobil di setiap blok nya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
H A A A A B B B B C C C C D D D D E E E E E
Parkir
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Keadaan
parkir * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #
(dalam biner)
Paket Data
yang diterima
* #
(dalam 0 0 0 0 0
desimal)
c
Gambar 4.7.Form Utama GUI Visual Basic Keadaan
Gambar 4.7. menunjukkan form utama pada GUI Visual Basickeadaan 1 dimana saat
client akan masuk kedalam gedung parkir masih ada ketersedian tempat parkir, sehingga akan
muncul pesan pada menu text Silahkan Tekan Tombol Cek Parkir dan pada form juga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
terdapat menu command button sebagai tombol yang harus ditekan oleh client untuk
memperoleh informasi ketersediaan tempat parkir.
Gambar 4.8.menunjukkan form utama pada GUI Visual Basic kedaan 2, yaitu keadaan
pada saat client yang akan masuk kedalam gedung parkir tetapi sudah tidak ada parkir yang
tersedia maka akan mucul pesan pada menu text Maaf Parkir Penuh. Sehingga client yang
akan masuk kedalam gedung parkir tidak dapat masuk dan mengecek keadaan parkir didalan
menu tombol cek parkir.
Dari pengujian yang dilakukan pada dua keadaan tersebut dapat dikatakan bahwa
form menu utama pada GUI Visual Basic dapat dikatakan benar dan sudah bekerja sesuai
dengan keadaan yang terdapat pada prototype atau keadaan real.
49
Tabel 4.5. Percobaan Form Denah Parkir Mobil dan Sistem Optimasi
Percobaan
ke- Keadaan Gambar denah Visual Basic
Blok
Status*
parkir
P.A Kosong
1 P.B Kosong
P.C Kosong
P.D Kosong
P.E Kosong
P.A Penuh
P.B Isi
P.C Isi
2
P.D Isi
P.E Isi
P.A Penuh
P.B Penuh
3 P.C Isi
P.D Isi
P.E Isi
P.A Penuh
P.B Penuh
P.C Isi
4 P.D Isi
P.E Penuh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Tabel 4.5. (Lanjutan) Percobaan Form Denah Parkir Mobil dan Sistem Optimasi
P.A Penuh
P.B Penuh
P.C Penuh
5 P.D Isi
P.E Penuh
Keterangan * :
Kosong = Tidak ada kendaraan yang parkir
Isi = Ada beberapa kendaraan yang parkir
Penuh = Semua blok parkir sudah terisi oleh mobil
Tabel 4.4.merupakan tabel percobaan form denah parkir dan sistem optimasi,
percobaan dilakukan sebanyak lima kali. Berdasarkan perancangan denah parkir untuk
penelitian ini denah parkir yang terdapat di prototype diimplementasikan kedalam sebuah
graf, dan untuk mendapat jalur terpendek dicari dengan menggunakan algoritma dijkstra.
Titik awal merupakan pintu masuk gedung parkir, titik tujuan dibagi menjadi 5 yaitu blok
parkir P.A, P.B, P.C, P.D dan P.E. nilai vertek dari titik awal atau pintu masuk menuju blok
P.A adalah 3, menuju blok P.B adalah 3, menuju blok P.C adalah 7, menuju blok P.D adalah
9, dan vertek menuju blok P.E adalah 5. Setelah dicari jalur terpendek menggunakan
algortima dijkstra, maka lintasan terpendek yang dihasilkan masing-masing blok adalah
LP.A=3, LP.B=3, LP.C=7,LP.D=9,LP.E=5, yang artinya bahwa panjang lintasan yang terukur dari
titik awal menuju blok P.A bernilai 3, menuju blok P.B bernilai 3, menuju blok P.C bernilai
7, menuju blok P.D bernilai 9, menuju blok P.E bernilai 5.
Dari hasil lintasan yang didapat melalui algoritma maka,Blok P.A dan P.B merupakan
lintasan yang terpendek jika dibandingkan ketiga blok lainnya karena nilainya paling kecil,
setelah blok P.A dan P.B selanjutnya adalah blok P.E dengan nilai lintasan 5, P.C dengan
nilai lintasan 7, dan nilai lintasan yang paling jauh adalah blok P.D dengan nilai lintasan 9.
Sistem optimasi dalam sistem parkir ini, Visual Basic sebagai aplikasi penampil sesuai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
dengan program yang telah dibuat dengan algoritma, akan mengutamakan client yang akan
masuk dan mencari lokasi parkir didalam gedung untuk menempati lokasi parkir dari lintasan
yang terpendek dengan nilai terkecil yaitu blok P.A dan P.Bsampai yang paling jauh yaitu
blok P.D. Di setiap percobaan yang telah dilakukan pada percobaan pertama lokasi parkir
kondisinya kosong atau tidak ada mobil yang terdeteksi memarkirkan kendarannya, maka
pada saat client akan masuk kedalam gedung pakir sistem dengan otomatis menunjuk client
untuk parkir di blok P.A karena P.A adalah titik tujuan dengan lintasan terpendek yang
diukur dari titik awal (pintu masuk). Pada percobaan ke-2 kondisinya berbeda dengan
percobaan yang pertama, yaitu blok P.A sudah penuh terisi oleh kendaraan tetapi blok
lainnya kondisinya terisi atau hanya ada beberapa kendaraan yang parkir maka sistem akan
menunjuk client untuk parkir di blok P.B karena P.B adalah titik tujuan lainnya dengan
lintasan terpendek, dalam graf yang telah dibuat nilai P.A dan P.B bernilai sama tetapi, dalam
sistem ini blok P.A lah yang diutamakan dari P.B. Percobaan selanjutnya kondisi blok P.A
dan P.B terisi penuh dan sisa blok lainnya masih terisi kendaraan sebagian dengan kondisi ini
maka sistem akan menunjuk client untuk menuju blok P.E karena P.E merupakan titik tujuan
yang nilai nya lebih jika dibandingkan dengan blok P.C dan P.D, blok P.A dan P.B sudah
tidak dideteksi karena statusnya sudah penuh atau terisi oleh kendaraan, sehingga sistem
harus mencari lintasan terpendek yang lainnya. Pada percobaan ke-4 blok P.A, P.B, dan P.E
kondisinya penuh dan blok lainnya masih ada beberapa blok yang kosong, saat kondisi ini
sistem akan menunjuk client untuk menuju ke blok P.C dan menunjuk ke alamat blok dari
nilai yang kecil antara blok P.C1 sampai dengan P.C4. Percobaan yang terakhir adalah
kondisi saat blok P.A, P.B, P.C, dan P.E sudah terisi penuh maka sistem akan menunjuk
client untuk parkir di blok P.D karena P.D adalah lintasan dengan nilai yang terbesar atau
terjauh. Sehingga saat blok yang lainnya sudah terisi penuh maka sistem akan menunjuk P.E
sebagai blok dengan lintasan terbesar atau terpanjang. Dari kelima percobaan dapat dikatakan
berhasil dan sistem optimasi yang ditampilkan melalui aplikasi Visual Basic sudah bekerja
sesuai dengan algoritma yang diterapkan.
52
gedung parkir.Pengujian dilakukan sebanyak 15 kali dengan kondisi yang berbeda dapat
dilihat pada tabel 4.5.
Visual Basic
* 00000 #
Prototype
Print Out
Tiket
* 15 15 15 4 15 # Visual Basic
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Prototype
Print Out
Tiket
Visual Basic
* 15 15 13 10 7 #
Prototype
Print Out
Tiket
* 15 5 5 10 4 # Visual Basic
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Prototype
Print Out
Tiket
Visual Basic
* 15 11 9 8 5 #
Prototype
Print Out
Tiket
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Visual Basic
* 15 15 10 5 3 #
Prototype
Print Out
Tiket
* 15 15 8 5 15 # Visual Basic
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Prototype
Print Out
Tiket
Visual Basic
* 6 13 3 5 11 #
Prototype
Print Out
Tiket
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Visual Basic
* 15 15 15 9 15 #
Prototype
Print Out
Tiket
Visual Basic
* 15 15 10 9 15 #
Prototype
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Print Out
Tiket
Visual Basic
* 15 15 10 0 4 #
Prototype
Print Out
Tiket
* 15 5 10 11 7 # Visual Basic
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Prototype
Print Out
Tiket
Visual Basic
* 1 13 10 11 13 #
Prototype
Print Out
Tiket
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Visual Basic
* 3 3 15 3 15 #
Prototype
Print Out
Tiket
Visual Basic
* 15 15 15 15 15 #
Prototype
Print Out
-
Tiket
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Dari pengujian yang telah dilakukan dapat dikatakan berhasil pengendalian sensor
LDR dapat bekerja untuk mendeteksi kendaraan yang masuk yang kemudian diolah oleh
mikrokontroler ATmega32 untuk dikirim melalui komunikasi serial menuju Visual Basic, di
Visual Basic optimasisasi data juga dapat bekerja dengan baik untuk mencari tempat parkir
yang kosong dan terdekat. Printer untuk mencetak tiket juga dapat bekerja dengan baik
sehingga client yang akan masuk dapat menerima struk tiket yang telah tercetak oleh sistem.
#include <mega32a.h>
#include <stdio.h>
#include <stdlib.h>
#define P_A (~PINC.0*1+~PINC.1*2+~PINC.2*4+~PINC.3*8)
#define P_B (~PINC.4*1+~PINC.5*2+~PINC.6*4+~PINC.7*8)
#define P_C (~PINA.0*1+~PINA.1*2+~PINA.2*4+~PINA.3*8)
#define P_D (~PINB.0*1+~PINB.1*2+~PINB.2*4+~PINB.3*8)
#define P_E (~PINB.4*1+~PINB.5*2+~PINB.6*4+~PINB.7*8)
62
sudah mengetahuinya. Dan perlu diketahui juga bahwa mikrokontroler hanya mengetahui
angka, alamat, dan port sehingga perintah yang akan diberikan harus didefinisikan lebih
dahulu menggunakan instruksi #define.
Paket data sensor LDR yang dikirim oleh mikrokontroler diolah dari biner menuju
bilangan desimal supaya pengirimannya lebih cepat.Inputan sensor yang terdapat didalam
instruksi #define diolah kedalam bentuk biner.
63
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x06;
UBRRH=0x00;
UBRRL=0x47;
while (1)
{
cek=getchar(); // terima data dari serial
if(cek=='M') // apakah data di terima sama dengan M?
{
cek_parkir(); // panggil fungsi cek keadaan parkir
printf("* %d %d %d %d %d #\n",parkirA, parkirB, parkirC, parkirD, parkirE); //
kirim keadaan parkir melalui serial
}
}
}
Pada bagian listing program diatas digunakan untuk pengiriman paket data melalui
komunikasi serial
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Subrutin yang terdapat didalam while(1) akan dieksekusi secara terus menerus
hingga power OFF. Hal ini dikarenakan didalam kurung while diberi angka 1 yang
berarti bernilai true atau akan dieksekusi secara terus menerus.
65
Tampilan GUI pada Visual Basic dibagi menjadi dua form dalam satu project. Pada
form yang pertama tampian berisi tampilan awal saat client akan masuk menuju lokasi
gedung parkir, tampilan pada form pertama yang akan muncul pada Visual Basic. Tampilan
form terdapat beberapa control pada toolbox yaitu text dan menu command button menu text
berisi ucapan selamat datang yang berisi tulisan Selamat Datang selain itu juga berisi pesan
tentang status ketersediaan tempat parkir jika masih terdapat tempat parkir maka pesan pada
text adalah Silahkan tekan tombol cek parkir namun jika sudah tidak parkir yang tersedia
atau parkir penuh maka pesan yang akan muncul pada menu text berupa Maaf Parkir Sedang
Penuh.
Selain menu toolbox text terdapat toolbox menu command button, menu tersebut
digunakan dalam aplikasi sebagai tombol tekan client untuk mengecek keadaan parkir yang
akan ditampilkan pada sebuah denah parkir gedung yang akan ditunjukkan pada form kedua
dan form kedua dapat dilihat pada gambar 4.10. pada form kedua ini terdapat berbagai macam
toolbox seperti shape, line, yang digunakan untuk menggambarkan denah parkir gedung.
Selain itu juga terdapat toolbox text yang berisi pesan yang ditujukkan untuk client pesan
tersebut berisi informasi blok parkir yang akan dituju oleh client dan pesan tersebut akan
tercetak melalui perangkat keras printer, sehingga client sangat dimudahkan dengan tampilan
GUI Visual Basic
66
ini tidak akan dapat berkomunikasi satu sama lainnya. Program inisialisasi adalah sebagai
berikut:
Function mencari_parkir()
If parkir(0) < 15 Then
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Call garis
For i = 0 To 3
If PA(i) = False Then
Form1.PA(i).FillColor = &HC000&
Form1.Text1.Text = "Silahkan Parkir Di:" & vbNewLine & "P.A" & i + 1
GoTo tampil1
End If
Next i
Setelah blok A yang dieksekusi, maka selanjutnya adalah blok B sebagai blok yang
memiliki jalur terpendek yang sama dengan A, kondisi If pada program akan berubah
menjadi If parkir(1) < 15 And parkir(0) = 15 Then yaitu jika variabel parkir(1) atau blok
B kurang dari 15 atau menunjukkan adanya kondisi yang kosong dan parkir(0) atau blok A
kurang dari 15 maka call garis. Syntax yang digunakan untuk mengubah warna shape dan
pesan yang terdapat pada menu text juga berubah disesuaikan dengan blok parkir yang akan
dieksekusi selanjutnya.
Setelah blok A dan blok B blok selanjutnya yang mempunyai jalur terpendek adalah
blok E, sehingga pada kondisi If pada program berubah menjadi If parkir(4) < 15 And
parkir(0) = 15 And parkir(1) = 15 Then dimana parkir(4) merupakan variabel dari blok E
dan syntax yang digunakan untuk mengubah warna shape dan pesan yang terdapat pada menu
text juga berubah disesuaikan dengan blok parkir yang akan dieksekusi selanjutnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
Setelah blok A, blok B dan Blok E blok selanjutnya yang mempunyai jalur terpendek
adalah blok C, sehingga pada kondisi If pada program berubah menjadi If parkir(2) < 15
And parkir(0) = 15 And parkir(1) = 15 And parkir(4) = 15 Then, dimana parkir(2)
merupakan variabel dari blok C dan syntax yang digunakan untuk mengubah warna shape
dan pesan yang terdapat pada menu text juga berubah disesuaikan dengan blok parkir yang
akan dieksekusi selanjutnya.
If parkir(3) < 15 And parkir(0) = 15 And parkir(1) = 15 And parkir(4) = 15 And parkir(2) =
15 Then
Call garis
For i = 0 To 3
If PD(i) = False Then
Form1.PD(i).FillColor = &HC000&
Form1.Text1.Text = "Silahkan Parkir Di:" & vbNewLine & "P.D" & i + 1
Setelah blok A, blok B, Blok E dan Blok C, blok selanjutnya yang mempunyai jalur
terpendek yang terakhir atau nilai yang paling kecil adalah blok D, sehingga pada kondisi If
pada program berubah menjadi If parkir(3) < 15 And parkir(0) = 15 And parkir(1) = 15 And
parkir(4) = 15 And parkir(2) = 15 Then, dimana parkir(3) merupakan variabel dari blok D
dan syntax yang digunakan untuk mengubah warna shape dan pesan yang terdapat pada menu
text juga berubah disesuaikan dengan blok parkir yang akan dieksekusi selanjutnya.
69
Y. Printer.FontSize = 10 adalah untuk ukuran tulisan yang akan tercetak. Tulisan yang akan
tercetak pada kertas dilakukan dengan perintah Printer.Print. Tiket yang tercetak berisi
ucapan Selamat Datang dan pesan informasi yang dituju untuk client yang berisi alamat
blok parkir yang akan masih kosong dan terdekat yang terdapat pada form1 Visual Basic di
menu toolbox text. Printer.Endcoc merupakan perintah untuk minta diakhiri untuk dicetak
sehingga sistem tidak berulang terus untuk mencetak tiket.
Sub cetak()
Printer.Font = "Times New Roman"
Printer.CurrentX = 0
Printer.CurrentY = 0
Printer.FontSize = 10
Printer.Print Tab(4); " Selamat Datang "
Printer.Print Tab(2); "================"
Printer.Print Tab(2); Form1.Text1
Printer.EndDoc
End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V
5.1. Kesimpulan
Dari hasil pengujian serta pengambilan data pada aplikasi penampil visual basic untuk
optimasi ketersediaan tempat parkir mobil, dapat diambil kesimpulan:
1. Lokasi parkir yang telah terisi mobil dan lokasi yang belum terisi mobil dapat
terdeteksi oleh sensor dan dapat ditampilkan pada penampil Visual Basic di
komputer.
2. Metode optimasi dengan algoritma dijkstra untuk pencarian jalur terpendek
dapat berfungsi sesuai rancangan dan sesuai dengan teori. Sistem berhasil
mendeteksi jalur yang terdekat sesuai dengan kondisi mobil yang terdeteksi
oleh sensor cahaya.
3. Sistem parkir mobil ini mempunyai fasilitas untuk mencetak tiket berupa
informasi lokasi parkir yang dituju.
5.2. Saran
Saran-saran bagi pengembangan selanjutnya adalah:
1. Komunikasi antara mikrokontroler dan PC dikembangkan dengan sistem
wireless bluetooth sehingga sistem dapat menjadi lebih praktis dan efisien.
2. Karcis parkir yang diterima ditambahkan dengan waktu masuk parkir dan
nomor plat mobil yang dapat dideteksi dengan sensor kamera untuk
meningkatkan keamanan.
3. Menambahkan sistem kode batang (barcode) pada karcis untuk pembayaran
otomatis dengan mengakulasi waktu datang dengan waktu keluar sesuai
dengan biaya yang ditentukan sesuai kebijakan.
70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
[1] Ardiana, f., 2011, Sistem Ketersediaan Parkir Mobil Menggunakan SMS (Short
Message Service), Institut Bisnis dan Informatika STIKOM Surabaya.
[3] ---, 2012, Bab III Dasar Teori LDR, STIKOM, Surabaya.
[5] Bejo, A., 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler
ATMEGA32, 1st ed, GRAHA ILMU, Yogyakarta.
[7] Heryanto M.A., ST., Ir. Wisni Adi P., 2008, Pemrograman Bahasa C untuk
Mikrokontroler ATMEGA32, 1st ed, C.V ANDI OFFSET, Yogyakarta.
[8] Adrianto, H., 2008, Pemrograman Mikrokontroler AVR ATMEGA 16, 1st ed,
INFORMATIKA, Bandung.
[9] Sumbodo, W., 2008, Jilid 3, Teknik Produksi Mesin Industri, Direktorat Pembinaan
Sekolah Menengah Kejuruan, Dirjen Manajemen Pendidikan Dasar dan Menengah,
Hak Cipta Depdiknas.
[10] Zuhal, dan Zhanggischan, 2004, Prinsip Dasar Elektroteknik, PT Gramedia Pustaka
Utama, Jakarta.
[12] Honeycutt, R.A., 1988, Op Amps and Linear Integrated Circuits, Delmar Publishers
Inc., New York.
[13] Fathoni, 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element Transistor
NPN dan PNP, Politeknik Negeri Malang.
71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
[14] Suarga,M.Sc.,M.Math.,Ph.D., 2012, Algoritma dan Pemrograman, 2nd ed, C.V ANDI
OFFSET, Yogyakarta.
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
Rangkaian Regulator
L2
Rangkaian Komparator
L3
L4
L5
Listing Program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
#include <mega32a.h>
#include <stdio.h>
#include <stdlib.h>
#define P_A (~PINC.0*1+~PINC.1*2+~PINC.2*4+~PINC.3*8)
#define P_B (~PINC.4*1+~PINC.5*2+~PINC.6*4+~PINC.7*8)
#define P_C (~PINA.0*1+~PINA.1*2+~PINA.2*4+~PINA.3*8)
#define P_D (~PINB.0*1+~PINB.1*2+~PINB.2*4+~PINB.3*8)
#define P_E (~PINB.4*1+~PINB.5*2+~PINB.6*4+~PINB.7*8)
void cek_parkir()
{
parkirA=P_A;
parkirB=P_B;
parkirC=P_C;
parkirD=P_D;
parkirE=P_E;
}
void main(void)
{
DDRA=0x00; PORTA=0xFF;
DDRB=0x00; PORTB=0xFF;
DDRC=0x00; PORTC=0xFF;
DDRD.0=0; PORTD.0=1;
DDRD.1=1; PORTD.1=1;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x06;
UBRRH=0x00;
UBRRL=0x47;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
while (1)
{
cek=getchar(); // terima data dari serial
if(cek=='M') // apakah data di terima sama dengan M?
{
cek_parkir(); // panggil fungsi cek keadaan parkir
printf("* %d %d %d %d %d #\n",parkirA, parkirB, parkirC, parkirD, parkirE); //
kirim keadaan parkir melalui serial
}
}
}
Sub cetak()
Printer.Font = "Times New Roman"
Printer.CurrentX = 0
Printer.CurrentY = 0
Printer.FontSize = 10
Printer.Print Tab(4); " Selamat Datang "
Printer.Print Tab(2); "================"
Printer.Print Tab(2); Form1.Text1
Printer.EndDoc
End Sub
Function parsing()
k=0
For i = 1 To Len(a)
If Mid(a, i, 1) = " " Then
spasi(k) = i
k=k+1
End If
Next i
parkir(0) = Val(Mid(a, spasi(0), spasi(1) - spasi(0))) 'pakir a
parkir(1) = Val(Mid(a, spasi(1), spasi(2) - spasi(1))) 'parkir b
parkir(2) = Val(Mid(a, spasi(2), spasi(3) - spasi(2))) 'parkir c
parkir(3) = Val(Mid(a, spasi(3), spasi(4) - spasi(3))) 'parkir d
parkir(4) = Val(Mid(a, spasi(4), spasi(5) - spasi(4))) 'parkir e
End Function
L8
j=x
biner = ""
For i = 0 To 3
If (j Mod 2) = 1 Then
Select Case k
Case 0
PA(i) = True
Form1.PA(i).FillColor = &H0&
Case 1
PB(i) = True
Form1.PB(i).FillColor = &H0&
Case 2
PC(i) = True
Form1.PC(i).FillColor = &H0&
Case 3
PD(i) = True
Form1.PD(i).FillColor = &H0&
Case 4
PE(i) = True
Form1.PE(i).FillColor = &H0&
End Select
Else:
Select Case k
Case 0
PA(i) = False
Form1.PA(i).FillColor = &HFFFFFF
Case 1
PB(i) = False
Form1.PB(i).FillColor = &HFFFFFF
Case 2
PC(i) = False
Form1.PC(i).FillColor = &HFFFFFF
Case 3
PD(i) = False
Form1.PD(i).FillColor = &HFFFFFF
Case 4
PE(i) = False
Form1.PE(i).FillColor = &HFFFFFF
End Select
End If
j=j\2
Next i
End Function
Function warna()
For k = 0 To 4
x = parkir(k)
Call konversi(x)
Next k
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
End Function
Function garis()
For i = 0 To 4
Form1.Line1(i).Visible = Flase
Next i
End Function
Function mencari_parkir()
If parkir(0) < 15 Then
Call garis
For i = 0 To 3
If PA(i) = False Then
Form1.PA(i).FillColor = &HC000&
Form1.Text1.Text = "Silahkan Parkir Di:" & vbNewLine & "P.A" & i + 1
GoTo tampil1
End If
Next i
tampil1:
cetak
Form1.Line1(0).Visible = True
End If
If parkir(1) < 15 And parkir(0) = 15 Then
Call garis
For i = 0 To 3
If PB(i) = False Then
Form1.PB(i).FillColor = &HC000&
Form1.Text1.Text = "Silahkan Parkir Di:" & vbNewLine & "P.B" & i + 1
GoTo tampil2
End If
Next i
tampil2:
cetak
Form1.Line1(1).Visible = True
End If
If parkir(4) < 15 And parkir(0) = 15 And parkir(1) = 15 Then
Call garis
For i = 0 To 3
If PE(i) = False Then
Form1.PE(i).FillColor = &HC000&
Form1.Text1.Text = "Silahkan Parkir Di:" & vbNewLine & "P.E" & i + 1
GoTo tampil3
End If
Next i
tampil3:
cetak
Form1.Line1(1).Visible = True
Form1.Line1(2).Visible = True
End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
L11
Form1.Visible = True
Call mencari_parkir
Timer1.Enabled = True
End If
End If
Loop Until INSTRING$ = Chr$(13)
End Sub
L12
LA = Val(Text6(0).Text)
LB = Val(Text7(2).Text)
LD = Val(Text12(6).Text)
LAB = Val(Text13(4).Text)
LAC = Val(Text8(3).Text)
LBE = Val(Text9(7).Text)
LED = Val(Text11(5).Text)
LDC = Val(Text10(1).Text)
panjang(0) = LA 'LA
panjang(1) = LB 'LB
panjang(2) = 99 'LC
panjang(3) = LD 'LD
panjang(4) = 99 'LE
panjangB(0) = 99 'LBC
panjangB(1) = 99 'LBD
panjangB(2) = LBE 'LBE
panjangE(0) = 99 'LEC
panjangE(1) = LED 'LED
'mencari minimal a
For i = 0 To 4
If panjang(i) < MinA Then
MinA = panjang(i)
Else
MinA = MinA
End If
Next i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
'mencari minimal b
For i = 1 To 4
If panjang(i) < MinB Then
MinB = panjang(i)
Else
MinB = MinB
End If
Next i
'mencari minimal e
For i = 2 To 4
If panjang(i) < MinC Then
MinC = panjang(i)
Else
MinC = MinC
End If
Next i
'cari min cd
For i = 0 To 1
If panjang(i + 2) < panjangE(i) + panjang(4) Then
Min = panjang(i + 2)
Else
Min = panjangE(i) + panjang(4)
End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
panjang(i + 2) = Min
Next i
'mencari min c
For i = 2 To 3
If panjang(i) < MinD Then
MinD = panjang(i)
Else
MinD = MinD
End If
Next i
'cari min d
If panjang(3) < panjangD(0) + panjang(2) Then
MinD = panjang(3)
Else
MinD = panjangD(0) + panjang(2)
End If
panjang(3) = MinD
If a = 1 Then
panjang(0) = 99
End If
Text1.Text = panjang(0)
Text2.Text = panjang(1)
Text3.Text = panjang(2)
Text4.Text = panjang(3)
Text5.Text = panjang(4)
End Sub