36
3.4 Rancangan Bagian Hardware
Pada bagian hardware, sistem Home Automation yang dirancang terdiri dari sebuah Wemos D1 ESP8266 yang merupakan sebuah clone dari Board Arduino
yang dilengkapi sebuah modul Wi-Fi ESP8266. Wemos D1 akan menjadi pengendali bagi setiap yang terhubung ke pin-pinnya. Dalam hal ini perangkat
yang terhubung ke Wemos D1 adalah sebuah modul relay 4 kanal yang digunakan untuk mengontrol sebuah stop contact 4 lubang. Untuk mendapatkan kemampuan
otomasi, dua buah sensor juga disambungkan ke Wemos D1. Sensor tersebut adalah sensor passive infrared dan sensor suhu.
Agar stop contact dapat dikendalikan oleh BoardController maka harus dilakukan modifikasi pada pengkabelannya hingga menjadi seperti yang terlihat
pada Gambar 3.9.
Gambar 3.9Modifikasi pengkabelan stop contact Ke modul relay
Universitas Sumatera Utara
37 Bentuk keterhubungan seluruh perangkat yang ada pada sistem Home
Automaton yang dirancang adalah seperti yang terlihat pada Gambar 3.10.
Gambar 3.10 Keterhubungan perangkat – perangkat menjadi sistem Home Automation
3.5 Rancangan SoftwareControler
Controller sistem Home Automation yang merupakan sebuah Wemos D1,
diprogram dengan menggunakan bahasa C++. Program pada ControllerHome Automation
yang dirancang terdiri dari beberapa sub bagian yang dibagi menjadi class
– class program. Class tersbut adalah classController, classScheduler, classCollection
, classBoard
, classDevice
, class
Sensor, dan classGateway
.Hubungan antar class yang ada pada program controller adalah seperti yang terlihat pada Gambar 3.11.
Universitas Sumatera Utara
38
Board -services
-devices -sensors
+initialize +automate
Service -interval
+service
Device -pin
+behavior
Sensor -pin
+readMeasurementValue HttpClient
+service PingLogger
+service TemperatureLogger
+service Lampu
+behavior AirConditioner
+behavior Ds18B20
+readMeasurementValue PirSensor
+readMeasurementValue Controller
+setup +loop
-memberName
ServiceContract +getId
+service +setLogger
+getLogger
DeviceContract +turnOn
+turnOff +toggle
+behavior +getId
+setLogger +getLogger
SensorContract +getId
+readMeasurementValue +setLogger
+getLogger
Gambar 3.11 Diagram hubungan antar class program controller
3.5.1 ControllerClass
ControllerClass merupakanclassutama dimana fungsi setup dan fungsi dari
class ini akan menjadi fungsi setup dan fungsi loop yang akan dijalankan oleh
Wemos D1. Class ini meng-extendsclass BaseController yang merupakan sebuah
classcontract untuk seluruh classController, dimana class Base Controller
mempunyai fungsi virtual yang harus diimplementasikan oleh setiap anak class yang meng-extends class ini. Isi dari class Base Controller adalah seperti yang
terlihat pada Gambar 3.12.
Universitas Sumatera Utara
39
1 c l as s
Bas eCont r ol l er 2 {
3 publ i c
: 4 Boar dCont r ac t boar d;
5 v i r t ual
v oi d s et up =
; 6
v i r t ual v oi d
l oop = ;
7 } ;
Gambar 3.12 Kode Program class BaseController ClassController
sendiri berisi implementasi dari fungsi virtual yang ada di class
Base Controller. Fungsi – fungsi virtual tersebut adalah fungsi setup dan fungsi loop. Pada fungsi setup berisi statement untuk inisialisasi Wemos D1 serta
inisialisasi modul Wi-Fi. Pada fungsi loop berisi perintah untuk melakukan eksekusi untuk setiap event yang didaftarkan pada classScheduler. Isi dari
classController tersebut seperti yang ditunjukkan pada Gambar 3.13.
1 c l as s
Cont r ol l er :
publ i c v i r t ual
Bas eCont r ol l er 2 {
3 publ i c
: 4
v oi d s et up
5 { 6 Debug: : i s DebugMode =
t r ue ;
7 Wi Fi
. c onf i g
env : : wi f i : : i p, env : : wi f i : : gat eway , env : : wi f i : : s ubnet , env : : wi f i : : dns 1,
env : : wi f i : : dns 2 ; 8 boar d- i ni t i al i z e ;
9 boar d- aut omat e ; 10 }
11 12
v oi d l oop
13 { 14
Sc hedul er : : handl eEv ent s ;
15 } 16 } ;
Gambar 3.13 Kode program classController
3.5.2 Collection Class
CollectionClass merupakan sebuah class yang bertanggung jawab untuk
manajemen kumpulan beberapa object. ClassCollectionyang digunakan pada
Universitas Sumatera Utara
40 Sistem Home Automation yang dirancang pada dasarnya adalah sebuah wrapper
untuk Class
std::vector. ClassCollection
harus meng-extends classCollection
Contract dengan kode seperti yang ditunjukkan pada Gambar 3.14.
1 names pac e
Nugr aha { names pac e
Cont r ac t s { names pac e
Col l ec t i ons { 2
3 t empl at e
c l as s Member s Ty pe
4 c l as s
Col l ec t i onCont r ac t 5 {
6 publ i c
: 7
v i r t ual v oi d
add Member s Ty pe newMember = ;
8 v i r t ual
v oi d r emov eAt
i nt i ndex =
; 9
v i r t ual i nt
c ount = ;
10 v i r t ual
Member s Ty pe get Member At i nt
i ndex = ;
11 } ; 12
13 } } }
Gambar 3.14 Kode program classCollectionContract Terdapat empat fungsi virtual yang harus diimplementasikan oleh Class
yang meng-extends classCollectionContract yaitu: fungsi add yang merupakan fungsi untuk menambahkan anggota baru ke koleksi; fungsi removeAt yang
merupakan fungsi untuk menghapus anggoa koleksi pada indeks tertentu; fungsi count yang merupakan fungsi untuk mendapatkan total jumlah anggota yang ada
di dalam koleksi;fungsi getMemberAt yang merupakan sebuah fungsi untuk mendapatkan anggota koleksi pada indeks tertentu. ClassCollectionContract
diimplementasikan pada classCollection seperti yang terlihat pada Gambar 3.15.
Universitas Sumatera Utara
41
1 c l as s
Col l ec t i on :
publ i c v i r t ual
Col l ec t i onMember s Ty pe { 2
pr ot ec t ed :
3 s t d: : v ec t or Member s Ty pe member s ; 4
5 publ i c
: 6
i nt c ount
7 { 8
r et ur n member s .
s i z e ;
9 } 10
11 v oi d
add Member s Ty pe newMember 12 {
13 member s . pus h_bac k newMember ; 14 }
15 16
v oi d r emov eAt
i nt i ndex
17 { 18 member s . er as e member s .
begi n + i ndex ;
19 } 20
21 Member s Ty pe get Member At i nt
i ndex 22 {
23 i f
i ndex = i ndex member s .
s i z e {
24 r et ur n
member s [ i ndex ] ; 25 }
26 r et ur n
NULL ;
27 } 28 } ;
Gambar 3.15 Kode program class koleksi Vector
3.5.3 SchedulerClass
SchedulerClass merupakan sebuah class yang bertanggung jawab untuk
pengeksekusian events yang dieksekusi berdasarkan interval waktu. Penggunaan fungsi delay bisa saja digunakan untuk mendapatkan hasil yang serupa, namun
pada penggunaan delay, Wemos D1 akan benar – benar tidak melakukan apa – apa selama selang delay tersebut. Hal ini sangat tidak efisien karena Wemos D1 tidak
akan dapat mengontrol perangkat yang lain selama periode delay tersebut. ClassScheduler
mempunyai sebuah koleksi event dan beberapa fungsi pendukung. Fungsi – fungsi tersebuat antara lain: fungsi every yang berguna
Universitas Sumatera Utara
42 untuk mendaftarkan sebuah perintah dan mengeksekusi perintah tersebut setiap
interval tertentu, fungsi handleEvents yang bertanggung jawab untuk mengupdate
timer setiap event dan mengeksekusi event tersebut jika waktu ketika fungsi ini
dipanggil di kurang dengan waktu yang direkam sebelumnya lebih besar atau sama dengan interval yang ditentukan untuk event tersebut. Kerangka
ClassScheduler yang digunakan pada sistemHome Automationyang dirancang
dapat dilihat pada Gambar 3.16.
1 c l as s
Sc hedul er 2 {
3 pr ot ec t ed
: 4
s t at i c Col l ec t i onBas eEv ent Ev ent Col l ec t i on;
5 6
publ i c :
7 t empl at e
t y pename Cal l bac k
8 s t at i c
v oi d ev er y
uns i gned l ong
i nt er v al , Cal l bac k c al l bac k , i nt
r epeat Count = - 1
9 { 10 Ev ent Col l ec t i on- add
new St at i c Ev ent Cal l bac k i nt er v al ,
c al l bac k ; 11 }
12 13
t empl at e t y pename
Cal l bac k , t y pename
Obj ec t Ty pe 14
s t at i c v oi d
ev er y uns i gned
l ong i nt er v al , Obj ec t Ty pe obj ec t ,
Cal l bac k c al l bac k , i nt
r epeat Count = - 1
15 { 16 Ev ent Col l ec t i on- add
new Ev ent Cal l bac k ,
Obj ec t Ty pe i nt er v al , c al l bac k , obj ec t ; 17 }
18 19
s t at i c v oi d
handl eEv ent s 20 {
21 f or
i nt i =
; i Ev ent Col l ec t i on- c ount ; i ++ 22 {
23 Ev ent Col l ec t i on- get Member At i - updat e mi l l i s
; 24 }
25 } 26 } ;
Gambar 3.16 Kode program classScheduler
Universitas Sumatera Utara
43 Class
Event yang ada pada classScheduler adalah sebuah class yang meng- extends class BaseEvent dan EventContract. Class tersebut mempunyai fungsi
executeCallback yang akan mengesekusi callback yang telah ditentukan. Class Event dapat dilihat pada Gambar 3.17.
1 t empl at e
c l as s Cal l bac k
2 c l as s
St at i c Ev ent :
publ i c v i r t ual
Bas eEv ent 3 {
4 pr ot ec t ed
: 5 Cal l bac k c al l bac k ;
6 7
publ i c :
8 St at i c Ev ent uns i gned
l ong i nt er v al , Cal l bac k c al l bac k :
___________ c al l bac k c al l bac k
9 { 10
t hi s - i nt er v al = i nt er v al ;
11 } 12
13 v oi d
ex ec ut eCal l bac k 14 {
15 t hi s
- c al l bac k ; 16 }
17 } ;
Gambar 3.17 Kode program class StaticEvent
3.5.4 BoardClass
BoardClass merupakanclass yang memodelkan perangkat Wemos D1. Pada
class ini sebuah fungsi attach dapat digunakan untuk menyambungkan instance
dari ClassGateway, ClassDevice atau Class Sensor pada instance classBoard seperti yang terlihat pada Kode Program berikut. ClassWemos D1 merupakan
extend dari classBoardContract. Class WemosD1 harus mengimplementasikan tiga fungsi virtual yang ada pada classBoardContract. Ketiga fungsi tersebut
adalah fungsi fungsi Gateways, fungsi Devices dan fungsi sensors. Dimana fungsi Gateway
s adalah fungsi dimana seluruh Gateway yang ingin disambungkan ke Wemos
D1 didaftarkan, fungsi Devices adalah fungsi dimana seluruh perangkat
Universitas Sumatera Utara
44 yang ingin disambungkan ke WemosD1 didaftarkan, begitu juga dengan fungsi
sensors yang merupakan tempat dimana seluruh sensor yang ingin disambungkan ke WemosD1 didaftarkan. Class WemosD1 lebih jelasnya dapat dilihat pada
Gambar 3.18.
1 c l as s
Wemos D1 :
publ i c v i r t ual
Boar d { 2
pr ot ec t ed :
3 v oi d
gat eway s 4 {
5 t hi s
- at t ac hGat eway new
Per s i s t ent Ht t p s t d: : map
St r i ng ,
St r i ng {
6 { hos t
, env : : ht t pCl i ent : : hos t } , 7 {
mode , env : : ht t pCl i ent : : mode } ,
8 { publ i s hKey
, env : : ht t pCl i ent : : publ i s hKey } , 9 {
s ubs c r i beKey , env : : ht t pCl i ent : : s ubs c r i beKey } ,
10 { s i gnat ur e
, env : : ht t pCl i ent : : s i gnat ur e } , 11 {
c hannel Name , env : : ht t pCl i ent : : c hannel Name } ,
12 { c al l bac k
, env : : ht t pCl i ent : : c al l bac k } 13 } ;
14 } 15
v oi d dev i c es
16 { 17
t hi s - at t ac hDev i c e
new Ai r Condi t i oner D13,
NULL ;
18 t hi s
- at t ac hDev i c e new
Led BUI LTI N_LED, NULL
; 19 }
20 v oi d
s ens or s 21 {
22 t hi s
- at t ac hSens or new
Sens or Suhu D12 ; 23 }
24 } ;
Gambar 3.18 Kode program class Wemos D1
3.5.5 DeviceClass
DeviceClass merupakanclass yang memodelkan perangkat yang terhubung
ke WemosD1. Class ini memungkinkan proses manipulasi perangkat menjadi lebih mudah. Class ini merupakan extend dari classDeviceContract, dimana pada
classcontract tersebut terdapat 7 fungsi virtual yang harus diimplementasikan
oleh classDevice. ClassDeviceContract ditunjukkan pada Gambar 3.19.
Universitas Sumatera Utara
45
1 c l as s
Dev i c eCont r ac t 2 {
3 publ i c
: 4
v i r t ual v oi d
t ur nOn = ;
5 v i r t ual
v oi d t ur nOf f =
; 6
v i r t ual v oi d
behav i or = ;
7 v i r t ual
v oi d i ni t i al i z e =
; 8
v i r t ual i nt
get Pi n = ;
9 v i r t ual
v oi d s et Logger Logger Cont r ac t l ogger =
; 10
v i r t ual Logger Cont r ac t get Logger =
; 11 } ;
Gambar 3.19 Kode program classDeviceContract Fungsi tersebut antara lain: fungsi turnOn, bertanggung jawab untuk logika
menghidupkan perangkat; fungsi turnOff, bertanggung jawab untuk logika mematikan perangkat; fungsi behavior, adalah fungsi yang mengatur perilaku dari
perangkat; fungsi initialize, adalah fungsi yang bertanggung jawab untuk inisialisasi perangkat; fungsi getPin, berfungsi untuk mendapatkan nomor pin
perangkat dimana perangkat tersebut terhubung ke WemosD1; fungsi setLogger, adalah fungsi yang berguna untuk men-set Logger yang digunakan oleh
perangkat; fungsi getLogger, adalah fungsi yang berguna untuk mendapatkan Logger
yang digunakan. ClassDevice
mempunyai beberapa properti seperti driver dan sensor. Properti driver merupakan sebuah instance dari class yang meng-extends class
DriverContract. Driver bertanggung jawab pada logika yang dibutuhkan untuk menghidupkan dan mematikan perangkat. Properti berikutnya adalah sensor yang
berguna untuk mendapatkan nilai pembacaan tertentu, kemudian fungsi behavior dapat menggunakan nilai pembacaan tersebut untuk menjadi pertimbangan
perilaku dari perangkat.
Universitas Sumatera Utara
46 Instance dari classDevice tidak dapat langsung didaftarkan pada
ClassBoard . Hanya instance dari class yang meng-extends classDevice yang
dapat didaftarkan pada classBoard. Anak class dari classDevice dapat berupa perangkat yang lebih spesifik seperti LED, lampu, remote AC dan sebagainya.
3.5.6 SensorClass
SensorClassmerupakanclass yang memodelkan perangkat sensor yang terhubung ke WemosD1. Class ini memungkin proses pembacaan dapat dilakukan
dengan lebih mudah. Class ini juga mempermudah mengaitkan sebuah sensor dengan sebuah perangkat, sehingga perangkat tersebut dapat mempunyai perilaku
berdasarkan pada pembacaan sensor. Class
Sensor meng-extends class SensorContract dimana pada class tersebut terdapat empat fungsi virtual yang harus diimplementasikan oleh class
Sensor. Fungsi tersebut antara lain: fungsi initialize, merupakan fungsi yang bertanggung jawab untuk melakukan inisialisasi sensor; fungsi
readMeasurementValue, merupakan fungsi yang bertanggung jawab untuk mendapatkan nilai pembacaan sensor; fungsi setLogger, merupakan fungsi yang
berguna untuk men-set object sensor yang digunakan; fungsi getLogger, merupakan fungsi yang berguna untuk mendapatkan Logger yang sedang
digunakan. Class SensorContract untuk lebih jelasnya dapat dilihat pada Gambar 3.20.
Universitas Sumatera Utara
47
1 c l as s
Sens or Cont r ac t 2 {
3 publ i c
: 4
v i r t ual v oi d
i ni t i al i z e = ;
5 v i r t ual
doubl e r eadMeas ur ement Val ue =
; 6
v i r t ual v oi d
s et Logger Logger Cont r ac t l ogger = ;
7 v i r t ual
Logger Cont r ac t get Logger = ;
8 } ;
Gambar 3.20 Kode program class SensorContract
3.5.7 LoggerClass
LoggerClass merupakan sebuah class yang bertanggung jawab untuk
mengumpulkan notifikasi perangkat dan pembacaan sensor yang terhubung ke Wemos
D1. ClassLogger meng-extends classLoggerContract yang berisi fungsi virtual
yang harus diimplementasikan oleh classLogger. ClassLoggerContract dapat dilihat pada Gambar 3.21.
1 c l as s
Logger Cont r ac t 2 {
3 publ i c
: 4
v i r t ual v oi d
addNot i f i c at i on i nt
c ode, St r i ng
mes s age = ;
5 v i r t ual
v oi d addSens or Meas ur ement
St r i ng s ens or Name,
St r i ng __________
meas ur ement Val ue = ;
6 v i r t ual
St r i ng get LogMes s age =
; 7
v i r t ual v oi d
pr i nt ToSer i al = ;
8 } ;
Gambar 3.21 Kode program classLoggerContract Implementasi dari classLoggerContract yang dituliskan pada classLogger
pada dasarnya akan mengambil notifikasi pada setiap perangkat dan pembacaan pada setiap sensor dan menyatukan semua data tersebut menjadi sebuah teks
dalam format JSON. Kemudian ClassGateway akan mengambil teks tersebut dan menggabungkannya dengan teks alamat server, publish key, subscribe key dan
beberapa teks informasi uri lainnya menjadi sebuah alamat resources locator.
Universitas Sumatera Utara
48 Setelah itu classGateway akan melakukan http get ke server menggunakan uri
tersebut.
3.5.8 GatewayClass
GatewayClass merupakanclass yang memodelkan modul Wi-Fi yang ada
pada Wemos D1. Class ini memungkinkan proses melakukan http request menjadi lebih mudah. Pengaturan Wi-Fi seperti SSID, password, alamat IP, Subnet,
Gateway dan DNS dengan class ini juga menjadi lebih mudah karena sebuah file
configurasi khusus telah disiapkan untuk pengaturan classGateway ini seperti yang dapat dilihat pada Gambar 3.22.
1 names pac e
env { 2
3 names pac e
wi f i { 4
St r i ng s s i d =
Fugue2 ;
5 St r i ng
pas s wor d = s ec r et
; 6
I PAddr es s i p
192 ,
168 ,
137 ,
69 ;
7 I PAddr es s
s ubnet 255
, 255
, 255
, ;
8 I PAddr es s
gat eway 192
, 168
, 137
, 1
; 9
I PAddr es s dns 1
8 ,
8 ,
8 ,
8 ;
10 I PAddr es s
dns 2 8
, 8
, 4
, 4
; 11 }
12 13 }
Gambar 3.22 kode configurasi Wi-Fi Kemudian untuk menggunakan nilai – nilai tersebut pada konfigurasi Wi-Fi
dapat dilakukan dengan menggunakan syntax seperti yang terlihat pada Gambar 3.23
1 Wi Fi
. c onf i g
env : : wi f i : : i p, env : : wi f i : : gat eway , 2 env : : wi f i : : s ubnet , env : : wi f i : : dns 1, env : : wi f i : : dns 2 ;
Gambar 3.23Setting Wi-Fi menggunakan nilai dari file konfigurasi
Universitas Sumatera Utara
49 Reques HTTP dapat dilakukan dengan menggunakan class khusus yang
meng-extends classGatewayContract. Class ini mempunyai fungsionalitas konfigurasi seperti yang dijelaskan sebelumnya. Class ini dibagi menjadi dua,
yaitu class HTTPClient yang menggunakan koneksi HTTP Persistent dan dan class
HTTPClient yang menggunakan koneksi HTTP Non-persistent. Koneksi HTTP persistent dapat dilakukan dengan memberikan kode “keep-alive” pada
header yang dikirimkan ke server seperti yang ditunjukkan Gambar 3.24.
1 i f
_r eus e { 2 header += F
k eep- al i v e ; per s i s t ent
3 } el s e
{ 4 header += F
c l os e ; non- per s i s t ent
5 }
Gambar 3.24Pengaturan koneksi persistent dan non-persistent ClassGateway
juga bertanggung jawab untuk mengirimkan data ke server dan menerima perintah dari server. Hal itu dapat dilakukan dengan melakukan
HTTP get ke server dengan menggunakan uri yang terdiri dari beberapa sub- bagian seperti: mode, merupakan Mode yang digunakan, dalam hal ini mode yang
digunakan adalah publish; Publish Key dan Subscribe Key, merupakan string acak sepanjang 42 karakter yang berguna untuk melindungi uri dari akses yang tidak
diinginkan; signature, merupakan parameter tambahan yang berguna untuk memberikan tanda khusus dari data yang dikirimkan; Channel Name, merupakan
nama kanal yang digunakan untuk berkomunikasi dengan server; Callback, merupakan fungsi yang akan dipanggil dibagian server setelah data diterima.
Parameter – parameter tersebut juga dapat diatur melalui file config seperti pada Gambar 3.25.
Universitas Sumatera Utara
50
1 names pac e
env { 2
3 names pac e
ht t pCl i ent { 4
St r i ng hos t =
www. wahy unugr aha. c om ;
5 St r i ng
mode = publ i s h
; 6
St r i ng publ i s hKey =
pub- w- 3e5de365- 5d57- 48c 7- a317- 366ef 2846eb4
; 7
St r i ng s ubs c r i beKey =
s ub- n- c c a59b64- d972- 11e5- bdd5 -
_______________ 02ee2ddab7f e
; 8
St r i ng s i gnat ur e =
; 9
St r i ng c hannel Name =
r umah1 ;
10 St r i ng
c al l bac k = ;
11 } 12
13 }
Gambar 3.25 Kode konfigurasi uri yang akan di-request oleh Wemos D1
3.6 Rancangan Aplikasi Web
Aplikasi untuk sistem Home Automation yang dirancang dibangun menggunakan bahasa PHP pada bagian back-end server. Pada bagian front-end
UserInterface digunakan Javascript dan HTML. Aplikasi web yang dirancang menggunakan pola desain Model-View-
Controller MVC. Model yang dimaksud adalah model dari data yang disimpan
di database. Model akan dimanipulasi oleh user menggunakan Controller, kemudian Model yang telah dimanipulasi akan meng-update View
UserInterface yang akan dapat dilihat oleh pengguna. Pola MVC lebih jelasnya dapat dilihat pada Gambar 3.26.
Universitas Sumatera Utara
51 Gambar 3.26 Desain Model-View-Controller
3.6.1 Back-end Server
Bagian server dari aplikasi web sistem Home Automation dibangun dengan menggunakan bahasa PHP. Sebuah framework PHP yang bernama Laravel
digunakan untuk mempermudah proses pembuatan aplikasi web. Dengan Menggunakan framework Laravel penyimpanan data ke database tidak perlu
menggunakan sintaks sql murni, namun hal ini telah diabstraksikan kedalam beberapa method dari class Model. Sehingga ketika untuk melakukan
penyimpanyan data ke database cukup dilakukan dengan pemanggilan fungsi save.
3.6.1.1Routes
Pada aplikasi web yang dirancang terdapat beberapa route yang mengarah sebuah request ke Controller tertentu. Route – route tersebut dapat dilihat pada
Gambar 3.27.
Universitas Sumatera Utara
52
1 ?php
2 3 Rout e: :
get ,
HomeCont r ol l er i ndex ;
4 Rout e: : aut h
; _
5 _
Rout e: : get
publ i s h { publ i s hKey } { s ubs c r i beKey } { s i gnat ur e} { c hannel Name} { c al l bac k } { mes s age}
, Publ i s hCont r ol l er handl e
; 6 Rout e: :
get manage das hboar d
, Das hboar dCont r ol l er i ndex
; 7 Rout e: :
get manage das hboar d c ons ol e
, Cons ol eCont r ol l er i ndex
; 8 Rout e: :
get not i f i c at i ons
, Not i f i c at i ons Cont r ol l er i ndex
; 9 Rout e: :
get not i f i c at i ons { not i f i c at i ons } s een
, Not i f i c at i ons Cont r ol l er s een
; 10 Rout e: :
get meas ur ement s
, Meas ur ement s Cont r ol l er i ndex
; 11 Rout e: :
get meas ur ement s { meas ur ement s } s een
, Meas ur ement s Cont r ol l er s een
; 12 Rout e: :
get c ommands 1 { pi n}
, Commands Cont r ol l er t ur nOn
; 13 Rout e: :
get c ommands 0 { pi n}
, Commands Cont r ol l er t ur nOf f
;
Gambar 3.27Routes yang digunakan di dalam aplikasi web Route
‘’ merupakan route untuk halaman awal. Misalnya ketika user mengakses www.wahyunugraha.com maka route yang dikunjungi adalah route ‘’
dan server akan meneksekusi fungsi index yang ada pada classHomeController. Route
’auth’ merupakan route yang menangani login dan registeruser. Route
ini merupakan route bawaan framework Laravel. Route ini juga menyediakan halaman untuk melakukan login dan registrasi.
Route ‘manage’ merupakan sebuah route untuk halaman manajemen
aplikasi web. Route ini mempunya dua sub-route yaitu ‘dashBoard’ dan ‘dashBoardconsole’. Route ‘dashBoard’ akan menampilkan semua perangkat
yang tersambung ke Wemos D1. Pada route ini juga ditampilkan tombol kendali untuk menghidupkan atau mematikan perangkat yang tersambung ke Wemos D1.
Pada route ‘dashBoardconsole’ akan ditampilkan sebuah console terminal yang menampilkan aktivitas dari sistem Home Automation.
Universitas Sumatera Utara
53 Route
‘notification’ merupakan route yang berguna untuk mengambil seluruh notifikasi yang belum dibaca dalam format JSON. Route ini mempunyai
sebuah sub-route ‘notification{notifications}seen’ yang berfungsi untuk mendai suatu notifikasi sebagai notifikasi yang sudah dilihat.
Route ‘measurement’ merupkan route yang berguna untuk menampilkan
seluruh nilai pembacaan sensor yang belum dilihat. Sama seperti route notification, route ini juga mempunyai sebuah sub-route yang berfungsi untuk
menandai sebuah measurement sebagai measurement yang telah dilihaat. Route
‘commands’ merupakan route yang berfungsi untuk mengirimkan perintah ke WemosD1. Angka 1 atau 0 pada route ini menyatakan perintah apa
yang akan dikirimkan, jika 1 maka perintah yang dikirimkan adalah perintah untuk menghidupkan perangkat dan jika 0 maka perintah yang dikirim adalah
perintah untuk mematikan perangkat.
3.6.1.2 Migrations dan Model
Migration pada framework laravel adalah sebuah class yang menangi pembuatan table pada database. Pada aplikasi web sistem Home Automation yang
dirancang terdapat 3 buah tabel database. Tabel tersebut yaitu: tabel commands, merupakan tempat dimana semua perintah dari penggunan akan disimpan
sementara sebelum dikirim ke Wemos D1; tabel notifications, merupakan tabel yang menyimpan seluruh notifikasi yang datang dari Wemos D1; tabel
measurements , merupakan tabel yang menyimpan seluruh hasil pembacaan sensor
yang terhubung ke Wemos D1.
Universitas Sumatera Utara
54 Seluruh tabel yang dibuat di migrations kemudian dimodelkan kedalam
class Model. Class modul setiap tabel merupakan anak class dari
Illuminate\Database\Eloquent\Model, dimana pada class tersebut terdapat banyak sekali fungsi – fungsi yang membantu pen-query-an data dari database atau
penyimpanan data ke database.
3.6.1.3Controllers
Controller adalah class yang digunakan oleh user untuk memanipulasi
Model. Pada aplikasi web yang dirancang terdapat tujuh buah Controller. Controller
tersebuat antara lain: CommandController, ConsoleController, DashBoardController
, HomeController
, MeasurementsController
, NotificationsController
, dan PublishController. Masing – masing Controller tersebut mempunyai fungsi seperti yang dijelaskan pada bagian Routes.
3.6.2 Front-end UserInterface
Bagian userinterface dari applikasi web dibangun dengan menggunakan bahasa markup HTML dan Javascript. Aplikasi web yang dirancang terdiri dari 5
halaman, yaitu: landing page, halaman register, halaman login, halaman dashBoard
dan halaman console. Landing page
merupakan halaman awal yang akan dilihat oleh pengguna. Pada halaman ini pengguna bisa memilih aksi login atau register. Halaman ini
diakses dari route ‘’ dan dikontrol oleh classHomeController. Halaman Register merupakan tempat dimana user mengisi data seperti
nama, email, dan password untuk bergabung dengan sistem. Halaman ini diakses melalui route ‘auth’ dan dikontrol oleh class AuthController.
Universitas Sumatera Utara
55 Halaman login merupakan tempat dimana pengguna memasukkan
kredensialnya untuk masuk kedalam aplikasi web sistem Home Automation. Sama seperti halaman register, halaman ini juga diakses memalui route ‘auth’ dan
dikontrol oleh class AuthController. Halaman dashBoard merupakan halaman kendali utama. Pada halaman ini
ditampilkan seluruh perangkat yang tersambung ke Wemos D1. Pada halaman ini juga ditampilkan tombol yang berfungsi untuk menghidupkan perangkat dan
mematikan perangkat. Halaman ini diakses melalui route ‘managedashBoard’, serta dikontrol oleh classDashBoardController.
Halaman Console merupakan halaman yang dapat menampilkan aktivitas dari sistem Home Automation. Halaman ini diakses memalui route
‘managedashBoardconsole’ serta dikendalikan oleh classConsoleController.
Universitas Sumatera Utara
56
BAB 4 HASIL DAN PEMBAHASAN
4.1 Hasil Rancangan Model Sistem Home Automation
Sistem Home Automation yang dirancang terdiri dari dua bagian, yaitu bagian Kontroler dan bagian aplikasi web. Kedua bagian tersebut dijelaskan
sebagai berikut.
4.1.1 Kontroler
Bagian kontroler dari sistem Home Automatin yang dirancang terdiri dari sebuah Wemos D1 yang terintegrasi dengan modul Wi-Fi ESP8266, modul relay 4
kanal, stop contact, sensor PIR dan sensor suhu. Wemos
D1 dan modul relay di pasang di atas sebuah Boardakrilik. Penampang ketiga komponen ini setelah dipasang di atas Board akrilik seperti
yang terlihat pada Gambar 4.1.
Gambar 4.1 Penampang komponen – komponen setelah dipasang diatas Board akrilik.
Universitas Sumatera Utara
57 Stop contact
harus dimodifikasi terlebih dahulu sebelum dapat dikendalikan oleh Wemos D1 melalui modul relay. Stop contact yang telah dimodifikasi
memiliki skematik seperti yang ditunjukkan pada Gambar 4.2. Bentuk modifikasi dari stop contact yang telah selesai ditunjukkan pada gambar berikut.
Gambar 4.2Bentuk modifikasi stop contact Stop contact
yang telah dimodifikasi kemudian disambungkan ke modul relay
. Kabel power positif diparalelkan menjadi empat dan masing – masingnya masuk ke
input tengah pada masing – masing relay yang ada di modul relay. Kabel power negatif disambungkan ke rail negatif masing – masing lubang masukan
stop contact . Kemudian setiap rail negatif disambungkan ke lubang masukan
normally open setiap relay. Dengan demikian stop contact sudah dapat
dikendalikan oleh Wemos D1 melalui modul relay. Bentuk stop contact yang telah terhubung dengan modul relay diperlihatkan pada Gambar 4.3.
Universitas Sumatera Utara
58 Gambar 4.3 Bentuk Stop contact yang terhubung ke relay
Kemudian Wemos D1 dengan dihubungkan dengan menggunakan kabel jumper. Pin GND, D2, D3, D4, D5, danVcc 5V Wemos D1 dihubungkan ke pin
GND, IN1, IN2, IN3, IN4 dan VCC modul relay. Pin D13 dan GND Wemos D1 disambungkan ke remote AC yang telah dimodifikasi. Pin GND, D6, dan Vcc 5V
Wemos D1 disambungkan ke sensor PIR dan yang terakhir pin D7 Wemos D1
disambungkan ke sensor suhu. Bentuk dari semua komponen yang telah dihubungkan adalah seperti yang terlihat pada Gambar 4.4.
Universitas Sumatera Utara
59 Gambar 4.4 Bentuk semua komponen yang telah dihubungkan
4.1.2 Aplikasi Web
Bagian userinterface dari applikasi web dibangun dengan menggunakan bahasa markup HTML dan Javascript. Aplikasi web yang dirancang terdiri dari 5
halaman, yaitu: landing page, halaman register, halaman login, halaman dashBoard
dan halaman console.
4.1.2.1Landing page
Landing page merupakan halaman awal yang akan dilihat oleh pengguna.
Pada halaman ini pengguna bisa memilih aksi login atau register. Halaman ini diakses dari route ‘’ dan dikontrol oleh classHomeController. Tampilan halaman
ini dapat dilihat pada Gambar 4.5. Layout dari halaman ini akan dibuat dengan menggunakan HTML. Untuk
membuat tombol login dan register lebih atraktif, Javascript akan digunakan untuk melakukan hal tersebut.
Tombol Register yang ada pada halaman ini ditautkan dengan alamat ke halaman login yaitu www.wahyunugraha.comregister. Begitu juga dengan login,
tombol ini akan ditautkan ke halaman login dengan alamat
www.wahyunugraha.comregister.
Universitas Sumatera Utara
60 Gambar 4.5 Tampilan landing page
4.1.2.2 Halaman Register
Halaman Register merupakan tempat dimana user mengisi data seperti nama, email, dan password untuk bergabung dengan sistem. Halaman ini diakses
melalui route ‘auth’ dan dikontrol oleh class AuthController. Tampilan dari halaman ini adalah seperti yang terlihat pada Gambar 4.6.
Pada halaman register terdapat 4 textfields yang harus diisi oleh pengguna yaitu: nama, alamat email, password dan konfirmasi password. Data dari halaman
ini akan diproses oleh Controller Auth.
Gambar 4.6 Tampilan halaman register
Universitas Sumatera Utara
61
4.1.2.3 Halaman Login
Halaman login merupakan tempat dimana pengguna memasukkan kredensialnya untuk masuk kedalam aplikasi web sistem Home Automation. Sama
seperti halaman register, halaman ini juga diakses memalui route ‘auth’ dan dikontrol oleh class AuthController. Tampilan dari halaman ini adalah seperti
yang terlihat pada Gambar 4.7. Pada halaman login terdapat 2 text fields yang harus diisi oleh pengguna,
yaitu: alamat email dan password. ControllerAuth akan memproses data dari halaman ini. Jika data yang dimasukkan cocok dengan data yang ada di database,
maka penggunakan akan diizinkan untuk masuk ke halaman DashBoard.
Gambar 4.7 Tampilan halaman login
4.1.2.4 Halaman DashBoard
Halaman dashBoard merupakan halaman kendali utama. Pada halaman ini ditampilkan seluruh perangkat yang tersambung ke Wemos D1. Pada halaman ini
juga ditampilkan tombol yang berfungsi untuk menghidupkan perangkat dan mematikan perangkat. Halaman ini diakses melalui route ‘managedashBoard’,
serta dikontrol oleh classDashBoardController. Tampilan dari halaman ini seperti yang ditunjukkan oleh Gambar 4.8.
Universitas Sumatera Utara
62 Gambar 4.8 Tampilan halaman dashBoard
4.1.2.5 Halaman Console
Halaman Console merupakan halaman yang dapat menampilkan aktivitas dari sistem Home Automation. Halaman ini diakses memalui route
‘managedashBoardconsole’ serta dikendalikan oleh classConsoleController. Tampilan dari halaman ini seperti yang ditunjukkan pada Gambar 4.9.
Gambar 4.9 Tampilan halaman console yang menampilkan notifikasi dari perangkat
4.1.3 Integrasi Kontroler Dengan Aplikasi Web
Tahap pertama yang harus dilakukan sebelum melakukan integrasi antara kontroler dan aplikasi web adalah memastikan kontroler sudah bisa melakukan
request ke server. Untuk melakukan pengecekan tersebut sebuah kode seperti
yang ada pada Gambar 4.10 dibuat untuk melakukan ping dari kontroler ke server.
Universitas Sumatera Utara
63
1 c ons t
c har s s i d =
Fugue2 ;
2 c ons t
c har pas s wor d =
f ugue123 ;
3 4
c l as s Pi ngTes t
: publ i c
v i r t ual Bas eCont r ol l er
5 { 6
publ i c :
7 i nt
pi ngCount = 15
; 8
c har hos t =
www. wahy unugr aha. c om ;
9 v oi d
s et up 10 {
11 i f
env : : wi f i : : obt ai nI pAddr es s Aut omat i c al l y { 12 Wi Fi . c onf i g env : : wi f i : : i p, env : : wi f i : : gat eway ,
env : : wi f i : : s ubnet , env : : wi f i : : dns 1, env : : wi f i : : dns 2 ;
13 } 14 Wi Fi . begi n s s i d, pas s wor d ;
15 16
whi l e Wi Fi . s t at us = WL_CONNECTED {
17 del ay 100
; 18 Ser i al . pr i nt
. ;
19 } 20
21 Sc hedul er : : ev er y 1000
, [ =] { 22
i f Pi ng. pi ng hos t {
23 Ser i al . pr i nt Pi ng. av er ageTi me ; 24 Ser i al . pr i nt l n
ms ;
25 } el s e
{ 26 Ser i al . pr i nt l n
t i meout ;
27 } 28 } , pi ngCount ;
29 } 30
31
v oi d l oop
32 { 33 Sc hedul er : : handl eEv ent s ;
34 } 35 } ;
Gambar 4.10 Kode program kontroler untuk melakukan ping ke server Keluaran jika kode diatas dijalankan adalah nilai delay ping dari kontroler
ke server dan kembali ke kontroler. Nilai delay yang didapat dari kode ping diatas adalah seperti yang ditunjukkan pada Gambar 4.11. Rata – rata delay yang didpat
adalah 99.6 ms. Hasil yang didapat menunjukkan bahwa kontroler sudah bisa berkomunikasi dengan server.
Universitas Sumatera Utara
64 Gambar 4.11 Hasil uji ping dari kontroler ke server
Integrasi antara program kontroler dan aplikasi web dilakukan oleh class HttpClient pada program kontroler dan classPublishController pada program
aplikasi web. Class HttpClient setiap saatnya mengambil pesan yang dikumpulkan oleh classLogger. Pesan tersebut berisi informasi tentang keadaan perangkat –
perangkat dan pembacaan sensor. Kemudian class HttpClient melakukan request dengan pesan requestnya berisi pesan yang diterima dari classLogger. Pada
bagian server, request tersebut ditangani oleh classPublishController. Class PublishControler menyimpan data yang ada pada pesan request untuk dapat
ditampilkan pada halaman DashBoard. Setelah itu classPublishController mengirimkan pesan respon yang berisi perintah dari user ke kontroler. Kontroler
kemudian mengeksekusi perintah tersebut dan kembali mengirimkan request ke server
dengan pesan yang didapat dari classLogger. Kode dari class HttpClient dapat dilihat pada Lampiran 1.5 dan Lampiran 1.6, kode dari classLogger dapat
Universitas Sumatera Utara
65 dilihat pada Lampiran 1.14, dan kode untuk classPublishController dapat dilihat
pada Lampiran 2.9.
4.2 Analis Pengaruh Penggunaan Persistent dan Non-persistent HTTP
HTTP bisa menggunakan koneksi persistent dan nonpersistent. Namun, koneksi persistent adalah mode default dari HTTP. Klien dan server HTTP juga
bisa di konfigurasi untuk menggunakan koneksi non-persistent. Pada koneksi non-persistent, klien HTTP menginisialisasi sebuah koneksi
TCP ke server pada port default HTTP nomor 80. Kemudian klien HTTP mendirim sebuah pesan HTTP request ke server. Pesan request juga terdiri dari
nama path. Server HTTP memproses pesan request tersebut dan mengembalikan respon yang sesuai ke klien. Proses server HTTP kemudian memerintahkan TCP
untuk menutup koneksi TCP. Namun, koneksi tidak benar-benar terputus sampai TCP yakin bahwa klien telah menerima pesan respon. Setelah klien HTTP
menerima pesan respon dari server barulah koneksi TCP diakhiri. Pesan yang diterima dari server adalah sebuah file HTML. Klien kemudian akan mengekstrak
isi pesan tersebut dan melakukan melakukan eksekusi yang khusus untuk object yang diekstrak dari pesan tersebut.
Jika klien menggunakan web browser, maka aplikasi web browser akan menampilkan halaman berdasarkan pesan respon yang diterima. HTTP tidak
memiliki tanggung jawab atas bagaimana halaman web diinterpretasikan oleh klien, HTTP hanya bertanggung jawab atas komunikasi antara program HTTP
klien dan program HTTP server.
Universitas Sumatera Utara
66 Dengan menggunakan koneksi persistent, server membiarkan koneksi TCP
terbuka setelah mengirimkan respon. Sebuah halaman web atau beberapa halaman web
yang berasal dari server yang sama dapat dikirimkan dari server ke klien yang sama melalui sebuah koneksi TCP persistent yang sama.
4.2.1 HTTP Persistent
Pengaturan Koneksi yang digunakan oleh Wemos D1 dapat dilakukan dengan membuat duah buah class koneksi HTTP yang mempunyai pengaturan
set_reuse yang berbeda. Untuk koneksi persisten class yang digunakan adalah seperti yang terlihat pada Gambar 4.12.
1 c l as s
Per s i s t ent Ht t p :
publ i c v i r t ual
Wi f i Ht t pCl i ent 2 {
3 publ i c
: 4 Per s i s t ent Ht t p s t d: :
map St r i ng
, St r i ng
s et t i ng : Wi f i Ht t pCl i ent s et t i ng { }
5 6
v oi d s er v i c e
7 { 8 Debug: :
pr i nt l n Memul ai s er v i c e k onek s i HTTP
Per s i s t ent . . . ;
9 10 i nt er v al =
; 11 ht t p. s et Reus e
t r ue ;
12 13
Sc hedul er : : ev er y i nt er v al , [ =] {
14 updat eMes s age ; 15 ht t pGet gener at eUr i , [ =] {
16 boar d- ex ec ut eUs er Command r es pons e ; 17 } ;
18 } ; 19 }
20 } ;
Gambar 4.12 Kode program class HTTP yang menggunakan koneksi persistent Penghitungan kinerja sistem Home Automation dengan menggunakan
koneksi persistent dilakukan dengan membuat sebuah script pada bagian server yang mengimitasi perintah dari user. Script ini akan selalu mengirimkan perintah
Universitas Sumatera Utara
67 ke Wemos D1 secara berkala. Pada bagaian Wemos beberapa baris kode
ditambahkan untuk menghitung berapa lama jarak dari pertama kali Board tersebut mengirimkan data ke server hingga respon yang berisi perintah diterima.
Script tersebut lebih jelasnya dapat dilihat pada Gambar 4.13.
1 f unc t i on
k i r i mPer i nt ah { 2
t ur nOn6 . c l i c k
f unc t i on {
3 . aj ax { ur l : c ommands 1 bui l t i n_l ed
, s uc c es s : f unc t i on
r es ul t { al er t Per i nt ah t er k i r i m
; } } ; 4 } ;
5 s et Ti meout k i r i mPer i nt ah, 1000
; 6 }
Gambar 4.13 Script pengujian koneksi Pada bagian Wemos D1, pesan request yang dikirmkan ke server berisi
sebuah field notifikasi, pengukuran dan informasi Wemos D1. Panjang pesan request
yang dikirimkan adalah 251 karakter. Isi pesan request tersebut seperti yang terlihat pada Gambar 4.14.
1 { 2
not i f i c at i ons : [ ] ,
3 meas ur ement s
: [ ] , 4
c onnec t i onI nf os : [ ] ,
5 boar dI nf o
: { 6
c hi pI d :
1005283 ,
7 c puFr eqMHz
: 80
, 8
s dk Ver s i on :
1. 5. 3 aec 24ac 9 ,
9 boot Ver s i on
: 31
, 10
boot Mode :
1 ,
11 c y c l eCount
: 20033772
, 12
f r eeHeap :
38560 ,
13 s k et c hSi z e
: 260568
, 14
f r eeSk et c hSpac e :
786432 15 }
16 }
Gambar 4.14 Isi data yang dimasukkan pada pesan request Bentuk uri setelah parameter – parameter seperti alamat host, publish key,
subscribe key, signature, channel name, callback dan pesan digabungkan menjadi:
Universitas Sumatera Utara
68 www.wahyunugraha.compublishpub-w-3e5de365-5d57-48c7-a317-
366ef2846eb4sub-n-cca59b64-d972-11e5-bdd5- 02ee2ddab7fe0rumah10{notifications:[],measurements:[],BoardInfo:{c
hipId:1005283,cpuFreqMHz:80,sdkVersion:1.5.3aec24ac9,bootVersion :31,bootMode:1,cycleCount:20326008,freeHeap:38856,sketchSize:2598
64,freeSketchSpace:786432}}. Ketika pesan request diterima oleh server, maka pesan tersebut akan
diekstrak dan disimpan pada tabel database yang sesuai. Kemuidan server akan mengirimkan respon teks yang berisi perintah dalam format JSON yang harus
dieksekusi oleh Wemos D1. Pada pengujian, respon tersubut setiap saatnya berisi satu perintah. Panjang pesan respon yang dikirimkan adalah 54 karakter. Isi pesan
respon tersebut seperti yang terlihat pada Gambar 4.15.
1 { c ommands
: [ { pi n
: BUI LTI N_LED
, ac t i on
: t oggl e
} ] }
Gambar 4.15 Isi dari pesan respon yang dikirimkan server ke Wemos D1 Pengujian dilakukan sebanyak 5 kali. Satu kali pengujian dilakukan
pengiriman perintah sebanyak 20 kali. Hasil dari pengujian dengan menggunakan koneksi HTTP persistent seperti yang terlihat pada Tabel 4.1.
Tabel 4.1Waktu respon sistem Home Automation menggunakan koneksi HTTP persistent
Perint ah Ke
Waktu responPercob
aan 1 ms Waktu
responPercob aan 2 ms
Waktu responPercob
aan 3 ms Waktu
responPercob aan 4 ms
Waktu responPercob
aan 5 ms 1
390 180
157 192
182 2
171 145
326 171
162 3
157 140
177 166
174 4
219 132
172 169
240 5
179 167
142 162
202
Universitas Sumatera Utara
69
6 169
160 132
261 182
7 166
239 181
184 172
8 161
277 153
260 172
9 171
178 202
211 202
10 549
163 222
222 261
11 186
168 191
234 201
12 173
143 172
192 163
13 152
172 244
270 212
14 1129
273 150
290 152
15 231
422 182
383 142
16 192
204 174
354 161
17 172
172 142
568 152
18 171
199 174
153 172
19 164
158 196
200 352
20 159
211 173
213 151
Bentuk grafik dari nilai – nilai waktu respon yang ada pada tabel diatas seperti yang ditunjukkan pada Gambar 4.16.
Universitas Sumatera Utara
70 Gambar 4.16Grafik nilai waktu respon dengan menggunakan HTTP persistent
Pada percobaan pertama nilai waktu respon minumnya adalah 152 ms dan nilai maksimumnya 1129 ms. Rata-rata waktu respon pada percobaan pertama
adalah 253 ms. Pada percobaan kedua nilai waktu respon minumnya adalah 132 ms dan nilai
maksimumnya 422 ms. Rata-rata waktu respon pada percobaan kedua adalah 195 ms.
Pada percobaan ketiga nilai waktu respon minumnya adalah 132 ms dan nilai maksimumnya 326 ms. Rata-rata waktu respon pada percobaan ketiga adalah
183 ms.
200 400
600 800
1000 1200
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 16 17 18 19 20
W akt
u R
e sp
on m
s
Perintah Ke
Delay Percobaan 1 ms Delay Percobaan 2 ms
Delay Percobaan 3 ms Delay Percobaan 4 ms
Delay Percobaan 5 ms
Universitas Sumatera Utara
71 Pada percobaan keempat nilai waktu respon minumnya adalah 153 ms dan
nilai maksimumnya 568 ms. Rata-rata waktu respon pada percobaan keempat adalah 243 ms.
Pada percobaan kelima nilai waktu respon minumnya adalah 142 ms dan nilai maksimumnya 352 ms. Rata-rata waktu respon pada percobaan kelima
adalah 190 ms. Secara keseluruhan rata – rata waktu respon yang didapat adalah 213 ms.
Nilai ini masih cukup besar karena waktu respon ideal yang diinginkan harus lebih kecil dari 100 ms.
4.2.2 HTTP Non-persistent
Pengujian waktu respon sistem Home Automation dengan menggunakan koneksi HTTP non-persistent memiliki metode yang sama dengan pengujian
dnegan menggunakan koneksi HTTP persistent. Data yang dikirim oleh Wemos D1 ke server sama dengan data yang ada pada Gambar 4.14Dan pesan respon
yang dikirim oleh server ke Wemos D1 sama dengan data yang ada pada Gambar
4.15.
Pengujian dilakukan sebanyak 5 kali. Satu kali pengujian dilakukan pengiriman perintah sebanyak 20 kali. Hasil dari pengujian dengan menggunakan
koneksi HTTP persistent seperti yang terlihat pada Tabel 4.2.
Universitas Sumatera Utara
72 Tabel 4.2 Waktu respon sistem Home Automation menggunakan koneksi HTTP
non-persistent
Perint ah Ke
Waktu responPerco
baan 1 ms Waktu
responPerco baan 2 ms
Waktu responPerco
baan 3 ms Waktu
responPerco baan 4 ms
Waktu responPerco
baan 5 ms 1
1347 450
361 391
332
2
371 321
351 612
311
3 331
372 341
400 382
4 314
711 772
401 373
5 319
342 382
321 352
6 332
1372 381
330 391
7 373
352 352
501 342
8 370
341 451
451 321
9 421
351 391
408 322
10 451
331 412
355 312
11 382
362 391
391 292
12 411
411 382
321 361
13 342
351 382
611 352
14 343
374 391
361 301
15 330
319 352
322 311
16
413 331
442 312
331
17 341
332 402
351 361
18 351
332 391
321 343
19 321
401 372
301 331
20 331
412 371
341 362
Bentuk grafik dari nilai – nilai waktu respon yang ada pada tabel diatas seperti yang ditunjukkan pada Gambar 4.17.
Universitas Sumatera Utara
73 Gambar 4.17 Grafik nilai waktu respon dengan menggunakan HTTP non-
persistent Pada percobaan pertama nilai waktu respon minumnya adalah 314 ms dan
nilai maksimumnya 1347 ms. Rata-rata waktu respon pada percobaan pertama adalah 410 ms.
Pada percobaan kedua nilai waktu respon minumnya adalah 319 ms dan nilai maksimumnya 1372 ms. Rata-rata waktu respon pada percobaan kedua adalah
428 ms. Pada percobaan ketiga nilai waktu respon minumnya adalah 341 ms dan
nilai maksimumnya 772 ms. Rata-rata waktu respon pada percobaan ketiga adalah 403 ms.
Pada percobaan keempat nilai waktu respon minumnya adalah 301 ms dan nilai maksimumnya 612 ms. Rata-rata waktu respon pada percobaan keempat
adalah 390 ms.
200 400
600 800
1000 1200
1400 1600
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 16 17 18 19 20
W akt
u R
e sp
on m
s
Perintah Ke
Delay Percobaan 1 ms Delay Percobaan 2 ms
Delay Percobaan 3 ms Delay Percobaan 4 ms
Delay Percobaan 5 ms
Universitas Sumatera Utara
74 Pada percobaan kelima nilai waktu respon minumnya adalah 292 ms dan
nilai maksimumnya 391 ms. Rata-rata waktu respon pada percobaan kelima adalah 190 ms.
Secara keseluruhan rata – rata waktu respon yang didapat adalah 394 ms. Nilai ini juga masih cukup besar karena waktu respon ideal yang diinginkan harus
lebih kecil dari 100 ms. Perbandingan rata – rata waktu respon untuk kedua koneksi diperlihatkan pada Gambar 4.18. Terlihat waktu respon lebih kecil
dengan menggunakan koneksi persistent.
Gambar 4.18 Perbandingan rata – rata waktu respon mengguanakan koneksi persistent
dan non-persistent
4.3 Pengukuran Jarak MaksimumKontroler ke Hostspot
Pengukuran jarak maksimum kontroler ke access point dilakukan dengan cara melakukan ping dari Wemos D1 ke server setiap 5 meter. Sebuah laptop
dengan perangkat Wi-Fi dijadikan sebagai access point. Pengukuran dilakukan di Jl. Tri Dharma atau lebih tepatnya di gerbang 4 USU. Hasil dari pengukuran
adalah seperti yang terlihat pada
50 100
150 200
250 300
350 400
450
Persistent Non-persistent
W akt
u R
e sp
on m
s
Universitas Sumatera Utara
75 Tabel 4.3 Hasil pengukuran delay dari Wemos D1 ke server berdasarkan jarak
Jarak m
Percobaan 1 ms
Percobaan 2 ms
Percobaan 3 ms
Percobaan 4 ms
Percobaan 5 ms
rata – rata
ms
5 86
93 92
93 95
92
10 108
105 84
86 92
95
15 111
80 106
100 110
101
20 88
103 153
157 125
125
25 203
178 116
170 187
171
30 188
149 213
179 193
185
35 210
177 275
250 207
223
40 320
303 202
350 224
280
45 405
314 303
296 463
356
50 371
536 386
330 559
437
55 611
634 664
572 497
595
60 722
577 636
671 789
679
65 665
947 831
700 673
764
70 747
965 818
920 984
886
75 1207
1178 822
938 1199
1069
80 1527
1067 1421
1494 1514
1405
85 1770
1639 1586
1590 1507
1618
90 1849
1795 1961
1846 1566
1804
95 1883
2334 2364
2154 2259
2198
100 2666
2639 2100
2331 2639
2475
105 2607
2523 2724
2767 3079
2740
110 2694
3156 3255
3388 3197
3138
115 3509
3276 3782
3669 3854
3618
120 4431
3974 4214
4017 4264
4180
125 timeout
timeout timeout
timeout timeout
timeout
Universitas Sumatera Utara
76 Bentuk grafik dari data yang ada pada Tabel 4.3 adalah seperti yang terlihat
pada Gambar 4.19.
Gambar 4.19 Grafik besar delay terhadap perubahan jarak Pada Gambar 4.19 terlihat bahwa delay dari Kontroler ke Access point
semakin besar seiring dengan pertambahan jarak. Pada jarak 5 sampai 55-meter delay yang didapat memiliki nilai yang yang lebih kecil dari 500 ms, jeda yang
dibutuhkan dari pengiriman perintah dari server sampai dieksekusi oleh kontroler dengan delay sebesar ini tidak terlalu terasa. Pada jarak 60 meter keatas jeda dari
perintah dikirim sampai dieksekusi sangat terasa. Jadi jarak yang ideal dari kontroler ke access point adalah 5 sampai 55 meter.
500 1000
1500 2000
2500 3000
3500 4000
5 10
15 20
25 30
35 40
45 50
55 60
65 70
75 80
85 90
95 100
105 110
115 120
D el
a y
ms
Jarak m
Universitas Sumatera Utara
77
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan