Kemarin, seorang teman menanyakan tentang hal ini. Dakuw juga sering berfikir kenapa tidak ada tutorial yang seperti ini, rata-rata tutorial tersebut lebih mengarah ke teknik-teknik pemrograman, bukan alur logika yang mengarah pada kasus-kasus spesifik seperti ini (CMIIW). Mungkin beberapa berpendapat, bahwa mereka harus membangun logika sendiri. Bagaimana kalau logikanya Pentium tidur seperti dakuw
(becanda deng).
Just an opinion. Oke deh, disini kita akan mencoba membuat web sederhana yang menampilkan sejumlah soal dari sekian soal secara acak, dan setiap soal disertai dengan 4 pilihan (pilihan ganda). Setelah soal-soal tersebut dijawab oleh user, maka akan ditampilkan halaman yang mengecek jawaban tersebut benar/salah. Mudah kan?
Pertama, kita desain dulu databasenya, buka phpmyadmin atau MySQL Front atau apapun yang biasa dipakai untuk manajemen database MySQL. Tabel pertama adalah table soal, yang akan menyimpan soal-soal.
2 | `id` int (99) NOT NULL AUTO_INCREMENT, |
ID adalah primary key dari tiap record, sedangkan field “soal” akan menyimpan text-text soal. Tabel “soal” sudah jadi, sekarang kita buat tabel jawaban.
1 | CREATE TABLE `jawaban` ( |
2 | `id` int (99) NOT NULL AUTO_INCREMENT, |
3 | `soal` int (99) NOT NULL , |
4 | `jawaban` text NOT NULL , |
5 | `benar` tinyint(1) NOT NULL , |
Field “id”, adalah primary key dari tiap record. Field “soal” adalah foreign key yang menunjuk pada tabel soal. Misalkan pada sebuah record di tabel jawaban, terdapat nilai “3” pada field “soal”, maka itu berarti jawaban tersebut milik soal yang ber-id “3” pada tabel soal. Field “jawaban” adalah field yang menyimpan teks jawaban. Field “benar” adalah field yang menentukan jawaban tersebut benar atau tidak (karena peraturannya adalah pilihan berganda), mungkin saja ada banyak jawaban untuk satu soal, tapi hanya satu yang benar. Kita akan set 0 untuk tiap jawaban yang salah, dan 1 untuk jawaban yang benar.
Oke, tabel udah jadi, sekarang kita masuk ke script, perlu diingat struktur file disini dibuat sesederhana mungkin, tapi jangan diikuti untuk website sebenarnya yak
.
Ini script untuk menampilkan soal dan jawabannya, jangan khawatir tiap baris sudah diberi komentar penjelas kok
. Klo di jelasin disini lagi justru berbelit-belit
, simpan dengan nama soal_view.php :
02 | $db =mysql_connect( "localhost" , "root" , "" ); |
05 | if (mysql_select_db( "tutorial_1" )) |
11 | echo "Can�t select database!" ; |
17 | echo "Can�t Connect to MySQL Server!" ; |
21 | <form method= "post" action= "soal_process.php" > |
28 | $query =mysql_query( "SELECT * FROM soal" ); |
29 | while ( $row =mysql_fetch_array( $query )) |
40 | $soal_urut = array_rand ( $soal , $soal_max ); |
41 | while ( $s =each( $soal_urut )) |
44 | $soal_nomor = $s [ "value" ]; |
45 | $soal_nomor = $soal [ $soal_nomor ]; |
47 | $query =mysql_query( "SELECT * FROM soal WHERE id=" . $soal_nomor ); |
48 | $row =mysql_fetch_array( $query ); |
49 | echo "<b>$nomor. " . $row [soal]. " ?</b>" ; |
55 | $query =mysql_query( "SELECT * FROM jawaban WHERE soal=" . $soal_nomor ); |
56 | while ( $row =mysql_fetch_array( $query )) |
64 | echo "<input type=\\" radio\\ " name=\\" jawab_ $soal_nomor \\ " value=\\" $id \\ ">$jawab" ; |
70 | $soal_nomor_send .= $soal_nomor . "," ; |
77 | $soal_nomor_send = substr ( $soal_nomor_send ,0, strlen ( $soal_nomor_send )-1); |
80 | echo "<input type=\\" hidden\\ " name=\\" soal_nomor\\ " value=\\" $soal_nomor_send \\ ">" ; |
82 | <input type= "submit" value= "Jawab" > |
Dan ini, adalah file untuk memproses jawaban, simpan dengan nama file soal_process.php :
02 | $db =mysql_connect( "localhost" , "root" , "" ); |
05 | if (mysql_select_db( "tutorial_1" )) |
11 | echo "Can�t select database!" ; |
17 | echo "Can�t Connect to MySQL Server!" ; |
28 | $soal_urut = $_POST [ "soal_nomor" ]; |
29 | $soal_urut = explode ( "," , $soal_urut ); |
32 | while ( $s =each( $soal_urut )) |
34 | $soal_nomor = $s [ "value" ]; |
37 | $query =mysql_query( "SELECT * FROM soal WHERE id=" . $soal_nomor ); |
38 | $row =mysql_fetch_array( $query ); |
39 | echo "<b>$nomor. " . $row [soal]. " ?</b>" ; |
42 | $query =mysql_query( "SELECT * FROM jawaban WHERE soal=" . $soal_nomor ); |
43 | while ( $row =mysql_fetch_array( $query )) |
51 | $user_jawab = $_POST [ "jawab_$soal_nomor" ]; |
56 | $jawab_status = "<span style=�color:red;�><< Jawaban Anda� Salah!</span>" ; |
58 | $jawab_status = "<span style=�color:blue;�><< Jawaban Anda� Benar!</span>" ; |
67 | echo "<input type=\\" radio\\ " name=\\" jawab_ $soal_nomor \\ " value=\\" $id \\ ">$jawab $jawab_status" ; |
Oke deh, selamat mencoba, don’t hestitate to reply klo ketemu bug
Untuk penulisan \\"radio\\" saya coba koq error ya? Bagaimana penulisan script yg baik nya gan,? Mohon pencarahannya
ReplyDelete