{{ adminTab === 'dashboard' ? 'Dashboard Utama' : adminTab === 'sesi' ? 'Pengaturan Sesi & Mata Pelajaran' : adminTab === 'token' ? 'Rilis Token Ujian' : adminTab === 'peserta' ? 'Manajemen Peserta & Jawaban' : adminTab === 'kecurangan' ? 'Monitoring Kecurangan Siswa' : adminTab === 'tokenmonitor' ? 'Monitor Token Lintas-Guru' : adminTab === 'soal' ? 'Kelola Soal (Buat & Impor)' : adminTab === 'bankSoal' ? 'Bank Soal' : adminTab === 'kontak' ? 'Kelola Kontak Orang Tua' : adminTab === 'keamanan' ? 'Keamanan Akun' : adminTab === 'akun' ? 'Kelola Akun Guru (Admin)' : 'Rekapitulasi Nilai' }}
Total Peserta Ujian
{{ studentsList.length }}
Status Server
{{ activeSession.status }}
Sesi Ujian Aktif
{{ sesiLabel }}
{{ activeSession.waktu }}
⚠ Waktu belum diatur
Informasi Mata Ujian
Mata Pelajaran: {{ activeSession.mapel }}
Sesi Ujian: {{ activeSession.sesi || '-' }}
Waktu Sesi: {{ activeSession.waktu || '-' }}
Total Soal di Bank Soal: {{ questions.length }} Butir
Durasi Ujian: 90 Menit
Konfigurasi Ujian Saat Ini
Kelas yang mengikuti sesi ujian ini. Akan tampil otomatis di halaman Konfirmasi Data Ujian siswa.
Isi bebas sesuai jadwal Anda, misalnya "Sesi 1", "Sesi Pagi", atau "Sesi Susulan - 26 Juli 2026".
⚠ Waktu masih kosong -- siswa tidak akan melihat jam ujian sampai ini diisi & disimpan.
Jam pelaksanaan sesi ini, terpisah dari nama Sesi di atas. Misalnya "07.30 - 09.00" atau "13.00 - 14.30". Jangan lupa klik Simpan Konfigurasi di bawah setelah mengisi.
Daftar Sesi Tersimpan
Simpan beberapa sesi (mis. Harian, UTS, UAS) supaya tinggal pilih & terapkan, tanpa mengetik ulang tiap kali.
-
{{ preset.sesi }} · {{ preset.waktu }}
{{ preset.mapel }} • {{ preset.kelas }}
Token Aktif:
{{ tokenCountdownText }}
Masa aktif Token untuk memulai ujian baru adalah 15 menit sejak dirilis. Setelah itu, sistem otomatis merilis Token baru di sini tanpa perlu diklik manual. Siswa yang sudah terlanjur masuk ujian tetap bisa mengumpulkan jawabannya walau Token sudah berganti.
Integrasi Pengiriman WA Otomatis (Fonnte)
Isi Token Fonnte di sini agar fitur "Kirim Hasil ke WA Orang Tua" bisa mengirim langsung dari server tanpa perlu klik manual di WhatsApp Web. Token ini berlaku untuk seluruh sekolah — setelah Anda simpan, semua akun Guru otomatis bisa memakainya untuk mengirim hasil ujian miliknya masing-masing, tanpa perlu mengatur Token sendiri. Belum punya akun? Daftar gratis di fonnte.com, scan QR WhatsApp sekolah, lalu salin Token dari dashboard Fonnte ke sini.
{{ fonnteEnabled ? 'Pengiriman WA otomatis aktif untuk seluruh sekolah.' : 'Belum diatur — pengiriman WA masih memakai cara manual (buka tab WhatsApp satu per satu).' }}
Input Nama Siswa dan Nomor WA Orang Tua di sini kapan saja — tidak perlu menunggu siswa mengerjakan ujian. Nomor akan otomatis terpasang begitu siswa dengan nama yang sama (atau mirip/tidak lengkap) muncul di tabel Data Peserta, untuk SEMUA akun Guru (satu daftar kontak untuk seluruh sekolah).
| Nama Siswa | Kelas | No. WA Ortu | Aksi |
|---|---|---|---|
| {{ c.name }} | |||
| Belum ada kontak orang tua. Tambahkan lewat form di atas. | |||
| Peringkat | Nama Peserta | Kelas | No. WA Ortu | Status Tes | Skor PG (Auto) | Skor Essai (Auto) | Total Akhir | Predikat | Aksi | |
|---|---|---|---|---|---|---|---|---|---|---|
| #{{ std.rank }} - | {{ std.name }} | {{ std.kelas }} |
|
{{ std.status }} | {{ std.graded.scorePG }} / 100 | {{ std.graded.scoreEssay }} / 100 | {{ std.graded.finalScore }} | {{ predikatInfo(std.graded.finalScore).label }} - |
|
|
| Tidak ada data peserta. | ||||||||||
Log Pelanggaran Peserta Anda
Tercatat otomatis saat siswa pindah tab/aplikasi, keluar layar penuh, mencoba klik-kanan/copy-paste, atau mencoba membuka Inspect Element selama ujian. Halaman ini otomatis diperbarui tiap 15 detik.
| Waktu | Nama Siswa | Kelas | Jenis Pelanggaran | Detail | Status | Aksi |
|---|---|---|---|---|---|---|
| {{ v.timestamp }} | {{ v.studentName }} | {{ v.kelas }} | {{ v.type }} | {{ v.detail }} | {{ v.status }} |
|
| Belum ada indikasi kecurangan tercatat. Bagus! | ||||||
Log Pelanggaran SELURUH Sekolah
Rekap dari semua sesi ujian & semua akun Guru. Admin bisa menghapus log yang keliru (mis. koneksi terputus sesaat).
| Waktu | Guru/Sesi | Nama Siswa | Jenis Pelanggaran | Detail | Status | Aksi |
|---|---|---|---|---|---|---|
| {{ v.timestamp }} | {{ v.teacherName }} | {{ v.studentName }} ({{ v.kelas }}) | {{ v.type }} | {{ v.detail }} | {{ v.status }} | |
| Belum ada indikasi kecurangan tercatat di seluruh sekolah. | ||||||
Token Ujian Aktif -- Semua Guru
Sistem sudah otomatis menolak Token baru yang bentrok dengan Guru lain, tapi Admin tetap bisa memeriksa & memperbaiki di sini jika ada kejanggalan (mis. data lama/migrasi).
| Guru | Mapel / Sesi / Kelas | Token | Umur Token | Status Sesi | Aksi |
|---|---|---|---|---|---|
|
{{ s.nama }} @{{ s.username }} |
{{ s.mapel }} • {{ s.sesi }} • {{ s.kelas }} | {{ s.token || '-' }} Bentrok! | {{ s.ageMinutes !== null ? s.ageMinutes + ' menit lalu' : '-' }} | {{ s.status }} |
|
| Belum ada Guru yang merilis Token. | |||||
Impor Soal Massal (Excel / CSV)
Unduh template Excel bergaris tabel, isi data soal ujian, lalu unggah kembali untuk mendaftarkan 50 nomor soal secara instan.
{{ editingQuestionId ? '✏️ Edit / Update Soal' : 'Buat Soal Manual (Dengan Gambar Lokal)' }} Mode Edit
*Format JPG, JPEG, PNG.
Pilihan Jawaban
📂 Bank Soal — {{ questions.length }} Butir dalam {{ questionGroups.length }} Kelompok
Folder dengan label Sesi Aktif adalah folder yang sedang cocok dengan Sesi & Mapel aktif Anda sekarang: {{ activeSession.mapel || '(Tanpa Mapel)' }} • {{ activeSession.kelas || '(Tanpa Kelas)' }}.
📋 {{ currentGroup ? currentGroup.mapelLabel : '' }} • {{ currentGroup ? currentGroup.kelasLabel : '' }} ({{ currentGroupQuestions.length }} Butir)
Siap Diujikan
Nama Sekolah: SMK YADIKA 7 BOGOR
Nama Guru: {{ currentTeacher ? currentTeacher.nama : '-' }}
Nama Kelas & Jurusan: {{ currentGroup ? currentGroup.kelasLabel : activeSession.kelas }}
Mata Pelajaran: {{ currentGroup ? currentGroup.mapelLabel : activeSession.mapel }}
Sesi Ujian: {{ activeSession.sesi }}
Waktu: {{ activeSession.waktu || '-' }}
{{ idx + 1 }}. {{ formatPrintQuestionText(q.text) }}
{{ opt.letter }}. {{ opt.text }}
{{ q.text }}
Pratinjau Cetak Laporan
DAFTAR NILAI TJKT SMART CBT
Mata Pelajaran: {{ activeSession.mapel }} | SMK YADIKA 7 BOGOR
{{ sesiLabel }} ({{ activeSession.waktu }}) | Tanggal: {{ new Date().toLocaleDateString('id-ID') }}
| No | Nama Lengkap | Kelas | Skor PG | Skor Essai | Total |
|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ std.name }} | {{ std.kelas }} | {{ std.graded.scorePG }} | {{ std.graded.scoreEssay }} | {{ std.graded.finalScore }} |
Ganti Password Login Dashboard Guru
Password ini khusus untuk akun Anda ({{ currentTeacher.username }}) dan tidak memengaruhi akun Guru lain. Setelah diganti, gunakan password baru untuk login berikutnya.
| Nama & Username | Role | Status Akun | Mapel / Sesi Aktif | Soal | Peserta | Aksi |
|---|---|---|---|---|---|---|
| Memuat daftar akun... | ||||||
|
{{ t.nama }} @{{ t.username }} |
{{ t.role === 'Admin' ? 'Admin' : 'Guru' }} | {{ t.status }} |
{{ t.mapel }} Sesi: {{ t.sesiStatus }} |
{{ t.totalSoal }} | {{ t.totalPeserta }} |
|
| Tidak ada akun Guru ditemukan. | ||||||
Tambah Akun Guru
Ubah Username / Reset Password
{{ resetPasswordTarget.nama }} (@{{ resetPasswordTarget.username }})
Isi salah satu atau kedua kolom di bawah ini. Kolom yang dikosongkan tidak akan diubah.
Upload Massal Kontak Orang Tua
Unggah berkas Excel/CSV, atau tempel daftar langsung. Kolom: Nama Siswa, Kelas (opsional), No. WA Orang Tua.
| Nama | Kelas | No. WA |
|---|---|---|
| {{ r.nama }} | {{ r.kelas || '-' }} | {{ r.noHp || '-' }} |
Kirim Hasil Ujian ke WA Orang Tua
Terhubung ke Fonnte — pesan akan terkirim langsung tanpa perlu membuka WhatsApp.
Token Fonnte belum diatur oleh Admin — gunakan cara manual di bawah.
Cara manual (tanpa Fonnte, buka tab WhatsApp satu per satu)
{{ std.name }} ({{ std.kelas }})
Nilai Akhir: {{ std.graded.finalScore }} · WA: {{ std.noHpOrtu }}
Laporan Pengiriman WA
{{ waSendReport.success.length }} berhasil · {{ waSendReport.failed.length }} gagal dari {{ waSendReport.total }} peserta
Berhasil Terkirim
Gagal Terkirim
{{ f.reason }}
Koreksi & Pratinjau Ujian Peserta
{{ correctionData.studentName }} ({{ correctionData.studentKelas }})
Soal No. {{ idx + 1 }} ({{ q.type }})
Dapat Dikoreksi Guru{{ q.text }}
Jawaban Siswa:
{{ getStudentResponse(correctionData.studentId, q.id) || '(Tidak Ada Jawaban)' }}
Kunci Jawaban Benar:
{{ q.correct }}
Kriteria Kata Kunci Auto-Koreksi:
{{ q.keywords ? q.keywords.join(', ') : 'Tidak diatur' }}
🛠️ Panel Intervensi Nilai (Koreksi Guru)