Membuat Soal Pilihan Ganda PHP MYSQLi
Tutorial kali ini kita akan membahas Cara Membuat Soal Pilihan Ganda di PHP dengan Database PHP MYSQL ,dan sekarang sudah saya upgrade ke MYSQLI Pada artikel sebelumnya kita sudah Membahas Cara Membuat Random Soal / Soal acak dengan PHP . Source Code nya nanti dapat anda download di bagian bawah artikel ini.. Soal Pilihan ganda ini biasanya terdapat pada Aplikasi Ujian Online, atau aplikasi Kuis Online,, Nah disini kita akan membuat Script Untuk menampilkan Soal yang ada di database dan kemudian script jawaban soal pilihan gandanya..
Membuat Script Ujian Online Dengan PHP MYSQL
OK.. disini anda akan dipandu step by step, jadi silahkan di ikuti tutorial dibawah ini, jika ada yang kurang paham silahkan anda bertanya di kolom komentar. langsung saja.. buat database dengan nama "db_soal", Kemudian buat tabel dengan nama "tbl_soal" , berikut script nya :
CREATE TABLE IF NOT EXISTS `tbl_soal` (
`id_soal` int(5) NOT NULL AUTO_INCREMENT,
`soal` text NOT NULL,
`a` varchar(30) NOT NULL,
`b` varchar(30) NOT NULL,
`c` varchar(30) NOT NULL,
`d` varchar(30) NOT NULL,
`knc_jawaban` varchar(30) NOT NULL,
`gambar` varchar(100) NOT NULL,
`tanggal` date NOT NULL,
`aktif` enum('Y','N') NOT NULL DEFAULT 'Y',
PRIMARY KEY (`id_soal`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;
Kemudian Insertkan data :
INSERT INTO `tbl_soal` (`id_soal`, `soal`, `a`, `b`, `c`, `d`, `knc_jawaban`, `gambar`, `tanggal`, `aktif`) VALUES
(9, 'User atau Operator Komputer dalam Istilah Komputer disebut dengan..?', 'Brainware', 'Fireware', 'Software', 'Hardware', 'a', '', '0000-00-00', 'Y'),
(10, 'CPU Merupakan Singkatan dari', 'Central Progamming Unit', 'Central Promoting Unit', 'Central Processing Unit', 'Central Producing Unit', 'c', '', '0000-00-00', 'Y'),
(11, 'Jaringan dari elemen-elemen yang saling berhubungan adalah ?', 'pentium ', 'instal', 'system', 'data', 'c', '', '0000-00-00', 'Y'),
(12, 'Berikut merupakan elemen-elemen sistem komputer kecuali...?', 'Fireware', 'Brainware', 'Software', 'Hadware', 'a', '', '0000-00-00', 'Y'),
(13, 'Program yang berisi perinta-perintah / perangkat lunak disebut...?', 'Pentium', 'Brainware', 'Hardware', 'software', 'd', '', '0000-00-00', 'Y'),
(14, 'Proses memasukkan dan memasang software ke dalam komputer disebut...?', 'data', 'instal', 'loading', 'online', 'b', '', '0000-00-00', 'Y'),
(15, 'Berikut yang bukan termasuk alat output adalah...?', 'keyboard', 'speaker', 'monitor', 'printer', 'a', '', '0000-00-00', 'Y'),
(16, 'Tanda panah (tanda lain) yang mewakili posisi gerakan mouse disebut dengan...?', 'kursor', 'mouse', 'pointer', 'printer', 'c', '', '0000-00-00', 'Y'),
(17, 'Fungsi printer adalah untuk....?', 'mengeluarkan suara', 'mencetak dokumen', 'menyimpan dokumen', 'salah semua', 'b', '86image003.jpg', '0000-00-00', 'Y'),
(18, 'USB merupakan singkatan dari', 'universal serial buss', 'unit serial bus', 'Universal Serial Bus', 'Unit serial booster', 'c', '', '0000-00-00', 'Y'),
(19, 'Salah satu perangkat Lunak pengolah kata adalah', 'Ms.Word', 'Winamp', 'CC cleaner', 'Jet audio', 'a', '', '0000-00-00', 'Y'),
(20, 'Program yang digunakan untuk disain gambar adalah..?', 'Ms.Exel', 'Media Player', 'Power Point', 'Photoshop', 'd', '', '0000-00-00', 'N'),
(21, 'Yang bukan termasuk Hadware / Perangkat Keras adalah..', 'CPU', 'Keyboard', 'Ms.Office', 'Printer', 'c', '', '0000-00-00', 'N');
Setelah itu Buat Script untuk menampilkan soal, soal.php
CODE PHP :
<?php
// koneksi ke mysqli
$servername = "localhost";
$username = "root";
$password = "";
$db = "db_soal";
// Create connection
$koneksi = mysqli_connect($servername, $username, $password,$db);
// Check connection
if (!$koneksi) {
die("Connection failed: " . mysqli_connect_error());
}
echo "<h3>Tutorial Suckittrees.com</h3>
<b>Ujian Online Pilihan Ganda</b>";
echo "<div style='width:100%; border: 1px solid #EBEBEB; overflow:scroll;height:700px;'>";
echo '<table width="100%" border="0">';
$hasil=mysqli_query($koneksi, "select * from tbl_soal WHERE aktif='Y' ORDER BY RAND ()");
$jumlah=mysqli_num_rows($hasil);
$urut=0;
while($row =mysqli_fetch_array($hasil))
{
$id=$row["id_soal"];
$pertanyaan=$row["soal"];
$pilihan_a=$row["a"];
$pilihan_b=$row["b"];
$pilihan_c=$row["c"];
$pilihan_d=$row["d"];
?>
<form name="form1" method="post" action="jawab.php">
<input type="hidden" name="id[]" value=<?php echo $id; ?>>
<input type="hidden" name="jumlah" value=<?php echo $jumlah; ?>>
<tr>
<td width="17"><font color="#000000"><?php echo $urut=$urut+1; ?></font></td>
<td width="430"><font color="#000000"><?php echo "$pertanyaan"; ?></font></td>
</tr>
<?php
if (!empty($row["gambar"])) {
echo "<tr><td></td><td><img src='foto/$row[gambar]' width='200' hight='200'></td></tr>";
}
?>
<tr>
<td height="21"><font color="#000000"> </font></td>
<td><font color="#000000">
A. <input name="pilihan[<?php echo $id; ?>]" type="radio" value="A">
<?php echo "$pilihan_a";?></font> </td>
</tr>
<tr>
<td><font color="#000000"> </font></td>
<td><font color="#000000">
B. <input name="pilihan[<?php echo $id; ?>]" type="radio" value="B">
<?php echo "$pilihan_b";?></font> </td>
</tr>
<tr>
<td><font color="#000000"> </font></td>
<td><font color="#000000">
C. <input name="pilihan[<?php echo $id; ?>]" type="radio" value="C">
<?php echo "$pilihan_c";?></font> </td>
</tr>
<tr>
<td><font color="#000000"> </font></td>
<td><font color="#000000">
D. <input name="pilihan[<?php echo $id; ?>]" type="radio" value="D">
<?php echo "$pilihan_d";?></font> </td>
</tr>
<?php
}
?>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Jawab" onclick="return confirm('Apakah Anda yakin dengan jawaban Anda?')"></td>
</tr>
</table>
</form>
</p>
</div>
setelah itu buat code untuk Melakukan Pengecekan Jawaban Soal .. jawab.php
CODE PHP :
<?php
// koneksi ke mysqli
$servername = "localhost";
$username = "root";
$password = "";
$db = "db_soal";
// Create connection
$koneksi = mysqli_connect($servername, $username, $password,$db);
// Check connection
if (!$koneksi) {
die("Connection failed: " . mysqli_connect_error());
}
if(isset($_POST['submit'])){
$pilihan=$_POST["pilihan"];
$id_soal=$_POST["id"];
$jumlah=$_POST['jumlah'];
$score=0;
$benar=0;
$salah=0;
$kosong=0;
for ($i=0;$i<$jumlah;$i++){
//id nomor soal
$nomor=$id_soal[$i];
//jika user tidak memilih jawaban
if (empty($pilihan[$nomor])){
$kosong++;
}else{
//jawaban dari user
$jawaban=$pilihan[$nomor];
//cocokan jawaban user dengan jawaban di database
$query=mysqli_query($koneksi, "select * from tbl_soal where id_soal='$nomor' and knc_jawaban='$jawaban'");
$cek=mysqli_num_rows($query);
if($cek){
//jika jawaban cocok (benar)
$benar++;
}else{
//jika salah
$salah++;
}
}
/*RUMUS
Jika anda ingin mendapatkan Nilai 100, berapapun jumlah soal yang ditampilkan
hasil= 100 / jumlah soal * jawaban yang benar
*/
$result=mysqli_query($koneksi, "select * from tbl_soal WHERE aktif='Y'");
$jumlah_soal=mysqli_num_rows($result);
$score = 100/$jumlah_soal*$benar;
$hasil = number_format($score,1);
}
}
//Lakukan Penyimpanan Kedalam Database
echo "
<tr><td>Jumlah Jawaban Benar</td><td> : $benar </td></tr>
<tr><td>Jumlah Jawaban Salah</td><td> : $salah</td></tr>
<tr><td>Jumlah Jawaban Kosong</td><td>: $kosong</td></tr>
</table></div>";
?>
Bagaiman... mudah bukan... ??? Cara Membuat Soal Pilihan Ganda dengan Database PHP MYSQL... ??? untuk source Codenya silahkan download disini