SPK Kelayakan Cetak Ulang Buku

36
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)

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.

9

Berikut tampilannya jika kita sudah menginputkan data dalam bentuk file.csv

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>

27

Hasil Keputusan Setelah Filtering

Cetak Buku

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

36

LAMPIRAN 3