8.1 KiB
8.1 KiB
🎓 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
{
"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
{
"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
// 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
{
"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
{
"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