Lewati ke konten utama

BAB 31. AI MATCHING ARCHITECTURE

Pendahuluan

AI Matching merupakan inti kecerdasan TemuBelajar yang bertugas mempertemukan siswa yang membutuhkan bantuan dengan tutor sebaya atau guru yang paling sesuai berdasarkan data nyata (evidence-based), bukan hanya klaim kemampuan pengguna.

Tujuan utama AI Matching:

  • Mempercepat pencarian tutor
  • Meningkatkan peluang masalah terselesaikan
  • Mendistribusikan beban tutor secara adil
  • Membangun reputasi berdasarkan kontribusi nyata

Prinsip Arsitektur

PrinsipImplementasi
Evidence BasedMenggunakan histori aktivitas nyata, bukan klaim
ExplainableSkor dapat dijelaskan kepada pengguna
DeterministicHasil konsisten untuk input yang sama
ModularMudah diganti ke ML di masa depan
ScalableMendukung ribuan request secara bersamaan

Arsitektur Komponen

flowchart LR
A["📝 Request Bantuan"] --> B["🔍 Candidate\nGenerator"]
B --> C["⚙️ Scoring\nEngine"]
C --> D["📊 Ranking\nEngine"]
D --> E["📲 Notification\nEngine"]
E --> F["✅ Tutor\nTerpilih"]

style A fill:#4f63d2,color:#fff
style C fill:#7c3aed,color:#fff
style F fill:#059669,color:#fff

Detail Komponen

🔍 Candidate Generator

Menghasilkan daftar tutor yang memenuhi syarat dasar sebelum memasuki proses scoring.

Filter awal:

  • Berada di sekolah yang sama
  • Status akun aktif
  • Tidak diblokir oleh sistem
  • Bukan siswa yang membuat request (diri sendiri)
  • Memiliki skill yang relevan dengan request

⚙️ Scoring Engine

Menghitung skor kesesuaian untuk setiap kandidat tutor berdasarkan multi-faktor dengan bobot yang telah ditentukan.

📊 Ranking Engine

Mengurutkan seluruh kandidat berdasarkan skor dari tertinggi ke terendah, dengan penyesuaian fairness.

📲 Notification Engine

Mengirim push notification ke tutor berdasarkan urutan prioritas secara bertahap (cascade notification).


Data Input AI Matching

DataSumber
Mata pelajaranRequest dari siswa
Materi spesifikRequest dari siswa
Skill tutorAcademic Portfolio siswa
Rating historisTabel ratings
Histori keberhasilanTabel meetings
Jadwal ketersediaanTabel bookings
LokasiMeeting location request
Beban aktif saat iniActive bookings
Response time rata-rataBooking history

Output AI Matching

OutputDeskripsi
Tutor PrioritasTutor dengan matching score tertinggi
Matching ScoreNilai numerik 0–100
Confidence LevelTingkat keyakinan sistem terhadap rekomendasi
Recommendation ReasonAlasan pemilihan tutor yang dapat ditampilkan

Alur Lengkap AI Matching

flowchart TD
A["📝 Request Baru Dibuat"] --> B["🔀 Dispatch MatchingJob ke Queue"]
B --> C["🔍 Candidate Generator\n— Filter awal —"]
C --> D{{"Kandidat\nTersedia?"}}
D -->|Tidak| E["⚠️ Notifikasi siswa:\nTutor tidak tersedia"]
D -->|Ya| F["⚙️ Scoring Engine\n— Hitung skor —"]
F --> G["📊 Ranking Engine\n— Urutkan —"]
G --> H["⚖️ Fairness Adjustment"]
H --> I["📲 Cascade Notification\nTutor #1 → #2 → #3"]
I --> J{{"Tutor\nMenerima?"}}
J -->|Ya| K["✅ Booking Aktif"]
J -->|Tidak (semua)| E

style A fill:#4f63d2,color:#fff
style K fill:#059669,color:#fff
style E fill:#dc2626,color:#fff