Membuat Random Soal Dengan PHP & MYSQL
Ide Membuat Random Soal dengan PHP dan Mysql ini muncul ketika ada yang komentar bagaimana membuat Soal Pilihan Ganda dengan Soal Acak / Random dengan PHP MYSQL , Soal pilihan acak ini akan sering kita jumpai pada aplikasi Ujian Online, Aplikasi Kuis Online dan sebagainya. masih ada yang bingung cara menampilkan data secara acak atau random di PHP MYSQL , dalam kasus ini tentunya tentang Soal pilihan ganda yang ditampilkan secara acak..
Pada artikel sebelumnya admin sudah menjelaskan Membuat Soal Pilihan Ganda PHP MYSQL , disitu sebenarnya juga sudah dijelaskan.. namun secara keseluruhan saja, tidak secara detail dalam membuat random soal..
Secara umum untuk menampilkan data secara random kita bisa menggunakan query sql berikut :
SELECT * FROM nama_database ORDER BY RAND()
atau kita bisa menambahkan limit / jumlah data yang ingin kita tampilkan dengan query :
SELECT * FROM nama_database ORDER BY RAND() LIMIT 5
Nah untuk lebih jelasnya :
OK.. 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
mysql_connect("localhost","root","");
mysql_select_db("db_soal");
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=mysql_query("select * from tbl_soal WHERE aktif='Y' ORDER BY RAND ()");
$jumlah=mysql_num_rows($hasil);
$urut=0;
while($row =mysql_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>
Nah dapat kita perhatikan PADA QUERY sql yang saya beri background kuning dibawah ini :
$hasil=mysql_query("select * from tbl_soal WHERE aktif='Y' ORDER BY RAND ()");
Script berikut merupakan query yang digunakan untuk membuat Random Soal dengan PHP MYSQL , Untuk lanjut ke jawaban.. silahkan lihat artikel Membuat Soal Pilihan Ganda PHP MYSQL
Bryanvoify Pada : 2024-08-04 08:58:40
Hello Do you want to become the best SEO specialist and link builder or do you want to outpace your competitors? bPremium base for XRumer/b 119/one-time Get access to our premium database which is updated monthly The database contains only those re