2026-01-14 21:06:42 +07:00
2026-01-13 13:59:42 +07:00
EAS
2026-01-14 12:36:08 +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-14 21:06:42 +07:00
2026-01-12 11:58:15 +07:00

📱 Aplikasi Absensi Akademik Berbasis Koordinat dan Foto (Mobile)

Smart-Attendance adalah aplikasi Android inovatif yang dirancang untuk mengotomatisasi proses absensi mahasiswa. Aplikasi ini memastikan validitas data kehadiran dengan menggabungkan tiga pilar verifikasi: Identitas Digital (SQLite), Geografis (GPS), dan Biometrik Visual (Kamera). Seluruh data disinkronkan secara real-time ke Google Sheets melalui sistem automasi n8n.


📸 Pratinjau Antarmuka (Mockup)

Layar Registrasi Layar Login Dashboard Absensi
Register Login Dashboard
Registrasi Akun Baru (Nama, NPM, Password) Autentikasi Aman Berbasis NPM Validasi Lokasi, Foto & Mata Kuliah

📝 Ringkasan Proyek

Proyek ini dikembangkan untuk mendigitalisasi sistem absensi konvensional menjadi sistem yang lebih aman dan transparan. Dengan memanfaatkan sensor pada smartphone (GPS dan Kamera), aplikasi ini meminimalisir kemungkinan kecurangan absensi. Data yang dikirim mencakup identitas mahasiswa, posisi geografis yang presisi, serta bukti foto wajah yang diambil pada saat absensi dilakukan.


🛠️ Stack Teknologi & Tools

Kategori Teknologi/Tools
Bahasa Pemrograman Kotlin
UI Framework Jetpack Compose (Material 3)
Database Lokal SQLite (SQLiteOpenHelper)
Layanan Lokasi Google Play Services Location (Fused Location Provider)
Networking Java HttpURLConnection & JSONObject
Backend/Automation n8n.io Webhook Workflow
Database Cloud Google Sheets
IDE Android Studio Ladybug

🌟 Fitur Utama Aplikasi

  1. Sistem Registrasi & Login: Manajemen user lokal menggunakan SQLite dengan NPM sebagai unique key.
  2. Verifikasi Lokasi Real-time: Pengambilan koordinat otomatis dengan akurasi tinggi dan fitur Manual Refresh.
  3. Bukti Visual (Selfie): Integrasi kamera internal untuk pengambilan foto wajah sebagai syarat mutlak absensi.
  4. Input Mata Kuliah: Fleksibilitas bagi mahasiswa untuk mengisi mata kuliah yang sedang diikuti.
  5. Status Pengiriman: Notifikasi instan jika data berhasil atau gagal terkirim ke server n8n.
  6. Desain UI Modern: Menggunakan gradasi warna profesional dan komponen Material Design 3 yang responsif.

🔄 Evolusi Database & Kode

Database Schema Evolution

Database berkembang melalui 3 fase versi:

  • v1 & v2: Fokus pada username dan password sederhana.
  • v3 (Final): Penambahan kolom nama dan npm (sebagai ID unik) untuk sinkronisasi data yang lebih akurat sesuai data akademik asli.

Perbaikan Kode Utama (Summary Perubahan)

  • API Compatibility: Mengatasi error API 33 dengan menggunakan BundleCompat untuk pengambilan data parcelable (foto).
  • Presisi Lokasi: Migrasi dari lastLocation ke getCurrentLocation dengan Priority.PRIORITY_HIGH_ACCURACY untuk akurasi GPS maksimal.
  • Data Synchronization: Sinkronisasi fungsi login agar benar-benar menangkap Nama Asli dari database untuk dikirim ke server (sebelumnya hanya NPM).
  • String Formatting: Perbaikan format koordinat menggunakan Locale.US untuk mencegah error sistem pada pengaturan bahasa yang berbeda.
  • Error Handling: Penambahan blok try-catch pada networking dan validasi input kosong pada form registrasi.

🤖 AI-Assisted Development

Proyek ini dikembangkan dengan bantuan AI (Artificial Intelligence) untuk:

  • Optimasi logika pengambilan lokasi GPS yang efisien.
  • Perbaikan bug sintaksis dan referensi ikon yang hilang.
  • Pembuatan desain antarmuka yang estetis menggunakan Jetpack Compose.
  • Dokumentasi teknis dan penyusunan arsitektur data.

☁️ Integrasi Cloud (Backend)

Data dikirim ke endpoint Webhook n8n dalam format JSON. Workflow di n8n kemudian melakukan:

  1. Parsing Data: Memecah objek JSON (NPM, Nama, Koordinat, Base64 Foto).
  2. Formatting: Mengatur urutan data sesuai kolom.
  3. Storage: Memasukkan data ke baris terbaru di Google Sheets secara otomatis.

📊 Monitoring & Dokumentasi Lainnya

Data kehadiran dapat dipantau langsung melalui:


💡 Key Takeaways & Catatan Penting

  • Integritas Data: Foto dienkripsi ke Base64 untuk memudahkan transmisi data gambar melalui JSON.
  • Privacy: Pastikan izin lokasi hanya digunakan saat aplikasi aktif demi privasi pengguna.
  • Refresh GPS: Sangat disarankan menekan tombol refresh lokasi jika berada di dalam ruangan agar mendapatkan sinyal GPS yang stabil.

🎓 Informasi Akademik

  • Nama Mahasiswa: Nabila Suwandira
  • NPM: 202310715066
  • Program Studi: Teknik Informatika
  • Instansi: Universitas Bhayangkara Jakarta Raya
  • Mata Kuliah: Pemrograman Perangkat Bergerak
  • Tujuan: Proyek Evaluasi Akhir Semester (EAS) TA 2025-2026
Description
No description provided
Readme 832 KiB
Languages
Kotlin 100%