Absensi GPS
Arsitektur Sistem
Backend
Frontend
API
  • Struktur
  • Alur Kerja
  • Implementasi GPS
  • Pengembangan dan Pengujian
Deployment
Pengujian
Arsitektur Sistem
Backend
Frontend
API
  • Struktur
  • Alur Kerja
  • Implementasi GPS
  • Pengembangan dan Pengujian
Deployment
Pengujian
  • Arsitektur Sistem

Arsitektur Sistem

Gambaran Umum

Aplikasi Absensi GPS menggunakan arsitektur terdistribusi yang terdiri dari tiga komponen utama:

  1. Backend - Aplikasi server berbasis Laravel
  2. Frontend Admin - Aplikasi web berbasis Vue.js
  3. Aplikasi Mobile - Aplikasi Android untuk siswa

Teknologi yang Digunakan

Backend

  • Laravel 12 - Framework PHP untuk pengembangan backend
  • MySQL - Database relasional untuk penyimpanan data
  • Laravel Sanctum - Untuk autentikasi API frontend
  • API Key Authentication - Untuk autentikasi API mobile

Frontend

  • Vue.js 3 - Framework JavaScript untuk pengembangan frontend
  • Inertia.js - Library untuk menghubungkan Laravel dan Vue.js
  • Shadcn UI - Komponen UI untuk tampilan yang konsisten
  • Chart.js - Library untuk membuat visualisasi data

Mobile

  • Android (Kotlin) - Platform untuk aplikasi mobile
  • Retrofit - Library untuk komunikasi HTTP dengan API
  • Google Maps API - Untuk fitur GPS dan peta

Alur Data

  1. Siswa menggunakan aplikasi Android untuk melakukan absensi dengan GPS
  2. Aplikasi Android mengirim data absensi ke backend melalui API
  3. Backend memproses dan menyimpan data absensi ke database
  4. Admin/Guru mengakses data absensi melalui frontend web
  5. Frontend mengambil data dari backend melalui API

Struktur Database

Aplikasi ini menggunakan database MySQL dengan struktur tabel sebagai berikut:

Tabel users

  • id (primary key)
  • name
  • email
  • password
  • role (admin, guru)

Tabel kelas

  • id (primary key)
  • nama_kelas
  • deskripsi

Tabel siswa

  • id (primary key)
  • id_siswa (unique)
  • nama
  • password
  • kelas_id (foreign key)
  • alamat
  • no_telp
  • email

Tabel absensi

  • id (primary key)
  • siswa_id (foreign key)
  • tanggal
  • waktu_masuk
  • waktu_keluar
  • status (hadir, sakit, izin, alpha)
  • lokasi_masuk
  • lokasi_keluar

Keamanan

  • API Key Authentication - Untuk mengamankan API yang diakses oleh aplikasi mobile
  • Laravel Sanctum - Untuk mengamankan API yang diakses oleh frontend
  • Password Hashing - Untuk mengamankan password pengguna
  • CSRF Protection - Untuk melindungi dari serangan CSRF
  • Validasi Input - Untuk mencegah SQL Injection dan XSS
Last Updated:: 5/15/25, 9:30 PM
Contributors: Nur Wahyudin