Skip to main content

title: “Attendance — Absensi Personal” description: “Absensi personal dengan GPS+foto, kalender bulanan, dan statistik kehadiran di SNISHOP ERP.”

Attendance — Absensi Personal

Attendance Halaman Attendance memungkinkan setiap karyawan melakukan clock-in dan clock-out dengan verifikasi foto dan GPS. Sistem mencatat jam kerja, keterlambatan, dan lembur secara otomatis.

Arsitektur Absensi

Akses Halaman

URL: /attendance

Tiga Tab Utama

Entitas: AttendanceRecord

Clock-In: Deteksi Keterlambatan

Sistem menggunakan threshold tetap untuk menentukan status kehadiran:

Contoh Deteksi Keterlambatan

Clock-Out: Perhitungan Jam Kerja

Saat clock-out, sistem menghitung:

Contoh Perhitungan

Tab Riwayat: Kalender Bulanan

Kalender grid bulanan menampilkan status absensi setiap hari dengan color coding:

Tab Statistik

Upload Foto

Integrasi dengan Payroll

Data absensi personal mengalir ke perhitungan payroll:

Tips Penggunaan

  • Pastikan GPS aktif dan izin lokasi browser diberikan sebelum clock-in
  • Foto harus jelas terlihat untuk verifikasi — sistem menolak foto blur atau gelap
  • Clock-in sebelum 08:15 untuk status “present” (dalam toleransi)
  • Jangan lupa clock-out agar total jam kerja tercatat — jika lupa, hubungi HR admin
  • Cek tab Statistik secara berkala untuk memantau kehadiran dan lembur
  • Jika ada masalah dengan GPS atau kamera, gunakan notes untuk mencatat kendala

Entity Relationship Diagram

Tabel Schema: CompanyAttendance

Entitas absensi tingkat perusahaan yang menyimpan seluruh data clock-in/clock-out karyawan beserta verifikasi GPS dan foto.

Tabel Schema: CompanyLeave

Entitas pengajuan cuti tingkat perusahaan yang menyimpan data pengajuan, approval, dan dokumen pendukung cuti karyawan.

State Machine: Siklus Hidup Pengajuan Cuti

Transisi Status Cuti

Sequence Diagram: Ringkasan Absensi

Sequence Diagram: Pengajuan Cuti

Sequence Diagram: Approval Cuti

Tabel Enum: leave_type (Jenis Cuti)

Tabel Enum: leave_status (Status Pengajuan Cuti)

Tabel Enum: attendance_status (Status Kehadiran)

Tabel Enum: employment_type (Tipe Karyawan)

Tabel Enum: employee_status (Status Karyawan)

Tabel Enum: department (Departemen)

RBAC: Hak Akses Modul Attendance

Aturan RLS (Row-Level Security)

Semua entitas attendance menggunakan RLS berbasis company_id dan user:

State Diagram: Siklus Hidup Absensi (Attendance Lifecycle)

Transisi Status Absensi


Sequence Diagram: Clock-In (Verifikasi GPS + Foto)

Sequence Diagram: Clock-Out (Perhitungan Jam + Lembur)

Sequence Diagram: Koreksi Manual Absensi (Override)

Sequence Diagram: Perhitungan Lembur (Overtime)


Tabel Schema: CompanyAttendanceSettings

Entitas pengaturan absensi tingkat perusahaan yang menyimpan konfigurasi geofence, jam kerja, shift, lembur, dan kebijakan absensi.

Grup: Identitas & Lokasi Kantor

Grup: Multi-Lokasi Geofence (locations[])

Grup: Jam Kerja (working_hours)

Grup: Shift Kerja (shifts[])

Grup: Pengaturan Lembur (overtime_settings)

Grup: Kebijakan Absensi


Tabel Schema: AttendanceRecord (Absensi Personal)

Entitas absensi personal (non-perusahaan) yang menyimpan data clock-in/clock-out mandiri karyawan.

Tabel Schema: Employee (Karyawan)

Entitas karyawan yang menyimpan data profil, jabatan, kompensasi, dan informasi kontak.

Grup: Identitas & Kontak

Grup: Jabatan & Kepegawaian

Grup: Kompensasi

Grup: Darurat


Tabel Schema: Leave (Cuti Personal)

Entitas pengajuan cuti personal yang menyimpan data pengajuan cuti mandiri karyawan (non-perusahaan).

Tabel Enum: shift_name (Nama Shift)

Tabel Enum: override_status (Status Koreksi Manual)

Tabel Enum: work_day (Hari Kerja)


Matriks RLS Lengkap: Entitas Attendance

CompanyAttendance — Row-Level Security

CompanyLeave — Row-Level Security

AttendanceRecord — Row-Level Security

Employee — Row-Level Security

CompanyAttendanceSettings — Row-Level Security


Ringkasan Relasi Entitas Attendance