Soal Random dan Opsi Random

Ariyasa · Jul 11, 2011
Bli putu, sy mo tny...
Gm ya logika/ cara pembuatan soal pilihan ganda dengan sistem random [agar setiap pengakses "mendapat" pertanyaan dan opsi yang berbeda pula]..
Kalo ada sedikit tutorial, tolong linknya ya...
Suksma bli putu..
Silahkan login untuk menjawab!
0
Loading...
Ariyasa · Jul 20, 2011 · 0 Suka · 0 Tidak Suka
maaf bli..ada tambahan ptanyaan nie.
apa fungsi rand() bisa diatur, dalam artian didapat suatu nilai, misalnya nilai 1 sampai 5?
maunya fungsi random dpakai manual utk merandom pilihan ganda. misalnya :
jika hasilnya 1 maka acakan opsi : ABCDE
jika hasilnya 2 maka acakan opsi : BDCAE
jika hasilnya 3 maka acakan opsi : EDBAC
dst..

Suksma bli putu...
1
Loading...
Ellyx Christian · Jul 20, 2011 · 1 Suka · 0 Tidak Suka
saya masih agak sibuk, mohon sabar ya.
1
Loading...
Ellyx Christian · Jul 20, 2011 · 1 Suka · 0 Tidak Suka
saya sudah perbaiki kodenya menjadi seperti:
<?php
session_start();
mysql_connect("localhost","root","blah");
mysql_select_db("test");
//load jawaban secara acak
if(!isset($_SESSION['soal'])){
	$query = mysql_query("select * from tb_soal order by rand()");
	while($soal = mysql_fetch_array($query)){
		$_SESSION['soal'][] = $soal;
	}
}

$page = isset($_GET['page']) ? (int)$_GET['page'] : 0;
// simpan jawaban user ke session selama masih ada soal
if($_POST){
$_SESSION['jawaban'][$_POST['id_soal']] = $_POST['jawab'];
}
if($page >= count($_SESSION['soal'])){
header("Location: hasil.php"); //tampilkan hasil
exit;
}
echo '<form method="post" action="?page='.($page+1).'">';
if(isset($_SESSION['soal'][$page])){
echo '<p>'.$_SESSION['soal'][$page]['soal'].'</p>';
$query = mysql_query("select * from tb_jawaban where id_soal='".$_SESSION['soal'][$page]['id_soal']."' order by rand()");
echo '<input name="id_soal" type="hidden" value="'.$_SESSION['soal'][$page]['id_soal'].'"/>';
while($jawaban = mysql_fetch_array($query)){
	echo '<input type="radio" name="jawab" value="'.$jawaban['id_jawaban'].'" id="jawab-'.$jawaban['id_jawaban'].'"/> '.$jawaban['jawaban'].'<br/>';
}
}
echo '<input type="submit" value="Next"/>';
echo '</form>';
file hasil.php
<?php
session_start();
mysql_connect("localhost","root","blah");
mysql_select_db("test");
//cek kebenaran jawaban
$nilai = 0;
foreach($_SESSION['jawaban'] as $idSoal => $idJawaban){
	$cek = mysql_query("select * from tb_jawaban where id_soal='".intval($idSoal)."' and id_jawaban='".intval($idJawaban)."' and benar='1'");
	if(mysql_num_rows($cek) > 0){
	$nilai += 1;
	}
}
echo 'Hasil:'.$nilai;
$_SESSION['jawaban'] = array();
unset($_SESSION['soal']);
2
Loading...
Margo Utomo · Jul 23, 2011 · 4 Suka · 2 Tidak Suka
misalnya soal ada 50 buah. kalau di tampilkan semua kan halamanya puanjang buanget. klo memecah per halaman misal 10 soal, bisa ga ya? trus bagaimana cara menampilkan dan pengecekanya? terimakasih
1
Loading...
Ellyx Christian · Jul 23, 2011 · 2 Suka · 1 Tidak Suka
@Margo Utomo:
<?php
session_start();
mysql_connect("localhost","root","blah");
mysql_select_db("test");
//load jawaban secara acak
if(!isset($_SESSION['soal'])){
	$query = mysql_query("select * from tb_soal order by rand()");
	while($soal = mysql_fetch_array($query)){
		$_SESSION['soal'][] = $soal;
	}
}
$limit = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 0;
$start = $page * $limit;
// simpan jawaban user ke session selama masih ada soal
if($_POST){
	foreach($_POST['id_soal'] as $idSoal){
		$_SESSION['jawaban'][$idSoal] = $_POST['jawab'][$idSoal];
	}
}
if($start >= count($_SESSION['soal'])){
header("Location: hasil.php"); //tampilkan hasil
exit;
}
echo '<form method="post" action="?page='.($page+1).'">';
for($i = $start; $i < $start + $limit; $i++){
if(isset($_SESSION['soal'][$i])){
	echo '<p>'.$_SESSION['soal'][$i]['soal'].'</p>';
	$query = mysql_query("select * from tb_jawaban where id_soal='".$_SESSION['soal'][$i]['id_soal']."' order by rand()");
	echo '<input name="id_soal[]" type="hidden" value="'.$_SESSION['soal'][$i]['id_soal'].'"/>';
		while($jawaban = mysql_fetch_array($query)){
			echo '<input type="radio" name="jawab['.$_SESSION['soal'][$i]['id_soal'].']" value="'.$jawaban['id_jawaban'].'" id="jawab-'.$jawaban['id_jawaban'].'"/> '.$jawaban['jawaban'].'<br/>';
		}
	}
}
echo '<input type="submit" value="Next"/>';
echo '</form>';
kurang lebih seperti itu, pengecekan nilai sama seperti yang sudah dijelaskan sebelumnya.
0
Loading...
Ariyasa · Jul 25, 2011 · 0 Suka · 0 Tidak Suka
bli putu..
suksmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....
gk pernah mengecewakan sy dah...
^_^
0
Loading...
Margo Utomo · Jul 25, 2011 · 0 Suka · 0 Tidak Suka
ok tak cobane dulu, trimakasih
0
Loading...
Ariyasa · Aug 13, 2011 · 0 Suka · 0 Tidak Suka
maaf bli putu, nyela di posting yg dah lama ini..
sy kebetulan iseng nyoba yg direquest ma mas Margo Utomo.. koq looping terus hasilnya.. pdhl seharusnya soal dah habies..
bisa kasi revisiannya gk bli putu.. biar ada pilihan menu soal, misalnya mo pilihan soal perhalaman to berapa atau full 1 halaman penuh soal..
suksma bli putu kalo ngungkin masalah lama..
0
Loading...
Ellyx Christian · Aug 16, 2011 · 0 Suka · 0 Tidak Suka
@Ariyasa: saya sudah coba dan berhasil.
0
Loading...
Ariyasa · Aug 19, 2011 · 0 Suka · 0 Tidak Suka
apa ada ya hubungannya dengan jumlah batasan soal tampil ya bli putu..
sy isi limitnya 10 tp contoh soalnya cm 2.. opsi yg ada juga 2.. stlh dirun, soal 2 itu aja diloop terus dan gk mo ke page hasil..
sy coba cek lagi ya bli putu. maaf ya bli putu, klo sy trll bodo..
suksma bli putu dah reply disela2 ksibukan bli putu..