Kembali ke Katalog Modul
MODUL 11 DEEP DIVE

Protokol MQTT Dasar (Pub, Sub, Broker, QoS)

MODUL 11 (SPESIALIS IOT): PROTOKOL MQTT DASAR


๐Ÿ“Œ META MODUL & PRASYARAT

  • Bidang Spesialisasi: Lightweight Telemetry Transport Protocols.
  • Target Pembaca: Pembelajar yang sudah menguasai REST API & JSON (Modul 10).
  • Learning Outcome:
  • Memahami arsitektur MQTT (Message Queuing Telemetry Transport).
  • Mampu membedakan Publish, Subscribe, Topic, dan MQTT Broker.
  • Memahami tingkatan QoS (Quality of Service) 0, 1, dan 2.
  • Mampu menggunakan Retain Flag dan Will Message (Last Will and Testament).
  • Estimasi Waktu Belajar: 120 Menit.
  • Tingkat Kesulitan: ๐ŸŸข Pemula - Menengah (Level 11 / 40).
  • Prasyarat: Modul 10 (REST API & Parsing Data JSON).

๐Ÿ“š GLOSARIUM & DAFTAR ISTILAH BARU

IstilahDefinisi SederhanaAnalogi
MQTT BrokerServer pusat penyalur pesan MQTT yang menerima pesan dari pengirim dan meneruskannya ke penerima.Kantor pos pusat penyortir surat.
Publish (Pub)Tindakan mengirimkan data/pesan dari perangkat ke MQTT Broker pada Topic tertentu.Mengirim surat ke kotak pos.
Subscribe (Sub)Tindakan mendaftarkan diri ke MQTT Broker untuk menerima pesan otomatis setiap kali Topic tertentu diperbarui.Berlangganan koran harian yang diantar ke rumah.
TopicString alamat hirarkis berformat / untuk mengkategorikan pesan (misal: pabrik/mesin1/suhu).Nama kanal / Channel YouTube.
QoS (Quality of Service)Tingkat jaminan kepastian pengiriman pesan antara Publisher dan Broker (QoS 0, QoS 1, QoS 2).Jenis jaminan kiriman (Pos Biasa, Pos Kilat Khusus, Pos Sertifikat Tanda Terima).

11. Protokol MQTT Dasar

๐Ÿง  ARSITEKTUR PUBLISH / SUBSCRIBE MQTT

=======================================================================
ARSITEKTUR PUBLISH - SUBSCRIBE MQTT
=======================================================================

[ ESP32 SENSOR SUHU ] โ”€โ”€โ”€โ”€ (PUBLISH Topic: "kebun/suhu", Payload: "28.5") โ”€โ”€โ”€โ”€โ”
โ”‚
โ–ผ
[ MQTT BROKER PUSAT ]
(EMQX / Mosquitto)
โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ (Meneruskan ke semua Subscriber terdaftar) โ”‚
โ–ผ โ–ผ
[ DASHBOARD WEB ] (SUBSCRIBE "kebun/suhu") [ SMARTPHONE GURU ] (SUBSCRIBE "kebun/suhu")
(Menerima: "28.5" -> Render Grafik) (Menerima: "28.5" -> Tampil Notifikasi)

๐Ÿ“‹ TABEL TINGKATAN QOS (QUALITY OF SERVICE) MQTT

Level QoSPenjelasanJaminan PengirimanPenggunaan Utama
QoS 0 (At most once)Kirim lalu lupakan (Fire and forget). Tidak ada tanda terima.Sinyal bisa hilang jika jaringan putus.Data telemetri sensor rutin per detik (misal suhu).
QoS 1 (At least once)Kirim berulang kali sampai diterima. Pesan dijamin sampai min 1x.Pesan bisa terduplikasi.Status alarm kebakaran atau perintah sakelar relay.
QoS 2 (Exactly once)Handshake 4 arah. Pesan dijamin sampai tepat 1x saja tanpa duplikat.Sangat aman tapi menggunakan bandwidth paling tinggi.Transaksi keuangan atau kunci pintu otomatis.

โšก CHEAT SHEET KODE PUBSUBCLIENT ESP32 MQTT

#include <WiFi.h>
#include <PubSubClient.h>

const char mqtt_server = "broker.emqx.io"; // Broker Publik Gratis
WiFiClient espClient;
PubSubClient client(espClient);

void callback(char
topic, byte* payload, unsigned int length) {
String message = "";
for (int i = 0; i < length; i++) { message += (char)payload[i]; }
Serial.printf("Pesan diterima pada Topic [%s]: %s\n", topic, message.c_str());
}

void setup() {
Serial.begin(115200);
WiFi.begin("SSID", "PASS");
while (WiFi.status() != WL_CONNECTED) { delay(500); }

client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}

void loop() {
if (!client.connected()) {
if (client.connect("ESP32_Client_Unique_ID")) {
Serial.println("Terhubung ke MQTT Broker!");
client.subscribe("rumah/ruang1/lampu"); // Subscribe topic perintah
}
}
client.loop(); // Wajib dipanggil terus untuk menjaga koneksi MQTT
}



Latihan & Quiz Evaluasi Modul

Progres Quiz: 0 / 2 Soal
SOAL #1
Mengapa MQTT jauh lebih disukai daripada HTTP untuk komunikasi sensor IoT bertenaga baterai?
SOAL #2
Apakah istilah tindakan yang dilakukan ESP32 untuk mendaftarkan diri menerima update data dari topik tertentu secara real-time pada MQTT Broker?

Kunci Jawaban & Pembahasan

Kunci Jawaban: 1. a. Header sangat kecil & persistent socket, 2. b. Subscribe.


Apakah Anda siap lanjut ke Modul 12: Arsitektur MQTT Broker (Mosquitto & EMQX)?