# 🎓 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