Rabu, 26 Juni 2019

SIAKAD Nilai Berdasarkan Nilai KMM By KNN



Data KMM

Hasil Pengujian
Tentukan Kelas yang hendak diuji dan nilai K-Value sebagai batasan klasifiaksi


HASIL ANALISA:




SBB kodenya :

<?php
$pro="simpan";
$tanggal=WKT(date("Y-m-d"));
?>
<script type="text/javascript">
function PRINT(){
win=window.open('jadwal/print.php','win','width=1000, height=400, menubar=0, scrollbars=1, resizable=0, location=0, toolbar=0, nip=0'); }
</script>
<script language="JavaScript">
function buka(url) {window.open(url, 'window_baru', 'width=800,height=600,left=320,top=100,resizable=1,scrollbars=1');}
</script>

<div id="accordion">
  <h4>Data Kelas Tahun Ajaran</h4>
  <div>
<?php
$k=2;

require_once"ta.php";

$sql="select `kode_kelas` from `$tbjadwal` order by kode_kelas desc";
$d=getField($conn,$sql);
$kode_kelas=$d["kode_kelas"];
$kelas=getKelas($conn,$kode_kelas);

if(isset($_POST["Proses"])){
$k=$_POST["k"];
$kode_kelas=$_POST["kode_kelas"];
$kelas=getKelas($conn,$kode_kelas);
}

?>
<form action="" method="post" enctype="multipart/form-data">
<table id="table">
<tr>
<td height="24"><label for="kode_kelas">Pilih Kelas</label>
<td>:<td colspan="2"><select name="kode_kelas" class="form-control" id="kode_kelas">
  <option><?php echo "$kelas ($kode_kelas)"?></option>
  <?php
  $sql="select * from `$tbkelas`  where kode_tahunajaran='$gkode'";
$arr=getData($conn,$sql);
foreach($arr as $d) {
$kode_kelas0=$d["kode_kelas"];
$nama_kelas=$d["nama_kelas"];
echo"<option value='$kode_kelas0' ";if($kode_kelas0==$kode_kelas){echo"selected";} echo">$nama_kelas ($kode_kelas0)</option>";
}
?>
</select></td>
</tr>


<tr>
<td height="24"><label for="k">Masukkan k Value</label>
<td>:<td colspan="2"><input name="k" class="form-control" type="text" id="k" value="<?php echo $k;?>" size="5" /></td>
</tr>
<tr>
<td>
<td>
<td colspan="2"> <input name="Proses" type="submit" id="Proses" value="Proses" />
<input name="kode_tahunajaran" type="hidden" id="kode_tahunajaran" value="<?php echo $gkode;?>" />
        <a href="?mnu=ranking"><input name="Batal" type="button" id="Batal" value="Batal" /></a>
</td></tr>
</table>
</form>
<hr>



<?php



if(isset($_POST["Proses"])){
$k=$_POST["k"];
$kode_kelas=$_POST["kode_kelas"];
$kelas=getKelas($conn,$kode_kelas);
}



$sql="select distinct(`kode_matapelajaran`) from `$tbjadwal` where  `kode_tahunajaran`='$gkode'  and `kode_kelas`='$kode_kelas' order by `id` desc";

$arr=getData($conn,$sql);
$i=0;
foreach($arr as $d) {
$kode_matapelajaran=$d["kode_matapelajaran"];
$ark[$i]=$kode_matapelajaran;
$arkkm[$i]=getKKM($conn,$kode_matapelajaran);
$i++;
}
$jmp=count($ark);


$sql="select distinct(`nis`) from `$tbpenempatan` where `kode_tahunajaran`='$gkode' and `kode_kelas`='$kode_kelas'";
$arr=getData($conn,$sql);
$i=0;
foreach($arr as $d) {
$nis=$d["nis"];
$arn[$i]=$nis;
$i++;
}
$jsiswa=count($arn);

$gab="<table border='1' width='100%'>";
$gab.="<tr colspan='#cccccc'><td><b>No<td><b>NIS<td><b>Nama Siswa";
for($j=0;$j<$jmp;$j++){
$gab.="<td><b>".getMataPelajaran($conn,$ark[$j]);
}
$gab.="</b></tr>";

for($i=0;$i<$jsiswa;$i++){
$no=$i+1;
$nis=$arn[$i];
$nama=getSiswa($conn,$nis);
$gab.="<tr><td>$no<td>$nis<td>$nama";
for($j=0;$j<$jmp;$j++){
$sql="select `kode_nilai` from `$tbnilai` where `nis`='$arn[$i]' and `kode_tahunajaran`='$gkode' ";
$d=getField($conn,$sql);
$kode_nilai=$d["kode_nilai"];
$bobot=getNilaiSiswa($conn,$kode_nilai,$ark[$i]);
$AR[$i][$j]=$bobot;
$gab.="<td>$bobot";
}
$gab.="</tr>";
}
$gab.="<tr ><td>#<td colspan='2'><b>KKM";
for($j=0;$j<$jmp;$j++){
$gab.="<td><b>".$arkkm[$j]."</b>";
}
$gab.="</tr>";
$gab.="</table>";


$gab2="<table border='1' width='100%'>";
$gab2.="<tr colspan='#cccccc'><td><b>No<td><b>NIS<td><b>Nama Siswa<td><b>Formula<td><b>EigenValue</tr>";

for($i=0;$i<$jsiswa;$i++){
$no=$i+1;
$V[$i]=0;
$S[$i]="";

for($j=0;$j<$jmp;$j++){
$b1=$AR[$i][$j];
$b2=$arkkm[$j];
$V[$i]+=pow(($b1-$b2),2);
$S[$i].="+ ($b1-$b2)<sup>2</sup>";
}//j

$S[$i]=substr($S[$i],2,strlen($S[$i]));
$nis=$arn[$i];
$nama=getSiswa($conn,$nis);
$V[$i]=round(sqrt($V[$i]),2);
$gab2.="<tr><td>$no<td><b>$nis<td><b>$nama<td>SQRT($S[$i])<td>$V[$i]</tr>";
}//i
$gab2.="</tr>";
$gab2.="</table>";


 $array_count = count($V);
        for($x = 0; $x < $array_count; $x++){
            for($a = 0 ;  $a < $array_count - 1 ; $a++){
                if($a < $array_count ){
                    if($V[$a] > $V[$a + 1] ){
                            swap($V, $a, $a+1);
swap($S, $a, $a+1);
swap($arn, $a, $a+1);
                    }
                }
            }
        }

$gab3="<table border='1' width='100%'>";
$gab3.="<tr colspan='#cccccc'><td><b>No<td><b>NIS<td><b>Nama Siswa<td><b>EigenValue<td><b>Ranking<td><b>k =$k</b></tr>";

for($i=0;$i<$jsiswa;$i++){
$no=$i+1;
$nis=$arn[$i];
$nama=getSiswa($conn,$nis);
$hs="Kelas Biasa";
if($no<=$k){$hs="Kelas Favorite";}
$gab3.="<tr><td>$no<td><b>$nis<td><b>$nama<td>$V[$i]</td><td><strong>$no<td>$hs</strong></tr>";
}//i
$gab3.="</tr>";
$gab3.="</table>";

?>

<h3>Data Nilai Siswa Kelas  <?php echo $kelas;?>: </h3
<br>
<?php echo $gab;?>

<hr>
<h3>K-Nearest Neighbor (K-NN)  <?php echo $kelas;?>: </h3
<br>
<?php echo $gab2;?>
<hr>
<h3>Pengurutan dan Filter k value KNN kelas  <?php echo $kelas;?>: </h3
<br>
<?php echo $gab3;?>


</div>






</div>


<?php

 function swap(&$arr, $a, $b) {
        $tmp = $arr[$a];
        $arr[$a] = $arr[$b];
        $arr[$b] = $tmp;
    }
function getNilaiSiswa($conn,$kode_nilai,$kode_matapelajaran){
$sql="select `bobot` from `tb_nilaidetail` where `kode_nilai`='$kode_nilai' and `kode_matapelajaran`='$kode_matapelajaran'";
$bobot=0;
if(getJum($conn,$sql)<1){
$bobot=0;
}
else{
$d=getField($conn,$sql);
$bobot=$d["bobot"];
}
return $bobot;
}

?>

<br><br><br>
<pre>
Algoritma Perhitungan KNN
Menentukan parameter K sebagai banyaknya jumlah tetangga terdekat dengan objek baru.
Menghitung jarak antar objek/data baru terhadap semua objek/data yan gtelah di training.
Urutkan hasil perhitungan tersebut.
Tentukan tetangga terdekat berdasarkan jarak minimum ke K.
Tentukan kategori dari tetangga terdekat dengan objek/data.
Gunakan kategori mayoritas sebagai klasifikasi objek/data baru.
</pre>



Tidak ada komentar:

Posting Komentar

global_priv WARNING Selalu

 Jika muncul pesan kesalahan: Warning in .\libraries\classes\Dbal\DbiMysqli.php#209  mysqli::query(): (HY000/1034): Index for table 'glo...