Type above and press Enter to search. Press Close to cancel.
Category: SYSTEM ABSENSI
# BUSINESS PROCESS FLOW - SISTEM ABSENSI GURU (VERSI BRIEF)
## OVERVIEW SISTEM
Sistem Absensi Guru adalah aplikasi web untuk mencatat kehadiran guru dengan validasi lokasi GPS, mengelola pengajuan izin/sakit, dan monitoring absensi oleh admin.
---
## JENIS PENGGUNA
### 1. ADMIN
- Mengelola data guru (tambah, edit, hapus)
- Melihat semua data absensi
- Mengatur lokasi absensi (koordinat + radius)
- Menyetujui/menolak pengajuan izin
- Export laporan absensi ke Excel
### 2. GURU (USER)
- Melakukan absensi masuk dan pulang
- Mengajukan izin/sakit dengan upload surat
- Melihat riwayat absensi sendiri
- Mengelola profil sendiri
---
## FITUR UTAMA
### Untuk Admin:
1. Dashboard (statistik jumlah guru & absensi hari ini)
2. Manajemen Data Guru (CRUD)
3. Data Absensi (filter, lihat detail, export Excel)
4. Pengaturan Lokasi (set koordinat & radius)
5. Manajemen Izin (approve/reject pengajuan)
### Untuk Guru:
1. Dashboard (waktu masuk/pulang hari ini)
2. Absensi Masuk/Pulang (dengan foto selfie & GPS)
3. Pengajuan Izin/Sakit (upload surat keterangan)
4. Riwayat Absensi (per bulan dengan detail harian)
5. Profil (lihat & edit)
---
## BUSINESS PROCESS FLOW
### PROSES 1: ABSENSI HARIAN GURU
```
[Guru Login]
↓
[Dashboard - Cek waktu masuk/pulang hari ini]
↓
┌─────────────────┬─────────────────┐
│ BELUM ABSEN │ SUDAH ABSEN │
│ MASUK │ MASUK │
└─────────────────┴─────────────────┘
↓ ↓
[Absen Masuk] [Lihat waktu masuk]
↓ ↓
[Capture foto] [Tunggu waktu pulang]
[Deteksi GPS] ↓
[Simpan data] [Absen Pulang]
↓ ↓
[Konfirmasi sukses] [Capture foto]
↓
[Deteksi GPS]
↓
[Simpan data]
↓
[Konfirmasi sukses]
```
**Detail Proses**:
- Guru akses menu "Absen Masuk" → Sistem tampilkan peta dengan radius lokasi
- Guru beri izin akses lokasi → Sistem deteksi GPS real-time
- Guru capture foto selfie → Upload foto
- Guru klik "Absen Masuk" → Sistem simpan: foto, GPS, waktu, jenis MASUK
- Sistem tampilkan konfirmasi waktu absensi
- Proses sama untuk "Absen Pulang"
---
### PROSES 2: PENGAJUAN IZIN/SAKIT
```
[Guru - Ajukan Izin/Sakit]
↓
[Isi Form: Tanggal, Keterangan, Upload Surat, Catatan]
↓
[Submit]
↓
[Sistem Simpan dengan Status: "belum" (menunggu)]
↓
[Admin - Review Pengajuan]
↓
┌──────────────┬──────────────┐
│ APPROVE │ REJECT │
└──────────────┴──────────────┘
↓ ↓
[Status: "sudah"] [Status: "tolak"]
↓ ↓
[Guru Lihat Status Update]
```
**Detail Proses**:
- Guru akses menu "Izin" → Klik "Ajukan Izin/Sakit"
- Guru isi: tanggal izin, pilih izin/sakit, upload surat keterangan, isi catatan
- Submit → Sistem simpan dengan status "belum"
- Admin login → Menu "Data Izin" → Review surat & catatan
- Admin pilih: Approve → Status "sudah" | Reject → Status "tolak"
- Guru lihat status update di menu "Izin"
---
### PROSES 3: MONITORING ABSENSI (ADMIN)
```
[Admin Login]
↓
[Dashboard - Lihat Statistik]
├─> Jumlah total guru
└─> Jumlah absensi masuk hari ini
↓
[Menu: Data Absensi]
↓
[Filter: Tanggal & Jenis (Masuk/Pulang/Semua)]
↓
[Lihat Daftar Absensi]
├─> Nama guru
├─> Tanggal & waktu
├─> Foto selfie
└─> Lokasi GPS
↓
[Export Excel (opsional)]
├─> Pilih bulan & tahun
└─> Download file Excel
```
**Detail Proses**:
- Admin akses "Data Absensi" → Default tampilkan hari ini
- Admin bisa filter: pilih tanggal lain, filter jenis (MASUK/PULANG/semua)
- Sistem tampilkan tabel: nama, tanggal, waktu, jenis, foto, lokasi
- Admin bisa export ke Excel: pilih bulan/tahun → Download file
---
### PROSES 4: MANAJEMEN DATA GURU (ADMIN)
```
[Admin - Data Guru]
↓
┌──────────┬──────────┬──────────┐
│ TAMBAH │ EDIT │ HAPUS │
└──────────┴──────────┴──────────┘
↓ ↓ ↓
[Isi Form] [Edit Data] [Konfirmasi]
↓ ↓ ↓
[Simpan] [Update] [Delete + Cascade]
↓ ↓ ↓
[Guru Baru] [Data Update] [Guru Terhapus]
```
**Detail Proses**:
- **Tambah**: Form → Isi data → Simpan → Guru baru dengan role USER
- **Edit**: Klik edit → Ubah data → Save → Data terupdate
- **Hapus**: Klik delete → Konfirmasi → Delete user + semua absensi & izin terkait (cascade)
---
### PROSES 5: RIWAYAT ABSENSI GURU
```
[Guru - Menu Riwayat]
↓
[Tampilkan Bulan Saat Ini (default)]
↓
[Filter Bulan/Tahun (opsional)]
↓
[Kalender Bulan dengan Detail Harian]
├─> Status: Kerja / Libur (weekend)
├─> Waktu masuk (jika ada)
├─> Waktu pulang (jika ada)
└─> Keterangan:
├─> "Hadir (Dalam Lokasi)" → Ada masuk & pulang
├─> "Tidak Absen Masuk" → Tidak ada masuk
└─> "Tidak Absen Pulang" → Tidak ada pulang
↓
[Lihat Detail (opsional)]
├─> Foto selfie masuk/pulang
└─> Peta lokasi absensi
```
**Detail Proses**:
- Guru akses "Riwayat" → Sistem tampilkan bulan ini
- Guru bisa filter bulan/tahun lain
- Sistem generate kalender: setiap hari ditandai kerja/libur (weekend = libur)
- Mapping data absensi ke tanggal: cek ada/tidak masuk dan pulang
- Tentukan keterangan berdasarkan kelengkapan absensi
- Guru bisa lihat detail foto & lokasi untuk setiap absensi
---
### PROSES 6: PENGATURAN LOKASI (ADMIN)
```
[Admin - Data Lokasi]
↓
[Tampilkan Peta + Form]
├─> Latitude
├─> Longitude
└─> Radius (meter)
↓
[Set Lokasi]
├─> Klik di peta (otomatis) ATAU
└─> Input manual koordinat
↓
[Atur Radius]
↓
[Simpan]
↓
[Lokasi Aktif untuk Validasi Absensi]
```
**Detail Proses**:
- Admin akses "Data Lokasi" → Sistem tampilkan peta + form input
- Admin set lokasi: klik di peta (auto-fill koordinat) atau input manual
- Admin set radius (contoh: 50m, 100m, 200m)
- Save → Lokasi tersimpan (hanya 1 lokasi aktif)
- Lokasi ini digunakan untuk menampilkan lingkaran radius di halaman absensi guru
---
## RINGKASAN FLOW HARI-HARI
### Aktivitas Guru (Sehari-hari):
```
LOGIN → Dashboard
├─> BELUM MASUK? → Absen Masuk (foto + GPS) → Konfirmasi
├─> SUDAH MASUK? → Lihat waktu di dashboard
├─> BELUM PULANG? → Absen Pulang (foto + GPS) → Konfirmasi
└─> Lihat Riwayat (opsional, per bulan)
```
### Aktivitas Guru (Perlu Izin):
```
Ajukan Izin → Isi Form + Upload Surat → Submit → Tunggu Approval
↓
Admin Review → Approve/Reject
↓
Guru Lihat Status Update
```
### Aktivitas Admin:
```
LOGIN → Dashboard (statistik)
├─> Kelola Guru (tambah/edit/hapus)
├─> Lihat Absensi (filter + export)
├─> Set Lokasi (koordinat + radius)
└─> Proses Izin (approve/reject)
```
---
## ALUR DATA PENTING
### Data Absensi:
```
User → Capture Foto → Deteksi GPS → Submit
↓
Sistem: Simpan (foto, GPS, waktu, jenis, user_id)
↓
Database: Tabel `absensis`
↓
Tampilkan di:
├─> Dashboard User (waktu hari ini)
├─> Riwayat User (per bulan)
└─> Data Absensi Admin (semua guru)
```
### Data Izin:
```
User → Isi Form → Upload Surat → Submit
↓
Sistem: Simpan (status: "belum")
↓
Database: Tabel `izins`
↓
Admin: Review → Approve/Reject
↓
Database: Update (status: "sudah" / "tolak")
↓
User: Lihat Status Update
```
---
## VALIDASI & KEAMANAN
1. **Autentikasi**: Login dengan email & password (session-based)
2. **Otorisasi**:
- Admin hanya akses fitur admin (middleware)
- User hanya akses fitur user (middleware)
3. **Lokasi**: Validasi GPS untuk memastikan guru di lokasi (informasi di frontend)
4. **Foto**: Wajib capture selfie untuk verifikasi absensi
5. **File Upload**: Surat keterangan izin diupload dan disimpan
---
## OUTPUT & LAPORAN
1. **Dashboard Admin**: Statistik jumlah guru & absensi hari ini
2. **Dashboard User**: Waktu absensi masuk/pulang hari ini
3. **Riwayat Absensi**: Kalender bulan dengan detail harian (per user)
4. **Data Absensi Admin**: Tabel semua absensi (filterable) + Export Excel
---
**Dokumentasi Brief ini memberikan overview singkat tentang business process flow sistem untuk pemahaman cepat operasional sistem.**