Dari semua fitur di smart_sppg, ini yang paling bikin saya mikir lama: gimana caranya mastiin sekolah bener-bener nerima makanannya, dan buktinya nggak bisa diakalin.
Kenapa penting? Balik lagi ke sifat program MBG. Ada uang negara di situ, ada anak-anak yang jadi penerima, dan sewaktu-waktu bisa ada pemeriksaan. Jadi tiap kali makanan dikirim, harus ada bukti serah-terima — istilah resminya BAST, Berita Acara Serah Terima. Isinya kira-kira: tanggal sekian, dikirim sekian porsi, ke sekolah ini, diterima oleh orang ini.
Kalau buktinya cuma kertas, masalahnya banyak. Gampang hilang, gampang ketinggalan, dan yang paling rawan: gampang dibikin-bikin. Orang bisa aja nulis "diterima 100 porsi" padahal cuma 80. Susah dibuktikan.
Solusinya: bukti digital yang bisa dicek siapa aja
Ide dasarnya sederhana. Tiap serah-terima, sistem otomatis bikin dokumen BAST dalam bentuk PDF. Rapi, seragam, dan nggak ditulis tangan. Sampai sini masih biasa.
Yang bikin beda: di dokumen itu ada QR code. Siapa pun — misalnya petugas yang lagi meriksa — tinggal scan QR-nya pakai HP. Begitu discan, dia langsung dibawa ke halaman di sistem yang bilang: "Ya, dokumen ini asli, dikeluarkan sistem, untuk pengiriman tanggal sekian ke sekolah ini."
Jadi keasliannya nggak perlu ditebak-tebak. Tinggal scan, langsung ketahuan asli atau nggak.
Bagian yang bikin saya paling puas: QR-nya nggak bisa ditebak
Nah, di sini ada jebakan yang harus saya antisipasi.
Bayangin kalau halaman verifikasinya beralamat cuma pakai nomor urut — misalnya .../verify/1, .../verify/2, dan seterusnya. Orang iseng tinggal ganti-ganti angkanya buat ngintip dokumen orang lain, atau lebih parah, nebak-nebak buat bikin QR palsu.
Makanya, tiap alamat verifikasi saya kasih semacam "gembok" — sebuah kode rahasia yang cuma bisa dibikin sama server. Kode ini nempel di alamat QR-nya. Kalau ada yang coba nebak alamat tanpa gembok yang benar, sistemnya langsung nolak.
Analoginya kayak tiket konser yang ada hologramnya. Nomor kursi boleh keliatan, tapi hologramnya nggak bisa dipalsu. Di sini, "hologram"-nya itu kode rahasia tadi — cuma server yang bisa bikin, jadi cuma QR asli yang bakal lolos.
(Buat yang penasaran istilah teknisnya: ini pakai tanda tangan digital sederhana, namanya HMAC. Tapi intinya ya tadi — gembok yang kuncinya cuma dipegang server.)
Ditambah lapisan bukti lain
Selain QR, saya juga sediakan tempat buat lampiran bukti yang lebih "manusiawi": tanda tangan penerima dan foto barang pas diserahkan. Jadi satu BAST bisa punya tiga lapis bukti sekaligus — dokumen resmi, QR yang bisa diverifikasi, dan foto plus tanda tangan.
Buat program yang harus siap diaudit kapan aja, kombinasi ini bikin tenang. Kalau ada yang nanya "bener nggak nih kemarin ngirim?", jawabannya nggak lagi "kayaknya sih iya", tapi "nih, scan aja QR-nya."
Buat saya, fitur ini contoh kecil dari hal yang saya suka di proyek ini: masalahnya kelihatan sepele (cuma "bukti terima"), tapi begitu digali, ada pertimbangan keamanan yang lumayan dalam. Dan justru di situ serunya.
Di chapter terakhir, saya bakal cerita bagian yang paling "lapangan": gimana aplikasi ini akhirnya naik ke server, masalah-masalah nyata yang muncul pas deploy, dan pelajaran yang saya bawa pulang.
Pengin lihat BAST dan modul distribusinya langsung? Mampir ke demo smart_sppg — login pakai akun demo yang tertera.