SPK Kelayakan Cetak Ulang Buku
-
Upload
independent -
Category
Documents
-
view
1 -
download
0
Transcript of SPK Kelayakan Cetak Ulang Buku
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Buku merupakan salah satu hal yang sangat penting bagi kelangsungan hidup manusia.
Karena dari buku kita bisa belajar banyak hal. Namun untuk menghasilkan buku ada banyak sekali
tahapan yang harus dilakukan. Seperti halnya penulisan buku oleh penulis, pemberian naskah ke
penerbit, proses penerbitan dan juga percetakan buku. Pada era modern saat ini umumnya segala
sesuatu sudah dihubungkan dengan dunia elektronik. Begitu juga dalam hal percetakan buku
dilakukan dengan bantuan alat elektronik. Namun untuk proses penentuan apakah sebuah buku itu
layak untuk dicetak atau tidak masih dilakukan secara manual. Begitu juga dengan proses
percetakan ulang buku dilakukan dengan cara manual. Oleh karena itu kami buatkan sebuah
Sistem Pendukung Keputusan Kelayakan Percetakan Ulang Buku sehingga buku itu perlu dicetak
atau tidak dapat diputuskan oleh sistem tanpa harus dilakukan secara manual.
1.2 Identifikasi Masalah
Berdasarkan uraian latar belakang diatas, maka dapat dirumuskan identifikasi masalah yaitu
bagaimana menganalisis dan menentukan buku yang layak untuk dicetak ulang di UIN Maliki
Press menggunakan algoritma k-nearest neighbor (KNN).
1.3 Tujuan
Tujuan dari penelitian ini adalah menganalisis buku yang layak di cetak ulang di UIN Maliki
Press serta distribusinya dengan memanfaatkan perkembangan teknologi yang ada untuk
mempermudah analisis.
1.4 Manfaat
Manfaat penelitian ini adalah mempermudah admin UIN Maliki Press dalam melakukan
distribusi buku yang layak di cetak ulang.
1.5 Batasan Masalah
1. Sistem hanya menganalisis data buku di UIN Malang Press
2. Sistem dibangun dengan algoritma k-nearest neighbor (KNN)
2
BAB II
LANDASAN TEORI
2.1 Data Mining
Data mining adalah proses untuk menemukan pengetahuan yang menarik dari data dalam
jumlah besar [Han dan Kamber, 2000]. Data mining ini termasuk dalam bidang antar cabang ilmu
pengetahuan dengan kontribusi dari banyak bidang, seperti statistik, pembelajaran mesin,
pencarian informasi, pengenalan pola dan bioinformatika. Data mining secara luas digunakan
dalam banyak domain, seperti ritel, finance, telekomunikasi dan media sosial.
Teknik utama untuk data mining diantaranya memasukkan klasifikasi dan prediksi,
clustering, deteksi outlier, aturan asosiasi, analisis sequence, analisis time series dan teks mining,
dan juga beberapa teknik baru seperti analisis jaringan sosial dan analisis sentimen.
Dalam dunia nyata, proses data mining dapat dibagi menjadi enam fase utama: pemahaman
bisnis, pemahaman data, penyusunan data, pemodelan, evaluasi dan penyebaran, seperti di
didefinisikan oleh CRISP-DM (Cross Industry Standard Process for Data Mining).
2.2 Sistem Pendukung Keputusan (SPK)
Sistem Pendukung Keputusan (SPK) adalah sistem berbasis komputer interaktif, yang
membantu para pengambil keputusan untuk menggunakan data dan berbagai model untuk
memecahkan masalah-masalah tidak terstruktur (Scott Morton, 1971 dalam Turban et al, 2005).
Menurut (Keen et al, 1978 dalam Turban et al, 2005) sistem pendukung keputusan memadukan
sumber daya intelektual dari individu dengan kapabilitas komputer untuk meningkatkan kualitas
keputusan. SPK adalah sistem pendukung berbasis komputer bagi para pengambil keputusan
manajemen yang menangani masalah-masalah tidak terstruktur.
Tujuan Sistem Pendukung Keputusan Peter G.W. telah mendefenisikan tiga tujuan yang
harus dicapai oleh sistem pendukung keputusan, yaitu: Sistem harus dapat membantu manajer
dalam membuat keputusan guna memecahkan masalah semi terstruktur, Sistem harus dapat
mendukung manajer,bukan mencoba menggantikannya, Sistem harus dapat meningkatkan
efektivitas pengambilan keputusan manajer.
3
Prinsip kerja Sistem Pendukung Keputusan :
Ada tiga prinsip dasar sistem pendukung keputusan (Kadarsah, 1998 dalam Oetomo, 2002),
yaitu:
1. Struktur masalah : untuk masalah yang terstruktur, penyelesaian dapat dilakukan dengan
menggunakan rumus-rumus yang sesuai, sedangkan untuk masalah terstruktur tidak dapat
dikomputerisasi. Sementara itu, sistem pendukung keputusan dikembangkan khususnya
untuk menyelesaikan masalah yang semi-terstruktur.
2. Dukungan keputusan: sistem pendukung keputusan tidak dimaksudkan untuk menggantikan
manajer, karena komputer berada di bagian terstruktur, sementara manajer berada dibagian
tak terstruktur untuk memberikan penilaian dan melakukan analisis. Manajer dan komputer
bekerja sama sebagai sebuah tim pemecah masalah semi terstruktur.
3. Efektivitas keputusan: tujuan utama dari sistem pendukung keputusan bukanlah
mempersingkat waktu pengambilan keputusan, tetapi agar keputusan yang dihasilakn dapat
lebih baik
Menurut Oetomo (2002), ada beberapa karakteristik sistem pendukung keputusan, yaitu:
1. Interaktif SPK memiliki user interface yang komunikatif sehingga pemakai dapat
melakukan akses secara cepat ke data dan memperoleh informasi yang dibutuhkan.
2. Fleksibel SPK memiliki sebanyak mungkin variabel masukkan, kemampuan untuk
mengolah dan memberikan keluaran yang menyajikan alternatif-alternatif keputusan
kepada pemakai.
3. Data kualitas SPK memiliki kemampuan menerima data kualitas yang dikuantitaskan
yang sifatnya subyektif dari pemakainya, sebagai data masukkan untuk pengolahan data.
Misalnya: penilaian terhadap kecantikan yang bersifat kualitas, dapat dikuantitaskan
dengan pemberian bobot nilai seperti 75 atau 90. Prosedur Pakar SPK mengandung
suatu prosedur yang dirancang berdasarkan rumusan formal atau juga beberapa prosedur
kepakaran seseorang atau kelompok dalam menyelesaikan suatu bidang masalah dengan
fenomena tertentu.
4
Menurut Surbakti (2002), komponen-komponen dari SPK adalah sebagai berikut:
1. Data Management Termasuk database, yang mengandung data yang relevan untuk
berbagai situasi dan diatur oleh software yang disebut Database Management System
(DBMS).
2. Model Management Melibatkan model finansial, statistikal, management science, atau
berbagai model kualitatif lainnya, sehingga dapat memberikan ke sistem suatu
kemampuan analitis, dan manajemen software yang dibutuhkan.
3. Communication User dapat berkomunikasi dan memberikan perintah pada DSS
melalui subsistem ini. Ini berarti menyediakan antarmuka.
4. Knowledge Management Subsistem optional ini dapat mendukung subsistem lain atau
bertindak sebagai komponen yang berdiri sendiri.
2.3 Algoritma K-Nearest Neighbor (KNN)
Algoritma k-nearest neighbor (KNN) adalah sebuah metode untuk melakukan klasifikasi
terhadap objek berdasarkan data pembelajaran yang jaraknya paling dekat dengan objek tersebut.
KNN termasuk algoritma supervised learning dimana hasil dari query instance yang baru
diklasifikan berdasarkan mayoritas dari kategori pada KNN. Nanti kelas yang paling banyak
muncullah yang akan menjadi kelas hasil klasifikasi.
Tujuan dari algoritma ini adalah mengklasifikasikan obyek baru bedasarkan atribut dan
training sample. Classifier tidak menggunakan model apapun untuk dicocokkan dan hanya
berdasarkan pada memori. Diberikan titik query, akan ditemukan sejumlah k obyek atau (titik
training) yang paling dekat dengan titik query. Klasifikasi menggunakan voting terbanyak diantara
klasifikasi dari k obyek. Algoritma k-nearest neighbor (KNN) menggunakan klasifikasi
ketetanggaan sebagai nilai prediksi dari query instance yang baru.
Langkah-langkah untuk menghitung metode KNN:
• Menentukan parameter K (jumlah tetangga paling dekat)
• Menghitung kuadrat jarak Euclid (query instance) masing-masing obyek terhadap data
sampel yang diberikan.
5
• Kemudian mengurutkan objek-objek tersebut kedalam kelompok yang mempunyai jarak
euclid terkecil
• Mengumpulkan kategori Y (Klasifikasi nearest neighbor)
• Dengan menggunakan kategori nearest neighbor yang paling mayoritas maka dapat
dipredisikan nilai query instance yang telah dihitung
Algoritma KNN :
6
Kelebihan Metode KNN :
1. Tangguh terhadap training data yang noisy dan efektif apabila data latih nya besar.
2. Lebih efektif di data training yang besar
3. Dapat menghasilkan data yang lebih akurat
Kekurangan Metode KNN :
1. Perlu ditentukan nilai k yang paling optimal yang menyatakan jumlah tetangga terdekat
2. Biaya komputasi cukup tinggi karena perhitungan jarak harus dilakukan pada setiap query
instance bersama-sama dengan seluruh instan dari training sample
3. Jarak dari data percobaan tidak dapat jelas dengan tipe jarak yang digunakan dan dengan
atribut yang digunakan untuk menghasilkan hasil yang terbaik, maka harus menggunakan
semua atribut atau hanya 1 aribut yang telah pasti.
4. Perhitungan harga sangat tinggi karena percobaan ini membutuhkan perhitungan jarak
dari beberapa query untuk semua data percobaan.
7
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Weka
Software yang kami gunakan untuk data mining adalah Weka (Waikato Environment for
Knowladge Analysis) adalah aplikasi data mining open source berbasis Java. Aplikasi ini
dikembangkan pertama kali oleh Universitas Waikato di Selandia Baru. Weka terdiri dari koleksi
algoritma machine learning yang dapat digunakan untuk melakukan generalisasi / formulasi dari
sekumpulan data sampling [http://pentaho.phi-integration.com].Algoritma ini bisa diterapkan
secara langsung ke dalam dataset atau bisa juga dipanggil dari kode java kita sendiri. Weka
memiliki tools untuk data pre-processing, classification, regression, clustering, association rules,
dan visualization.
Weka mengorganisasi kelas-kelas ke dalam paket-paket dan setiap kelas di paket dapat
mereferensi kelas lain di paket lain. Paket classifiers berisi implementasi dari hampir semua
algoritma untuk klasifikasi dan prediksi. Kelas yang paling penting di paket ini adalah Classifier,
yang mendeklarasikan struktur umum dari skema klasifikasi dan prediksi. Kelas ini memiliki dua
metoda, yaitu buildClassifier dan classifyInstance, yang harus diimplementasikan oleh kelas-kelas
yang menginduk ke kelas ini. Semua kelas yang mengimplementasikan algoritma klasifikasi
menginduk ke kelas Classifier, termasuk kelas J48. J48, yang menangani himpunan data dalam
format ARFF, tidak mengandung kode untuk mengkonstruksi pohon keputusan. Kelas ini
mereferensi kelas-kelas lain, kebanyakan di paket weka.classifiers.j48, yang mengerjakan semua
proses konstruksi pohon.
Weka adalah software open source yang diterbitkan dibawah lisensi GNU General Public
License.
Pada Weka ada beberapa metode pemilihan variabel dari suatu dataset, diantaranya
BestFirst, ExhautiveSearch, FCBFSearch, GeneticSearch, GreedyStepwise, RaceSearch,
RandomSearch, Ranker dan RankerSearch.
8
Berikut tampilan dari Weka
Empat tombol diatas dapat digunakan untuk menjalanankan Aplikasi :
Explorer digunakan untuk menggali lebih jauh data dengan aplikasi WEKA
Experimenter digunakan untuk melakukan percobaan dengan pengujian statistic skema
belajar
Knowledge Flow digunakan untuk pengetahuan pendukung
Simple CLI antar muka dengan menggunakan tampilan command-line yang
memungkinkan langsung mengeksekusi perintah weka untuk Sistem Operasi yg tidak
menyediakan secara langsung
Pada bagian atas window, tepatnya pada bawah judul bar. Terdapat deretan data, seperti
Prepocess, Classify, Cluster, Associate,Select Attributes Visualize. Namun yang aktif hanya
Prepocess ini dikarenakan sebelum menggunakan algoritma diatas pastikan sudah melakukan set
file yang akan dieksekusi.
10
Weka dapat dijalankan berbasis GUI dan secara langsung melalui Command Line
(advanced users).
Metode atau Teknik yang digunakan Weka adalah Predictive dan Descriptive karena Weka
mendukung teknik-teknik data preprocessing, clustering, classification, regression,
visualization, and feature selection.Semua teknik Weka adalah didasarkan pada asumsi
bahwa data tersedia sebagai flat file tunggal atau hubungan, dimana setiap titik data
digambarkan oleh sejumlah tetap atribut.
Sesuai data yang telah kami dapatkan, maka parameter yang kami pakai untuk
menghasilkan keputusan adalah :
• Kategori Buku
• Pengarang Buku
• Harga Buku
• Tahun Terbit
• Sisa Buku
Alur Program
11
• Input Data dilakukan di dalam WEKA.
• Mengolah data yang sudah diinputkan menggunakan algoritma KNN.
• Proses SPK sesuai parameter yang telah ditentukan.
• Hasil Keputusan Buku yang Layak untuk dicetak ulang.
Flowchart Program
12
3.2 Entity Relationship Diagram
3.3 Perhitungan Secara Manual
3.3.1 Pemberian Bobot untuk masing-masing Parameter, yaitu :
Parameter Durasi Nilai Bobot
HargaBuku <50000 murah 3
50000-
100000
sedang 2
>100000 mahal 1
tahunTerbit <2005 lama 1
2006-2010 sedang 2
>2010 baru 3
Kategori <10 sedikit 1
10-30 sedang 2
13
>30 Banyak 3
PENULIS <3 Biasa 1
3-6 Sedang 2
>6 Terkenal 3
SISA <30 Sedikit 3
30-100 Sedang 2
>100 Banyak 1
3.3.2 Cara Pemberian Bobot pada Ms. Excel adalah :
a. Bobot Harga
b. Bobot Penulis
14
c. Bobot Sisa
d. Bobot Kategori
Setelah Bobot diketahui, menentukan nilai K dimana nilai K yang diambil adalah nilai K yang
berjumlah 1 (K=1).
Kemudian menghitung jarak data awal dengan data selanjutnya menggunakan rumus jarak
Euclidean.
D = Jarak Skalar antara kedua atribut
X1 = Atribut pertama dari record pertama
X2 = Atribut pertama dari record kedua
Y1 = Atribut pertama dari record pertama
Y2 = Atribut pertama dari record kedua
15
Contoh Perhitungan di excel
Setelah diketahui jarak euclideannya, kita dapat menentukan kelayakan suatu buku,
Dimana untuk Klasifikasi Layak, hasil perhitungan semua parameter antara nilai 0-2, Sedangkan
untuk tidak layak hasil perhitungan bernilai 2-4.
16
BAB IV
IMPLEMENTASI DAN PENGUJIAN
Program ini mengimplementasikan metode k-nearest neighbor (KNN) yang diawal kita
masukkan kedalam software WEKA yang kemudian juga kita hitung secara manual. Program ini
merupakan sebuah Sistem Pendukung Keputusan yang berhubungan dengan data mining. Untuk
proses pengujiannya kami lakukan dengan mengetes program serta database yang telah kami buat.
Berikut gambarannya.
4.1 Screenshoot Database
Struktur Database
Struktur table admin
Struktur table buku
17
Struktur table hasil_keputusan
Struktur table kategori
Struktur table penulis
Struktur table transaksi
18
4.2 Screenshoot Program
HALAMAN BERANDA
Slider :
<title>Teknik Informatika UBI</title>
<!-- slider -->
<link rel="stylesheet"
href="slider/themes/default/default.css"
type="text/css" media="screen"/>
<link rel="stylesheet"
href="slider/themes/light/light.css"
type="text/css" media="screen"/>
<link rel="stylesheet"
href="slider/themes/dark/dark.css"
type="text/css" media="screen"/>
<link rel="stylesheet"
href="slider/themes/bar/bar.css"
type="text/css" media="screen" />
<link rel="stylesheet" href="css/nivo-
slider.css" type="text/css" media="screen"
/>
<link rel="stylesheet"
href="css/style.css" type="text/css"
media="screen" />
<link href="img/a.png" rel="shortcut
icon"/>
</head>
<body>
<div id="utama">
<div class="slider-wrapper theme-
default" >
<div id="slider" class="nivoSlider">
<img src="uin_press/gb_4.jpg" data-
thumb="uin_press/gb_4.jpg" alt=""
title="Percetakan Buku UIN-Malkiki Press"
/></a>
<img src="uin_press/gb_2.jpg" data-
thumb="uin_press/gb_2.jpg" alt="" data-
transition="slideInLeft" title="Percetakan
Buku UIN-Malkiki Press" />
<img src="uin_press/gb_3.jpg" data-
thumb="uin_press/gb_3.jpg" alt=""
title="#htmlcaption" title="Percetakan
Buku UIN-Malkiki Press" />
</div>
<div id="htmlcaption" class="nivo-html-
caption">
<strong>This</strong> is an example
of a <em>HTML</em> caption with <a
href="#">a link</a>.
</div>
</div>
<script type="text/javascript"
src="js/jquery-1.9.0.min.js"></script>
<script type="text/javascript"
src="js/jquery.nivo.slider.js"></script>
<script type="text/javascript">
$(window).load(function() {
19
$('#slider').nivoSlider(); });</script></div>
Input Data
Aksi input
<?php
include '/config/koneksi.php';
$kode= $_POST["kode"];
$judul_buku=$_POST['judul_buku'];
$isbn=$_POST['isbn'];
$tahun=$_POST['tahun'];
$sisa_buku=$_POST['sisa_buku'];
$nama_kategori=$_POST['nama_kategor
i'];
$nama_penulis=$_POST['nama_penulis'
];
$harga=$_POST['harga'];
//query
$bu = "select id_kategori from
kategori WHERE
nama_kategori='$nama_kategori';";
$ek= mysql_query($bu) or
die(mysql_error());
while ($d = mysql_fetch_array($ek))
{
$xx=$d['id_kategori'];
}
$bu = "select id_penulis from
penulis WHERE nama_penulis
like'$nama_penulis%';";
$ek= mysql_query($bu) or
die(mysql_error());
while ($d = mysql_fetch_array($ek))
{
$yy=$d['id_penulis']; }
$eksekusi="INSERT INTO buku(kode,
judul_buku,isbn, tahun,
sisa_buku,id_kategori,id_penulis,
harga)
VALUES('$kode','$judul_buku','$isbn','$
tahun','$sisa_buku','$xx', '$yy',
'$harga')";
$hasil=mysql_query($eksekusi);
if ($hasil){
echo
"<script>window.alert('Berhasil
Disimpan');
window.location=('index.php?page=
databuku');</script>";
}else{
echo "<script>window.alert('Gagal
Disimpan');
error_reporting(E_ALL);</script>"
;
}
$eksekusi="INSERT INTO
hasil_keputusan(kode_buku) VALUES
('$kode')";
$hasil=mysql_query($eksekusi);
?>
20
Data Buku
<br> <center id="judul">Data Buku</center>
<div align="middle">
<ul align="middle">
<a href="grafik.php" class="button
navy" target="_blank"><span>Tampilkan
Chart</span></a>
</ul>
</div>
<table align="center" width="1097"
cellpadding="5" cellspacing="5"
bordercolor="#000000" bgcolor="#99FF99">
<tr bordercolor="#FF69B4">
<th
<th width="64" scope="col">Kode</th>
<th width="275" scope="col">Judul
Buku</th>
<th width="73" scope="col">ISBN</th>
<th width="68" scope="col">Tahun</th>
<th width="76"
scope="col">Kategori</th>
<th width="67"
scope="col">Penulis</th>
<th width="78" scope="col">Stok
Buku</th>
</tr>
<?php
include "config/koneksi.php";
$batas = 20; //satu halaman
menampilkan 10 baris $posisi = null;
if(empty($_GET['halaman']) OR
$_GET['halaman']=='1'){
$posisi=0;
$halaman=1;
$no=1;
}else{
$halaman = $_GET['halaman'];
$posisi=($halaman-1)* $batas;
$no=(($halaman-1)*$batas)+1;
}
//query
$query = "select kode,
judul_buku, isbn, tahun, nama_kategori,
nama_penulis, sisa_buku from buku b,
kategori k, penulis p where
b.id_kategori=k.id_kategori and
b.id_penulis=p.id_penulis limit
$posisi,$batas";
$eksekusi = mysql_query($query) or
die(mysql_error());
while ($data =
mysql_fetch_array($eksekusi)) {
?>
<tr bgcolor=\"".$warna."\">
<td bgcolor="FFFFFF"><center><?php
echo $data['kode']?></center></td>
21
<td bgcolor="FFFFFF"><left><?php
echo $data['judul_buku']; ?></left></td>
<td bgcolor="FFFFFF"><center><?php
echo $data['isbn']?></center></td>
<td bgcolor="FFFFFF"><left><?php
echo $data['tahun']; ?></left></td>
<td bgcolor="FFFFFF"><center><?php
echo
$data['nama_kategori']?></center></td>
<td bgcolor="FFFFFF"><left><?php
echo $data['nama_penulis']; ?></left></td>
<td bgcolor="FFFFFF"><left><?php
echo $data['sisa_buku']; ?></left></td>
</tr>
<?php $no++;
}
?>
</table>
<br>
<center id="page">
<?php $sql_paging = mysql_query("select * from
buku");
$jmldata = mysql_num_rows($sql_paging);
$jumlah_halaman = ceil($jmldata / $batas);
echo "Halaman :";
for($i = 1; $i <= $jumlah_halaman;
$i++)
if($i != $halaman) {
echo "<a
href=?page=databuku&halaman=$i>$i</a>|";
} else {
echo "<b>$i</b>|";
}
mysql_close();
?>
Jumlah data :<?php echo
$jmldata;?></center>
Tampilan Grafik
<?php
include ("modul/jpgraph.php");
include ("modul/jpgraph_bar.php");
$dataJum = array();
$dataTh = array();
mysql_connect("localhost","root","");
mysql_select_db("uin_press");
$query = "SELECT tahun, COUNT( * ) AS
jumlah FROM buku GROUP BY tahun";
$hasil = mysql_query($query);
while ($data =
mysql_fetch_array($hasil)) {
array_unshift($dataJum,
$data['jumlah']);
array_unshift($dataTh,
$data['tahun']);
}
$graph = new Graph(1000,500,"auto");
$graph->SetScale("textlin");
22
// menampilkan plot batang dari data
jumlah penduduk
$bplot = new BarPlot($dataJum);
$graph->Add($bplot);
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set("Grafik Jumlah Buku
Per Tahun di UIN Press");
$graph->xaxis->title->Set("Tahun");
$graph->yaxis->title->Set("Jumlah");
$graph->xaxis->SetTickLabels($dataTh);
$graph->title-
>SetFont(FF_FONT1,FS_BOLD);
$bplot->SetFillColor("green");
$graph->SetShadow();
$graph->Stroke();
?
Halaman SPK Kelayakan Cetak Ulang Buku
Hitungan SPK
23
<?php set_time_limit(100);
include '/config/koneksi.php';
//count
$kon=mysql_query("select * from buku");
$jmldata = mysql_num_rows($kon);
//echo $jmldata."<br>";
$jml=$jmldata;
for($i = 1; $i <= $jml; $i++){
$dua=$i+1;
//KATEGORI1
$kat1="SELECT k.bobot_kategori,
b.judul_buku, b.no, b.kode FROM kategori
k, buku b WHERE b.id_kategori =
k.id_kategori AND b.no =$i;";
$has_kat1 = mysql_query($kat1) or
die(mysql_error());
while ($dat_kat1 =
mysql_fetch_array($has_kat1)) {
$bot_kat1=$dat_kat1['bobot_kategor
i'];
$kode1=$dat_kat1['kode'];
$nomor=$dat_kat1['no'];
$judul=$dat_kat1['judul_buku'];
}
//KATEGORI2
$kat2="SELECT k.bobot_kategori FROM
kategori k, buku b WHERE b.id_kategori =
k.id_kategori AND b.no =$i+1;";
$has_kat2 = mysql_query($kat2) or
die(mysql_error());
while ($dat_kat2 =
mysql_fetch_array($has_kat2)) {
$bot_kat2=$dat_kat2['bobot_kategor
i'];
}
//penulis1
$pen1="SELECT p.bobot_penulis FROM
penulis p, buku b WHERE b.id_penulis =
p.id_penulis AND b.no = $i;";
$has_pen1 = mysql_query($pen1) or
die(mysql_error());
while ($dat_pen1 =
mysql_fetch_array($has_pen1)) {
$bot_pen1=$dat_pen1['bobot_penulis
'];
}
//penulis2
$pen2="SELECT p.bobot_penulis FROM
penulis p, buku b WHERE b.id_penulis =
p.id_penulis AND b.no = $i+1;";
$has_pen2= mysql_query($pen2) or
die(mysql_error());
while ($dat_pen2 =
mysql_fetch_array($has_pen2)) {
$bot_pen2=$dat_pen2['bobot_penulis
'];
}
//tahun1
$tah1="select tahun from buku where no =
$i;"; $has_tah1 = mysql_query($tah1) or
die(mysql_error());
while ($dat_tah1 =
mysql_fetch_array($has_tah1)) {
$bt1=$dat_tah1['tahun'];
if($bt1<2005){
$bot_tah1=1;
}else if($bt1>2010){
$bot_tah1=3;
}else{
$bot_tah1=2;
}
}
//tahun2
$tah2="select tahun from buku where no =
$i+1;";
$has_tah2 = mysql_query($tah2) or
die(mysql_error());
while ($dat_tah2 =
mysql_fetch_array($has_tah2)) {
$bt2=$dat_tah2['tahun'];
if($bt2<2005){
$bot_tah2=1;
}else if($bt2>2010){
$bot_tah2=3;
}else{
$bot_tah2=2;
}
}
//harga1
$har1="select harga from buku where no =
$i";
$has_har1 = mysql_query($har1) or
die(mysql_error());
while ($dat_har1 =
mysql_fetch_array($has_har1)) {
$bh1=$dat_har1['harga'];
if($bh1<50000){
$bot_har1=3;
}else if($bh1>100000){
$bot_har1=1;
}else{
$bot_har1=2;
}
}
//harga2
$har2="select harga from buku where no =
$i+1";
$has_har2 = mysql_query($har2) or
die(mysql_error());
while ($dat_har2 =
mysql_fetch_array($has_har2)) {
$bh2=$dat_har2['harga'];
if($bh2<50000){
$bot_har2=3;
}else if($bh2>100000){
$bot_har2=1;
}else{
$bot_har2=2;
}
}
24
//sisa1
$sis1="select sisa_buku from buku where
no = $i;";
$has_sis1 = mysql_query($sis1) or
die(mysql_error());
while ($dat_sis1 =
mysql_fetch_array($has_sis1)) {
$sisa1=$dat_sis1['sisa_buku'];
}
if($sisa1<30){
$bobot_sisa1=3;
}else if($sisa1>100){
$bobot_sisa1=1;
//echo "bobot
sisa".$i.">>".$bobot_sisa1."<br>";
}else{
$bobot_sisa1=2;
//echo "bobot
sisa".$i.">>".$bobot_sisa1."<br>";
}
}
//sisa2
$sis2="select sisa_buku from buku where
no = $i+1;";
$has_sis2 = mysql_query($sis2) or
die(mysql_error());
while ($dat_sis2 =
mysql_fetch_array($has_sis2)) {
$sisa2=$dat_sis2['sisa_buku'];
//echo" sisa2>>".$sisa2."<br>";
}
if($sisa2<10){
$bobot_sisa2=3;
}else if($sisa2>30){ $bobot_sisa2=1;
}else{
$bobot_sisa2=2;
}
//rumus eucledien
$e=SQRT((($bot_kat1-
$bot_kat2)^2)+(($bot_pen1-
$bot_pen2)^2)+(($bot_tah1-
$bot_tah2)^2)+(($bot_har1-
$bot_har2)^2)+(($bobot_sisa1-
$bobot_sisa2)^2));
//kode
$koo="select kode from buku where no =
$i;";
$has_k = mysql_query($koo) or
die(mysql_error());
while ($dat_k =
mysql_fetch_array($has_k)) {
$kk=$dat_k['kode'];
}
if ($e<2){
$ket="Layak";
}else{
$ket="Tidak Layak";
}
$up="update hasil_keputusan set
eucledien='$e', keterangan='$ket' where
kode_buku='$kk';";
$hasil=mysql_query($up);
Cetak Hasil Perhitungan
25
Data Hasil Keputusan
<?php include "/config/koneksi.php";
$s2="SELECT SUM( total_uang) as total
FROM transaksi";
$q2=mysql_query($s2);
while($rw2=mysql_fetch_array($q2)) {
$hasil=number_format($rw2['total']
,0,",",".");
echo"
<center><label><strong>Jumlah Uang :
Rp.
".$hasil."</strong></label></center>";
}
?>
<table align="center" width="1097"
cellpadding="5" cellspacing="5"
bordercolor="#000000" bgcolor="#99FF99">
<title>Hasil Keputusan Kelayakan
Percetakan Ulang Buku UIN-Maliki
Press</title> <link type="text/css" href="style.css"
rel="stylesheet"/>
<link href="images/logo.jpg"
rel="shortcut icon"/>
<tr bordercolor="#FF69B4">
<th width="64"
scope="col">Kode</th>
<th width="275" scope="col">Judul
Buku</th>
<th width="73"
scope="col">ISBN</th>
<th width="68"
scope="col">Tahun</th>
<th width="76"
scope="col">Kategori</th>
26
<th width="67"
scope="col">Penulis</th>
<th width="67"
scope="col">stok</th>
<th width="67"
scope="col">Harga</th>
<th width="67"
scope="col">Keputusan</th>
</tr>
<?php
include "config/koneksi.php";
$q = "select sum(total_uang) as hasil
from transaksi;";
$e = mysql_query($q) or
die(mysql_error());
while ($d = mysql_fetch_array($e))
{
$hasil=$d['hasil'];
}
if ($hasil<=5000000){
$query = "select b.kode, b.no,
b.judul_buku, b.sisa_buku, b.harga,
b.isbn, b.tahun, k.nama_kategori,
p.nama_penulis, h.eucledien from penulis
p, buku b, kategori k, hasil_keputusan h
where b.id_kategori=k.id_kategori and
b.id_penulis=p.id_penulis and
b.kode=h.kode_buku and
h.keterangan='Layak' and b.sisa_buku<10
order by h.eucledien asc limit 5";
$eksekusi = mysql_query($query) or
die(mysql_error());
while ($data =
mysql_fetch_array($eksekusi)) {
$id_buku=$data['kode'];
?>
<tr bgcolor=\"".$warna."\">
<td bgcolor="FFFFFF"><center><?php
echo $data['kode']?></center></td>
<td bgcolor="FFFFFF"><?php echo
$data['judul_buku']; ?></td>
<td bgcolor="FFFFFF"><center><?php
echo $data['isbn']?></center></td>
<td bgcolor="FFFFFF"><?php echo
$data['tahun']; ?></td>
<td bgcolor="FFFFFF"><center><?php
echo
$data['nama_kategori']?></center></td>
<td bgcolor="FFFFFF"><?php echo
$data['nama_penulis']; ?></td>
<td bgcolor="FFFFFF"><?php echo
$data['sisa_buku']; ?></td>
<td bgcolor="FFFFFF"><?php echo
$data['harga']; ?></td>
<td bgcolor="FFFFFF"><a
href="print_cetak.php?no=<?php echo
$id_buku;?>" target="_blank">cetak
Buku</a></td>
</tr>
<?php
}
}else if($hasil>5000000){
$query = "select b.kode, b.no,
b.judul_buku, b.sisa_buku, b.harga,
b.isbn, b.tahun, k.nama_kategori,
p.nama_penulis, h.eucledien from penulis
p, buku b, kategori k, hasil_keputusan h
where b.id_kategori=k.id_kategori and
b.id_penulis=p.id_penulis and
b.kode=h.kode_buku and
h.keterangan='Layak' and b.sisa_buku<10
order by h.eucledien asc limit 10";
$eksekusi = mysql_query($query) or
die(mysql_error());
while ($data =
mysql_fetch_array($eksekusi)) {
$id_buku=$data['kode'];
?>
<tr bgcolor=\"".$warna."\">
<td bgcolor="FFFFFF"><center><?php
echo $data['kode']?></center></td>
<td bgcolor="FFFFFF"><?php echo
$data['judul_buku']; ?></td>
<td bgcolor="FFFFFF"><center><?php
echo $data['isbn']?></center></td>
<td bgcolor="FFFFFF"><?php echo
$data['tahun']; ?></td>
<td bgcolor="FFFFFF"><center><?php
echo
$data['nama_kategori']?></center></td>
<td bgcolor="FFFFFF"><?php echo
$data['nama_penulis']; ?></td>
<td bgcolor="FFFFFF"><?php echo
$data['sisa_buku']; ?></td>
<td bgcolor="FFFFFF"><?php echo
$data['harga']; ?></td>
<td bgcolor="FFFFFF"><a
href="print_cetak.php?no=<?php echo
$id_buku;?>" target="_blank">cetak
Buku</a></td>
</tr>
<?php
}
}
?>
</table>
<table align="center">
<tr>
<td><a href="print.php" class="button
navy" target="_blank"><span>Cetak Hasil
Keputusan</span></a></td>
</tr>
</table>
</form>
28
<BODY onload="window.print()"> <link href="images/logo.jpg"
rel="shortcut icon"/>
<FORM method="get" action="proses.asp">
<div style="margin-top:0px; margin-
left:0px;" align="center">
<div class="col-lg-2">
<img src="images/logo.jpg" alt=""
style="margin-top:10px; width:100px;
margin-left:-550px;">
</div>
<div class="col-lg-10">
<h2 style="margin-top:-80px; margin-
left:110px;">SISTEM PENDUKUNG
KEPUTUSAN</h2>
<h2 style="margin-top: -20px; margin-
left:110px;">KELAYAKAN PERCETAKAN ULANG
BUKU</h2>
<h3 style="margin-top:-15px; margin-
left:110px;">DI UIN PRESS</h2>
<HR width="100%" align="left">
</div>
</form>
<h3><b>Cetak Buku</b></h3>
<form name="form1" action=""
method="post">
<table align="center" cellspacing="0"
width="300">
<?php
include "/config/koneksi.php";
$id_buku=$_GET['no'];
$query = "select b.kode,b.harga,
b.judul_buku, b.isbn, b.tahun,
k.nama_kategori, p.nama_penulis,
h.eucledien from penulis p, buku b,
kategori k, hasil_keputusan h where
b.id_kategori=k.id_kategori and
b.id_penulis=p.id_penulis and
b.kode=h.kode_buku and
h.keterangan='Layak' and
b.kode='$id_buku';";
$eksekusi = mysql_query($query) or
die(mysql_error());
$data = mysql_fetch_array($eksekusi);
$ctak=100;
$h=$data['harga'];
$buku=$data['kode'];
$jml_masuk=$h * $ctak;
$total_uang= $jml_keluar-$jml_masuk ;
?>
<tr><td width="30" valign="top">ID
BUKU</td><td>:</td><td><?php echo
$id_buku;?></td></tr>
<tr><td valign="top">Judul Buku</td><td
valign="top">:</td><td><?php echo
$data['judul_buku'] ;?></td>
</tr>
<tr><td valign="top">ISBN</td><td
valign="top">:</td><td><?php echo
$data['isbn'] ;?></td> </tr>
<tr><td>Tahun</td><td
valign="top">:</td><td><?php echo
$data['tahun'] ;?></td></tr>
<tr><td valign="top">Kategori</td><td
valign="top">:</td><td><?php echo
$data['nama_kategori'] ;?></td></tr>
<tr><td valign="top">Penulis</td><td
valign="top">:</td><td><?php echo
$data['nama_penulis'] ;?></td></tr>
<tr><td valign="top">harga</td><td
valign="top">:</td><td><?php echo
"Rp.".number_format($data['harga'],0,",
",".");?></td></tr><tr><td
valign="top">Jumlah Cetak</td><td
valign="top">:</td><td><?php echo
$ctak." Eksemplar"?></td></tr>
<tr><td valign="top">Total</td><td
valign="top">:</td><td><?php echo
"Rp.".number_format($jml_masuk,0,",",".
") ;?></td></tr>
</table>
<?php
$q = "select count(*) as jumlah from
transaksi;";
$e = mysql_query($q) or
die(mysql_error());
while ($d = mysql_fetch_array($e)) {
$j=$d['jumlah'];
}
$id_transaksi="t".($j+1);
$dat=date(', d-M-y');
$time=date('l').$dat;
$buku_masuk=100;
$jml_keluar=0;
//hitungan jumlah
$eksekusi="INSERT INTO
transaksi(id_transaksi,
tanggal_transaksi, id_buku, buku_masuk,
total_masuk, total_uang) VALUES
('$id_transaksi','$time','$buku',
'$buku_masuk', '$jml_masuk',
'$total_uang')";
$hasil=mysql_query($eksekusi);
if ($hasil)
{
}
else{
echo "
<script>window.alert('Gagal Disimpan');
error_reporting(E_ALL);
</script>";
}
?>
29
Taransaksi
<?php
include '/config/koneksi.php';
$id_transaksi= $_POST["id_transaksi"];
if(isset($_POST['submit'])){
$id_buku=$_POST['kkk'];
}
$buku_keluar=$_POST['buku_keluar'];
$dat=date(', d-M-y');
$time=date('l').$dat;
$buku_masuk=$_POST['buku_masuk'];
$harga = "select harga from buku where
kode='$id_buku';";
$e = mysql_query($harga) or
die(mysql_error());
while ($d = mysql_fetch_array($e)) {
$h=$d['harga'];
}
//hitungan jumlah
$jml_keluar = $h * $buku_keluar;
$jml_masuk=$h * $buku_masuk;
$total_uang= $jml_keluar-$jml_masuk ;
$eksekusi="INSERT INTO
transaksi(id_transaksi,
tanggal_transaksi, id_buku,
buku_keluar, total_keluar, total_uang)
VALUES
('$id_transaksi','$time','$id_buku',
'$buku_keluar',
'$jml_keluar','$total_uang')";
$hasil=mysql_query($eksekusi);
if ($hasil){
echo "
<script>window.alert('Berhasil
Disimpan');
</script>
";
}else{
echo "
<script>window.alert('Gagal
Disimpan');
error_reporting(E_ALL);
</script>
30
";
}
//query
$q = "select *from transaksi where
id_buku='$id_buku';";
$e = mysql_query($q) or
die(mysql_error());
while ($d = mysql_fetch_array($e)) {
}
$bu= "select sisa_buku FROM buku where
kode='$id_buku' ";
$ek= mysql_query($bu) or
die(mysql_error());
while ($d = mysql_fetch_array($ek)) {
$xx=$d['sisa_buku'];
$jumlah=$xx- $buku_keluar;
}
$update="UPDATE `buku` SET
sisa_buku='$jumlah' WHERE
kode='$id_buku'";
$hasil=mysql_query($update);
if ($hasil){
echo"<script>window.location=('in
dex.php?page=transaksi')</script>";
}else{
echo "gagal";
}
?>
Halaman Transaksi
Halaman ini berfungsi untuk mengetahui proses transaksi sekaligus proses perhitungan
dari transaksi itu sendiri. Sehingga diketahui berapa buku yang dicetak dan terjual serta proses
pemasukan dan pengeluaran uang.
31
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Dari program dan laporan yang sudah kami buat maka dapat diambil beberapa kesimpulan
sebagai berikut :
- Data mining adalah proses untuk menemukan pengetahuan yang menarik dari data dalam
jumlah besar.Data mining ini termasuk dalam bidang antar cabang ilmu pengetahuan
dengan kontribusi dari banyak bidang, seperti statistik, pembelajaran mesin, pencarian
informasi, pengenalan pola dan bioinformatika. Data mining secara luas digunakan dalam
banyak domain, seperti ritel, finance, telekomunikasi dan media social
- Sistem Pendukung Keputusan (SPK) adalah sistem berbasis komputer interaktif, yang
membantu para pengambil keputusan untuk menggunakan data dan berbagai model untuk
memecahkan masalah-masalah tidak terstruktur.
- Algoritma k-nearest neighbor (KNN) adalah sebuah metode untuk
melakukan klasifikasi terhadap objek berdasarkan data pembelajaran yang jaraknya paling
dekat dengan objek tersebut. KNN termasuk algoritma supervised learning dimana hasil
dari query instance yang baru diklasifikan berdasarkan mayoritas dari kategori pada KNN.
Nanti kelas yang paling banyak muncullah yang akan menjadi kelas hasil klasifikasi.
- Weka ( Waikato Environment for Knowladge Analysis ) adalah aplikasi data mining open
source berbasis Java. Aplikasi ini dikembangkan pertama kali oleh Universitas Waikato di
Selandia Baru. Weka terdiri dari koleksi algoritma machine learning yang dapat digunakan
untuk melakukan generalisasi / formulasi dari sekumpulan data sampling. Algoritma ini
bisa diterapkan secara langsung ke dalam dataset atau bisa juga dipanggil dari kode java
kita sendiri. Weka memiliki tools untuk data pre-processing, classification, regression,
clustering, association rules, dan visualization.
- Aplikasi yang kami buat adalah SPK Kelayakan Percetakan Ulang Buku di UIN Maliki
Press. Dalam Aplikasi ini kami menggunakan metode KNN yang kami terapkan dalam
Software WEKA untuk proses perhitungan awal. Selanjutnya kami lakukan perhitungan
secara manual dengan metode yang sama. Selanjutnya dalam aplikasi SPK ini ada ada
beberapa table yang berisi kriteria untuk proses pembobotan. Dengan program ini kita bisa
32
mengetahui apakah sebuah buku itu layak untuk dicetak ulang atau tidak berdasarkan
kriteria yang telah ditentukan dan pembobtan nilai yang telah dihitung.
5.2 SARAN
Program ini sudah bisa menentukan kelayakan cetak ulang sebuah buku namun masih bisa
dikembangkan lagi terutama dibagian admin dan user sehingga akan ada komunikasi 2 arah antara
admin dan user.
33
DAFTAR PUSTAKA
Subakti, Irfan. 2002. Buku Panduan SPK. ITS Surabaya.
http://www.trigunadharma.ac.id/media/materi/Modul%20Klasifikasi%20Decission%20Tree-
Modul%20Klasifikasi.pdf diakses tanggal 15 Oktober 2014
http://andiliee.wordpress.com diakses tanggal 15 Oktober 2014
http://kitaicha.blogspot.com diakses tanggal 30 Oktober 2014
Nadjamuddin Harun, M, Amil Ahmad Ilham, Arwansyah. 2012.Spk Penentuan Jenis Tanaman
Pangan Menggunakan Metode Ahp Berbasis Data Mining Menggunakan Algoritma Cart
(Clasification And Regretion Tree), Universitas Hasanuddin vol. 3 No. 3
http://bigstonewlg.blogspot.com diakses tanggal 7 November 2014
http://tahuituenak.blogspot.com/2014/04/contoh-perhitungan-metode-pohon.html
http://tugaskuliah-
sabanamulia.blogspot.comhttp://radhiyatulfajri.wordpress.com/2011/11/08/weka-software-
for-data-mininghttp://yanuarimaesa.blogspot.com/2013/09/data-mining-data-
wherehouse.html https://id.scribd.com/doc/57208138/Metode-Algoritma-KNN
http://sharewy.blogspot.com/2013/04/algoritma-k-nearest-neighbor-knn_16.html
34
LAMPIRAN 1
Rekapitulasi Nilai Progress Kelompok SIC 2014
Judul : SPK Kelayakan Percetakan Ulang Buku di UIN Maliki PRESS dengan Metode KNN
Kelas : A Hari : Jum’at
No Tanggal Progress Review Nilai
1 03-Okt-14 70
2 10-Okt-14 Bagaimana cara mengimplementasikan Algoritma C.50 dalam WEKA? 75
3 17-Okt-14 Bagaimana cara Simulasi Algoritma KNN? 75
4 - tidak Progress 0
5 31-Okt-14 75
6 08-Nop-14 75
7 15-Nop-14 75
8 21-Nop-14
Interface untuk Masukan Data, Interface untuk mengelola data yang akan 75
dihitung dalam jumlah banyak, Penambahan Output Kuota. 75
9 29-Nop-14 Perhitungan Manual tentang Algoritma KNN 75
10 05-Des-14 Hitung Manual dan Stepnya KNN dirapikan kembali & Implementasi SPKnya 75
11 12-Des-14 Dirapikan lagi tampilannya dan membuat chartnya. 95
Nilai Akhir Progress 76,36
35
LAMPIRAN 2
FORM UJI COBA PROGRAM
Uji Elemen
Status
Berjalan Belum
Halaman Utama
1. Beranda
2. Input Data
3. Data Buku
Grafik Buku Pertahun
4. SPK kelayakan cetak ulang
Nilai SPK
Hitung SPK
Cetak Hasil Perhitungan
Hasil keputusan Setelah Filtering
Cetak Buku
5. Transaksi