Scroll to top

Sistem Aplikasi Absensi Guru

Sistem Aplikasi Absensi Guru

## Analisis sistem aplikasi absensi guru

### 1. Fitur

#### A. Fitur untuk user (guru)
1. Dashboard
   - Menampilkan informasi pengguna
   - Informasi sekolah (SMP N 2 Telukjambe Barat)
   - Galeri foto sekolah

2. Absensi masuk dan pulang
   - Check-in/check-out
   - Validasi lokasi GPS (harus dalam radius yang ditentukan)
   - Selfie wajib saat absen
   - Rekam koordinat (latitude, longitude)
   - Simpan foto selfie dengan timestamp
   - Validasi di client-side (JavaScript): pengecekan posisi dalam radius

3. Pengajuan izin
   - Form pengajuan izin/sakit
   - Upload surat keterangan (suket)
   - Catatan pengajuan
   - Riwayat pengajuan

4. Riwayat absensi
   - Riwayat per bulan (filter bulan/tahun)
   - Menampilkan:
     - Tanggal
     - Status (kerja/libur)
     - Jam masuk/pulang
     - Foto selfie masuk/pulang
     - Koordinat lokasi
     - Keterangan (Hadir, Tidak Absen Masuk, Tidak Absen Pulang, dll)

5. Profil
   - Lihat dan edit profil
   - Nama, email, jenis kelamin, alamat, nomor HP

#### B. Fitur untuk admin
1. Dashboard
   - Statistik jumlah guru (USER)
   - Statistik absensi masuk hari ini

2. Manajemen data guru
   - Daftar semua guru
   - Tambah guru baru
   - Edit data guru (nama, email, password, alamat, HP, jenis kelamin)
   - Hapus guru
   - Detail guru

3. Manajemen data absensi
   - Lihat semua absensi
   - Filter berdasarkan:
     - Tanggal
     - Jenis (Masuk/Pulang/Semua)
   - Informasi per absensi:
     - Nama guru
     - Tanggal & waktu
     - Jenis absensi
     - Foto selfie
     - Koordinat lokasi (dengan peta)
   - Export Excel per bulan

4. Manajemen data izin
   - Daftar pengajuan izin
   - Filter status: belum disetujui, sudah disetujui, ditolak
   - Approve/reject pengajuan
   - Lihat detail: tanggal, keterangan (izin/sakit), surat keterangan, catatan

5. Manajemen lokasi
   - Atur lokasi absensi (titik pusat)
   - Set radius (meter)
   - Koordinat latitude & longitude
   - Peta interaktif

#### C. Fitur umum
1. Autentikasi
   - Login (email & password)
   - Logout
   - Register (pendaftaran akun baru)
   - Reset password (forgot password)

2. Keamanan
   - Middleware autentikasi
   - Pemisahan akses: admin vs user
   - CSRF protection

---

### 2. User/peran pengguna

#### A. Admin
- Role: `ADMIN`
- Akses:
  - Dashboard admin
  - Manajemen guru (CRUD)
  - Manajemen absensi (lihat & export)
  - Manajemen izin (approve/reject)
  - Manajemen lokasi absensi

#### B. User (Guru)
- Role: `USER`
- Akses:
  - Dashboard user
  - Absensi masuk/pulang
  - Pengajuan izin
  - Lihat riwayat absensi sendiri
  - Edit profil sendiri

#### C. Struktur tabel users
```
- id
- name (username)
- full_name (nama lengkap)
- email (unique)
- password (hashed)
- jenis_kelamin (L/P)
- alamat
- no_hp
- role (ADMIN/USER) - default: USER
- profile_photo_path (nullable)
- created_at, updated_at
```

---

### 3. Flow bisnis

#### A. Flow autentikasi
1. Register → user membuat akun (role default: USER)
2. Login → email & password
3. Redirect berdasarkan role:
   - ADMIN → `/dashboard`
   - USER → `/home`

#### B. Flow absensi (guru)
1. User login → redirect ke `/home`
2. Klik "Absen Masuk" atau "Absen Pulang"
3. Sistem:
   - Ambil lokasi yang diizinkan (dari tabel `locations`)
   - Buka halaman absen dengan peta
4. Validasi lokasi (client-side):
   - Ambil GPS user
   - Cek apakah dalam radius
   - Tampilkan marker di peta
   - Update setiap 2 detik
5. Ambil foto:
   - User ambil selfie
   - Preview foto
6. Submit absensi:
   - Simpan foto (base64 → file, disimpan di `storage/app/public/images/`)
   - Simpan: user_id, jenis (MASUK/PULANG), photo_path, lat, lng
   - Redirect ke halaman sukses
7. Tampilkan konfirmasi sukses dengan waktu absen

#### C. Flow pengajuan izin
1. User klik menu "Izin"
2. Lihat riwayat pengajuan sebelumnya
3. Buat pengajuan baru:
   - Pilih tanggal
   - Pilih keterangan (Izin/Sakit)
   - Upload surat keterangan (file)
   - Isi catatan
   - Submit
4. Status: `belum` → `sudah` (jika approve) atau `tolak` (jika reject)
5. Admin approve/reject di halaman "Data Izin"

#### D. Flow manajemen absensi (admin)
1. Admin akses "Data Absensi"
2. Filter:
   - Pilih tanggal (default: hari ini)
   - Pilih jenis (Masuk/Pulang/Semua)
3. Sistem menampilkan:
   - Daftar absensi sesuai filter
   - Informasi: nama guru, tanggal, jam, jenis, foto, lokasi
4. Export Excel:
   - Pilih bulan & tahun
   - Generate file Excel dengan data:
     - No, Nama, Tanggal, Waktu, Jenis, Latitude, Longitude

#### E. Flow manajemen guru (admin)
1. Admin akses "Data Guru"
2. Lihat daftar semua user dengan role `USER`
3. Aksi:
   - Tambah: form nama, email, password, jenis kelamin, alamat, HP
   - Edit: ubah data (termasuk password)
   - Hapus: hapus guru dari sistem
   - Detail: lihat & edit data guru

#### F. Flow manajemen lokasi (admin)
1. Admin akses "Data Lokasi"
2. Sistem menampilkan:
   - Peta dengan marker lokasi saat ini
   - Form: Latitude, Longitude, Radius (meter)
3. Admin set lokasi:
   - Klik/geser marker di peta
   - Atau input manual koordinat
   - Set radius (default: 50 meter)
   - Save
4. Lokasi tersimpan (hanya 1 lokasi aktif, diambil record pertama)

#### G. Flow riwayat absensi (guru)
1. User akses "Riwayat"
2. Filter bulan/tahun (default: bulan ini)
3. Sistem:
   - Generate daftar tanggal dalam bulan tersebut
   - Tandai weekend sebagai "libur", weekday sebagai "kerja"
   - Ambil data absensi user dalam bulan tersebut
   - Match absensi dengan tanggal
4. Tampilan:
   - Kalender bulanan
   - Setiap tanggal menampilkan:
     - Jam masuk (jika ada)
     - Jam pulang (jika ada)
     - Foto selfie masuk/pulang
     - Status: "Hadir (Dalam Lokasi)", "Tidak Absen Masuk", "Tidak Absen Pulang"

---

### 5. Teknologi yang digunakan
- Framework: Laravel 11 (PHP 8.x)
- Frontend: Blade, Tailwind CSS, JavaScript, Leaflet (maps), Moment.js
- Database: MySQL/MariaDB
- File Storage: Laravel Storage
- Export: Maatwebsite Excel (PhpSpreadsheet)

---

### 6. Catatan teknis
1. Validasi lokasi dilakukan di client-side (JavaScript), tidak ada validasi server-side
2. Foto disimpan sebagai base64 lalu dikonversi ke file
3. Sistem hanya mendukung 1 lokasi absensi aktif
4. Export Excel hanya tersedia untuk admin
5. Password di-hash menggunakan bcrypt (Laravel default)

---

Kesimpulan: Sistem absensi guru berbasis web dengan GPS, selfie, pengajuan izin, manajemen data, dan export laporan untuk admin.

Bagikan Portfolio Ini:
Project Details
Category:

SYSTEM ABSENSI

Date:

25 October 2025

Ingin Project Seperti Ini?

Dapatkan project ini atau custom sesuai kebutuhan Anda

Pesan Project Ini Tersedia dalam paket ready atau custom
Previous Project Next Project
Aplikasi POS Kasir