SKRIPSI PERANCANGAN DAN PEMBUATAN APLIKASI DATAMINING BERBASIS WEB MENGGUNAKAN ALGORITMA C4.5 UNTUK MEMPREDIKSI KELULUSAN MAHASISWA S-1 PADA UNIVERSITAS DARMA PERSADA Diajukan Untuk Melengkapi Syarat Mencapai Gelar Sarjana Strata Satu (S1) Disusun Oleh : JUNARTO 2008230026 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS DARMA PERSADA JAKARTA 2015
137
Embed
PERANCANGAN DAN PEMBUATAN APLIKASI DATAMINING BERBASIS WEB MENGGUNAKAN ALGORITMA C4.5 UNTUK MEMPREDIKSI KELULUSAN MAHASISWA S-1 PADA UNIVERSITAS DARMA PERSADA
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
SKRIPSI
PERANCANGAN DAN PEMBUATAN APLIKASI
DATAMINING BERBASIS WEB MENGGUNAKAN
ALGORITMA C4.5 UNTUK MEMPREDIKSI KELULUSAN
MAHASISWA S-1 PADA UNIVERSITAS DARMA PERSADA
Diajukan Untuk Melengkapi Syarat Mencapai Gelar Sarjana Strata Satu (S1)
Disusun Oleh :
JUNARTO
2008230026
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS DARMA PERSADA
JAKARTA
2015
ii
LEMBAR PENGESAHAN
PERANCANGAN DAN PEMBUATAN APLIKASI
DATAMINING BERBASIS WEB MENGGUNAKAN
ALGORITMA C4.5 UNTUK MEMPREDIKSI KELULUSAN
MAHASISWA S-1 PADA UNIVERSITAS DARMA PERSADA
Disusun oleh :
Nama : Junarto
NIM : 2008230026
Timor Setiyaningsih, S.T., M.T.I.
Dosen Pembimbing
Adam Arif Budiman, S.T., M. Kom.
Kepala Jurusan Teknik Informatika
iii
LEMBAR PENGUJI TUGAS AKHIR
Laporan Tugas Akhir dengan judul :
PERANCANGAN DAN PEMBUATAN APLIKASI
DATAMINING BERBASIS WEB MENGGUNAKAN
ALGORITMA C4.5 UNTUK MEMPREDIKSI KELULUSAN
MAHASISWA S-1 PADA UNIVERSITAS DARMA PERSADA
telah disidangkan dan dinyatakan LULUS pada tanggal 14 Agustus 2015
Penguji I
Herianto, S.Pd., M.T.
Penguji 2
Suzuki Syofian, M.Kom.
Penguji 3
Aji Setiawan, M.M.S.I.
iv
LEMBAR PERNYATAAN
Saya yang bertanda tangan dibawah ini :
Nama : Junarto
NIM : 2008230026
Fakultas : Teknik
Jurusan : Teknik Informatika
Menyatakan bahwa Laporan Tugas Akhir ini saya susun sendiri berdasarkan hasil
peninjauan, observasi serta memadukannya dengan buku-buku, literatur atau
bahan-bahan referensi lain yang terkait dan relevan di dalam penyelesaian
Laporan Tugas Akhir ini.
Demikian pernyataan ini penulis buat dengan sesungguhnya
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>Prediksi Kelulusan 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" /> <link href="dropdown.css" rel="stylesheet" type="text/css" /> </head> <body> <div style="background:#fff; width:1200px; position:relative; margin-right: auto; margin-left: auto;"> <div id="header"> <br> <div class='menupic'> <div class='menuhorisontal'> <marquee color='white' width="99%" direction="left" nilai_ips4="scroll" scrolldelay="120" onmouseover=this.stop() onmouseout=this.start()> Selamat Datang di Sistem Pendukung Keputusan - Prediksi Kelulusan Menggunakan Pohon Keputusan C4.5 </marquee> </div> </div> <div id="content"> <?php include "content.php"; ?> </div> <div id="menu"> <br><ul><?php if($_SESSION['leveluser']=="kajur"){ echo "<li><a href=?module=home>.: Home</a></li>
<li><a href=?module=data_mahasiswa>.: Data Mahasiswa</a></li> <li style=\"background-color:#78e3f0;\"><a href=?module=c45&act=mining onClick=\"return confirm('Anda Yakin? data training pada data Mahasiswa akan diproses menggunakan algoritma C4.5. Proses akan membutuhkan waktu yang cukup lama tergantung spesifikasi perangkat keras pemroses.')\"><i> C.45 » Proses Mining</i></a></li> <li><a href=?module=c45>.: C.45 » Hasil Mining</a></li> <li><a href=?module=c45&act=pohon_keputusan>.: C.45 » Aturan</a></li> <li><a href=?module=penentu_keputusan>.: Prediksi Kelulusan</a></li> <li><a href=?module=kinerja>.: Perbandingan</a></li> <li style=\"background-color:#78e3f0;\"><a href=logout.php onClick=\"return confirm('Apakah Anda Yakin? klik OK jika ingin menyudahi aplikasi')\">.: Logout</a></li>"; } elseif($_SESSION['leveluser']=="akademik"){ echo "<li><a href=?module=home>.: Home</a></li> <li><a href=?module=c45>.: C.45 » Hasil Mining</a></li> <li><a href=?module=c45&act=pohon_keputusan>.: C.45 » Aturan</a></li> <li><a href=?module=penentu_keputusan>.: Prediksi Kelulusan</a></li> <li><a href=?module=kinerja>.: Perbandingan</a></li> <li style=\"background-color:#78e3f0;\"><a href=logout.php onClick=\"return confirm('Apakah Anda Yakin? klik OK jika ingin menyudahi aplikasi')\">.: Logout</a></li>"; } elseif($_SESSION['leveluser']=="mahasiswa"){ echo "<li><a href=?module=home>.: Home</a></li> <li><a href=?module=penentu_keputusan>.: Prediksi Kelulusan</a></li> <li style=\"background-color:#78e3f0;\"><a href=logout.php onClick=\"return confirm('Apakah Anda Yakin? klik OK jika ingin menyudahi aplikasi')\">.: Logout</a></li>"; } else{ echo " <li><a href=?module=home>.: Home</a></li> <li><a href=?module=user>.: Data User</a></li> <li><a href=?module=data_mahasiswa>.: Data Kasus</a></li> <li style=\"background-color:#78e3f0;\"><a href=?module=c45&act=mining onClick=\"return confirm('Anda Yakin? data training pada data Mahasiswa akan diproses menggunakan algoritma C4.5. Proses akan membutuhkan waktu yang cukup lama tergantung spesifikasi perangkat keras pemroses.')\"><i> C.45 » Proses Mining</i></a></li> <li><a href=?module=c45>.: C.45 » Hasil Mining</a></li> <li><a href=?module=c45&act=pohon_keputusan>.: C.45 » Aturan</a></li> <li style=\"background-color:#78e3f0;\"><a href=?module=kinerja&act=lakukan_kinerja onClick=\"return confirm('Anda Yakin? hasil proses mining akan diproses untuk komparasi dengan data testing. Proses akan membutuhkan waktu yang cukup lama tergantung spesifikasi perangkat keras pemroses.')\"><i> Kinerja » Proses Kinerja</i></a></li> <li><a href=?module=kinerja>.: Kinerja » Perbandingan</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=about>.: About</a></li> -->
// Modul Data Kanker elseif ($_GET[module]=='data_mahasiswa'){ include "modul/data_mahasiswa.php"; } // Modul C4.5 elseif ($_GET[module]=='c45'){ include "modul/c45.php"; } // Modul about elseif ($_GET[module]=='about'){ include "modul/about.php"; } // Modul Penentu Keputusan elseif ($_GET[module]=='penentu_keputusan'){ include "modul/penentu_keputusan.php"; } // Modul Kinerja elseif ($_GET[module]=='kinerja'){ include "modul/kinerja.php"; } // Modul User elseif ($_GET[module]=='user'){ include "modul/mod_users/users.php"; } else{ echo "<p><b>MENU BELUM ADA</b></p>"; } ?> aksi.php <?php error_reporting(0); function deleteAllDb() { mysql_query("TRUNCATE atribut");
mysql_query("TRUNCATE data_kasus"); 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]; // hapus data Mahasiswa per item if ($module=='data_mahasiswa' AND $act=='hapus_data_mahasiswa'){ mysql_query("DELETE FROM data_kasus WHERE id_data_mahasiswa='$_GET[id]'"); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=data_mahasiswa';</script>\n"; } // hapus semua data Mahasiswa elseif ($module=='data_mahasiswa' AND $act=='hapus_semua_data_mahasiswa'){ mysql_query("TRUNCATE `data_kasus`"); deleteAllDb(); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=data_mahasiswa';</script>\n"; } // Input Data Mahasiswa elseif ($module=='data_mahasiswa' AND $act=='input'){ if ($_POST['nilai_ips1'] >=0 AND $_POST['nilai_ips1'] <= 2.00) { $ips1_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips1'] >=2.00 AND $_POST['nilai_ips1'] <= 2.76) { $ips1_kategori = "Memuaskan";
} else if ($_POST['nilai_ips1'] >=2.76 AND $_POST['nilai_ips1'] <= 3.50) { $ips1_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips1'] >=3.51 AND $_POST['nilai_ips1'] <= 4.00) { $ips1_kategori = "Cumlaude"; } if ($_POST['nilai_ips2'] >=0 AND $_POST['nilai_ips2'] <= 2.00) { $ips2_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips2'] >=2.00 AND $_POST['nilai_ips2'] <= 2.76) { $ips2_kategori = "Memuaskan"; } else if ($_POST['nilai_ips2'] >=2.76 AND $_POST['nilai_ips2'] <= 3.50) { $ips2_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips2'] >=3.51 AND $_POST['nilai_ips2'] <= 4.00) { $ips2_kategori = "Cumlaude"; } if ($_POST['nilai_ips3'] >=0 AND $_POST['nilai_ips3'] <= 2.00) { $ips3_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips3'] >=2.00 AND $_POST['nilai_ips3'] <= 2.76) { $ips3_kategori = "Memuaskan"; } else if ($_POST['nilai_ips3'] >=2.76 AND $_POST['nilai_ips3'] <= 3.50) { $ips3_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips3'] >=3.51 AND $_POST['nilai_ips3'] <= 4.00) { $ips3_kategori = "Cumlaude"; } if ($_POST['nilai_ips4'] >=0 AND $_POST['nilai_ips4'] <= 2.00) { $ips4_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips4'] >=2.00 AND $_POST['nilai_ips4'] <= 2.76) { $ips4_kategori = "Memuaskan"; } else if ($_POST['nilai_ips4'] >=2.76 AND $_POST['nilai_ips4'] <= 3.50) { $ips4_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips4'] >=3.51 AND $_POST['nilai_ips4'] <= 4.00) { $ips4_kategori = "Cumlaude"; } if ($_POST['nilai_ips5'] >=0 AND $_POST['nilai_ips5'] <= 2.00) { $ips5_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips5'] >=2.00 AND $_POST['nilai_ips5'] <= 2.76) { $ips5_kategori = "Memuaskan";
} else if ($_POST['nilai_ips5'] >=2.76 AND $_POST['nilai_ips5'] <= 3.50) { $ips5_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips5'] >=3.51 AND $_POST['nilai_ips5'] <= 4.00) { $ips5_kategori = "Cumlaude"; } if ($_POST['nilai_ips6'] >=0 AND $_POST['nilai_ips6'] <= 2.00) { $ips6_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips6'] >=2.00 AND $_POST['nilai_ips6'] <= 2.76) { $ips6_kategori = "Memuaskan"; } else if ($_POST['nilai_ips6'] >=2.76 AND $_POST['nilai_ips6'] <= 3.50) { $ips6_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips6'] >=3.51 AND $_POST['nilai_ips6'] <= 4.00) { $ips6_kategori = "Cumlaude"; } if ($_POST['nilai_ips7'] >=0 AND $_POST['nilai_ips7'] <= 2.00) { $ips7_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips7'] >=2.00 AND $_POST['nilai_ips7'] <= 2.76) { $ips7_kategori = "Memuaskan"; } else if ($_POST['nilai_ips7'] >=2.76 AND $_POST['nilai_ips7'] <= 3.50) { $ips7_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips7'] >=3.51 AND $_POST['nilai_ips7'] <= 4.00) { $ips7_kategori = "Cumlaude"; } if ($_POST['nilai_ips8'] >=0 AND $_POST['nilai_ips8'] <= 2.00) { $ips8_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips8'] >=2.00 AND $_POST['nilai_ips8'] <= 2.76) { $ips8_kategori = "Memuaskan"; } else if ($_POST['nilai_ips8'] >=2.76 AND $_POST['nilai_ips8'] <= 3.50) { $ips8_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips8'] >=3.51 AND $_POST['nilai_ips8'] <= 4.00) { $ips8_kategori = "Cumlaude"; } mysql_query("INSERT INTO data_kasus VALUES('', '$_POST[nim]', '$_POST[nama]', '$_POST[jenis_kelamin]',
'$_POST[jurusan]', '$_POST[nilai_ips1]', '$nilai_ips1_kategori', '$_POST[nilai_ips2]', '$nilai_ips2_kategori', '$_POST[nilai_ips3]', '$nilai_ips3_kategori', '$_POST[nilai_ips4]', '$nilai_ips4_kategori', '$_POST[nilai_ips5]', '$nilai_ips5_kategori', '$_POST[nilai_ips6]', '$nilai_ips6_kategori', '$_POST[nilai_ips7]', '$nilai_ips7_kategori', '$_POST[nilai_ips8]', '$nilai_ips8_kategori', '$_POST[class]', '$_POST[status_data]' )"); echo "<script>alert('Data berhasil diinput!'); document.location.href='media.php?module=data_mahasiswa';</script>\n"; } // Update Data Mahasiswa elseif ($module=='data_mahasiswa' AND $act=='update_data_mahasiswa'){ if ($_POST['nilai_ips1'] >=0 AND $_POST['nilai_ips1'] <= 2.00) { $ips1_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips1'] >=2.00 AND $_POST['nilai_ips1'] <= 2.76) { $ips1_kategori = "Memuaskan"; } else if ($_POST['nilai_ips1'] >=2.76 AND $_POST['nilai_ips1'] <= 3.50) { $ips1_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips1'] >=3.51 AND $_POST['nilai_ips1'] <= 4.00) { $ips1_kategori = "Cumlaude"; } if ($_POST['nilai_ips2'] >=0 AND $_POST['nilai_ips2'] <= 2.00) { $ips2_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips2'] >=2.00 AND $_POST['nilai_ips2'] <= 2.76) { $ips2_kategori = "Memuaskan"; } else if ($_POST['nilai_ips2'] >=2.76 AND $_POST['nilai_ips2'] <= 3.50) {
$ips2_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips2'] >=3.51 AND $_POST['nilai_ips2'] <= 4.00) { $ips2_kategori = "Cumlaude"; } if ($_POST['nilai_ips3'] >=0 AND $_POST['nilai_ips3'] <= 2.00) { $ips3_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips3'] >=2.00 AND $_POST['nilai_ips3'] <= 2.76) { $ips3_kategori = "Memuaskan"; } else if ($_POST['nilai_ips3'] >=2.76 AND $_POST['nilai_ips3'] <= 3.50) { $ips3_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips3'] >=3.51 AND $_POST['nilai_ips3'] <= 4.00) { $ips3_kategori = "Cumlaude"; } if ($_POST['nilai_ips4'] >=0 AND $_POST['nilai_ips4'] <= 2.00) { $ips4_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips4'] >=2.00 AND $_POST['nilai_ips4'] <= 2.76) { $ips4_kategori = "Memuaskan"; } else if ($_POST['nilai_ips4'] >=2.76 AND $_POST['nilai_ips4'] <= 3.50) { $ips4_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips4'] >=3.51 AND $_POST['nilai_ips4'] <= 4.00) { $ips4_kategori = "Cumlaude"; } if ($_POST['nilai_ips5'] >=0 AND $_POST['nilai_ips5'] <= 2.00) { $ips5_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips5'] >=2.00 AND $_POST['nilai_ips5'] <= 2.76) { $ips5_kategori = "Memuaskan"; } else if ($_POST['nilai_ips5'] >=2.76 AND $_POST['nilai_ips5'] <= 3.50) { $ips5_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips5'] >=3.51 AND $_POST['nilai_ips5'] <= 4.00) { $ips5_kategori = "Cumlaude"; } if ($_POST['nilai_ips6'] >=0 AND $_POST['nilai_ips6'] <= 2.00) { $ips6_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips6'] >=2.00 AND $_POST['nilai_ips6'] <= 2.76) { $ips6_kategori = "Memuaskan"; } else if ($_POST['nilai_ips6'] >=2.76 AND $_POST['nilai_ips6'] <= 3.50) {
$ips6_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips6'] >=3.51 AND $_POST['nilai_ips6'] <= 4.00) { $ips6_kategori = "Cumlaude"; } if ($_POST['nilai_ips7'] >=0 AND $_POST['nilai_ips7'] <= 2.00) { $ips7_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips7'] >=2.00 AND $_POST['nilai_ips7'] <= 2.76) { $ips7_kategori = "Memuaskan"; } else if ($_POST['nilai_ips7'] >=2.76 AND $_POST['nilai_ips7'] <= 3.50) { $ips7_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips7'] >=3.51 AND $_POST['nilai_ips7'] <= 4.00) { $ips7_kategori = "Cumlaude"; } if ($_POST['nilai_ips8'] >=0 AND $_POST['nilai_ips8'] <= 2.00) { $ips8_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips8'] >=2.00 AND $_POST['nilai_ips8'] <= 2.76) { $ips8_kategori = "Memuaskan"; } else if ($_POST['nilai_ips8'] >=2.76 AND $_POST['nilai_ips8'] <= 3.50) { $ips8_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips8'] >=3.51 AND $_POST['nilai_ips8'] <= 4.00) { $ips8_kategori = "Cumlaude"; } mysql_query("UPDATE data_kasus SET nim = '$_POST[nim]', nama = '$_POST[nama]', jenis_kelamin = '$_POST[jenis_kelamin]', jurusan = '$_POST[jurusan]', nilai_ips1 = '$_POST[nilai_ips1]', nilai_ips1_kategori = '$ips1_kategori', nilai_ips2 = '$_POST[nilai_ips2]', nilai_ips2_kategori = '$ips2_kategori', nilai_ips3 = '$_POST[nilai_ips3]', nilai_ips3_kategori = '$ips3_kategori', nilai_ips4 = '$_POST[nilai_ips4]', nilai_ips4_kategori = '$ips4_kategori', nilai_ips5 = '$_POST[nilai_ips5]', nilai_ips5_kategori = '$ips5_kategori',
nilai_ips6 = '$_POST[nilai_ips6]', nilai_ips6_kategori = '$ips6_kategori', nilai_ips7 = '$_POST[nilai_ips7]', nilai_ips7_kategori = '$ips7_kategori', nilai_ips8 = '$_POST[nilai_ips8]', nilai_ips8_kategori = '$ips8_kategori', class = '$_POST[class]', status_data = '$_POST[status_data]' WHERE id_data_mahasiswa = '$_POST[id]'"); echo "<script>alert('Data berhasil diupdate!'); document.location.href='media.php?module=data_mahasiswa';</script>\n"; } // Hapus Semua Data Perhitungan C45 elseif ($module=='c45' AND $act=='hapus_data_iterasi'){ mysql_query("TRUNCATE `iterasi_c45`"); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=c45';</script>\n"; } // Hapus Semua Data Pohon Keputusan C45 elseif ($module=='c45' AND $act=='hapus_pohon_keputusan'){ mysql_query("TRUNCATE `pohon_keputusan_c45`"); mysql_query("TRUNCATE `rule_c45`"); mysql_query("DELETE FROM rule_penentu_keputusan where pohon = 'C45'"); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=c45&act=pohon_keputusan';</script>\n"; } // Hapus Semua Data Penentu Keputusan elseif ($module=='penentu_keputusan' AND $act=='delete_data_penentu_keputusan'){ mysql_query("TRUNCATE `data_keputusan`"); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=penentu_keputusan';</script>\n"; } // Hapus Semua Data Penentu Keputusan per Item if ($module=='penentu_keputusan' AND $act=='hapus'){ mysql_query("DELETE FROM data_keputusan WHERE id='$_GET[id]'"); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=penentu_keputusan';</script>\n"; }
// Hapus Semua Data Kinerja elseif ($module=='kinerja' AND $act=='hapus_data_kinerja'){ mysql_query("TRUNCATE `data_keputusan_kinerja`"); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=kinerja';</script>\n"; } // Hapus Seluruh Database elseif ($module=='lain-lain' AND $act=='delete_all_db'){ deleteAllDb(); echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=lain-lain';</script>\n"; } modul/data_mahasiswa.php <?php switch($_GET[act]){ default: echo "<h2>Data Mahasiswa</h2>"; include "menu_data_mahasiswa.php"; //include "form_data_mahasiswa.php"; echo "<p>Opsi: <a href=?module=data_mahasiswa&act=sinkronisasi_data_mahasiswa>Sinkronisasi Data</a> | <a href=./aksi.php?module=data_mahasiswa&act=hapus_semua_data_mahasiswa>Hapus Semua Data</a></p>"; //include "upload_csv.php"; $per_page = 30; // number of results to show per page if ($_SESSION[leveluser]=='admin' OR $_SESSION[leveluser]=='kajur'){ $result=mysql_query("SELECT * FROM data_kasus"); } $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; //-------------if page is setcheck------------------// if (isset($_GET['page'])) { $show_page = $_GET['page']; //it will telles the current page if ($show_page > 0 && $show_page <= $total_pages) { $start = ($show_page - 1) * $per_page; $end = $start + $per_page;
} else { // error - show first set of results $start = 0; $end = $per_page; } } else { // if page isn't set, show first set of results $start = 0; $end = $per_page; } // display pagination $page = intval($_GET['page']); $tpages=$total_pages; if ($page <= 0) $page = 1; $reload = $_SERVER['PHP_SELF'] . "?module=data_mahasiswa&act=data_mahasiswa&tpages=" . $tpages; if ($total_pages > 1) { echo paginate($reload, $show_page, $total_pages); } echo "<table bgcolor='#00CCFF' border='1' cellspacing='0' cellspading='0'> <tr> <th>No</th> <th>nim</th> <th>nama</th> <th>jenis kelamin</th> <th>jurusan</th> <th>nilai ips1</th> <th>nilai ips2</th> <th>nilai ips3</th> <th>nilai ips4</th> <th>nilai ips5</th> <th>nilai ips6</th> <th>nilai ips7</th> <th>nilai ips8</th> <th>Class</th> <th>Status Data</th>
case "partisi_data"; include "partisi_data.php"; break; case "sinkronisasi_data_mahasiswa"; include "sinkronisasi_data_mahasiswa_ekonomi.php"; echo "<script>alert('Data berhasil dihapus!'); document.location.href='media.php?module=data_mahasiswa';</script>\n"; break; } modul/c45.php <?php switch($_GET[act]){ default: echo "<h2>C45 » Perhitungan C4.5</h2>"; // include "menu_c45.php"; echo " <p>Opsi: <a href=./aksi.php?module=c45&act=hapus_data_iterasi>Hapus Semua Data</a></p> <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 Tidak Tepat Waktu</th> <th>Jumlah Kasus TepatWaktu</th> <th>Entropy</th> <th>Information Gain</th> </tr>"; if ($_SESSION[leveluser]=='admin' OR $_SESSION[leveluser]=='kajur' OR $_SESSION[leveluser]=='akademik'){ $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){
} break; case "lakukan_kinerja"; echo "<h2>Kinerja » Proses Kinerja</h2>"; // include "menu_kinerja.php"; timer_start(); include "function/kinerjaC45.php"; $waktu = timer_stop(3); echo "<p>Proses perhitungan kinerja selesai! Waktu yang dibutuhkan $waktu detik</p>"; break; } ?> 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' OR $_SESSION[leveluser]=='kajur' OR $_SESSION[leveluser]=='akademik'){ $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[6] === 'Tepat Waktu') { $keputusan = "<font color=green>$row[6]</font>"; } elseif ($row[6] === 'Tidak Tepat Waktu') { $keputusan = "<font color=red>$row[6]</font>"; } elseif ($row[6] === '?') { $keputusan = "<font color=blue>$row[6]</font>"; } else { $keputusan = "<b>$row[6]</b>"; } echo "<font color=red>$row[1]</font> = $row[2] : <b>$keputusan</b><br>";
/*panggil dirinya sendiri*/ get_subfolder($row[0], $spasi + 1); } } get_subfolder('0', 0); echo "<hr>"; echo "<h3><b>Rule: <br></b></h3>"; $no = 1; if ($_SESSION[leveluser]=='admin'){ $sqlLihatRule = mysql_query("select * from rule_c45 order by id" ); } while($rowLihatRule=mysql_fetch_array($sqlLihatRule)){ if ($rowLihatRule['keputusan'] === 'Tepat Waktu') { $keputusan = "<font color=green>$rowLihatRule[keputusan]</font>"; } elseif ($rowLihatRule['keputusan'] === 'Tidak Tepat Waktu') { $keputusan = "<font color=red>$rowLihatRule[keputusan]</font>"; } elseif ($rowLihatRule['keputusan'] === '?') { $keputusan = "<font color=blue>$rowLihatRule[keputusan]</font>"; } else { $keputusan = "<b>$rowLihatRule[keputusan]</b>"; } echo "<b>R$no.</b> JIKA <b>(</b>$rowLihatRule[rule]<b>)</b> MAKA <b>$keputusan</b> <font color=blue>(id = $rowLihatRule[id])</font><br>"; $no++; } echo "</font>"; modul/sinkronisasi_data_mahasiswa_ekonomi.php <?php error_reporting(E_ERROR | E_PARSE); include "koneksi.php"; mysql_query("TRUNCATE data_kasus"); //$sql="SELECT * from ac_mahasiswa where nim like '2008%' AND substr(nim,5,2) not in(14,15,16,21,22,23,24,25,31,32,41,42)"; //$sql="SELECT * from ac_mahasiswa where nim like '2008230026%'"; $sql="SELECT * from ac_mahasiswa where nim like '20084%'"; $query=mysql_query($sql); while($row=mysql_fetch_array($query)){ $nim=$row["nim"];
$nama=$row["nama"]; $jk=$row["jenis_kelamin"]; $userid=$row["pn_uid"]; $tahun_lulus=substr($row["tanggal_lulus"],0,4); if ($tahun_lulus=='2012') { $lulus='Tepat Waktu'; }else $lulus='Tidak Tepat Waktu'; $kode_jurusan=substr($nim,4,2); if ($kode_jurusan=='11'){ $jurusan='Sastra Jepang'; } elseif ($kode_jurusan=='12') { $jurusan='Sastra Inggris'; } elseif ($kode_jurusan=='13') { $jurusan='Sastra Cina'; }elseif ($kode_jurusan=='21') { $jurusan='Teknik Elektro'; }elseif ($kode_jurusan=='22') { $jurusan='Teknik Industri'; }elseif ($kode_jurusan=='23') { $jurusan='Teknik Informatika'; }elseif ($kode_jurusan=='24') { $jurusan='Sistem Informasi'; }elseif ($kode_jurusan=='25') { $jurusan='Teknik Mesin'; }elseif ($kode_jurusan=='31') { $jurusan='Teknologi Kelautan'; }elseif ($kode_jurusan=='32') { $jurusan='Sistem Teknologi Kelautah'; }elseif ($kode_jurusan=='41') { $jurusan='Manajemen'; }elseif ($kode_jurusan=='42') { $jurusan='Akuntansi'; } //if($row["tanggal_lulus"]=="0000-00-00"){$lulus="belum";}else{$lulus=$row["tanggal_lulus"];} $sqlip1="select sum(mutu)/sum(sks) as ips1 from ac_user_students where userid='$userid' and semester_year=2008 and semester=1 group by userid"; $queryip1=mysql_query($sqlip1); $rowip1=mysql_fetch_array($queryip1); $ips1=round($rowip1["ips1"],2);
$sqlip2="select sum(mutu)/sum(sks) as ips2 from ac_user_students where userid='$userid' and semester_year=2008 and semester=2 group by userid"; $queryip2=mysql_query($sqlip2); $rowip2=mysql_fetch_array($queryip2); $ips2=round($rowip2["ips2"],2); $sqlip3="select sum(mutu)/sum(sks) as ips3 from ac_user_students where userid='$userid' and semester_year=2009 and semester=1 group by userid"; $queryip3=mysql_query($sqlip3); $rowip3=mysql_fetch_array($queryip3); $ips3=round($rowip3["ips3"],2); $sqlip4="select sum(mutu)/sum(sks) as ips4 from ac_user_students where userid='$userid' and semester_year=2009 and semester=2 group by userid"; $queryip4=mysql_query($sqlip4); $rowip4=mysql_fetch_array($queryip4); $ips4=round($rowip4["ips4"],2); $sqlip5="select sum(mutu)/sum(sks) as ips5 from ac_user_students where userid='$userid' and semester_year=2010 and semester=1 group by userid"; $queryip5=mysql_query($sqlip5); $rowip5=mysql_fetch_array($queryip5); $ips5=round($rowip5["ips5"],2); $sqlip6="select sum(mutu)/sum(sks) as ips6 from ac_user_students where userid='$userid' and semester_year=2010 and semester=2 group by userid"; $queryip6=mysql_query($sqlip6); $rowip6=mysql_fetch_array($queryip6); $ips6=round($rowip6["ips6"],2); $sqlip7="select sum(mutu)/sum(sks) as ips7 from ac_user_students where userid='$userid' and semester_year=2011 and semester=1 group by userid"; $queryip7=mysql_query($sqlip7); $rowip7=mysql_fetch_array($queryip7); $ips7=round($rowip7["ips7"],2); $sqlip8="select sum(mutu)/sum(sks) as ips8 from ac_user_students where userid='$userid' and semester_year=2011 and semester=2 group by userid"; $queryip8=mysql_query($sqlip8); $rowip8=mysql_fetch_array($queryip8); $ips8=round($rowip8["ips8"],2);
if ($ips1 >=0 AND $ips1 <= 2.00) { $ips1_kategori = "Kurang Memuaskan"; } else if ($ips1 >=2.00 AND $ips1 <= 2.76) { $ips1_kategori = "Memuaskan"; } else if ($ips1 >=2.76 AND $ips1 <= 3.50) { $ips1_kategori = "Sangat Memuaskan"; } else if ($ips1 >=3.51 AND $ips1 <= 4.00) { $ips1_kategori = "Cumlaude"; } if ($ips2 >=0 AND $ips2 <= 2.00) { $ips2_kategori = "Kurang Memuaskan"; } else if ($ips2 >=2.00 AND $ips2 <= 2.76) { $ips2_kategori = "Memuaskan"; } else if ($ips2 >=2.76 AND $ips2 <= 3.50) { $ips2_kategori = "Sangat Memuaskan"; } else if ($ips2 >=3.51 AND $ips2 <= 4.00) { $ips2_kategori = "Cumlaude"; } if ($ips3 >=0 AND $ips3 <= 2.00) { $ips3_kategori = "Kurang Memuaskan"; } else if ($ips3 >=2.00 AND $ips3 <= 2.76) { $ips3_kategori = "Memuaskan"; } else if ($ips3 >=2.76 AND $ips3 <= 3.50) { $ips3_kategori = "Sangat Memuaskan"; } else if ($ips3 >=3.51 AND $ips3 <= 4.00) { $ips3_kategori = "Cumlaude"; } if ($ips4 >=0 AND $ips4 <= 2.00) { $ips4_kategori = "Kurang Memuaskan"; } else if ($ips4 >=2.00 AND $ips4 <= 2.76) { $ips4_kategori = "Memuaskan"; } else if ($ips4 >=2.76 AND $ips4 <= 3.50) { $ips4_kategori = "Sangat Memuaskan"; } else if ($ips4 >=3.51 AND $ips4 <= 4.00) { $ips4_kategori = "Cumlaude"; }
if ($ips5 >=0 AND $ips5 <= 2.00) { $ips5_kategori = "Kurang Memuaskan"; } else if ($ips5 >=2.00 AND $ips5 <= 2.76) { $ips5_kategori = "Memuaskan"; } else if ($ips5 >=2.76 AND $ips5 <= 3.50) { $ips5_kategori = "Sangat Memuaskan"; } else if ($ips5 >=3.51 AND $ips5 <= 4.00) { $ips5_kategori = "Cumlaude"; } if ($ips6 >=0 AND $ips6 <= 2.00) { $ips6_kategori = "Kurang Memuaskan"; } else if ($ips6 >=2.00 AND $ips6 <= 2.76) { $ips6_kategori = "Memuaskan"; } else if ($ips6 >=2.76 AND $ips6 <= 3.50) { $ips6_kategori = "Sangat Memuaskan"; } else if ($ips6 >=3.51 AND $ips6 <= 4.00) { $ips6_kategori = "Cumlaude"; } if ($ips7 >=0 AND $ips7 <= 2.00) { $ips7_kategori = "Kurang Memuaskan"; } else if ($ips7 >=2.00 AND $ips7 <= 2.76) { $ips7_kategori = "Memuaskan"; } else if ($ips7 >=2.76 AND $ips7 <= 3.50) { $ips7_kategori = "Sangat Memuaskan"; } else if ($ips7 >=3.51 AND $ips7 <= 4.00) { $ips7_kategori = "Cumlaude"; } if ($ips8 >=0 AND $ips8 <= 2.00) { $ips8_kategori = "Kurang Memuaskan"; } else if ($ips8 >=2.00 AND $ips8 <= 2.76) { $ips8_kategori = "Memuaskan"; } else if ($ips8 >=2.76 AND $ips8 <= 3.50) { $ips8_kategori = "Sangat Memuaskan"; } else if ($ips8 >=3.51 AND $ips8 <= 4.00) { $ips8_kategori = "Cumlaude"; }
$sql1="INSERT INTO data_kasus VALUES ( '', '$nim', '$nama', '$jk', '$jurusan', '$ips1', '$ips1_kategori', '$ips2', '$ips2_kategori', '$ips3', '$ips3_kategori', '$ips4', '$ips4_kategori', '$ips5', '$ips5_kategori', '$ips6', '$ips6_kategori', '$ips7', '$ips7_kategori', '$ips8', '$ips8_kategori', '$lulus', 'Data Training' ) "; $mysql1=mysql_query($sql1); if (!$mysql1) echo mysql_error(); } mysql_query("DELETE from data_kasus where nilai_ips5=0 AND nilai_ips6=0 AND nilai_ips7=0 AND nilai_ips8=0"); ?> function/algoritma.php <?php // ====================== mining tanpa pruning ======================== include "../../../config/koneksi.php";
function populateAtribut() { mysql_query("TRUNCATE atribut"); mysql_query("insert into `atribut` values ('', 'Total', 'Total') "); //insertAtribut('jenis_kelamin'); insertAtribut('jurusan'); insertAtribut('nilai_ips1_kategori'); insertAtribut('nilai_ips2_kategori'); insertAtribut('nilai_ips3_kategori'); insertAtribut('nilai_ips4_kategori'); } function insertAtribut($atribut) { $sqlAtribut = mysql_query("SELECT distinct `$atribut` FROM data_kasus ORDER by `$atribut`"); while ($rowAtribut = mysql_fetch_array($sqlAtribut)) {! mysql_query("insert into `atribut` values ('', '$atribut', '$rowAtribut[$atribut]')"); } } 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"); populateAtribut(); } populateDb(); miningC45(null, null); //updateKeputusanUnknown(); //generateRuleFinalPrePruning(); //insertRuleC45PrePruning();
//---------- KUMPULAN FUNGSI yang AKAN DILAKUKAN DALAM PROSES MINING ---------- function miningC45($atribut, $nilai_atribut) { perhitunganC45($atribut, $nilai_atribut); //insertAtributPohonKeputusan($atribut, $nilai_atribut); //getInfGainMax($atribut, $nilai_atribut); } function perhitunganC45($atribut, $nilai_atribut) { if (empty($atribut) AND empty($nilai_atribut)) { //#2# Jika atribut yg diinputkan kosong, maka lakukan perhitungan awal $kondisiAtribut = ""; // set kondisi atribut kosong } else if (!empty($atribut) AND !empty($nilai_atribut)) { // jika atribut tdk kosong, maka select kondisi atribut dari DB $sqlKondisiAtribut = mysql_query("SELECT kondisi_atribut FROM pohon_keputusan_c45 WHERE atribut = '$atribut' AND nilai_atribut = '$nilai_atribut' order by id DESC LIMIT 1"); $rowKondisiAtribut = mysql_fetch_array($sqlKondisiAtribut); $kondisiAtribut = str_replace("~", "'", $rowKondisiAtribut['kondisi_atribut']); // replace string ~ menjadi ' } // ambil seluruh atribut $sqlAtribut = mysql_query("SELECT distinct atribut FROM atribut"); while($rowGetAtribut = mysql_fetch_array($sqlAtribut)) { $getAtribut=$rowGetAtribut['atribut']; //echo $getAtribut; if($getAtribut == 'Total'){ //#3# Jika atribut = total, maka hitung jumlah kasus total, jumlah kasus Tepat Waktu dan jumlah kasus Tidak Tepat Waktu // hitung jumlah kasus total $sqlJumlahKasusTotal = mysql_query("SELECT COUNT(*) as jumlah_total FROM data_kasus WHERE status_data = 'Data Training' $kondisiAtribut"); $rowJumlahKasusTotal = mysql_fetch_array($sqlJumlahKasusTotal); $getJumlahKasusTotal = $rowJumlahKasusTotal['jumlah_total']; // hitung jumlah kasus TepatWaktu $sqlJumlahKasusTepatWaktu = mysql_query("SELECT COUNT(*) as jumlah_tepat_waktu FROM data_kasus WHERE class = 'Tepat Waktu' AND status_data = 'Data Training' $kondisiAtribut"); $rowJumlahKasusTepatWaktu = mysql_fetch_array($sqlJumlahKasusTepatWaktu); $getJumlahKasusTepatWaktu = $rowJumlahKasusTepatWaktu['jumlah_tepat_waktu']; // hitung jumlah kasus Tidak Tepat Waktu
$sqlJumlahKasusTidakTepatWaktu = mysql_query("SELECT COUNT(*) as jumlah_tidak_tepat_waktu FROM data_kasus WHERE class = 'Tidak Tepat Waktu' AND status_data = 'Data Training' $kondisiAtribut"); $rowJumlahKasusTidakTepatWaktu = mysql_fetch_array($sqlJumlahKasusTidakTepatWaktu); $getJumlahKasusTidakTepatWaktu = $rowJumlahKasusTidakTepatWaktu['jumlah_tidak_tepat_waktu']; //#4# Insert jumlah kasus total, jumlah kasus Tepat Waktu dan jumlah kasus Tidak Tepat Waktu ke DB // insert ke database mining_c45 mysql_query("INSERT INTO mining_c45 VALUES ('', 'Total', 'Total', '$getJumlahKasusTotal', '$getJumlahKasusTidakTepatWaktu', '$getJumlahKasusTepatWaktu', '', '', '', '', '', '')"); }else{ //#5# Jika atribut != total (atribut lainnya), maka hitung jumlah kasus total, jumlah kasus Tepat Waktu dan jumlah kasus Tidak Tepat Waktu masing2 atribut // ambil nilai atribut $sqlNilaiAtribut = mysql_query("SELECT nilai_atribut FROM atribut WHERE atribut = '$getAtribut' ORDER BY id"); while($rowNilaiAtribut = mysql_fetch_array($sqlNilaiAtribut)) { $getNilaiAtribut = $rowNilaiAtribut['nilai_atribut']; // set kondisi dimana nilai_atribut = berdasakan masing2 atribut dan status data = data training $kondisi = "$getAtribut = '$getNilaiAtribut' AND status_data = 'Data Training' $kondisiAtribut"; // hitung jumlah kasus per atribut $sqlJumlahKasusTotalAtribut = mysql_query("SELECT COUNT(*) as jumlah_total FROM data_kasus WHERE $kondisi"); $rowJumlahKasusTotalAtribut = mysql_fetch_array($sqlJumlahKasusTotalAtribut); $getJumlahKasusTotalAtribut = $rowJumlahKasusTotalAtribut['jumlah_total']; // hitung jumlah kasus TepatWaktu $sqlJumlahKasusTepatWaktuAtribut = mysql_query("SELECT COUNT(*) as jumlah_tepat_waktu FROM data_kasus WHERE $kondisi AND class = 'Tepat Waktu'"); $rowJumlahKasusTepatWaktuAtribut = mysql_fetch_array($sqlJumlahKasusTepatWaktuAtribut); $getJumlahKasusTepatWaktuAtribut = $rowJumlahKasusTepatWaktuAtribut['jumlah_tepat_waktu']; // hitung jumlah kasus Tidak Tepat Waktu $sqlJumlahKasusTidakTepatWaktuAtribut = mysql_query("SELECT COUNT(*) as jumlah_tidak_tepat_waktu FROM data_kasus WHERE $kondisi AND class = 'Tidak Tepat Waktu'"); $rowJumlahKasusTidakTepatWaktuAtribut = mysql_fetch_array($sqlJumlahKasusTidakTepatWaktuAtribut); $getJumlahKasusTidakTepatWaktuAtribut = $rowJumlahKasusTidakTepatWaktuAtribut['jumlah_tidak_tepat_waktu'];
//#6# Insert jumlah kasus total, jumlah kasus Tepat Waktu dan jumlah kasus Tidak Tepat Waktu masing2 atribut ke DB // insert ke database mining_c45 mysql_query("INSERT INTO mining_c45 VALUES ('', '$getAtribut', '$getNilaiAtribut', '$getJumlahKasusTotalAtribut', '$getJumlahKasusTidakTepatWaktuAtribut', '$getJumlahKasusTepatWaktuAtribut', '', '', '', '', '', '')"); //akhir dari pengumpulan data //#7# Lakukan perhitungan entropy // perhitungan entropy $sqlEntropy = mysql_query("SELECT id, jml_kasus_total, jml_kasus_tepat_waktu, jml_kasus_tidak_tepat_waktu FROM mining_c45"); while($rowEntropy = mysql_fetch_array($sqlEntropy)) { $getJumlahKasusTotalEntropy = $rowEntropy['jml_kasus_total']; $getJumlahKasusTepatWaktuEntropy = $rowEntropy['jml_kasus_tepat_waktu']; $getJumlahKasusTidakTepatWaktuEntropy = $rowEntropy['jml_kasus_tidak_tepat_waktu']; $idEntropy = $rowEntropy['id']; // jika jml kasus = 0 maka entropy = 0 if ($getJumlahKasusTotalEntropy == 0 OR $getJumlahKasusTepatWaktuEntropy == 0 OR $getJumlahKasusTidakTepatWaktuEntropy == 0) { $getEntropy = 0; // jika jml kasus Tepat Waktu = jml kasus Tidak Tepat Waktu, maka entropy = 1 } else if ($getJumlahKasusTepatWaktuEntropy == $getJumlahKasusTidakTepatWaktuEntropy) { $getEntropy = 1; } else { // jika jml kasus != 0, maka hitung rumus entropy: $perbandingan_tepat_waktu = $getJumlahKasusTepatWaktuEntropy / $getJumlahKasusTotalEntropy; $perbandingantidak_tepat_waktu = $getJumlahKasusTidakTepatWaktuEntropy / $getJumlahKasusTotalEntropy; $rumusEntropy = (-($perbandingan_tepat_waktu) * log($perbandingan_tepat_waktu,2)) + (-($perbandingantidak_tepat_waktu) * log($perbandingantidak_tepat_waktu,2)); $getEntropy = round($rumusEntropy,4); // 4 angka di belakang koma } //#8# Update nilai entropy // update nilai entropy mysql_query("UPDATE mining_c45 SET entropy = $getEntropy WHERE id = $idEntropy"); }
//#9# Lakukan perhitungan information gain // perhitungan information gain // ambil nilai entropy dari total (jumlah kasus total) $sqlJumlahKasusTotalInfGain = mysql_query("SELECT jml_kasus_total, entropy FROM mining_c45 WHERE atribut = 'Total'"); $rowJumlahKasusTotalInfGain = mysql_fetch_array($sqlJumlahKasusTotalInfGain); $getJumlahKasusTotalInfGain = $rowJumlahKasusTotalInfGain['jml_kasus_total']; // rumus information gain $getInfGain = (-(($getJumlahKasusTotalEntropy / $getJumlahKasusTotalInfGain) * ($getEntropy))); //#10# Update information gain tiap nilai atribut (temporary) // update inf_gain_temp (utk mencari nilai masing2 atribut) mysql_query("UPDATE mining_c45 SET inf_gain_temp = $getInfGain WHERE id = $idEntropy"); $getEntropy = $rowJumlahKasusTotalInfGain['entropy']; // jumlahkan masing2 inf_gain_temp atribut $sqlAtributInfGain = mysql_query("SELECT SUM(inf_gain_temp) as inf_gain FROM mining_c45 WHERE atribut = '$getAtribut'"); while ($rowAtributInfGain = mysql_fetch_array($sqlAtributInfGain)) { $getAtributInfGain = $rowAtributInfGain['inf_gain']; // hitung inf gain $getInfGainFix = round(($getEntropy + $getAtributInfGain),4); //#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'"); } //#12# Lakukan perhitungan split info // rumus split info $getSplitInfo = (($getJumlahKasusTotalEntropy / $getJumlahKasusTotalInfGain) * (log(($getJumlahKasusTotalEntropy / $getJumlahKasusTotalInfGain),2))); //#13# Update split info tiap nilai atribut (temporary) // update split_info_temp (utk mencari nilai masing2 atribut) mysql_query("UPDATE mining_c45 SET split_info_temp = $getSplitInfo WHERE id = $idEntropy"); // jumlahkan masing2 split_info_temp dari tiap atribut $sqlAtributSplitInfo = mysql_query("SELECT SUM(split_info_temp) as split_info FROM mining_c45 WHERE atribut = '$getAtribut'");
while ($rowAtributSplitInfo = mysql_fetch_array($sqlAtributSplitInfo)){ $getAtributSplitInfo = $rowAtributSplitInfo['split_info']; // split info fix (4 angka di belakang koma) $getSplitInfoFix = -(round($getAtributSplitInfo,4)); //#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 = '$getAtribut'"); } } // #15 //#15# Lakukan perhitungan gain ratio $sqlGainRatio = mysql_query("SELECT id, inf_gain, split_info FROM mining_c45"); while($rowGainRatio = mysql_fetch_array($sqlGainRatio)) { $idGainRatio = $rowGainRatio['id']; // jika nilai inf gain == 0 dan split info == 0, maka gain ratio = 0 if ($rowGainRatio['inf_gain'] == 0 AND $rowGainRatio['split_info'] == 0){ $getGainRatio = 0; } else { // rumus gain ratio $getGainRatio = round(($rowGainRatio['inf_gain'] / $rowGainRatio['split_info']),4); } //#16# Update gain ratio dari setiap atribut mysql_query("UPDATE mining_c45 SET gain_ratio = $getGainRatio WHERE id = '$idGainRatio'"); } } } } //#17# Insert atribut dgn information gain max ke DB pohon keputusan function insertAtributPohonKeputusan($atribut, $nilai_atribut) { // ambil nilai inf gain tertinggi dimana hanTepatWaktu 1 atribut saja yg dipilih $sqlInfGainMaxTemp = mysql_query("SELECT distinct atribut, gain_ratio FROM mining_c45 WHERE
gain_ratio in (SELECT max(gain_ratio) FROM `mining_c45`) LIMIT 1"); $rowInfGainMaxTemp = mysql_fetch_array($sqlInfGainMaxTemp); } ?> function/kinerjac45.php <?php include "../../../config/koneksi.php"; mysql_query("TRUNCATE data_keputusan_kinerja"); $arrayPerbandingan = array(); // buat array baru // ambil data Mahasiswa $sqlDataTesting = mysql_query("SELECT * FROM data_kasus where status_data = 'Data Training'"); while($rowDataTesting = mysql_fetch_array($sqlDataTesting)) { if (!empty($rowDataTesting)) { // masukkan tiap nilai atribut data Mahasiswa pada array $array['id_data_mahasiswa'] = $rowDataTesting['id_data_mahasiswa']; $array['class'] = $rowDataTesting['class']; $arrayPerbandingan[] = $array; } } foreach ($arrayPerbandingan as $atribut) { // ambil atribut dan panggil fungsi penentuKeputusan() penentuKeputusan($atribut); } function penentuKeputusan($atribut) { mysql_query("TRUNCATE data_penentu_keputusan"); // buat variabel baru dan masukkan masing-masing atribut $id_data_mahasiswa = "$atribut[id_data_mahasiswa]"; $sqlDataMahasiswa = mysql_query("SELECT * FROM data_kasus WHERE id_data_mahasiswa = '$id_data_mahasiswa'"); $rowDataMahasiswa = mysql_fetch_array($sqlDataMahasiswa); $nim = $rowDataMahasiswa['nim']; $nama = $rowDataMahasiswa['nama']; //$jenis_kelamin = $rowDataMahasiswa['jenis_kelamin']; $jurusan = $rowDataMahasiswa['jurusan'];
$nilai_ips1 = $rowDataMahasiswa['nilai_ips1']; $nilai_ips1_kategori = $rowDataMahasiswa['nilai_ips1_kategori']; $nilai_ips2 = $rowDataMahasiswa['nilai_ips2']; $nilai_ips2_kategori = $rowDataMahasiswa['nilai_ips2_kategori']; $nilai_ips3 = $rowDataMahasiswa['nilai_ips3']; $nilai_ips3_kategori = $rowDataMahasiswa['nilai_ips3_kategori']; $nilai_ips4 = $rowDataMahasiswa['nilai_ips4']; $nilai_ips4_kategori = $rowDataMahasiswa['nilai_ips4_kategori']; /* $nilai_ips5 = $rowDataMahasiswa['nilai_ips5']; $nilai_ips5_kategori = $rowDataMahasiswa['nilai_ips5_kategori']; $nilai_ips6 = $rowDataMahasiswa['nilai_ips6']; $nilai_ips6_kategori = $rowDataMahasiswa['nilai_ips6_kategori']; $nilai_ips7 = $rowDataMahasiswa['nilai_ips7']; $nilai_ips7_kategori = $rowDataMahasiswa['nilai_ips7_kategori']; $nilai_ips8 = $rowDataMahasiswa['nilai_ips8']; $nilai_ips8_kategori = $rowDataMahasiswa['nilai_ips8_kategori']; */ $class = $atribut['class']; //"jenis_kelamin" => "$jenis_kelamin", // masukkan variabel pada array $array2 = array( "jurusan" => "$jurusan", "nilai_ips1_kategori" => "$nilai_ips1_kategori", "nilai_ips2_kategori" => "$nilai_ips2_kategori", "nilai_ips3_kategori" => "$nilai_ips3_kategori", "nilai_ips4_kategori" => "$nilai_ips4_kategori" /* "nilai_ips5_kategori" => "$nilai_ips5_kategori", "nilai_ips6_kategori" => "$nilai_ips6_kategori", "nilai_ips7_kategori" => "$nilai_ips7_kategori", "nilai_ips8_kategori" => "$nilai_ips8_kategori" */ ); // ambil atribut yang ada di pohon $sqlSelectDistinctAtribut = mysql_query("SELECT distinct atribut FROM pohon_keputusan_c45"); while($rowSelectDistinctAtribut = mysql_fetch_array($sqlSelectDistinctAtribut)) { if (!empty($rowSelectDistinctAtribut)) { foreach ($array2 as $atribut_array => $nilai_atribut_array) { // jika atribut pada pohon sama dgn atribut yg ada di array (atribut yg di post-kan) maka insert atribut dan nilai atribut pada db if ($rowSelectDistinctAtribut['atribut'] == $atribut_array) { mysql_query("INSERT INTO data_penentu_keputusan VALUES('', '$atribut_array', '$nilai_atribut_array')");
} } } } $arrayPenentuKeputusan = array(); // buat array baru // ambil atribut dan nilai atribut pada db data penentu keputusan $sqlDataPenentuKeputusan = mysql_query("SELECT * FROM data_penentu_keputusan"); while($rowDataPenentuKeputusan = mysql_fetch_array($sqlDataPenentuKeputusan)) { $sqlRulePenentuKeputusan = mysql_query("SELECT * FROM rule_penentu_keputusan where pohon = 'C45'"); while($rowRulePenentuKeputusan = mysql_fetch_array($sqlRulePenentuKeputusan)) { if (!empty($rowRulePenentuKeputusan)) { // jika atribut pada db data_penentu_keputusan sama dengan atribut pada db rule_penentu_keputusan if ($rowRulePenentuKeputusan['atribut'] == $rowDataPenentuKeputusan['atribut']) { // jika nilai atribut pada db data_penentu_keputusan sama dengan nilai atribut pada db rule_penentu_keputusan if ($rowRulePenentuKeputusan['nilai_atribut'] == $rowDataPenentuKeputusan['nilai_atribut']) { // set nilai id, cocok dan masukkan pada array $arrayPenentuKeputusanTemp['id'] = $rowRulePenentuKeputusan['id']; $arrayPenentuKeputusanTemp['cocok'] = "Ya"; $arrayPenentuKeputusan[] = $arrayPenentuKeputusanTemp; } elseif ($rowRulePenentuKeputusan['nilai_atribut'] !== $rowDataPenentuKeputusan['nilai_atribut']) { // set nilai id, cocok dan masukkan pada array $arrayPenentuKeputusanTemp['id'] = $rowRulePenentuKeputusan['id']; $arrayPenentuKeputusanTemp['cocok'] = "Tidak"; $arrayPenentuKeputusan[] = $arrayPenentuKeputusanTemp; } } } } } foreach ($arrayPenentuKeputusan as $arrayPenentuKeputusanUpdate) { // update nilai cocok dari array sebelumnya mysql_query("UPDATE rule_penentu_keputusan SET cocok = '$arrayPenentuKeputusanUpdate[cocok]' where id = $arrayPenentuKeputusanUpdate[id]"); }
// 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]"; // insert data keputusan pada db mysql_query("INSERT INTO data_keputusan_kinerja VALUES('', '$id_data_mahasiswa', '$class', '$keputusan', '$idRule') "); } } function/penentukeputusan.php <?php include "../../../config/koneksi.php"; mysql_query("TRUNCATE data_penentu_keputusan"); // buat variabel baru yg berisi data yg di post-kan $nim = $_POST['nim']; $nama = $_POST['nama']; $jenis_kelamin = $_POST['jenis_kelamin']; $jurusan = $_POST['jurusan']; $nilai_ips1 = $_POST['nilai_ips1']; $nilai_ips2 = $_POST['nilai_ips2']; $nilai_ips3 = $_POST['nilai_ips3']; $nilai_ips4 = $_POST['nilai_ips4']; if ($_POST['nilai_ips1'] >=0 AND $_POST['nilai_ips1'] <= 2.00) { $nilai_ips1_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips1'] >=2.00 AND $_POST['nilai_ips1'] <= 2.76) { $nilai_ips1_kategori = "Memuaskan"; } else if ($_POST['nilai_ips1'] >=2.76 AND $_POST['nilai_ips1'] <= 3.50) { $nilai_ips1_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips1'] >=3.51 AND $_POST['nilai_ips1'] <= 4.00) {
$nilai_ips1_kategori = "Cumlaude"; } if ($_POST['nilai_ips2'] >=0 AND $_POST['nilai_ips2'] <= 2.00) { $nilai_ips2_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips2'] >=2.00 AND $_POST['nilai_ips2'] <= 2.76) { $nilai_ips2_kategori = "Memuaskan"; } else if ($_POST['nilai_ips2'] >=2.76 AND $_POST['nilai_ips2'] <= 3.50) { $nilai_ips2_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips2'] >=3.51 AND $_POST['nilai_ips2'] <= 4.00) { $nilai_ips2_kategori = "Cumlaude"; } if ($_POST['nilai_ips3'] >=0 AND $_POST['nilai_ips3'] <= 2.00) { $nilai_ips3_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips3'] >=2.00 AND $_POST['nilai_ips3'] <= 2.76) { $nilai_ips3_kategori = "Memuaskan"; } else if ($_POST['nilai_ips3'] >=2.76 AND $_POST['nilai_ips3'] <= 3.50) { $nilai_ips3_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips3'] >=3.51 AND $_POST['nilai_ips3'] <= 4.00) { $nilai_ips3_kategori = "Cumlaude"; } if ($_POST['nilai_ips4'] >=0 AND $_POST['nilai_ips4'] <= 2.00) { $nilai_ips4_kategori = "Kurang Memuaskan"; } else if ($_POST['nilai_ips4'] >=2.00 AND $_POST['nilai_ips4'] <= 2.76) { $nilai_ips4_kategori = "Memuaskan"; } else if ($_POST['nilai_ips4'] >=2.76 AND $_POST['nilai_ips4'] <= 3.50) { $nilai_ips4_kategori = "Sangat Memuaskan"; } else if ($_POST['nilai_ips4'] >=3.51 AND $_POST['nilai_ips4'] <= 4.00) { $nilai_ips4_kategori = "Cumlaude"; } //"jenis_kelamin" => "$jenis_kelamin", // masukkan variabel pada array $array2 = array( "jurusan" => "$jurusan", "nilai_ips1_kategori" => "$nilai_ips1_kategori", "nilai_ips2_kategori" => "$nilai_ips2_kategori", "nilai_ips3_kategori" => "$nilai_ips3_kategori",
"nilai_ips4_kategori" => "$nilai_ips4_kategori", ); $sqlSelectDistinctAtribut = mysql_query("SELECT distinct atribut FROM pohon_keputusan_c45"); while($rowSelectDistinctAtribut = mysql_fetch_array($sqlSelectDistinctAtribut)) { if (!empty($rowSelectDistinctAtribut)) { foreach ($array2 as $atribut_array => $nilai_atribut_array) { // jika atribut pada pohon sama dgn atribut yg ada di array (atribut yg di post-kan) maka insert atribut dan nilai atribut pada db if ($rowSelectDistinctAtribut['atribut'] == $atribut_array) { mysql_query("INSERT INTO data_penentu_keputusan VALUES('', '$atribut_array', '$nilai_atribut_array')"); } } } } $arrayPenentuKeputusan = array(); // buat array baru // ambil atribut dan nilai atribut pada db data penentu keputusan $sqlDataPenentuKeputusan = mysql_query("SELECT atribut, nilai_atribut FROM data_penentu_keputusan"); while($rowDataPenentuKeputusan = mysql_fetch_array($sqlDataPenentuKeputusan)) { // ambil atribut dan nilai atribut pada db rule_penentu_keputusan $sqlRulePenentuKeputusan = mysql_query("SELECT id, atribut, nilai_atribut FROM rule_penentu_keputusan where pohon = 'C45'"); while($rowRulePenentuKeputusan = mysql_fetch_array($sqlRulePenentuKeputusan)) { if (!empty($rowRulePenentuKeputusan)) { // jika atribut pada db data_penentu_keputusan sama dengan atribut pada db rule_penentu_keputusan if ($rowRulePenentuKeputusan['atribut'] == $rowDataPenentuKeputusan['atribut']) { // jika nilai atribut pada db data_penentu_keputusan sama dengan nilai atribut pada db rule_penentu_keputusan if ($rowRulePenentuKeputusan['nilai_atribut'] == $rowDataPenentuKeputusan['nilai_atribut']) { // set nilai id, cocok dan masukkan pada array $arrayPenentuKeputusanTemp['id'] = $rowRulePenentuKeputusan['id']; $arrayPenentuKeputusanTemp['cocok'] = "Ya"; $arrayPenentuKeputusan[] = $arrayPenentuKeputusanTemp; } elseif ($rowRulePenentuKeputusan['nilai_atribut'] !== $rowDataPenentuKeputusan['nilai_atribut']) { // set nilai id, cocok dan masukkan pada array $arrayPenentuKeputusanTemp['id'] = $rowRulePenentuKeputusan['id']; $arrayPenentuKeputusanTemp['cocok'] = "Tidak"; $arrayPenentuKeputusan[] = $arrayPenentuKeputusanTemp;
} } } } } foreach ($arrayPenentuKeputusan as $arrayPenentuKeputusanUpdate) { // update nilai cocok dari array sebelumnya mysql_query("UPDATE rule_penentu_keputusan SET cocok = '$arrayPenentuKeputusanUpdate[cocok]' where id = $arrayPenentuKeputusanUpdate[id]"); } // 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]"; // insert data keputusan pada db mysql_query("INSERT INTO data_keputusan VALUES('', '$nim', '$nama', '$jenis_kelamin', '$jurusan', '$nilai_ips1', '$nilai_ips1_kategori', '$nilai_ips2', '$nilai_ips2_kategori', '$nilai_ips3', '$nilai_ips3_kategori', '$nilai_ips4', '$nilai_ips4_kategori', '$keputusan', '$idRule') "); } $w=isset($keputusan);
echo "<script>alert('Data berhasil diinput! Keputusan yang dihasilkan adalah : $keputusan'); document.location.href='../../media.php?module=penentu_keputusan';</script>";