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...
Ellyx Christian · Jul 11, 2011 · 0 Suka · 0 Tidak Suka
pada saat mengambil data gunakan fungsi sql rand(), seperti:
select * from nama_table order by rand() limit 10
hasilnya akan random sebanyak 10 data
0
Loading...
Ariyasa · Jul 11, 2011 · 0 Suka · 0 Tidak Suka
random() limit 10 --> apa 10 itu melambangkan jumlah randoman atau jumlah soal? kalo utk mearandom jawabannya bgm tu bli putu?
suksma atas jawaban ciamiknya...
1
Loading...
Ellyx Christian · Jul 11, 2011 · 1 Suka · 0 Tidak Suka
rand() 10 artinya mengambil data sebanyak 10 secara acak, misal ada 100 data akan diambil sebanyak 10 data saja dengan random. Untuk jawaban caranya sama saja gunakan function rand()
0
Loading...
Ariyasa · Jul 14, 2011 · 0 Suka · 0 Tidak Suka
bli putu, sy dah coba nyari beberapa literatur/contoh soal multiple choice dari net, tp gk ada yg sesuai dg kebtuhan. hampir semuanya masih berupa contoh tampil soal dan cara menjawab saja. ada dg random tp bugnya banyak, copaz kyknya..
bli putu bisa kasi contoh langsung gk ya, langsung di situs bli putu [myphptutorials.com]juga boleh, kn skalian update tutorial.. ^_^
dah kebarat kebirit nie nyari tutornya.. dah coba2 juga gagal, maaf logika ma otak sy kurang..
oy, Suksma atas balasan slm ini..
0
Loading...
Ellyx Christian · Jul 14, 2011 · 0 Suka · 0 Tidak Suka
bagaimana struktur table kamu?
0
Loading...
Ariyasa · Jul 14, 2011 · 0 Suka · 0 Tidak Suka
tb_gambar (
`id_gambar` int(4) NOT NULL auto_increment,
`gambar` varchar(100) NOT NULL,
PRIMARY KEY (`id_gambar`)
)

tb_soal (
`id_soal` int(4) NOT NULL auto_increment,
`soal` text NOT NULL,
`jwbn_a` text NOT NULL,
`jwbn_b` text NOT NULL,
`jwbn_c` text NOT NULL,
`jwbn_d` text NOT NULL,
`id_gambar` int(4) NOT NULL,
PRIMARY KEY (`id_soal`)
)

- Gambar bs diisi jika perlu pada soal
- Jawaban benar sll di opsi A [tampilan opsinya diacak]->{berdasarkan proyek sy sblumnya}
- soal muncul 1 buah per page, dan jika soal habis, bru muncul hasilnya.

Soal pilihan ganda sbnrnya dah prnh sy bwt tp pake Flash dan dah berhasil. Skrg sy dberi tugas pake PHP. Sy bnr2 baru dlm PHP, gk bgtu paham. cm dasar2nya ja.
mohon bantuannya ya Bli Putu.
Suksma sblmnya.
1
Loading...
Ellyx Christian · Jul 14, 2011 · 1 Suka · 0 Tidak Suka
pantes saja kamu bingung orang table kamu salah. Yang benar seperti ini:

tb_soal (
`id_soal` int(11) NOT NULL auto_increment,
`soal` text NOT NULL,
`id_gambar` int(4) NOT NULL,
PRIMARY KEY (`id_soal`)
)

tb_jawaban(
`id_jawaban` int(11) NOT NULL auto_incremenet,
`id_soal` int(11) not null,
`jawaban` text NOT NULL,
`benar` tinyint(1) not null default 0,
PRIMARY KEY (`id_jawaban`)
)

untuk meampilkan data jadi lebih gampang, data lebih konsisten.
session_start();
mysql_connect("localhost","user","pass");
mysql_select_db("nama_db");
//load jawaban secara acak
if(!isset($_SESSION['soal'])){
	$query = mysql_query("select * from 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 '".$_SESSION['soal'][$page]['id_soal']."' order by rand()");
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 name="id_soal" value="'.$_SESSION['soal'][$page]['id_soal'].'"/>';
}
}
echo '<input type="submit" value="Next"/>';
echo '</form>';
halaman tampil hasil.php
session_start();
mysql_connect("localhost","user","pass");
mysql_select_db("nama_db");
//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;
0
Loading...
Ariyasa · Jul 17, 2011 · 0 Suka · 0 Tidak Suka
kalo table jawabannya kyk gitu, brrti cm ada 1 opsi jawaban donk bli putu, kn maunya ada 4/5 soal opsi (a-d/e)..
suksma banget atas balasan super cepatnya bli putu.. pokoke this site must be the most wanted for php forum/tutorial dah..
0
Loading...
Ellyx Christian · Jul 18, 2011 · 0 Suka · 0 Tidak Suka
TIDAK, semua soal bisa memiliki jawaban tak terhingga, contoh datanya seperti ini:
tb_soal
________________________________________________
| id_soal	| soal		| id_gambar	|
------------------------------------------------
| 1		|soal 1		| null		|
------------------------------------------------

tb_jawaban
________________________________________________________
| id_jawaban	| id_soal	| jawaban	| benar	|
--------------------------------------------------------
| 2		| 1		| jawaban 1	| 1	|
--------------------------------------------------------
| 3		| 1		| jawaban 2	| 0	|
--------------------------------------------------------
| 4		| 1		| jawaban 3	| 0	|
--------------------------------------------------------
| 5		| 1		| jawaban 4	| 0	|
--------------------------------------------------------
0
Loading...
Ariyasa · Jul 19, 2011 · 0 Suka · 0 Tidak Suka
jadi semua jawaban ada dalam 1 table ya bli putu? ngg.. trus cara nyimpannya ke table pas ngisi lewat textbox gm bli putu?
oy,contohnya yg bli putu kasi kmren koq gk ada hentinya, gk mau berakhir, trus looping dy bli putu.. apa ada yg salah ya?

suksma bli putu.. pencerahannya makin mmantapkn hati belajar PHP..