Pengertian MQTT

MQTT merupakan sebuah protokol yang diterapkan pada Internet Of Things (IOT). Protokol ini sangat mendukung untuk jaringan WAN. Ada banyak macam protokol yang digunakan untuk komunikasi seperti TCP, UDP, FTP, ICMP, HTTP, Protokol COAP. Setiap protokol memiliki fungsi, teknologi, logikal dan tujuan yang berbeda beda.

Asal Muasal MQTT

MQTT awalnya dikembangkan oleh IBM pada tahun 1999 untuk melakukan monitoring terhadap sebuah pipa minyak yang ada di suatu tempat yang jauh dan sulit dijangkau. Tujuan dari proyek ini adalah untuk mempunyai sebuah protocol, yang sangat bandwidth-efficient dan mengonsumsi tenaga batere se-sedikit mungkin, hal ini karena perangkat terkoneksi melalui jaringan satelit yang sangat mahal pada jaman itu.

BACA JUGA : Pengenalan API (Application Programming Interface)

Apa Itu Protokol MQTT

MQTT merupakan singkatan dari Protokol Message Queue Telemetry Transport, yaitu merupakan protokol yang awalnya dirancang khusus untuk komunikasi “machine to machine“. Protokol MQTT mempunyai kelebihan yaitu dapat bekerja dengan energi dan media penyimpanan yang minimum. Selain itu, MQTT memiliki kemampuan publish dan subscribe, jadi 2 device dapat saling berkomunikasi meskipun tidak memiliki alamat khusus. baik antara server ataupun dengan device yang lain normalnya, 2 perangkat yang saling berkomunikasi itu pasti alamat di setiap perangkatnya masing masing, seminimalnya Mac Address. kalo yang paling umum  IP Address.

Perbandingan Protokol MQTT dan Protokol HTTP

Pada Protokol MQTT bersifat datasentris, sedangkan Protokol HTTP bersifat dokumensentris. HTTP yang mana merupakan protokol request-response untuk kebutuhan komputerisasi klien server yang tidak optimal untuk perangkat mobile (device IoT). MQTT mengirim data sebagai byte array, sehingga data yang dikirimkan lebih kecil yang menjadi kelebihan dari protokol ini. Selain itu, MQTT memiliki kemampuan pengiriman lebih tinggi. Ada 3 level Quality of Service (QoS).

Cara Kerja Prokol MQTT

Protocol ini menggunakan konsep publish/subscribe. Berbeda dengan HTTP yang menggunakan konsep request/response. Pubsub adalah event-driven dan memungkinkan dari server untuk mengirim pesan ke client kapanpun dibutuhkan.

Mqtt adalah

Pusat komunikasi ada di MQTT broker, broker ini bertanggung jawab atas terkirimnya semua pesan termasuk jalur distribusinya. Setiap client yang mengirim pesan ke broker, termasuk juga mengirimkan topic ke dalam pesan tersebut.

Topic merupakan bagian dari routing information untuk broker-nya. Tiap klien yang menginginkan menerima pesan, bisa meng-subscribe ke suatu topic tertentu dan broker akan mengirimkan semua message yang cocok dengan pola (pattern) topic tersebut kepada client yang sesuai.

Mekanisme tersebut membuat klien tidak perlu untuk tau satu sama lain untuk bisa berkomunikasi, melainkan mereka cukup berkomunikasi menggunakan topic. Arsitektur semacam ini membuat solusi percakapan bisa dikembangkan dengan skala besar (scalable) karena tidak memerlukan dependencies antara data producers dan data consumers.

Publish dan Subscribe

Publisher adalah peran yang memberikan suatu pesan kepada “topik” tertentu. Subscriber yaitu klien yang subscribe suatu topik, sehingga ketika publisher mengirimkan pesan ke topik tersebut, subscriber dengan topik yang sama akan menerima pesan tersebut. Lalu, yang terakhir yaitu broker, ia berperan sebagai perantara antara publisher dan subscriber. Broker akan meneruskan pesan dari publisher untuk dikonsumsi oleh subscriber. Jadi, Publish dan Topic ini pengiriman seperti tipe data khusus untuk membagikan atau berlangganan suatu topic.

Topic

Jika dianalogikan dengan berlangganan suatu majalah atau koran, topic adalah koran atau majalah tersebut. Misalkan, jika anda berlangganan koran Pikiran Rakyat, tapi anda tidak berlangganan koran Tempo. Artinya anda tidak tahu apa isi koran tempo. Subscribe pun demikian, ketika mensubscribe suatu topic A, maka topic B tidak anda ketahui. Topik adalah suatu string dan dipisahkan dengan tanda “/” untuk sub sub topiknya sehingga tanda “/” menunjukkan level topic. Topic ini bersifat Case Sensitive yang artinya kapital tidaknya huruf akan berpengaruh. misalkan “Sensor” dan “ sensor” adalah suatu hal yang berbeda.

Messages

Messages adalah isi dari suatu topik, bisa berisi suatu data, misal nilai temperatur 20 derajat Celcius. Bisa juga berisi suatu perintah misalkan “menyalakan lampu” atau “mematikan lampu“. Jika sudah subscribe suatu topic misalnya topic suhu. Maka subscriber akan mendapatkan nilai suhu dari topic tersebut setiap jangka waktu tertentu yang bisa diatur di program.

Broker

Broker berfungsi untuk menerima semua pesan, lalu mengolah atau menyaring semua pesan tersebut agar pesan-pesan hanya sampai pada subscriber topik yang bersesuaian. Protokol MQTT juga mendukung Quality of Service dengan tiga level yaitu QoS 0, QoS 1, dan QoS 2. Semakin besar levelnya, maka akan semakin ketat MQTT dalam aturan penerimaan paket dengan catatan akan mungkin terjadi peningkatan overhead.

MQTT cenderung mudah dalam penggunaannya, jadi banyak dijadikan pilihan dalam membuat project IoT setelah HTTP. Contoh broker yang mendukung MQTT antara lain mosquitto, RabbitMQ, HiveMQ, ActiveMQ, dan lain-lain. Sementara itu untuk perangkat yang mendukung IoT juga cukup banyak seperti seri Arduino, ESP8266, Raspberry Pi, OpenWRT router, dan lain-lain.

Signal Kontrol di Protkol MQTT

  • CONNECT – Client request to connect to Server
  • CONNACK – Connection Acknowledgement
  • PUBLISH – A message which represents a new/separate publish
  • PUBACK – QoS 1 Response to a PUBLISH message
  • PUBREC – First part of QoS 2 message flow
  • PUBREL – Second part of QoS 2 message flow
  • PUBCOMP – Last part of the QoS 2 message flow
  • SUBSCRIBE – A message used by clients to subscribe to specific topics
  • SUBACK – Acknowledgement of a SUBSCRIBE message
  • UNSUBSCRIBE – A message used by clients to unsubscribe from specific topics
  • UNSUBACK – Acknowledgement of an UNSUBSCRIBE message
  • PINGREQ – Heartbeat message
  • PINGRESP – Heartbeat message acknowledgement
  • DISCONNECT – Graceful disconnect message sent by clients before disconnecting

Tinggalkan Balasan

Scroll to Top