APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan...

10
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 dengan bermacam-macam sensor dan aktuator lainnya.

Transcript of APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan...

Page 1: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

1

APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN MENGGUNAKAN

SENSOR GERAK DAN MIKROKONTROLER ARDUINO

Ade Pramono1, Ary Mazharuddin

2, Hudan Studiawan

3

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

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

dengan bermacam-macam sensor dan aktuator lainnya.

Page 2: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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

berorientasi pada tiap byte datanya. Stream cipher

Page 3: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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

Ethernet Card. Penggunaan interface yang berbeda ini

Page 4: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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

Page 5: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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 RC4Private 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

CiphertextDekripsi RC4Private Key

Private Key Baru

Finish

YaTidak

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

jalan yang berada disekitar client berada.

Page 6: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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

proses terakhir dimana ciphertext dibentuk.

Page 7: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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 Menyimpan Ke Database

Mengrimkan Key Baru

Menerima Permintaan Data

Mengumpulkan Data

Mengirimkan Data

Mendapatkan Posisi GPS

Meminta Data ke Server

Menampilkan Data dalam

Peta

TerdeteksiJumlah

MobilKendaraan Jumlah absolute 1(%)Keakuratan

TerdeteksiJumlah

KendaraanJumlah absolute 2(%)Keakuratan

Page 8: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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.

Page 9: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi

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.

Page 10: APLIKASI PEMANTAUAN LALU LINTAS MOBIL DENGAN … · sensor gerak belum mampu dalam membedakan kendaraan sepeda ... gerak ini memiliki 2 bagian yang sensitif ... Namun jika tidak terjadi