Contoh implementasi Data Mining dengan Algoritma C4.5 menggunakan PHP dan MySQL untuk analisis prediksi masa studi mahasiswa
Algoritma C4.5
Contoh implementasi Data Mining dengan Algoritma C4.5 menggunakan PHP dan MySQL untuk analisis prediksi masa studi mahasiswa .
Dalam artikel ini akan ditunjukkan penerapan algoritma C4.5 dengan tehnik klasifikasi yang merupakan salah satu tehnik Data Mining untuk menganalisa prediksi masa studi mahasiswa. Akan ditunjukkan juga langkah-langkah pembuatan aplikasinya dengan bahasa pemrograman PHP dan database MySQL.
1. Pendahuluan
Algoritma C4.5 merupakan kelompok algoritma Decision Tree. Algoritma ini mempunyai input berupa training samples dan samples. Training samples berupa data contoh yang akan digunakan untuk membangun sebuah tree yang telah diuji kebenarannya. Sedangkan samples merupakan field-field data yang nantinya akan digunakan sebagai parameter dalam melakukan klasifikasi data (Sunjana, 2010
)
Algoritma C 4.5 adalah salah satu metode untuk membuat decision tree berdasarkan training data yang telah disediakan. Algoritma C 4.5 dibuat oleh Ross Quinlan yang merupakan pengembangan dari ID3 yang juga dibuat oleh Quinlan (Quinlan, 1993
). Beberapa pengembangan yang dilakukan pada C4.5 antara lain adalah : bisa mengatasi missing value, bisa mengatasi continue data, dan pruning.
1.1. Klasifikasi
Klasifikasi data merupakan suatu proses yang menemukan properti-properti yang sama pada sebuah himpunan obyek di dalam sebuah basis data dan mengklasifikasikannya ke dalam kelas-kelas yang berbeda menurut model klasifikasi yang ditetapkan. Tujuan dari klasifikasi adalah untuk menemukan model dari training set yang membedakan atribut ke dalam kategori atau kelas yang sesuai, model tersebut kemudian digunakan untuk mengklasifikasikan atribut yang kelasnya belum diketahui sebelumnya. Teknik klasifikasi terbagi menjadi beberapa teknik yang diantaranya adalah Pohon Keputusan (Decision Tree).
1.2. Pohon Keputusan (Decision Tree)
Pohon keputusan merupakan metode klasifikasi dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang merepresentasikan aturan. Aturan dapat dengan mudah dipahami dengan bahasa alami. Dan mereka juga dapat diekspresikan dalam bentuk bahasa basis data seperti Structured Query Language untuk mencari record pada kategori tertentu. Pohon keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target.
Karena pohon keputusan memadukan antara eksplorasi data dan pemodelan, pohon keputusan sangat bagus sebagai langkah awal dalam proses pemodelan bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain. Sebuah pohon keputusan adalah sebuah struktur yang dapat digunakan untuk membagi kumpulan data yang besar menjadi himpunan-himpunan record yang lebih kecil dengan menerapkan serangkaian aturan keputusan. Dengan masing-masing rangkaian pembagian, anggota himpunan hasil menjadi mirip satu dengan yang lain (Berry dan Linoff, 2004
).
Sebuah model pohon keputusan terdiri dari sekumpulan aturan untuk membagi sejumlah populasi yang heterogen menjadi lebih kecil, lebih homogen dengan memperhatikan pada variabel tujuannya. Sebuah pohon keputusan mungkin dibangun dengan seksama secara manual atau dapat tumbuh secara otomatis dengan menerapkan salah satu atau beberapa algoritma pohon keputusan untuk memodelkan himpunan data yang belum terklasifikasi.
Variabel tujuan biasanya dikelompokkan dengan pasti dan model pohon keputusan lebih mengarah pada perhitungan probability dari tiap-tiap record terhadap kategori-kategori tersebut atau untuk mengklasifikasi record dengan mengelompokkannya dalam satu kelas. Pohon keputusan juga dapat digunakan untuk mengestimasi nilai dari variabel continue meskipun ada beberapa teknik yang lebih sesuai untuk kasus ini.
Banyak algoritma yang dapat dipakai dalam pembentukan pohon keputusan,antara lain ID3, CART, dan C4.5 (Larose, 2006
).
Data dalam pohon keputusan biasanya dinyatakan dalam bentuk tabel dengan atribut dan record. Atribut menyatakan suatu parameter yang dibuat sebagai kriteria dalam pembentukan pohon. Misalkan untuk menentukan main tenis, kriteria yang diperhatikan adalah cuaca, angin, dan temperatur.
Salah satu atribut merupakan atribut yang menyatakan data solusi per item data yang disebut target atribut. Atribut memiliki nilai-nilai yang dinamakan dengan instance. Misalkan atribut cuaca mempunyai instance berupa cerah, berawan, dan hujan (Basuki dan Syarif, 2003
)
Proses pada pohon keputusan adalah mengubah bentuk data (tabel) menjadi model pohon, mengubah model pohon menjadi rule, dan menyederhanakan rule (Basuki dan Syarif, 2003
).
1.3. Algoritma C4.5
Berikut ini algoritma dasar dari C4.5:
Input : sampel training, label training, atribut
Output : pohon keputusan
- Membuat simpul akar untuk pohon yang dibuat
- Jika semua sampel positif, berhenti dengan suatu pohon dengan satu simpul akar, beri tanda (+)
- Jika semua sampel negatif, berhenti dengan suatu pohon dengan satu simpul akar, beri tanda (-)
- Jika atribut kosong, berhenti dengan suatu pohon dengan suatu simpul akar, dengan label sesuai nilai yang terbanyak yang ada pada label training
- Untuk yang lain, Mulai
- A ------ atribut yang mengklasifikasikan sampel dengan hasil terbaik (berdasarkan Gain rasio)
- Atribut keputusan untuk simpul akar ----- A
- Untuk setiap nilai, vi, yang mungkin untuk A
- Tambahkan cabang di bawah akar yang berhubungan dengan A= vi
- Tentukan sampel Svi sebagai subset dari sampel yang mempunyai nilai vi untuk atrribut A
- Jika sampel Svi kosong
- Di bawah cabang tambahkan simpul daun dengan label = nilai yang terbanyak yang ada pada label training
- Yang lain tambah cabang baru di bawah cabang yang sekarang C4.5 (sampel training, label training, atribut-[A])
- Berhenti
Secara umum algoritma C4.5 untuk membangun pohon keputusan adalah sebagai berikut (Craw 2005
).
- Pilih atribut sebagai akar
- Buat cabang untuk masing-masing nilai
- Bagi kasus dalam cabang
- Ulangi proses untuk masing-masing cabang sampai semua kasus pada cabang memiliki kelas yang sama.
1.3.1 Gain
Untuk memilih atribut sebagai akar, didasarkan pada nilai gain tertinggi dari atribut-atribut yang ada. Untuk menghitung gain digunakan rumus seperti tertera dalam persamaan [C45-01] (Quinlan 1993, Craw 2005
).
- S : Himpunan Kasus
- A : Atribut
- n : Jumlah partisi atribut A
- |Si| : Jumlah Kasus pada partisi ke-i
- |S| : Jumlah Kasus dalam S
1.3.2. Entropy
Sedangkan penhitungan nilai entropy dapat dilihat pada persamaan [C45-02] berikut ini (Quinlan 1993, Craw 2005
).
- S : Himpunan Kasus
- n : Jumlah partisi atribut S
- pi : Proporsi dari Si terhadap S
1.3.3. Information Gain
Information gain adalah salah satu attribute selection measure yang digunakan untuk memilih test attribute tiap node pada tree. Atribut dengan informasi gain tertinggi dipilih sebagai test atribut dari suatu node (Sunjana, 2010
). Dalam prosesnya perhitungan gain bisa terjadi atau tidak suatu missing value.
1.4. Prinsip Kerja
Pada tahap pembelajaran algoritma C4.5 memiliki 2 prinsip kerja yaitu:
- Pembuatan pohon keputusan. Tujuan dari algoritma penginduksi pohon keputusan adalah mengkontruksi struktur data pohon yang dapat digunakan untuk memprediksi kelas dari sebuah kasus atau record baru yang belum memiliki kelas. C4.5 melakukan konstruksi pohon keputusan dengan metode divide and conquer. Pada awalnya hanya dibuat node akar dengan menerapkan algoritma divide and conquer. Algoritma ini memilih pemecahan kasus-kasus yang terbaik dengan menghitung dan membandingkan gain ratio, kemudian node-node yang terbentuk di level berikutnya, algoritma divide and conquer akan diterapkan lagi sampai terbentuk daun-daun.
- Pembuatan aturan-aturan (rule set). Aturan-aturan yang terbentuk dari pohon keputusan akan membentuk suatu kondisi dalam bentuk if-then. Aturan-aturan ini didapat dengan cara menelusuri pohon keputusan dari akar sampai daun. Setiap node dan syarat percabangan akan membentuk suatu kondisi atau suatu if, sedangkan untuk nilai-nilai yang terdapat pada daun akan membentuk suatu hasil atau suatu then.
2. Studi Kasus dan Perhitungan Manual
Untuk membantu pemahaman terhadap algoritma C4.5 dalam tehnik klasifikasi masalah, berikut disertakan contoh perhitungan manual analisis prediksi masa studi mahasiswa dengan menggunakan algortima C4.5.
- Data yang digunakan BUKAN merupakan data real, tapi data yang digenerate secara otomatis dari sistem
- Data dan Nilai Perhitungan yang ditampilkan akan SELALU BERBEDA jika halaman di refresh/reload
- Jumlah Dataset yang diperhitungkan, digenerate secara acak/random antara 100 s.d 400
- Nilai dari masing-masing dataset ditampilkan secara acak/random
Seiring dengan berkembangnya teknologi penyimpanan data, semakin berkembang pula kemampuan seseorang dalam mengumpulkan dan mengolah data. Data yang terkumpul dan berukuran besar tersebut merupakan aset yang dapat dimanfaatkan untuk dianalisis yang hasilnya berupa pengetahuan atau informasi berharga untuk masa mendatang. Tidak hanya dunia bisnis, namun instansi seperti perguruan tinggi juga mengalami penumpukan data.
Jurusan Teknik Komputer Universitas Antah Berantah adalah program pendidikan tinggi yang memiliki beban studi sekurang-kurangnya 144 SKS (satuan kredit semester) yang dijadwalkan untuk 8 semester dan dapat ditempuh dalam waktu kurang dari 8 semester dan paling lama 14 semester. Dari data kelulusan yang diperoleh dari sekretariat Jurusan Teknik Komputer Program Sarjana (S1) angkatan 2019 hanya 2 orang mahasiswa yang lulus dalam 8 semester. Hal ini menunjukkan bahwa masih banyak mahasiswa Program Sarjana (S1) reguler di Jurusan Teknik Komputer yang menempuh lama studi lebih dari 8 semester.
Melihat kondisi tersebut diperlukan penelitian untuk menggali data yang dimiliki oleh Jurusan Teknik Komputer. Data yang akan dimanfaatkan disini adalah data nilai akademik mahasiswa baik yang sudah lulus (yang akan digunakan sebagai data training dan data testing) maupun yang belum lulus/yang sedang menempuh studi yang akan digunakan untuk memprediksi masa studi masing-masing mahasiswa. Penelitian ini dirasa perlu karena jika masa studi mahasiswa dapat diketahui lebih dini, maka pihak jurusan dapat melakukan tindakan-tindakan yang dirasa perlu supaya mahasiswa dapat lulus tepat waktu sekaligus meningkatkan kualitas jurusan itu sendiri.
Dibutuhkan suatu teknik klasifikasi yang merupakan salah satu teknik dari data mining untuk menganalisis data Jurusan Teknik Komputer tersebut. Dengan menerapkan teknik ini akan dibangun pohon keputusan (decicion tree) untuk melihat kemungkinan mahasiswa yang lulus lebih dari 8 semester. Pohon keputusan tersebut merupakan keluaran dari sebuah aplikasi yang dibangun dengan menerapkan Algoritma C4.5 untuk memprediksi masa studi mahasiswa yang sedang menempuh perkuliahan.
2.1. Learning Dataset
Berikut ini adalah contoh dataset yang digunakan sebagai bahan pembelajaran (dataset di generate secara random sejumlah 343 data sample/training).
No. | Jenis Kelamin | Usia | Domisili | IPK | Beasiswa | Waktu Studi |
---|---|---|---|---|---|---|
1 | Laki-laki | >= 22th | Luar kota | 2.76 s.d. 3.50 | Tidak mendapat beasiswa | > 8 smtr |
2 | Perempuan | >= 22th | Dalam kota | 2.76 s.d. 3.50 | Mendapat beasiswa | > 8 smtr |
3 | Perempuan | >= 22th | Luar kota | 2.76 s.d. 3.50 | Mendapat beasiswa | > 8 smtr |
4 | Laki-laki | < 22th | Luar kota | 2.00 s.d. 2.75 | Tidak mendapat beasiswa | > 8 smtr |
5 | Perempuan | < 22th | Luar kota | 2.76 s.d. 3.50 | Tidak mendapat beasiswa | > 8 smtr |
6 | Laki-laki | < 22th | Dalam kota | 2.00 s.d. 2.75 | Tidak mendapat beasiswa | > 8 smtr |
7 | Perempuan | >= 22th | Dalam kota | 3.51 s.d. 4.00 | Mendapat beasiswa | > 8 smtr |
8 | Perempuan | >= 22th | Luar kota | 2.76 s.d. 3.50 | Mendapat beasiswa | > 8 smtr |
9 | Perempuan | >= 22th | Dalam kota | 2.76 s.d. 3.50 | Tidak mendapat beasiswa | <= 8 smtr |
10 | Perempuan | < 22th | Luar kota | 2.76 s.d. 3.50 | Tidak mendapat beasiswa | > 8 smtr |
11 | Laki-laki | >= 22th | Dalam kota | 2.76 s.d. 3.50 | Mendapat beasiswa | <= 8 smtr |
12 | Perempuan | >= 22th | Luar kota | 3.51 s.d. 4.00 | Mendapat beasiswa | > 8 smtr |
13 | Laki-laki | >= 22th | Luar kota | 2.76 s.d. 3.50 | Mendapat beasiswa | > 8 smtr |
14 | Laki-laki | < 22th | Dalam kota | 2.76 s.d. 3.50 | Tidak mendapat beasiswa | <= 8 smtr |
15 | Laki-laki | < 22th | Dalam kota | 3.51 s.d. 4.00 | Tidak mendapat beasiswa | > 8 smtr |
... | ||||||
341 | Laki-laki | < 22th | Dalam kota | 2.76 s.d. 3.50 | Mendapat beasiswa | > 8 smtr |
342 | Perempuan | >= 22th | Luar kota | 2.00 s.d. 2.75 | Mendapat beasiswa | > 8 smtr |
343 | Perempuan | < 22th | Dalam kota | 2.76 s.d. 3.50 | Mendapat beasiswa | > 8 smtr |
)* yang ditampilkan hanya beberapa data saja mengingat banyaknya data yang dipakai dan tidak memungkinkan untuk ditampilkan semuanya. Data selengkapnya dapat diunduh di tautan pada bagian akhir artikel ini (-- on progress--
)
Dari Learning Dataset tersebut, dapat dibuat summary sebagai berikut:
No | Atribut | Nilai Atribut | Jumlah Kasus | ||
---|---|---|---|---|---|
Total | <= 8 smtr | > 8 smtr | |||
1 | Total | Total | 343 | 103 | 240 |
2 | Jenis Kelamin | Laki-laki | 181 | 57 | 124 |
3 | Jenis Kelamin | Perempuan | 162 | 46 | 116 |
4 | Usia | >= 22 th | 174 | 61 | 113 |
5 | Usia | < 22 th | 169 | 42 | 127 |
6 | Domisili | Luar kota | 169 | 49 | 120 |
7 | Domisili | Dalam kota | 174 | 54 | 120 |
8 | IPK | 2.76 s.d. 3.50 | 216 | 64 | 152 |
9 | IPK | 2.00 s.d. 2.75 | 74 | 25 | 49 |
10 | IPK | 3.51 s.d. 4.00 | 53 | 14 | 39 |
11 | Beasiswa | Tidak mendapat beasiswa | 166 | 46 | 120 |
12 | Beasiswa | Mendapat beasiswa | 177 | 57 | 120 |
Data Summary Learning Dataset pada TABEL 2 tersebut untuk selanjutnya akan diproses untuk mendapatkan suatu pohon keputusan -- decision tree, yang akan diuraikan dibagian berikut ini.
2.2. Perhitungan Manual
Berikut ini adalah uraian langkah-langkah dalam algoritma C4.5 untuk menyelesaikan kasus seorang mahasiswa akan lulus dalam jangka waktu 8 semester atau tidak, berdasarkan jenis kelamin, usia, domisili, IPK, dan beasiswa. Learning Dataset yang telah ada pada TABEL 1, akan digunakan untuk membentuk pohon keputusan.
Pada TABEL 1, atribut-atributnya adalah Jenis kelamin, Usia, Domisili, IPK, dan Beasiswa. Setiap atribut memiliki nilai. Sedangkan kelasnya ada pada kolom Waktu Studi yaitu kelas "<= 8 smtr" dan kelas "> 8 smtr". Kemudian data tersebut dianalisis; dataset tersebut memiliki 343 kasus yang terdiri dari 103 "<= 8 smtr" dan 240 "> 8 smtr" pada kolom Waktu Studi (Lihat TABEL 2 baris pertama).
2.2.1. Perhitungan Total Entropy
Berdasarkan persamaan C45-02 dapat dihitung nilai Entropy untuk keseluruhan data sample/training/learning dataset (S) sebagai berikut:
Hasil perhitungan Entropy dari Dataset (S) tersebut dapat disajikan dalam tabel sebagai berikut (TABEL 3) :
Total Kasus | Jumlah '<= 8 Smtr' | Jumlah '> 8 Smtr' | Total Entropy |
---|---|---|---|
343 | 103 | 240 | 0.61111112532999 |
2.2.2. Perhitungan Entropy dan Gain tiap Atribut
Setelah mendapatkan entropy dari keseluruhan kasus, kemudian dilakukan analisis pada setiap atribut dan nilai-nilainya dan menghitung entropy-nya seperti yang ditampilkan pada TABEL 4
Node | Atribut | Nilai | Jumlah | Entropy | Gain | ||
---|---|---|---|---|---|---|---|
Total | <= 8 smtr | > 8 smtr | |||||
1 | Jenis Kelamin | Laki-laki | 181 | 57 | 124 | 0.62297859810785 | 0.0005695330316528 |
Jenis Kelamin | Perempuan | 162 | 46 | 116 | 0.59664592531364 | ||
Usia | >= 22 th | 174 | 61 | 113 | 0.64780168295553 | 0.0062233944025322 | |
Usia | < 22 th | 169 | 42 | 127 | 0.56070413534827 | ||
Domisili | Luar kota | 169 | 49 | 120 | 0.6020986927854 | 0.0002477040595979 | |
Domisili | Dalam kota | 174 | 54 | 120 | 0.61937628974145 | ||
IPK | 2.76 s.d. 3.50 | 216 | 64 | 152 | 0.60769342387096 | 0.0012240383658452 | |
IPK | 2.00 s.d. 2.75 | 74 | 25 | 49 | 0.63959090091869 | ||
IPK | 3.51 s.d. 4.00 | 53 | 14 | 39 | 0.57735404914326 | ||
Beasiswa | Tidak mendapat beasiswa | 166 | 46 | 120 | 0.59020156322194 | 0.0012014146594514 | |
Beasiswa | Mendapat beasiswa | 177 | 57 | 120 | 0.62839305799521 |
Nilai entropy dari masing-masing nilai atribut yang terdapat pada TABEL 4 diperoleh menggunakan persamaan C45-02, sebagai contoh untuk nilai Luar kota dari atribut Domisili perhitungan entropy-nya sebagai berikut :
2.2.3. Menentukan Root Node
Karena nilai Gain terbesar adalah Gain(Usia) yaitu sebesar 0.0062233944025322, maka atribut Usia menjadi node akar (root node)
3. Aplikasi PHP
Sebagai pelengkap artikel data mining dengan Algoritma C4.5 pada bagian ini akan dibahas langkah-langkah dalam implementasinya dengan bahasa pemrograman PHP dan database MySQL/MariaDB.
3.1. Persiapan Data
Sebelum melangkah ke pembuatan aplikasinya, dipersiapkan dulu untuk struktur database dan tabel-tabel yang berkaitan dengan aplikasi yang akan dibuat berikut ini
3.1.1 Pembuatan Database
Sebagai bahan pembelajaran aplikasi Data Mining dengan Algoritma C4.5 ini; dibuat database (dalam hal ini menggunakan MySQL/MariaDB Database server) sebagai berikut:
CREATE DATABASE IF NOT EXISTS db_dm; USE db_dm;
Awalnya membuat dulu database dengan nama db_dm
jika belum ada database dengan nama tersebut, kemudian gunakan database tersebut dengan memakai sintak USE db_dm;
3.1.2. Membuat Data Tabel Attributes
DROP TABLE IF EXISTS c45_attributes; CREATE TABLE IF NOT EXISTS c45_attributes( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), target INT DEFAULT '0' );
3.1.3. Membuat Data Tabel Instances
DROP TABLE IF EXISTS c45_instances; CREATE TABLE IF NOT EXISTS c45_instances( id INT AUTO_INCREMENT PRIMARY KEY, id_attribute INT NOT NULL, name VARCHAR(50) );
3.1.4. Membuat Data Tabel Samples
DROP TABLE IF EXISTS c45_samples; CREATE TABLE IF NOT EXISTS c45_samples( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) );
3.1.5. Membuat Data Tabel Sample_details
DROP TABLE IF EXISTS c45_sample_details; CREATE TABLE IF NOT EXISTS c45_sample_details( id INT AUTO_INCREMENT PRIMARY KEY, id_sample INT NOT NULL, id_instance INT NOT NULL );
3.1.6. Membuat Tabel Decision Tree
DROP TABLE IF EXISTS c45_decision_tree; CREATE TABLE IF NOT EXISTS c45_decision_tree( id INT AUTO_INCREMENT PRIMARY KEY, id_attribute INT NOT NULL, id_instance INT NOT NULL, id_target INT DEFAULT '0' );
3.2. Koneksi ke Database Server
Sebelum melalukan operasi dengan data dari database, perlu dibuat script untuk koneksi ke database terlebih dahulu. Dari database yang sudah dibuat, kita bisa membuat script php untuk membuat koneksi ke database server dengan extension mysqli sebagai berikut:
<?php
//-- konfigurasi database
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'db_dm';
//-- koneksi ke database server dengan extension mysqli
$db = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
//-- hentikan program dan tampilkan pesan kesalahan jika koneksi gagal
if ($db->connect_error) {
die('Connect Error ('.$db->connect_errno.')'.$db->connect_error);
}
?>
Sesuaikan nilai-nilai $dbhost,$dbuser,$dbpass
dan $dbname
dengan konfigurasi database yg digunakan.
3.3. Langkah-langkah Algoritma C4.5
<?php
//-- fungsi Entropy
function entropy($S){
$entropy=0;
foreach($S as $s){
$p= $s/array_sum($S);
$entropy+=(-$p)*log($p);
}
return $entropy;
}
//-- fungsi Gain
function gain($S,$Si){
$gain=entropy($S);
foreach($Si as $si){
$gain-=($si/array_sum($Si))*entropy($Si);
}
return $gain;
}
?>
4. Simpulan
5. Daftar Pustaka
- Basuki A dan Syarif I, 2003. Decision Tree. Politeknik Elektronika Negeri Surabaya (PENS) – ITS
- Berry, Michael J.A & Linoff, Gordon S. 2004. Data Mining Techniques For Marketing, Sales, Customer Relationship Management Second Editon. United States of America: Wiley Publishing, Inc.
- Craw, S., 2005. Case based reasoning: Lecture 3: CBR Case-Base Indexing.
- Han, J., & Kamber, M., 2006. Data mining Concepts and Techniques. San Fransisco: Morgan Kaufmann.
- Kusrini, & Lutfhi, E. T., 2009. Algoritma Data Mining. Yogyakarta: Andi.
- Larose, T. D, 2005. An Introduction to Data Mining. Wiley~Interscience: New Jersey.
- Larose D, T., 2006, Data Mining Methods and Models, Jhon Wiley & Sons, Inc. Hoboken New Jersey
- Quinlan, J. R., 1993 C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers.
- Santosa, B., 2007. Data mining (Teknik Pemanfaatan Data untuk Keperluan Bisnis). Surabaya: Graha Ilmu.
- Santosa, B., 2007. Data mining Terapan. Surabaya: Graha Ilmu.
- Sunjana, 2010. Seminar Nasional Aplikasi Teknologi Informasi 2010. Snati 2010. Aplikasi Mining Data Mahasiswa Dengan Metode Klasifikasi Decision Tree , 24-29.
- Tan, P. N., Steinbach, M., & Kumar, V., 2005. DATA MINING. New York: Addison Wesley.