APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN MENGGUNAKAN SENSOR GERAK DAN MIKROKONTROLER ARDUINO Ade Pramono1, Ary Mazharuddin2, Hudan Studiawan3 Jurusan Teknik Informatika, Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya Email:
[email protected] ABSTRAK Pada paper ini, pengumpulan data lalu lintas didapatkan dengan menggunakan mikrokontroler Arduino yang menggunakan sensor gerak. Sensor gerak akan mendeteksi pergerakan diatas jalan yang kemudian diproses oleh mikrokontroler Arduino. Oleh mikrokontroler Arduino data tersebut dikirimkan secara periodik ke data server. Pengiriman data tersebut menggunakan metode GET pada server berbasis PHP. Pengiriman data tersebut terlebih dahulu dienkripsi dengan RC4. Enkripsi dilakukan menggunakan private key yang selalu berubah setiap terjadi pengiriman data. Private key tersebut dikirimkan oleh server setelah berhasil menerima data yang dikirimkan oleh mikrokontroler Arduino. Server akan mendekripsi data yang dikirimkan mikrokontroler Arduino yang kemudian akan disimpan pada database MySQL. Hasil uji coba dibedakan berdasarkan kategori jalan yaitu kepadatan rendah, sedang dan ramai. Hasil pengujian menunjukkan bahwa sensor gerak belum mampu dalam membedakan kendaraan sepeda motor dan mobil. Namun keakuratan yang didapatkan oleh mikrokontroler Arduino secara keseluruhan sebesar 90%, 82% dan 91% untuk masing-masing kategori. Kata Kunci: data lalu lintas mobil, mikrokontroler arduino, aplikasi android, enkripsi dekripsi rc4 pada mikrokontroler arduino kepadatan lalu lintas tersebut dengan mengakses ke server melalui aplikasi berbasis Android. Perkembangan sistem operasi Android sebagai salah satu sistem operasi untuk perangkat mobile telah menyebabkan membanjirnya perangkat-perangkat mobile berbasis Android di pasaran. Didukung teknologi terbaru dan berbagai fitur serta kemudahan dalam komunikasi terutama koneksi internet membuat perangkat mobile ini diminati banyak pengguna. Hal ini yang menjadi alasan dipilihnya Android sebagai aplikasi klien. Dengan kombinasi teknologi mikrokontroler dan Android informasi kepadatan lalu lintas tidaklah susah didapatkan. Oleh karena itu, dalam paper ini dikembangkan sistem penghitungan kepadatan arus lalu lintas mobil yang dilengkapi enkripsi untuk mengamankan data.
1.
Latar Belakang Data kepadatan lalu lintas merupakan data yang penting sebagai informasi mengenai kondisi lalu lintas suatu jalan. Menurut penelitian di 34 titik jalan arteri di Jakarta yang dilakukan Departemen Perhubungan RI pada tahun 2000 menunjukkan ada 32 titik (94%) ruas jalan arteri di Jakarta yang melebihi kapasitas [1]. Berdasarkan data tersebut, informasi kepadatan lalu lintas dibutuhkan tidak hanya untuk statistik pengembangan jalan tersebut. Namun, data tersebut akan menjadi informasi yang berguna bagi pengguna jalan tersebut. Data kepadatan lalu lintas saat ini didapatkan dengan dua cara, yaitu penghitungan manual dan menggunakan detektor. Pada penghitungan manual pengumpulan data kepadatan arus lalu lintas dengan menempatkan surveyor pada ruas jalan tertentu. Cara kedua adalah dengan menggunakan detektor. Penggunaan detektor ini ditanamkan pada aspal jalan yang membuat biaya pengadaan dan pemeliharaan detektor ini menjadi mahal. Perkembangan mikrokontroler dewasa ini membuat mikrokontroler yang dilengkapi sensor gerak dapat menggantikan detektor. Sebagai contohnya adalah mikrokontroler Arduino bisa menghidupkan kran air jika ada pergerakan manusia di dekatnya dan akan mematikan kran air jika tidak terdapat gerakan di dekatnya. Dengan pendekatan tersebut sensor gerak ini dapat digunakan sebagai alternatif penghitung data kepadatan lalu lintas dengan mendeteksi pergerakan kendaraan yang melintas. Data dari sensor akan dikirim ke mikrokontroler untuk di enkripsi dengan algoritma RC4 yang kemudian dikirim ke server. Para pengguna jalan dapat mendapatkan informasi
2. Tinjauan Pustaka 2.1 Ardunio Arduino adalah sebuah mikrokontroler singleboard yang bersifat open-source seperti pada Gambar 2.1. Hardware mikrokontroler Arduino diprogram dengan menggunakan bahasa pemrograman wiringbased yang berbasiskan syntax dan library. Pemrograman wiring-based ini tidak berbeda dengan C/C++, tetapi dengan beberapa penyederhanaan dan modifikasi. Untuk memudahkan dalam pengembangan aplikasinya, mikrokontroler Arduino juga menggunakan Integerated Development Environment (IDE) berbasis processing [2]. Mikrokontroler Arduino dapat dipasangkan dengan bermacam-macam sensor dan aktuator lainnya.
1
Adapun sensor dan aktuator yang dapat dipasangkan pada Arduino seperti sensor gerak, ultrasonik, panas, suara, Ethernet Shield, LED Display dan yang lainnya.
Gambar 2.2 Cara Kerja Sensor Gerak
Gambar 2.1 Mikrokontroler Arduino Uno
Dengan adanya sensor dan aktuator ini membuat mikrokontroler Arduino dapat berinteraksi dengan lingkungan sekitarnya. Penggunaan sensor maupun aktuator disesuaikan dengan kebutuhan dan tujuannya. Sebagai contoh adalah aplikasi Line Tracker, pada aplikasi ini hardware yang digunakan yaitu sensor line tracker dan motor. Sehingga mikrokontroler Arduino dapat mengikuti jejak garis yang dilacak.
Gambar 2.3 Penyebaran Sensitifitas Sensor Pyroelectric
2.3 PHP CodeIgniter CodeIgniter adalah sebuah open-source framework PHP yang menerapkan disain Model-ViewController pada framework-nya. CodeIgniter diciptakan oleh Rick Ellis pada versi pertamanya menggunakan PHP 4. Dokumentasi yang baik, dukungan komunitas yang besar, fleksibelitas dalam pengembangannya membuat CodeIgniter menjadi framework yang popular diantara framework PHP lainnya. Keunggulan utama CodeIgniter dibandingkan framework lainnya adalah CodeIgniter memiliki kesederhanaan dalam pengembangannya, sehingga mudah untuk dipelajari. Selain itu keunggulan lainnya adalah CodeIgniter merupakan sebuah framework yang ringan dan tidak membebani server ketika menangani load yang besar dari client. Maka dari itu, CodeIgniter memiliki performa yang lebih baik diantara framework lainnya. Aplikasi CodeIgniter adalah aplikasi yang menerapkan konsep tiga tingkat. Tingkat-tingkat itu diantaranya Model-View-Controller. Controller adalah layer dimana fungsi-fungsi logika dijalankan. Model merupakan layer yang menghubungkan basis data dengan aplikasi. Sedangkan View merupakan tempat dimana interface diimplementasikan.
2.2 Sensor Gerak Sensor gerak merupakan sensor yang dapat mendeteksi gerakan yang terjadi disekitar sensor. Sensor gerak memiliki bentuk yang kecil, membutuhkan daya listrik yang rendah, dan mudah dalam pengaplikasiannya dalam kehidupan sehari-hari. Sensor gerak dibuat dari sebuah pyroelectric sensor yang memiliki kristal pada tengahnya yang berfungsi untuk mendeteksi tingkat radiasi dari infrared. Sensor gerak ini memiliki 2 bagian yang sensitif terhadap radiasi infrared. Ketika suatu gerakan melewati sensor, bagian pertama akan menghasilkan tingkat radiasi infrared yang lebih tinggi dibandingkan bagian kedua, sehingga sensor akan menghasilkan positif diferensial. Kemudian ketika gerakan tersebut akan meninggalkan sensor, bagian pertama akan menghasilkan tingkat radiasi infrared yang lebih rendah daripada bagian kedua, sehingga sensor akan menghasilkan negatif diferensial. Ketika sensor menghadapi positif dan negatif diferensial, sensor akan mendeteksinya sebagai sebuah gerakan dan akan memberikan sinyal HIGH. Namun jika tidak terjadi gerakan atau dalam kondisi idle, sensor akan menghasilkan sinyal LOW. Proses ini dapat ditunjukkan pada Gambar 2.2. Sensor gerak memiliki bingkai lensa berwarna putih yang terletak seperti setengah bola. Bingkai lensa tersebut berfungsi untuk menyebarkan kepekaan sensor pyroelectric sehingga memiliki jangkauan pendeteksian yang lebih luas seperti yang digambarkan pada Gambar 2.3.
2.4 ARCFOUR (RC4) ARCFOUR (RC4) adalah sebuah stream cipher yang didisain pada tahun 1987 oleh Ron Rives untuk perusahaan RSA Security. RC4 adalah variabel keysize stream cipher dengan menerapkan operasi yang berorientasi pada tiap byte datanya. Stream cipher
2
8 9
adalah sebuah simetrik key cipher dimana byte dari plaintext dikombinasikan dengan pseudorandom cipher. Sedangkan cipher adalah sebuah algoritma yang digunakan untuk melakukan enkripsi dan dekripsi [3]. RC4 yang memiliki kecepatan dan algoritma yang sederhana membuat RC4 diterapkan pada berbagai aplikasi. Keefesienannya dalam implementasinya baik dalam software membuat RC4 mudah untuk dikembangkan. Dalam implementasinya, algoritma RC4 membutuhkan sebuah key untuk menghasilkan pseudorandom byte pada saat enkripsi maupun dekripsi seperti yang ditunjukkan pada Gambar 2.11. Key yang digunakan haruslah rahasia dan hanya diketahui oleh pengirim dan penerima dari ciphertext yang dikirim.
Gambar 2.6 Pseudocode Algoritma Pseudo-random Generation
2.5 Android Pada platform Android, SDK yang digunakan adalah Eclipse. Untuk mengembangkan aplikasi Android dibutuhkan plugin bernama Android Development Tools (ADT) [4]. ADT ini berfungsi untuk mengemulasikan sebuah aplikasi yang dibuat seakan-akan ketika aplikasi dijalankan, aplikasi tersebut berjalan pada hardware yang sebenarnya. Dalam mengembangkan aplikasi Android dengan menggunakan SDK, terdapat bagian penting terdapat pada aplikasi itu sendiri yaitu Activity Class, Android Manifest, Android UI, dan R.java. Activity Class merupakan class dtulis dengan menggunakan bahasa Java. Activity Class ini berisi halaman yang akan tampil pada layar ketika aplikasi berjalan. Pada Activity Class inilah logika untuk mengimplementasikan interface diterapkan. Untuk setiap layout memiliki pengaturan letak setiap elemen. Pada aplikasi Android setiap layout dipresentasikan dengan file Extensible Markup Language (XML). Untuk Activity Class yang bernama Main, akan terdapat file XML bernama Main.xml. Untuk menjembatani antara class dan layout terdapat sebuah file bernama R.java. R.java merupakan class yang secara otomatis dihasilkan ketika membangun sebuah aplikasi. File R.java ini akan selalu ada disetiap aplikasi Android. Setiap aplikasi Android mutlak memiliki sebuah Android Manifest yang umumnya terdapat pada file AndroidManifest.xml. Pada manifest ini terdapat informasi mengenai spesifikasi dari aplikasi yang diciptakan. Pada manifest tersebut terdapat versi, label, intent yang digunakan, akses aplikasi yang diberikan, dan banyak lagi. Setiap aplikasi Android memiliki file manifest yang berbeda yang bergantung pada akses yang akan digunakan oleh aplikasi tersebut.
Gambar 2.4 Stream Cipher Diagram
Seperti pada stream cipher lainnya, pseudorandom stream bit atau keystream ini dapat digunakan sebagai enkripsi dengan menggabungkan plaintext dengan menggunakan bit-wise exclusive-or atau XOR. Sedangkan dekripsinya menggunakan cara yang sama karena RC4 adalah operasi simetrik. Untuk menghasilkan keystream, cipher membuat inisialisasi awal yang terdiri dari 2 bagian, yaitu: 1. Permutasi dari 256 kemungkinan (dipresentasikan oleh array "S") 2. index pointer 8-bit (dipresentasikan oleh "i" dan "j"). Permutasi awal diinisialisasikan dari panjang key yang akan digunakan, biasanya 40 bit hingga 256 bit dengan menggunakan algoritma Key-Scheduling (KSA). Setelah proses ini selesai, stream dari bit akan dihasilkan dengan menggunakan algoritma PseudoRandom Generation (PRGA). 1 2 3 4 5 6 7 8
for i from 0 to S[i] := i Endfor j := 0 for i from 0 to j := (j keylength]) mod swap values Endfor
3. Perancangan Perangkat Lunak 3.1 Arsitektur Sistem Ide awal dari sistem ini adalah setiap mikrokontroler Arduino pada setiap jalan yang akan dipantau mengirimkan datanya ke sebuah server pusat, dimana server tersebut akan menyimpan semua informasi mengenai data dari mikrokontroler Arduino itu sendiri maupun data jumlah kendaraan. Server pusat tersebut juga akan menjadi sumber data bagi aplikasi client. Arsitektur sistem ini dapat digambarkan seperti pada Gambar 3.1. Setiap mikrokontroler Arduino akan mengirimkan datanya ke server menggunakan perangkat GSM Shield, dimana GSM Shield ini adalah berupa modem GSM yang memiliki koneksi internet. Namun karena keterbatasan hardware pada paper ini sistem yang diimplementasikan menggunakan Ethernet Shield atau Ethernet Card. Penggunaan interface yang berbeda ini
255
255 + S[i] + key[i 256 of S[i] and S[j]
mod
Gambar 2.5 Pseudocode Algoritma Key-Scheduling 1 2 3 4 5 6 7
output K Endwhile
i := 0 j := 0 while GeneratingOutput: i := (i + 1) mod 256 j := (j + S[i]) mod 256 swap values of S[i] and S[j] K := S[(S[i] + S[j]) mod 256]
3
Gambar 3.1 Arsistektur Umum Sistem
diterima, data tersebut akan disesuaikan dengan format data yang sudah ditentukan oleh server.
tidak akan mempengaruhi kinerja dari sistem ini, karena baik Ethernet Shield maupun GSM Shield tetap menggunakan protokol HTTP sebagai komunikasi datanya. Pada paper ini menggunakan sebuah mikrokontroler Arduino yang dilengkapi dengan dua buah sensor gerak saja. Seperti pada Gambar 3.1 arsitektur umum sistem ini terdiri dari 3 bagian penting, yaitu: pengumpul data, pengolah data, dan client. Pada pengumpulan data dilakukan oleh mikrokontroler Arduino dengan menggunakan sensor geraknya. Sensor gerak pada mikrokontroler Arduino akan bekerja jika terjadi gerakan disekitarnya. Sensor gerak akan bernilai HIGH jika mendeteksi adanya gerakan dan akan bernilai LOW jika tidak terdeteksi adanya gerakan. Setiap jalur jalan membutuhkan dua buah sensor gerak, dimana untuk menghilangkan error rate dari gerakan yang bukan mobil. Mikrokontroler Arduino akan mendeteksi adanya satu kendaraan mobil yang lewat dengan menggunakan syarat bahwa kedua sensor harus dalam keadaan HIGH. Dengan jarak antara kedua sensor yang lebih panjang dari panjang kendaraan roda dua, maka kendaraan roda dua tidak akan dihitung oleh mikrokontroler Arduino. Proses pengumpulan data berhenti sampai disini. Data akan dikirimkan mikrokontroler Arduino ke server melalui koneksi internet dengan menggunakan protokol HTTP. Proses selanjutnya adalah pengolahan data yang dilakukan oleh server. Server mendapatkan data dari Arduino yang mengirimkan data secara berkala. Data yang dikirimkan melalui tahap enkripsi terlebih dahulu. Enkripsi yang digunakan adalah enkripsi RC4 yang menggunakan private key berbeda-beda di setiap transaksi datanya. Setiap data yang diterima akan disimpan pada database jika data yang diterima valid. Untuk menentukan valid atau tidaknya data yang
3.2 Proses Penghitungan Kendaraan Untuk mendeteksi kendaraan yang bergerak digunakan 2 buah sensor gerak. Sensor menandakan terjadinya gerakan dengan sebuah sinyal HIGH, dan menandakan sinyal LOW jika tidak terjadi gerakan. Ketika sebuah sensor menandakan sinyal HIGH tetapi sensor lainnya menandakan sinyal LOW, maka tidak akan ada penghitungan jumlah kendaraan. Namun, jika kedua buah sensor menandakan sinyal HIGH maka akan dianggap terjadi satu gerakan kendaraan yang melintas. Proses ini digambarkan pada diagram alir yang ditunjukkan pada Gambar 3.2. Sedangkan ilustrasi sensor mendeteksi kendaraan yang melintas digambarkan pada Gambar 3.3. Start
Tidak
Sensor 1 == HIGH
Tidak Sensor 2 == HIGH
Jumlah Kendaraan + 1
Finish
Gambar 3.2 Proses Penghitungan Kendaraan
4
Start
Tidak Tidak
Server Terhubung
Ya
Ciphertext Masuk
Ya Private Key
Gambar 3.3 Arsitektur Sensor Gerak
Dekripsi RC4
Ciphertext
Private Key Baru
3.3 Proses Enkripsi Dekripsi RC4 Data jumlah kendaraan yang sudah dihitung akan dikirim secara berkala ke server. Namun sebelum data tersebut dikirim ke server, data tersebut diolah terlebih dahulu lalu kemudian dienkripsi dengan menggunakan private key yang sudah ditentukan. Setelah menjadi sebuah ciphertext yang terenkripsi, mikrokontroller Arduino akan melakukan sambungan dengan server. Kemudian mikrokontroler Arduino akan mengirimkan ciphertext tersebut menggunakan protokol HTTP dengan fungsi GET. Namun, jika server tidak dapat terhubung akan dilakukan pengiriman pada periode selanjutnya. Proses ini dapat digambarkan seperti Gambar 3.4. Setelah terjadi transaksi data antara mikrokontroler Arduino dengan server, server akan mengirimkan sebuah privatekey baru sebagai tanda data telah diterima. Private key tersebut dikirimkan dalam bentuk ciphertext yang sudah terenkripsi. Ciphertext tersebut akan didekripsi dengan menggunakan private key sebelumnya. Setelah didekripsi, mikrokontroler Arduino akan mengganti private key lama dengan private key yang baru. Prosesnya dapat digambarkan seperti diagram alir pada Gambar 3.5.
Finish
Gambar 3.5 Proses Menerima Data dan Dekripsi
3.4 Rancangan Antar Muka Aplikasi Android Pada sistem tidak terdapat banyak antar muka dikarenakan sistem ini berjalan secara otomatis. Konfigurasi dan penyetelan alat seperti mikrokontroler Arduino dan server hanya ketika pertama kali dijalankan. Bagian sistem yang memiliki antar muka bagi user-nya adalah aplikasi Android. Aplikasi ini merupakan aplikasi client yang ditujukan bagi pengguna jalan. Sehingga aplikasi pada Android ini disajikan dalam bentuk peta dengan informasi yang cukup.
Start
Tidak milis() == periode
Ya
Gambar 3.6 Rancangan Antar Muka
Plaintext = Data
Private Key
Enkripsi RC4
Kirim Ciphertext (HTTP GET method)
Gambar 3.6 kiri merupakan antar muka ketika aplikasi client dijalankan. Sedangkan Gambar 3.6 kanan merupakan antar muka ketika sebuah ruas jalan yang lebih spesifik dipilih. Antar muka tersebut akan menampilkan informasi yang lebih jelas seperti jumlah kendaraan dan terakhir data diperbarui. Ketika aplikasi pertama kali dijalankan, aplikasi akan secara otomatis bergerak ke poisisi pada peta dimana client sedang berada. Posisi ini didapat dari bantuan GPS yang tertanam pada perangkat Android. Setelah itu aplikasi akan menampilkan data jumlah kendaraan pada setiap jalan yang berada disekitar client berada.
Menghubungkan Server
Ya
Server Terhubung
Finish
Gambar 3.4 Proses Enkripsi dan Mengirimkan Data
5
sensor gerak lainnya sepanjang 2 meter dengan mikrokontroler Arduino berada ditengahnya. Dari sensor gerak kabel hijau akan dihubungkan dengan mikrokontroler Arduino melalui proyek board. Kemudian dari proyek board diteruskan ke mikrokontroler Arduino menggunakan kabel hijau yang masuk ke pin nomer 8 dan 9 pada mikrokontroler Arduino. Pin nomer 8 dan 9 akan dibaca sebagai tempat masuknya input dari sensor gerak dalam perangkat lunak. Ketika mikrokontroler Arduino mendeteksi adanya kendaraan yang melintas, mikrokontroler Arduino akan menyalakan indikator berupa lampu LED berwarna biru dan akan mati ketika kendaraan sudah melintas. Dari mikrokontroler Arduino lampu LED berada pada pin 7. Dimana pada gambar lampu LED dan mikrokontroler Arduino disambungkan dengan menggunakan kabel berwarna kuning. Untuk mendeteksi kendaraan yang melintas, mikrokontroler Arduino ini dibantu oleh 2 buah sensor gerak. Dimana sensor 1 diinisialisasikan sebagai “pirPin1” dan sensor 2 diinisialisasikan sebagai “pirPin2”. Seperti pada Gambar 4.5 baris 1 dan 2 merupakan kondisi dimana sensor 1 dan sensor 2 harus bernilai HIGH atau yang berarti sensor sedang mendeteksi adanya gerakan sehingga pada baris 4 jumlah kendaraan akan bertambah.
4. Implementasi Perangkat Lunak 4.1 Mikrokontroler Arduino Pada paper ini dibuat sebuah prototype dari rancangan sistem yang sebenarnya. Prototype menggunakan mikrokontroler Arduino yang dilengkapi dengan Ethernet Shield, 2 buah sensor gerak dan lampu LED. Pada implementasi prototype ini, mikrokontroler Arduino diletakkan pada sebuah proyek board yang memiliki jalur pin yang menyebar seperti pada Gambar 4.1. Sehingga sensor gerak dan lampu LED dapat dipasangkan dengan mudah. Sedangkan Ethernet Shield adalah aktuator yang khusus dibuat untuk mikrokontroler Arduino sehingga untuk pemasangannya Ethernet Shiled ditancapkan pada bagian atas mikrokontroler Arduino seperti yang ditunjukkan pada Gambar 4.2.
Gambar 4.1 Mikrokontroler Arduino pada Proyek Board
1 2 3 4 5 6 7
If pirPin1 = HIGH do If pirPin2 = HIGH do ledPin = HIGH objectCounter + 1 Wait 50 ms endIf endIF
Gambar 4.5 Pseudocode Mendeteksi Kendaraan 1 2 3 4 5
Gambar 4.2 Mikrokontroler Arduino dan Ethernet Shield
6 7 8 9 10 11 12 13 14 15 16 17
for i from 0 to 255 S[i] := i Endfor j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j] i := 0 j := 0 while GeneratingOutput: i := (i + 1) mod 256 j := (j + S[i]) mod 256 swap values of S[i] and S[j] K := S[(S[i] + S[j]) mod 256] Ciphertext = data XOR S[(S[i]+S[j])%256]) output Ciphertext Endwhile
Gambar 4.6 Pseudocode Enkripsi RC4
Seperti yang sudah dijelaskan pada Bab 2 mengenai enkripsi RC4, terdapat 2 bagian dalam pengimplementasian enkripsi RC4, yaitu keyscheduling dan pseudo-random generation. Keyscheduling ditunjukkan dengan Gambar 4.6 pada baris 1-7. Sedangkan pseudo-random generation ditunjukkan pada baris 8-17. Baris 15 merupakan proses terakhir dimana ciphertext dibentuk.
Gambar 4.3 Rancangan Mikrokontroler Arduino dengan 2 Sensor Gerak
Sensor gerak bertugas untuk mendeteksi gerakan kendaraan. Sensor gerak ini diletakkan sejauh 1 meter ke kiri dan 1 meter ke kanan dari mikrokontroler Arduino seperti yang ditunjukkan pada Gambar 4.3. Sehingga jumlah panjang sensor gerak satu dengan
6
4.2 Server Setelah menjadi karakter, ciphertext tersebut akan didekripsi dengan menggunakan algoritma RC4 dengan private key yang sudah tercatat pada database. Seperti yang sudah dijelaskan pada Bab 2, algoritma RC4 terdiri dari key-scheduling dan pseudo-random generation, dimana enkripsi ini diimplementasikan tidak jauh berbeda dengan yang diimplementasikan pada mikrokontroler Arduino. Sedangkan implementasi keseluruhan dari server dapat digambarkan pada alur proses Gambar 4.7 dan Gambar 4.8. Menerima Data
Melakukan Dekripsi
Cek Validasi
Menyimpan Ke Database
Mengrimkan Key Baru
Gambar 4.10 Implementasi Antar Muka Aplikasi
Gambar 4.7 Alur Proses Server untuk Mikrokontroler Arduino Menerima Permintaan Data
Mengumpulkan Data
kendaraan/menit dan tinggi dengan kriteria lebih dari 10 kendaraan/menit. Pada uji coba ini dilakukan evaluasi dari jarak antar sensor. Pada hasil pengujian, kendaraan sepeda motor masih dapat dideteksi. Sehingga untuk evaluasi jarak antar sensor diperlebar menjadi 3 meter. Akan terdapat 2 hasil, sebelum evaluasi dan sesudah evaluasi. Sedangkan nilai keakuratan dihitung dari:
Mengirimkan Data
Gambar 4.8 Alur Proses Server untuk Aplikasi Android
4.3 Android Implementasi pada Android dilakukan dengan 3 proses. Proses pertama mendapatkan posisi GPS dan menampilkan peta. Proses kedua meminta data ke server berdasarkan posisi yang didapat pada GPS. Sedangkan proses ketiga yaitu menampilkan informasi yang dikirimkan server pada peta sesuai dengan lokasinya. Proses ini berlangsung berulang-ulang yang dapat digambarkan pada Gambar 4.9. Sedangkan Gambar 4.10 merupakan tampilan antar muka yang sudah diimplementasikan.
Jumlah Kendaraan Mobil Keakuratan1(%) absolute Jumlah Terdeteksi Jumlah Kendaraan Keakuratan2(%) absolute Jumlah Terdeteksi
1.
Kepadatan rendah Pengujian pada kategori ini dilakukan di dalam perumahan Wisma Permai I. Uji coba dilakukan pada pukul 13.00. Dimana lokasi ini merupakan jalan utama dari perumahan ini. Hasil uji coba ditunjukkan pada Tabel 5.1. Dari hasil uji coba tersebut didapatkan hasil yang akurat. Jika dihitung rasio keakuratannya didapatkan keakuratan sebesar 70%. Namun pada 2 uji coba kendaraan sepeda motor masih dideteksi oleh sensor yang menghasilkan error rate sebesar 30%.
Mendapatkan Posisi GPS
Menampilkan Data dalam Peta
Tabel 5.1 Keakuratan Kepadatan Rendah Keakuratan(%) Uji Coba ke Sebelum evaluasi Setelah Evaluasi 1 100 100 2 100 100 3 50 50 4 0 100 5 100 100 Rata-rata 70 90
Meminta Data ke Server
Gambar 4.9 Implementasi pada Android
5.
Uji Coba dan Hasil Uji coba dilakukan untuk mengetahui seberapa besar tingkat kesuksesan sistem ini. Uji coba akan dilakukan untuk mengetahui tingkat keakuratan dalam mendeteksi kendaraan. Kecepatan aplikasi Android mengakses data ke server. Dan kecepatan mikrokontroler Arduino mengirimkan data ke server.
2.
Kepadatan sedang Pengujian pada kategori ini dilakukan di dalam area ITS, di Jalan Teknik Sipil. Jalan ini memiliki 2 jalur yang dibatasi oleh taman. Karena keterbatasan hardware pengujian dilakukan hanya pada satu jalur. Proses pengujian dilakukan pada sore hari pukul 16.30 WIB, dimana merupakan jam-jam sibuk. Dari hasil pengujian didapatkan data sebagi berikut.
5.1 Uji Coba Performa Keakuratan Penghitungan Pada uji coba ini dilakukan di 3 kategori tempat. Dimana kategori rendah yang memiliki kriteria kurang dari 3 kendaraan/menit. Sedang memiliki kriteria 5-10
7
Tabel 5.2 Keakuratan Kepadatan Sedang Keakuratan(%) Uji Coba ke Sebelum evaluasi Setelah Evaluasi 25.86 1 34.09 17.78 2 20.00 41.18 3 21.15 28.85 4 25.71 24.19 5 30.00 27.57 Rata-rata 26.19
3 4 5
76.03 95.24 94.44 86.55
Rata-rata
96.30 85.05 94.44 82.15
5.2 Uji Coba Kecepatan Pengiriman Data Uji coba ini dilakukan untuk mengetahui tingkat kesuksesan mikrokontorler Arduino dalam mengirimkan data ke server. Mikrokontroler Arduino akan diuji dengan melakukan pengiriman sebanyak 30 kali. Hasil yang didapatkan dapad dilihat pada Tabel 5.6. Dimana kesuksesan berhasil 100% dengan ratarata kecepatan transfer 509 milidetik.
Tabel 5.3 Keakuratan Seluruh Kendaraan Kepadatan Sedang Keakuratan(%) Uji Coba ke Sebelum evaluasi Setelah Evaluasi 1 100.00 100.00 2 92.11 95.74 3 94.23 86.44 4 88.57 89.66 5 88.89 85.48 Rata-rata 92.76 91.46
Tabel 5.6 Uji Coba Pengiriman Data
Dari hasil pengujian didapatkan 2 buah tabel, yaitu Tabel 5.1 yang memberikan keakuratan dalam mendeteksi mobil dan Tabel 5.2 memberikan keakuratan dalam mendeteksi semua kendaraan. Dari hasil keakuratan pendeteksian mobil didapatkan sebesar 26.19% dan setelah evaluasi sebesar 27.57%. Hasil ini masih jauh dari yang diharapkan. Namun, jika dihitung secera keselurhan hasil yang didapatkan sebesar 92.76% dan setelah evaluasi 91.46%.
Uji Coba
Data dikirim
Data diterima
1 2 3 …… 27 28 29 30
010228007176204139 050183217124056164 221078245181178077 ……………………….. 118182021019239042 099109125200219008 105074255198075061 010003208022236054
015243002226252214 039182216057020241 221085227237129007 …………………… 112165011071194107 106126119158229072 125086255130120118 006024216067214116 Rata-rata
Wakt u (mili detik) 474 460 472 …… 675 465 444 529 509
5.3 Uji Coba Aplikasi Android Uji coba dilakukan untuk mengetahui seberapa cepat akses yang diberikan oleh aplikasi Android ketika aplikasi dijalankan. Uji coba dilakukan pada 2 jenis jaringan, yaitu 3G dan CDMA. Uji coba dilakukan sebanyak 5 kali untuk mengetahui hasil ratarata kecepatan akses aplikasi. Hasil uji coba menunjukkan kecepatan rata-rata dari jaringan 3G sebesar 2.9 detik dan pada CDMA 2.5 detik. Hasil ini menunjukkan baik pada jaringan 3G maupun CDMA aplikasi masih layak untuk digunakan.
Kepadatan tinggi Pengujian ketegori ini dilakukan di Jalan Raya ITS. Jalan ini merupakan jalan protokol yang memiliki 2 jalur dan total 4 lajur. Proses pengujian hanya dilakukan pada 1 jalur dan 1 lajur saja. Proses pengujian dilakukan pada pukul 17.30 WIB. Sama seperti uji coba pada kepadatan sedang, hasil uji coba pada Tabel 5.4 tidak sesuai harapan. Dimana sepeda motor yang melintas masih tetap dihitung oleh mikrokontroler Arduino. Jika rasio keakuratan dihitung berdasarkan kendaraan mobil saja akan didapatkan hasil sebesar 53.43% dan 60.47% setelah evaluasi. Sedangkan jika dihitung secara keseluruhan didapatkan 86.55% dan 82.15% setelah evaluasi. 3.
Tabel 5.7 Hasil Uji Coba Aplikasi Android Jaringan 3G Uji coba ke Waktu (detik) 1 3.3 2 3.3 3 2.5 4 3.7 5 1.7 Rata-rata 2.9
Tabel 5.4 Keakuratan Kepadatan Tinggi Keakuratan(%) Uji Coba ke Sebelum evaluasi Setelah Evaluasi 1 63.72 85.54 2 60.00 63.55 3 38.02 38.89 4 52.50 60.44 5 52.94 53.92 Rata-rata 53.43 60.47
Jaringan CDMA Uji Coba ke Waktu (detik) 1 2.4 2 2.7 3 2.6 4 2.6 5 2.3 Rata-rata 2.5
5.4 Hasil Analisa Dari hasil uji coba didapatkan bahwa sensor gerak belum mampu membedakan pendeteksian antara mobil dan sepeda motor. Evaluasi yang dilakukan tidak juga dapat membantu mengurangi error rate yang dibuat oleh sepeda motor. Pemberian halangan pada sensor gerak tidak juga dapat memberikan ruang pendeteksian yang lebih fokus. Sepeda motor masih menempati ruang sensitif sensor seperti pada Gambar 5.8.
Tabel 5.5 Keakuratan Seluruh Kendaraan Kepadatan Tinggi Keakuratan(%) Uji Coba ke Sebelum evaluasi Setelah Evaluasi 1 83.70 60.14 2 83.33 74.83
8
3.
4. Gambar 5.8 Analisa Pendeteksian Sensor
Sedangkan pendeteksian pada kategori kepadatan tinggi yang memberikan hasil tidak lebih akurat daripada pada kepadatan sedang dikarenakan ketika mobil dan sepeda motor berjalan beriringan sensor tidak dapat membedakan kendaraan tersebut. Ilustrasi ini ditunjukkan pada Gambar 5.9.
6.2 Saran Setelah melakukan perancangan, pengimplementasian dan pengujian, ditemui kekurangan pada sistem yang sudah dibuat. Ada beberapa saran yang dapat dilakukan untuk mengurangi kekurangan tersebut. 1. Mengganti sensor gerak dengan sebuah sensor yang lebih fokus dalam mendeteksi gerakan seperti laser. 2. Mengganti mikrokontroler Arduino dengan versi yang lebih cepat sehingga proses penghitungan kendaraan, enkripsi dekripsi data dapat dilakukan secara realtime.
7. Gambar 5.9 Kendaraan
Analisa
Keakuratan
Perangkat lunak yang diimplementasikan pada server sudah dapat menangani pengiriman data yang dilakukan mikrokontroler Arduino. Server dapat melakukan enkripsi dan dekripsi untuk mengamankan data. Server juga dapat menangani permintaan data oleh aplikasi Android dengan response yang cepat. Perangkat lunak yang dibuat pada perangkat Android sudah dapat menampilkan peta dan informasi yang diberikan oleh server dalam bentuk JSON. Perangkat lunak ini juga sudah dapat menampilkan titik-titik lokasi mikrokontroler Arduino pada peta dengan benar.
Penghitungan
[1]
Daftar Pustaka PDAT, 2006. Masalah Kemacetan Jakarta,
6. Penutup 6.1 Kesimpulan Dari hasil pengamatan selama perancangan, pengimplementasian, dan proses uji coba sistem didapatkan kesimpulan sebagai berikut. 1. Perangkat keras yang dibuat sudah dapat mendeteksi gerakan kendaraan, namun perangkat keras tersebut tidak dapat membedakan kendaraan sepeda motor dan mobil yang melintas. 2. Perangkat lunak yang dibuat juga sudah dapat melakukan enkripsi dan mengirimkan data tersebut ke server. Perangkat lunak ini dapat menerima private key dan melakukan dekripsi dari ciphertext yang dikirimkan server.
06/03/17/pol,20060317-01,id.html>. [diakses terakhir 5 September 2011].
9
[2]
Margelis, Michael. 2011. Arduino Cookbook. USA : O’Reilly Media, Inc.
[3]
Stallings, Wiliiam. 2005. Cryptography and Network Security Principles and Practices, Fourth Edition. Prentice Hall.
[4]
Meier, Reto. 2009. Professional Android™ Application Development . Wiley Publishing, Inc.