Protokol IoT: HTTP, MQTT, CoAP — Bahasa Universal Perangkat IoT
📋 Daftar Isi
Daftar Isi
- Apa Itu Protokol IoT?
- HTTP: Protokol Web Paling Populer
- MQTT: Protokol Khusus IoT
- CoAP: Alternatif Ringan untuk Perangkat Terbatas
- Perbandingan Lengkap HTTP vs MQTT vs CoAP
- Kapan Pakai Protokol yang Mana?
- Protokol Lain yang Perlu Kamu Tahu
- Kesimpulan
Kalau kamu baca artikel tentang arsitektur IoT, kamu pasti ingat network layer — lapisan yang bertanggung jawab mengirim data dari sensor ke server. Tapi pertanyaan besarnya: dengan “bahasa” apa data itu dikirim?
Bayangin dua orang yang beda negara. Satu cuma bisa bahasa Indonesia, satu lagi cuma bahasa Jepang. Mau ngobrol semau apa pun, mereka tetap butuh penerjemah — atau setidaknya satu bahasa yang sama-sama mereka pahami.
Nah, protokol komunikasi adalah penerjemah itu. Protokol adalah aturan dan format yang disepakati supaya perangkat IoT — dari sensor Rp20 ribuan sampai server cloud raksasa — bisa saling ngerti.
Di artikel ini, kita bakal bahas 3 protokol utama yang mendominasi dunia IoT: HTTP, MQTT, dan CoAP. Plus bonus protokol lain yang mungkin kamu temui di perjalanan IoT-mu.
Apa Itu Protokol IoT?
Sebelum masuk ke detail, penting paham dulu kenapa protokol itu perlu.
Dalam sistem IoT atau Internet of Things, ada banyak jenis perangkat: sensor suhu DHT11, mikrokontroler ESP32, server Raspberry Pi, hingga cloud AWS. Masing-masing punya kemampuan berbeda:
| Aspek | Sensor Kecil | Server Cloud |
|---|---|---|
| Daya | Batterai kecil (bisa habis 3 bulan) | Listrik 24/7 |
| CPU | 80 MHz — 240 MHz | Ratusan GHz |
| RAM | 4 KB — 520 KB | Gigabytes |
| Bandwidth | Terbatas (LoRa: 50 bps) | Tak terbatas (Gigabit) |
Karena perbedaan itu, satu protokol nggak cocok untuk semua. HTTP yang berfungsi baik di website bisa jadi terlalu boros buat sensor batterai. MQTT yang ringan mungkin nggak punya fitur keamanan secanggih HTTPS.
Maka lahirlah berbagai protokol — masing-masing dengan trade-off sendiri: ada yang prioritasin kecepatan, ada yang prioritasin kehematan daya, ada yang prioritasin keamanan.
HTTP: Protokol Web Paling Populer
HTTP (HyperText Transfer Protocol) adalah protokol paling tua dan paling dikenal di internet. Setiap kali kamu buka website, HTTP-lah yang bekerja di belakang layar.
Cara Kerja HTTP
Model komunikasi HTTP disebut request-response: klien (browser, aplikasi, atau perangkat IoT) mengirim permintaan ke server, lalu server mengembalikan respons. Simpel.
Sensor Suhu ──GET /suhu──→ Server
←─200 OK {27°C}──
HTTP di IoT — Cocok atau Tidak?
| Kelebihan | Kekurangan |
|---|---|
| ✅ Sederhana — semua programmer paham | ❌ Boros daya — koneksi TCP tiap request |
| ✅ Banyak tool & library | ❌ Boros bandwidth — header HTTP besar (400-800 byte) |
| ✅ HTTPS untuk keamanan | ❌ Bukan real-time — klien harus polling (tanya terus) |
| ✅ Stateless — mudah di-scale | ❌ Satu arah — server nggak bisa kirim data sendiri |
Kapan Pakai HTTP di IoT?
HTTP cocok untuk:
- Perangkat dengan daya besar — seperti Raspberry Pi, gateway, atau server
- Data yang jarang dikirim — misal log harian atau laporan mingguan
- Integrasi dengan web API — REST API endpoint, webhook
- Prototyping cepat — karena paling mudah diimplementasikan
Contoh nyata: ESP32-CAM yang ngirim gambar ke server via HTTP POST. Atau Raspberry Pi yang melaporkan statistik harian ke dashboard.
MQTT: Protokol Khusus IoT
MQTT (Message Queuing Telemetry Transport) adalah protokol yang dirancang khusus untuk IoT. Diciptakan oleh IBM tahun 1999 untuk memonitor pipa minyak lewat satelit — jadi udah teruji di lingkungan dengan bandwidth super terbatas.
Cara Kerja MQTT — Model Pub/Sub
Berbeda dengan HTTP yang modelnya request-response, MQTT menggunakan publish-subscribe (pub/sub). Ada tiga aktor:
┌─────────────────────┐
│ MQTT Broker │
│ (Server Tengah) │
└──┬──────────────┬────┘
│ │
publish │ │ subscribe
suhu/27°C│ │ "suhu/ruangan"
│ │
┌────┴────┐ ┌────┴────┐
│ Sensor │ │ Aplikasi│
│ ESP8266 │ │ Android │
└─────────┘ └─────────┘
| Peran | Fungsi | Analogi |
|---|---|---|
| Publisher | Mengirim data ke broker (tema tertentu) | Penyiar radio yang ngomong di frekuensi tertentu |
| Broker | Menerima dan mendistribusikan data | Stasiun radio yang memancarkan sinyal |
| Subscriber | Mendaftar ke tema tertentu untuk terima data | Pendengar radio yang setel frekuensi tertentu |
Keajaiban MQTT: Publisher dan subscriber nggak perlu saling kenal. Sensor ESP8266 di kamar nge-publish suhu ke topik rumah/kamar/suhu. Aplikasi HP subscribe ke rumah/# — otomatis nerima semua data dari semua ruangan. Sensor baru tinggal publish ke topik baru, langsung terdeteksi.
Fitur Unggulan MQTT
| Fitur | Penjelasan | Kenapa Penting? |
|---|---|---|
| QoS (Quality of Service) | 3 level jaminan pengiriman: 0 (fire & forget), 1 (minimal sekali), 2 (tepat sekali) | Sensor kritis (alarm koban) butuh QoS 2; sensor suhu biasa cukup QoS 0 |
| Last Will & Testament | Pesan otomatis saat perangkat putus koneksi | Tahu kapan sensor mati atau batterai habis |
| Retained Message | Pesan terakhir disimpan di broker | Subscriber baru langsung dapat data terbaru tanpa nunggu |
| Keep Alive | Koneksi tetap hidup dengan ping berkala | Hemat daya, nggak perlu sambung-putus tiap kirim data |
| TLS/SSL | Enkripsi ujung ke ujung | Aman dari penyadapan |
Contoh Kode: ESP32 Publish Suhu via MQTT
#include <WiFi.h>
#include <PubSubClient.h>
const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
// Konek WiFi dan MQTT broker
client.setServer(mqtt_server, 1883);
}
void loop() {
float suhu = bacaSensorDHT11();
// Publish suhu ke topik "rumah/kamar/suhu"
char payload[8];
dtostrf(suhu, 6, 2, payload);
client.publish("rumah/kamar/suhu", payload);
delay(60000); // Kirim tiap 1 menit
}
Header MQTT cuma 2 byte — bandingkan dengan HTTP yang bisa 400-800 byte. Untuk jaringan lambat atau kuota terbatas, ini perbedaan besar.
MQTT banyak dipakai di perangkat seperti ESP32 karena ringan dan hemat daya.
CoAP: Alternatif Ringan untuk Perangkat Terbatas
CoAP (Constrained Application Protocol) adalah protokol yang dirancang untuk perangkat dengan resource super terbatas — mikrokontroler 8-bit, RAM 4KB, daya batterai yang harus tahan bertahun-tahun.
Cara Kerja CoAP
CoAP menggunakan model request-response seperti HTTP, tapi lewat UDP (bukan TCP). Ini perbedaan krusial:
┌──────────────────────────────────────────────┐
│ HTTP: TCP (3-way handshake dulu) │
│ ──SYN──► ──SYN-ACK──► ──ACK──► ──DATA──► │
│ │
│ CoAP: UDP (langsung kirim) │
│ ──CON: GET /suhu──► ──ACK: 27°C──► │
└──────────────────────────────────────────────┘
Dengan UDP, CoAP nggak perlu jabat tangan dulu. Kirim langsung. Ini menghemat daya dan bandwidth secara dramatis.
Fitur Unik CoAP
| Fitur | Penjelasan |
|---|---|
| UDP-based | Tanpa koneksi, kirim langsung — hemat daya & bandwidth |
| GET/POST/PUT/DELETE | Mirip HTTP, pakai method REST familiar |
| Observe | Klien bisa “langganan” perubahan data (mirip subscribe MQTT) |
| Resource Discovery | Bisa nyari tahu resource apa aja yang tersedia di perangkat target |
| Konfirmasi (CON/NON) | CON: butuh ACK (confirmed), NON: kirim sekali aja (unconfirmed) |
| Block Transfer | Kirim data besar dengan dipecah jadi beberapa paket |
CoAP vs HTTP — Mirip Tapi Beda
| Aspek | HTTP | CoAP |
|---|---|---|
| Transport | TCP | UDP |
| Header size | ~400-800 byte | ~4 byte |
| Handshake | 3 langkah (SYN-SYN/ACK-ACK) | Nol — langsung kirim |
| Method | GET, POST, PUT, DELETE | GET, POST, PUT, DELETE |
| Security | TLS (HTTPS) | DTLS (Datagram TLS) |
| Caching | Built-in dengan header Cache-Control | Built-in (mirip HTTP) |
CoAP cocok untuk perangkat batterai yang harus hidup bertahun-tahun — seperti sensor di tengah sawah, pemantau jembatan, atau alat ukur di kutub.
Perbandingan Lengkap HTTP vs MQTT vs CoAP
| Aspek | HTTP | MQTT | CoAP |
|---|---|---|---|
| Model Komunikasi | Request-Response | Publish-Subscribe | Request-Response |
| Transport | TCP | TCP | UDP |
| Header Size | ~400-800 byte | 2 byte | ~4 byte |
| Jabatan Tangan | 3 langkah | Minimal (keep-alive) | Tidak ada |
| Baterai | Boros | Hemat | Sangat hemat |
| Bandwidth | Tinggi | Rendah | Sangat rendah |
| Real-time | ❌ (harus polling) | ✅ (push otomatis) | ✅ (observe) |
| Keamanan | TLS (HTTPS) | TLS/SSL | DTLS |
| Skalabilitas | Baik | Sangat baik (banyak client) | Terbatas (jaringan lokal) |
| Kemudahan Implementasi | Sangat mudah | Mudah | Sedang |
| Cocok untuk | Web, REST API, server | Sensor, smart home, real-time monitoring | Perangkat batterai, jaringan terbatas |
Kapan Pakai Protokol yang Mana?
Pertanyaan paling praktis: saya mau bikin proyek IoT, pakai yang mana?
| Situasi | Protokol Terbaik | Alasan |
|---|---|---|
| Smart home (lampu pintar, sensor pintu) | MQTT | Pub/sup cocok untuk banyak perangkat, QoS untuk keandalan |
| Dashboard web (grafik suhu real-time) | MQTT + WebSocket | MQTT broker + frontend subscribe langsung |
| Sensor sawah / outdoor (batterai setahun) | CoAP | UDP hemat daya, header minimal |
| Kirim gambar dari kamera | HTTP | File besar cocok HTTP, CoAP/MQTT terlalu lambat |
| Prototype / belajar | HTTP | Paling mudah, dokumentasi melimpah |
| Notifikasi real-time (alarm kebakaran) | MQTT QoS 2 | Jaminan terkirim tepat sekali |
| Integrasi REST API (cuaca, jadwal) | HTTP | Karena semua API publik pake HTTP |
Contoh Skenario Nyata: Smart Home Sederhana
┌────────────────────┐
│ MQTT Broker │
│ (Raspberry Pi) │
└──┬──────┬──────┬───┘
│ │ │
publish ┌──────┘ │ └──────┐ subscribe
suhu/kamar │ publish │
┌───┴────┐ suhu/taman ┌────┴────┐
│ESP8266 │ │ │Android │
│Sensor │ ┌────┴────┐ │App │
│DHT22 │ │ESP32 │ │Dashboard│
└────────┘ │Solar │ └─────────┘
│ + BME280│
└────────┘
(CoAP untuk hemat daya)
Di skenario ini, sensor outdoor (batterai) pakai CoAP lewat gateway, sensor indoor (listrik) pakai MQTT, dan aplikasi HP subscribe ke broker buat dapet semua data. Efisien dan fleksibel.
Protokol Lain yang Perlu Kamu Tahu
Selain 3 protokol utama di atas, ada beberapa protokol lain yang sering muncul di ekosistem IoT:
| Protokol | Transport | Cocok Untuk |
|---|---|---|
| AMQP (Advanced Message Queuing Protocol) | TCP | Enterprise IoT, sistem antrean pesan skala besar |
| WebSocket | TCP (over HTTP) | Dashboard real-time, komunikasi dua arah di web |
| LoRaWAN | Radio LoRa | Jaringan IoT jarak jauh (>10km), perangkat batterai |
| Zigbee | 802.15.4 | Smart home mesh network, lampu & saklar pintar |
| BLE (Bluetooth Low Energy) | BLE Radio | Perangkat wearable, beacon, smart lock |
| Modbus | Serial (RS-485) / TCP | Industri pabrik, PLC, SCADA |
Kesimpulan
| Aspek | Intinya |
|---|---|
| Protokol adalah bahasa universal IoT | Tanpa protokol, perangkat beda vendor nggak bisa ngobrol |
| HTTP itu jago web, tapi boros IoT | Paling mudah dipelajari, tapi boros daya & bandwidth |
| MQTT — raja IoT untuk real-time | Pub/sub model, header 2 byte, cocok smart home & monitoring |
| CoAP — pilihan hemat ekstrem | UDP-based, header 4 byte, untuk perangkat batterai tahunan |
| Tidak ada protokol terbaik mutlak | Pilih berdasarkan: daya, bandwidth, latensi, dan kebutuhan |
Pemilihan protokol yang tepat bisa jadi penentu sukses-gagalnya proyek IoT. Sensor sawah yang pake HTTP bakal habis batterai dalam seminggu. Tapi smart speaker yang pake CoAP bakal lambat streaming musik. Sesuaikan dengan kebutuhan.
Kalau kamu baru mulai, rekomendasi saya: mulai dengan MQTT. Protokol ini paling seimbang antara kemudahan, efisiensi, dan fitur. Coba pakai ESP32 dengan library PubSubClient, hubungkan ke broker gratis kayak HiveMQ atau Mosquitto, dan kamu sudah punya sistem IoT real-time dalam 30 menit.
Related Posts
- Apa Itu IoT? Internet untuk Segala Benda — Pahami konsep dasar IoT sebelum masuk ke protokol
- Arsitektur IoT: 4 Lapisan yang Saling Terhubung — Network layer adalah rumah dari protokol-protokol ini
- ESP32: Mikrokontroler IoT Paling Populer — Praktik langsung menggunakan MQTT di ESP32