BAB III
PERANCANGAN SISTEM
3.1 Perancangan Sistem
Dalam perancangan sistem ini dimulai dari sistem utama yaitu perancangan dan penempatan komponen-komponen elektronika (sensor/transducer/actuartor) di port board arduino. Adapun komponen tersebut adalah sebagai berikut :
1. RFID-reader, digunakan untuk membaca RFID-tag di kartu
2. LCD1602 digunakan untuk segala menampilkan aktivitas yang terjadi dalam bentuk tulisan di LCD baik dari proses inisialisasi kartu hingga respon dari server database.
3. Servo, digunakan untuk membuka dan menutup palang pintu berdasarkan output respon dari server database.
4. Phototransistor dan IR-Led, digunakan untuk mendeteksi dan menahan palang pintu jika mobil masih melintas di area palang pintu.
5. Shield Ethernet (Arduino), digunakan untuk melakukan proses
“handshaking” dengan database server baik dari inisialisasi kartu hingga
Selain perancangan hardware di atas, penulis juga menggunakan pemrograman rekayasa perangkat lunak berbasis web dalam prosesnya. Pemrograman web ini tidak mampu berdiri sendiri, sehingga membutuhkan aplikasi pendukung berupa web server dan database server. Dikarenakan alasan lisensi dalam penggunaan aplikasi server, disini penulis menggunakan aplikasi server bersifat opensource
yang terkenal handal dan memiliki sistem keamanan yang kuat. Aplikasi
opensource tersebut adalah Apache untuk Web Server dan MySQL untuk
Database Server.
Apache dan MySQL merupakan salah satu aplikasi yang sering digunakan dalam dunia Internet, bahkan hampir rata-rata situs-situs perusahaan besar menggunakan aplikasi tersebut dalam websitenya. Salah satunya adalah website
http://www.mercubuana.ac.id yang juga menggunakan Apache dan Mysql dalam
web dan database servernya. Disamping itu, hampir setip forum IT aplikasi ini selalu membahas baik celah maupun parameter tips untuk meningkatkan performansi server terhadap segala kemungkinan serangan dari luar. Faktor kedua inilah selain lisensi di atas yang membuat penulis tertarik untuk mencoba menggabungkan antara arduino dan komponennya dengan aplikasi web dan database server berbasis opensource.
Aplikasi web dalam perancangan sistem ini terdiri dari file-file utama yang digunakan untuk proses interaksi antara hardware dan database server. File tersebut adalah sebagai berikut :
1. File verifikasi_rfid.php, peranan file verifikasi_rfid.php sangat penting karena dalam implementasinya file ini digunakan untuk :
a. Menerima paket data dari shield-ethernet arduino yang berisikan data RFID-tag kartu (hasil pembacaan RFID reader).
b. Melakukan proses query kedalam database dengan data rfid yang diterima sebagai pernyataan(if). Jika data rfid tersebut ditemukan dalam database, file verifikasi_rfid.php akan memberikan respon ke arduino untuk membuka palang pintu, dan sebaliknya jika tidak ditemukan atau data tidak valid, file verifikasi_rfid.php akan memberikan respon ke arduino untuk tidak membuka palang pintu.
c. Mencatat (log) jam dan tanggal kapan pintu palang terbuka berdasarkan “no polisi kendaraan” ke dalam database.
2. File login.html, digunakan untuk mengakses ke dalam database server. 3. File entry_data_mobil.php, form isian yang digunakan untuk memasukkan
data mobil ke dalam database.
4. File entry_data_kartu.php, form isian yang digunakan untuk memasukkan data kartu rfid yang kolerasi dengan “no polisi kendaraan” dari data mobil. Selain memasukkan data kartu, form ini juga memberikan masa aktif kartu yang terhitung secara otomatis selama setahun dari tanggal aktivasi kartu. 5. File query_log.php, digunakan untuk menampilkan banyaknya akses
terhadap palang pintu berdasarkan no polisi kendaraan, tanggal, bulan dan tahun.
Disamping file-file di atas, terdapat file-file pendukung yang bersifat membantu ke empat file utama di atas dalam proses komunikasi dengan database server, seperti :
1. tambah_data_mobil.php, 2. tambah_data_kartu.php, 3. hapus_data_mobil.php, 4. hapus_data_kartu.php,
Dari fungsi dan penggunaaan tiap komponen hardware dan software di atas dapat digambarkan secara ringkas dalam blok diagram sebagai berikut :
Gambar 3.1 Diagram Blok Perancangan Sistem RFID‐ Reader Arduino + Ethernet Shield
LCD Output
Phototransistor Servo Server : APACHE MySQLDengan berdasarkan diagram blok di atas, jika penulis terangkan secara diagram alur (flowchart) akan seperti di bawah ini :
S T A R T User Menempelkan kartu RFID‐reader membaca tag kartu ? RFID‐reader mengirimkan data output ke arduino
dan diberi nama
variable “rfid” Arduino login ke Database Server? Menampilkan di LCD “Connection Failed” Arduino mengirimkan
variable “rfid” ke server
Query database dengan variable “rfid”? A B Menampilkan di LCD “Access Denied” Database me‐log
aktivitas akses pintu
terbaca tidak berhasil gagal berhasil gagal
Gambar 3.2 Diagram Alur Perancangan Sistem
Dari diagram alur di atas, LCD berperan penting dalam menginformasikan segala aktivitas yang dilakukan Arduino terhadap kartu RFID-tag. Selain menggunakan LCD, penulis juga menuliskan script ke dalam arduino, agar segala aktivitas bisa terbaca melalui port USB Arduino jika dihubungkan dengan menggunakan aplikasi terminal (seperti hyperterminal) yang berfungsi sama seperti fungsi LCD yaitu memonitor tahapan alur aktivitas arduino.
masih
di area
palang pintu
A
Arduino Memerintahkan
Servo untuk membuka &
menahan palang
Kendaraan
sudah melewati
palang ?
Arduino Memerintahkan Servo
untuk menutup palang
Menampilkan di LCD E N D melewati palang pintu B
Gambar 3.3 Informasi Aktivitas Sistem Melalui LCD
3.2 Perancangan Hardware
Dalam perancangan hardware ini, penulis hanya menggunakan port-port digital dari Board Arduino untuk dihubungkan ke sensor,transducer dan actuator. Penggunaan port-port tersebut antara lain :
Tabel 3.1 Penggunaan Port Digital Arduino
No. Digital Port Komponen
0 RFID-reader (ID-12)
1 Not Used
2 Servo Parallax 1800
3 Shield Ethernet Arduino
4 LCD1602 – 74HS595
5 Shield Ethernet Arduino
6 Shield Ethernet Arduino
7 LCD1602 – 74HS595
8 LCD1602 – 74HS595
9 Shield Ethernet Arduino
10 Shield Ethernet Arduino
11 Shield Ethernet Arduino
12 Phototransistor
Gambar 3.5 Arduino Duemilanove
Untuk memudahkan dalam penulisan perancangan hardware, di laporan ini penulis memecah bagian-bagian rangkaian beserta script untuk pemrograman arduino-nya. Sedangkan keseluruhan script arduino untuk sistem perancangan terlampir dalam lampiran di laporan ini. Rangkaian – rangkaian tersebut terdiri dari :
1. Perancangan rangkaian LCD 2. Perancangan rangkaian palang pintu 3. Perancangan rangkaian RFID
4. Konfigurasi Shield-Ethernet Arduino. 5. Perancangan PCB-board rangkaian
3.2.1 Perancangan Rangkaian LCD
Gambar 3.6 Perancangan Rangkaian LCD
Dari rangkaian di atas, penulis menggunakan IC shift register 74HC595 untuk menghemat penggunaan port digital yang akan dihubungkan dengan komponen LCD.
Tabel 3.2 Perbandingan Penggunaan Port Digital untuk LCD dengan Shift-Register dan tanpa Shift-Register
Port LCD
Not using SR Using SR
Digital Port Arduino
Port SR Digital Port Arduino LCD RS 12 6 - LCD Enable 11 10 - LCD D4 5 3 - LCD D5 4 2 - LCD D6 3 1 - LCD D7 2 15 - - - 14 4 - - 12 8 - - 11 7
Secara pemrograman arduino untuk LCD dengan menggunakan komponen shift register 74HC595 hampir sama dengan pemrograman arduino untuk LCD tanpa menggunakan komponen shift register. Perbedaannya adalah penggunaan library C, seperti gambar dibawah ini .
Gambar 3.7 Script Arduino untuk LCD tanpa Shift-Register
Output Program dari kedua program di atas adalah
Gambar 3.9 Output Script Arduino di LCD
3.2.2 Perancangan Rangkaian Palang Pintu
Gambar 3.11 Script Arduino untuk Rangkaian Palang Pintu
Output dari sample program di atas adalah palang pintu akan membuka selama 5 detik, jika dalam 5 detik tersebut sensor phototransistor mendeteksi benda/mobil berada di area palang pintu yang mengakibatkan terhalangnya penerimaan pancaran sinar infra merah maka palang pintu akan ditahan hingga benda/mobil tersebut melewati palang tersebut.
3.2.3 Perancangan Rangkaian RFID
Gambar 3.13 Script Arduino untuk Rangkaian RFID
Gambar 3.12 Perancangan Rangkaian RFID
Output dari program di atas dapat dilihat dengan menggunakan aplikasi terminal di operating system, seperti hyperterminal/ZOC di Microsoft Windows dengan menggunakan parameter baudrate 9600/8/N seperti di bawah ini :
Gambar 3.14 Output Script Arduino untuk RFID di Terminal
3.2.4 Konfigurasi Shield-Ethernet Arduino 3.2.4.1 Sistem Pengalamatan IP
Untuk komunikasi data dalam jaringan komputer, ada beberapa aspek yang perlu diperhatikan mengenai sistem pengalamatan IP atau yang dikenal dengan istilah IP Address. Beberapa aspek tersebut antara lain :
Kelas Jaringan, untuk IPV4 kelas jaringan dibagi menjadi 3 kelas, dimana : Tabel 3.3 Kelas IPV4
Kelas Default Subnet Mask Range IP-Address
A 255.0.0.0 1.x.x.x – 126.x.x.x
B 255.255.0.0 128.x.x.x - 191.x.x.x
C 255.255.255.0 192.x.x.x – 223.x.x.x
Topologi jaringan LAN atau WAN, jika menggunakan LAN umumnya dalam sebuah Network Address yang sama, namun jika menggunakan WAN bahkan internet pasti akan berbeda network-address dan diperlukan perangkat Router sebagai gateway/penghubung antara kedua network-address tersebut.
Gambar 3.15 Perencanaan Sistem Pengalamatan IP
IP Address : 192.168.69.110 Mask Address : 255.255.255.0 IP Gateway : 192.168.69.33 Protocol HTTP (80) Web Server & Database Server IP Address : 192.168.69.120 Netmask : 255.255.255.0
Gambar 3.16 Script Arduino untuk Shield Ethernet
Dalam perancangan sistem ini, penulis menggunakan kelas C dengan Network Address 192.168.69.x dan topologi LAN. Seperti yang terlihat dalam potongan script arduino di atas, untuk sistem pengalamatan IP yang digunakan seperti yang terlihat dalam tabel di bawah ini :
Tabel 3.4 Perencanaan Sistem Pengalamatan IP
IP Address Alokasi untuk
192.168.69.120 Server (Database dan Web)
3.2.4.2 Proses Handshaking Paket Data
Gambar 3.17 Proses Handshaking Paket Data
Proses handshaking : Proses dimana pertukaran paket data antar host yang digunakan untuk mengawali komunikasi data dengan host lain, memelihara komunikasi ketika masih digunakan, dan kemudian menutup komunikasi bila tidak digunakan. Berdasarkan alur di atas, proses pengiriman data hasil pembacaan RFID-reader dikirim ke server dengan menggunakan protokol HTTP (80). Seperti halnya sebuah komputer yang sedang meminta tampilan website dari web server, Arduino juga menggunakan perintah sintak yang sama dalam mengakses webserver.
Hasil Output dari Script Arduino di atas adalah :
Gambar 3.20 Output Script Arduino dari Proses Handshaking
Sample script Arduino di atas mengirim data pembacaan RFID-tag 00007A79BE dengan variable IDString, ke webserver 192.168.69.120, IDString ini yang nantinya akan digunakan webserver untuk melakukan query ke dalam database server. Jika database menemukan data RFID-tag, webserver akan merespon”Y” yang berarti ACCESS-Granted untuk perintah membuka palang pintu, sebaliknya jika tidak ditemukan, webserver akan merespon “N” berarti ACCESS-DENIED
untuk tetap menutup palang pintu. Untuk proses query database, penulis membahasa dalam subbab tersendiri
3.2.5 Perancangan PCB-Board Rangkaian
Dalam perancangan hardware, beberapa rangkaian memerlukan PCB-Board tersendiri untuk menempatkan komponen dalam rangkaian di atas. Penulis membagi rangkaian ke dalam 3 PCB-Board sebagai berikut :
1 PCB-Board I, untuk rangkaian LCD dan RFID
2 PCB-Board II, untuk rangkaian Palang Pintu (Sensor dan Phototransistor)
Gambar 3.23 PCB-Board II Tampak Belakang Phototransistor
3 PCB-Board III, untuk rangkaian Palang Pintu (LED)
Gambar 3.24 PCB-Board III Tampak Belakang 220 Ω
Penghubung antara PCB-Board I dan PCB-Board II penulis menggunakan kabel serupa seperti kabel straight untuk jaringan data dengan antar muka konektor RJ-45, dimana pin-pinnya mempunyai susunan sebagai berikut :
Gambar 3.25 Pin-Assignment Konektor RJ-45
Tabel 3.5 Alokasi Pin RJ-45
Pin Alokasi 1 GND 2 NOT USED 3 PORT 4 ARDUINO 4 PORT 7 ARDUINO 5 PORT 0 ARDUINO 6 NOT USED 7 PORT 8 ARDUINO 8 VCC
Gambar 3.26 Maket Perancangan Sistem
3.3 Perancangan Rekayasa Perangkat Lunak
Dalam perancangan rekayasa perangkat lunak ini penulis membagi 2 sistem perancangan, yaitu :
Perancangan Database
Men-design tabel sederhana yang berisikan data mobil dan data kartu yang akan digunakan dalam proses verifikasi kartu.
Perancangan File Web Server
Men-design tampilan form entri yang digunakan untuk memasukkan data kartu dan data mobil ke dalam tabel-tabel database yang sudah dirancang.
3.3.1 Perancangan Database
Untuk perancangan database server, penulis menggunakan aplikasi server berbasis opensource yang sudah banyak digunakan, yaitu aplikasi MySQL. Aplikasi MySQL ini hampir sama dengan aplikasi Microsoft ACCESS baik dari struktur tabel maupun penggunaan SQL (Structure Query Language). Alasan penulis memilih MySQL adalah karena reliabilitas/ketahanan aplikasi jika diterapkan dalam jaringan data, terlebih jika database yang digunakan sudah sangat besar dan kompleks. Faktor inilah, hampir perusahaan skala nasional dan multinasional menggunakan MySQL sebagai aplikasi database utama untuk menyimpan data-data perusahaan yang bersifat rahasia.
Dalam perancangan database, penulis menggunakan hanya 3 tabel yang akan digunakan untuk menyimpan data kartu dan mobil, tabel-tabel inilah yang nantinya yang akan digunakan untuk menerima proses query dari data rfid yang dkirim oleh Shield Ethernet Arduino. Adapun tabel-tabel tersebut terdiri- dari :
Tabel data_mobil : menyimpan data mobil berisi no polisi kendaraaan, merk, dan tipe kendaraan.
Tabel data_kartu : menyimpan data kartu berisi no polisi kendaraan, rfid, tanggal aktivasi, tanggal kadaluarsa, akses portal.
Tabel data log : menyimpan kapan dan tanggal portal terakses berdasarkan dari no polisi kendaraan.
Gambar 3.27 Perencanaan Field Tabel Database
Langkah – langkah dalam perancangan database adalah sebagai berikut :
1 Membuat Database
Setelah membuat rancangan database, langkah berikutnya dalam pembuatan suatu database dapat dilakukan dengan memberikan perintah SQL berikut :
Mysql> create database perusahaan;
Untuk memastikan apakah perintah tersebut berhasil dilakukan, diberikan perintah SQL berikut:
2 Memilih Database
Sebelum dapat membuat tabel diperlukan pemilihan database yang telah dibuat sebelumnya dengan perintah sebelumnya .
3 Membuat Tabel
Kemudian baru membuat tabel sesuai dengan bagan perancangan di gambar 3.26, dengan perintah :
Tabel data_mobil
Tabel data_kartu
Tabel data_log
mysql> use perusahaan;
Mysql> create tabel data_mobil( > no_polisi varchar(10), > merk_kendaraan(10), > tipe_kendaraan(30));
Mysql> create tabel data_mobil( > no_polisi varchar(10), > rfid(10),
> tanggal_aktivasi date, > tanggal_kadaluarsa date);
mysql> create tabel data_log( > tanggal date,
> jam text,
> no_polisi varchar(10), > record text);
3.3.2 Perancangan File Web Server
Aplikasi web dalam perancangan sistem ini terdiri dari file-file utama yang digunakan untuk proses interaksi antara hardware dan database server. File tersebut adalah sebagai berikut :
1. File verifikasi_rfid.php, peranan file verifikasi_rfid.php sangat penting karena dalam implementasinya file ini digunakan untuk
a. Menerima paket data dari shield-ethernet arduino yang berisikan data RFID-tag kartu (hasil pembacaan RFID reader).
b. Melakukan proses query kedalam database dengan data rfid yang diterima sebagai pernyataan (if). Jika data rfid tersebut ditemukana dalam database, file verifikasi_rfid.php akan memberikan respon ke arduino untuk membuka palang pintu, dan sebaliknya jika tidak ditemukan atau data tidak valid, file verifikasi_rfid.php akan memberikan respon ke arduino untuk tidak membuka palang pintu.
c. Mencatat (log) jam dan tanggal kapan pintu palang terbuka berdasarkan “no polisi kendaraan” ke dalam database.
2. File login.html, digunakan untuk mengakses ke database server.
3. File entry_data_mobil.php dan tambah_data_mobil.php, form isian yang digunakan untuk memasukkan data mobil kedalam database. Script program terlampir dalam LAMPIRAN.
4. File entry_data_kartu.php dan tambah_data_kartu.php, form isian yang digunakan untuk memasukkan data kartu rfid yang kolerasi dengan “no polisi kendaraan” dari data mobil. Selain memasukkan data kartu, form ini juga memberikan masa aktif kartu yang terhitung secara otomatis selama setahun dari tanggal aktivasi kartu. Script program terlampir dalam LAMPIRAN.
Gambar 3.29 Entri Data Kartu
5. File query_log.php, digunakan untuk menampilkan banyaknya akses terhadap palang pintu berdasarkan no polisi kendaraan, tanggal, bulan dan tahun. cript program terlampir dalam LAMPIRAN.
3.3.2.1 Sistem Kerja File verikasi_rfid.php
Gambar 3.31 Sistem Kerja File verifikasi_rfid.php 2a
3
Dari gambaran di atas dapat disimpulkan sebagai berikut :
1. RFID reader membaca RFID-tag kartu yang kemudian mengirimkan data hasil pembacaan ke Arduino dengan ditampung dalam variable IDString. 2. Arduino melakukan komunikasi ke webserver dengan mengirimkan perintah
menggunakan protocol http (80) http://192.168.69.120/verifikasi_rfid.php?rfid=IDString, yang kemudian
webserver akan menampung IDstring yang berisi data RFID tersebut ke dalam variable $rfid.
3. Dengan variabel $rfid inilah yang kemudian menjadi kunci query ke tabel data_kartu dengan perintah "SELECT tanggal_kadaluarsa FROM data_kartu WHERE rfid='$rfid'.
4. Hasil query inilah akan dikembalikan ke webserver berupa karakter “N” atau “Y”.
5. Karakter-karakter tersebut dikirim ke Arduino sebagai respon dari verifikasi RFID-tag. Arduino membaca karakter tersebut dengan sebuah kondisi pernyataan, karakter “N” berarti “ACCESS DENIED” (Arduino memerintahkan palang pintu untuk tetap tertutup) dan “Y” berarti “ACCESS GRANTED” (Arduino memerintahkan palang pintu untuk terbuka beberapa detik)
File verifikasi_rfid di samping mengecek status kartu RFID-tag, file
ini juga akan melakukan pencatatan (log) jika data RFID ditemukan
dalam database di tabel kartu dengan perintah query
“INSERT INTOdata_log(tanggal, jam, no_polisi, record) VALUES (‘$tanggal’, ’$jam’, ’$no_polisi’,’Akses Portal)”.