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

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