# 📱 Aplikasi Absensi Akademik Berbasis GPS & Foto

## 📌 Deskripsi Proyek
Project ini dibuat sebagai **Tugas Akhir / UAS Mata Kuliah Pemrograman Mobile**, bertujuan untuk membuat aplikasi **absensi berbasis Android** dengan teknologi:

- Pengambilan **lokasi GPS (latitude & longitude)** secara realtime  
- Pengambilan **foto mahasiswa saat absensi** sebagai bukti  
- Validasi absensi berdasarkan *location* dan *foto*  
- Menampilkan **riwayat absensi** mahasiswa  
- Menggunakan **Jetpack Compose** + **Material 3**  
- Tersedia fitur **Light / Dark Mode**, **Logout**, dan **Dropdown pilihan mata kuliah** :contentReference[oaicite:1]{index=1}

---

## 🎯 Tujuan Proyek
Tujuan utama aplikasi:

- Mengimplementasikan layanan **absensi berbasis lokasi & foto**  
- Validasi absensi agar mahasiswa tidak **titip absen**  
- Memberikan pengalaman penggunaan yang baik dengan UI Compose  
- Meningkatkan pemahaman dan penguasaan Android modern dengan Compose :contentReference[oaicite:2]{index=2}

---

## ✅ Fitur Utama
Aplikasi ini memiliki fitur-fitur berikut:

### 🧩 Authentication
✔️ Login dengan NPM & password  
✔️ Ikon login custom dari `drawable`  

### 📍 Absensi
✔️ Ambil **lokasi GPS** otomatis dengan izin lokasi  
✔️ Ambil **foto mahasiswa** dari kamera  
✔️ Validasi absensi berdasarkan lokasi dan foto  
✔️ Pilihan **mata kuliah** sebelum absensi  
✔️ Tampilkan waktu absensi   
✔️ Riwayat absensi dengan detail (nama, NPM, foto, lokasi)

### 📤 Logout
✔️ Logout untuk kembali ke halaman login  
✔️ Session login akan berakhir dan mencegah tombol back kembali ke Main :contentReference[oaicite:3]{index=3}

---

## 🛠 Teknologi yang Digunakan
| Teknologi | Keterangan |
|-----------|------------|
| **Android Studio** | IDE utama pengembangan |
| **Kotlin** | Bahasa pemrograman |  
| **Jetpack Compose** | UI modern deklaratif |
| **Material3** | UI komponen modern |
| **Google Location Services** | Ambil lokasi pengguna |
| **Camera API / CameraX** | Ambil foto langsung dari kamera |
| **Fused Location Provider** | Lokasi realtime | :contentReference[oaicite:4]{index=4}

---

## 🎨 Tampilan UI
– Login dengan ikon   
– Tombol Logout  
– Validasi lokasi dan foto saat absensi  
– Riwayat absensi dengan gambar & detail lokasi 

> *(Screenshot bisa ditambahkan di bawah section ini)*

---

## 🚀 Cara Menjalankan
1. **Clone repository**  
   ```bash
   git clone https://git.lab.ubharajaya.ac.id/202310715220-MUHAMMAD-FADZEL-HADEAN-RUKRUS/EAS-202310715220-MuhammadFadzelHR.git

## 👤 Author
- Muhammad Fadzel Hadean Rukrus
- NPM: 202310715220