Pengertian HUSTOJ
HUSTOJ (Huazhong University of Science and Technology Online Judge) adalah sebuah sistem penilaian otomatis (Online Judge System) yang digunakan untuk menilai hasil pemrograman secara otomatis.
Sistem ini mampu menjalankan, menguji, dan menilai kode program yang dikirimkan oleh pengguna berdasarkan kasus uji (test case) yang sudah ditentukan oleh pengelola (guru/dosen/admin).
Dengan HUSTOJ, pengguna dapat mengerjakan soal pemrograman secara online, lalu sistem akan menilai kebenaran dan efisiensi program secara otomatis, mirip dengan sistem yang digunakan pada kompetisi seperti Olympiad in Informatics (OI) atau ACM-ICPC.
Fungsi dan Tujuan HUSTOJ
- Sebagai alat evaluasi otomatis
Menguji hasil program siswa/mahasiswa secara objektif tanpa perlu menilai manual. - Sebagai media latihan pemrograman
Siswa dapat berlatih mengerjakan berbagai soal algoritma dan logika pemrograman. - Sebagai platform lomba pemrograman
Dapat digunakan untuk mengadakan kompetisi coding (contest mode) di sekolah atau kampus. - Sebagai pendukung pembelajaran
Guru atau dosen bisa menambahkan soal, melihat hasil siswa, dan memberikan umpan balik berbasis data.
Cara Kerja HUSTOJ
- Admin / Guru membuat soal di sistem dan menyediakan input-output test case.
- Peserta / Siswa menulis program sesuai soal (dalam bahasa C, C++, Java, Python, dan lain-lain).
- Sistem HUSTOJ akan secara otomatis:
- Meng-compile kode yang dikirim,
- Menjalankannya dengan input tertentu,
- Membandingkan hasil output dengan jawaban yang benar.
- Nilai / status hasil dikembalikan seperti:
- ✅ Accepted → jawaban benar,
- ❌ Wrong Answer → salah output,
- ⚠️ Time Limit Exceeded → program terlalu lama,
- 💥 Runtime Error → program crash.
Komponen Utama HUSTOJ
| Komponen | Fungsi |
|---|---|
| Web Interface (Frontend) | Tampilan web untuk siswa, guru, dan admin. |
| Database (MySQL/MariaDB) | Menyimpan data user, soal, hasil submission, dan contest. |
| Judger Daemon (Backend) | Program di server yang melakukan kompilasi & penilaian otomatis. |
| Problem Data Folder | Tempat penyimpanan test case (input/output) untuk setiap soal. |
Fitur Utama HUSTOJ
- Berbasis web (PHP + MySQL + nginx/Apache)
- Multi-user (Admin, Teacher, Student)
- Forum diskusi dan ranking peserta
- Mode contest (kompetisi waktu nyata)
- Statistik submission & leaderboard
- Backup dan restore otomatis
- Support banyak bahasa pemrograman (C, C++, Java, Python, Pascal, PHP, Go, dan sebagainya)
Kegunaan HUSTOJ di Pendidikan
HUSTOJ sangat cocok digunakan di sekolah/kampus kejuruan (misalnya SMK jurusan RPL) untuk:
- Latihan coding harian
- Ujian praktik pemrograman
- Kompetisi antar kelas/jurusan
- Evaluasi otomatis tanpa koreksi manual
Dengan sistem ini, guru bisa:
- Melihat ranking dan statistik pengerjaan siswa,
- Memberikan umpan balik cepat,
- Menghemat waktu penilaian.
Kelebihan HUSTOJ
- Open Source (gratis dan dapat dimodifikasi)
- Ringan & cepat (bisa jalan di server kecil)
- Mudah diinstal di Linux (Ubuntu, Debian)
- Mendukung auto-grading dan contest management
- Komunitas aktif dan dokumentasi lengkap
Teknologi yang Digunakan
| Komponen | Teknologi |
|---|---|
| Server Web | Nginx / Apache |
| Bahasa | PHP, C/C++, Shell |
| Database | MariaDB / MySQL |
| Sistem Operasi | Ubuntu / Debian |
| Kompilator | gcc, g++, javac, python3, dll |
Instalasi Hustoj
1. Persiapan Sistem
Langkah 1 — Update sistem
sudo apt update && sudo apt upgrade -y
Langkah 2 — Install paket pendukung
sudo apt install -y wget curl git unzip build-essential make gcc g++ \
nginx mariadb-server mariadb-client \
php-fpm php-mysql php-gd php-mbstring php-xml php-zip php-curl \
default-jdk openjdk-17-jdk pkg-config libssl-dev
Langkah 3 — Pastikan Apache tidak aktif
Jika ada Apache, hentikan dan hapus (karena kita pakai nginx):
sudo systemctl stop apache2
sudo apt remove -y apache2 apache2-utils
sudo apt autoremove -y
2. Instalasi Otomatis (Direkomendasikan)
Cara termudah dan direkomendasikan resmi oleh pengembang HUSTOJ adalah menjalankan skrip instalasi:
cd /tmp
wget http://dl.hustoj.com/install.sh -O install-hustoj.sh
sudo bash install-hustoj.sh
Skrip ini akan:
- Menginstal seluruh dependensi (nginx, php, mariadb, compiler, dan lain-lain)
- Membuat user
judge - Meng-clone kode sumber HUSTOJ ke
/home/judge/src - Membuat database
jol - Mengimpor tabel otomatis
- Menjalankan web server dan judged daemon
Jika berhasil maka di terminal akan tampil user dan password yang di generate oleh sistem, seperti berikut ini :

3. Struktur Folder Penting
| Folder | Keterangan |
|---|---|
/home/judge/src/web |
Folder web (HTML, PHP, CSS, JS) |
/home/judge/src/core |
File judge daemon (C++) |
/home/judge/data |
Folder soal dan data test |
/home/judge/src/install |
Skrip instalasi & backup |
/var/log/nginx |
Log web server |
4. Uji Akses di Browser
Buka :
http://127.0.0.1
atau
http://localhost
Jika muncul halaman login/register HUSTOJ, artinya instalasi berhasil.

Ganti Default Bahasa lewat File (jika web belum tampil)
Pada saat akses hustoj ke alamat http://localhost, maka yang akan tampil pertama kali dalam tulisan dan bahasa China. Tentunya ini akan menyulitkan kita, karena tidak terbiasa dan tidak mengerti dengan bahasanya. Solusinya kita ganti bahasa settingan bahsanya dari bahasa China menjadi Bahasa Inggris atau bahasa lainnya.
Berikut cara menggantinya :
-
Buka file konfigurasi database (yang juga memuat setting OJ):
-
Cari baris berikut :
static $OJ_LANG="cn"; //默认语言, 中文修改为"cn"
dan ganti menjadi :
static $OJ_LANG="en"; //默认语言, 中文修改为"cn"
en = Bahasa Inggris (English)
-
Simpan (ctrl + O), kemudian Enter dan keluar (Ctrl+x)
-
Restart server web:
sudo systemctl restart nginx
Mengecek file bahasaKita bisa lihat file bahasa yang tersedia di folder ini:
ls /home/judge/src/web/lang/
Biasanya akan muncul:
en.phpzh-cn.phpzh-tw.phpfa.php
Demikian cara instalasi Hustoj sebagai aplikasi yang bisa kita gunakan sebagai penilaian otomatis untuk pemrograman, selanjutnya kita akan membahas cara Register, pendaftaran user, pembuatan contest, problem dan sebagainya pada tutorial berikut ini :
Be the first to comment