Total Siswa Terdaftar
Mata Pelajaran
Bank Soal Aktif
Jadwal Ujian
Akses Cepat & Aksi Operasional Proktor
Gunakan menu navigasi di sebelah kiri atau tombol cepat di bawah untuk melakukan manajemen asesmen sekolah:
Database Jadwal Ujian (CRUD)
Siswa hanya dapat memulai ujian jika data kelas dan mata pelajaran sesuai jadwal yang aktif.
| No | Mata Pelajaran | Kelas | Tanggal | Batas Waktu | Aksi |
|---|---|---|---|---|---|
| 1 | Informatika | SEMUA | 2026-11-03 | ⏰ 09:00 s/d 11:00 |
|
| 2 | Pendidikan Agama Islam | SEMUA | 2026-11-02 | ⏰ 07:00 s/d 07:02 |
|
| 3 | Produk Kreatif dan Kewirausahaan | SEMUA | 2026-11-03 | ⏰ 12:30 s/d 14:10 |
|
Database Peserta Ujian (319 Siswa Resmi)
Validasi data peserta terdaftar untuk mencegah siswa luar mengikuti asesmen tanpa izin.
| No | Nama Lengkap Peserta | No. Absen | Kelas | Aksi |
|---|---|---|---|---|
| 1 |
A
AN NISA KUSUMA MELATI
No. Absen: 1
|
1 | X DKV 1 |
|
| 2 |
A
ANANDA MIFTAHULHUDA PRADANA
No. Absen: 2
|
2 | X DKV 1 |
|
| 3 |
A
ANGEL LISA BEARNANDA
No. Absen: 3
|
3 | X DKV 1 |
|
| 4 |
A
ARIF DAFFAA RIFQI PRATAMA
No. Absen: 4
|
4 | X DKV 1 |
|
| 5 |
A
ARZELA TASYA ALNASYIFA
No. Absen: 5
|
5 | X DKV 1 |
|
| 6 |
A
ATRESIA CANTIKA DEWI
No. Absen: 6
|
6 | X DKV 1 |
|
| 7 |
A
AULIA IBRAHIM
No. Absen: 7
|
7 | X DKV 1 |
|
| 8 |
A
AULIAH HAWA RAMADHANI
No. Absen: 8
|
8 | X DKV 1 |
|
| 9 |
A
AVRIZHA KEYZHA ARZELLA
No. Absen: 9
|
9 | X DKV 1 |
|
| 10 |
C
CALLISTA NINDIA PUTRI
No. Absen: 10
|
10 | X DKV 1 |
|
| 11 |
C
CHOLIS ALI NAZAM
No. Absen: 11
|
11 | X DKV 1 |
|
| 12 |
D
DINDA KEYLA WAHYUNINGTYAS
No. Absen: 12
|
12 | X DKV 1 |
|
| 13 |
D
DISVITA PUTRI ANDINI
No. Absen: 13
|
13 | X DKV 1 |
|
| 14 |
E
ELSA ESTU ROMA VELINA
No. Absen: 14
|
14 | X DKV 1 |
|
| 15 |
F
FEBRIAN TIRTA ASSIDDIQ
No. Absen: 15
|
15 | X DKV 1 |
|
Daftar Mata Pelajaran & Bank Soal
Kelola mata pelajaran dan butir soal masing-masing.
| No | Mata Pelajaran | Jumlah Soal | Aksi |
|---|---|---|---|
| 1 | Informatika | 50 Soal |
|
| 2 | Pendidikan Agama Islam | 50 Soal |
|
| 3 | Produk Kreatif dan Kewirausahaan | 50 Soal |
|
Sinkronisasi Soal Excel per Mata Pelajaran
Format Kolom: Kolom A=Pertanyaan, Kolom B-F=Opsi A-E, Kolom G=Jawaban Benar (A/B/C/D/E).
Total butir soal aktif pada mapel terpilih: 50 butir.
Identitas Ujian & Kode Akses Token
EVALUASI MATA PELAJARAN
MATERI BAB
Token Akses Siswa: 0000Parameter Durasi, Pengacakan & Skala Nilai
Keamanan & Kata Sandi Guru / Proktor
Pengaturan Google Spreadsheet & Google Drive
Hasil evaluasi siswa otomatis tercatat ke Google Spreadsheet secara real-time atau disinkronkan saat terhubung internet.
Integrasi Spreadsheet Khusus per Kelas
Jika ingin hasil ujian kelas tertentu masuk ke spreadsheet terpisah.
| No | Kelas | URL Web App Apps Script | Aksi & Uji Coba |
|---|---|---|---|
| 1 | X DKV 3 | https://script.google.com/macros/s/AKfycbwGBUlmmF1AK46STNc2_4qJT5vIC1Eri6LEtz_bvFPskuyLlmy0g6ZqmebcEAteAIF8/exec |
|
| 2 | X TAB 1 | https://script.google.com/macros/s/AKfycbyIjzXTGco1pH9lnVllzBcswwXCw-i4pkOPxcAeRf_r3sQY2-gjquYE4TNHnw4SnjSX/exec |
|
| 3 | XI DKV 1 | https://script.google.com/macros/s/AKfycbwiDXKXumto3xn-Zh5DGyC-4kB1IJ_g_M6LWFIeVpa2XTQmqAAHdMyE-KVwViwjL7k/exec |
|
| 4 | X DKV 1 | https://script.google.com/macros/s/AKfycbzMNwFvGwCRszlJbzwSk5Wt6ZUpKzqCwqrYRjVqK7pPn6evlE3-Z2C6wt-yVpy55w4/exec |
|
| 5 | X DKV 2 | https://script.google.com/macros/s/AKfycbwFLYSUmGRxgGid-ytinA7vR4MR3otIzTzBGXhz_XHRRP3uiMu2BuzFVj3oRxd8Hh4z/exec |
|
| 6 | X TAB 2 | https://script.google.com/macros/s/AKfycbzppfj-L7brBM7A_jI-0qyFzwjfSUns0Wls_jyGD2iAOF8d4mGugAKW_MPJVa_sU13z/exec |
|
| 7 | X TBSM 1 | https://script.google.com/macros/s/AKfycbzTheMtxT09QoYxVVtpRv8mVkO88ayvpMZHe7pbLbjNOWzsFNNg7vCREyCw4V5iiXM/exec |
|
| 8 | X TBKR | https://script.google.com/macros/s/AKfycbyQz4nWYb4-LQAa59C3CP2ImZLxDmaOVb8ix_oYsT3g_2np83GWPSe53_tmhSJ92A4/exec |
|
| 9 | XI DKV 3 | https://script.google.com/macros/s/AKfycbyy7B1kKTwuTQien1APZqmAzLGxUq-0-ddZpmuzuL6ICgT6E-bK4ERADIo6XW27dJA/exec |
|
Panduan Kode Google Apps Script (Auto-Header & Anti-Duplikasi)
Pasang kode ini pada menu Ekstensi > Apps Script di Google Spreadsheet Anda, lalu Deploy sebagai Web App (Siapa saja / Anyone).
function doPost(e) {
var lock = LockService.getScriptLock();
try {
lock.waitLock(15000);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = JSON.parse(e.postData.contents);
if (sheet.getLastRow() == 0) {
sheet.appendRow([
"Timestamp",
"Nama Lengkap",
"Nomor Absen",
"Kelas",
"Mata Pelajaran",
"Nilai Ujian",
"Nilai Maksimal",
"KKM",
"Status Kelulusan",
"Jumlah Benar",
"Total Soal",
"Jumlah Pelanggaran",
"Auto Submit",
"Waktu Selesai"
]);
}
var lastRow = sheet.getLastRow();
if (lastRow > 1 && data.nama && data.kelas && data.mataPelajaran && data.nama !== "Uji Coba Sistem") {
var range = sheet.getRange(2, 2, lastRow - 1, 4).getValues();
var targetNama = String(data.nama).trim().toLowerCase();
var targetNomor = String(data.nomor || '').trim().toLowerCase();
var targetKelas = String(data.kelas).trim().toLowerCase();
var targetMapel = String(data.mataPelajaran).trim().toLowerCase();
for (var r = 0; r < range.length; r++) {
var rowNama = String(range[r][0] || '').trim().toLowerCase();
var rowNomor = String(range[r][1] || '').trim().toLowerCase();
var rowKelas = String(range[r][2] || '').trim().toLowerCase();
var rowMapel = String(range[r][3] || '').trim().toLowerCase();
if (rowNama === targetNama && rowNomor === targetNomor && rowKelas === targetKelas && rowMapel === targetMapel) {
return ContentService.createTextOutput(JSON.stringify({result: "duplicate_skipped", message: "Data sudah tercatat"})).setMimeType(ContentService.MimeType.JSON);
}
}
}
sheet.appendRow([
data.waktuSelesai || new Date().toLocaleString('id-ID'),
data.nama || "",
data.nomor || "",
data.kelas || "",
data.mataPelajaran || "",
data.nilai !== undefined ? data.nilai : 0,
data.nilaiMaksimal || 100,
data.kkm || 75,
data.statusKelulusan || "",
data.benar !== undefined ? data.benar : 0,
data.totalSoal || 0,
data.pelanggaran !== undefined ? data.pelanggaran : 0,
data.autoSubmit ? "Ya" : "Tidak",
data.waktuSelesai || ""
]);
SpreadsheetApp.flush();
return ContentService.createTextOutput(JSON.stringify({result: "success"})).setMimeType(ContentService.MimeType.JSON);
} catch(error) {
return ContentService.createTextOutput(JSON.stringify({result: "error", error: error.toString()})).setMimeType(ContentService.MimeType.JSON);
} finally {
lock.releaseLock();
}
}
Cetak & Ekspor Dokumen Soal Ujian (Rata Kanan-Kiri)
Konfigurasi tata letak halaman untuk cetak fisik, simpan PDF, atau ekspor ke Microsoft Word (.rtf) dan Excel (.xlsx) dengan perataan rata kanan-kiri (justify).
Log Audit & Analisis Forensik Ujian Siswa
Riwayat sesi ujian terakhir yang tersimpan di perangkat ini, termasuk timestamp per butir soal, deteksi anomali kecepatan, dan catatan pelanggaran proctoring.
Download File HTML Mandiri (Self-Contained Deployment)
Fitur ini menyematkan seluruh konfigurasi terbaru (judul, durasi, KKM, token, 319 database siswa, jadwal, dan bank soal) langsung ke dalam file HTML. Anda dapat membagikan file ini ke seluruh siswa atau mengunggahnya ke hosting / GitHub Pages / server lokal tanpa perlu konfigurasi ulang.
- Pastikan seluruh pengaturan dan data soal/siswa sudah disimpan.
- Klik tombol "Download HTML Terbaru" di bawah.
- File HTML baru akan otomatis terunduh dengan versi rilis yang diperbarui.
- Ganti file lama di hosting/server Anda dengan file baru tersebut.
Versi Rilis: v5.16 (Memuat 319 Siswa, 3 Mapel, 2 Jadwal)
Tips: Untuk memperbarui GitHub Pages, unggah (commit) file hasil unduhan ini ke repository GitHub Anda.
Sinkronisasi & Pemulihan Data Bawaan File HTML
Jika Anda membuka file HTML hasil unduhan dari GitHub Pages atau mengedit repository langsung di GitHub, namun browser Anda masih menampilkan data lama dari sesi sebelumnya (karena browser mengutamakan cache lokal perangkat), klik tombol di bawah untuk menyinkronkan seluruh database siswa, jadwal, dan bank soal langsung dari data yang tertanam di file HTML ini.
Backup & Restore Basis Data Sistem (.JSON)
Unduh seluruh database sistem (319 database siswa, bank soal seluruh mata pelajaran, jadwal ujian, integrasi spreadsheet per kelas, serta konfigurasi token dan durasi) menjadi satu file arsip cadangan .json. Anda dapat memulihkan file cadangan ini kapan saja ke komputer ini atau perangkat proktor lain secara instan tanpa perlu input manual.
File:
backup_cbt_enterprise_2026-11-03_01-33.json (124.4 KB)Memuat 319 siswa, 3 mapel (150 butir soal), 3 jadwal.
Pembersihan Sesi Ujian & Cache Siswa
Gunakan tombol ini sebelum membagikan file HTML agar data ujian sementara dari siswa sebelumnya terhapus bersih.