IMPLEMENTASI PENYIMPANAN DATA SENSOR NIRKABEL DENGAN

Download bahasa pemrograman Python dengan. MongoDB. • MongoDB. MongoDB adalah sistem basis data yang digunakan untuk melakukan analisis hasil kerja ...

1 downloads 546 Views 699KB Size
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol. 2, No. 9, September 2018, hlm. 3391-3399

e-ISSN: 2548-964X http://j-ptiik.ub.ac.id

Implementasi Penyimpanan Data Sensor Nirkabel dengan MongoDB pada Lingkungan IOT Menggunakan Protokol MQTT Pramudya Mahardika Kusumawardhana1, Mochammad Hannats Hanafi Ichsan2, Rakhmadhany Primananda3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: [email protected], [email protected], [email protected] Abstrak Internet of things (IoT) adalah konsep komunikasi machine to machine atau machine to application yang mempunyai sudut pandang bahwa miliaran sensor, aktuator dan benda sehari-hari dapat dapat terhubung ke internet. salah satu protokol yang terdapat dalam Internet of Things adalah protokol Message Queue Telemetry Transport (MQTT) yang berguna dalam menghemat sumber daya dan menghemat pengiriman ukuran paket data. Karena itu, sangat penting untuk mempelajari kemampuan dari sistem IoT yang moderen untuk menangani perubahan yang akan datang dari perangkat-perangkat lain. Hal yang akan datang di masa depan adalah tentang media penyimpanan data IoT tersebut. Diperlukan sistem basis data yang bersifat fleksibel dimana dapat langsung menerima data dari perangkat IoT tersebut. Dalam pengujian ini penulis mengevaluasi performansi dari sistem basis data Not Only SQL (NoSQL) MongoDB terhadap protokol MQTT. Pada penelitian ini parameter yang digunakan untuk melakukan pengujian perfromansi adalah Load Testing. Proses penerapan protokol MQTT untuk media transmisi data sensor menggunakan mikrokontroller NodeMCU dengan metode Publish and Subscribe. Metode Load Testing dipilih sebagai salah satu teknik untuk menguji relasi antara waktu eksekusi MongoDB untuk menyimpan data dari pembacaan sensor lewat protokol MQTT. Dari hasil penelitian didapatkan bahwa NodeMCU dapat dikonfigurasi dengan MQTT, dengan hasil 75% akurasi keberhasilan koneksi dari rentan 4 meter sampai 20 meter. Dari penelitian juga didapatkan bahwa waktu eksekusi MongoDB untuk menyimpan 50 sampai 1500 data tanpa harus ada basis datanya diperlukan waktu kurang dari 0.5 detik, dan waktu eksekusi MongoDB untuk menyimpan 50 sampai 1500 data tersebut diperlukan waktu kurang dari 0.2 detik. Kata kunci Internet of Things, MQTT, MongoDB, NoSQL, Performansi

Abstract Internet of Things (IoT) is the machine-to-machine or machine to application communication concept which has the vision that billion of sensors, actuators, and many daily devices could be connected to the internet. Message Queue Telemetry Transport (MQTT) is one of the protocol included in Internet of Things which is useful to save power and reduce the size of packet data messaging. Therefore, it is important to study the ability of modern IoT systems to handle high rates of data updates coming from devices. The upcoming thing in the future is about storage media to handle the IoT data, such as a database system to store the data. A flexible database which could handle the data from the IoT device is required. The writer in this work will evaluated the performance of Not Only SQL (NoSQL) MongoDB Database towards MQTT Protocol. In this work, writer use the parameter for the performance testing is the Load Testing. The process practice for the MQTT Protocol as a sensor data transmission media uses NodeMCU microcontroller with the publish and subscribe method. Load Testing method was choosen as a technique to test the relation between the execution time of MongoDB to store the data of the sensor from MQTT protocol. From this work, claimed that NodeMCU could be configurated with MQTT Protocol, with a 75% accuracy of success for connection within the range from 4 meter to 20 meter. From this work we also got that the execution time for MongoDB to store 50 to 1500 data without the database being configured is less than 0.5 Second, and the execution time for MongoDB to store 50 to 1500 data if the database was already set needs less than 0.2 second to store. Keywords: Internet of Things, MQTT, MongoDB, NoSQL, Performance

Fakultas Ilmu Komputer Universitas Brawijaya

3391

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

1.

PENDAHULUAN

Internet of Things (IoT) merupakan konsep komunikasi machine to machine atau machine to application yang diturunkan dari teknologi Wireless Sensor network atau bisa disingkat dengan WSN. IoT mulai diperkenalkan oleh Kevin Ashton pada tahun 1999. Salah satu protokol komunikasi machine to machine yang pada implementasinya berguna untuk menghemat sumber daya adalah Message Queue Telemetry Transport (MQTT). MQTT adalah jenis protokol komunikasi data sentris yang memanfaatkan mekanisme publish-subscribe menggunakan protokol TCP/IP sebagai latar belakang komunikasinya. (Andy Stanford-Clark dan Hong Linh Truong, 2013) Internet of Things merepresentasikan artitekstur yang hibrida, yang mempunyai arti bahwa IoT dapat memiliki arsitektur subsistem berbeda-beda. (Vladislavs Aleksandrovičs, Eduards Filičevs, Jānis Kampars, 2016) Dari uraian di atas dapat digunakan pendekatan komunikasi data-sentris, di mana Informasi disampaikan ke penerima yang tidak berdasarkan alamat jaringan aslinya melainkan berdasarkan ketertarikan dan konten. Salah satu contoh komunikasi data-sentris yang terkenal adalah “Publish/Subscribe” (pub/sub) sistem pesan yang sudah banyak digunakan di perusahaan jaringan, terutama karena skalabilitas dan topologi jaringan yang dinamis. Penggunaan sistem pub/sub perusahaan kedalam WSN juga memungkinkan integrasi WSN ke dalam peningkatan jaringan perusahaan, hal tersebut membuat data yang dikumpulkan oleh sensor dan actuator (SAs) tersedia untuk semua aplikasi seperti aplikasi informasi perusahaan lainnya dan memungkinkan pengendalian SAs dari aplikasi perusahaan manapun. Ini bisa jadi contoh yang diraih menggunakan protokol MQTT, yang bersifat terbuka dan lightweight dalam protokol publish/subscribe nya dimana dirancang khusus untuk menjadi aplikasi machine-to-machine dan mobile. Hal itu dioptimalkan untuk komunikasi melalui jaringan dimana bandwidth berada pada tingkat dasar atau dimana koneksi jaringan bisa terputus. (Andy Stanford-Clark dan Hong Linh Truong, 2013) Internet of Things sepenuhnya memanfaatkan model ekonomis yang ditawarkan oleh teknologi terkini dari Cloud Computing (contoh. Pay-as-you-go style), yang Fakultas Ilmu Komputer, Universitas Brawijaya

3392

meningkatkan kualitas layanan yang disampaikan pada pengguna dan membantu mereka untuk memudahkan tugas yang kontraktual. Akan teteapi, layanan IoT yang terasosiasi membutuhkan pengumpulan data yang sangat besar yang diproduksi dari kumpulan sensor-sensor menggunakan dedicated gateways dan disimpan didalam Big Data Storage atau sistem basis data. (Pham, 2015) Untuk mengatasi halangan ini, teknologi basis data Not Only SQL (NoSQL), seperti Hbase, MongoDB, Cassandra dan CouchDB dibangun dan dikembangkan. Teknologi NoSQL dapat menyimpan data yang tidak terstruktur karena kemampuan mereka dalan kemudahan memodifikasi-skema data, dan mempunyai expansion cost server yang lebih rendah daripada sistem basis data relasional karena kemampuan mereka dalam skema “scale-out” dibandingkan dengan skema “scale-up” yang sistem basis data relasional punya. Disamping itu, sistem basis data NoSQL dapat memporses masukan yang raksasa dan mempunyai keluaran data secara efisien berdasarkan pendekatan penyimpanan dan pemrosesan terdistribusi melalui beberapa node data. (Yong-Shin Kang, Il-Ha Park, Jongtae Rhee, dan Yong-Han Lee, 2016) Pada tahun 1998 pertama kalinya dikembangkan sebuah konsep penyimpanan basis data yaitu NoSQL oleh Carlo Strozzi, yang kemudian pada tahun 2009 Eric Evans memperkenalkan kembali teknologi NoSQL. NoSQL dan RDBMS memiliki kelebihan dan tempat masing-masing sehingga diharapkan dapat saling melengkapi teknologi penyimpanan basis data. (Mufid Itsnaini Zain dan M. Rudyanto Arief, 2014) MongoDB adalah sistem basis data berorientasi dokumen yang menggunakan bahasa pemrograman C++. Objek data disimpan dalam bentuk data BSON. Objek-objek data tersebut tidak harus mempunyai struktur tabel atau kolom yang sama, yang memudahkan dalam penyimpanan karena lebih fleksibel MongoDB adalah sistem basis data berorientasi dokumen yang menggunakan bahasa pemrograman C++. Objek data disimpan dalam bentuk data BSON. Objek-objek data tersebut tidak harus mempunyai struktur tabel atau kolom yang sama, yang memudahkan dalam penyimpanan karena lebih fleksibel. MongoDB juga bersifat open source dan gratis untuk

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

digunakan yang berada dibawah agensi GNU Affero General Public License. (P.Sudhakaran, 2016) Performance Testing atau Load Testing adalah proses menjalankan aplikasi dengan mengemulasikan pengguna yang actual dengan beban yang dibuat untuk tujuan menemukan system bottleneck. Tujuan utama dari load testing ini adalah untuk melihat aspek scalability, availability, dan performa dari perangkat keras maupun perangkat lunak. (H. Sarojadevi, 2011) Berdasarkan permasalahan dan fakta yang telah diuraikan, maka penulis melakukan penelitian dalam implementasi sistem basis data NoSQL untuk penyimpanan data sensor IoT. Sehingga judul yang diambil untuk penelitian ini yaitu “Implementasi Penyimpanan Data Sensor Nirkabel Dengan MongoDB Pada Lingkungan IoT Menggunakan Protokol MQTT” dengan menggunakan metode Load Testing. Sehingga dari penelitian ini didapatkan hasil yang dapat menunjukkan performa dari MongoDB terhadap lingkungan kerja pengiriman data sensor IoT menggunakan MQTT sebagai protokol pengiriman. 2.

METODE PENELITIAN

Gambar 1. Alur Metode Penelitian

Alur metodologi penelitian menjelaskan tentang langkah yang ditempuh agar penelitian dapat dilakukan dengan terarah. Dimulai dari studi literatur, perancangan simulasi, simulasi, pengumpulan data, analisis data hingga menarik kesimpulan dan saran. 3.

REKAYASA KEBUTUHAN

3.1 Gambaran Umum Sistem Sistem basis data MongoDB dirancang dalam bentuk single-node cluster menggunakan platform Windows. Kemudian data untuk analisanya didapatkan dari microcontroller NodeMCU yang mengirim data sensor kedalam Broker MQTT. Lalu broker MQTT akan Fakultas Ilmu Komputer, Universitas Brawijaya

3393

mengirim data yang sudah diterima MQTT kedalam sistem basis data. Terdapat waktu yang dibutuhkan untuk pengiriman data-data tersebut, waktu pengiriman tersebut yang akan digunakan untuk analisa penelitian. 3.2 Kebutuhan Perangkat Keras Untuk menunjang implementasi sistem, dibutuhkan perangkat yang memadai. Kebutuhan perangkat keras adalah Microcontroller NodeMCU dan Universal Serial Bus (USB) Mikrokontroler merupakan perangkat yang dapat ditanami program sehingga dapat bekerja sesuai yang diinginkan program tersebut. NodeMCU membutuhkan USB untuk mengunggah program. 3.3 Kebutuhan Perangkat Lunak Kebutuhan perangkat lunak pada penelitian ini dijelaskan melalui poin berikut: • Arduino IDE 1.6 Perangkat lunak ini digunakan untuk menuliskan program, menyusun dan mengunggah program ke mikrokontroler. • Python Perangkat lunak ini digunakan sebagai landasan MQTT menjalankan program. • Library PyMongo Library PyMongo digunakan sebagai penyedia layanan penghubung antara bahasa pemrograman Python dengan MongoDB. • MongoDB MongoDB adalah sistem basis data yang digunakan untuk melakukan analisis hasil kerja sistem. • MQTT MQTT adalah perangkat lunak yang berfungsi sebagai jembatan antara node IoT dan sistem basis data pada penelitian ini. 3.4 Kebutuhan Non-Fungsional Persyaratan non-fungsional mengacu pada aspek, Batasan dan fungsi dari layanan dalam penelitian simulasi. Kebutuhan fungsional yang harus dipenuhi pada penelitian ini berada pada aspek kebutuhan reliability, antara lain: 1. Masing-masing NodeMCU dapat dilakukan pengujian discovery terhadap jaringan wifi. 2. Masing-masing NodeMCU dapat mengirim data ke MQTT-Broker dan diterima oleh MQTT-Broker.

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

3394

3. MQTT-Broker dapat mengirim data ke basis data MongoDB dalam keadaan kosong basis datanya.

ditampilkan dalam tampilan grafik untuk memudahkan penggambaran hasil.

4. MQTT-Broker dapat mengirim data ke

4.1 Perancangan NodeMCU sebagai Client

basis data MongoDB dalam keadaan basis data sudah dikonfigurasi. 3.5 Kebutuhan Fungsional Kebutuhan Fungsional adalah kebutuhan yang berisi proses-proses apa saja atau layanan apa saja yang nantinya harus disediakan oleh sistem, mencackup bagaimana sistem harus bereaksi pada input tertentu dan bagaimana perilaku sistem pada situasi tertentu. Kebutuhan fungsional yang harus dipenuhi pada penelitian ini antara lain: 1. Masing-masing client atau NodeMCU dapat mengirimkan data dengan topic yang sama kedalam Broker menggunakan protokol MQTT 2. MQTT Broker dapat berjalan sebagai penerima data dari MQTT client 3. MQTT-Broker dapat mengirimkan data kedalam sistem basis data MongoDB 4. MongoDB sebagai sistem basis data dapat menerima data dari MQTT-Broker 4.

PERANCANGAN IMPLEMENTASI SISTEM

DAN

Pada bagian ini dijelaskan, proses perancangan sistem dimulai dari perancangan perangkat keras, perangkat lunak, dan format pesan protokol MQTT.

Gambar 2. Topologi Jaringan Sistem

Gambar 2 merupakan topologi jaringan dari sistem. Data sensor yang berupa input akan dikirim melalui NodeMCU. Data yang dikirim akan dimasukkan dan diproses kedalam MQTTBroker untuk selanjutnya dikirim kedalam basis data MongoDB. Hasil atau output sistem akan Fakultas Ilmu Komputer, Universitas Brawijaya

NodeMCU berperan sebagai perangkat pembuat data sensor, mikrokontroler ini juga mempunyai modul wireless yang bertindak sebagai media transmisi data. Tabel 1 adalah tabel spesifikasi mikrokontroler NodeMCU. Tabel 1. Spesifikasi Mikrokontroler NodeMCU

NodeMCU akan dilakukan upload program dari Arduino IDE sebagai pengirim data sensor kedalam broker MQTT. Programnya berisi tentang nilai suhu dalam satuan Celcius dan akan generate secara acak oleh NodeMCU sebagai data pengiriman. 4.2 Perancangan MQTT Client Perancangan perangkat lunak MQTT client mencakup pada fungsionalitas kebutuhan perangkat lunak yang digunakan untuk menulis dan kompilasi program. Pemrograman untuk perangkat MQTT Publisher menggunakan bahasa Arduino dengan software Arduino IDE untuk kompilasinya. Library yang digunakan antara lain; library MQTT digunakan untuk mengaktifkan fungsi MQTT untuk NodeMCU. Library Arduino JSON digunakan untuk mengaktifkan fungsi pengiriman data bertipe JSON untuk dikirim kedalam broker. Program Arduino pertama kali melakukan koneksi kedalam wifi, setelah terkoneksi, maka program akan melakukan koneksi kedalam MQTT-Broker, setelah dapat terkoneksi kedalam MQTT-Broker, program akan melakukan generate data sensor supaya nantinya akan diteruskan kedalam MQTT-Broker. 4.3 Perancangan MQTT Broker Perancangan perangkat lunak MQTT Broker mencakup pada fungsionalitas kebutuhan perangkat lunak yang digunakan untuk menulis dan kompilasi program broker. Pemrograman untuk perangkat MQTT broker menggunakan bahasa Python dengan software Python untuk kompilasinya. Library yang digunakan antara

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

lain; Library PyMongo digunakan untuk mengaktifkan fungsi komunikasi Python dan MongoDB. Program MQTT-Broker bermula dari awal program melakukan koneksi ke MQTT yang berada pada komputer lokal. Jika program sudah terkoneksi ke MQTT, maka program akan menerima data dari publisher dan melakukan stack data sampai data ke-N, tergantung kebutuhan programnya. Jika Panjang data sudah sampai N-data, maka data stack akan dikirimkan kedalam MQTT-Subscriber. 4.4 Perancangan Database MongoDB

3395

Gambar 4. Alur Simulasi MQTT

4.6 Implementasi NodeMCU sebagai Client Sesuai dengan perancangan perangkat keras MQTT client, implementasi MQTT client terdiri dari input sensor module yaitu mikrokontroler NodeMCU yang terhubung pada komputer.

Sistem basis data MongoDB menggunakan versi 3.4 yang di-install didalam operating system Windows. Sistem basis data MongoDB akan menerima data yang berisi nilai pembacaan data sensor dan timestamp dari MQTT-Broker, dan MongoDB dapat membuat unique ID secara otomatis.

Gambar 5. NodeMCU sebagai Client

4.7 Implementasi MQTT Client

Gambar 3. ERD “Dataskripsi”

Diagram ERD MongoDB untuk perancangan basis terdapat satu database yang dinamakan “Dataskripsi” mempunyai collection “Datanode”, “WaktuArduino”, dan“datawaktu”. “Datanode” berisi informasi tentang data pembacaan sensor. “WaktuArduino” mempunyai informasi tentang pencatatan waktu ketika program stack didalam broker berjalan. Dan “datawaktu” mempunyai informasi tentang pencatatan waktu ketika MQTT-Broker mengirim data yang sudah ditumpuk kedalam database.

Setelah NodeMCU menyala dan siap digunakan, NodeMCU akan dilakukan unggah program kedalamnya supaya dapat melakukan koneksi ke wifi lokal dan menjadikannya sebagai MQTT-Publisher.

Gambar 6. Program Setup WiFi untuk NodeMCU

4.5 Perancangan Simulasi MQTT Simulasi MQTT terdiri dari MQTT publisher, broker dan MQTT subscriber. Simulasi dilakukan pada PC/laptop dengan alamat jaringan lokal. Untuk menjalankan simulasi MQTT publisher, port serial yang sedang digunakan untuk simulasi tidak dapat digunakan untuk menjalankan aplikasi lain. Sehingga sebelum memulai simulasi pastikan agar port tidak sedang digunakan untuk program lain. Fakultas Ilmu Komputer, Universitas Brawijaya

NodeMCU harus melakukan konfigurasi SSID dan kata sandi wifi supaya dapat melakukan koneksi ke jaringan wifi. Setelah dilakukan konfigurasi SSID dan kata sandi wifi, dilakukan konfigurasi koneksi protokol TCP untuk akses koneksi ke jaringan komputer. Setelah semua program selesai dikonfigurasi, program di-upload kedalam mikrokontroler NodeMCU dengan memilih tombol upload didalam arduino.

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

3396

mempunyai collection “Datanode”, “WaktuArduino”, dan “datawaktu”. “Datanode” berisi informasi tentang data pembacaan sensor. “WaktuArduino” mempunyai informasi tentang pencatatan waktu ketika program stack didalam broker berjalan. Dan “datawaktu” mempunyai informasi tentang pencatatan waktu ketika MQTT-Broker mengirim data yang sudah ditumpuk kedalam database. 4.10 Implementasi Simulasi MQTT Gambar 7. NodeMCU Connect Wifi

4.8 Implementasi MQTT Broker Sesuai dengan perancangan perangkat keras MQTT broker, implementasi MQTT broker terdiri dari MQTT broker yang berjalan di Command Prompt Windows.

Gambar 8. Implementasi MQTT broker

MQTT-Broker dijalankan lewat command prompt sebagai media transmisi data, data yang dikirim oleh NodeMCU sebagai publisher akan ditimbun sampai ke-N data sesuai programnya.

Sesuai dengan perancangan simulasi MQTT, implementasi MQTT merupakan jalannya program publish and subscribe. Sebelum simulasi MQTT dijalankan, MongoDB harus pertama kali diaktifkan, dengan memasukkan perintah “mongod” kedalam command prompt. Setelah MongoDB diaktifkan, program Arduino untuk generate data random dapat dijalankan, tetapi masih belum dapat mengirim data kedalam MongoDB karena program mosquitto dan broker belum dijalankan. Setelah program arduino diaktifkan, maka program mosquito dan broker dapat dijalankan untuk mengirim data dari NodeMCU kedalam MongoDB. Program broker berjalan didalam command prompt yang akan melakukan koneksi ke MQTT dan melakukan stack data sampai data ke N, bila Panjang data sudah sampai N, maka data akan dikirimkan kedalam basis data dataskripsi.

4.9 Implementasi Database MongoDB Sistem basis data MongoDB yang sudah diinstall merupakan versi 3.4 didalam operating system Windows. Sistem basis data MongoDB akan menerima data yang berisi nilai pembacaan data sensor dan timestamp dari MQTT-Broker, dan MongoDB dapat membuat unique ID secara otomatis Gambar 10. Pegiriman 50 Data

50 Data terkirim kedalam sistem basis data MongoDB dan masuk kedalam basis data dataskripsi. 5. Gambar 9. ERD Database “Dataskripsi”

Diagram ERD MongoDB pada gambar diatas terdapat satu database Dataskripsi yang Fakultas Ilmu Komputer, Universitas Brawijaya

PENGUJIAN

5.1 Pengujian Fase Discovery MQTT Client Pengujian dilakukan dengan mengaktifkan 4 node sebagai klien yang terhubung melalui

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

jaringan wifi dengan gateway. Pada proses ini terdapat fase discovery.

3397

sebanyak 5 kali percobaan dengan rentan jarak 4 meter sampai 20 meter mendapatkan akurasi sebesar 75% maka dapat disimpulkan bahwa fase discovery untuk konetivitas NodeMCU ke jaringan wifi dapat dilakukan dengan reliable sampai dengan jarak 12 meter. Saat NodeMCU berada pada jarak 16 meter dari router terdapat kemungkinan terjadi terputusnya jaringan. 5.2 Pencatatan Waktu Pengiriman Data dari Arduino Ke Broker

Gambar 11. Rumus Pengujian Akurasi

Hasil pengujian fase discovery ditunjukkan pada tabel dibawah. Berdasarkan tabel tersebut terlihat bahwa semua NodeMCU dapat terkoneksi kedalam wifi dan mendapatkan alamat IP masing-masing dan dapat terkoneksi dengan protokol MQTT. Pada kolom status keberhasilan terdapat tanda (v).

Pengujian dilakukan dengan mengaktifkan 1, 2, 3, dan 4 node sebagai publisher yang terhubung melalui jaringan wifi dengan gateway. Pada proses ini terdapat waktu pengiriman atau delay dari sistem. Delay inilah yang akan digunakan sebagai pengujian.

Tabel 2. Hasil Pengujian Akurasi

Gambar 13. Grafik Waktu Arduino

Berdasarkan persamaan dari hasil pengujian fase discovery lalu nilainya dimasukkan kedalam persamaan akan didapatkan perhitungan seperti berikut:

Hasil pengujian diatas memperlihatkan bahwa jumlah banyak node yang melakukan pengiriman data ke MQTT-Broker terhadap delay tidak membuat perubahan yang signifikan, hal ini dapat disebabkan karena router wifi melakukan drop packet yang dikirimkan oleh node, atau dapat disebabkan karena MQTTBroker sendiri mempunyai kapabilitas maksimal penerimaan data tiap satuan waktu. 5.3 Pencatatan Waktu Pengiriman Data dari Broker Ke MongoDB (Database Kosong)

Gambar 12. Rumus Perhitungan Akurasi

Dari hasil pengujian yang dilakukan Fakultas Ilmu Komputer, Universitas Brawijaya

Pengujian dilakukan dengan menggunakan MQTT Broker yang akan mengirim data kedalam MongoDB dalam keadaan kosong. Hasil dari Gambar 14 menunjukkan bahwa relasi antar banyaknya NodeMCU dengan kecepatan pengiriman data dari MQTT-Broker kedalam basis data MongoDB tidak menunjukkan relasi yang sesuai. Relasi yang sesuai adalah banyaknya jumlah data yang dikirimkan kedalam sistem basis data dengan kecepatan waktu penyimpanan data kedalam sistem basis data MongoDB tersebut.

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

Gambar 14. Grafik Waktu Subscriber 1

5.4 Pencatatan Waktu Pengiriman Data dari Broker ke MongoDB (Database Sudah Ada Sebelumnya) Pengujian dilakukan dengan menggunakan MQTT Broker yang akan mengirim data kedalam MongoDB dalam keadaan database sudah terisi sebelum dipakai.

Gambar 15. Grafik Waktu Subscriber 2

Hasil dari Gambar 15 menunjukkan bahwa relasi antar banyakyna NodeMCU dengan kecepatan pengiriman data dari MQTT-Broker kedalam basis data MongoDB tidak menunjukkan relasi yang sesuai. Relasi yang sesuai adalah banyaknya jumlah data yang dikirimkan kedalam sistem basis data dengan kecepatan waktu penyimpanan data kedalam sistem basis data MongoDB tersebut. Perbedaan antara pengujian dimana kondisi sistem basis data kosong dan terisi melihatkan perbedaan yang sangat signifikan. Hal ini disebabkan karena ketika basis data dalam keadaan kosong, sistem basis data juga melakukan query untuk membuat database baru dan melakukan query insert setelahnya 6.

PENUTUP

Berdasarkan dengan penelitian serta hasil analisis dari pengujian yang dilakukan maka Fakultas Ilmu Komputer, Universitas Brawijaya

3398

dapat ditarik beberapa kesimpulan sebagai berikut: Perancangan penyimpanan data sensor IoT menggunakan sistem basis data NoSQL MongoDB terhadap protokol MQTT Publish and Subscribe dapat dirancang dengan pertama kali menentukan apa yang akan menjadi komponen MQTT, terdapat komponen dalam protokol MQTT yaitu MQTT-Publisher, MQTTSubscriber, dan MQTT-Broker. Penulis merancang MQTT-Publisher dengan menggunakan mikrokontroler NodeMCU untuk melakukan publish data ke broker, MQTTBroker dirancang dengan perangkat lunak Mosquitto yang dipasang di komputer penulis dan dijalankan dengan menggunakan program python, MQTT-Subscribernya merupakan sistem basis data NOSQL MongoDB yang dipasang di komputer penulis dimana fungsinya sebagai penerima dan penyimpan data-data sensor hasil pengiriman perangkat IoT tersebut. Implementasi dilakukan dengan mengatur NodeMCU sebagai MQTT-Publisher dengan perangkat lunak arduino sebagai platform untuk upload program, Setelah dilakukan upload program, NodeMCU harus terkoneksi dengan jaringan wifi, sehingga keberhasilan untuk melakukan koneksi ini dapat diuji tingkat akurasinya. MQTT-Broker dipasang menggunakan perangkat lunak mosquitto dengan menggunakan perangkat lunak python sebagai platform untuk menjalankan program broker, MQTT-Subscriber diimplementasikan dengan menggunakan sistem basis data MongoDB sebagai media penyimpanan data. MQTT-Publisher dan MQTT-Broker mempunyai waktu pengiriman data sehingga waktu pengiriman data ini dapat diukur sebagai analisis. MQTT-Broker dan MQTT-Subscriber mempunyai waktu pengiriman data sampai penyimpanan data sehingga waktu pengiriman data sampai waktu penyimpanan data ini dapat diukur sebagai analisis Load Testing. Hasil pengujian atau percobaan penyimpanan data kedalam sistem basis data MongoDB melalui protokol MQTT didapatkan hasil bahwa MQTT dapat dikoneksikan dengan mikrokontroler NodeMCU dalam suatu jaringan wifi dengan tingkat akurasi 75% dalam rentan jarak 4 meter sampai dengan 20 meter. MQTTBroker dapat mengirim data stack berukuran 50, 100 sampai 1500 data kedalam database MongoDB pada pengujian ini dan didapatkan hasil bahwa kecepatan penyimpanan data untuk menyimpan seluruh data kedalam basis data

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

yang kosong membutuhkan waktu dibawah 0.5 detik, dan kemampuan sistem basis data untuk menyimpan seluruh data kedalam basis data yang sudah dibuat sebelumnya kurang dari 0.2 detik. DAFTAR PUSTAKA Aleksandrovičs, Vladislavs. Filičevs, Eduards. Kampars, Jānis. (2016). Internet of Things: Structure, Features and Management. Riga Technical University, Latvia. Connolly, Thomas and Begg, Carolyn. (2010). Database Systems A Practical Approach to Design, Implementation, and Management Fifth Edition. Boston: Pearson Education. Espressif Systems IOT Team. (2015). ESP8266EX Datasheet. Diambil kembali dari https://cdn-shop.adafruit.com/productfiles/2471/0ASP8266__Datasheet__EN_v4.3.pdf Gubbi, Jayavardhana. Buyya, Rajkumar. Marusic, Slaven. dan Palaniswami, Marimuthu. 2013. Internet of things (iot): A vision, architectural elements, and future directions. Future generation computer systems. University of Melbourne, Australia. Perera, Charith. Zaslavsky, Arkady. Christen, Peter. Georgakopoulos, Dimitrios. 2013. Context Aware Computing forThe Internet of Things: A Survey. IEEE Communications Surveys & Tutorials, vol. 16, no. 1, pp. 414– 454, First Quarter 214. Diambil kembali dari https://doi.org/10.1109/SURV.2013.04231 3.00197 Pham, Linh Manh. 2015. A Big Data Analytics Framework for IoT Applications in the Cloud. University of Grenoble Alpes, Prancis. Sarojadevi, H. (2011). Performance Testing: Methodologies and Tools. Nitte Meenakshi Institute of Technology, India. Sekarwati, Kemal Ade. 2011. Perbandingan Perangkat Lunak Database NoSQL, Studi Kasus : Cassandra dan MongoDB. Depok. Soto, Victor Estuardo Araujo. 2017. Performance Evaluation Of Scalable And Distributed Iot Platforms For Smart Regions. Luleå University of Technology. Belanda. Fakultas Ilmu Komputer, Universitas Brawijaya

3399

Stanford-Clark, A. 2013. MQTT For Sensor Networks (MQTT-SN) Protocol Specification. International Business Machines Corporation (IBM). Sudhakaran, P. (2016). RFID/Sensor Big Data to Implement MongoDB based Repository Design using ACID. Alagappa University, India. Zain, Mufid Itsnaini dan Arief, M. Rudyanto. (2014). Perbandingan Struktur Penyimpanan Dan Performansi Nosql Mongodb Dengan Dbms Sql Server. Stmik Amikom, Yogyakarta.