Lewati ke konten utama

11. Sinkronisasi Data, Backup & Mode Developer (Offline-First)

Salah satu keunggulan mendasar dari Flink POS adalah arsitektur Offline-First. Kasir dapat terus melayani pesanan, mencetak struk, menerima pembayaran tunai, dan melakukan penutupan shift tanpa bergantung pada koneksi internet.

Modul ini menjelaskan bagaimana aliran data lokal bekerja, langkah melakukan sinkronisasi master data secara manual, prosedur pencadangan (backup) dan pemulihan (restore) database SQLite, serta pemanfaatan SQLite Inspector melalui Mode Developer.


Di sebagian besar sistem POS berbasis web atau komputasi awan murni, gangguan jaringan internet akan menghentikan transaksi di meja kasir. Flink POS mengatasi masalah ini dengan menempatkan database relasional SQLite lokal di dalam memori tablet sebagai sumber kebenaran operasional (single source of truth).

Alur Kerja Data Kasir:

  1. Pencatatan Instan: Setiap kali kasir menambahkan item ke keranjang atau menuntaskan pembayaran, data langsung ditulis ke tabel database SQLite lokal (transactions, pos_payments, shift_sessions).
  2. Respon Cepat: Proses cetak struk ke printer thermal berlangsung seketika tanpa perlu menunggu konfirmasi dari server internet (zero latency).
  3. Antrean Latar Belakang (Sync Queue): Perubahan data yang belum terunggah ke server akan dicatat dalam tabel sync_queue dengan stempel waktu dan ID unik berbasis UUID v4 (id_pos).
  4. Unggah Otomatis Saat Online: Modul Workmanager dan SyncService secara berkala mendeteksi ketersediaan internet. Begitu koneksi online terdeteksi, antrean data otomatis diunggah ke server kantor pusat tanpa mengganggu operasional kasir.
Keunggulan Operasional Offline-First

Kasir dapat melayani ratusan pelanggan saat pemadaman listrik atau gangguan provider internet. Seluruh riwayat transaksi tetap aman tersimpan di tablet dan otomatis sinkron saat internet kembali terhubung.


2. Sinkronisasi Master Data Manual

Secara berkala atau saat tablet mendeteksi jaringan internet, Flink POS melakukan sinkronisasi latar belakang. Namun, ada kondisi di mana manajer toko perlu memperbarui katalog data secara seketika:

  • Manajemen pusat baru saja menambahkan menu masakan baru.
  • Terjadi penyesuaian harga jual atau promo bundling.
  • Ada pendaftaran member baru dari cabang lain.
  • Pembaruan aturan tarif pajak gerai.

Sinkronisasi Data Kasir Gambar: Kartu Data Synchronization untuk memicu pembaruan katalog produk dan data member.

Langkah Memicu Sinkronisasi Manual:

  1. Pada bilah navigasi samping (sidebar), buka menu Settings (ikon roda gigi).
  2. Gulir ke bagian Data & Backup (atau pilih tab Data & Backup pada filter kategori atas).
  3. Ketuk kartu Sync Master Data.
  4. Sistem akan menampilkan dialog indikator proses unduh.
  5. Flink POS akan menarik data terbaru dari server (Produk, Kategori, Brand, Member, Pajak, dan Order Terbuka) lalu memperbarui tabel SQLite lokal tablet.

3. Pencadangan Database SQLite (Backup Data)

Untuk mengantisipasi keadaan darurat seperti kerusakan fisik tablet, layar pecah, atau rencana migrasi ke unit tablet baru, supervisor dan pemilik toko (Owner) wajib membuat salinan cadangan (backup) database secara berkala.

Backup dan Restore Database Gambar: Dialog opsi pencadangan database ke folder Download atau dibagikan via media eksternal.

Hak Akses Khusus

Fitur Backup dan Restore Data hanya dapat diakses oleh staf dengan peran manajerial (Supervisor dan Owner).

Langkah Melakukan Backup Database:

  1. Buka menu Settings -> gulir ke bagian Backup & Restore Data.
  2. Ketuk tombol Backup Database (ikon awan panah ke atas).
  3. Muncul jendela dialog pilihan metode penyimpanan:
    • Simpan ke Download: File arsip database berekstensi .sqlite akan langsung disimpan ke direktori /storage/emulated/0/Download/ di memori internal tablet.
    • Bagikan (Share): Membuka lembar berbagi sistem (Android Share Sheet). Anda dapat mengirimkan berkas cadangan langsung ke Flashdisk OTG, Google Drive gerai, email kantor, Bluetooth, maupun aplikasi perpesanan WhatsApp.
  4. Setelah proses selesai, notifikasi sukses akan muncul disertai lokasi penyimpanan file arsip.

4. Pemulihan Database SQLite (Restore Data)

Pemulihan database (Restore) digunakan ketika Anda ingin mengembalikan data operasional toko dari berkas cadangan yang sebelumnya telah diekspor (misalnya pada tablet pengganti yang baru dipasang).

Peringatan Keras Pemulihan Database

Proses Restore akan menimpa (overwrite) seluruh database lokal yang ada pada tablet saat ini. Segala perubahan yang belum dicadangkan akan hilang secara permanen.

Langkah Melakukan Restore:

  1. Pada menu Settings -> bagian Backup & Restore Data, ketuk opsi Restore Database (ikon lingkaran oranye).
  2. Sistem akan menampilkan dialog peringatan konfirmasi. Baca peringatan dengan saksama, lalu ketuk tombol merah Pilih File Backup.
  3. Pemeriksaan Keamanan Pra-Pemulihan (Pre-Flight Check):
    • Sistem secara otomatis memeriksa apakah masih terdapat transaksi lokal yang belum tersinkronisasi ke server (unsynced data).
    • Jika ada data transaksi tertinggal, sistem menampilkan dialog bahaya dan menolak pemulihan sembarangan. Anda disarankan melakukan sinkronisasi terlebih dahulu.
    • Jika supervisor tetap memilih menimpa paksa (force override), Flink POS secara otomatis membuat Emergency Backup dari database saat ini sebelum proses penimpaan dimulai.
  4. Pilih berkas file cadangan (.sqlite atau .db) melalui jendela pengelola berkas tablet.
  5. Sistem memvalidasi integritas struktur tabel berkas tersebut.
  6. Jika valid, database lokal berhasil diperbarui dan aplikasi akan otomatis mengarahkan pengguna kembali ke layar Login Toko untuk memuat ulang sesi yang bersih.

5. Mode Developer & SQLite Inspector

Khusus untuk pemilik bisnis (Owner) dan tim teknis IT, Flink POS menyediakan fitur audit database mendalam bernama SQLite Inspector.

SQLite Database Inspector Gambar: Layar SQLite Inspector untuk memeriksa isi tabel database lokal dan memicu Force Resync.

A. Mengaktifkan Mode Developer

  1. Pastikan Anda masuk menggunakan akun dengan peran Owner.
  2. Buka menu Settings -> gulir ke bagian Developer di paling bawah.
  3. Aktifkan sakelar switch Developer Mode.
  4. Muncul notifikasi snackbar: "Developer Mode ON - SQLite Inspector & detailed errors are now visible".
  5. Setelah aktif, opsi menu baru bertuliskan Developer (ikon dokumen kaca pembesar) akan muncul di sidebar samping kasir.

B. Fitur-Fitur pada Layar SQLite Inspector

Layar ini dapat diakses melalui tombol SQLite Inspector di menu Settings atau melalui menu sidebar Developer:

  1. Table Selector (Pemilih Tabel):
    • Membuka dropdown untuk memeriksa struktur dan baris data dari seluruh tabel lokal, antara lain:
      • transactions: Memeriksa status nota dan kolom is_synced.
      • pos_payments: Memeriksa rincian pembayaran tunai maupun non-tunai.
      • sync_queue: Memeriksa antrean payload yang sedang menunggu jadwal unggah atau percobaan ulang (retry).
      • shift_sessions: Memeriksa catatan sesi kasir dan rekonsiliasi kas.
      • members: Memeriksa data pelanggan dan saldo poin lokal.
  2. Data Table Viewer:
    • Menampilkan isi tabel SQLite dalam bentuk kisi tabel interaktif yang dapat digulir secara vertikal maupun horizontal.
  3. Tombol Force Resync All (Ikon Sinkronisasi Bermasalah di AppBar):
    • Fitur pemulihan darurat untuk mereset seluruh flag is_synced pada tabel transaksi menjadi 0 dan mengembalikan antrean gagal (failed) menjadi pending.
    • Flink POS akan segera menjadwalkan ulang pengunggahan seluruh transaksi lokal ke server pusat untuk memastikan tidak ada data penjualan yang tertinggal.
  4. Tombol Export Database (.sqlite):
    • Tombol pintas cepat di bilah judul atas untuk mengekspor dan membagikan database lokal secara seketika.

Langkah Selanjutnya

Setelah memahami integritas data offline-first dan pencadangan database lokal, pelajari prosedur penting dan daftar periksa (checklist) sebelum melakukan penutupan sesi gerai secara permanen:

Lanjut ke Modul 12: Logout Lokasi & Prosedur Keamanan Data