Lewati ke konten utama

BAB 21. USE CASE DESCRIPTION

Pendahuluan

Bab ini mendeskripsikan setiap use case utama secara rinci sehingga dapat langsung diterjemahkan menjadi endpoint API, service layer Laravel, dan flow UI Flutter.


UC-001 — Login Pengguna

AtributDeskripsi
IDUC-001
NamaLogin Pengguna
AktorSiswa, Guru, Admin Sekolah, Super Admin
TujuanMengautentikasi pengguna ke sistem
TriggerPengguna membuka aplikasi dan menekan tombol Login
PrasyaratAkun sudah tersinkron dari Dapodik
HasilSession dan token autentikasi aktif

Alur Utama

  1. Pengguna memasukkan username (NISN/NIP)
  2. Pengguna memasukkan password
  3. Sistem memvalidasi kredensial
  4. Sistem membuat access token (Laravel Sanctum)
  5. Sistem mengembalikan profil pengguna
  6. Pengguna masuk ke dashboard

Alur Alternatif

KondisiPenanganan
Password salahTampilkan pesan error, kembali ke form
Akun tidak ditemukanTampilkan pesan "akun tidak terdaftar"
Akun dinonaktifkanTampilkan pesan "akun tidak aktif"
Token gagal dibuatLog error, tampilkan pesan umum

Post Condition

  • Token Laravel Sanctum aktif dan tersimpan di Secure Storage
  • Login history tercatat di database
  • Device pengguna tercatat

UC-002 — Ganti Password Pertama

AtributDeskripsi
IDUC-002
AktorSemua Pengguna
TujuanMengganti password awal demi keamanan akun
TriggerLogin pertama berhasil
PrasyaratFlag must_change_password = true

Alur

  1. Sistem mendeteksi flag must_change_password = true
  2. Sistem menampilkan form password baru
  3. Pengguna mengisi password baru
  4. Pengguna mengkonfirmasi password
  5. Sistem menyimpan hash password baru
  6. Sistem mengubah flag menjadi false

Validasi

  • Minimal 8 karakter
  • Mengandung huruf dan angka
  • Password dan konfirmasi harus sama persis

UC-003 — Membuat Request Bantuan

AtributDeskripsi
IDUC-003
AktorSiswa
TujuanMembuat permintaan bantuan belajar

Alur

  1. Siswa memilih mata pelajaran
  2. Memilih materi spesifik
  3. Menjelaskan masalah yang dihadapi
  4. Menentukan jumlah tutor yang dibutuhkan
  5. Menentukan lokasi pertemuan
  6. Menentukan waktu yang diinginkan
  7. Menentukan durasi diskusi
  8. Menekan tombol Kirim

Output

  • Request tersimpan di database
  • AI Matching Engine dijalankan secara otomatis
  • Status request berubah menjadi SEARCHING

UC-004 — AI Matching Tutor

AtributDeskripsi
IDUC-004
AktorAI Matching Engine
TujuanMenentukan tutor terbaik secara otomatis

Alur

  1. Mengambil data request yang masuk
  2. Mengambil seluruh kandidat tutor yang sesuai
  3. Menghitung skor kesesuaian multi-faktor
  4. Mengurutkan kandidat berdasarkan skor tertinggi
  5. Memilih tutor terbaik sebagai prioritas
  6. Mengirim push notification ke tutor terpilih

Faktor Skor AI

FaktorBobot
Kesesuaian skillTinggi
Rating rata-rataTinggi
Riwayat keberhasilanSedang
Ketersediaan waktuTinggi
Jarak lokasiSedang
Beban sesi aktifTinggi

Output

  • Daftar tutor prioritas dengan matching score
  • Notifikasi terkirim ke tutor terpilih
  • Status request diperbarui

UC-005 — Booking Tutor

AtributDeskripsi
IDUC-005
AktorTutor (Siswa)
TujuanMenerima atau menolak permintaan bantuan

Opsi Respon

OpsiAksi Sistem
AcceptBooking aktif, chat room dibuat
RejectAI mencari tutor alternatif
RescheduleSiswa menerima penawaran jadwal baru

Output

  • Status booking diperbarui
  • Chat room dibuat secara otomatis jika Accept
  • Jadwal tersimpan di kalender

UC-006 — Check-In Pertemuan

AtributDeskripsi
IDUC-006
AktorSeluruh Peserta
TujuanMemvalidasi kehadiran secara digital

Validasi yang Dilakukan

  • QR Code valid dan belum kadaluarsa
  • GPS berada dalam radius ≤ 100 meter
  • Waktu Check-In sesuai jadwal yang disepakati

Output

  • Status sesi berubah menjadi ON_GOING
  • Timer durasi mulai dihitung
  • Timestamp kehadiran tercatat

UC-007 — Check-Out Pertemuan

AtributDeskripsi
IDUC-007
AktorSeluruh Peserta
TujuanMengakhiri sesi belajar secara resmi

Data yang Disimpan

DataKeterangan
Waktu selesaiTimestamp Check-Out
Total durasiSelisih Check-In & Check-Out
RingkasanCatatan hasil diskusi
Foto dokumentasiUpload foto opsional
Status penyelesaianSolved / Partially Solved / Not Solved

Output

  • Sesi dinyatakan selesai
  • Form rating dibuka untuk semua peserta
  • XP dihitung dan siap dikreditkan

UC-008 — Memberi Rating

AtributDeskripsi
IDUC-008
AktorSeluruh Peserta
TujuanMenilai kualitas tutor dan sesi

Input

FieldDetail
RatingSkala 1–5 bintang
KomentarTeks opsional
Masalah terselesaikan?Ya / Sebagian / Tidak

Output

  • Rating rata-rata tutor diperbarui
  • Social Impact Score (SIS) diperbarui
  • Leaderboard diperbarui harian