Protokol Message Queue Telemetry Transport atau yang di singkat menjadi MQTT, merupakan protokol yang sedari awalnya dirancang khusus untuk komunikasi “machine to machine“.
Perancang Protokol ini Andy Standford – Clark (IBM) dan Arlen Nipper di tahun 1999, yang semula dibuat untuk menghubungkan sistem telemetri jalur pipa minyak melalui satelit.
Meskipun awalnya MQTT adalah protokol yang bersifat proprietary, namun pada 2010 dirilis dengan lisensi Royalty free, Dan pada tahun 2019 MQTT v5.0 menjadi official OASIS standard.
Protokol MQTT ini sangat mendukung untuk jaringan WAN, karena WAN mencakup area yang luas. Protokol MQTT mempunyai kelebihan yaitu dapat bekerja dengan energi dan media penyimpanan yang minimum.
Pada Protokol MQTT bersifat datasentris, sedangkan Protokol HTTP bersifat dokumensentris.
HTTP yang mana merupakan protokol request-response untuk kebutuhan komputerisasi klien server yang tidak optimal untuk perangkat mobile(device IoT).
MQTT mengirim data sebagai byte array, yang mana ini menjadi kelebihan Kelebihan Protokol MQTT karna kecilnya data yang dikirimkan. Pada saat Protokol MQTT di uji dengan jaringan 3G, Protokol MQTT 93 kali lebih cepat daripada HTTP.
gimana ga cepet ya, Paket Header nya saja hanya 2 byte.
Disamping itu dibandingkan dengan HTTP, MQTT memastikan kemampuan pengiriman lebih tinggi. Ada 3 level Quality of Service (QoS)
Protokol MQTT juga menyediakan pilihan penggunaan dengan opsi Last will & Testament dan Retained Messages.
dengan menggunaan MQTT, Maker dapat mengoptimasi pertukaran data pada sistem IoT agar transfer datanya bisa dilakukan seefisien mungkin, yaitu dengan :
Beberapa istilah penting dalam Protokol MQTT :

1. Publish dan Subscribe
MQTT tidak menggunakan metode client server konvensional. disini protokol MQTT menggunakan metode Publish & Subscribe.
Publisher adalah peran yang memberikan suatu pesan kepada “topik” tertentu. Subscriber yaitu klien yang subscribe suatu topik, sehingga ketika publisher mengirimkan pesan ke topik tersebut, subscriber dengan topik yang sama akan menerima pesan tersebut.
Lalu, yang terakhir yaitu broker, ia berperan sebagai perantara antara publisher dan subscriber. Broker akan meneruskan pesan dari publisher untuk dikonsumsi oleh subscriber.
Jadi, Publish dan Topic ini pengiriman seperti tipe data khusus untuk membagikan atau berlangganan suatu topic.
2. Topic
Jika dianalogikan dengan berlangganan suatu majalah atau koran, topic adalah koran atau majalah tersebut. Misalkan, jika anda berlangganan koran Pikiran Rakyat, tapi anda tidak berlangganan koran Tempo. Artinya anda tidak tahu apa isi koran tempo.
Subscribe pun demikian, ketika mensubscribe suatu topic A, maka topic B tidak anda ketahui. Topik adalah suatu string dan dipisahkan dengan tanda “/” untuk sub sub topiknya sehingga tanda “/” menunjukkan level topic.
Lalu perlu diingat kalau topic ini bersifat Case Sensitive yang artinya kapital tidaknya huruf akan berpengaruh. misalkan “Suhu” dan “suhu” adalah suatu hal yang berbeda.
3. Messages
Messages adalah isi dari suatu topik, bisa berisi suatu data, misal nilai temperatur 25 derajat Celcius. Bisa juga berisi suatu perintah misalkan “menyalakan lampu” atau “mematikan lampu“.
Seperti halnya berlangganan koran, anda akan mendapatkan koran tiap harinya, demikian juga pada protokol ini, jika sudah subscribe suatu topic misalnya topic suhu. Maka subscriber akan mendapatkan nilai suhu dari topic tersebut setiap jangka waktu tertentu, misalnya tiap 5 detik, subscriber akan menerima data suhu.
Jangka waktu ini kemudian bisa diatur di program.
4. Broker
Broker berfungsi untuk menerima semua pesan, lalu mengolah atau menyaring semua pesan tersebut agar pesan-pesan hanya sampai pada subscriber topik yang bersesuaian.
Protokol MQTT juga mendukung Quality of Service dengan tiga level yaitu QoS 0, QoS 1, dan QoS 2. Semakin besar levelnya, maka akan semakin ketat MQTT dalam aturan penerimaan paket dengan catatan akan mungkin terjadi peningkatan overhead.