implementasi algoritma pohon keputusan cart untuk...
TRANSCRIPT
i
IMPLEMENTASI ALGORITMA POHON KEPUTUSAN CART
UNTUK MENENTUKAN KLASIFIKASI DATA EVALUASI
MOBIL
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun Oleh :
Joseph Wijaya
145314021
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
IMPLEMENTATION OF CART DECISION TREE
ALGORITHM TO CLASSIFY CAR EVALUATION
A THESIS
Presented as Partial Fulfillment of Requirements
to Obtain Sarjana Komputer Degree
in Informatics Engineering Study Program
By :
Joseph Wijaya
145314021
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
2019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN
Setiap anak jenius Tapi jika anda menilai ikan dari
kemampuannya memanjat pohon, seumur
hidup dia akan menganggap dirinya bodoh. ~Albert Einstein
Tuhan menetapkan langkah-langkah orang
yang hidupnya berkenan kepada-Nya; apabila
ia jatuh, tidaklah sampai tergeletak, sebab
Tuhan menopang tangannya. Mazmur 37 : 23-24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
MOTTO
Deus Providebit God Will Provide
Berikanlah Telinga untuk mendengarkan, Mata untuk Melihat dan
Hati untuk memahami
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRAK
Penelitian ini bertujuan untuk mengimplementasi salah satu algoritma
pohon keputusan yaitu Classification and Regresion Tree (CART) yang
diterapkan pada suatu kasus pengklasifikasian. Adapun data yang akan
diklasifikasikan adalah data evaluasi mobil sebanyak 914 records. Data diambil
dari UC Irvine Machine Learning Repository. Kelas yang dihasilkan adalah
unacceptance, acceptance, good dan very good. Dalam tugas akhir ini algoritma
CART diimplementasikan menggunakan bahasa pemrograman Java dan melalui
uji validasi program. Selanjutnya kinerja algoritma CART diuji dengan
menghitung waktu tempuh yang dibutuhkan algoritma CART untuk mengolah
data evaluasi mobil. Selain itu, algoritma CART juga diuji akurasinya dengan
menggunakan 10-folds cross-validation. Hasil dari pengujian menunjukan bahwa
algoritma CART membutuhkan waktu komputasi kurang lebih selama 1.2 detik
dan memiliki tingkat akurasi 91.97%.
Kata kunci : algoritma, CART, k-fold
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
ABSTRACT
This study aims to implement one of the decision tree algorithms, namely
Classification and Regresion Tree (CART) to a classification case. The data to be
classified are car evaluation data of 914 records. Data taken from the UC Irvine
Machine Learning Repository. The class produced is unacceptance, acceptance,
good and very good. In this final project, CART algorithm was implemented
using Java programming language, the program was validated afterward.
Furthermore, the CART algorithm's performance was tested by calculating the
running time needed by CART algorithm to process car evaluation data. In
addition, the accuracy of CART algorithm was also tested using 10-fold cross-
validation. The results of the test show that the CART algorithm requires
computational time of 1.2 seconds and has an accuracy rate of 91.97%.
Key words: algorithm, CART, k-folds
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
KATA PENGANTAR
Puji dan syukur peneliti panjatkan ke hadirat Tuhan Yesus Kristus atas segala
limpahan berkat dan penyertaan sehingga peneliti bisa menyelesaikan tugas akhir
yang berjudul “Implementasi Algoritma Pohon Keputusan CART Untuk
Menentukan Klasifikasi Data Evaluasi Mobil”. Tugas akhir ini ditulis sebagai
salah satu syarat memperoleh gelar sarjana program studi Teknik Informatika,
Fakultas Sains dan Teknologi Universitas Sanata Dharma.
Dalam penulisan skripsi ini, peneliti menyadari bahwa banyak pihak telah
membantu dalam kelancaran penelitian dan pembuatan skripsi ini. Oleh karena
itu, peneliti mengucapkan terimakasih kepada:
1. Orangtua terkasih Jimmy Wijaya dan Mulianawati Kesuma, serta
saudara tercinta: Marvin Chandra Wijaya, Jonathan Wijaya, Mikael
Wijaya dan Melisa Wijaya yang selalu memberikan waktu, doa,
dukungan, motivasi dan semangat tanpa lelah kepada peneliti selama
menjalani masa perkuliahan hingga proses penelitian dan penulisan
skripsi ini.
2. Bapak Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D., selaku Dekan Fakultas
Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
3. Ibu Dr. Anastasia Rita Widiarti selaku Ketua Program Studi Teknik
Informatika Universitas Sanata Dharma Yogyakarta.
4. Ibu P.H. Prima Rosa, S.Si, M.Sc sebagai dosen pembimbing tugas akhir
yang telah sabar memberikan bimbingan, nasihat, arahan dan bersedia
membagi ilmu dalam pengerjaan penelitian dan skripsi ini.
5. Bapak Alb. Agung Hadhiatma, M.T., selaku dosen pembimbing
akademik yang mendampingi peneliti selama berkuliah di Universitas
Sanata Dharma Yogyakarta.
6. Seluruh staf pengajar dan laboran serta pihak sekretariat Prodi Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma.
7. Adit, Agus, Bagas, Dea, Deon, Desira, Echa, Jacky, Jarot, Martina,
Rintan dan masih banyak lagi yang telah menjadi keluarga dan sahabat
seperjuangan di kota Yogyakarta ini dan yang telah merajut kenangan
baik buruk bersama hingga sampai detik ini dan sampai ke depannya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
DAFTAR ISI
JUDUL ..................................................................................................................... i
COVER .................................................................................................................... ii
HALAMAN PERSETUJUAN ............................................................................... iii
HALAMAN PENGESAHAN ................................................................................ iv
HALAMAN PERSEMBAHAN.............................................................................. v
MOTTO .................................................................................................................. vi
HALAMAN KEASLIAN KARYA ...................................................................... vii
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI ........................... viii
ABSTRAK ............................................................................................................. ix
ABSTRACT .............................................................................................................. x
KATA PENGANTAR ........................................................................................... xi
DAFTAR ISI ........................................................................................................ xiii
DAFTAR TABEL ................................................................................................. xv
DAFTAR GAMBAR ......................................................................................... xxvi
BAB I PENDAHULUAN ................................................................................. 1
1.1. Latar Belakang.......................................................................................... 1
1.2. Rumusan Masalah .................................................................................... 3
1.3. Tujuan ....................................................................................................... 3
1.4. Batasan Masalah ....................................................................................... 3
1.5. Metodologi Penelitian .............................................................................. 3
1.6. Sistematika Penulisan ............................................................................... 5
BAB II LANDASAN TEORI ............................................................................ 6
2.1. Penambangan data .................................................................................... 6
2.3. Teknik Penambangan data ........................................................................ 8
2.4. Pohon Keputusan ...................................................................................... 8
2.5. Ukuran Pemilihan Atribut ........................................................................ 9
2.5. Induksi Pohon Keputusan ....................................................................... 12
2.6. Uji Akurasi k-fold Cross-Validation ...................................................... 14
2.7. Pengujian Kinerja Algoritma .................................................................. 15
BAB III METODOLOGI PENELITIAN.......................................................... 16
3.1. Identifikasi Alat Uji ................................................................................ 16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
3.2. Studi Literatur ......................................................................................... 16
3.3. Sumber Data ........................................................................................... 16
3.4. Pengembangan dan Perancangan Alat Uji ............................................. 17
3.4.1. Praproses Data .................................................................................... 18
3.4.2. Penambangan data .............................................................................. 18
3.5. Analisis Hasil.......................................................................................... 20
3.6. Kesimpulan dan Saran ............................................................................ 20
3.7. Kebutuhan Perangkat.............................................................................. 20
BAB IV PEMBANGUNAN ALAT UJI ............................................................ 21
4.1. Desain Diagram Kelas ............................................................................ 21
4.2. Desain Struktur Data .............................................................................. 22
4.2.1. Desain Struktur Data Array Car Evaluation....................................... 22
4.2.2. Desain Struktur Data ArrayList Data Car Evaluation ........................ 22
4.2.3. Desain Struktur Data Pohon Keputusan CART .................................. 23
4.3. Algoritma ................................................................................................ 24
4.3.1. Kelas Data ........................................................................................... 24
4.3.2. Kelas TreeNode .................................................................................. 27
4.3.3. Kelas CART ........................................................................................ 28
4.3.4. Kelas Main .......................................................................................... 36
4.4. Implementasi Alat Uji ............................................................................ 39
BAB V ANALISIS DAN PEMBAHASAN .................................................... 47
5.1. Uji Validasi ............................................................................................. 47
5.2. Uji Akurasi ............................................................................................. 78
BAB VI KESIMPULAN DAN SARAN ........................................................... 82
6.1. Kesimpulan ............................................................................................. 82
6.2. Saran ....................................................................................................... 82
DAFTAR PUSTAKA ........................................................................................... 83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR TABEL
Tabel 3.1 Tabel Contoh Data Car Evaluation ...................................................... 17
Tabel 5.1 Data Sampel .......................................................................................... 47
Tabel 5.2 Data pada Iterasi Kedua ........................................................................ 51
Tabel 5.3 Data pada Iterasi Ketiga ........................................................................ 53
Tabel 5.4 Data pada Iterasi Keempat .................................................................... 56
Tabel 5.5 Data pada Iterasi Kelima ....................................................................... 59
Tabel 5.6 Data pada Iterasi Keenam ..................................................................... 62
Tabel 5.7 Data pada Iterasi Ketujuh ...................................................................... 64
Tabel 5.8 Data pada Iterasi Kedelapan ................................................................. 66
Tabel 5.9 Data pada Iterasi Kesembilan ............................................................... 69
Tabel 5.10 Data pada Iterasi Kesepuluh ............................................................... 72
Tabel 5.11 Data pada Iterasi Kesebelas ................................................................ 74
Tabel 5.12 Perhitungan Akurasi ............................................................................ 80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR GAMBAR
Gambar 2.3 Tahapan Penambangan Data ............................................................... 6
Gambar 2.4 Contoh Pohon Keputusan .................................................................. 13
Gambar 4.1 Diagram Kelas ................................................................................... 21
Gambar 4.2 Desain Array Data Car Evaluation ................................................... 22
Gambar 4.3 Desain ArrayList Data Car Evaluation ............................................. 23
Gambar 4 4 Desain Struktur Data Pohon Keputusan CART ................................ 24
Gambar 4.5 Implementasi Kelas Main.................................................................. 39
Gambar 4.6 Implementasi Method Utama Kelas Main ......................................... 40
Gambar 4.7 Tahap Awal Method pembetukanPohon ........................................... 42
Gambar 4.8 Tahap Perhitungan Komponen Daftar Evaluasi Mobil ..................... 42
Gambar 4.9 Tahap Pencarian Tingkat Impurity Tertinggi .................................... 42
Gambar 4.10 Tahap Pertama Dalam Proses Rekursif ........................................... 44
Gambar 4.11 Tahap Kedua Dalam Proses Rekursif.............................................. 45
Gambar 4.12 Tahap Rekursif ................................................................................ 45
Gambar 4.13 Tahap Pelabelan .............................................................................. 46
Gambar 5.1 Root pada Pohon Keputusan ............................................................. 48
Gambar 5.2 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Pertama ........ 49
Gambar 5.3 Pohon Hasil Iterasi Pertama .............................................................. 50
Gambar 5.4 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kedua ........... 52
Gambar 5.5 Pohon Hasil Iterasi Kedua ................................................................. 53
Gambar 5.6 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Ketiga .......... 55
Gambar 5.7 Pohon Hasil Iterasi Ketiga................................................................. 56
Gambar 5.8 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Keempat ....... 57
Gambar 5.9 Pohon Hasil Iterasi Keempat ............................................................. 59
Gambar 5.10 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kelima ....... 60
Gambar 5.11 Pohon Hasil Iterasi Kelima ............................................................. 62
Gambar 5.12 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Keenam ...... 63
Gambar 5.13 Pohon Hasil Iterasi Keenam ............................................................ 64
Gambar 5.14 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Ketujuh ...... 65
Gambar 5.15 Pohon Hasil Iterasi Ketujuh ............................................................ 66
Gambar 5.16 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kedelapan .. 68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 5.17 Pohon Hasil Iterasi Kedelapan ........................................................ 69
Gambar 5.18 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kesembilan 71
Gambar 5.19 Pohon Hasil Iterasi Kesembilan ...................................................... 72
Gambar 5.20 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kesepuluh .. 73
Gambar 5.21 Pohon Hasil Iterasi Kesepuluh ........................................................ 74
Gambar 5.22 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kesebelas ... 76
Gambar 5.23 Pohon Hasil Iterasi Kesebelas ......................................................... 77
Gambar 5.24 Tree Nodes Alat Uji......................................................................... 77
Gambar 5.25 Pohon Keputusan Alat Uji Data Sampel ......................................... 78
Gambar 5.26 Hasil Implementasi Alat Uji ............................................................ 79
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Di era global ini, perkembangan teknologi berkembang dengan pesat dan
menyebabkan adanya komputerisasi di banyak sendi kehidupan. Dampak yang
paling besar adalah terjadinya luapan data yang sangat banyak jumlahnya. Data
tersebut terus bertambah seiring berjalannya waktu. Dengan menggunakan
metode klasifikasi, data tersebut dapat diolah dan menghasilkan suatu informasi
yang lebih berguna. Klasifikasi sendiri merupakan data analisis yang berfungsi
untuk memperoleh informasi yang terselubung dari tumpukan data yang sangat
besar jumlahnya. Hasil pengolahan tersebut dapat digunakan sebagai prediksi atau
pembantu pengambilan suatu keputusan dalam memecahkan suatu masalah (Han
& Kamber, 2006).
Dalam metode penambangan data, terdapat banyak algoritma. Dari
algoritma-algoritma klasifikasi yang ada diantaranya terdapat teknik dengan
menggunakan pohon keputusan. Penambangan data dengan teknik pohon
keputusan menjadi teknik yang cukup sering digunakan untuk mencari suatu pola
tertentu. Hal itu dikarenakan pohon keputusan mudah diinterpretasikan dan
divisualisasikan. Menurut Kusrini (2009), ada berbagai macam algoritma pohon
keputusan yaitu : ID3, C4.5, CART, CHAID dan masih banyak lagi yang bisa
membangun suatu model tree.
Banyak algoritma yang ada namun hanya satu atau kombinasi dari
beberapa algoritma yang dapat diimplementasikan untuk menyelesaikan suatu
masalah. Tidak jarang memerlukan kombinasi dari dua atau lebih algoritma untuk
menyelesaikan masalah. Sebaiknya dilakukan analisis terhadap calon-calon
algoritma yang akan digunakan. Dalam proses analisis algoritma-algoritma
tersebut akan memeriksa seberapa efektif suatu algoritma berdasarkan waktu
tempuh (running time). Semakin cepat waktu tempuh akan semakin efisien pula
suatu algoritma. Dari sekian algoritma dapat dipilih algoritma yang paling efisien.
Dengan algoritma yang efisien proses penyelesaian masalah tidak akan
menghabiskan banyak waktu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Pada tugas akhir ini, peneliti akan mengimplementasikan salah satu dari
algoritma di atas, yaitu CART (Classification And Regression Tree) untuk
menganalisis algoritma berdasarkan tingkat akurasi dan waktu tempuh yang
diperlukan. Dalam Wu dkk. (2007), CART merupakan salah satu dari 10
algoritma penambangan data terbaik. Metode CART sudah diakui tingkat
keberhasilannya. Algoritma CART, sesuai dengan namanya, bisa mengatasi
masalah data yang bersifat kontinyu maupun diskrit serta bisa mengatasi masalah
klasifikasi maupun masalah regresi. CART sendiri bersifat binary tree.
Dalam penelitian ini digali suatu informasi dari data evaluasi mobil yang
diambil dari website UC Irvine Machine Learning Repository. Data yang ada
memuat faktor-faktor yang menentukan evaluasi penerimaan pengguna terhadap
suatu mobil. Faktor yang dimaksud adalah harga beli, biaya perawatan, jumlah
pintu, jumlah orang yang dapat dimuat, kapasitas bagasi dan keamanan dari suatu
mobil. Data evaluasi mobil itu akan diolah sehingga peneliti dapat membantu
pengguna yang akan membeli mobil baru berdasarkan pola-pola yang nantinya
akan didapatkan untuk melakukan pengklasifikasian evaluasi data mobil.
Pada penelitian “Perbandingan Kinerja Algoritma Pohon keputusan ID3
Dan CART Pada Penjurusan Siswa SMA Berdasarkan Nilai Ujian SMP Dan Nilai
Rapor Kelas X”, Apsari (2011) melakukan penelitian yang bertitik pada melihat
akurasi dan kecepatan komputasi dengan membandingkan komposisi data dan
jumlah data yang berbeda terhadap pengklasifikasian penjurusan kurikulum
KTSP2006. Berbeda dengan penelitian kali ini karena penelitian ini bertitik pada
implementasi algoritma CART dan pengujiannya berdasarkan tingkat akurasi,
dan waktu tempuh. Hasil dari penelitian yang dilakukan oleh Apsari menyatakan
bahwa algoritma CART lebih unggul dari algoritma ID3. Oleh karena itu,
algoritma yang digunakan CART, hanya saja tujuan penelitian ini yang berbeda.
Tujuan penelitian yang dilakukan oleh Apsari (2011) adalah melihat membangun
suatu sistem, akurasi dan kecepatan komputasi dari kedua algoritma untuk
menentukan pilihan Jurusan siswa SMA. Tujuan penelitian ini adalah
mengimplementasi dan menganalisis kinerja algoritma CART dari segi akurasi
dan kecepatan komputasi terhadap data evaluasi mobil.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.2. Rumusan Masalah
Permasalahan yang akan dirumuskan dalam penelitian ini adalah :
1) Bagaimana tingkat akurasi algoritma CART dalam mengklasifikasi
data evaluasi mobil?
2) Bagaimana durasi waktu tempuh algoritma CART dalam
mengklasifikasi data evaluasi mobil?
1.3. Tujuan
Tujuan dari penelitian ini yaitu untuk mengimplementasi dan menganalisis
hasil komputasi dalam segi tingkat akurasi dan kecepatan komputasi yang
dibutuhkan.
1.4. Batasan Masalah
Sesuai dengan rumusan masalah di atas, batasan yang diberlakukan dalam
penelitian ini adalah :
a. Penelitian ini hanya menggunakan algoritma pohon keputusan CART.
b. Tahap algoritma CART hanya diimplementasikan sebatas
pembentukan pohon tanpa melakukan tahap pruning.
c. Penelitian ini hanya menghitung tingkat akurasi dan kecepatan
komputasi yang diperlukan.
d. Data yang digunakan adalah data Car Evaluation yang berasal dari :
https://archive.ics.uci.edu/ml/datasets/Car+Evaluation
1.5. Metodologi Penelitian
Metode yang digunakan dalam penelitian ini adalah :
a. Studi Pustaka
Mempelajari sumber bahan tertulis seperti buku cetak, makalah,
jurnal, skripsi dan tutorial yang ada kaitannya dengan penelitian ini.
b. Pengambilan Data
Mengumpulkan sumber data yang berkaitan dengan penelitian
yang dibangun.
c. Perancangan Model Pohon Keputusan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
Perancangan model Pohon keputusan menggunakan metode KDD
(Knowledge Discovery in Database) meliputi :
i. Data Cleaning
Tahap ini akan melakukan pengisian data yang kosong dan
penghapusan data yang tidak konsisiten.
ii. Data Integration
Tahap ini melakukan penggabungan data dari berbagai sumber
data yang berbeda. Penambangan data tidak hanya berasal dari satu
sumber database melainkan juga berasal dari beberapa sumber
database atau text file.
iii. Data Selection
Tahap ini melakukan pengambilan data yang relevan terhadap
penelitian.
iv. Data Transformation
Tahap ini melakukan pemilihan data untuk menentukan
kualitas penambangan data, sehingga data dapat diubah menjadi
bentuk yang sesuai untuk ditambang.
v. Penambangan data
Tahap ini melakukan proses esensial untuk mengekstrak pola
dari dara dengan metode penambangan data. Dalam bagian inilah
proses pembentukan pohon CART akan berlangsung.
vi. Pattern Evaluation
Tahap ini, pengetahuan atau pola yang sudah didapat dari
proses penambangan data akan dievaluasi dengan hipotesa yang
telah dibentuk sebelumnya.
vii. Knowledge Presentation
Penyajian pengetahuan yang telah digali kepada pengguna
dengan menggunakan visualisasi dan teknik representasi
pengetahuan.
d. Analisis Hasil Perbandingan Algoritma
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
Pada tahap ini peneliti akan menganalisis hasil implementasi yang
sudah didapatkan. Aspek yang akan dianalisis adalah tingkat akurasi
dan running time yang telah terekam saat menjalankan alat uji.
1.6. Sistematika Penulisan
Penulisan tugas akhir ini tersusun dari 6 (enam) bab dengan sistematika
penulisan sebagai berikut :
a. BAB I PENDAHULUAN
Bab I Pendahuluan berisi latar belakang, rumusan masalah, tujuan
penelitian, batasan masalah, metodologi penelitian dan sistematika penulisan.
b. BAB II LANDASAN TEORI
Bab ini menjelaskan tentang landasan teori yang akan menjadi dasar
penelitian implementasi algoritma pohon keputusan CART ini.
c. BAB III METODOLOGI PENELITIAN
Bab ini berisi tentang identifikasi alat uji, studi literatur, cara pemerolehan
data, metode dan prosedur pengembangan data serta analisis hasil.
d. BAB IV PERANCANGAN DAN IMPLEMENTASI ALAT UJI
Bab ini akan proses perancangan yang mencakup : Diagram Kelas, Desain
Struktur Data dan Algoritma. Selain perancangan bab ini juga berisi
pengimplementasian alat uji dan hasilnya.
e. BAB V ANALISIS DAN PEMBAHASAN
Bab ini memuat analisis hasil akurasi komputasi, waktu tempuh dari
algoritma CART.
f. BAB VI KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari penelitian yang sudah dibangun dan
dijalankan juga memuat saran-saran yang bisa digunakan guna memperbaiki
dan mengembangkan penelitian di kemudian hari.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
BAB II
LANDASAN TEORI
2.1. Penambangan data
Dalam tugas akhir Apsari, Kusnawi (2007) menyatakan bahwa
penambangan data merupakan salah satu bidang yang berkembang pesat karena
adanya kebutuhan akan nilai tambah dari database skala besar yang makin banyak
terakumulasi sejalan dengan berkembangnya teknologi informasi. Kondisi nyata
yang terjadi akibat jumlah akumulasi data yang semakin bertumbuh adalah “rich
of data but poor information”, data menjadi berlimpah ruah tapi informasi yang
didapatkan itu hanya segelitir. Menurut Widiyanto (2013) penambangan data
adalah aktivitas menambang suatu ilmu pengetahuan dari data yang berjumlah
besar, informasi yang diperoleh ini nantinya akan digunakan sebagai
pengembangan. Sebagai suatu rangkaian proses, penambangan data dapat dibagi
menjadi beberapa tahap yang diilustrasikan di Gambar 2.3 di bawah ini.
Gambar 2.1 Tahapan Penambangan Data (Han dan Kamber, 2006)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Tahapan tersebut bersifat interaktif karena user dapat terlibat secara
langsung di dalamnya.
Pembersihan data (data cleaning) bertujuan untuk membuang data yang
tidak konsisten dan noise. Data yang diperoleh biasanya mempunyai isian data
yang tidak sempurna, misalkan : data kosong, hilang, tidak valid atau typo. Selain
itu dari atribut data ada yang tidak relevan dengan kebutuhan penambangan data.
Data-data seperti di atas sebaiknya dibersihkan atau dibuang karena
keberadaannya dapat mengurangi kejelasan dan mutu atau akurasu dari hasil
penambangan data. Ada istilah GIGO (Garbage in Garbage out) yang sering
digunakan untuk menggambarkan tahap ini. Sampah yang kita masukan akan
menghasilkan sampah pula. Pembersihan data ini juga dapat mempengaruhi
performance dari sistem penambangan data karena data yang ditangani akan
berkurang jumlahnya dan kompleksitasnya pun juga lebih ringkas.
Integrasi data (data integration) bermaksud untuk menggabungkan data
dari beberapa sumber yang saling berhubungan. Data yang kita peroleh bisa saja
berasal dari lebih dari satu sumber database atau dokumen. Tahap ini dilakukan
pada variabel seperti nama, jenis produk, nomor pelanggan yang termasuk
primary key. Tahapan ini perlu dilakukan secara cermat karena error pada tahap
ini akan berefek besar pada akurasi hasil sehingga ilmu pengetahuan yang didapat
bisa saja bersifat menyesatkan. Selain menggabungkan data dari banyak sumber,
tahap ini juga melakukan sinkronisasi data, entah nama variabel yang berbeda,
format pengisian data, dsb.
Transformasi data (data transformation) yaitu suatu tahapan yang
mengubah bentuk data yang ada menjadi bentuk yang dikehendaki untuk
melakukan penambangan data.
Aplikasi teknik penambangan data adalah tahapan yang merupakan bagian
dari proses penambangan data. Teknik penambangan data yang sering dijumpai
adalah klasifikasi, klastering dan asosiasi.
Evaluasi pola yang ditemukan (pattern evaluation) merupakan tahapan
yang menilai pola yang dihasilkan dari proses penambangan data sehingga dapat
menjawab apakah hipotesa yang ada memang tercapai.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Presentasi Pengethauan (knowledge presentation) adalah tahapan yang
bertujuan untuk menformulasikan keputusan atau aksi dari hasil analisa yang
didapat dari proses penambangan data tersebut.
2.3. Teknik Penambangan data
Dalam Apsari (2011), mengatakan bahwa penambangan data terdapat
banyak teknik untuk melakukannya, tapi hanya tiga teknik yang popular, yaitu :
asosiasi, klastering dan klasifikasi. Pada penelitian ini akan menggunakan teknik
klasifikasi.
Klasifikasi merupakan salah satu teknik penambangan data yang melihat
pada kelakuan dan atribut dari kelompok yang telah didefinisikan. Teknik ini
dapat memberikan klasifikasi pada data baru dengan memanipulasi data yang ada
dan telah diklasifikasi. Hasil klasifikasinya akan digunakan untuk memberikan
sejumlah aturan. Aturan yang didapat akan dipergunakan untuk mengklasifikasi
data baru. Teknik ini menggunakan manfaat dari kumpulan pengujian record yang
telah terklasifikasi untuk menentukan kelas tambahan. Salah satu contoh yang
mudah dan paling umum adalah dengan pohon keputusan.
2.4. Pohon Keputusan
Menurut Kusrini (2009) pohon keputusan merupakan metode klasifikasi
dan prediksi yang sangat kuat dan populer. Metode pohon keputusan ini
mengubah fakta yang sangat besar menjadi pohon keputusan yang
mempresentasikan suatu aturan.
Pada Apsari (2011), Berry dan Linoff menyatakan bahwa sebuah pohon
keputusan adalah sebuah struktur yang dapat digunakan untuk membagi
kumpulan data yang besar menjadi bagian-bagian record yang lebih kecil dan
sederhana dengan menerapkan serangkaian aturan keputusan. Dengan masing-
masing pemerataan, anggota bagian menjadi serupa satu sama lainnya. Selain itu
pada Apsari (2011), Basuki dan Syarif pun mengatakan kalau pohon keputusan
merupakan proses mengubah bentuk data tabel menjadi model pohon, mengubah
model pohon menjadi aturan dan menyederhanakan aturan tersebut. Masih dalam
Apsari (2011), Santana menyatakan bahwa pohon keputusan memiliki keunggulan
yaitu dapat mengeksplorasi data, sehingga data bisa diolah dan dikembangkan lagi
untuk menjadi aturan dalam suatu pengambilan keputusan yang kompleks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
menjadi lebih sederhana sehingga pengambil keputusan akan lebih mendekati
solusi dari suatu permasalahan.
Kekurangan pohon keputusan adalah kesulitan dalam mendesain pohon
keputusan yang optimal. Hasil keputusan yang didapatkan sangat bergantung pada
bagaimana pohon keputusan tersebut didesain, terjadi bersitumpang terutama jika
kelas dan kriteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga
dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah
memori yang diperlukan. Lain halnya ketika kriterianya lebih sederhana, tentu
saja pengambilan keputusannya menjadi lebih cepat.
2.5. Ukuran Pemilihan Atribut
Menurut Han dan Kamber (2006) ukuran pemilihan atribut merupakan
“sebuah pendekatan heuristik untuk memilih kriteria terbaik dalam mempartisi
training data ke dalam kelas-kelas”. Idealnya, setiap partisi yang dihasilkan harus
bersifat pure (seluruh tuples yang berada di dalam suatu partisi harus memiliki
kelas yang sama). Oleh karena itu, kriteria terbaik adalah kriteria yang mampu
mempartisi data mendekati pure. Ukuran pemilihan atribut akan membuat ranking
dari atribut-atribut pada training data. Atribut yang berada pada peringkat paling
atas merupakan atribut yang dipilih sebagai splitting attribute. Jika splitting
attribute bernilai kontinu, maka split point juga akan didefinisikan. Jika splitting
attribute bernilai diskrit namun pohon keputusan yang dibentuk harus biner, maka
splitting subset akan didefinisikan. Terdapat tiga jenis ukuran pemilihan atribut
yang banyak digunakan, yaitu information gain, gain ratio, dan gini index.
Information gain digunakan untuk metode ID3, gain ratio digunakan dalam
metode C4.5 sedangkan gini index digunakan dalam metode CART.
Gini index merupakan salah satu ukuran pemilihan atribut. Gini Index
digunakan pada algoritma CART. Gini index akan menghasilkan pembagian yang
bersifat biner pada setiap atribut, baik yang memiliki nilai diskrit ataupun kontinu.
Gini index mengukur impurity dari suatu partisi, D, dengan rumus 2.1 berikut.
( ) ∑
................................. (2.1)
Di mana
Gini(D) = impurity dari suatu partisi D
m = banyaknya indeks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
pi = peluang sebuah tuple D pada indeks ke i
Di mana pi adalah peluang bahwa sebuah tuple di D berada pada kelas Ci.
Peluang tersebut dapat didekati dengan hasil perhitungan |Ci,D|/|D| di mana. |Ci,D|
merupakan jumlah tuple pada D yang memiliki kelas Ci dan |D| adalah jumlah
seluruh tuple di D. Perhitungan ini dilakukan untuk setiap kelas.
Misalkan A merupakan atribut bernilai diskrit yang memiliki sejumlah v
nilai berbeda, {a1, a2, ..., av}. Untuk menentukan kriteria pembagian terbaik
terhadap A, seluruh himpunan bagian dari A harus diperiksa. Setiap himpunan
bagian, SA, dapat dijadikan sebagai splitting subset untuk pengujian dalam bentuk
”A Є SA ”. Sebuah tuple memenuhi pengujian jika nilai untuk atribut A pada tuple
tersebut merupakan bagian dari SA. Dengan tidak mempertimbangkan himpunan
kuasa dan himpunan kosong, maka akan terdapat 2v – 2 cara untuk melakukan
pembagian biner dari D.
Pemeriksaan sebuah pembagian biner dilakukan dengan cara
menjumlahkan impurity dari setiap partisi yang dihasilkan oleh pembagian
tersebut. Misalkan sebuah pembagian yang dilakukan terhadap atribut A
mempartisi D menjadi D1 dan D2. Gini index dari D dapat dihitung dengan rumus
2.2 berikut.
( )
( )
( ) .................... (2.2)
Di mana
GiniA(D) = impurity dari suatu partisi D pada atribut A
Gini(D1) = impurity dari partisi pertama tuple D
Gini(D2) = impurity dari partisi kedua tuple D
D = tuple D
D1 = partisi pertama tuple D
D2 = partisi kedua tuple D
Untuk atribut bernilai diskrit, himpunan bagian yang memberikan nilai
Gini Index terkecil atau mendekati 0 untuk atribut A akan dipilih sebagai splitting
subset. Seluruh pembagian biner yang mungkin terjadi pada suatu atribut harus
diperiksa.
Sementara untuk atribut bernilai kontinu, setiap split point yang mungkin
harus diperiksa. Untuk nilai-nilai suatu atribut yang telah diurutkan, titik tengah di
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
antara setiap pasangan nilai yang saling berseberangan dapat diambil sebagai
sebuah split point. Titik yang memberikan nilai gini index terkecil untuk suatu
atributlah yang akhirnya diambil sebagai split point.
Penurunan tingkat impurity yang diperoleh dari sebuah pembagian biner
terhadap atribut A dapat dihitung dengan rumus 2.3 berikut.
( ) ( ) ( ) ........................ (2.3)
Di mana
∆Gini(A) = tingkat impurity
GiniA(D) = impurity dari suatu partisi D pada atribut A
Gini(D) = impurity dari partisi pertama tuple D
Atribut yang memaksimalkan penurunan tingkat impurity inilah yang dipilih
sebagai splitting attribute. Atribut ini, bersama dengan splitting subset jika atribut
tersebut bernilai diskrit atau split point jika atribut tersebut bernilai kontinu akan
membentuk kriteria pembagian.
Di bawah ini merupakan contoh perhitungan untuk mencari tingkat
impurity dari sebuah kandidat A
Total data : 16 records
Unacceptance : 6 records
Acceptance : 2 records
Good : 4 records
Very Good : 4 records
( ) (
)
(
)
(
)
(
)
( )
Kandidat Safety = low vs Safety = med high
Safety = low
Total data : 5 records
Unacceptance : 5 records
Acceptance : 0 records
Good : 0 records
Very Good : 0 records
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
( ) (
)
(
)
(
)
(
)
( )
Safety = med || high
Total data : 11 records
Unacceptance : 1 records
Acceptance : 2 records
Good : 4 records
Very Good : 4 records
( ) (
)
(
)
(
)
(
)
( )
( )
( )
( )
( )
Sehingga untuk kandidat Safet dengan posisi LeftChild Low dan
RightChild Med High memiliki tingkat impurity sebesar 0,241477273. Kandidat
tersebut belum pure.
2.5. Induksi Pohon Keputusan
Tahun 1984 sekelompok ahli statistik yaitu Breiman, Friedman, Olshen
dan Stone menerbitkan suatu buku mengenai Classification and Regression Trees
(CART), dideskripsikan sebagai generasi pohon keputusan biner.
Menurut Han dan Kamber (2006) ID3, C4.5 dan CART memiliki
karakteristik yang sama dalam membangun pohon keputusan, yaitu top-down dan
divide-conquer. Top-down artinya pohon keputusan dibangun dari root ke simpul
leaf. Divide-conquer artinya training data secara rekursif dipartisi ke dalam
bagian-bagian yang lebih kecil saat pembangunan pohon. Biner tidaknya pohon
keputusan ditentukan oleh ukuran pemilihan atribut atau algoritma yang
digunakan.
Gambar 2.4 adalah salah satu contoh suatu pohon keputusan untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
seseorang bermain tenis atau tidaknya dengan memperhatikan beberapa aspek
seperti kelembapan (humidity), cuaca (outlook) dan berangin (windy).
Gambar 2.2 Contoh Pohon Keputusan (Kusrini, 2009)
CART adalah singkatan dari Classification and Regression Tree. Dalam
CART menurut Budi Santosa (2007) setiap simpul dipecah menjadi dua bagian.
Ada dua langkah penting yang harus diikuti untuk mendapatkan tree dengan
performansi yang optimal. Yang pertama adalah pemecahan obyek secara
berulang berdasarkan atribut tertentu. Yang kedua, pruning (pemangkasan)
dengan menggunakan data validasi. Misalkan kita mempunyai variabel
independent x1, x2, x3, ... , xn dan variabel dependent atau output y.
Menurut Steinberg (2009) adapun langkah-langkah dalam konstruksi
pohon keputusan CART adalah sebagai berikut :
1. Menentukan root
2. Menghitung Gini Index setiap calon cabang
3. Memilih atribut dengan Gini Index yang paling besar sebagai splitting
attribute yang akan dijadikan cabang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
4. Ulangi langkah 2 dan 3 hingga terdapat leaf yang bersifat pure atau
mendekati pure.
Leaf yang bersifat pure berarti leaf tersebut memiliki sekumpulan data
faktor dan sekumpulan data target yang seleruhnya memiliki karakteristik sama.
Leaf yang bersifat mendekati pure berarti leaf tersebut memiliki kumpulan data
faktor yang seluruhnya memiliki karakteristik yang sama tetapi kumpulan data
taget tidak memiliki karakteristik yang sama. Pada kasus ini node tidak bisa
dipecah lagi menjadi cabang anak kanan maupun cabang anak kiri.
Pemecahan secara berulang berarti membagi obyek ke dalam kotak-kotak
bernilai variabel x1, x2 atau xp. Cara ini diulang sehingga dalam suatu kotak
sebisa mungkin berisi observasi dari kelompok/kelas yang sama. Misalkan untuk
pemecahan pertama, kita buat kotak yang memuat semua observasi dengan xi ≤ si,
sementara kotak lain berisi observasi dengan nilai xi > si. Selanjutnya satu kotak
dipecah lagi menjadi dua kotak dengan cara yang sama dengan menggunakan
variabel xi yang sama atau variabel yang lain. Proses ini dilanjutkan hingga
memperoleh kotak yang semakin kecil ukurannya. Idenya adalah membuat kotak
yang isinya seseragam mungkin (pure). Yang dimaksud pure adalah bila satu
kotak hanya berisi observasi dari satu kelas.
Langkah berikutnya sesudah dilakukan pemecahan obyek/data secara
berulang adalah melakukan pruning. Pruning dilakukan untuk memangkas tree
yang mungkin terlalu besar dan overfitting. Overfitting merupakan noise yang ada
di dalam data training, bukan pola yang termasuk ke dalam data testing atau data
validasi. Pruning terdiri dari beberapa langkah pemilihan secara berulang simpul
yang akan dijadikan leaf. Dengan mengubah simpul menjadi leaf artinya tidak
akan dilakukan pemecahan lagi. Dengan demikian ukuran tree akan menjadi
sederhana.
2.6. Uji Akurasi k-fold Cross-Validation
Dalam k-fold cross-validation, data awal secara acak dipartisi menjadi k
banyak partisi menjadi D1, D2, ..., Dk, masing-masing partisi memiliki ukuran
yang kurang lebih sama. Pelatihan dan pengujian dilakukan sebanyak k kali.
Dalam iterasi i, partisi Disiapkan sebagai data testing, dan partisi yang tersisa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
secara kolektif digunakan sebagai data trainning. Yaitu, dalam iterasi pertama,
subhimpunan D2, D3, ..., Dk secara kolektif berfungsi sebagai data trainning untuk
mendapatkan model pertama, yang akan diuji pada partisi D1; iterasi kedua data
trainning terjadi pada partisi D1, D3, ..., Dk dan diuji pada partisi D2; dan begitu
pula halnya dengan iterasi berikutnya hingga sampai iterasi k. Berbeda dengan
metode holdout dan metode random subsampling, di sini setiap sampel data
digunakan dalam jumlah yang sama untuk trainning dan sekali untuk testing.
Untuk metode klasifikasi, perkiraan akurasi adalah jumlah keseluruhan klasifikasi
yang benar dari k iterasi, dibagi dengan jumlah total tupel dalam data awal.
Leave-one-out adalah kasus khusus k-fold cross-validation di mana k
diatur ke jumlah inisial tupel. Artinya, hanya satu sampel yang "ditinggalkan"
pada saat untuk set tes. Dalam permulaan cross-validation, fold-fold dibuat
bertingkat sehingga distribusi kelas tupel di setiap fold kira-kira sama dengan
yang ada di data awal.
Secara umum, k-fold yang digunakan adalah 10-folds cross-validation. Hal
itu direkomendasikan untuk menaksir akurasi (bahkan jika daya komputasi
memungkinkan penggunaan lebih banyak fold) karena biasnya yang relatif rendah
dan bervariasi.
2.7. Pengujian Kinerja Algoritma
Algoritma dapat diukur efisiensinya dari berapa jumlah waktu yang
diperlukan untuk mengeksekusi algoritma tersebut. Algoritma yang efisien adalah
algoritma dengan kebutuhan waktu yang singkat.
Waktu tempuh dapat terlihat bila dilakukan proses pengurangan antara
waktu akhir proses komputasi dengan waktu awal proses komputasi berlangsung.
runningTime = endTime – startTime ............................ (2.5)
Di mana :
runningTime = waktu tempuh yang dibutuhkan untuk menjalankan algoritma
endTime = waktu akhir di mana algoritma telah selesai dijalankan
startTime = waktu awal di mana algoritma akan dijalankan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
BAB III
METODOLOGI PENELITIAN
3.1. Identifikasi Alat Uji
Data sudah berjumlah sangat besar. Data dapat diolah sehingga
menghasilkan sesuatu yang lebih berharga, misalnya informasi. Informasi tersebut
akan dipakai untuk memecahkan suatu masalah. Dalam proses pengolahan data
sebaiknya memilih cara pengolahan data yang efisien. Untuk tahu seberapa efisien
suatu teknik pengolahan data, kita dapat melihat tingkat akurasi komputasi dan
waktu tempuh dari suatu algoritma dalam memecahkan suatu masalah. Pada
penelitian kali ini, peneliti melakukan implementasi algoritma klasifikasi pohon
keputusan CART.
Alat uji akan dituangkan ke dalam project yang dibangun menggunakan
bahasa pemrograman Java dan struktur data dalam bentuk csv.
3.2. Studi Literatur
Dalam penelitian ini referensi-referensi yang digunakan berkaitan dengan
penelitian ini dari berbagai paper, jurnal maupun buku cetak maupun buku
elektronik yang masih relevan dengan judul penelitian ini.
3.3. Sumber Data
Pada penelitian ini dibutuhkan data Car Evaluation yang berasal dari :
https://archive.ics.uci.edu/ml/datasets/Car+Evaluation
Data evaluasi mobil memiliki 6 faktor yang menentukan evaluasi dari
suatu mobil. Buying menyatakan biaya pembelian mobil, Maintenance
menyatakan seberapa banyak pengeluaran perawatan mobil, Doors menyatakan
jumlah pintu mobil, Persons menyatakan maksimal orang yang dapat dimuat dalm
mobil, Luggage_boot menyatakan kapasitas bagasi mobil, Safety menyatakan
tingkat keaman mobil. Sedangkan Evaluation menyatakan evaluasi penerimaan
seorang pengguna terhadap mobil yang dimilikinya. Contoh data evaluasi mobil
dapat dilihat pada tabel 3.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Tabel 3.1 Tabel Contoh Data Car Evaluation
No Buying Maintenance Doors Persons Luggage_boot Safety Evaluation
1 Low Med 3 more Small Low Unacc
2 Low Med 3 more Small Med Acc
3 Low Med 3 more Small High Good
4 Low Med 3 more Med Low Unacc
5 Low Med 3 more Med Med Good
6 Low Med 3 more Med High Vgood
7 Low Med 3 more Big Low Unacc
8 Low Med 3 more Big Med Good
9 Low Med 3 more Big High Vgood
10 Low Med 4 2 Small Low Unacc
Contoh pada baris pertama, seorang pengguna mobil membeli mobil
dengan biaya yang murah, pengeluaran biaya perawatan biasa-biasa saja. Mobil
yang dimilikinya memiliki 3 pintu, kapasitas cukup untuk menampung lebih dari
4 orang, bagasi mobil kecil. Tingkat keamanan mobil yang dimilikinya rendah.
Sehingga dari factor-faktor tersebut,pengguna memberikan evaluasi yang buruk
(unacceptance).
Setiap atribut memiliki range nilai
Buying = low, med, high, vhigh
Maintenance = low, med, high, vhigh
Doors = 2, 3, 4, more
Persons = 2, 4, more
Luggage_boot = small, med, big
Safety = low, med, high
Evaluation = unacc, acc, good, vgood
Data sampel di atas hanya menyatakan 10 dari 914 records data yang akan
diteliti. Data sebanyak itu akan memerlukan waktu yang cukup lama bila ingin
mencari suatu pola evaluasi penerimaan suatu mobil dari 914 pengguna.
Penelitian ini ingin mencari tahu pola yang tersembunyi dari data tersebut.
Sehingga peneliti dapat mengetahui pola klasifikasinya.
3.4. Pengembangan dan Perancangan Alat Uji
Seperti yang peneliti katakan subbab 1.5 mengenai Metodologi Penelitian
bagian (c) tentang perancangan model pohon keputusan, penelitian ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
menggunakan tahap KDD untuk membangun penelitian ini. KDD ini dibagi
menjadi dua tahap yaitu praproses data dan penambangan data.
3.4.1. Praproses Data
Tahapan dalam praproses data dijelaskan sebagai berikut :
a. Pembersihan Data
Pembersihan data (data cleaning) merupakan tahapan awal dalam
melakukan proses penambangan data. Dalam proses pembersihan data
ini bisa dilakukan upaya untuk mengisi nilai yang kosong (missing
value) dan membenarkan data yang tidak konsisten.
b. Integrasi Data
Pada tahapan ini akan melakukan penggabungan data dari berbagai
sumber yang berbeda. Namun pada penelitian ini tidak melakukan
integrasi data karena data yang didapat berasal dari satu sumber data.
c. Seleksi Data
Tahapan dalam seleksi data, yaitu memilih atribut-atribut yang
relevan dengan penelitian. Atribut yang digunakan dalam melakukan
evaluasi mobil yaitu buying, maintenance, number of doors, capacity
of persons, luggage boot dan estimated safety. Data yang digunakan
pun hanya 914 records dari 1728 records.
d. Transformasi Data
Pada langkah transformasi data peneliti akan mengubah nilai
“5more” menjadi “more” pada atribut Doors.
3.4.2. Penambangan data
1) Masukan Sistem
Telah dibahas di atas bahwa data memiliki enam atribut yang akan
digunakan : buying price, maintenance, number of doors, capacity of
persons, luggage boot, estimated safety dan evaluation.
2) Proses Sistem
Masukan pada sistem akan diproses dengan menggunakan teknik
klasifikasi metode CART. Proses yang dilalui sebagai berikut:
1. Pengguna melakukan proses input data car evaluation untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
memindahkan nilai asli dari file csv ke suatu struktur data.
a. Menyiapkan objek untuk menyimpan data car dan daftar
car
b. Memasukan lokasi file csv yang akan diimpor ke dalam
program.
c. Membaca dan menyimpan nilai atribut buying,
maintenance, doors, persons, luggage_boot, safety dan
evaluation. Jika data doors “5more”, ubah menjadi
“more”.
d. Menyimpan objek car ke dalam daftar car
2) Pada pembentukan pohon keputusan CART langkah awal yang
dilakukan adalah
a) Menyiapkan kandidat-kandidat cabang
b) Menghitung tingkat impurity pada data keseluruhan
c) Menghitung tingkat impurity tiap cabang dengan rumus
2.3.
d) Kandidat yang memiliki tingkat impurity tertinggi
terpilih sebagai splitting node.
e) Menentukan komponen pada cabang anak kiri dan
cabang anak kanan
f) Lakukan langkah 2a) hingga 2d) hingga cabang bersifat
pure atau mendekati pure.
3) Proses uji validasi dengan membandingkan hasil alat uji yang
sudah dibangun dengan pohon keputusan yang dibuat secara
manual dari data sampel sebanyak 16 records.
4) Proses pengujian melihat dari tingkat akurasi, kecepatan
komputasinya. Hasil akhir dari proses pengujian yaitu hasil tingkat
akurasi dan kecepatan komputasi yang ditempuh dari algoritma
CART.
a) Membagi data menjadi 10 bagian yang kurang lebih
sama besarnya.
b) Lakukan perulangan sebanyak 10kali
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
i) Menyimpan data selain fold ke-i ke dalam suatu larik.
ii) Merekam waktu mulai proses pembuatan pohon ke-i
iii) Membuat pohon ke-i
iv) Merekam waktu akhir pembuatan pohon ke-i
v) Menghitung selisih waktu akhir dan waktu mulai dari
pembuatan pohon ke-i
vi) Menguji akurasi
(1) Membandingkan semua data di fold ke-i dengan
pola pohon ke-i yang telah di dapat
(2) Jika benar counter akan bertambah 1
(3) Menghitung persentase akurasi ke-i.
c) Mencetak waktu tempuh program dan tingkat
akurasinya.
3.5. Analisis Hasil
Peneliti akan menganalisa hasil pengujian alat uji berupa tingkat akurasi
yang diuji dengan menggunakan k-folds Cross-Validation dan waktu komputasi
yang ditempuh dari algoritma CART dengan menghitung selisih waktu mulai dan
waktu selesai pembentukan pohon.
3.6. Kesimpulan dan Saran
Di tahap ini akan menarik suatu garis besar dari hasil analisis yang sudah
diperoleh pada alat uji. Sehingga dapat diketahui berapa tingkat akurasi dan
berapa lama waktu tempuh yang dibutuhkan untuk membentuk pohon keputusan
CART.
3.7. Kebutuhan Perangkat
Hardware :
o RAM 2GB
o processor Intel CORE i3
Software :
o Netbeans 8.0
o Miscrosoft Excel 2010
o Operating System Windows 10
o System type 64-bit operating sistem, x64-based processor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
BAB IV
PEMBANGUNAN ALAT UJI
4.1. Desain Diagram Kelas
Pada penelitian ini terdapat 6 kelas : CarEva, Data, TreeNode, CART, ujiValidasi dan kelas Main. Dilihat pada Gambar 4.1
Gambar 4.1 Diagram Kelas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Kelas CarEva merupakan kelas model pada penelitian ini. Kelas ini
memiliki atribut buying, maintenance, doors, persons, luggage_boot, safety dan
evaluation. Kelas Data berfungsi untuk mengimpor data dari csv ke dalam
struktur data serta melakukan pembagian data menjadi 10 partisi. Kelas ini
memiliki atribut Car dan listCar yang merujuk ke kelas CarEca, N dan size yang
akan digunakan untuk mempartisi data. Kelas TreeNode adalah kelas yang
mengatur node dan segala komponen yang berada di dalamnya. Kelas ini
memiliki atribut data, lData, rData yang merupakan array of String. Selain itu ada
atribut komponen, leaf, leftChild dan rightChild. Kelas CART bertujuan untuk
membangun pohon keputusan dengan menggunakan Gini Index sebagai ukuran
pemilihan atribut. Mulai dari perhitungan hingga pembentukan pohon keputusan.
Algoritma CART yang dikerjakan berhenti hingga pohon keputusan sudah
dibentuk tanpa melakukan proses pemangkasan. Terakhir, kelas Main yang
bertujuan untuk menjalan alat uji yang sudah dibangun.
4.2. Desain Struktur Data
4.2.1. Desain Struktur Data Array Car Evaluation
Pada penelitian kali ini, data yang diambil dan dipakai merupakan
data berbentuk tabel, sehingga pada pembangunan desain struktur data
tersebut peneliti menggunakan struktur array of object dari CarEva.
Desain dapat dilihat pada gambar 4.2 :
Gambar 4.2 Desain Array Data Car Evaluation
4.2.2. Desain Struktur Data ArrayList Data Car Evaluation untuk
pengujian
Pada penelitian ini akan menggunakan konsep pengujian k-fold, atau
lebih tepatnya 10-folds. Caranya dengan membagi data awal menjadi
10 bagian yang memiliki isi atau bagian hampir sama besarnya satu
dengan yang lain. Sehingga peneliti menggunakan konsep array list
untuk menyimpan 10 bagian data yang sudah dipecah sama besarnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Gambar 4.3 Desain ArrayList Data Car Evaluation
Gambar 4.3 di atas ini merupakan desain struktur data untuk
pengujian.
4.2.3. Desain Struktur Data Pohon Keputusan CART
Pada penelitian kali ini hasil pohon keputusan memiliki konsep
struktur seperti pohon dengan 2 cabang di masing-masing node. Setiap
node pada pohon merujuk ke kelas TreeNode.
Pada masing-masing node akan memuat beberapa komponen, yaitu:
nama kandidat cabang, nilai kandidat cabang dan nama klasifikasinya
bila node adalah leaf.
Pada gambar 4.4 dapat dilihat bahwa root punya dua cabang dari
atribut Persons. Anak kiri merupakan mobil yang hanya muat untuk 2
orang. Anak kanan merupakan mobil yang muat 4 orang atau lebih.
Pada anak cabang kiri juga menyatakan hasil klasifikasi dengan label
“Unacc” atau unacceptance.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Gambar 4 4 Desain Struktur Data Pohon Keputusan CART
4.3. Algoritma
Pada sub bab ini akan membahas langkah-langkah dalam method di setiap
kelas yang dirancang untuk membanfun alat uji ini.
4.3.1. Kelas Data
4.3.1.1. Method bacaData
Tipe : void
Parameter : -
Fungsi : mengimpor data ke dalam struktur data di alat uji
Adapun langkah-langkahnya, berikut:
a. Mengaktivasi bufferReader
b. Memasukan lokasi data yang akan diimpor
c. Melakukan perulangan selama masih ada data
i. Membuat objek car dari kelas CarEva
ii. Membagi data menjadi beberapa bagian
menggunakan simbol titik koma (;) disimpan ke
dalam suatu larik array.
iii. Jika larik indeks ke-0, simpan ke atribut buying
pada objek car
iv. Jika larik indeks ke-1, simpan ke atribut
maintenance pada objek car
v. Jika larik indeks ke-2,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
1. Jika bernilai 5more diubah menjadi more,
simpan ke atribut doors pada objek car
2. Jika tidak, simpan ke atribut doors pada
objek car
vi. Jika larik indeks ke-3, simpan ke atribut persons
pada objek car
vii. Jika larik indeks ke-4, simpan ke atribut
luggage_boot pada objek car
viii. Jika larik indeks ke-5, simpan ke atribut safety pada
objek car
ix. Jika larik indeks ke-6, simpan ke atribut evaluation
pada objek car
x. Menambah objek car ke dalam daftar listCar.
d. Selesai.
4.3.1.2. Method setPartition
Tipe : List of CarEva
Parameter : -
Fungsi : mempartisi data
Adapun langkah-langkahnya, berikut:
a. Merekam jumlah data pada daftar
b. Menentukan N yang akan menyimpan jumlah masing-
masing partisi dengan membagi jumlah data dengan 10
kemudian dijumlahkan dengan 1
c. Menyiapkan array of list partition untuk menampung hasil
partisi
d. Menginisialisasi masing-masing objek partition
e. Selama masih ada data di daftar
i. Melakukan pembagian indeks i dengan N disimpan
pada variabel index
ii. Menambahkan data ke-i pada daftar ke dalam objek
partition ke-index
f. Mengembalikan objek partition
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
g. Selesai.
4.3.1.3. Method Cetak10Fold
Tipe : void
Parameter : -
Fungsi : mempartisi data
Adapun langkah-langkahnya, berikut:
a. Merekam hasil pasrtisi ke dalam array of list partitions
b. Merekam jumlah data pada daftar
c. Menentukan N yang akan menyimpan jumlah masing-
masing partisi dengan membagi jumlah data dengan 10
kemudian dijumlahkan dengan 1
d. Menghitung ukuran paritisi ke-10 dengan mengurangi N
dengan 10kali N yang dikurangi jumlah data pada dafar
e. Selama banyak partisi
i. Menyiapkan kop tabel yang akan dicetak
ii. Jika partisi ke-1 sampai ke-9, cetak komponen data
pada daftar sebanyak N kali
iii. Jika partisi ke-10, cetak komponen data pada daftar
sebanyak size10
f. Selesai.
4.3.1.4. Method cetakData
Tipe : void
Parameter : -
Fungsi : mencetak seluruh data pada daftar
Adapun langkah-langkahnya, berikut:
a. Menyiapkan variabel i untuk menyimpan banyak iterasi
dimulai dengan angka 1
b. Menyiapkan kop tabel yang akan dicetak
c. Selama masih ada data pada daftar
i. Mencetak nilai i
ii. Cetak komponen data pada daftar sebanyak N kali
iii. Menjumlahkan i dengan 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
d. Selesai.
4.3.2. Kelas TreeNode
4.3.2.1. Method FilterData
Tipe : void
Parameter : indeks i, array 2 dimensi list, larik filter
Fungsi : menyaring data pada cabang kanan
Adapun langkah-langkahnya, berikut:
a. Menyiapkan obyek Data
b. Jika filter tidak kosong
i. Selama masih ada data pada list pada baris ke-i
1. Selama masih ada data pada filter
a) Jika data pada list ke-jk tidak sama
dengan data pada filter ke k,
tambahkan list ke-ij ke dalam Data
c. Jika filter kosong, menambahkan semua data di list baris
ke-i pada Data.
d. Selesai.
4.3.2.2. Method getDataValue
Tipe : String
Parameter : -
Fungsi : menyimpan value komponen node
Adapun langkah-langkahnya, berikut:
a. Menyiapkan objek set dari HashSet
b. Selama masih ada data pada Data
i. Menambahkan nilai Data ke dalam objek set
c. Mengembalikan objek set
d. Selesai.
4.3.2.3. Method isLeaf
Tipe : boolean
Parameter : -
Fungsi : mengetahui node itu leaf atau bukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Method ini mengembalikan nilai logika benar atau salah dari
kondisi leftChild adalah kosong dan rightChild adalah.
4.3.3. Kelas CART
4.3.3.1. Method hitungRecords
Tipe : void
Parameter : daftar evaluasi mobil
Fungsi : mengetahui jumlah masin-masing komponen pada
setiap kandidat cabang kiri maupun kanan
Adapun langkah-langkahnya, berikut:
a. Menghitung semua jumlah data unacc, acc, good dan very
good pada daftar.
b. Menghitung semua komponen unacc, acc, good dan very
good pada calon kandidat cabang kiri.
c. Menghitung semua komponen unacc, acc, good dan very
good pada calon kandidat cabang kanan.
d. Selesai.
4.3.3.2. Method hitungGiniD
Tipe : void
Parameter : jumlah records, unacc, acc, good dan vgood pada
daftar evaluasi mobil
Fungsi : menghitung impurity pada daftar evaluasi mobil
Method ini menghitung dengan menggunakan rumus (2.1)
4.3.3.3. Method hitungdeltaGini
Tipe : double
Parameter : hasil perhitungan pada method hitungRecords
Fungsi : menghitung tingkat impurity setiap calon cabang
Adapun langkah-langkahnya, berikut:
a. Menyiapkan variabel GiniD1=0 , GiniD2=0 dan GiniA=0
b. Jika recordL dan recordR tidak kosong :
i. Menghitung GiniD1 menggunakan rumus (2.1)
ii. Menghitung GiniD2 menggunakan rumus (2.1)
iii. Menghitung GiniA menggunakan rumus (2.2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
c. Jika recordL kosong :
i. Menghitung GiniD2 menggunakan rumus (2.1)
ii. Menghitung GiniA menggunakan rumus (2.2) dengan
nilai GiniD1 = 0
d. Jika recordR kosong :
i. Menghitung GiniD1 menggunakan rumus (2.1)
ii. Menghitung GiniA menggunakan rumus (2.2) dengan
nilai GiniD2 = 0
e. Mengembalikan hasil perhitungan nilai Gini D dikurangkan
dengan nilai GiniA
f. Selesai.
4.3.3.4. Method setCandidate
Tipe : void
Parameter : -
Fungsi : menginisialisasi komponen nama dan value dari
setiap calon kandidat baik cabang kiri maupun cabang kanan
4.3.3.5. Method filterBuying
Tipe : List<CarEva>
Parameter : daftar evaluasi mobil dan daftar value
Fungsi : menyaring data dengan menggunakan Buying
Adapun langkah-langkahnya, berikut:
a. Menyiapkan daftar filter
b. Selama data dalam daftar masih ada
i. Selama data value masih ada
1. Jika data daftar pada baris ke-i sama dengan
nilai value Buying ke-j, tambahkan daftar ke-i
ke dalam daftar filter
c. Mengembalikan objek filter
d. Selesai.
4.3.3.6. Method filterMaintenance
Tipe : List<CarEva>
Parameter : daftar evaluasi mobil dan daftar value
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Fungsi : menyaring data dengan menggunakan
Maintenance
Adapun langkah-langkahnya, berikut:
a. Menyiapkan daftar filter
b. Selama data dalam daftar masih ada
i. Selama data value masih ada
1. Jika data daftar pada baris ke-i sama dengan
nilai value Maintenance ke-j, tambahkan
daftar ke-i ke dalam daftar filter
c. Mengembalikan objek filter
d. Selesai.
4.3.3.7. Method filterDoors
Tipe : List<CarEva>
Parameter : daftar evaluasi mobil dan daftar value
Fungsi : menyaring data dengan menggunakan Doors
Adapun langkah-langkahnya, berikut:
a. Menyiapkan daftar filter
b. Selama data dalam daftar masih ada
i. Selama data value masih ada
1. Jika data daftar pada baris ke-i sama dengan
nilai value Doors ke-j, tambahkan daftar ke-i
ke dalam daftar filter
c. Mengembalikan objek filter
d. Selesai.
4.3.3.8. Method filterPersons
Tipe : List<CarEva>
Parameter : daftar evaluasi mobil dan daftar value
Fungsi : menyaring data dengan menggunakan Persons
Adapun langkah-langkahnya, berikut:
a. Menyiapkan daftar filter
b. Selama data dalam daftar masih ada
i. Selama data value masih ada
1. Jika data daftar pada baris ke-i sama dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
nilai value Persons ke-j, tambahkan daftar ke-i
ke dalam daftar filter
c. Mengembalikan objek filter
d. Selesai.
4.3.3.9. Method filterLuggage
Tipe : List<CarEva>
Parameter : daftar evaluasi mobil dan daftar value
Fungsi : menyaring data dengan menggunakan
Luggage_boot
Adapun langkah-langkahnya, berikut:
a. Menyiapkan daftar filter
b. Selama data dalam daftar masih ada
i. Selama data value masih ada
1. Jika data daftar pada baris ke-i sama dengan
nilai value Luggage_boot ke-j, tambahkan
daftar ke-i ke dalam daftar filter
c. Mengembalikan objek filter
d. Selesai.
4.3.3.10. Method filterSafety
Tipe : List<CarEva>
Parameter : daftar evaluasi mobil dan daftar value
Fungsi : menyaring data dengan menggunakan Safety
Adapun langkah-langkahnya, berikut:
a. Menyiapkan daftar filter
b. Selama data dalam daftar masih ada
i. Selama data value masih ada
1. Jika data daftar pada baris ke-i sama dengan
nilai value Safety ke-j, tambahkan daftar ke-i
ke dalam daftar filter
c. Mengembalikan objek filter
d. Selesai.
4.3.3.11. Method classification
Tipe : String
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Parameter : node bantu, indeks i
Fungsi : menentukan label kelas pada leaf
Adapun langkah-langkahnya, berikut:
a. Menyiapkan variabel classify
b. Jika data recordL pada candidat i lebih besar dari recordR
pada kandidat i
i. Mencari nilai terbesar dari unacc, acc, good dan
vgood pada komponen cabang kiri
1. Jika tertinggi data unacc, classify menyimpan
unacc
2. Jika tertinggi data acc, classify menyimpan
acc
3. Jika tertinggi data good, classify menyimpan
good
4. Jika tertinggi data vgood, classify menyimpan
vgood
c. Jika data recordR pada candidat i lebih besar dari recordL
pada kandidat i
i. Mencari nilai terbesar dari unacc, acc, good dan
vgood pada komponen cabang kanan
1. Jika tertinggi data unacc, classify menyimpan
unacc
2. Jika tertinggi data acc, classify menyimpan
acc
3. Jika tertinggi data good, classify menyimpan
good
4. Jika tertinggi data vgood, classify menyimpan
vgood
d. Mengembalikan nilai variabel classify
e. Selesai.
4.3.3.12. Method compareValue
Tipe : boolean
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Parameter : car dari CarEva
Fungsi : membandingkan nilai pada record dengan pola
pohon keputusan
Adapun langkah-langkahnya, berikut:
a. Menyiapkan node parent dan bantu yang merujuk ke root
b. Selama bantu tidak kosong
i. Jika bantu adalah root, bantu pindah ke anak kiri
ii. Jika komponen bantu adalah Buying
1. Menyiapkan variabel boolean found bernilai
false
2. Selama banyak komponen value kiri dari bantu
masih ada
1) Jika data bantu tersebut sama dengan
objek car, found menyimpan true, parent
pindah ke bantu dan bantu pindah ke
anak kiri. Kemudian melakukan fungsi
break.
3. Jika tidak ditemukan
1) Melakukan langkah 1 dan 2 di atas
untuk kopmonen value kanan dari bantu.
iii. Jika komponen bantu adalah Maintenance
1. Menyiapkan variabel boolean found bernilai
false
2. Selama banyak komponen value kiri dari bantu
masih ada
1) Jika data bantu tersebut sama dengan
objek car, found menyimpan true, parent
pindah ke bantu dan bantu pindah ke
anak kiri. Kemudian melakukan fungsi
break.
3. Jika tidak ditemukan
1) Melakukan langkah 1 dan 2 di atas
untuk kopmonen value kanan dari bantu.
iv. Jika komponen bantu adalah Doors
1. Menyiapkan variabel boolean found bernilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
false
2. Selama banyak komponen value kiri dari bantu
masih ada
1) Jika data bantu tersebut sama dengan
objek car, found menyimpan true, parent
pindah ke bantu dan bantu pindah ke
anak kiri. Kemudian melakukan fungsi
break.
3. Jika tidak ditemukan
1) Melakukan langkah 1 dan 2 di atas
untuk kopmonen value kanan dari bantu.
v. Jika komponen bantu adalah Persons
1. Menyiapkan variabel boolean found bernilai
false
2. Selama banyak komponen value kiri dari bantu
masih ada
1) Jika data bantu tersebut sama dengan
objek car, found menyimpan true, parent
pindah ke bantu dan bantu pindah ke
anak kiri. Kemudian melakukan fungsi
break.
3. Jika tidak ditemukan
1) Melakukan langkah 1 dan 2 di atas
untuk kopmonen value kanan dari bantu.
vi. Jika komponen bantu adalah Luggage_boot
1. Menyiapkan variabel boolean found bernilai
false
2. Selama banyak komponen value kiri dari bantu
masih ada
1) Jika data bantu tersebut sama dengan
objek car, found menyimpan true, parent
pindah ke bantu dan bantu pindah ke
anak kiri. Kemudian melakukan fungsi
break.
3. Jika tidak ditemukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
1) Melakukan langkah 1 dan 2 di atas
untuk kopmonen value kanan dari bantu.
vii. Jika komponen bantu adalah Safety
1. Menyiapkan variabel boolean found bernilai
false
2. Selama banyak komponen value kiri dari bantu
masih ada
1) Jika data bantu tersebut sama dengan
objek car, found menyimpan true, parent
pindah ke bantu dan bantu pindah ke
anak kiri. Kemudian melakukan fungsi
break.
3. Jika tidak ketemu
1) Melakukan langkah 1 dan 2 di atas
untuk kopmonen value kanan dari bantu.
c. Jika evaluasi pada node parent dan objek car sama,
mengembalikan nilai true
d. Jika tidak, mengembalikan nilai false
e. Selesai.
4.3.3.13. Method pembentukanPohon
Tipe : TreeNode
Parameter : daftar evaluasi mobil, node bantu
Fungsi : membuat pohon keputusan
Adapun langkah-langkahnya, berikut:
a. Menyiapkan semua atribut yang dibutuhkan
b. Memanggil method hitungRecords dengan parameter
daftar evaluasi mobil
c. Memanggil method hitungGiniD
d. Memanggil method hitungdeltaGini untuk semua
komponen calon kandidat
e. Mencari tingkat impurity tertinggi
f. Membuat node kiri, mengisi komponen-komponennya
g. Membuat node kanan, mengisi komponen-komponennya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
h. Memfilter nilai calon cabang kiri dan kanan untuk Buying
i. Memfilter nilai calon cabang kiri dan kanan untuk
Maintenance
j. Memfilter nilai calon cabang kiri dan kanan untuk Doors
k. Memfilter nilai calon cabang kiri dan kanan untuk
Persons
l. Memfilter nilai calon cabang kiri dan kanan untuk
Luggage
m. Memfilter nilai calon cabang kiri dan kanan untuk Safety
n. Menjadikan node kiri sebagai cabang anak kiri
o. Menjadikan node kanan sebagai cabang anak kanan
p. Memfilter isi tabel sesuai komponen cabang anak kiri dan
disimpan ke filterLeft
q. Memfilter isi tabel sesuai komponen cabang anak kanan
dan disimpan ke filterRight
r. Melakukan rekursif dari langkah a hingga k untuk cabang
kiri hingga nilai tingkat impurity tertinggi bernilai 0
s. Melakukan rekursif dari langkah a sampai k untuk
cabang kanan hingga nilai tingkat impurity tertinggi
bernilai 0
t. Selesai.
4.3.4. Kelas Main
4.3.4.1.Method selesiFold
Tipe : void
Parameter : array of list fold, indeks index
Fungsi : menyimpan kumpulan fold bukan ke-I ke dalam
array of list list
Adapun langkah-langkahnya, berikut:
a. Jika index bernilai 0, memasukan daftar data pada fold
indeks i ke-1 hingga i ke-9 ke dalam list indeks ke index
b. Jika index bernilai sama dengan ukuran array of list fold,
memasukan daftar data pada fold indeks i ke-0 hingga i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
ke-8 ke dalam list indeks ke index
c. Selain itu, memasukan daftar data selain pada fold indeks
ke-i ke dalam list indeks ke index
d. Selesai.
4.3.4.2.Method ujiAkurasi
Tipe : void
Parameter : indeks index
Fungsi : menghitung persentasi proses ke-index
Adapun langkah-langkahnya, berikut:
a. Menyiapkan variabel count ke-index bernilai 0
b. Selama data pada daftar fold ke-index masih ada
i. Jika data ke-k pada fold cocok dengan pola pada
pohon keputusan ke-index, count ke-index
bertambah 1
c. Menghitung persentase dengan mengalikan count ke-
index dengan 100 dan dibagi dengan jumlah data pada
fold ke-index
d. Selesai.
4.3.4.3.Method cetakPerformasi
Tipe : void
Parameter : -
Fungsi : mencetak hasil pengujian
Adapun langkah-langkahnya, berikut:
a. Menyiapkan variabel jumlahWaktu dan jumlahPersen
bernilai 0
b. Menyiapkan kop tabel, nama kolom apa saja yang akan
ditampilkan
c. Selama banyak data array fold
i. Mencetak waktu tempuh
ii. Mencetak ukuran fold
iii. Mencetak jumlah data yang sesuai
iv. Mencetak persentase
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
v. Menjumlahkan waktu tempuh ke dalam
jumlahWaktu
vi. Menjumlahkan persentase ke dalam jumlahPersen
d. Menghitung rata-rata waktu tempuh dengan membagi
jumlahWaktu dengan banyak array fold, cetak
e. Menghitung rata-rata persentase akurasi dengan membagi
jumlahPersen dengan banyak array fold, cetak
f. Selesai.
4.3.4.4.Method Main
Tipe : String[]
Parameter : -
Fungsi : menjalankan alat uji
Adapun langkah-langkahnya, berikut:
a. Menyiapkan variabel yang dibutuhkan
b. Membuat objek cartOri dari kelas CART
c. Membuat objek data dari kelas Data
d. Memanggil method bacaData() dari objek data
e. Menyimpan data yang sudah dibaca ke larik listOri
f. Mengeset root dari cartOri
g. Memanggil method setCandidate dari objek cartOri
h. Merekam waktu mulai
i. Memanggil method pembuatanPohon dengan
menggunakan daftar listOri dan root dari objek cartOri.
j. Merekam waktu berakhir
k. Menghitung dan mencetak waktu tempuh pembuatan
pohon dengan data utuh
l. Membagi data menjadi 10 bagian ke dalam fold
m. Membuat array of objek cart dari kelas CART sebanyak
10 slot
n. Menginisialisasi array of list list sebanyak 10 slot
o. Selama banyak slot fold
i. Menginisialisasi list dan cart ke-i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
ii. Mengeset root dari cart ke-i
iii. Memanggil method setCandidate dari objek cart ke-i
iv. Memanggil method seleksiFold dengan
menggunakan fold dan indeks ke-i
v. Merekam waktu mulai ke-i
vi. Memanggil method pembuatanPohon dengan
menggunakan list ke-i dan root dari objek cart ke-i.
vii. Merekam waktu berakhir ke-i
viii. Menghitung waktu tempuh pembuatan pohon ke-i
ix. Memanggil method ujiaAkurasi ke-i
p. Memanggil method cetakPerformasi
q. Selesai.
4.4. Implementasi Alat Uji
Setelah melakukan perancangan alat uji dan membangunnya, sekarang
peneliti akan mengimplementasikannya kerangka utama dapat dilihat pada
gambar 4.5 di bawah ini
Gambar 4.5 Implementasi Kelas Main
Pada kelas Main dibutuhkan objek yang mereferensi ke kelas Data,
CarEva dan CART. Objek data hanya dibuat sebagai objek tunggal yang merujuk
ke kelas Data. Objek fold dan list direpresentasikan dalam bentuk daftar array,
fold dan list merujuk ke kelas CarEva. Objek cart direpresentasikan dalam bentuk
array. Selain 4 objek tersebut ada beberapa atribut array pendukung untuk
menghitung pengujian kecepatan komputasi dan akurasi. Kecepatan komputasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
membutuhkan atribut startTime yang merekam waktu mulai proses dan endTime
untuk merekam waktu berakhirnya proses serta runningTime yang merekam
waktu yang dibutuhkan untuk menjalankan proses. Pengujian akurasi
membutuhkan atribut persentase yang merekam persentase akurasi dan count
untuk merekam jumlah kecocokan uji records. Atribut ini menyimpan nilai angka
desimal.
Gambar 4.6 Implementasi Method Utama Kelas Main
Gambar 4.6 dapat dilihat tahap-tahap pembuatan dan pengujian pohon
keputusan CART. Peneliti membagi tahapan menjadi 3 bagian. Bagian pertama
persiapan, meliputi inisialisasi objek hingga persiapan data yang akan diolah pada
gambar 4.6 ditunjukan pada listing nomor 20-29. Bagian kedua adalah pembuatan
pohon dari data asli, meliputi penentuan root hingga pemanggilan fungsi
pembentukan pohon yang ditunjukan pada listing nomor 30-35. Bagian terakhir
adalah bagian pengujian akurasi dengan menggunakan metode 10-folds cross-
validation, menghitung akurasi masing-masing pembuatan pohon dan
menampilkan hasil pengujian yang ditunjukan pada listing nomor 36-51.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Pada listing nomor 28, melakukan proses membaca data dari objek data.
Lalu pada listing nomor 29 data yang sudah dibaca disimpan pada daftar listOri
yang merujuk ke kelas CarEva. Listing 30 bermaksud untuk menyiapkan root
node pada objek cartOri dan listing 31 menyiapkan komponen-komponen apa
yang dimuat di tiap-tiap node. Listing 33 adalah pembuatan pohon, prosesnya
sudah dipaparkan pada subbab 4.3.2. tentang Pembuatan Pohon Keputusan.
Pada listing 32, 34, 35, 45, 47, 48 merupakan implementasi langkah
pengujian waktu tempuh. Listing 36 hingga 51 adalah proses pengujian akurasi,
untuk detail proses dapat dilihat pada subbab 4.3.4.2. method ujiAkurasi.
Pada method pembentukanPohon yang membutuhkan parameter daftar
mobil dan node bantu. Method ini bertujuan untuk membangun pohon keputusan
CART. Secara garis besar method ini dibagi menjadi 4 bagian yaitu persiapan
variabel, perhitungan Gini Index, mencari candidat dengan tingkat impurity
tertinggi dan yang terakhir tahap pembuatan pohon secara rekursif.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Gambar 4.7 Tahap Awal Method pembetukanPohon
Gambar 4.7 diperlihatkan bahwa di tahap ini peneliti mempersiapkan
atribut yang dibutuhkan untuk membangun pohon. Adapun atribut yang
digunakan sebagai berikut : listing 187-191 record, unacc, acc, good, vgood untuk
menyimpan perhitungan jumlah label evaluasi pada keseluruhan daftar evaluasi
mobil; listing 182-196 recordL, unaccL, accL, goodL, vgoodL untuk menyimpan
perhitungan jumlah label evaluasi pada 30 candidat cabang kiri; listing 197-200
recordR, unaccR, accR, goodR, vgoodR untuk menyimpan perhitungan jumlah
label evaluasi pada 30 candidat cabang kanan; listing 201 menyediakan 30 slots
untuk array GiniA. lalu listing 203-213 menginisialisasi array yang ada dengan
nilai 0.
Gambar 4.8 Tahap Perhitungan Komponen Daftar Evaluasi Mobil
Gambar 4.8 diperlihatkan bahwa tahap ini merupakan tahap perhitungan
Gini Index mulai dari menghitung jumlah data tiap komponen di daftar pada
listing 215, menghitung Gini Index pada daftar evaluasi mobil pada listing 216,
kandidat cabang kiri dan cabang kanan hingga menghitung tingkat impurity dari
masing-masing calon kandidat cabang pada listing 217-220.
Gambar 4.9 Tahap Pencarian Tingkat Impurity Tertinggi
Gambar 4.9 menunjukan proses pencarian tingkat impurity yang tertinggi.
Tahap ini akan membandingkan satu persatu nilai impurity pada masing-masing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
kandidat untuk mengetahui kandidat yang memiliki tingkat impurity yang
tertinggi.
Pada tahap pembuatan pohon secara rekursif merupakan proses yang
cukup kompleks. Tahap ini peneliti membagi menjadi 4 bagian. Bagian pertama
hingga bagian ketiga merupakan bagian di dalam proses rekursif, sedangkan
bagian 4 merupakan bagian setelah proses rekursif selesai. Bagian pertama
menentukan node calon cabang. Bagian kedua menyaring daftar evaluasi mobil
yang akan digunakan untuk iterasi rekursif berikutnya bergantung dengan data di
node cabang kiri atau kanan. Bagian ketiga merupakan bagian pemanggil method
pembentukanPohon. Bagian keempat merupakan proses pelabelan klasifikasi
evaluasi mobil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Gambar 4.10 Tahap Pertama Dalam Proses Rekursif
Gambar 4.10 menunjuk bagian pertama proses rekursif. Pada listing 247-
248 merupakan penyiapan calon cabang anak kiri kanan dan menempelkan
komponen. Pada listing 249-305 merupakan penempelan data value calon cabang
anak kiri kanan. Pada listing 309-310 adalah proses menghubungkan node bantu
(parent) dengan node calon cabang anak kiri dan kanan dengan menempelkan
komponen beserta data value.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Gambar 4.11 Tahap Kedua Dalam Proses Rekursif
Gambar 4.11 menggambarkan proses penyaringan data di daftar evaluasi
mobil bergantung pada komponen cabang kiri atau cabang kanan. Misalkan, jika
cabang kiri memiliki komponen Persons maka akan menyaring data daftar
evaluasi mobil dengan memanggil method filterBuying yang berparameter daftar
data dan value dari cabang kiri. Method filterBuying nantinya akan menyeleksi
data daftar evaluasi mobil yang cocok dengan value(s) dari calon cabang kiri.
Gambar 4.12 Tahap Rekursif
Gambar 4.12 menunjukan proses pemanggilan method pembentukanPohon
itu sendiri. Parameter yang dibutuhkan adalah daftar list baru dan perpindahan
node bantu yang bergantung pada rekursif ke kiri atau rekursif ke kanan. Konsep
pembuatan pohon ini akan mengerjakan calon cabang kiri terlebih dahulu secara
rekursif, setelah sampai ujung baru akan mengerjakan calon cabang kanan.
Konsep seperti ini diadaptasi dari proses Transversal PreOrder.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 4.13 Tahap Pelabelan
Gambar 4.13 menunjukan proses pelabelan kelas evaluasi. Proses
pelabelan terjadi ketika proses rekursif telah berhenti dan node dinyatakan
menjadi leaf. Artinya pada cabang ini sudah bersifat pure atau mendekati pure,
ditandai dengan nilai Gini Index di setiap cabang bernilai 0 semua. Tahap ini akan
memanggil method classification(TreeNode, int) dari kelas CART dan
setLeafClass(String) dari kelas TreeNode. Method classification akan meminta
posisi node bantu ada di bagian mana dan meminta index kandidat cabang.
Setelah itu akan membandingkan jumlah recordL dan recordR. Jika lebih besar
record maka akan mencari jumlah label mana yang paling banyak di kandidat
cabang kiri. Jika tidak, akan mencari jumlah label mana yang paling banyak di
kandidat cabang kanan. Method ini akan mengembalikan nilai label yang sudah
didapat. Nilai label yang sudah didapat tadi dilempar ke method setLeafClass.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
BAB V
ANALISIS DAN PEMBAHASAN
5.1. Uji Validasi
Selain menguji performa algoritma dalam segi waktu tempuh proses dan
tingkat akurasinya, peneliti juga menguji validasi program. Pengujian validasi
dilakukan dengan cara menghitung dan membuat pohon dari data sampel secara
manual dengan menggunakan Ms. Excel.
Uji validasi, peneliti mengambil data sampel sebanyak 16 data records
sebagaimana dapat dilihat pada tabel 5.1.
Tabel 5.1 Data Sampel
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
Low med 3 More big med good
Low med 3 More big high vgood
Low med 4 2 small low unacc
Low med 4 2 small med unacc
Low med 4 More big high vgood
Low med more 2 small low unacc
Low med more 4 small med acc
Low med more 4 small high good
Low med more 4 med low unacc
Low med more 4 med med good
Low med more 4 med high vgood
Low med more 4 big low unacc
Low med more 4 big med good
Low med more 4 big high vgood
Low med more More small low unacc
Low med more More small med acc
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Pada data sampel hitung impurity data tabel 5.1, sebelum masuk ke
perhitungan, terlebih dahulu mengeset root dari pohon keputusan CART ini. Root
dapat dilihat pada gambar 5.1.
Gambar 5.1 Root pada Pohon Keputusan
Masuk ke dalam pembentukan pohon pada iterasi pertama, data yang
digunakan adalah data sampel secara keseluruhan. Data sampel di atas memiliki 16
baris data. Terdapat 6 data mobil yang tidak diterima, 2 data mobil yang diterima
biasa, 4 data mobil yang diterima dengan baik dan 4 data mobil yang diterima dengan
sangat baik.
Total data : 16 records
Unacceptance : 6 records
Acceptance : 2 records
Good : 4 records
Very Good : 4 records
( ) (
)
(
)
(
)
(
)
( )
Pada gambar 5.2 dapat dilihat bahwa tingkat impurity pada semua
kandidat tidak bernilai 0, maka terjadi proses pemilihan cabang anak kiri dan
cabang anak kanan. Kandidat yang memiliki tingkat impurity terbesar adalah
kandidat nomor 28. Mobil dengan tingkat keamanan rendah ditetapkan menjadi
cabang anak kiri. Mobil dengan tingkat keamanan menengah atau tinggi
ditetapkan menjadi cabang anak kanan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Pada gambar 5.2 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
Gambar 5.2 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Pertama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Kandidat 28 : Safety = low vs Safety = med high
Safety = low
Total data : 5 records
Unacceptance : 5 records
Acceptance : 0 record
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Safety = med || high
Total data : 11 records
Unacceptance : 1 record
Acceptance : 2 records
Good : 4 records
Very Good : 4 records
( ) (
)
(
)
(
)
(
)
( )
( )
( )
( )
( )
Sehingga pada iterasi pertama pohon yang dihasilkan seperti gambar 5.3 di
bawah ini.
Gambar 5.3 Pohon Hasil Iterasi Pertama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Selanjutnya masuk ke tahap rekursif pada cabang anak kiri. Data sampel
akan disaring berdasarkan data anak kiri. Sehingga data yang akan digunakan
pada iterasi kedua dapat dilihat pada tabel 5.2.
Tabel 5.2 Data pada Iterasi Kedua
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
Low Med 4 2 small low Unacc
Low Med more 2 small low Unacc
Low Med more 4 med low Unacc
Low Med more 4 big low Unacc
Low Med more more small low Unacc
Pada iterasi kedua hitung impurity untuk data tabel 5.2, masuk ke dalam
pembentukan pohon pada iterasi kedua, data yang digunakan adalah data tabel 5.2
yang sudah disaring. Data sampel di atas memiliki 5 baris data. Terdapat 5 data mobil
yang tidak diterima.
Total data : 5 records
Unacceptance : 5 records
Acceptance : 0 record
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Pada gambar 5.4 dapat dilihat bahwa pada data iterasi kedua semua
kandidat memiliki tingkat impurity sebesar 0. Hal ini menyatakan bahwa pada
node anak kiri yaitu Safety low sudah bersifat pure. Sehingga pada tahap ini
dilakukan proses pelabelan dengan mencari nilai label mana yang memiliki nilai
tertinggi. Dan pada iterasi kedua, label dengan nilai tertinggi berada di label
unaccaptance. Sehingga node Safety low merupakan leaf yang memiliki label
unacc. Pohon pada iterasi kedua ini dapat dilihat pada gambar 5.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Pada gambar 5.4 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
Gambar 5.4 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kedua
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Gambar 5.5 Pohon Hasil Iterasi Kedua
Karena pada iterasi kedua node cabang anak kiri adalah leaf dan proses
rekursif cabang kiri berhenti, selanjutnya masuk ke tahap rekursif pada cabang
anak kanan. Data sampel akan disaring berdasarkan data anak kanan. Sehingga
data yang akan digunakan pada iterasi ketiga dapat dilihat pada tabel 5.3
Tabel 5.3 Data pada Iterasi Ketiga
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
low med 3 more big med good
low med 3 more big high vgood
low med 4 2 small med unacc
low med 4 more big high vgood
low med more 4 small med acc
low med more 4 small high good
low med more 4 med med good
low med more 4 med high vgood
low med more 4 big med good
low med more 4 big high vgood
low med more more small med acc
Pada iterasi ketiga hitung impurity untuk data tabel 5.3, masuk ke dalam
pembentukan pohon pada iterasi ketiga, data yang digunakan adalah data tabel 5.3
yang sudah disaring. Data sampel di atas memiliki 11 baris data. Terdapat 1 mobil
yang tidak diterima, 2 data mobil yang diterima biasa dan masing-masing ada 4 data
mobil yang diterima dengan baik dan sangat baik.
Total data : 11 records
Unacceptance : 1 record
Acceptance : 2 records
Good : 4 records
Very Good : 4 records
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
( ) (
)
(
)
(
)
(
)
( )
Pada gambar 5.6 dapat dilihat bahwa tingkat impurity pada semua
kandidat tidak bernilai 0, maka terjadi proses pemilihan cabang anak kiri dan
cabang anak kanan. Kandidat yang memiliki tingkat impurity terbesar adalah
kandidat nomor 29. Mobil dengan tingkat keamanan sedang ditetapkan menjadi
cabang anak kiri. Mobil dengan tingkat keamanan tinggi ditetapkan menjadi
cabang anak kanan.
Kandidat 29 : Safety = med vs Safety = high
Safety = med
Total data : 6 records
Unacceptance : 1 record
Acceptance : 2 records
Good : 3 records
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Safety = high
Total data : 5 records
Unacceptance : 0 record
Acceptance : 0 record
Good : 1 record
Very Good : 4 records
( ) (
)
(
)
(
)
(
)
( )
( )
( )
( )
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Pada gambar 5.6 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
Gambar 5.6 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Ketiga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Sehingga pada iterasi ketiga pohon yang dihasilkan seperti gambar 5.7 di
bawah ini.
Gambar 5.7 Pohon Hasil Iterasi Ketiga
Selanjutnya masuk ke tahap rekursif pada cabang anak kiri. Data pada
iterasi ketiga akan disaring berdasarkan data anak kiri. Sehingga data yang akan
digunakan pada iterasi keempat dapat dilihat pada tabel 5.4.
Tabel 5.4 Data pada Iterasi Keempat
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
low med 3 more big med Good
low med 4 2 small med Unacc
low med more 4 small med Acc
low med more 4 med med Good
low med more 4 big med Good
low med more more small med Acc
Pada iterasi keempat hitung impurity untuk data tabel 5.4. Masuk ke dalam
pembentukan pohon pada iterasi keempat, data yang digunakan adalah data tabel 5.4
yang sudah disaring. Data sampel di atas memiliki 6 baris data. Terdapat 1 data mobil
yang tidak diterima, 2 data mobil yang diterima biasa, 3 data mobil yang diterima
dengan baik.
Total data : 6 records
Unacceptance : 1 record
Acceptance : 2 records
Good : 3 records
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Pada gambar 5.8 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
Gambar 5.8 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Keempat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Pada gambar 5.8 dapat dilihat bahwa tingkat impurity pada semua
kandidat tidak bernilai 0, maka terjadi proses pemilihan cabang anak kiri dan
cabang anak kanan. Kandidat yang memiliki tingkat impurity terbesar adalah
kandidat nomor 25. Mobil dengan bagasi kecil ditetapkan menjadi cabang anak
kiri. Mobil dengan bagasi sedang atau besar ditetapkan menjadi cabang anak
kanan.
Kandidat 25: Luggage_boot = small vs Luggage_boot = med big
Luggage_boot = small
Total data : 3 records
Unacceptance : 1 record
Acceptance : 2 records
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Luggage_boot = med || big
Total data : 3 records
Unacceptance : 0 record
Acceptance : 0 record
Good : 3 records
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
( )
( )
( )
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Sehingga pada iterasi keempat pohon yang dihasilkan seperti gambar 5.9
di bawah ini
Gambar 5.9 Pohon Hasil Iterasi Keempat
Selanjutnya masuk ke tahap rekursif pada cabang anak kiri. Data sampel
akan disaring berdasarkan data anak kiri. Sehingga data yang akan digunakan
pada iterasi kelima dapat dilihat pada tabel 5.5
Tabel 5.5 Data pada Iterasi Kelima
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
low med 4 2 small med Unacc
low med more 4 small med acc
Low med more more small med acc
Pada iterasi kelima hitung impurity untuk data tabel 5.5. Masuk ke dalam
pembentukan pohon pada iterasi kelima, data yang digunakan adalah data tabel 5.5
yang sudah disaring. Data sampel di atas memiliki 3 baris data. Terdapat 1 data mobil
yang tidak diterima dan 2 data mobil yang diterima biasa.
Total data : 3 records
Unacceptance : 1 record
Acceptance : 2 records
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Pada gambar 5.10 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
Gambar 5.10 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kelima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Pada gambar 5.10 dapat dilihat bahwa tingkat impurity pada semua
kandidat tidak bernilai 0, maka terjadi proses pemilihan cabang anak kiri dan
cabang anak kanan. Kandidat yang memiliki tingkat impurity terbesar adalah
kandidat nomor 17. Mobil dengan kapaitas 4 orang ditetapkan menjadi cabang
anak kiri. Mobil dengan kapasitas antara 2-3 atau lebih orang ditetapkan menjadi
cabang anak kanan.
Kandidat 17: Persons = 4 vs Persons = 2 || 3 || more
Persons = 4
Total data : 1 record
Unacceptance : 1 record
Acceptance : 0 record
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Persons = 2 || 3 || more
Total data : 2 records
Unacceptance : 0 record
Acceptance : 2 records
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
( )
( )
( )
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Sehingga pada iterasi kelima pohon yang dihasilkan seperti gambar 5.11 di
bawah ini
Gambar 5.11 Pohon Hasil Iterasi Kelima
Selanjutnya masuk ke tahap rekursif pada cabang anak kiri. Data iterasi
kelima akan disaring berdasarkan data anak kiri. Sehingga data yang akan
digunakan pada iterasi keenam dapat dilihat pada tabel 5.6
Tabel 5.6 Data pada Iterasi Keenam
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
low Med 4 2 Small med unacc
Pada iterasi keenam hitung impurity untuk data tabel 5.6. Masuk ke dalam
pembentukan pohon pada iterasi keenam, data yang digunakan adalah data tabel 5.6
yang sudah disaring. Data sampel di atas memiliki 1 baris data. Terdapat 1 data mobil
yang tidak diterima.
Total data : 1 record
Unacceptance : 1 record
Acceptance : 0 record
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Pada gambar 5.12 dapat dilihat pada data iterasi keenam tingkat impurity
semua kandidat bernilai 0. Hal ini menyatakan bahwa pada node anak kiri yaitu
Persons 4 sudah bersifat pure.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Pada gambar 5.12 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
`
Gambar 5.12 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Keenam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Sehingga pada tahap ini dilakukan proses pelabelan dengan mencari nilai
label mana yang memiliki nilai tertinggi. Dan pada iterasi keenam label dengan
nilai tertinggi berada di label unaccaptance. Sehingga node Persons 4 merupakan
leaf yang memiliki label unacc. Pohon pada iterasi keenam ini dapat dilihat pada
gambar 5.13
Gambar 5.13 Pohon Hasil Iterasi Keenam
Karena pada iterasi keenam node cabang anak kiri adalah leaf dan proses
rekursif cabang kiri berhenti, lalu masuk ke tahap rekursif pada cabang anak
kanan. Data iterasi keenam akan disaring berdasarkan data anak kanan. Sehingga
data yang akan digunakan pada iterasi ketujuh dapat dilihat pada tabel 5.7
Tabel 5.7 Data pada Iterasi Ketujuh
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
Low Med More 4 small med Acc
Low Med More more small med Acc
Pada iterasi ketujuh hitung impurity untuk data tabel 5.7. Masuk ke dalam
pembentukan pohon pada iterasi ketujuh, data yang digunakan adalah data tabel 5.7
yang sudah disaring. Data sampel di atas memiliki 2 baris data. Terdapat 2 data mobil
yang diterima biasa.
Total data : 2 records
Unacceptance : 0 record
Acceptance : 2 records
Good : 0 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Pada gambar 5.14 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
` z
Gambar 5.14 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Ketujuh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Pada gambar 5.14 dapat dilihat bahwa pada data iterasi ketujuh semua
kandidat memiliki tingkat impurity sebesar 0. Hal ini menyatakan bahwa pada
node anak kanan yaitu Persons 2 atau 3 atau lebih sudah bersifat pure. Sehingga
pada tahap ini dilakukan proses pelabelan dengan mencari nilai label mana yang
memiliki nilai tertinggi. Dan pada iterasi ketujuh, label dengan nilai tertinggi
berada di label accaptance. Sehingga node Persons 2 atau 3 atau more merupakan
leaf yang memiliki label acc. Pohon pada iterasi ketujuh ini dapat dilihat pada
gambar 5.15
Gambar 5.15 Pohon Hasil Iterasi Ketujuh
Karena pada iterasi ketujuh node cabang anak kiri dan kanan adalah leaf
dan proses rekursif cabang kanan berhenti, selanjutnya masuk ke tahap rekursif
pada cabang anak kanan dari induk. Data iterasi ketujuh akan disaring
berdasarkan data anak kanan. Sehingga data yang akan digunakan pada iterasi
kedelapan dapat dilihat pada tabel 5.8
Tabel 5.8 Data pada Iterasi Kedelapan
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
Low Med 3 more big med Good
Low Med more 4 med med Good
Low Med more 4 big med Good
Pada data iterasi kedelapan hitung impurity tabel 5.8, masuk ke dalam
pembentukan pohon pada iterasi kedelapan, data yang digunakan adalah data tabel
5.8 yang sudah disaring. Data sampel di atas memiliki 3 baris data. Terdapat 3 data
mobil yang diterima dengan baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Total data : 3 records
Unacceptance : 0 record
Acceptance : 0 record
Good : 3 records
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Pada gambar 5.16 menghitung tingkat impurity dari kandidat yang
memiliki nilai tertinggi. Gambar 5.16 menyatakan bahwa pada data iterasi
kedelapan semua kandidat memiliki tingkat impurity sebesar 0. Hal ini
menyatakan bahwa pada node anak kanan yaitu Luggage_boot med atau big sudah
bersifat pure. Sehingga pada tahap ini dilakukan proses pelabelan dengan mencari
nilai label mana yang memiliki nilai tertinggi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
`
Gambar 5.16 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kedelapan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Pada iterasi kedelapan, label dengan nilai tertinggi berada di label good.
Sehingga node Luggage_boot med atau big merupakan leaf yang memiliki label
good. Pohon pada iterasi kedelapan ini dapat dilihat pada gambar 5.17
Gambar 5.17 Pohon Hasil Iterasi Kedelapan
Karena pada iterasi kedelapan node cabang anak kiri dan kanan adalah leaf
dan proses rekursif cabang kanan berhenti, selanjutnya masuk ke tahap rekursif
pada cabang anak kanan dari induk. Data iterasi kedelapan akan disaring
berdasarkan data anak kanan. Sehingga data yang akan digunakan pada iterasi
kesembilan dapat dilihat pada tabel 5.9
Tabel 5.9 Data pada Iterasi Kesembilan
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
Low Med 3 more big High vgood
Low Med 4 more big High vgood
Low Med more 4 small High good
Low Med more 4 med High vgood
Low Med more 4 big High vgood
Pada data iterasi kesembilan hitung impurity tabel 5.9, Masuk ke dalam
pembentukan pohon pada iterasi kesembilan, data yang digunakan adalah data tabel
5.9 yang sudah disaring. Data sampel di atas memiliki 5 baris data. Terdapat 1 data
mobil yang diterima dengan baik dan 4 data mobil yang diterima dengan sangat baik.
Total data : 5 records
Unacceptance : 0 record
Acceptance : 0 record
Good : 1 record
Very Good : 4 records
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
( ) (
)
(
)
(
)
(
)
( )
Gambar 5.18 menghitung tingkat impurity dari kandidat yang memiliki
nilai tertinggi. Gambar 5.18 menunjukan tingkat impurity pada semua kandidat
tidak bernilai 0 maka terjadi proses pemilihan cabang anak kiri dan cabang anak
kanan. Kandidat yang memiliki tingkat impurity terbesar adalah kandidat nomor
25. Mobil dengan bagasi kecil ditetapkan menjadi cabang anak kiri. Mobil dengan
bagasi sedang atau besar ditetapkan menjadi cabang anak kanan.
Kandidat 25: Luggage_boot = small vs Luggage_boot = med big
Luggage_boot = small
Total data : 1 record
Unacceptance : 0 record
Acceptance : 0 record
Good : 1 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
Luggage_boot = med || big
Total data : 4 records
Unacceptance : 0 record
Acceptance : 0 record
Good : 0 record
Very Good : 4 records
( ) (
)
(
)
(
)
(
)
( )
( )
( )
( )
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
Gambar 5.18 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kesembilan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Sehingga pada iterasi kesembilan pohon yang dihasilkan seperti gambar
5.19 di bawah ini
Gambar 5.19 Pohon Hasil Iterasi Kesembilan
Selanjutnya masuk ke tahap rekursif pada cabang anak kiri. Data iterasi
kesembilan akan disaring berdasarkan data anak kiri. Sehingga data yang akan
digunakan pada iterasi kesepuluh dapat dilihat pada tabel 5.10
Tabel 5.10 Data pada Iterasi Kesepuluh
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
low Med more 4 small high Good
Pada iterasi kesepuluh hitung impurity untuk data tabel 5.10. Masuk ke
dalam pembentukan pohon pada iterasi kesepuluh, data yang digunakan adalah data
tabel 5.10 yang sudah disaring. Data sampel di atas memiliki 1 baris data. Terdapat 1
data mobil yang diterima dengan baik.
Total data : 1 record
Unacceptance : 0 record
Acceptance : 0 record
Good : 1 record
Very Good : 0 record
( ) (
)
(
)
(
)
(
)
( )
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
Pada gambar 5.20 menghitung tingkat impurity dari kandidat yang memiliki nilai tertinggi.
`
Gambar 5.20 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kesepuluh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Pada gambar 5.20 dapat dilihat bahwa pada data iterasi kesepuluh semua
kandidat memiliki tingkat impurity sebesar 0. Hal ini menyatakan bahwa pada
node anak kiri yaitu Luggage small sudah bersifat pure. Sehingga pada tahap ini
dilakukan proses pelabelan dengan mencari nilai label mana yang memiliki nilai
tertinggi. Dan pada iterasi kesepuluh, label dengan nilai tertinggi berada di label
good. Sehingga node Luggage small merupakan leaf yang memiliki label good.
Pohon pada iterasi ketujuh ini dapat dilihat pada gambar 5.21
Gambar 5.21 Pohon Hasil Iterasi Kesepuluh
Karena pada iterasi kesepuluh node cabang anak kiri leaf dan proses
rekursif cabang kiri berhenti, selanjutnya masuk ke tahap rekursif pada cabang
anak kanan dari induk. Data iterasi kesepuluh akan disaring berdasarkan data anak
kanan. Sehingga data yang akan digunakan pada iterasi kesebelas dapat dilihat
pada tabel 5.11
Tabel 5.11 Data pada Iterasi Kesebelas
Buying Maintenance Doors Persons Lugage_boot Safety Evaluation
low Med 3 more big high Vgood
low Med 4 more big high Vgood
low Med more 4 med high Vgood
low Med more 4 big high Vgood
Pada iterasi kesebelas hitung impurity untuk data tabel 5.11. Masuk ke
dalam pembentukan pohon pada iterasi kesebelas, data yang digunakan adalah data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
tabel 5.11 yang sudah disaring. Data sampel di atas memiliki 4 baris data. Terdapat 4
data mobil yang diterima dengan sangat baik.
Total data : 4 records
Unacceptance : 0 record
Acceptance : 0 record
Good : 0 record
Very Good : 4 records
( ) (
)
(
)
(
)
(
)
( )
Gambar 5.22 menghitung tingkat impurity dari kandidat yang memiliki
nilai tertinggi. bahwa pada data iterasi kesebelas semua kandidat memiliki tingkat
impurity sebesar 0. Hal ini menyatakan bahwa pada node anak kanan yaitu
Luggage_boot med atau big sudah bersifat pure. Sehingga pada tahap ini
dilakukan proses pelabelan dengan mencari nilai label mana yang memiliki nilai
tertinggi. Dan pada iterasi kesebelas, label dengan nilai tertinggi berada di label
very good. Sehingga node Luggage_boot med atau big merupakan leaf yang
memiliki label vgood.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
`
Gambar 5.22 Perhitungan Tingkat Impurity Calon Kandidat Iterasi Kesebelas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Pohon pada iterasi kesebelas ini dapat dilihat pada gambar 5.23
Gambar 5.23 Pohon Hasil Iterasi Kesebelas
Karena pada iterasi kesebelas node cabang anak kiri dan kanan adalah leaf
dan proses rekursif cabang kanan berhenti, selanjutnya masuk ke tahap rekursif
pada cabang anak kanan dari induk. Dan pada titik ini semua node sudah tidak
bisa dibagi menjadi bagian yang lebih kecil lagi. Sehingga terbentuklah pohon
keputusan seperti pada gambar 5.23
Sedangkan hasil implementasi alat uji menggunakan data sampel dapat
dilihat pada gambar 5.24 di bawah ini:
Gambar 5.24 Tree Nodes Alat Uji
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Setelah mendapatkan hasil implementasi alat uji peneliti melakukan
representasi data ke model pohon pada gambar 5.25 di bawah ini
Gambar 5.25 Pohon Keputusan Alat Uji Data Sampel
Setelah dibandingkan hasil yang didapat dari proses manual dan alat uji
yang dibangun peneliti sudah sesuai. Hal ini menandakan bahwa alat uji yang
dibangun oleh peneliti sudah terjamin validasinya.
Setelah mendapatkan pohon keputusan dari data sampel, didapatkanlah
aturan-aturan di bawah ini :
1. Safety = low -› unacc
2. Safety = med ᴗ Luggage_boot = small ᴗ Persons = 4 -› unacc
3. Safety = med ᴗ Luggage_boot = small ᴗ (Persons = 2 ᴖ Persons = 3 ᴖ
Persons = more) -› acc
4. Safety = med ᴗ (Luggage_boot = med ᴖ Luggage_boot = big) -› good
5. Safety = high ᴗ Luggage_boot = small -› good
6. Safety = high ᴗ (Luggage_boot = med ᴖ Luggage_boot = big) -› vgood
5.2. Uji Akurasi
Setelah melalui tahap perancangan dan implementasi alat uji didapatkan
hasil waktu tempuh pembentukan pohon dan akurasi algoritma CART. Hasil
dapat dilihat pada gambar 5.26 di bawah ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
Gambar 5.26 Hasil Implementasi Alat Uji
Untuk mendapatkan waktu tempuh pembuatan pohon keputusan
menggunakan cara merekam waktu mulai dan waktu berakhirya pembuatan
pohon. Setelah itu, menghitung waktu tempuh dengan mengurangkan waktu akhir
dengan waktu mulai.
Pada proses pengujian 10-folds cross-validation melakukan 10 kali
pembuatan pohon dengan data selain fold ke-i, penghitungan waktu tempuh,
mencocokkan data records fold ke-i dan menghitung persentase akurasi.
Untuk mengetahui seberapa tingkat akurasi yang didapat pada setiap
perulangan ke-i digunakan rumus 5.1
………………………..(5.1)
Di mana :
persentasei = tingkat akurasi dalam bentuk persen ke-i
matchi = jumlah record ke-i yang cocok dengan pola
fold sizei = jumlah record pada data testing ke-i
Lakukanlah proses penghitungan rata-rata dari waktu tempuh. Rata-rata
waktu tempuh dapat dihitung dengan menjumlahkan tiap waktu tempuh pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
perulangan, setelah itu dibagi dengan 10. Untuk lebih jelasnya dapat dilihat pada
rumus 5.2 :
∑
……………………………..(5.2)
Di mana :
rT = rata-rata waktu tempuh
rTi = waktu tempuh ke-i
i = iterasi perulangan
Lakukanlah proses penghitungan rata-rata dari akurasi. Rata-rata akurasi
dapat dihitung dengan menjumlahkan tiap akurasi pada perulangan, setelah itu
dibagi dengan 10. Untuk lebih jelasnya dapat dilihat pada rumus 5.3 :
∑
………………..(5.3)
Di mana :
Accu = rata-rata akurasi
Accui = akurasi ke-i
i = iterasi perulangan
Di bawah ini akan dijelaskan bagaimana peneliti mendapatkan hasil
perhitungan. Data yang terkait dapat dilihat pada tabel 5.12
Tabel 5.12 Perhitungan Akurasi
Iterasi
i
Running
Time (s)
Testing
Data Match Accuracy (%)
1 1.6719975 92 92 100
2 2.35858623 92 91 98.91
3 1.17187892 92 91 98.91
4 1.01767467 92 92 100
5 1.1177081 92 92 100
6 0.96468147 92 62 67.39
7 0.9934847 92 64 69.57
8 0.89224122 92 92 100
9 0.89616844 92 92 100
10 0.90165684 86 73 84.89
Di bawah ini contoh perhitungan untuk mendapat persentase akurasi di
iterasi ke-1 dengan menggunakan rumus 5.1:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Pada iterasi ke-1 jumlah data uji yang cocok dengan pola pohon mencapai
92 dari 92 data sehingga dapat diperoleh akurasi sebesar 100%
Sedangkan untuk menghitung rata-rata waktu tempuh dari kesepuluh
iterasi dengan menggunakan rumus 5.2 :
Selanjutnya peneliti akan menjelaskan bagaimana tahap menghitung rata-
rata persentase pengujian akurasi dengan menggunakan rumus 5.3 :
Pada penelitian ini menyatakan bahwa akurasi dari algoritma CART yang
digunakan untuk menentukan kelasifikasi dari data evaluasi mobil mencapai
tingkat 91.97%. Sedangkan pada penelitian yang dilakukan oleh Prabhu pada
tahun 2014, untuk data yang sama tapi menggunakan algoritma Random Forest
mencapai tingkat akurasi sebesar 98,27%. Dibandingkan Random Forest yang
diujikan oleh Prabhu, akurasi metode CART lebih rendah sebesar 6.3%. Hal ini
terjadi karena peneliti belum sampai pada tahap optimalisasi algoritma CART,
yaitu dengan menjalankan langkah Pruning atau langkah pemangkasan dahan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
BAB VI KESIMPULAN DAN SARAN
6.1. Kesimpulan
Penelitian ini melakukan perancangan dan pembangunan alat uji
pembentukan pohon keputusan dengan menggunakan algoritma CART untuk
menentukan kelasifikasi dari data evaluasi mobil.
Kesimpulan yang dapat diambil dari penelitian ini adalah sebagai berikut:
a. Dari pengujian akurasi yang telah dilakukan, tingkat persentase
yang diperoleh menunjukan angka yang tinggi, yakni 91.97%.
b. Dari pengujian kecepatan komputasi data asli dan data yang telah
dipartisi, alat uji ini membutuhkan waktu komputasi kurang lebih
1.2 detik.
6.2. Saran
Peneliti memberikan saran bagi peneliti selanjutnya untuk melanjutkan
proses algoritma CART dengan melakukan pemangkasan pohon atau Pruning.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
DAFTAR PUSTAKA
Apsari, MAF. Perbandingan Kinerja Algoritma Pohon keputusan ID3 Dan CART
Pada Penjurusan Siswa SMA Berdasarkan Nilai Ujian SMP Dan Nilai
Rapor Kelas X. Skripsi. Yogyakarta : Universitas Sanata Dharma; 2011.
Bohanec, Marco. 1997. Car Evaluation Data Set.
https://archive.ics.uci.edu/ml/datasets/Car+Evaluation (Sept 21, 2018)
Han, J. and Kamber, M., 2012, Data Mining Concept and Techniquies, Third
Edition, Morgan Kaufman Publishers, Waltham, USA.
Kusrini, ETL. 2009. Algoritma Penambangan data, Yogyakarta : PT Andi Offset
Prabhu, Balakrishnan. 2014. Scikit Machine Learning of Car Evaluation Dataset.
https://corpocrat.com/2014/08/28/scikit-machine-learning-of-car-evaluation-
dataset/ (May 26, 2019)
Santosa, Budi. 2006. Teknik Pemanfaatan Data Untuk Keperluan Bisnis,
Yogyakarta : Graha Ilmu.
Steinberg, Dan. 2009. Chapter 10 CART : Classification and Regression Trees.
LCC: Tylor and Francis Group.
Widiyanto, Wardani, Yartiwulandari, Fadilillah. 2013. Data Mining Metode
Klasifikasi.
http://ebook.gunadarma.ac.id/informatika/177/31%20SigitWidiyanto_Data
MiningMetodeKlasifikasi.pdf.html (Sept 14, 2018)
Wu X., Kumar, Quinlan, Gosh, Yang, Motoda, McLachlan, Angus, Liu, Yu,
Zhou, Steibach, Hand, Steinberg. 2007. Top 10 algorithms in data mining.
London : Springer.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI