82 lines
4.0 KiB
Markdown
82 lines
4.0 KiB
Markdown
* Nama : Hadi Guna Prakoso
|
|
* NPM : 202310715312
|
|
|
|
# Sistem Akademik Ubhara Jaya - Absensi LBS & Foto
|
|
|
|
Sistem Akademik Ubhara Jaya adalah aplikasi mobile berbasis Android yang dirancang khusus untuk meningkatkan validitas kehadiran mahasiswa. Proyek ini merupakan **Tugas Project Akhir Mata Kuliah Pemrograman Mobile**.
|
|
|
|
Aplikasi ini mengintegrasikan teknologi **Location-Based Service (LBS)** dan **Real-time Camera** untuk memastikan mahasiswa melakukan absensi dengan data lokasi dan bukti visual yang akurat.
|
|
|
|
---
|
|
|
|
## Pengembangan Berbasis AI
|
|
Project ini dikembangkan dengan pendekatan **AI-Assisted Development**. Bantuan kecerdasan buatan digunakan dalam:
|
|
* **Transformasi UI/UX**: Merancang tampilan modern menggunakan Jetpack Compose dengan prinsip Fresh & Premium Design.
|
|
* **Optimasi Logika**: Implementasi perhitungan jarak Haversine, validasi waktu perkuliahan yang presisi, dan otomatisasi status kehadiran.
|
|
* **Integrasi Webhook**: Mempermudah sinkronisasi data antara aplikasi mobile dengan backend n8n, Google Sheets, dan sistem notifikasi ntfy.
|
|
* **Troubleshooting**: Mempercepat penyelesaian error build, penyesuaian tipe data, dan pembersihan kode (Clean Code).
|
|
|
|
---
|
|
|
|
## Fitur Utama
|
|
|
|
### 1. Keamanan Akses (NPM Based)
|
|
* **Registrasi & Login**: Mahasiswa mendaftar menggunakan NPM, Nama, dan Password.
|
|
* **Sesi Terjaga**: Menggunakan `SharedPreferences` agar user tidak perlu login ulang setiap kali membuka aplikasi.
|
|
|
|
### 2. Presensi Berbasis Lokasi (GPS)
|
|
* **Real-time Tracking**: Mengambil koordinat Latitude dan Longitude secara instan.
|
|
* **Distance Calculation**: Menghitung jarak mahasiswa ke titik koordinat kampus secara otomatis.
|
|
* **Privacy Mode (Obfuscation)**: Fitur untuk menyamarkan lokasi presisi mahasiswa demi keamanan privasi rumah saat melakukan absen jarak jauh.
|
|
|
|
### 3. Validasi Waktu & Jadwal
|
|
* **Time Blocking**: Absensi dengan status "Hadir" hanya dapat dikirim jika waktu saat ini sesuai dengan jadwal mata kuliah (dengan toleransi 15 menit).
|
|
* **Flexible Attendance**: Status "Izin" atau "Sakit" diberikan dispensasi untuk absen di luar area kampus dan di luar jam perkuliahan.
|
|
|
|
### 4. Bukti Visual (Selfie)
|
|
* **In-App Camera**: Integrasi langsung dengan kamera depan perangkat.
|
|
* **Anti-Fraud**: Foto diambil secara live saat itu juga sebagai syarat utama pengiriman data.
|
|
|
|
### 5. Riwayat Absensi Terintegrasi
|
|
* Daftar riwayat lengkap menampilkan: Nama Matkul, Waktu (WIB), Foto Selfie, Koordinat GPS, Jarak ke Kampus, dan Status (Hadir/Izin/Sakit).
|
|
|
|
---
|
|
|
|
## Teknologi yang Digunakan
|
|
|
|
* **UI Framework**: Jetpack Compose (Material 3)
|
|
* **Language**: Kotlin
|
|
* **Navigation**: Jetpack Navigation Compose
|
|
* **Location**: Google Play Services Location (Fused Location Provider)
|
|
* **Networking**: HttpURLConnection (Integration with n8n Webhook)
|
|
* **Architecture**: Clean UI Components & Preferences Management
|
|
* **Backend & Data**:
|
|
* **n8n**: Sebagai automation engine.
|
|
* **Google Sheets**: Sebagai database utama penyimpanan laporan.
|
|
* **ntfy**: Sebagai sistem notifikasi real-time.
|
|
|
|
---
|
|
|
|
## Mekanisme Kerja
|
|
|
|
1. **Pilih Jadwal**: Mahasiswa memilih mata kuliah dari menu "Jadwal Kuliah".
|
|
2. **Validasi Otomatis**: Sistem mengecek apakah jam saat ini sesuai dengan jam matkul yang dipilih (khusus status "Hadir").
|
|
3. **Identifikasi Lokasi**: GPS mendeteksi koordinat dan menghitung jarak ke kampus.
|
|
4. **Verifikasi Foto**: Mahasiswa mengambil foto selfie.
|
|
5. **Pengiriman Data**: Data dikirim ke Webhook n8n dan diteruskan ke Google Spreadsheet secara otomatis.
|
|
|
|
---
|
|
|
|
## Mockup & Audit
|
|
Aplikasi ini telah melewati audit fitur sesuai dengan starter project dan dikembangkan lebih lanjut dengan standar UI modern.
|
|
|
|
## Pengecekan Data
|
|
Seluruh data absensi yang masuk dapat dipantau melalui:
|
|
* **Spreadsheet**: [Data Absensi Mahasiswa](https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs/edit?gid=0#gid=0)
|
|
* **Notifikasi**: [ntfy.ubharajaya.ac.id/EAS](https://ntfy.ubharajaya.ac.id/EAS)
|
|
|
|
---
|
|
|
|
**© 2026 - Project Akhir Pemrograman Mobile**
|
|
*Developed with ❤️ U.*
|