API Adaptive
Endpoint CAT khusus - alternate interface untuk next_item/answer (planned).
API: Adaptive
🚧 Sebagian besar endpoint di halaman ini planned — lihat Gap Analysis.
Konsep
Group /session/adaptive/* adalah alternate interface untuk lifecycle CAT. Tujuannya: kontrak eksplisit untuk sesi yang wajib adaptive (tidak support mode fixed).
Sebagian besar fungsi sama dengan /session/{id}/next_item dan /session/{id}/answer di API → Session. Bedanya: kelompok ini lebih ketat (harus mode adaptive atau hybrid).
Endpoint Reference
🚧 POST /api/v1/session/adaptive/start — Start Adaptive Session
Planned. Buat sesi khusus CAT (tidak accept mode fixed).
Response 201 Created:
Validasi:
- Tryout harus punya
scoring_mode = irtatauhybrid - Tryout harus punya minimal 1 item dengan
calibrated = true
🚧 POST /api/v1/session/adaptive/respond — Submit Answer + Get Next
Planned. Combined endpoint untuk efisiensi: 1 call = submit jawaban + dapat soal berikutnya.
Response 200 OK:
Response saat terminasi:
🚧 POST /api/v1/session/adaptive/complete — Complete Adaptive Session
Planned. Finalisasi sesi CAT.
Response 200 OK:
Algoritma di Balik Layar
flowchart TD
A["POST /adaptive/start"] --> B["Init theta = 0, SE = 3.0"]
B --> C["POST /adaptive/respond jawaban + minta next"]
C --> D["Save UserAnswer"]
D --> E["Update theta via MLE"]
E --> F["Cek terminasi: SE di bawah 0.5 atau max items"]
F -->|"tidak terminasi"| G["Pilih soal: b terdekat theta, max Fisher info"]
G --> H["Return next_item + feedback"]
H --> C
F -->|"terminasi"| I["Return next_item null + terminate flag"]
I --> J["POST /adaptive/complete"]
J --> K["Hitung NM, NN dari theta final"]
K --> L["Return skor final"]
style F fill:#fef3c7
style G fill:#dbeafe
Detail algoritma pemilihan & terminasi: lihat Modul → CAT Selection.
Pemilihan vs /session/{id}/next_item
Keduanya share service layer yang sama (cat_selection.py).
Bacaan Lanjutan
- API → Session — interface umum lifecycle sesi
- Modul → CAT Selection — detail algoritma pemilihan soal
- Konsep → Alur CAT — diagram alur
- Gap Analysis — status implementasi
Last updated Jul 25, 2026