Source Code Program
Source Code Program
php
<?php
header('location:admin/index.php');
// header('location:admin/user.php?module=home');
?>
Pada Folder Klasifikasi_sekolah_c45 terdapat 2 folder utama yaitu admin & config
2. Klasifikasi_sekolah_c45/config/adminstyle.css
.menupic{
background:transparent;
width:100%;
margin:0 auto;
}
.menuhorisontal{
background:#000000;
color:#FFFFFF;
width: 1200px;
height:30px;
margin:0 auto;
padding:0 auto;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;
}
.menuhorisontal ul{
margin: 0;
padding-left:0px;
font:
normal 12px Arial;
color:#FFFFFF;
text-transform:none;
list-style-type: none;
letter-spacing:.01em;
}
.menuhorisontal li{
display: inline;
margin: 0;
}
.menuhorisontal li a{
float: left;
display: block;
text-decoration:none;
margin: 0;padding: 8px 7px;
border-right: 0px solid #333;
color: #fff}
#content {
margin-left: 200px;
}
#content p {
font-size: 75%;
}
#menu {
position: absolute;
top: 110px;
left: 0;
width: 180px;
}
#menu ul {
list-style: none;
margin: 0;
padding: 0;
border: none;
}
#menu li {
width: 180px;
border-bottom: 1px solid #969BA5;
margin: 0;
padding: 0;
font-size: 80%;
vertical-align: bottom;
}
#menu a:link, #menu a:visited {
display: block;
padding: 5px 5px 5px 0.5em;
border-left: 12px solid #000000;
border-right: 1px solid #000000;
background-color: #CAD6EC;
color: #000000;
text-decoration: none;
}
#menu a:hover {
background-color: #000000;
color: #FFFFFF;
}
a:link,a:visited {
color:#000000;
}
a:hover {
color: #FF6600;
text-decoration:none;
}
h2 {
font: normal 120% Georgia;
color: #000000;
background-color: transparent;
border-bottom: 1px dotted #000000;
}
h3 {
font: normal 100% Georgia;
color: #000000;
background-color: transparent;
}
table {
font-family: Tahoma;
font-size: 8pt;
border-width: 1px;
border-style: solid;
border-color: #999999;
border-collapse: collapse;
margin: 10px 0px;
}
th{
color: #FFFFFF;
font-size: 7pt;
text-transform: uppercase;
text-align: center;
padding: 0.5em;
border-width: 1px;
border-style: solid;
border-color: #969BA5;
border-collapse: collapse;
background-color: #000000;
}
td{
padding: 0.5em;
vertical-align: top;
border-width: 1px;
border-style: solid;
border-color: #969BA5;
border-collapse: collapse;
}
input,textarea,select{
font-family: Tahoma;
font-size: 8pt;
}
#paging{
font-family: Tahoma;
font-size: 8pt;
}
#footer{
font-size: 70%;
color: #FFFFFF;
background-color: #000000;
text-align : center;
}
3. Klasifikasi_sekolah_c45/config/hitungWaktu.php
<?php
// Fungsi ini digunakan untuk menghitung waktu mulai
function timer_start() {
global $timestart;
$mtime = explode( ' ', microtime() );
$timestart = $mtime[1] + $mtime[0];
return true;
}
// Fungsi ini digunakan untuk menghitung waktu selesai
function timer_stop( $precision = 3 ) {
global $timestart, $timeend;
$mtime = microtime();
$mtime = explode( ' ', $mtime );
$timeend = $mtime[1] + $mtime[0];
$timetotal = $timeend - $timestart;
$r = number_format( $timetotal, $precision );
return $r;
}
4. Klasifikasi_sekolah_c45/config/koneksi.php
<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "klasifikasi_sekolah_c45";
// Koneksi dan memilih database di server
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>
5. Klasifikasi_sekolah_c45/admin/aksi.php
<?php
error_reporting(0);
function deleteAllDb()
{
// mysql_query("TRUNCATE atribut");
mysql_query("TRUNCATE data_sekolah");
mysql_query("TRUNCATE data_keputusan");
mysql_query("TRUNCATE data_keputusan_kinerja");
mysql_query("TRUNCATE iterasi_c45");
mysql_query("TRUNCATE mining_c45");
mysql_query("TRUNCATE pohon_keputusan_c45");
mysql_query("TRUNCATE rule_c45");
mysql_query("TRUNCATE rule_penentu_keputusan");
mysql_query("TRUNCATE data_penentu_keputusan");
}
// session_start();
include "../config/koneksi.php";
include "../config/library.php";
$module=$_GET[module];
$act=$_GET[act];
8. Klasifikasi_sekolah_c45/admin/CSS_login.css
* {
margin:0;
padding:0;
}
body {
background-color:#FFF;
color: #5EA0DD;
font-family:Verdana,Tahoma, Arial,Sans-serif;
font-size:14px;
}
a{
text-decoration:none;
background-color: transparent;
color:#3A62B7;
cursor:pointer;
}
a:link,a:visited{
background-color: transparent;
color:#3A62B7;
}
a:hover,a:active{
background-color: transparent;
color:#8C2026;
}
form.fl{
/* margin-top:100px; */
}
table.tb{
-moz-border-radius: 36px 36px 20px 20px;
border:1px solid #96C3F8;
background:transparent left top no-repeat;
margin:100px auto 0;
width:400px;
/*
background:transparent url(../images/bgTabel.jpg) left top no-repeat;
-moz-border-radius-topleft:36px;
-moz-border-radius-topright:36px;
opacity: .3;
*/
}
table.tb span.th{
font-size:1.1em;
font-weight:bold;
}
table.tb td{
padding:3px;
}
table.tb td.caption{
padding:5px 3px;
}
table.tb td.header{
background:transparent;
/* -moz-border-radius-topleft:20px;
-moz-border-radius-topright:20px;
background:transparent url(../images/bgTableHeader2.png) left top repeat-x;
color:#4F4D4A; */
padding:8px;
text-align:center;
font-family:verdana;
letter-spacing:1px;
font-weight:bold;
}
#info{
background:transparent url(../images/sopPasswd.png) center 2px no-repeat;
border: 1px solid #96C3F8;
top:0px;
left:0px;
width:99.9%;
height:0%;
position:absolute;
z-index: 99;
cursor:pointer;
/* opacity:0.8; */
}
#footer{
background:transparent center 2px no-repeat;
color:#86a3d8;
padding-top:80px;
}
#footer p{
padding:2px 0;
font-size:0.75em;
text-align:center;
}
iframe.AJAX_Target{
border:0px solid #fff;
height:0;
width:0;
}
.right{
text-align:right;
}
input[type="text"]:focus, input[type="password"]:focus, textarea:focus {
-moz-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
border-color: rgba(82, 168, 236, 0.75) !important;
outline: medium none;
}
input{
-moz-border-radius:5px 5px 5px 5px;
border:1px solid #CCCCCC;
border:1px solid #5EA0DD;
padding:3px;
letter-spacing:1px;
color:#5EA0DD;
}
select,option{
padding:1px;
letter-spacing:1px;
color:#5EA0DD;
}
button{
cursor:pointer;
padding:2px 0;
color:#5EA0DD;
}
button img{
vertical-align:middle;
}
button span.txt{
font-weight:bold;
vertical-align:middle;
}
span.light{
color:#00F;
font-size:1.08em;
}
.forget{
color:#000;
font-size:0.7em;
}
a{
color:#B24D4D;
font-weight:bold;
}
a:link,a:visited{
color:#B24D4D;
}
a:active,a:hover{
color:#EB9309;
text-decoration:none;
}
9. Klasifikasi_sekolah_c45/admin/index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Login</title>
<link href="icon.png" rel="shortcut icon" type="image/png" />
<link href="CSS_login.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="mootools-1.2.1-core.js.php"></script>
<link href="icon.png" rel="shortcut icon" type="image/png" />
<script type="text/javascript" src="ardizorro-md5.js.php"></script>
<script type="text/javascript" src="login.js"></script>
</head>
<body>
<!-- <div id="info" title="Klik untuk Sembunyikan Informasi"><a id="showinfo"
title="Klik untuk Menampilkan Informasi" href="#">Sembunyikan Informasi</a></div> -->
<form method="POST" action="cek_login.php">
<table width="371" cellpadding="2px" cellspacing="2px" class="tb" >
<tr>
<td class="header" colspan="2" bgcolor="#CCCCCC" nowrap="nowrap"><p class="light"><img
src="logo-kemdikbud.png" alt="" width="97" height="91" /></p></td>
</tr>
<tr>
<td class="caption" colspan="2" align="center"><span class="light"><b>Aplikasi
Klasifikasi Sekolah menggunakan Menggunakan Algoritma C4.5</b></span></td>
</tr>
<tr>
<td width="127" nowrap="nowrap"><div class="right">Username</div></td>
<td width="228"><input style="cursor:help" title="Contoh: Admin" type="text"
name="username" id="username" size="25" maxlength="15"/></td>
</tr>
<tr>
<tr>
<td height="50"> </td>
<td>
<input type="hidden" id="postForm" name="postForm" maxlength="32"
value="387bcfe8cb701b58a39196a6abb5f57a"/>
<button type="reset" id="btnReset" name="btnReset"><img src="1473847278_Reset.png"
width="21" height="20"/><span class="txt">Reset</span></button>
<button type="submit" id="btnLogin" name="btnLogin" value="Login"><img
src="1473847094_login.png" width="31" height="22"/><span class="txt">Login</span></button>
</td>
</tr>
</table>
</form>
<div id="footer">
<p>Copyright© 2016 Dinas Pendidikan & Kebudayaan Provinsi Lampung:</p>
<p><b>Developed By Rizki Noprian</b></p>
</div>
</body>
</html>
10. Klasifikasi_sekolah_c45/admin/logout.php
<?php
session_start();
session_destroy();
header('location:index.php');
?>
11. Klasifikasi_sekolah_c45/admin/media.php
<?php
error_reporting(0);
session_start();
if (empty($_SESSION[namauser]) AND empty($_SESSION[passuser])){
echo "<link href='../config/adminstyle.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=index.php><b>LOGIN</b></a></center>";
} else {
?>
<html>
<head>
<title>Aplikasi Klasifikasi Sekolah menggunakan Pohon Keputusan C4.5</title>
<link href="icon.png" rel="shortcut icon" type="image/png" />
<link href="../config/adminstyle.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<br>
<div class='menupic'>
<div class='menuhorisontal'>
</div>
</div>
<div id="content">
<?php include "content.php"; ?>
</div>
<div id="menu">
<br><ul>
<?php echo "
<li><a href=?module=home>.: Home</a></li>
<li><a href=?module=data_sekolah>.: Data Sekolah</a></li>
<li><a href=?module=data_sekolah&act=partisi_data>.: Partisi Data</a></li>
<li><a href=?module=c45>.: C.45 » Perhitungan</a></li>
<li><a href=?module=c45&act=mining>.: C.45 » Proses Mining</a></li>
<li><a href=?module=c45&act=pohon_keputusan>.: C.45 » Pohon
Keputusan</a></li>
<li><a href=?module=kinerja>.: Kinerja » Perbandingan</a></li>
<li><a href=?module=kinerja&act=lakukan_kinerja onClick=\"return confirm('Anda
Yakin? Proses akan membutuhkan waktu yang lama.')\">.: Kinerja » Proses Kinerja</a></li>
<li><a href=?module=kinerja&act=tabel_penilaian>.: Kinerja » Tabel
Penilaian</a></li>
<li><a href=?module=penentu_keputusan>.: Penentu Keputusan</a></li>
<li><a href=?module=pola_kelompok>.: Pola Kelompok</a></li>
<li><a href=?module=grafik>.: Grafik</a></li>
<li><a href=logout.php>.: Logout</a></li>
"; ?>
</ul>
<p> </p>
</div>
<div id="footer">
<p>Copyright© 2016 Dinas Pendidikan & Kebudayaan Provinsi Lampung by<br />
<b>Developed by RIZKI NOPRIAN</b></p>
</div>
</div>
</body>
</html>
<?php
}
?>
12. Klasifikasi_sekolah_c45/admin/modul/adminstyle.css
body{
font-family: Tahoma;
text-align: center;
}
#header {
position: relative;
background-image: url(../admin/images/Untitled.png);
background-repeat: no-repeat;
margin-right: auto;
margin-left: auto;
width: 1024px;
border: 2px solid #000000;
padding-top: 70px;
text-align: left;
}
#content {
margin-left: 200px;
}
#content p {
font-size: 75%;
}
#menu {
position: absolute;
top: 90px;
left: 0;
width: 180px;
}
#menu ul {
list-style: none;
margin: 0;
padding: 0;
border: none;
}
#menu li {
width: 180px;
border-bottom: 1px solid #969BA5;
margin: 0;
padding: 0;
font-size: 80%;
vertical-align: bottom;
}
#menu a:link, #menu a:visited {
display: block;
padding: 5px 5px 5px 0.5em;
border-left: 12px solid #000000;
border-right: 1px solid #000000;
background-color: #CAD6EC;
color: #000000;
text-decoration: none;
}
#menu a:hover {
background-color: #000000;
color: #FFFFFF;
}
a:link,a:visited {
color:#000000;
}
a:hover {
color: #FF6600;
text-decoration:none;
}
h2 {
font: normal 120% Georgia;
color: #000000;
background-color: transparent;
border-bottom: 1px dotted #000000;
}
table {
font-family: Tahoma;
font-size: 8pt;
border-width: 1px;
border-style: solid;
border-color: #999999;
border-collapse: collapse;
margin: 10px 0px;
}
th{
color: #000000;
font-size: 7pt;
text-transform: uppercase;
text-align: center;
padding: 0.5em;
border-width: 1px;
border-style: solid;
border-color: #969BA5;
border-collapse: collapse;
background-color: #00CCFF;
}
td{
padding: 0.5em;
vertical-align: top;
border-width: 1px;
border-style: solid;
border-color: #969BA5;
border-collapse: collapse;
}
input,textarea,select{
font-family: Tahoma;
font-size: 8pt;
}
#paging{
font-family: Tahoma;
font-size: 8pt;
}
#footer{
font-size: 70%;
color: #FFFFFF;
background-color: #000000;
text-align : center;
13. Klasifikasi_sekolah_c45/admin/modul/c45.php
<?php
switch($_GET[act]){
default:
echo "<h2>C45 » Perhitungan C4.5</h2>";
// include "menu_c45.php";
echo "
<table bgcolor='#00CCFF' border='1' cellspacing='0' cellspading='0'>
<tr>
<th>No</th>
<th>Atribut Gain Ratio Max</th>
<th>Atribut</th>
<th>Nilai Atribut</th>
<th>Jumlah Kasus Total</th>
<th>Jumlah Kasus Rendah</th>
<th>Jumlah Kasus Sedang</th>
<th>Jumlah Kasus Tinggi</th>
<th>Entropy</th>
<th>Information Gain</th>
<th>Split Info</th>
<th>Gain Ratio</th>
</tr>";
if ($_SESSION[leveluser]=='admin'){
$sql=mysql_query('SELECT * FROM iterasi_c45 ORDER BY id');
}
$warna1 = '#FFFFFF';
$warna2 = '#CCFFFF';
$warna = $warna1;
while ($data=mysql_fetch_array($sql)){
if($warna == $warna1){
$warna = $warna2;
} else {
$warna = $warna1;
}
echo " <tr bgcolor='$warna'>
<td>$data[iterasi]</td>
<td>$data[atribut_gain_ratio_max]</td>
<td>$data[atribut]</td>
<td>$data[nilai_atribut]</td>
<td>$data[jml_kasus_total]</td>
<td>$data[jml_kasus_rendah]</td>
<td>$data[jml_kasus_sedang]</td>
<td>$data[jml_kasus_tinggi]</td>
<td>$data[entropy]</td>
<td>$data[inf_gain]</td>
<td>$data[split_info]</td>
<td>$data[gain_ratio]</td>
</tr>";
}
echo"</table>";
break;
case "mining";
echo "<h2>C45 » Mining C4.5</h2>";
// include "menu_c45.php";
echo "<form method=POST action=''>
<table>
<tr>
<td>Proses C4.5 : </td>
<td>
<select name='proses' type='text'>
<option value='pruning'>dengan pruning</option>
<option value='nonpruning'>tanpa pruning</option>
</select>
</td>
<td colspan=2>
<input type=submit name=submit value=Proses>
</td>
</tr>
</table>
</form>";
if (isset($_POST['submit'])) {
if ($_POST['proses'] == 'pruning') {
$kondisi = "miningPrePruningC45";
} else {
$kondisi = "miningC45";
}
// include "menu_c45.php";
break;
case "pohon_keputusan";
include "pohon_keputusan_c45.php";
break;
}
14. Klasifikasi_sekolah_c45/admin/modul/data_sekolah.php
<?php
switch($_GET[act]){
default:
echo "<h2>Data Sekolah</h2>";
// include "menu_data_sekolah.php";
include "form_data_sekolah.php";
echo "
<form method=POST action='modul/export_data_sekolah.php'>
<table>
<tr>
<td>Export Data Tahun</td>
<td>:
<select name='tahun' type='text'>
<option value='2012'>2012</option>
<option value='2013'>2013</option>
<option value='2014'>2014</option>
<option value='2015'>2015</option>
<option value='2016'>2016</option>
</select>
</td>
</tr>
<tr>
<td colspan=2>
<input type='submit' name='submitx' value='Export'>
</td>
</tr>
</table>
</form>";
include "upload_csv.php";
$tpages=$total_pages;
if ($page <= 0)
$page = 1;
$reload = $_SERVER['PHP_SELF'] . "?module=data_sekolah&act=data_sekolah&tpages=" .
$tpages;
if ($total_pages > 1) {
echo paginate($reload, $show_page, $total_pages);
}
case "edit_data_sekolah";
echo "<h2>Data Sekolah » Edit Data Sekolah</h2>";
// include "menu_data_sekolah.php";
include "form_edit_data_sekolah.php";
break;
case "partisi_data";
include "partisi_data.php";
break;
}
15. Klasifikasi_sekolah_c45/admin/modul/export_data_sekolah.php
<?php
error_reporting(0);
include "../../config/koneksi.php";
$arrayDb = array();
$string = "NO, NPSN, NAMA SEKOLAH, STATUS SEKOLAH, KECAMATAN, TAHUN, CLASS
";
// ambil data
$no = 1;
$sqlGetData = mysql_query("SELECT * FROM data_sekolah WHERE tahun = '$_POST[tahun]'");
while($rowGetData = mysql_fetch_array($sqlGetData)) {
$stringDb = "$no, $rowGetData[npsn], $rowGetData[nama_sekolah], $rowGetData[status_sekolah],
$rowGetData[kecamatan], $rowGetData[tahun], $rowGetData[class]";
$array[] = $stringDb;
$arrayDb[] = $array;
$no++;
}
$stringData = $string;
header("Content-Disposition: attachment;filename=export_data_sekolah_" . $_POST['tahun'] .
".csv ");
echo "$stringData"; // tampilkan data
16. Klasifikasi_sekolah_c45/admin/modul/export_penentu_keputusan.php
<?php
error_reporting(0);
include "../../config/koneksi.php";
$arrayDb = array();
$string = "NO, NPSN, NAMA SEKOLAH, STATUS SEKOLAH, KECAMATAN, TAHUN, CLASS
";
// ambil data
$no = 1;
$sqlGetData = mysql_query("SELECT * FROM data_keputusan");
while($rowGetData = mysql_fetch_array($sqlGetData)) {
$stringDb = "$no, $rowGetData[npsn], $rowGetData[nama_sekolah], $rowGetData[status_sekolah],
$rowGetData[kecamatan], $rowGetData[tahun], $rowGetData[keputusan_c45]";
$array[] = $stringDb;
$arrayDb[] = $array;
$no++;
}
$transform = array("212" => "2012",
"213" => "2013",
"214" => "2014",
"215" => "2015",
"216" => "2016"
);
17. Klasifikasi_sekolah_c45/admin/modul/export_pola_kelompok.php
<?php
error_reporting(0);
include "../../config/koneksi.php";
$arrayDb = array();
$string = "NO, NPSN, NAMA SEKOLAH, STATUS SEKOLAH, TAHUN, CLASS
";
// ambil data
$no = 1;
$sqlGetData = mysql_query("SELECT * FROM data_sekolah WHERE $_GET[query1] like
'%$_GET[query2]%'");
while($rowGetData = mysql_fetch_array($sqlGetData)) {
$stringDb = "$no, $rowGetData[npsn], $rowGetData[nama_sekolah], $rowGetData[status_sekolah],
$rowGetData[tahun], $rowGetData[class]";
$array[] = $stringDb;
$arrayDb[] = $array;
$no++;
}
18. Klasifikasi_sekolah_c45/admin/modul/form_data_sekolah.php
<?php
echo "
<form method=POST action='./aksi.php?module=data_sekolah&act=input'>
<table>
<tr>
<td colspan=2><b><center>Input Data Sekolah</center></b></td>
</tr>";
include "form_sekolah.php";
echo "<tr>
<td><b>class<b></td>
<td>:
<select name='class' type='text'>
<option value='Rendah'>Rendah</option>
<option value='Sedang'>Sedang</option>
<option value='Tinggi'>Tinggi</option>
</select>
</td>
</tr>
<tr>
<td><b>Status Data<b></td>
<td>:
<select name='status_data' type='text'>
<option value='Data Training'>Data Training</option>
<option value='Data Testing'>Data Testing</option>
</select>
</td>
</tr>
<tr>
<td colspan=2>
<input type=submit value=Input>
</td>
</tr>
</table>
</form>";
?>
19. Klasifikasi_sekolah_c45/admin/modul/form_edit_data_sekolah.php
<html>
<?php
$query = mysql_query("SELECT * FROM data_sekolah WHERE id='$_GET[id]'");
$data = mysql_fetch_array($query);
?>
<form method=POST action='./aksi.php?module=data_sekolah&act=update_data_sekolah'>
<input type=hidden name=id value=<?php echo "$data[id]"; ?>>
<table>
<tr>
<td colspan=2><b><center>Edit Data Sekolah</center></b></td>
</tr>
<?php
viewForm('npsn', 'npsn');
viewForm('nama_sekolah', 'nama sekolah');
viewFormSelect('kecamatan', 'kecamatan');
viewFormSelect('status_sekolah', 'status sekolah');
viewFormSelect('tw_1', 'tw 1');
viewFormSelect('tw_2', 'tw 2');
viewFormSelect('tw_3', 'tw 3');
// viewFormSelect('tahun', 'tahun');
?>
<tr>
<td>tahun</td>
<td>:
<select name='tahun' type='text'>
<option value='<?php echo "$data[tahun]"; ?>' selected='selected'><?php echo
"$data[tahun]"; ?></option>
<option value='2012'>2012</option>
<option value='2013'>2013</option>
<option value='2014'>2014</option>
<option value='2015'>2015</option>
<option value='2016'>2016</option>
</select>
</td>
</tr>
<tr>
<td><b>Class<b></td>
<td>:
<select name='class' type='text'>
<option value='<?php echo "$data[class]"; ?>' selected='selected'><?php echo
"$data[class]"; ?></option>
<option value='Rendah'>Rendah</option>
<option value='Sedang'>Sedang</option>
<option value='Tinggi'>Tinggi</option>
</select>
</td>
</tr>
<tr>
<td><b>Status Data<b></td>
<td>:
<select name='status_data' type='text'>
<option value='<?php echo "$data[status_data]"; ?>' selected='selected'><?php echo
"$data[status_data]"; ?></option>
<option value='Data Training'>Data Training</option>
<option value='Data Testing'>Data Testing</option>
</select>
</td>
</tr>
<tr>
<td colspan=2>
<input type='submit' value='Simpan'><input type='button' value='Batal'
onclick='self.history.back()'>
</td>
</tr>
</table>
</form>
</html>
20. Klasifikasi_sekolah_c45/admin/modul/form_penentu_keputusan.php
<?php
echo "
<form method=POST action='modul/function/penentuKeputusan.php'>
<table>
<tr>
<td colspan=2><b><center>Input Data</center></b></td>
</tr>";
include "form_sekolah.php";
echo "<tr>
<td colspan=2>
<input type=submit value=Input>
</td>
</tr>
</table>
</form>";
21. Klasifikasi_sekolah_c45/admin/modul/form_sekolah.php
<?php
function viewForm($atribut, $atributx) {
echo "<tr>
<td>$atributx</td>
<td>:
<input name='$atribut' type='text'>
</td>
</tr>";
}
function viewFormSelect($atribut, $atributx) {
echo "<tr>
<td>$atributx</td>
<td>:
<select name='$atribut' type='text'>";
$sqlData1 = mysql_query("SELECT * FROM atribut where atribut = '$atribut'");
while($rowData1 = mysql_fetch_array($sqlData1)) {
echo "<option value='$rowData1[nilai_atribut]'>$rowData1[nilai_atribut]";
}
echo "</option>
</select>
</td>
</tr>";
}
viewForm('npsn', 'npsn');
viewForm('nama_sekolah', 'nama sekolah');
viewFormSelect('kecamatan', 'kecamatan');
viewFormSelect('status_sekolah', 'status sekolah');
viewFormSelect('tw_1', 'tw 1');
viewFormSelect('tw_2', 'tw 2');
viewFormSelect('tw_3', 'tw 3');
// viewFormSelect('tahun', 'tahun');
?>
<tr>
<td>tahun</td>
<td>:
<select name='tahun' type='text'>
<option value='2012'>2012</option>
<option value='2013'>2013</option>
<option value='2014'>2014</option>
<option value='2015'>2015</option>
<option value='2016'>2016</option>
</select>
</td>
</tr>
24. Klasifikasi_sekolah_c45/admin/modul/grafik_5_tahun.php
<?php
include ("../../config/modul/jpgraph.php");
include ("../../config/modul/jpgraph_line.php");
include ("../../config/modul/jpgraph_bar.php");
include ("../../config/koneksi.php");
include ("../../config/en.inc.php");
// include ("../../admin/modul/function/generateGrafikTahun.php");
$dataRendah = array();
$dataSedang = array();
$dataTinggi = array();
$datatahun = array();
$query = "SELECT * FROM grafik_tahun where tahun = '2012' order by kecamatan DESC";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
// menambahkan data hasil query ke array
array_unshift($datakecamatan, $data['kecamatan']);
array_unshift($dataRendah, $data['rendah']);
array_unshift($dataSedang, $data['sedang']);
array_unshift($dataTinggi, $data['tinggi']);
}
26. Klasifikasi_sekolah_c45/admin/modul/kinerja.php
<?php
switch($_GET[act]){
default:
echo "<h2>Kinerja » Tabel Perbandingan Keputusan</h2>";
// include "menu_kinerja.php";
echo "<p>Opsi: <a href=./aksi.php?module=kinerja&act=hapus_data_kinerja>Hapus Semua
Data</a></p>";
$per_page = 30; // number of results to show per page
if ($_SESSION[leveluser]=='admin'){
$result=mysql_query("SELECT * FROM data_keputusan_kinerja");
}
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);//total pages we going to have
$warna1 = '#FFFFFF';
$warna2 = '#CCFFFF';
$warna = $warna1;
$tpages=$total_pages;
if ($page <= 0)
$page = 1;
break;
case "tabel_penilaian";
function countKeputusan($nilai_keputusan_asli)
{
$sql = mysql_query("SELECT count(id) as id FROM data_keputusan_kinerja where
keputusan_asli = '$nilai_keputusan_asli'");
while($row = mysql_fetch_array($sql)) {
$count = "$row[id]";
}
return $count;
}
function perbandingan()
{
$Tinggi = countKeputusan($nilai_keputusan_asli = 'Tinggi');
$Sedang = countKeputusan($nilai_keputusan_asli = 'Sedang');
$Rendah = countKeputusan($nilai_keputusan_asli = 'Rendah');
$precision_tinggi = round((($TinggiC45IdentifikasiTinggi /
($TinggiC45IdentifikasiTinggi + $SedangC45IdentifikasiTinggi + $RendahC45IdentifikasiTinggi))
* 100), 2);
$recall_tinggi = round((($TinggiC45IdentifikasiTinggi / ($TinggiC45IdentifikasiTinggi
+ $TinggiC45IdentifikasiSedang + $TinggiC45IdentifikasiRendah)) * 100), 2);
$fmeasure_tinggi =
round(((2*($precision_tinggi*$recall_tinggi)/($precision_tinggi+$recall_tinggi)) *1),2);
$precision_sedang = round((($SedangC45IdentifikasiSedang /
($TinggiC45IdentifikasiSedang + $SedangC45IdentifikasiSedang + $RendahC45IdentifikasiSedang))
* 100), 2);
$recall_sedang = round((( $SedangC45IdentifikasiSedang / ($SedangC45IdentifikasiTinggi
+ $SedangC45IdentifikasiSedang + $SedangC45IdentifikasiRendah)) * 100), 2);
$fmeasure_sedang =
round(((2*($precision_sedang*$recall_sedang)/($precision_sedang+$recall_sedang)) *1),2);
$precision_rendah = round((($RendahC45IdentifikasiRendah /
($TinggiC45IdentifikasiRendah + $SedangC45IdentifikasiRendah + $RendahC45IdentifikasiRendah))
* 100), 2);
$recall_rendah = round((($RendahC45IdentifikasiRendah / ($RendahC45IdentifikasiTinggi
+ $RendahC45IdentifikasiSedang + $RendahC45IdentifikasiRendah)) * 100), 2);
$fmeasure_rendah =
round(((2*($precision_rendah*$recall_rendah)/($precision_rendah+$recall_rendah)) *1),2);
<p><a>
<b>Kelas Tinggi : </b> <br>
- Precision = $TinggiC45IdentifikasiTinggi / ($TinggiC45IdentifikasiTinggi +
$SedangC45IdentifikasiTinggi + $RendahC45IdentifikasiTinggi) = $precision_tinggi %<br>
- Recall = $TinggiC45IdentifikasiTinggi / ($TinggiC45IdentifikasiTinggi +
$TinggiC45IdentifikasiSedang + $TinggiC45IdentifikasiRendah) = $recall_tinggi %<br>
- F-Measure =
2*(($precision_tinggi*$recall_tinggi)/($precision_tinggi+$recall_tinggi)) =$fmeasure_tinggi
%<br><br>
<b>Kelas Sedang : </b> <br>
- Precision = $SedangC45IdentifikasiSedang / ($TinggiC45IdentifikasiSedang +
$SedangC45IdentifikasiSedang + $RendahC45IdentifikasiSedang) = $precision_sedang %<br>
- Recall = $SedangC45IdentifikasiSedang / ($SedangC45IdentifikasiTinggi +
$SedangC45IdentifikasiSedang + $SedangC45IdentifikasiRendah) = $recall_sedang %<br>
- F-Measure =
2*(($precision_sedang*$recall_sedang)/($precision_sedang+$recall_sedang)) =$fmeasure_sedang
%<br><br>
<b>Kelas Rendah : </b> <br>
- Precision = $RendahC45IdentifikasiRendah / ($TinggiC45IdentifikasiRendah +
$SedangC45IdentifikasiRendah + $RendahC45IdentifikasiRendah) = $precision_rendah %<br>
- Recall = $RendahC45IdentifikasiRendah / ($RendahC45IdentifikasiTinggi +
$RendahC45IdentifikasiSedang + $RendahC45IdentifikasiRendah) = $recall_rendah %<br>
- F-Measure =
2*(($precision_rendah*$recall_rendah)/($precision_rendah+$recall_rendah)) =$fmeasure_rendah
%<br><br>
Akurasi = ($TinggiC45IdentifikasiTinggi + $SedangC45IdentifikasiSedang +
$RendahC45IdentifikasiRendah) /
($TinggiC45IdentifikasiTinggi + $SedangC45IdentifikasiTinggi +
$RendahC45IdentifikasiTinggi +
$TinggiC45IdentifikasiSedang + $SedangC45IdentifikasiSedang +
$RendahC45IdentifikasiSedang +
$TinggiC45IdentifikasiRendah + $SedangC45IdentifikasiRendah +
$RendahC45IdentifikasiRendah) = $accuracy_all %<br>
</a></p>
";
if (empty($rowEmpty)) {
echo "Tabel Penilaian Kosong !<br>Lakukan Perbandingan Dulu !";
} else {
echo "<br />";
perbandingan();
}
break;
case "lakukan_kinerja";
echo "<h2>Kinerja » Proses Kinerja</h2>";
// include "menu_kinerja.php";
timer_start();
include "function/kinerjaC45.php";
$class = timer_stop(3);
echo "<p>Proses perhitungan kinerja selesai! waktu yang dibutuhkan $class detik</p>";
break;
}
?>
27. Klasifikasi_sekolah_c45/admin/modul/menu_c45.php
<?php
echo "<h3><b><center>
Menu: <a href=?module=c45>Perhitungan C4.5</a> |
<a href=?module=c45&act=mining>Lakukan Mining C4.5</a> |
<a href=?module=c45&act=pohon_keputusan>Pohon Keputusan C4.5</a>
</center></b></h3>";
28. Klasifikasi_sekolah_c45/admin/modul/menu_data_sekolah.php
<?php
echo "<h3><b><center>
Menu: <a href=?module=data_sekolah>Data Sekolah</a> |
<a href=?module=data_sekolah&act=partisi_data>Partisi Data</a>
</center></b></h3>";
29. Klasifikasi_sekolah_c45/admin/modul/menu_kinerja.php
<?php
echo "<h3><b><center>
Menu: <a href=?module=kinerja>Kinerja C4.5</a> |
<a href=?module=kinerja&act=lakukan_kinerja>Lakukan Proses Kinerja</a> |
<a href=?module=kinerja&act=tabel_penilaian>Tabel Penilaian</a>
</center></b></h3>";
30. Klasifikasi_sekolah_c45/admin/modul/partisi_data.php
<?php
echo "<h2>Data Training » Partisi Data</h2>";
// include "menu_data_training.php";
</table>
</form>";
if (isset($_POST['submit'])) {
if ($_POST['data'] > 100) {
echo "<p>Data yang dimasukkan harus lebih kecil dari 100!<p>";
} else {
$Rendah = countPersentase($_POST['data'], "class = 'Rendah'");
$Sedang = countPersentase($_POST['data'], "class = 'Sedang'");
$Tinggi = countPersentase($_POST['data'], "class = 'Tinggi'");
mysql_query("TRUNCATE data_keputusan");
mysql_query("TRUNCATE data_keputusan_kinerja");
mysql_query("TRUNCATE iterasi_id3");
mysql_query("TRUNCATE pohon_keputusan_id3");
mysql_query("TRUNCATE rule_id3");
<tr>
<td><b>Rendah ($status_data_rendah Data)</b></td>
<td><b>$status_data_training_rendah</b></td>
<td><b>$status_data_testing_rendah</b></td>
</tr>
<tr>
<td><b>Tinggi ($status_data_tinggi Data)</b></td>
<td><b>$status_data_training_tinggi</b></td>
<td><b>$status_data_testing_tinggi</b></td>
</tr>
<tr>
<td><b>Sedang ($status_data_sedang Data)</b></td>
<td><b>$status_data_training_sedang</b></td>
<td><b>$status_data_testing_sedang</b></td>
</tr>
</table>";
31. Klasifikasi_sekolah_c45/admin/modul/penentu_keputusan.php
<?php
echo "<h2>Penentu Keputusan</h2>";
include "form_penentu_keputusan.php";
include "upload_csv_penentu_keputusan.php";
if ($_SESSION[leveluser]=='admin'){
echo "<p>Opsi: <a
href=./aksi.php?module=penentu_keputusan&act=delete_data_penentu_keputusan>Hapus Semua
Data</a> |
<a href='modul/export_penentu_keputusan.php' target='_blank'>Export Data</a>
</p>";
if ($_SESSION[leveluser]=='admin'){
$sql=mysql_query('SELECT * FROM data_keputusan ORDER BY id');
}
$warna1 = '#FFFFFF';
$warna2 = '#CCFFFF';
$warna = $warna1;
$no = 1;
while ($data=mysql_fetch_array($sql)){
if($warna == $warna1){
$warna = $warna2;
} else {
$warna = $warna1;
}
echo "<tr bgcolor='$warna'>
<td>$no</td>
<td>$data[npsn]</td>
<td>$data[nama_sekolah]</td>
<td>$data[kecamatan]</td>
<td>$data[status_sekolah]</td>
<td>$data[tw_1]</td>
<td>$data[tw_2]</td>
<td>$data[tw_3]</td>
<td>$data[tahun]</td>
<td>
";
if ($data['keputusan_c45'] == 'Rendah') {
echo "<font color=red><b>$data[keputusan_c45]</b></font>";
} elseif ($data['keputusan_c45'] == 'Sedang') {
echo "<font color=blue><b>$data[keputusan_c45]</b></font>";
} elseif ($data['keputusan_c45'] == 'Tinggi') {
echo "<font color=green><b>$data[keputusan_c45]</b></font>";
} else {
echo "<b>$data[keputusan_c45]</b>";
}
echo "<br><b>$data[id_rule_c45]</b></td>
<td>
<a href=./aksi.php?module=penentu_keputusan&act=hapus&id=$data[id]>Hapus</a>
</td>
</tr>";
$no++;
}
echo"</table>";
?>
</html>
32. Klasifikasi_sekolah_c45/admin/modul/pohon_keputusan_c45.php
<?php
include "../../config/koneksi.php";
echo "<h2>C45 » Pohon Keputusan</h2>";
// include "menu_c45.php";
echo " <p>Opsi: <a href=./aksi.php?module=c45&act=hapus_pohon_keputusan>Hapus Semua
Data</a></p>";
echo "<font face='Courier New' size='2'>";
echo "<h3><b>Pohon Keputusan: <br></b></h3>";
function get_subfolder($idparent, $spasi){
if ($_SESSION[leveluser]=='admin'){
$result = mysql_query("select * from pohon_keputusan_c45 where id_parent=
'$idparent'");
}
while($row=mysql_fetch_row($result)){
for($i=1;$i<=$spasi;$i++){
echo "| ";
}
if ($row[7] === 'Tinggi') {
$keputusan = "<font color=red>$row[7]</font>";
} elseif ($row[7] === 'Sedang') {
$keputusan = "<font color=blue>$row[7]</font>";
} elseif ($row[7] === 'Rendah') {
$keputusan = "<font color=green>$row[7]</font>";
} elseif ($row[7] === '?') {
$keputusan = "<font color=purple>$row[7]</font>";
} else {
$keputusan = "<b>$row[7]</b>";
}
echo "<font color=red>$row[1]</font> = $row[2] (Rendah = $row[4], Sedang = $row[5],
Tinggi = $row[6]) : <b>$keputusan</b><br>";
get_subfolder('0', 0);
echo "<hr>";
33. Klasifikasi_sekolah_c45/admin/modul/pola_kelompok.php
<?php
function getClass($nama_sekolah) {
$sql2=mysql_query("SELECT * FROM data_sekolah WHERE nama_sekolah = '$nama_sekolah'");
while ($data2=mysql_fetch_array($sql2)){
$class .= "$data2[class], ";
}
echo "$class";
}
echo "<h2>Pola Kelompok</h2>";
echo "
<form method=POST action=''>
<table>
<tr>
<td>Cari Pola Berdasarkan</td>
<td>:
<select name='sort_by' type='text'>
<option value='npsn'>NPSN</option>
<option value='nama_sekolah'>Nama Sekolah</option>
</select>
<input name='value_sort_by' type='text'>
</td>
</tr>
<tr>
<td colspan=2>
<input type='submit' name='submitx' value='Cari'>
</td>
</tr>
</table>
</form>";
if (isset($_POST['submitx'])) {
if ($_SESSION[leveluser]=='admin'){
echo "<p>Opsi: <a
href='modul/export_pola_kelompok.php?query1=$_POST[sort_by]&query2=$_POST[value_sort_by]'
target='_blank'>Export Data</a>
</p>";
echo "<table bgcolor='#00CCFF' border='1' cellspacing='0' cellspading='0'>
<tr>
<th>No</th>
<th>npsn</th>
<th>nama sekolah</th>
<th>status sekolah</th>
<th>tahun</th>
<th>kelompok</th>
</tr>";
}
if ($_SESSION[leveluser]=='admin'){
$sql=mysql_query("SELECT * FROM data_sekolah WHERE $_POST[sort_by] like
'%$_POST[value_sort_by]%'");
}
$warna1 = '#FFFFFF';
$warna2 = '#CCFFFF';
$warna = $warna1;
$no = 1;
while ($data=mysql_fetch_array($sql)){
if($warna == $warna1){
$warna = $warna2;
} else {
$warna = $warna1;
}
echo "<tr bgcolor='$warna'>
<td>$no</td>
<td>$data[npsn]</td>
<td>$data[nama_sekolah]</td>
<td>$data[status_sekolah]</td>
<td>$data[tahun]</td>
<td>$data[class]</td>
</tr>";
$no++;
}
echo"</table>";
echo"</table>";
}
?>
</html>
34. Klasifikasi_sekolah_c45/admin/modul/upload_csv.php
<?php
include "../../config/koneksi.php";
echo "<form action='' method='post' enctype='multipart/form-data' name='form1' id='form1'>
<p>Ambil File .csv :
<input name='csv' type='file' id='csv' />
<input type='submit' name='Submit' value='Submit' /></p >
</form>";
if ($_FILES[csv][size] > 0) {
do {
if ($data[0]) {
mysql_query("INSERT INTO data_sekolah VALUES
(
'',
'".addslashes($data[0])."',
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'Data Training'
)
");
}
} while ($data = fgetcsv($handle,1000,",","'"));
//
// include "modul/transformasi_data.php";
//redirect
// echo "<script>alert('Data berhasil diinput!');
document.location.href='media.php?module=data_sekolah';</script>\n";
}
35. Klasifikasi_sekolah_c45/admin/modul/upload_csv_penentu_keputusan.php
<?php
include "../../config/koneksi.php";
echo "<form action='' method='post' enctype='multipart/form-data' name='form1' id='form1'>
<p>Ambil File .csv :
<input name='csv' type='file' id='csv' />
<input type='submit' name='Submit' value='Submit' /></p >
</form>";
if ($_FILES[csv][size] > 0) {
}
36. Klasifikasi_sekolah_c45/admin/modul/function/generateGrafikTahun.php
<?php
function generateGrafikTahun($class, $tahun) {
$sql=mysql_query("SELECT distinct kecamatan FROM data_sekolah order by kecamatan");
while ($data=mysql_fetch_array($sql)){
$sql2=mysql_query("SELECT count(*) as banyak, tahun FROM data_sekolah where class =
'$class' AND tahun = '$tahun' AND kecamatan = '$data[kecamatan]'");
// echo "SELECT count(*) as banyak, tahun FROM data_sekolah where class = '$class' AND
tahun = '$tahun'<br>";
$data2=mysql_fetch_array($sql2);
if ($class == 'Rendah') {
mysql_query("insert into grafik_tahun values ('', '$tahun', '$data[kecamatan]',
'$data2[banyak]', '', '')");
// echo "insert into grafik_tahun values ('', '$tahun', '$data[kecamatan]',
'$data2[banyak]', '', '')<br>";
} else {
mysql_query("update grafik_tahun set `$class` = '$data2[banyak]' where kecamatan =
'$data[kecamatan]' AND tahun = '$tahun' AND kecamatan = '$data[kecamatan]'");
// echo "update grafik_tahun set `$class` = '$data2[banyak]' where kecamatan =
'$data[kecamatan]' AND tahun = '$tahun' AND kecamatan = '$data[kecamatan]'<br>";
}
}
}
mysql_query("TRUNCATE grafik_tahun");
generateGrafikTahun('Rendah', '2012');
generateGrafikTahun('Sedang', '2012');
generateGrafikTahun('Tinggi', '2012');
generateGrafikTahun('Rendah', '2013');
generateGrafikTahun('Sedang', '2013');
generateGrafikTahun('Tinggi', '2013');
generateGrafikTahun('Rendah', '2014');
generateGrafikTahun('Sedang', '2014');
generateGrafikTahun('Tinggi', '2014');
generateGrafikTahun('Rendah', '2015');
generateGrafikTahun('Sedang', '2015');
generateGrafikTahun('Tinggi', '2015');
generateGrafikTahun('Rendah', '2016');
generateGrafikTahun('Sedang', '2016');
generateGrafikTahun('Tinggi', '2016');
37. Klasifikasi_sekolah_c45/admin/modul/function/kinerjaC45.php
<?php
include "../../../config/koneksi.php";
mysql_query("TRUNCATE data_keputusan_kinerja");
function penentuKeputusan($atribut) {
mysql_query("TRUNCATE data_penentu_keputusan");
// buat variabel baru dan masukkan masing-masing atribut
$npsn = $atribut['npsn'];
$nama_sekolah = $atribut['nama_sekolah'];
$kecamatan = $atribut['kecamatan'];
$status_sekolah = $atribut['status_sekolah'];
$tw_1 = $atribut['tw_1'];
$tw_2 = $atribut['tw_2'];
$tw_3 = $atribut['tw_3'];
$tahun = $atribut['tahun'];
$class = $atribut['class'];
// queri utk mengambil keputusan dan id rule berdasarkan nilai atribut yg cocok (nilai
atribut rule == nilai atribut yg dipost-kan)
$sqlKeputusan = mysql_query("SELECT distinct id_rule, keputusan FROM
`rule_penentu_keputusan` WHERE pohon = 'C45' AND cocok = 'Ya' and id_rule not in (select
distinct id_rule from `rule_penentu_keputusan` where pohon = 'C45' AND cocok = 'Tidak')");
$rowKeputusan = mysql_fetch_array($sqlKeputusan);
if (!empty($rowKeputusan)) {
$keputusan = "$rowKeputusan[keputusan]";
$idRule = "$rowKeputusan[id_rule]";
38. Klasifikasi_sekolah_c45/admin/modul/function/miningC45.php
<?php
include "../../../config/koneksi.php";
populateDb();
mysql_query("DELETE FROM atribut WHERE atribut = 'kecamatan'");
miningC45(null, null);
updateKeputusanUnknown();
generateRuleFinalPrePruning();
insertRuleC45PrePruning();
populateAtribut();
insertAtribut("kecamatan");
echo "<br><font face='Courier New' size='2'>";
get_subfolder('0', 0);
echo "</font><br>";
function lihatPerhitungan() {
// $sqlInfGainMaxIterasi = mysql_query("SELECT distinct atribut, gain_ratio FROM
mining_c45 WHERE gain_ratio in (SELECT max(gain_ratio) FROM `mining_c45`) LIMIT 1");
$sqlInfGainMaxIterasi = mysql_query("SELECT distinct atribut, gain_ratio FROM mining_c45
WHERE gain_ratio in (SELECT max(gain_ratio) FROM `mining_c45`) AND atribut != 'Total' LIMIT
1");
$rowInfGainMaxIterasi = mysql_fetch_array($sqlInfGainMaxIterasi);
// hanya ambil atribut dimana jumlah kasus totalnya Tidak kosong
if (!empty($rowInfGainMaxIterasi['atribut'])) {
echo "<br><font face='Courier New' size='2'>";
get_subfolder('0', 0);
echo "</font><br>";
echo " <table bgcolor='#00CCFF' border='1' cellspacing='0' cellspading='0'>
<tr>
<th>No</th>
<th>Atribut</th>
<th>Nilai Atribut</th>
<th>Jumlah Kasus Total</th>
<th>Jumlah Kasus Rendah</th>
<th>Jumlah Kasus Sedang</th>
<th>Jumlah Kasus Tinggi</th>
<th>Entropy</th>
<th>Information Gain</th>
<th>Split Info</th>
<th>Gain Ratio</th>
</tr>";
$no = 1;
$sql=mysql_query("SELECT * FROM mining_c45 ORDER BY id");
$warna1 = '#FFFFFF';
$warna2 = '#66CCFF';
$warna = $warna1;
while ($data=mysql_fetch_array($sql)){
if($warna == $warna1){
$warna = $warna2;
} else {
$warna = $warna1;
}
echo " <tr bgcolor='$warna'>
<td>$no</td>
<td>$data[atribut]</td>
<td>$data[nilai_atribut]</td>
<td>$data[jml_kasus_total]</td>
<td>$data[jml_kasus_rendah]</td>
<td>$data[jml_kasus_sedang]</td>
<td>$data[jml_kasus_tinggi]</td>
<td>$data[entropy]</td>
<td>$data[inf_gain]</td>
<td>$data[split_info]</td>
<td>$data[gain_ratio]</td>
</tr>";
mysql_query("INSERT INTO iterasi_c45 VALUES ('', $no,
'$rowInfGainMaxIterasi[atribut]', '$data[atribut]',
'$data[nilai_atribut]', '$data[jml_kasus_total]', '$data[jml_kasus_rendah]',
'$data[jml_kasus_sedang]', '$data[jml_kasus_tinggi]', '$data[entropy]',
'$data[inf_gain]', '$data[split_info]', '$data[gain_ratio]')");
$no++;
}
echo"</table>";
echo "<br><p>Atribut <b>$rowInfGainMaxIterasi[atribut]</b> memiliki nilai gain
terbesar</p>";
}
}
//---------- KUMPULAN FUNGSI YANG AKAN DILAKUKAN DALAM PROSES MINING ----------
function miningC45($atribut, $nilai_atribut)
{
perhitunganC45($atribut, $nilai_atribut);
lihatPerhitungan();
insertAtributPohonKeputusan($atribut, $nilai_atribut);
getInfGainMax($atribut, $nilai_atribut);
}
function insertAtribut($atribut) {
$sqlAtribut = mysql_query("SELECT distinct `$atribut` FROM data_sekolah ORDER by
`$atribut`");
while ($rowAtribut = mysql_fetch_array($sqlAtribut)) {
mysql_query("insert into `atribut` values
('', '$atribut', '$rowAtribut[$atribut]')");
}
}
function hapusAtributParent($id) {
$sqlAtribut = mysql_query("SELECT id_parent, atribut, nilai_atribut FROM
pohon_keputusan_c45 WHERE id = '$id'");
$rowAtribut = mysql_fetch_array($sqlAtribut);
mysql_query("DELETE FROM atribut WHERE atribut = '$rowAtribut[atribut]'");
if ($rowAtribut['id_parent'] == 0) {
echo "";
} else {
hapusAtributParent($rowAtribut['id_parent']);
}
}
//#1# Hapus semua DB dan insert default atribut dan nilai atribut
function populateAtribut()
{
mysql_query("TRUNCATE atribut");
mysql_query("insert into `atribut` values
(1, 'Total', 'Total'),
(2, 'status_sekolah', 'Negeri'),
(3, 'status_sekolah', 'Swasta'),
(6, 'tw_1', 'KECIL'),
(7, 'tw_1', 'SEDANG'),
(8, 'tw_1', 'BESAR'),
(9, 'tw_2', 'TURUN'),
(10, 'tw_2', 'TETAP'),
(11, 'tw_2', 'NAIK'),
(12, 'tw_3', 'TURUN'),
(13, 'tw_3', 'TETAP'),
(14, 'tw_3', 'NAIK')
");
function populateDb()
{
//#1# Hapus semua DB dan insert default atribut dan nilai atribut
mysql_query("TRUNCATE rule_penentu_keputusan");
mysql_query("TRUNCATE pohon_keputusan_c45");
mysql_query("TRUNCATE rule_c45");
mysql_query("TRUNCATE mining_c45");
mysql_query("TRUNCATE iterasi_c45");
}
//#3# Jika atribut = total, maka hitung jumlah kasus total, jumlah kasus Ya dan jumlah
kasus Tidak
$sqlJumlahKasusTotal = mysql_query("SELECT COUNT(*) as jumlah_total FROM
data_sekolah WHERE class is not null AND status_data = 'Data Training' $kondisiAtribut");
$rowJumlahKasusTotal = mysql_fetch_array($sqlJumlahKasusTotal);
$getJumlahKasusTotal = $rowJumlahKasusTotal['jumlah_total'];
if ($getJumlahKasusRendahEntropy == 0) {
$perbandingan_rendahx = 0;
} else {
$perbandingan_rendahx = (-($perbandingan_rendah) *
log($perbandingan_rendah,2));
}
if ($getJumlahKasusSedangEntropy == 0) {
$perbandingan_sedangx = 0;
} else {
$perbandingan_sedangx = (-($perbandingan_sedang) *
log($perbandingan_sedang,2));
}
if ($getJumlahKasusTinggiEntropy == 0) {
$perbandingan_tinggix = 0;
} else {
$perbandingan_tinggix = (-($perbandingan_tinggi) *
log($perbandingan_tinggi,2));
}
}
}
hitungEntropy();
}
function hitungEntropy()
{
//#7# Lakukan perhitungan entropy
// perhitungan entropy
$sqlEntropy = mysql_query("SELECT id, jml_kasus_total, jml_kasus_rendah, jml_kasus_sedang,
jml_kasus_tinggi FROM mining_c45");
while($rowEntropy = mysql_fetch_array($sqlEntropy)) {
$getJumlahKasusTotalEntropy = $rowEntropy['jml_kasus_total'];
$getJumlahKasusRendahEntropy = $rowEntropy['jml_kasus_rendah'];
$getJumlahKasusSedangEntropy = $rowEntropy['jml_kasus_sedang'];
$getJumlahKasusTinggiEntropy = $rowEntropy['jml_kasus_tinggi'];
$idEntropy = $rowEntropy['id'];
if ($getJumlahKasusRendahEntropy == 0) {
$perbandingan_rendahx = 0;
} else {
$perbandingan_rendahx = (-($perbandingan_rendah) *
log($perbandingan_rendah,2));
}
if ($getJumlahKasusSedangEntropy == 0) {
$perbandingan_sedangx = 0;
} else {
$perbandingan_sedangx = (-($perbandingan_sedang) *
log($perbandingan_sedang,2));
}
if ($getJumlahKasusTinggiEntropy == 0) {
$perbandingan_tinggix = 0;
} else {
$perbandingan_tinggix = (-($perbandingan_tinggi) *
log($perbandingan_tinggi,2));
}
//#11# Looping perhitungan information gain, sehingga mendapatkan information gain tiap
atribut. Update information gain
// update inf_gain (fix)
mysql_query("UPDATE mining_c45 SET inf_gain = $getInfGainFix WHERE atribut =
'$getAtribut'");
}
}
//#14# Looping perhitungan split info, sehingga mendapatkan information gain tiap atribut.
Update information gain
// update split info (fix)
mysql_query("UPDATE mining_c45 SET split_info = $getSplitInfoFix WHERE atribut =
'$rowGetAtribut3[atribut]'");
}
}
//#19# Jika atribut yang diinput tidak kosong maka insert ke pohon keputusan dimana id_parent
diambil dari tabel pohon keputusan sebelumnya (where atribut = atribut yang diinput)
else if (!empty($atribut) AND !empty($nilai_atribut)) {
$sqlIdParent = mysql_query("SELECT id, atribut, nilai_atribut,
jml_kasus_rendah, jml_kasus_sedang, jml_kasus_tinggi FROM pohon_keputusan_c45 WHERE atribut =
'$atribut' AND nilai_atribut = '$nilai_atribut' order by id DESC LIMIT 1");
$rowIdParent = mysql_fetch_array($sqlIdParent);
}
}
}
loopingKondisiAtribut();
}
//#20# Lakukan looping kondisi atribut untuk diproses pada fungsi perhitunganC45()
function loopingKondisiAtribut()
{
// ambil semua id dan kondisi atribut
$sqlLoopingKondisi = mysql_query("SELECT id, kondisi_atribut FROM pohon_keputusan_c45");
while($rowLoopingKondisi = mysql_fetch_array($sqlLoopingKondisi)) {
// select semua data dimana id_parent = id awal
$sqlUpdateKondisi = mysql_query("SELECT * FROM pohon_keputusan_c45 WHERE id_parent =
$rowLoopingKondisi[id] AND looping_kondisi = 'Belum'");
while($rowUpdateKondisi = mysql_fetch_array($sqlUpdateKondisi)) {
// set kondisi: kondisi sebelumnya yg diselect berdasarkan id_parent ditambah 'AND
atribut = nilai atribut'
$kondisiAtribut = "$rowLoopingKondisi[kondisi_atribut] AND
$rowUpdateKondisi[atribut] = ~$rowUpdateKondisi[nilai_atribut]~";
// update kondisi atribut
mysql_query("UPDATE pohon_keputusan_c45 SET kondisi_atribut = '$kondisiAtribut',
looping_kondisi = 'Sudah' WHERE id = $rowUpdateKondisi[id]");
}
}
}
//#22# Ambil information gain max untuk diproses pada fungsi loopingMiningC45()
function getInfGainMax($atribut, $nilai_atribut)
{
// select inf gain max
$sqlInfGainMaxAtribut = mysql_query("SELECT distinct atribut FROM mining_c45 WHERE
gain_ratio in (SELECT max(gain_ratio) FROM `mining_c45`) AND atribut != 'Total' LIMIT 1");
// $sqlInfGainMaxAtribut = mysql_query("SELECT distinct atribut FROM mining_c45 WHERE
gain_ratio in (SELECT max(gain_ratio) FROM `mining_c45`) LIMIT 1");
while($rowInfGainMaxAtribut = mysql_fetch_array($sqlInfGainMaxAtribut)) {
// if () {
// }
$inf_gain_max_atribut = "$rowInfGainMaxAtribut[atribut]";
if (empty($atribut) AND empty($nilai_atribut)) {
// jika atribut kosong, proses atribut dgn inf gain max pada fungsi
loopingMiningC45()
loopingMiningC45($inf_gain_max_atribut);
} else if (!empty($atribut) AND !empty($nilai_atribut)) {
// proses atribut dgn inf gain max pada fungsi loopingMiningC45()
loopingMiningC45($inf_gain_max_atribut);
}
}
}
//#23# Looping proses mining dimana atribut dgn information gain max yang akan diproses pada
fungsi miningC45()
function loopingMiningC45($inf_gain_max_atribut)
{
$sqlBelumAdaKeputusanLagi = mysql_query("SELECT * FROM pohon_keputusan_c45 WHERE keputusan
= '?' and diproses = 'Belum' AND atribut = '$inf_gain_max_atribut'");
while($rowBelumAdaKeputusanLagi = mysql_fetch_array($sqlBelumAdaKeputusanLagi)) {
populateAtribut();
$atribut = "$rowBelumAdaKeputusanLagi[atribut]";
$nilai_atribut = "$rowBelumAdaKeputusanLagi[nilai_atribut]";
mysql_query("TRUNCATE mining_c45");
hapusAtributParent($rowBelumAdaKeputusanLagi['id']);
miningC45($atribut, $nilai_atribut);
mysql_query("UPDATE pohon_keputusan_c45 SET diproses = 'Sudah' WHERE id =
'$rowBelumAdaKeputusanLagi[id]'");
}
}
function generateRuleLooping()
{
// ambil data rule
$sqlGetDataRule = mysql_query("select * from rule_c45 order by id");
while($rowGetDataRule=mysql_fetch_array($sqlGetDataRule)){
if (!empty($rowGetDataRule)) {
// ambil idparent rule dimana id = idparent
$sqlGetIdParentUpdateRule = mysql_query("select id_parent from pohon_keputusan_c45
where id = '$rowGetDataRule[id_parent]'");
$rowGetIdParentUpdateRule=mysql_fetch_array($sqlGetIdParentUpdateRule);
function generateRuleFinalPrePruning()
{
// panggil fungsi generateRuleAwal()
generateRuleAwal("0", 0);
// ambil data rule
$sqlUpdateRule = mysql_query("select * from rule_c45 order by id" );
while($rowUpdateRule=mysql_fetch_array($sqlUpdateRule)){
if (!empty($rowUpdateRule)) {
// jika idparent rule == 0
if ($rowUpdateRule['id_parent'] !== 0){
// lakukan fungsi generateRuleLooping()
generateRuleLooping();
// delete rule dimana keputusan == ?
mysql_query("delete from rule_c45 where keputusan = '?'");
}
}
}
}
function insertRuleC45PrePruning()
{
// ambil data pada db rule_c45
$sqlRuleC45 = mysql_query("SELECT id, rule, keputusan FROM rule_c45");
while($rowRuleC45 = mysql_fetch_array($sqlRuleC45)) {
$RuleC45 = "$rowRuleC45[rule]";
// explode string ' AND ' utk mendapatkan atribut
$explodeRuleC45 = explode(" AND ", $RuleC45);
foreach ($explodeRuleC45 as $dataExplodeRuleC45) {
// explode string ' == ' utk mendapatkan nilai atribut
$dataFixRuleC45 = explode(" == ", $dataExplodeRuleC45);
// insert into db
mysql_query("INSERT INTO rule_penentu_keputusan VALUES('', $rowRuleC45[id],
'$dataFixRuleC45[0]', '$dataFixRuleC45[1]', '$rowRuleC45[keputusan]', '', 'C45')");
}
}
}
39. Klasifikasi_sekolah_c45/admin/modul/function/miningPrePruningC45.php
<?php
include "../../../config/koneksi.php";
populateDb();
mysql_query("DELETE FROM atribut WHERE atribut = 'kecamatan'");
miningC45(null, null);
updateKeputusanUnknown();
generateRuleFinalPrePruning();
insertRuleC45PrePruning();
populateAtribut();
insertAtribut("kecamatan");
echo "<br><font face='Courier New' size='2'>";
get_subfolder('0', 0);
echo "</font><br>";
function lihatPerhitungan() {
$sqlInfGainMaxIterasi = mysql_query("SELECT distinct atribut, gain_ratio FROM mining_c45
WHERE gain_ratio in (SELECT max(gain_ratio) FROM `mining_c45`) AND atribut != 'Total' LIMIT
1");
$rowInfGainMaxIterasi = mysql_fetch_array($sqlInfGainMaxIterasi);
// hanya ambil atribut dimana jumlah kasus totalnya Tidak kosong
if (!empty($rowInfGainMaxIterasi['atribut'])) {
echo "<br><font face='Courier New' size='2'>";
get_subfolder('0', 0);
echo "</font><br>";
echo " <table bgcolor='#00CCFF' border='1' cellspacing='0' cellspading='0'>
<tr>
<th>No</th>
<th>Atribut</th>
<th>Nilai Atribut</th>
<th>Jumlah Kasus Total</th>
<th>Jumlah Kasus Rendah</th>
<th>Jumlah Kasus Sedang</th>
<th>Jumlah Kasus Tinggi</th>
<th>Entropy</th>
<th>Information Gain</th>
<th>Split Info</th>
<th>Gain Ratio</th>
</tr>";
$no = 1;
$sql=mysql_query("SELECT * FROM mining_c45 ORDER BY id");
$warna1 = '#FFFFFF';
$warna2 = '#CCFFFF';
$warna = $warna1;
while ($data=mysql_fetch_array($sql)){
if($warna == $warna1){
$warna = $warna2;
} else {
$warna = $warna1;
}
echo " <tr bgcolor='$warna'>
<td>$no</td>
<td>$data[atribut]</td>
<td>$data[nilai_atribut]</td>
<td>$data[jml_kasus_total]</td>
<td>$data[jml_kasus_rendah]</td>
<td>$data[jml_kasus_sedang]</td>
<td>$data[jml_kasus_tinggi]</td>
<td>$data[entropy]</td>
<td>$data[inf_gain]</td>
<td>$data[split_info]</td>
<td>$data[gain_ratio]</td>
</tr>";
mysql_query("INSERT INTO iterasi_c45 VALUES ('', $no,
'$rowInfGainMaxIterasi[atribut]', '$data[atribut]',
'$data[nilai_atribut]', '$data[jml_kasus_total]', '$data[jml_kasus_rendah]',
'$data[jml_kasus_sedang]', '$data[jml_kasus_tinggi]', '$data[entropy]',
'$data[inf_gain]', '$data[split_info]', '$data[gain_ratio]')");
$no++;
}
echo"</table>";
echo "<br><p>Atribut <b>$rowInfGainMaxIterasi[atribut]</b> memiliki nilai gain
terbesar</p>";
}
}
//---------- KUMPULAN FUNGSI YANG AKAN DILAKUKAN DALAM PROSES MINING ----------
function miningC45($atribut, $nilai_atribut)
{
perhitunganC45($atribut, $nilai_atribut);
lihatPerhitungan();
insertAtributPohonKeputusan($atribut, $nilai_atribut);
getInfGainMax($atribut, $nilai_atribut);
}
function insertAtribut($atribut) {
$sqlAtribut = mysql_query("SELECT distinct `$atribut` FROM data_sekolah ORDER by
`$atribut`");
while ($rowAtribut = mysql_fetch_array($sqlAtribut)) {
mysql_query("insert into `atribut` values
('', '$atribut', '$rowAtribut[$atribut]')");
}
}
function hapusAtributParent($id) {
$sqlAtribut = mysql_query("SELECT id_parent, atribut, nilai_atribut FROM
pohon_keputusan_c45 WHERE id = '$id'");
$rowAtribut = mysql_fetch_array($sqlAtribut);
mysql_query("DELETE FROM atribut WHERE atribut = '$rowAtribut[atribut]'");
if ($rowAtribut['id_parent'] == 0) {
echo "";
} else {
hapusAtributParent($rowAtribut['id_parent']);
}
}
//#1# Hapus semua DB dan insert default atribut dan nilai atribut
function populateAtribut()
{
mysql_query("TRUNCATE atribut");
mysql_query("insert into `atribut` values
(1, 'Total', 'Total'),
(2, 'status_sekolah', 'Negeri'),
(3, 'status_sekolah', 'Swasta'),
(6, 'tw_1', 'KECIL'),
(7, 'tw_1', 'SEDANG'),
(8, 'tw_1', 'BESAR'),
(9, 'tw_2', 'TURUN'),
(10, 'tw_2', 'TETAP'),
(11, 'tw_2', 'NAIK'),
(12, 'tw_3', 'TURUN'),
(13, 'tw_3', 'TETAP'),
(14, 'tw_3', 'NAIK')
");
function populateDb()
{
//#1# Hapus semua DB dan insert default atribut dan nilai atribut
mysql_query("TRUNCATE rule_penentu_keputusan");
mysql_query("TRUNCATE pohon_keputusan_c45");
mysql_query("TRUNCATE rule_c45");
mysql_query("TRUNCATE mining_c45");
mysql_query("TRUNCATE iterasi_c45");
}
//#3# Jika atribut = total, maka hitung jumlah kasus total, jumlah kasus Ya dan jumlah
kasus Tidak
$sqlJumlahKasusTotal = mysql_query("SELECT COUNT(*) as jumlah_total FROM
data_sekolah WHERE class is not null AND status_data = 'Data Training' $kondisiAtribut");
$rowJumlahKasusTotal = mysql_fetch_array($sqlJumlahKasusTotal);
$getJumlahKasusTotal = $rowJumlahKasusTotal['jumlah_total'];
if ($getJumlahKasusRendahEntropy == 0) {
$perbandingan_rendahx = 0;
} else {
$perbandingan_rendahx = (-($perbandingan_rendah) *
log($perbandingan_rendah,2));
}
if ($getJumlahKasusSedangEntropy == 0) {
$perbandingan_sedangx = 0;
} else {
$perbandingan_sedangx = (-($perbandingan_sedang) *
log($perbandingan_sedang,2));
}
if ($getJumlahKasusTinggiEntropy == 0) {
$perbandingan_tinggix = 0;
} else {
$perbandingan_tinggix = (-($perbandingan_tinggi) *
log($perbandingan_tinggi,2));
}
}
}
hitungEntropy();
}
function hitungEntropy()
{
//#7# Lakukan perhitungan entropy
// perhitungan entropy
$sqlEntropy = mysql_query("SELECT id, jml_kasus_total, jml_kasus_rendah, jml_kasus_sedang,
jml_kasus_tinggi FROM mining_c45");
while($rowEntropy = mysql_fetch_array($sqlEntropy)) {
$getJumlahKasusTotalEntropy = $rowEntropy['jml_kasus_total'];
$getJumlahKasusRendahEntropy = $rowEntropy['jml_kasus_rendah'];
$getJumlahKasusSedangEntropy = $rowEntropy['jml_kasus_sedang'];
$getJumlahKasusTinggiEntropy = $rowEntropy['jml_kasus_tinggi'];
$idEntropy = $rowEntropy['id'];
if ($getJumlahKasusRendahEntropy == 0) {
$perbandingan_rendahx = 0;
} else {
$perbandingan_rendahx = (-($perbandingan_rendah) *
log($perbandingan_rendah,2));
}
if ($getJumlahKasusSedangEntropy == 0) {
$perbandingan_sedangx = 0;
} else {
$perbandingan_sedangx = (-($perbandingan_sedang) *
log($perbandingan_sedang,2));
}
if ($getJumlahKasusTinggiEntropy == 0) {
$perbandingan_tinggix = 0;
} else {
$perbandingan_tinggix = (-($perbandingan_tinggi) *
log($perbandingan_tinggi,2));
}
//#11# Looping perhitungan information gain, sehingga mendapatkan information gain tiap
atribut. Update information gain
// update inf_gain (fix)
mysql_query("UPDATE mining_c45 SET inf_gain = $getInfGainFix WHERE atribut =
'$getAtribut'");
}
}
//#14# Looping perhitungan split info, sehingga mendapatkan information gain tiap atribut.
Update information gain
// update split info (fix)
mysql_query("UPDATE mining_c45 SET split_info = $getSplitInfoFix WHERE atribut =
'$rowGetAtribut3[atribut]'");
}
}
//#19# Jika atribut yang diinput tidak kosong maka insert ke pohon keputusan dimana id_parent
diambil dari tabel pohon keputusan sebelumnya (where atribut = atribut yang diinput)
else if (!empty($atribut) AND !empty($nilai_atribut)) {
$sqlIdParent = mysql_query("SELECT id, atribut, nilai_atribut,
jml_kasus_rendah, jml_kasus_sedang, jml_kasus_tinggi FROM pohon_keputusan_c45 WHERE atribut =
'$atribut' AND nilai_atribut = '$nilai_atribut' order by id DESC LIMIT 1");
$rowIdParent = mysql_fetch_array($sqlIdParent);
//#PRE PRUNING#
echo "<br>#PRE PRUNING#<br>";
// hitung Pessimistic error rate parent dan child
echo "perhitungan pre pruning untuk parent ($rowIdParent[atribut] =
$rowIdParent[nilai_atribut])<br>";
echo "perhitungan pre pruning untuk child ($rowInfGainMax[atribut] =
$rowInfGainMax[nilai_atribut])<br>";
$perhitunganParentPrePruning =
loopingPerhitunganPrePruning($rowIdParent['jml_kasus_tinggi'],
$rowIdParent['jml_kasus_sedang'], $rowIdParent['jml_kasus_rendah']);
$perhitunganChildPrePruning =
loopingPerhitunganPrePruning($rowInfGainMax['jml_kasus_tinggi'],
$rowInfGainMax['jml_kasus_sedang'], $rowInfGainMax['jml_kasus_rendah']);
// jika error rate pada child lebih besar dari error rate parent
if ($perhitunganPessimisticChildIncrement >= $perhitunganParentPrePruning) {
echo "nilai pessimistic error rate child
($perhitunganPessimisticChildIncrement) lebih besar dari pessimistic error rate parent
($perhitunganParentPrePruning),
sehingga child dihapus<br>";
// hapus child (child Tidak diinginkan)
mysql_query("DELETE FROM pohon_keputusan_c45 WHERE id_parent =
$rowIdParent[id]");
}
}
}
loopingKondisiAtribut();
}
//#20# Lakukan looping kondisi atribut untuk diproses pada fungsi perhitunganC45()
function loopingKondisiAtribut()
{
// ambil semua id dan kondisi atribut
$sqlLoopingKondisi = mysql_query("SELECT id, kondisi_atribut FROM pohon_keputusan_c45");
while($rowLoopingKondisi = mysql_fetch_array($sqlLoopingKondisi)) {
// select semua data dimana id_parent = id awal
$sqlUpdateKondisi = mysql_query("SELECT * FROM pohon_keputusan_c45 WHERE id_parent =
$rowLoopingKondisi[id] AND looping_kondisi = 'Belum'");
while($rowUpdateKondisi = mysql_fetch_array($sqlUpdateKondisi)) {
// set kondisi: kondisi sebelumnya yg diselect berdasarkan id_parent ditambah 'AND
atribut = nilai atribut'
$kondisiAtribut = "$rowLoopingKondisi[kondisi_atribut] AND
$rowUpdateKondisi[atribut] = ~$rowUpdateKondisi[nilai_atribut]~";
// update kondisi atribut
mysql_query("UPDATE pohon_keputusan_c45 SET kondisi_atribut = '$kondisiAtribut',
looping_kondisi = 'Sudah' WHERE id = $rowUpdateKondisi[id]");
}
}
}
//#22# Ambil information gain max untuk diproses pada fungsi loopingMiningC45()
function getInfGainMax($atribut, $nilai_atribut)
{
// select inf gain max
$sqlInfGainMaxAtribut = mysql_query("SELECT distinct atribut FROM mining_c45 WHERE
gain_ratio in (SELECT max(gain_ratio) FROM `mining_c45`) AND atribut != 'Total' LIMIT 1");
while($rowInfGainMaxAtribut = mysql_fetch_array($sqlInfGainMaxAtribut)) {
$inf_gain_max_atribut = "$rowInfGainMaxAtribut[atribut]";
if (empty($atribut) AND empty($nilai_atribut)) {
// jika atribut kosong, proses atribut dgn inf gain max pada fungsi
loopingMiningC45()
loopingMiningC45($inf_gain_max_atribut);
} else if (!empty($atribut) AND !empty($nilai_atribut)) {
// proses atribut dgn inf gain max pada fungsi loopingMiningC45()
loopingMiningC45($inf_gain_max_atribut);
}
}
}
//#23# Looping proses mining dimana atribut dgn information gain max yang akan diproses pada
fungsi miningC45()
function loopingMiningC45($inf_gain_max_atribut)
{
$sqlBelumAdaKeputusanLagi = mysql_query("SELECT * FROM pohon_keputusan_c45 WHERE keputusan
= '?' and diproses = 'Belum' AND atribut = '$inf_gain_max_atribut'");
while($rowBelumAdaKeputusanLagi = mysql_fetch_array($sqlBelumAdaKeputusanLagi)) {
populateAtribut();
$atribut = "$rowBelumAdaKeputusanLagi[atribut]";
$nilai_atribut = "$rowBelumAdaKeputusanLagi[nilai_atribut]";
mysql_query("TRUNCATE mining_c45");
hapusAtributParent($rowBelumAdaKeputusanLagi['id']);
miningC45($atribut, $nilai_atribut);
mysql_query("UPDATE pohon_keputusan_c45 SET diproses = 'Sudah' WHERE id =
'$rowBelumAdaKeputusanLagi[id]'");
}
}
function generateRuleLooping()
{
// ambil data rule
$sqlGetDataRule = mysql_query("select * from rule_c45 order by id");
while($rowGetDataRule=mysql_fetch_array($sqlGetDataRule)){
if (!empty($rowGetDataRule)) {
// ambil idparent rule dimana id = idparent
$sqlGetIdParentUpdateRule = mysql_query("select id_parent from pohon_keputusan_c45
where id = '$rowGetDataRule[id_parent]'");
$rowGetIdParentUpdateRule=mysql_fetch_array($sqlGetIdParentUpdateRule);
function generateRuleFinalPrePruning()
{
// panggil fungsi generateRuleAwal()
generateRuleAwal("0", 0);
// ambil data rule
$sqlUpdateRule = mysql_query("select * from rule_c45 order by id" );
while($rowUpdateRule=mysql_fetch_array($sqlUpdateRule)){
if (!empty($rowUpdateRule)) {
// jika idparent rule == 0
if ($rowUpdateRule['id_parent'] !== 0){
// lakukan fungsi generateRuleLooping()
generateRuleLooping();
// delete rule dimana keputusan == ?
mysql_query("delete from rule_c45 where keputusan = '?'");
}
}
}
}
function insertRuleC45PrePruning()
{
// ambil data pada db rule_c45
$sqlRuleC45 = mysql_query("SELECT id, rule, keputusan FROM rule_c45");
while($rowRuleC45 = mysql_fetch_array($sqlRuleC45)) {
$RuleC45 = "$rowRuleC45[rule]";
// explode string ' AND ' utk mendapatkan atribut
$explodeRuleC45 = explode(" AND ", $RuleC45);
foreach ($explodeRuleC45 as $dataExplodeRuleC45) {
// explode string ' == ' utk mendapatkan nilai atribut
$dataFixRuleC45 = explode(" == ", $dataExplodeRuleC45);
// insert into db
mysql_query("INSERT INTO rule_penentu_keputusan VALUES('', $rowRuleC45[id],
'$dataFixRuleC45[0]', '$dataFixRuleC45[1]', '$rowRuleC45[keputusan]', '', 'C45')");
}
}
}
40. Klasifikasi_sekolah_c45/admin/modul/function/penentuKeputusan.php
<?php
error_reporting(0);
session_start();
include "../../../config/koneksi.php";
mysql_query("TRUNCATE data_penentu_keputusan");
// queri utk mengambil keputusan dan id rule berdasarkan nilai atribut yg cocok (nilai atribut
rule == nilai atribut yg dipost-kan)
$sqlKeputusan = mysql_query("SELECT distinct id_rule, keputusan FROM `rule_penentu_keputusan`
WHERE pohon = 'C45' AND cocok = 'Ya' and id_rule not in (select distinct id_rule from
`rule_penentu_keputusan` where pohon = 'C45' AND cocok = 'Tidak')");
$rowKeputusan = mysql_fetch_array($sqlKeputusan);
if (!empty($rowKeputusan)) {
$keputusan = "$rowKeputusan[keputusan]";
$idRule = "$rowKeputusan[id_rule]";
function penentuKeputusan($atribut) {
mysql_query("TRUNCATE data_penentu_keputusan");
// queri utk mengambil keputusan dan id rule berdasarkan nilai atribut yg cocok (nilai
atribut rule == nilai atribut yg dipost-kan)
$sqlKeputusan = mysql_query("SELECT distinct id_rule, keputusan FROM
`rule_penentu_keputusan` WHERE pohon = 'C45' AND cocok = 'Ya' and id_rule not in (select
distinct id_rule from `rule_penentu_keputusan` where pohon = 'C45' AND cocok = 'Tidak')");
$rowKeputusan = mysql_fetch_array($sqlKeputusan);
if (!empty($rowKeputusan)) {
$keputusan = "$rowKeputusan[keputusan]";
$idRule = "$rowKeputusan[id_rule]";