Semua panduan

Aplikasi POS (Kasir)

Panduan menjalankan kasir: aktivasi perangkat, login, transaksi, pembayaran, shift, hingga absensi.

Sinkronisasi & Offline

Cara Kerja Offline-First

Bagaimana POS menyimpan data lokal di perangkat, tetap berjalan tanpa internet, dan mengirimkan transaksi ke server saat koneksi tersedia kembali.

3 menit baca

Prinsip Offline-First

Aplikasi POS dirancang offline-first: semua data penting (menu, kategori, meja, pesanan, pembayaran, konfigurasi cabang) disimpan terlebih dahulu di perangkat menggunakan database lokal berbasis SQLite (Drift). Artinya, berjualan, mencatat pesanan, dan menerima pembayaran tidak bergantung pada koneksi internet aktif.

Ini penting untuk gerai F&B yang jaringannya tidak selalu stabil — pemadaman internet atau gangguan WiFi sebentar tidak boleh menghentikan kasir di tengah rush jam makan.


Data yang Disimpan Lokal

Saat terhubung, POS mengunduh dan menyimpan salinan lokal dari:

DataKeterangan
Menu & kategoriSeluruh item yang aktif di cabang, lengkap dengan harga, SKU, gambar (URL), dan modifier
Meja & areaStatus meja (tersedia/terisi), denah lantai, kapasitas
Pesanan terbukaPesanan dari perangkat ini maupun perangkat lain di cabang (hasil pull dari server)
PembayaranRiwayat pembayaran yang masih dalam periode retensi (7 hari)
KonfigurasiPengaturan pajak, service charge, printer, template struk, konfigurasi shift

Data ini diperbarui setiap kali sinkronisasi berhasil, sehingga perangkat selalu punya salinan terkini selama ada koneksi sesekali.


Apa yang Bisa Dilakukan Saat Offline

Saat koneksi terputus, kasir tetap bisa:

  1. Melihat semua menu — termasuk harga, kategori, foto, dan modifier.
  2. Membuat pesanan baru — item ditambahkan ke keranjang, pesanan disimpan lokal dengan ID unik perangkat (client UUID).
  3. Menerima pembayaran — transaksi dicatat lokal, dikunci dengan HLC agar urutan tetap konsisten.
  4. Melihat pesanan terbuka — seluruh meja yang sudah dipakai sebelumnya tersedia dari data lokal.
  5. Mencetak struk lokal — selama printer terhubung ke perangkat (LAN atau Bluetooth).

Perhatian: Beberapa fitur memerlukan koneksi server, antara lain: verifikasi voucher baru, promo real-time dari server, validasi member baru, dan pembayaran QRIS/Midtrans (membutuhkan konfirmasi payment gateway). Kasir akan mendapat notifikasi bila fitur ini tidak tersedia offline.


Alur Penyimpanan Pesanan Offline

Berikut alur saat kasir membuat pesanan tanpa internet:

  1. Kasir menekan Kirim ke Dapur / Bayar — pesanan dibuat di database lokal dengan status unsynced.
  2. Pesanan mendapat cap waktu HLC (Hybrid Logical Clock) untuk menjaga urutan antar perangkat.
  3. Pesanan masuk ke antrian sinkronisasi (sync queue) — siap dikirim begitu koneksi pulih.
  4. Kasir bisa langsung melanjutkan transaksi berikutnya; antrian berjalan di latar belakang.

Saat koneksi kembali, sync engine secara otomatis mendorong semua operasi antrian ke server (mekanisme push), lalu menarik pembaruan terbaru dari server (pull) — termasuk pesanan dari perangkat lain di cabang yang sama.


Retensi Data Lokal

Untuk menjaga database perangkat tidak terlalu besar, POS secara otomatis membersihkan:

  • Pesanan yang sudah selesai/lunas dan berusia lebih dari 7 hari dihapus dari replika lokal (data tetap aman di server).
  • Pembersihan (prune) dilakukan setiap jam secara diam-diam di latar belakang, tidak memengaruhi operasional.

Sinkronisasi Otomatis

POS melakukan sinkronisasi secara otomatis dalam beberapa kondisi:

  • Setiap 5 menit secara berkala (latar belakang).
  • Segera saat koneksi kembali — begitu perangkat terdeteksi online, sinkronisasi langsung dipicu.
  • Saat aplikasi dibuka kembali dari latar belakang — koneksi realtime (SSE) disambung ulang dan sinkronisasi dijalankan untuk mengejar data yang terlewat.
  • Setiap 6 jam dilakukan full resync sebagai jaring pengaman untuk memperbaiki apapun yang mungkin terlewat.

Tips: Anda tidak perlu melakukan apapun secara manual — sinkronisasi berjalan otomatis. Lihat artikel Status Koneksi untuk memantau kondisi sinkronisasi, atau Sinkron Manual bila ingin memaksanya segera.


Keamanan Data Lokal

Database lokal di perangkat dienkripsi menggunakan SQLCipher dengan kunci yang disimpan di OS Keystore (Android) atau Keychain (iOS). Artinya, data pesanan dan transaksi tidak bisa dibaca meski perangkat dicuri atau diakses tanpa izin.

Token, PIN, dan kredensial sensitif lainnya juga disimpan di penyimpanan aman (Secure Storage), bukan di memori biasa.

WhatsApp Kami