Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
241
IMPLEMENTASI HOME AUTOMATION MENGGUNAKAN
SINGLE-BOARD ARDUINO DENGAN PENGENDALI BERBASIS
ANDROID
Ridho Taufiq Subagio
1, Dwi Cahyadi
2
1,2Program Studi Teknik Informatika, STMIK CIC Cirebon
Email: [email protected], [email protected]
ABSTRAK
Home Automation adalah sebuah sistem otomatisasi untuk memudahkan kontrol di dalam rumah atau yang berkaitan dengan pekerjaan rumah tangga. Bagian-bagian yang dikontrol adalah perangkat elektronik seperti lampu, air
conditioner, pemanas, dan perangkat elektrik lainnya. Saat ini proses pengembangan home automation masih terus
dilakukan dengan salah satu tujuan pengembangannya adalah bagaimana meningkatkan nilai utilitas serta
penyederhanaan media maupun komponen elektronik yang digunakannya agar dapat terjangkau oleh banyak kalangan masyarakat. Berbagai penelitian tentang home automation telah banyak dilakukan yang secara umum
fokus pada pengendalian alat-alat listrik dengan peralatan kontrol dan media komunikasi yang berbeda-beda.
Dalam penelitian ini akan dibuat sistem kendali berbasis android menggunakan arduino board untuk penerapan
home automation yang akan mengendalikan perangkat elektrik dengan penambahan fitur keamanan meliputi alarm, kamera untuk monitoring, dan kendali kunci pintu otomatis. Arduino adalah single-board berbasis mikro kontroler
Atmel AVR dan bersifat opensource yang merupakan turunan dari wiring platform. Arduino dirancang untuk
memudahkan pengendalian perangkat elektrik dalam penggunaannya di berbagai bidang. Perangkat lunak arduino
memiliki bahasa pemrograman sendiri. Hasil dari penelitian ini adalah sebuah sistem pengendali home automation menggunakan smartphone android yang dapat mengontrol peralatan elektrik yang terhubung dengan arduino board.
Jenis komunikasi yang digunakan masih dalam lingkup jaringan lokal menggunakan Wi-Fi router sebagai
penghubung antara perangkat android dan arduino board.
Kata Kunci: Home Automation, Arduino, Android
PENDAHULUAN 1.
Dalam kesehariannya, sering terjadi ketika penghuni rumah pergi dan telah berada di luar rumah baru
teringat bahwa ada beberapa perangkat elektrik di rumahnya yang belum dimatikan dan tidak
memungkinkan untuk kembali ke rumah karena jarak yang jauh. Home automation adalah sebuah sistem
otomatisasi untuk memudahkan kontrol di dalam rumah atau dalam hal ini berkaitan dengan pekerjaan
rumah tangga, otomatisasi ini bisa meliputi penerangan rumah, Heat Ventilation Air Conditioner
(HVAC), keamanan dan perangkat elektrik lainnya. Dengan demikian teknologi home automation
memang diperlukan karena dapat memudahkan pengguna dalam mengontrol peralatan elektrik di
rumahnya lebih mudah [1]. Untuk membuat sistem otomatisasi diperlukan biaya yang tidak sedikit.
Sistem home automation terus dilakukan proses pengembangan, banyak pihak telah mencoba untuk
mengembangkan teknologi ini dengan tujuan meningkatkan nilai utilitasnya serta penyederhanaan dari
penggunaan komponen agar dapat digunakan oleh banyak kalangan masyarakat dengan biaya yang
murah.
Pemanfaatan perangkat android dan penggunaan media komunikasi wireless, baik bluetooth maupun Wi-
Fi untuk sistem home automation ini telah dilakukan dibeberapa penelitian sebelumnya, namun masih
berfokus pada bagaimana mengendalikan perangkat elektrik saja [2, 3]. Dalam penelitian ini akan
ditambahkan fitur lainnya, yaitu faktor keamanan seperti kamera pengawas, alarm, dan kunci pintu
otomatis sebagai tindakan pencegahan.
Tujuan dari penelitian ini adalah bagaimana memanfaatkan perangkat android yang sudah ada dan telah
banyak digunakan oleh masyarakat serta single-board arduino yang harganya semakin terjangkau untuk
mengontrol perangkat elektrik di rumah sehingga dapat memberikan kemudahan monitoring,
kenyamanan, dan keamanan.
METODE 2.
2.1. Metode Penelitian
Metode penelitian yang dilakukan dalam penelitian ini dibagi dalam beberapa tahapan penelitian, yaitu.
1) Pengumpulan data-data yang diperlukan berhubungan dengan sistem yang akan dibuat melalui studi
pustaka yang bersumber dari buku referensi, jurnal, maupun internet.
2) Melakukan analisis kebutuhan perangkat keras yang digunakan serta perancangan interkoneksinya.
3) Melakukan perancangan dan pembuatan perangkat lunak pada bagian sistem Arduino dan Android.
4) Melakukan uji coba sistem secara keseluruhan.
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
242
2.2. Home Automation
Home automation atau biasa disebut juga home control, smart home, smart house atau intelligent home
sebenarnya adalah kumpulan dari perangkat, sistem dan subsistem yang mana memiliki kemampuan
untuk berinteraksi satu sama lain atau berfungsi secara independen. Hal ini memungkinkan pemilik
rumah dapat mengendalikan hampir seluruh peralatan rumah secara individual atau secara kolektif
dengan menggunakan penjadwalan otomatis atau perubahan secara tiba-tiba [1].
Definisi lain dari home automation, home automation terdiri atas dua kata home dan automation.
1) Home (noun): sebuah tempat (seperti rumah atau apartemen) dimana manusia tinggal.
2) Automation (noun): operasi secara otomatis yang dikendalikan melalui sebuah alat, proses atau sistem
dengan perangkat mekanik atau elektronik untuk mengambil alih kerja manusia.
Jadi definisi dari home automation adalah tindakan untuk menjadikan kendali tugas di dalam rumah yang
dilakukan oleh manusia menjadi otomatis [4].
2.3. Single-board Arduino
Arduino adalah kit elektronik atau board rangkaian elektronik berbasis mikrokontroler yang bersifat
opensource dimana di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis
AVR buatan Atmel (Atmega328). Arduino merupakan opensource electronic platform yang bersifat easy-
to-use untuk membuat berbagai proyek elektronika. Arduino dapat menerima sinyal dari berbagai macam
sensor dan dapat mengendalikan berbagai perangkat seperti LED, motor, dan lain-lain. Selain itu, karena
arduino adalah sistem berbasis microcontroller maka perlu dituliskan perintah atau program ke dalam
Arduino tersebut agar dapat berfungsi sesuai dengan yang diinginkan. Bahasa pemrograman yang
digunakan mirip dengan C# dan untuk meng-upload program ke arduino dibutuhkan aplikasi arduino IDE
yang merupakan aplikasi compiler resmi dari arduino [5]. Gambar 1 merupakan tampilan dari single-
board arduino uno.
Gambar 1. Single-board arduino uno.
Single-board arduino ini menyediakan dukungan soket ekspansi sehingga dapat dikembangkan fungsinya
untuk keperluan lain. Beberapa komponen yang didukung oleh single-board arduino ini, antara lain.
2.3.1. Ethernet Shield Board
Penambahan Ethernet Shield Board memungkinkan single-board arduino dapat terhubung ke jaringan
lokal maupun internet. Ethernet Shield ini berbasis ethernet chip Wiznet W5100. Wiznet W5100
menyediakan protokol jaringan TCP/IP dan UDP. Dukungan Ethernet Shield Board dapat dilakukan
hingga empat koneksi soket secara simultan. Ethernet Shield Board terhubung ke single-board arduino
melalui soket dengan pin yang terhubung dan menumpuk di atasnya [5]. Gambar 2 merupakan tampilan
dari arduino ethernet shield R3.
Gambar 2. Arduino ethernet shield R3.
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
243
2.3.2. Relay Module Board
Relay adalah saklar mekanik yang dikendalikan atau dikontrol secara elektronik (elektromagnetik). Saklar
pada relay akan terjadi perubahan posisi OFF ke ON pada saat diberikan energi elektromagnetik pada
armatur relay tersebut. Relay pada dasarnya terdiri dari 2 bagian utama yaitu saklar mekanik dan sistem
pembangkit elektromagnetik (induktor inti besi). Saklar atau kontaktor relay dikendalikan menggunakan
tegangan listrik yang diberikan ke induktor pembangkit magnet untuk menarik armatur tuas saklar atau
kontaktor relay [6]. Gambar 3 merupakan tampilan dari Relay Module Board Shield 4 Channel 5V.
Gambar 3. Relay module board shield 4 channel 5V.
2.3.3. Passive Infra Red (PIR)
Passive Infra Red (PIR) adalah sensor yang digunakan untuk mendeteksi adanya pancaran sinar infra
merah. Sensor PIR bersifat pasif, artinya sensor ini tidak memancarkan sinar infra merah tetapi hanya
menerima radiasi sinar infra merah dari luar [6]. Gambar 4 menunjukkan bentuk dan tampilan dari
Passive Infra Red (PIR).
Gambar 4. Passive Infra Red (PIR).
2.3.4. Buzzer
Buzzer adalah komponen elektronik yang berfungsi untuk mengubah getaran listrik menjadi getaran
suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loudspeaker, jadi buzzer juga terdiri dari
kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi
elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas
magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan
menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan
suara [6]. Gambar 5 merupakan tampilan dari Buzzer.
Gambar 5. Buzzer.
2.3.5. Motor Servo
Motor servo adalah motor DC yang dilengkapi rangkaian kendali dengan sistem closed feedback yang
terintegrasi di dalam motor tersebut. Pada motor servo posisi putaran sumbu (axis) dari motor akan
diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo [6]. Motor servo disusun
dari sebuah motor DC, gearbox, Variabel Resistor (VR) atau potensiometer dan rangkaian kontrol.
Potensiometer berfungsi untuk menentukan batas maksimum putaran sumbu (axis) motor servo
sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang ada pada pin kontrol motor
servo. Motor servo dapat dilihat pada Gambar 6.
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
244
Gambar 6. Motor servo.
2.4. Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem
operasi, middleware dan aplikasi. Aplikasi android ditulis dalam bahasa pemrograman java. Kode java
dikompilasi bersama data file resource yang dibutuhkan oleh aplikasi, di mana prosesnya di-package oleh
tools yang dinamakan “apt tools” ke dalam paket Android sehingga menghasilkan file dengan ekstensi
apk, dan nantinya dapat di install di perangkat mobile [7].
HASIL DAN PEMBAHASAN 3.
3.1. Analisis dan Perancangan Perangkat Keras
3.1.1. Kebutuhan Perangkat Keras
Kebutuhan perangkat keras dapat dilihat pada Tabel 1.
Tabel 1. Kebutuhan perangkat keras
No. Nama Komponen Qty. No. Nama Komponen Qty.
1. Single-Board Arduino Uno 1 12. Steker listrik AC female 3
2. Arduino Ethernet Shield
Board
1 13. Steker listrik AC male 1
3. Relay Module Board 4 Chanel 5 Volt
1 14. Adaptor 1
4. Wi-Fi Router 1 15. Box akrilik ukuran 22 cm
x 15,5 cm
1
5. PIR Sensor 1 16. Switch 1 6. Buzzer 1 17. Fuse 1 A + Box 1
7. Motor Servo 1 18. Fuse box 1
8. Webcam 1 19. Terminal Blok 1
9. Jumper-male-to-female 20 11. Kabel kawat kecil
10. Kabel LAN 1 20. Kabel listrik AC
3.1.2. Diagram Blok Sistem
Diagram blok sistem terdapat pada Gambar 7.
Single-Board Arduino+
Ethernet Shield Board
Mini Wi-FiRouter
Relay Module Board4 Channel
PIR Sensor
WebCam
SmartphoneAndroid
Buzzer Motor Servo
Obyek
Bergerak
PerangkatElektrik
Gambar 7. Diagram blok sistem.
Dari Gambar 7 terlihat bahwa single-board arduino terhubung dengan ethernet shield board agar dapat
berkomunikasi dengan perangkat lainnya melalui jaringan yang mendukung protokol TCP/IP yaitu Mini
Wi-Fi router sehingga dapat berkomunikasi dengan perangkat android, WebCam, dan perangkat lainnya
yang terhubung dalam satu jaringan. Port input/output dari single-board arduino terhubung dengan
beberapa komponen, yaitu:
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
245
1) Relay Module Board yang berfungsi sebagai saklar elektronik untuk menghidupkan dan mematikan
perangkat elektrik. Fungsi dari pensaklaran ini dikontrol oleh mikrokontroler yang terdapat di dalam
arduino board sesuai dengan perintah yang dikirim oleh smartphone android.
2) Motor Servo untuk menggerakan kunci pintu berdasarkan respon dari sensor infra red (PIR Sensor)
yang menerima informasi adanya obyek yang bergerak.
3) Buzzer berfungsi sebagai bunyi alarm yang memberitahukan adanya obyek bergerak yang diterima
oleh sensor infrared (PIR Sensor).
3.1.3. Pin Diagram
Tabel 2 adalah konfigurasi dari penggunaan pin pada single-board arduino yang menghubungkan dengan
perangkat lainnya.
Tabel 2. Pin diagram interkoneksi single-board arduino dengan perangkat lainnya
No Nama Komponen Pin Komponen Pin Arduino
1 Relay Vcc 5V
In1 2
In2 3
In3 4
In4 5
Gnd Gnd
2 Motor Vcc 5V
Out 7
Gnd Gnd
3 PIR Vcc 5V
Out 7
Gnd Gnd
4 Buzzer Positive 9
Negative Gnd
3.2. Analisis dan Perancangan Perangkat Lunak
a. Use Case Diagram
Gambar 8 merupakan use case diagram dari perangkat keras yang dibuat.
Gambar 8. Use case diagram.
Use case diagram menunjukan fitur apa saja yang terdapat pada sistem home automation yang akan
dibuat, fitur tersebut adalah setup, mengendalikan lampu, mengendalikan perangkat elektrik, buka/tutup
kunci pintu, aktivasi alarm, dan streaming obyek dari kamera.
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
246
b. Activity dan Sequence Diagram
Activity dan sequence diagram menunjukan urutan aktifitas yang terjadi dari mulai user memilih tindakan
pada aplikasi android sampai dengan arduino mengirimkan status ditunjukkan pada Gambar 9.
Gambar 9. Activity dan sequence diagram.
c. Algoritma Program Arduino
Program yang berjalan pada single-board arduino dimulai dari tahap loading library yang dibutuhkan
kemudian dilanjutkan dengan inisialisasi Port I/O melalui pin yang ada sesuai dengan fungsi yang
diharapkan. Selanjutnya adalah melakukan setup konfigurasi ethernet shield board agar dapat terhubung
ke dalam jaringan melalui Wi-Fi router dan perangkat android. Berikutnya arduino akan menunggu dan
merespon terhadap sinyal-sinyal yang dikodekan dan dikirim dari perangkat android. Algoritma program
dari sistem arduino dapat dilihat pada flowchart pada Gambar 10 bawah ini.
Gambar 10. Flowchart program arduino.
d. Cara Kerja Program Keseluruhan
Cara kerja dari sistem home automation yang dibuat adalah android akan mengirimkan kode melalui
jaringan yang akan diterima oleh arduino sebagai text, selanjutnya arduino akan mendeskripsikan text
tersebut menjadi sebuah perintah dengan menggunakan logika if-case. Pada dasarnya perintah yang
dikirim adalah untuk memberikan atau memutuskan arus listrik untuk aktuator sehingga aktuator bekerja
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
247
sesuai dengan keinginan user. Tabel 3 adalah daftar kode kendali yang dikirim oleh aplikasi dari
perangkat android untuk mengendalikan kerja arduino.
Tabel 3. Daftar kode kendali
Kode Perintah
L Lampu nyala
L Lampu mati
A Perangkat 1 hidup
A Perangkat 2 hidup
B Perangkat 3 hidup
B Perangkat 1 mati
C Perangkat 2 mati
C Perangkat 3 mati
S Alarm aktif
S Alarm tidak aktif
M Kunci
M Buka kunci
e. Rancangan Database
Database yang dibuat hanya terdiri dari 1 (satu) tabel dan tersimpan di perangkat android. Database ini
diperlukan untuk menyimpan setting IP Address single-board arduino, nomor port yang diakses, dan
URL dari kamera. Untuk tabel setup dapat dilihat pada Tabel 1.
Tabel 4. Tabel setup
Nama Field Jenis Panjang
ip_arduino Varchar 15
Port Varchar 4
url_cam Varchar 50
f. Deployment Diagram
Gambar 11 adalah deployment diagram dari software. Komponen-komponen pada deployment diagram
terdapat pada Tabel 5.
Gambar 11. Deployment diagram.
Tabel 5. Keterangan komponen deployment diagram
No Nama Node/
Komponen
Keterangan
1. Android Difungsikan sebagai remote dari home automation.
2. Aplikasi Aplikasi android yang dibuat penulis untuk
mengendalikan home automation.
3. Database Basis data pada aplikasi untuk menyimpan pengaturan dan
IP address home automation
4. Router Berfungsi menyediakan jaringan komputer untuk
menghubungkan android dengan arduino dan kamera.
5. Kamera Digunakan untuk memantau kedaan rumah dan dapat di-
deployment Deployment Model
«device»
Pengontrol
«device»
Ethernet Shield
«device»
Relay
«device»
Android
Aplikasi
Database
«device»
Motor
«device»
PIR
«device»
Buzzer
«device»
Router
«device»
Kamera
«device»
Arduino
Alat Elektronik
Arduino.ino
SPI.h Ethernet.h Servo.h
EthernetUDP.h
<ethernet><wifi>
<ethernet>
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
248
streaming melalui aplikasi
6. Pengontrol Rangkaian utama dari home automation yang terdiri atas
arduino, ethernet shield dan relay
7. Arduino Merupakan otak dari home automation yang
mengendalikan kerja komponen lain
8. Ethernet Shield Digunakan untuk menghubungkan arduino ke jaringan
yang disediakan router melalui kabel ethrtnet.
9. Relay Saklar otomatis yang dikendalikan oleh arduino.
10. PIR Sensor pendeteksi gerak atau objek.
11. Motor Penggerak untuk memutar kunci.
12. Buzzer Alat pngeras suara tanda alarm.
13. Alat Elektronik Node terdiri alat-alat listrik yang dihubungkan ke
pengontrol dan dapat dikendalikan oleh home automation.
14. Arduino.ino Source file yang ditanamkan pada arduino yang berisi
sekumpulan perintah eksekusi untuk mengoperasikan
home automation.
15. SPI.h Serial Peripheral Interface, library yang berisi protokol-
protokol agar arduino bisa berkomunikasi dengan perngkat
lain.
16. Ethernet.h Library berisi protokol dan fungsi dari ethernet.
17. EthernetUDP.h Library Unit Datagram Protocol
18. Servo.h Library untuk motor servo.
g. Rancangan User Interface Aplikasi Android
Gambar 12 adalah rancangan untuk tampilan user interface pada aplikasi android.
Application Title
Switch Control
Kunci/Buka Kunci
Alarm
Camera
Status
Application Title
ONOFF
ONOFF
ONOFF
ONOFF
Dev 1 Status
Dev 2 Status
Dev 3 Status
Dev 4 Status
Application Title
IP Address
Port
URL Cam
Save
(1) (2) (3)
Gambar 12. Rancangan tampilan user interface aplikasi android.
Keterangan:
1) Rancangan tampilan dashboard.
2) Rancangan tampilan switch control.
3) Rancangan tampilan setting.
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
249
3.3. Implementasi
3.3.1. Implementasi Perangkat Keras
Gambar 13 adalah hasil dari implementasi perakitan perangkat keras yang diperlukan:
Gambar 13. Komponen perangkat keras yang telah tersusun.
Perangkat yang diimplementasi hanya bisa dapat mengendalikan 4 (empat) perangkat elektrik, 1 (satu)
motor DC, 1 (satu) sensor infra red, dan buzzer, simulasi dalam uji cobanya pada Gambar 14.
Gambar 14. Denah untuk simulasi uji coba.
3.3.2. Implementasi Program
1. Program Android
Fungsi utama dari program android adalah untuk mengirim pesan berupa paket data ke arduino melalui
protokol UDP dimana pesan tersebut berisi kode untuk menentukan tindakan apa yang akan dilakukan
arduino. Selain mengirim, program android pun dapat menerima pesan dari arduino sehingga user dapat
mengetahui kondisi status dari perangkat yang terhubung ke single-board arduino.
Berikut ini adalah script utama untuk mengirim pesan melalui protokol UDP.
String s;
byte[] b = (s.getBytes());
if (isOnline()) {
byte[] receiveData = new byte[1024];
serverHostname1 = new String("192.168.1.X");
ip = InetAddress.getByName(serverHostname1);
try {
d1 = new DatagramSocket();
} catch (Exception e)
e.printStackTrace();
}
try {
send = new DatagramPacket(b, b.length, ip, 8032);
} catch (Exception e) {
}
d1.send(send);
}
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
250
Variabel string “s” berisi kode untuk perintah arduino, selanjutnya nilai dari variabel “s” dirubah menjadi
bentuk byte dan disimpan dalam variabel “b”. Proses berikutnya adalah menjadikan nilai dari variabel “b”
sebagai packet datagram sehingga dapat dikirim dengan tujuan IP Address dan port arduino melalui
protokol datagram yang sedang aktif. Adapun hasil dari implementasi program android ditunjukkan pada
Gambar 15.
(a) (b) (c)
(d) (e) (f)
Gambar 15. Implementasi aplikasi di perangkat Android.
Keterangan gambar:
(a) Tampilan ketika tidak terhubung jaringan
(b) Tampilan ketika terhubung ke jaringan tetapi tidak terkoneksi ke Arduino
(c) Tampilan ketika terhubung ke jaringan dan Arduino
(d) Switch Control
(e) Tampilan streaming dari kamera
(f) Tampilan setting
2. Program Single-board Arduino
Pemrograman arduino digunakan bahasa C, hanya saja memiliki sedikit perbedaan dari segi struktur
utama, jika pada bahasa C konvensional void utama adalah void main () sedangkan untuk pemrograman
arduino membutuhkan dua void utama yaitu void setup() dan void loop().
Void setup() merupakan sekumpulan perintah yang dibaca satu kali ketika Arduino pertama kali
dinyalakan, perintah dalam void ini biasanya perintah untuk menentukan sebuah kondisi atau membuat
lingkungan kerja, contohnya menentukan jenis digital pin dari arduino atau menentukan keadaan arduino.
Sedangkan void loop() akan dibaca terus menerus dan berulang-ulang ketika arduino menyala.
3.4. Pengujian
3.4.1. Pengujian Progarm Arduino
Berikut adalah script dari program arduino untuk kendali alat elektronik. Gambar 16 adalah flow graph
hasil pengujian program arduino untuk kendali alat elektrik.
1 Void Loop(){
2 Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
3 if (packetBuffer[0] == 'L') {
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
251
4 digitalWrite(relay1, LOW);
5 s = "ON";
6 }else if (packetBuffer[0] == 'l') {
7 digitalWrite(relay1, HIGH);
8 s = "OFF";
9 }
10 sendStatus(String s);
11 }
12 void sendStatus(String msg) {
13 Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
14 Udp.print(msg);
15 Udp.endPacket();
16 }
1
2
3
4 6
5
9
7
8
10
11
12
13
14
15
16
Gambar 16. Flow graph hasil pengujian program arduino untuk kendali alat elektrik.
Perhitungan white box.
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Proses ini memperoleh nilai CC sebesar 3, tergolong simple procedure dan memiliki resiko error rendah.
3.4.2. Pengujian Program Android
Berikut adalah script dari arduinoCmd(). 1 public void arduinoCmd(String s) throws Exception {
2 byte[] b = (s.getBytes());
3 if (isOnline()) {
4 byte[] receiveData = new byte[1024];
serverHostname1 = new String("192.168.1.105");
ip = InetAddress.getByName(serverHostname1);
5 try {
6 d1 = new DatagramSocket();
7 } catch (Exception e) {
8 e.printStackTrace(); }
9 try {
10 send = new DatagramPacket(b, b.length, ip, 8032);
11 } catch (Exception e) {
12 e.printStackTrace();}
13 d1.send(send);
14 rec = new DatagramPacket(receiveData, receiveData.length);
15 d1.setSoTimeout(10000);
16 d1.receive(rec);
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
252
17 modifiedSentence = new String(rec.getData());
18 d1.close();
19 } else {
Toast.makeText(getApplicationContext(), "No network",
20 Toast.LENGTH_LONG).show();}
21 }
Flow Graph hasil pengujian program android dapat dilihat pada Gambar 17.
1 2 3 4 5 6 9
101314151617
7
8
18
111219 20 21
Gambar 17. Flow Graph hasil pengujian program Android.
Perhitungan white box.
(8)
(9)
(10)
(11)
(12)
(13)
(14)
Proses ini memperoleh nilai CC sebesar 4, tergolong simple procedure dan memiliki resiko error rendah.
3.4.1 Akumulasi Seluruh Hasil Pengujian
Tabel 6 adalah akumulasi dari seluruh proses yang terdapat pada arduino dan android.
Tabel 6. Akumulasi hasil pengujian dengan white box
Perangkat Nama Proses Nilai Cyclomatic Complexity
Arduino kendali alat elektronik 3
kendali kunci 5
aktifasi alaram 7,5
Jumlah 15,5
Android arduinoCmd () 4,5
menampilkan setting 3
update setting 1
Jumlah 8,5
Rata-rata nilai CC Arduino = 15,5 / 3 = 5,166
Rata-rata nilai CC Android = 8,5 / 3 = 2,84
SIMPULAN 4.
Arduino merupakan single-board berbasis mikrokontroler yang dapat digunakan untuk berbagai macam
keperluan serta dapat dihubungkan dengan perangkat Android yang semakin banyak penggunanya
sehingga dapat membangun home automation dengan biaya yang murah. Perangkat Android yang
digunakan berfungsi sebagai pengendali home automation yang dilengkapi fitur keamanan berupa alarm,
kendali motor untuk membuka dan menutup pintu, dan video streaming untuk monitoring keadaan
sehingga dapat memberikan keamanan lebih bagi pemilik rumah. Berdasarkan hasil pengujian diperoleh
nilai rata-rata Cyclomatic Complexity sebesar 5,16 untuk program arduino dan 2,83 untuk program
Android yang artinya sistem memiliki prosedur yang sederhana dan memiliki tingkat resiko error yang
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
253
rendah. Pengembangan sistem selanjutnya dapat digunakan media internet sebagai media komunikasi
agar dapat dilakukan pengendalian jarak jauh serta dengan lingkup pengendalian perangkat elektrik yang
lebih luas.
REFERENSI 5.
[1] Gerhart, J. 1999. Home Automation and Wiring. McGraw-Hill Professional, New York.
[2] Warangkiran, I. 2014. Perancangan Kendali Lampu Berbasis Android. e-Journal Teknik Elektro dan
Komputer UNSRAT. Vol 3, No 1.
[3] Rahmiati, P. 2014. Implementasi Sistem Bluetooth menggunakan Android dan Arduino untuk Kendali
Peralatan Elektronik. Jurnal Teknik Elektro Itenas. Vol 2, No 1.
[4] Spivey, D. 2015. Home Automation for Dummies. John Wiley & Sons, New York.
[5] Kelas Microcontrol. (Online), (http://www.kelas-mikrokontrol.com/e-learning, diakses tanggal 19
Maret 2015).
[6] Elektronika Dasar. (Online), (http://elektronika-dasar.web.id, diakses tanggal 20 Februari 2015).
[7] Suprianto, D. dan Agustina, R. 2012. Pemrograman Aplikasi Android. Mediakom, Yogyakarta.
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
254
Top Related