Apa itu Protokol MQTT
Protokol MQTT (Message Queuing Telemetry Transport) adalah protokol komunikasi yang digunakan untuk komunikasi di Internet of Things (IoT) dan jaringan sensor. Protokol ini dirancang untuk mengirimkan pesan dari perangkat ke perangkat lain dengan menggunakan bandwidth yang minim dan dengan latensi yang rendah. MQTT biasanya digunakan dalam skenario di mana koneksi internet tidak selalu stabil atau perangkat memiliki keterbatasan daya atau bandwidth.
Sejarah Singkat Protokol MQTT
Protokol MQTT pertama kali dikembangkan oleh Dr. Andy Stanford-Clark dari IBM dan Arlen Nipper dari Arcom (sekarang Eurotech) pada tahun 1999. Awalnya, protokol ini dirancang untuk memonitor saluran pipa gas dengan menggunakan satelit di sektor minyak dan gas. Protokol ini kemudian dibuka sebagai standar terbuka dan menjadi semakin populer dengan munculnya Internet of Things (IoT).
Pada tahun 2013, OASIS (Organization for the Advancement of Structured Information Standards) mengambil alih standarisasi protokol MQTT. MQTT versi 3.1.1, yang merupakan versi yang paling umum digunakan, dirilis pada tahun 2014. Protokol ini kemudian terus berkembang dan versi terbaru saat ini adalah MQTT v5.0, yang dirilis pada tahun 2019. MQTT v5.0 membawa banyak perbaikan dan fitur baru, membuatnya lebih efisien dan aman untuk digunakan dalam berbagai aplikasi IoT.
Prinsip Protokol MQTT
Protokol MQTT didasarkan pada beberapa prinsip utama, yaitu:
- Ringan (Lightweight): MQTT dirancang untuk memiliki overhead yang minimal, membuatnya cocok untuk digunakan di lingkungan dengan keterbatasan daya dan bandwidth, seperti pada perangkat IoT.
- Publikasi-Subskripsi (Publish-Subscribe): Protokol ini menggunakan model publikasi-subskripsi di mana perangkat yang mengirimkan data (publisher) tidak perlu tahu identitas penerima data (subscriber) secara langsung. Hal ini memungkinkan komunikasi yang fleksibel dan efisien antara banyak perangkat.
- Koneksi Terjaga (Persistent Connection): MQTT mendukung koneksi terjaga antara klien dan broker. Koneksi ini memungkinkan perangkat untuk tetap terhubung dengan broker dan menerima pesan meskipun dalam kondisi jaringan yang tidak stabil.
- QoS (Quality of Service): MQTT mendukung tiga tingkat layanan kualitas (QoS) yang berbeda untuk mengatur seberapa andal pengiriman pesan antara publisher dan subscriber. Tingkat QoS dapat dipilih sesuai dengan kebutuhan aplikasi.
- Tema (Topic): Pesan dalam MQTT diterbitkan ke topik (topic) tertentu. Subscriber dapat menentukan topik mana yang mereka minati dan hanya akan menerima pesan yang diterbitkan ke topik tersebut.
- Retained Message: MQTT mendukung pesan yang bertahan (retained message), yang berarti broker akan menyimpan pesan terakhir yang diterbitkan ke suatu topik dan akan mengirimkannya kepada subscriber baru yang berlangganan topik tersebut.
- Last Will and Testament (LWT): MQTT memungkinkan klien untuk menentukan pesan yang akan dikirimkan oleh broker kepada subscriber lain jika klien tersebut terputus secara tidak terduga. Fitur ini memungkinkan penanganan yang lebih baik untuk kehilangan koneksi.
Cara Kerja Protokol MQTT
Protokol MQTT bekerja dengan cara berikut:
- Klien: Ada dua jenis klien dalam MQTT, yaitu klien penerbit (publisher) dan klien pelanggan (subscriber). Klien penerbit bertanggung jawab untuk mengirimkan pesan ke broker, sedangkan klien pelanggan berlangganan ke topik tertentu untuk menerima pesan.
- Broker: Broker MQTT adalah perantara komunikasi antara klien penerbit dan klien pelanggan. Broker menerima pesan yang diterbitkan oleh klien penerbit dan mengirimkannya kepada klien pelanggan yang berlangganan ke topik yang sesuai.
- Topik (Topic): Pesan dalam MQTT diterbitkan ke topik tertentu. Klien pelanggan dapat berlangganan ke topik tertentu untuk menerima pesan yang diterbitkan ke topik tersebut.
- Kualitas Layanan (Quality of Service/QoS): MQTT mendukung tiga tingkat QoS yang berbeda untuk mengatur seberapa andal pengiriman pesan antara klien penerbit dan klien pelanggan.
- Pesan yang Bertahan (Retained Message): Broker MQTT dapat menyimpan pesan terakhir yang diterbitkan ke suatu topik dan mengirimkannya kepada klien pelanggan baru yang berlangganan topik tersebut.
- Koneksi Terjaga (Persistent Connection): Klien MQTT dapat membuat koneksi terjaga dengan broker, yang memungkinkan mereka tetap terhubung dan menerima pesan meskipun dalam kondisi jaringan yang tidak stabil.
- Terakhir Akan dan Wasiat (Last Will and Testament/LWT): Klien dapat menentukan pesan yang akan dikirimkan oleh broker kepada klien lain jika klien tersebut terputus secara tidak terduga.
Dengan cara kerja ini, MQTT memungkinkan komunikasi yang efisien dan andal antara perangkat IoT dan aplikasi lainnya.