288 lines
8.1 KiB
Markdown
288 lines
8.1 KiB
Markdown
# 🎓 Data Sampel Mata Kuliah Universitas Bhayangkara Jakarta Raya
|
|
|
|
## Daftar Mata Kuliah Semester 4 Jurusan Teknik Informatika
|
|
|
|
### 1. Pemrograman Berorientasi Objek (PBO2024)
|
|
```
|
|
Kode Mata Kuliah : PBO2024
|
|
Nama Mata Kuliah : Pemrograman Berorientasi Objek
|
|
Dosen Pengampu : Dr. Imam Riadi
|
|
Kredit : 3 SKS
|
|
Jadwal : Senin 08:00-09:30
|
|
Ruang Kelas : A-101
|
|
Semester : 4
|
|
Status : Aktif
|
|
```
|
|
|
|
### 2. Pemrograman Mobile (MOBILE2024)
|
|
```
|
|
Kode Mata Kuliah : MOBILE2024
|
|
Nama Mata Kuliah : Pemrograman Mobile
|
|
Dosen Pengampu : Prof. Dr. Suhardi
|
|
Kredit : 3 SKS
|
|
Jadwal : Selasa 10:00-11:30
|
|
Ruang Kelas : B-205
|
|
Semester : 4
|
|
Status : Aktif
|
|
```
|
|
|
|
### 3. Basis Data (BD2024)
|
|
```
|
|
Kode Mata Kuliah : BD2024
|
|
Nama Mata Kuliah : Basis Data
|
|
Dosen Pengampu : Dr. Eka Raharjan
|
|
Kredit : 3 SKS
|
|
Jadwal : Rabu 13:00-14:30
|
|
Ruang Kelas : C-301
|
|
Semester : 4
|
|
Status : Aktif
|
|
```
|
|
|
|
### 4. Pengembangan Web (WEBDEV2024)
|
|
```
|
|
Kode Mata Kuliah : WEBDEV2024
|
|
Nama Mata Kuliah : Pengembangan Web
|
|
Dosen Pengampu : Dr. Yusuf Aji Pranoto
|
|
Kredit : 3 SKS
|
|
Jadwal : Kamis 08:00-09:30
|
|
Ruang Kelas : A-103
|
|
Semester : 4
|
|
Status : Aktif
|
|
```
|
|
|
|
### 5. User Interface Design (UI2024)
|
|
```
|
|
Kode Mata Kuliah : UI2024
|
|
Nama Mata Kuliah : User Interface Design
|
|
Dosen Pengampu : Dr. I Made Sukarsa
|
|
Kredit : 2 SKS
|
|
Jadwal : Jumat 10:00-11:00
|
|
Ruang Kelas : D-401
|
|
Semester : 4
|
|
Status : Aktif
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Contoh Data Kehadiran
|
|
|
|
### Format JSON untuk N8n Webhook
|
|
|
|
```json
|
|
{
|
|
"npm": "202310715082",
|
|
"nama": "Fazri Abdurrahman",
|
|
"courseId": "COURSE_001",
|
|
"courseCode": "PBO2024",
|
|
"courseName": "Pemrograman Berorientasi Objek",
|
|
"latitude": -6.123456,
|
|
"longitude": 106.654321,
|
|
"timestamp": 1705228530000,
|
|
"date": "2025-01-14",
|
|
"time": "08:15:30",
|
|
"status": "PRESENT",
|
|
"foto_base64": "[base64_encoded_image_here]"
|
|
}
|
|
```
|
|
|
|
### Format Penyimpanan di SharedPreferences
|
|
|
|
```json
|
|
{
|
|
"attendanceId": "202310715082_COURSE_001_2025-01-14_1705228530000",
|
|
"npm": "202310715082",
|
|
"nama": "Fazri Abdurrahman",
|
|
"courseId": "COURSE_001",
|
|
"courseCode": "PBO2024",
|
|
"courseName": "Pemrograman Berorientasi Objek",
|
|
"latitude": -6.123456,
|
|
"longitude": 106.654321,
|
|
"timestamp": 1705228530000,
|
|
"date": "2025-01-14",
|
|
"time": "08:15:30",
|
|
"status": "PRESENT",
|
|
"isValid": true,
|
|
"validationMessage": "Lokasi valid, dalam radius area absensi",
|
|
"submissionResult": "Success: ✓ Absensi diterima server",
|
|
"fotoBase64": "[base64_encoded_image]"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Contoh Laporan Kehadiran
|
|
|
|
### Laporan untuk Mata Kuliah PBO2024 (Data Fiktif)
|
|
|
|
```
|
|
Mata Kuliah : Pemrograman Berorientasi Objek (PBO2024)
|
|
Dosen : Dr. Imam Riadi
|
|
Periode : Semester 4 (2024-2025)
|
|
|
|
Statistik Kehadiran:
|
|
├── Total Sesi : 14 sesi
|
|
├── Hadir : 12 sesi (85.7%)
|
|
├── Terlambat : 1 sesi (7.1%)
|
|
├── Tidak Hadir : 1 sesi (7.1%)
|
|
└── Izin/Sakit : 0 sesi (0%)
|
|
|
|
Persentase Kehadiran: 92.8% ✅ (Memuaskan - Melewati threshold 80%)
|
|
|
|
Detail Kehadiran:
|
|
┌─────────────────┬────────────┬─────────────┬───────────────┐
|
|
│ Tanggal │ Hari │ Waktu │ Status │
|
|
├─────────────────┼────────────┼─────────────┼───────────────┤
|
|
│ 2025-01-06 │ Senin │ 08:10:45 │ Hadir │
|
|
│ 2025-01-13 │ Senin │ 08:15:30 │ Hadir │
|
|
│ 2025-01-20 │ Senin │ 08:32:15 │ Terlambat │
|
|
│ 2025-01-27 │ Senin │ 09:45:00 │ Tidak Hadir │
|
|
│ 2025-02-03 │ Senin │ 08:08:22 │ Hadir │
|
|
│ 2025-02-10 │ Senin │ 08:12:10 │ Hadir │
|
|
│ 2025-02-17 │ Senin │ 08:05:50 │ Hadir │
|
|
│ 2025-02-24 │ Senin │ 08:20:30 │ Hadir │
|
|
│ 2025-03-03 │ Senin │ 08:09:15 │ Hadir │
|
|
│ 2025-03-10 │ Senin │ 08:14:45 │ Hadir │
|
|
│ 2025-03-17 │ Senin │ 08:11:20 │ Hadir │
|
|
│ 2025-03-24 │ Senin │ 08:06:40 │ Hadir │
|
|
│ 2025-03-31 │ Senin │ 08:19:25 │ Hadir │
|
|
│ 2025-04-07 │ Senin │ 08:07:35 │ Hadir │
|
|
└─────────────────┴────────────┴─────────────┴───────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 🔐 Contoh Data Mahasiswa
|
|
|
|
```kotlin
|
|
// Data yang disimpan di AttendanceConfig (untuk testing)
|
|
const val STUDENT_NPM = "202310715082"
|
|
const val STUDENT_NAMA = "Fazri Abdurrahman"
|
|
|
|
// Di production, data ini bisa diambil dari:
|
|
// 1. Shared Preferences
|
|
// 2. Local Database (SQLite/Room)
|
|
// 3. Secure Server API
|
|
// 4. Authentication System
|
|
```
|
|
|
|
---
|
|
|
|
## 📍 Koordinat Lokasi Absensi
|
|
|
|
### Koordinat Universitas Bhayangkara Jakarta Raya
|
|
|
|
```
|
|
Campus Utama:
|
|
Latitude : -6.123456 (Contoh)
|
|
Longitude : 106.654321 (Contoh)
|
|
Radius : 100 meter
|
|
|
|
Lokasi Absensi (Gedung A):
|
|
Latitude : -6.123500
|
|
Longitude : 106.654400
|
|
Radius : ±100 meter dari koordinat
|
|
```
|
|
|
|
**Catatan**: Koordinat yang digunakan dapat disesuaikan dengan lokasi sebenarnya.
|
|
|
|
---
|
|
|
|
## 📱 Sample Response dari N8n
|
|
|
|
### Success Response
|
|
```json
|
|
{
|
|
"statusCode": 200,
|
|
"message": "✓ Absensi diterima server",
|
|
"data": {
|
|
"id": "65a1b2c3d4e5f6g7h8i9",
|
|
"npm": "202310715082",
|
|
"timestamp": "2025-01-14T08:15:30Z",
|
|
"courseCode": "PBO2024",
|
|
"status": "RECEIVED",
|
|
"googleSheetId": "1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Error Response
|
|
```json
|
|
{
|
|
"statusCode": 400,
|
|
"message": "Lokasi tidak valid - Anda berada di luar area absensi",
|
|
"errorCode": "INVALID_LOCATION"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🗂️ Struktur Storage SharedPreferences
|
|
|
|
```
|
|
course_attendance_db/
|
|
├── courses_list (String - JSON)
|
|
│ └── Array of Course objects
|
|
├── attendance_list (String - JSON)
|
|
│ └── Array of Attendance objects
|
|
└── selected_course (String - JSON)
|
|
└── Single Course object (last selected)
|
|
|
|
Total Entries per Course:
|
|
- Metadata: 1 entry (course info)
|
|
- Attendances: N entries (one per absensi)
|
|
- Total: N+1 entries per course
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Testing Checklist
|
|
|
|
### ✅ Fitur Mata Kuliah
|
|
- [ ] Daftar mata kuliah tampil dengan benar
|
|
- [ ] Info detail setiap mata kuliah akurat
|
|
- [ ] Dapat memilih mata kuliah
|
|
- [ ] Pilihan tersimpan untuk session berikutnya
|
|
- [ ] 5 mata kuliah sample terlihat
|
|
|
|
### ✅ Fitur Absensi
|
|
- [ ] Dapat memilih mata kuliah sebelum absensi
|
|
- [ ] Foto dapat diambil
|
|
- [ ] Lokasi terdeteksi dan valid
|
|
- [ ] Tombol kirim hanya aktif jika lengkap
|
|
- [ ] Data terkirim ke N8n
|
|
|
|
### ✅ Fitur Kehadiran
|
|
- [ ] Data tersimpan di SharedPreferences
|
|
- [ ] Dapat melihat riwayat kehadiran
|
|
- [ ] Setiap record menampilkan tanggal dan waktu
|
|
- [ ] Status kehadiran menampilkan dengan warna tepat
|
|
- [ ] Multiple records dapat disimpan
|
|
|
|
### ✅ Fitur Laporan
|
|
- [ ] Laporan kehadiran tampil dengan benar
|
|
- [ ] Persentase dihitung dengan akurat
|
|
- [ ] Statistik menampilkan dengan visual yang baik
|
|
- [ ] Perubahan status tercermin dalam report
|
|
- [ ] Report update setelah absensi baru
|
|
|
|
---
|
|
|
|
## 📚 Referensi
|
|
|
|
### Links yang Relevan
|
|
- N8n Webhook Test: https://n8n.lab.ubharajaya.ac.id/webhook-test/23c6993d-1792-48fb-ad1c-ffc78a3e6254
|
|
- N8n Webhook Prod: https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254
|
|
- Google Sheet: https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs
|
|
|
|
### Documentation
|
|
- Dokumentasi Lengkap: `COURSE_ATTENDANCE_FEATURE.md`
|
|
- Summary Implementasi: `IMPLEMENTATION_SUMMARY.md`
|
|
- Dokumentasi Awal: `DOKUMENTASI.md`
|
|
|
|
---
|
|
|
|
**Dibuat**: 14 Januari 2026
|
|
**Status**: Active
|
|
**Version**: 1.0
|
|
|