Scroll to top

Sistem Aplikasi Absensi Guru - Brief

Sistem Aplikasi Absensi Guru - Brief

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.**