Persiapan
Satu komputer di sekolah berperan sebagai server: menjalankan aplikasi dan database. Perangkat siswa cukup membuka alamat server lewat browser, tanpa memasang apa pun.
Komputer server
- Windows 10/11 64-bit
- RAM 4 GB (disarankan 8 GB)
- SSD, ruang kosong 5 GB
- Port LAN (kabel lebih stabil)
Perangkat lunak
- Laragon Full (Apache, PHP 8.x, MySQL 8)
- Folder aplikasi RyuExam CBT
- Kode lisensi dari penjual
Perangkat siswa
- HP Android/iOS atau laptop
- Chrome, Edge, atau Safari terbaru
- Tersambung ke WiFi/LAN yang sama
Perkiraan kapasitas
| Siswa ujian bersamaan | Rekomendasi server | Access point |
|---|---|---|
| Sampai 100 | Core i3, RAM 4 GB, SSD | 3 AP |
| 100 – 300 | Core i5, RAM 8 GB, SSD | 1 AP tiap 30–40 siswa |
| Lebih dari 300 | Core i5/i7, RAM 16 GB, SSD NVMe | 1 AP tiap 30 siswa, dual-band |
Jangan memaksakan satu access point untuk seluruh sekolah. AP rumahan biasa mulai melambat di atas 30–40 perangkat aktif.
Instal di Localhost
Cara tercepat mencoba aplikasi di satu komputer. Langkah yang sama juga dipakai untuk server ujian LAN.
-
Pasang Laragon
Unduh Laragon Full dari laragon.org, lalu pasang di
C:\laragon. -
Salin folder aplikasi
Salin folder aplikasi ke
C:\laragon\www\ujian. Pastikan berkasindex.phpberada langsung diC:\laragon\www\ujian\index.php, bukan di subfolder lain. -
Jalankan Apache & MySQL
Buka Laragon, klik Start All. Tunggu sampai Apache (port 80) dan MySQL (port 3306) berstatus berjalan.
-
Siapkan database
Aplikasi membuat database
cbt_ujiansecara otomatis saat pertama kali dibuka. Jika paket Anda menyertakan berkas.sql, buat databasecbt_ujian(collationutf8mb4_unicode_ci) dihttp://localhost/phpmyadminatau HeidiSQL bawaan Laragon, lalu impor berkas tersebut. -
Periksa
config.phpPada instalasi Laragon standar berkas ini tidak perlu diubah. Nilai bawaan yang dipakai di komputer lokal:
$db_local = [ 'host' => 'localhost', 'port' => '3306', 'name' => 'cbt_ujian', // nama database 'user' => 'root', 'pass' => '', // kosong pada Laragon ];Jika user
rootMySQL Anda memakai kata sandi, isikan pada'pass'. Tidak perlu me-restart Laragon. -
Buka aplikasi di browser
Halaman siswa di
http://localhost/ujiandan panel admin dihttp://localhost/ujian/admin.php. Masuk ke panel admin memakai akun yang diberikan bersama paket aplikasi, lalu segera ganti kata sandinya.


Di Laragon, klik Menu › Preferences, lalu centang Run Laragon when Windows starts dan Start All automatically.
Instal di Jaringan LAN
Server dipasang seperti pada bagian Localhost, lalu dibuka dari perangkat lain lewat jaringan sekolah. Internet tidak diperlukan selama ujian.
Semua perangkat berada dalam satu jaringan (subnet) yang sama. Contoh di panduan ini memakai IP server 192.168.1.100 dan router 192.168.1.1; sesuaikan dengan jaringan sekolah Anda.
1. Beri IP statis pada server
IP server harus tetap agar alamat ujian tidak berubah setelah router dinyalakan ulang.
Buka Network Connections
Tekan Windows + R, ketik
ncpa.cpl, lalu Enter.Buka pengaturan IPv4
Klik kanan adapter yang terhubung ke router (Ethernet) → Properties → klik dua kali Internet Protocol Version 4 (TCP/IPv4).
Isi alamat
Pilih Use the following IP address, isi sesuai tabel, lalu OK.
| Kolom | Contoh isian |
|---|---|
| IP address | 192.168.1.100 — di luar rentang DHCP router |
| Subnet mask | 255.255.255.0 |
| Default gateway | 192.168.1.1 — IP router |
| Preferred DNS | 192.168.1.1 atau kosongkan |
Cek hasilnya: buka Command Prompt, ketik ipconfig, lalu lihat baris IPv4 Address.
2. Izinkan port 80 di Windows Firewall
Firewall Windows sering memblokir akses dari perangkat lain. Cara tercepat: buka Command Prompt sebagai Administrator, lalu jalankan:
netsh advfirewall firewall add rule name="RyuExam CBT" dir=in action=allow protocol=TCP localport=80
Cara manual: Windows + R → wf.msc → Inbound Rules › New Rule → Port → TCP 80 → Allow the connection → centang semua profil → beri nama → Finish.
3. Atur router & access point
| Pengaturan | Rekomendasi |
|---|---|
| Nama WiFi (SSID) | Jelas per ruang, misalnya CBT_RUANG_01 |
| Keamanan | WPA2-PSK (AES), kata sandi mudah diketik |
| Rentang DHCP | 192.168.1.101 – 192.168.1.250, jangan mencakup IP server |
| AP / Client Isolation | Matikan. Jika aktif, HP siswa tidak bisa menjangkau server |
| Channel 2,4 GHz | Bedakan antar ruang yang berdekatan: 1, 6, 11 |
| Mode AP | Jika AP disambung ke router utama, pakai mode Access Point (bukan router) agar satu jaringan |
4. Uji dari perangkat siswa
Sambungkan perangkat
Sambungkan satu HP atau laptop ke WiFi ruang ujian.
Buka alamat server
Di browser ketik
http://192.168.1.100/ujian. Halaman login siswa harus tampil.Coba login siswa
Masuk dengan satu akun siswa dan pastikan dashboard menampilkan jadwal ujian kelasnya.
Ulangi di setiap ruang
Lakukan uji yang sama dari tiap access point sebelum hari ujian.
Saat dibuka lewat localhost, IP privat (192.168.x.x, 10.x.x.x, 172.16–31.x.x), nama komputer (mis. SERVER-CBT), atau domain .local/.test/.lan, aplikasi memakai $db_local tanpa perlu mengubah config.php.
Jika siswa membuka server lewat domain buatan sendiri (mis. cbt.sekolah.id dari DNS lokal), paksa mode lokal:
// Sebelum $environment_mode = 'auto'; // Sesudah $environment_mode = 'local';
Daftar periksa hari ujian
- Server menyala dan tersambung kabel LAN, terhubung ke UPS atau stopkontak stabil.
- Laragon: Apache & MySQL berjalan. Mode sleep dimatikan (Power & sleep › Never) dan Windows Update dijeda.
- IP server sesuai hasil
ipconfig; semua AP menyala dan sudah diuji dari tiap ruang. - Jadwal ujian & kelas sudah benar, token ujian siap dibagikan pengawas.
- Database sudah dicadangkan lewat menu Backup di panel admin.
Bagikan alamat server dalam bentuk QR code di papan tiap ruang. Siswa juga dapat memilih Tambahkan ke Layar Utama di browser agar aplikasi terbuka seperti aplikasi biasa. Pengawas memantau lewat http://192.168.1.100/ujian/admin.php.
Instal di Hosting (cPanel)
Untuk ujian lewat internet. Aplikasi dipasang di hosting dan siswa membuka alamat domain sekolah dari mana saja. Langkahnya mirip instalasi lokal, tetapi memakai database dan alamat dari hosting.
Tangkapan layar di bagian ini adalah ilustrasi yang menyerupai cPanel, dengan data contoh (u123456). Tampilan, urutan menu, dan nama tombol bisa sedikit berbeda di setiap penyedia hosting.
Hosting
- cPanel dengan PHP 8.x
- MySQL atau MariaDB
- SSL (AutoSSL/Let's Encrypt)
- Cloud hosting disarankan untuk ujian serentak ratusan siswa
Berkas
- Folder aplikasi dalam bentuk
.zip - Berkas
.sqlbila ada di paket - Kode lisensi dari penjual
Alamat
- Domain atau subdomain, misalnya
ujian.sekolah.sch.id - Subdomain paling rapi untuk aplikasi ujian
Perkakas cPanel yang dipakai ditandai nomor langkah pada gambar berikut.

Langkah 1. Unggah dan ekstrak aplikasi
Buka File Manager
Masuk ke cPanel, lalu klik File Manager. Buka folder tujuan:
public_htmluntuk domain utama, atau folder subdomain (misalnyapublic_html/ujian) bila memakai subdomain.Unggah berkas ZIP
Klik Upload, pilih berkas ZIP aplikasi, tunggu sampai selesai, lalu kembali ke File Manager.
Ekstrak
Pilih berkas ZIP, klik Extract, lalu konfirmasi folder tujuan.
Periksa susunan folder
Pastikan
index.php,admin.php, danconfig.phpberada langsung di folder tujuan. Jika terbentuk satu folder tambahan di dalamnya, pilih semua isinya lalu pindahkan ke atas. Setelah itu hapus berkas ZIP.

Berkas .htaccess melindungi folder internal (views, data, dan _backup_questions) agar tidak bisa dibuka dari browser. Di File Manager, buka Settings dan centang Show Hidden Files agar berkas ini ikut terunggah dan terlihat.
Langkah 2. Buat database
Buka MySQL® Database Wizard
Dari beranda cPanel, klik MySQL® Database Wizard.
Buat database
Isi nama database (contoh
cbtujian). cPanel menambahkan awalan akun, sehingga nama lengkapnya menjadi sepertiu123456_cbtujian.Buat user database
Isi username (contoh
cbtadmin) dan password yang kuat. Catat ketiganya: nama database, username, dan password lengkap beserta awalannya.Beri hak akses
Centang ALL PRIVILEGES, lalu lanjutkan sampai selesai.

Langkah 3. Atur versi PHP dan ekstensi
Buka Select PHP Version (atau MultiPHP Manager), pilih PHP 8.x untuk domain yang dipakai, lalu aktifkan ekstensi berikut:
| Ekstensi | Kegunaan |
|---|---|
pdo_mysql / mysqli | Koneksi ke database MySQL. |
sodium | Verifikasi lisensi. Tanpanya aktivasi gagal. |
zip | Backup dan impor ZIP bank soal. |
mbstring, gd, curl, json, fileinfo, openssl | Pengolahan teks, gambar, dan komunikasi jaringan. Disarankan aktif. |

Langkah 4. Isi koneksi database di config.php
Buka berkasnya
Di File Manager, klik kanan
config.phplalu pilih Edit (atau Code Editor).Isi bagian
$db_hostingMasukkan nama database, user, dan password dari langkah 2. Biarkan
hosttetaplocalhostdanport3306kecuali penyedia hosting menyebut lain.Simpan
Klik Save Changes. Bagian
$db_localtidak perlu diubah.
$db_hosting = [
'host' => 'localhost',
'port' => '3306',
'name' => 'u123456_cbtujian', // nama database dari cPanel
'user' => 'u123456_cbtadmin', // user database
'pass' => 'PASSWORD_DATABASE', // password user database
];

$db_hosting$environment_mode bawaan 'auto' sudah benar: saat dibuka lewat domain hosting aplikasi memakai $db_hosting, dan saat dibuka lewat localhost atau IP jaringan lokal memakai $db_local. Jika password mengandung tanda petik ' atau garis miring terbalik \, awali tanda itu dengan \.
Langkah 5. Impor database (bila paket menyertakan berkas .sql)
Tabel dibuat otomatis saat aplikasi pertama kali dibuka. Jika paket Anda menyertakan berkas .sql, buka phpMyAdmin, pilih database yang baru dibuat, klik tab Import, pilih berkasnya, lalu klik Go. Jika tidak ada berkas .sql, lewati langkah ini.
Langkah 6. Aktifkan HTTPS
Buka SSL/TLS Status, pilih domain atau subdomain yang dipakai, lalu klik Run AutoSSL (atau pasang sertifikat Let's Encrypt dari menu yang tersedia di hosting Anda). Setelah aktif, buka alamat dengan https://. Dengan HTTPS, cookie sesi aplikasi otomatis memakai tanda Secure sehingga lebih aman.
Langkah 7. Buka aplikasi, ganti password, dan aktifkan lisensi
Buka panel admin
Ketik
https://ujian.sekolah.sch.id/admin.php(sesuaikan domain Anda). Halaman login admin akan tampil.Masuk dan ganti password
Gunakan akun admin dari paket aplikasi, lalu segera ganti kata sandinya di Pengaturan › Kelola Admin.
Aktifkan lisensi
Ikuti langkah pada bagian Memasukkan Lisensi. Hosting sudah terhubung internet sehingga aktivasi bisa langsung dilakukan.
Uji dari perangkat siswa
Buka alamat ujian dari HP, login dengan satu akun siswa uji, dan pastikan jadwal ujian tampil.

Pengaturan agar lancar di hosting
- Izin berkas: gunakan
0755untuk folder dan0644untuk berkas. Folderdatadan_backup_questionsharus dapat ditulis oleh aplikasi; pada cPanel standar izin ini sudah cukup. - Interval sinkronisasi jawaban: di Pengaturan › Umum › Aturan Pengerjaan Ujian, atur 60 sampai 90 detik untuk hosting agar beban server ringan.
- Berkas besar: bila impor soal atau Impor ZIP gagal karena ukuran, naikkan
upload_max_filesizedanpost_max_sizelewat MultiPHP INI Editor. - Kapasitas: hosting bersama punya batas proses dan CPU. Untuk ujian serentak ratusan siswa, pilih paket cloud hosting atau VPS dan lakukan uji coba dengan banyak perangkat sebelum hari ujian.
- Cadangan: aktifkan backup berkala di cPanel (Backup), dan unduh backup database lewat Pengaturan › Database sebelum serta sesudah ujian.
Cadangkan dulu folder dan database. Saat menimpa berkas dengan versi baru, jangan menimpa config.php dan folder data (berisi lisensi dan identitas sekolah), lalu buka situs sekali agar pembaruan tabel berjalan otomatis.
Masalah umum di cPanel
| Gejala | Penyebab & solusi |
|---|---|
| Error 500 atau halaman putih | Versi PHP tidak sesuai atau ekstensi belum aktif (langkah 3). Lihat berkas error_log di folder aplikasi, dan pastikan .htaccess tidak rusak. |
| “Gagal Terhubung ke Database MySQL” | Nama database, user, atau password di $db_hosting keliru. Pastikan memakai awalan akun cPanel lengkap, dan user sudah diberi ALL PRIVILEGES pada database tersebut. |
| Daftar berkas muncul atau halaman 404 | index.php tidak berada langsung di folder tujuan. Periksa susunan folder (langkah 1) atau arahkan domain ke folder yang benar di menu Domains. |
| “Ekstensi PHP sodium tidak aktif” | Aktifkan sodium pada Select PHP Version, lalu muat ulang halaman aktivasi. |
| Impor atau unggah berkas gagal | Ukuran melebihi batas PHP. Naikkan upload_max_filesize dan post_max_size di MultiPHP INI Editor. |
| Lambat atau gagal saat banyak siswa | Batas sumber daya hosting terlampaui. Naikkan interval sinkronisasi, tambah paket hosting, atau pindah ke cloud hosting/VPS. |
| Tampilan lama muncul setelah pembaruan | Muat ulang paksa di browser (Ctrl + F5), atau hapus cache situs. |
Memasukkan Lisensi
Aplikasi diaktifkan sekali per server memakai NPSN sekolah dan kode lisensi yang Anda terima dari penjual. Halaman ujian siswa tetap berjalan normal selama proses aktivasi.
Aktivasi memeriksa kode ke server lisensi, jadi sambungkan komputer server ke internet selama langkah ini. Setelah aktif, aplikasi tetap aman dipakai tanpa internet untuk jangka waktu tertentu (tanggalnya tampil di halaman Kelola Lisensi).
-
Siapkan NPSN dan kode lisensi
NPSN terdiri dari 8 karakter. Kode lisensi berbentuk
RYU-XXXXX-XXXXX-XXXXX-XXXXX. Belum punya kode? Hubungi penjual lewat WhatsApp. -
Buka halaman aktivasi
Buka panel admin di
http://localhost/ujian/admin.php. Bila lisensi belum aktif, halaman aktivasi tampil. Anda juga bisa membukanya langsung dihttp://localhost/ujian/aktivasi.php. -
Cari sekolah dengan NPSN
Ketik NPSN sekolah, lalu klik Cari Sekolah.
localhost/ujian/aktivasi.php
Langkah 1: masukkan NPSN -
Pastikan nama sekolah sesuai
Nama sekolah, NPSN, dan paket lisensi akan tampil. Jika bukan sekolah Anda, klik Ganti NPSN.
-
Masukkan kode lisensi lalu Aktifkan
Tempel kode lisensi pada kolom Kode Lisensi, lalu klik Aktifkan. Jika berhasil, panel admin terbuka otomatis.
localhost/ujian/aktivasi.php
Langkah 2: masukkan kode lisensi (nama sekolah dan kode pada gambar hanya contoh)
Melihat dan mengelola lisensi
Buka panel admin → Pengaturan → tab Lisensi → klik Kelola Lisensi. Halaman ini menampilkan:
- Status lisensi (aktif atau tidak), nama sekolah, dan NPSN.
- Paket: Satu Sekolah, Multi Sekolah, atau Developer.
- Masa berlaku, serta batas waktu aman tanpa internet.
- ID instalasi server ini, berguna bila perlu menghubungi penjual.
Tombol Periksa ulang ke server lisensi menyegarkan status, misalnya setelah perpanjangan dari penjual.
Pindah server atau pasang ulang
Lepas lisensi di server lama
Di halaman Kelola Lisensi, klik Lepas lisensi dari server ini. Bila server lama sudah tidak bisa diakses, minta penjual melepas instalasi lama.
Aktifkan di server baru
Ulangi langkah aktivasi di atas dengan NPSN dan kode lisensi yang sama.
Setiap lisensi memiliki kuota jumlah server. Jika muncul pesan kuota penuh, lepas instalasi lama terlebih dahulu, lalu klik Aktifkan lagi.
Mengatasi Masalah
Gejala yang paling sering muncul saat pemasangan, beserta solusinya.
Instalasi & jaringan
| Gejala | Penyebab & solusi |
|---|---|
| Halaman “Gagal Terhubung ke Database MySQL” | MySQL belum berjalan, atau nama/kata sandi di $db_local tidak sesuai. Bila server dibuka lewat domain sendiri, ubah $environment_mode menjadi 'local'. |
ERR_CONNECTION_REFUSED | Apache belum berjalan. Buka Laragon, klik Start All. |
ERR_CONNECTION_TIMED_OUT | Port 80 diblokir firewall, atau IP server berubah. Cek dengan ipconfig. |
| HP tersambung WiFi tapi halaman tidak terbuka | AP/Client Isolation aktif, atau AP berjalan sebagai router terpisah. Matikan isolasi dan pakai mode Access Point. |
| Apache gagal start, port 80 terpakai | Aplikasi lain (IIS, Skype, VMware) memakai port 80. Hentikan aplikasi tersebut, atau ganti port Apache di Laragon lalu buka http://IP:PORT/ujian dan izinkan port itu di firewall. |
| “Unknown database” atau tabel tidak ditemukan | Database belum dibuat atau berkas .sql dari paket belum diimpor. |
| Halaman sangat lambat saat banyak siswa | Terlalu banyak perangkat per AP, atau server memakai WiFi. Tambah AP dan sambungkan server dengan kabel. |
| Tampilan lama muncul setelah pembaruan | Muat ulang paksa di browser siswa (Ctrl + F5) atau hapus data situs. |
Jika http://localhost/ujian terbuka tetapi http://192.168.1.100/ujian tidak, masalah ada pada jaringan atau firewall, bukan pada aplikasi.
Lisensi
| Pesan | Penyebab & solusi |
|---|---|
| NPSN harus 8 karakter | Periksa kembali NPSN yang diketik, tanpa spasi. |
| Tidak dapat menghubungi server lisensi | Komputer server belum terhubung internet, atau koneksi diblokir. Periksa koneksi lalu coba lagi. |
| Kuota instalasi penuh | Lisensi sudah dipakai di server lain. Lepas instalasi lama (lihat bagian pindah server), atau minta penjual melepasnya. |
| Ekstensi PHP sodium tidak aktif | Aktifkan extension=sodium pada php.ini (sudah aktif pada Laragon standar), lalu restart Apache. |
| Nama aplikasi / footer perlu dikembalikan | Nama dan footer RyuExam CBT harus tetap seperti aslinya. Kembalikan, lalu klik Periksa ulang. Ujian siswa tetap berjalan normal. |
| Panel admin terkunci | Lisensi tidak aktif atau sudah berakhir. Buka halaman aktivasi, periksa ulang, atau masukkan kode lisensi baru. |
Butuh bantuan pemasangan atau kode lisensi?
Hubungi kami lewat WhatsApp, atau daftar untuk memesan Cloud dan Source Code.