• Tidak ada hasil yang ditemukan

APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN MENGGUNAKAN SENSOR GERAK DAN MIKROKONTROLER ARDUINO

N/A
N/A
Protected

Academic year: 2021

Membagikan "APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN MENGGUNAKAN SENSOR GERAK DAN MIKROKONTROLER ARDUINO"

Copied!
10
0
0

Teks penuh

(1)

1

APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN MENGGUNAKAN

SENSOR GERAK DAN MIKROKONTROLER ARDUINO

Ade Pramono

1

, Ary Mazharuddin

2

, Hudan Studiawan

3

Jurusan Teknik Informatika, Fakultas Teknologi Informasi

Institut Teknologi Sepuluh Nopember Surabaya

Email:

[email protected]

1

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

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

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.

2. Tinjauan Pustaka 2.1 Ardunio

Arduino adalah sebuah mikrokontroler

single-board yang bersifat open-source seperti pada Gambar

2.1. Hardware mikrokontroler Arduino diprogram

dengan menggunakan bahasa pemrograman

wiring-based 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

(2)

2

Adapun sensor dan aktuator yang dapat dipasangkan pada Arduino seperti sensor gerak, ultrasonik, panas, suara, Ethernet Shield, LED Display dan yang lainnya.

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.

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.

Gambar 2.2 Cara Kerja Sensor Gerak

Gambar 2.3 Penyebaran Sensitifitas Sensor Pyroelectric 2.3 PHP CodeIgniter

CodeIgniter adalah sebuah open-source

framework PHP yang menerapkan disain

Model-View-Controller 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.4 ARCFOUR (RC4)

ARCFOUR (RC4) adalah sebuah stream cipher

yang didisain pada tahun 1987 oleh Ron Rives untuk

perusahaan RSA Security. RC4 adalah variabel

key-size stream cipher dengan menerapkan operasi yang

(3)

3

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.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 Pseudo-Random Generation (PRGA).

1 for i from 0 to 255 2 S[i] := i 3 Endfor 4 j := 0 5 for i from 0 to 255 6

j := (j + S[i] + key[i mod keylength]) mod 256

7 swap values of S[i] and S[j] 8 Endfor

Gambar 2.5 Pseudocode Algoritma Key-Scheduling

1 i := 0 2 j := 0

3 while GeneratingOutput: 4 i := (i + 1) mod 256 5 j := (j + S[i]) mod 256 6 swap values of S[i] and S[j] 7 K := S[(S[i] + S[j]) mod 256]

8 output K 9 Endwhile

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.

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

(4)

4

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

diterima, data tersebut akan disesuaikan dengan format

data yang sudah ditentukan oleh server.

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 Sensor 1 == HIGH Sensor 2 == HIGH Jumlah Kendaraan + 1 Tidak Tidak Finish

Gambar 3.2 Proses Penghitungan Kendaraan Gambar 3.1 Arsistektur Umum Sistem

(5)

5

Gambar 3.3 Arsitektur Sensor Gerak 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. Start Plaintext = Data Enkripsi RC4 Private Key milis() == periode Menghubungkan Server Server Terhubung Kirim Ciphertext (HTTP GET method) Finish Ya Ya Tidak

Gambar 3.4 Proses Enkripsi dan Mengirimkan Data

Start Server Terhubung Ciphertext Masuk Ciphertext Dekripsi RC4 Private Key Private Key Baru Finish Ya Tidak Tidak Ya

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.

Gambar 3.6 Rancangan Antar Muka

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

(6)

6

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

Gambar 4.2 Mikrokontroler Arduino dan Ethernet Shield

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

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.

1 If pirPin1 = HIGH do 2 If pirPin2 = HIGH do 3 ledPin = HIGH 4 objectCounter + 1 5 Wait 50 ms 6 endIf 7 endIF

Gambar 4.5 Pseudocode Mendeteksi Kendaraan

1 for i from 0 to 255 2 S[i] := i 3 Endfor 4 j := 0 5 for i from 0 to 255 6

j := (j + S[i] + key[i mod keylength]) mod 256

7 swap values of S[i] and S[j] 8 i := 0

9 j := 0

10 while GeneratingOutput: 11 i := (i + 1) mod 256 12 j := (j + S[i]) mod 256 13 swap values of S[i] and S[j] 14 K := S[(S[i] + S[j]) mod 256] 15 Ciphertext = data XOR S[(S[i]+S[j])%256])

16 output Ciphertext 17 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

key-scheduling dan pseudo-random generation. Key-scheduling ditunjukkan dengan Gambar 4.6 pada baris

1-7. Sedangkan pseudo-random generation

ditunjukkan pada baris 8-17. Baris 15 merupakan

(7)

7

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.

Gambar 4.7 Alur Proses Server untuk Mikrokontroler Arduino

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.

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.

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

Gambar 4.10 Implementasi Antar Muka Aplikasi

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:

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%.

Tabel 5.1 Keakuratan Kepadatan Rendah

Uji Coba ke

Keakuratan(%)

Sebelum evaluasi Setelah Evaluasi

1 100 100 2 100 100 3 50 50 4 0 100 5 100 100 Rata-rata 70 90 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.

Menerima

Data Melakukan Dekripsi Cek Validasi Ke Database Menyimpan Mengrimkan Key Baru

Menerima Permintaan Data Mengumpulkan Data Mengirimkan Data Mendapatkan Posisi GPS Meminta Data ke Server Menampilkan Data dalam Peta        Terdeteksi Jumlah Mobil Kendaraan Jumlah absolute 1(%) Keakuratan        Terdeteksi Jumlah Kendaraan Jumlah absolute 2(%) Keakuratan

(8)

8

Tabel 5.2 Keakuratan Kepadatan Sedang

Uji Coba ke

Keakuratan(%)

Sebelum evaluasi Setelah Evaluasi

1 34.09 25.86 2 20.00 17.78 3 21.15 41.18 4 25.71 28.85 5 30.00 24.19 Rata-rata 26.19 27.57

Tabel 5.3 Keakuratan Seluruh Kendaraan Kepadatan Sedang

Uji Coba ke

Keakuratan(%)

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

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%.

3. 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.

Tabel 5.4 Keakuratan Kepadatan Tinggi

Uji Coba ke

Keakuratan(%)

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

Tabel 5.5 Keakuratan Seluruh Kendaraan Kepadatan Tinggi

Uji Coba ke

Keakuratan(%)

Sebelum evaluasi Setelah Evaluasi

1 83.70 60.14 2 83.33 74.83 3 76.03 96.30 4 95.24 85.05 5 94.44 94.44 Rata-rata 86.55 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

rata-rata kecepatan transfer 509 milidetik.

Tabel 5.6 Uji Coba Pengiriman Data Uji

Coba Data dikirim Data diterima

Wakt u (mili detik) 1 010228007176204139 015243002226252214 474 2 050183217124056164 039182216057020241 460 3 221078245181178077 221085227237129007 472 …… ……….. ……… …… 27 118182021019239042 112165011071194107 675 28 099109125200219008 106126119158229072 465 29 105074255198075061 125086255130120118 444 30 010003208022236054 006024216067214116 529 Rata-rata 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 rata-rata 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.

Tabel 5.7 Hasil Uji Coba Aplikasi Android

Jaringan 3G Jaringan CDMA

Uji coba ke Waktu (detik) Uji Coba ke Waktu (detik)

1 3.3 1 2.4 2 3.3 2 2.7 3 2.5 3 2.6 4 3.7 4 2.6 5 1.7 5 2.3 Rata-rata 2.9 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.

(9)

9

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.

Gambar 5.9 Analisa Keakuratan Penghitungan Kendaraan

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.

3. 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.

4. 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.

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. Daftar Pustaka

[1] PDAT, 2006. Masalah Kemacetan Jakarta,

<URL:http://www.pdat.co.id/hg/political_pdat/20 06/03/17/pol,20060317-01,id.html>. [diakses terakhir 5 September 2011].

[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.

(10)

Referensi

Dokumen terkait

digunakan adalah observasi, wawancara, dan dokumentasi. Hasil penelitan ini menunjukkan bahwa metode dakwah dalam memotivasi kerja masyarakat petani cabai di Kelurahan

tugas akhir yang berjudul KOMUNIKASI ANTARBUDAYA DALAM KELUARGA ETNIS JAWA-MAKASSAR (Studi Pada Keluarga Etnis Jawa-Makassar di Asrama Yon Zipur 10/2 Kostrad

The conclusions of the study can be summarised as follows: the &#34;locational&#34; aspect alone (no added symbols) of picture designs appears to be unhelpful in direct- ing

Salah satu teknik dalam data mining yaitu klasifikasi untuk menemukan model (fungsi) yang menjelaskan dan membedakan kelas-kelas data, dengan tujuan agar model yang diperoleh

Untuk mendesain tim KM yang efektif harus diidentifikasi pihak terkait yang menjadi kunci baik di dalam maupun di luar organisasi, mengidentifikasi sumber daya ahli yang

pandangan Islam mengenai Womanology strategi marketing yang ditujukan pada wanita dengan hukum Islam, dampak yang mungkin terjadi dari strategi marketing tersebut

Pembentukan Kabupaten Tambrauw yang merupakan pemekaran dari Kabupaten Sorong yang dibentuk berdasarkan Undang-Undang Nomor 56 Tahun 2008 tentang Pembentukan

Jika penularan terjadi oleh nyamuk yang menggigit pada malam hari di dalam rumah maka tindakan pencegahan yang dapat dilakukan adalah dengan penyemprotan, menggunakan