Integrasi Kontroler Dengan Aplikasi Web

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