Update README.md

This commit is contained in:
202310715277 LALU MUHAMMAD ANGGANA SUBHAN 2026-01-14 21:50:38 +07:00
parent e199d75042
commit 7ac861cb66

142
README.md
View File

@ -1,10 +1,8 @@
# 🎓 Sistem Absensi Akademik - Universitas Bhayangkara Jakarta Raya # Sistem Absensi Akademik - Universitas Bhayangkara Jakarta Raya
## 📋 Deskripsi ## 📋 Deskripsi
Aplikasi mobile berbasis Android untuk sistem absensi mahasiswa dengan validasi lokasi GPS dan verifikasi foto. Aplikasi mobile berbasis Android untuk sistem absensi mahasiswa dengan validasi lokasi GPS dan verifikasi foto.
---
## 🚀 Fitur Utama ## 🚀 Fitur Utama
### ✅ Sudah Diimplementasikan: ### ✅ Sudah Diimplementasikan:
@ -16,8 +14,6 @@ Aplikasi mobile berbasis Android untuk sistem absensi mahasiswa dengan validasi
- 📄 **Riwayat Kehadiran** - History absensi mahasiswa - 📄 **Riwayat Kehadiran** - History absensi mahasiswa
- ⚠️ **Notifikasi Ditolak** - Alert jika lokasi di luar radius atau error - ⚠️ **Notifikasi Ditolak** - Alert jika lokasi di luar radius atau error
---
## 📁 Struktur File ## 📁 Struktur File
``` ```
@ -29,13 +25,11 @@ id.ac.ubharajaya.sistemakademik/
└── SessionManager.kt # Manajemen session login └── SessionManager.kt # Manajemen session login
``` ```
---
## 🔧 Setup & Instalasi ## 🔧 Setup & Instalasi
### 1. **Buat File-File Berikut:** ### 1. Buat File-File Berikut:
**Struktur folder:** Struktur folder:
``` ```
app/src/main/java/id/ac/ubharajaya/sistemakademik/ app/src/main/java/id/ac/ubharajaya/sistemakademik/
├── LoginActivity.kt ├── LoginActivity.kt
@ -45,10 +39,10 @@ app/src/main/java/id/ac/ubharajaya/sistemakademik/
└── SessionManager.kt └── SessionManager.kt
``` ```
### 2. **Update AndroidManifest.xml** ### 2. Update AndroidManifest.xml
Ganti file AndroidManifest.xml dengan yang sudah disediakan. Ganti file `AndroidManifest.xml` dengan yang sudah disediakan.
### 3. **Dependencies (build.gradle)** ### 3. Dependencies (build.gradle)
Pastikan dependencies berikut sudah ada di `build.gradle.kts (Module: app)`: Pastikan dependencies berikut sudah ada di `build.gradle.kts (Module: app)`:
```kotlin ```kotlin
@ -68,7 +62,7 @@ dependencies {
} }
``` ```
### 4. **Koordinat Kampus** ### 4. Koordinat Kampus
Di file `MainActivity.kt`, ganti koordinat kampus sesuai lokasi asli: Di file `MainActivity.kt`, ganti koordinat kampus sesuai lokasi asli:
```kotlin ```kotlin
@ -77,42 +71,44 @@ val kampusLon = 106.816666 // Longitude kampus
val maxRadius = 100.0 // Radius dalam meter val maxRadius = 100.0 // Radius dalam meter
``` ```
---
## 🌐 Endpoint API yang Dibutuhkan ## 🌐 Endpoint API yang Dibutuhkan
### 1. **Login Endpoint** ### 1. Login Endpoint
``` **POST** `https://n8n.lab.ubharajaya.ac.id/webhook/login-mahasiswa`
POST https://n8n.lab.ubharajaya.ac.id/webhook/login-mahasiswa
Request Body: **Request Body:**
```json
{ {
"npm": "12345", "npm": "202310715277",
"password": "password123" "password": "password123"
} }
```
Response Success: **Response Success:**
```json
{ {
"success": true, "success": true,
"nama": "Arif R D", "nama": "Lalu Muhammad Anggana Subhan",
"prodi": "Teknik Informatika" "prodi": "Teknik Informatika"
} }
```
Response Failed: **Response Failed:**
```json
{ {
"success": false, "success": false,
"message": "NPM atau Password salah" "message": "NPM atau Password salah"
} }
``` ```
### 2. **Absensi Endpoint** (Sudah Ada) ### 2. Absensi Endpoint (Sudah Ada)
``` **POST** `https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254`
POST https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254
Request Body: **Request Body:**
```json
{ {
"npm": "12345", "npm": "202310715277",
"nama": "Arif R D", "nama": "Lalu Muhammad Anggana Subhan",
"latitude": -6.200000, "latitude": -6.200000,
"longitude": 106.816666, "longitude": 106.816666,
"jarak_dari_kampus": 50, "jarak_dari_kampus": 50,
@ -122,16 +118,16 @@ Request Body:
} }
``` ```
### 3. **Riwayat Absensi Endpoint** ### 3. Riwayat Absensi Endpoint
``` **GET** `https://n8n.lab.ubharajaya.ac.id/webhook/riwayat-absensi?npm=202310715277`
GET https://n8n.lab.ubharajaya.ac.id/webhook/riwayat-absensi?npm=12345
Response: **Response:**
```json
[ [
{ {
"id": "1", "id": "1",
"npm": "12345", "npm": "202310715277",
"nama": "Arif R D", "nama": "Lalu Muhammad Anggana Subhan",
"waktu": "14/01/2026 10:30:00", "waktu": "14/01/2026 10:30:00",
"latitude": -6.200000, "latitude": -6.200000,
"longitude": 106.816666, "longitude": 106.816666,
@ -141,36 +137,32 @@ Response:
] ]
``` ```
---
## 📱 Cara Menggunakan Aplikasi ## 📱 Cara Menggunakan Aplikasi
### **Login** ### Login
1. Buka aplikasi 1. Buka aplikasi
2. Masukkan NPM dan Password 2. Masukkan NPM dan Password
3. Klik tombol "Login" 3. Klik tombol "Login"
4. Jika berhasil, akan masuk ke halaman absensi 4. Jika berhasil, akan masuk ke halaman absensi
### **Melakukan Absensi** ### Melakukan Absensi
1. Pastikan GPS aktif 1. Pastikan GPS aktif
2. Aplikasi otomatis mengambil lokasi 2. Aplikasi otomatis mengambil lokasi
3. Klik "Ambil Foto" untuk foto selfie 3. Klik "Ambil Foto" untuk foto selfie
4. Klik "Kirim Absensi" 4. Klik "Kirim Absensi"
5. Sistem akan validasi: 5. Sistem akan validasi:
- ✅ **Valid** jika dalam radius 100m dari kampus - ✅ Valid jika dalam radius 100m dari kampus
- ❌ **Ditolak** jika di luar radius - ❌ Ditolak jika di luar radius
### **Lihat Riwayat** ### Lihat Riwayat
1. Klik icon History (jam) di toolbar 1. Klik icon History (jam) di toolbar
2. Lihat daftar riwayat absensi 2. Lihat daftar riwayat absensi
3. Status ditampilkan: 3. Status ditampilkan:
- ✅ Valid (hijau) - ✅ Valid (hijau)
- ❌ Ditolak (merah) - ❌ Ditolak (merah)
### **Logout** ### Logout
- Klik icon Logout di toolbar 1. Klik icon Logout di toolbar
---
## 🔒 Keamanan ## 🔒 Keamanan
@ -179,11 +171,9 @@ Response:
- **Location Validation**: Validasi radius GPS otomatis - **Location Validation**: Validasi radius GPS otomatis
- **Photo Required**: Foto wajib untuk setiap absensi - **Photo Required**: Foto wajib untuk setiap absensi
---
## ⚙️ Pengaturan Validasi ## ⚙️ Pengaturan Validasi
**Validasi Radius (di MainActivity.kt):** **Validasi Radius** (di `MainActivity.kt`):
```kotlin ```kotlin
val maxRadius = 100.0 // Ubah sesuai kebutuhan (dalam meter) val maxRadius = 100.0 // Ubah sesuai kebutuhan (dalam meter)
``` ```
@ -194,31 +184,27 @@ val kampusLat = -6.200000 // Ganti dengan koordinat kampus
val kampusLon = 106.816666 // Ganti dengan koordinat kampus val kampusLon = 106.816666 // Ganti dengan koordinat kampus
``` ```
---
## 🐛 Troubleshooting ## 🐛 Troubleshooting
### **GPS Tidak Terdeteksi** ### GPS Tidak Terdeteksi
- Pastikan GPS/Location aktif di HP - Pastikan GPS/Location aktif di HP
- Coba klik "Refresh Lokasi" - Coba klik "Refresh Lokasi"
- Pastikan permission lokasi sudah diberikan - Pastikan permission lokasi sudah diberikan
### **Absensi Ditolak** ### Absensi Ditolak
- Cek jarak dari kampus di pesan error - Cek jarak dari kampus di pesan error
- Pastikan berada dalam radius yang ditentukan - Pastikan berada dalam radius yang ditentukan
- Koordinat kampus mungkin salah, cek lagi - Koordinat kampus mungkin salah, cek lagi
### **Login Gagal** ### Login Gagal
- Cek koneksi internet - Cek koneksi internet
- Pastikan server n8n aktif - Pastikan server n8n aktif
- Cek endpoint login sudah benar - Cek endpoint login sudah benar
### **Foto Tidak Muncul** ### Foto Tidak Muncul
- Pastikan permission kamera sudah diberikan - Pastikan permission kamera sudah diberikan
- Coba ambil foto ulang - Coba ambil foto ulang
---
## 📝 Testing Checklist ## 📝 Testing Checklist
- [ ] Login dengan NPM dan Password valid - [ ] Login dengan NPM dan Password valid
@ -233,37 +219,35 @@ val kampusLon = 106.816666 // Ganti dengan koordinat kampus
- [ ] Status valid/ditolak sesuai - [ ] Status valid/ditolak sesuai
- [ ] Logout berfungsi - [ ] Logout berfungsi
---
## 🎯 Future Improvements ## 🎯 Future Improvements
- [ ] Face Recognition untuk validasi foto - Face Recognition untuk validasi foto
- [ ] Notifikasi push untuk jadwal absensi - Notifikasi push untuk jadwal absensi
- [ ] QR Code scanning - QR Code scanning
- [ ] Offline mode dengan sync - Offline mode dengan sync
- [ ] Export riwayat ke PDF - Export riwayat ke PDF
- [ ] Multi-language support - Multi-language support
- [ ] Dark mode - Dark mode
- [ ] Fingerprint authentication - Fingerprint authentication
---
## 👨‍💻 Developer ## 👨‍💻 Developer
**Arif R D** **Lalu Muhammad Anggana Subhan**
NPM: 12345 NPM: 202310715277
Universitas Bhayangkara Jakarta Raya Universitas Bhayangkara Jakarta Raya
---
## 📄 License ## 📄 License
Copyright © 2026 Universitas Bhayangkara Jakarta Raya Copyright © 2026 Universitas Bhayangkara Jakarta Raya
---
## 📞 Support ## 📞 Support
Jika ada pertanyaan atau bug, hubungi tim IT: Jika ada pertanyaan atau bug, hubungi tim IT:
- Email: it@ubharajaya.ac.id
- Phone: (021) xxx-xxxx - **Email**: it@ubharajaya.ac.id
- **Phone**: (021) xxx-xxxx
---
**Version**: 1.0.0
**Last Updated**: 14 Januari 2026