Kehadiran
Lokasi, Geofence & Fake GPS
Cara kerja deteksi lokasi GPS, geofence jarak cabang, dan proteksi terhadap pemalsuan GPS saat absensi.
Tentang Lokasi dan Geofence
Persona: Semua staf. Manajer perlu memahami ini untuk pengaturan radius geofence.
Fitur absensi POS menggunakan GPS untuk merekam lokasi saat karyawan absen masuk atau pulang. Sistem ini memiliki dua lapisan kontrol:
- Peta lokasi — menampilkan posisi Anda saat ini di halaman Absensi.
- Geofence — batas radius yang ditentukan manajer di pengaturan cabang. Jika Anda absen di luar radius, absen tetap berhasil tetapi ditandai "Di luar lokasi" (luar-lokasi flag).
Peta Lokasi di Halaman Absensi
Saat GPS berhasil terkunci, halaman Absensi menampilkan peta kecil (OpenStreetMap) dengan:
- Pin merah di posisi Anda saat ini.
- Alamat di bawah peta (nama jalan, kelurahan, kota) — diambil dari geocoding Nominatim secara otomatis.
- Koordinat GPS (lintang, bujur) untuk referensi.
- Tombol Refresh (ikon putar) untuk memperbarui posisi.
Pada layar tablet/desktop, peta ditampilkan di panel kanan tersendiri dan bisa di-scroll/zoom secara interaktif.
Geofence (Batas Radius Cabang)
Setelah absen, server memeriksa apakah koordinat GPS Anda berada dalam radius geofence yang dikonfigurasi manajer untuk cabang tersebut.
- Radius geofence diatur di Dashboard Merchant → Pengaturan Cabang → Radius Absensi (dalam meter).
- Jika radius = 0 atau tidak dikonfigurasi, pemeriksaan jarak dinonaktifkan.
- Jika Anda berada di dalam radius: absen dianggap normal.
- Jika Anda berada di luar radius: absen tetap tercatat, tetapi diberi flag
Di luar lokasidan jarak dari cabang ditampilkan di kartu absen berwarna merah.
Melihat Jarak dari Cabang
Setelah absen masuk, kartu Absen Hari Ini menampilkan baris "Jarak dari cabang: X m":
- Teks berwarna normal = dalam radius geofence.
- Teks berwarna merah = di luar radius geofence saat absen.
Deteksi Fake GPS (Lokasi Palsu)
Sistem POS mendeteksi penggunaan aplikasi pemalsuan GPS (Mock Location / Fake GPS) untuk mencegah karyawan absen dari lokasi yang tidak sebenarnya.
Cara Deteksi
| Platform | Metode |
|---|---|
| Android | Flag isMocked dari sistem Android (paling akurat) |
| iOS | Pemeriksaan akurasi GPS abnormal (akurasi = 0 atau altitude = 0 dengan akurasi sangat tinggi) |
| Semua platform | Koordinat 0,0° (Null Island), akurasi negatif, timestamp lokasi lebih dari 5 menit yang lalu |
Dampak Jika Fake GPS Terdeteksi
- Peta menampilkan banner merah bertuliskan "Fake GPS Terdeteksi!"
- Tombol Absen Masuk dan Absen Pulang dinonaktifkan — tidak bisa diklik.
- Teks peringatan muncul: "Matikan aplikasi pemalsuan GPS untuk absen."
- Data
is_mock_locationdikirim ke server untuk dicatat, bahkan jika karyawan menemukan cara untuk bypass sisi klien.
Solusi untuk Karyawan
- Buka Pengaturan perangkat → Opsi Pengembang → pastikan "Lokasi Palsu" dinonaktifkan.
- Hapus atau nonaktifkan aplikasi Fake GPS yang terpasang.
- Kembali ke halaman Absensi, ketuk Refresh atau geser ke bawah untuk memperbarui deteksi.
- Jika masalah berlanjut, restart perangkat dan coba lagi.
Platform yang Didukung
| Platform | Dukungan Lokasi |
|---|---|
| Android | Penuh — GPS, geofence, deteksi Fake GPS |
| iOS | Penuh — GPS, geofence, heuristik Fake GPS iOS |
| macOS | Parsial — GPS didukung, akurasi lebih rendah, tanpa deteksi Fake GPS |
| Windows | Parsial — GPS didukung via sistem, tanpa deteksi Fake GPS |
| Linux / Web | Tidak didukung — peta dan GPS disembunyikan; absen tetap bisa dilakukan tanpa koordinat |
Pada platform yang tidak didukung atau GPS tidak tersedia, absen tetap bisa dilakukan — data koordinat tidak akan tersimpan dan flag luar-lokasi tidak diterapkan.
Izin Lokasi
Saat pertama kali membuka halaman Absensi (di Android/iOS), aplikasi meminta izin akses lokasi:
- Pilih "Izinkan saat menggunakan aplikasi" atau "Selalu izinkan" agar GPS bisa diakses.
- Jika izin ditolak, aplikasi menampilkan pesan error dan tombol absen tetap aktif (tanpa koordinat GPS).
- Untuk mengaktifkan ulang izin: Pengaturan → Aplikasi → FnB POS → Izin → Lokasi.
Tips untuk Manajer
Radius geofence yang terlalu kecil (mis. 50 meter) bisa menyebabkan banyak flag "di luar lokasi" karena akurasi GPS bervariasi. Disarankan menggunakan radius minimal 100–200 meter untuk area perkotaan.
Flag "Di luar lokasi" tidak memblokir absen — karyawan tetap bisa absen, namun Anda bisa melihat catatan ini di laporan kehadiran untuk tindak lanjut.