Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol. 2, No. 6, Juni 2018, hlm. 2131-2140
e-ISSN: 2548-964X http://j-ptiik.ub.ac.id
Implementasi Quality of Service pada Protokol Message Queue Telemetry Transport – Sensor Network (MQTT-SN) Berbasis Arduino dan NRF24L01 Sofi Hanifah1, Sabriansyah Rizqika Akbar2, Kasyful Amron3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email:
[email protected],
[email protected],
[email protected] Abstrak Message Queue Telemetry Transport - Sensor Network (MQTT-SN) merupakan protokol komunikasi turunan dari protokol Message Queuing Telemetry Transport (MQTT) yang diterapkan pada jaringan sensor. Untuk menerapkan MQTT-SN dibutuhkan Quality of Service (QoS), yang merupakan metode pengukuran tentang seberapa baik jaringan dan merupakan suatu usaha untuk mendefinisikan karakteristik dan sifat dari suatu servis sehingga pesan diterima. Penerapan QoS pada MQTT-SN sangatlah penting untuk menjamin diterimanya data. Penelitian ini mengimplemenetasikan mekanisme QoS pada Arduino Nano dengan komunikasi wireless NRF24L01 menggunakan format pesan MQTTSN. Pada penelitian ini dilakukan pengujian dengan level QoS yang berbeda, sehingga didapat hasil yang berbeda tiap level QoS. MQTT-SN dengan QoS level 0, memungkinkan paket tidak sampai pada gateway karena publisher terus melakukan publish tanpa adanya timbal balik dari gateway, sehingga publisher tidak mengetahui pesan sampai pada tujuan atau tidak dan rata-rata pesan diterima sebanyak 70%. Sedangkan MQTT-SN dengan QOS level 1, gateway tidak dapat membedakan data publish saat pertama kali dan data publish yang dikirim ulang oleh publisher sehingga terjadi duplikasi pesan sebanyak 30%. MQTT-SN dengan QoS level 2, pesan diterima tepat satu kali disebabkan adanya penyimpanan data sementara pada gateway yang akan mengabaikan data yang tidak diperlukan secara acak dan rata-rata pesan diterima 100%. Kata kunci: MQTT-SN, QoS, publisher, gateway
Abstract Message Queue Telemetry Transport - Sensor Network (MQTT-SN) is a communication protocol derived from the Message Queuing Telemetry Transport (MQTT) protocol that applied to the sensor network. To apply MQTT-SN requires Quality of Service (QoS). QoS is a method of measuring the quality of network and an attempt to define the characteristics and properties of a service so that messages are received. The Application of QoS in MQTT-SN is very important to ensure the receipt of data. This research implies QoS mechanism on Arduino Nano with NRF24L01 wireless communication using MQTT-SN message format. In this research is tested with different QoS level to get different result in each level of QoS. MQTT-SN with QoS level 0 allows packets not to reach the gateway because publishers continue to publish without any reciprocity from the gateway that make publishers don’t know wether the message is delivered to the destination or not, and average accepted message 70%. While MQTT-SN with QOS level 1 the gateway can not distinguish publish data at the first time and next so duplicated messages can be happen until 30%. MQTT-SN with QoS level 2, the message is received exactly once due to temporary data storage on the gateway that make protocol will ignore data that is not needed and average accepted message 100%. Keywords: MQTT-SN, QoS, publisher, gateway
protokol Message Queuing Telemetry Transport (MQTT) yang menerapkan konsep publish dan subscribe, namun diterapkannya pada jaringan sensor (Stanford-Clark, 2013). Publish merupakan suatu proses menghasilkan informasi untuk dikirimkan ke sebuah broker, perangkat
1. PENDAHULUAN Message Queue Telemetry Transport Sensor Network (MQTT-SN) merupakan protokol komunikasi dengan desain mirip seperti Fakultas Ilmu Komputer Universitas Brawijaya
2131
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
yang melakukan publish disebut publisher. Sedangkan mekanisme subscribe yaitu ketika client meminta atau mendapat informasi dari broker, perangkat yang melakukan subscribe tersebut disebut dengan subscriber. Broker merupakan sebuah perantara publisher dan subscriber yang bertugas menerima pesan dari publisher dan meneruskan pesan ke subscriber. Namun yang membedakan antara MQTT dengan MQTT-SN yaitu MQTT-SN dituliskan dengan format pesan yang lebih sederhana dibandingkan MQTT. Protokol MQTT-SN terdiri atas publisher dan gateway, publisher pada MQTT-SN memiliki fungsi yang sama seperti publisher pada MQTT, sedangkan gateway pada MQTTSN berfungsi yang sama seperti broker namun juga dapat berfungsi sebagai subscriber (Stanford-Clark, 2013). Sehingga data yang dihasilkan oleh publisher dapat dikirim menuju gateway dan diterima pula oleh gateway. Ketika publisher dan gateway berkomunikasi, terdapat Quality of Service (QoS) yang merupakan metode pengukuran tentang seberapa baik jaringan dan merupakan suatu usaha untuk mendefinisikan karakteristik dan sifat dari suatu servis sehingga pesan diterima (Ferguson & Huston, 1998). MQTT-SN dapat menerapkan tiga level QoS yaitu level 0, level 1, dan level 2. QoS level 0, hanya mengirim pesan satu kali tanpa adanya konfirmasi. QoS level 1, pesan dikirim setidaknya satu kali dengan adanya konfirmasi. QoS level 2, pesan diterima tepat satu kali dengan empat pesan yang dikirimkan dari publisher ke gateway secara sekuensial, yaitu publish, publish receive, publish release, dan publish complete (Peeples, 2015). MQTT-SN pada mulanya diciptakan khusus untuk diimplementasikan ke perangkat Xbee yang merupakan modul komunikasi yang memanfaatkan gelombang frekuensi radio 2.4 Ghz. Namun selain Xbee dapat juga diimplementasikan pada NRF24L01 karena memiliki frekuensi radio yang sama yaitu 2.4 Ghz. Selain memiliki frekuensi yang sama, modul ini juga memiliki konsumsi daya rendah yaitu 22uA dan juga harga yang lebih murah dibandingkan dengan Xbee (Nordic, 2014). Penelitian ini bertujuan untuk mengimplementasikan QoS dengan level 0, level 1, dan level 2 pada protokol MQTT-SN sebagai metode pengukuran tentang seberapa baik jaringan sehingga pesan diterima menggunakan modul komunikasi NRF24L01. Diharapkan penelitian ini mampu memberikan gambaran Fakultas Ilmu Komputer, Universitas Brawijaya
2132
terhadap kinerja pengiriman dan penerimaan data pada jaringan sensor sesuai dengan QoS yang digunakan. 2. DASAR TEORI 2.1
MQTT-SN
Message Queue Telemetry Transport for Sensor Networks (MQTT-SN) merupakan suatu protokol yang berkerja pada jaringan sensor dengan komunikasi tidak langsung menggunakan metode publish-subscribe. Protokol ini diutamakan digunakan pada jaringan wireless yaitu seperti jaringan sensor dengan bandwidth terbatas, resource terbata, serta pemrosesan yang rendah. Protokol ini diterapkan pada beberapa jaringan sensor, sehingga diperlukannya sebuah gateway. Gateway merupakan sebuah node wireless yang digunakan sebagai perantara pada jaringan sensor node dengan MQTT. Sehingga pada node gateway menerapkan dua protokol untuk berkomunikasi yaitu MQTT-SN dan MQTT. Protokol tersebut digunakan untuk meneruskan data dari lingkungan jaringan sensor menuju MQTT Broker.
Gambar 1 Arsitektur Protokol MQTT-SN Sumber : Andy Standford-Clark (2013)
2.2
QoS
QoS didefinisikan sebagai suatu pengukuran tentang seberapa baik jaringan dan merupakan suatu usaha untuk mendefinisikan karakteristik dan sifat dari suatu layanan (Ferguson & Huston, 1998). Kinerja jaringan komputer dapat bervariasi, misalnya dalam masalah QoS yang mengacu pada kemampuan jaringan untuk menyediakan layanan yang lebih baik pada trafik jaringan tertentu melalui teknologi yang berbeda. Tujuan dari QoS yaitu untuk memenuhi kebutuhan layanan yang berbeda dengan menggunakan infrastruktur yang sama.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Pada level 0, pesan hanya dikirim satu kali, pesan yang terkirim tergantung dari keberadaan jaringan. Pada level 1, pesan dikirimkan setidaknya satu kali, sehingga client setidaknya akan menerima pesan satu kali, jika subscriber tidak meng-acknowledge maka gateway akan mengirimkan pesan sampai publisher menerima status pengakuan pesan dari client. Pada level 2, pesan dikirimkan tepat satu kali melalui proses four-step-handshake yaitu pesan publish, pubrec, pubrel, dan pubcomp yang dikirim secara sekuensial. 3. PERANCANGAN IMPLEMENTASI 3.1
DAN
Gambaran Umum Sistem
Gambaran sistem ini menjelaskan tahapan perancangan dan implementasi publisher dan gateway. MQTT-SN publisher diterapkan dengan mekanisme tertentu agar sistem mampu mengakuisisi data sensor dan mengirimkan pesan menggunakan protokol MQTT-SN melalui komunikasi wireless. Sedangkan pada gateway, sistem diterapkan mekanisme tertentu agar dapat menerima pesan dari publisher melalui komunikasi wireless. Mekanisme QoS yang diterapkan pada MQTT-SN ditunjukkan Gambar 2.
2133
step-handshake, yaitu publisher mengirim pesan publish, kemudian gateway mengirim validasi data yang disimpan di penyimpan sementara ke publisher dengan mengirim pubrec. Apabila waktu timeout dan publisher tidak mendapat pubrec, dilakukan publish ulang ke gateway dan data masuk ke penyimpanan sementara. Data yang masuk ke penyimpanan sementara pada gateway, digunakan untuk mengirim validasi, apabila terdapat data masuk lagi salah satu akan diabaikan secara acak. Setelah mendapat pubrec, publisher mengirim validasi berupa pubrel ke gateway dan data pubrel masuk ke penyimpanan sementara. Kemudian gateway mengirim validasi data yang disimpan di penyimpan sementara ke publisher dengan mengirim pubcomp, yang menandakan data sudah lengkap. Apabila waktu timeout dan publisher tidak mendapat pubcomp, dilakukan pubrel ulang ke gateway. 3.2 Publisher Penelitian ini menerapkan tiga level QoS pada tiga sistem perangkat lunak publisher, yaitu tiap sistem menerapkan level QoS yang berbeda. Berikut mekanisme pada sistem MQTT-SN publisher dengan QoS level 0 dipaparkan dalam sebuah diagram alir algoritma sistem pada Gambar 3 berikut:
Gambar 2 Mekanisme QoS pada MQTT-SN
Mekanisme QoS 0, publisher mengirimkan pesan publish ke gateway tanpa adanya konfirmasi dari gateway. Mekanisme pada QoS 1, publisher mengirim pesan publish dengan menerima puback dari gateway. Apabila publisher tidak mendapatkan puback hingga timeout, maka akan dilakukan publish ulang. Sedangkan mekanisme QoS 2 menerapkan fourFakultas Ilmu Komputer, Universitas Brawijaya
Gambar 3 Diagram Alir Publisher QoS 0
Terdapat sedikit perbedaan dengan MQTTSN publisher level 0, berikut merupakan mekanisme pada sistem MQTT-SN publisher QoS level 1 dipaparkan dalam sebuah diagram alir algoritma sistem pada Gambar 4.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
2134
publisher membuat koneksi dengan gateway, pesan publish berfungsi saat MQTT-SN publisher melakukan publish data, sedangkan pesan pubrel berfungsi mengklarifikasi ulang mengenai data yang dipublish oleh publisher ke gateway dan pesan pubrel ini hanya digunakan pada QoS 2. Berikut format pesan connect ditunjukkan pada Gambar 6, format pesan publish ditunjukkan pada Gambar 7, dan format pesan pubrel ditunjukkan pada Gambar 8. MsgType (oktet 0)
ProtocolId (oktet 1)
ClientId (oktet 2)
Gambar 6 Format pesan connect pada MQTT-SN QoS (oktet 0)
TopicI d (oktet 1)
MsgId (oktet 2)
MsgT yp (oktet 3)
Data (oktet 4)
Topic Type (oktet 5)
Gambar 7 Format pesan publish pada MQTT-SN
Gambar 4 Diagram Alir publisher Qos 1
MsgTyp (oktet 0)
TopicId (oktet 1)
MsgId (oktet 2)
Returncode (oktet 3)
Gambar 8 Format pesan pubrel pada MQTT-SN
Berbeda dengan MQTT-SN publisher level 0 dan MQTT-SN publisher level 1, berikut merupakan mekanisme pada sistem MQTT-SN publisher QoS level 2 dipaparkan dalam sebuah diagram alir algoritma sistem pada Gambar 5.
3.3 Gateway Dalam mekanisme perancangan sistem diperlukan diagram alir berupa algoritma kerja sistem. Dengan diterapkan algoritma tersebut, maka gateway dapat bekerja sesuai fungsinya sebagai receiver. Penelitian ini menerapkan tiga level QoS pada tiga sistem perangkat lunak gateway, yaitu tiap sistem menerapkan level QoS yang berbeda. Berikut merupakan mekanisme pada sistem MQTT-SN gateway dengan QoS level 0 dipaparkan dalam sebuah diagram alir algoritma sistem pada Gambar 9.
Gambar 5 Diagram Alir publisher QoS 2
Setelah metode pengiriman ditentukan, kemudian dilakukan perancangan pesan yang dikirim sesuai dengan format pesan MQTT-SN. Pada publisher terdapat 3 format pesan yang akan dikirim yaitu pesan connect, publish, dan pubrel. Pesan connect berfungsi saat MQTT-SN Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 9 Diagram Alir Gateway QoS 0
Terdapat sedikit perbedaan dengan diagram alir MQTT-SN gateway pada level 0, berikut
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
merupakan diagram alir MQTT-SN gateway level 1 ditunjukkan pada Gambar 10.
2135
kali gateway menerima publish dari MQTT-SN publisher dan pesan puback ini hanya digunakan pada QoS level 1 untuk memenuhi kebutuhan sistem. Pesan pubrec berfungsi sebagai klarifikasi bahwa data publish yang diterima sesuai dengan data publish yang dikirim oleh MQTT-SN publisher. Sedangkan pesan pubcomp berfungsi untuk memverifikasi bahwa pesan telah sampai dengan lengkap. Pesan pubrec dan pesan pubcomp tersebut digunakan untuk memenuhi kebutuhan sistem pada QoS level 2. Format pesan connack dengan menggunakan protokol MQTT-SN ditunjukkan pada Gambar 12. Sedangkan pesan puback, pubrec, dan pubcomp yang digunakan pada protokol MQTT-SN ditunjukkan pada Gambar 13.
Gambar 10 Diagram Alir Gateway QoS 1 MsgTyp (oktet 0)
Berbeda dengan diagram alir MQTT-SN gateway pada level 0 dan level 1, berikut merupakan digram alir MQTT-SN gateway pada level 2 ditunjukkan pada Gambar 11.
ReturnCode (oktet 1)
Gambar 12 Format pesan connack pada MQTT-SN MsgTyp (oktet 0)
TopicTyp (oktet 1)
MsgId (oktet 2)
ReturnCode (oktet 3)
Gambar 13 Format pesan puback, pubrec, dan pubcomp pada MQTT-SN
Pada gateway juga terdapat perancangan penerimaan dan pembacaan pesan yang diterima dari MQTT-SN publisher yaitu pesan connect, pesan publish, dan pesan pubrel. Pembacaan pesan connect digunakan untuk mengetahui apabila MQTT-SN publisher meminta koneksi untuk saling terhubung. Pembacaan pesan publish dan pesan pubrel digunakan untuk menentukan benar atau tidak suatu pesan yang diterima. Namun pada pesan publish data akan dapat diteruskan menuju MQTT publisher. Mengenai format pesan tersebut telah ditunjukkan pada perancangan perangkat lunak publisher. 4. PENGUJIAN
Gambar 11 Diagram Alir Gateway QoS 2
Sedangkan untuk dapat menerapkan protokol MQTT-SN, diperlukan perancangan tiap pesan yang akan dikirim sesuai dengan format MQTTSN. Pada sistem ini digunakan 4 format pesan yang akan dikirim yaitu pesan connack, puback, pubrec, dan pubcomp. Pesan connack berfungsi saat gateway melakukan konfirmasi dengan MQTT-SN publisher bahwa koneksi sudah terhubung. Pesan puback berfungsi sebagai balasan atau konfirmasi bahwa pesan yang setiap Fakultas Ilmu Komputer, Universitas Brawijaya
4.1 Pengujian MQTT-SN QoS 0 dengan noise 1 detik Noise ini digunakan untuk mengetahui pengaruh dalam pengiriman pesan pada MQTTSN. Berikut merupakan hasil pengujian dari pengiriman pesan publish pada publisher dengan QoS level 0 ditunjukkan pada Gambar 14.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
2136
4.2 Pengujian MQTT-SN QoS 0 dengan noise 12 detik Berikut merupakan hasil pengujian dari pengiriman pesan publish pada publisher dengan QoS level 0 ditunjukkan pada Gambar 16.
Gambar 14 Pengujian publisher QoS level 0 noise 1 detik
Setelah program gateway selesai upload pada Arduino IDE, maka hasil pengujian MQTT-SN gateway dapat dilihat dari serial monitor COM5 seperti ditunjukkan pada Gambar 15.
Gambar 16 Pengujian publisher QoS level 0
Kemudian untuk mengetahui pengaruh noise pada QoS, pengujian ini dilakukan dengan memberi delay pada gateway ditunjukkan Gambar 17. Pemberian delay ini menjadi noise karena pesan sampai ke gateway menjadi terlambat.
Gambar 17 Pemberian delay
Gambar 15 Pengujian gateway QoS 0 noise 1 detik
MQTT-SN gateway berfungsi sebagai integrasi antara MQTT-SN dan MQTT pada jaringan lokal. Agar data sensor dapat diterima oleh MQTT subscriber, MQTT-SN gateway akan meneruskan data menuju MQTT publisher. Media komunikasi yang digunakan gateway dan MQTT publisher adalah port serial yang sama, sehingga untuk mengakses keduanya harus bergiliran. Pengujian pengiriman data ke gateway dengan noise 1 detik dilakukan sebanyak 10 kali dengan mengirimkan topik suhu dan lembab secara bergantian. Hasil pengiriman dan kesesuaian data ditunjukkan pada Tabel 1. Tabel 1 Hasil pengujian QoS 0 dengan noise 1 detik Data ID 1 2 3 4 5 6 7 8 9 10
Data Publisher 25 86 25 86 25 86 25 86 25 86
Data Gateway 25 86 25 86 25 86 25 86 25 86
Topik Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab
Data dikirim v v v v v v v v v v
Data diterima v v v v v v v v v v
Fakultas Ilmu Komputer, Universitas Brawijaya
Berikut merupakan hasil pengujian gateway menerima pesan publish dengan adanya noise ditunjukkan pada Gambar 18.
Gambar 18 Pengujian gateway QoS 0 noise 12 detik
Pengujian pengiriman data ke gateway dengan noise 12 detik dilakukan sebanyak 10 kali dengan mengirimkan topik suhu dan lembab secara bergantian. Hasil pengiriman dan kesesuaian data ditunjukkan pada Tabel 2. Tabel 2 Hasil pengujian QoS 0 dengan noise 12 detik Data ID 1 2 3 4 5 6 7 8 9 10
Data Publisher 25 86 25 86 25 86 25 86 25 86
Data Gateway 25 86 25 86 -
Topik Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab
Data dikirim V V V V V V V V V V
Data diterima V V V V X X X X X X
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
4.3 Pengujian MQTT-SN QoS 1 dengan noise 1 detik Publisher mengirim pesan publish dan mendapatkan pesan puback, jika pesan konfirmasi berstatus diterima maka program akan menampilkan status puback pada serial monitor yang merupakan hasil dari pengujian ditunjukkan Gambar 19.
2137
Pengujian pengiriman data ke gateway dengan noise 1 detik dilakukan sebanyak 10 kali dengan mengirimkan topik suhu dan lembab secara bergantian. Hasil pengiriman dan kesesuaian data ditunjukkan pada Tabel 3. Tabel 3 Hasil pengujian QoS 1 dengan noise 1 detik Data ID 1 2 3 4 5 6 7 8 9 10
Data Publisher 25 88 25 86 25 86 25 86 25 86
Data Gateway 25 88 25 86 25 86 25 86 25 86
Topik Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab
Data dikirim v v v v v v v v v v
Data diterima v v v v v v v v v v
4.4 Pengujian MQTT-SN QoS 1 dengan noise 12 detik
Gambar 19 Pengujian publisher QoS 1 noise 1 detik
Gambar 19 menunjukkan bahwaXhasil pengujianXMQTT-SN publisher dengan QoS level 1 pada serial monitor yang menampilkan pesan publish protokol MQTT-SN berhasil dikirim. Pesan tersebut dikirim secara bergantian sesuai topik yang telah diregister sebelumnya. Pesan tersebut dinyatakan berhasil dikirim dan diterima oleh gateway dengan adanya pesan puback yang diterima publisher. Untuk menguji QoS 1 dalam best case, pada gateway digunakan delay 1 detik karena interval yang digunakan adalah 10 detik atau 10000ms sebagai timeout ditunjukkan Gambar 20.
Gambar 20 delay 1 detik pada QoS 1
Berikut merupakan hasil pengujian gateway menerima pesan publish dengan adanya noise ditunjukkan pada Gambar 21.
Gambar 21 Pengujian gateway QoS 1 noise 1 detik
Fakultas Ilmu Komputer, Universitas Brawijaya
Berikut hasil pengujian MQTT-SN publisher dapat dilihat dari serial monitor COM15 seperti ditunjukkan pada Gambar 22.
Gambar 22 Pengujian Publisher QoS 1 noise 12 detik
Gambar 22 didapatkan bahwa pengujian MQTT-SN publisher dengan QOS level 1 pada serial monitor yang menampilkan pesan publish protokol MQTT-SN berhasil dikirim. Pesan tersebut dikirim secara bergantian sesuai topik yang telah diregister sebelumnya. Pesan tersebut dinyatakan berhasil dikirim dan diterima oleh MQTT-SN gateway dengan adanya pesan puback yang diterima MQTT-SN publisher. Pesan puback merupakan pesan konfirmasi yang dikirim MQTT-SN gateway bahwa pesan yang dikirim oleh MQTT-SN publisher telah diterima. Setelah program gateway selesai upload pada Arduino IDE, maka hasil pengujian MQTT-SN gateway didapatkan. Hasil dari pengujian sistem dapat dilihat dari serial monitor COM13 seperti ditunjukkan pada Gambar 23.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Gambar 23 Pengujian Gateway QoS 1 noise 12 detik
Pengujian pengiriman data ke gateway dengan noise 12 detik dilakukan sebanyak 10 kali dengan mengirimkan topik suhu dan lembab secara bergantian. Hasil pengiriman dan kesesuaian data ditunjukkan pada Tabel 4. Tabel 4 Hasil pengujian QoS 1 dengan noise 12 detik Data ID 1 1 2 2 3 3 3 3 3 3
Data Publisher 25 25 88 88 25 25 25 25 25 25
Data Gateway 25 25 88 88 25 25 25 25 25 25
Topik Suhu Suhu Lembab Lembab Suhu Suhu Suhu Suhu Suhu Suhu
Data dikirim v v v v v v v v v v
Data diterima v v v v v v v v v v
4.5 Pengujian MQTT-SN QoS 2 dengan noise 1 detik Hasil dari pengujian dengan noise 1 detik dapat dilihat dari serial monitor seperti ditunjukkan pada Gambar 24 dan Gambar 25.
2138
Gambar 25 Pengujian MQTT-SN Gateway QoS 2 delay 1 detik
Gambar 24 dan Gambar 25 menyatakan publish berhasil dikirim dan diterima oleh gateway dengan berhasilnya four-stephandshake pada sistem. Four-step-handshake merupakan rangkaian proses sekuensial hingga mencapai diterimanya pesan ke MQTT-SN gateway. Empat pesan tersebut adalah publish, pubrec, pubrel, dan pubcomp yang berjalan seperti penjelasan di atas. Pengujian pengiriman data ke gateway dengan noise 12 detik dilakukan sebanyak 10 kali dengan mengirimkan topik suhu dan lembab secara bergantian. Hasil pengiriman dan kesesuaian data ditunjukkan pada Tabel 5. Tabel 5 Hasil pengujian QoS 2 dengan noise 1 detik Data ID 1 2 3 4 5 6 7 8 9 10
Data Publisher 25 88 25 88 25 88 25 88 25 88
Data Gateway 25 88 25 88 25 88 25 88 25 88
Topik Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab Suhu Lembab
Data dikirim v v v v v v v v v v
Data diterima v v v v v v v v v v
4.6 Pengujian MQTT-SN QoS 2 dengan noise 12 detik Berikut hasil pengujian MQTT-SN publisher dapat dilihat dari serial monitor COM15 seperti ditunjukkan pada Gambar 26.
Gambar 24 Pengujian publisher QoS 2 delay 1 detik
Gambar 24 menunjukkan bahwa hasil pengujian publisher dengan QoS level 2 pada serial monitor yang menampilkan pesan publish protokol MQTT-SN berhasil dikirim. Pesan tersebut dikirim secara bergantian sesuai topik yang telah diregister sebelumnya. Kemudian hasil pengujian di sisi gateway dapat dilihat dari serial monitor seperti ditunjukkan pada Gambar 25. Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 26 Hasil Pengujian publisher QoS level 2
Setelah program gateway selesai upload pada Arduino IDE, maka hasil pengujian MQTT-SN
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
gateway didapatkan. Hasil dari pengujian sistem dapat dilihat dari serial monitor COM13 seperti ditunjukkan pada Gambar 27.
Gambar 27 Hasil Pengujian Gateway QoS level 2
Pengujian pengiriman data ke gateway dengan noise 12 detik dilakukan sebanyak 10 kali dengan mengirimkan topik suhu dan lembab secara bergantian. Hasil pengiriman dan kesesuaian data ditunjukkan pada Tabel 6. Tabel 6 Hasil pengujian QoS 2 dengan noise 12 detik Data ID 1 2 3 4 5 6 7 8 9 10
Data Publisher 25 25 88 88 25 25 86 86 86 25 24 86 88 25 25 86 88 25 24 86 86
Data Gateway
Topik
Data dikirim
Data diterima
25
Suu
v
v
88
Lembab
v
v
25
Suhu
v
v
86
Lembab
v
v
25
Suhu
v
v
86
Lembab
v
v
25
Suhu
v
v
86
Lembab
v
v
25
Suhu
v
v
86
Lembab
v
v
5. KESIMPULAN Berdasarkan hasil perancangan, implementasi, pengujian dan analisis, maka dapat menyimpulkan sebagai berikut : 1. Protokol MQTT-SN dapat diterapkan pada modul wireless NRF24L01 mengggunakan mikrokontroler Arduino Nano dengan library mirf. 2. MQTT-SN dengan QoS level 0, publisher hanya mengirimkan pesan publish menuju gateway. Gateway hanya menerima pesan publish dan tidak memberi balasan ke publisher. Hal ini memungkinkan paket Fakultas Ilmu Komputer, Universitas Brawijaya
2139
tidak sampai pada gateway karena publisher terus melakukan publish tanpa adanya timbal balik dari gateway, sehingga publisher tidak mengetahui pesan sampai pada tujuan atau tidak. Prosentase data sesuai dan diterima pada QoS 0 berdasarkan pengujian dengan noise 1 detik dan noise 12 detik adalah 100% dan 40% dengan ratarata pesan diterima 70%. 3. MQTT-SN dengan QoS level 1, publisher mengirimkan pesan publish dan menerima pesan puback dari gateway. Apabila publisher dalam selang waktu tertentu tidak mendapat pesan puback (timeout) maka dilakukan publish ulang ke gateway. Gateway terus membaca pesan publish sampai MQTT-SN publisher mendapat pesan puback. Penerapan QoS level 1, gateway tidak dapat membedakan data publish saat pertama kali dan data publish yang dikirim ulang oleh publisher sehingga terjadi duplikasi pesan. Prosentase data sesuai dan diterima pada QoS 1 berdasarkan pengujian dengan noise 1 detik dan noise 12 detik adalah 100% dan 100% dengan ratarata pesan diterima 100% serta duplikasi pesan sebanyak 30%. 4. MQTT-SN dengan QoS level 2, publisher mengirim pesan publish ke gateway. Kemudian gateway menerima pesan publish dan setiap data publish yang diterima gateway disimpan ke penyimpanan sementara, lalu data akan divalidasi secara acak dengan pesan pubrec, yaitu suatu konfirmasi validasi data yang dikirim oleh publisher. Publisher mengirimkan publish ulang jika belum medapatkan pesan pubrec sehingga gateway akan terus membaca publish. Setelah publisher menerima pesan pubrec akan mengirimkan pesan pubrel ke gateway, yaitu konfirmasi bahwa data yang dikirimkan benar. Gateway menerima pesan pubrel dan setiap data pubrel yang diterima gateway disimpan ke penyimpanan sementara kemudian data divalidasi dengan pesan pubcomp, yaitu konfirmasi bahwa data telah lengkap dan sampai pada penerima. Publisher akan mengirim pubrel ulang jika belum mendapat pesan pubcomp dan gateway akan terus menerima pesan pubrel. Penerapan QoS level 2, pesan diterima tepat satu kali disebabkan adanya penyimpanan data sementara pada gateway yang akan
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
mengabaikan data yang tidak diperlukan secara acak. Prosentase data sesuai dan diterima pada QoS 2 berdasarkan pengujian dengan noise 1 detik dan noise 12 detik adalah 100% dan 100% dengan rata-rata pesan diterima 100% tepat satu kali. DAFTAR PUSTAKA Anon., t.thn. Internetworking Technologies Handbook. Fourth penyunt. s.l.:Cisco Press. Arduino, t.thn. Arduino Board Nano. [Online] Available at: https://www.arduino.cc/en/Main/Arduino BoardNano Azzahidin, M. A., 2016. Implementasi Wireless Sensor Network Publisher Menggunakan Protokol Message Queue Telemetry Transport - Sensor Network (MQTT-SN). Ferguson, P. & Huston, G., 1998. Quality of Service. s.l.:John Willwy & SOns Inc. Govindan, K., 2015. ENd-to -end Assurance in IoT MQTT-SN. Khalil, N., 2014. Wireless Sensor Network for Internet of Things. Kupwade Patil, H. & Szygenza, S. A., 2013. Security for Wireless Sensor Networks Using Identity-Based Cryptography. New York: CNC Press. Nordic, S., 2014. Difference between NRF24L01, Xbee and RF. s.l.:s.n. Peeples, K., 2015. Internet of Things MQTT Quality of Service Levels. [Online] Available at: https://dzone.com/articles/internet-thingsmqtt-quality [Diakses Desember 2017]. Salman, T., 2015. Networking Protocols and Standarts for Internet of Things. [Online] Available at: http://www.cse.wustl.edu/~jain/cse57015/ftp/iot_prot [Diakses 1 Oktober 2016]. Stanford-Clark, A., 2013. MQTT For Sensor Networks (MQTT-SN) Protocol Specification. 1.2.3rd penyunt. s.l.:International Business Machines Corporation (IBM). Weiss, B. et al., 2013. A Publish/Subscribe Fakultas Ilmu Komputer, Universitas Brawijaya
2140 Protocol Messaging System For Wireless Sensor Communication. s.l.:s.n.