Script PHP untuk Membuat
Soal Ujian Pilihan Ganda
Tampil Acak
www.bunafit-komputer.com
www.planetKode.Com
Koleksi Buku dari
Penerbit GAVAMEDIA
, Yogyakarta Penulis :Bunafit Nugroho
, danIndah Indriyanna
Harga: Rp. 57.500,- Harga: Rp. 65.500,- Harga: Rp. 36.500,- Harga: Rp.
33.500,-
Pada bab ini kita akan membuat aplikasi kuis yang biasanya dipasang pada web
e-Learning. Konsep aplikasi ini adalah menampilkan pertanyaan dan beberapa jawaban pilihan. Sebagai contoh, pada aplikasi ini hasil pilihan akan ditampilkan secara
langsung.
Mempersiapkan Tabel dan Koneksi
Sebelum mendesain program, ada baiknya Anda juga kami bimbing untuk dapat mempersiapkan tabel yang digunakan serta koneksinya.
Membuat Tabel Kuis
Pada aplikasi ini, kita akan menggunakan tabel kuis. Tabel ini nantinya akan
digunakan untuk merekam semua data pertanyaan lengkap dengan jawaban. Selain itu, kunci jawaban juga disimpan pada tabel ini.
1. Masuklah pada database MySQL, kemudian buatlah database elearningdb dengan perintah berikut.
CREATE DATABASE IF NOT EXISTS elearningdb;
2. Perintah di atas tidak akan dijalankan apabila database elearningdb sudah ada. Sekarang masuklah pada database tersebut dengan perintah :
USE elearningdb;
3. Sekarang Anda dapat membuat tabel di dalam database aktif, tabel yang diperlukan adalah kuis. Berikut adalah desain strukturnya:
Tabel Desain struktur tabel kuis
Kolom Tipe Panjang Keterangan
id_kuis INT 4 KUNCI
PRIMER, AUTO soal VARCHAR 100 jawab_a VARCHAR 60 jawab_b VARCHAR 60 jawab_c VARCHAR 60
jawab_d VARCHAR 60
kunci ENUM ('A','B','C','D')
Dari desain tabel di atas, berikut adalah perintah SQL-nya: CREATE TABLE kuis (
id_kuis INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, soal VARCHAR(100) NOT NULL,
jawab_a VARCHAR(60) NOT NULL, jawab_b VARCHAR(60) NOT NULL, jawab_c VARCHAR(60) NOT NULL, jawab_d VARCHAR(60) NOT NULL , kunci ENUM('A','B','C','D') NOT NULL ) ENGINE = MYISAM;
4. Setelah tabel selesai dibuat, Anda dapat memastikan keberadaan tabel materi
dengan perintah SHOW TABLES;.
5. Sekarang masukkanlah beberapa data di dalam tabel, berikut adalah contoh perintahnya.
INSERT INTO `kuis` VALUES (1, 'Dibawah ini, mana yang bukan termasuk database Server ?', 'MySQL', 'Ms Access',
'Oracle', 'PostgreSQL', 'B');
INSERT INTO `kuis` VALUES (2, 'Di bawah ini, manakah database yang berlisensi Open Source ?', 'MySQL',
Membuat Koneksi Database MySQL
Untuk dapat membuat aplikasi berbasis database, maka kita harus membuat file koneksi yang berfungsi menghubungkan aplikasi dengan database MySQL. Berikut adalah skrip yang perlu Anda buat.
1. Masuklah pada editor Dreamweaver kesayangan Anda, kemudian buatlah halaman baru dengan tipe PHP.
2. Masuklah pada halaman kode (menu View Code), hapuslah semua kode standar yang ada disana.
3. Tuliskan listing program berikut.
Listing Program Bab5/inc.koneksidb.php <?PHP
$db_host = "localhost"; $db_user = "root"; $db_pass = "";
$db_data = "elearningdb";
// Perintah koneksi Server MySQL
$koneksi = mysql_connect($db_host, $db_user, $db_pass) or die ("Koneksi gagal".mysql_error());
mysql_select_db($db_data, $koneksi)
or die ("Baca DB gagal".mysql_error()); ?>
Akhir Listing
4. Simpanlah skrip program di atas pada folder Bab5, apabila belum ada, maka Anda harus membuatnya terlebih dahulu.
5. Buatlah juga file inc.koneksidb.php pada subfolder Bab5/cPanel, yang nantinya digunakan untuk membuat halaman manajemen data.
Memahami Folder Kerja Latihan
Semua latihan program yang akan dipelajari pada bab ini akan disimpan di dalam subfolder Bab5, tentunya di bawah folder kerja utama bernama eLearning. Pada latihan bab ini, setidaknya Anda nanti akan membuat subfolder dan file program seperti struktur berikut:
Gambar Struktur folder dan file untuk latihan
Dari struktur folder di atas, subfolder cPanel kita buat untuk menyimpan file program admin, yaitu untuk mengelola data kuis.
Halaman Utama Aplikasi Kuis
Untuk membuat halaman utama kuis, Anda harus sudah mengisi data pertanyaan pada tabel kuis. Tentunya, apabila Anda mengikuti dengan sempurna pelajaran pada
Subbab 5.2.1. Langsung saja, sekarang Anda dapat membuat halaman utama kuis dengan mengikuti langkah berikut.
1. Masih menggunakan editor Dreamweaver versi kesukaan Anda, sekarang bukalah halaman baru dengan tipe PHP.
2. Masuklah pada halaman kode (dari menu View Code), kemudian hapuslah semua tag HTML standar yang ada di sana.
3. Selanjutnya, tuliskan skrip lengkap yang berguna sebagai halaman utama aplikasi kuis online. Berikut adalah skrip lengkapnya:
Listing Program Bab5/index.php <html>
<head>
<title>Aplikasi Kuis Online</title> </head>
<body> <?php
include "inc.koneksidb.php";
$qry = mysql_query($sql, $koneksi)
or die ("SQL Error".mysql_error()); // Memeriksa keberadaan data
if (! mysql_num_rows($qry) >=1 ) {
echo "BELUM ADA SOAL YANG DIINPUT"; exit;
}
// Kode untuk form
echo "<form name='form1' method='post' action='JawabHasil.php'>";
while ($data=mysql_fetch_array($qry)) { $no++;
// Kode untuk menampilkan soal echo "$no. $data[soal] <br>";
echo "A.<input type='radio' value='A' name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_a] <br>";
echo "B.<input type='radio' value='B'
name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_b] <br>";
echo "C.<input type='radio' value='C'
name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_c] <br>";
echo "D.<input type='radio' value='D'
name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_d] <br><br>";
}
// Kode untuk tombol
echo "<input type='submit' name='Submit' value='Jawab'>"; echo "</form>"; ?> </body> </html> Akhir Listing Penjelasan Kode :
Dari listing program index.php di atas, kemungkinan dari pembaca masih ada yang belum paham. Berikut adalah penjelasan setiap kode penting yang digunakan:
include "inc.koneksidb.php";
Digunakan untuk memanggil file koneksi, yaitu berisi kode untuk menghubungkan program dengan database MySQL.
Kode :
$sql = "SELECT * FROM kuis ORDER BY id_kuis"; $qry = mysql_query($sql, $koneksi)
or die ("SQL Error".mysql_error());
Digunakan untuk menampilkan semua data pertanyaan dan jawaban yang ada di dalam tabel kuis.
Supaya soal tampil acak, kamu bisa menggunakan fungsi RAND()
$sql = "SELECT * FROM kuis ORDER BY ORDER BY RAND()"; $qry = mysql_query($sql, $koneksi)
or die ("SQL Error".mysql_error());
Kode :
if (! mysql_num_rows($qry) >=1 ) {
echo "BELUM ADA SOAL YANG DIINPUT"; exit;
}
Digunakan untuk memeriksa apakah ada data soal di dalam tabel kuis, ap datanya kosong, maka pesan “BELUM ADA SOAL YANG DIINPU ”T akan
ditampilkan dan form tidak tampil. Kode :
echo "A.<input type='radio' value='A'
name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_a] <br>";
Digunakan untuk membuat pilihan pada jawaban A, untuk nama pengenalnya menggunakan array berindeks nomor soal (id_kuis).
Kode :
echo "B.<input type='radio' value='B'
name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_b] <br>";
Digunakan untuk membuat pilihan pada jawaban B, untuk nama pengenalnya menggunakan array berindeks nomor soal (id_kuis).
Kode :
echo "C.<input type='radio' value='C'
name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_c] <br>";
Digunakan untuk membuat pilihan pada jawaban C, untuk nama pengenalnya menggunakan array berindeks nomor soal (id_kuis).
Kode :
echo "D.<input type='radio' value='D'
name='RbJawaban[$data[id_kuis]]'>"; echo "$data[jawab_d] <br><br>";
Digunakan untuk membuat pilihan pada jawaban D, untuk nama pengenalnya menggunakan array berindeks nomor soal (id_kuis).
4. Setelah semua skrip program di atas dibuat, simpanlah menggunakan nama
index.php, dan letakkan pada folder Bab5.
5. Untuk menjalankan halaman utama program di atas, masuklah pada browser dan ketikkan “http://localhost/eLearning/Bab5/index.php”.
Dari program utama kuis yang telah dibuat sebelumnya, pada kode formulir
parameter Action diarahkan pada halaman JawabanHasil.php Pada bagian ini kita akan membuat program tersebut, yaitu berisi kode untuk memeriksa benar tidaknya setiap jawaban yang dipilih
1. Masih menggunakan Editor Dreamweaver kesayangan Anda. 2. Bukalah halaman baru menggunakan tipe Dynamic Page PHP.
3. Masuklah pada halaman kode (dari menu View Code), kemudian hapuslah semua kode HTML standar yang ada.
4. Supaya mempermudah langkah, Anda dapat menuliskan kode program simpan secara lengkap seperti listing berikut.
Listing Program Bab5/JawabHasil.php <html>
<head>
<title>Hasil jawaban kuis</title> </head> <body> <?php include "inc.koneksidb.php"; $RbJawaban = $_REQUEST['RbJawaban']; if (! count($RbJawaban) >=1) {
echo "<b>ANDA BELUM MEMILIH JAWABAN</b>"; include "index.php";
exit; }
$benar = 0;
foreach($RbJawaban as $indeks=>$nilai) {
$sql = "SELECT * FROM kuis WHERE id_kuis='$indeks'"; $qry = mysql_query($sql, $koneksi);
$data=mysql_fetch_array($qry); if ($data['kunci'] == $nilai) {
$benar = $benar + 1; }
}
$sql_jum = "SELECT COUNT(*) FROM kuis"; $qry_jum = mysql_query($sql_jum, $koneksi);
$data_jum= mysql_fetch_row($qry_jum); $jumlah= $data_jum[0];
$salah = $jumlah - $benar;
$persen_benar = round(($benar/$jumlah)*100,2); $persen_salah = round(($salah/$jumlah)*100,2);
echo "<h3> Hasil Kuis : </h3> ";
echo "Jumlah Benar : $benar ($persen_benar %)"; echo "<br> Jumlah salah : $salah ($persen_salah %)"; ?>
</body> </html>
Akhir Listing
Penjelasan Kode :
Dari listing program JawabHasil.php di atas, kemungkinan dari pembaca masih ada yang belum paham. Berikut adalah penjelasan setiap kode penting yang digunakan:
Kode :
if (! count($RbJawaban) >=1) {
echo "<b>ANDA BELUM MEMILIH JAWABAN</b>"; include "index.php";
exit; }
Digunakan untuk memeriksa apakah salah satu pertanyaan telah dijawab be apabila tidak ada satupun pertanyaan yang dijawab, maka pesan kesalahan akan
ditampilkan. Kode :
$benar = 0;
foreach($RbJawaban as $indeks=>$nilai) {
$sql = "SELECT * FROM kuis WHERE id_kuis='$indeks'"; $qry = mysql_query($sql, $koneksi);
$data=mysql_fetch_array($qry); if ($data['kunci'] == $nilai) {
$benar = $benar + 1; }
}
Digunakan untuk memeriksa kebenaran jawaban Anda dengan kunci jawaban yang dimiliki setiap soal.
5. Berikut adalah tampilan hasil perhitungan jawaban yang dipilih, Anda akan mendapatkan nilai berupa persentase.
Gambar Tampilan hasil jawab oooOooo
Setelah transfer, konfirmasi lewat Email ,
atau SMS Ke :
Terimakasih Super.