Anda di halaman 1dari 6

Seminar Nasional Aplikasi Teknologi Informasi 2010 (SNATI 2010) ISSN: 1907-5022

Yogyakarta, 19 Juni 2010

APLIKASI MINING DATA MAHASISWA DENGAN METODE KLASIFIKASI


DECISION TREE

Sunjana
Universitas Widyatama
sunjana@widyatama.ac.id

ABSTRAKS
Data mining merupakan proses analisa data untuk menemukan suatu pola dari kumpulan data tersebut.
Data mining mampu menganalisa data yang besar menjadi informasi berupa pola yang mempunyai arti bagi
pendukung keputusan.
Salah satu teknik yang ada pada data mining adalah klasifikasi. Pada paper ini akan dibahas teknik
klasifikasi yang diterapkan untuk menemukan pola yang terjadi pada data mata kuliah mahasiswa. Teknik
klasifikasi yang akan digunakan adalah Decision tree , yaitu algoritma C4.5.

Kata kunci : Data mining, Decision tree, C4.5

1. PENDAHULUAN 2. LANDASAN TEORI


Data mining adalah proses mencari pola atau 2.1 Pengertian Data Mining
informasi menarik dalam data terpilih dengan Data mining adalah sebuah proses untuk
menggunakan teknik atau metode tertentu. Teknik, menemukan pola atau pengetahuan yang bermanfaat
metode, atau algoritma dalam data mining sangat secara otomatis dari sekumpulan data yang berjumlah
bervariasi. Pemilihan metode atau algoritma yang banyak, data mining sering dianggap sebagai bagian
tepat sangat bergantung pada tujuan dan proses KDD dari Knowledge Discovery in Database (KDD) yaitu
secara keseluruhan. Data mining mampu sebuah proses mencari pengetahuan yang bermanfaat
menganalisa data yang besar menjadi informasi dari data, proses KDD secara garis besar dapat
berupa pola yang mempunyai arti bagi pendukung dijelaskan sebagai berikut :
keputusan. 1. Data Selection
Hasil dari aplikasi data mining tersebut Pemilihan (seleksi) data dari sekumpulan data
dievaluasi untuk menemukan suatu operasional perlu dilakukan sebelum tahap
informasi/pengetahuan baru yang menarik dan penggalian informasi dalam KDD dimulai. Data hasil
bernilai bagi perusahaan, dan kemudian seleksi yang akan digunakan untuk proses data
divisualisasikan agar mempermudah bagi user mining, disimpan dalam suatu berkas, terpisah dari
memilih informasi-informasi yang mempunyai arti basis data operasional.
bagi pendukung keputusan. 2. Pre-processing/ Cleaning
Salah satu proses dalam data mining adalah Sebelum proses data mining dapat dilaksanakan,
klasifikasi, pada klasifikasi diberikan sejumlah perlu dilakukan proses cleaning pada data yang
record yang dinamakan training set, yang terdiri dari menjadi fokus KDD. Proses cleaning mencakup
beberapa atribut, salah satu atribut menunjukkan antara lain membuang duplikasi data, memeriksa data
kelas untuk record. Tujuan dari klasifikasi adalah yang inkonsisten, dan memperbaiki kesalahan pada
untuk menemukan model dari training set yang data, seperti kesalahan cetak (tipografi). Selain
membedakan record kedalam kategori atau kelas itu dilakukan proses enrichment, yaitu proses
yang sesuai, model tersebut kemudian digunakan “memperkaya” data yang sudah ada dengan data atau
untuk mengklasifikasikan record yang kelasnya informasi lain yang relevan dan diperlukan untuk
belum diketahui sebelumnya. Salah satu metode yang KDD, seperti data atau informasi eksternal.
digunakan di dalam klasifikasi adalah 3. Transformation
pengklasifikasian dengan menggunakan decision tree Coding adalah proses transformasi pada data
(pohon keputusan). Salah satu algoritma decision tree yang telah dipilih, sehingga data tersebut sesuai
yang umum dipakai adalah C4.5. untuk proses Data mining. Proses coding dalam
Pemabahasan paper ini adalah sebagai berikut : KDD merupakan proses kreatif dan sangat
1.pendahuluan membahas pengertian-pengertian tergantung pada jenis atau pola informasi yang akan
dasar dari topic yang diteliti, 2. Landasan teori dicari dalam basis data.
membahas dasar-dasar teori yang digunakan dalam 4. Interpretation/ Evaluation
penelitian, 3. Implementasi membahas implementasi Pola informasi yang dihasilkan dari proses data
teori dan hasilnya, dan terkhir membahas mining perlu ditampilkan dalam bentuk yang mudah
kesimpulan. dimengerti oleh pihak yang berkepentingan. Tahap

A-24
Seminar Nasional Aplikasi Teknologi Informasi 2010 (SNATI 2010) ISSN: 1907-5022
Yogyakarta, 19 Juni 2010

ini merupakan bagian dari proses KDD yang disebut the number of possible paths from the root to a
dengan interpretation. Tahap ini mencakup leaf node.
pemeriksaan apakah pola atau informasi yang 3. Prune (generalize) each rule by removing
ditemukan bertentangan dengan fakta atau hipotesa preconditions that increase classification
yang ada sebelumnya. accuracy.
2.2 Decision tree 4. Sort pruned rules by their accuracy, and use
Decision tree adalah flow-chart seperti struktur them in this order when classifying future test
tree, dimana tiap internal node menunjukkan sebuah examples.
test pada sebuah atribut, tiap cabang menunjukkan Information Gain
hasil dari test, dan leaf node menunjukkan class-class Information gain adalah salah satu atribute
atau class distribution [6]. selection measure yang digunakan untuk memilih
Algoritma ID3 dan Algoritma C4.5 test atribute tiap node pada tree. Atribut dengan
Sebelum membahas algoritma C4.5 perlu information gain tertinggi dipilih sebagai test atribut
dijelaskan terlebih dahulu algoritma ID3 karena C4.5 dari suatu node [6]. Ada 2 kasus berbeda pada saat
adalah ekstensi dari algoritma decision-tree ID3. penghitungan Information Gain, pertama untuk kasus
Algoritma ID3/C4.5 ini secara rekursif membuat penghitungan atribut tanpa missing value dan kedua,
sebuah decision tree berdasarkan training data yang penghitungan atribut dengan missing value.
telah disiapkan. Algoritma ini mempunyai inputan
berupa training samples dan samples. Training Penghitungan Information Gain tanpa missing
samples berupa data contoh yang akan digunakan value
untuk membangun sebuah tree yang telah diuji Misalkan S berisi s data samples. Anggap atribut
kebenaranya. Sedangkan samples merupakan field- untuk class memiliki m nilai yang berbeda, Ci (untuk
field data yang nantinya akan kita gunakan sebagai i = 1, …,I). anggap si menjadi jumlah samples S pada
parameter dalam melakukan klasifikasi data. Berikut class Ci. Maka besar information-nya dapat dihitung
adalah algoritma dasar dari ID3 dan C4.5 dengan :
Algoritma ID3 [6] m
Input : Training samples, samples I ( s1, s2,…,sm ) = - p
i 1
i * log 2 ( pi )
Output : Decision tree
Method : si
(1) Create node N; Dimana pi = adalah probabilitas dari sample yang
(2) If samples are all of the same class, C then s
(3) Return N as a leaf node labeled with the mempunyai class Ci.
class C; Misalkan atribut A mempunyai v nilai yang
(4) if atribute-list is empty then berbeda, {a1, a2,...,av}. Atribut A dapat digunakan
(5) Return N as a leaf node labeled with the untuk mempartisi S menjadi v subset, {S1, S2,...,Sv},
most common class in samples; // dimana Sj berisi samples pada S yang mempunyai
majority voting nilai aj dari A. Jika A terpilih menjadi test atribut
(6) select test-atribute, atribute among atribute- (yaitu, best atribut untuk splitting), maka subset-
list with the highest information gain; subset akan berhubungan dengan pertumbuhan node-
(7) label node N with test-atribute; node cabang yang berisi S. Anggap sij sebagai jumlah
(8) for each known value ai of test-atribute // samples class Ci pada subset Sj. Entropy, atau nilai
partition the samples information dari subset A adalah :
v s1 j  ...  s mj

(9) grow a branch from node N for the
condition test-atribute = ai; E(A) = I ( s1, s2,…,sm )
(10) let si be the set of samples in samples j 1 s
for which test-atribute = ai; // a s1 j  ...  smj
partition adalah bobot dari subset jth dan
(11) if si is empty then s
(12) attach a leaf labeled with the ,most jumlah samples pada subset (yang mempunyai nilai aj
common class in samples; dari A) dibagi dengan jumlah total samples pada S.
(13) else attach the node returned by Untuk subset Sj,
m

p
Generate_decision_tree(si, attribute-list-test-
atribute); I ( s1j, s2j,…,smj) = - ij * log 2 ( pij )
i 1

Algoritma C4.5 [15] s ij


1. Build the decision tree form the training set Dimana pij = adalah probabilitas sample Sj
(conventional ID3). | sj |
2. Convert the resulting tree into an equivalent set yang mempunyai class Ci.
of rules. The number of rules is equivalent to Maka nilai information gain atribut A pada subset S
adalah

A-25
Seminar Nasional Aplikasi Teknologi Informasi 2010 (SNATI 2010) ISSN: 1907-5022
Yogyakarta, 19 Juni 2010

Gain(A) = I ( s1, s2,…,sm ) – E(A) Untuk atribut dengan missing value penghitungan
Sebagai contoh : kita ingin mencari apakah pegolf information gain-nya diselesaikan dengan Gain
akan masuk class play atau don’t play berdasarkan Ratio. Sebelum menghitung gain ratio terlebih dahulu
data berikut: dihitung I ( s1, s2,…,sm ) dan E(A).
m

Outlook
Tabel 2.1. Contoh data play tennis
Temperature Humidity Windy Play
I ( s1, s2,…,sm ) = - p i 1
i * log 2 ( pi )
Sunny 85 85 False Don’t v s1 j  ...  s mj
Sunny 80 90 True
Play
Don’t
E(A) = j 1 s
I ( s1, s2,…,sm )
Play
Overcast 83 78 False Play Dimana penghitungan I ( s1, s2,…,sm ) dan E(A)
Rain 70 96 False Play hanya dilakukan pada atribut yang ada nilainya.
Rain 68 80 False Play Kemudian untuk mencari gain dari atribut A
Rain 65 70 True Don’t
Play
dihitung dengan rumus sebagai berikut :
Overcast 64 65 True Play Gain (A) = Prob S yang diketahui * E(A)
Sunny 72 95 False Don’t Dimana,
Play A = atribut dengan missing value yang sedang
Sunny 69 70 False Play dicari nilai gain-nya,
Rain 75 80 False Play
S = jumlah samples pada subset A yang
Sunny 75 70 True Play
Overcast 72 90 True Play diketahui nilainya.
Overcast 81 75 False Play Sedangkan nilai split pada atribut A dinyatakan
Rain 71 80 True Don’t dengan :
Play m
Dari data-data pada tabel kita akan mencoba
untuk membangun sebuah classifier yang
Split(A) = -u * log2 u - p
i 1
j * log 2 ( p j )
berdasarkan atribut Outlook, Temperature, Humidity Dimana,
dan Windy. Disana ada dua kelas yaitu Play dan u adalah prob samples pada atribut A yang
Don’t play. Dan ada 14 examples, 5 examples merupakan missing values.
menyatakan Don’t Play dan 9 examples menyatakan sj
Play. Maka, pj = adalah probabilitas sample Sj yang
9 9 |s |
I (s1,s2) = I (9,5) = - log2 -
14 14 diketahui nilainya.
5 5 Nilai Gain Ratio pada atribut A :
log2 = 0,940 Gain Ratio(A) = Gain(A) / Split(A)
14 14 Sebagai contoh : kita ingin mencari apakah pegolf
Entropy untuk atribut Outlook adalah : akan masuk class play atau don’t play berdasarkan
5 4 data berikut:
E( Outlook ) = * I (2,3) + * I (4,0) + Tabel 2.2. data play tennis dengan missing value
14 14
Outlook Temp Humidity Windy Class
5 sunny 75 70 yes play
* I (3,2)
14 sunny 80 90 yes don’t
= 0,694 play
Dengan nilai Gain( Outlook) yaitu: sunny 85 85 no don’t
Gain ( Outlook ) = I ( s1, s2 ) – E(Outlook) play
= 0,94 – 0,694 sunny 72 95 no don’t
= 0,246 play
dengan menggunakan cara yang sama, Gain dari sunny 69 70 no play
semua atribut dapat dicari. ? 72 90 yes play
Gain ( Outlook) = 0,246 cloudy 83 78 no play
Gain ( Humidity ) = 0,151 cloudy 64 65 yes play
Gain ( Windy ) = 0,048 cloudy 81 75 no play
Gain ( Temperature) = 0,029 rain 71 80 yes don’t
Setelah nilai information gain pada semua atribut play
dihitung, maka atribut yang mempunyai nilai rain 65 70 yes don’t
information gain terbesar yang dipilih menjadi test play
atribut. rain 75 80 no play
Penghitungan Information Gain dengan missing rain 68 80 no play
value rain 70 96 no play

A-26
Seminar Nasional Aplikasi Teknologi Informasi 2010 (SNATI 2010) ISSN: 1907-5022
Yogyakarta, 19 Juni 2010

Pertama, kita menghitung frekuensi pada OUTLOOK Sj = subset dari S


sebagai berikut Ci = class i
P(Ci, Sj) = perbandingan instance dari Sj
Play Don’t play Total yang berada pada class Ci
Sunny 2 3 5 E(A, TA;S) = class information entropy
Cloudy 3 0 3 partisi dengan cut point TA di A
Rain 3 2 5 A = atribut
Total 8 5 13 |Sk| = jumlah instance di Sk
Cut point yang terbaik adalah yang memberikan class
Untuk data pada tabel 2.2 maka penghitungan information entropy yang paling kecil diantara semua
information gainnya adalah sebagai berikut : kandidat cut point.
Pruning Tree
8 8 5 5
I (s1,s2) = I (8,5) = - log2 - log2 = Pruning tree adalah melakukan suatu kegiatan
13 13 13 13 untuk mengganti suatu subtree dengan suatu leaf.
0.961 Penggantian dilakukan jika error rate pada subtree
lebih besar jika dibandingkan dengan single leaf.
5 2 2 3 3 3 Pada C4.5 perkiraan error untuk satu node
I(outlook) = * (- * log2 - * log2 ) + * dihitung dengan :
13 5 5 5 5 13
 z2 f f 2 z2   z2 
3 3 0 0 e f  z    1  
(-
3
* log2 - * log2 ) +
3 3 3  2N N N 4 N 2   N
5 Jika c = 25% (default untuk C4.5) maka z = 0,69
* (dari distribusi normal)
13 f : error pada data training
3 3 2 2 N : jumlah instance pada satu leaf
(- * log2 - * log2 ) = 0.747
5 5 5 5
3. IMPLEMENTASI
13 Pada penerapan algoritma C4.5 disini, kita ingin
Gain (Outlook) = * (0.961-0.747) = 0.199
14 melihat apakah IPK seorang mahasiswa dapat
5 5 3 3 5 5 diperkirakan berdasarkan nilai beberapa mata kuliah
Split = - *log2 - *log2 - *log2 - yang dianggap paling siginifikan dalam menentukan
14 14 14 14 14 14 IPK seorang mahasiswa . Nilai IPK merupakan
1 1 atribut class, kelas IPK dibagi menjadi 4 yaitu:
*log2 = 1.809
14 14 1. A : Sangat baik ( ≥ 3)
2. B : Baik ( ≥ 2,5)
0,199 3. C : Kurang ( ≥ 2)
Gain ratio = = 0.110
1,809 4. D : Sangat Kurang ( < 2)
Setelah semua Gain diketahui maka dapat ditentukan Untuk Matakuliah, penulis hanya mengambil 9
atribut mana yang layak menjadi root. Atribut yang jenis matakuliah sebagai atribut, yaitu :
layak adalah atribut yang mempunyai Gain terbesar 1. Algoritma I (Sem. I)
Penanganan Atribut Kontinyu 2. Kalkulus I (Sem. I)
Algoritma C4.5 juga menangani masalah atribut 3. Algoritma II (Sem. II)
kontinyu. Salah satu cara adalah dengan Entropy- 4. Kalkulus II (Sem. II)
Based Discretization yang melibatkan penghitungan 5. Matriks & Ruang Vektor I (Sem. III)
class entropy. 6. Statistika (Sem. III)
Misalkan T membagi S example menjadi 7. Struktur Data & Algoritma Lanjut (Sem.
subset S1 dan S2. Umpakan ada k class C1, C2, III)
…,Ck. Misal P(Ci, Sj) menjadi perbandingan dari 8. Basis Data (Sem. IV)
example pada Sj yang mempunyai class i. 9. Matriks & Ruang Vektor II (Sem. IV)
Maka class entropy dari subset Sj didefinisikan Matakuliah diatas merupakan matakuliah yang
dengan : wajib diambil oleh setiap mahasiswa ditiap
k semesternya. Penulis mengambil matakuliah hanya
Ent(S) = - 
i 1
P(Ci, S) log(P(Ci, S)) sampai semester IV dan rata-rata 2 matakuliah,
sehingga dosen dapat melihat IPK dan menentukan
Dan class information entropy E(A, T;S) matakuliah apa yang harus diulang atau diambil agar
| S1 | | S2 | IPK seorang mahasiswa dapat meningkat.
E(A, T;S) = Ent(S1) + Ent(S2) Matakuliah-matakuliah yang penulis ambil
|S| |S| merupakan matakuliah-matakuliah yang saling
Dimana Ent(Sj) = class entropy dari subset Sj berhubungan satu dengan yang lainnya atau dengan

A-27
Seminar Nasional Aplikasi Teknologi Informasi 2010 (SNATI 2010) ISSN: 1907-5022
Yogyakarta, 19 Juni 2010

kata lain sebagai matakuliah prasyarat, misal untuk Traing Testing


dapat mengambil matakuliah Algoritma II seorang Uji
Matakuliah Error Error
mahasiswa harus lulus terlebih dahulu dalam Ke -
Rate Rate
matakuliah Algoritma I. Untuk lebih jelasnya kita
Algoritma I
lihat alur berikut :
1. Algoritma I  Algoritma II  Struktur Algoritma II
Data & Algoritma Lanjut  Basis Data 1 Basis Data 18,75 % 26,00 %
2. Kalkulus I  Kalkulus II  Matriks & Statistika
Ruang Vektor I  Matriks & Ruang Vektor Struktur Data
II
3. Kalkulus I  Statistika Algoritma I
Pada tabel matakuliah tersebut terdiri dari 210 Algoritma II
record, dengan 160 record sebagai data training dan Kalkulus I
50 record sebagai data testing. Hasil uji yang Kalkulus II
dilakukan adalah sebagai berikut : 2 Matriks I 5,00 % 46,00 %
Matriks II
Tabel 4.1 Hasil Uji Basis Data
Statistika
Traing Testing
Uji Struktur Data
Matakuliah Error Error
Ke - Algoritma I
Rate Rate
Algoritma I Algoritma II
3 21,25 % 48,00 %
Kalkulus I
Algoritma II
1 Basis Data 18,75 % 26,00 % Kalkulus II
Statistika Statistika
Struktur Data
Dari hasil uji diatas dapat kita lihat prosentase dari
Algoritma I beberapa matakuliah terhadap nilai IPK seorang
Algoritma II mahasiswa. Prosentase error rate yang dihasilkan
Kalkulus I pada hasil testing rata-rata adalah dibawah 50%,
Kalkulus II bahkan ada yang 26 %. Itu menandakan bahwa rule
yang dihasilkan sudah cukup baik. Hasil tersebut
2 Matriks I 5,00 % 46,00 %
diperoleh dari data training pada matakuliah
Matriks II Algoritma I, Algoritma II, Basis Data, Statistika, dan
Basis Data Struktur Data. Dari data training pada matakuliah
Statistika tersebut, ternyata menghasilkan rule yang digunakan
Struktur Data untuk data testing dengan prosentase error rate yang
sangat kecil. Semakin besar prosentase nilai error
Algoritma I
rate yang dihasilkan pada data testing, maka rule
Algoritma II yang dihasilkan pun tidak baik. Begitu pula
3 21,25 % 48,00 %
Kalkulus I sebaliknya, semakin kecil prosentase error rate yang
Kalkulus II dihasilkan pada data testing, maka akan
Algoritma I menghasilkan rule yang baik pula.
Algoritma II
4 15,63 % 36,00 % 4. KESIMPULAN
Matriks I
Berdasarkan training dan pengujian kemudian
Matriks II dilakukan analisis maka dapat diambil beberapa
Basis Data kesimpulan sebagai berikut:
Algoritma I 1. Penentuan data training sangat menentukan
Algoritma II tingkat akurasi tree yang dibuat.
5 Kalkulus I 15,00 % 44,00 % 2. Besar prosentase kebenaran tree sangat
Kalkulus II dipengaruhi oleh data training yang digunakan
untuk membangun model tree tersebut.
Statistika 3. Nilai IPK seorang mahasiswa terlihat sangat
Algoritma I terpengaruh dengan 9(Sembilan) mata kuliah
Kalkulus I yang dianggap pokok.
6 13,75 % 46,00 %
Matriks I
Basis Data

A-28
Seminar Nasional Aplikasi Teknologi Informasi 2010 (SNATI 2010) ISSN: 1907-5022
Yogyakarta, 19 Juni 2010

PUSTAKA
[1] Andrew W. Moore, “Decision Trees“,
Carnegie Mellon University.
(http://www.cs.cmu.edu/~awm)
[2] Berry Linoff, Mastering Data Mining, John
Wiley & Son, Inc, 2000
[3] Frank, Vanden Berghen, “Classification Trees
: C4.5”, Universit Libre de Bruxelles, 2003.
[4] Han,Jiawei and Khamber, Micheline. “Data
Mining : Concepts and Techniques”, Morgan
Kaufmann Publishers, San Francisco,USA,
2001.
[5] Long, William, “Classification Tress”,
Harvard-MIT Division of Health Sciences and
Technology.
[6] Malerba Donato, Floriana Esposito, dan
Giovanni Semeraro, “A Comparative Analysis
of Methods for Pruning Decision Tress”,
IEEE, Italy, 1997
[7] Quinlan, J.R. “C4.5: Programs For Machine
Learning”. San Mateo, CA: Morgan
Kaufmann,

A-29