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