224
mengambil soal dari database query = SELECT FROM un_cbt.un_soal JOIN
un_cbt.un_daftar_tes USINGkd_paket_soal
join un_cbt.un_peserta USINGkd_grup
where kd_paket_soal={_SESSION[kd_paket_soal]}
and kd_peserta={_SESSION[kdpeserta]}
and kd_judul_tes={_SESSION[kd_judul_tes]}
ORDER BY
RAND; result= mysql_queryquery;
jum_soal = mysql_num_rowsresult; per_page = 1;
page_awal = page_now = 1; page_akhir = ceiljum_soal per_page;
page = 1; menampilkan soal
no=0; include ..soal.php;
} if isset_GET[ajax] _GET[ajax] == simpanjawaban {
echo pre. print_r_GET, 1 .pre; proses parsing data untuk diinsert
data_to_insert = array; foreach
_GET as key = get { if key == ajax {
continue; }
if substrkey,0,6==answer {
no = substrkey,6; data_to_insert[no][answer] = get;
} if
substrkey,0,13==kd_nomor_soal{ no = substrkey,13;
data_to_insert[no][kd_soal] = get; }
} echo
answer pertama
. data_to_insert[1][answer];
echo br; echo
kode soal
pertama .
data_to_insert[1][kd_soal]; proses menentukan skor
for i=1; i=no ;i++ {
echo data_to_insert[i][answer]; echo data_to_insert[i][kd_soal];
mengubah data array ke data string untuk membuat seleksi pengambilan soal yang cocok
kd_soal_jawaban =
data_to_insert[i][kd_soal]; mengambil soal yang mau dicocokkan
query =
SELECT FROM
un_cbt.un_soal JOIN
un_cbt.un_daftar_tes USINGkd_paket_soal join un_cbt.un_peserta USINGkd_grup
where kd_paket_soal={_SESSION[kd_paket_soal]}
and kd_peserta={_SESSION[kdpeserta]}
and kd_judul_tes={_SESSION[kd_judul_tes]}
and kd_soal=kd_soal_jawaban; result= mysql_queryquery;
datasoal=mysql_fetch_arrayresult; menyeleksi kunci soal dengan jawaban
siswa kemudian memberi skor if
data_to_insert[i][answer]==datasoal[kunci_soal] {
data_to_insert[i][skor_jawaban]=1; } else {
data_to_insert[i][skor_jawaban]=0; }
} nilai=0;
proses menyimpan data for i=1; i=no ;i++
{ mengubah data array ke data string
untuk diinput ke database kd_soal_jawaban
= data_to_insert[i][kd_soal];
jawaban =
data_to_insert[i][answer]; skor_jawaban
= data_to_insert[i][skor_jawaban];
echo _SESSION[kd_tes]; mysql_queryINSERT
INTO un_cbt.un_detail_tes kd_tes, kd_soal, jawaban, skor_jawaban
VALUES{_SESSION[kd_tes]},kd_soal_jawaban ,jawaban,skor_jawaban;
nilai=nilai+skor_jawaban; }
nilaiakhir=nilai100no; proses memasukkan nilai akhir ke database
mysql_queryUPDATE un_cbt.un_tes
SET nilai=nilaiakhir WHERE kd_tes= {_SESSION[kd_tes]};
tampilan setelah selesai tes include sukses_simpan_jawaban.php;
} ?
e. File soal.php
style .tombol-nav {
width:18px; margin-top:3px;
margin-right:2px; }
style div
form id=durasiinput
type=hidden name=durasi
value=?php echo _SESSION[durasi]?form ?php echo div class=soal_ujian page_.page_now.?
225
-- untuk daftar soal -- div
id=daftarsoal style=margin-bottom:1em;
display:none; h4Daftar Soalh4hr style=margin-top:5px;
margin-bottom:10px ?php
nomorsoal =
mysql_num_rowsresult; nomor=1;
whilenomor=nomorsoal{ echo a id=nav-nomor class=btn
tombol-nav onclick=jumpnomor;
value=.nomor.nomora; nomor++;
} ?
p style=margin-top:10px;bketerangan:
bbiru sudah terisi jawaban, putih jawaban kosong p hr style=margin-top:15px; margin-bottom:0px
div -- tombol navigasi --
div class=pull-right style=margin-bottom:1em; a style=display: none; id=btn-prev href=_
onclick=prev class=btn btn-successSebelumnyaa a
id=btn-next href=_
onclick=next class=btn btn-infoSelanjutnyaa
a id=jwbn href=_ onclick=konfirmasi class=btn btn-primary btn-large pull-
rightKirim Jawabana a
id=hideshow value=hideshow class=btnDaftar Soala
div -- soal --
form id=form_soal table class=table
tr th
style=width:20pxbNo.bth thcenterbSoalbcenterth
?php echo tr;
whilesoal =
mysql_fetch_assocresult{ no++;
if no
per_page page_now{ page_now++;
} isisoal
= soal[isi_soal];
isisoal =
str_replaceA., input
type=radio onclick=tandaisudahno
name=\answer.no.\ value=A A., isisoal;
isisoal =
str_replaceB., input
type=radio onclick=tandaisudahno
name=\answer.no.\ value=B B., isisoal;
isisoal =
str_replaceC., input
type=radio onclick=tandaisudahno
name=\answer.no.\ value=C C., isisoal;
isisoal =
str_replaceD., input
type=radio onclick=tandaisudahno
name=\answer.no.\ value=D D., isisoal;
isisoal =
str_replaceE., input
type=radio onclick=tandaisudahno
name=\answer.no.\ value=E E., isisoal;
default_jawaban =
input type=radio
name=\answer.no.\ value=kosong checked=checked style=display:none;;
echo tr
class=row_soal page=.page_now.; echo
td.no.td; echo
td.isisoal.default_jawaban.td; kodesoal
= soal[kd_soal];
echo input
type=hidden name=kd_nomor_soalno value=kodesoal; echo tr;
echo a
class=btn value=.no.noa; } ?
table form
div div id=konfirmasi class=modal hide fade
div class=modal-header button
type=button class=close
data- dismiss=modal aria-hidden=truetimes;button
div div class=modal-body
center h3Ada jawaban yang belum terisi.h3
h4Apakah anda
yakin ingin
melanjutkan kirim jawaban?h4center div
div class=modal-footer form
centertableth
tda data-
dismiss=modal class=btn
btn-danger btn-large
style=width:75px onclick=jawabLanjutkanatd tda
data- dismiss=modal
class=btn btn-large
style=width:75pxBatalatd thtablecenter
form div
div div id=kurang15 class=modal hide fade
div class=modal-header button
type=button class=close
data- dismiss=modal aria-hidden=truetimes;button
div div class=modal-body
center h3Waktu kurang 15 menit.h3
h4Segera selesaikan
pekerjaan anda.h4center
226
div div class=modal-footer
form centertableth
tda data-
dismiss=modal class=btn
btn-large style=width:75pxOKatd
thtablecenter form
div div
script type=textjavascript
untuk slide daftar soal jQuerydocument.readyfunction{
jQueryhideshow.onclick, functionevent { jQuerydaftarsoal.toggleshow;
}; };
var page = 1; var page_akhir = ?php echo page_akhir; ?;
load pertama kali load_halamanpage;
skrip untuk timer countdown mengambil data durasi dari database
var durasi=durasi.serialize.replacedurasi=, ;
mengolah data menit menjadi milisekon var count=durasi60000;
mengatur perulangan fungsi timer setiap 1000 milisekon
var counter=setIntervaltimer,1000; fungsi untuk timer
function timer { count=count-1000;
menghitung konversi ke jam, menit, dan detik
seconds =
Math.floorcount100060; minutes
= Math.floorcount10006060;
hours =
Math.floorcount1000606024; alert;
ifcount=0 { clearIntervalcounter;
waktuhabis; return;
} document.getElementByIdtimer.innerHTML=Wa
ktu Tersisa : + hours + jam + minutes+ menit + seconds+ detik;
} skrip alert 15 menut
function alert { ifcount==900000 {
kurang15.modalshow; }
} skrip ketika waktu habis
function waktuhabis{ alertMaaf. Waktu telah habis.;
waktuhabis.modalshow; .blockUI{message:
div class=modal-headerdivdiv
class=modal- bodycenterh3Maaf
waktu habis.h3h4Waktu
telah habis.
Anda tidak
diperkenankan mengerjakan
lagi.h4centerdivdiv class=modal-
footerformformdiv}; .blockOverlay.attrtitle,Klik
untuk keluar.click.unblockUI;
jawab; }
skrip konfirmasi terhadap jawaban ketika hendak kirim dan simpan jawaban
function konfirmasi{ var
query =
form_soal.serialize.replace22g, ; var
carikosong =
query.searchkosong; if carikosong0 {
menampilkan dialog box ketika masih ada soal yang belum terjawab
var k = confirmAda jawaban yang masih belum terisi. Apa yakin ingin kirim
jawaban?; if k == true {
jawab; }
} else { jawab;
} konfirmasi.modalshow;
} else { jawab;
} }
skrip untuk menyimpan dan menginput jawaban ke database function jawab{
var query
= form_soal.serialize.replace22g, ;
.ajax{ url:
handlerajax_handler.php?ajax=simpanjawaban, data: query,
success: functionresult{ div1.htmlresult;
console.logresult; soal.htmlresult;
} };
} function sembunyikan_semua {
.row_soal.hide }
function tampilkan_barispage { tr[page=+page+].show
} fungsi untuk ke halaman sesudahnya
function next { page += 1;
load_halamanpage; }
227
fungsi untuk ke halaman sebelumnya function prev {
page -= 1; load_halamanpage;
} fungsi untuk menampilkan data di halaman
function load_halamanpage { if page 1 {
btn-prev.show; } else {
btn-prev.hide; }
if page== page_akhir { btn-next.hide;
jwbn.show; } else {
btn-next.show; jwbn.hide;
} menampilkan blink biar keliatan ketika
habis ngeload halaman .blockUI{ message: null };
setTimeout.unblockUI, 500; perintah menampilkan
sembunyikan_semua; tampilkan_barispage;
} function tandaisudahnomor{
nav-+nomor.addClassbtn- primary;
} function jumpnomor{
page = nomor; load_halamannomor;
} script
f. File handlersukses_simpan_jawaban.php