Perancangan Sistem Pembayaran Biaya Parkir Secara Otomatis Menggunakan RFID (Radio Frequency Indentification)

(1)

FREQUENCY IDENTIFICATION)

Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan Pendidikan Sarjana (S-1) pada Departemen Teknik Elektro

Oleh :

CHARLES P M SIAHAAN

NIM : 090422003

PROGRAM PENDIDIKAN SARJANA EKSTENSI

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

(3)

ABSTRAK

Proses pembayaran biaya parkir yang dilakukan dengan cara manual masih memiliki kelemahan. Permasalahan seperti kurang efisien dan kurang efektif merupakan contoh dari beberapa kelemahan yang ditimbulkan dari sistem parkir manual. Sistem perparkiran yang terstruktur dengan baik dan mampu menawarkan berbagai macam solusi dari permasalahan perparkiran yang ada merupakan sistem perparkiran yang sangat dibutuhkan saat ini.

RFID (Radio Frequency Identification) bisa menjadi jawaban untuk membangun sistem tersebut. Pada Tugas Akhir ini dilakukan sebuah perancangan sistem pembayaran biaya parkir secara otomatis menggunakan RFID. RFID merupakan teknologi pengidentifikasian suatu objek secara otomatis (Automatic Identification System). Proses perpindahan data pada RFID dapat terjadi tanpa harus bersentuhan (contactless) antar piranti. RFID terdiri dari 2 komponen utama yaitu tag dan reader.

RFID reader berfungsi untuk mendeteksi atau membaca data yang ada pada RFID tag. RFID tag akan dibaca oleh RFID reader ketika kendaraan hendak masuk maupun keluar dari tempat parkir. Data (berupa nomor ID) yang terbaca oleh RFID reader dari RFID tag akan diolah secara langsung oleh software aplikasi yang terinstalasi pada komputer. RFID dapat memudahkan penyebaran informasi menjadi lebih aman, cepat dan akurat

Kata Kunci : Sistem otomatis, RFID (Radio Frequency Identification), Visual Basic 6.0


(4)

KATA PENGANTAR

Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Pengasih atas limpahan kasih dan anugerah-Nya yang memberikan pengetahuan, kesabaran dan kesehatan kepada penulis sehingga penulis dapat menyelesaikan Tugas Akhir ini. Tugas Akhir ini berjudul “PERANCANGAN SISTEM PEMBAYARAN BIAYA PARKIR SECARA OTOMATIS MENGGUNAKAN RFID (RADIO

FREQUENCY IDENTIFICATION)”. Tujuan penulisan Tugas Akhir ini adalah

untuk memenuhi persyaratan dalam menyelesaikan Program Pendidikan Sarjana Jurusan Teknik Elektro, Universitas Sumatera Utara.

Tugas Akhir ini penulis persembahkan kepada orangtua tercinta. Terima kasih untuk ayah dan ibu yang selalu memberikan dukungan, semangat dan doa. Kiranya Tuhan memberikan rahmat-Nya untuk ayah dan ibu. Penulis juga mengucapkan terima kasih kepada abang (Chandra), adik (Chorry, Chartina dan Chrisna) untuk dukungan dan doanya.

Selama masa perkuliahan sampai masa penyelesaian Tugas Akhir ini, penulis banyak memperoleh bimbingan dan dukungan dari berbagai pihak. Pada kesempatan ini, dengan setulus hati penulis ucapkan terima kasih yang sebesar-sebarnya kepada:

1. Bapak Ir. Surya Tarmizi Kasim, M.Si, selaku Ketua Departemen Teknik Elektro FT-USU.

2. Bapak Rahmat Fauzi ST, MT, selaku Sekretaris Departemen Teknik Elektro FT-USU dan sekaligus sebagai dosen wali penulis.


(5)

3. Bapak Fakhruddin Rizal B, ST.MTI, selaku dosen pembimbing Tugas Akhir penulis.

4. Seluruh dosen pengajar dan staf pegawai Departemen Teknik Elektro FT-USU.

5. Teman seperjuangan di Departemen Teknik Elektro FT-USU, yaitu Mangasi, Anris, Monica, Emil, Dedi, Jefri, Terhulin, Hermanto, Giat, Sony, Ornal, Adi, Junaidi, Wilfrid dan juga teman-teman yang tidak dapat penulis sebutkan satu-persatu. Terima kasih untuk kebersamaan, dukungan, bantuan dan doanya.

Penulis menyadari bahwa Tugas Akhir ini masih jauh dari sempurna. Penulis sangat mengharapkan masukan yang membangun demi penyempurnaan Tugas Akhir ini. Akhir kata, penulis berharap Tugas Akhir ini dapat bermanfaat bagi siapapun yang membacanya. Terima kasih. Tuhan memberkati.

Medan, Maret 2014 Penulis,

CHARLES P M SIAHAAN NIM. 090422003


(6)

DAFTAR ISI

ABSTRAK ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Tujuan Penulisan ... 3

1.4 Batasan Masalah ... 3

1.5 Metode Penulisan ... 3

1.6 Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 6

2.1 RFID (Radio Frequency Identification) ... 6

2.1.1 RFID Tag ... 7

2.1.2 RFID Reader ... 10

2.2 Mikrokontroler ATMega8535 ... 11


(7)

2.4 Motor Servo ... 15

2.5 Komunikasi Serial ... 16

2.5.1 Port Komunikasi Serial ... 17

2.5.2 Penghubung Mikrokontroler dengan Port Serial ... 18

2.6 Microsoft Visual Basic 6.0 ... 19

BAB III PERANCANGAN SISTEM ... 22

3.1 Proses Kerja Sistem Secara Umum ... 22

3.2 Diagram Blok Sistem ... 23

3.3 Perancangan Prototype Sistem ... 24

3.4 Perancangan Perangkat Keras ... 25

3.4.1 Perancangan Rangkaian Catu Daya ... 25

3.4.2 Perancangan Rangkaian Mikrokontroler ATMega8535 ... 28

3.4.3 Perancangan Rangkaian LCD (Liquid Crystal Display) ... 30

3.4.4 Perancangan Rangkaian Servo ... 31

3.4.5 Perancangan Rangkaian Tombol ... 32

3.4.6 Perancangan Rangkaian RFID Reader ... 33

3.4.7 Perancangan Rangkaian Driver Serial MAX232 ... 34

3.5 Perancangan Perangkat Lunak ... 35

3.5.1 Perancangan Diagram Alir Sistem ... 35

3.5.2 Perancangan Disain Tampilan Form dan Database ... 38


(8)

BAB IV PENGUJIAN SISTEM ... 41

4.1 Metode Pengujian ... 41

4.2 Pengujian Rangkaian RFID dan Rangkaian Driver Serial MAX232 ... 41

4.3 Pengujian Jarak Baca RFID Reader ... 43

4.4 Pengujian LCD (Liquid Crystal Display) ... 44

4.5 Pengujian Rangkaian Tombol ... 45

4.6 Pengujian Keseluruhan Sistem ... 46

BAB V KESIMPULAN DAN SARAN ... 51

5.1 Kesimpulan ... 51

5.2 Saran ... 51

DAFTAR PUSTAKA ……….... 52

LAMPIRAN

A. GAMBAR RANGKAIAN KESELURUHAN SISTEM B. PROGRAM KESELURUHAN SISTEM

C. DATASHEET KOMPONEN


(9)

DAFTAR GAMBAR

Gambar 2.1 Sistem Minimum RFID ... 7

Gambar 2.2 RFID Tag ... 8

Gambar 2.3 RFID Reader ... 10

Gambar 2.4 Mikrokontroler ATMega8535 ... 12

Gambar 2.5 Konfigurasi Pin Mikrokontroler ATMega8535 ... 13

Gambar 2.6 Bentuk LCD 16x2 ... 14

Gambar 2.7 Bentuk Motor Servo ... 16

Gambar 2.8 Port DB9 ... 17

Gambar 2.9 IC MAX232 ... 19

Gambar 2.10 Tampilan Utama Visual Basic 6.0 ... 19

Gambar 3.1 Disain Prototype Sistem ... 23

Gambar 3.2 Diagram Blok Rangkaian ... 25

Gambar 3.3 Rangkaian Catu Daya ... 27

Gambar 3.4 Rangkaian Mikrokontroler ATMega8535 ... 30

Gambar 3.5 Skematik Rangkaian LCD ... 31

Gambar 3.6 Skematik Rangkaian Servo ... 32

Gambar 3.7 Rangkaian Tombol ... 33

Gambar 3.8 Rangkaian RFID Reader ... 33

Gambar 3.9 Skematik Rangkaian Driver Serial MAX232 ... 35

Gambar 3.10 Diagram Alir Sistem ... 37

Gambar 3.11 Disain Tampilan Form ... 38

Gambar 3.12 Perancangan Sistem Database ... 39


(10)

Gambar 4.1 (a) Rangkaian RFID dan (b) Rangkaian Driver Serial MAX232 ... 42

Gambar 4.2 Tampilan Hyperterminal ... 42

Gambar 4.3 Pengujian Rangkaian RFID Reader ... 44

Gambar 4.4 Pengujian Rangkaian LCD ... 45

Gambar 4.5 Pengujian Rangkaian Tombol Manual ... 46

Gambar 4.6 Sistem Keseluruhan ... 46

Gambar 4.7 Identifikasi ID ... 47

Gambar 4.8 Palang Masuk Terbuka ... 48

Gambar 4.9 Identifikasi ID ... 48

Gambar 4.10 Palang Keluar Terbuka ... 49

Gambar 4.11 Laporan Harian Database ... 49


(11)

DAFTAR TABEL


(12)

ABSTRAK

Proses pembayaran biaya parkir yang dilakukan dengan cara manual masih memiliki kelemahan. Permasalahan seperti kurang efisien dan kurang efektif merupakan contoh dari beberapa kelemahan yang ditimbulkan dari sistem parkir manual. Sistem perparkiran yang terstruktur dengan baik dan mampu menawarkan berbagai macam solusi dari permasalahan perparkiran yang ada merupakan sistem perparkiran yang sangat dibutuhkan saat ini.

RFID (Radio Frequency Identification) bisa menjadi jawaban untuk membangun sistem tersebut. Pada Tugas Akhir ini dilakukan sebuah perancangan sistem pembayaran biaya parkir secara otomatis menggunakan RFID. RFID merupakan teknologi pengidentifikasian suatu objek secara otomatis (Automatic Identification System). Proses perpindahan data pada RFID dapat terjadi tanpa harus bersentuhan (contactless) antar piranti. RFID terdiri dari 2 komponen utama yaitu tag dan reader.

RFID reader berfungsi untuk mendeteksi atau membaca data yang ada pada RFID tag. RFID tag akan dibaca oleh RFID reader ketika kendaraan hendak masuk maupun keluar dari tempat parkir. Data (berupa nomor ID) yang terbaca oleh RFID reader dari RFID tag akan diolah secara langsung oleh software aplikasi yang terinstalasi pada komputer. RFID dapat memudahkan penyebaran informasi menjadi lebih aman, cepat dan akurat

Kata Kunci : Sistem otomatis, RFID (Radio Frequency Identification), Visual Basic 6.0


(13)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Sistem pengaturan perparkiran merupakan komponen penting dan tidak dapat dipisahkan dalam pelayanan sebuah fasilitas umum. Keberadaan sistem parkir yang baik akan mendukung fasilitas umum yang digunakan oleh banyak pihak. Sistem parkir yang baik mencerminkan kebaikan sistem yang lebih luas dalam fasilitas umum tersebut. Keamanan, kemudahan dan kenyamanan adalah faktor yang diharapkan oleh pengguna fasilitas umum.

Sistem yang digunakan oleh pengelola layanan parkir yang berlaku saat ini umumnya masih bersifat manual. Kelemahan yang dihadapi di dalam sistem parkir yang bersifat manual adalah pengolahan semua transaksi yang terjadi di dalam perparkiran dilakukan oleh manusia. Pihak pengelola parkir mencatat nomor polisi kendaraan di karcis ketika akan masuk kemudian memberikan karcis kepada pengguna layanan parkir sebagai bukti parkir kendaraan.

Pembayaran biaya parkir juga dilakukan dengan cara manual. Hal ini tentu kurang efisien dalam pelaksanaannya. Kurang transparannya perhitungan biaya parkir serta kemungkinan munculnya kecurangan penghitungan pendapatan yang diperoleh juga merupakan kelemahan yang dijumpai pada sistem parkir yang masih bersifat manual.


(14)

Berdasarkan permasalahan tersebut, maka penulis akan merancang suatu sistem otomatis yang mampu mengatasi kelemahan dari sistem parkir manual. Sistem yang dirancang ini akan menggunakan RFID (Radio Frequency Identification). RFID merupakan teknologi pengidentifikasian suatu objek secara otomatis (Automatic Identification System).

RFID bekerja melalui frekuensi radio atau yang lebih dikenal dengan RF (Radio Frequency). Hal ini menjadikan proses perpindahan data pada RFID dapat terjadi tanpa harus bersentuhan (contactless) antar piranti. RFID dapat memudahkan penyebaran informasi menjadi lebih aman, cepat dan akurat.Sistem ini diharapkan dapat membantu mengurangi kelemahan sistem parkir yang masih manual.

1.2 Rumusan Masalah

Mengacu pada penjelasan latar belakang di atas, maka dapat dirumuskan permasalahan Tugas Akhir ini adalah merancang suatu sistem yang dapat membantu proses pembayaran biaya parkir secara otomatis. Ini dimaksudkan untuk membantu pengguna layanan parkir agar tidak membutuhkan banyak waktu antrian selama proses pembayaran. Sistem ini juga memudahkan pihak pengelola parkir untuk mendapatkan data yang lebih aman, cepat dan akurat.


(15)

1.3 Tujuan Penulisan

Tujuan penulisan Tugas Akhir ini yaitu merancang sistem pembayaran biaya parkir secara otomatis dengan memanfaatkan teknologi RFID (Radio Frequency Identification). Perancangan sistem ini diharapkan dapat mengurangi kelemahan-kelemahan pada sistem pembayaran biaya parkir yang masih bersifat manual.

1.4 Batasan Masalah

Batasan masalah pada tugas akhir ini antara lain:

1. Tidak membahas tentang antena maupun proses perpindahan data lebih lanjut pada RFID.

2. Pembahasan perancangan sistem ini berlaku bagi pengguna layanan yang telah terdaftar dan yang akan mendaftar menjadi anggota.

3. Tugas Akhir ini tidak membahas bentuk, luas tempat parkir serta jumlah kendaraan yang dapat ditampung di tempat parkir.

4. Penyusunan Tugas Akhir ini hanya pada perancangan suatu sistem pembayaran biaya parkir yang bekerja secara otomatis dengan menggunakan RFID.

1.5 Metode Penulisan

Metode penulisan yang digunakan dalam penulisan Tugas Akhir ini adalah:


(16)

1. Perancangan Sistem

Tahap ini akan dilakukan perancangan sistem baik perancangan setiap subsistem maupun perancangan sistem secara keseluruhan.

2. Pembuatan Sistem

Tahap ini akan dilakukan pengerjaan pembuatan sistem secara keseluruhan baik pengerjaan perangkat keras maupun perangkat lunak. 3. Pengujian Sistem

Tahap ini akan dilakukan pengujian terhadap sistem yang telah selesai dibuat baik terhadap perangkat keras maupun perangkat lunak.

1.6 Sistematika Penulisan

Tugas Akhir ini disusun berdasarkan sistematika penulisan sebagai berikut:

BAB I : PENDAHULUAN

Bab ini merupakan pendahuluan yang berisi tentang pembahasan latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, metode penulisan dan sistematika penulisan.

BAB II : LANDASAN TEORI

Bab ini berisi teori-teori tentang RFID (Radio Frequency Identification), mikrokontroler ATMega8535, LCD (Liquid


(17)

Crystal Display), motor servo, komunikasi serial dan Microsoft Visual Basic 6.0

BAB III : PERANCANGAN SISTEM

Bab ini membahas tentang perancangan dan pembuatan perangkat keras maupun perangkat lunak yang digunakan dalam pembuatan sistem ini.

BAB IV : PENGUJIAN SISTEM

Bab ini membahas tentang pengujian dari sistem yang telah diracang.

BAB V : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil perancangan sistem. Bab ini juga berisi saran yang mungkin bisa menjadi masukan dalam pengembangan perancangan lebih lanjut.


(18)

BAB II

LANDASAN TEORI

Perancangan sistem pembayaran biaya parkir secara otomatis ini tentunya tidak terlepas dari penggunaan perangkat keras dan juga perangkat lunak. Perangkat keras maupun perangkat lunak ini tentunya memiliki metode operasi dan penggunaan yang berbeda-beda. Pemahaman terhadap konsep dasar dari penggunaan teknologi yang akan digunakan pada sistem ini merupakan hal yang sangat penting. Bab ini akan membahas tentang konsep dasar dari teknologi yang digunakan sebagai landasan perancangan sistem ini.

2.1 RFID (Radio Frequency Identification)

RFID (Radio Frequency Identification) merupakan suatu metode identifikasi yang bekerja secara otomatis (automatic identification system). RFID bekerja melalui frekuensi radio atau yang lebih dikenal dengan RF (Radio Frequency). Proses perpindahan data pada RFID dapat terjadi tanpa harus bersentuhan (contactless) antara piranti yang memuat data yaitu RFID tag dengan pembacanya yaitu RFID reader. RFID dapat berfungsi diberbagai macam kondisi lingkungan yang berbeda dan memberikan tingkat integritas yang tinggi.

Pada saat ini perhatian terhadap RFID (Radio Frequency Identification) dalam lingkungan organisasi maupun instansi semakin meningkat. RFID


(19)

digunakan sebagai suatu alat untuk mengontrol secara otomatis suatu rantai kegiatan. Hal ini berguna untuk meningkatkan kinerja organisasi maupun instansi tersebut. Keuntungan menggunakan RFID ini dapat dicapai dengan menjadikannya sebagai teknologi murah, efektif serta dapat digunakan diberbagai bidang.

Sistem minimum RFID terdiri dari dua komponen utama yaitu tag dan reader seperti yang ditunjukkan pada Gambar 2.1. RFID tag berfungsi sebagai transponder (transmitter + responder). RFID reader biasanya terhubung dengan sebuah host komputer atau perangkat lainnya yang memiliki kecerdasan untuk memproses lebih lanjut data yang ada dalam tag.

Gambar 2.1 Sistem Minimum RFID

2.1.1 RFID Tag

RFID tag adalah sebuah benda yang bisa dipasang atau dimasukkan di dalam sebuah produk, hewan atau bahkan manusia. Gambar 2.2 menunjukkan bentuk dari RFID tag. Pemasangan tag ini bertujuan untuk melakukan identifikasi dengan menggunakan gelombang radio.


(20)

Gambar 2.2 RFID Tag

RFID tag terdiri atas silicon microprocessor, metal coil dan encapsulating material. Silicon Microprocessor merupakan sebuah chip yang terletak di dalam sebuah tag. Chip ini berisi data berupa informasi yang disimpan secara elektronik. Metal Coil merupakan sebuah komponen yang terbuat dari kawat aluminium. Metal Coil ini berfungsi sebagai antena. Encapsulating Material merupakan bahan yang membungkus tag.

RFID tag dapat dibaca hingga beberapa meter selama tag tersebut masih bisa terjangkau oleh reader. Tag tersedia dengan kemampuan penyimpanan dari 512 byte sampai 64 KB (Kilo Bytes). Hal ini sangat tergantung dari vendor dan jenis tag. Berdasarkan kebutuhan sumber tegangan, RFID tag dibagi menjadi tiga, yaitu:

1. RFID tag aktif

RFID tag aktif memiliki sumber tegangan sendiri yaitu berupa baterai. Daya yang dibutuhkan oleh tag sangat kecil sehingga umur baterai bisa mencapai beberapa tahun lamanya. RFID tag aktif memiliki keandalan dan keakuratan yang lebih baik ketika memancarkan sinyalnya ke reader. RFID tag aktif memiliki sinyal lebih kuat sehingga pemakaiannya dapat digunakan di lingkungan yang sulit terjangkau seperti


(21)

di bawah air. Kelebihan lain dari RFID tag aktif adalah jarak jangkau pembacaan data yang cukup jauh, bisa sampai 10 meter.

Memori yang dimilikinya juga lebih besar sehingga bisa menampung informasi yang lebih besar. Kelemahan dari RFID tag aktif adalah ukuran akan menjadi besar karena terdapat baterai tambahan. Tag ini memiliki biaya produksi yang lebih mahal untuk dibuat. Hal ini menyebabkan harga tag ini jauh lebih mahal. Kelemahan lainnya adalah masa aktif dari tag ini bergantung pada masa aktif baterai.

2. RFID tag pasif

RFID tag pasif tidak memiliki sumber tegangan sendiri. Sumber tegangan diperoleh dari adanya energi RF (Radio Frequency) yang ditransfer dari reader ke tag. Energi RF akan diubah menjadi tegangan DC yang menjadi sumber tegangan untuk mengaktifkan elemen-elemen yang ada di dalam tag. RFID tag pasif memiliki jarak perpindahan data yang relatif pendek.

RFID tag pasif lebih kecil dan lebih mudah untuk diproduksi sehingga harganya cenderung lebih murah. Kelemahan dari tag ini adalah jarak jangkauan antara reader dengan tag untuk membaca data yang terdapat di dalam tag antara 8 cm – 12 cm saja. RFID tagpasif merupakan jenis tag yang digunakan dalam penyelesaian Tugas Akhir ini.

3. RFID tag semi-pasif

RFID tag semi-pasif memiliki sumber tegangan sendiri yaitu berupa baterai tetapi tag ini tidak dapat memancarkan sinyal sampai reader mentransmisikan sinyal terlebih dahulu. Energi baterai digunakan


(22)

sebagai sumber energi untuk memenuhi pengiriman sinyal balasan terhadap reader.

2.1.2 RFID Reader

RFID reader merupakan komponen pengidentifikasi pada sistem RFID. Reader pada dasarnya adalah frekuensi radio pemancar dan penerima yang dikendalikan oleh prosesor sinyal digital. RFID reader ini terdiri dari transceiver dan antena. RFID reader, dengan menggunakan antena, melakukan pengiriman sinyal kepada RFID tag (transponder) dan mengidentifikasi sinyal yang dikirim kembali oleh tag.

Salah satu jenis RFID reader adalah tipe ID-12 seperti yang ditunjukkan pada Gambar 2.3. RFID reader ini merupakan jenis reader yang digunakan dalam penyelesaian Tugas Akhir ini. RFID tipe ID-12 ini bekerja pada frekuensi 125KHz-134KHz. RFID tipe ini memiliki jarak perpindahan data hanya beberapa sentimeter saja. Hal ini disebabkan karena RFID tipe ID-12 ini bekerja pada alokasi frekuensi yang rendah.


(23)

RFID reader hadir dalam berbagai ukuran dan menawarkan kemampuan yang berbeda. Reader bisa ditempelkan dalam posisi stasioner (misalnya, di samping ban berjalan maupun di pintu). RFID reader juga bisa digunakan pada perangkat yang bersifat portable (diintegrasikan ke dalam komputer mobile) atau bahkan tertanam dalam peralatan elektronik. Frekuensi yang dialokasikan untuk RFID dibagi menjadi 4 kelompok, yaitu:

1. LF (Low Frequency), bekerja pada frekuensi 125 KHz-134 KHz. 2. HF (High Frequency), bekerja pada frekuensi 13,56 MHz.

3. UHF (Ultra High Frequency), bekerja pada frekuensi 868 MHz-956 MHz. 4. Microwave, bekerja pada frekuensi 2,45 GHz.

2.2 Mikrokontroler ATMega8535

Mikrokontroler dapat dianalogikan dengan sebuah sistem komputer yang dikemas di dalam sebuah chip. Mikrokontroler merupakan sebuah IC (Integrated Circuit) yang di dalamnya terdapat kebutuhan minimal agar dapat bekerja. Mikroprosesor, ROM (Read Only Memory), RAM (Random Access Momory), I/O (Input/Output) dan clock merupakan komponen yang dimiliki oleh mikrokontroler seperti yang dimiliki oleh komputer.

Mikrokontroler ATMega8535, seperti pada Gambar 2.4, merupakan salah satu mikrokontroler jenis AVR (Alf and Vegard’s Risc processor) yang dikeluarkan oleh Atmel. Mikrokontroler jenis AVR mengusung teknologi RISC


(24)

(Reduced Instruction Set Computing). Berikut fasilitas yang dimiliki oleh Mikrokontroler ATMega8535:

1. USART (Universal Synchronous and Asynchronous Receiver and Transmitter).

2. TWI (Two-Wire serial Interface). 3. PWM (Pulse Width Modulation).

4. EEPROM (Electrically Erasable Programmable Read Only Memory). 5. Timer/Counter.

6. Interupsi.

7. Analog Comparator.

8. ADC (Analog to Digital Converter).

Gambar 2.4 Mikrokontroler ATMega8535

Kemampuan kecepatan eksekusi yang tinggi menjadi alasan bagi banyak orang untuk beralih dan lebih memilih menggunakan mikrokontroler jenis AVR (Alf and Vegard’s Risc processor). Konfigurasi pin mikrokontroler ATMega8535 dapat dilihat seperti pada Gambar 2.5. Konfigurasi pin tersebut dapat dijelaskan secara fungsional sebagai berikut:


(25)

1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya. 2. GND merupakan pin ground.

3. Port A (PA0…PA7) merupakan pin I/O (Input/Output) dua arah dan pin masukan ADC (Analog to Digital Converter).

4. Port B (PB0…PB7) merupakan pin I/O dua arah dan pin fungsi khusus yaitu Timer/Counter, Analog Comparator dan SPI (Serial Peripheral Interface).

5. Port C (PC0…PC7) merupakan pin I/O dua arah dan pin fungsi khusus yaitu TWI (Two-Wire serial Interface), Analog Comparator dan Timer Oscilator.

6. Port D (PD0…PD7) merupakan pin I/O dua arah dan pin fungsi khusus yaitu Analog Comparator, Internal Interuption dan komunikasi serial. 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.

9. AVCC merupakan pin masukan tegangan untuk ADC. 10.AREF merupakan pin masukan tegangan referensi ADC.


(26)

2.3 LCD (Liquid Crystal Display)

Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf maupun grafik. LCD (Liquid Crystal Display) adalah suatu jenis display elektronik. LCD merupakan media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal-alat elektronik seperti televisi, kalkulator dan layar komputer.

Salah satu jenis LCD (Liquid Crystal Display) yang sering dugunakan ialah LCD dot matrik dengan jumlah karakter 16x2. Gambar LCD seperti yang ditunjukkan pada Gambar 2.6. Karakteristik yang dimiliki LCD ini adalah sebagai berikut:

1. Terdiri dari 16 karakter dan 2 baris. 2. Mempunyai 192 karakter tersimpan. 3. Terdapat karakter generator terprogram. 4. Dapat dialamati dengan mode 4-bit dan 8-bit. 5. Dilengkapi dengan back light.


(27)

LCD sebagai salah satu jenis display elektronik bekerja dengan tidak menghasilkan cahaya. LCD memantulkan cahaya yang ada disekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. Spesifikasi kaki LCD 16x2 yaitu:

1. Pin 1 merupakan Ground. 2. Pin 2 merupakan VCC.

3. Pin 3 merupakan pengatur kontras.

4. Pin 4 merupakan RS (Register Select) instruction. 5. Pin 5 merupakan R/W (Read/Write) LCD register. 6. Pin 6 merupakan EN (Enable).

7. Pin 7-14 merupakan I/O (Input/Output) data. 8. Pin 15 merupakan VCC.

9. Pin 16 merupakan Ground.

2.4 Motor Servo

Motor servo merupakan alat untuk mengubah energi listrik menjadi energi mekanik. Magnit permanen pada motor servo dapat mengubah energi listrik ke dalam energi mekanik melalui interaksi dari dua medan magnit. Salah satu medan dihasilkan oleh magnit permanen dan yang satunya dihasilkan oleh arus yang mengalir dalam kumparan motor. Resultan dari dua medan magnit tersebut menghasilkan torsi yang membangkitkan putaran motor tersebut.

Saat motor berputar, arus pada kumparan motor menghasilkan torsi yang nilainya konstan. Motor servo seperti pada Gambar 2.7 adalah sebuah motor DC


(28)

yang dilengkapi rangkaian kendali dengan sistem umpan balik tertutup atau closed feedback. Sistem ini terintegrasi dalam motor tersebut. Posisi putaran sumbu (axis) dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo.

Motor servo disusun dari sebuah motor DC, gearbox, variable resistor/ potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas maksimum putaran sumbu motor servo. Sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang diberikan pada pin kontrol motor servo.

Gambar 2.7 Bentuk Motor Servo

Motor servo pada umumnya terbagi menjadi 2 jenis yaitu motor servo standard dan motor servo continous. Motor servo tipe standard hanya mampu berputar 180 derajat. Motor servo continous dapat berputar sampai 360 derajat. Pergerakan motor servo ke kanan atau ke kiri tergantung dari nilai delay yang diberikan.

2.5 Komunikasi Serial

Komunikasi serial merupakan salah satu metode komunikasi data dimana


(29)

tertentu. Komunikasi ini hanya membutuhkan satu jalur dan kabel yang sedikit dibandingkan dengan komunikasi paralel. Hal ini menjadikan proses pengiriman data pada komunikasi serial lebih lambat dibandingkan komunikasi paralel.

Komunikasi serial pada mikrokontroler ATMega8535 dapat digunakan sebagai komunikasi dengan komputer maupun perangkat lainnya. Komunikasi

serial memiliki dua jenis pengaturan yaitu shyncrhonous dan ashynchronous.

Kedua pengaturan komunikasi ini pada dasarnya adalah sama. Perbedaannya

hanya terletak pada sumber clock saja.

Komunikasi shyncrhonous hanya memiliki satu sumber clock yang

digunakan secara bersama-sama. Pada komunikasi ashynchronous,

masing-masing pheriperal memiliki sumber clock sendiri. Komunikasi ashynchronous

secara hardware membutuhkan 2 pin yaitu TXD dan RXD. Komunikasi

shyncrhonous membutuhkan 3 pin yaitu TXD, RXD dan XCK.

2.5.1 Port Komunikasi Serial

Komunikasi serial membutuhkan port sebagai saluran data. Port yang umum digunakan sebagai port serial adalah Port DB9, seperti pada Gambar 2.8.


(30)

Fungsi setiap pin pada PortDB9 adalah sebagai berikut:

1. Received Line Signal Detector, sinyal yang menyatakan bahwa modem telah menerima sinyal carrier valid dari modem lain.

2. Received Data, sinyal data dari modem ke PC. 3. Transmitted Data, sinyal data dari PC ke modem.

4. Data Terminal Ready, sinyal kendali dari PC ke modem untuk mengaktifkan modem.

5. Signal Ground, merupakan sinyal ground.

6. DCE Ready (Data Set Ready), sinyal kendali dari modem ke PC yang menyatakan bahwa modem siap mengirim atau menerima data.

7. Request To Send, sinyal kendali dari PC yang menandakan bahwa PC siap menerima data.

8. Clear To Send, sinyal kendali dari modem yang menandakan bahwa modem siap menerima data.

9. Ring Indicator, sinyal kendali ke PC.

2.5.2 Penghubung Mikrontroler dengan Port Serial

Komputer memiliki protokol komunikasi RS232 sedangkan mikrokontroler memiliki level tegangan TTL. Keduanya tidak bisa dihubungkan dengan begitu saja. Dibutuhkan sebuah konvertor untuk menghubungkan keduanya agar dapat berkomunikasi. IC MAX232 merupakan sebuah konvertor yang dapat berfungsi dua arah sekaligus, yaitu RS232 ke TTL dan TTL ke RS232. IC MAX232 tampak seperti pada Gambar 2.9.


(31)

Gambar 2.9 IC MAX232

2.6 Microsoft VisualBasic6.0

Visual Basic adalah salah satu bahasa pemrograman yang dikeluarkan oleh Microsoft yang menawarkan IDE (Integrated Development Environment) visual. Ini dapat digunakan untuk membuat program perangkat lunak berbasis sistem Microsoft Windows. Visual Basic memberikan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. Tampilan utama pada saat aplikasi Visual Basic dijalankan, seperti pada Gambar 2.10.


(32)

Berikut penjelasan tentang komponen-komponen pada Visual Basic:

1. Form

Jendela form merupakan daerah kerja utama dari pembuatan program atau tempat perancangan aplikasi. Pada daerah form inilah diletakkan atau digambarkan objek interaktif seperti misalnya tombol-tombol, gambar, teks, garis, tabel, combo, checkbox dan tools lainnya. Form tersebut akan menjadi latar belakang atau tempat objek dari program yang dijalankan. 2. Property Window

Jendela ini adalah jendela yang memiliki semua informasi tentang suatu objek yang terdapat pada Visual Basic. Properti ini merupakan suatu sifat dari objek. Sebuah objek dapat memiliki property warna, ukuran, posisi, lebar, jenis, tipe dan sifat yang lainnya dan setiap objek tersebut memiliki property yang berbeda-beda.

3. Toolbox

Toolbox adalah fasilitas yang berisi objek atau kontrol ketika merancang pada jendela form. Pada saat mengaktifkan Visual Basic jendela toolbox akan ditampilkan pada sebelah kiri layar.

4. Toolbar

Toolbar adalah salah satu bagian dari setiap jendela aplikasi yang dijalankan dengan sistem operasi Windows yang berisi tombol-tombol (icon) perintah.


(33)

5. Project Explorer

Jendela ini merupakan kumpulan dari sejumlah aplikasi yang sering disebut dengan project. Project itu sendiri memiliki banyak file seperti form, module, class dan yang lainnya.

6. Jendela Code

Salah satu jendela yang terpenting dalam Visual Basic adalah jendela code. Jendela ini berfungsi untuk menulis instruksi-instruksi program. Fungsi dari setiap objek dapat ditambahkan melalui fasilitas jendela code ini.


(34)

BAB III

PERANCANGAN SISTEM

3.1 Proses Kerja Sistem Secara Umum

Sistem pembayaran biaya parkir ini dirancang agar pengguna kendaraan tidak perlu lagi mengantri ketika mengambil kartu tanda masuk parkir. Pengguna juga tidak mengantri lama ketika membayar biaya parkir saat akan keluar tempat parkir. Pengguna kendaraan yang telah memiliki kartu cukup mendekatkan kartu (RFID tag) ke RFID reader ketika akan memasuki tempat parkir. Hal serupa juga dilakukan ketika akan membayar biaya parkir saat keluar dari tempat parkir.

RFID reader digunakan untuk mendeteksi ada tidaknya tag yang berada dalam jangkauan wilayah identifikasinya. RFID reader akan membaca informasi yang ada pada tag. Informasi yang didapat kemudian diolah pada sistem database yang berada pada PC (Personal Computer)/Laptop. Pengolahan informasi dari RFID reader ke database menggunakan perangkat lunak yaitu Visual Basic 6.0.

Sistem RFID (Radio Frequency Identification) secara otomatis akan berfungsi sebagai kartu tanda masuk ketika akan memasuki tempat parkir. Pada saat keluar dari tempat parkir, RFID secara otomatis akan melakukan proses pembayaran biaya parkir yang dikenakan. Sistem ini juga akan melakukan perhitungan terehadap jumlah kendaraan yang parkir serta menghitung pendapatan yang diperoleh setiap hari.


(35)

3.2 Diagram Blok Sistem

Diagram blok memiliki beberapa fungsi yaitu menjelaskan cara kerja suatu sistem secara sederhana, menganalisa cara kerja rangkaian, mempermudah memeriksa kesalahan suatu sistem yang dibangun. Diagram blok sistem yang dirancang ditunjukkan pada Gambar 3.1

Gambar 3.1 Diagram Blok Rangkaian

Fungsi masing-masing diagram blok tersebut adalah sebagai berikut:

1. RFID Tag

RFID tag berfungsi untuk menyimpan kode data sebagai pengganti identitas.

2. RFID Reader

RFID reader berfungsi untuk membaca kode data dari RFID tag. 3. PC (Personal Computer)/Laptop

PC/Laptop berfungsi untuk menyimpan data pada database. 4. Rangkaian RS232

Rangkaian ini berfungsi sebagai media komunikasi antara PC/Laptop dan mikrokontroler dengan menggunakan IC (Integrated Circuit) MAX232.


(36)

5. Rangkaian Sistem Minimum

Rangkaian ini berfungsi sebagai pengatur gerak servo dan menampilkan data yang diinginkan pada LCD.

6. LCD (Liquid Crystal Display)

LCD berfungsi sebagai media penampil data yang diinginkan. 7. Servo

Servo berfungsi sebagai penggerak palang pengaman bagi kendaraan yang akan masuk maupun keluar dari tempat parkir.

3.3 Perancangan Prototype Sistem

Perancangan prototype sistem pembayaran biaya parkir secara otomatis ini dapat dilihat seperti pada Gambar 3.2. Pengguna yang telah terdaftar memiliki kartu (RFID tag), sebelum masuk harus mendekatkan kartu ke RFID reader. Sistem database pada PC (Personal Computer)/Laptop akan mengolah data yang diterima oleh RFID reader dari kartu yang dikirimkan melalui perantara komunikasi serial ke PC.

Data yang telah ditampilkan di database kemudian dikirim ke mikrokontroler untuk menampilkan sisa saldo yang dimiliki pemilik kartu melalui LCD (Liquid Cristal Display). Mikrokontroler juga mengaktifkan servo untuk membuka palang masuk. Pengguna kartu yang akan meninggalkan tempat parkir juga melakukan hal yang sama seperti ketika akan memasuki tempat parkir.


(37)

Gambar 3.2 Disain Prototype Sistem

3.4 Perancangan Perangkat Keras

Perancangan perangkat keras pada sistem pembayaran biaya parkir secara otomatis ini meliputi perancangan rangkaian catu daya, perancangan rangkaian mikrokontroler ATMega8535, perancangan rangkaian LCD, perancangan rangkaian servo, perancangan rangkaian tombol, perancangan rangkaian RFID, perancangan rangkaian Driver Serial MAX232.

3.4.1 Perancangan Rangkaian Catu Daya

Rangkaian catu daya ini berfungsi sebagai sumber tegangan. Tegangan diberikan keseluruh rangkaian yang ada. Rangkaian yang harus dicatu antara lain RFID reader ID-12, rangkaian komunikasi serial, rangkaian sistem minimum,


(38)

LCD dan motor servo. Konsumsi arus yang dibutuhkan komponen tersebut diperhitungkan sebagai berikut:

 Rangkaian RFID reader tipe ID-12 membutuhkan konsumsi arus sebesar 30 mA (miliamper).

 Rangkaian komunikasi serial membutuhkan konsumsi arus sebesar 12 mA.  Rangkaian sistem minimum membutuhkan konsumsi arus sebesar 50 mA.  Rangkaian LCD dengan backlight merah membutuhkan konsumsi arus

sebesar 4 mA.

 Rangkaian motor servo (sebanyak 2 buah) membutuhkan konsumsi arus sebesar 300 mA.

Berdasarkan kebutuhan arus dari setiap rangkaian, maka jumlah konsumsi arus yang dibutuhkan dalam pembuatan sistem adalah sebesar 396 mA.

Rangkaian catu daya membutuhkan penstabil tegangan atau sering disebut dengan regulator tegangan. Regulator tegangan ini berfungsi sebagai pengatur tegangan agar tegangan yang keluar dari catu daya tetap stabil pada satu nilai. Ini dibutuhkan agar catu daya menghasilkan tegangan yang stabil sehingga seluruh rangkaian dapat bekerja dengan baik. Pada perancangan ini digunakan LM7805 sebagai regulator tegangan.

LM7805 merupakan regulator tegangan tetap yang dapat menghasilkan tegangan keluaran sebesar +5 volt. LM7805 memiliki 3 terminal, yaitu terminal Vin, GND, dan Vout. Regulator tegangan dapat memberikan arus sampai 1A sehingga kebutuhan arus dari setiap rangkaian yang digunakan dapat terpenuhi. Gambar rangkaian catu daya ditunjukkan pada Gambar 3.3


(39)

LM 7805 Trafo CT

220 Volt AC 12 Volt AC 1N4007 D1 D2 1N4007 C1 2200 uF C2 0.01 uF 330 Ohm LED1

Out (+ 5V DC)

CT R1

SW1

Gambar 3.3 Rangkaian Catu Daya

Trafo stepdown berfungsi untuk menurunkan tegangan dari 220 Volt AC menjadi 12 Volt AC. Dua buah dioda digunakan untuk menyearahkan tegangan 12 Volt AC menjadi 12 Volt DC. Kapasitor nonpolar 2200 uF berfungsi sebagai penapis (filter) dan penghilang riak (ripple). Nilai kapasitansi kapasitor sebagai aturan penggunaan yaitu 1% sampai dengan 10%. Pada sistem ini digunakan aturan 10% yaitu suatu aturan yang memperbolehkan riak tegangan Output DC sebesar 0,1 dari tegangan puncak tegangan Output DC tersebut.

Idealnya, dengan mengabaikan penurunan tegangan pada dioda, maka tegangan puncak pada sisi sekunder trafo akan sama dengan tegangan puncak sisi beban DC. Rumus secara matematika dapat dituliskan sebagai berikut:

VOut(puncak) = V2/sekunder (puncak)

Sedangkan tegangan puncak ke puncak adalah: Dari penurunan secara matematis diperoleh rumus:

Dimana: tegangan riak ke puncak frekuensi riak


(40)

Jika tegangan efektif pada sisi sekunder sebesar 12V AC dan arus total yang dikonsumsi oleh sistem ini adalah 396 mA, maka nilai kapasitor yang dipergunakan sebagai penapis (filter) riak tegangan Output adalah sebagai berikut:

0,1 x 17 V

,7 V

Nilai kapasitor yang didapat sesuai perhitungan adalah sebesar Nilai tersebut bukan nilai standar sehingga dipilih nilai standar yaitu sebesar 2200 F/25V. LED (Light Emitting Diode) berfungsi sebagai indikator apabila catu daya dinyalakan.

3.4.2 Perancangan Rangkaian Mikrokontroler ATMega8535

Rangkaian ini berfungsi untuk membaca input serial dari PC/Laptop. Input yang didapatkan kemudian diproses mikrokontroler untuk mengaktifkan motor servo baik membuka atau menutup palang masuk maupun palang keluar.


(41)

Mikrokontroler juga berfungsi mengaktifkan LCD (Liquid Crystal Display) untuk menampilkan perintah yang akan kita berikan.

Rangkaian mikrokontroler seperti pada Gambar 3.4 ini menggunakan osilator kristal dan dua buah kapasitor nonpolar agar dapat berosilasi. Pada perancangan ini, besar frekuensi osilator kristal yang digunakan adalah 11.0592 MHz. Besar kapasitor yang digunakan adalah 20pF. Pemilihan frekuensi dan besar kapasitor tersebut dirancang berdasarkan datasheet mikrokontroler ATMega8535. Kapasitor yang telah dihubungkan dengan osilator Kristal kemudian dihubungkan ke pin 12 dan pin 13.

Rangkaian reset pada pin 9 berfungsi untuk mengembalikan mikrokontroler pada program awal (vektor reset). Rangkaian reset terdiri dari resistor 10KΩ (R2) dan kapasitor nonpolar 10uF (C5) yang terhubung dengan ground. Kombinasi komponen R-C ini berfungsi untuk menentukan nilai konstanta waktu pengisian muatan pada kapasitor C5.

Ketika catu daya dihidupkan, kapasitor C5 akan melakukan pengisian muatan awal sehingga logika yang diterima pin 9 saat itu dalam keadaan logika rendah dan mikrokontroler akan masuk ke dalam modus reset. Setelah pengisian muatan kapasitor C5 penuh, pin 9 akan berubah menjadi logika tinggi. Mekanisme reset dilakukan dengan mengosongkan kembali kapasitor C5 melalui penekanan tombol reset T3.

Pada perancangan ini, pin 1 dan pin 2 dihubungkan ke servo. Servo berfungsi untuk membuka dan menutup palang parkir. Pin 3 dan pin 4 dihubungkan ke tombol. Tombol ini berfungsi untuk membuka palang secara


(42)

manual jika terjadi gangguan pada sistem. Port C dihubungkan ke LCD (Liquid Crystal Display). Pin 14 merupakan jalur komunikasi serial. Pada perancangan ini, pin tersebut dihubungkan ke Driver Serial yaitu MAX232.

40 39 38 37 36 35 34 33 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 28 29 27 26 25 24 23 22 PC7/TOSC2 PC6/TOSC1 PC5 PC4 PC3 PC2 PC1/SDA PC0/SCL PB0/XCK/T0 PB1/T1 PB2/INT2/AIN0 PB3/OC0/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK 1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2 9 RESET 12 13 32 XTAL2 XTAL1 AREF 10 11 30 31 VCC GND AVCC GND R3

330 ohm LED2 C3 20 pF C4 20 pF 11.0592 MHz X1 Ke Rangkaian Driver MAX232 Ke Rangkaian Servo1 Ke Rangkaian Servo2 Ke Rangkaian Tombol2 Ke Rangkaian Tombol3

Ke R a n g ka ia n L C D R2 10K ohm +5V D3 1N4148 PB1 +5V C5 10 uF

Gambar 3.4 Rangkaian Mikrokontroler ATMega8535

3.4.3 Perancangan Rangkaian LCD (Liquid Crystal Display)

Rangkaian LCD (Liquid Crystal Display) berfungsi untuk menampilkan perintah maupun pemberitahuan kepada pengguna RFID tag. Pada Tugas Akhir ini, LCD yang digunakan adalah LCD 2x16 (2 baris dan 16 kolom) dengan tipe LCM1602A. Rangkaian LCD dapat dilihat pada Gambar 3.5. Pin 2 dan pin 15 dihubungkan ke 5V. Pin 1 dan pin 16 dihubungkan ke ground.


(43)

Pin 3 dihubungkan ke sebuah potensiometer dengan besar 1KΩ-10KΩ. Potensiometer ini berfungsi sebagai pengatur kontras atau intensitas cahaya pada LCD. Hubungan antara LCD dengan mikrokontroler yaitu dengan menggunakan PORT C. Pin 4-6 pada LCD secara berurutan dihubungkan ke PORT C mikrokontroler pada pin 22-24. Pin 11-14 pada LCD secara berurutan dihubungkan ke PORT C mikrokontroler pada pin 26-29.

Gambar 3.5 Skematik Rangkaian LCD

3.4.4 Perancangan Rangkaian Servo

Rangkaian servo berfungsi untuk menaikkan maupun menurunkan palang pengaman. Servo yang dibutuhkan dalam pembuatan sistem ini ada dua. Servo yang pertama berfungsi untuk mengendalikan palang masuk tempat parkir. Servo ke dua berfungsi untuk mengendalikan palang keluar dari tempat parkir.

Rangkaian servo seperti pada Gambar 3.6 munujukkan bahwa kabel ground dari servo dihubungkan ke ground. Kabel Vcc dihubungkan dengan tegangan positif 5 Volt. Kabel signal dari servo dihubungkan ke PORT B mikrokontroler pada pin 1 untuk servo 1 dan pin 2 untuk servo 2.


(44)

Gambar 3.6 Skematik Rangkaian Servo

3.4.5 Perancangan Rangkaian Tombol

Rangkaian tombol berfungsi untuk mengaktifkan servo dalam membuka palang secara manual. Pembukaan palang dengan tombol ini dilakukan jika terjadi suatu permasalahan yang tidak diinginkan. Permasalahan pertama yang mungkin terjadi adalah adanya kerusakan pada sistem database. Permasalahan ini menyebabkan servo tidak dapat bekerja secara otomatis dalam membuka palang.

Permasalah lain yang mungkin terjadi adalah ketika pemegang kartu hendak keluar tempat parkir namun kehilangan kartu tanda parkir miliknya. Hal ini menyebabkan servo tidak dapat bekerja secara otomatis untuk membuka palang melalui sistem database. Perancangan tombol ini diharapkan dapat mengatasi permasalahan seperti yang telah disebutkan di atas.

Rangkaian tombol tampak seperti pada Gambar 3.7. Tombol yang dibutuhkan dalam pembuatan sistem ini ada 2. Tombol yang pertama berfungsi


(45)

untuk mengendalikan servo membuka palang masuk tempat parkir. Tombol kedua berfungsi untuk mengendalikan servo membuka palang keluar dari tempat parkir.

Gambar 3.7 Rangkaian Tombol

Hubungan antara tombol dengan mikrokontroler yaitu dengan menggunakan PORT B. Rangkaian tombol untuk membuka palang masuk dan palang keluar secara berurutan dihubungkan pada pin 3 dan pin 4.

3.4.6 Rangkaian RFID Reader

Rangkaian RFID reader berfungsi untuk membaca kode yang terdapat pada RFID tag. Pembacaan data dilakukan agar dapat mengetahui identitas pemilik kendaraan yang akan parkir. Rangkaian RFID reader berdasarkan datasheet dapat dilihat pada Gambar 3.8. Jenis RFID reader yang digunakan adalah tipe ID-12.

1 10 NC NC R6 2K2 R4 100 ohm R 5 4 K 7 o h m LED3 LED4 Q1 BC457 2 3 4 5 6 7 8 9 11 B1 Ke rangkaian Driver MAX232 +5V


(46)

Pin 1 pada ID-12 dihubungkan ke ground. Pin 2 dan pin 11 dihubungkan ke sumber tegangan positif 5 Volt. Pin 9 dihubungkan ke rangkaian Driver Serial MAX232. Pin 10 (Beeper) dihubungkan ke buzzer dan LED (Light Emitting Diode) sebagai tanda atau indikator adanya sinyal yang terdeteksi.

3.4.7 Perancangan Rangkaian Driver Serial MAX232

Rangkaian Driver MAX232 digunakan sebagai driver agar mikrokontroler dapat berkomunikasi dengan PC/Laptop. Tegangan yang digunakan mikrokontroler pada komunikasi serial berada pada level tegangan 0V sampai 5V sedangkan tegangan yang digunakan untuk berkomunikasi dengan Laptop menggunakan level tegangan RS-232. Agar mikrokontroler dapat berkomunikasi dengan Laptop, maka dibutuhkan IC MAX232 sebagai pengubah level tegangan.

Rangkaian IC MAX232 seperti pada Gambar 3.9 sesuai dengan datasheet memerlukan beberapa kapasitor. Ada 4 buah kapasitor yang digunakan dengan besar masing-masing 1uF/16V. Hubungan antara MAX232 dengan DB9 yang digunakan sebagai jalur TX (Transmitter) adalah pin 14 pada MAX232 terhubung dengan pin 2 pada DB9 (Transmitted Data). Jalur yang digunakan sebagai RX (Receiver) adalah pin 13 pada MAX232 terhubung dengan pin 3 pada DB9 (Received Data). Pin 5 pada DB9 dihubungkan ke ground. Pin 11 pada MAX232 dihubungkan ke RFID reader. Pin 12 MAX232 dihubungkan ke Port D mikrokontroler pada pin 14.


(47)

C1+ C1-1 3 T1IN T1OUT 11 12 10 9 4 5 14 13 7 8 2 6 R1OUT R1IN T2IN T2OUT R2OUT R2IN VS+ VS-1 2 3 4 5 6 7 8 9 C6 1uF C8 1uF C7 1uF C9 1uF C2+

C2-Ke Rangkaian RFID Reader

Ke Rangkaian Mikrokontroler

+5V

Gambar 3.9 Skematik Rangkaian Driver Serial MAX232

3.5 Perancangan Perangkat Lunak

Perancangan perangkat lunak pada sistem pembayaran biaya parkir secara otomatis ini dimulai dengan membuat diagram alir. Perancangan diagram alir ini berfungsi untuk mengetahui proses kerja sistem secara keseluruhan. Membuat disain tampilan form dan merancang database dilakukan setelah perancangan diagram alir dilakukan. Perancangan pembuatan program merupakan langkah terakhir yang dilakukan dalam pembuatan sistem ini.

3.5.1 Pancangan Diagram Alir Sistem

Diagram alir sistem seperti yang ditunjukkan pada Gambar 3.10 merupakan proses kerja yang dilakukan oleh sistem secara keseluruhan baik pada mikrokontroler maupun pada database. Pada awal sistem diaktifkan, sistem akan membaca data dari RFID tag melalui RFID reader. RFID reader terhubung dengan Driver Serial MAX232. Driver Serial MAX232 terhubung dengan PC (Personal Computer)/Laptop melalui DB9.


(48)

Data (berupa nomor ID) yang diperoleh kemudian akan diolah di sistem database. ID yang terdaftar di sistem database akan dilakukan pengenalan apakah ID tersebut akan masuk tempat parkir atau akan keluar dari tempat parkir. ID yang dikenali sistem merupakan ID yang akan masuk tempat parkir, maka sistem akan menyimpan waktu (jam) ketika ID dikenali. Sistem database kemudian mengirimkan sinyal ke mikrokontroler untuk membuka palang masuk.

Mikrokontroler juga akan mengirimkan sinyal ke LCD (Liquid Crystal Display) untuk menampilkan sisa saldo yang dimiliki oleh nomor ID tersebut. ID yang dikenali sistem sebagai ID yang akan keluar dari tempat parkir, maka sistem akan menyimpan waktu (jam) ketika ID dikenali. Sistem database akan melakukan perhitungan waktu lama parkir dengan cara mengurangkan waktu keluar dengan waktu masuk ID tersebut. Sistem database kemudian melakukan perhitungan biaya parkir dengan cara mengalikan waktu lama parkir dengan biaya parkir yang telah ditetapkan.

Sistem kemudian menghitung sisa saldo terakhir dengan cara melakukan pengurangan saldo terhadap biaya parkir. Sistem juga melakukan perubahan laporan terbaru yang meliputi jumlah kendaraan yang parkir serta pendapatan yang diperoleh. Sistem database kemudian mengirimkan sinyal ke mikrokontroler untuk mengaktifkan servo yang berfungsi membuka palang keluar. Mikrokontroler juga akan mengirimkan sinyal ke LCD untuk menampilkan sisa saldo yang dimiliki oleh nomor ID tersebut.


(49)

START

Baca Data Serial

ID = Database?

Baca Status

Status = 0 ?

Simpan Jam Masuk

Status = 1

Kirim Perintah Buka Palang Masuk

Simpan Jam Keluar

Jam Keluar-Jam Masuk

Hitung Biaya

Hitung Saldo

Perbaharui Biaya Laporan

Kirim Perintah Buka Palang Keluar

Status = 0

ID Tidak Dikenali

Masukkan Data Baru ?

Masukkan Data Baru Tidak

Ya

Ya

Tidak

Ya

Tidak


(50)

3.5.2 Perancangan Disain Tampilan Form dan Database

Perancangan form sistem pembayaran biaya parkir secara otomatis ini bertujuan untuk menggambarkan sketsa disain tampilan form yang akan dibuat sebagai interface kepada pengguna aplikasi. Disain tampilan form tampak seperti pada Gambar 3.11. Berikut adalah gambar komponen-komponen dalam Visual Basic 6.0 yang dipakai dalam rancangan form yang akan dibuat.

1. Label, berfungsi menampilkan teks, dimana pengguna program tidak bisa mengubah teks tersebut.

2. CommandButton, berfungsi untuk membuat tombol perintah.

3. ComboBox, berfungsi menambahkan kontrol kotak combo yang merupakan kontrol gabungan antara texbox dan listbox.

4. Timer, berfungsi untuk membuat kontrol waktu dan interval yang dibutuhkan.

5. Texbox, berfungsi membuat teks dimana teks tersebut dapat diubah oleh pengguna program.

Sistem Parkir

Port Connect Data Baru

Sistem Ready

Saldo Masuk

Tabel Data Parkir

Tambah Saldo OK Tutup Laporan

Lihat Laporan Waktu/Tanggal


(51)

Perancangan database bertujuan untuk menyimpan data atau identitas pengguna yang telah terdaftar di sistem berbasis RFID ini. Gambar 3.12 menunjukkan perancangan sistem database.

Data Parkir ID

Nomor Plat

Nama

Waktu Masuk Waktu

Keluar

Biaya Saldo

Status

Gambar 3.12 Perancangan Sistem Database

3.5.3 Perancangan Program

Program merupakan suatu perintah yang digunakan untuk dapat mengatur kegiatan dan memerintahkan sistem agar dapat bekerja sesuai dengan rancangan. Program dimuat ke dalam mikrokontroler dimana mikrokontroler ini merupakan komponen pengontrol sistem. Program yang digunakan dalam perancangan sistem ini adalah bahasa C.

Aplikasi yang digunakan dalam perancangan program yaitu Code Vision AVR. Code Vision AVR berfungsi sebagai editor dan compiler program yang dirancang untuk mikrokontroler. Aplikasi Code Vision AVR seperti yang ditunjukkan pada Gambar 3.13.


(52)

(53)

BAB IV

PENGUJIAN SISTEM

4.1 Metode Pengujian

Bab ini akan membahas tentang pengujian sistem pembayaran biaya parkir secara otomatis yang telah selesai dirancang. Pengujian ini bertujuan untuk mengetahui apakah sistem yang telah dirancang bekerja sesuai dengan yang diharapkan. Proses pengujian dilakukan mulai dari pengujian setiap subsistem sampai pengujian sistem secara keseluruhan. Pengujian ini dikatakan telah siap dan berhasil apabila seluruh rangkaian bekerja dengan baik.

4.2 Pengujian Rangkaian RFID dan Rangkaian Driver Serial MAX232

Pengujian rangkaian RFID (Radio Frequency Identification) dan rangkaian Driver Serial MAX232 dilakukan bersamaan. Proses pengujian ini memerlukan sebuah perangkat lunak yaitu Hyperterminal. Rangkaian Driver Serial MAX232 dihubungkan ke Laptop dengan menggunakan kabel USB to Serial. Ragkaian Driver MAX232 terhubung ke USB to Serial dengan menggunakan DB9. Rangkaian RFID harus sudah terhubung dengan Driver Serial MAX232. Rangkaian RFID dan rangkaian Driver Serial ditunjukkan seperti Gambar 4.1.


(54)

(a) (b)

Gambar 4.1 (a) Rangkaian RFID dan (b) Rangkaian Driver Serial MAX232

Pengujian ini dilakukan dengan cara memasangkan kabel USB to Serial ke Laptop. Hyperterminal yang telah terpasang di Laptop kemudian dijalankan. Langkah berikutnya yaitu mendekatkan RFID tag ke reader. Pada saat RFID reader mendeteksi adanya tag, maka pada Hyperterminal akan muncul kode yang merupakan ID dari tag tersebut. Tampilan Hyperterminal ditunjukkan pada Gambar 4.2, menerangkan bahwa rangkaian RFID dan rangkaian Driver Serial telah berjalan dengan baik.


(55)

4.3 Pengujian Jarak Baca RFID Reader

Pengujian ini dilakukan untuk dapat mengetahui jangkauan jarak baca RFID reader terhadap tag. Data hasil pengukuran dapat dilihat pada Tabel 4.1.

Tabel 4.1 Tabel Pengujian Jarak RFID Reader

Jarak Baca Keterangan

1 cm Terbaca

2 cm Terbaca

3 cm Terbaca

4 cm Terbaca

5 cm Terbaca

6 cm Terbaca

7 cm Terbaca

8 cm Terbaca

8,4 cm Terbaca

8,5 cm Tidak Terbaca

8,7 cm Tidak Terbaca

9 cm Tidak Terbaca

Berdasarkan Tabel 4.1 dapat diketahui bahwa jarak baca maksimal RFID reader terhadap tag adalah 8,4 cm.

Pengujian jarak baca RFID reader ditunjukkan pada Gambar 4.3. Pengujian dilakukan tanpa adanya penghalang antara tag dan reader. Rangkaian


(56)

RFID reader memiliki sebuah LED dan buzzer yang berfungsi sebagai indikator. LED akan menyala dan buzzer akan mengeluarkan suara jika sebuah tag berada dalam jangkauan reader. Indikator ini berfungsi sebagai penanda apabila reader melakukan komunikasi dengan tag.

Gambar 4.3 Pengujian Rangkaian RFID Reader

4.4 Pengujian LCD (Liquid Crystal Display)

Pengujian LCD (Liquid Crystal Display) dilakukan dengan cara memberikan program pada mikrokontroler agar LCD dapat menampilkan karakter. LCD ini berfungsi sebagai perantara antara pemegang kartu dengan sistem. Program yang diberikan pada mikrokontroler adalah sebagai berikut:

...

lcd_gotoxy(1,0);

lcd_putsf("PROGRAM PARKIR"); delay_ms (1000); lcd_gotoxy(2,1);

lcd_putsf("Loading."); delay_ms (1000);


(57)

lcd_putsf("Loading.."); delay_ms (1000); lcd_gotoxy(2,1);

lcd_putsf("Loading..."); delay_ms (1000);

lcd_gotoxy(2,1);

lcd_putsf("Loading...."); delay_ms (1000);

lcd_clear();

...

Program di atas berfungsi untuk menampilkan teks “PROGRAM PARKIR” dan teks “Loading . . . .”. Teks “ PROGRAM PARKIR” akan dimuat pada baris pertama, kolom pertama LCD. Teks “Loading . . . .” akan dimuat pada baris kedua, kolom pertama LCD. Gambar 4.4 menunjukkan pengujian rangkaian LCD.

Gambar 4.4 Pengujian Rangkaian LCD

4.5 Pengujian Rangkaian Tombol

Pengujian ini dilakukan untuk mengetahui apakah tombol dapat berfungsi dengan baik untuk menggerakkan palang secara manual. Gambar 4.5 menunjukkan penekanan tombol untuk membuka palang secara manual.


(58)

(a) Tombol Palang Masuk (b) Tombol Palang Keluar

Gambar 4.5 Pengujian Rangkaian Tombol Manual

4.6 Pengujian Keseluruhan Sistem

Pengujian ini dilakukan dengan menggabungkan seluruh subsistem dan mengujinya secara bersamaan. Sistem keseluruhan ditunjukkan seperti pada Gambar 4.6.


(59)

Pada saat pemegang kartu ingin memasuki tempat parkir, RFID tag didekatkan dengan reader. ID yang ada di dalam tag akan diolah database. Database akan melakukan pemeriksaan terhadap nomor ID tag yang telah terdaftar di database. Proses pemeriksaan ID oleh database ditunjukkan seperti pada Gambar 4.7.

Gambar 4.7 Indentifikasi ID

Database mengidentifikasi ID dari tag, kemudian menyesuaikan ID dengan nama pemegang kartu, nomor pelat kendaraan dan saldo yang dimiliki. Database akan menyimpan waktu terdeteksinya ID sebagai waktu (jam) masuk tempat parkir. Mikrokontroler kemudian akan memerintahkan servo untuk membuka palang masuk setelah ID tag diperiksa oleh database. Gambar 4.8 menunjukkan servo membuka palang masuk.


(60)

Gambar 4.8 Palang Masuk Terbuka

Pada saat pemegang kartu ingin keluar dari tempat parkir, RFID tag didekatkan dengan reader. ID yang ada di dalam tag akan diolah database. Database akan menyimpan waktu terdeteksinya ID sebagai waktu (jam) keluar tempat parkir. Proses pemeriksaan ID oleh database diperlihatkan pada Gambar 4.9.


(61)

Database akan melakukan perhitungan biaya parkir terhadap ID yang diterima. Database juga akan melakukan pengolahan jumlah saldo yang dimiliki oleh ID setelah parkir. Mikrokontroler akan memerintahkan servo untuk membuka palang keluar setelah ID tag diperiksa oleh database. Gambar 4.10 menunjukkan servo membuka palang keluar.

Gambar 4.10 Palang Keluar Terbuka

Database juga menyimpan laporan jumlah kendaraan yang parkir dan pendapatan yang diterima setiap hari. Gambar 4.11 menunjukkan laporan jumlah kendaraan dan pendapatan yang diperoleh dalam satu hari.


(62)

Pengguna yang belum memilliki kartu (RFID tag) dapat didaftarkan pada database dengan membuat data baru. ID yang terdapat dalam tag didaftarkan di dalam database dengan memasukkan nama pemilik kartu, nomor pelat kendaraan dan berapa banyak saldo yang akan dimasukkan. Gambar 4.12 menunjukkan pengisian data baru pada database.


(63)

BAB V

KESIMPULAN DAN SARAN

Berdasarkan perancangan dan pengujian seluruh sistem terhadap sistem parkir otomatis menggunakan RFID (Radio Frequency Identification) sesuai dengan bab sebelumnya, maka dapat disimpulkan sebagai berikut:

5.1 Kesimpulan

1. Sistem parkir otomatis dengan menggunakan RFID yang telah dirancang secara umum telah berhasil bekerja sesuai dengan yang diharapkan.

2. RFID reader tipe ID-12 yang digunakan pada perancangan, membaca tag dengan jarak 8,4 cm.

3. Sistem parkir yang telah dirancang dapat memberikan kemudahan bagi pemilik kartu maupun pihak pengelola parkir.

5.2 Saran

1. Jarak jangkau pemilik kartu terhadap RFID reader pada pengaplikasian sebenarnya perlu diperhatikan mengingat jangkauan RFID reader tipe ID-12 berkisar 8 cm saja.

2. Pergerakan buka tutup palang perlu diperhatikan agar palang tidak mengenai kendaraan saat akan masuk maupun keluar tempat parkir.


(64)

DAFTAR PUSTAKA

1. http://id.wikipedia.org/wiki/komunikasi_serial, terakhir diakses pada tanggal 08 Februari 2014.

2. http://id.wikipedia.org/wiki/RFID, terakhir diakses pada tanggal 13 Februari 2014.

3. http://www.adrirobot.it/datasheet/LCD/PDF/LCM1602A.pdf, terakhir diakses pada tanggal 10 Januari 2014.

4. http://www.electronicoscaldas.com/datasheet/SG90_Tower-Pro.pdf, terakhir diakses tanggal 20 Januari 2014.

5. http://www.pekalongankab.go.id/fasilitas-web/artikel/teknologi/1615-rfid-

radio-frekuency-identification-sebagai-teknologi-sistem-pengidentifikasian-objek-otomatis.html, terakhir diakses tanggal 03 Maret 2014.

6. http://www.ti.com/lit/ds/symlink/max232.pdf, terakhir diakses tanggal 24 Januari 2014.

7. Kompas, “Penjelasan sederhana tentang RFID”,

http://forum.kompas.com/sains/210878-penjelasan-sederhana-tentang-rfid.html, terakhir diakses pada tanggal 2 September 2013.

8. Kurniadi, Adi, Balud S.H, Pemrograman Microsoft Visual Basic 6, Jakarta : PT. Elex Media Komputindo, 2000.

9. Prasetia, Retna, Catur Edi Widodo, Teori dan Praktek Interfacing Port Paralel dan Port Serial Komputer dengan Visual Basic 6.0, Yogyakarta : Penerbit ANDI, 2004.


(65)

10.Prihadi, Deddy, “Teknologi RFID”,

http://deddyprihadi.wordpress.com/2008/09/11/teknologi-rfid, terakhir diakses pada tanggal 3 September 2013.

11.Setiawan, Afrie, 20 Aplikasi Mikrokontroler ATMega8535 dan ATMega16. Yogyakarta : Penerbit ANDI, 2001.

12.Sihombing, Poltak, Darwis R Manalu, Pemrograman Visual Basic 6.0, Medan : Penerbit USU Press, 2001.

13.Wardhana, Lingga, Belajar Sendiri Mikrokontroler AVR seri ATMega8535 Simulasi, Hardware dan Aplikasi, Yogyakarta : Penerbit Andi, 2006.


(66)

LAMPIRAN A

GAMBAR RANGKAIAN KESELURUHAN SISTEM

LM 7805 Trafo CT

220 Volt AC 12 Volt AC 1N4007 D1 D2 1N4007 C1 2200 uF C2 0.01 uF 330 Ohm LED1

Out (+ 5V DC)

CT R1 SW1 40 39 38 37 36 35 34 33 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 28 29 27 26 25 24 23 22 PC7/TOSC2 PC6/TOSC1 PC5 PC4 PC3 PC2 PC1/SDA PC0/SCL PB0/XCK/T0 PB1/T1 PB2/INT2/AIN0 PB3/OC0/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK 1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2 9 RESET 12 13 32 XTAL2 XTAL1 AREF 10 11 30 31 VCC GND AVCC GND

15 2 3

Z 16 1 6 5 4 14 13 12 11 10 9 8 7 C1+ C1-1 3 T1IN T1OUT 11 12 10 9 4 5 14 13 7 8 2 6 R1OUT R1IN T2IN T2OUT R2OUT R2IN VS+ VS-1 2 3 4 5 6 7 8 9 R3

330 ohm LED2 SW2 SW3 C3 20 pF C4 20 pF 11.0592 MHz X1 C6 1uF C8 1uF C7 1uF C9 1uF C2+ C2-R V1 1 K o h m VC C VC C Si g n a l Si g n a l G N D G N D C5 10 uF R2 10K ohm

LCD 2 x 16

1 10 NC NC R6 2K2 R4 100 ohm R 5 4 K 7 o h m LED3 LED4 Q1 BC457 2 3 4 5 6 7 8 9 11 B1 SERVO 1 SERVO 2 +5V +5V +5V +5V +5V +5V +5V D3 1N4148 PB1


(67)

LAMPIRAN B

PROGRAM KESELURUHAN SISTEM

Program Mikrokontroler

#include <mega8535.h> #include <delay.h> #include <stdio.h>

unsigned char data_serial[4], servo_masuk, servo_keluar; int a, indikator;

unsigned char datalcd[16];

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.h>

#define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7

#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)

// USART Receiver buffer #define RX_BUFFER_SIZE 8 char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256

unsigned char rx_wr_index,rx_rd_index,rx_counter; #else

unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif

// This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow;

// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) {

char status,data; status=UCSRA; data=UDR;

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) {


(68)

if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE)

{

rx_counter=0; rx_buffer_overflow=1; };

if (indikator==2) {data_serial[3]=data; indikator=3; } if (indikator==1) {data_serial[2]=data; indikator=2; } if (indikator==0) {data_serial[1]=data; indikator=1; } };

}

#ifndef _DEBUG_TERMINAL_IO_

// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index];

if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used- #endif

// Standard Input/Output functions #include <stdio.h>

// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) {

// Place your code here a++;

if(a==900) {a=0;}

if(a<servo_masuk) {PORTB.0=1;} else {PORTB.0=0;} if(a<servo_keluar) {PORTB.1=1;} else {PORTB.1=0;} }

// Declare your global variables here

void main(void) {

// Input/Output Ports initialization // Port A initialization

PORTA=0x0C; DDRA=0x03;

// Port B initialization PORTB=0x0C; DDRB=0x03;

// Port C initialization PORTC=0x00; DDRC=0x00;

// Port D initialization PORTD=0x00; DDRD=0x00;


(69)

// Timer/Counter 0 initialization TCCR0=0x01; TCNT0=0x00; OCR0=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01;

// USART initialization UCSRA=0x00; UCSRB=0x90; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization ACSR=0x80;

SFIOR=0x00;

// LCD module initialization lcd_init(16);

// Global enable interrupts #asm("sei")

servo_masuk=80; servo_keluar=80;

lcd_gotoxy(1,0); lcd_putsf("PROGRAM PARKIR"); delay_ms(1000); lcd_gotoxy(2,1); lcd_putsf("Loading."); delay_ms(1000); lcd_gotoxy(2,1); lcd_putsf("Loading.."); delay_ms(1000); lcd_gotoxy(2,1); lcd_putsf("Loading..."); delay_ms(1000); lcd_gotoxy(2,1); lcd_putsf("Loading...."); delay_ms(1000); lcd_gotoxy(2,1); lcd_putsf("Loading..."); delay_ms(1000); lcd_clear();

lcd_gotoxy(1,0); lcd_putsf("PROGRAM PARKIR");

lcd_gotoxy(2,1); lcd_putsf("SYSTEM READY"); delay_ms(1000); lcd_clear();

indikator=0;

while (1) {

// Place your code here

lcd_gotoxy(0,0); lcd_putsf("Dekatkan ID_CARD"); if(data_serial[1]!=0) { if(data_serial[1]==97) { servo_masuk=30; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Silahkan_Masuk"); sprintf(datalcd,"Saldo=Rp%d000",data_serial[2]); lcd_gotoxy(0,1); lcd_puts(datalcd);

delay_ms(5000); servo_masuk=80; lcd_clear();

data_serial[1]=0; indikator=0; }

else if (data_serial[1]==98) {

servo_keluar=30; lcd_clear();

sprintf(datalcd,"Parkir=Rp%d000",data_serial[3]); lcd_gotoxy(0,0); lcd_puts(datalcd);


(70)

sprintf(datalcd,"Saldo=Rp%d000",data_serial[2]); lcd_gotoxy(0,1); lcd_puts(datalcd);

delay_ms(2000); lcd_clear();

lcd_gotoxy(0,0); lcd_putsf("Selamat__Jalan"); lcd_gotoxy(0,1); lcd_putsf("Terima Kasih"); delay_ms(3000); servo_keluar=80; lcd_clear();

data_serial[1]=0; indikator=0; }

else if (data_serial[1]==99) { servo_keluar=30; lcd_clear(); sprintf(datalcd,"Parkir=Rp%d000",data_serial[3]); lcd_gotoxy(0,0); lcd_puts(datalcd); sprintf(datalcd,"Saldo=Rp%d000",data_serial[2]); lcd_gotoxy(0,1); lcd_puts(datalcd); delay_ms(2000); lcd_clear();

lcd_gotoxy(0,0); lcd_putsf("Saldo < 5000"); lcd_gotoxy(0,1); lcd_putsf("Segera Isi Ulang"); delay_ms(2000);

lcd_clear();

lcd_gotoxy(0,0); lcd_putsf("Selamat__Jalan"); lcd_gotoxy(0,1); lcd_putsf("Terima Kasih"); delay_ms(1000); servo_keluar=80; lcd_clear();

data_serial[1]=0; indikator=0; }

else if (data_serial[1]==100) {

lcd_clear();

lcd_gotoxy(0,0); lcd_putsf("Tidak Dikenali"); lcd_gotoxy(0,1); lcd_putsf("Silahkan Daftar"); delay_ms(1000);

lcd_clear();

data_serial[1]=0; indikator=0; } } if(PINB.2==0) { servo_masuk=30; lcd_clear();

lcd_gotoxy(1,1); lcd_putsf("Silahkan_Masuk"); delay_ms(1000); delay_ms(5000); servo_masuk=80; lcd_clear();

}

if(PINB.3==0) {

servo_keluar=30; lcd_clear();

lcd_gotoxy(1,1); lcd_putsf("Selamat__Jalan"); delay_ms(1000); delay_ms(5000); servo_keluar=80; lcd_clear();

} }; }


(71)

Program Visual Basic

Dim sisa_saldo, saldo, tambah_saldo, jumlah_saldo As Double Dim lama_parkir, status, biaya, jumlah_biaya As Double Dim pendapatan, jumlah_pendapatan As Double Dim parkir, jumlah_parkir As Double

Dim jam_masuk, jam_keluar As Variant Dim tambah As Single

Dim lockkirim As Integer

Private Sub Command1_Click() On Error GoTo errr

MSComm1.CommPort = Combo1.Text MSComm1.PortOpen = True

MSComm1.DTREnable = True MSComm1.RTSEnable = True Timer1.Enabled = True MsgBox "Komunikasi OK" errr:

End Sub

Private Sub Command2_Click() Frame1.Visible = False Frame2.Visible = True Adodc1.Refresh Adodc1.Refresh Adodc1.Refresh

Command7.Visible = True Command8.Visible = True End Sub

Private Sub Command3_Click() If txtID.Text = "" Then MsgBox " Data Belum Diisi" Exit Sub

End If

Adodc1.Refresh

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields("ID").Value = txtID.Text Adodc1.Recordset.Fields("masuk").Value = txtmasuk.Text Adodc1.Recordset.Fields("saldo").Value = txtsaldo.Text Adodc1.Recordset.Fields("nama").Value = txtnama.Text Adodc1.Recordset.Fields("BK").Value = txtBK.Text Adodc1.Recordset.Fields("status").Value = "0" Adodc1.Recordset.Update

Adodc1.Refresh Adodc1.Refresh Adodc1.Refresh txtID.Text = "" txtsaldo.Text = "" txtmasuk.Text = "" End Sub


(72)

Private Sub Command5_Click() If Text10 = "" Then

MsgBox " Saldo Belum Diisi" Text10.SetFocus

Exit Sub End If

If txtID.Text <> "" And Text3.Text <> "" And Text4.Text <> "" Then Else

MsgBox " ID Anda Belum Terdaftar" End If

Text3.Text = "" Text4.Text = ""

With Adodc1.Recordset On Error GoTo errr If .State = 0 Then .Open .MoveFirst

.Find "ID = '" & txtID.Text & "'" If Not .EOF Then

Text4.Text = !saldo Text3.Text = !masuk status = !status End If

End With

saldo = Adodc1.Recordset.Fields("saldo").Value tambah_saldo = Val(Text10.Text)

jumlah_saldo = saldo + tambah_saldo

Adodc1.Recordset.Fields("saldo").Value = jumlah_saldo Adodc1.Recordset.Update

Adodc1.Refresh Adodc1.Refresh Text10.Text = "" Text10.Enabled = False Text10.BackColor = &HC0C0C0 Command5.Enabled = False Command4.Enabled = True

Command4.Caption = "Tambah Saldo" Command5.BackColor = &HC0C0C0 tambah = 0

lockkirim = 0

errr:

End Sub

Private Sub Command6_Click() Frame1.Visible = True Frame2.Visible = False Adodc1.Refresh Adodc1.Refresh Adodc1.Refresh


(73)

Command7.Visible = False Command8.Visible = False End Sub

Private Sub Command4_Click() If tambah = 0 Then

Command4.Caption = "Cancel" Command5.Enabled = True Command5.BackColor = &H80FF& Text10.Enabled = True

Text10.BackColor = &H80FF80 Text10.SetFocus

lockkirim = 1 tambah = 1 Else

Command4.Caption = "Tambah Saldo" Command5.Enabled = False

Command5.BackColor = &HC0C0C0 Text10.Text = ""

Text10.Enabled = False Text10.BackColor = &HC0C0C0 tambah = 0

lockkirim = 0 End If End Sub

Private Sub Command7_Click() Frame2.Visible = True Frame3.Visible = False Adodc2.Refresh Adodc2.Refresh Adodc2.Refresh End Sub

Private Sub Command8_Click() Frame3.Visible = True Frame2.Visible = False Adodc2.Refresh Adodc2.Refresh Adodc2.Refresh End Sub

Private Sub Form_Load() Timer2.Enabled = True Timer1.Enabled = False Combo1.Text = "3" Combo1.AddItem "1", 0 Combo1.AddItem "2", 1 Combo1.AddItem "3", 2 Combo1.AddItem "4", 3 Combo1.AddItem "5", 4 Combo1.AddItem "6", 5 Combo1.AddItem "7", 6


(74)

Combo1.AddItem "8", 7 Combo1.AddItem "9", 8 Combo1.AddItem "10", 9 Combo1.AddItem "11", 10 Combo1.AddItem "12", 11 Frame1.Visible = False Frame2.Visible = True Frame3.Visible = False Text10.Enabled = False Text10.BackColor = &HC0C0C0 Command5.Enabled = False Command5.BackColor = &HC0C0C0 lockkirim = 0

End Sub

Private Sub Text2_Change()

Dim panjangteks, rpsaldo, rpparkir As Integer

panjangteks = Len(Text2.Text)

If (Text2.Text <> "") And (panjangteks = 12) Then txtID.Text = Text2.Text

Text3.Text = "" Text4.Text = ""

With Adodc1.Recordset On Error GoTo errr If .State = 0 Then .Open .MoveFirst

.Find "ID = '" & Text2.Text & "'" If Not .EOF Then

Text4.Text = !saldo Text3.Text = !masuk status = !status End If

End With

If Text4 <> "" Then If status = "0" Then

rpsaldo = Val(Text4.Text) / 1000

If lockkirim = 0 Then

MSComm1.Output = "a" & Chr(rpsaldo) End If

Adodc1.Recordset.Fields("masuk").Value = lblwaktu.Caption Adodc1.Recordset.Fields("status").Value = "1"

Adodc1.Recordset.Fields("keluar").Value = "" Adodc1.Recordset.Fields("biaya").Value = "" Adodc1.Recordset.Update

Adodc1.Refresh Adodc1.Refresh Adodc1.Refresh


(75)

Text3 = lblwaktu.Caption Else

Adodc1.Recordset.Fields("keluar").Value = lblwaktu.Caption Adodc1.Recordset.Fields("status").Value = "0"

Adodc1.Recordset.Update Text3 = lblwaktu.Caption

jam_masuk = Adodc1.Recordset.Fields("masuk").Value jam_keluar = Adodc1.Recordset.Fields("keluar").Value

lama_parkir = (TimeValue(jam_keluar) - TimeValue(jam_masuk)) * 24 If lama_parkir <= 1 Then biaya = 1000

If lama_parkir > 1 And lama_parkir <= 2 Then biaya = 2000 If lama_parkir > 2 And lama_parkir <= 3 Then biaya = 3000 If lama_parkir > 3 Then biaya = 4000

Adodc1.Recordset.Fields("biaya").Value = biaya saldo = Adodc1.Recordset.Fields("saldo").Value sisa_saldo = saldo - biaya

Adodc1.Recordset.Fields("saldo").Value = sisa_saldo Adodc1.Recordset.Update

Adodc1.Refresh Adodc1.Refresh Adodc1.Refresh

If lockkirim = 0 Then If sisa_saldo >= 5000 Then rpsaldo = sisa_saldo / 1000 rpparkir = biaya / 1000

MSComm1.Output = "b" & Chr(rpsaldo) & Chr(rpparkir) Else

rpsaldo = sisa_saldo / 1000 rpparkir = biaya / 1000

MSComm1.Output = "c" & Chr(rpsaldo) & Chr(rpparkir) End If

End If

With Adodc2.Recordset On Error GoTo errr If .State = 0 Then .Open .MoveFirst

.Find "tanggal = '" & lbltanggal.Caption & "'" If Not .EOF Then

pendapatan = Adodc2.Recordset.Fields("pendapatan").Value parkir = Adodc2.Recordset.Fields("jumlah_parkir").Value jumlah_pendapatan = pendapatan + biaya

jumlah_parkir = parkir + 1

Adodc2.Recordset.Fields("pendapatan").Value = jumlah_pendapatan Adodc2.Recordset.Fields("jumlah_parkir").Value = jumlah_parkir Adodc2.Recordset.Fields("tanggal").Value = lbltanggal

Adodc2.Recordset.Update Adodc2.Refresh

Else

jumlah_pendapatan = biaya jumlah_parkir = 1


(76)

Adodc2.Recordset.Fields("pendapatan").Value = jumlah_pendapatan Adodc2.Recordset.Fields("jumlah_parkir").Value = jumlah_parkir Adodc2.Recordset.Fields("tanggal").Value = lbltanggal

Adodc2.Recordset.Update Adodc2.Refresh

End If End With Adodc2.Refresh Adodc2.Refresh Adodc2.Refresh Text4.Text = sisa_saldo status = 0

End If Else

MSComm1.Output = "d" End If

End If errr:

Text2.Text = "" End Sub

Private Sub Timer1_Timer() Text1.Text = MSComm1.Input If Text1.Text <> "" Then

Text2.Text = Right(Left(Text1.Text, 13), 12) End If

End Sub

Private Sub Timer2_Timer()

lblwaktu.Caption = Format(Now, "hh:mm:ss") lbltanggal.Caption = Format(Now, "dd-MM-yyyy") End Sub


(77)

(78)

(79)

(80)

(81)

(82)

(83)

(84)

(85)

(86)

(87)

(88)

(89)

(1)

(2)

(3)

(4)

(5)

(6)