Penambangan Data Query pada Situs Web dengan Menggunakan Algoritma
Decision Tree
Studi Kasus : www.inkuiri.com
Skripsi
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Oleh :
Yustina Dyah Utami
115314094
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
Data Mining Query on a Site Website Using Decision Tree Algorithm
Studi Kasus : www.inkuiri.com
A Thesis
Presented As Partial Fullfillment of the Requirements
To Obtain the Sarjana Komputer Degree
By :
Yustina Dyah Utami
Student Number 115314094
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
HALAMAN PERSETUJUAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
HALAMAN PENGESAHAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN
“7Mintalah, maka akan diberikan kepadamu; carilah, maka kamu akan
mendapat; ketoklah, maka pintu akan dibukakan bagimu. 8Karena setiap
orang yang meminta, menerima dan setiap orang yang mencari, mendapat
dan setiap orang yang mengetok, baginya pintu dibukakan.”
(Matius 7 : 7 – 8)
Tugas akhir ini saya persembahkan kepada :
Tuhan Yesus Kristus
Terimakasih atas berkatNya yang sungguh luar biasa sehingga tugas akhir
ini dapat terselesaikan.
Bapak (alm) dan Ibu
Terimakasih atas dukungan dan doa yang diberikan kepada penulis.
Kakak tercinta
Terimakasih untuk dukungan, doa, dan semangat yang diberikan kepada
penulis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam
kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 19 Februari 2016
Penulis,
Yustina Dyah Utami
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
ABSTRAK
Data minning adalah suatu istilah yang digunakan untuk menguraikan
penemuan pengetahuan di dalam database. Data minning berisi pencarian trend atau
pola yang diinginkan dalam database besar untuk membantu pengambilan keputusan.
Dalam penulisan tugas akhir ini menggunakan implementasi dari algoritma ID3.
Dengan menggunakan algoritma ID3 dapat digunakan untuk menambang data query
pada situs website. Situs www.inkuiri.com adalah sebuah situs yang digunakan untuk
pencarian barang yang terdiri dari beberapa kategori, diantaranya adalah fashion,
smartphone, motorbike dan talisman. Data yang digunakan terdiri dari 5 atribut yaitu :
interest (main), type, city, waktu dan bulan. Hasil akhir yang akan didapat adalah pola
interest user yang melakukan query.
Pengujian dilakukan dengan menggunakan 500 data baru. Hasil rata – rata nilai
akurasi dengan 10 kali pengujian adalah sebesar 19 %.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
ABSTRACT
Data Minning is a term used to describe the knowledge discovery in databases . Data
Minning unbiased search trend or a desired pattern in a large database to help make
decisions . In this thesis using an implementation of the algorithm ID3 . By using ID3
algorithm can be used for data mining queries on the web site . Www.inkuiri.com sites
is a site used for the search item consists of several categories , including fashion ,
smartphone , motorbike and talisman . The data used consists of five attributes , namely
: interest ( main) , type, city, time and month . The final results will be obtained is user
interest patterns that do queries .
Tests carried out using 500 new data . Average yield - average value of
accuracy with 10 times the test is 19% .
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Yustina Dyah Utami
Nomor Mahasiswa : 115314094
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
Penambangan Data Query pada Situs Web dengan Menggunakan Algoritma
Decision Tree
(Studi Kasus : www.inkuiri.com)
beserta perangkat yang diperlukan. Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan
secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan
akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya
selama tetap mencantumkan nama saya sebagai penuulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 19 Februari 2016
Yang menyatakan,
(Yustina Dyah Utami)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, yang telah
melimpahkan berkat dan rahmatNya sehingga penulis dapat menyelesaikan tugas akhir
yang berjudul “Penambangan Data Query pada Situs Web dengan Menggunakan
Algoritma Decision Tree”. Tugas akhir ini ditulis sebagai salah satu syarat
memperoleh gelar sarjana program studi Teknik Informatika, Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
Dalam kesempatan ini, penulis mengucapkan terimakasih banyak kepada :
1. Tuhan Yesus Kristus yang telah menuntun dan memberikan berkat yang melimpah
dan solusi terbaik sehingga tugas akhir ini dapat terselesaikan.
2. Ibu Sri Hartati Wijono, S.Si M.Kom, selaku Dosen Pembimbing atas segala waktu,
kesabaran, serta memberi kritik dan saran yang membangun dalam membantu
penyelesaian tugas akhir ini.
3. Mas Audris yang telah memberikan solusi dalam penyelesaian tugas akhir ini.
4. Kedua orangtua, Bapak (Alm.) T. Marto Atmodjo dan Ibu Martina Rumiyati yang
selalu bersabar membimbing penulis dan mendoakan penulis.
5. Kakak yang terkasih Mbak Brigitta Deni Suka Prastiwi, Mas Bernard Puji Haryanto
dan ponakan tersayang adik Imanuel Nicky Genta Sangkara yang selalu
memberikan semangat kepada penulis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
6. Mas Febri Nugroho yang sudah setia menemani pengerjaan tugas akhir ini,
memberikan solusi dan berbagi keluh kesah.
7. Sahabat terkasih, Agnes Alfani Restu Putri yang selalu setia menemani untuk saling
berbagi berbagai hal.
8. Bulan Mahadewi dan Monica Susi Diatmasari yang sudah banyak saling berbagi hal
mengenai kuliah dan berjuang bersama.
9. Teman – teman Teknik Informatika 2011, terkhusus untuk anggota C++ yang telah
sama – sama berjuang dan saling menyemangati dan memberi inspirasi.
10. Seluruh staff pengajar Prodi Teknik Informatika yang telah memberikan ilmu
pengetahuan yang sangat berguna bagi penulis.
11. Semua pihak yang telah membantu, yang tidak dapat disebutkan satu per satu.
Penulis menyadari masih banyak kekurangan dalam penyusunan tugas akhir
ini. Namun penulis berharap tugas ini bermanfaat bagi pengembangan ilmu
pengetahuan.
Yogyakarta, 05 Februari 2016
Yustina Dyah Utami
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
HALAMAN PERSEMBAHAN ................................................................................... v
PERNYATAAN KEASLIAN KARYA ...................................................................... vi
ABSTRAK ................................................................................................................ vii
ABSTRACT ............................................................................................................... viii
LEMBAR PERNYATAAN PERSETUJUAN ............................................................. ix
KATA PENGANTAR ................................................................................................. x
DAFTAR ISI ............................................................................................................. xii
DAFTAR GAMBAR ................................................................................................. xv
DAFTAR TABEL ..................................................................................................... xvi
BAB I .......................................................................................................................... 1
PENDAHULUAN ....................................................................................................... 1
1.1 Latar belakang ............................................................................................... 1
1.2 Rumusan Masalah .......................................................................................... 3
1.3 Tujuan Penelitian ........................................................................................... 4
1.4 Manfaat ......................................................................................................... 4
1.5 Batasan Masalah ............................................................................................ 4
1.6 Luaran ........................................................................................................... 4
1.7 Sistematika Penulisan .................................................................................... 5
BAB II ......................................................................................................................... 6
LANDASAN TEORI ................................................................................................... 6
2.1 Penambangan Data (Data Mining) ................................................................. 6
2.2 Tahap – tahap pada Penambangan Data.......................................................... 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.3 Teknik Klasifikasi .......................................................................................... 8
2.4 Decision Tree (Pohon Keputusan) .................................................................. 9
2.5 Kegunaan Pohon Keputusan......................................................................... 11
2.6 Kelebihan dan kekurangan dari Decision Tree (Pohon Keputusan) ............... 11
2.6.1 Kelebihan Decision Tree (Pohon Keputusan) ........................................ 11
2.6.2 Kekurangan Decision Tree (Pohon Keputusan) ..................................... 12
2.7 Algoritma Decision Tree (Pohon Keputusan) ............................................... 12
2.8 Perhitungan Akurasi ..................................................................................... 13
BAB III ...................................................................................................................... 14
Identifikasi Perhitungan dengan Decision Tree ........................................................... 14
3.1 Pengenalan Data .......................................................................................... 14
3.2 Pemrosesan data........................................................................................... 17
3.3 Proses Perhitungan Algoritma ID3 ............................................................... 22
3.4 Output Sistem .............................................................................................. 23
3.5 Diagram Use Case ....................................................................................... 24
3.5.1 Narasi Use Case .................................................................................... 24
3.6 Contoh Proses Perhitungan Data .................................................................. 28
3.7 Perancangan Umum Sistem .......................................................................... 48
3.7.1 Masukkan Sistem .................................................................................. 48
3.7.2 Perancangan antar muka dengan user .................................................... 49
3.8 Diagram Kelas ............................................................................................. 52
3.8.1 Diagram Kelas Use case Login ............................................................. 52
3.8.2 Diagram Kelas Use case Masukkan Data .............................................. 54
3.8.3 Diagram Kelas Use Case Pengujian ...................................................... 55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
IMPLEMENTASI SISTEM ....................................................................................... 56
4.1 Spesifikasi Perangkat Keras dan Perangkat Lunak........................................ 56
4.2 Implementasi Pemrosesan Data .................................................................... 56
4.2.1 Pembersihan Data ..................................................................................... 56
4.3 Implementasi Use Case ................................................................................ 65
4.4 Implementasi Diagram Kelas ....................................................................... 74
BAB V ....................................................................................................................... 75
PENGUJIAN DATA .................................................................................................. 75
5.1 Pengujian Data ............................................................................................. 75
5.3 Menghitung akurasi ..................................................................................... 76
5.4 Kelebihan dan Kekurangan Program ............................................................ 84
BAB VI ..................................................................................................................... 85
KESIMPULAN dan SARAN ..................................................................................... 85
6.1 Kesimpulan .................................................................................................. 85
6.2 Saran............................................................................................................ 85
Daftar Pustaka ............................................................................................................ 86
LAMPIRAN 1 ........................................................................................................... 87
LAMPIRAN 2 ......................................................................................................... 111
LAMPIRAN 3 ......................................................................................................... 121
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Gambar 2. 1 Bidang Ilmu Data Minning.................................................................... 7
Gambar 2. 2 Blok Diagram Model Klasifikasi ........................................................... 8
Gambar 3. 1 Flowchart Decision Tree ..................................................................... 23
Gambar 3. 2 Diagram Use Case .............................................................................. 24
Gambar 3. 3 Bentuk awal pohon dengan gain tertinggi waktu ................................. 33
Gambar 3. 4 Pembentukkan pohon untuk cabang malam ......................................... 34
Gambar 3. 5 Pembentukan pohon untuk cabang pagi ............................................... 36
Gambar 3. 6 Pembentukan pohon untuk cabang pagi dan city Jakarta...................... 37
Gambar 3. 7 Pembentukan pohon untuk atribut bulan .............................................. 39
Gambar 3. 8 Pembentukan pohon untuk cabang awal .............................................. 41
Gambar 3. 9 Pembentukan pohon untuk bulan awal dan type Smartphone ............... 42
Gambar 3. 10 Pembentukan pohon untuk cabang tengah ......................................... 44
Gambar 3. 11 Pembentukkan pohon untuk cabang akhir ......................................... 45
Gambar 3. 12 Diagram Kelas Use Case Login ......................................................... 53
Gambar 3. 13 Diagram Kelas Use Case Masukkan Data .......................................... 54
Gambar 3. 14 Diagram Kelas Pengujian .................................................................. 55
Gambar 4. 1 Halaman FormLogin ........................................................................... 66
Gambar 4. 2 Pemberitahuan berhasil login .............................................................. 66
Gambar 4. 3 Form Halaman Utama ......................................................................... 67
Gambar 4. 4 Halaman tab menu data ....................................................................... 68
Gambar 4. 5 Halaman File Chooser untuk mengambil data ..................................... 68
Gambar 4. 6 Data yang sudah berhasil ditampilkan ................................................. 69
Gambar 4. 7 Hasil pohon keputusan ........................................................................ 71
Gambar 4. 8 Halaman Prediksi ................................................................................ 72
Gambar 4. 9 Halaman Prediksi dengan data yang sudah ditampilkan ....................... 73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR TABEL
Tabel 3. 1 Tabel atribut data mentah........................................................................ 14
Tabel 3. 2 Aturan Transformasi Data _source_created ............................................ 19
Tabel 3. 3 Tabel Variabel Input ............................................................................... 20
Tabel 3. 4 Tabel data yang akan diolah .................................................................... 28
Tabel 3. 5 Tabel pengelompokkan data dari setiap atribut........................................ 30
Tabel 3. 6 Tabel perhitungan nilai entropy semua atribut ......................................... 31
Tabel 3. 7 Perhitungan data pada cabang malam ..................................................... 33
Tabel 3. 8 Perhitungan data pada cabang pagi ......................................................... 35
Tabel 3. 9 Perhitungan data pada cabang Jakarta ..................................................... 36
Tabel 3. 10 Perhitungan data pada cabang siang ...................................................... 38
Tabel 3. 11 Perhitungan data pada cabang awal ....................................................... 40
Tabel 3. 12 Perhitungan data pada cabang Smartphone ........................................... 41
Tabel 3. 13 Perhitungan data pada cabang tengah .................................................... 43
Tabel 3. 14 Perhitungan data pada cabang akhir ...................................................... 44
Tabel 3. 15 Penjelasan atribut masukkan sistem ...................................................... 48
Tabel 4. 1 Contoh data yang sudah dilakukan pembersihan ..................................... 57
Tabel 4. 2 Contoh file dari kategori fashion ............................................................. 57
Tabel 4. 3 Contoh file dari kategori smartphone ...................................................... 58
Tabel 4. 4 Contoh file dari kategori motorbike ........................................................ 58
Tabel 4. 5 Contoh file dari kategori talisman ........................................................... 59
Tabel 4. 6 Contoh file yang telah digabungkan ........................................................ 59
Tabel 4. 7 Nama – nama atribut yang belum diseleksi ............................................. 60
Tabel 4. 8 Hasil nama atribut yang telah diseleksi ................................................... 61
Tabel 4. 9 Contoh perhitungan waktu yang pertama ................................................ 62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Tabel 4. 10 Contoh perhitungan waktu yang kedua ................................................. 62
Tabel 5. 1 Hasil Pengujian ke - 1 ............................................................................. 77
Tabel 5. 2 Hasil Pengujian ke - 2 ............................................................................. 77
Tabel 5. 3 Hasil Pengujian ke - 3 ............................................................................. 78
Tabel 5. 4 Hasil Pengujian ke - 4 ............................................................................. 79
Tabel 5. 5 Hasil Pengujian ke - 5 ............................................................................. 79
Tabel 5. 6 Hasil Pengujian ke - 6 ............................................................................. 80
Tabel 5. 7 Hasil Pengujian ke - 7 ............................................................................. 81
Tabel 5. 8 Hasil Pengujian ke - 8 ............................................................................. 81
Tabel 5. 9 Hasil Pengujian ke - 9 ............................................................................. 82
Tabel 5. 10 Hasil Pengujian ke - 10 ......................................................................... 83
Tabel 5. 11 Hasil rata – rata untuk 10 kali pengujian ............................................... 83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1 Latar belakang
Saat ini, dunia teknologi berkembang dengan sangat pesat. Manusia, semakin
dimudahkan untuk melakukan pekerjaan dengan menggunkan teknologi yang
berkembang saat ini. Dari sisi komunikasi perkembangan teknologi paling
mudah kita dapat, kita lihat, dan kita rasakan. Saat ini, banyak sekali smartphone
yang dijual dipasaran. Setiap perusahaan smartphone bersaing untuk memasarkan
produk – produk yang mereka miliki. Perusahaan pun, semakin melengkapi
produknya dengan berbagai macam aplikasi yang semakin memudahkan manusia
untuk berkomunikasi.
Di jaman yang serba instant ini, manusia semakin ingin mendapatkan barang
atau pun jasa dengan mudah. Hal ini yang memotivasi dunia pasar untuk ikut
berkembang. Oleh sebab itu, kegiatan jual beli kini banyak dilakukan secara
online, seiring dengan berkembangnya teknologi. Saat ini, jual beli online banyak
kita temui, dan dengan mudah kita bisa membeli barang yang kita inginkan.
Proses datamining juga diperlukan untuk menyelesaikan permasalahan atau
menjawab kebutuhan bisnis itu sendiri, misalnya : Bagaimana
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
mengetahui hilangnya pelanggan karena pesaing? Bagaimana mengetahui item
produk atau konsumen yang memiliki kesamaan karakteristik? Bagaimana
mengidentifikasi produk-produk yang terjual bersamaan dengan produk lain.
Bagaimana memprediksi tingkat penjualan? Bagaimana menilai tingkat resiko dalam
menentukan jumlah produksi suatu item. Bagaimana memprediksi perilaku bisnis di
masa yang akan datang?
Situs www.inkuiri.com adalah sebuah situs website yang digunakan untuk
pencarian barang yang terdiri dari beberapa kategori yang beberapa diantaranya yaitu
fashion, smartphone, motorbike, dan talisman. Kita dapat mengetikkan nama barang
yang ingin kita cari pada tempat yang telah disediakan oleh website, atau bisa terlebih
dahulu memilih kategori – kategori yang telah disediakan oleh website, kemudian
sistem akan melakukan pencarian pada beberapa situs yang berhubungan dengan kata
yang dimasukkan. Selain memasukkan nama barang yang akan dicari, pengguna juga
dapat memilih barang yang dicari berupa barang bekas atau barang baru, pengguna
juga dapat memilih kisaran harga yang pengguna inginkan. Selanjutnya, sistem akan
melakukan pencarian dan menampilkan hasil dari pencarian tersebut lengkap dengan
nama situs. Setelah itu, pengguna juga dapat memilih situs yang akan dituju untuk
mencari barang yang pengguna inginkan. Hal ini dibuat agar lebih memudahkan
pengguna untuk mencari situs sesuai dengan barang yang mereka cari. Pengunjung
website juga dapat mencari lokasi barang yang akan dicari, seperti misalnya kota
Jakarta, Surabaya, Yogyakarta dan sebagainya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
Dari banyaknya pengunjung yang mengakses website inkuiri.com, maka
ada informasi yang menyimpan data yang dapat ditambang. Berdasarkan data
yang ada tersebut, data yang dapat ditambang adalah query dari pencarian yang
telah dimasukkan oleh pengguna. Query tersebut berupa data barang seperti;
“jam tangan endogawa”, “lipstick”, hp android, batu bacan, velg motor dan
sebagainya. Hasil dari query tersebut kemudian dikelompokkan menjadi 4
kategori yaitu fashion, smartphone, motorbike, dan talisman. Selain hasil dari
query, data lain yang dapat ditambang adalah nama kota dimana sedang
dilakukan pencarian, type (perangkat) yang sedang digunakan untuk melakukan
pencarian, waktu (pagi, siang atau malam) melakukan pencarian, dan bulan
(awal, pertengahan, atau akhir) melakukan pencarian.
Dalam penelitian ini, penulis akan mengolah data dengan menggunakan
algoritma Decision Tree. Pertama, dipilih data yang relevan yang dapat
digunakan untuk penelitian ini. Kedua, data yang sudah jadi diolah ke dalam
sistem yang akan melakukan perhitungan sesuai dengan algoritma ID3. Ketiga,
setelah tree (pohon) terbentuk maka akan dilakukan pengujian data untuk
mengetahui keakuratan (akurasi) data.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, maka permasalahan yang akan diselesaikan
dalam penelitian ini, adalah :
1. Apakah algoritma ID3 dapat memberikan pola user yang melakukan
query untuk interest tertentu?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
2. Apakah algoritma ID3 mempunyai keakuratan yang baik dalam
mengelompokkan query dalam sebuah situs data pencarian?
1.3 Tujuan Penelitian
Tujuan dari penelitian yang akan dibuat adalah :
Membantu perusahaan untuk mengetahui pola user yang melakukan query
untuk interest tertentu.
1.4 Manfaat
Manfaat yang akan diperoleh adalah :
Perusahaan dapat mengetahui pola interestuser yang melakukan query.
1.5 Batasan Masalah
Berikut adalah batasan masalah dalam penelitian Tugas Akhir :
1. User harus lebih spesifik lagi dalam menuliskan kata kunci pencarian
barang agar barang yang dicari dapat ditemukan dengan tepat.
2. Dalam penelitian yang dibuat ini hanya 4 kategori yang digunakan yaitu,
fashion, smartphone, motorbike dan talisman.
1.6 Luaran
Luaran yang diharapkan adalah terbentuk pola user yang melakukan
query dengan interest tertentu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
1.7 Sistematika Penulisan
Bab I Pendahuluan
Bab ini berisi mengenai hal yang mendasari dilakukannya penelitian ini.
Dalam bab ini juga terdapat beberapa hal yang meliputi; perumusan masalah,
tujuan, batasan masalah, manfaat penelitian dan sistematika penulisan.
Bab II Landasan Teori
Bab ini berisi mengenai penjelasan dasar teori – teori yang dipakai dalam
penelitian ini. Algoritma decision tree akan lebih banyak dijelaskan pada bab ini.
Bab III Identifikasi Perhitungan dengan Decision Tree
Bab ini berisi mengenai pemrosesan data awal dan desain user interface.
Bab IV Implementasi
Bab ini berisi implementasi program yang merupakan penerapan langsung
dari algoritma yang dipakai dalam penelitian ini, yaitu algoritma decision tree.
Bab V Pengujian Data
Bab ini berisi mengenai pengujian data dan mendapatkan hasil akurasi
Bab VI Kesimpulan dan Saran
Bab ini berisi mengenai keimpulan dan saran dari penelitian yang dilakukan
ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
BAB II
LANDASAN TEORI
2.1 Penambangan Data (Data Mining)
Data minning adalah suatu istilah yang digunakan untuk menguraikan
penemuan pengetahuan di dalam database.Data minning adalah proses yang
menggunakan teknik statistic, matematika, kecerdasan buatan, dan machine
learning untuk mengekstraksi dan mengidentifikasi informasi yang bermanfaat
dan pengetahuan yang terkait dari berbagai database besar (Turban, dkk. 2005).
Data mining berisi pencarian trend atau pola yang diinginkan dalam database
besar untuk membantu pengambilan keputusan di waktu yang akan datang. Pola –
pola ini dikenali oleh perangkat tertentu yang dapat memberikan suatu analisa
data yang berguna dan berwawasan yang kemudian dapat dipelajari dengan lebih
teliti, yang mungkin saja menggunakann perangkat pendukung keputusan yang
lainnya. Bidang Ilmu Data Minning dapat dilihat seperti pada Gambar 2.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Gambar 2. 1 Bidang Ilmu Data Minning
2.2 Tahap – tahap pada Penambangan Data
Secara sistematis, ada tiga langkah utama dalam data mining (Gonunseca,
2011) :
1. Eksplorasi/pemrosesan awal data
Eksplorasi /pemrosesan awal data terdiri dari pembersihan data,
normalisasi data, transformasi data, penanganan data yang salah, reduksi
dimensi,pemilihan subset fitur, dan sebagainya.
2. Membangun model dan melakukan validasi terhadapnya
3. Penerapan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
2.3 Teknik Klasifikasi
Klasifikasi merupakan proses pembelajaran suatu fungsi tujuan (target) f yang
memetakan tiap himpunan atribut x ke satu dari label kelas y. Fungsi target
disebut juga model klasifikasi. Blok diagram model klasifikasi dapat dilihat
seperti pada Gambar 2.2.
Input Output
Atribute set (x) Class
Tabel (y)
Gambar 2. 2 Blok Diagram Model Klasifikasi
Ada 2 jenis model Klasifikasi, yaitu :
Pemodelan Deskriptif (descriptive modelling)
Model klasifikasi yang dapat berfungsi sebgai suatu alat penjelasan
untuk membedakan objek – objek dalam kelas – kelas yang berbeda.
Pemodelan Prediktif (predictive modeling)
Model klasifikasi yang dapat digunakan untuk memprediksi label
kelas recod yang tidak diketahui.
Teknik klasifikasi (classifier) merupakan suatu pendekatan sistematis
untuk membangun model klasifikasi dari suatu himpunan data masukan. Tiap
Classification
Model
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
teknik menggunakan suatu algoritma pembelajaran (learning algorithm) untuk
mendapatkan suatu model yang paling memenuhi hubungan antara himpunan
atribut dan label kelas dalam data masukan. Masukan dari model klasifikasi
merupakan sekumpulan record (training set). Tiap record meliputi himpunan
attributes, yang salah satu atributnya merupakan class. Model untuk atribut kelas
merupakan suatu fungsi dari nilai – nilai atribut lainnya. Suatu test set digunakan
untuk menentukan keakuratan model tersebut. Biasanya data – set yang diberikan
dibagi menjadi training dan test sets, dimana training set digunakan untuk
membangun model dan test set digunakan untuk memvalidasi.
2.4 Decision Tree (Pohon Keputusan)
Pohon (tree) adalah sebuah struktur data yang terdiri dari simpul (node) dan
rusuk (edge). Simpul pada sebuah pohon dibedakan menjadi tiga, yaitu simpul
akar (root node), simpul percabangan/internal (branch/internal node) dan simpul
daun (leaf node). Pohon keputusan merupakan representasi sederhana dari teknik
klasifikasi untuk sejumlah kelas berhingga, dimana simpul internal maupun
simpul akar ditandai dengan nama atribut, rusuk – rusuknya diberi label nilai
atribut yang mungkin dan simpul daun ditandai dengan kelas – kelas yang
berbeda.
Sebuah pohon keputusan adalah sebuah struktur yang dapat digunakan untuk
membagi kumpulan data yang besar menjadi himpunan – himpunan record yang
lebih kecil dengan menerapkan serangkaian aturan keputusan. Dengan masing –
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
masing rangkaian pembagian,anggota himpunan hasil menjadi mirip satu dengan
yang lain (Berry& Linoff, 2004).
Untuk memilih atribut sebagai akar, didasarkan pada nilai gain tertinggi dari
atribut – atribut yang ada. Untuk menhitung gain digunakan rumus seperti tertera
dalam persamaan :
(2.1)
Keterangan :
S : himpunan kasus
n : jumlah partisi S
pi : proporsi dari Si terhadap S
Sementara itu, perhitungan nilai entropi dapat dilihat pada persamaan berikut :
(2.2)
Keterangan :
S : himpunan kasus
A : atribut
n : jumlah partisi atribut A
|Si| : jumlah kasus pada partisi ke-i
|S| : jumlah kasus dalam S
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
2.5 Kegunaan Pohon Keputusan
Prosedur diagram pohon dapat digunakan untuk :
1. Segmentasi
Mengidentifikasi orang – orang yang dapat dimasukkan ke dalam kelompok
tertentu.
2. Stratifikasi
Mengenakan kasus – kasus (data) ke dalam satu dari beberapa kategori,
seperti kelompok – kelompok yang berisiko rendah, menengah dan tinggi.
3. Prediksi
Membuat aturan dan menggunakan aturan tersebut untuk memprediksi
kejadian – kejadian di masa yang akan datang.
4. Pengurangan data dan penyaringan variabel
Memilih prediktor – prediktor yang bermanfaat dari seperangkat variabel
untuk digunakan dalam membuat model parametric baku.
5. Penggabungan kategori dan diskretisasi variabel – variabel kontinu
Mengode ulang kategori – kategori prediktor dalam kelompok dan variabel
kontinu dengan meminimisasi hilangnya informasi dikarenakan proses
diskretisasi.
2.6 Kelebihan dan kekurangan dari Decision Tree (Pohon Keputusan)
2.6.1 Kelebihan Decision Tree (Pohon Keputusan)
1. Berguna dalam mengeksplorasi data, sehingga data yang tersembunyi bisa
diolah dan dikembangkan lagi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
2. Untuk mem-break down proses pengambilan keputusan yang kompleks
menjadi lebih simple sehingga pengambil keputusan akan lebih
menginterpretasikan solusi dari permasalahan.
3. Bisa dijadikan sebagai tool pengambilan keputusan terakhir.
4. Mengubah keputusan yang kompleks menjadi lebih simple, spesifik dan
mudah.
2.6.2 Kekurangan Decision Tree (Pohon Keputusan)
1. Kesulitan dalam mendesain pohon keputusan yang optimal.
2. Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan
sangat tergantung pada bagaimana pohon tersebut didesain.
3. Terjadi overlap terutama ketika kelas – kelas dan kriteria yang digunakan
jumlahnya sangat banyak.
4. Pengakumulasian jumlah error dari setiap tingkat dalam sebuah pohon
keputusan yang besar.
2.7 Algoritma Decision Tree (Pohon Keputusan)
Algoritma ID3
1. Dimulai dari node akar.
2. Untuk semua fitur, hitung nilai entropy untuk semua sampel (data latih) pada
node.
3. Pilih fitur dengan informasi gain yang maksimal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
4. Lakukan secara rekursif pada setiap cabang yang dibuat dengan mengulangi
langkah 2 sampai 4 hingga semua data dalam setiap node hanya memberikan
satu label kelas. Node yang tidak dapat dipecah lagi merupakan daun yang
berisi keputusan (label kelas).
2.8 Perhitungan Akurasi
Untuk menghitung nilai akurasi, maka digunakan rumus sebagai berikut :
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =𝑗𝑢𝑚𝑙𝑎ℎ_𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖_𝑦𝑎𝑛𝑔_𝑏𝑒𝑛𝑎𝑟
𝑗𝑢𝑚𝑙𝑎ℎ_𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖_𝑘𝑒𝑠𝑒𝑙𝑢𝑟𝑢ℎ𝑎𝑛∗ 100 (2.3)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
BAB III
Identifikasi Perhitungan dengan Decision Tree
3.1 Pengenalan Data
Www.inkuiri.com adalah sebuah situs pencarian yang digunakan untuk
mencari beberapa barang yang diinginkan oleh pengguna. Dari query – query
yang dimasukkan oleh pengguna maka data tersebut tersimpan dalam database.
Ada 43 atribut yang dapat dilihat dari setiap query yang dimasukkan oleh
pengguna. Dari 43 atribut tersebut akan dipilih beberapa yang dapat digunakan
untuk penelitian tugas akhir ini. Data yang diperoleh dari perusahaan
www.inkuiri.com berupa file spreadsheet. Kemudian data tersebut diolah dengan
beberapa tahapan yang akan menghasilkan aturan – aturan untuk klasifikasi.
Pada penelitian yang dilakukan ini menggunakan data yang di dapat dari
www.inkuiri.com. Data yang digunakan adalah data query hasil dari pencarian
kata yang dimasukkan oleh user. Atribut data mentah yang diperoleh dari
perusahaan www.inkuiri.com seperti pada Tabel 3.1.
Tabel 3. 1 Tabel atribut data mentah
No Nama atribut Keterangan Nilai
1 took
2 timed_out
3 |
4 total
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
5 successful
6 failed
7 max_score
8 ||
9 _index
10 _type
11 _id Atribut ini menyimpan identitas unik dari pelanggan
QY62awHOTtGlVurnGd_On
w
12 _score
13 _source__audience__interest
Atribut ini menyimpan kategori pencarian
Fashion, Smartphone, Motorbike, Talisman
14 _source__audience__economy
15 _source__audience__age
16 _source__banner_id
17 _source__device__family
18 _source__device__name
19 _source__device__type Atribut ini menyimpan data perangkat yang digunakan untuk pencarian
Personal computer, Smartphone, Tabelt
20 _source__filter__category
21 _source__filter__location Atribut ini menyimpan data lokasi dimana sedang melakukan pencarian
Indonesia
22 _source__filter__period
23 _source__filter__price Atribut ini menyimpan data harga yang dicari
100000000:250000000, 250000000:500000000,
100000:1000000,
0:100000, dll
24 _source__filter__site Atribut ini menyimpan data
kaskus.co.id, tokobagus.com,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
website yang dituju
marketnesia.com, bukalapak.com, tokopedia.com, olx.co.id, berniaga.com,
25 _source__ip Atribut ini menyimpan data ip user
116.68.250.254,203.176.181.33, 202.67.40.50, 36.71.41.243, dll
26 _source__location__country_code
Atribut ini menyimpan data kode negara
ID, EU,US, BD, SG, A1, A2, GB, CN, MO, dll
27 _source__location__country_name
Atribut ini menyimpan data nama negara
Indonesia, United State, Europe, China, Anonymous Proxy, Singapore, Bangladesh, United Kingdom, Macau, dll
28 _source__location__region Atribut ini menyimpan data region negara
2, 4, 8, CA, 30, OR, 81, 10, 14, 32, 7, 11, 40, 26, 38, 22, 37, VA, dll
29 _source__location__city Atribut ini menyimpan data nama kota
Surabaya, Jakarta, Denpaasar, Mountain View, Bandung, Tejgaon, Beijing, dll
30 _source__location__latlong001
Atribut ini menyimpan data titik koordinat
112.7508, 106.4989, 120, -97, dll
31 _source__location__latlong002
Atribut ini menyimpan data titik kooerdinat
-7.2492, -6.3433 -5,38, dll
32 _source__page Atribut ini menyimpan data halaman yang dituju
1,2,3,4,5,6,7,8,9
33 _source__query Atribut ini menyimpan data query yang dimasukkan oleh user
Lipstick, jam tangan, velg, hp android, batu bacan, dll
34 _source__profile_id Atribut ini menyimpan data profile_id
54ae4a4c2c3ee4.74521373, 54aed5fecab629.31559420,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
dll
35 _source__session_id
36 _source__created Atribut ini menyimpan data waktu
1420709262000, dll
37 _source__os__family Atribut ini menyimpan data os_family
Windows, Ios, Android
38 _source__os__name Atribut ini menyimpan data os_name
Browser, Mobile browser
39 _source__user_agent__family
Atribut ini menyimpan data browser yang digunakan oleh user
Chrome, Chrome mobile, Firefox, Opera mini, dll
40 _source__user_agent__type
41 _source__user_agent__user_agent
42 _source__filter__location-
43 _source__filter__category-
3.2 Pemrosesan data
Sebelum data diolah dengan menggunakan sistem, terlebih dahulu dilakukan
beberapa tahap sebagai pemrosesan data awal yaitu sebagai berikut :
1. Pembersihan Data
Pada tahap pembersihan data akan dilakukan penghapusan data yang
bernilai null atau kosong. Pada setiap fitur yang bernilai null atau kosong
maka semua data yang ada di dalamnya akan dihapus.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
2. Integrasi Data
Pada tahap integrasi data ini dilakukan penggabungan data dari
beberapa file menjadi satu tabel yang utuh. Data yang dikumpulkan
berasal dari beberapa file yang berbeda sehingga harus digabungkan agar
sesuai untuk ditambang.
3. Penyeleksian Data
Pada tahap penyeleksian data ini dilakukan pembuangan data yang
tidak diperlukan seperti data – data yang tidak relevan untuk penelitian ini.
Atribut – atribut yang dihapus adalah took, timed out, |,
total,successfull,failed,max_score,||,_index,_type,_id,_score,_source__aud
ience__economy,_source__audience__age,_source__banner_id,_source__
device__family,_source__device__name_source__filter__category,_sourc
e__filter__location,_source__filter__location,_source__filter__price,_sour
ce__filter__site,_source__ip,_source__location__country_code,_source__
location__country_name,_source__location__region,_source__location__l
atlong001,_source__location__latlong002,_source__page,_source__query
,_source__profile_id,_source__profile_id,_source_created02,_source_crea
ted03,_source__os__family,_source__os__name,_source__user_agent__f
amily,_source__user_agent__type,_source__filter__locati_source__user_a
gent__user_agent,_source__filter__categ_source__filter__location-ory,
_source__filter__categ_source__filter__location-ory-. Atribut – atribut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
tersebut dihapus atau dilakukan pembuangan karena dianggap tidak dapat
dijadikan sebagai variable untuk menentukan pencarian pola.
Data yang diperoleh setelah dilakukan tahap penyeleksian data adalah
_source_audience_interest, _source_device_type, _source_location_city,
dan _source_created.
4. Transformasi Data
Pada tahap ini dilakukan peringkasan data, dari data mentah menjadi
data yang mudah dikelola. Pada penelitian ini tranformasi data yang
dilakukan adalah atribut _source_created. Atribut tersebut berupa angka
yang kemudian diolah menjadi waktu dan bulan. Waktu berupa : pagi,
siang dan malam, sedangkan bulan berupa : awal, tengah dan akhir.
Aturan transformasi data seperti pada Tabel 3.2.
Tabel 3. 2 Aturan Transformasi Data _source_created
_source_created aturan
waktu 00:00 am - 08:00 am pagi
08:01 am - 16:00 pm siang
16:00 pm - 23:59 pm malam
bulan 1-10 awal
11-20 tengah
21-31 akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
5. Penambangan data
Setelah dilakukan beberapa tahapan tersebut di atas, selanjutnya data
yang sudah jadi diolah menggunakan algoritma ID3. Contoh variabel
input yang dimasukkan dalam algoritma ID3 seperti pada Tabel 3.3.
Tabel 3. 3 Tabel Variabel Input
Interest type city waktu bulan
Fashion Personal computer Surabaya siang awal
Fashion Smartphone Jakarta siang awal
Fashion Personal computer Surabaya siang awal
Fashion Personal computer Denpasar siang awal
Fashion Personal computer Jakarta siang awal
Fashion Smartphone Mountain View siang awal
Fashion Smartphone Jakarta siang awal
Fashion Personal computer Jakarta pagi awal
Fashion Personal computer Jakarta pagi awal
Fashion Personal computer Jakarta pagi awal
Smartphone Smartphone Jakarta siang awal
Smartphone Tabelt Jakarta siang awal
Smartphone Tabelt Jakarta siang awal
Smartphone Smartphone Jakarta siang tengah
Smartphone Smartphone Jakarta siang tengah
Smartphone Personal computer Pekanbaru siang akhir
Smartphone Personal computer Kudus siang akhir
Smartphone Personal computer Pekanbaru siang akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
V
a
r
i
a
b
e
l
o
u
t
V
A
Variabel input : aturan yang ditemukan dalam pencarian pola
klasifikasi pencarian situs website.
Smartphone Smartphone San Mateo malam akhir
Smartphone Personal computer Surabaya malam akhir
Motorbike Tabelt Depok malam awal
Motorbike Tabelt Depok malam awal
Motorbike Tabelt Depok malam awal
Motorbike Smartphone Jakarta malam awal
Motorbike Smartphone Jakarta malam tengah
Motorbike Smartphone Jakarta malam tengah
Motorbike Smartphone Jakarta malam tengah
Motorbike Smartphone Jakarta malam akhir
Motorbike Smartphone Jakarta malam akhir
Motorbike Smartphone Jakarta malam akhir
Talisman Personal computer Surabaya pagi awal
Talisman Personal computer Jakarta pagi awal
Talisman Personal computer Jakarta pagi awal
Talisman Personal computer Surabaya pagi awal
Talisman Personal computer Denpasar pagi awal
Talisman Smartphone Denpasar pagi tengah
Talisman Smartphone Denpasar siang tengah
Talisman Smartphone Surabaya siang tengah
Talisman Smartphone Surabaya siang akhir
Talisman Smartphone Jakarta siang akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
6. Evaluasi Pola
Pada tahap perbaikan ini dilakukan pengujian pola dengan persamaan
2.3.
7. Presentasi Pengetahuan
Akhir dari penelitian yang akan dilakukan adalah membuat aplikasi
dengan tampilan antarmuka yang mudah dimengerti oleh pengguna.
3.3 Proses Perhitungan Algoritma ID3
Data yang telah dimasukkan pada sistem selanjutnya akan diproses oleh
sistem dengan menggunakan algoritma ID3. Proses yang dilakukan oleh sistem
adalah sebagai berikut :
1. Memasukkan username dan password untuk masuk ke sistem.
2. Memasukkan data berupa spread sheet.
3. Pembentukan pohon berawal dari menghitung nilai entropy untuk node
akar (semua data) terhadap komposisi kelas. Selanjutnya menghitung nilai
entropy untuk setiap nilai atribut terhadap kelas.
4. Setelah perhitunganentropy selesai selanjutnya menghitung nilai gain
untuk setiap atribut.
5. Dari perhitungangain maka akan mendapatkan nilai paling besar diantara
atribut – atribut tersebut dan dijadikan sebagai node akar.
6. Sistem akan terus menghitung nilai entropy dan gain maksimal sampai
terbentuk node akhir.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
7. Setelah sistem selesai menghitung maka akan ditampilkan hasil pohon
yang terbentuk.
Flowchart perhitungan ID3 :
Flowchart perhitungan ID3 seperti pada gambar 3.1.
Start
Memasukkan data
training
Data
training
query
Menghitung nilai
entropy
Menghitung nilai
gain
Buat Simpul
Pohon
keputusan
Generate Rule
Selesai
Iterasi
Gambar 3. 1 Flowchart Decision Tree
3.4 Output Sistem
Hasil keluaran sistem :
1. Menampilkan hasil dari pohon keputusan.
2. Hasil prediksi pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
3.5 Diagram Use Case
Diagram use case untuk sistem yang dibuat seperti pada Gambar 3.2.
Login
Masukkan Data
Pengujian
Logout
Pre- Proses
Modelling
Gambar 3. 2 Diagram Use Case
3.5.1 Narasi Use Case
Nama use case : Login
Aktor : Pengguna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Deskripsi : Use case ini berfungsi untuk meningkatkan keamanan sistem
dengan membandingkan username dan password yang dimasukkan pengguna.
Skenario :
Nama use case : Masukkan data
Aktor : Pengguna
Deskripsi : Use case ini berfungsi untuk memasukkan dan menampilkan
data yang akan diolah oleh sistem.
Aksi Aktor Reaksi Sistem
1. User mengetikkan username
dan password di form login
lalu klik tombol login.
2. Sistem membandingkan username dan
password yang dimasukkan user
dengan username dan password di
tabel user.
3. Menampilkan halaman utama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Skenario :
Nama use case : Modelling
Aktor : Sistem
Deskripsi : Use case ini berfungsi untuk melakukan perhitungan data dan
membangun tree.
Aksi Aktor Reaksi Sistem
1. Pengguna memasukkan data
dengan menekan tombol
browser.
2. Pengguna memilih file data
yang akan digunakan.
3. Pengguna menekan tombol
tampilkan.
4. Sistem menampilkan data.
5. Pengguna menekan tombol
proses.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Skenario :
Nama use case: Pengujian
Aktor : Pengguna
Deskripsi : Use case ini berfungsi untuk melakukan pengujian data.
Skenario :
Aksi Aktor Reaksi Sistem
1. Sistem mengolah data untuk
mendapatkan informasi nilai entropy
dan nilai gain tertinggi yang dicari.
2. Sistem menampilkan hasil perhitungan
data.
3. Sistem menampilkan hasil
pembentukan pola.
Aksi Aktor Reaksi Sistem
1. Sistem menampilkan halaman utama.
2. Pengguna memilih tab menu
prediksi.
3. Sistem menampilkan halaman prediksi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
3.6 Contoh Proses Perhitungan Data
Data yang digunakan dalam penelitian ini adalah data dari sebuah situs
www.inkuiri.com. Dalam paparan di bawah ini digunakan data berjumlah 40,
yang terdiri dari 4 kategori yaitu :fashion, smartphone, motorbike dan talisman.
Contoh data yang akan diolah seperti pada Tabel 3.4.
Tabel 3. 4 Tabel data yang akan diolah
Interest type city waktu bulan
Fashion Personal computer Surabaya siang awal
Fashion Smartphone Jakarta siang awal
Fashion Personal computer Surabaya siang awal
Fashion Personal computer Denpasar siang awal
Fashion Personal computer Jakarta siang awal
Fashion Smartphone Mountain View siang awal
Fashion Smartphone Jakarta siang awal
Fashion Personal computer Jakarta pagi awal
Fashion Personal computer Jakarta pagi awal
Fashion Personal computer Jakarta pagi awal
Smartphone Smartphone Jakarta siang awal
4. Pengguna menekan tombol
Pengujian.
5. Sistem menampilkan hasil pengujian data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Smartphone Tabelt Jakarta siang awal
Smartphone Tabelt Jakarta siang awal
Smartphone Smartphone Jakarta siang tengah
Smartphone Smartphone Jakarta siang tengah
Smartphone Personal computer Pekanbaru siang akhir
Smartphone Personal computer Kudus siang akhir
Smartphone Personal computer Pekanbaru siang akhir
Smartphone Smartphone San Mateo malam akhir
Smartphone Personal computer Surabaya malam akhir
Motorbike Tabelt Depok malam awal
Motorbike Tabelt Depok malam awal
Motorbike Tabelt Depok malam awal
Motorbike Smartphone Jakarta malam awal
Motorbike Smartphone Jakarta malam tengah
Motorbike Smartphone Jakarta malam tengah
Motorbike Smartphone Jakarta malam tengah
Motorbike Smartphone Jakarta malam akhir
Motorbike Smartphone Jakarta malam akhir
Motorbike Smartphone Jakarta malam akhir
Talisman Personal computer Surabaya pagi awal
Talisman Personal computer Jakarta pagi awal
Talisman Personal computer Jakarta pagi awal
Talisman Personal computer Surabaya pagi awal
Talisman Personal computer Denpasar pagi awal
Talisman Smartphone Denpasar pagi tengah
Talisman Smartphone Denpasar siang tengah
Talisman Smartphone Surabaya siang tengah
Talisman Smartphone Surabaya siang akhir
Talisman Smartphone Jakarta siang akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Setelah memperoleh data seperti di atas, selanjutnya data dikelompokkan
berdasarkan nilai dalam setiap atribut seperti pada Tabel 3.5.
Tabel 3. 5 Tabel pengelompokkan data dari setiap atribut
Nama
atribut Keterangan
Jumlah dalam kategori Total
Fashion Smartphone Motorbike Talisman
Interest TOTAL 10 10 10 10 40
type
Personal
Computer 7 4 0 5 17
Smartphone 3 4 7 5 19
Tabelt 0 2 3 0 5
city Surabaya 1 1 0 4 6
Jakarta 6 5 7 3 21
Denpasar 2 0 0 3 5
Mountain
View 1 1 0 0 2
Pekanbaru 0 2 0 0 2
Kudus 0 1 0 0 1
San Mateo 0 1 0 0 1
Depok 0 0 3 0 3
waktu pagi 3 0 0 6 9
siang 7 8 0 4 19
malam 0 2 10 0 12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
bulan awal 10 3 4 5 22
tengah 0 2 3 3 8
akhir 0 5 3 2 10
Setelah data dikelompokan, untuk mengetahui node pertama terlebih dulu
hitung nilai entropy dari setiap atribut berdasarkan data yang telah dikelompokan
dengan menggunakan Persamaan 2.2.
Entropy(semua) = - (( p (fashion|semua) x log2 p (fashion|semua)) + ( p
(smartphone|semua) xlog2 p (smarthphone|semua)) + ( p (motorbike|semua) x log2
p (motorbike|semua)) + ( p (talisman|semua) x log2 p (talisman|semua)))
= - (((10/40) x log2 (10/40)) + ((10/40) x log2 (10/40)) + ((10/40) x log2 (10/40)) +
(10/40) x log2 (10/40)))= 2
Setelah mendapatkan nilai entropy dan nilaigain dari semua data maka
selanjutnya dihitung nilai entopry untuk setiap atribut yang ada. Hasil nilai gain
yang paling besar akan dijadikan sebagai node akar. Hasil perhitungan nilai
entropy dari semua atribut dapat dilihat pada Tabel 3.6.
Tabel 3. 6 Tabel perhitungan nilai entropy semua atribut
Node Jumlah F S M T Entropy Gain
1 Total 40 10 10 10 10 2
type 0.345
Personal 16 7 4 0 5 1.545
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
computer
Smartphone 19 3 4 7 5 1.93
Tabelt 5 0 2 3 0 0.969
city 0.629
Surabaya 6 1 1 0 4 1.248
Jakarta 21 6 5 7 3 1.93
Denpasar 5 2 0 0 3 0.969
Mountain
View 2 1 1 0 0 1
Pekanbaru 2 0 2 0 0 0
Kudus 1 0 1 0 0 0
San Mateo 1 0 1 0 0 0
Depok 3 0 0 3 0 0
waktu 0.882
pagi 9 3 0 0 6 0.918
siang 19 7 8 0 4 1.517
malam 12 0 2 10 0 0.64
bulan 0.313
awal 22 10 3 4 5 1.829
tengah 8 0 2 3 3 1,562
akhir 10 0 5 3 2 1.483
Berdasarkan hasil perhitungan di atas nilai gain tertinggi ada pada atribut
waktu. Maka, atribut waktu dijadikan sebagai node akar. Untuk cabangnya
digunakan 3 nilai di dalam node akar, yaitu „siang‟, „pagi‟, dan „malam‟.Dan
terbentuk pohon awal seperti Gambar 3.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
waktu
? ??
pagi
siang malam
Gambar 3. 3 Bentuk awal pohon dengan gain tertinggi waktu
Dalam perhitungan entropy dan gain berikutnya, atribut waktu tidak
dilibatkan. Lakukan pengelompokkan kembali untuk node internal di cabang
malam, sehingga di dapat hasil seperti Tabel 3.7.
Tabel 3. 7 Perhitungan data pada cabang malam
Node Jumlah F S M T Entropy Gain
2 Total 12 0 2 10 0 0.64
type 0.278
Personal
computer 1 0 1 0 0 0
Smartphone 8 0 1 7 0 0.543
Tabelt 3 0 0 3 0 0
city 0.64
Surabaya 1 0 1 0 0 0
Jakarta 7 0 0 7 0 0
Denpasar 0 0 0 0 0 0
Mountain
View 0 0 0 0 0 0
Pekanbaru 0 0 0 0 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Kudus 0 0 0 0 0 0
San Mateo 1 0 1 0 0 0
Depok 3 0 0 3 0 0
bulan 0.102
awal 4 0 0 4 0 0
tengah 3 0 0 3 0 0
akhir 5 0 2 3 0 0.969
Berdasarkan hasil perhitungan di atas nilai gain tertinggi ada pada atribut city.
Maka, atribut city dijadikan sebagai node akar pada cabang malam. Untuk
cabangnya digunakan 4 nilai didalam node akar, yaitu „San Mateo‟, „Surabaya‟,
„Depok‟ dan „Jakarta‟. Lakukan juga klasifikasi pada tiap cabang yang ada. Dan
pohon yang terbentuk seperti Gambar 3.4.
waktu
? city?
pagisiang malam
San MateoSurabaya
Depok
Jakarta
Smartphone Smartphone Motorbike Motorbike
Gambar 3. 4 Pembentukkan pohon untuk cabang malam
Lakukan pengelompokkan kembali untuk node internal di cabang pagi,
sehingga di dapat hasil seperti Tabel 3.8.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Tabel 3. 8 Perhitungan data pada cabang pagi
Node Jumlah F S M T Entropy Gain
3 Total 9 3 0 0 6 0.918
type 0.074
Personal
computer 8 3 0 0 5 0.951
Smartphone 1 0 0 0 1 0
Tabelt 0 0 0 0 0 0
city 0.38
Surabaya 2 0 0 0 2 0
Jakarta 5 3 0 0 2 0.97
Denpasar 2 0 0 0 2 0
Mountain
View 0 0 0 0 0 0
Pekanbaru 0 0 0 0 0 0
Kudus 0 0 0 0 0 0
San Mateo 0 0 0 0 0 0
Depok 0 0 0 0 0 0
bulan 0.074
awal 8 3 0 0 5 0.951
tengah 1 0 0 0 1 0
akhir 0 0 0 0 0 0
Berdasarkan hasil perhitungan di atas nilai gain tertinggi ada pada atribut city.
Maka, atribut city dijadikan sebagai node akar pada cabang pagi. Untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
cabangnya digunakan 3 nilai didalam node akar, yaitu „Jakarta‟, „Denpasar‟, dan
„Surabaya‟.Dan pohon yang terbentuk seperti Gambar 3.5.
waktu
city city?
pagisiang malam
San MateoSurabaya
Depok
Jakarta
?
Surabaya
JakartaDenpasar
Talisman Talisman
Smartphone Smartphone Motorbike Motorbike
Gambar 3. 5 Pembentukan pohon untuk cabang pagi
Untuk node city dengan cabang Jakarta harus dilakukan perhitungan
kembali karena masih belum terklasifikasi kedalam satu kelas keputusan,
sehingga masih harus dilakukan proses pencarian node selanjutnya. Hasil
perhitungan nilai untuk cabang Jakarta dapat dilihat pada Tabel 3.9.
Tabel 3. 9 Perhitungan data pada cabang Jakarta
Node Jumlah F S M T Entropy Gain
4 Total 5 3 0 0 2 0.97
type 0
Personal
computer 5 3 0 0 2 0.97
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Smartphone 0 0 0 0 0
Tabelt 0 0 0 0 0
bulan 0
awal 5 3 0 0 2 0.97
tengah 0 0 0 0 0
akhir 0 0 0 0 0
Untuk hasil perhitungan dari cabang Jakarta ternyata didapat nilai yang sama
antara atribut type dan atribut bulan. Maka, untuk berikutnya diambil atribut yang
terletak lebih awal, yaitu atribut type. Setelah atribut type menjadi node maka
diambil atribut yang kedua yaitu bulan. Dan pohon yang terbentuk seperti
Gambar 3.6.
waktu
city city?
pagisiang malam
San MateoSurabaya
Depok
Jakarta
type
Surabaya
JakartaDenpasar
Personal
Computer
bulan
awal
Fashion
Talisman Talisman
Smartphone Smartphone Motorbike Motorbike
Gambar 3. 6 Pembentukan pohon untuk cabang pagi dan city Jakarta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Lakukan pengelompokkan kembali untuk node internal di cabang siang,
sehingga di dapat hasil seperti pada Tabel 3.10.
Tabel 3. 10 Perhitungan data pada cabang siang
Node Jumlah F S M T Entropy Gain
5 Total 19 7 8 0 4 1.517
type 0.332
Personal
computer 7 4 3 0 0 0.982
Smartphone 10 3 3 0 4 1.566
Tabelt 2 0 2 0 0 0
city 0.563
Surabaya 4 2 0 0 2 1
Jakarta 9 3 5 0 1 1.35
Denpasar 2 1 0 0 1 1
Mountain
View 1 1 0 0 0 0
Pekanbaru 2 0 2 0 0 0
Kudus 1 0 1 0 0 0
San Mateo 0 0 0 0 0 0
Depok 0 0 0 0 0 0
bulan 0.591
awal 10 7 3 0 0 0.876
tengah 4 0 2 0 2 1
akhir 5 0 3 0 2 0.969
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Berdasarkan hasil perhitungan di atas nilai gain tertinggi ada pada atribut
bulan. Maka, atribut bulan dijadikan sebagai node akar pada cabang siang. Untuk
cabangnya digunakan 3 nilai didalam node akar, yaitu „awal‟, „tengah‟, dan
„akhir‟. Lakukan juga klasifikasi pada tiap cabang yang ada. Dan pohon yang
terbentuk seperti Gambar 3.7.
waktu
city citybulan
pagisiang malam
San MateoSurabaya
Depok
Jakarta
type
Surabaya
JakartaDenpasar
Personal
Computer
bulan
awal
Fashion
Talisman Talisman
? ??
awaltengah
akhir
Smartphone Smartphone Motorbike Motorbike
Gambar 3. 7 Pembentukan pohon untuk atribut bulan
Lakukan pengelompokkan untuk node internal di cabang awal, sehingga
di dapat hasil seperti pada Tabel 3.11.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Tabel 3. 11 Perhitungan data pada cabang awal
Node Jumlah F S M T Entropy Gain
6 Total 10 7 3 0 0 0.876
type 0.548
Personal
computer 4 4 0 0 0 0
Smartphone 4 3 1 0 0 0.821
Tabelt 2 0 2 0 0 0
city 0.279
Surabaya 2 2 0 0 0 0
Jakarta 6 3 3 0 0 1
Denpasar 1 1 0 0 0 0
Mountain
View 1 1 0 0 0 0
Pekanbaru 0 0 0 0 0 0
Kudus 0 0 0 0 0 0
San Mateo 0 0 0 0 0 0
Depok 0 0 0 0 0 0
Dari perhitungan di atas nilai gain tertinggi ada pada atribut type. Maka,
atribut type dijadikan sebagai node akar pada cabanag awal. Untuk cabangnya
digunakan 3 nilai didalamnya, yaitu „Personal Computer’ , ‘Smartphone’, dan
„Tabelt‟. Dan pohon yang terbentuk seperti Gambar 3.8.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
waktu
city citybulan
pagisiang malam
San MateoSurabaya
Depok Jakarta
type
Surabaya
JakartaDenpasar
Personal
Computer
bulan
awal
Fashion
Talisman Talisman
type ??
awaltengah
akhir
Fashion Fashioncity
Personal
Computer
Smartphone Tablet
Smartpho
ne
Smartpho
ne
Motorbi
keMotorbi
ke
Gambar 3. 8 Pembentukan pohon untuk cabang awal
Untuk node type dengan cabang Smartphone harus dilakukan perhitungan
kembali karena masih belum terklasifikasi kedalam satu kelas keputusan,
sehinnga masih harus dilakukan proses pencarian node selanjutnya. Perhitungan
untuk cabang Smartphoneseperti pada Tabel 3.12
Tabel 3. 12 Perhitungan data pada cabang Smartphone
Node Jumlah F S M T Entropy Gain
7
Tota
l 4 3 1 0 0 0.821
city 0.671
Surabaya 0 0 0 0 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Jakarta 3 2 1 0 0 0.14
Denpasar 0 0 0 0 0 0
Mountain
View 1 1 0 0 0 0
Pekanbaru 0 0 0 0 0 0
Kudus 0 0 0 0 0 0
San Mateo 0 0 0 0 0 0
Depok 0 0 0 0 0 0
Untuk perhitungan dari cabang Smartphone, hanya ada satu atribut, yaitu city.
Maka atribut city dijadikan node berikutnya dan terdapat satu cabang yang
mempunyai nilai tertinggi, yaitu „Jakarta‟. Dan pohon yang terbentuk seperti
Gambar 3.9.
waktu
city citybulan
pagisiang malam
San MateoSurabaya
Depok Jakarta
type
Surabaya
JakartaDenpasar
Personal
Computer
bulan
awal
Fashion
Talisman Talisman
type ??
awaltengah
akhir
Fashion Fashioncity
Personal
Computer
Smartphone Tablet
Fashion
Jakarta
Smartpho
ne
Smartpho
ne
Motorbi
keMotorbi
ke
Gambar 3. 9 Pembentukan pohon untuk bulan awal dan type Smartphone
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Selanjutnya lakukan perhitungan untuk cabang tengah dan didapat hasil
seperti pada Tabel 3.13.
Tabel 3. 13 Perhitungan data pada cabang tengah
Node Jumlah F S M T Entropy Gain
8
Tota
l 8 0 2 3 3 1,562
type 0
Personal
computer 0 0 0 0 0 0
Smartphone 8 0 2 3 3 1.562
Tabelt 0 0 0 0 0 0
city
0.95
7
Surabaya 1 0 0 0 1 0
Jakarta 5 0 2 3 0 0.969
Denpasar 2 0 0 0 2 0
Mountain
View 0 0 0 0 0 0
Pekanbaru 0 0 0 0 0 0
Kudus 0 0 0 0 0 0
San Mateo 0 0 0 0 0 0
Depok 0 0 0 0 0 0
Perhitungan selanjutnya nilai gain tertinggi ada pada atribut city. Maka atribut
city dijadikan node selanjutnya untuk cabang tengah. Dan pohon yang terbentuk
seperti Gambar 3.10.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
waktu
city citybulan
siang malam
San MateoSurabaya
Depok
type
Surabaya
Denpasar
Personal
Computer
bulan
awal
Fashion
Talisman Talisman
type ?city
awaltengah
akhir
Fash
ioncity
Personal
Computer
Smartphone
Tablet
Fash
ion
Fashion
Jakarta
Smartp
hone
Talis
man
Smartp
hone
Surabaya
Jakarta
Denpasar
Smartp
honeSmartp
hone
Motor
bikeMotor
bikeJakarta
pagi
Gambar 3. 10 Pembentukan pohon untuk cabang tengah
Selanjutnya untuk perhitungan yang terakhir adalah perhitungan untuk cabang
akhir. Dan didapat hasil seperti pada Tabel 3.14.
Tabel 3. 14 Perhitungan data pada cabang akhir
Node Jumlah F S M T Entropy Gain
9 Total 5 0 3 0 2 0.97
type 0.97
Personal
computer 3 0 3 0 0 0
Smartphone 2 0 0 0 2 0
Tabelt 0 0 0 0 0 0
city 0.97
Surabaya 1 0 0 0 1 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Jakarta 1 0 0 0 1 0
Denpasar 0 0 0 0 0 0
Mountain
View 0 0 0 0 0 0
Pekanbaru 0 0 2 0 0 0
Kudus 1 0 1 0 0 0
San Mateo 0 0 0 0 0 0
Depok 0 0 0 0 0 0
Untuk hasil perhitungan dari cabang akhir ternyata didapat nilai yang sama
antara atribut type dan atribut city. Maka, untuk berikutnya diambil atribut yang
terletak lebih awal, yaitu atribut type. Dan pohon yang terbentuk seperti Gambar
3.11.
waktu
city citybulan
siang malam
San MateoSurabaya
Depok Jakarta
type
Surabaya
Denpasar
Personal
Computer
bulan
awal
Fashion
Talisman Talisman
type typecity
awaltengah
akhir
Fash
ioncity
Personal
Computer
Smartphone
Tablet
Fash
ion
Fashion
Jakarta
Smartp
hone
Talis
man
Smartp
hone
Surabaya
Jakarta
Denpasar
Smartp
honeSmartp
hone
Motor
bikeMotor
bikeJakarta
pagi
Smartphone Talisman
Personal
Computer Smartphone
Gambar 3. 11 Pembentukkan pohon untuk cabang akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Dengan memperhatikan pohon keputusan pada Gambar 3.11 di atas diketahui
bahwa pohon keputusan telah terbentuk. Dan setelah didapatkan tree, tahap
selanjutnya adalah mengubahmenjadi rule. Berikut ini adalah bentuk tree yang
diubah menjadi rule:
R1 : if waktu = siang ^ bulan = awal ^ type = Personal Computer THEN interest
= Fashion
R2 : if waktu = siang ^ bulan = awal ^ type = Smartphone ^ city = Jakarta THEN
interest = Fashion
R3 : if waktu = siang ^ bulan = awal ^ type = Tabelt THEN interest = Fashion
R4 : if waktu = siang ^ bulan = tengah ^ city = Surabaya THEN interest =
Smartphone
R5 : if waktu = siang ^ bulan = tengah ^ city = Jakarta THEN interest =
Smartphone
R6 : if waktu = siang ^ bulan = tengah ^ city = Denpasar THEN interest =
Talisman
R7 : if waktu = siang ^ bulan = akhir ^ type = Personal Computer THEN interest
= Smartphone
R8 : if waktu = siang ^ bulan = akhir ^ type = Smartphone THEN interest =
Talisman
R9 : if waktu = pagi ^ city = Surabaya THEN interest = Talisman
R10 : if waktu = pagi ^ city = Jakarta ^ type = Personal Computer ^ bulan = awal
THEN interest = Fashion
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
R11 : if waktu = pagi ^ city = DenpasarTHEN interest = Talisman
R12 : if waktu = malam ^ city = San Mateo THEN interest = Smartphone
R13 : if waktu = malam ^ city = Surabaya THEN interest = Smartphone
R14 : if waktu = malam ^ city = Depok THEN interest = Motorbike
R15 : if waktu = malam ^ city = Jakarta THEN interest = Motorbike
R16 : if waktu = siang ^ bulan = tengah ^ city = SurabayaTHEN interest =
Talisman
Berikut ini adalah pola yang terbentuk berdasarkan rule yang telah
disederhanakan:
Pola 1 : if waktu = siang OR pagi^ bulan = awal ^ city = Jakarta ^type =
Personal Computer OR Smartphone OR Tabelt THEN interest = Fashion
Pola 2 : if waktu = siang OR malam ^ bulan = tengah OR akhir ^ city = Surabaya
OR Jakarta OR San Mateo OR Surabaya ^ type = Personal ComputerTHEN
interest = Smartphone
Pola 3 : if waktu = malam ^ city = Depok OR Jakarta THEN interest =
Motorbike
Pola 4 : if waktu = siang OR pagi ^ bulan = tengah OR akhir ^ city = Denpasar
OR Surabaya OR ^ type = Smartphone THEN interest = Talisman
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
3.7 Perancangan Umum Sistem
3.7.1 Masukkan Sistem
Data yang menjadi masukkan sistem terdiri dari 5 atribut yaitu :
interest, type, city, waktu dan bulan. Penjelasan mengenai atribut – atribut
yang digunakan sebagai masukkan sistem seperti pada Tabel 3.15.
Tabel 3. 15 Penjelasan atribut masukkan sistem
No Atribut Penjelasan Nilai
1 interest Atribut interest menyimpan
hasil kategori dari pencarian
yaitu; Fashion, Smartphone,
Motorbike dan Talisman
Fashion, Smartphone, Motorbike,
Talisman
2 type Atribut type menyimpan
data type yang digunakan
sebagai alat pencarian
Personal computer, Smartphone, Tablet
3 city Atribut city menyimpan
data nama kota dimana
sedang dilakukan pencarian
Surabaya, Jakarta, Denpasar, Mountain
View, Pekanbaru, Kudus, San Mateo,
Depok
4 waktu Atribut waktu menyimpan
data waktu yang sedang
melakukan pencarian
pagi, siang, malam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
3.7.2 Perancangan antar muka dengan user
3.7.2.1 Halaman Login
Login
Username :
Password :
Login
5 bulan Atribut bulan menyimpan
data bulan masuk dalam
urutan ; awal, tengah, akhir
awal, tengah, akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
3.7.2.2 Halaman Utama
judul
Fakultas Sains & Teknologi
Universitas Sanata Dharma Yogyakarta 2016
3.7.2.3 Halaman Data
Hasil
Home Data Prediksi Bantuan
Logo
USD
Home Data Prediksi Bantuan
Proses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
3.7.2.4 Halaman Prediksi (Pengujian)
Hasil
Home Data Prediksi Bantuan
Pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
3.8 Diagram Kelas
3.8.1 Diagram Kelas Use case Login
FormLogin
FormLogin ( ) : <<kostruktor>>
TombolLoginActionPerformed :
void
HalamanUtama
- fashionField : Object
- st : Statement
- rs : Resultset
- koneksi : Koneksi
- file : File
- dt : String [ ] [ ]
- tabelModel : DefaultTabelModel
CekLogin
+ cekLogin (String, String) : boolean
Login
- username :
String
- password :
String
+ setUsername
(String) : void
+ getUsername ( ) :
String
+ setPassword
(String) : void
+ getPassword ( ) :
String
+ login (String,
String) : boolean
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
+ HalamanUtama ( ) : <<konstruktur>>
+
Browse1ActionPerformed(java.awt.event.Actio
nEvent evt) : void
+
Tampilkan1ActionPerformed(java.awt.event.Ac
tionEvent evt) : void
+
ProsesActionPerformed(java.awt.event.ActionE
vent evt) : void
+
Browse2ActionPerformed(java.awt.event.Actio
nEvent evt) : void
+
Tampilkan2ActionPerformed(java.awt.event.Ac
tionEvent evt) : void
+
PengujianActionPerformed(java.awt.event.Acti
onEvent evt) : void
+ TestingFold() : void
+ transformData(String[][] data, int idx) : String
+ joinData(String[][] data1, String[][] data2) :
String
+ getDataByFold(String[][] data,int fold, int
foldID) : String
+ getData() : String
+ transfromData() : int
Gambar 3. 12 Diagram Kelas Use Case Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
3.8.2 Diagram Kelas Use case Masukkan Data
HalamanUtama
- fashionField : Object
- st : Statement
- rs : Resultset
- koneksi : Koneksi
- file : File
- dt : String [ ] [ ]
- tabelModel : DefaultTabelModel
+ HalamanUtama ( ) : <<konstruktur>>
+ Browse1ActionPerformed(java.awt.event.ActionEvent
evt) : void
+
Tampilkan1ActionPerformed(java.awt.event.ActionEven
t evt) : void
+ ProsesActionPerformed(java.awt.event.ActionEvent
evt) : void
+ Browse2ActionPerformed(java.awt.event.ActionEvent
evt) : void
+
Tampilkan2ActionPerformed(java.awt.event.ActionEven
t evt) : void
+
PengujianActionPerformed(java.awt.event.ActionEvent
evt) : void
+ TestingFold() : void
+ transformData(String[][] data, int idx) : String
+ joinData(String[][] data1, String[][] data2) : String
+ getDataByFold(String[][] data,int fold, int foldID) :
String
+ getData() : String
+ transfromData() : int
Gambar 3. 13 Diagram Kelas Use Case Masukkan Data
Data
- interest : String
- type : String
- city : String
- waktu : String
- bulan : String
+ setInterest (String) : void
+ getInterest() : String
+ setType (String) : void
+ getType ( ) :String
+ setCity (String) : void
+ getCity ( ) : String
+ setWaktu (String) : void
+ getWaktu ( ) : String
+ setBulan (String) :void
+ getBulan ( ) : String
BacaFile
+ bacaFile (File, file) : String
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
3.8.3 Diagram Kelas Use Case Pengujian
HalamanUtama
- fashionField : Object
- st : Statement
- rs : Resultset
- koneksi : Koneksi
- file : File
- dt : String [ ] [ ]
- tabelModel : DefaultTabelModel
+ HalamanUtama ( ) : <<konstruktur>>
+
Browse1ActionPerformed(java.awt.event.ActionEvent
evt) : void
+
Tampilkan1ActionPerformed(java.awt.event.ActionEv
ent evt) : void
+ ProsesActionPerformed(java.awt.event.ActionEvent
evt) : void
+
Browse2ActionPerformed(java.awt.event.ActionEvent
evt) : void
+
Tampilkan2ActionPerformed(java.awt.event.ActionEv
ent evt) : void
+
PengujianActionPerformed(java.awt.event.ActionEve
nt evt) : void
+ TestingFold() : void
+ transformData(String[][] data, int idx) : String
+ joinData(String[][] data1, String[][] data2) : String
+ getDataByFold(String[][] data,int fold, int foldID) :
String
+ getData() : String
+ transfromData() : int
Gambar 3. 14 Diagram Kelas Pengujian
Tree
- root : Node
+ buildTree(String tabel) : void
+ printTree() : void
+ testing(String data) : void
+ removeAtt(String, int) : String
+ saveTree ( ) : void
+ loadTree ( ) :boolean
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
BAB IV
IMPLEMENTASI SISTEM
4.1 Spesifikasi Perangkat Keras dan Perangkat Lunak
Spesifikasi perangkat lunak yang digunakan dalam implementasi sistem
adalah :
1. Sistem Operasi : Microsoft Windows 7 Ultimate
2. Bahasa pemrograman : Java Netbeans IDE 7.3
Spesifikasi perangkat keras yang digunakan dalam implementasi sistem
adalah :
1. Processor : Intel Atom N570, 1.66 GHz
2. Memory : 2 GB DDR3
3. Harddisk : 320 GB
4.2 Implementasi Pemrosesan Data
4.2.1 Pembersihan Data
Data mentah yang diperoleh dari hasil query adalah sebanyak 450
data. Dalam satu data record query terdapat 43 atribut. Dari 43 atribut, yang
digunakan untuk penelitian ini 4 atribut yaitu : _source_audience_interest,
_source_device_type, _source_location_city dan _source_created_.Contoh
data yang sudah dilakukan pembersihan seperti pada Tabel 4.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Tabel 4. 1 Contoh data yang sudah dilakukan pembersihan
_source__audience _interest
_source_device _type
_source _location
_city
_source _created
Fashion Personal computer Surabaya 1.42071E+12
Fashion Smartphone Jakarta 1.42071E+12
Fashion Personal computer Surabaya 1.42071E+12
Motorbike Tabelt Depok 1.42074E+12
Motorbike Smartphone Jakarta 1.42074E+12
Motorbike Smartphone Jakarta 1.42074E+12
Smartphone Smartphone Jakarta 1.42071E+12
Smartphone Tabelt Jakarta 1.42071E+12
Smartphone Tabelt Jakarta 1.42071E+12
Talisman Smartphone Surabaya 1.4207E+12
Talisman Smartphone Jakarta 1.42071E+12
Talisman Personal computer Jakarta 1.42071E+12
4.2.2 Integrasi Data
Contoh file yang belum digabungkan dari file kategori fashionseperti
pada Tabel 4.2.
Tabel 4. 2 Contoh file dari kategori fashion
_source__audience _source_device _source _source
_interest _type _location _created
_city
Fashion Personal computer
Surabaya 1.42E+12
Fashion Smartphone Jakarta 1.42E+12
Fashion Personal computer
Surabaya 1.42E+12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Contoh file yang belum digabungkan dari file kategori smartphone
seperti pada Tabel 4.3.
Tabel 4. 3 Contoh file dari kategori smartphone
_source__audience _source_device _source _source
_interest _type _location _created
_city
Smartphone Smartphone Jakarta 1.42E+12
Smartphone Tabelt Jakarta 1.42E+12
Smartphone Tabelt Jakarta 1.42E+12
Contoh file yang belum digabungkan dari file kategori motorbike
seperti pada Tabel 4.4.
Tabel 4. 4 Contoh file dari kategori motorbike
_source__audience _source_device _source _source
_interest _type _location _created
_city
Motorbike Tabelt Depok 1.42E+12
Motorbike Smartphone Jakarta 1.42E+12
Motorbike Smartphone Jakarta 1.42E+12
Contoh file yang belum digabungkan dari file kategori talisman seperti
pada Tabel 4.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Tabel 4. 5 Contoh file dari kategori talisman
_source__audience _source_device _source _source
_interest _type _location _created
_city
Talisman Smartphone Surabaya 1.42E+12
Talisman Smartphone Jakarta 1.42E+12
Talisman Personal computer
Jakarta 1.42E+12
Contoh file yang telah digabungkan dari 4 kategori seperti pada Tabel
4.6.
Tabel 4. 6 Contoh file yang telah digabungkan
_source__audience _interest
_source_device _type
_source _location
_city
_source _created
Fashion Personal computer Surabaya 1.42071E+12
Fashion Smartphone Jakarta 1.42071E+12
Fashion Personal computer Surabaya 1.42071E+12
Motorbike Tabelt Depok 1.42074E+12
Motorbike Smartphone Jakarta 1.42074E+12
Motorbike Smartphone Jakarta 1.42074E+12
Smartphone Smartphone Jakarta 1.42071E+12
Smartphone Tabelt Jakarta 1.42071E+12
Smartphone Tabelt Jakarta 1.42071E+12
Talisman Smartphone Surabaya 1.4207E+12
Talisman Smartphone Jakarta 1.42071E+12
Talisman Personal computer Jakarta 1.42071E+12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
4.2.3 Penyeleksian Data
Dari 43 atribut yang didapat kemudian dilakukan penyeleksian atribut
yang bisa digunakan untuk penelitian ini. Atribut – atribut asli yang belum
dilakukan seleksi seperti pada Tabel 4.7.
Tabel 4. 7 Nama – nama atribut yang belum diseleksi
No Nama atribut
1 took
2 timed_out
3 |
4 total
5 successful
6 failed
7 max_score
8 ||
9 _index
10 _type
11 _id
12 _score
13 _source__audience__interest
14 _source__audience__economy
15 _source__audience__age
16 _source__banner_id
17 _source__device__family
18 _source__device__name
19 _source__device__type
20 _source__filter__category
21 _source__filter__location
22 _source__filter__period
23 _source__filter__price
24 _source__filter__site
25 _source__ip
26 _source__location__country_code
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
27 _source__location__country_name
28 _source__location__region
29 _source__location__city
30 _source__location__latlong001
31 _source__location__latlong002
32 _source__page
33 _source__query
34 _source__profile_id
35 _source__session_id
36 _source__created
37 _source__os__family
38 _source__os__name
39 _source__user_agent__family
40 _source__user_agent__type
41 _source__user_agent__user_agent
42 _source__filter__location-
43 _source__filter__category-
Atribut yang sudah dilakukan seleksi seperti pada Tabel 4.8.
Tabel 4. 8 Hasil nama atribut yang telah diseleksi
_source__audience _source_device _source _source
_interest _type _location _created
_city
4.2.4 Transformasi Data
Pada tahap ini data yang ditransformasi adalah data dari atribut
_source_created. Pertama, data asli dibagi dengan 1000, berikut adalah contoh
transformasinya, seperti pada Tabel 4.9.
Hasil1 = 1.42071E+12 /1000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Tabel 4. 9 Contoh perhitungan waktu yang pertama
_source__created Hasil1
1.42071E+12 1420709258
1.42071E+12 1420709262
1.42071E+12 1420709283
1.42071E+12 1420709488
1.42071E+12 1420709579
Kedua, hasil yang telah dibagi dengan 1000 selanjutnya dihitung lagi dan
didapat hasil seperti pada Tabel 4.10.
Hasil2 = 1420709258/86400+25569
Tabel 4. 10 Contoh perhitungan waktu yang kedua
Setelah di dapat hasil seperti di atas maka hasil2 dipecah menjadi
waktu dan bulan dengan aturan yang ada pada tabel 3.2.
4.2.5 Penambangan Data
Penambangan Data pada tahap ini adalah melakukan perhitungan data
sebagai berikut :
_source__created Hasil1 Hasil 2
1.42071E+12 1420709258 1/8/15 9:27
1.42071E+12 1420709262 1/8/15 9:27
1.42071E+12 1420709283 1/8/15 9:28
1.42071E+12 1420709488 1/8/15 9:31
1.42071E+12 1420709579 1/8/15 9:32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
a. Menghitung nilai entropy
public double[] entropy(int[][] data) {//menghitung nilai
entropy
double[] hasil = new double[data.length];
for (int i = 0; i < data.length; i++) {
int[] tempData = data[i];
int tot = 0;
for (int j = 0; j < tempData.length; j++) {
tot += tempData[j]; // mencari jumlah mmasing2
interest
}
hasil[i] = 0;
for (int j = 0; j < tempData.length; j++) { // loop untuk
setiap partisi atribut
double temp = ((double) tempData[j] / tot) *
log2(((double) tempData[j] / tot)); // menghitung peluang
partisi dalam interest
hasil[i] += Double.isInfinite(temp) ||
Double.isNaN(temp) ? 0 : temp; // menghindari nilai tidak
terdefinisi.
}
hasil[i] = -hasil[i];
}
return hasil;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
b. Menghitung nilai gain
public double gain(double[] entropy, int[][] data)
{//menghitung nilai gain
if (entropy == null) { // entropynya harus ada
entropy = this.entropy(data);
}
int jum = 0;
int tot[] = new int[data.length];
for (int i = 0; i < data.length; i++) { // menghitung jumlah
setiap partisi atribut
int[] tempData = data[i];
tot[i] = 0;
for (int j = 0; j < tempData.length; j++) {
tot[i] += tempData[j];
}
jum += tot[i];
}
double gain = 0;
for (int i = 0; i < tot.length; i++) { // menghitung semua
(peluang * entropy) masing2 atribute
gain += (double) tot[i] / jum * entropy[i];
}
int[][] interest = new int[1][data[0].length];
for (int i = 0; i < data.length; i++) { // menghitung jumlah
interest dalam masibg2 atribute
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
4.3 Implementasi Use Case
Login dilakukan dengan cara mengisikan username dan password pada
Halaman FormLogin seperti pada Gambar 4.1. Selanjutnya sistem akan
mencocokkan username dan password yang telah dimasukkan, jika sesuai maka
sistem akan muncul pemberitahuan seperti pada Gambar 4.2
for (int j = 0; j < data[i].length; j++) {
interest[0][j] += data[i][j];
}
}
double entropySemua = this.entropy(interest)[0]; //
menghitung entrpy semua
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + "Entropy semua " +
entropySemua + "\n");
// System.out.println("Entropy semua " + entropySemua);
gain = entropySemua - gain; // rumus gain = entropysemua -
jumlah (peluang * entropy)
return gain;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Gambar 4. 1 Halaman FormLogin
Gambar 4. 2 Pemberitahuan berhasil login
Pengguna menekan tombol OK pada pemberithuan berhasil login untuk
dapat masuk ke halaman utama seperti pada Gambar 4.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Gambar 4. 3 Form Halaman Utama
Untuk memproses data, langkah berikutnya pengguna menekan tab
menu Data dan akan masuk ke halaman data seperti pada Gambar 4.4. Untuk
menampilkan data maka pengguna harus menekan tombol Browse dan akan
muncul halaman untuk memilih data yang akan ditampilkan seperti pada
Gambar 4.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
Gambar 4. 4 Halaman tab menu data
Gambar 4. 5 Halaman File Chooser untuk mengambil data
Agar data dapat dilihat pengguna cukup menekan tombol tampilkan
pada halaman tab menu Data. Data akan berhasil ditampilkan seperti pada
Gambar 4.6.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Gambar 4. 6 Data yang sudah berhasil ditampilkan
Selanjutnya untuk dapat melihat hasil pohon keputusan dari data yang
telah diambil pengguna cukup menekan tombol Proses maka akan keluar hasil
contoh sebagian treeseperti pada Gambar 4.7
siang,
pagi,
malam,
2-null =
San Mateo,
Surabaya,
Depok,
Jakarta,
1-malam =
Jakarta-Motorbike
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Depok-Motorbike
Surabaya-Smartphone
San Mateo-Smartphone
Jakarta,
Surabaya,
Denpasar,
1-pagi =
Denpasar-Talisman
Surabaya-Talisman
Personal computer,
0-Jakarta =
awal,
0-Personal computer =
awal-Fashion
awal,
tengah,
akhir,
2-siang =
Personal computer,
Smartphone,
0-akhir =
Smartphone-Talisman
Personal computer-
Smartphone
Jakarta,
Denpasar,
Surabaya,
1-tengah =
Surabaya-Talisman
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
Denpasar-Talisman
Jakarta-Smartphone
Personal computer,
Smartphone,
Tabelt,
0-awal =
Tabelt-Smartphone
Jakarta,
Mountain View,
0-Smartphone =
Mountain View-Fashion
Jakarta-Fashion
Personal computer-Fashion
Gambar 4. 7Contoh Hasil pohon keputusan
Selanjutnya, setelah hasil pohon keputusan ditampilkan maka lakukan
pengujian dengan mengeklik tabmenu Prediksi seperti pada Gambar 4.8.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Gambar 4. 8 Halaman Prediksi
Untuk menampilkan data maka pengguna harus menekan tombol
Browse dan akan muncul halaman untuk memilih data yang akan ditampilkan
seperti pada Gambar 4.9. Tekan tombol Pengujian maka sistem akan
menampilkan hasil pada kotak di sebelah kanan seperti pada Gambar 4.10.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
Gambar 4. 9 Halaman Prediksi dengan data yang sudah ditampilkan
Gambar 4.10 Tampilan contoh hasil pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
4.4 Implementasi Diagram Kelas
Dalam pembuatan aplikasi ini, ada 4 packages yang dibuat, yaitu
packages form, packages kelas, packages tools dan packages gambar.
Packagesform terdiri dari 2 kelas, yaitu kelas FormLogin dan HalamanUtama.
Packages kelas terdiri dari 8 kelas, yaitu kelas BacaFile, kelas CekLogin, kelas
Data, kelas Helper, kelas Login, kelas Node, kelas PerhitunganData dan kelas
Tree.Packages tools terdiri dari 2 kelas, yaitu kelas Koneksi dan koneksi1.
Packages gambar berisi gambar – gambar yang dipakai dalam pembuataan
aplikasi ini. Detail implementasi program ada pada lampiran 1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
BAB V
PENGUJIAN DATA
5.1 Pengujian Data
Data yang digunakan untuk membuat tree (pohon keputusan) adalah data
sebanyak 375 data. Dari data tersebut hanya akan dibentuk menjadi satu tree.
Untuk pengujian menggunakan data sebanyak 500 data yang berbeda. Data
sebanyak 500 tersebut akan dicoba dimasukkan ke dalam tree. Dari hasil tersebut
akan didapat jumlah data yang benar dan data yang salah. Data yang benar akan
digunakan untuk menghitung nilai akurasi. Hasil dari pencarian pola klasifikasi
pencarian situs website dengan menggunakan 375terdapat pada lampiran 2.
5.2 Hasil Pola Klasifikasi
Hasil rule seperti pada lampiran 3 dapat disederhanakan seperti berikut :
Pola 1 : Interest Fashion = if waktu = pagi OR siang^bulan = tengah OR akhir
OR awal^type = Personal Computer OR Smartphone^city = Boardman OR
Surabaya OR Bogor OR Denpasar OR Jakarta OR London OR Mountain View
OR Palembang OR Samarinda OR San Mateo OR Singapore OR Sleman OR
Tejgaon OR Yogyakarta.
Pola 2 : Interest Smartphone = if waktu = malam OR pagi OR siang^city =
Jakarta OR Bandung OR Medan OR Purwokerto OR San Mateo OR Sidoarjo OR
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
Singapore OR Surabaya OR Beijing OR Bogor OR Jakarta OR Madiun OR
Palembang OR Tangerang OR Yogyakarta OR Surakarta OR Depok OR Kudus
OR Makasar OR Pekanbaru^bulan = awal OR akhir OR tengah^type = Personal
Computer OR Smartphone OR Tabelt.
Pola 3 : Interest Motorbike = if waktu = malam OR pagi^city = Jakarta OR
Batam OR Boardman OR Depok OR Kudus OR Medan OR Mountain View OR
Pontianak OR San Mateo OR Surabaya OR Tangerang OR Bekasi OR Mojokerto
OR Saragota OR Tokyo^bulan = tengah OR akhir OR awal^type = Personal
Computer OR Smartphone.
Pola 4 : Interest Talisman = if waktu = pagi OR siang^bulan = tengah OR awal
OR akhir^type = Personal Computer OR Tabelt OR Smartphone^city =
Providence OR Pontianak OR Jakarta OR Bandung OR Dki Jakarta OR Kudus
OR Medan OR Mega OR Palembang OR Sidoarjo OR Surabaya.
5.3 Menghitung akurasi
Untuk pengujian data terhadap pola data yang digunakan adalah data pada
bulan Juni tahun 2015. Pengujian data terhadap pola digunakan data sebanyak
500 data. Untuk setiap pengujian di gunakan data sebanyak 50 data dan dilakukan
10 kali. Hasil pengujian 1 dapat dilihat pada Tabel 5.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
5. 1 Hasil Pengujian ke - 1
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 6 1 2 1 3
6 7
pred. Smartphone 1 2 1 1 7
2 10
pred. Motorbike 1 2 2 2 6
2 11
pred. Talisman 0 0 1 2 9
2 10
jumlah 12 38
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (12/50) * 100 =24%
Hasil pengujian 2 dapat dilihat pada Tabel 5.2.
Tabel 5. 2 Hasil Pengujian ke - 2
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 4 3 1 1 4
4 9
pred. Smartphone 0 2 0 1 9
2 10
pred. Motorbike 1 2 2 1 7
2 11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
pred. Talisman 2 0 0 1 9
1 11
jumlah 9 41
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (9/50) * 100 = 18%
Hasil pengujian 3 dapat dilihat pada Tabel 5.3.
Tabel 5. 3 Hasil Pengujian ke - 3
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 4 3 0 0 6
4 9
pred. Smartphone 0 2 0 1 9
2 10
pred. Motorbike 2 4 2 0 5
2 11
pred. Talisman 0 2 1 2 7
2 10
jumlah 10 40
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (10/50) * 100 = 20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
Hasil pengujian 4 dapat dilihat pada Tabel 5.4.
Tabel 5. 4 Hasil Pengujian ke - 4
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 4 2 0 0 7
4 9
pred. Smartphone 1 1 1 0 9
1 11
pred. Motorbike 1 4 3 0 5
3 10
pred. Talisman 0 2 0 2 8
2 10
jumlah 10 40
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (10/50) * 100 = 20%
Hasil pengujian 5 dapat dilihat pada Tabel 5.5.
Tabel 5. 5 Hasil Pengujian ke - 5
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 5 1 0 1 6
5 8
pred. Smartphone 1 3 3 0 5
3 9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
pred. Motorbike 1 5 2 0 5
2 11
pred. Talisman 1 2 0 2 7
2 10
jumlah 12 38
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (12/50) * 100 = 24%
Hasil pengujian 6 dapat dilihat pada Tabel 5.6.
Tabel 5. 6 Hasil Pengujian ke - 6
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 3 2 2 1 4
3 9
pred. Smartphone 1 2 5 0 5
2 11
pred. Motorbike 1 3 2 0 6
2 10
pred. Talisman 1 5 1 1 5
1 12
jumlah 8 42
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (8/50) * 100 = 16%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Hasil pengujian 7 dapat dilihat pada Tabel 5.7.
Tabel 5. 7 Hasil Pengujian ke - 7
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 1 3 2 2 4
1 11
pred. Smartphone 2 3 4 0 4
3 10
pred. Motorbike 1 3 2 0 6
2 10
pred. Talisman 2 2 1 2 6
2 11
jumlah 8 42
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (8/50) * 100 = 16%
Hasil pengujian 8 dapat dilihat pada Tabel 5.8.
Tabel 5. 8 Hasil Pengujian ke - 8
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 3 2 2 1 4
3 9
pred. Smartphone 1 3 0 1 8
3 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
pred. Motorbike 1 4 2 0 5
2 10
pred. Talisman 3 3 2 0 5
0 13
jumlah 8 42
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (8/50) * 100 = 16%
Hasil pengujian 9 dapat dilihat pada Tabel 5.9.
Tabel 5. 9 Hasil Pengujian ke - 9
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 5 1 3 1 2
5 7
pred. Smartphone 3 1 1 1 7
1 12
pred. Motorbike 1 2 1 0 8
1 11
pred. Talisman 0 1 3 3 6
3 10
jumlah 10 40
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (10/50) * 100 = 20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
Hasil pengujian 10 dapat dilihat pada Tabel 5.10.
Tabel 5. 10 Hasil Pengujian ke - 10
true Fashion
true Smartphone
true Motorbike
true Talisman
unidentified
jumlah data benar
jumlah data salah
pred. Fashion 4 1 3 1 3
4 8
pred. Smartphone 3 1 2 1 6
1 12
pred. Motorbike 1 1 1 2 7
1 11
pred. Talisman 0 1 1 2 9
2 11
jumlah 8 42
Untuk menghitung akurasi digunakan persamaan 2.3
Akurasi = (8/50) * 100 = 16%
Dari sepuluh kali pengujian di dapat hasil seperti pada Tabel 5.11.
Tabel 5. 11 Hasil rata – rata untuk 10 kali pengujian
Hasil Akurasi
Pengujian 1 24%
Pengujian 2 18%
Pengujian 3 20%
Pengujian 4 20%
Pengujian 5 24%
Pengujian 6 16%
Pengujian 7 16%
Pengujian 8 16%
Pengujian 9 20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
Pengujian 10 16%
Rata - rata 190/10 = 19%
Rata – rata hasil yang didapat dari sepuluh kali pengujian adalah 19 % dengan
nilai maksimum : 24 % dan nilai minimum : 16 %.
5.4 Kelebihan dan Kekurangan Program
1. Kelebihan Program :
a. Program ini dapat digunakan untuk klasifikasi pada data yang
berbeda.
b. Program bisa dicoba dengan atribut lebih dari sama dengan 5.
2. Kekurangan Program :
Program tidak selalu bisa mengolah banyak data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
BAB VI
KESIMPULAN dan SARAN
6.1 Kesimpulan
Kesimpulan dari tugas akhir ini adalah :
1. Algoritma ID3 berhasil diimplementasikan dengan 375 dataquery
pencarian situs website dengan menggunakan 4 kategori yang ada.
2. Dari hasil 10 kali pengujian dengan 500 data didapat hasil akurasi yang
paling tinggi yaitu sebesar 24%. Nilai maksimum didapat niliai sebesar
24% dan nilai minimum didapat nilai sebesar 16%. Rata – rata nilai
akurasi yang didapat adalah sebesar 19%.
6.2 Saran
Saran yang diperlukan untuk perbaikan dan pengembangan program lebih
lanjut adalah :
1. Program dapat menerima masukan file berupa csv tidak hanya yang
bertipe .xls.
2. Data untuk pengujian diperbesar agar didapat nilai akurasi yang lebih
tinggi.
3. Dicoba dengan menggunakan algoritma yang lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
Daftar Pustaka
Hermawati Fajar Astuti, 2003, Data Mining, Yogyakarta,
Iko Pramudiono, 2003, Pengantar Data Mining, Kuliah Umum
IlmuKomputer.Com
Sarwono Jonathan, 2013, 12 Jurus Ampuh SPSS untuk Riset Skripsi, Jakarta,
Taufiq Luthfi, Emha, Kusrini, 2009, Algoritma Data Mining, Yogyakarta,
Yudho Giri Sucahyo, 2003, Penerapan Data Mining, Artikel Populer
IlmuKomputer.Com
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
LAMPIRAN 1
Dibawah ini adalah implementasi program yang digunakan untuk membuat sistem.
Package Form
1. a. Nama kelas : FormLogin
b. Nama method
:TombolLoginActionPerformed(java.awt.event.ActionEvent
evt)
c. Fungsi method :
d. Listing program :
Private void TombolLoginActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here
String username = jTextField1.getText();
String pswd = jPasswordField1.getText();
CekLogin cek = new CekLogin();
boolean hasil = cek.cekLogin(username, pswd);
if(hasil==true){
HalamanUtama form = new HalamanUtama();
form.setVisible(hasil);
this.dispose();
}
}
private void passwordFieldKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
String username = jTextField1.getText();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
String pswd = jPasswordField1.getText();
CekLogin cek = new CekLogin();
boolean hasil = cek.cekLogin(username, pswd);
if(hasil==true){
HalamanUtama form = new HalamanUtama();
form.setVisible(hasil);
this.dispose();
}
}
2. a. Nama kelas : HalamanUtama
b. Nama method :TestingFold()
c. Fungsi method : untuk pengujian data
d. Listing program :
private void TestingFold() {
int fold = 3;
String[][] data = this.getData();
String[][][] dataDibagi = new String[fold][][];
for (int i = 0; i < fold; i++) { // membagi data sesuai jumlah fold
dataDibagi[i] = getDataByFold(data, fold, i);
System.out.println(dataDibagi[i].length);
}
int bener = 0;
int total = 0;
for (int i = 0; i < fold; i++) {
String[][] dataJoin = null;
for (int j = 0; j < fold; j++) {
if(j != i) { // data lain jadi trainning *digabungkan
dataJoin = dataJoin == null ? dataDibagi[j] :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
joinData(dataJoin, dataDibagi[j]);
}
}
Tree tree = new Tree();
tree.buildTree(dataJoin); // membuat tree dari data trainning
fold ke-i
for (int j = 0; j < dataDibagi[i][0].length; j++) { // untuk
mengetest per row data dalam tree
String hasil = tree.testing(transformData(dataDibagi[i], j));
// proses testing
prediksiTextArea.setText(prediksiTextArea.getText() +
"Hasil = " + hasil + "=?=" + dataDibagi[i][0][j] + "\n");
if(hasil.equals(dataDibagi[i][0][j])) { // mencocokan hasil
test dengan interest data asli
bener++; // menghitung jumlah yang benar
}
total++; // menghitung jumlah total data testing
}
}
prediksiTextArea.setText(prediksiTextArea.getText() +
"Persentase = " + ((float) bener * 100 / total) + "%");// menghitung
presentase
System.out.println("Persentase = " + ((float) bener * 100 / total) +
"%");
}
3. a. Nama kelas : HalamanUtama
b. Nama method :transformData(String[][] data, int idx)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
c. Fungsi method : untuk mengubah data baris menjadi kolom dan
data kolom menjaddi baris.
d. Listing program :
private String[ ] transformData(String[ ][ ] data, int idx) { //
mengubah data row -> colom |colom -> row
String[ ] newData = new String[data.length - 1];
for (int i = 0; i < newData.length; i++) {
newData[i] = data[i + 1][idx];
}
return newData;
}
4. a. Nama kelas : HalamanUtama
b. Nama method :String[][] joinData(String[][] data1, String[][]
data2)
c. Fungsi method : untuk menggabungkan 2 set data.
d. Listing program :
private String[ ][ ] joinData(String[ ][ ] data1, String[ ][ ] data2) { //
menggabungakan 2 set data
String[ ][ ] data = new String[data1.length][data1[0].length +
data2[0].length];
for (int i = 0; i < data1.length; i++) {
for (int j = 0; j < data1[i].length; j++) {
data[i][j] = data1[i][j]; // copy data pertama
}
}
for (int i = 0; i < data2.length; i++) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
for (int j = 0; j < data2[i].length; j++) {
data[i][j + data1[0].length] = data2[i][j]; //copy data kedua
}
}
return data;
}
5. a. Nama kelas : HalamanUtama
b. Nama method :String[][] getDataByFold(String[][] data,int
fold, int foldID)
c. Fungsi method : untuk mengambil data sesuai dengan foldnya.
d. Listing program :
private String[ ][ ] getDataByFold(String[ ][ ] data,int fold, int
foldID) { // mengambil data sesuai dengan foldnya
int sisa = data[0].length % fold;
int jum = data[0].length / 3;
jum += foldID < sisa ? 1 : 0;
String[ ][ ] newData = new String[data.length][jum];
int idx = 0;
for (int i = foldID; i < data[0].length; i+=fold) {//dimulai dari fold
id, dengan increment fold
for (int j = 0; j < newData.length; j++) {
newData[j][idx] = data[j][i];
}
idx++;
}
return newData;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
6. a. Nama kelas : HalamanUtama
b. Nama method :String[][] getData()
c. Fungsi method : untuk mengambil data dari tabel.
d. Listing program :
private String[ ][ ] getData() { // mengambil data dari tabel
DefaultTabelModel model = (DefaultTabelModel)
tabel1.getModel();
String[ ][ ]data = new
String[model.getColumnCount()][model.getRowCount()];
for (int i = 0; i < data.length; i++) { // utk setiap kolom
for (int j = 0; j < data[i].length; j++) { // untuk setiap baris
data[i][j] = model.getValueAt(j, i).toString();
}
}
return data;
}
Package Kelas
1. a. Nama kelas : BacaFile
b. Nama method :String bacaFile(File file)
c. Fungsi method : untuk membaca file yang dimasukkan.
d. Listing program :
public String bacaFile(File file) {
String hasil = null;
if (file.isFile()) {
try {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
BufferedReader read = new BufferedReader(new
FileReader(file)); //menyimpan file ke dalam buffer buat dibaca
int i;
try {
while ((i = read.read()) != -1) {
if (hasil != null) {
hasil = hasil + (char) i + read.readLine() + "\n";
} else {
hasil = (char) i + read.readLine() + "\n";
}
}
} catch (IOException ex) {
ex.getMessage();
}
} catch (FileNotFoundException ex) {
ex.getMessage();
}
}
return hasil;
}
2. a. Nama kelas : CekLogin
b. Nama method :cekLogin(String username, String pswd)
c. Fungsi method : untuk
d. Listing program :
public boolean cekLogin(String username, String pswd) {
boolean hasil = false;
if (!username.equals("") && !pswd.equals("")) {
Login login = new Login();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
hasil = login.login(username, pswd);
if (hasil == true) {
JOptionPane.showMessageDialog(null, "Anda berhasil
Login");
} else {
JOptionPane.showMessageDialog(null, "Login gagal");
}
} else {
JOptionPane.showMessageDialog(null, "Isi data username
dan password terlebih dahulu");
}
return hasil;
}
3. a. Nama kelas : Login
b. Nama method :login(String username, String password)
c. Fungsi method : untuk mencocokkan username dan password.
d. Listing program :
public boolean login(String username, String password) {
boolean hasil = false;
Koneksi connection = new Koneksi();
String sql = "select password from login where username = '" +
username + "' and password= '" + password + "';";
Statement statement;
try {
statement = (Statement)
connection.bukaKoneksi().createStatement();
ResultSet result = statement.executeQuery(sql);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
while(result.next()){
System.out.println("ada");
hasil=true;
}
statement.close();
connection.tutupKoneksi();
} catch (SQLException ex) {
Logger.getLogger(Login.class.getName()).log(Level.SEVERE,
null, ex);
}
return hasil;
}
4. a. Nama kelas : PerhitunganData
b. Nama method :entropy(int[][] data)
c. Fungsi method : untuk setiap nilai entropy.
d. Listing program :
public double[] entropy(int[][] data) {//menghitung nilai entropy
double[] hasil = new double[data.length];
for (int i = 0; i < data.length; i++) {
int[] tempData = data[i];
int tot = 0;
for (int j = 0; j < tempData.length; j++) {
tot += tempData[j]; // mencari jumlah mmasing2 interest
}
hasil[i] = 0;
for (int j = 0; j < tempData.length; j++) { // loop untuk setiap
partisi atribut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
double temp = ((double) tempData[j] / tot) * log2(((double)
tempData[j] / tot)); // menghitung peluang partisi dalam interest
hasil[i] += Double.isInfinite(temp) || Double.isNaN(temp) ?
0 : temp; // menghindari nilai tidak terdefinisi.
}
hasil[i] = -hasil[i];
}
return hasil;
}
5. Nama kelas : PerhitunganData
b. Nama method :gain(double[] entropy, int[][] data)
c. Fungsi method : untuk setiap nilai gain.
d. Listing program :
public double gain(double[] entropy, int[][] data) {//menghitung
nilai gain
if (entropy == null) { // entropynya harus ada
entropy = this.entropy(data);
}
int jum = 0;
int tot[] = new int[data.length];
for (int i = 0; i < data.length; i++) { // menghitung jumlah setiap
partisi atribut
int[] tempData = data[i];
tot[i] = 0;
for (int j = 0; j < tempData.length; j++) {
tot[i] += tempData[j];
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
jum += tot[i];
}
double gain = 0;
for (int i = 0; i < tot.length; i++) { // menghitung semua (peluang *
entropy) masing2 atribute
gain += (double) tot[i] / jum * entropy[i];
}
int[][] interest = new int[1][data[0].length];
for (int i = 0; i < data.length; i++) { // menghitung jumlah interest
dalam masibg2 atribute
for (int j = 0; j < data[i].length; j++) {
interest[0][j] += data[i][j];
}
}
double entropySemua = this.entropy(interest)[0]; // menghitung
entrpy semua
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + "Entropy semua " +
entropySemua + "\n");
// System.out.println("Entropy semua " + entropySemua);
gain = entropySemua - gain; // rumus gain = entropysemua -
jumlah (peluang * entropy)
return gain;
}
6. a. Nama kelas : PerhitunganData
b. Nama method :transfromData(String[][] data)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
c. Fungsi method : untuk mengubah data mentah(tabel) menjadi
data informasi jumlah partisi atribute per interest
d. Listing program :
public int[ ][ ][ ] transfromData(String[ ][ ] data) { // mengubah
data mentah(tabel) menjadi data informasi jumlah partisi atribute
per interest
int hasil[ ] [ ][ ] = new int[data.length - 1][ ][ ];
Map<String, Integer> dicInterest = new HashMap<String,
Integer>();
for (int i = 0; i < data[0].length; i++) { //membuat daftar interest
yang ada
String val = data[0][i];
if (!dicInterest.containsKey(val)) {
dicInterest.put(val, dicInterest.size());
}
}
for (int i = 0; i < hasil.length; i++) { // loop masing2 atribute
Map<String, Integer> dic = new HashMap<String, Integer>();
for (int j = 0; j < data[i + 1].length; j++) { // mebuat daftar partisi
atribute
String val = data[i + 1][j];
if (!dic.containsKey(val)) {
dic.put(val, dic.size());
}
}
int[][] tabelAttribute = new
int[dic.keySet().size()][dicInterest.keySet().size()];
for (int j = 0; j < data[i + 1].length; j++) { // menghitungjumlah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
99
partisi atribute per iterest
tabelAttribute[dic.get(data[i + 1][j])][dicInterest.get(data[0][j])]++;
}
}
hasil[i] = tabelAttribute;
}
return hasil;
}
7. a. Nama kelas : PerhitunganData
b. Nama method :buildTree(String[][] tabel)
c. Fungsi method : untuk membuat pohon keputusan (tree).
d. Listing program :
public Node buildTree(String[][] tabel) {// membuat tree
if (tabel.length < 2) { // merupakan attribute terakhir tidak dapat
diproses
return new Node();
}
int[][][] data = transfromData(tabel);
double[] gain = new double[data.length];
int maxGainIndex = 0;
double[][] entro = new double[data.length][];
for (int i = 0; i < data.length; i++) { // mencari gain atribut yang
maximal
int[][] tempData = data[i];
gain[i] = gain(entro[i] = entropy(tempData), tempData);
maxGainIndex = gain[i] > gain[maxGainIndex] ? i :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100
maxGainIndex;
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + gain[i] + "\n");
// System.out.println(gain[i]);
}
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + "--------------------" + "\n");
// System.out.println("-------------------------------");
String[] unik = unique(tabel[maxGainIndex + 1]); // mencari
partisi variable
Node currNode = new Node();
currNode.setChilds(new Node[unik.length]);
currNode.setIdxSyarat(maxGainIndex);
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + "UNIK" + "\n");
// System.out.println("UNIK");
for (int i = 0; i < unik.length; i++) {
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + unik[i] + "\n");
// System.out.println(unik[i]);
}
for (int i = 0; i < unik.length; i++) {
if (entro[maxGainIndex][i] == 0) { // jika entropy = 0, maka
akan menjadi node terakhir(leaf)
Node nod = new Node();
nod.setHasil(getLeaf(tabel, maxGainIndex + 1, unik[i],
data[maxGainIndex][i].length)); // untuk menentukan interest
nod.setValueSyaratParent(unik[i]);
currNode.getChilds()[i] = nod;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
101
} else { // jika entory !0 maka akan dipecah jadi child
int jum = 0;
for (int j = 0; j < data[maxGainIndex][i].length; j++) {
jum += data[maxGainIndex][i][j];
}
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + maxGainIndex+"-"+unik[i] +"-"+
jum + "\n");
// System.out.println(maxGainIndex+"-"+unik[i] +"-"+ jum);
String[][] newTabel = removeUnik(tabel, maxGainIndex +
1, unik[i], jum); // menghilangkan data yang bukan merupakan
partisi varible yg sedang diproses
for (int j = 0; j < newTabel.length; j++) {
String[] strings = newTabel[j];
for (int k = 0; k < strings.length; k++) {
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + strings[k]);
// System.out.print(strings[k]+" ");
}
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + "" +""+""+ "\n");
//
System.out.println("");System.out.println("");System.out.println("");
}
if (newTabel.length < 2) { // merupakan varibale terakhir
dipakasa mencari leaf
Node nod = new Node();
nod.setHasil(getLeaf(tabel, maxGainIndex + 1, unik[i],
data[maxGainIndex][i].length)); // dicari leaf dengan jumlah paling
banyak atau pertama terbanyak
nod.setValueSyaratParent(unik[i]);
currNode.getChilds()[i] = nod;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
} else { // masih bisa dipecah childnya
Node child = buildTree(newTabel); // rekursive
mengulang proses yang sama utk data yg sudah dipotong
child.setValueSyaratParent(unik[i]);
currNode.getChilds()[i] = child;
}
}
}
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + "-------------" + "\n");
// System.out.println("------------");
return currNode;
}
8. a. Nama kelas : PerhitunganData
b. Nama method :getLeaf(String[][] data, int idx, String unik, int
jumInterest)
c. Fungsi method : untuk mencari leaf (hasil node terakhir pada
pohon keputusan).
d. Listing program :
private String getLeaf(String[][] data, int idx, String unik, int
jumInterest) { // mencari leaf
Map<String, Integer> interest = new HashMap<String, Integer>();
String maxVal = "";
for (int i = 0; i < data[idx].length; i++) { // loop setiap data ut
mencari yang terbanyak atau pertama terbanyak
if (data[idx][i].equals(unik)) {
String val = data[0][i];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
if (interest.containsKey(val)) { // membuat daftar partisi
dengan jumlahnya
interest.put(val, interest.get(val).intValue() + 1); // jika
sudah ada ditambah 1
} else {
interest.put(val, 1); // jika belum ada diintisial 1
}
if (interest.containsKey(maxVal)) { // inisialisasi maxVal
jika sudah akan dibandingkan
if (interest.get(val).intValue() >
interest.get(maxVal).intValue()) { // pengecekan data terbanyak
maxVal = val;
}
} else { // jika belum maka akan dianggap max
maxVal = val;
}
}
}
return maxVal;
}
9. a. Nama kelas : PerhitunganData
b. Nama method :removeUnik(String[][] data, int idx, String
unik, int jum)
c. Fungsi method : untuk menghilangkan atribut partisi unik dan
bukan unik.
d. Listing program :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
public String[][] removeUnik(String[][] data, int idx, String unik,
int jum) { // menghilangkan "attribute partisi unik", dan "partisi yang
bukan unik"
String[][] newData = new String[data.length - 1][jum];
int id = 0;
for (int i = 0; i < data[idx].length; i++) { // baris
if (data[idx][i].equals(unik)) { // ini filter yang unik (selain
partisi unik bisa di copy)
int tempJ = 0; // kolom
for (int j = 0; j < data.length; j++) {
if (idx != j) { // ini filter atribut unik (selain atribut unik
bisa di copy)
newData[tempJ][id]= data[j][i];
tempJ++;
}
}
id++;
}
}
return newData;
}
10. a. Nama kelas : PerhitunganData
b. Nama method :unique(String[] data)
c. Fungsi method : untuk membuat daftar partisi variable yang
unik
d. Listing program :
rivate String[ ] unique(String[ ] data) { // membuat daftar partisi
variable yang unik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
105
ArrayList<String> dic = new ArrayList<String>();
for (int i = 0; i < data.length; i++) {
String val = data[i];
if (!dic.contains(val)) { // jika belum ada, dimasukan dalam
list dianggap unik
dic.add(val);
}
}
String[] unik = new String[dic.size()];
for (int i = 0; i < unik.length; i++) { // mengubah dari arrayylist ke
arrayString
unik[i] = dic.get(i);
}
return unik;
}
}
11. a. Nama kelas : Tree
b. Nama method :printTree()
c. Fungsi method : untuk menampilkan tree (pohon keputusan)
d. Listing program :
public void printTree() { //menampilkan tree
Node curr = root; // mulai dari root
Stack<Node> st = new Stack<Node>();
st.push(curr);
while (!st.empty()) { //selama stacknya masih ada, berarti masih
ada node yang bisa d tampilkan
curr = st.pop();
if (curr.getChilds() == null) { // jika tidak punya child leaf
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
terakhir maka yg ditampikan adalah value dari attribute
(smartphone di tipe)
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + curr.getValueSyaratParent() + "-"
+ curr.getHasil() + "\n");
// System.out.println(curr.getValueSyaratParent() + "-" +
curr.getHasil());
} else { // jika punya child maka yg ditampilkan childnya...
String s = curr.getIdxSyarat() + "-" +
curr.getValueSyaratParent() + " = ";
for (int i = 0; i < curr.getChilds().length; i++) { //
mendapatkan setiap child
st.push(curr.getChilds()[i]); // memasukan tiap child
dalam stack
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() +
curr.getChilds()[i].getValueSyaratParent() + "," + "\n");
// s += curr.getChilds()[i].getValueSyaratParent() + ","; //
nampilin
}
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + s + "\n");
// System.out.println(s);
}
}
}
12. a. Nama kelas : Tree
b. Nama method :removeAtt(String[] dat, int idx)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
107
c. Fungsi method : untuk menghilangkan attribute dalam index
tertentu
d. Listing program :
String[] removeAtt(String[] dat, int idx) { // untuk mengilangkan
attribute dalam index tertentu
String[] datTemp = new String[dat.length - 1];
int id = 0;
for (int i = 0; i < dat.length; i++) { // loop untuk maisng2 attribute
if (i != idx) { // mengopy data attribute selain yang mau
dihapus
datTemp[id] = dat[i];
id++;
}
}
return datTemp;
}
13. a. Nama kelas : Tree
b. Nama method :testing(String[] data)
c. Fungsi method : untuk pengecekkan data terhadap tree
d. Listing program :
public String testing(String[] data) {
String hasil = "";
Node curr = root;
int syart = -1;
int countDeep = 0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
108
while (curr.getChilds() != null) { // mencari node terakhir(tidak
ada child)
boolean ada = false;
for (int i = 0; i < curr.getChilds().length; i++) { // mencari setiap
child
Helper.textAreaActive.setText(
Helper.textAreaActive.getText() + data[curr.getIdxSyarat()]
+"===="+curr.getChilds()[i].getValueSyaratParent() + "\n");
// System.out.println(data[curr.getIdxSyarat()]
+"===="+curr.getChilds()[i].getValueSyaratParent());
if
(data[curr.getIdxSyarat()].equals(curr.getChilds()[i].getValueSyara
tParent())) { //membandingkan value dengan syarat dalam tree
data = removeAtt(data, curr.getIdxSyarat());
curr = curr.getChilds()[i];
ada = true;
break;
}
}
if(!ada) { // jika tidakk ada syarat yang cocok
return "unidentified";
}
}
hasil = curr.getHasil();
return hasil;
}
14. a. Nama kelas : Tree
b. Nama method :saveTree ( )
c. Fungsi method : untuk menyimpan pola dari tree
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
109
d. Listing program :
public void saveTree() {
try {
File file = new File("save.obj");
FileOutputStream fileOutput = new FileOutputStream(file);
ObjectOutputStream objectOutput = new
ObjectOutputStream(fileOutput);
objectOutput.writeObject(root);
objectOutput.close();
fileOutput.close();
} catch (Exception ex) {
Logger.getLogger(Tree.class.getName()).log(Level.SEVERE, null,
ex);
}
}
15. a. Nama kelas : Tree
b. Nama method :loadTree ( )
c. Fungsi method : untuk membaca pola dari tree
d. Listing program :
public boolean loadTree() {
try {
File file = new File("save.obj");
FileInputStream fileInput = new FileInputStream(file);
ObjectInputStream objectInput = new
ObjectInputStream(fileInput);
root = (Node) objectInput.readObject();
objectInput.close();
fileInput.close();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
110
return true;
} catch (Exception ex) {
Logger.getLogger(Tree.class.getName()).log(Level.SEVERE, null,
ex);
}
return false;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
111
LAMPIRAN 2
Di bawah ini adalah hasil pohon keputusan (tree) dengan menggunakan data
sebanyak 375 data.
siang,
pagi,
malam,
2-null =
Jakarta,
Surabaya,
San Mateo,
Bandung,
Medan,
Singapore,
Sidoarjo,
Purwokerto,
Depok,
Batam,
Pontianak,
Mountain View,
Boardman,
Kudus,
Tangerang,
1-malam =
Tangerang-Motorbike
Kudus-Motorbike
Boardman-Motorbike
Mountain View-Motorbike
Pontianak-Motorbike
Batam-Motorbike
Depok-Motorbike
Purwokerto-Smartphone
Sidoarjo-Smartphone
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
112
Singapore-Smartphone
akhir,
awal,
1-Medan =
awal-Motorbike
akhir-Smartphone
Bandung-Smartphone
tengah,
awal,
akhir,
1-San Mateo =
akhir-Motorbike
Smartphone,
0-awal =
,
0-Smartphone =
-Smartphone
Smartphone,
0-tengah =
,
0-Smartphone =
-Motorbike
tengah,
awal,
1-Surabaya =
Smartphone,
Personal computer,
0-awal =
Personal computer-Motorbike
,
0-Smartphone =
-Motorbike
Smartphone,
Personal computer,
0-tengah =
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
113
,
0-Personal computer =
-Smartphone
,
0-Smartphone =
-Motorbike
awal,
tengah,
akhir,
1-Jakarta =
akhir-Motorbike
Smartphone,
Personal computer,
0-tengah =
,
0-Personal computer =
-Motorbike
,
0-Smartphone =
-Motorbike
Personal computer,
Smartphone,
0-awal =
,
0-Smartphone =
-Motorbike
,
0-Personal computer =
-Smartphone
Jakarta,
Surabaya,
Bandung,
Boardman,
Palembang,
Singapore,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
114
San Mateo,
Madiun,
Beijing,
Bogor,
Tangerang,
Yogyakarta,
Surakarta,
Mojokerto,
Saratoga,
Tokyo,
Bekasi,
Providence,
Pontianak,
1-pagi =
Pontianak-Talisman
Providence-Talisman
Bekasi-Motorbike
Tokyo-Motorbike
Saratoga-Motorbike
Mojokerto-Motorbike
Surakarta-Smartphone
Yogyakarta-Smartphone
Tangerang-Smartphone
Bogor-Smartphone
Beijing-Smartphone
Madiun-Smartphone
San Mateo-Smartphone
Singapore-Smartphone
Palembang-Smartphone
Personal computer,
0-Boardman =
tengah,
0-Personal computer =
,
0-tengah =
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
115
-Fashion
Bandung-Fashion
Surabaya-Fashion
tengah,
awal,
akhir,
1-Jakarta =
akhir-Smartphone
Smartphone,
0-awal =
,
0-Smartphone =
-Smartphone
Smartphone,
Personal computer,
Tabelt,
0-tengah =
Tabelt-Talisman
Personal computer-Fashion
Smartphone-Fashion
Surabaya,
Jakarta,
Denpasar,
Mountain View,
Bandung,
Tejgaon,
Yogyakarta,
London,
Samarinda,
Sleman,
Palembang,
Singapore,
Bogor,
San Mateo,
Boardman,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
116
Pekanbaru,
Kudus,
Sidoarjo,
Bantul,
Medan,
Makassar,
Beijing,
Depok,
Dki Jakarta,
Mega,
1-siang =
Mega-Talisman
Dki Jakarta-Talisman
Depok-Smartphone
tengah,
akhir,
1-Beijing =
akhir-Talisman
tengah-Smartphone
Makassar-Smartphone
Smartphone,
Personal computer,
0-Medan =
Personal computer-Talisman
Smartphone-Smartphone
Bantul-Smartphone
Personal computer,
Smartphone,
0-Sidoarjo =
Smartphone-Talisman
Personal computer-Smartphone
Personal computer,
Smartphone,
0-Kudus =
Smartphone-Talisman
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
117
Personal computer-Smartphone
Personal computer,
0-Pekanbaru =
tengah,
0-Personal computer =
,
0-tengah =
-Smartphone
Boardman-Fashion
Smartphone,
0-San Mateo =
tengah,
0-Smartphone =
,
0-tengah =
-Fashion
Bogor-Fashion
awal,
akhir,
1-Singapore =
akhir-Smartphone
Personal computer,
0-awal =
,
0-Personal computer =
-Fashion
Personal computer,
Tabelt,
0-Palembang =
Tabelt-Talisman
Personal computer-Fashion
Sleman-Fashion
Samarinda-Fashion
London-Fashion
Yogyakarta-Fashion
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
118
Tejgaon-Fashion
tengah,
akhir,
awal,
1-Bandung =
Personal computer,
Smartphone,
0-awal =
Smartphone-Talisman
,
0-Personal computer =
-Talisman
Personal computer,
0-akhir =
,
0-Personal computer =
-Smartphone
Smartphone,
0-tengah =
,
0-Smartphone =
-Talisman
tengah,
awal,
akhir,
1-Mountain View =
akhir-Fashion
awal-Fashion
Smartphone,
0-tengah =
,
0-Smartphone =
-Fashion
Denpasar-Fashion
Smartphone,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
119
Personal computer,
Tabelt,
0-Jakarta =
Tabelt-Smartphone
tengah,
akhir,
awal,
0-Personal computer =
,
0-awal =
-Fashion
,
0-akhir =
-Fashion
,
0-tengah =
-Fashion
awal,
tengah,
akhir,
0-Smartphone =
,
0-akhir =
-Fashion
,
0-tengah =
-Talisman
,
0-awal =
-Fashion
awal,
akhir,
tengah,
1-Surabaya =
Smartphone,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
120
Personal computer,
0-tengah =
Personal computer-Smartphone
,
0-Smartphone =
-Talisman
Personal computer,
Smartphone,
0-akhir =
Smartphone-Talisman
,
0-Personal computer =
-Fashion
Personal computer,
Smartphone,
0-awal =
Smartphone-Smartphone
Personal computer-Fashion
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
121
LAMPIRAN 3
Rule untuk interestFashion
Rule 1 : Interest Fashion = if waktu = pagi^bulan = tengah^type = Personal
Computer^city = Boardman
Rule 2 : Interest Fashion = if waktu = pagi^bulan = tengah^type = Personal
Computer^city = Jakarta
Rule 3 : Interest Fashion = if waktu = pagi^bulan = tengah^type = Smartphone
Rule 4 : Interest Fashion = if waktu = siang^city = Boardman
Rule 5 : Interest Fashion = if waktu = siang^city = Bogor
Rule 6 : Interest Fashion = if waktu = siang^city = Denpasar
Rule 7 : Interest Fashion = if waktu = siang^city = Jakarta^type = Personal
Computer^bulan = akhir
Rule 8 : Interest Fashion = if waktu = siang^city = Jakarta^type = Personal
Computer^bulan = awal
Rule 9 : Interest Fashion = if waktu = siang^city = Jakarta^type = Personal
Computer^bulan = tengah
Rule 10 : Interest Fashion = if waktu = siang^city = Jakarta^type =
Smartphone^bulan = akhir
Rule 11 : Interest Fashion = if waktu = siang^city = Jakarta^type =
Smartphone^bulan = awal
Rule 12 : Interest Fashion = if waktu = siang^city = London
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
122
Rule 13 : Interest Fashion = if waktu = siang^city = Mountain View^bulan = akhir
Rule 14 : Interest Fashion = if waktu = siang^city = Mountain View^bulan = awal
Rule 15 : Interest Fashion = if waktu = siang^city = Mountain View^bulan =
tengah^type = Smartphone
Rule 16 : Interest Fashion = if waktu = siang^city = Palembang^type = Personal
Computer
Rule 17 : Interest Fashion = if waktu = siang^city = Samarinda
Rule 18 : Interest Fashion = if waktu = siang^city = San Mateo^type =
Smartphone^bulan = tengah
Rule 19 : Interest Fashion = if waktu = siang^city = Singapore^bulan = awal^type =
Personal Computer
Rule 20 : Interest Fashion = if waktu = siang^city = Sleman
Rule 21 : Interest Fashion = if waktu = siang^city = Surabaya^type = Personal
Computer^bulan = akhir
Rule 22 : Interest Fashion = if waktu = siang^city = Surabaya^type = Personal
Computer^bulan = awal
Rule 23 : Interest Fashion = if wakktu = siang^city = Tejgaon
Rule 24 : Interest Fashion = if wakktu = siang^city = Yogyakarta
Rule untuk interestSmartphone
Rule 1 : Interest Smartphone = if waktu = malam^city = Bandung
Rule 2 : Interest Smartphone = if waktu = malam^city = Jakarta^bulan = awal^type =
Personal Computer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
123
Rule 3 : Interest Smartphone = if waktu = malam^city = Medan^bulan =akhir Rule 4 :
Interest Smartphone = if waktu = malam^city = Purwokerto
Rule 5 : Interest Smartphone = if waktu = malam^city = San Mateo^bulan =
awal^type = Smartphone
Rule 6 : Interest Smartphone = if waktu = malam^city = Sidoarjo
Rule 7 : Interest Smartphone = if waktu = malam^city = Singapore
Rule 8 : Interest Smartphone = if waktu = malam^city = Surabaya^type = Personal
Computer^bulan = tengah
Rule 9 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = Beijing
Rule 10 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = Bogor
Rule 11 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = Jakarta
Rule 12 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = Madiun
Rule 13 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = Palembang
Rule 14 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = San Mateo
Rule 15 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = Singapore
Rule 16 : Interest Smartphone = if waktu = pagi^bulan = akhir^city = Tangerang
Rule 17 : Interest Smartphone = if waktu = pagi^bulan = awal^city = Jakarta^type =
Smartphone
Rule 18 : Interest Smartphone = if waktu = pagi^bulan = awal^city = Singapore
Rule 19 : Interest Smartphone = if waktu = pagi^bulan = awal^city = Yogyakarta
Rule 20 : Interest Smartphone = if waktu = pagi^bulan = tengah^type = Tabelt^city =
Surakarta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
124
Rule 21 : Interest Smartphone = if waktu = siang^city = Bandung^type = Personal
Computer^bulan = akhir
Rule 22 : Interest Smartphone = if waktu = siang^city = Depok
Rule 23 : Interest Smartphone = if waktu = siang^city = Jakarta^type = Tabelt
Rule 24 : Interest Smartphone = if waktu = siang^city = Kudus^type = Personal
Computer
Rule 25 : Interest Smartphone = if waktu = siang^city = Makasar
Rule 26 : Interest Smartphone = if waktu = siang^city = Medan^type = Smartphone
Rule 27 : Interest Smartphone = if waktu = siang^city = Pekanbaru^type = Personal
Computer^bulan = tengah
Rule 28 : Interest Smartphone = if waktu = siang^city = Sidoarjo^type = Personal
Computer
Rule 29 : Interest Smartphone = if waktu = siang^city = Singapore^bulan = akhir
Rule 30 : Interest Smartphone = if waktu = siang^city = Surabaya^type = Personal
Computer^bulan = tengah
Rule 31 : Interest Smartphone = if waktu = siang^city = Surabaya^type =
Smartphone^bulan = awal
Rule untuk interestMotorbike
Rule 1 : Interest Motorbike = if waktu = malam^city = Batam
Rule 2 : Interest Motorbike = if waktu = malam^city = Boardman
Rule 3 : Interest Motorbike = if waktu = malam^city = Depok
Rule 4 : Interest Motorbike = if waktu = malam^city = Jakarta^bulan = akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
125
Rule 5 : Interest Motorbike = if waktu = malam^city = Jakarta^bulan = awal^type =
Smartphone
Rule 6 : Interest Motorbike = if waktu = malam^city = Jakarta^bulan = tengah^type =
Personal Computer
Rule 7 : Interest Motorbike = if waktu = malam^city = Jakarta^bulan = tengah^type =
Smartphone
Rule 8 : Interest Motorbike = if waktu = malam^city = Kudus
Rule 9 : Interest Motorbike = if waktu = malam^city = Medan^bulan = awal Rule 10 :
Interest Motorbike = if waktu = malam^city = Mountain View
Rule 11 : Interest Motorbike = if waktu = malam^city = Pontianak
Rule 12 : Interest Motorbike = if waktu = malam^city = San Mateo^bulan = akhir
Rule 13 : Interest Motorbike = if waktu = malam^city = San Mateo^bulan =
tengah^type = Smartphone
Rule 14 : Interest Motorbike = if waktu = malam^city = Surabaya^type = Personal
Computer^bulan = awal
Rule 15 : Interest Motorbike = if waktu = malam^city = Surabaya^type =
Smartphone^bulan = awal
Rule 16 : Interest Motorbike = if waktu = malam^city = Surabaya^type =
Smaartphone^bulan = tengah
Rule 17 : Interest Motorbike = if waktu = malam^city = Tangerang
Rule 18 : Interest Motorbike = if waktu = pagi^bulan = akhir^city = Bekasi
Rule 19 : Interest Motorbike = if waktu = pagi^bulan = awal^city = Mojokerto
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
126
Rule 20 : Interest Motorbike = if waktu = pagi^bulan = awal^city = Saragota
Rule 21 : Interest Motorbike = if waktu = pagi^bulan = awal^city = Tokyo
Rule untuk interestTalisman
Rule 1 : Interest Talisman = if waktu = pagi^bulan = awal^city = Pontianak
Rule 2 : Interest Talisman = if waktu = pagi^bulan = tengah^type = Personal
Computer^city = Providence
Rule 3 : Interest Talisman = if waktu = pagi^bulan = tengah^type = Tabelt^city =
Jakarta
Rule 4 : Interest Talisman = if waktu = siang^city = Bandung^type = Personal
Computer^bulan = awal
Rule 5 : Interest Talisman = if waktu = siang^city = Bandung^type =
Smartphone^bulan = awal
Rule 6 : Interest Talisman = if waktu = siang^city = Bandung^type =
Smartphone^bulan = tengah
Rule 7 : Interest Talisman = if waktu = siang^city = Dki Jakarta
Rule 8 : Interest Talisman = if waktu = siang^city = Jakarta^type =
Smartphone^bulan = tengah
Rule 9 : Interest Talisman = if waktu = siang^city = Kudus^type = Smartphone
Rule 10 : Interest Talisman = if waktu = siang^city = Medan^type = Personal
Computer
Rule 11 : Interest Talisman = if waktu = siang^city = Mega
Rule 12 : Interest Talisman = if waktu = siang^city = Palembang^type = Tabelt
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
127
Rule 13 : Interest Talisman = if waktu = siang^city = Sidoarjo^type = Smartphone
Rule 14 : Interest Talisman = if waktu = siang^city = Surabaya^type =
Smartphone^bulan = akhir
Rule15 : Interest Talisman = if waktu = siang^city = Surabaya^type =
Smartphone^bulan = tengah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI