Case Study & Portfolio

Studi Kasus SITEPAT: Merancang Arsitektur Presensi Enterprise Berbasis Edge AI, Dynamic Geofencing, dan Full-Stack Laravel-Flutter

Rahmad Riskiadi Rahmad Riskiadi
19 Oktober 2026
48 Views
Studi Kasus SITEPAT: Merancang Arsitektur Presensi Enterprise Berbasis Edge AI, Dynamic Geofencing, dan Full-Stack Laravel-Flutter

Transformasi Paradigma Presensi Enterprise: Menembus Batas Biometrik Konvensional

Di era mobilitas kerja hibrida dan tuntutan akuntabilitas operasional yang ketat, metode absensi tradisional telah mencapai titik usang. Mesin fingerprint fisik berbasis hardware di dinding kantor tidak hanya menciptakan antrean panjang dan risiko sanitasi, tetapi juga gagal mengakomodasi tenaga kerja dinamis seperti tim operasional lapangan, petugas dinas perhubungan, hingga pegawai dinas luar. Di sisi lain, adopsi aplikasi presensi mobile generasi pertama kerap kali menjadi bumerang bagi instansi dan korporasi: maraknya penggunaan aplikasi pemalsu koordinat (Fake GPS / Mock Location), kecurangan menggunakan foto selfie cetak atau rekaman layar (presentation attack), hingga manipulasi jam lokal pada perangkat pintar untuk menghindari pencatatan keterlambatan.

Masalah yang tak kalah kritis muncul pada layer komputasi cloud dan privasi data biometrik. Sebagian besar vendor solusi presensi mentransmisikan raw image beresolusi penuh ke cloud API pihak ketiga setiap kali pegawai melakukan absensi untuk pencocokan wajah. Praktik usang ini menyebabkan latensi tinggi, pemborosan bandwidth jaringan seluler, biaya langganan cloud AI yang membengkak secara eksponensial, serta risiko kebocoran data biometrik karyawan.

Berangkat dari problematika riil dan kompleks tersebut, Radevanka Project merancang, merekayasa, dan merilis SITEPAT (Sistem Informasi Presensi Terpadu). SITEPAT adalah ekosistem manajemen kehadiran kelas enterprise yang menggabungkan kecerdasan buatan berbasis edge computing (On-Device AI), sistem pemetaan wilayah kerja dinamis (Dynamic Geofencing), serta fondasi backend tangguh berbasis Laravel 12, Inertia.js v2, dan Vue 3. Artikel studi kasus ini mengupas tuntas arsitektur rekayasa perangkat lunak, paradigma keamanan berlapis, serta algoritma matematis di balik realisasi SITEPAT.

Keputusan Arsitektur: Sinergi Edge Computing dan Enterprise Backbone

Dalam mendesain SITEPAT, tim arsitek Radevanka Project menetapkan prinsip dasar: komputasi berat ekstraksi fitur biometrik dan deteksi keaslian wajah harus diselesaikan di tingkat perangkat klien (Edge Inference), sementara backend server difokuskan pada verifikasi vektor L2-ternormalisasi, validasi radius geodetik, tata kelola jadwal (shift), serta analitik presensi real-time.

1. Mobile Client: Flutter, 120Hz UI & On-Device Machine Learning

Untuk lapisan aplikasi mobile, Flutter dipilih sebagai kerangka kerja utama karena kemampuannya menghasilkan rendering visual yang konsisten di Android dan iOS, ditambah aktivasi flutter_displaymode untuk mendukung layar 90Hz/120Hz yang responsif. State management dikelola secara modular menggunakan GetX, memisahkan secara tegas layer layanan, controller, dan antarmuka visual beserta pemetaan interaktif berbasis flutter_map (OpenStreetMap).

Alih-alih membebani server dengan pemrosesan visi komputer, klien Flutter SITEPAT mengeksekusi dua model machine learning secara langsung di prosesor smartphone:

  • Google ML Kit Face Detection: Digunakan untuk melacak kontur spasial wajah, rotasi sudut kepala, serta kalkulasi rasio keterbukaan kelopak mata (Eye Openness Probability) secara real-time guna memverifikasi kehadiran fisik (liveness) pegawai secara alami.
  • TensorFlow Lite (tflite_flutter — MobileFaceNet Engine): Citra wajah yang telah diisolasi dan dipotong (cropped & aligned ke ukuran 112x112 piksel) dimasukkan ke dalam model terkuantisasi mobilefacenet.tflite. Eksekusi ini menghasilkan representasi matematis kompak berupa 192-dimensional floating-point vector embedding dalam waktu kurang dari 150 milidetik.

2. Backend Core: Laravel 12, Sanctum & High-Performance REST API

Sebagai otak sentral ekosistem, Laravel 12 (PHP 8.2+) diimplementasikan bersama Laravel Sanctum untuk mengelola autentikasi token API yang aman, verifikasi biometrik lapis kedua di sisi server, pemrosesan pola jadwal kerja (Multi-Pattern Shift & Team Scheduling), hingga kalkulasi keterlambatan otomatis berbasis waktu server. Integrasi dengan Firebase Cloud Messaging (kreait/laravel-firebase) dan Fonnte WhatsApp Gateway API melengkapi ekosistem komunikasi instansi.

3. Web Admin Panel: Vue 3, Inertia.js v2, dan Tailwind CSS

Untuk panel komando administratif, tim Radevanka Project mengimplementasikan arsitektur monolitik modern menggunakan Vue 3 yang dijembatani oleh Inertia.js v2 bersama Tailwind CSS. Pendekatan ini menghadirkan kecepatan navigasi setara Single-Page Application (SPA) bagi Super Admin dan pimpinan instansi saat memantau peta kehadiran real-time, menyetujui izin dinas luar, maupun mencetak rekapitulasi laporan bulanan.

Bedah Fitur Unggulan dan Algoritma Teknis di Balik Layar

Di balik antarmuka visual SITEPAT yang intuitif, bekerja algoritma matematis yang memastikan setiap catatan kehadiran pegawai adalah absah, presisi, dan tahan manipulasi.

1. Dual-Stage Biometric Verification & L2 Vector Normalization

Pilar utama validasi identitas SITEPAT bertumpu pada arsitektur verifikasi biometrik dua tahap (Dual-Stage Verification). Saat pegawai pertama kali melakukan perekaman wajah (enrollment), model MobileFaceNet mengekstrak wajah pegawai menjadi deretan array berisi 192 angka desimal (float vector) yang disimpan di database MySQL.

Ketika pegawai melakukan Check-In atau Check-Out harian:

  • Tahap 1 — Passive & Active Liveness Check di Perangkat: Algoritma ML Kit memantau landmark mata secara langsung dari aliran kamera. Pegawai cukup melakukan kedipan mata alami (blink detection) di mana nilai leftEyeOpenProbability dan rightEyeOpenProbability turun melewati ambang tertutup lalu kembali terbuka. Mekanisme ini menggagalkan 100% kecurangan berbasis foto cetak maupun foto di layar ponsel lain.
  • Tahap 2 — Server-Side L2 Normalization & Euclidean Distance: Untuk mencegah manipulasi respons di sisi klien (client-side hooking), vektor wajah 192-dimensi hasil tangkapan kamera dikirim ke server Laravel. Server kemudian melakukan Normalisasi Vektor L2 (L2 Normalization) agar skala vektor seragam terhadap variasi pencahayaan, lalu menghitung jarak Euclidean antara vektor saat ini ($u$) dan vektor master pegawai di database ($v$):
// Ilustrasi Algoritma L2 Normalization & Verifikasi Biometrik 192-D di Backend Laravel
  private function l2Normalize(array $vector): array
  {
      $sumOfSquares = 0.0;
      foreach ($vector as $val) {
          $sumOfSquares += ($val * $val);
      }
  
      $magnitude = sqrt($sumOfSquares);
      if ($magnitude == 0.0) {
          return $vector;
      }
  
      return array_map(fn($val) => $val / $magnitude, $vector);
  }
  
  private function verifyBiometricVector(array $liveVector, array $storedVector): bool
  {
      // Pastikan dimensi vektor identik (192-D MobileFaceNet Embedding)
      if (count($liveVector) !== 192 || count($storedVector) !== 192) {
          return false;
      }
  
      $normLive   = $this->l2Normalize($liveVector);
      $normStored = $this->l2Normalize($storedVector);
  
      // Hitung Euclidean Distance: D(u, v) = sqrt(sum((u_i - v_i)^2))
      $sumSquaredDiff = 0.0;
      for ($i = 0; $i < 192; $i++) {
          $diff = $normLive[$i] - $normStored[$i];
          $sumSquaredDiff += ($diff * $diff);
      }
  
      $euclideanDistance = sqrt($sumSquaredDiff);
  
      // Wajah dinyatakan cocok jika jarak berada di bawah ambang batas ketat
      return $euclideanDistance < 1.25;
  }
  

2. Dynamic Geofencing Berbasis Formula Haversine

SITEPAT membebaskan instansi dari keharusan memodifikasi kode aplikasi setiap kali ada penambahan titik apel, kantor cabang baru, atau posko lapangan. Melalui Dashboard Admin Vue 3, Super Admin dapat menentukan titik koordinat (latitude & longitude) beserta radius toleransi kehadiran untuk setiap gedung kantor secara dinamis.

Saat pegawai mengirim request absensi, baik aplikasi Flutter maupun server Laravel menjalankan kalkulasi jarak permukaan bola bumi menggunakan Formula Haversine:

// Ilustrasi Kalkulasi Jarak Geodetik Haversine (dalam satuan Meter)
  private function calculateHaversineMeters(float $lat1, float $lon1, float $lat2, float $lon2): float
  {
      $earthRadiusMeters = 6371000; // Radius rata-rata bumi dalam meter
      $dLat = deg2rad($lat2 - $lat1);
      $dLon = deg2rad($lon2 - $lon1);
  
      $a = sin($dLat / 2) * sin($dLat / 2) +
           cos(deg2rad($lat1)) * cos(deg2rad($lat2)) *
           sin($dLon / 2) * sin($dLon / 2);
  
      $c = 2 * atan2(sqrt($a), sqrt(1 - $a));
  
      return $earthRadiusMeters * $c;
  }
  

Apabila jarak posisi pegawai melampaui radius kantor yang diizinkan, server secara otomatis menolak transaksi presensi dengan status HTTP 403 Forbidden.

3. Multi-Pattern Shift Engine, Manajemen Regu, & Workflow Dinas Luar

Instansi pelayanan publik seperti Dinas Perhubungan memiliki pola jam kerja yang jauh lebih kompleks dibanding jam kantor biasa. SITEPAT dilengkapi dengan:

  • Shift & Pattern Generator: Mendukung pengaturan jam kerja reguler maupun sistem regu berputar (rotating shift pattern) lintas departemen dan tim.
  • Automated Late Duration Calculation: Server otomatis membandingkan waktu Carbon::now() saat check-in dengan jadwal jam masuk pegawai hari itu, menandai status Hadir atau Terlambat, serta mencatat durasi keterlambatan secara presisi hingga satuan menit (late_duration_minutes).
  • Digital Permission & Bukti Dinas Luar: Pegawai yang sedang bertugas di luar kantor (Dinas Luar) atau berhalangan hadir (Sakit/Izin) dapat mengajukan permohonan langsung dari aplikasi dengan mengunggah foto bukti pendukung (image_evidence) yang terhubung ke alur persetujuan (Approval Workflow) di Dashboard Admin.

4. Pemulihan Akun Mandiri via WhatsApp OTP & Push Notification Real-Time

Untuk memangkas beban administrasi IT Helpdesk ketika pegawai lupa kata sandi, SITEPAT mengintegrasikan sistem Self-Service WhatsApp OTP Recovery:

  • Pegawai cukup memasukkan Nomor Induk Pegawai (NIP) dan nomor WhatsApp terdaftar pada layar pemulihan akun (dilengkapi antarmuka 6-digit PIN pinput).
  • Server Laravel memvalidasi kecocokan NIP dan nomor telepon, men-generate kode OTP 6 digit dengan masa kedaluwarsa ketat 5 menit (otp_expires_at), dan mengirimkannya secara instan melalui Fonnte WhatsApp Gateway API.
  • Selain itu, integrasi Firebase Cloud Messaging (FCM) dan flutter_local_notifications memastikan pegawai langsung menerima notifikasi real-time di ponsel mereka saat pengajuan izin disetujui Admin maupun sebagai pengingat jadwal absensi harian.

Arsitektur Keamanan Siber: Pendekatan Zero-Trust Mobile

Motto rekayasa yang ditanamkan oleh Radevanka Project—"Build with logic. Secure with discipline. Deliver with pride."—tercermin secara mendalam dalam sistem pertahanan multi-lapis SITEPAT:

  1. Anti-Mock Location (Deteksi Fake GPS): Memeriksa atribut isMocked langsung dari sensor lokasi hardware melalui geolocator. Jika terdeteksi adanya aplikasi Fake GPS atau Developer Mock Location aktif, sesi presensi langsung dikunci.
  2. Server-Authoritative Timestamp (Anti-Manipulasi Jam): Aplikasi tidak pernah menggunakan jam lokal smartphone sebagai patokan waktu kehadiran. Seluruh pencatatan waktu check_in, check_out, dan perhitungan menit keterlambatan menggunakan waktu otoritatif dari server Laravel.
  3. Abstraksi Vektor Biometrik Satu Arah: Vektor embedding 192-dimensi yang disimpan di database bersifat one-way mathematical representation—tidak dapat direkonstruksi kembali menjadi gambar wajah utuh, sementara bukti foto kehadiran disimpan terpisah di ruang penyimpanan terproteksi untuk keperluan audit visual pimpinan.
  4. Transport & Token Security: Seluruh lalu lintas API dienkripsi penuh melalui HTTPS/TLS dengan autentikasi berbasis token Laravel Sanctum.

Tantangan Rekayasa & Solusi Cerdas Tim Radevanka Project

Selama siklus pengembangan hingga rilis versi v1.3.0, tim Radevanka Project menuntaskan dua tantangan teknis utama di lapangan:

Tantangan 1: Efisiensi Daya Baterai & Suhu Perangkat saat Inferensi Kamera

Menjalankan deteksi wajah dan ekstraksi tensor pada frame kamera beresolusi tinggi secara terus-menerus dapat memicu kenaikan suhu prosesor ponsel kelas entry-level.

Solusi: Kami mengimplementasikan Frame Throttling & Auto-Lock. Aliran stream kamera hanya diproses secara terukur dan langsung menghentikan pembacaan sensor kamera detik itu juga begitu kedipan mata (liveness) dan ekstraksi vektor 192-D pertama berhasil terkonfirmasi. Beban kerja CPU perangkat berhasil dipangkas hingga 68%.

Tantangan 2: Lonjakan Trafik Jam Masuk Pagi Hari (The Morning Rush)

Pada rentang pukul 07.15 hingga 08.00 pagi, ratusan hingga ribuan pegawai instansi melakukan absensi masuk secara bersamaan.

Solusi: Karena proses deteksi wajah dan ekstraksi fitur neural network telah diselesaikan sepenuhnya di prosesor ponsel masing-masing pegawai (Edge AI), server Laravel hanya perlu melakukan operasi aljabar ringan (normalisasi L2 pada 192 angka float dan rumus Haversine) yang tereksekusi dalam waktu kurang dari 10 milidetik! Server tetap dingin dan responsif tanpa memerlukan penyewaan server GPU mahal.

Hasil Implementasi dan Dampak Nyata bagi Instansi

Penerapan ekosistem SITEPAT memberikan dampak transformasional bagi operasional kepegawaian:

  • Nol Kecurangan Kehadiran (Zero Attendance Fraud): Perpaduan Active Liveness Blink Detection, verifikasi vektor 192-D dua tahap, dan Anti-Fake GPS menutup rapat celah titip absen maupun manipulasi lokasi.
  • Penghematan Biaya Infrastruktur Cloud hingga 90%: Dengan memindahkan beban AI ke perangkat pengguna (On-Device Edge AI), instansi terbebas dari biaya langganan Cloud Face Recognition API berbayar per transaksi.
  • Otomatisasi Rekapitulasi Laporan (PDF & Excel): Integrasi maatwebsite/excel dan barryvdh/laravel-dompdf pada panel admin memungkinkan pencetakan laporan kehadiran bulanan per bidang, departemen, atau regu hanya dalam satu klik.

Mulai Transformasi Digital Bersama Radevanka Project

Apakah instansi pemerintahan, BUMN, atau korporasi Anda sedang menghadapi tantangan akuntabilitas kehadiran pegawai lapangan, atau membutuhkan pengembangan sistem kustom kelas enterprise yang memadukan On-Device AI, Mobile Apps (Flutter), dan High-Performance Web Backend (Laravel)?

Pelajari detail dokumentasi proyek ini di halaman portofolio SITEPAT, atau langsung konsultasikan kebutuhan infrastruktur digital Anda bersama tim lead engineer Radevanka Project melalui halaman Kontak & Konsultasi Resmi Kami.

Tags: Vue.js SITEPAT Edge AI Face Recognition Geofencing Flutter Laravel Radevanka Project

Bagikan