Beberapa hari yang lalu seorang teman mengajak saya untuk ikut mengisi beberapa sesi dalam acara pelatihan komputer di sebuah hotel di Cisarua, Bogor. Kebetulan juga, karena diperlukan sedikit tes untuk peserta, maka saya buat sebuah aplikasi berbasis web untuk keperluan ini. Aplikasi ini tentu sederhana saja. Yang akan saya ceritakan di sini adalah ide dasar tentang aplikasi quiz ini. Sedangkan kode program yang waktu itu saya buat menggunakan PHP tidak saya sertakan. Mengapa? Malu ah, kodenya masih berantakan :)
Gambaran umum penggunaan adalah seperti berikut :
Tabel yang diperlukan untuk aplikasi ini adalah seperti berikut :
Tabel soal ---------- id : integer, key kategori : kode kategori yang merujuk ke tabel kategori soal : isi soal benar : jawaban benar untuk soal ini salah1 : jawaban salah salah2 : jawaban salah salah3 : jawaban salah
Tabel kategori -------------- kode : integer, kode kategori nama : nama kategori
Tabel tugas ----------- id : integer, key user : data user yang merujuk ke tabel user idsoal : id soal yang merujuk ke field id tabel soal kunci : tiniyint, kunci jawaban untuk soal yang memiliki id sesuai idsoal jawaban : tiniyint, jawaban yang diberikan oleh pengguna dikerjakan : tiniyint, untuk status, bahwa soal ini sudah dikerjakan
Bagian-bagian yang ada dalam aplikasi ini adalah :
Tabel kategori hanya diisi dengan kode dan nama kategori. Misalnya ada 3 kategori, maka tabel kategori isinya bisa seperti berikut :
kode : nama kategori -------------------- 1 : Internet 2 : Word Processor 3 : Spreadsheet
Tabel soal diisi dengan soal-soal sesuai kategori yang ada dalam tabel kategori. Untuk masing-masing kategori, jumlah soal sebaiknya lebih banyak dari yang akan dikerjakan peserta. Misalnya kategori Internet akan dikerjakan oleh masing-masing peserta sebanyak 10 soal, maka sebaiknya kita buat sebanyak 25 soal misalnya. Dari 25 soal ini akan dipilih secara acak sebanyak 10 soal yang akan dikerjakan user. Dan seorang user mendapat 10 soal yang bisa berbeda dengan 10 soal yang dikerjakan user lainnya.
Yang menjadi ide utama di sini adalah penggunaan tabel tugas. Soal yang akan ditampilkan pada pengguna ketika menjalani tes dengan aplikasi ini diambil dari tabel tugas. Jika tabel tugas ini masih kosong, maka user tidak akan memperoleh soal, meskipun tabel soal sudah berisi sejumlah soal.
Untuk mengisi tabel tugas ini, dilakukan langkah sebagai berikut :
Proses mengerjakan oleh pengguna adalah seperti berikut :
SELECT tugas.id, soal.soal, soal.benar, soal.salah, soal.salah, soal.salah, tugas.kunci FROM tugas INNER JOIN soal ON tugas.idsoal=soal.id WHERE tugas.user='$USER' // var $USER diambil dari sesi login user bersangkutan AND tugas.dikerjakan='0' ORDER BY tugas.id LIMIT 1Jika ada data, tampilkan pada pengguna, jika tidak ada data yang dihasilkan dari query tersebut, berarti semua soal sudah dikerjakan. Isi dari field kunci pada tabel tugas digunakan untuk menentukan posisi jawaban yang benar ketika menampilkan soal pada user.
Untuk memberi nilai, tinggal bandingkan kunci dan jawaban yang dikirim oleh peserta.
Apakah keterangan di atas cukup membingungkan Anda? Aha, saya juga dibuat bingung bagaimana cara menerangkannya dengan kata-kata agar menjadi jelas :) Jadi, nikmati saja.