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