Memahami MQTT: Protokol Ringan untuk Komunikasi IoT

Penjelasan teknis tentang cara kerja MQTT, arsitekturnya, dan mengapa protokol ini menjadi pilihan utama untuk komunikasi Internet of Things.
Dedi mulyadi

MQTT (Message Queuing Telemetry Transport) adalah protokol komunikasi yang ringan, dirancang untuk perangkat dengan sumber daya terbatas dan jaringan yang tidak stabil. Karena efisiensinya, MQTT menjadi standar de facto dalam banyak proyek Internet of Things (IoT).


1. Prinsip Dasar MQTT

MQTT menggunakan arsitektur publish-subscribe (pub/sub), yang berbeda dari model tradisional client-server. Dalam model ini:

  • Publisher: Mengirimkan data (pesan) ke broker tanpa mengetahui siapa penerimanya.
  • Subscriber: Menerima data dari broker hanya jika berlangganan topik tertentu.
  • Broker: Perantara yang menerima pesan dari publisher dan mengirimkannya ke subscriber yang sesuai.

2. Alur Kerja MQTT

  1. Perangkat terhubung ke broker MQTT.
  2. Publisher mengirim pesan ke topik tertentu.
  3. Broker menerima pesan dan mengirimkannya ke semua subscriber yang berlangganan topik tersebut.
  4. Subscriber memproses pesan sesuai kebutuhan.

3. Kelebihan MQTT

  • Ringan & Efisien: Overhead data sangat kecil, ideal untuk jaringan lambat.
  • Dukungan QoS (Quality of Service):
  • QoS 0: Pesan dikirim sekali tanpa konfirmasi.
  • QoS 1: Pesan dijamin terkirim minimal sekali.
  • QoS 2: Pesan dijamin terkirim tepat sekali.
  • Tetap Terhubung di Jaringan Tidak Stabil: Cocok untuk perangkat IoT di area dengan koneksi buruk.

4. Broker MQTT Populer

  • Mosquitto (Open-source, ringan, populer untuk proyek hobi dan industri)
  • EMQX (Mendukung skala besar, fitur lengkap)
  • HiveMQ (Fokus pada enterprise, integrasi mudah)

5. Contoh Implementasi Singkat (ESP8266 + Node.js)

  • ESP8266 berperan sebagai publisher yang mengirim data suhu.
  • Node.js sebagai subscriber untuk menerima dan menyimpan data di database.
  • Mosquitto sebagai broker yang mengatur lalu lintas pesan.

6. Keamanan di MQTT

  • Gunakan TLS/SSL untuk enkripsi data.
  • Terapkan username & password untuk autentikasi.
  • Batasi akses topik sesuai peran perangkat.