Membuat web ujian online dengan PHP dan MySQL


Pada artikel kali ini saya akan membahas tentang web untuk ujian online. dimana web ini akan menampilkan soal-soal berupa pilihan ganda. adapun alur programnya adalah sebagai berikut :

  1. User daftar akun
  2. User melakukan login
  3. User menjawab soal-soal
  4. User mengirim jawaban
  5. Program menampilkan hasil jawaban user
  6. Selesai

Adapun untuk menginput soal-soal ujian online, telah disediakan halaman untuk administrator. Pada halaman ini admin dapat menginput, update, delete soal ujian online.  untuk masuk kehalaman admin caranya :

Halaman Admin Input Soal

Tabel Soal

Sedangkan untuk databasenya, saya menggunakan tabel_soal untuk menyimpan soal-soal ujian online. field publish untuk mengatur soal tersebut di tampilkan atau tidak ke user. sedangkan field tipe untuk membagi soal-soal menjadi beberapa tipe (untuk tipe silahkan dikembangkan)

Potongan skrip untuk mengecek Jawaban user

<?php
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=mysql_query(“select * from tabel_soal where id_soal=’$nomor’ and jawaban=’$jawaban’”);

$cek=mysql_num_rows($query);

if($cek){
//jika jawaban cocok (benar)
$benar++;
}else{
//jika salah
$salah++;
}}
$score = $benar*5;
}}
?>

Download

http://www.4shared.com/zip/cKv1aPOa/ujian_online.html

Perhatian

Dari pertanyaan : Kenapa web yang dicoba di Mozilla focusnya tidak bisa pindah dengan mouse klik, harus pake tab. tapi di google chrome bisa.

Jawaban : Edit file index.php dan hilangkan script dibawah ini.

if (typeof document.onselectstart!=”undefined”) {
document.onselectstart=new Function (“return false”);
}else{
document.onmousedown=new Function (“return false”);
document.onmouseup=new Function (“return true”);
}

Ri32 Web Project :

  1. ri32.com
  2. infoniaga.ri32.com
  3. referensibuku.ri32.com
  4. warungtemplate.ri32.com
  5. temanonline.ri32.com
  6. ujianonline.ri32.com
  7. labhouse.ri32.com

Referensi Buku :

  1. Cepat-kuasai-php-dan-mysql
  2. Aplikasi-web-dengan-php-dan-mysql

Rerefensi  Penyedia Jasa Hosting Domain :

  1. ri32.wordpress.com/penyedia-jasa-hosting-dan-domain-website
  2. jasahostingdomain.com

Free Theme WordPress :

Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamin

Depok, 13-02-2011

noname

$upload=mysql_query(“INSERT INTO tabel_user VALUES(”,’$nama’,’$alamatfile’,’$username’,’$password’,’no’)”);
About these ads

146 Responses

  1. mas agus knapa pas saya coba import db_ujianonline.sql.zip ada error spt ini :
    Error
    SQL query:


    – Database: `db_ujianonline`

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


    – Table structure for table `admin`

    CREATE TABLE IF NOT EXISTS `admin` (
    `id_admin` int(2) NOT NULL AUTO_INCREMENT,
    `nama_admin` varchar(20) NOT NULL,
    `username` varchar(20) NOT NULL,
    `password` varchar(50) NOT NULL,
    PRIMARY KEY (`id_admin`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
    MySQL said: Documentation

    #1046 – No database selected

  2. Kang agus,, saya mau tanya lagi nih.. kalau untuk potongan skrip mengecek jawaban adanya di bagian mana ya taronya??

    tks,,

  3. makasiih gan
    ngebantu banget infonya..

    http://www.bukuonlen.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 478 other followers

%d bloggers like this: