PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
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
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSETUJUAN
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PENGESAHAN
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 %.
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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% .
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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)
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xvii
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 Classification
Atribute set (x)
Model
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
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 1 2 3 4
Nama atribut took timed_out | total
Keterangan
Nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
5 6 7 8 9 10 11
successful failed max_score || _index _type _id
12
_score
13 14 15 16 17 18 19
_source__audience__interest _source__audience__econo my _source__audience__age _source__banner_id _source__device__family _source__device__name _source__device__type
20 21
_source__filter__category _source__filter__location
22 23
_source__filter__period _source__filter__price
Atribut ini QY62awHOTtGlVurnGd_On menyimpan w identitas unik dari pelanggan Atribut menyimpan kategori pencarian
ini
Fashion, Smartphone, Motorbike, Talisman
Atribut ini Personal computer, menyimpan data Smartphone, Tabelt perangkat yang digunakan untuk pencarian Atribut ini menyimpan data lokasi dimana sedang melakukan pencarian
Indonesia
Atribut ini 100000000:250000000, menyimpan data 250000000:500000000, harga yang dicari 100000:1000000, 0:100000, dll
24
_source__filter__site
Atribut ini kaskus.co.id, menyimpan data tokobagus.com,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
website dituju
25
_source__ip
26 _source__location__country_ code
27 28
_source__location__country_ name _source__location__region
29
_source__location__city
30
_source__location__latlong0 01
31
_source__location__latlong0 02
32
_source__page
33
_source__query
34
_source__profile_id
yang marketnesia.com, bukalapak.com, tokopedia.com, olx.co.id, berniaga.com,
Atribut ini 116.68.250.254,203.176.18 menyimpan data 1.33, 202.67.40.50, ip user 36.71.41.243, dll Atribut ini menyimpan data ID, EU,US, BD, SG, A1, A2, kode negara GB, CN, MO, dll Atribut ini Indonesia, United State, menyimpan data Europe, China, Anonymous nama negara Proxy, Singapore, Bangladesh, United Kingdom, Macau, dll Atribut ini menyimpan data region negara Atribut ini menyimpan data nama kota
2, 4, 8, CA, 30, OR, 81, 10, 14, 32, 7, 11, 40, 26, 38, 22, 37, VA, dll Surabaya, Jakarta, Denpaasar, Mountain View, Bandung, Tejgaon, Beijing, dll
Atribut ini menyimpan data titik koordinat Atribut ini menyimpan data titik kooerdinat Atribut ini menyimpan data halaman yang dituju Atribut ini menyimpan data query yang dimasukkan oleh user Atribut ini menyimpan data profile_id
112.7508, 106.4989, 120, -97, dll -7.2492, -6.3433 -5,38, dll 1,2,3,4,5,6,7,8,9
Lipstick, jam tangan, velg, hp android, batu bacan, dll
54ae4a4c2c3ee4.74521373 , 54aed5fecab629.31559420,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
dll 35 36
_source__session_id _source__created
37
_source__os__family
38
_source__os__name
39
_source__user_agent__famil y
40 41
_source__user_agent__type _source__user_agent__user_ agent _source__filter__location_source__filter__category-
42 43
Atribut menyimpan waktu Atribut menyimpan os_family Atribut menyimpan os_name Atribut menyimpan browser digunakan user
ini data
1420709262000, dll
ini data
Windows, Ios, Android
ini data
Browser, Mobile browser
ini Chrome, Chrome mobile, data Firefox, Opera mini, dll yang oleh
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
1-10
awal
11-20
tengah
21-31
akhir
bulan
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
Smartphone
Smartphone
San Mateo
malam
akhir
Smartphone
Personal computer
Surabaya
malam
akhir
V Motorbike
Tabelt
Depok
malam
awal
Motorbike a
Tabelt
Depok
malam
awal
Motorbike
Tabelt
Depok
malam
awal
Motorbike
Smartphone
Jakarta
malam
awal
i Motorbike
Smartphone
Jakarta
malam
tengah
Motorbike a
Smartphone
Jakarta
malam
tengah
Motorbike
Smartphone
Jakarta
malam
tengah
Motorbike
Smartphone
Jakarta
malam
akhir
e Motorbike
Smartphone
Jakarta
malam
akhir
Motorbike l
Smartphone
Jakarta
malam
akhir
Talisman
Personal computer
Surabaya
pagi
awal
Talisman
Personal computer
Jakarta
pagi
awal
o Talisman
Personal computer
Jakarta
pagi
awal
Talisman u
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
r
b
t
V
A Variabel input : aturan yang ditemukan dalam pencarian pola klasifikasi pencarian situs website.
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
Iterasi Buat Simpul
Pohon keputusan
Generate Rule
Selesai
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
Pre- Proses
Masukkan Data
Modelling
Pengujian
Logout
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
:
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.
Nama use case : Masukkan data Aktor
: Pengguna
Deskripsi
: Use case ini berfungsi untuk memasukkan dan menampilkan data yang akan diolah oleh sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
Skenario
:
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.
Nama use case : Modelling Aktor
: Sistem
Deskripsi
: Use case ini berfungsi untuk melakukan perhitungan data dan
membangun tree.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
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.
Nama use case: Pengujian Aktor
: Pengguna
Deskripsi
: Use case ini berfungsi untuk melakukan pengujian data.
Skenario
:
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
4. Pengguna menekan tombol Pengujian. 5. Sistem menampilkan hasil pengujian data.
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
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 Interest
Keterangan
Jumlah dalam kategori
Total
Fashion
Smartphone
Motorbike
Talisman
10
10
10
10
40
Computer
7
4
0
5
17
Smartphone
3
4
7
5
19
Tabelt
0
2
3
0
5
Surabaya
1
1
0
4
6
Jakarta
6
5
7
3
21
Denpasar
2
0
0
3
5
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
pagi
3
0
0
6
9
siang
7
8
0
4
19
malam
0
2
10
0
12
TOTAL
Personal type
city
Mountain
waktu
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 log 2 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 1
Total
Jumlah
F
S
M
T
Entropy
40
10
10
10
10
2
type
Gain
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
0
2
3
0
0.969
5
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
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
Mountain
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 siang
malam pagi
?
?
?
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 2
Total
Jumlah
F
S
M
T
Entropy
12
0
2
10
0
0.64
type
Gain
0.278 Personal computer
1
0
1
0
0
0
Smartphone 8
0
1
7
0
0.543
Tabelt
0
0
3
0
0
3
city
0.64 Surabaya
1
0
1
0
0
0
Jakarta
7
0
0
7
0
0
Denpasar
0
0
0
0
0
0
View
0
0
0
0
0
0
Pekanbaru
0
0
0
0
0
0
Mountain
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 siang
?
pagi ?
malam
city
San Mateo
Smartphone
Surabaya
Jakarta Depok
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 3
Total
Jumlah
F
S
M
T
Entropy
9
3
0
0
6
0.918
type
Gain
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
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
Mountain
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 siang
malam
pagi
?
city
city
San Mateo
Jakarta
Surabaya
Smartphone
Depok
Smartphone Motorbike
Motorbike
Surabaya Jakarta Talisman
Denpasar
?
Talisman
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 4
Total
Jumlah F
S
M
T
Entropy
5
0
0
2
0.97
3
type
Gain
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
tengah
0
0
0
0
0
akhir
0
0
0
0
0
0.97
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 siang
?
malam
pagi city
city
San Mateo
Smartphone
Surabaya
Jakarta Depok
Smartphone
Motorbike
Motorbike
Surabaya Jakarta Talisman
Denpasar
type
Talisman
Personal Computer bulan awal
Fashion
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 5
Total
Jumlah
F
S
M
T
Entropy
19
7
8
0
4
1.517
type
Gain
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
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
Mountain
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 siang
bulan awal tengah ?
?
malam
pagi city
city
akhir
San Mateo
Smartphone
?
Surabaya
Jakarta Depok
Smartphone Motorbike
Motorbike
Surabaya Jakarta Talisman
Denpasar
type
Talisman
Personal Computer bulan awal
Fashion
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 6
Total
Jumlah
F
S
M
T
Entropy
10
7
3
0
0
0.876
type
Gain
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
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
Mountain
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 siang
bulan awal tengah type
?
malam
pagi city
city
akhir
Depok
San Mateo
Surabaya
Smartpho ne
Smartpho ne
?
Jakarta
Motorbi ke
Motorbi ke
Surabaya
Personal Computer
Jakarta Smartphone
Fashion
city
Denpasar
Tablet Talisman
Fashion
type
Talisman
Personal Computer bulan awal
Fashion
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
4
3
1
0
0
0.821
Gain
Tota 7
l 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
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
Mountain
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 siang
bulan awal tengah type
?
city
city
akhir
San Mateo
Smartpho ne
?
Depok Surabaya
Smartpho ne
Motorbi ke
Surabaya
Personal Computer
Jakarta Smartphone
Fashion
malam
pagi
city
Jakarta
Denpasar
Tablet Fashion
Talisman
type
Talisman
Personal Computer bulan
Fashion awal
Fashion
Gambar 3. 9 Pembentukan pohon untuk bulan awal dan type Smartphone
Jakarta
Motorbi ke
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
8
0
2
3
3
1,562
Gain
Tota 8
l 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
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
Mountain
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 siang
bulan awal tengah type
Fash ion
city
Fash ion
Surabaya
Smartp hone
city
city
akhir
city
Personal Smartphone Computer Tablet
malam
pagi
Smartp hone
? Surabaya
Jakarta
Denpasar Jakarta Smartp hone
Depok
San Mateo
Surabaya
Smartp hone
Motor bike
Motor bike
Denpasar
Talis man
Talisman
type
Talisman
Personal Computer
Jakarta
bulan
Fashion
awal
Fashion
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 9
Total
Jumlah
F
S
M
T
Entropy
5
0
3
0
2
0.97
type
Gain
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
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
Mountain
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 siang
bulan awal
city
Personal Smartphone Computer Tablet Fash ion
city
Jakarta Fashion
Fash ion
Surabaya
Smartp hone
city
city
akhir
tengah type
malam
pagi
San Mateo
Smartp hone
type Surabaya
Jakarta
Denpasar Jakarta Smartp hone
Smartp hone
Denpasar
Talis man Personal Computer
Depok Surabaya
Talisman
Smartphone
type
Talisman
Personal Computer bulan
Smartphone
Talisman awal
Fashion
Gambar 3. 11 Pembentukkan pohon untuk cabang akhir
Motor bike
Jakarta
Motor bike
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 1
interest
Nilai
Atribut interest menyimpan Fashion,
Smartphone,
Motorbike,
hasil kategori dari pencarian Talisman yaitu; Fashion, Smartphone, Motorbike dan Talisman 2
type
Atribut
type
menyimpan Personal computer, Smartphone, Tablet
data type yang digunakan sebagai alat pencarian 3
city
Atribut data
city
nama
menyimpan Surabaya, Jakarta, Denpasar, Mountain kota
dimana View, Pekanbaru, Kudus, San Mateo,
sedang dilakukan pencarian 4
waktu
Depok
Atribut waktu menyimpan pagi, siang, malam data waktu yang sedang melakukan pencarian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
5
bulan
Atribut bulan menyimpan awal, tengah, akhir data bulan masuk dalam urutan ; awal, tengah, akhir
3.7.2 Perancangan antar muka dengan user 3.7.2.1 Halaman Login Login
Username : Password :
Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
3.7.2.2 Halaman Utama
Home
Data
Prediksi
Bantuan
judul Logo USD
Fakultas Sains & Teknologi Universitas Sanata Dharma Yogyakarta 2016
3.7.2.3 Halaman Data
Home
Data
Prediksi
Bantuan
Hasil
Proses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
3.7.2.4 Halaman Prediksi (Pengujian)
Home
Data
Prediksi
Bantuan
Hasil
Pengujian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
3.8 Diagram Kelas 3.8.1 Diagram Kelas Use case Login FormLogin
FormLogin ( ) : <
> TombolLoginActionPerformed void
CekLogin
+ cekLogin (String, String) : boolean :
HalamanUtama -
fashionField : Object st : Statement rs : Resultset koneksi : Koneksi file : File dt : String [ ] [ ] tabelModel : DefaultTabelModel
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 ( ) : <> + 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 ( ) : <> + 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
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
Gambar 3. 13 Diagram Kelas Use Case Masukkan Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
3.8.3 Diagram Kelas Use Case Pengujian
Tree -
root : Node
HalamanUtama - fashionField : Object - st : Statement - rs : Resultset - koneksi : Koneksi - file : File - dt : String [ ] [ ] - tabelModel : DefaultTabelModel + HalamanUtama ( ) : <> + 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
+ buildTree(String tabel) : void + printTree() : void + testing(String data) : void + removeAtt(String, int) : String + saveTree ( ) : void + loadTree ( ) :boolean
Gambar 3. 14 Diagram Kelas Pengujian
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 Fashion Fashion Fashion Motorbike Motorbike Motorbike Smartphone Smartphone Smartphone Talisman Talisman Talisman
_source_device _type Personal computer Smartphone Personal computer Tabelt Smartphone Smartphone Smartphone Tabelt Tabelt Smartphone Smartphone Personal computer
_source _location _city Surabaya Jakarta Surabaya Depok Jakarta Jakarta Jakarta Jakarta Jakarta Surabaya Jakarta Jakarta
_source _created 1.42071E+12 1.42071E+12 1.42071E+12 1.42074E+12 1.42074E+12 1.42074E+12 1.42071E+12 1.42071E+12 1.42071E+12 1.4207E+12 1.42071E+12 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 _interest Fashion Fashion Fashion
_source_device _type Personal computer Smartphone Personal computer
_source _location _city
_source _created
Surabaya
1.42E+12
Jakarta
1.42E+12
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 _interest
_source_device _type
_source _location _city
_source _created
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 _interest
_source_device _type
_source _location _city
_source _created
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 _interest
_source_device _type
Talisman
Smartphone
Surabaya
1.42E+12
Talisman
Smartphone Personal computer
Jakarta
1.42E+12
Jakarta
1.42E+12
Talisman
_source _location _city
_source _created
Contoh file yang telah digabungkan dari 4 kategori seperti pada Tabel 4.6. Tabel 4. 6 Contoh file yang telah digabungkan
_source__audience _interest Fashion Fashion Fashion Motorbike Motorbike Motorbike Smartphone Smartphone Smartphone Talisman Talisman Talisman
_source_device _type Personal computer Smartphone Personal computer Tabelt Smartphone Smartphone Smartphone Tabelt Tabelt Smartphone Smartphone Personal computer
_source _location _city Surabaya Jakarta Surabaya Depok Jakarta Jakarta Jakarta Jakarta Jakarta Surabaya Jakarta Jakarta
_source _created 1.42071E+12 1.42071E+12 1.42071E+12 1.42074E+12 1.42074E+12 1.42074E+12 1.42071E+12 1.42071E+12 1.42071E+12 1.4207E+12 1.42071E+12 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Nama atribut took timed_out | total successful failed max_score || _index _type _id _score _source__audience__interest _source__audience__economy _source__audience__age _source__banner_id _source__device__family _source__device__name _source__device__type _source__filter__category _source__filter__location _source__filter__period _source__filter__price _source__filter__site _source__ip _source__location__country_code
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
_source__location__country_name _source__location__region _source__location__city _source__location__latlong001 _source__location__latlong002 _source__page _source__query _source__profile_id _source__session_id _source__created _source__os__family _source__os__name _source__user_agent__family _source__user_agent__type _source__user_agent__user_agent _source__filter__location_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 _interest _type
_source _location _city
_source _created
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 1.42071E+12 1.42071E+12 1.42071E+12 1.42071E+12 1.42071E+12
Hasil1 1420709258 1420709262 1420709283 1420709488 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
_source__created 1.42071E+12 1.42071E+12 1.42071E+12 1.42071E+12 1.42071E+12
Hasil1 1420709258 1420709262 1420709283 1420709488 1420709579
Hasil 2 1/8/15 9:27 1/8/15 9:27 1/8/15 9:28 1/8/15 9:31 1/8/15 9:32
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 :
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
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; }
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
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 Smartphone Jakarta, Denpasar, Surabaya, 1-tengah = Surabaya-Talisman
computer-
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
pred. Fashion pred. Smartpho ne pred. Motorbik e pred. Talisman jumlah
true Fashio n
true Smartpho ne
6
1
1
2
true Motorbi ke
true Talism an
2
unidentifi ed
1
1
jumla h data benar
jumla h data salah
6
7
2
10
2
11
2
10
12
38
3
1
7
1
2
2
2
6
0
0
1
2
9
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
pred. Fashion pred. Smartpho ne pred. Motorbik e
true Fashio n
true Smartpho ne
4
3
0
1
2
2
true Motorbi ke 1
0
2
true Talism an
uniden tified
1
4
1
1
jumlah data benar
jumla h data salah 4
9
2
10
2
11
9
7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
pred. Talisman jumlah
2
0
0
1
9
1
11
9
41
jumla h data benar
jumla h data salah
4
9
2
10
2
11
2
10
10
40
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
pred. Fashion pred. Smartpho ne pred. Motorbik e pred. Talisman jumlah
true Fashio n
true Smartpho ne
4
3
0
2
true Motorbi ke 0
0
true Talism an 0
1
unidentifi ed
6
9
2
4
2
0
5
0
2
1
2
7
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
pred. Fashion pred. Smartpho ne pred. Motorbik e pred. Talisman jumlah
true Fashio n
true Smartpho ne
4
2
1
1
true Motorbi ke
true Talism an
0
unidentifi ed
0
1
7
0
jumla h data benar
jumla h data salah
4
9
1
11
3
10
2
10
10
40
jumla h data benar
jumla h data salah
5
8
3
9
9
1
4
3
0
5
0
2
0
2
8
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
pred. Fashion pred. Smartpho ne
true Fashio n
true Smartpho ne
5
1
1
3
true Motorbi ke 0
3
true Talism an 1
0
unidentifi ed
6
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
pred. Motorbik e pred. Talisman jumlah
1
5
2
0
5
1
2
0
2
7
2
11
2
10
12
38
jumla h data benar
jumla h data salah
3
9
2
11
2
10
1
12
8
42
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
pred. Fashion pred. Smartpho ne pred. Motorbik e pred. Talisman jumlah
true Fashio n
true Smartpho ne
3
2
1
2
true Motorbi ke
true Talism an
2
5
1
0
unidentifi ed
4
5
1
3
2
0
6
1
5
1
1
5
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
pred. Fashion pred. Smartpho ne pred. Motorbik e pred. Talisman jumlah
true Fashio n
true Smartpho ne
1
3
2
3
true Motorbi ke
true Talism an
2
unidentifi ed
2
4
4
0
jumla h data benar
jumla h data salah
1
11
3
10
2
10
2
11
8
42
jumla h data benar
jumla h data salah
3
9
3
10
4
1
3
2
0
6
2
2
1
2
6
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
pred. Fashion pred. Smartpho ne
true Fashio n
true Smartpho ne
3
2
1
3
true Motorbi ke 2
0
true Talism an 1
1
unidentifi ed
4
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
pred. Motorbik e pred. Talisman jumlah
1
4
2
0
5
3
3
2
0
5
2
10
0
13
8
42
jumla h data benar
jumla h data salah
5
7
1
12
1
11
3
10
10
40
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
pred. Fashion pred. Smartpho ne pred. Motorbik e pred. Talisman jumlah
true Fashio n
true Smartpho ne
5
1
3
1
true Motorbi ke
true Talism an
3
1
1
1
unidentifi ed
2
7
1
2
1
0
8
0
1
3
3
6
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
pred. Fashion pred. Smartpho ne pred. Motorbik e pred. Talisman jumlah
true Fashio n
true Smartpho ne
4
1
3
1
true Motorbi ke
true Talism an
3
2
1
1
unidentifi ed
3
1
1
2
7
0
1
1
2
9
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
Pengujian 1 Pengujian 2 Pengujian 3 Pengujian 4 Pengujian 5 Pengujian 6 Pengujian 7 Pengujian 8 Pengujian 9
jumla h data salah
4
8
1
12
1
11
2
11
8
42
6
1
Hasil Akurasi 24% 18% 20% 20% 24% 16% 16% 16% 20%
jumla h data benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
Pengujian 10 Rata - rata
16% 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 b. Nama method
: HalamanUtama :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
=
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 {
new
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
=
connection.bukaKoneksi().createStatement(); ResultSet result = statement.executeQuery(sql);
(Statement)
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 b. Nama method
: PerhitunganData :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 b. Nama method
: PerhitunganData :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 st = new Stack(); 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 b. Nama method
: Tree :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
ObjectInputStream(fileInput); root = (Node) objectInput.readObject(); objectInput.close(); fileInput.close();
=
new
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 110
return true; } catch (Exception ex) { Logger.getLogger(Tree.class.getName()).log(Level.SEVERE, ex); } return false; }
null,
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