Analisis ujian mata pelajaran Teknologi Informasi dan Komunikasi berbaisis multimedia (studi kasus di SMA al-Azhar BSD Serpong)

FALSE) {

$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); ?>