BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat filesepeda motor, yaitu Aki (accu), menuju ke sistem...
Transcript of BAB III PEMBAHASAN 3.1. Tinjauan Umum Alat filesepeda motor, yaitu Aki (accu), menuju ke sistem...
67
BAB III
PEMBAHASAN
3.1. Tinjauan Umum Alat
Pembuatan alat kunci kontak sepeda motor digital ini bertujuan untuk
mengganti kunci kontak sepeda motor secara fisik (konvensional), demi
kemudahan pengguna sepeda motor. Kunci kontak secara fisik, digunakan untuk
menyambungkan dan memutuskan listrik yang berasal dari sumber daya listrik
sepeda motor, yaitu Aki (accu), menuju ke sistem kelistrikan sepeda motor. Listrik
akan tersambung dan masuk ke dalam sistem kelistrikan sepeda motor, saat kunci
kontak fisik ini dipasang dan di-on-kan, oleh pengguna.
Dengan alat ini, penggunaan kunci secara fisik ditiadakan dan diganti dengan
komponen switch elektrik berupa relay yang akan membuka dan menutup jalur
listrik dari sumber listrik, yaitu Aki (accu), menuju ke sistem kelistrikan motor.
Komponen switch tersebut akan terbuka dan tertutup, berdasarkan perintah yang
diberikan oleh pengguna melalui aplikasi Android, yang telah terinstal sebelumnya
di Smartphone milik pengguna. Tentunya alat ini terkoneksi dengan Smartphone
pengguna secara nirkabel, yaitu melalui koneksi Bluetooth.
Pada aplikasi Android yang dirancang untuk alat ini, dilengkapi dengan
sistem keamanan berupa log in, dan validasi log in. Lalu feature lainnya adalah
penanganan delay starter motor, pencarian MAC Address Bluetooth sepeda motor,
dan pemasangan otomatis perangkat Bluetooth antara Smartphone pengguna,
dengan modul Bluetooth pada alat.
68
3.2. Blok Rangkaian Alat
Prinsip kerja alat kunci kontak motor digital ini dilakukan berdasarkan tiga
bagian secara fungsional meliputi bagian input unit, processing unit, dan output
unit.
Gambar III.1 Gambar blok rangkaian alat
Bagian input unit, berupa aplikasi Android yang telah dirancang dan terinstal
pada Smartphone pengguna, dan juga perangkat modul Bluetooth HC-05 yang
terpasang pada alat. Aplikasi Android bertindak sebagai sensor yang akan
mengirimkan sinyal (data) ke alat, dan perangkat modul Bluetooth HC-05 yang
terpasang pada alat, bertindak sebagai sensor yang akan menerima sinyal (data)
yang dikirimkan oleh aplikasi.
Bagian processing unit berupa mikrokontroler Arduino UNO berbasis
ATMega 328, yang akan bertindak sebagai pengolah data, data yang telah diterima
oleh perangkat modul Bluetooth HC-05 akan dikirim kedalam mikrokontroler dan
diproses, sehingga menghasilkan perintah-perintah untuk mengontrol switch
elektrik, yaitu relay.
69
Bagian output unit adalah berupa relay. Relay akan membuka dan menutup
untuk menyambungkan atau memutuskan listrik pada sistem kelistrikan sepeda
motor. Pada sistem kelistrikan sepeda motor beberapa switch manual yang ada,
akan digantikan oleh perangkat relay ini. Pada protoytpe alat ini, beberapa hasil
keluaran pada sepeda motor, akan disimulasikan oleh komponen-komponen
elektronika, seperti Buzzer yang akan diinisialisasikan sebagai klakson sepeda
motor, LED yang akan diinisialisasikan sebagai indikator kontak sepeda motor, dan
Motor DC yang akan diinisialisasikan sebagai starter sepeda motor, dan mesin
sepeda motor.
70
3.3. Skema Rangkaian Alat
3.3.1. Skema Catu Daya
Gambar III.2 Skema Rangkaian Adaptor dengan 3 keluaran, yaitu 2 keluaran 9 volt, dan 1 keluaran
12 volt
Rangkaian Adaptor yang dirancang, akan menghasikan 3 keluaran, yaitu 2
keluaran dengan tegangan 9 volt, dan 1 keluaran dengan tegangan 12 volt. Tegangan
9 volt digunakan untuk sumber mikrokontroler Arduino UNO, dan untuk sumber
Buzzer, LED, dan Motor DC. Sedangkan keluaran tegangan 12 volt, digunakan
untuk LED Indikator alat. Rangkaian adaptor ini, disimulasikan sebagai Aki (accu),
seperti pada sistem kelistrikan sepeda motor.
71
3.3.2. Skema Modul Bluetooth HC-05
Sumber : www.wavesen.com
Gambar III.3 Skematik rangkaian modul Bluetooth HC-05 dengan tegangan maksimal 5 volt
Modul Bluetooth HC-05 yang digunakan, adalah modul yang telah
dibrakeout, atau pemberian rangkaian pengonversi tegangan, baik tegangan power,
maupun rangkaian konversi tegangan untuk jalur komunikasi serial. Pemberian
rangkaian tambahan ini, dilakukan agar Bluetooth HC-05, dapat berkerja pada
tegangan mikrokontroler Arduino UNO, yaitu 5 volt. Karena Bluetooth HC-05 ini
pada awalnya hanya mampu beroperasi pada tegangan 3.3 volt. Pin-pin yang
digunakan pada modul Bluetooth yang telah dibrakeout ini, adalah pin TX, pin RX,
pin Vcc, dan pin Gnd.
72
3.3.3. Skema Mikrokontroler Arduino UNO
Sumber : http://www.arduino.cc/en/main/policy
Gambar III.4 Skematik rangkaian mikrokontroler Arduino UNO R3 (Revisi 3)
73
Pada rangkaian mikrokontroler Arduino UNO, pin-pin yang akan digunakan
adalah, pin TX (pin digital 1), dan RX (pin digital 0), untuk terhubung ke pin TX,
dan RX, modul Bluetooth HC-05.
Pemasangan pin komunikasi serial Arduino UNO dan pin Bluetooth HC-05,
dilakukan secara berpasangan, pin TX modul Bluetooth HC-05, dihubungkan
dengan pin RX (pin digital 0), mikrokontroler Arduino UNO, sedangkan pin RX
modul Bluetooth HC-05, dihubungkan dengan pin TX (pin digital 1),
mikrokontroler Arduino UNO.
Gambar III.5 Skema Arduino UNO dan modul Bluetooth HC-05
Pin RX dan TX ini berfungsi untuk melakukan komunikasi serial, atau
komunikasi antara mikrokontroler Arduino UNO, dengan Smartphone pengguna
yang dilakukan bit per bit, dengan perkataan lain, hanya satu bit yang dapat
dilewatkan untuk setiap saat.
74
Pin lainnya yang akan digunakan oleh mirkokontroler Arduino UNO adalah
pin digital 13, pin digital 12, pin digital 11, dan pin digital 10. Masing-masing pin
ini akan terhubung dengan rangkaian relay sebagai output alat. Pin-pin digital ini
akan mengeluarkan sinyal digital, berupa 1 atau 0, untuk mengaktifkan rangkaian
relay, ataupun untuk menonaktifkan rangkaian relay.
Gambar III.6 Skema Arduino UNO dan rangkaian relay
75
3.3.4. Skema Modul Relay
Sumber : https://www.sainsmart.com/media/catalog/product/8/c/8c.jpg
Gambar III.7 Skematik rangkaian relay
Rangkaian relay digunakan sebagai output dari mikrokontroler Arduino
UNO. Rangkaian ini, terhubung dengan pin digital 13, pin digital 12, pin digital 11,
dan pin digital 10, mikrokontroler Arduino UNO. Masing-masin pin ini akan
terhubung dengan masing-masing rangkaian relay. Setiap rangkaian relay akan
mengaktifkan atau mengnonaktifkan beberapa komponen elektronika yang akan
mensimulasikan cara kerja sepeda motor.
Pada rangkaian relay pertama, akan mengaktifkan atau menonaktifkan
Buzzer. Buzzer ini akan menginisialisasikan klakson sepeda motor, dan rangkaian
relay ini akan terhubung dengan pin digital 13, mikrokontroler Arduino UNO.
76
Gambar III.8 Skema Arduino UNO, rangkaian relay, dan komponen Buzzer
Rangkaian relay kedua, akan mengaktifkan atau menonaktifkan LED. LED
digunakan untuk menginisialisasikan indikator kontak sepeda motor. Rangkaian
relay ini akan terhubung dengan pin digital 12, mikrokontroler Arduino UNO.
Gambar III.9 Skema Arduino UNO, rangkaian relay, dan komponen LED
Rangkaian relay ketiga, akan mengaktifkan atau menonaktifkan Motor DC.
Putaran Motor DC ini, akan menginisialisasikan starter sepeda motor. Pada sistem
kelistrikan sepeda motor, starter sepeda motor akan dihidupkan selama beberapa
saat, untuk menghidupkan mesin sepeda motor, dengan cara menekan tombol
77
switch starter motor. Dan penggunaan relay ketiga ini, dimaksudkan untuk
menggantikan tombol switch starter motor, tanpa harus menekan tombol starter
sepeda motor. Rangkaian relay ini akan terhubung dengan pin 11, mikrokontroler
Arduinu UNO.
Gambar III.10 Skema Arduino UNO, rangkaian relay, dan komponen Motor DC sebagai starter
sepeda motor
78
Rangkaian relay terakhir, yaitu keempat, akan mengaktifkan dan
menonaktifkan Motor DC. Putaran Motor DC ini, akan menginisialisasikan mesin
sepeda motor. Rangkaian relay ini akan terhubung dengan pin 10, mikrokontroler
Arduino UNO.
Gambar III.11 Skema Arduino UNO, rangkaian relay, dan komponen Motor DC sebagai mesin
sepeda motor
79
3.3.5. Skema Rangkaian Keseluruhan
Gambar III.12 Skema Alat Kunci Kontak Digital berbasis Mikrokontroler Arduino UNO dan
Android
3.4. Cara Kerja Alat
Alat ini berkerja dengan perintah yang berasal dari aplikasi Smartphone
Android yang telah dirancang untuk alat ini, yaitu BootLoop Studio Digital Key.
Dengan aplikasi ini, pengguna dapat mengaktifkan dan mengnonaktifkan kontak
sepeda motor, lalu menghidupkan dan mematikan mesin sepeda motor.
3.4.1. Cara Kerja Program Android
Pada saat pengguna menginstal aplikasi BootLoop Studio Digital Key pada
Smartphone pengguna, maka aplikasi ini akan membuat database, dimana pada
database tersebut akan menyimpan enam buah data.
Data pertama adalah password yang akan digunakan untuk log in aplikasi ini.
Penggunaan log in pada aplikasi ini dimaksudkan untuk memberi keamanan, agar
tidak sembarang orang bisa memberikan perintah kepada sepeda motor pengguna.
Password default yang akan diberikan oleh aplikasi pada saat pertama penginstalan
80
adalah “12345678”. Pengguna dapat mengganti password default tersebut dengan
password yang lebih aman, dan panjang password yang digunakan adalah 8
karakter.
Gambar III.13 Screenshot dari Smartphone, setelah penginstalan Aplikasi, dan pembuatan
database secara otomatis
Data kedua yang disimpan pada database aplikasi adalah, delay starter. Data
ini adalah berupa delay yang akan dikirim ke alat, untuk mengontrol berapa lama
relay akan terbuka dan menghubungkan listrik dari sumber listrik sepeda motor,
yaitu Aki (accu), ke sistem kelistrikan motor. Hal ini dibutuhkan untuk membuat
sepeda motor melakukan starter secara otomatis dan menghidupkan mesin sepeda
motor. Pada kunci kontak sepeda motor konvensional, saat pengguna sepeda motor
ingin menghidupkan mesin sepeda motor, maka ia akan menekan tombol starter,
sampai mesin sepeda motor menyala. Pada perancangan sistem digital ini,
mikrokontroler akan mengontrol relay untuk memutuskan hubungan listrik antara
81
sumber daya listrik aki (accu), dan sistem kelistrikan setelah nilai delay (waktu)
terpernuhi (habis).
Pengguna dapat mensetting delay yang akan dikirim ke alat melalui menu
pengaturan pada aplikasi. Delay yang akan dijalankan oleh alat, adalah dalam
bentuk milisekon (1000 milisekon = 1 sekon), dan pilihan settingan delay terendah
pada aplikasi adalah 250 milisekon, dan pilihan settingan delay tertingginya adalah
3000 milisekon. Interval setiap pilihan yang ada, adalah 250 milisekon, artinya
pilihan yang tersetting pada aplikasi yaitu, 250 milisekon, 500 milisekon, 750
milisekon, 1000 milisekon, 1250 milisekon, 1500 milisekon, 1750 milisekon, 2000
milisekon, 2250 milisekon, 2500 milisekon, 2750 milisekon, dan terakhir 3000
milisekon.
Penggunaan interval 250 milisekon pada aplikasi ini, dimaksudkan untuk
membentuk data delay berupa string 1 karakter, yang nantinya akan dikirimkan ke
alat melalui Bluetooth. Sebagai contoh, ketika pengguna mensetting delay starter
berupa 1250 milisekon, maka nilai ini akan disimpan kedalam database. Dan saat
pengguna menekan switch mesin motor pada aplikasi, data delay ini akan diambil
dari database, lalu aplikasi akan membagi nilai delay starter tersebut dengan
bilangan 250 (1250 / 250 = 5), lalu hasil baginya yaitu 5, akan diubah menjadi tipe
data string, dan kirimkan ke alat.
82
Gambar III.14 Screenshot dari Smartphone, settingan delay starter motor.
Pada saat pengguna melakukan setting delay starter motor, maka pengguna
akan mendapatkan pesan rekomendasi, label pesan rekomendasi yang muncul ini,
dimaksudkan bahwa nilai delay tersebut, direkomendasikan oleh aplikasi sebagai
lamanya waktu sepeda motor pengguna menghidupkan starter sepeda motornya.
Dengan catatan sumber kelistrikan motor tersebut, yaitu Aki (accu), dalam kondisi
prima, tidak dalam keadaan lemah ataupun rusak (soak).
Settingan nilai delay starter motor ini juga dimaksudkan untuk
menyelaraskan lamanya starter sepeda motor terhubung dengan sumber kelistrikan
motor (accu), untuk menghidupkan mesin motor. Dengan delay starter ini, maka
dapat menekan pengeluaran voltage yang berasal dari Aki (accu) sepeda motor
tersebut.
83
Data ketiga yang disimpan pada database aplikasi, adalah nilai validasi log
in. Data ini digunakan untuk mengamankan proses log in aplikasi. Jika pengguna
salah melakukan log in sebanyak nilai dari validasi log in, maka aplikasi akan
tertutup (keluar) secara otomatis, untuk menjaga keamanan aplikasi ini. Setelah
aplikasi terinstal, maka data validasi log in default yang dimasukkan kedalam
database adalah 3. Hal ini diartikan, pengguna akan diberikan kesempatan
sebanyak 3 kali dalam melakukan kesalahan memasukkan password, ketika log in.
Jika pengguna melakukan kesalahan lebih dari itu, maka aplikasi akan tertutup
(keluar) secara otomatis. Penanganan kesalahan yang terjadi ini, dapat dikontrol
oleh pengguna dengan mengubah nilai validasi log in tersebut. Semakin besar nilai
validasi log in, maka akan semakin lama penanganan kesalahan yang dilakukan saat
melakukan log in.
Gambar III.15 Screenshot dari Smartphone, settingan validasi log in.
Data keempat yang disimpan pada aplikasi ini adalah data MAC Address
Bluetooth sepeda motor. Data ini, digunakan untuk melakukan koneksi secara
otomatis dengan modul Bluetooth HC-05 pada alat, berdasarkan MAC Addressnya.
84
Setelah aplikasi terinstal pada Smartphone pengguna, maka data MAC Address
yang akan tersimpan pada database yaitu berupa string ”xx:xx:xx:xx:xx:xx”, maka
aplikasi tidak akan bisa terkoneksi dengan Bluetooth sepeda motor, dikarenakan
nilai MAC Address yang akan dipairing oleh Smartphone pengguna tidaklah valid.
Hal pertama yang harus dilakukan pengguna adalah melakukan pairing
Bluetooth, antara Bluetooth Smartphone pengguna, dengan modul Bluetooth HC-
05, yang terhubung dengan alat (mikrokontroler Arduino UNO). Proses pairing ini
dilakukan secara manual, yaitu dengan mencari perangkat Bluetooth yang sedang
aktif disekitar Smartphone pengguna, melalui pengaturan Bluetooth pada
Smartphone pengguna.
Gambar III.16 Screenshot dari Smartphone, proses pairing Bluetooth Smartphone pengguna dan
modul Bluetooth HC-05 pada alat.
85
Pada saat melakukan pairing, agar Smartphone pengguna dapat terhubung
dengan modul Bluetooth HC-05, maka pengguna harus memasukkan password
modul Bluetooth HC-05, yaitu 1234. Password ini adalah password default modul
Bluetooth HC-05, yang sudah disetting dari pabrik. Setelah kedua Bluetooth
terhubung, maka barulah pengguna bisa mengambil MAC Address modul Bluetooth
HC-05, yang terpasang pada alat, melalu menu pengaturan pada aplikasi.
Gambar III.17 Screenshot dari Smartphone, settingan MAC Address sepeda motor.
Data kelima dan keenam yang disimpan pada aplikasi ini, adalah kondisi
status switch kontak sepeda motor, dan kondisi status switch mesin sepeda motor.
Ketika pengguna memberi perintah kepada alat, melalui aplikasi untuk
menghidupkan kontak sepeda motor, dengan menggeser switch pada aplikasi, maka
kondisi status switch kontak sepeda motor pada aplikasi akan disimpan pada
database. Hal ini dimaksudkan untuk mengembalikan kondisi switch, ketika
pengguna menutup aplikasi ini. Lalu saat pengguna membuka kembali aplikasi,
maka kondisi switch kontak motor, akan tetap dalam kondisi aktif. Penjagaan
86
kondisi atau status switch tersebut dilakukan menggunakan database, setiap kali
switch berubah kondisi, maka kondisinya akan dikirim ke database dan akan
disimpannya.
Jika penjagaan kondisi ini tidak diterapkan, maka pada saat pengguna
merubah kondisi switch pada aplikasi, untuk memberi perintah pada alat, maka saat
pengguna menutup aplikasi dan membukanya kembali, kondisi switch akan
kembali sesuai dengan proses inisialisasi awal aplikasi, yaitu false atau tidak aktif.
Karena pada pembuatan aplikasi, kondisi switch diinisialiasaikan false, atau tidak
aktif.
Prosedur pengontrolan alat atau digital key pada aplikasi ini, melalui
beberapa tahap, yaitu tahap pengambilan MAC Address Bluetooth motor, tahap ini
sama seperti proses pencarian dan penyimpanan MAC Address Bluetooth motor,
dipembahasan sebelumnya. Tahap kedua yaitu, pengecekan jalur koneksi data,
berdasarkan MAC Address Bluetooth yang telah diambil dan disimpan oleh
pengguna. Pada tahap kedua ini, jika MAC Address Bluetooth motor berbeda
dengan data MAC Address yang disimpan pada database, maka aplikasi tidak akan
terhubung, dan tidak bisa masuk ke dalam menu digital key. Maka pengguna harus
mengambil data MAC Address Bluetooth sepeda motor, yang benar, dan bukan
MAC Address Bluetooth lain, seperti MAC Address Bluetooth Smartphone lain yang
pernah terpairing dengan Smartphone pengguna.
87
Jika MAC Address Bluetooth motor sesuai dengan data MAC Address yang
tersimpan pada database aplikasi, maka pengguna akan berhasil masuk ke dalam
menu digital key, dan bisa melakukan pengontrolan alat, dengan mengganti kondisi
atau status switch, pada menu tersebut.
Gambar III.18 Screenshot dari Smartphone, proses pengecekan jalur koneksi Bluetooth, kondisi
jika gagal melakukan, atau membuka jalur koneksi, dan kondisi ketika berhasil melakukan atau
membuka jalur koneksi.
Pada menu digital key, terdapat dua buah switch. Switch pertama, yaitu switch
kontak motor, digunakan untuk memberikan perintah, menghidupkan, atau
mematikan kontak sepeda motor. Switch kedua, yaitu switch mesin motor,
digunakan untuk memberikan perintah, menghidupkan, atau mematikan mesin
sepeda motor.
Kedua switch ini saling berhubungan, dimana switch mesin motor tidak akan
aktif, atau dirubah kondisinya, jika switch kontak motor dalam keadaan tidak aktif.
Hal ini dimaksudkan, tidak mungkin mesin sepeda motor bisa dihidupkan dalam
kondisi kontak sepeda motor mati. Maka untuk menghidupkan mesin sepeda motor,
88
pengguna diharuskan mengaktifkan kontak motor terlebih dahulu. Dan ketika
switch kontak motor dalam keadaan aktif atau hidup, lalu pengguna mematikan
kontak motor, atau menonaktifkan switch kontak motor, maka switch mesin motor
juga akan nonaktif secara otomatis, dan bersamaan. Hal ini dimaksudkan, bila
pengguna motor, mematikan kontak sepeda motor, maka mesin sepeda motor akan
mati secara otomatis.
3.4.2. Cara Kerja Alat Keseluruhan
Dua perintah pada aplikasi yang dibentuk menggunakan dua buah switch,
masing-masing untuk mengaktifkan dan menonaktifkan kontak motor, dan untuk
mengaktifkan dan menonaktifkan mesin motor, akan memberikan atau mentransfer
data yang berbeda untuk setiap perintahnya. Dan perintah-perintah tersebut akan
diproses oleh mikrokontroler Arduino UNO, untuk mengontrol relay mana yang
akan aktif, ataupun tidak aktif.
Pada perintah pertama, yaitu menghidupkan kontak sepeda motor. Aplikasi
akan mengirimkan data berupa string “X”. Lalu perintah kedua, yaitu mematikan
kontak sepeda motor. Aplikasi akan mengirim data berupa string “Y”. Perintah
ketiga, yaitu menghidupkan mesin sepeda motor. Aplikasi akan mengirimkan data
berupa string “1” sampai dengan “9”, lalu string “A”, “B”, dan “C”. Dan terakhir
perintah keempat. Perintah ini adalah untuk mematikan mesin motor, dan data yang
akan dikirim aplikasi adalah string “Z”.
Semua string tersebut diubah menjadi data byte terlebih dahulu, sebelum
dikirim melalui koneksi Bluetooth ke mikrokontroler Arduino UNO. Pada
mikrokontroler Arduino UNO, perintah-perintah berupa data byte tersebut akan
89
diubah kembali menjadi bentuk string, dengan program yang tertanam pada
mikrokontroler ini.
Pada program yang tertanam didalam chip mikrokontroler Arduino UNO,
akan dilakukan seleksi kondisi perintah yang berupa string. String “X”, digunakan
untuk mengaktifkan kontak motor. ketika nilai ini diterima mikrokontroler Arduino
UNO, maka mikrokontroler Arduino UNO akan mengaktifkan relay yang
terhubung dengan klakson sepeda motor, yang disimulasikan dengan Buzzer,
selama beberapa milisekon, lalu akan dinonaktifkan kembali. Hal ini tentunya akan
membuat klakson sepeda motor akan berbunyi selama beberapa milisekon, lalu
akan mati kembali. Setelah itu, akan mengaktifkan relay kunci kontak, yang
disimulasikan dengan LED, kondisi ini diinisialisasikan kunci kontak sepeda motor
on, dan mesin sepeda motor siap dihidupkan.
String “Y”, digunakan untuk mematikan kunci kontak sepeda motor. Ketika
nilai ini diterima oleh mikrokontroler Arduino UNO, maka mikrokontroler itu akan
menonaktifkan semua relay, lalu relay yang terhubung dengan klakson sepeda
motor atau Buzzer, diakifkan selama beberapa milisekon dan dinonaktifkan
kembali, lalu diaktifkan kembali beberapa milisekon, dan dinonaktifkan kembali.
Hal ini akan membuat klakson sepeda motor atau Buzzer akan berbunyi dua kali
sebelum akhirnya semua kelistrikan sepeda motor dimatikan.
String “1” sampai dengan “9”, lalu string “A”, “B”, dan “C”, digunakan untuk
menghidupkan starter sepeda motor, untuk menghidupkan mesin sepeda motor.
Pada pembahasan sebelumnya, pengguna dapat mengatur delay starter motor,
melalui aplikasi. Pada saat pengguna menghidupkan mesin motor, maka nilai delay
90
starter yang tersimpan pada database akan diambil dan dibagi oleh bilangan 250,
sama seperti, pembahasan sebelumnya. Prosedur pembagian nilai delay starter
dengan bilangan 250, ditujukan untuk mendapatkan bilangan 1 karakter yang
nantinya akan dikirim kepada alat. Namun, jika hasil pembagian nilai delay starter
dengan bilangan 250 menghasilkan bilangan dengan 2 digit, maka bilangan, akan
diinisialisasikan dengan huruf atau karakter “A”, ”B”, dan “C”.
Sebagai contoh, pengguna mensetting nilai delay starter motor sebesar 2750
milisekon, maka pada saat proses pengiriman data, nilai 2750 milisekon yang
berasal dari database akan dibagi terlebih dahulu dengan bilangan 250, (2750 / 250
= 11). Karena pengiriman data atau komunikasi serial antara Smartphone pengguna,
dengan Bluetooth HC-05 yang terhubung ke alat, hanya dapat mengirim 1 karakter
string, maka nilai 11 akan diubah atau diinisialisasikan dengan string “B”, string
“A”, untuk penginisialisasian hasil bagi berupa bilangan 10, dan string “C”, untuk
penginisialisasian hasil bagi berupa bilangan 12 (hasil bagi tertinggi, jika pengguna
mensetting delay starter motor sebesar 3000 milisekon).
Setelah proses penginisalisasian ataupun pengubahan hasil bagi menjadi
string, dan dikonversi kembali menjadi byte, maka data tersebut atau kode-kode
byte tersebut akan dikirim ke mikrokontroler Arduino UNO. Pada mikrokontroler
ini, kode-kode byte tersebut akan diubah kembali menjadi string, lalu nilai string
tersebut akan diubah menjadi tipe data integer, dan dikalikan dengan bilangan 250,
untuk mendapatkan nilai delay starter motor, yang sebelumnya telah disetting oleh
pengguna. Sebagai contoh, pengguna telah mensetting delay starter motor sebesar
1500, maka data yang akan dikirim adalah 1500 / 250 = 5, nilai 5 yang diterima
oleh mikrokontroler Arduino UNO, akan dikalikan kembali dengan bilangan 250,
91
5 x 250 = 1500, maka pada mikrokontroler Arduino UNO akan mendapatkan nilai
delay starter yang telah disetting oleh pengguna, pada aplikasi.
Proses selanjutnya, adalah mikrokontroler Arduino UNO, akan mengaktifkan
relay yang terhubung dengan Motor DC, yang menginisialisasikan starter sepeda
motor. Motor DC akan berputar selama delay yang telah disetting oleh pengguna,
lalu sebelum mikrokontroler Arduino UNO, menonaktifkan relay tersebut, maka
relay yang terhubung dengan Motor DC, yang menginisialisasikan mesin sepeda
motor aktif, dan Motor DC pun berputar. Lalu Motor DC, yang menginisialisasikan
starter sepeda motor akan mati atau berhenti berputar, dikarenakan delay starter
motor telah habis, dan mikrokontroler Arduino menonaktfikan relay tersebut.
Perintah terakhir yang diseleksi oleh mikrokontroler Arduino UNO, adalah
string “Z”. String ini digunakan untuk menonaktifkan relay yang terhubung dengan
Motor DC yang menginisialisasikan mesin sepeda motor. Perintah ini, hanya
menonaktifkan relay tersebut saja, dan relay yang terhubung dengan LED, masih
tetap aktif, dan LED tetap menyala. Hal ini menginisialiasaikan sepeda motor,
dalam keadaan kunci kontak on, dan standby, siap dihidupkan kembali.
92
3.5. Flowchart Program
3.5.1. Flowchart Program Android
Start
Pembuatan Database untuk menyimpan Password, Delay
Starter, Validasi Login, MAC Address Bluetooth HC-05,
Status Switch Kunci Kontak, Status Switch Mesin Motor.
Password = “12345678”.
Delay Starter = “1000”.
Validasi Login = “3”
MAC Address Bluetooth HC-05 = “xx:xx:xx:xx:xx:xx”
Status Switch Kunci Kontak = “false”
Status Switch Mesin Motor = “false”
Insert Data kedalam Database
If Database Tidak
Ada && Database
Kosong
To Page
2
ValidasiLogIn <=
Validasi Login
Input
Password
If Input
Password =
Password
End
Ya
Tidak
Ya
Tidak
ValidasiLogIn++
Ya
Tidak
Int ValidasiLogIn = 0;
Gambar III.19 Flowchart program Aplikasi Android BootLoop Studio Digital Key, Halaman Log
In (page 1).
93
From
Page 1
If Pengguna
memilih Digital Key
If Pengguna
memilih
Pengaturan
If Pengguna
memilih Informasi
Aplikasi
To Page
3To Page
4
From
Page 3
End
From
Page 4
Tampilkan
Infomasi Apikasi
If MAC Address dari
Database =
“xx:xx:xx:xx:xx:xx”
Tidak
Tidak
Tidak
If Bluetooth =
Hidup
Hidupkan Bluetooth.
Tidak
Tidak
Ya
Ya
Ya
Ya
Ya
Gambar III.20 Flowchart program Aplikasi Android BootLoop Studio Digital Key, Halaman
Menu Utama (page 2).
94
From
Page 2
To Page
2
Pencarian MAC Address Bluetooth motor
berdasarkan MAC Address Bluetooth yang
berada didatabase.
Pembukaan Jalur Komunikasi Serial.
Jika ditemukan
dan Berhasil
If Bluetooth =
HidupHidupkan Bluetooth.
Tampilkan Data Delay Starter dari Database.
Tampilkan MAC Address dari Database.
If Switch Kunci
Kontak = Aktif
If Switch Mesin
Motor = Aktif
Switch Kunci Kontak = Tidak Aktif.
Simpan Status Kunci Kontak
“false” ke Database.
Switch Mesin Motor = Tidak Aktif.
Simpan Status Mesin Motor
“false” ke Database.
Kirim Data String “Y” ke Arduino
UNO.
Switch Kunci Kontak =
Aktif.
Simpan Status Kunci
Kontak “true” ke
Database.
Kirim Data String “X” ke
Arduino UNO.
Switch Mesin Motor = Aktif.
Simpan Status Mesin Motor
“true” ke Database.
Ambil Nilai Delay Starter dari
Database / 250.
If Hasil Bagi >= 1 &&
Hasil Bagi <= 9
If Hasil Bagi =
10
If Hasil Bagi =
11
If Hasil Bagi =
12
Kirim Data String
“Hasil Bagi” ke
Arduino UNO
Kirim Data String
“C” ke Arduino
UNO
Kirim Data String
“A” ke Arduino
UNO
Kirim Data String
“B” ke Arduino
UNO
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Ya
Ya
Ya
Ya
Ya
Tidak
Ya
Ya
Ya
Switch Mesin Motor = Tidak Aktif.
Simpan Status Mesin Motor “false” ke Database.
Kirim Data String “Z” ke Arduino UNO.
Gambar III.21 Flowchart program Aplikasi Android BootLoop Studio Digital Key, Halaman
Kunci Kontak Motor Digital (page 3).
95
From
Page 2
To Page
2
To Page
6
From
Page 5
From
Page 6
If Pengguna memilih
Ganti Password
If Pengguna memilih
Ganti Delay Starter
If Pengguna memilih
Ganti Validasi Login
If Pengguna memilih
Ganti MAC Address
Motor
ValidasiLogIn <=
Validasi Login
Input
Password
If Input
Password =
Password
Ya
Tidak
ValidasiLogIn++
Ya
Tidak
To Page
5
End
Ganti Delay
Starter
If Delay Starter
= 0
Update Data Delay
Starter pada
DatabaseTidakYa
Ganti Validasi
Login
If Validasi
LogIn = 0
Update Data
Validasi LogIn
pada DatabaseTidakYa
Int ValidasiLogIn = 0;
Gambar III.22 Flowchart program Aplikasi Android BootLoop Studio Digital Key, Halaman
Pengaturan (page 4).
96
From
Page 4
Input Password
Baru.
If Password Baru =
Konfirmasi Password
Baru
Update Password
pada Database
To Page
4
Ya
Tidak
If Password Baru
<= 8 karakter
If Password
Baru == 0
Input Konfirmasi
Password Baru.
If Konfirmasi
Password Baru == 0
Ya
Tidak
Tidak
Tidak
Ya
Ya
Gambar III.23 Flowchart program Aplikasi Android BootLoop Studio Digital Key, Halaman
Ganti Password (page 5).
97
From
Page 4
Menghidupkan
Bluetooth
If Bluetooth =
Hidup
Mencari MAC Address dari Perangkat
Bluetooth yang ter-paired / terhubung
MAC Address Bluetooth
ditampilkan pada List
If Pengguna memilih
MAC Address yang
ditampilkan
Update Data MAC Address
pada Database
To Page
4
Ya
Tidak
YaTidak
If ada Bluetooth
yang ter-paired
Pengguna harus melakukan
paired secara manual pada
pengaturan Bluetooth
Smartphone Pengguna
Tidak
Ya
Gambar III.24 Flowchart program Aplikasi Android BootLoop Studio Digital Key, Halaman
Ganti MAC Address Bluetooth Motor (page 6).
98
3.5.2. Flowchart Program Arduino
Start
Input String Data Dari
SmartPhone User;
Pin 13 Sebagai Pin OUTPUT, dengan Output Sinyal Digital
Pin 12 Sebagai Pin OUTPUT, dengan Output Sinyal Digital
Pin 11 Sebagai Pin OUTPUT, dengan Output Sinyal Digital
Pin 10 Sebagai Pin OUTPUT, dengan Output Sinyal Digital
Pin 13 Klakson Motor HIGH
Pin 12 Kunci Kontak Motor HIGH
Pin 11 Starter Motor HIGH
Pin 10 Mesin Motor HIGH
If Data Dari
SmartPhone
User = “X”
If Data Dari
SmartPhone
User = “Y”
If Data Dari
SmartPhone
User = “Z”
If Data Dari
SmartPhone
User = “1”
If Data Dari
SmartPhone
User = “2”
If Data Dari
SmartPhone
User = “3”
Pin 13 Klakson Motor LOW
Delay 250 ms
Pin 13 Klakson Motor HIGH
Pin 12 Kunci Kontak Motor LOW
Pin 11 Starter Motor HIGH
Pin 10 Mesin Motor HIGH
Relay Buzzer Menyala selama
250 ms, lalu Mati kembali.
Relay LED menyala.
Relay Motor DC Mati.
Relay Motor DC Mati.
Pin 10 Mesin Motor HIGH.
Pin 11 Starter Motor HIGH.
Pin 13 Klakson Motor LOW
Delay 250 ms
Pin 13 Klakson Motor HIGH
Delay 250 ms
Pin 13 Klakson Motor LOW
Delay 250 ms
Pin 13 Klakson Motor HIGH
Pin 12 Kunci Kontak Motor HIGH
Relay Motor DC Mati.
Relay Motor DC Mati.
Relay Buzzer Menyala
selama 250 ms, lalu Mati
kembali. Lalu Menyala
kembali selama 250 ms, lalu
Mati kembali.
Relay LED Mati.
Pin 13 Klakson Motor HIGH
Pin 11 Starter Motor HIGH
Pin 10 Mesin Motor HIGH
Pin 12 Kunci Kontak Motor LOW
RelayBuzzer Mati.
Relay Motor DC Mati.
Relay Motor DC Mati.
Relay LED Menyala.
int Delay = Data Dari SmartPhone
User.toInt() * 250;
Pin 13 Klakson Motor HIGH.
Pin 12 Kunci Kontak Motor LOW.
Pin 11 Starter Motor LOW
Delay Delay ms
Pin 11 Starter Motor HIGH.
Pin 10 Mesin Motor LOW
Relay Buzzer Mati.
Relay LED Menyala.
Relay Motor DC Menyala
selama Delay ms, lalu Mati
kembali.
Relay Motor DC Menyala.
To Page
2
From
Page 2
Ya
Tidak
Ya
Ya
Ya
Ya
Ya
Tidak
Tidak
Tidak
Tidak
Tidak
String Data Dari SmartPhone User;
#define Klakson Motor Pin 13
#define Kunci Kontak Motor Pin 12
#define Starter Motor Pin 11
#define Mesin Motor Pin 10
Gambar III.25 Flowchart program yang tertanam pada mikrokontroler Arduino UNO (page 1).
99
From
Page 1
If Data Dari
SmartPhone
User = “A”
If Data Dari
SmartPhone
User = “C”
If Data Dari
SmartPhone
User = “B”
End
If Data Dari
SmartPhone
User = “4”
If Data Dari
SmartPhone
User = “7”
If Data Dari
SmartPhone
User = “6”
If Data Dari
SmartPhone
User = “8”
If Data Dari
SmartPhone
User = “5”
If Data Dari
SmartPhone
User = “9”
Data Dari SmartPhone User = “10”
Data Dari SmartPhone User = “11”
Data Dari SmartPhone User = “12”
To Page
1
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Gambar III.26 Flowchart program yang tertanam pada mikrokontroler Arduino UNO (page 2).
100
3.6. Konstruksi Sistem (Coding)
3.6.1. Inisialisasi
Gambar III.27 Perintah pendefinisian pin-pin yang akan digunakan dari program yang tertanam
pada mikrokontroler Arduino UNO.
String DataDariSmartPhoneUser digunakan untuk menampung data String
yang dikirim oleh aplikasi ke arduino. Lalu #define adalah syntax yang digunakan
untuk mendefinisikan suatu konstanta.
#define KlaksonMotor 13, adalah pendefinisian, jika programmer memanggil
konstanta KlaksonMotor, maka pin 13 pada mikrokontroler arduino siap digunakan.
Begitu pula dengan #define KunciKontakMotor 12, mendifiniskan jika
programmer memanggil konstanta KunciKontakMotor maka pin 12 pada
mikrokontroler arduino siap digunakan, dan seterusnya.
101
Gambar III.28 Perintah mode pin yang akan digunakan dan penginisialisasian dari keluaran sinyal
digital yang diterima oleh pin-pin tersebut.
Void Setup(), digunakan untuk menjalankan perintah-perintah (syntax),
yang akan dijalankan hanyak sekali saat mikrokontroler arduino dihidupkan. Fungsi
ini akan dijalankan kembali jika tombol reset pada papan mikrokontroler arduino
ditekan.
Serial.begin(9600), adalah syntax yang digunakan untuk
menginisialisasikan baudrate yang akan digunakan oleh mikrokontroler arduino
untuk melakukan komunikasi serial. Dan nilai 9600, adalah nilai dari baudrate yang
digunakan, dimana mikrokontroler akan membuka komunikasi serial melalui
Bluetooth, dengan kecepatan 9600 bit per detik.
pinMode(KlaksonMotor, OUTPUT), adalah syntax yang digunakan untuk
menginisialisasikan pin mikrokontroler yang didefinisikan konstanta
KlaksonMotor, digunakan sebagai pin keluaran, sebelumnya KlaksonMotor
didefinisikan sebagai pin 13 mikrokontroler arduino, maka pin 13 ini digunakan
sebagai pin keluaran. Begitu pula dengan syntax pinMode(KunciKontakMotor,
102
OUTPUT), pinMode(StarterMotor, OUTPUT), dan pinMode(MesinMotor,
OUTPUT).
digitalWrite(KlaksonMotor, HIGH), adalah syntax yang digunakan untuk
mengirimkan sinyal ke pin mikrokontroler yang didefinisikan konstanta
KlaksonMotor. Pin 13 yang mendefinikan konstanta KlaksonMotor, akan
mendapatkan sinyal berupa HIGH. Syntax HIGH, pada arduino menginisialisasikan
sinyal digital dengan kondisi 1 (5 volt). Maka pin 13 akan menerima sinyal berupa
sinyal digital 1 (5 volt), saat mikrokontroler arduino dihidupkan. Perintah
digitalWrite(KunciKontakMotor, HIGH), digitalWrite(StarterMotor, HIGH), dan
digitalWrite(MesinMotor, HIGH), membuat pin-pin yang telah didefiniskan
tersebut akan mendapatkan sinyal digital 1 (5 volt). Pada rangkaian output berupa
relay, ada pengubahan sinyal digital yang diterima oleh rangkaian relay, jika
pemberian perintah HIGH atau 1 (5 volt), maka rangkaian relay akan merubahnya
menjadi LOW atau pada sinyal digital adalah 0 (0 volt), hal ini membuat rangkaian
relay mati atau memutuskan jalur sumber vcc. Namun jika pemberian perintah
LOW, atau 0 (0 volt), maka rangkaian relay akan merubahnya menjadi HIGH, atau
1 (5 volt). Pada penginisialisasian ini, semua pin-pin keluaran yang telah
didefinisikan diberikan perintah HIGH, untuk membuat semua relay dalam keadaan
mati pada saat pertama kali alat dihidupkan.
103
3.6.2. Input
a) Program Android
Gambar III.29 Perintah atau syntax java, yang akan dijalankan untuk mengirimkan data, berupa
menghidupkan atau mematikan kunci kontak motor, dari aplikasi Android.
Fungsi untuk pengiriman data dari switch kunci kontak. Pada fungsi
ini pertama akan dilakukan pengecekan kondisi, jika SwitchKunciKontak,
dalam keadaan tidak tercentang atau tidak aktif, maka kondisi
SwitchMesinMotor akan tidak tercentang juga, atau tidak aktif, lalu
menjalankan fungsi KirimDataKeMotor(), dan nilai yang dimasukkan
104
kedalam fungsi tersebut adalah string “Y”, yang sebelumnya telah
disisipkan pada variabel REQUEST_KUNCI_KONTAK_OFF.
Setelah itu pemanggilan fungsi GantiStatusMesinMotor(), dari
objek DBBootLoopStudio, dimana melakukan update status
SwitchMesinMotor, menjadi false. Lalu kembali melakukan pemanggilan
fungsi GantiStatusKunciKontakMotor(), dari objek DBBootloopStudio,
dimana melakukan update status SwitchKunciKontak, menjadi false.
Pengecekan kondisi dilakukan kembali, dengan kondisi jika
SwitchKunciKontak dalam keadaan tercentang atau aktif. Pada kondisi ini,
akan dilakukan pengecekan kondisi lagi terhadap variabel internal, yaitu
boolean Check. Jika kondisi variabel ini true, maka program akan
menjalankan fungsi KirimDataKeMotor(), dengan nilai yang dimasukkan
kedalam fungsi tersebut adalah string “X”, yang sebelumnya telah
disisipkan pada variabel REQUEST_KUNCI_KONTAK_ON, lalu perintah
selanjutnya adalah pengupdatean data status SwitchKunciKontak pada
database, menjadi true. Jika kondisi variabel boolean Check ini false, maka
program akan menjalakan fungsi KirimDataKeMotor(), dan nilai yang
dimasukkan kedalam fungsi tersebut adalah string “Y”, yang sebelumnya
telah disisipkan pada variabel REQUEST_KUNCI_KONTAK_OFF, dan
perintah terakhir adalah, pengupdatean data status SwitchMesinMotor, pada
database menjadi false.
105
Gambar III.30 Perintah atau syntax java, yang akan dijalankan untuk mengirimkan data, berupa
menghidupkan atau mematikan mesin motor, dari aplikasi Android.
Fungsi untuk pengiriman data dari switch mesin motor. Pada fungsi
ini pertama akan dilakukan pengecekan kondisi, jika SwitchKunciKontak,
dalam keadaan tidak tercentang atau tidak aktif, maka kondisi
SwitchMesinMotor akan tidak tercentang juga, atau tidak aktif, lalu
menjalankan fungsi GantiStatusMesinMotor(), dari objek
DBBootLoopStudio, dimana melakukan update status SwitchMesinMotor,
menjadi false.
Pengencekan kondisi dilakukan kembali, dengan kondisi jika
SwitchKunciKontak dalam keadaan tercentang atau aktif. Pada kondisi ini,
akan dilakukan pengecekan kondisi lagi terhadap variabel internal, yaitu
106
boolean Check. Jika kondisi variabel ini true, maka program akan
menjalankan fungsi KirimDataKeMotor(), dengan nilai yang dimaksudkan
kedalam fungsi adalah nilai string yang berasal dari database
DBBootLoopStudio(), berupa nilai delay starter, yang diubah kedalam
bentuk integer, melalui fungsi Integer.parseInt(), lalu barulah hasil konversi
ini dimasukkan kedalam fungsi NilaiDelayYangAkaDikirim(). Didialam
fungsi ini akan dilakukan pengubahan bentuk dari nilai delay starter
menjadi bentuk nilai string 1 karakter, lalu nilai string ini dikirim dengan
fungsi KirimDataKeMotor(), lalu setelah pengeksekusian perintah tadi,
program akan menjalankan perintah pengupdatean data status
SwitchMesinMotor, pada database menjadi true.
Jika kondisi variabel boolean Check ini false, maka program akan
menjalakan fungsi KirimDataKeMotor(), dan nilai yang dimasukkan
kedalam fungsi tersebut adalah string “Z”, yang sebelumnya telah
disisipkan pada variabel REQUEST_MESIN_MOTOR_OFF, dan perintah
terakhir adalah, pengupdatean data status SwitchMesinMotor, pada
database menjadi false.
107
Gambar III.31 Perintah atau syntax java, yang akan dijalankan untuk mengirimkan data, berupa
pengkonversian data dari string menjadi byte, lalu dikirimkan melalui komunikasi serial Bluetooth.
Fungsi KirimDataKeMotor(), adalah fungsi yang akan dijalankan
untuk mengkonversi data atau string yang akan dikirim ke alat. Fungsi ini
akan mengubah variabel string Perintah menjadi byte dengan perintah
Perintah.getbyte(), lalu hasil konversi dimasukkan kedalam array
DataBuffer bertipe data byte. Perintah Log.d(), dijalankan untuk mengirim
string pesan, pada Command Promt, Android Studio, untuk menangani
error debug aplikasi.
Setelah proses pengubahan tipe data, program akan melakukan trial
terhadap proses pengirim data byte pada perintah OutputStreamOS.write(),
dengan perintah ini aplikasi akan melakukan uji coba terhadap pengiriman
data melalui koneksi jalur transfer Bluetooth. Jika, dalam proses pengiriman
terjadi kendala, atau jalur koneksi transfer Bluetooth tertutup, maka blok
eksekusi try akan melempar kesalahan yang terjadi kepada blok eksekusi
catch, dimana perintah yang akan dijalankan pada blok eksekusi ini, yaitu
108
menampilkan jendela notifikasi pesan error, yang didapatkan dari syntax
IOException e.
Gambar III.32 Perintah atau syntax java, yang akan dijalankan untuk mengubah nilai delay starter
menjadi string 1 karakter.
Fungsi NilaiDelayYangAkaDikirim(), akan dijalankan untuk
mengubah nilai delay starter yang diambil dari database, dan diubah untuk
mendapatkan nilai string 1 karakter. Perintah pertama yang akan dijalankan,
adalah penginisialisasian variabel bertipe data string, yang bernama
DelaySiapKirim. Lalu penginisialisasian variabel Nilai, dengan tipe data
integer. Variabel ini akan membagi variabel delay yang dijadikan syarat
fungsi, dengan nilai 250, lalu hasil baginya akan diseleksi menggunakan
perintah switch case, dan seleksi yang disetting adalah, 10, 11, dan 12, jika
switch menerima bilangan tersebut, maka isi variabel string
109
DelaySiapKirim, akan diisi dengan string “A”, “B”, dan “C”. Namun, jika
nilai yang diseleksi oleh switch case tidak ada dalam seleksi case, maka
switch case akan menjalankan perintah default, yaitu string yang diisikan
kedalam DelaySiapKirim, berupa isi dari variabel Nilai yang dikonversi
kedalam string. Lalu nilai DelaySiapKirim tersebut akan dilempar kembali
oleh fungsi, dengan perintah return.
b) Program Arduino
Gambar III.33 Perintah input dari komunikasi serial, dan pengambilan data yang dikirimkan, serta
pengkonversian data yang diterima.
Fungsi void loop(), adalah fungsi yang akan dijalankan secara
berulang-ulang pada mikrokontroler arduino. Maka semua perintah
(syntax), yang dituliskan didalam fungsi ini akan dijalankan berulang-ulang.
Pada perintah if(Serial.available()), maka arduino akan melakukan
pengecekan komunikasi serial. Jika komunikasi serial tidak ada, maka
mikorkontroler arduino tidak akan menjalankan perintah-perintah yang
berada dalam blok perintah if. Dan jika komunikasi serial ditemukan maka
perintah-perintah yang berada dalam blok perintah if, akan dijalankan.
110
While(Serial.available()), adalah perintah untuk melakukan
perulangan, ketika mikrokontroler arduino menerima data dari jalur
komunikasi serial. Perulangan ini, dilakukan untuk mengumpulkan
rangkaian byte yang diterima oleh mikrokontroler. Karena pada proses
pengiriman data dari dan kedalam mikrokontroler, data tersebut akan diubah
tipe datanya menjadi tipe data byte, tipe data byte tersebut yang dikirim
melalui komunikasi serial. Pada perulangan ini, tipe data byte tersebut akan
diubah menjadi tipe data char, ketika diterima oleh mikrokontroler, lalu
dimasukkan kedalam variabel DataTemporer, yang bertipe data char, lalu
selanjutnya disusun menjadi sebuah string, dan disimpan ke dalam variabel
DataDariSmartPhoneUser. Jika data selesai ditransfer maka, proses
perulangan akan terhenti.
111
3.6.3. Main Program
Gambar III.34 Perintah main program, dimana data string yang diterima oleh mikrokontroler
arduino, akan dicek dengan perintah if.
Perintah if(DataDariSmartPhoneUser == “X”), adalah perintah yang akan
melakukan pengecekan isi dari variabel DataDariSmartPhoneUser, jika isi dari
variabel adalah “X”, maka semua perintah yang berada didialam blok
if(DataDariSmartPhoneUser == “X”), akan dijalankan, perintah-perintah ini adalah
akan memberikan sinyal kepada pin-pin mikrokontroler arduino yang diinginkan,
berupa HIGH atau LOW, untuk memutuskan dan menyambungkan rangkaian relay.
Begitu juga dengan semua perintah if lainnya, akan dieksekusi sesuai dengan
data yang diterima, ketika program Arduino membaca data yang berasal dari
komunikasi serial.
112
3.6.4. Output
Gambar III.35 Perintah output yang berada didalam if, dengan pengeceken isi variabel, jika isi
varibel DataDariSmartPhone adalah “X”, untuk menghidupkan kunci kontak motor.
Perintah digitalWrite(KlaksonMotor, LOW), akan memberikan sinyal LOW
pada pin KlaksonMotor (pin 13 mikrokontroler), lalu pada rangkaian output relay
sinyal LOW diubah menjadi HIGH, dan membuat relay terhubung dengan sumber
Vcc, pada rangkaian relay yang masuk kedalam pin KlaksonMotor (pin 13
mikrokontroler) ini, terpasang Buzzer, maka Buzzer akan berbunyi. Lalu perintah
delay(250), akan menahan kondisi HIGH pada pin KlaksonMotor (pin 13
mikrokontroler), selama 250 milisekon, dan hal ini akan membuat relay terhubung
selama 250 milisekon, dan Buzzer akan berbunyi selama waktu itu.
Pada perintah selanjutnya digitalWrite(KlaksonMotor, HIGH), setelah
delay(250) terpenuhi. Akan memberikan sinyal HIGH pada pin KlaksonMotor (pin
13 mikrokontroler), lalu pada rangkaian output relay sinyal HIGH diubah menjadi
LOW, dan membuat relay memutuskan sumber Vcc, hal ini akan membuat Buzzer
mati setelah menyala selama 250 milisekon.
113
Perintah digitalWrite(KunciKontakMotor, LOW), akan memberikan sinyal
digital LOW pada pin KunciKontakMotor (pin 12 mikrokontroler), sinyal digital
LOW, akan diubah menjadi HIGH, pada rangkaian relay yang masuk kedalam pin
KunciKontakMotor (pin 12 mikrokontroler), hal ini akan LED yang terhubung
dengan relay tersebut akan menyala. Hal ini menginisialisasikan bahwa sepeda
motor dalam keadaan on atau siap dihidupkan mesinnya.
Lalu perintah digitalWrite(StarterMotor, HIGH), dan
digitalWrite(MesinMotor, HIGH), akan membuat pin StarterMotor (pin 11
mikrokontroler), dan pin MesinMotor (pin 10 mikrokontroler), menerima sinyal
digital HIGH, dan rangkaian relay yang terhubung pada pin ini akan
mengkonversinya menjadi LOW, dan membuat kedua relay yang terhubung
kedalam masing-masing pin ini, akan dalam keadaan memutuskan sumber Vcc
dengan Motor DC.
Gambar III.36 Perintah output yang berada didalam if, dengan pengeceken isi variabel, jika isi
varibel DataDariSmartPhone adalah “Y”, untuk mematikankan kunci kontak motor.
114
Pada perintah diatas, akan membuat pin StarterMotor (pin 11
mikrokontroler), dan pin MesinMotor (pin 10 mikrokontroler), akan menerima
sinyal digital HIGH, dan membuat relay yang terhubung kedalam masing-masing
pin tersebut mengubahnya menjadi LOW, dan membuat relay dalam memutuskan
sumber Vcc dengan Motor DC.
Perintah selanjutnya adalah membuat pin KlaksonMotor (pin 13
mikrokontroler), menerima sinyal digital LOW, selama 250 milisekon, lalu HIGH
selama 250 milisekon, lalu LOW kembali selama 250 milisekon, lalu terakhir
menjadi HIGH kembali. Hal ini akan membuat relay menyambungkan sumber Vcc
dengan Buzzer selama 250 milisekon, lalu memutuskannya selama 250 milisekon,
lalu menyambungkannya kembali selama 250 milisekon, lalu memutuskannya
kembali. Maka Buzzer yang terhubung pada relay ini akan berbunyi sebanyak dua
kali.
Lalu perintah terakhir adalah membuat pin KunciKontakMotor (pin 12
mikrokontroler), menerima sinyal HIGH, dan membuat relay memutuskan sumber
Vcc dengan LED yang terhubung padanya. Maka LED pada relay ini akan mati.
Gambar III.37 Perintah output yang berada didalam if, dengan pengeceken isi variabel, jika isi
varibel DataDariSmartPhone adalah “Z”, untuk mematikankan mesin motor.
115
Pada blok ini, perintah yang dilakukan adalah meng-HIGH-kan pin
KlaksonMotor (pin 13 mikrokontroler), pin StarterMotor (pin 11 mikrokontroler),
dan pin MesinMotor (pin 10 mikrokontroler). Hal ini akan membuat masing-masing
relay memutuskkan sumber Vcc ke masing-masing komponen yang terhubung
kepada masing-masing relay tersebut.
Dan pada pin KunciKontakMotor (pin 12 mikrokontroler), menerima sinyal
digital LOW, akan membuat relay mengubungkan sumber Vcc dengan LED yang
terhubung pada relay tersebut.
Gambar III.38 Perintah output yang berada didalam if, dengan pengeceken isi variabel, jika isi
varibel DataDariSmartPhone adalah “1”, “2”, “3”, “4” atau “5”, untuk menghidupkan mesin
motor.
116
Gambar III.39 Perintah output yang berada didalam if, dengan pengeceken isi variabel, jika isi
varibel DataDariSmartPhone adalah “6”, “7”, “8”, “9” atau “A”, untuk menghidupkan mesin
motor.
117
Gambar III.40 Perintah output yang berada didalam if, dengan pengeceken isi variabel, jika isi
varibel DataDariSmartPhone adalah “B”, atau “C”, untuk menghidupkan mesin motor.
Gambar III.41 Fungsi untuk menyalakan starter motor dan menghidupkan mesin motor, yang akan
dipanggil pada setiap blok if dengan isi dari pengecekan varibel DataDariSmartPhone.
Pada blok if, dengan pengecekan isi dari variabel DataDariSmartPhone
adalah, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, atau “C”. Akan
menjalankan fungsi yang sama, yaitu fungsi
118
MenyalakanStarterMotorDanMenghidupkanMesinMotor(String
DelayStarterMotor). Pertama fungsi ini akan mendeklarasikan 3 buah variabel
internal bertipe data integer. DelayMurni, DelaySebelumMesinMenyala, dan
DelaySesudahMesinMenyala.
Ketiga variabel ini akan berisi nilai yang digunakan untuk mengontrol delay
untuk mengaktifkan dua relay yang terhubung ke Motor DC. Yaitu, relay yang
mengsimulasikan starter motor,dan relay yang mensimulasikan mesin motor.
Setelah pendeklarasian, variabel DelayMurni akan mengkonversikan variabel
DelayStarterMotor, yang awalnya bertipe data string, menjadi tipe data integer, lalu
mengkalikannya dengan bilangan 250, maka hasilnya adalah sesuai dengan delay
yang dikirimkan oleh aplikasi android BootLoop Studio Digital Key, yang
digunakan untuk mengontrol alat ini.
Lalu variabel DelaySebelumMesinMenyala, akan berisi hasil bagi dari
variabel DelayMurni dengan bilangan 5. Variabel ini digunakan untuk
mengaktifkan relay yang mensimulasikan mesin motor setelah relay yang
mensimulasikan starter motor, menyala.
Variabel DelaySesudahMesinMenyala, berisi hasil dari pengurangan nilai
pada variabel DelayMurni, dengan DelaySebelumMesinMenyala. Variabel ini akan
digunakan untuk mematikan relay yang mensimulasikan starter motor, setelah
relay yang mensimulasikan mesin motor, menyala.
Setelah semua variabel mendapatkan isinya masing-masing, maka
selanjutnya adalah pengontrolan pin mikrokontroler. Pertama adalah pin
KlaksonMotor (pin 13 mikrokontroler), akan menerima sinyal HIGH, hal ini akan
119
membuat relay memutuskan sumber Vcc dengan Buzzer, lalu pin
KunciKontakMotor (pin 12 mikrokontroler), menerima sinyal digital LOW, akan
membuat relay mengubungkan sumber Vcc dengan LED yang terhubung pada relay
tersebut. pin StarterMotor (pin 11 mikrokontroler), menerima sinyal digital LOW,
maka relay akan menghubungkan sumber Vcc dengan Motor DC, dan menyalakan
Motor DC. Motor DC yang mensimulasikan starter motor ini akan menyala selama
beberapa milisekon. Lalu, setelah Motor DC yang mensimulasikan starter motor
ini menyala, pin MesinMotor (pin 10 mikrokontroler) menerima sinyal LOW,
membuat relay akan menghubungkan sumber Vcc dengan Motor DC yang
mensimulasikan mesin motor ini, menyala. Setelah beberapa milisekon Motor DC
yang mensimulasikan mesin motor ini, menyala, maka pin StarterMotor (pin 11
mikrokontroler), menerima sinyal digital HIGH, dan relay akan memutuskan
sumber Vcc dengan Motor DC, yang mensimulasikan starter motor. Maka starter
motor akan mati.
120
3.7. Hasil Percobaan
Uji coba ini dilakukan dengan terhadap respon aplikasi Android yang telah
dirancang, yaitu BootLoop Studio Digital Key, dengan respon aktif, atau tidak
aktifnya pin-pin mikrokontroler Arduino UNO, akan mengaktifkan, atau me-
nonaktfikan, relay-relay yang terhubung dengan masing-masing pin mikrokontroler
Arduino UNO, untuk mensimulasikan kondisi motor.
3.7.1. Hasil Input
Untuk mengetahui hasil dari input alat, dilakukan percobaan terhadap respon
aplikasi Android (BootLoop Studio Digital Key) yang telah dibuat, dengan respon
aktif dan tidak aktifnya relay yang masuk ke pin-pin mikrokontroler Arduino UNO,
berdasarkan perintah dari aplikasi Android tersebut.
Tabel 2
Tabel hasil input dari aplikasi BootLoop Studio Digital Key, terhadap pin-pin mikrokontroler
Arduino Uno
*Kondisi Aktif dilihat dari respon pertama pin tersebut saat mendapatkan input dari aplikasi
BootLoop Studio Digital Key, karena pada beberapa pin, ada yang Aktif lalu setelah beberapa
milisekon akan kembali Tidak Aktif, sesuai dengan program yang ditanam pada mikrokontroler
Arduino UNO.
Input dari aplikasi BootLoop
Studio Digital Key (Switch
Button)
Relay (pin mikrokontroler Arduino
UNO)
Pin 13 Pin 12 Pin 11 Pin 10
Swicth Meng-on-kan Kunci
Kontak Motor Aktif Aktif
Tidak
Aktif
Tidak
Aktif
Swicth Meng-off-kan Kunci
Kontak Motor Aktif
Tidak
Aktif
Tidak
Aktif
Tidak
Aktif
Swicth Menghidupkan Mesin
Motor
Tidak
Aktif Aktif Aktif Aktif
Swicth Mematikan Mesin Motor Tidak
Aktif Aktif
Tidak
Aktif
Tidak
Aktif
121
Gambar III.42 Foto respon relay, terhadap perintah dari aplikasi BootLoop Studio Digital Key,
ketika diberikan perintah mengaktifkan kunci kontak.
Gambar III.43 Foto respon relay, terhadap perintah dari aplikasi BootLoop Studio Digital Key,
ketika diberikan perintah menonaktifkan kunci kontak.
122
Gambar III.44 Foto respon relay, terhadap perintah dari aplikasi BootLoop Studio Digital Key,
ketika diberikan perintah mengaktifkan mesin motor.
Gambar III.45 Foto respon relay, terhadap perintah dari aplikasi BootLoop Studio Digital Key,
ketika diberikan perintah menonaktifkan mesin motor.
123
3.7.2. Hasil Output
Untuk mengetahui hasil output, dilakukan percobaan terhadap respon
masing-masing relay yang aktif atau tidak aktif, dengan hasilnya berupa Buzzer,
LED, dan Motor DC, yang terhubung pada masing-masing relay tersebut. Simulasi
ini akan menunjukan kondisi dari motor.
Tabel 3
Tabel hasil output dari mikrokontroler Arduino UNO, Terhadap komponen-komponen yang
mensimulasikan kondisi motor.
Kondisi
Motor
Relay (pin mikrokontroler Arduino UNO)
Relay pin 13
(Buzzer /
Klakson
Motor)
Relay pin 12
(LED / Kunci
Kontak
Motor)
Relay pin 11
(Motor DC /
Strater
Motor)
Relay pin 10
(Motor DC /
Mesin
Motor)
Kunci Kontak
Motor On Aktif (Bunyi)
Aktif
(Menyala) Tidak Aktif Tidak Aktif
Kunci Kontak
Motot Off Aktif (Bunyi) Tidak Aktif Tidak Aktif Tidak Aktif
Mesin Motor
Hidup Tidak Aktif
Aktif
(Menyala)
Aktif
(Berputar)
Aktif
(Berputar)
Mesin Motor
Mati Tidak Aktif
Aktif
(Menyala) Tidak Aktif Tidak Aktif
*Kondisi Aktif dilihat dari respon pertama pin tersebut saat mendapatkan output dari Arduino UNO,
karena pada beberapa pin, ada yang Aktif lalu setelah beberapa milisekon akan kembali Tidak Aktif,
sesuai dengan program yang ditanam pada mikrokontroler Arduino UNO.
124
Gambar III.46 Foto respon komponen LED, dan Buzzer, terhadap perintah dari aplikasi BootLoop
Studio Digital Key, ketika diberikan perintah mengaktifkan kontak motor.
Gambar III.47 Foto respon komponen LED, dan Buzzer, terhadap perintah dari aplikasi BootLoop
Studio Digital Key, ketika diberikan perintah menonaktifkan kontak motor.
125
Gambar III.48 Foto respon komponen LED, Buzzer, dan Motor DC terhadap perintah dari aplikasi
BootLoop Studio Digital Key, ketika diberikan perintah menghidupkan mesin motor.
Gambar III.49 Foto respon komponen LED, Buzzer, dan Motor DC terhadap perintah dari aplikasi
BootLoop Studio Digital Key, ketika diberikan perintah mematikan mesin motor.
126
3.7.3. Hasil Keseluruhan Alat
Hasil keseluruhan alat, berkerja dengan baik, semua input dan output yang
berkerja / berjalan sesuai dengan rancangan alat. Tranfer data antara perintah pada
aplikasi Android, dengan mikrokontroler Arduino UNO, terkadang sedikit lama
(telat merespon). Hal ini membuat adanya delay setelah aplikasi Android
mengirimkan perintah kepada mikrokontroler Arduino UNO. Perangkat Buzzer,
LED, dan motor DC, berkerja sesuai dengan simulasi yang dirancang, yaitu
mensimulasikan kondisi motor.
Pada program aplikasi Android BootLoop Studio Digital Key, semua fungsi,
perintah, dan layout berjalan sesuai dengan rancangan flowchart yang telah dibuat.
Perintah-perintah yang diberikan oleh aplikasi Android BootLoop Studio Digital
Key, sesuai dengan kunci kontak motor digital, yang telah dirancang. Insert
database dan update database berjalan dengan sebagaimana mestinya, sesuai
dengan rancangan dan flowchart program.