MQTT untuk Pemula: Memahami MQTT dari Dasar Sampai Bisa

Pendahuluan

Dalam dunia IoT (Internet of Things) dan digitalisasi industri, perangkat seperti sensor, PLC, HMI, gateway, komputer, dan server perlu saling bertukar data.

Salah satu protokol komunikasi yang banyak digunakan untuk kebutuhan tersebut adalah MQTT.

MQTT merupakan protokol komunikasi yang sederhana, ringan, dan dirancang untuk mengirimkan data antarperangkat melalui jaringan.

MQTT banyak digunakan pada:

  • IoT
  • Smart Factory
  • Monitoring energi
  • Monitoring mesin
  • Smart farming
  • Building automation
  • Remote monitoring
  • Industrial automation
  • Data acquisition
  • Sistem monitoring berbasis cloud

Artikel ini akan membahas MQTT dari tingkat paling dasar hingga pembaca memahami bagaimana MQTT dapat digunakan dalam sebuah sistem nyata.


1. Apa Itu MQTT?

MQTT adalah singkatan dari:

Message Queuing Telemetry Transport

MQTT merupakan protokol komunikasi berbasis publish/subscribe.
konsep sederhanya seperti ini :

Contoh sederhana untuk mengilustrasikan MQTT sebagai berikut :

Jika masih belum paham kita coba menggunakan analogi sederhana seperti di bawah ini :

2. Mengapa MQTT Banyak Digunakan?

MQTT memiliki beberapa karakteristik yang membuatnya cocok untuk IoT dan industri.

A. Ringan

MQTT memiliki overhead komunikasi yang relatif kecil.

Hal ini membuat MQTT cocok untuk perangkat dengan:

  • bandwidth terbatas
  • kemampuan hardware terbatas
  • koneksi tidak selalu stabil

B. Menggunakan Publish dan Subscribe

Perangkat tidak harus mengetahui alamat perangkat penerima secara langsung.

Publisher cukup mengirim data ke topic.

Broker kemudian mendistribusikan data tersebut kepada subscriber yang berlangganan topic tersebut.

C. Mudah Dikembangkan

Misalnya awalnya terdapat:

10 sensor → 1 server

Kemudian sistem berkembang menjadi:

100 sensor → 3 server → dashboard → cloud

Arsitektur MQTT tetap dapat digunakan.

D. Cocok untuk Monitoring

MQTT sangat cocok untuk data seperti:

  • Temperature
  • Humidity
  • Pressure
  • Energy
  • Machine status
  • Production quantity
  • Alarm
  • Sensor value

3. Konsep Dasar MQTT

Sebelum belajar MQTT lebih jauh, ada beberapa istilah penting yang harus dipahami.

Terdapat tiga komponen utama:

  1. Publisher
  2. Subscriber
  3. Broker

Mari kita bahas satu per satu.


4. Publisher

Publisher adalah perangkat yang mengirimkan data ke MQTT Broker.

Contohnya:

  • PLC
  • ESP32
  • Raspberry Pi
  • Industrial Gateway
  • Sensor Gateway
  • PC
  • Arduino

Misalnya sebuah PLC membaca sensor temperatur.

PLC mendapatkan:

Temperature = 28.5°C

PLC kemudian mengirimkan data tersebut melalui MQTT.

PLC tersebut bertindak sebagai:

Publisher

5. Subscriber

Subscriber adalah perangkat yang menerima data dari MQTT Broker.

Subscriber melakukan subscribe terhadap topic tertentu.

Contohnya:

PC Server subscribe:

factory/line1/temperature

Ketika ada data:

28.5

pada topic tersebut, PC Server akan menerima data.

Contoh subscriber:

  • Web Dashboard
  • PC Server
  • Smartphone
  • HMI
  • Cloud Server
  • Database Server

6. MQTT Broker

Broker adalah pusat komunikasi MQTT.

Publisher tidak mengirim data secara langsung kepada subscriber.

Publisher mengirim data ke:

MQTT Broker

Kemudian Broker meneruskan data kepada subscriber yang sesuai.

Contoh MQTT Broker:


7. Cara Kerja MQTT

Mari kita lihat contoh sederhana.

Misalnya terdapat:

Temperature Sensor

MQTT Broker

PC Dashboard

Alurnya:

Temperature Sensor
        |
        | Publish
        v
   MQTT Broker
        |
        | Subscribe
        v
   PC Dashboard

Sensor membaca:

30°C

Sensor melakukan publish:

Topic:
factory/temperature

Payload:
30

Broker menerima data tersebut.

PC Dashboard yang sudah subscribe:

factory/temperature

akan menerima:

30

8. Apa Itu Topic?

Topic adalah alamat atau jalur logis yang digunakan MQTT untuk mengelompokkan pesan.

Contoh:

factory/line1/temperature

atau:

factory/line1/machine1/status

atau:

farm/chickenhouse1/humidity

Topic tidak harus berupa alamat IP.

Topic merupakan struktur penamaan untuk data.


9. Contoh Struktur Topic

Untuk sistem industri, topic sebaiknya dibuat terstruktur.

Contoh:

factory/
    line1/
        machine1/
            temperature
            pressure
            status
        machine2/
            temperature
            status

Sehingga topic dapat berupa:

factory/line1/machine1/temperature
factory/line1/machine1/pressure
factory/line1/machine1/status

Struktur seperti ini akan sangat membantu ketika jumlah mesin semakin banyak.

10. Apa Itu Payload?

Payload adalah isi data yang dikirim melalui MQTT.

Misalnya:

Topic:

factory/line1/temperature

Payload:

30.5

Maka:

Topic   = factory/line1/temperature
Payload = 30.5

Payload juga dapat berupa teks.

Contoh:

RUNNING

atau:

STOP

Payload juga dapat berupa data yang lebih kompleks menggunakan format seperti JSON.

Contoh:

{
  "temperature": 30.5,
  "humidity": 72,
  "status": "RUNNING"
}

Dengan JSON, beberapa informasi dapat dikirim dalam satu message.


11. MQTT Message

Secara sederhana sebuah MQTT message dapat dipahami sebagai:

Topic
+
Payload

Contoh:

Topic:
factory/line1/machine1/status

Payload:
RUNNING

Publisher mengirim message tersebut ke Broker.


12. Publish

Publish berarti mengirimkan message ke sebuah topic.

Contoh:

Publish
Topic: factory/line1/machine1/temperature
Payload: 30.5

Publisher tidak perlu mengetahui siapa yang menerima data tersebut.

Publisher cukup mengirim data ke Broker.


13. Subscribe

Subscribe berarti meminta MQTT Broker untuk mengirimkan message dari topic tertentu.

Contoh:

Subscribe:
factory/line1/machine1/temperature

Jika publisher mengirim:

30.5

maka subscriber menerima data tersebut.


14. MQTT Broker sebagai Pusat Komunikasi

Broker dapat dianalogikan seperti kantor pos.

Publisher adalah pengirim surat.

Subscriber adalah penerima surat.

Broker adalah kantor pos.

Publisher mengatakan:

Saya ingin mengirim data ke topic tertentu.

Broker menerima data tersebut.

Kemudian Broker mencari perangkat yang subscribe topic tersebut.

Broker meneruskan data kepada subscriber.


15. Contoh Sistem MQTT Sederhana

Misalnya kita mempunyai sistem:

Temperature Sensor
        |
        | MQTT Publish
        v
   MQTT Broker
        |
        +------> PC Dashboard
        |
        +------> Smartphone
        |
        +------> Cloud Server

Satu sensor dapat mengirim data.

Data tersebut dapat digunakan oleh banyak perangkat sekaligus.

Inilah salah satu kelebihan konsep publish/subscribe.


16. MQTT pada Sistem Industri

MQTT sangat menarik ketika digunakan untuk digitalisasi industri.

Contohnya:

Sensor
   |
PLC
   |
Industrial Gateway
   |
Ethernet
   |
MQTT Broker
   |
   +---- Web Dashboard
   |
   +---- Database
   |
   +---- Mobile App
   |
   +---- Cloud

PLC bertugas membaca dan mengendalikan mesin.

Gateway mengambil data dari PLC.

Gateway kemudian mengirim data ke MQTT Broker.

Dashboard mengambil data tersebut dari MQTT Broker.


17. Contoh Monitoring Mesin

Misalnya sebuah mesin mempunyai data:

  • Machine Status
  • Temperature
  • Pressure
  • Motor Speed
  • Production Counter

Topic MQTT dapat dibuat:

factory/line1/machine1/status
factory/line1/machine1/temperature
factory/line1/machine1/pressure
factory/line1/machine1/speed
factory/line1/machine1/production

Contoh data:

temperature = 32.5°C
pressure = 5.2 bar
speed = 1450 RPM
production = 1250 pcs
status = RUNNING

Semua data tersebut dapat dikirim menggunakan MQTT.


18. MQTT untuk Smart Farming

MQTT juga sangat cocok untuk sistem smart farming.

Contohnya:

Temperature Sensor
Humidity Sensor
NH3 Sensor
Wind Sensor
       |
       v
     PLC
       |
       v
 MQTT Gateway
       |
       v
 MQTT Broker
       |
       v
 Cloud Server
       |
       v
 Web Dashboard

Topic dapat dibuat:

farm/chickenhouse1/temperature
farm/chickenhouse1/humidity
farm/chickenhouse1/ammonia
farm/chickenhouse1/wind_speed

Dashboard kemudian dapat menampilkan kondisi kandang secara realtime.


19. QoS pada MQTT

MQTT memiliki fitur yang disebut:

QoS — Quality of Service

QoS menentukan tingkat jaminan pengiriman message.

Terdapat tiga level utama.

QoS 0

At most once

Message dikirim tanpa jaminan bahwa message akan diterima.

Cocok untuk data yang terus berubah seperti:

Temperature
Humidity
RPM

QoS 1

At least once

Message dijamin sampai, tetapi dapat diterima lebih dari satu kali.

Cocok untuk data yang lebih penting dibanding data monitoring biasa.


QoS 2

Exactly once

Message dipastikan diterima tepat satu kali.

QoS 2 memberikan jaminan paling tinggi, tetapi membutuhkan proses komunikasi lebih banyak.


20. Retained Message

MQTT mempunyai fitur:

Retained Message

Misalnya sensor terakhir mengirim:

Temperature = 30°C

dengan retain aktif.

Kemudian sebuah dashboard baru melakukan subscribe.

Broker dapat langsung memberikan nilai terakhir tersebut:

30°C

tanpa harus menunggu sensor mengirim data berikutnya.

Fitur ini sangat berguna untuk status atau nilai terakhir suatu perangkat.


21. MQTT Last Will and Testament

MQTT juga memiliki fitur:

Last Will and Testament (LWT)

Fitur ini dapat digunakan untuk mengetahui apakah sebuah device tiba-tiba terputus.

Contohnya device memiliki status:

factory/line1/gateway/status

Normal:

ONLINE

Jika device tiba-tiba disconnect, Broker dapat mengirim:

OFFLINE

Dashboard kemudian dapat memberikan alarm.

Contohnya:

Gateway Line 1 Offline


22. MQTT Username dan Password

MQTT Broker dapat menggunakan authentication.

Contoh:

Username:
factory_gateway

Password:
********

Dengan demikian tidak semua perangkat dapat sembarangan melakukan koneksi ke Broker.

Untuk sistem industri, authentication sebaiknya digunakan.


23. MQTT dan Keamanan

Dalam implementasi nyata, MQTT juga perlu diperhatikan dari sisi keamanan.

Beberapa hal yang perlu diperhatikan:

  • Username/password
  • Access control
  • TLS/SSL
  • Firewall
  • Network segmentation
  • VPN
  • Certificate
  • Permission topic

Contohnya:

Gateway Line 1 hanya boleh publish:

factory/line1/#

sedangkan Gateway Line 2:

factory/line2/#

Dengan demikian akses dapat dibatasi.


24. MQTT melalui TCP/IP

MQTT umumnya berjalan di atas jaringan TCP/IP.

Port MQTT yang umum:

1883

Untuk MQTT menggunakan TLS:

8883

Contoh koneksi:

Device
   |
Ethernet
   |
TCP/IP
   |
MQTT
   |
Broker

Karena menggunakan TCP/IP, MQTT dapat digunakan melalui jaringan lokal maupun jaringan yang lebih luas.


25. MQTT dan Internet

MQTT tidak hanya dapat digunakan dalam LAN.

Contohnya:

Factory
   |
MQTT Gateway
   |
Internet
   |
Cloud MQTT Broker
   |
Internet
   |
Dashboard

Dengan arsitektur ini, data mesin dapat dimonitor dari lokasi lain.

Namun koneksi internet untuk sistem industri harus dirancang dengan memperhatikan keamanan.


26. Contoh Implementasi MQTT

Mari kita lihat contoh sederhana.

Misalnya kita mempunyai sebuah device yang membaca temperatur.

Device membaca:

28.5°C

Device melakukan publish:

Topic:
factory/line1/temperature

Payload:
28.5

MQTT Broker menerima data.

Dashboard melakukan subscribe:

factory/line1/temperature

Dashboard mendapatkan:

28.5

Kemudian dashboard menampilkan:

Temperature
28.5 °C

27. Contoh Data JSON

Untuk sistem yang lebih kompleks, kita dapat menggunakan JSON.

Contoh:

{
  "machine": "M01",
  "temperature": 32.5,
  "pressure": 5.2,
  "speed": 1450,
  "status": "RUNNING"
}

Topic:

factory/line1/machine

Dengan satu message kita dapat mengirim beberapa parameter.


28. MQTT untuk Production Monitoring

MQTT juga dapat digunakan untuk production monitoring.

Misalnya sebuah PLC menghitung:

Target = 1000 pcs
Actual = 750 pcs
NG = 12 pcs

PLC atau gateway dapat mengirim:

factory/line1/production

dengan payload:

{
  "target": 1000,
  "actual": 750,
  "ng": 12
}

Dashboard kemudian menghitung:

Progress = Actual / Target × 100%

Sehingga:

Progress = 750 / 1000 × 100%
         = 75%

29. MQTT Tidak Sama dengan Database

Ini merupakan hal penting bagi pemula.

MQTT adalah protokol komunikasi.

Database digunakan untuk menyimpan data.

Contohnya:

PLC
 |
 | MQTT
 v
MQTT Broker
 |
 v
Application Server
 |
 v
Database
 |
 v
Dashboard

MQTT bertugas membawa data.

Database bertugas menyimpan data.


30. MQTT Tidak Sama dengan HTTP

HTTP biasanya menggunakan konsep:

Client → Request → Server
Client ← Response ← Server

Sedangkan MQTT menggunakan:

Publisher
    |
    v
 Broker
    |
    v
Subscriber

MQTT sangat cocok untuk komunikasi event dan telemetry yang membutuhkan komunikasi ringan.

HTTP tetap sangat berguna untuk:

  • Web application
  • REST API
  • Web service
  • Browser communication

Dalam sistem modern, MQTT dan HTTP bahkan dapat digunakan bersamaan.


31. Contoh Arsitektur IoT Industri

Contoh arsitektur lengkap:

┌──────────────────────┐
│       SENSOR         │
│ Temp / Pressure /    │
│ Energy / Production  │
└──────────┬───────────┘
           │
           v
┌──────────────────────┐
│         PLC          │
│ Control & Data       │
│ Acquisition          │
└──────────┬───────────┘
           │
           v
┌──────────────────────┐
│ Industrial Gateway   │
│ MQTT Client          │
└──────────┬───────────┘
           │
        Ethernet
           │
           v
┌──────────────────────┐
│     MQTT BROKER      │
└──────────┬───────────┘
           │
     ┌─────┼──────┐
     │     │      │
     v     v      v
 Dashboard DB   Cloud

Arsitektur seperti ini dapat menjadi dasar sistem Industrial IoT (IIoT).


32. Apa yang Harus Dipelajari untuk Bisa MQTT?

Jika ingin benar-benar bisa menggunakan MQTT, jangan hanya menghafalkan definisinya.

Pelajari secara bertahap.

Level 1 — Konsep

Pahami:

  • MQTT
  • Broker
  • Publisher
  • Subscriber
  • Topic
  • Payload

Level 2 — Praktik

Belajar:

  • Membuat MQTT Broker
  • Connect ke Broker
  • Publish message
  • Subscribe message
  • Membuat topic
  • Mengirim JSON

Level 3 — Advanced

Pelajari:

  • QoS
  • Retained Message
  • LWT
  • Authentication
  • ACL
  • TLS
  • MQTT over Internet

Level 4 — Industrial IoT

Pelajari integrasi:

PLC
 ↓
Gateway
 ↓
MQTT
 ↓
Server
 ↓
Database
 ↓
Dashboard

33. Software yang Bisa Digunakan untuk Belajar

Untuk belajar MQTT, salah satu kombinasi yang sederhana adalah:

MQTT Broker:

Mosquitto

MQTT Client:

MQTT Explorer atau aplikasi MQTT client lainnya.

Dengan dua software tersebut kita sudah dapat melakukan simulasi:

PC 1
Publisher
   |
   v
MQTT Broker
   |
   v
PC 2
Subscriber

Bahkan semua komponen tersebut dapat dijalankan pada satu komputer untuk latihan.


34. Latihan MQTT Pertama

Cobalah membuat topic:

belajar/mqtt/temperature

Kemudian lakukan publish:

25

Subscriber melakukan subscribe:

belajar/mqtt/temperature

Jika berhasil, subscriber akan menerima:

25

Selanjutnya ubah payload menjadi:

26
27
28
29
30

Jika subscriber menerima perubahan tersebut, berarti konsep dasar MQTT sudah berhasil dipahami.


35. Latihan MQTT Menggunakan JSON

Selanjutnya coba kirim:

{
  "temperature": 30,
  "humidity": 70
}

Gunakan topic:

belajar/mqtt/sensor

Subscriber menerima data:

Temperature = 30°C
Humidity = 70%

Ini merupakan dasar komunikasi data IoT.


36. Dari Simulasi Menuju Sistem Industri

Setelah memahami MQTT secara sederhana, kita dapat mengganti publisher dengan perangkat nyata.

Misalnya:

Simulasi
   ↓
PC Publisher

diganti menjadi:

PLC
   ↓
MQTT Gateway

Kemudian subscriber:

PC MQTT Client

diganti menjadi:

Web Dashboard

Sehingga menjadi:

PLC
 ↓
MQTT Gateway
 ↓
MQTT Broker
 ↓
Web Dashboard

Pada tahap ini MQTT sudah mulai digunakan sebagai bagian dari sistem Industrial IoT.


37. Kesalahan yang Sering Dilakukan Pemula

1. Menganggap MQTT adalah database

MQTT bukan database.

MQTT adalah protokol komunikasi.


2. Menganggap Publisher harus mengetahui Subscriber

Tidak perlu.

Publisher cukup mengetahui Broker dan topic.


3. Membuat topic tidak terstruktur

Contoh:

temp1
temp2
temp3

Untuk sistem kecil mungkin tidak masalah.

Tetapi untuk sistem industri besar sebaiknya gunakan struktur:

factory/line1/machine1/temperature

4. Tidak memperhatikan keamanan

Jangan membuka MQTT Broker ke internet tanpa konfigurasi keamanan yang benar.


5. Mengirim terlalu banyak data

Tidak semua data PLC harus dikirim setiap scan.

Data sebaiknya dikirim berdasarkan kebutuhan.

Contohnya:

Temperature → setiap 1 detik
Production → ketika counter berubah
Alarm → ketika terjadi alarm
Machine Status → ketika status berubah

Strategi ini dapat mengurangi traffic dan beban sistem.


38. Kesimpulan

MQTT merupakan salah satu protokol penting dalam dunia IoT dan Industrial IoT.

Konsep dasarnya sebenarnya sederhana:

Publisher
    ↓
MQTT Broker
    ↓
Subscriber

Publisher mengirim data.

Broker menerima dan mendistribusikan data.

Subscriber menerima data sesuai topic yang di-subscribe.

Jika konsep berikut sudah dipahami:

  • Publisher
  • Subscriber
  • Broker
  • Topic
  • Payload
  • Publish
  • Subscribe
  • QoS
  • Retained Message
  • LWT
  • Security

maka kita sudah memiliki dasar yang kuat untuk mulai membangun sistem MQTT.

Tahap selanjutnya adalah menghubungkan MQTT dengan perangkat nyata seperti:

Sensor
   ↓
PLC
   ↓
Gateway
   ↓
MQTT Broker
   ↓
Database
   ↓
Dashboard

Dari sinilah MQTT mulai menjadi sangat menarik karena dapat digunakan untuk membangun sistem monitoring mesin, production monitoring, energy monitoring, smart farming, smart building, hingga Industrial IoT.

Belajar MQTT bukan sekadar memahami protokolnya, tetapi memahami bagaimana data dari perangkat lapangan dapat dikirim, diproses, disimpan, dan ditampilkan menjadi informasi yang berguna.