Di Indonesia, kode QR bukan lagi sekadar cara mengirim tautan — kode ini sudah menjadi cara sehari-hari untuk membayar, mulai dari warung kopi pinggir jalan sampai gerai ritel besar. Di balik pola kotak hitam-putih yang terlihat acak itu, sebenarnya tersimpan struktur yang sangat ketat, di mana setiap piksel mewakili sebagian data sesuai aturan yang sudah ditentukan.
QRIS: satu kode untuk semua aplikasi
Bank Indonesia mewajibkan standar QRIS (Quick Response Code Indonesian Standard) agar satu kode QR yang sama bisa dipindai oleh aplikasi pembayaran mana pun — tidak peduli bank atau dompet digital yang dipakai pelanggan. Sebelum QRIS, setiap penyedia pembayaran punya kode QR sendiri-sendiri, sehingga pedagang harus menempel banyak stiker berbeda di meja kasir. Interoperabilitas semacam ini hanya mungkin karena data yang dikodekan dalam kode QR mengikuti format terbuka, bukan format milik satu perusahaan saja.
Tiga kotak di sudut — penanda posisi
Tiga kotak besar di tiga dari empat sudut kode QR disebut pola deteksi posisi. Pola inilah yang membuat pemindai bisa langsung mengenali orientasi kode, bahkan saat difoto miring atau dari sudut yang tidak lurus — itu sebabnya stiker QRIS yang sedikit terlipat di meja pedagang tetap bisa dipindai tanpa masalah.
Level koreksi kesalahan
Kode QR punya empat level koreksi kesalahan — L, M, Q, dan H — yang menentukan seberapa besar bagian kode yang boleh rusak namun tetap bisa dibaca. Level tertinggi, H, mampu memulihkan hingga sekitar 30% data yang rusak, sehingga logo toko atau merek dagang bisa ditempatkan di tengah kode tanpa mengganggu proses pemindaian.
Kegunaannya
- Membuat kode QR dengan cepat untuk tautan, jaringan Wi-Fi, atau kartu nama digital.
- Memilih level koreksi kesalahan yang cukup tinggi jika kode akan dicetak kecil atau diberi logo.
- Memahami mengapa kode QR yang sedikit kotor atau terlipat masih bisa dipindai dengan baik.
Mode numerik, alfanumerik, dan byte
Kode QR mendukung beberapa mode pengkodean, dan mode yang dipilih menentukan berapa banyak karakter yang muat dalam kode berukuran sama. Mode numerik hanya mengkodekan angka 0–9 dan paling ringkas; mode alfanumerik menambahkan huruf kapital Latin serta beberapa simbol; sedangkan mode byte mengkodekan data apa pun, termasuk teks dengan imbuhan bahasa Indonesia yang panjang, tapi memakan ruang paling banyak per karakter. Karena itu, tautan panjang dengan banyak teks akan menghasilkan kode QR yang jauh lebih padat dibanding angka dengan jumlah karakter yang sama.