Ringkasan
Perumdam Tirta Pandalungan Jember butuh cara tracking kehadiran karyawan yang tidak bisa diakali. Sistem lama mereka pakai kertas. Orang bisa tanda tangan telat, pulang cepat, atau minta orang lain tanda tangan untuk mereka. Manajemen tidak punya visibilitas real-time siapa yang benar-benar kerja.
Mereka mau aplikasi mobile yang rekam kehadiran berdasarkan lokasi GPS dan waktu. Karyawan clock-in dari lokasi spesifik selama jam yang ditentukan. Data masuk ke sistem SIMPEG mereka yang ada untuk hitung gaji, metrik performa, dan benefit.
Saya bangun SIMPEG TPJ sebagai attendance tracker berbasis lokasi. Karyawan buka aplikasi, tekan clock-in, dan sistem verifikasi mereka ada di tempat yang benar pada waktu yang benar. Kalau mereka di luar geofence atau di luar jam kerja, aplikasi tidak izinkan clock-in. Constraint sederhana, susah diakali.
Aplikasi harus reliable karena payroll tergantung ini. Harus secure karena orang akan coba manipulasi sistem apa pun yang pengaruhi gaji mereka. Dan harus integrasi dengan backend SIMPEG legacy mereka tanpa rusak workflow yang ada.
Klien
Perumdam Tirta Pandalungan Jember adalah perusahaan air regional di Jawa Timur. Mereka kelola distribusi air, billing, dan maintenance infrastruktur untuk area Jember.
Seperti kebanyakan organisasi terkait pemerintah, mereka punya requirement akuntabilitas yang ketat. Rekaman kehadiran bukan cuma untuk HR — mereka diaudit. Mereka butuh sistem yang tahan scrutiny dan kurangi dispute soal siapa kerja kapan.
Fitur
Clock-in berbasis lokasi enforce geofencing. Setiap kantor atau lokasi kerja punya koordinat dan radius yang ditentukan. Karyawan hanya bisa clock-in kalau mereka secara fisik dalam zona itu. Aplikasi cek akurasi GPS untuk cegah spoofing.
Validasi berbasis waktu pastikan karyawan clock-in selama jam yang ditentukan. Percobaan terlalu pagi atau telat di-flag. Sistem log setiap percobaan — berhasil atau tidak — jadi manager bisa lihat pola.
Riwayat kehadiran tunjukkan rekaman clock-in dan clock-out setiap karyawan dengan timestamp dan lokasi. Karyawan bisa review data mereka sendiri. Manager bisa export laporan untuk proses payroll.
Aplikasi sync dengan sistem backend SIMPEG. Data kehadiran masuk ke kalkulasi gaji, evaluasi performa, dan kelayakan benefit. Integrasi ini kritis — mismatch apa pun akan bikin error payroll.
Tech Stack
Flutter untuk aplikasi mobile dengan GetX untuk state management. Package Geolocator untuk GPS tracking dengan cek akurasi. Backend Laravel dengan MySQL untuk data storage dan API endpoint.
Autentikasi JWT dengan role-based access. Karyawan lihat data mereka sendiri. Manager lihat data tim. Admin lihat semua. Backend validasi setiap request untuk cegah akses tidak sah.
Background location tracking itu tricky. Saya harus balance akurasi dengan battery life. Cek terlalu sering drain battery. Terlalu jarang izinkan location spoofing. Akhirnya pakai adaptive polling berdasarkan movement.
Peran Saya
Full-stack developer. Saya bangun aplikasi Flutter, design API, dan integrasi dengan backend SIMPEG yang ada. Saya juga kerja sama dengan HR untuk define aturan kehadiran — apa yang dihitung on-time, cara handle exception, apa yang dilakukan dengan clock-in yang gagal.
Logika geofencing butuh iterasi paling banyak. Versi awal terlalu strict — orang yang berdiri dekat jendela tidak bisa clock-in karena GPS drift taruh mereka di luar zona. Saya tambah buffer dan perbaiki cek akurasi. Masih cukup strict untuk cegah abuse, tapi cukup forgiving untuk perilaku GPS dunia nyata.
Saya juga handle edge case. Bagaimana kalau HP seseorang mati mid-shift? Bagaimana kalau GPS tidak tersedia? Bagaimana kalau mereka kerja remote? Bangun manual override flow untuk supervisor, tapi dengan audit trail jadi setiap exception di-log.
Aplikasi sudah live lebih dari setahun. Perumdam pakai setiap hari untuk tracking kehadiran. Mereka bilang ini kurangi dispute dan bikin proses payroll lebih akurat. Itu jenis reliability membosankan yang benar-benar penting.
