CBT ICBS PHP + MySQL — PAKET AWAL UNTUK CPANEL
================================================

FITUR
- Login siswa hanya menggunakan Nomor Peserta.
- Peserta terpisah menurut tingkat SMP/SMA.
- Daftar ujian aktif, durasi ujian, navigasi soal.
- Jawaban tersimpan ke MySQL ketika dipilih.
- Tombol KUMPULKAN / SELESAI UJIAN tersedia di halaman ujian.
- Pengumpulan otomatis saat waktu habis.
- Login admin, tambah peserta dan buat ujian.

PERSYARATAN
- Hosting cPanel dengan PHP 8.0+ (disarankan 8.1/8.2), MySQL/MariaDB, PDO MySQL.
- SSL/HTTPS aktif.

INSTALASI CPANEL
1. cPanel > MySQL Database Wizard: buat database, user, password, lalu beri ALL PRIVILEGES.
2. Buka phpMyAdmin, pilih database baru, tab Import, impor schema.sql.
3. Unggah seluruh isi paket ke folder public_html/cbt/ (atau folder domain/subdomain).
4. Salin config.example.php menjadi config.php. Edit config.php dengan nama database, user, password dari cPanel. Di cPanel, nama DB/user biasanya memiliki prefix akun.
5. Buka https://domain-anda/ lokasi aplikasi. Untuk login siswa, peserta harus dibuat dahulu.
6. Buat akun admin dengan langkah di bawah.
7. Login admin di /admin.php, tambahkan peserta dan buat ujian.
8. Masukkan soal ke tabel questions lewat phpMyAdmin. Isi exam_id sesuai ID ujian dan position 1,2,3... sesuai urutan soal.
9. Uji dengan akun percobaan sebelum dipakai ujian resmi.

MEMBUAT AKUN ADMIN
Buat hash password dengan menjalankan file sementara di komputer/hosting:
<?php echo password_hash('GANTI_PASSWORD_KUAT', PASSWORD_DEFAULT);
Salin hasil hash. Di phpMyAdmin jalankan query (ubah username dan hash):
INSERT INTO admins(username,password_hash) VALUES('admin','PASTE_HASH_DI_SINI');
Setelah akun berhasil dibuat, hapus file sementara yang digunakan untuk membuat hash. Jangan simpan password polos di database.

CONTOH TAMBAH UJIAN
Admin > Buat Ujian. Catat ID dari tabel exams (phpMyAdmin).
Contoh tambah soal (ubah exam_id dan isi sesuai soal):
INSERT INTO questions (exam_id,position,subject,question_text,option_a,option_b,option_c,option_d,correct_answer,points)
VALUES (1,1,'Matematika','1 + 1 = ...','1','2','3','4','B',1);

PENTING
- Paket ini adalah aplikasi dasar siap dipasang, bukan migrasi otomatis dari database Google Sheets/Apps Script.
- Bank soal lama perlu diimpor/dikonversi ke tabel questions. Jangan menghapus aplikasi lama sebelum tes selesai.
- Login hanya dengan Nomor Peserta sesuai permintaan, jadi jangan publikasikan daftar nomor peserta. Gunakan koneksi HTTPS.
- Hak akses admin dilindungi login; segera ganti password awal.
- Sebelum ujian resmi, uji login, urutan soal, penyimpanan jawaban, timer, pengumpulan, dan hasil pada HP serta laptop.
- Nilai tidak ditampilkan ke siswa. Admin dapat melihat attempts.score di phpMyAdmin.
