membuat soal ujian online

Melihat adek belajar mengerjakan latihan tryout online dalam rangka mempersiapkan diri UN kali ini, jadi terfikir untuk membuat tryout online juga. so mulai searching, baca-baca, coba-coba. n wal hasil coba saja buat.

monggo di lihat hasilnya, di http://zainalfuadi.net/ujian/bindsmp.php n juga monggo dikerjakan, he3, TUK PERSIAPAN UN

berikut sourcenya

<?php
/*
File ini dapat didistribusika secara gratis tanpa
harus menyebutkan siapa yang membuat, syukur-2
menuliskan siapa yang membuat juga tidak apa2

Sofiudin Nurmansyah
blog : www.esn.or.id
email : iam@essn.or.id
*/

// DATABASE
$qlname = “user”;  // username database
$qlpass = “password”;  // password base
$qlserver = “localhost”; // server
$qldbase = “database”; // database name

// jumlah soal yang ditampilkan
$jml = 40;

mysql_connect($qlserver,$qlname,$qlpass);
$conn = mysql_select_db($qldbase);
if(!$conn)
{
echo ‘Can’t find database, maybe server down …..’;
exit;
}

if($_POST[‘user’]==”jawab”)
{

for($i=1; $i<=$jml; $i++)
{
$ns = $_POST[“s_”.$i.””];
$jb = $_POST[“j_”.$i.””];
$jwb = mysql_query(“select * from soal where id='”.$ns.”‘ and jbenar='”.$jb.”‘”);
if(mysql_num_rows($jwb)==0)
{
$nilai[$i] = 0;
if($jb)
echo ‘Jawaban Soal No. ‘.$i.’ – ‘.$jb.’ : <FONT COLOR=”red”>SALAH</FONT><BR>’;
else
echo ‘Tidak menjawab soal nomor ‘.$i.'<br>’;
}
else
{
$nilai[$i] = 1;
if($jb)
echo ‘Jawaban Soal No. ‘.$i.’ – ‘.$jb.’ : BENAR<BR>’;

// Tempat masukkan jawaban dalam database

// Tempat masukkan jawaban dalam database end
}

}
// REKAP NILAI
$nbenar = array_sum($nilai);
$nsalah = $jml-$nbenar;
$ntotal = number_format($nbenar/$jml*100,1);
if($nbenar>0)
{
echo ‘<br>Rekap Nilai:<br>’;
echo ‘- Jawaban benar : ‘.$nbenar.’ soal<br>’;
echo ‘- Jawaban salah : ‘.$nsalah.’ soal<br>’;

// KATEGORI

if($ntotal>=90)
$k = ‘<FONT COLOR=”green”>Subhanalloh</font>’;
elseif($ntotal>=70 && $ntotal<90)
$k = ‘<FONT COLOR=”green”>Alhamdulillah</font>’;
elseif($ntotal>=60 && $ntotal<70)
$k = ‘<FONT COLOR=”red”>BERDOA DAN TINGKATKAN BELAJARMU !</FONT>’;
else
$k = ‘<FONT COLOR=”red”>BERHATI-HATILAH ! DOA ! BELAJAR !</FONT>’;
// KATEGORI END

echo ‘- Nilai Total :<b><FONT COLOR=”blue”> ‘.$ntotal.’ </FONT></b> dari 100 </br>
– status : <B><U>’.$k.'</U></B><br>’;
}
echo ‘<br ><A HREF=”‘.$_PPHP[‘SELF’].'”>Kembali ke soal</A><br >’;
}
else
{
echo ‘</p>
<FORM METHOD=”POST” ACTION=””>
<INPUT TYPE=”hidden” NAME=”user” value=”jawab”>’;
echo ‘<B>Pilih satu jawaban yang paling benar! </B>’;
echo ‘<OL>’;
$sx = mysql_query(“SELECT * FROM soal ORDER BY RAND() LIMIT $jml”);
$no = 1;
while($x=mysql_fetch_array($sx))
{
echo ‘<INPUT TYPE=”hidden” NAME=”s_’.$no.'” value=”‘.$x[id].'”>’;
echo ‘<LI>’.$x[soal].'<br>’;
// pilihan
echo ‘<INPUT TYPE=”radio” NAME=”j_’.$no.'” value=”‘.$x[j1].'”>’. $x[j1].'<br> ‘;
echo ‘<INPUT TYPE=”radio” NAME=”j_’.$no.'” value=”‘.$x[j2].'”>’. $x[j2].'<br> ‘;
echo ‘<INPUT TYPE=”radio” NAME=”j_’.$no.'” value=”‘.$x[j3].'”>’. $x[j3].'<br> ‘;
echo ‘<INPUT TYPE=”radio” NAME=”j_’.$no.'” value=”‘.$x[j4].'”>’. $x[j4].'<br> ‘;
echo'<br></LI>’;
$no++;
}
echo ‘</OL>’;
echo ‘<INPUT TYPE=”submit” value=”Hasil dan Nilai”>
</FORM>’;
}
echo ‘   <center> <BR>BY <A HREF=”http://farid.zainalfuadi.net”>ZainalFuadi.net</A> <br>
Coba Tryout  <a href=”http://zainalfuadi.net/ujian/bindsmp.php”> Bahasa Indonesia</a>  II  <a href=”http://zainalfuadi.net/ujian/bingsmp.php”>Bahasa Inggris</a>  II  <a href=”http://zainalfuadi.net/ujian/matsmp.php”>Matematika</a>  II  <a href=”http://zainalfuadi.net/ujian/ipasmp.php”>Ilmu Pengetahuan Alam</a>
</center>

‘;
?>

hal-hal yang harus diperhatikan adalah pada baris

// DATABASE
    $qlname = “user”;  // username database
    $qlpass = “password”;  // password base
    $qlserver = “localhost”; // server
    $qldbase = “database”; // database name

// jumlah soal yang ditampilkan
    $jml = 40;

juga

$jwb = mysql_query(“select * from soal where id='”.$ns.”‘ and jbenar='”.$jb.”‘”);

dan

$sx = mysql_query(“SELECT * FROM soal ORDER BY RAND() LIMIT $jml”);

diganti sesuai dengan keadaan server, tuk yang lain, menyesuaikan saja.

Dan untuk databasenya

— phpMyAdmin SQL Dump
— version 2.11.6
— http://www.phpmyadmin.net

— Host: localhost
— Generation Time: Sep 23, 2009 at 07:17 PM
— Server version: 5.0.51
— PHP Version: 5.2.6

SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;


— Database: `randomz`

— ——————————————————–


— Table structure for table `soal`

CREATE TABLE `soal` (
`id` int(6) NOT NULL auto_increment,
`soal` varchar(255) NOT NULL,
`j1` varchar(255) NOT NULL,
`j2` varchar(255) NOT NULL,
`j3` varchar(255) NOT NULL,
`j4` varchar(255) NOT NULL,
`jbenar` varchar(255) NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

INSERT INTO `soal` (`id`, `soal`, `j1`, `j2`, `j3`, `j4`, `jbenar`) VALUES
(1, ‘Ada gula ada?’, ‘Bekicot’, ‘Rayap’, ‘Babi’, ‘Semut’, ‘Semut’),
(2, ‘Udang dibalik?’, ‘Ketan’, ‘Mentega’, ‘Batu’, ‘Gosong’, ‘Batu’),
(3, ‘Motor Cina?’, ‘Honda’, ‘Yamaha’, ‘Kawasaki’, ‘Jialing’, ‘Jialing’),
(4, ‘Rasanya Mie Kocok?’, ‘Enak Banget’, ‘Manis’, ‘Asin’, ‘Hambar’, ‘Enak Banget’),
(5, ‘Kalau kepanasan?’, ‘Idupin kipas angin’, ‘Berjemur’, ‘Minum kopi dingin’, ‘Ditiupin’, ‘Ditiupin’);

You can skip to the end and leave a response. Pinging is currently not allowed.

2 responses to “membuat soal ujian online”

  1. Vina says:

    Maaf tapi kok ada errornya ya ?

  2. atho says:

    cara melihat kunci jawabannya gimana ya pak?

Leave a Reply

Your email address will not be published. Required fields are marked *