1. Untuk siapa
Aplikasi mobile (dibangun dengan Flutter, Android/iOS) dipakai petugas lapangan untuk mencatat meteran langsung di rumah pelanggan. Admin dan super admin juga bisa memakainya dengan akun yang sama seperti di web.
Data yang tampil mengikuti unit yang ditugaskan pada akun, dan tombol tertentu hanya muncul bila
akun punya izinnya (misalnya collect_cash_payments untuk menerima uang tunai).
2. Pemasangan aplikasi
Untuk pengguna: pasang berkas APK yang dibagikan pengelola, lalu izinkan pemasangan dari sumber di luar Play Store bila diminta. Aplikasi butuh izin kamera (scan QR & foto meteran) dan penyimpanan (menyimpan nota).
Untuk teknisi yang membangun aplikasi:
flutter pub get
flutter build apk --release \
--dart-define=API_BASE_URL=https://sistemair.tridayadigital.tech/api/v1
Tanpa --dart-define, aplikasi memakai alamat server bawaan
https://sistemair.tridayadigital.tech/api/v1. Gunakan parameter itu untuk mengarahkan
ke server uji coba.
3. Masuk & profil
- Buka aplikasi, masukkan email dan kata sandi — sama dengan akun panel web.
- Setelah masuk, aplikasi menyimpan sesi sehingga tidak perlu login ulang tiap hari.
- Tab Profil menampilkan nama, email, peran (role), dan unit sistem air yang ditugaskan, serta tombol keluar.
- Jika akun memegang lebih dari satu unit, form penambahan pelanggan/aset akan menyediakan pilihan unit. Jika belum ditugaskan ke unit mana pun, aplikasi menampilkan pesan agar menghubungi admin.
4. Navigasi layar
| Menu | Isi |
|---|---|
| Dashboard | Ringkasan unit: jumlah pelanggan, aset, lokasi, dan status keberfungsian |
| Sistem Air | Daftar & detail unit yang boleh diakses |
| Pelanggan | Daftar pelanggan, detail, tambah/ubah pelanggan |
| Aset | Daftar aset, detail, dan pembaruan lokasi |
| Profil | Data akun, peran, unit, keluar |
| Tombol tengah | Pembacaan Meteran → pilihan Scan QR Code atau Daftar Pembacaan |
5. Alur pencatatan meter
- Tekan tombol Pembacaan Meteran → Scan QR Code.
- Arahkan kamera ke stiker QR pelanggan. Bila QR rusak atau tidak terbaca, gunakan Input Manual lalu ketik nomor pelanggan.
- Aplikasi menampilkan data pelanggan, angka meter terakhir, dan tarif unitnya.
- Isi angka meter sekarang. Tanggal pembacaan bisa disesuaikan.
- Ambil foto meteran (kamera atau galeri) sebagai bukti — opsional tapi sangat disarankan.
- Nama pembaca terisi otomatis dari akun yang login.
- Tekan Simpan Pembacaan Meteran. Data dikirim ke server dan tagihan langsung dikonfirmasi agar siap dibayar.
- Layar sukses menampilkan ringkasan pemakaian, rincian tagihan, dan tombol pembayaran serta nota.
Menu Daftar Pembacaan berisi riwayat pencatatan, penyaringan, dan aksi lanjutan (nota, pembayaran tunai) untuk tagihan yang belum lunas.
6. Perhitungan tagihan
- Pemakaian = angka meter sekarang − angka meter sebelumnya.
- Tarif tetap: pemakaian × tarif per m³.
- Tarif progresif: dihitung bertingkat 4 blok, dan aplikasi menampilkan rinciannya per blok agar bisa dijelaskan ke pelanggan.
- Ditambah abonemen, biaya admin, dan biaya transaksi sesuai pengaturan unit.
Angka yang muncul di layar sukses, daftar pencatatan, dan seluruh format nota berasal dari satu sumber perhitungan yang sama, jadi tidak akan berbeda antar tampilan.
7. Opsi Pembayaran (Tunai & Midtrans)
Setelah petugas menyimpan pembacaan meter, layar sukses langsung menyajikan dua pilihan pembayaran bagi pelanggan:
1. Terima Pembayaran Tunai (Tombol Hijau)
Dipakai jika warga langsung menitipkan uang tunai ke petugas lapangan saat itu juga:
- Petugas mengetikkan nominal uang yang diterima dari warga.
- Aplikasi otomatis menghitung kembalian uang.
- Status tagihan seketika berubah menjadi Lunas (Paid), nama petugas penerima tercatat, dan otomatis masuk ke pembukuan kas unit SPAM.
2. Bayar Online / Cashless (Tombol Biru - QRIS & VA Midtrans)
Dipakai jika warga ingin membayar non-tunai lewat HP sendiri (QRIS, E-Wallet, atau Virtual Account Bank):
- Petugas menekan tombol Bayar Online (Midtrans / QRIS) untuk membuka halaman pembayaran Snap Midtrans.
- Warga dapat memindai kode QRIS dengan aplikasi m-Banking (BCA, Mandiri, BRI, BNI, dll.) atau E-Wallet (GoPay, OVO, ShopeePay, Dana).
- Setelah warga berhasil membayar, Webhook server otomatis memperbarui status tagihan menjadi Lunas (Paid).
⚙️ Kontrol Tombol Midtrans dari Admin Panel:
Muncul atau tidaknya tombol pembayaran online di aplikasi mobile dikendalikan sepenuhnya oleh toggle "Aktifkan Pembayaran Midtrans / Cashless" pada menu edit Sistem Air di panel admin web. Jika unit desa belum siap menerapkan cashless, admin unit dapat mematikannya, dan aplikasi petugas akan otomatis hanya menampilkan opsi tunai.
8. Nota & WhatsApp
Layar Nota Pembacaan menyediakan:
- Print — cetak nota (PDF atau printer termal Bluetooth format ESC/POS).
- Share — bagikan berkas nota lewat aplikasi lain.
- WhatsApp — masukkan nomor pelanggan, aplikasi membuka WhatsApp dengan isi nota dalam bentuk teks siap kirim.
Isi keempat format (PDF, teks, printer termal, WhatsApp) identik: rincian pemakaian, rincian tarif per blok, abonemen, biaya, dan total.
9. Mode offline
Sinyal di lapangan sering hilang, jadi pencatatan tetap bisa jalan tanpa internet:
- Bila pengiriman gagal karena jaringan, data (termasuk foto) otomatis masuk antrean dan muncul dialog "Tersimpan offline" beserta perkiraan tagihan.
- Layar Daftar Pembacaan menampilkan banner jumlah antrean dengan tombol Kirim.
- Antrean juga dicoba kirim otomatis saat layar dibuka dan saat aplikasi kembali aktif.
- Data yang ditolak server (misalnya pencatatan ganda di tanggal yang sama) ditandai error dan tidak dikirim berulang — perbaiki atau hapus dari antrean.
Jangan menghapus aplikasi (uninstall) selama masih ada antrean yang belum terkirim.
10. Pelanggan & aset dari HP
- Daftar pelanggan dan aset dimuat bertahap 20 data per halaman sambil digulir, hemat kuota.
- Bila jaringan bermasalah, muncul pesan error dengan tombol Coba lagi (daftar tidak dibuat kosong seolah datanya tidak ada).
- Tambah pelanggan bisa dilakukan langsung dari lapangan; nomor pelanggan dibuat otomatis oleh server.
- Update lokasi aset tersedia bagi petugas yang punya izinnya — berguna saat memverifikasi titik sarana di lapangan.
11. Keamanan
- Token login disimpan di penyimpanan aman perangkat (Keychain di iOS, Keystore di Android).
- Bila sesi kedaluwarsa, aplikasi otomatis mengantar kembali ke layar login.
- Satu HP sebaiknya dipakai satu petugas. Keluar (logout) dari tab Profil jika perangkat berpindah tangan.
- Jangan bagikan kata sandi; minta admin membuatkan akun terpisah untuk tiap petugas agar riwayat pencatatan jelas siapa pembacanya.
12. Kalau bermasalah
| Gejala | Yang perlu dilakukan |
|---|---|
| QR tidak terbaca | Bersihkan stiker/lensa, atau pakai Input Manual dengan nomor pelanggan |
| Daftar kosong padahal ada data | Cek di tab Profil apakah akun sudah ditugaskan ke unit; hubungi admin bila belum |
| Tersimpan offline terus | Cari sinyal, buka Daftar Pembacaan, tekan Kirim pada banner antrean |
| Antrean bertanda error | Biasanya pencatatan ganda pada tanggal sama — periksa riwayat pelanggan tersebut |
| Diminta login terus | Sesi kedaluwarsa atau kata sandi berubah; login ulang |
| Tombol tunai tidak ada | Akun belum diberi izin menerima pembayaran tunai — minta ke admin |
| Tombol Midtrans tidak muncul | Pembayaran online memang belum aktif — gunakan pembayaran tunai |