Intinya
Gunakan MQTT untuk perangkat IoT dengan baterai terbatas, jaringan tidak stabil, atau pola pesan pub-sub. Gunakan HTTP untuk API web/seluler standar. MQTT menggunakan header 2-byte dibandingkan HTTP yang 100+ byte, menjadikannya ideal untuk perangkat terbatas. Modern PetstoreAPI mengimplementasikan MQTT untuk kalung pelacak hewan peliharaan dan pengumpan pintar.
Pendahuluan
Kalung pelacak hewan peliharaan Anda perlu mengirimkan pembaruan lokasi setiap 5 menit. Kalung ini menggunakan baterai koin yang seharusnya bertahan 6 bulan. Menggunakan HTTP, baterai habis dalam 2 minggu. Menggunakan MQTT, baterai bertahan penuh 6 bulan.
HTTP adalah standar untuk API, tetapi dirancang untuk peramban web, bukan perangkat IoT. MQTT (Message Queuing Telemetry Transport) dibangun untuk perangkat terbatas dengan bandwidth terbatas dan jaringan tidak stabil.
Modern PetstoreAPI menggunakan HTTP untuk aplikasi web dan seluler, tetapi MQTT untuk perangkat IoT: kalung pelacak hewan peliharaan, pengumpan pintar, dan monitor kesehatan.
Dalam panduan ini, Anda akan mempelajari kapan MQTT mengungguli HTTP, melihat contoh nyata dari Modern PetstoreAPI, dan menemukan cara memilih protokol yang tepat untuk kasus penggunaan Anda.
Apa Itu MQTT?
MQTT adalah protokol pesan pub-sub ringan yang dirancang untuk IoT.
Cara Kerja MQTT
Perangkat menerbitkan pesan ke topik. Perangkat lain berlangganan topik:
Publisher (Pet Collar):
Topic: pets/019b4132/location
Payload: {"lat":37.7749,"lng":-122.4194,"battery":85}
Subscriber (Mobile App):
Subscribe to: pets/019b4132/location
Receives: {"lat":37.7749,"lng":-122.4194,"battery":85}
Broker MQTT berada di tengah, mengarahkan pesan dari penerbit ke pelanggan.
Fitur-Fitur Utama MQTT
1. Header kecil - MQTT: 2 byte, HTTP: 100-500 byte
2. Koneksi persisten - MQTT menjaga koneksi tetap terbuka
3. Quality of Service (QoS) - QoS 0/1/2 untuk jaminan pengiriman
4. Last Will - Pesan dikirim jika perangkat terputus secara tak terduga
5. Pesan yang disimpan - Broker menyimpan pesan terakhir untuk pelanggan baru
Perbandingan MQTT vs HTTP
| Fitur | MQTT | HTTP |
|---|---|---|
| Ukuran Header | 2 byte | 100-500 byte |
| Pola | Pub-Sub (Penerbit-Pelanggan) | Request-Response (Permintaan-Respons) |
| Koneksi | Persisten | Per-permintaan |
| Bandwidth | Sangat rendah | Lebih tinggi |
| Dampak Baterai | Minimal | Signifikan |
| Dukungan Browser | Via WebSocket | Bawaan |
Contoh Bandwidth
1000 pembaruan lokasi per hari:
- HTTP: 420 KB setiap hari, 12.6 MB setiap bulan
- MQTT: 52 KB setiap hari, 1.56 MB setiap bulan
MQTT menggunakan bandwidth 8x lebih sedikit.
Kapan MQTT Unggul
1. Perangkat IoT dengan Baterai Terbatas
Kalung pelacak hewan peliharaan:
- MQTT: Daya tahan baterai 6 bulan
- HTTP: Daya tahan baterai 2 minggu
Mengapa: Koneksi persisten, header kecil, waktu radio lebih sedikit.
2. Jaringan Tidak Andal
Perangkat IoT seluler dengan jangkauan tidak merata:
- QoS untuk jaminan pengiriman
- Sambung ulang otomatis
- Persistensi sesi
3. Komunikasi Banyak-ke-Banyak
Skenario pengumpan hewan peliharaan pintar:
Feeder 1 → pets/019b4132/feeding
Feeder 2 → pets/019b4127/feeding
App 1 → subscribes to pets/+/feeding (all pets)
App 2 → subscribes to pets/019b4132/feeding (one pet)
4. Data Sensor Real-Time
Monitor kesehatan hewan peliharaan mengirimkan pembaruan setiap detik:
- Koneksi persisten (tanpa overhead)
- Latensi minimal
- Efisiensi untuk pembaruan frekuensi tinggi
Kapan HTTP Unggul
1. Aplikasi Web/Seluler Standar
HTTP bersifat universal:
- Setiap bahasa memiliki pustaka HTTP
- Browser mendukungnya secara bawaan
- Proksi dan firewall mengizinkannya
2. Pola Permintaan-Respons
Mendapatkan detail hewan peliharaan:
GET /pets/019b4132
200 OK
{"name":"Fluffy","species":"CAT"}
HTTP lebih sederhana untuk permintaan-respons.
3. Persyaratan Caching
Caching HTTP berfungsi langsung:
- Caching browser
- Caching CDN
- Caching proxy
MQTT tidak memiliki caching.
4. API RESTful
Kode status, metode, dan semantik HTTP:
- 200 OK, 404 Not Found, 201 Created
- GET, POST, PUT, DELETE
- Penanganan kesalahan standar
Bagaimana Modern PetstoreAPI Menggunakan MQTT
Modern PetstoreAPI mengimplementasikan MQTT untuk perangkat IoT.
Kalung Pelacak Hewan Peliharaan
Kalung menerbitkan lokasi:
Topic: pets/019b4132/location
QoS: 1 (at least once)
Payload: {
"lat": 37.7749,
"lng": -122.4194,
"battery": 85,
"timestamp": "2026-03-13T10:30:00Z"
}
Aplikasi seluler berlangganan:
const mqtt = require('mqtt');
const client = mqtt.connect('mqtts://mqtt.petstoreapi.com');
client.subscribe('pets/019b4132/location');
client.on('message', (topic, message) => {
const location = JSON.parse(message);
updateMap(location.lat, location.lng);
});
Pengumpan Pintar
Pengumpan berlangganan jadwal:
Topic: pets/019b4132/feeding-schedule
Retained: true
Payload: {
"times": ["08:00", "18:00"],
"amount": 100
}
Pengumpan menerbitkan acara pemberian makan:
Topic: pets/019b4132/feeding-events
Payload: {
"timestamp": "2026-03-13T08:00:15Z",
"amount": 100,
"dispensed": true
}
Monitor Kesehatan
Monitor menerbitkan tanda vital:
Topic: pets/019b4132/health
QoS: 0 (fire and forget, high frequency)
Payload: {
"heartRate": 120,
"temperature": 38.5,
"activity": "resting"
}
Menguji MQTT dengan Apidog
Apidog mendukung pengujian MQTT bersama dengan HTTP dan protokol lainnya.
Uji MQTT Pub-Sub
- Terhubung ke broker MQTT
- Berlangganan topik
- Terbitkan pesan uji
- Validasi format pesan
- Uji tingkat QoS
Simulasikan Kegagalan Jaringan
- Uji logika sambung ulang
- Verifikasi pengiriman QoS 1/2
- Periksa pesan Last Will
- Validasi persistensi sesi
Bandingkan dengan HTTP
Uji fungsionalitas yang sama dengan kedua protokol:
- Ukur penggunaan bandwidth
- Bandingkan latensi
- Verifikasi konsistensi data
Kesimpulan
MQTT dan HTTP melayani tujuan yang berbeda. Gunakan MQTT untuk perangkat IoT dengan sumber daya terbatas. Gunakan HTTP untuk API web/seluler standar.
Modern PetstoreAPI menunjukkan cara menggunakan keduanya: HTTP untuk API yang berhadapan dengan pengguna, MQTT untuk perangkat IoT. Protokol yang tepat bergantung pada batasan Anda, bukan mana yang "lebih baik."
Uji kedua protokol dengan Apidog untuk menemukan yang paling cocok untuk kasus penggunaan Anda.
FAQ
Bisakah MQTT bekerja melalui HTTP?
MQTT dapat berjalan melalui WebSocket, yang bekerja melalui HTTP. Ini membantu melewati firewall tetapi kehilangan beberapa manfaat efisiensi MQTT.
Apa itu tingkat QoS MQTT?
- QoS 0: Paling banyak sekali (tanpa pengakuan)
- QoS 1: Setidaknya sekali (diakui, mungkin duplikat)
- QoS 2: Tepat sekali (terjamin, tanpa duplikat)
Apakah MQTT aman?
Ya, MQTT mendukung enkripsi TLS (MQTTS) dan autentikasi nama pengguna/kata sandi. Modern PetstoreAPI menggunakan MQTTS untuk semua perangkat IoT.
Bisakah browser menggunakan MQTT?
Browser dapat menggunakan MQTT melalui WebSocket. Pustaka seperti MQTT.js mendukung lingkungan browser.
Bagaimana perbandingan MQTT dengan WebSocket?
MQTT adalah protokol yang dapat berjalan di atas WebSocket. WebSocket adalah lapisan transport. MQTT menambahkan fitur pub-sub, QoS, dan fitur khusus IoT di atas WebSocket.
