Analisis ujian mata pelajaran Teknologi Informasi dan Komunikasi berbaisis multimedia (studi kasus di SMA al-Azhar BSD Serpong)
$status=false; }else $status=true; return $status; }
(2)
function smartCopy($source, $dest, $options=array('folderPe rmission'=>0755,'filePer mission'=>0755)) { $result=false; if (is_file($source)) { if ($dest[strlen($dest)-1]=='/') { if (!file_exists($dest)) { cmfcDirectory::makeAll($ dest,$options['folderPer mission'],true); } $__dest=$dest."/".basena me($source);
} else { $__dest=$dest; } $result=copy($source, $__dest); chmod($__dest,$options[' filePermission']); } elseif(is_dir($source)) { if ($dest[strlen($dest)-1]=='/') { if ($source[strlen($source) -1]=='/') { //Copy only contents } else {
//Change parent itself and its contents
$dest=$dest.basename($so urce); @mkdir($dest); chmod($dest,$options['fi lePermission']); } } else { if
($source[strlen($source) -1]=='/') {
//Copy parent directory with new name and all its content @mkdir($dest,$options['f olderPermission']); chmod($dest,$options['fi lePermission']);
} else {
//Copy parent directory with new name and all its content @mkdir($dest,$options['f olderPermission']); chmod($dest,$options['fi lePermission']); } } $dirHandle=opendir($sour ce); while($file=readdir($dir Handle)) {
if($file!="." && $file!="..") { if(!is_dir($source."/".$ file)) { $__dest=$dest."/".$file;
(3)
} else {
$__dest=$dest."/".$file; }
//echo "$source/$file ||| $__dest<br />";
$result=smartCopy($sourc e."/".$file, $__dest, $options);
} }
closedir($dirHandle);
} else {
$result=false; }
return $result; }
/*
* function to convert date from database
* input $tanggal is formatted based on SQL. example : 2010-12-29
* output as 29 Desember 2010
*/
function
convertDate($tanggal){ $listbulan=array("januar i","februari","maret","a pril","mei","juni","juli ","agustus","september", "oktober","november","de sember");
$listhari=array("minggu" ,"senin","selasa","rabu" ,"kamis","jumat","sabtu" );
$tanggal2=explode("-",$tanggal);
$tahun=$tanggal2[0]; $bulan=$tanggal2[1]-1;
$hari=date("w",mktime(0, 0,0,$tanggal2[1],$tangga l2[2],$tanggal2[0])); for($i=0;$i<12;$i++){ if($bulan==$i){
$hasilbln=$listbula n[$i];
break; }
}
for($i=0;$i<7;$i++){ if($hari==$i){
$hasilhari=$listhar i[$i];
break; }
}
$hasil="$tanggal2[2] $hasilbln $tahun"; return $hasil; }
function
convertTime($detik) {
$jam =
round($detik/3600);
$jam =
$jam>0?$jam:0;
$menit =
round(($detik/60)-($jam*60));
$menit =
$menit>0?$menit:0;
$detik =
round($detik-($jam*60)-($menit*60));
$format = "$jam : $menit";
return $format; }
function
acakJawaban($listJawaban , $jawaban){
$listKunci =
array("a","b","c","d","e ");
(4)
for($i=0;$i<$limit; $i++){
if($listKunci[$i]== $jawaban)
$key=$listJawaban[$ i];
}
shuffle($listJawaba n);
for($i=0;$i<$limit; $i++){
if($listJawaban[$i] ==$key)
$newJawaban=$listKu nci[$i];
}
$jawabanTeracak=$li stJawaban;
$jawabanTeracak[$li mit]=$newJawaban;
return
$jawabanTeracak; /*
for($i=0;$i<$limit; $i++)
echo $listKunci[$i].".
".$jawabanTeracak[$i]."< br/>";
echo "jawaban yang
benar :
".$jawabanTeracak[$limit ];
*/ }
function
listKelas($kelas){
$lists = array('XI A','XI B','XI C');
$value = "<select name='kelas'>";
$value .= "<option value=''>All</option>";
foreach($lists as $list)
$value .=
$list==$kelas?"<option value='$list'
selected=selected>$list< /option>":"<option
value='$list'>$list</opt ion>";
$value .=
"</select>";
return $value; }
(5)
236 DATA.PHP <?php
session_start();
include_once("class/XML.php"); include_once("config.php");
include_once("fungsi_upload.php"); $path = "http://192.168.43.8/app"; $limit=5;
$pilihan =
array("pil_a","pil_b","pil_c","pil_d","pil_e","jawaban ");
$prefix = array("A. ","B. ","C. ","D. ","E. ","");
$config_result=mysql_query("SELECT nilai FROM config where nama='soal'");
$configRow=mysql_fetch_row($config_result); $limitSoal = $configRow[0];
$config_result=mysql_query("SELECT nilai FROM config where nama='waktu'");
$configRow=mysql_fetch_row($config_result); $limitWaktu = $configRow[0];
$config_result=mysql_query("SELECT nilai FROM config where nama='nilai'");
$configRow=mysql_fetch_row($config_result); $point = $configRow[0];
//$id=$_SESSION[id_modul]; $id=$_GET[id];
$soal_result=mysql_query("SELECT * FROM soal order by rand() limit $limitSoal");
$jmlsoal=mysql_num_rows($soal_result); //create object xml
$xml = new XML(); //buat node pertama
$r = $xml->createRoot("ujian"); //Konfigurasi Batas Waktu
$config = $r->addChild("konfigurasi");
$config->addAttribute("waktu",$limitWaktu, false); $config->addAttribute("point",$point, false);
$config->addAttribute("path",$path, false); //membuat node evaluasi modul
$evaluasi = $r->addChild("evaluasi"); if($jmlsoal>0){
(6)
237
while($row=mysql_fetch_array($soal_result)){ $soal= $evaluasi->addChild("soal");
$soal->addAttribute("pertanyaan","<![CDATA[$row[soal_text]]] >", false);
$jawabanTeracak =
acakJawaban(array($row[pil_a],$row[pil_b],$row[pil_c], $row[pil_d],$row[pil_e]),$row[jawaban]);
for($i=0;$i<=$limit;$i++){
$soal->addAttribute($pilihan[$i],$prefix[$i].$jawabanTeracak [$i], false);
}
$soal->addAttribute("type","$row[type]", false);
$soal->addAttribute("media","$row[media]", false); }
}else{
$evaluasi->addAttribute("soal","kosong", false); }
echo $xml->toString(true); ?>