2026-01-13 13:59:42 +07:00
2026-01-12 11:58:15 +07:00
2026-01-12 11:58:15 +07:00
2026-01-12 11:58:15 +07:00
2026-01-12 11:58:15 +07:00
2026-01-12 11:58:15 +07:00
2026-01-12 11:58:15 +07:00
2026-01-12 15:32:34 +07:00
2026-01-13 14:37:01 +07:00
2026-01-12 11:58:15 +07:00

📱 Aplikasi Absensi Akademik Berbasis Koordinat dan Foto (Mobile)

📌 Deskripsi Proyek

Proyek ini merupakan Tugas Project Akhir Mata Kuliah Pemrograman Mobile yang bertujuan untuk membangun aplikasi akademik berbasis mobile dengan fokus pada fitur absensi menggunakan data koordinat (GPS) dan pengambilan foto mahasiswa.

Aplikasi ini dirancang untuk meningkatkan validitas kehadiran mahasiswa, dengan memastikan bahwa absensi hanya dapat dilakukan apabila mahasiswa:

  1. Berada pada lokasi yang telah ditentukan (khusus status "Hadir"), dan
  2. Melakukan pengambilan foto (selfie) secara langsung saat absensi untuk semua status kehadiran.

🎯 Tujuan Proyek

  • Mengimplementasikan Location-Based Service (LBS) pada aplikasi mobile untuk validasi kehadiran.
  • Mengintegrasikan kamera perangkat untuk dokumentasi dan verifikasi absensi.
  • Mencegah kecurangan absensi (titip absen) dengan menggabungkan validasi lokasi dan foto.
  • Mengembangkan aplikasi mobile akademik modern berbasis Android dengan Jetpack Compose.
  • Melatih kemampuan perancangan dan implementasi aplikasi mobile yang andal dan mudah digunakan.

🚀 Fitur Utama

  • 🔐 Login Pengguna: Sistem otentikasi sederhana untuk mahasiswa.
  • 🏫 Pemilihan Mata Kuliah: Mahasiswa dapat memilih mata kuliah yang akan diikuti.
  • 📊 Pilihan Status Kehadiran: Mahasiswa dapat memilih status "Hadir", "Sakit", atau "Izin".
  • 📍 Validasi Lokasi (Hadir): Saat memilih "Hadir", aplikasi akan memvalidasi lokasi mahasiswa. Absensi hanya bisa dilakukan di dalam radius yang telah ditentukan dari kampus.
  • 📸 Pengambilan Foto: Mahasiswa diwajibkan mengambil foto (selfie) untuk semua status kehadiran sebagai bukti.
  • 📝 Input Keterangan (Sakit/Izin): Untuk status "Sakit" dan "Izin", mahasiswa dapat menambahkan keterangan opsional.
  • 🕒 Pencatatan Real-time: Semua data absensi (lokasi, foto, waktu, status, keterangan) dikirim ke server secara real-time.
  • 📄 Riwayat Kehadiran: (Fitur dalam pengembangan) Akan menampilkan riwayat absensi mahasiswa.

🗺️ Alur Kerja Aplikasi

  1. Mahasiswa membuka aplikasi dan melakukan login.
  2. Di halaman utama, mahasiswa memilih mata kuliah.
  3. Mahasiswa memilih status kehadiran ("Hadir", "Sakit", atau "Izin").
    • Jika "Hadir": Aplikasi akan otomatis mengambil dan memvalidasi lokasi. Jika di luar radius, pengiriman absensi akan dinonaktifkan.
    • Jika "Sakit" atau "Izin": Aplikasi tetap mengambil data lokasi (jika tersedia) tanpa validasi radius, dan menampilkan kolom keterangan opsional.
  4. Mahasiswa mengambil foto (selfie) sebagai bukti kehadiran.
  5. Mahasiswa menekan tombol "Kirim Absensi" untuk merekam data kehadiran.
  6. Data absensi dikirim ke server dan juga disimpan secara lokal di perangkat.

🛠️ Teknologi yang Digunakan

  • Platform: Android
  • Bahasa Pemrograman: Kotlin
  • Arsitektur UI: Jetpack Compose
  • Manajemen State: ViewModel dan MutableState
  • Navigasi: Navigation Compose
  • Location Service: Fused Location Provider (dari Google Play Services)
  • Konektivitas: N8n Webhook untuk pengiriman data ke backend.
  • IDE: Android Studio

🔐 Izin Aplikasi (Permissions)

Aplikasi ini memerlukan izin berikut untuk dapat berfungsi dengan baik:

  • ACCESS_FINE_LOCATION: Untuk mendapatkan data lokasi yang akurat.
  • CAMERA: Untuk mengambil foto saat absensi.
  • INTERNET: Untuk mengirim data absensi ke server.

📂 Mockup

mockup Gambar mockup dibuat oleh AI.

Catatan:

  • Starter project ini dibuat dengan bantuan AI.
  • Kembangkan project dari starter yang sudah disediakan, jangan membuat dari awal.
  • Untuk koordinat, data diambil langsung dari GPS perangkat. Pastikan GPS dalam keadaan aktif untuk fungsionalitas yang optimal.

Pengecekan & Webhook

  • Pengecekan Data: Lihat Google Sheet
  • Webhook (Production): https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254
  • Webhook (Test): https://n8n.lab.ubharajaya.ac.id/webhook-test/23c6993d-1792-48fb-ad1c-ffc78a3e6254
Description
No description provided
Readme 883 KiB
Languages
Kotlin 100%