Protokol IoT: HTTP, MQTT, CoAP — Bahasa Universal Perangkat IoT

📋 Daftar Isi

Daftar Isi

  1. Apa Itu Protokol IoT?
  2. HTTP: Protokol Web Paling Populer
  3. MQTT: Protokol Khusus IoT
  4. CoAP: Alternatif Ringan untuk Perangkat Terbatas
  5. Perbandingan Lengkap HTTP vs MQTT vs CoAP
  6. Kapan Pakai Protokol yang Mana?
  7. Protokol Lain yang Perlu Kamu Tahu
  8. 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:

AspekSensor KecilServer Cloud
DayaBatterai kecil (bisa habis 3 bulan)Listrik 24/7
CPU80 MHz — 240 MHzRatusan GHz
RAM4 KB — 520 KBGigabytes
BandwidthTerbatas (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?

KelebihanKekurangan
✅ Sederhana — semua programmer pahamBoros daya — koneksi TCP tiap request
✅ Banyak tool & libraryBoros bandwidth — header HTTP besar (400-800 byte)
✅ HTTPS untuk keamananBukan real-time — klien harus polling (tanya terus)
✅ Stateless — mudah di-scaleSatu 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 │
                  └─────────┘    └─────────┘
PeranFungsiAnalogi
PublisherMengirim data ke broker (tema tertentu)Penyiar radio yang ngomong di frekuensi tertentu
BrokerMenerima dan mendistribusikan dataStasiun radio yang memancarkan sinyal
SubscriberMendaftar ke tema tertentu untuk terima dataPendengar 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

FiturPenjelasanKenapa 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 & TestamentPesan otomatis saat perangkat putus koneksiTahu kapan sensor mati atau batterai habis
Retained MessagePesan terakhir disimpan di brokerSubscriber baru langsung dapat data terbaru tanpa nunggu
Keep AliveKoneksi tetap hidup dengan ping berkalaHemat daya, nggak perlu sambung-putus tiap kirim data
TLS/SSLEnkripsi ujung ke ujungAman 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

FiturPenjelasan
UDP-basedTanpa koneksi, kirim langsung — hemat daya & bandwidth
GET/POST/PUT/DELETEMirip HTTP, pakai method REST familiar
ObserveKlien bisa “langganan” perubahan data (mirip subscribe MQTT)
Resource DiscoveryBisa nyari tahu resource apa aja yang tersedia di perangkat target
Konfirmasi (CON/NON)CON: butuh ACK (confirmed), NON: kirim sekali aja (unconfirmed)
Block TransferKirim data besar dengan dipecah jadi beberapa paket

CoAP vs HTTP — Mirip Tapi Beda

AspekHTTPCoAP
TransportTCPUDP
Header size~400-800 byte~4 byte
Handshake3 langkah (SYN-SYN/ACK-ACK)Nol — langsung kirim
MethodGET, POST, PUT, DELETEGET, POST, PUT, DELETE
SecurityTLS (HTTPS)DTLS (Datagram TLS)
CachingBuilt-in dengan header Cache-ControlBuilt-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

AspekHTTPMQTTCoAP
Model KomunikasiRequest-ResponsePublish-SubscribeRequest-Response
TransportTCPTCPUDP
Header Size~400-800 byte2 byte~4 byte
Jabatan Tangan3 langkahMinimal (keep-alive)Tidak ada
BateraiBorosHematSangat hemat
BandwidthTinggiRendahSangat rendah
Real-time❌ (harus polling)✅ (push otomatis)✅ (observe)
KeamananTLS (HTTPS)TLS/SSLDTLS
SkalabilitasBaikSangat baik (banyak client)Terbatas (jaringan lokal)
Kemudahan ImplementasiSangat mudahMudahSedang
Cocok untukWeb, REST API, serverSensor, smart home, real-time monitoringPerangkat batterai, jaringan terbatas

Kapan Pakai Protokol yang Mana?

Pertanyaan paling praktis: saya mau bikin proyek IoT, pakai yang mana?

SituasiProtokol TerbaikAlasan
Smart home (lampu pintar, sensor pintu)MQTTPub/sup cocok untuk banyak perangkat, QoS untuk keandalan
Dashboard web (grafik suhu real-time)MQTT + WebSocketMQTT broker + frontend subscribe langsung
Sensor sawah / outdoor (batterai setahun)CoAPUDP hemat daya, header minimal
Kirim gambar dari kameraHTTPFile besar cocok HTTP, CoAP/MQTT terlalu lambat
Prototype / belajarHTTPPaling mudah, dokumentasi melimpah
Notifikasi real-time (alarm kebakaran)MQTT QoS 2Jaminan terkirim tepat sekali
Integrasi REST API (cuaca, jadwal)HTTPKarena 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:

ProtokolTransportCocok Untuk
AMQP (Advanced Message Queuing Protocol)TCPEnterprise IoT, sistem antrean pesan skala besar
WebSocketTCP (over HTTP)Dashboard real-time, komunikasi dua arah di web
LoRaWANRadio LoRaJaringan IoT jarak jauh (>10km), perangkat batterai
Zigbee802.15.4Smart home mesh network, lampu & saklar pintar
BLE (Bluetooth Low Energy)BLE RadioPerangkat wearable, beacon, smart lock
ModbusSerial (RS-485) / TCPIndustri pabrik, PLC, SCADA

Kesimpulan

AspekIntinya
Protokol adalah bahasa universal IoTTanpa protokol, perangkat beda vendor nggak bisa ngobrol
HTTP itu jago web, tapi boros IoTPaling mudah dipelajari, tapi boros daya & bandwidth
MQTT — raja IoT untuk real-timePub/sub model, header 2 byte, cocok smart home & monitoring
CoAP — pilihan hemat ekstremUDP-based, header 4 byte, untuk perangkat batterai tahunan
Tidak ada protokol terbaik mutlakPilih 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.



💬 Komentar