Membuat Tes Online PHP Sederhana

By , July 12, 2015,

Tes Online PHP. Program tes online berbasis web sangat banyak kita jumpai di sekitar kita. Salah satu yang sering kita ketahui misalnya tes online ujian saringan masuk sekolah, tes online PMB, tes ujian online PNS dan masih banyak lagi tes online yang ada di sekitar kita.

Saya sharing tentang membuat script php untuk tes online ini karena saya sedang mengerjakan aplikasi web untuk penyeleksian karyawan baru yang salah satu kriteria penilaianya menggunaka tes online. Sistem tes online ini tidak berdisi sendiri, melainkan di integrasikan pada sistem pengdukung keputusan atau SPK. Tes online adalah sebagai salah satu pengambilan nilai salah satu kriteria.

Tes Online PHP

Tes online php berbasis web ini di rancang menggunakan data base mysql. Namun proses yang ada sedikit simpel saja karena memang aspek utamnya buka pada tes onlinenya itu sendiri. Jadi program ini terdiri pada soal dan jawaban.

Seperti yang Saya kataka program ini menggunakan database, untuk tampilan field databasenya sebagai berikut:

Tabel karyawan peserta tes online

Karyawan merupakan peserta tes harus mengikuti tes untuk mendapatkan nilai kopetensi, berikut struktur tabel databasenya: Untuk detailya seperti berikut:

tabel-karyawan-tes-online

Tabel karyawan tes online

Tabel database soal tes online

Pada projek yang saya kerjakan contoh field database soal berikut ii field yang ada pada tabel soal tes:

1. no_soal, Sebagai singkronisasi antar pertanyaan dan jawaban

2. soal, berisi pertanyaan soal tes

3. pilihan_benar, merupakan  abjad dari pilihan yang benar atau jawaban dari soal

4. pilihan_a, keterangan abjad dari pilihan ganda begitupula dengan pilihan selanjutya

5. token, token adalah untuk pemisah antara satu kali kuis atau tes online dilakukan.

tabel-soal-tes-online

Tabel database soal tes online

Tabel database jawaban tes online

Untuk field jawaban tes sedikit lebih simple karena berelasi dengan tabel soal dan tabel karyawan sebagai penjawab tes. Untuk defail fieldnya sebagai berikut:

1. kd_karyawan, merupaka kode karyawan yang menjawab dari pertanyaan soal tes, dengan kode tersebut kita bisa panggil untuk field yang berkaitan dengannya karena memang sifatnya sebagai foreigh key atau kata kunci kedua.

2. jawaban, disini field jawaban berisi abjad dari jawaban yang di jawab oleh karyawan

3. no_soal, merupakan no soal tes

4. token, merupaka token pemisah antara setiap periode tes sama token di soal tes

tabel-jawaban-tes-online

Tabel database jawaban tes online

Script php tes online

Script php yang saya buat ini saya masukkan kedalam modul dan switch sehingga lebih mudah untuk mempelajarinya berikut lebih lengkapnya:

1. index.php

Script php yang berisi case untuk mengarahka modul menu.


<?php

session_start();
 $server = "localhost";
 $username = "root" ;
 $password = "" ;
 $database = "karyawan";

//Koneksi dan memilih database di server
 mysql_connect($server,$username,$password) or die ("Koneksi database gagal");
 mysql_select_db($database) or die ("Database tidak tersedia");
?>
<html>
<head>
<title>Tes online php</title>
</head>
<body>
<center>
<?php
 if (empty($_SESSION[username]) AND empty($_SESSION[password])){
 echo '
 <script>
 function myFunction() {
 alert(\'Kamu Belum Login Bro! ?\');
 }
 </script>

<a href="/sistemphp/tutorial/tesonline/">HOME</a> |
 <a href="/sistemphp/tutorial/tesonline/" onclick="myFunction()">SOAL</a> |
 <a href="/sistemphp/tutorial/tesonline/" onclick="myFunction()">TES ONLINE</a> |
 <a href="?modul=logout">LOGOUT</a>
 ';
 }
 elseif($_SESSION[level]== 'karyawan'){
 echo '
 <a href="/sistemphp/tutorial/tesonline/">HOME</a> |
 <a href="?modul=soal&aksi=tampil">SOAL</a> |
 <a href="?modul=tes">TES ONLINE</a> |
 <a href="?modul=logout">LOGOUT</a>
 ';

 }
?>

<hr/>

<?php
 switch ($_GET['modul']){

 case "soal" :
 include 'soal.php';
 break;

 case "tes" :
 include 'tes.php';
 break;

 case "logout" :
 session_destroy();
 echo "<center>Anda telah sukses keluar sistem </center>";
 echo "<meta http-equiv='refresh' content='1;url=/sistemphp/tutorial/tesonline'>";
 break;

 default:
 echo '<form name="login" action="ceklogin.php" method="POST" onSubmit="return validasi(this)">
 <table border="1px" style="border-collapse: collapse" cellpadding="3px">
 <tr><td>Username : </td><td><input type="text" name="username" size="27"></td></tr>
 <tr><td>Password : </td><td><input type="password" name="password" size="27"></td></tr>
 <tr><td colspan="2" align="right">
 <input type="submit" value="Login">
 <input type="reset" value="Reset">
 </td></tr>
 </table>
 </form>';
 break;

}
echo '
<p/><hr/>
Copyright &copy; TES Online sistemphp.com<br />
All Right Reserved';
?>
</center>
</body>
</html>

<strong>2. soal.php</strong>

Script yang berisi modul soal untuk tes.



<?php
switch ($_GET['aksi']){

 # Tambah data
 case "tambah":
 echo '
 <script>
function validateForm() {
 var a = document.forms["myForm"]["kd_kriteria"].value;
 var b = document.forms["myForm"]["nm_kriteria"].value;
 if (a==null || a=="" || b==null || b=="") {
 alert("Tidak boleh kosong");
 return false;
 }
}
</script>
 <h3>Tambah Data Soal Tes </h3>
 <form method="post" action="ksi_soal.php?aksi=insert" name="myForm" onsubmit="return validateForm()">
 <table>
 <tr>
 <td>Soal</td>
 <td><input name="soal" type="text" size="30"></td>
 </tr>
 <tr>
 <td>Jawaban Benar</td>
 <td>
 <input type="radio" name="pilihan_benar" value="a">a
 <input type="radio" name="pilihan_benar" value="b">b
 <input type="radio" name="pilihan_benar" value="c">c
 <input type="radio" name="pilihan_benar" value="d">d
 <input type="radio" name="pilihan_benar" value="e">e
 </td>
 </tr>
 <tr>
 <td>Pilihan a</td>
 <td><input name="pilihan_a" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan b</td>
 <td><input name="pilihan_b" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan c</td>
 <td><input name="pilihan_c" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan d</td>
 <td><input name="pilihan_d" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan e</td>
 <td><input name="pilihan_e" type="text" size="20">
 <input name="token" type="hidden"">
 </td>
 </tr>
 <tr>
 <td colspan="2">';
 #cek token
 $token= "SELECT * FROM soal_tes ORDER BY no_soal DESC LIMIT 1";
 $prosestoken = mysql_query($token);
 $datatoken = mysql_fetch_array($prosestoken);
 if($deteksitoken = mysql_num_rows($prosestoken) < 1 ){
 $isitoken = date('Y-m-d:H:i:s');
 $no_soal = 1;

 }else{
 $isitoken = $datatoken[token];
 $no_soal = $datatoken[no_soal]+1;
 }
 echo '<input type=hidden name=token value="'.$isitoken.'">
 <input type=hidden name=no_soal value="'.$no_soal.'">
 <input type="submit" value="Simpan" class="tombol"/>
 <input type="reset" name="reset" value="Batal" class="tombol" onclick=self.history.back()></td>
 </tr>
 </table>
 </form>';
 break;

 # Edit data
 case "edit":
 $edit = "SELECT * FROM soal_tes WHERE no_soal = '$_GET[id]'";
 $hasil = mysql_query($edit);
 $data = mysql_fetch_array($hasil);

echo '
 <script>
function validateForm() {
 var a = document.forms["myForm"]["kd_kriteria"].value;
 var b = document.forms["myForm"]["nm_kriteria"].value;
 if (a==null || a=="" || b==null || b=="") {
 alert("Tidak boleh kosong");
 return false;
 }
}
</script>
 <h3>Form Edit Data Master Soal Tes</h3>
 <form method="post" action="aksi_soal.php?aksi=update&id='.$_GET[id].'" name="myForm" onsubmit="return validateForm()">
 <table>
 <tr>
 <td>Soal</td>
 <td><input name="soal" value="'.$data[soal].'" type="text" size="30"></td>
 </tr>
 <tr>
 <td>Jawaban Benar</td>
 <td>
 <input type="radio" name="pilihan_benar" value="a"';if($data[pilihan_benar]=='a'){echo "checked";} echo '>a
 <input type="radio" name="pilihan_benar" value="b"';if($data[pilihan_benar]=='b'){echo "checked";} echo '>b
 <input type="radio" name="pilihan_benar" value="c"';if($data[pilihan_benar]=='c'){echo "checked";} echo '>c
 <input type="radio" name="pilihan_benar" value="d"';if($data[pilihan_benar]=='d'){echo "checked";} echo '>d
 <input type="radio" name="pilihan_benar" value="e"';if($data[pilihan_benar]=='e'){echo "checked";} echo '>e
 </td>
 </tr>
 <tr>
 <td>Pilihan a</td>
 <td><input name="pilihan_a" value="'.$data[pilihan_a].'" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan b</td>
 <td><input name="pilihan_b" value="'.$data[pilihan_b].'" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan c</td>
 <td><input name="pilihan_c" value="'.$data[pilihan_c].'" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan d</td>
 <td><input name="pilihan_d" value="'.$data[pilihan_d].'" type="text" size="20"></td>
 </tr>
 <tr>
 <td>Pilihan e</td>
 <td><input name="pilihan_e" value="'.$data[pilihan_e].'" type="text" size="20">
 <input name="no_soal" value="'.$_GET[id].'" type="hidden">';
 echo '<input type=hidden name=token value="'.$data[token].'">
 </td>
 </tr>
 <tr>
 <td colspan="2">
 <input type="submit" value="Simpan" class="tombol"/>
 <input type="reset" name="reset" value="Batal" class="tombol" onclick=self.history.back()></td>
 </tr>
 </table>
 </form>';
 break;

# Menampilkan data
 case "tampil";
 echo '
 <h3>Data Master Soal Tes</h3>
 <button type="submit"><a href="?modul=soal&aksi=tambah">Tambah</a></button>
 <table class="full">
 <tr>
 <th>No</th>
 <th>Soal Tes</th>
 <th>Pilihan Benar</th>
 <th>Detail</th>
 <th>Edit</th>
 <th>Hapus</th>
 </tr>
 <tr>';

 $i=0;
 $tampil = "SELECT * FROM soal_tes";
 $sql = mysql_query($tampil);
 while($data = mysql_fetch_array($sql)) {
 $i++;

 //konfirmasi hapus
 echo "
 <script language=\"JavaScript\">
 function konfirmasi()
 {
 tanya = confirm('Anda Yakin Akan Menghapus Data ?');
 if (tanya == true) return true;
 else return false;
 }
 </script>

 <td>$i</td>
 <td><a href=?modul=soal&aksi=tampil&id=$data[no_soal]>$data[soal] ?</a><br/>";
 if ($data[no_soal]== $_GET[id]){
 $i=0;
 $tampil2 = "SELECT * FROM soal_tes WHERE no_soal='$_GET[id]'";
 $sql2 = mysql_query($tampil2);
 while($data2 = mysql_fetch_array($sql2)) {
 $i++;
 echo 'a. '.$data2[pilihan_a].'<br/>';
 echo 'b. '.$data2[pilihan_b].'<br/>';
 echo 'c. '.$data2[pilihan_c].'<br/>';
 echo 'd. '.$data2[pilihan_d].'<br/>';
 echo 'e. '.$data2[pilihan_e].'<br/>';
 }
 }
 echo "</td>
 <td>$data[pilihan_benar]</td>
 <td align=center><a href=?modul=soal&aksi=tampil&id=".$data[no_soal]."><img src=detail.png title=Detail></a></td>
 <td align=center><a href=?modul=soal&aksi=edit&id=".$data[no_soal]."><img src=edit.png title=Edit></a></td>
 <td align=center><a href=ksi_soal.php?aksi=delete&id=".$data[no_soal]." onclick=\"return konfirmasi()\"><img src=delete.png title=Hapus></a></td>
 </tr>";
 }
 echo '</table>';
 break;

}
?>

3. aksi_soal.php

Script php berisi pemroses soal.php


<?php
$server = "localhost";
 $username = "root" ;
 $password = "" ;
 $database = "karyawan";

//Koneksi dan memilih database di server
 mysql_connect($server,$username,$password) or die ("Koneksi database gagal");
 mysql_select_db($database) or die ("Database tidak tersedia");

$soal = ucfirst($_POST['soal']);
 $pilihan_benar = $_POST['pilihan_benar'];
 $pilihan_a = ucfirst($_POST['pilihan_a']);
 $pilihan_b = ucfirst($_POST['pilihan_b']);
 $pilihan_c = ucfirst($_POST['pilihan_c']);
 $pilihan_d = ucfirst($_POST['pilihan_d']);
 $pilihan_e = ucfirst($_POST['pilihan_e']);
 $no_soal = $_POST['no_soal'];
 $token = $_POST['token'];

switch ($_GET['aksi']) {

 # Insert data
 case "insert" :
 $sql = "insert into soal_tes(no_soal,soal,pilihan_benar,pilihan_a,pilihan_b,pilihan_c,pilihan_d,pilihan_e,token)
 values('$no_soal','$soal','$pilihan_benar','$pilihan_a','$pilihan_b','$pilihan_c','$pilihan_d','$pilihan_e','$token')";
 //echo "$sql";exit;
 $hasil = mysql_query($sql);

 if($hasil){

 //pesan data berhasil disimpan
 echo "
 <script>
 window.location=\"?modul=soal&aksi=tampil\";
 </script>";
 }
 break;

 # Update data
 case "update" :
 $update = "UPDATE soal_tes SET no_soal = '$no_soal',soal = '$soal',pilihan_benar = '$pilihan_benar'
 ,pilihan_a = '$pilihan_a' ,pilihan_b = '$pilihan_b' ,pilihan_c = '$pilihan_c' ,pilihan_d = '$pilihan_d' ,pilihan_e = '$pilihan_e' WHERE no_soal='$no_soal'";
 //echo "$update";exit;
 $hasil = mysql_query($update);

 if($update){

 echo "
 <script>
 window.location=\"?modul=soal&aksi=tampil\";
 </script>";
 }

 break;

 # Delete data
 case "delete" :
 $delete="DELETE FROM soal_tes WHERE no_soal ='$_GET[id]'";
 //echo $delete;exit;
 $hasil=mysql_query($delete);
 if($hasil){
 echo "
 <script>
 window.location=\"?modul=soal&aksi=tampil\";
 </script>";
 }
 break;

}
?>

4. tes.php

Script php berisi tes online untuk karyawan


<?php
switch ($_GET['aksi']){
 default;
 //cek token
 $token= "SELECT token FROM soal_tes ORDER BY no_soal DESC LIMIT 1";
 $prosestoken = mysql_query($token);
 $datatoken = mysql_fetch_array($prosestoken);

 //cek kd_karyawan
 $sqlkd = "SELECT * FROM karyawan WHERE nm_karyawan = '$_SESSION[nm_karyawan]'";
 $kd_karyawan = mysql_fetch_array(mysql_query($sqlkd));
 //cek jawaban
 $jwb = "SELECT * FROM jawaban_tes WHERE kd_karyawan ='$kd_karyawan[kd_karyawan]' AND token = '$datatoken[token]'";
 $xjwb = mysql_query($jwb);

 if($data=mysql_num_rows($xjwb) == 100){
 echo '<table class="full">
 <tr>
 <th>Soal tes selesai di Jawab</th>
 </tr>
 <tr>';
 //jml soal
 $totalsoal = mysql_num_rows(mysql_query("SELECT * FROM soal_tes"));
 //hasil jawaban
 $i=0;
 $tampil = "SELECT a. * , b. * FROM soal_tes a, jawaban_tes b WHERE a.pilihan_benar = b.jawaban AND a.no_soal = b.no_soal AND a.token = b.token";
 $sql = mysql_query($tampil);
 $jbenar = mysql_num_rows($sql);
 $jsalah = $totalsoal-$jbenar;
 $skor = $jbenar/10;
 echo '
 <tr>
 <td colspan=2 align=center>
 Jawaban benar: '.$jbenar.'<br/>
 Jawaban salah: '.$jsalah.'<br/>
 Score Anda: '.$skor.'
 </td></tr></table>';
 }else{
 echo '<h3>Salamat datang di tes online</h3>
 <p align=center>Harap mengerjakan soal dengan teliti, baca soal dan pilihlah jawaban yang paling benar. Untuk megerjakan soal tes silahkan klik lanjut
 </p><p align=center><button type=submit><a href="?modul=tes&aksi=tampil&token='.$datatoken[token].'">Lanjut</a></button></p>';
 }
 break;

 # Menampilkan data
 case "tampil";
 echo '<script>
 function validateForm() {
 var a = document.forms["myForm"]["jawaban"].value;
 if (a==null || a=="") {
 alert("Pertayaan harus dijawab");
 return false;
 }
 }
 </script>';
 //cek no soal
 $sqlkd = "SELECT * FROM karyawan WHERE nm_karyawan = '$_SESSION[nm_karyawan]'";
 $kd = mysql_fetch_array(mysql_query($sqlkd));

 $no = mysql_query("SELECT * FROM jawaban_tes WHERE kd_karyawan='$kd[kd_karyawan]' ORDER BY no_soal DESC ");
 $nosoal = mysql_fetch_array($no);
 if($nosoalxx = mysql_num_rows($no) < 1 ){
 $nosoalx = 1;
 }else{
 $nosoalx= $nosoal[no_soal]+1;
 }
 $totalsoal = mysql_num_rows(mysql_query("SELECT * FROM soal_tes"));
 if($nosoalx<=100){
 echo ' <h3>Soal no '.$nosoalx.' dari '.$totalsoal.' Soal</h3> ';
 echo '<form action="aksi_tes.php?aksi=insert" method="POST" name="myForm" onsubmit="return validateForm()">
 <table class="full">
 <tr>
 <th>Soal Tes</th>
 </tr>
 <tr>';

 $i=0;
 $tampil = "SELECT * FROM soal_tes WHERE token='$_GET[token]' AND no_soal='$nosoalx' ORDER BY no_soal ASC LIMIT 1";
 $sql = mysql_query($tampil);
 while($data = mysql_fetch_array($sql)) {
 $i++;

 echo "
 <td><p style='margin:0 0 10px 5px;font-size:18px;'>$data[soal] ?</p>";
 echo '<input type="radio" name="jawaban" value="a">a. '.$data[pilihan_a].'<br/>';
 echo '<input type="radio" name="jawaban" value="b">b. '.$data[pilihan_b].'<br/>';
 echo '<input type="radio" name="jawaban" value="c">c. '.$data[pilihan_c].'<br/>';
 echo '<input type="radio" name="jawaban" value="d">d. '.$data[pilihan_d].'<br/>';
 echo '<input type="radio" name="jawaban" value="e">e. '.$data[pilihan_e].'<br/>';

 echo "
 <input type=hidden name=token value=".$data[token].">
 <input type=hidden name=no_soal value=".$nosoalx.">
 <input type=hidden name=kd_karyawan value=".$kd[kd_karyawan].">
 </tr>";
 }
 echo '
 <tr>
 <td colspan=2 align=center>
 <input type=submit value=Jawab>
 </td></tr></table></form>';
 }else{
 echo '<table class="full">
 <tr>
 <th>Soal tes selesai di Jawab</th>
 </tr>
 <tr>';

 $i=0;
 $tampil = "SELECT a. * , b. * FROM soal_tes a, jawaban_tes b WHERE a.pilihan_benar = b.jawaban AND a.no_soal = b.no_soal AND a.token = b.token";
 $sql = mysql_query($tampil);
 $jbenar = mysql_num_rows($sql);
 $jsalah = $totalsoal-$jbenar;
 $skor = $jbenar/10;
 echo '
 <tr>
 <td colspan=2 align=center>
 Jawaban benar: '.$jbenar.'<br/>
 Jawaban salah: '.$jsalah.'<br/>
 Score Anda: '.$skor.'
 </td></tr></table>';
 }
 break;

}
?>

5. aksi_tes.php

Script php berisi pemroses tes online


<?php
$server = "localhost";
 $username = "root" ;
 $password = "" ;
 $database = "karyawan";

//Koneksi dan memilih database di server
 mysql_connect($server,$username,$password) or die ("Koneksi database gagal");
 mysql_select_db($database) or die ("Database tidak tersedia");

$kd_karyawan = $_POST['kd_karyawan'];
 $jawaban = $_POST['jawaban'];
 $no_soal = $_POST['no_soal'];
 $token = $_POST['token'];

switch ($_GET['aksi']) {

 # Insert data
 case "insert" :
 $sql = "INSERT INTO jawaban_tes(kd_karyawan,jawaban,no_soal,token)
 values('$kd_karyawan','$jawaban','$no_soal','$token')";
 //echo "$sql";exit;
 $hasil = mysql_query($sql);

 if($hasil){

 //pesan data berhasil disimpan
 echo "
 <script>
 window.location=\"?modul=tes&aksi=tampil&token=$token\";
 </script>";
 }
 break;

 # Update data
 case "update" :
 $update = "UPDATE soal_tes SET soal = '$soal',pilihan_benar = '$pilihan_benar'
 ,pilihan_a = '$pilihan_a' ,pilihan_b = '$pilihan_b' ,pilihan_c = '$pilihan_c' ,pilihan_d = '$pilihan_d' ,pilihan_e = '$pilihan_e' WHERE id_soal='$id_soal'";
 //echo "$update";exit;
 $hasil = mysql_query($update);

 if($update){

 echo "
 <script>
 window.location=\"?modul=soal&aksi=tampil\";
 </script>";
 }

 break;

 # Delete data
 case "delete" :
 $delete="DELETE FROM soal_tes WHERE id_soal ='$_GET[id]'";
 //echo $delete;exit;
 $hasil=mysql_query($delete);
 if($hasil){
 echo "
 <script>
 window.location=\"?modul=soal&aksi=tampil\";
 </script>";
 }
 break;

}
?>

Tampilan tes online sederhana dari script php diatas

Cara kerja dari aplikasi tes online berbasis web ini yaitu peserta tes harus terdaftar dan login untuk mengerjakan tes. Peserta tes lebih dari satu sehingga tidak semua mengerjakan tes secara bersamaan, jadi jika peserta sudah megerjakan sampai selesai maka tes online tidak di tampilka lagi pada user yang sudah mengerjakan tes online tersebut. Namun jika user belum mengerjakan tes maka tes akan di tampilkan. Begitupula jika user mengerjaka baru sebagai no soal saja, jadi soal yang di tampilkan adalah soal berikutnya yang belum di kerjakan. Dan sebenarnya menu soal di peruntukan untuk menu admin, namun untuk sharing kali ini saya ikut sertakan supaya lebih ringkas saja.

Tes online ini tidak akan di bisa diakses jika peserta tidak login untuk lebih lengkap detail tampilannya seperti berikut ini:

Tampila soal data soal

tampilan-data-master-soal-tes-online

Tampila soal data soal

Tampilan Tambah soal tes online

tambah-soal-tes-online

Tampilan Tambah soal tes online

Tampilan Edit data soal tes online

edit-soal-tes-online

Tampilan Edit data soal tes online

Tampilan Detail per soal tes online

detail-soal-tes-online

Tampilan Detail per soal tes online

Tampilan awal ketika akan mulai tes

tampilan-awal-tes-online

Tampilan awal tes online

Tampilan ketika user sudah tes online

hasil-tes-online

Tampilan ketika user sudah tes online

Tampilan peserta belum login

tes-online-harus-login

Tampilan peserta belum login

Demikian share tentang membuat program aplikasi tes online berbasis web. JIka Anda membutuhkan sistem SPK, Sistem pakar, aplikasi web, silahkan hubungi kami. Thanks.

Postingan berikutnya

  1. cara membuat soal online dengan php
  2. membuat ujian online dengan php dan mysql
  3. aplikasi ujian online menggunakan php dan mysql
  4. membuat kuesioner online dengan php
  5. membuat soal pilihan ganda dengan php dan mysql
  6. cara membuat soal pilihan ganda dengan php
  7. membuat ujian online dengan php
  8. cara membuat web ujian online
Category: Artikel

Tentang: Abdul Rohman Wahid, ST

Programmer yang Bekerja menjadi tenaga ahli IT di Instansi Pemerintah Provinsi Riau. Saya biasanya menulis di blog ini terkait pemrograman. Selain itu Saya juga aktif mengelola web searti.com, aplikasikan.com dan kasitau.com. TLP/WA: 082285417494. Profil Lengkap.

45 thoughts on “Membuat Tes Online PHP Sederhana

      1. ara

        ceklogin.php ada disebelah mana mas? saya cari kog g ada ya..
        thanks sebelumnya

        Reply
  1. MHMN

    Keren nih gan. Kebetulan saya sedang belajar mengembangkan sistem semacam ini buat keperluan pengajaran. Izin bookmark gan untuk belajar coding.

    Reply
  2. Teguh Adiputra

    Sangat membantu sekali. saat ini saya sedang mencoba belajar php.
    yang ingin saya tanyakan itu script ceklogin.php dan script yang nomor 2 tidak ada, karna dari nomor 1 langsung loncat ke nomor 3

    terima kasih banyak! sukse terus!

    Reply
  3. strez

    kalau mw dpakein waktu gmn ya bang? jadi saat waktu habis maka tes jg berakhir

    Terimakasih

    Reply
  4. Kholidin

    gan, scriptnya udah saya terapkan sesuai perintah agan, dan udah bikin database. tp modul tdk terdeteksi. apa harus download?

    Reply
    1. admin Post author

      Tidak mas.. modul itu hanya aksi untuk menampilkan saka.. coba cek modul yang tidak terdeteksi dimana mas..?

      Reply
  5. Haris

    Mas saya mau tanya.., kira2 pake cara ini kita bisa buat kuesioner gak..???
    soalnya saya lagi mau buat kuesioner tapi bingung caranya gimana…
    klo mas ada tutorialnya boleh bagi gak.., biar simpel juga gak apa2.., nnti saya yang kembangkan…
    tolong bantu saya mas….

    Reply
    1. admin Post author

      BIsa saja kalau mau di buat kuesioner. Kalau bingung, untuk programnya samakan saja konsepnya dengan google form, Jadi dengan form yg di kirim admin dapat mengelola pengisian form yg masuk melalu aplikasi php tersebut.

      Reply
  6. Haris

    Tapi saya bingung mas.., saya punya pertanyaan 10 dan dilooping trus saya tambahkan radio buttonnya satu.., masalahnya tiap kali pilih radio button di pertanyaan lain.., pertanyaan yang udah dipilih malahan ilang tandanya mas…, tapi klo pakenya sebanyak pertanyaan malahan inputnya yang gak jadi mas..,

    Tolong bantu saya mas…

    Reply
  7. Yoseph

    Min, itu soal tesnya berarti bikin sendiri untuk semua orang yg login bisa edit soal sendiri ya? bukan soalnya langsung ditulis di script..

    Reply
    1. admin Post author

      @yoseph, kalau untuk soalnya admin yang menginputkan mas, jadi soalnya bisa di hapus di edit dan juga di tambah. Dan hal tersebut menjadi dinamis. Sedangkan jika soal langsung di tulis pada script maka web tes online tersebut menjadi statis, dengan kata lain jika admin ingin merubah soal atau jawaban, maka harus merubah script programnya. Tnx

      Reply
    1. admin Post author

      Kalau untuk menjadi primary key yang penting harus unik mas @yoseph, nah jika no soal merupakan field yang bersifat unik, maka dapat dijadikan primary key atau kata kunci utama.

      Reply
  8. bisol

    Saya ingin membuat soal yang ada gambarnya mas, bagaimana cara memasukkan gambarnya ke dalam soal? Trima kasih sebelumnya

    Reply
    1. admin Post author

      mas @bisol, untuk kasus soal dengan gambar, pada contoh script di atas belum Ada mas, Tapi jika mau di buat hal yang perlu di lakukan yaitu: membuat 1 field lagi pada tabel soal yang isinya gambar tentang soal tersebut, Nah kemudian kita tambahkan 1 form upload gambar pada soal.

      Reply
  9. sari

    Sore Mas,

    Boleh minta info prosedur pembuatan aplikasi online untuk kebutuhan konsultan?
    Terima kasih

    Reply
  10. Aldo

    Saya mau belajar bwt web online…harus mulai dari mana ya…klo mau buat web online kira2 berapa ya harga nya…terimakasih

    Reply
    1. admin Post author

      @rina, untuk soal gambar juga bisa mbak. Nanti di halaman admin, admin bisa di berikan menu atau form tambahan untuk upload gambar soal, Nah pada gambar tersebut kita berikan poin atau nilai dari setiap pilihan jawaban yang ada.

      Reply
  11. acil

    gan ane mau tny, bisa ga pas tampilan soal nya, jawaban nya ramdom gt gan
    misal pc1 buka nomor1 jawaban nya a, sedangkan di pc2 dengan soal yang sama jawaban nya b

    sebeblom nya maaf ngerepotin dan thx ya gan

    Reply
    1. admin Post author

      @acil:

      Untuk membuat jawaban berbeda, dapat kita manipulasi dengan query RAND() pada jawaban pada tabel databasenya.

      Reply
  12. Diki

    Mas klo untuk SPK nya sendiri gimana ya? Klo pilih ini lanjut ke pertanyaan mana, gtu kan? Nah saya mau tanya klo buat form pertanyaan seperti itu apa bisa hanya dengan struktur logika, atau harus ada algoritma2 kyk id3 gtu?

    Reply
    1. admin Post author

      @diki:

      Kalo untuk konsep sistem pendukung keputusan (SPK) seperti itu tergantung dari kasusnya mas. Bisa saja diselesaikan dengan hanya memakai logika pemrograman saja ataupun dengan metode algoritma seperti yang mas katakan itu.

      Memang pada dasarnya untuk menentukan itu banyak cara dan metode yang bisa digunakan untuk mengambil keputusan

      Reply
  13. stenly

    min mau tanya, gimana caranya soal no 1 di pc 1 dan pc 2 berbeda tapi pilihan jawaban nya sama
    dan apakah bisa jika soal dan jawaban nya di random bersamaan?

    Reply
    1. admin Post author

      @stenly:

      Bisa mas, soalnya id jawaban dan soal sudah di relasikan. Jadi walaupun soal dan jawaban di random, tetap sama jawabannya.

      Reply
      1. Stenly

        mohon diberi tahu seperti apa min codingnya
        sangat butuh cara agar random soal dan jawaban ga kerandom

        Reply
  14. PortalLitas

    teorinya Mantap Om.
    Om Mau nanya Om
    ada 4 materi (kriya textil, spinning, weving, dan garment)
    Jika user sudah melakukan pendaftaran maka user harus mempelajari Materi 1 dulu dan materi 2,3,4 tidak bisa dibuka/diakses. setelah materi satu sudah di pelajari maka user konfirmasi dengan admin agar materi 2 bisa dibuka. dan seterusnya
    Kalau kasusnya seperti itu bagaimana mengatasinya Om?
    Mohon penjelaasanya. Terimakasis

    Reply
    1. admin Post author

      @Portalitas:
      Untuk kasus seperti itu, dapat kita gambarkan dengan alur seperti ini mas, berikut ini kita langsung aplikasi dengan tabel database sebagai contoh:

      #tb_materi
      – idMateri
      – Materi

      Dengan data materi yang mas berikan yaitu kriya textil, spinning, dan garment

      Kemudian tabel berikutnya ada tabel user, kita contohkan saja begini:
      #tb_user
      – idUser
      – namaUser
      – Username
      – Password
      – idMateri
      Nah apda contoh tabel user tersebut, berleasi dengan tabel materi, yang mana pada fill id materi pada saat user setelah mendaftar tentunya masih kosong, karena belum melakukan pembelajaran, dan user menekan tombol, makan akan mulai melakukan pembelajaran, dan pada tampilan awal yang di tampilkan adalah pembelajaran kriya textil untuk yang pertama, dan itu langsung mengupdate tabel idmateri pada tabel user, dan setelah di baca, di berikan tombol next, yang menisyarakatkan bahwa user meminta untuk mempelajari materi 2, dan seterusna

      Reply

Leave a Reply to admin Cancel reply

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