i
KLASIFIKASI USER YANG BERPOTENSI MELAKUKAN PEMBELIAN
BARANG ONLINE BERDASARKAN DATA WEB CLICKSTREAM
MENGGUNAKAN ALGORITMA WEIGHTED K-NEAREST NEIGHBOR
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Informatika
Oleh :
Valentina Yohana Senduk
165314121
PROGRAM STUDI INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
CLASSIFICATION OF USER THAT HAS THE POTENTIAL TO MAKE
ONLINE PURCHASE ACCORDING TO WEB CLICKSTREAM DATA
USING WEIGHTED K-NEAREST NEIGHBOR ALGORITHM
THESIS
Present as Partial Fulfillment of the Requirement
to Obtain Sarjana Komputer Degree
in Informatics Study Program
By :
Valentina Yohana Senduk
165314121
INFORMATICS STUDY PROGRAM
DEPARTMENT OF INFORMATICS
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN
“Kasih itu sabar; kasih itu murah hati; ia tidak cemburu. Ia tidak
memegahkan diri dan tidak sombong.”
(1 Korintus 13:4)
Skripsi ini saya persembahkan untuk :
Mama & Papa, yang selalu mengajarkan bagaimana menjadi manusia yang utuh
Aurelia, Karmela, Mariano, Zeptian, Oma dan Opa, keluarga yang bertumbuh
bersama saya
Toiletterz dan teman-teman yang saya temui yang telah berbagi pengalaman &
perspektif selama 4 tahun saya berkuliah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
ABSTRAK
Perdagangan elektronik merupakan pertukaran yang menggunakan
teknologi sebagai perantara antara berbagai pihak (individu atau organisasi) serta
kegiatan pertukaran intra atau antar organisasi berbasis elektronik. Antar muka
yang paling sering digunakan adalah web browser. Perilaku pengunjung di situs
web dapat dianalisis menggunakan algoritma klasifikasi terhadap data urutan
kunjungan halaman situs atau biasa dikenal sebagai web clickstream. Pada
penelitian ini digunakan algoritma weighted k-nearest neighbor untuk
mengklasifikasikan user yang berpotensi melakukan pembelian barang online
berdasarkan data publik web clickstream sebuah e-commerce. Metode weighted k-
nearest neighbor melakukan klasifikasi berdasarkan label yang memiliki jumlah
bobot jarak terbesar pada k-tetangga terdekat dari data yang diklasifikasi.
Keluaran dari sistem ini adalah klasifikasi user yang berpotensi melakukan
pembelian barang online dan mana yang tidak. Peneliti melakukan percobaan
seleksi atribut dengan variasi k dan variasi jumlah atribut berdasarkan hasil
perhitungan information gain dan memperoleh 2 atribut yang paling berpengaruh
dalam klasifikasi yakni Page Values dan Exit Rates. Pengujian untuk mencari k
yang paling optimal dilakukan pada 7.632 data menggunakan 3-fold cross
validation dan menghasilkan akurasi tertinggi yakni 86.2028% pada k = 65.
Kata kunci : e-commerce, web clickstream, weighted k-nearest neighbor,
klasifikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
Electronic commerce is an exchange using technology as an intermediary
between various parties (individuals or organizations) as well as electronic-based
intra or interorganizational exchange activities. The most commonly used
interface is the web browser. Visitor’s behavior on a web site can be analyzed
using a classification algorithm on the data order of site visits or commonly
known as web clickstream. In this study the weighted k-nearest neighbor
algorithm is used to classify users who have the potential to make online based
purchase on public data on a web clickstream data of an e-commerce. The
weighted k-nearest neighbor method makes the classification based on the label
that has the highest number of distance weights at the nearest k-neighbor from the
classified data. The output of this system is the classification of users who have
the potential to purchase goods online and those who do not. Researchers
conducted an attribute selection experiment with variations in k and variations in
the number of attributes based on the results of rank information gain and
obtained the 2 most influential attributes in the classification namely Page Values
and Exit Rates. Testing to find the most optimal k was done on 7,632 data using 3-
fold cross validation and produced the highest accuracy of 86.2028% at k = 65.
Kata kunci : e-commerce, web clickstream, weighted k-nearest neighbor,
classification
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji syukur penulis haturkan ke hadirat Tuhan Yang Maha Esa, karena dengan
kekuatan dan bimbingan dari-Nya penulis dapat menyelesaikan Tugas Akhir ini
dengan baik. Selain atas berkat dari Tuhan Yesus Kristus dan Bunda Maria yang
tak henti penulis rasakan selama menyelesaikan Tugas Akhir ini, ada begitu
banyak pihak yang turut membantu penulis. Bantuan datang entah dalam bentuk
ilmu, masukan, dukungan, doa, tempat berbagi keluh kesah, maupun pertanyaan
yang mendorong penulis menyelesaikan Tugas Akhir di kala pandemi melanda.
Pada kesempatan ini, penulis ingin mengucapkan limpah terima kasih kepada
mereka
1. Ibu Hendra Veronique Golioth dan Bapak Ferdinand Senduk, kedua
orangtua yang selalu mengucapkan nama penulis dalam doa mereka serta
tak hentinya mendukung dalam berbagai bentuk kasih sayang.
2. Aurelia Teresa Senduk, Karmela Fransiska Senduk, Mariano Gerardus
Senduk, dan Zeptian Fredrik Senduk yang senantiasa menjadi pendukung
dan penghibur jiwa di saat suka maupun duka.
3. Bapak Eko Hari Parmadi, S.Si., M.Kom., selaku dosen pembimbing tugas
akhir yang telah memberikan bimbingan, dukungan, dan dengan sabar
membagikan ilmu serta masukan dalam penyempurnaan Tugas Akhir ini.
4. Ibu Paulina Heruningsih Prima Rosa, M.Sc., selaku dosen pembimbing
akademik yang selalu menginspirasi, memberikan ilmu, dan bimbingan.
5. Bapak Sudi Mungkasi, S.Si., M.Math.Sc,. Ph.D selaku Dekan Fakultas
Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
6. Bapak Robertus Adi Nugroho, M.Eng, selaku Ketua Program Studi
Informatika Universitas Sanata Dharma Yogyakarta.
7. Seluruh Dosen Fakultas Sains dan Teknologi Sanata Dharma khususnya
Program Studi Informatika yang tak lelah mengajar, mendidik, dan
menginspirasi selama proses perkuliahan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
8. Toiletterz; Indah Permata Sari dan Putu Intan Hasri Putri, yang sudah
bersedia selalu direpotin dan jadi sahabat berbagi pandangan dan momen
bahagia, excited, kecewa, galau, dan lainnya dalam berbagai aspek
kehidupan sebagai mahasiswi-mahasiswi Informatika.
9. Paulina, Desi, Caroline, Dodi, Dian, Alfri yang banyak bertanya & berbagi
wawasan dan kian mendorong penulis untuk segera menyelesaikan TA.
10. Teman-teman angkatan 2016 Informatika yang telah bahu-membahu
membantu satu sama lain saat susah maupun senang.
11. Yunita dan teman-teman Kos Putri Palem lainnya, yang telah menemani
penulis hidup merantau di Paingan.
12. Republik Ubur-Ubur; Andi, Ce Marsha, Sinta, Tata, Vianny, Enjel, dan
Pak Andre, yang telah menghabiskan waktu bersama di Jogja, Davao, dan
Talaandig serta menjadi sosok-sosok yang mengajari penulis banyak hal.
13. Charlin dan Rere, seperanak-didik di Kalicode.
14. Bebek Squad; sahabat Royalty yang tetap terkoneksi meski LDR.
15. EXO, Taylor Swift, IU, Taeyeon, Whitney Houston, Michael Jackson,
DAY6, Isyana Sarasvati, Nikita, Cast dan Crew Reply 1988 serta When the
Camellia Blooms, Renee Amberg, pegiat kreatif lainnya, yang secara tak
langsung menemani, menghibur, dan menginspirasi penulis selama
pembuatan Tugas Akhir melalui karya-karya hebat mereka.
16. Semua pihak lainnya yang telah ikut membantu yang tidak dapat
disebutkan satu persatu disini.
Penulis menyadari masih banyak kekurangan pada Tugas Akhir ini karena
pengalaman dan pengetahuan penulis yang masih terbatas. Oleh karena itu,
penulis mengharapkan kritik dan saran yang membangun untuk Tugas Akhir ini.
Akhir kata, penulis berharap Tugas Akhir ini dapat bermanfaat bagi berbagai
pihak.
Penulis
Valentina Yohana Senduk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
HALAMAN PERSETUJUAN PEMBIMBING ................................................................. iii
HALAMAN PENGESAHAN............................................................................................. iv
HALAMAN PERSEMBAHAN .......................................................................................... v
PERNYATAAN KEASLIAN KARYA ............................................................................. vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI............................................. vii
ABSTRAK ........................................................................................................................ viii
ABSTRACT .......................................................................................................................... ix
KATA PENGANTAR ......................................................................................................... x
DAFTAR ISI ...................................................................................................................... xii
DAFTAR TABEL ............................................................................................................. xiv
DAFTAR GAMBAR ........................................................................................................ xvi
DAFTAR RUMUS .......................................................................................................... xvii
BAB I PENDAHULUAN ................................................................................................... 1
1.1. Latar Belakang .................................................................................................... 1
1.2. Rumusan Masalah ............................................................................................... 2
1.3. Tujuan Penelitian ................................................................................................ 2
1.4. Manfaat Penelitian .............................................................................................. 3
1.5. Batasan Masalah ................................................................................................. 3
1.6. Sistematika Penulisan ......................................................................................... 3
BAB II LANDASAN TEORI ............................................................................................. 5
2.1. Perdagangan Elektronik ........................................................................................... 5
2.2. Analisis Web Clickstream ........................................................................................ 5
2.3. Knowledge Discovery in Database .......................................................................... 5
2.4. Penambangan Data ................................................................................................... 8
2.5. Klasifikasi pada Penambangan Data ...................................................................... 10
2.6. Weighted k-Nearest Neighbor ................................................................................ 10
2.7. K-fold Cross Validation ......................................................................................... 12
2.8. Confusion Matrix ................................................................................................... 13
BAB III METODOLOGI PENELITIAN ......................................................................... 15
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
3.1. Gambaran Umum Sistem ....................................................................................... 15
3.2. Data ........................................................................................................................ 15
3.3. Seleksi Data ........................................................................................................... 18
3.4. Transformasi Data .................................................................................................. 19
3.5. Weighted k-Nearest Neighbor ................................................................................ 24
3.6. Evaluasi dengan Confusion Matrix ........................................................................ 36
3.7. 3-Fold Cross Validation ........................................................................................ 38
3.8. Spesifikasi Sistem .................................................................................................. 38
3.9. Desain Interface ..................................................................................................... 39
BAB IV HASIL DAN ANALISIS.................................................................................... 41
4.1. Seleksi Data ........................................................................................................... 41
4.2. Transformasi Data .................................................................................................. 42
4.3. Klasifikasi Weighted K-Nearest Neighbor ............................................................. 45
4.4. Uji Data Tunggal .................................................................................................... 47
BAB V PENUTUP ........................................................................................................... 48
5.1. Kesimpulan ............................................................................................................ 48
5.2. Saran ...................................................................................................................... 48
DAFTAR PUSTAKA ....................................................................................................... 49
LAMPIRAN ...................................................................................................................... 50
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
DAFTAR TABEL
Tabel 2.1 Confusion Matrix................................................................... 13
Tabel 3.1 Atribut Dataset Web Clickstream...........................................15
Tabel 3.2 Contoh Data Web Clickstream............................................... 16
Tabel 3.3 Hasil Uji Seleksi Atribut........................................................ 17
Tabel 3.4 Data Kolom 1 (Administrative).............................................. 19
Tabel 3.5 Hasil Normalisasi Kolom 1 (Administrative)........................ 20
Tabel 3.6 Hasil Transformasi Kolom 1-10........................................... 21
Tabel 3.7 Hasil Transformasi Contoh Data Web Clickstream.............. 22
Tabel 3.8 Pemetaan langkah-langkah W-kNN dengan function............ 24
Tabel 3.9 Data Train 3 dan Data Test 11.............................................. 24
Tabel 3.10 Hasil Perhitungan Euclidean distance................................... 25
Tabel 3.11 Pengurutan Euclidean distance terhadap data test 11............ 26
Tabel 3.12 Pengurutan Euclidean distance terhadap data test 12............ 26
Tabel 3.13 Pengurutan Euclidean distance terhadap data test 13............ 27
Tabel 3.14 Pengurutan Euclidean distance terhadap data test 14............ 27
Tabel 3.15 Pengurutan Euclidean distance terhadap data test 15............ 28
Tabel 3.16 Hasil Klasifikasi k-Nearest Neighbor Data Test.................... 29
Tabel 3.17 Pembobotan Euclidean distance data test 11......................... 29
Tabel 3.18 Pembobotan Euclidean distance data test 12......................... 31
Tabel 3.19 Pembobotan Euclidean distance data test 13......................... 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
Tabel 3.20 Pembobotan Euclidean distance data test 14......................... 33
Tabel 3.21 Pembobotan Euclidean distance data test 15......................... 34
Tabel 3.22 Hasil Klasifikasi Weighted k-Nearest Neighbor Data Test.... 35
Tabel 3.23 Perbandingan Hasil Klasifikasi weighted 7-nn...................... 36
Tabel 3.24 Confusion Matrix k = 7.......................................................... 36
Tabel 3.25 Akurasi Variasi k................................................................... 36
Tabel 4.1 Perangkingan Atribut Berdasarkan Information Gain........... 40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR GAMBAR
Gambar 2.1 Ilustrasi k-NN dan W-kNN................................................. 11
Gambar 2.2 Ilustrasi 3-fold cross validation............................................. 13
Gambar 3.1 Gambaran Umum Sistem....................................................... 14
Gambar 3.2 Flowchart Weighted K-Nearest Neighbor............................. 23
Gambar 3.3 Skenario 3-fold Cross Validation.......................................... 37
Gambar 3.4 Desain Interface..................................................................... 38
Gambar 4.1 Input Data Train.................................................................... 41
Gambar 4.2 Tampilan Data Input.............................................................. 42
Gambar 4.3 Tampilan Data Input.............................................................. 42
Gambar 4.4 Hasil Transformasi Data....................................................... 43
Gambar 4.5 Hasil Transformasi Data....................................................... 43
Gambar 4.6 Grafik Rangkuman Hasil Klasifikasi W-kNN tanpa
penyeimbangan data.............................................................. 44
Gambar 4.7 Grafik Rangkuman Hasil Klasifikasi W-kNN dengan
penyeimbangan data.............................................................. 45
Gambar 4.8 Hasil Confusion Matrix......................................................... 45
Gambar 4.9 Hasil Uji Data Tunggal......................................................... 46
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR RUMUS
Rumus 2.1 Rumus Information Gain...................................................... 6
Rumus 2.2 Rumus Information Gain....................................................... 6
Rumus 2.3 Rumus Information Gain....................................................... 7
Rumus 2.4 Rumus Min-Max.................................................................... 7
Rumus 2.5 Euclidean Distance............................................................... 11
Rumus 2.6 Persamaan Fungsi Inversi Bobot.......................................... 12
Rumus 2.7 Persamaan Confusion Matrix................................................ 13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1.Latar Belakang
Perkembangan teknologi informasi berupa jaringan elektronik seperti
internet mengubah sistem perdagangan yang dulunya dilakukan melalui
pertemuan langsung antara penjual dan konsumen, kini dapat dilakukan
melalui dunia maya melalui perdagangan elektronik. Perdagangan elektronik
ini memberikan berbagai keuntungan bagi konsumen yakni salah satunya
memungkinkan konsumen untuk berbelanja dimanapun dan kapanpun.
Perubahan model perdagangan berbasis online juga membantu penjual
meningkatkan pangsa pasar ke skala global karena sifatnya yang tidak terbatas
oleh jarak dan waktu.
Transaksi yang awalnya dilakukan secara bertatap muka ke arah dunia
maya ikut mengubah pola penjual dalam membaca perilaku konsumen ketika
melakukan pembelian. Tingkah laku konsumen ketika benar-benar ingin
membeli barang tertentu dan ketika hanya melakukan window shopping dapat
lebih mudah dibedakan apabila transaksi jual beli dilakukan di toko. Hal ini
berbeda kasusnya pada perdagangan elektronik. Pengelola bisnis elektronik
hanya memperoleh data dari hasil browsing pengunjung di situs webnya untuk
mengklasifikasikan mana pengunjung yang akhirnya membeli barang dan
mana yang tidak.
Melonjaknya penggunaan perdagangan elektronik berimbas pada besarnya
data yang diperoleh. Himpunan data ini dapat diolah untuk menghasilkan
pengetahuan untuk membantu pengelola bisnis elektronik merencanakan
strategi pemasaran yang lebih baik. Salah satunya dengan menggunakan
algoritma klasifikasi dalam menganalisis data web clickstream pada situs web.
Web clickstream sendiri merupakan urutan halaman web yang diminta
oleh pengguna termasuk di antaranya user session yang menjelaskan halaman
web yang dilihat oleh satu pengguna selama satu periode ketika masuk ke web
(Rayport & Jaworski, 2003). User session bisa berisi halaman dari lebih dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
satu situs.
Terdapat beberapa penelitian terkait analisis intensi pembeli online seperti
yang dilakukan oleh Suchacka (2015) dengan metode Support Vector Machine
yang menghasilkan akurasi 99.94%. Selain menggunakan metode SVM,
Suchacka (2015) juga menggunakan metode k-nearest neighbor untuk
meneliti dataset yang sama. Hasil akurasi yang diperoleh adalah 99.85%.
Berdasarkan latar belakang tersebut, penulis tertarik untuk melakukan
penelitian yang serupa dengan menggunakan dataset berbeda yang diperoleh
dari website UCI Repository Machine Learning. Metode yang digunakan
dalam penelitian ini adalah modifikasi dari k-nearest neighbor yakni weighted
k-nearest neighbor karena penggunaannya yang intuitif dan mudah
diaplikasikan.
1.2.Rumusan Masalah
Dari latar belakang di atas dapat dirumuskan masalah sebagai berikut :
1. Apa saja atribut dari data web clickstream yang mempengaruhi hasil
klasifikasi?
2. Berapa nilai k yang menghasilkan akurasi tertinggi dalam
mengklasifikasikan pengunjung yang berpotensi melakukan pembelian
barang online berdasarkan data web clickstream?
3. Berapa akurasi yang dihasilkan algoritma weighted k-nearest neighbor
dalam mengklasifikasikan pengunjung yang berpotensi melakukan
pembelian barang online berdasarkan data web clickstream?
1.3.Tujuan Penelitian
Beberapa tujuan dari penelitian ini adalah sebagai berikut :
1. Mengetahui atribut dari data web clickstream yang mempengaruhi hasil
klasifikasi.
2. Mengetahui jumlah k yang menghasilkan akurasi tertinggi dalam
mengklasifikasikan pengunjung yang berpotensi melakukan pembelian
barang online berdasarkan data web clickstream.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
3. Mengetahui akurasi hasil klasifikasi pengunjung yang berpotensi
melakukan pembelian barang online berdasarkan data web clickstream
dengan algoritma weighted k-nearest neighbor.
1.4.Manfaat Penelitian
Manfaat dari penelitian ini adalah :
1. Membantu pihak pengelola e-commerce dalam mengidentifikasi
pembeli yang berpotensi melakukan pembelian barang online agar
dapat membuat pesan promosi dan sistem yang lebih efektif.
2. Memperoleh pengetahuan lebih mengenai algoritma weighted k-
nearest neighbor dalam klasifikasi.
1.5.Batasan Masalah
Adapun batasan masalah penelitian ini adalah sebagai berikut :
1. Data yang digunakan adalah data publik dari UCI Repository Mahine
Learning yaitu Online Shoppers Purchasing Intention Dataset..
2. Sistem dibuat dengan Matlab.
1.6.Sistematika Penulisan
Dokumen ini tersusun dari beberapa bab, yakni diantaranya :
1. Bab I Pendahuluan
Bab ini berisi latar belakang, rumusan masalah, tujuan penelitian, manfaat
penelitian, batasan penelitian, dan sistematika penulisan.
2. Bab II Landasan Teori
Bab ini menjelaskan mengenai algoritma weighted k-nearest neighbor
beserta teori-teori mengenai penambangan data, klasifikasi, dan e-
commerce.
3. Bab III Metodologi Penelitian
Bab ini menjelaskan mengenai perancangan sistem meliputi data yang
digunakan, pengolahan data, pembuatan alat uji dan evaluasi, dan desain
antar muka sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
4. BAB IV Hasil dan Analisis
Bab ini berisi implementasi program komputer berdasarkan hasil
perancangan yang dibuat beserta analisis perangkat lunak yang telah
dibuat.
5. BAB V Penutup
Bab ini berisi kesimpulan dan saran untuk keseluruhan penulisan tugas
akhir.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB II
LANDASAN TEORI
2.1. Perdagangan Elektronik
Perdagangan elektronik dapat didefinisikan sebagai pertukaran yang
menggunakan teknologi sebagai perantara antara berbagai pihak (individu
atau organisasi) serta kegiatan intra atau antar organisasi berbasis elektronik
yang memfasilitasi pertukaran tersebut (Rayport & Jaworski, 2003). Antar
muka yang digunakan seperti automated teller machines (ATM), electronic
banking, dan yang paling sering digunakan adalah web browsers yang dapat
diakses dengan internet. Perdagangan elektronik menjadikan tempat dimana
pembeli dan penjual bertemu untuk melakukan transaksi bisnis berpindah dari
dunia fisik ke dunia maya.
2.2. Analisis Web Clickstream
Perilaku pengunjung di situs web dapat diprediksi dengan menganalisis data
yang ada pada urutan kunjungan halaman situs. Pada saat browsing, setiap kali
pengguna menautkan ke situs web, server melacak semua tindakan pengguna
dalam file log. Web clickstream sendiri merupakan urutan halaman web yang
diminta oleh pengguna termasuk di antaranya user session yang menjelaskan
halaman web yang dilihat oleh satu pengguna selama satu periode ketika
masuk ke web. User session ini bisa berisi halaman dari lebih dari satu situs.
Selain itu ada pula server session, atau session, yang merupakan kumpulan
halaman untuk satu situs tertentu selama user session. Halaman-halaman ini
juga biasa disebut sebagai sebuah visit.
2.3. Knowledge Discovery in Database
Proses knowledge discovery in database (KDD) secara garis besar dijelaskan
sebagai berikut (Kusrini & Luthfi, 2009):
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
1. Seleksi Data
Sebelum tahap penggalian informasi dalam KDD dimulai, perlu
dilakukan pemilihan atau seleksi data termasuk diantaranya seleksi atribut
dari sekumpulan data operasional. Data hasil seleksi ini yang akan
digunakan untuk proses penambangan data. Salah satu metode untuk
seleksi data adalah dengan metode Information Gain. Nilai information
gain dihitung dengan persamaan (2.1) sampai persamaan (2.3) berikut ini:
Info(D) = -∑𝑖=1𝑚 pi log2(pi) (2.1)
dimana :
Info(D)= entropi untuk kelas D
D = jumlah seluruh sampel data
m = jumlah nilai pada atribut target (jumlah kelas
klasifikasi)
i = maksimal nilai pada atribut target
pi = rasio jumlah sampel di kelas i terhadap total
sampel pada himpunan data
InfoA(D) = ∑𝑗=1𝑣
|𝐷𝑗|
|𝐷| x Info(Dj) (2.2)
dimana :
InfoA(D)= entropi untuk kelas D pada atribut A
A = atribut
v = suatu nilai yang mungkin untuk atribut A
j = maksimal nilai yang mungkin untuk atribut A
|Dj| = jumlah sampel untuk nilai v
D = jumlah seluruh sampel data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Nilai dari information gain ini kemudian digunakan untuk menghitung
efektifitas suatu atribut pada data dengan persamaan (2.3) berikut ini:
Gain (A) = |Info(D)-InfoA(D)| (2.3)
dimana :
Gain(A) = Information Gain atribut A
A = atribut
Info(D) = entropi untuk kelas D
InfoA(D) = entropi untuk kelas D pada atribut A
2. Cleaning Data
Proses cleaning bertujuan untuk menghilangkan duplikasi data,
memeriksa data yang tidak konsisten, dan memperbaiki kesalahan pada
data yang digunakan untuk KDD. Data yang tidak sesuai dapat diperbaiki
atau dihilangkan dan diisi prediksi nilainya. Pada tahapan ini juga data
dapat diperkaya dengan data atau informasi eksternal yang mungkin
diperlukan.
3. Transformasi Data
Proses transformasi data merupakan proses untuk mengubah bentuk data
ke bentuk yang sesuai untuk digunakan. Beberapa diantaranya yakni
generalisasi untuk mengganti data primitif atau data level rendah menjadi
data level tinggi, normalisasi yang merupakan proses penskalaan nilai
atribut pada data sehingga masuk dalam rentang tertentu, dan konstruksi
atribut yaitu mengkonstruksi misalnya mengubah dari yang belum
numerik ke numerik atau menambahkan atribut baru untuk membantu
proses penambangan. Salah satu metode transformasi data yang akan
digunakan di penelitian ini adalah metode min-max yang berfungsi untuk
normalisasi. Nilai normalisasi min-max dapat dihitung dengan persamaan
(2.4) berikut ini (Han, 2011) :
.
Ndata = (𝑣−min)(nmax−nmin)
𝑚𝑎𝑥−𝑚𝑖𝑛+ 𝑛𝑚𝑖𝑛 (2.4)
dimana :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Ndata = data hasil normalisasi min-max
v = data yang akan dinormalisasi
min = nilai minimum dari data
max = nilai maksimum dari data
nmax = skala maksimum yang ditentukan
nmin = skala minimum yang ditentukan
4. Penambangan data
Pada tahapan ini digunakan algoritma penambangan data untuk mencari
pola atau informasi dalam data yang telah ada untuk memberikan hasil
yang diinginkan. Ada berbagai metode dan teknik dalam penambangan
data dan dapat dipilih sesuai tujuan dari proses KDD tersebut.
5. Interpretasi dan Evaluasi
Pada tahapan ini, hasil penambangan data diperlihatkan kepada pengguna
sehingga informasi tersebut dapat digunakan. Hasil ini dapat dijelaskan
melalui visualisasi atau tampilan tertentu agar pengguna dapat
memahaminya dengan lebih jelas. Tahap ini juga termasuk pengujian
terhadap hasil yang ditemukan apakah sesuai fakta sebelumnya.
2.4. Penambangan Data
Penambangan data merupakan bagian dari knowledge discovery in database
untuk menemukan pengetahuan dari data yang kompleks dan banyak.
Penambangan data bertujuan untuk menangani masalah pengambilan
informasi dari basis data yang besar dengan menyatukan berbagai teknik
machine learning, statistik, database, pengenalan pola, dan visualisasi.
Terdapat dua pengelompokkan penambangan data berdasarkan bagaimana
pembelajarannya yaitu :
1. Supervised Learning merupakan pembelajaran menggunakan guru dan
biasanya menggunakan kelas atau label pada himpunan datanya.
Contohnya metode untuk prediksi dan klasifikasi, beberapa
diantaranya yaitu algoritma Rough Set, dan k-Nearest Neighbor (k-
NN).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
2. Unsupervised Learning merupakan pembelajaran tanpa guru dan
biasanya tak ada kelas atau label pada himpunan datanya. Contohnya
metode untuk klastering dan asosiasi, diantaranya algoritma K-means,
dan lainnya.
Pada penambangan data, inputan berupa himpunan data diproses
menggunakan metode yang ada dalam penambangan data sehingga
menghasilkan keluaran berupa pengetahuan yang dapat berbentuk cluster,
pola, pohon keputusan, dan lainnya. Terdapat beberapa jenis metode
penambangan data yakni:
1. Estimasi : digunakan untuk melakukan perkiraan terhadap sebuah data
baru yang belum memiliki keputusan berdasarkan data yang telah ada.
Contoh pemanfaatannya ketika melakukan estimasi pembiayaan
pembangunan bangunan baru di sebuah kota baru.
2. Asosiasi : digunakan untuk mencari kelakuan khusus atau proses
dimana hubungan asosiasi muncul pada tiap kejadian. Algoritma
pemecahan yang biasanya digunakan adalah Algoritma Apriori.
Contoh penggunaannya di perpustakaan yakni tata letak buku oleh
pustakawan.
3. Klasifikasi : digunakan untuk mengklasifikasikan data baru
berdasarkan data yang ada dan telah diklasifikasi sebelumnya. Hasil
klasifikasi data yang ada digunakan untuk memberikan sejumlah
aturan dalam pengklasifikasian data baru. Salah satu algoritma yang
sering digunakan yaitu Decision tree, k-Nearest Neighbor, dan lainnya.
Contoh penggunaannya adalah klasifikasi tumbuhan berdasarkan
ekstrasi ciri morfologinya.
4. Klastering : digunakan untuk mengelompokkan data ke kelompok-
kelompok tertentu sesuai dengan algoritma yang digunakan. Berbeda
dengan klasifikasi yang sebelumnya sudah didefinisikan kelompoknya.
K-means adalah salah satu algoritma atau metode yang sering
digunakan untuk klastering data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
5. Prediksi : digunakan untuk memperkirakan atau memprediksi suatu
kejadian di masa depan sebelum peristiwa itu terjadi. Salah satu
metode yang sering digunakan adalah Rough Set, dan biasanya
digunakan di bidang Klimatologi dan Geofisika, misalnya untuk
memperkirakan bagaimana cuaca di tanggal tertentu.
2.5. Klasifikasi pada Penambangan Data
Seperti yang telah dijelaskan sebelumnya, pada penambangan data terdapat
berbagai jenis algoritma yang digunakan yakni salah satunya adalah algoritma
untuk klasifikasi yang merupakan teknik untuk mengklasifikasi sebuah data
baru untuk mengelompokkannya ke kelompok yang telah didefinisikan.
Proses klasifikasi didasarkan pada empat komponen (Gorunescu, 2011) :
a. Kelas
Variabel dependen yang berupa kategorikal yang mempresentasikan
label yang terdapat pada objek. Contoh : resiko kredit, jenis gempa.
b. Predictor
Variabel independen yang direpresentasikan oleh karakteristik data.
Contoh: tabungan, aset, gaji.
c. Training dataset
Set data yang berisi nilai dari kedua komponen di atas yang digunakan
untuk menentukan kelas yang cocok berdasarkan predictor.
d. Testing dataset
Set data yang akan diklasifikasikan oleh model yang telah dibuat.
Akurasi klasifikasi nantinya akan dievaluasi.
2.6. Weighted k-Nearest Neighbor
Algoritma k-Nearest Neighbor menggunakan perhitungan kemiripan data
baru (data testing) dengan data sebelumnya yang sudah memiliki label atau
kelas (data training) sebagai nilai prediksi dari sampel uji yang baru.
Perhitungan kemiripan dilakukan dengan menghitung jarak antar tetangga.
Pada umumnya, jarak antar tetangga pada k-NN dihitung dengan Eucledian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
distance. Penentuan label data baru sendiri akan dilakukan melalui voting
label mayoritas dari k-tetangga terdekat. Ilustrasi metode k-NN dan W-kNN
dapat dilihat pada gambar 2.1 berikut ini :
Gambar 2.1 Ilustrasi (a) k-NN dan (b) w-KNN
Sumber : Bichego & Loog (2016)
Masalah bisa terjadi ketika kelas terdekat mempunyai jarak yang
bervariasi. Seperti pada gambar 2.1 (a) class(x) diklasifikasikan sebagai
lingkaran karena dengan algoritma k-NN jumlah kelas terbanyak pada
tetangga terdekat adalah lingkaran. Pada kenyataannya, class(x) yang
sebenarnya adalah kotak. Cara untuk mengatasi ini adalah dengan
pembobotan tetangga terdekat oleh jaraknya (Eko, 2014). Metode
pembobotan yang paling sering digunakan adalah dengan menginverskan
jarak tiap k-tetangga terdekat. Metode k-Nearest Neighbor dengan
pembobotan tetangga terdekat disebut Weighted k-Nearest Neighbor (W-
kNN). Pada penelitian ini, akan digunakan modifikasi k-NN dengan
pembobotan ini. Berikut merupakan algoritma weighted k-nearest neighbor
(Schliep, K. P, 2004) :
1. Menentukan parameter k (k adalah jumlah tetangga paling dekat yang
akan disertakan dalam penentuan kelas).
2. Menghitung kuadrat jarak Euclidean setiap objek data latih terhadap
data uji yang diberikan. Rumus untuk mendapatkan jarak antar data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
dengan jarak Euclidean dapat dihitung menggunakan persamaan (2.5)
berikut ini :
di=√∑ (𝑥𝑖 − 𝑦𝑖)²𝑛𝑖=1 (2.5)
dimana :
di = jarak Euclidean variabel ke-i
i = variabel data (i = 1,2,3,...,n)
n = dimensi data
x = data uji
y = data latih
3. Mengurutkan hasil jarak euclidean dari terkecil ke terbesar.
4. Mengambil sejumlah k-tetangga terdekat.
5. Memberikan bobot pada masing-masing jarak pada k-tetangga terdekat
menggunakan fungsi inversi. Pembobotan dengan fungsi inversi dapat
dihitung menggunakan persamaan (2.6) berikut ini :
w(i) = 1
|di| (2.6)
dimana :
w(i) = bobot variabel ke-i
di = jarak Euclidean variabel ke-i
i = variabel data (i = 1,2,3,...,n)
6. Menjumlahkan bobot tiap kelas pada k-tetangga terdekat.
7. Menggunakan kelas pada k-tetangga terdekat yang memiliki bobot
terbesar sebagai label data uji.
2.7. K-fold Cross Validation
Salah satu metode statistik yang biasanya digunakan untuk memvalidasi
sebuah metode penambangan data adalah Cross Validation. Pada metode ini,
data dipisahkan menjadi dua subset yaitu data testing dan data training.
Metode dilatih oleh subset training dan divalidasi oleh subset testing.
Selanjutnya pemilihan jenis Cross Validation dapat didasarkan pada ukuran
set data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
K-fold cross validation digunakan karena dapat mengurangi waktu
komputasi dengan tetap menjaga keakuratan perkiraan. Pendekatan ini
memecah set data menjadi k bagian set data. Tiap dijalankan, satu pecahan
berperan sebagai data latih, sedangkan pecahan lain berperan sebagai data uji.
Langkah tersebut dilakukan sebanyak k kali. (Eko, 2014). Misalkan kita
menggunakan k=3, maka skenario 3-fold cross validation bisa dilihat pada
gambar 2.2 berikut ini :
Gambar 2.2 Ilustrasi 3-fold cross validation
2.8. Confusion Matrix
Confusion matrix adalah salah satu metode yang digunakan untuk mengukur
kinerja suatu metode klasifikasi. Representasi hasil klasifikasi pada confusion
matrix menggunakan empat penentu untuk mencari akurasinya sebagaimana
dapat dilihat pada tabel 2.1 berikut ini :
Tabel 2.1 Confusion Matrix
Label Positive Negative
Positive TP (True Positive) FN (False Negative)
Negative FP (False Positive) TN (True Negative)
Akurasi dihitung menggunakan persamaan (2.7) berikut ini :
Akurasi = 𝑇𝑃+𝑇𝑁
𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁𝑥100% (2.7)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
dimana :
TP = jumlah positive yang diklasifikasikan sebagai positive
TN = jumlah negative yang diklasifikasikan sebagai negative
FP = jumlah negative yang diklasifikasikan sebagai positive
FN = jumlah positive yang diklasifikasikan sebagai negative
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
BAB III
METODOLOGI PENELITIAN
3.1. Gambaran Umum Sistem
Pada sistem ini terdapat 5 proses yaitu input data, seleksi data, transformasi
data, klasifikasi, dan penghitungan akurasi. Alur sistem secara umum dapat
dilihat pada gambar 3.1 berikut :
Gambar 3.1 Gambaran Umum Sistem
3.2. Data
Data yang digunakan dalam penelitian ini adalah data publik yang diperoleh
dari situs UCI Repository Machine Learning yaitu Online Shoppers
Purchasing Intention Dataset. Dataset ini terdiri dari vektor fitur yang
berasal dari 12.330 session yang dibentuk sehingga setiap sesi menjadi milik
pengguna yang berbeda dalam periode 1 tahun guna menghindari
kecondongan pada kampanye tertentu, periode tertentu, hari khusus, atau
profil pengguna. Terdapat 18 atribut yaitu 10 atribut numerikal dan 7 atribut
kategorikal dan satu kelas label. Label ada dua yakni FALSE yang
menandakan pengunjung yang berakhir tidak membeli, dan TRUE yang
menandakan pengunjung yang berakhir membeli. Penjelasan mengenai
atribut yang digunakan dapat dilihat pada tabel 3.1, dan contoh datanya dapat
dilihat pada tabel 3.2 berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Tabel 3.1 Atribut Dataset Web Clickstream
No. Atribut Keterangan dan Nilai
1 Administrative Jumlah kunjungan pengunjung ke halaman Administrative
2 Administrative Duration Total waktu yang dihabiskan di halaman Administrative
3 Informational Jumlah kunjungan pengunjung ke halaman Informational
4 Informational Duration Total waktu yang dihabiskan di halaman Informational
5 Product Related Jumlah kunjungan pengunjung ke halaman Product Related
6 Product Related Duration Total waktu yang dihabiskan di halaman Product Related
7 Bounce Rates Persentase pengunjung yang masuk ke situs dari halaman
tersebut dan kemudian keluar (“bounce”) tanpa memulai
permintaan lain ke server analytics selama session tersebut.
8 Exit Rates Dihitung untuk semua tampilan halaman ke halaman,
persentase yang terakhir dalam sesi
9 Page Values Nilai rata-rata untuk halaman web yang dikunjungi pengguna
sebelum menyelesaikan transaksi
10 Special Day Jarak waktu pengunjung mengunjungi situs web ke hari khusus
11 Month Bulan saat pengunjung mengunjungi situs web
12 Operating Systems Sistem operasi yang digunakan pengunjung
13 Browser Jenis browser yang digunakan pengunjung
14 Region Wilayah sesuai sistem browser yang digunakan pengunjung
15 Traffic Type Traffic Type
16 Visitor Type Karakteristik pengguna, New_visitor merupakan pengunjung
yang baru pertama kali mengunjungi situs web,
Returning_visitor merupakan pengunjung yang sudah pernah
mengunjungi situs web sebelumnya
16 Weekend Nilai boolean yang mengindikasikan apakah hari pengunjung
mengunjungi situs web adalah akhir pekan
18 Revenue Label kelas yang bernilai TRUE apabila pengunjung akhirnya
membeli barang di situs web, FALSE apabila pengunjung tidak
membeli barang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Tabel 3.2 Contoh Data Web Clickstream
No.
Adm
inis
-tra
tive
Adm
inis
-tra
tive
Dura
tion
Info
rma-
tional
Info
rmat
-ional
Dura
tion
Pro
duct
Rel
ated
Pro
duct
Rel
ated
Dura
tion
Bounce
Rat
es
Exit
Rat
es
Pag
e
Val
ues
Spec
ial
Day
Month
OS
Bro
wse
r
Reg
ion
Tra
ffic
Type
Vis
itor
Type
Wee
ken
d
Rev
enue
1 0 0 0 0 1 0 0.2 0.2 0 0 Feb 1 1 1 1 Ret FALSE FALSE
2 0 0 0 0 1 0 0.2 0.2 0 0 Mar 2 2 4 1 Ret FALSE FALSE
3 1 32.33 1 56 62 2414.9 0 0.002 30.462 0 May 2 2 9 2 Ret FALSE TRUE
4 1 26.2 0 0 4 106.8 0 0.04 36.662 0 Oct 2 2 2 5 New FALSE TRUE
5 1 39.2 2 120.8 7 80.5 0 0.01 0 0 Nov 3 2 4 2 New TRUE FALSE
6 3 145 0 0 53 1783.79 0.007 0.029 12.242 0 Dec 4 6 1 1 Ret TRUE FALSE
7 0 0 0 0 6 169 0 0.016 0 0.4 Feb 1 1 3 3 Ret FALSE FALSE
8 7 150.357 1 9 221 11431.001 0.011 0.022 1.582 0 Nov 2 5 1 2 Ret TRUE TRUE
9 2 152.833 0 0 20 791.667 0.011 0.017 41.350 0 Mar 1 1 1 2 New FALSE TRUE
10 0 0 0 0 2 7 0.05 0.15 0 0.2 May 2 2 7 4 Ret FALSE FALSE
11 3 16 3 86 15 2773.5 0 0.03 78.812 0 Dec 2 2 1 2 Ret FALSE TRUE
12 0 0 0 0 7 705.833 0.029 0.086 0 0 Dec 5 11 4 1 Ret TRUE FALSE
13 0 0 0 0 7 212.5 0 0.033 0 0 Nov 3 2 1 11 Ret TRUE FALSE
14 13 456.988095 3 72.833 39 976.710 0.004 0.010 39.655 0 Mar 1 1 1 1 Ret TRUE TRUE
15 0 0 0 0 32 1916.633 0.016 0.027 0 0 Mar 2 2 1 10 Ret FALSE FALSE
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
3.3. Seleksi Data
Pada tahap ini, akan dilakukan seleksi data untuk memilih atribut yang
dibutuhkan dan menghapus atribut yang kurang relevan untuk penelitian.
Kolom Revenue menjadi kelas yang digunakan untuk klasifikasi dan bernilai
TRUE dan FALSE. Data yang digunakan pada tahap ini sejumlah 7.632
dengan rincian 1.908 bernilai 1 atau TRUE, dan 5.724 bernilai 0 atau FALSE.
Pengurangan data dilakukan untuk menyeimbangkan data dengan
perbandingan 1:3 data yang bernilai TRUE:FALSE. Atribut-atribut pada data
dirangking dengan metode Information Gain pada fitur di aplikasi Weka versi
3.8.3. Hasil penghitungan information gain dapat dilihat pada tabel 3.3
berikut ini :
Tabel 3.3 Information Gain Atribut Data Penelitian
Rank Nomor Kolom Atribut
0.32221 9 Page Values
0.08439 8 Exit Rates
0.05715 6 Product Related Duration
0.0509 7 Bounce Rates
0.04728 5 Product Related
0.03232 1 Administrative
0.03214 11 Month
0.02855 2 Administrative Duration
0.02763 15 Traffic Type
0.01158 3 Informational
0.01129 4 Informational Duration
0.01085 16 Visitor Type
0.00861 10 Special Day
0.00558 12 Operating Systems
0.00143 17 Weekend
0.00112 13 Browser
0 14 Region
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Berdasarkan hasil rangking atribut di atas, atribut Browser dan Region yang
nilainya mendekati 0 tidak digunakan untuk klasifikasi. Tahap selanjutnya
adalah transformasi data kemudian klasifikasi data dengan metode weighted k-
nearest neighbor menggunakan atribut dengan rangking tertinggi kemudian
ditambahkan satu per satu atribut dengan rangking tertinggi berikutnya untuk
dilihat akurasinya.
3.4. Transformasi Data
Setelah proses seleksi data, dilakukan tranformasi data dimana atribut Month
dan Visitor Type ditransformasi ke data numerik. Kemudian, atribut pada
kolom 1-10 dinormalisasi menggunakan metode min-max. Berikut hasil
transformasi data :
1. Transformasi pada kolom Month
Hasil transformasi pada kolom Month adalah sebagai berikut :
• Jan : 1
• Feb : 2
• Mar : 3
• Apr : 4
• May : 5
• June : 6
• Jul : 7
• Aug : 8
• Sep : 9
• Oct : 10
• Nov : 11
• Dec : 12
2. Transformasi pada kolom Visitor Type
Terdapat 3 jenis Visitor pada kolom ini, hasil transformasinya sebagai
berikut :
• Returning_Visitor: 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
• New_Visitor : 2
• Other : 3
3. Transformasi pada kolom 1-10
Pada atribut 1-10 dilakukan normalisasi dengan metode min-max
menggunakan rentang min 0 dan max 1. Misalkan kita gunakan data pada
kolom pertama (Administrative) di Tabel 3.2, maka langkah-langkah
normalisasi min-max adalah sebagai berikut :
a. Langkah pertama yaitu menentukan skala maksimum (nmax) dan
minimum (nmin) baru yang kita tentukan, disini digunakan nmax
= 1 dan nmin = 0.
b. Kemudian dicari nilai minimum dan nilai maksimum dari data
pada kolom pertama. Data kolom pertama dapat dilihat pada tabel
3.4 :
Tabel 3.4 Data Kolom 1 (Administrative)
No. Data
1 0
2 0
3 1
4 1
5 1
6 3
7 0
8 7
9 2
10 0
11 3
12 0
13 0
14 13
15 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Berdasarkan data tersebut, maka diperoleh min = 0, dan max = 13
c. Setelah itu, dihitung normalisasi tiap data pada kolom
Administrative dengan rumus 2.3. Berikut hasil perhitungan data :
• Untuk data ke-1,2,7,10,12,13,15 = 0
N1,2,7,10,12,13,15 = (0−0)∗(1−0)
13−0+ 0 = 0
• Untuk data ke 3,4,5 = 1
N3,4,5 = (1−0)∗(1−0)
13−0+ 0 = 0.077
• Untuk data ke 9 = 2
N9 = (2−0)∗(1−0)
13−0+ 0 = 0.154
• Untuk data ke 6,11 = 3
N6,11 = (3−0)∗(1−0)
13−0+ 0 = 0.231
• Untuk data ke 8 = 7
N8 = (7−0)∗(1−0)
13−0+ 0 = 0.538
• Untuk data ke 14 = 13
N8 = (13−0)∗(1−0)
13−0+ 0 = 1
d. Hasil normalisasi untuk kolom 1 (Administrative) dapat dilihat
pada tabel 3.5 berikut ini :
Tabel 3.5 Hasil Normalisasi Kolom 1 (Administrative)
Data ke- Nilai
1 0
2 0
3 0.077
4 0.077
5 0.077
6 0.231
7 0
8 0.538
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
9 0.154
10 0
11 0.231
12 0
13 0
14 1
15 0
Selanjutnya dicari normalisasi untuk data kolom 2-10 dengan cara yang
sama. Tabel 3.6 berikut merupakan hasil normalisasi kolom 1-10 :
Tabel 3.6 Hasil Transformasi Kolom 1-10
No.
Adm
inis
stra
tive
Adm
inis
trat
ive
Dura
tion
Info
rmat
ional
Info
rmat
ional
Dura
tion
Pro
duct
Rel
ated
Pro
duct
Rel
ated
Dura
tion
Bounce
Rat
es
Exit
Rat
es
Pag
e V
alues
Spec
ial
Day
1 0 0 0 0 0 0 1 1 0 0
2 0 0 0 0 0 0 1 1 0 0
3 0.077 0.071 0.333 0.464 0.277 0.211 0 0 0.387 0
4 0.077 0.057 0 0 0.014 0.009 0 0.192 0.465 0
5 0.077 0.086 0.667 1 0.027 0.007 0 0.040 0 0
6 0.231 0.317 0 0 0.236 0.156 0.035 0.136 0.155 0
7 0 0 0 0 0.023 0.015 0 0.071 0 1
8 0.538 0.329 0.333 0.075 1 1 0.055 0.101 0.020 0
9 0.154 0.334 0 0 0.086 0.069 0.055 0.076 0.525 0
10 0 0 0 0 0.005 0.001 0.25 0.747 0 0.5
11 0.231 0.035 1 0.712 0.064 0.243 0 0.141 1 0
12 0 0 0 0 0.027 0.062 0.145 0.424 0 0
13 0 0 0 0 0.027 0.019 0 0.157 0 0
14 1 1 1 0.603 0.173 0.085 0.020 0.040 0.503 0
15 0 0 0 0 0.141 0.168 0.080 0.126 0 0
Hasil transformasi untuk keseluruhan data pada contoh data tabel 3.2 dapat dilihat
pada tabel 3.7 berikut ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Tabel 3.7 Hasil Transformasi Contoh Data Web Clickstream
No.
Adm
inis
-tra
tive
Adm
inis
-tra
tive
Dura
tion
Info
rma-
tional
Info
rmat
-ional
Dura
tion
Pro
duct
Rel
ated
Pro
duct
Rel
ated
Dura
tion
Bounce
Rat
es
Exit
Rat
es
Pag
e
Val
ues
Spec
ial
Day
Month
OS
Bro
wse
r
Reg
ion
Tra
ffic
Type
Vis
itor
Type
Wee
ken
d
Rev
enue
1 0 0 0 0 0 0 1 1 0 0 2 1 1 1 1 1 0 0
2 0 0 0 0 0 0 1 1 0 0 3 2 2 4 1 1 0 0
3 0.077 0.071 0.333 0.464 0.277 0.211 0 0 0.387 0 5 2 2 9 2 1 0 1
4 0.077 0.057 0 0 0.014 0.009 0 0.192 0.465 0 10 2 2 2 5 2 0 1
5 0.077 0.086 0.667 1 0.027 0.007 0 0.040 0 0 11 3 2 4 2 2 1 0
6 0.231 0.317 0 0 0.236 0.156 0.035 0.136 0.155 0 12 4 6 1 1 1 1 0
7 0 0 0 0 0.023 0.015 0 0.071 0 1 2 1 1 3 3 1 0 0
8 0.538 0.329 0.333 0.075 1 1 0.055 0.101 0.020 0 11 2 5 1 2 1 1 1
9 0.154 0.334 0 0 0.086 0.069 0.055 0.076 0.525 0 3 1 1 1 2 2 0 1
10 0 0 0 0 0.005 0.001 0.25 0.747 0 0.5 5 2 2 7 4 1 0 0
11 0.231 0.035 1 0.712 0.064 0.243 0 0.141 1 0 12 2 2 1 2 1 0 1
12 0 0 0 0 0.027 0.062 0.145 0.424 0 0 12 5 11 4 1 1 1 0
13 0 0 0 0 0.027 0.019 0 0.157 0 0 11 3 2 1 11 1 1 0
14 1 1 1 0.603 0.173 0.085 0.020 0.040 0.503 0 3 1 1 1 1 1 1 1
15 0 0 0 0 0.141 0.168 0.080 0.126 0 0 3 2 2 1 10 1 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
3.5. Weighted k-Nearest Neighbor
Setelah data input diseleksi dan ditransformasi, data diklasifikasi dengan
weighted k-nearest neighbor dan divalidasi dengan 3-fold cross validation.
Pada tahapan uji data tunggal, sejumlah 10 data diambil sebagai data untuk
uji data tunggal (5 berlabel TRUE, 5 berlabel FALSE). Proses klasifikasi ini
menggunakan metode weighted k-nearest neighbor yang secara umum
dijelaskan dengan flowchart pada gambar 3.2 berikut :
Gambar 3.2 Flowchart weighted k-nearest neighbor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Pemetaan langkah-langkah dalam proses weighted k-nearest neighbor pada
gambar 3.2 dengan function pada program yang diimplementasikan dapat
dilihat pada tabel 3.8 berikut ini :
Tabel 3.8 Pemetaan langkah-langkah W-kNN dengan function
No. Langkah Function
1. Input nilai k wknn2.m
2. Perhitungan euclidean distance eucDistance.m
3. Pengurutan euclidean distance secara ascending wknn2.m
4. Pengambilan k tetangga terdekat wknn2.m
5. Pembobotan euclidean distance pada k tetangga terdekat wknn2.m
6. Penjumlahan weight berdasar kelas wknn2.m
7. Penentuan kelas berdasar weight terbesar wknn2.m
Sebagai ilustrasi bagaimana klasifikasi menggunakan metode weighted k-
nearest neighbor, kita ambil contoh klasifikasi w-knn menggunakan k =
1,3,5,7 dengan data pada Tabel 3.7 terkecuali data pada kolom Browser dan
Region tidak digunakan karena hasil information gain yang kecil. Pembagian
data klasifikasi yakni data 1-10 menjadi data train dan data 11-15 menjadi
data testing. Berdasarkan skenario tersebut berikut langkah-langkah
klasifikasi weighted k-nearest neighbors dengan k = 1,3,5, dan 7 :
a. Hitung jarak Euclidean distance dengan rumus 2.5 untuk setiap data train
terhadap data test yang diberikan. Tabel 3.9 berikut merupakan rincian
data train 3 dan data test 11 :
Tabel 3.9 Data Train 3 dan data test 11
Atribut Data Train 3 Data Test 11
Administrative 0.077 0.231
Administrative Duration 0.071 0.035
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Informational 0.333 1
Informational Duration 0.464 0.712
Product Related 0.277 0.064
Product Related Duration 0.211 0.243
Bounce Rates 0 0
Exit Rates 0 0.141
Page Values 0.387 1
Special Day 0 0
Month 5 12
OS 2 2
Traffic Type 2 2
Visitor Type 1 1
Weekend 0 0
Misalkan dihitung Euclidean distance data train 3 terhadap data test 11
menggunakan data pada tabel 3.9 di atas, maka perhitungannya sebagai
berikut:
di=
√(0.231 − 0.077)2 + (0.035 − 0.071)2 + (1 − 0.333)2 + (0.712 − 0.464)2 + (0.064 − 0.277)2 + (0.243 − 0.211)2 +
√(0 − 0)2 +(0.141 − 0)2 + (1 − 0.387)2 + (0 − 0)2 + (12 − 5)2 + (2 − 2)2 + (2 − 2)2 + (1 − 1)2 + (0 − 0)2
Maka diperoleh Euclidean distance d(x,y) = 7.069. Perhitungan yang sama
dikerjakan untuk data train sisa. Hasil perhitungan Euclidean distance
untuk tiap data train terhadap data test dapat dilihat pada tabel 3.10
berikut:
Tabel 3.10 Hasil Perhitungan Euclidean distance
Data
train
Data test
11 12 13 14 15
1 10.313 10.866 13.701 2.746 9.201
2 9.293 9.595 12.950 2.746 9.092
3 7.069 7.796 10.937 3.037 8.278
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
4 3.985 5.595 6.342 8.436 8.676
5 2.299 2.937 9.136 8.499 11.511
6 2.888 1.151 10.111 9.621 12.930
7 10.277 11.052 12.289 3.263 7.214
8 2.334 3.668 9.189 8.315 11.443
9 9.212 10.027 12.306 2.352 8.150
10 7.504 8.269 9.363 4.411 6.381
Hasil euclidean distance kemudian diurutkan dari yang terkecil sampai ke
terbesar. Jarak terkecil menunjukkan tetangga yang lebih dekat ke data
test. Hasil pengurutan euclidean distance untuk tiap data test dapat dilihat
pada tabel 3.11 sampai tabel 3.15 berikut :
Tabel 3.11 Pengurutan Euclidean distance terhadap data test 11
No. Euclidean
Distance
Data
train ke -
Label data
train
1 2.299 5 FALSE
2 2.334 8 TRUE
3 2.888 6 FALSE
4 3.985 4 TRUE
5 7.069 3 TRUE
6 7.504 10 FALSE
7 9.212 9 TRUE
8 9.293 2 FALSE
9 10.277 7 FALSE
10 10.313 1 FALSE
Tabel 3.12 Pengurutan Euclidean distance terhadap data test 12
No. Euclidean
Distance
Data
train ke -
Label data
train
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
1 1.151 6 FALSE
2 2.937 5 FALSE
3 3.668 8 TRUE
4 5.595 4 TRUE
5 7.796 3 TRUE
6 8.269 10 FALSE
7 9.595 2 FALSE
8 10.027 9 TRUE
9 10.866 1 FALSE
10 11.052 7 FALSE
Tabel 3.13 Pengurutan Euclidean distance terhadap data test 13
No. Euclidean
Distance
Data
train ke -
Label data
train
1 6.342 4 TRUE
2 9.136 5 FALSE
3 9.189 8 TRUE
4 9.363 10 FALSE
5 10.111 6 FALSE
6 10.937 3 TRUE
7 12.289 7 FALSE
8 12.306 9 TRUE
9 12.950 2 FALSE
10 13.701 1 FALSE
Tabel 3.14 Pengurutan Euclidean distance terhadap data test 14
No. Euclidean
Distance
Data
train ke -
Label data
train
1 2.352 9 TRUE
2 2.746 1 FALSE
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
3 2.746 2 FALSE
4 3.037 3 TRUE
5 3.263 7 FALSE
6 4.411 10 FALSE
7 8.315 8 TRUE
8 8.436 4 TRUE
9 8.499 5 FALSE
10 9.621 6 FALSE
Tabel 3.15 Pengurutan Euclidean distance terhadap data test 15
No. Euclidean
Distance
Data
train ke -
Label data
train
1 6.381 10 FALSE
2 7.214 7 FALSE
3 8.150 9 TRUE
4 8.278 3 TRUE
5 8.676 4 TRUE
6 9.092 2 FALSE
7 9.201 1 FALSE
8 11.443 8 TRUE
9 11.511 5 FALSE
10 12.930 6 FALSE
Selanjutnya, dicari hasil klasifikasi dengan k-nearest neighbor tanpa
pembobotan jarak untuk dibandingkan dengan hasil klasifikasi weighted k-
nearest neighbor. Sesuai langkah klasifikasi k-NN, hasil klasifikasi dapat
dicari setelah hasil euclidean distance data train terhadap data test
diperoleh. Hasil klasifikasi k-NN diperoleh dari label yang paling sering
muncul pada k-tetangga terdekat dilihat dari hasil perhitungan
jarak/euclidean distance dari nilai terkecil.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Berdasarkan hasil pengurutan euclidean distance tiap data test pada Tabel
3.11 sampai Tabel 3.15, maka diperoleh keseluruhan hasil klasifikasi k-
nearest neighbor untuk tiap data test dengan variasi k = 1,3,5, dan 7 adalah
sebagaimana ditampilkan pada tabel 3.16 berikut :
Tabel 3.16 Hasil klasifikasi k-Nearest Neighbor Data Test
Data test Label
Sebenarnya
Hasil klasifikasi kNN
k = 1 k = 3 k = 5 k = 7
11 TRUE FALSE FALSE TRUE TRUE
12 FALSE FALSE FALSE TRUE FALSE
13 FALSE TRUE TRUE FALSE FALSE
14 TRUE TRUE FALSE FALSE FALSE
15 FALSE FALSE FALSE TRUE FALSE
Pada tahap selanjutnya, diambil sejumlah k-tetangga terdekat berdasarkan
pengurutan euclidean distance. Karena k = 7 adalah nilai k tertinggi, maka
disini hanya ditampilkan hasil 7 tetangga terdekat saja. Selanjutnya, hasil
euclidean distance diberikan bobot dengan menginverskannya
(1/euclidean distance). Hasil pembobotan jarak untuk tiap data test dapat
dilihat pada tabel 3.17 sampai tabel 3.21 berikut:
Tabel 3.17 Pembobotan Euclidean distance data test 11
No. Euclidean
Distance
Bobot jarak
(1/euclidean
distance)
Label data
train
1 2.299 0.4349 FALSE
2 2.334 0.4285 TRUE
3 2.888 0.3463 FALSE
4 3.985 0.2510 TRUE
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
5 7.069 0.1415 TRUE
6 7.504 0.1333 FALSE
7 9.212 0.1086 TRUE
Setelah jarak diberi bobot, pengklasifikasian sudah dapat dilakukan.
Berikut hasil klasifikasi dengan weighted k-nearest neighbor untuk data
test 11 di tiap-tiap nilai k yang digunakan :
• Untuk k = 1, hasil klasifikasi adalah FALSE, dilihat dari label 1
tetangga terdekat saja.
• Untuk k = 3, masing-masing label di 3 tetangga terdekat dihitung
bobotnya.
- Bobot label TRUE (data 2) = 0.4285
- Bobot label FALSE (data 1 dan 3) = 0.4349 + 0.3463 = 0.7812
Setelah diperoleh bobot masing-masing label, dicari mana nilai yang
paling besar. Maka, hasil klasifikasinya adalah FALSE.
• Untuk k = 5, masing-masing label di 5 tetangga terdekat dihitung
bobotnya.
- Bobot label TRUE (data 2, 4, dan 5) = 0.4285 + 0.2510 + 0.1415
= 0.821
- Bobot label FALSE (data 1 dan 3) = 0.4349 + 0.3463 = 0.7812
Setelah diperoleh bobot masing-masing label, dicari mana nilai yang
paling besar. Maka, hasil klasifikasinya adalah TRUE.
• Untuk k = 7, masing-masing label di 7 tetangga terdekat dihitung
bobotnya.
- Bobot label TRUE (data 2, 4, 5, dan 7) = 0.4285 + 0.2510 +
0.1415 + 0.1086 = 0.9296
- Bobot label FALSE (data 1, 3, dan 6) = 0.4349 + 0.3463 + 0.1333
= 0.9145
Setelah diperoleh bobot masing-masing label, dicari mana nilai yang
paling besar. Maka, hasil klasifikasinya adalah TRUE.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Tabel 3.18 Pembobotan Euclidean distance data test 12
No. Euclidean
Distance
Bobot jarak
(1/euclidean
distance)
Label data
train
1 1.151 0.8689 FALSE
2 2.937 0.3405 FALSE
3 3.668 0.2726 TRUE
4 5.595 0.1787 TRUE
5 7.796 0.1283 TRUE
6 8.269 0.1209 FALSE
7 9.595 0.1042 FALSE
Berdasarkan hasil pembobotan euclidean distance pada Tabel 3.18 di atas,
maka diperoleh hasil klasifikasi dengan weighted k-nearest neighbor untuk
data test 12 di tiap-tiap nilai k yang digunakan :
• Untuk k = 1 hasil klasifikasi adalah FALSE.
• Untuk k = 3
- Bobot label TRUE (data 3) = 0.2726
- Bobot label FALSE (data 1 dan 2) = 0.8689 + 0.3405 = 1.2094
Maka, hasil klasifikasi adalah FALSE.
• Untuk k = 5
- Bobot label TRUE (data 3, 4, dan 5) = 0.2726 + 0.1787 + 0.1283
= 0.5796
- Bobot label FALSE (data 1 dan 2) = 0.8689 + 0.3405 = 1.2094
Maka, hasil klasifikasi adalah FALSE.
• Untuk k = 7
- Bobot label TRUE (data 3, 4, dan 5) = 0.2726 + 0.1787 + 0.1283
= 0.5796
- Bobot label FALSE (data 1, 2, 6 ,dan 7) = 0.8689 + 0.3405 +
0.1209 + 0.1042 = 1.4345
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Maka, hasil klasifikasi adalah FALSE.
Tabel 3.19 Pembobotan Euclidean distance data test 13
No. Euclidean
Distance
Bobot jarak
(1/euclidean
distance)
Label data
train
1 6.342 0.1577 TRUE
2 9.136 0.1095 FALSE
3 9.189 0.1088 TRUE
4 9.363 0.1068 FALSE
5 10.111 0.0989 FALSE
6 10.937 0.0914 TRUE
7 12.289 0.0814 FALSE
Berdasarkan hasil pembobotan euclidean distance pada Tabel 3.19 di atas,
maka diperoleh hasil klasifikasi dengan weighted k-nearest neighbor untuk
data test 13 di tiap-tiap nilai k yang digunakan :
• Untuk k = 1 hasil klasifikasi adalah TRUE.
• Untuk k = 3
- Bobot label TRUE (data 1 dan 3) = 0.1577 + 0.1088 = 0.2665
- Bobot label FALSE (data 2) = 0.1095
Maka, hasil klasifikasi adalah TRUE.
• Untuk k = 5
- Bobot label TRUE (data 1 dan 3) = 0.1577 + 0.1088 = 0.2665
- Bobot label FALSE (data 2, 4, dan 5) = 0.1095 + 0.1068 + 0.0989
= 0.3152
Maka, hasil klasifikasi adalah FALSE.
• Untuk k = 7
- Bobot label TRUE (data 1, 3, dan 6) = 0.1577 + 0.1088 + 0.0914
= 0.3579
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
- Bobot label FALSE (data 2, 4, 5, dan 7) = 0.1095 + 0.1068 +
0.0989 + 0.0814 = 0.3966
Maka, hasil klasifikasi adalah FALSE.
Tabel 3.20 Pembobotan Euclidean distance data test 14
No. Euclidean
Distance
Bobot jarak
(1/euclidean
distance)
Label data
train
1 2.352 0.4251 TRUE
2 2.746 0.3642 FALSE
3 2.746 0.3642 FALSE
4 3.037 0.3293 TRUE
5 3.263 0.3065 FALSE
6 4.411 0.2267 FALSE
7 8.315 0.1203 TRUE
Berdasarkan hasil pembobotan euclidean distance pada Tabel 3.20 di atas,
maka diperoleh hasil klasifikasi dengan weighted k-nearest neighbor untuk
data test 14 di tiap-tiap nilai k yang digunakan :
• Untuk k = 1 hasil klasifikasi adalah TRUE.
• Untuk k = 3
- Bobot label TRUE (data 1) = 0.4251
- Bobot label FALSE (data 2 dan 3) = 0.3642 + 0.3642 = 0.7284
Maka, hasil klasifikasi adalah FALSE.
• Untuk k = 5
- Bobot label TRUE (data 1 dan 4) = 0.4251 + 0.3293 = 0.7544
- Bobot label FALSE (data 2, 3, dan 5) = 0.3642 + 0.3642 +
0.3065= 1.0349
Maka, hasil klasifikasi adalah FALSE.
• Untuk k = 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
- Bobot label TRUE (data 1, 4, dan 7) = 0.4251 + 0.3293 +
0.1203= 0.8747
- Bobot label FALSE (data 2, 3, 5, dan 6) = 0.3642 + 0.3642 +
0.3065 + 0.2267 = 1.2616
Maka, hasil klasifikasi adalah FALSE.
Tabel 3.21 Pembobotan Euclidean distance data test 15
No. Euclidean
Distance
Bobot jarak
(1/euclidean
distance)
Label data
train
1 6.381 0.1567 FALSE
2 7.214 0.1386 FALSE
3 8.150 0.1227 TRUE
4 8.278 0.1208 TRUE
5 8.676 0.1153 TRUE
6 9.092 0.1100 FALSE
7 9.201 0.1087 FALSE
Berdasarkan hasil pembobotan euclidean distance pada Tabel 3.21 di atas,
maka diperoleh hasil klasifikasi dengan weighted k-nearest neighbor untuk
data test 15 di tiap-tiap nilai k yang digunakan :
• Untuk k = 1 hasil klasifikasi adalah FALSE.
• Untuk k = 3
- Bobot label TRUE (data 3) = 0.1227
- Bobot label FALSE (data 1 dan 2) = 0.1567 + 0.1386 = 0.2953
Maka, hasil klasifikasi adalah FALSE.
• Untuk k = 5
- Bobot label TRUE (data 3, 4, dan 5) = 0.1227 + 0.1208 + 0.1153
= 0.3588
- Bobot label FALSE (data 1 dan 2) = 0.1567 + 0.1386 = 0.2953
Maka, hasil klasifikasi adalah TRUE.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
• Untuk k = 7
- Bobot label TRUE (data 3, 4, dan 5) = 0.1227 + 0.1208 + 0.1153
= 0.3588
- Bobot label FALSE (data 1, 2, 6, dan 7) = 0.1567 + 0.1386 +
0.1100 + 0.1087 = 0.514
Maka, hasil klasifikasi adalah FALSE.
Berdasarkan hasil pembobotan jarak, diperoleh keseluruhan hasil W-
kNN untuk tiap data test yakni seperti ditunjukkan pada tabel 3.22
berikut :
Tabel 3.22 Hasil Klasifikasi Weighted k-Nearest Neighbor Data Test
Data
test
Label
Sebenarnya
Hasil klasifikasi W-kNN
k = 1 k = 3 k = 5 k = 7
11 TRUE FALSE FALSE TRUE TRUE
12 FALSE FALSE FALSE FALSE FALSE
13 FALSE TRUE TRUE FALSE FALSE
14 TRUE TRUE FALSE FALSE FALSE
15 FALSE FALSE FALSE TRUE FALSE
Setelah membandingkan hasil klasifikasi dengan k-nearest neighboar dan
weighted k-nearest neighbor pada Tabel 3.16 dan Tabel 3.22 di atas,
dapat dilihat bahwa terdapat satu hasil klasifikasi yang berubah yakni
pada data test 12 dengan k = 5 hasil kelas TRUE pada k-NN berubah
menjadi FALSE pada W-kNN sehingga hasil klasifikasi menjadi sesuai
dengan label data test yang sebenarnya.
3.6. Evaluasi dengan Confusion Matrix
Evaluasi hasil klasifikasi dilakukan dengan menghitung akurasi hasil
klasifikasi berdasarkan confusion matrix. Misalkan kita menggunakan hasil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
klasifikasi weighted k-nn dengan k = 7 pada Tabel 3.22 seperti ditunjukkan
rinciannya pada Tabel 3.23 berikut :
Tabel 3.23 Perbandingan Hasil Klasifikasi weighted 7-nn
Data Test Kelas Sebenarnya Prediksi Kelas
11 TRUE TRUE
12 FALSE FALSE
13 FALSE FALSE
14 TRUE FALSE
15 FALSE FALSE
Berdasarkan data pada Tabel 3.23 di atas, maka diperoleh hasil confusion
matrix-nya sebagaimana ditunjukkan pada tabel 3.24 berikut :
Tabel 3.24 Confusion matrix k = 7
Prediksi Kelas
TRUE FALSE
TRUE 1 1
FALSE 0 3
Maka, berdasarkan rumus (2.7) diperoleh akurasi weighted 7-nn adalah :
Akurasi = 1+3
1+3+1+0𝑥100% = 80%
Dengan langkah-langkah yang sama, diperoleh akurasi untuk weighted k-
nearest neighbor dengan k = 1,3,5, dan 7 seperti pada tabel 3.25 berikut :
Tabel 3.25 Akurasi Variasi k
k Akurasi
1 60%
3 40%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
5 60%
7 80%
Berdasarkan hasil akurasi variasi k pada Tabel 3.25 di atas, maka diperoleh k
yang paling optimal adalah k = 7.
3.7. 3-Fold Cross Validation
Pada sistem ini validasi klasifikasi menggunakan metode 3-fold Cross
Validation dimana data dipecah menjadi 3 set data dan bergantian menjadi
subset testing dan subset training. 1/3 data menjadi data testing dan 2/3 data
menjadi data training di tiap model. Skenario 3-fold yang akan digunakan
untuk validasi klasifikasi pada sistem ini dapat dilihat pada gambar 3.3
berikut:
Gambar 3.3 Skenario 3-fold Cross Validation
3.8. Spesifikasi Sistem
Berikut ini adalah alat yang digunakan untuk merancang sistem ini:
• Perangkat keras
Laptop Lenovo Type Ideapad S210 Touch
Processor : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz 1.80 GHz
Memory : 4 GB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Hard Drive: 500 GB
• Perangkat lunak
Matlab 2016b
3.9. Desain Interface
Desain interface pada sistem ini terbagi menjadi 3 panel utama yaitu panel
input data train, panel Weighted k-Nearest Neighbor dan panel Uji Data
Tunggal. Rancangan desain interface sistem ini dapat dilihat pada gambar 3.4
berikut :
Gambar 3.4 Desain Interface
Berikut penjelasan untuk setiap panelnya :
a. Panel Input Data
Panel ini digunakan untuk menginput data yang berformat .xls atau
.xlsx. Pengguna dapat melihat data yang diinputkan dengan menekan
tombol Lihat Data, serta mentransformasi data dengan menekan tombol
Transformasi Data.
b. Panel Weighted K-Nearest Neighbor
Panel ini digunakan untuk menginput jumlah atribut (tersedia nilai 1-
15), jumlah k yang digunakan untuk klasifikasi W-KNN, serta 3-fold
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
untuk Cross Validation. Setelah data train, jumlah atribut, dan jumlah k
dimasukkan, pengguna dapat melakukan klasifikasi dengan menekan
tombol Proses. Hasil klasifikasi ditampilkan pada Output.
c. Panel Uji Data Tunggal
Panel ini berisi text box yang digunakan untuk menginputkan data
untuk diklasifikasikan. Pengguna dapat mengupload file berisi banyak
data untuk diklasifikasi sekaligus dengan menekan tombol Upload Data
kemudian menekan tombol Test untuk mencari hasil klasifikasi data
tunggal. Bila pengguna ingin mengklasifikasikan data baru, pengguna
dapat menekan tombol Reset dan menginputkan data baru.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
BAB IV
HASIL DAN ANALISIS
Bab ini berisi implementasi progam komputer berdasarkan hasil perancangan
yang dibuat beserta analisis perangkat lunak yang telah dibuat. Berikut hasil dan
analisis implementasi program :
4.1. Seleksi Data
Pada tahap seleksi data ini dilakukan penghitungan information gain terhadap
atribut dengan Weka. Hasil information gain diurutkan dari nilai terbesar ke
terkecil. Perangkingan atribut berdasarkan hasil penghitungan information
gain dapat dilihat pada tabel 4.1 berikut ini:
Tabel 4.1 Perangkingan Atribut Berdasarkan Information Gain
No. Rank No. Kolom Atribut
1 0.32221 9 Page Values
2 0.08439 8 Exit Rates
3 0.05715 6 Product Related Duration
4 0.0509 7 Bounce Rates
5 0.04728 5 Product Related
6 0.03232 1 Administrative
7 0.03214 11 Month
8 0.02855 2 Administrative Duration
9 0.02763 15 Traffic Type
10 0.01158 3 Informational
11 0.01129 4 Informational Duration
12 0.01085 16 Visitor Type
13 0.00861 10 Special Day
14 0.00558 12 Operating Systems
15 0.00143 17 Weekend
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Berdasarkan hasil rangking atribut di atas, dilakukan percobaan klasifikasi
weighted k-nearest neighbor pada data yang telah ditransformasi dengan
menggunakan atribut dengan rangking tertinggi kemudian ditambahkan satu
per satu atribut dengan rangking tertinggi berikutnya dan dilihat akurasinya
berdasarkan hasil 3-fold Cross Validation.
4.2. Transformasi Data
Pada tahap ini dilakukan transformasi data pada kolom 1-10 dengan
normalisasi min-max, untuk atribut Month dan Visitor Type ditransformasi ke
data numerik.
Input Data Train
Sebelum melakukan transformasi data, user harus mengupload file berformat
.xls atau .xlsx yang berisi data untuk diklasifikasi. Fitur Lihat Data dan
Transformasi Data hanya dapat dijalankan setelah user mengupload file.
Gambaran hasil input data pada panel input data train dapat dilihat pada
gambar 4.1 berikut ini :
Gambar 4.1 Input Data Train
Setelah file diupload, user dapat melihat data mentah yang diupload dengan
fitur Lihat Data. Gambar 4.2 dan 4.2 berikut ini adalah contoh tampilan data
yang telah diupload melalui fitur Lihat Data :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Gambar 4.2 Tampilan Data Input
Gambar 4.3 Tampilan Data Input
Pada bagian kanan bawah jendela Lihat Data terdapat tombol Transformasi
Data untuk mentransformasi data mentah.
Transformasi Data
Apabila user memilih mentransformasi data baik melalui tombol
Transformasi Data pada jendela utama maupun pada jendela Lihat Data,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
sistem akan mentransformasi data dengan normalisasi min-max pada atribut
1-10 dan mengubah atribut Month dan Visitor Type ke dalam bentuk numerik.
Contoh hasil transformasi data dapat dilihat pada gambar 4.4 dan 4.5 berikut
ini :
Gambar 4.4 Hasil Transformasi Data
Gambar 4.5 Hasil Transformasi Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
4.3. Klasifikasi Weighted K-Nearest Neighbor
Pada tahap ini dilakukan klasifikasi weighted k-nearest neighbor dengan 3-
fold cross validation pada data tanpa penyeimbangan sejumlah 12.330 data
dan data setelah penyeimbangan sejumlah 7.632 data. Data tersebut telah
ditransformasi pada tahap sebelumnya. Pembagian jumlah data di masing-
masing model 3-fold cross validation yakni data training sejumlah 2/3 dari
keseluruhan data, dan data testing sejumlah 1/3 dari keseluruhan data. Disini
dicari nilai k dan jumlah atribut yang paling optimal untuk klasifikasi
weighted k-nearest neighbor. Percobaan berhenti ketika hasil akurasi optimal
pada k mulai menurun. Hasil percobaan lengkap pada setiap k dapat dilihat
pada lampiran 1. Grafik rangkuman hasil klasifikasi weighted k-nearest
neighbor tanpa penyeimbangan data dan dengan penyeimbangan data dapat
dilihat pada gambar 4.6 dan gambar 4.7 berikut ini :
Gambar 4.6 Grafik Rangkuman Hasil Klasifikasi W-kNN tanpa
penyeimbangan data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 4.7 Grafik Rangkuman Hasil Klasifikasi W-kNN dengan
penyeimbangan data
Dapat dilihat pada hasil percobaan di atas, terjadi peningkatan akurasi optimal
ketika menggunakan data yang telah diseimbangkan. Dan, berdasarkan hasil
percobaan, akurasi tertinggi diperoleh ketika menggunakan k = 65 dan jumlah
atribut 2 dengan presentase akurasi 86.2028%. Hasil confusion matrix tiap
fold untuk k = 65 dan jumlah atribut 2 dapat dilihat pada gambar 4.8 berikut :
Gambar 4.8 Hasil Confusion Matrix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
4.4. Uji Data Tunggal
Pada tahap ini dilakukan uji data tunggal pada 10 data dengan rincian 5
berlabel TRUE dan 5 berlabel FALSE. Data yang diinputkan berupa data
mentah yang belum dinormalisasi dan akan dinormalisasi terlebih dahulu
dengan data training pada sistem kemudian siap untuk diklasifikasi. Atribut
yang digunakan berjumlah 2 sesuai hasil percobaan paling optimal yaitu Page
Values dan Exit Rates. Model yang digunakan adalah weighted k-nearest
neighbor dengan k = 65. Hasil uji data tunggal sebagaimana dapat dilihat
pada gambar 4.9 berikut ini :
Gambar 4.9 Hasil Uji Data Tunggal
Data ke 1-5 berlabel TRUE dan data ke 6-10 berlabel FALSE dan dengan
menggunakan metode weighted k-nearest neighbor menghasilkan klasifikasi
yang tepat untuk semua data uji.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
BAB V
PENUTUP
5.1. Kesimpulan
Dari hasil penelitian ini, proses klasifikasi user yang berpotensi melakukan
barang online menggunakan metode Weighted k-Nearest Neighbor, dapat
ditarik kesimpulan sebagai berikut :
1. Atribut dari data web clickstream yang mempengaruhi klasifikasi
menggunakan metode Weighted k-Nearest Neighbor, berdasarkan hasil
percobaan yang dilakukan adalah 2 atribut yaitu Page Values dan Exit
Rates.
2. Pengujian yang dilakukan pada 7.632 data menghasilkan akurasi tertinggi
pada k = 65 dengan metode Weighted k-Nearest Neighbor.
3. Akurasi paling optimal percobaan klasifikasi dengan metode Weighted k-
Nearest Neighbor adalah 86.2028%.
5.2. Saran
Saran untuk penelitian akhir ini adalah :
1. Seleksi atribut pada sistem ini dapat dikembangkan dengan metode lain.
2. Sistem ini dapat dikembangkan menggunakan metode lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
DAFTAR PUSTAKA
Bicego, M. & Loog, M.. (2016). Weighted K-Nearest Neighbor revisited. 1642-
1647. 10.1109/ICPR.2016.7899872.
Dicky N., Gunadi N. (2015). Algoritma Data Mining dan Pengujian. Penerbit
DeePublish : Yogyakarta.
Gorunescu, Florin. (2011). Data Mining : Concepts, Model, and Techniques.
Springer.
Han, Jiawei, dkk. (2012). Data Mining : Concepts and Techniques, Elsevier Inc.
Kusrni dan Luthfi, E.T.(2009). Algoritma Data Mining. Yogyakarta: ANDI.
Prasetyo, E. (2014). Data Mining – Mengolah Data Menjadi Informasi
Menggunakan Matlab. Penerbit Andi : Yogyakarta.
Rayport J., Jaworski B. (2003). Introduction to e-Commerce. Penerbit
McGrawHill : New York.
Sakar, C.O., Polat, S.O., Katircioglu, M. et al. Neural Comput & Applic (2018).
Schliep, K. P. (2004). Weighted k-nearest-neighbor techniques and ordinal
classification. Open Access LMU. https://doi.org/10.5282/ubm/epub.1769
Suchacka, Grażyna & Skolimowska, Magdalena & Potempa, A.. (2015). A k-
Nearest Neighbors method for classifying user sessions in E-commerce scenario.
2015. 64-69.
Suchacka, Grażyna & Skolimowska, Magdalena & Potempa, Aneta. (2015).
Classification Of E-Customer Sessions Based On Support Vector Machine.
Proceedings - 29th European Conference on Modelling and Simulation, ECMS
2015. 594-600. 10.7148/2015-0594.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Lampiran 1 : Hasil Percobaan Klasifikasi Weighted k-Nearest Neighbor
k Jumlah Atribut
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 83.949 82.075 80.778 80.936 81.040 80.267 73.939 74.044 72.563 72.419 72.196 71.803 71.423 70.139 69.890
2 83.923 82.901 80.831 80.988 81.080 80.267 73.952 74.057 72.563 72.419 72.196 71.803 71.423 70.139 69.890
3 84.499 84.080 83.189 83.504 83.726 82.534 76.153 76.271 73.572 73.637 73.401 72.930 72.707 71.462 71.292
4 84.631 84.277 83.333 84.028 84.015 82.862 76.297 76.428 73.781 73.808 73.808 73.244 72.930 71.488 71.436
5 84.696 84.526 84.434 84.513 84.617 83.451 77.136 76.834 74.319 74.175 74.201 73.310 73.192 72.039 72.235
6 84.879 84.709 84.591 84.657 84.670 83.700 77.031 77.110 74.410 74.555 74.528 73.637 73.467 72.262 72.183
7 84.906 84.722 84.827 85.010 84.617 83.635 77.083 77.057 74.279 74.502 74.253 73.415 73.454 72.366 72.235
8 84.971 85.128 84.775 85.155 84.696 83.831 77.267 77.385 74.450 74.777 74.699 73.572 73.637 72.602 72.353
9 85.037 85.181 85.142 85.246 84.513 84.237 77.332 77.372 74.450 74.633 74.515 73.585 73.598 72.628 72.052
10 85.050 85.286 84.866 85.076 84.617 84.172 77.162 77.345 74.463 74.620 74.620 73.768 73.716 72.642 72.091
11 85.063 85.325 85.299 85.194 84.788 84.015 77.123 77.254 74.528 74.607 74.620 73.860 73.808 72.615 72.039
12 85.102 85.390 85.194 85.390 84.919 84.146 77.136 77.463 74.437 74.607 74.450 73.847 73.781 72.628 72.183
13 85.220 85.364 85.338 85.351 84.644 84.172 77.149 77.293 74.646 74.856 74.803 73.886 73.795 72.602 72.026
14 85.220 85.535 85.273 85.456 84.696 84.224 77.188 77.372 74.659 74.633 74.738 73.834 73.834 72.733 72.091
15 85.220 85.521 85.259 85.246 84.709 84.185 77.241 77.280 74.699 74.699 74.646 73.834 73.821 72.655 72.091
16 85.181 85.613 85.273 85.364 84.814 84.198 77.254 77.254 74.712 74.725 74.764 73.886 73.860 72.694 72.209
17 85.194 85.653 85.246 85.312 84.644 84.185 77.254 77.227 74.672 74.869 74.725 73.899 73.873 72.681 72.248
18 85.194 85.600 85.417 85.390 84.644 84.237 77.201 77.372 74.528 74.777 74.738 74.030 74.030 72.537 72.209
19 85.273 85.626 85.312 85.259 84.604 84.119 77.267 77.345 74.581 74.672 74.738 73.847 73.886 72.510 72.406
20 85.220 85.561 85.482 85.404 84.657 84.172 77.188 77.306 74.699 74.555 74.502 73.926 73.912 72.537 72.353
21 85.259 85.613 85.482 85.286 84.617 84.002 77.241 77.306 74.699 74.581 74.633 73.677 73.624 72.537 72.393
22 85.299 85.639 85.574 85.325 84.657 84.093 77.123 77.162 74.817 74.646 74.646 73.873 73.873 72.432 72.248
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
k Jumlah Atribut
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
23 85.273 85.718 85.561 85.338 84.604 83.910 77.201 77.254 74.843 74.686 74.607 73.821 73.795 72.720 72.366
24 85.351 85.679 85.482 85.273 84.604 83.949 77.254 77.358 74.843 74.620 74.594 73.834 73.821 72.707 72.484
25 85.364 85.770 85.390 85.338 84.486 83.897 77.201 77.345 74.895 74.686 74.607 73.899 73.873 72.877 72.471
26 85.364 85.836 85.377 85.246 84.447 83.923 77.280 77.293 74.869 74.777 74.607 73.912 73.912 72.864 72.484
27 85.404 85.875 85.351 85.364 84.421 83.857 77.267 77.214 74.921 74.725 74.633 73.952 73.912 73.008 72.419
28 85.417 85.888 85.404 85.246 84.486 83.975 77.214 77.267 74.921 74.777 74.817 74.070 74.070 72.890 72.406
29 85.443 85.915 85.377 85.364 84.447 83.897 77.188 77.345 74.921 74.908 74.843 74.266 74.240 72.786 72.563
30 85.469 85.928 85.233 85.220 84.578 83.923 77.110 77.175 74.895 74.974 75.013 74.096 74.083 72.838 72.576
31 85.469 85.993 85.338 85.325 84.565 83.831 77.083 77.149 74.895 74.921 74.948 74.109 74.083 72.825 72.563
32 85.482 86.006 85.299 85.259 84.631 83.792 77.070 77.083 74.830 74.921 74.987 74.044 74.044 72.956 72.681
33 85.469 85.954 85.351 85.220 84.578 83.818 77.005 77.123 74.882 74.869 74.987 74.148 74.096 72.890 72.668
34 85.456 86.046 85.312 85.273 84.591 83.805 77.018 77.110 74.843 74.948 74.908 74.044 73.991 72.956 72.773
35 85.404 86.006 85.312 85.194 84.552 83.884 77.031 77.057 74.869 74.921 74.987 74.044 74.004 72.930 72.668
36 85.377 86.046 85.351 85.181 84.631 83.857 77.018 77.083 74.699 74.961 74.961 74.057 74.017 72.917 72.733
37 85.364 86.019 85.312 85.246 84.526 83.805 77.005 77.070 74.738 75.026 74.987 74.096 74.044 72.969 72.825
38 85.390 86.072 85.299 85.181 84.526 83.949 76.874 76.900 74.738 75.026 75.000 73.991 73.952 72.943 72.890
39 85.404 85.993 85.312 85.115 84.539 83.831 76.847 76.952 74.764 75.066 74.987 73.991 73.912 72.995 72.733
40 85.390 86.046 85.299 85.076 84.513 83.857 76.821 76.821 74.777 75.052 75.013 74.030 73.939 73.061 72.759
41 85.351 86.059 85.325 85.102 84.460 83.779 76.874 76.782 74.764 74.974 74.987 74.070 73.965 73.035 72.773
42 85.338 86.098 85.299 85.115 84.421 83.805 76.821 76.782 74.790 74.987 74.948 73.991 73.926 73.100 72.759
43 85.351 86.072 85.325 85.102 84.473 83.831 76.795 76.703 74.869 74.948 74.974 74.083 73.965 73.139 72.759
44 85.338 86.072 85.351 85.089 84.460 83.818 76.795 76.861 75.013 75.039 74.974 74.096 74.070 73.139 72.628
45 85.351 86.124 85.325 85.063 84.486 83.831 76.808 76.756 74.934 75.000 74.948 74.070 74.030 73.021 72.615
46 85.377 86.124 85.312 85.089 84.434 83.779 76.730 76.769 74.882 75.000 74.908 74.004 73.965 73.087 72.746
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
k Jumlah Atribut
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
47 85.351 86.137 85.299 85.050 84.447 83.700 76.730 76.703 74.856 75.026 74.934 74.017 74.004 73.048 72.773
48 85.364 86.150 85.273 85.115 84.316 83.661 76.730 76.730 74.934 75.039 74.961 74.083 74.096 73.113 72.733
49 85.364 86.137 85.233 85.063 84.303 83.661 76.703 76.664 74.974 75.013 74.934 74.057 74.004 73.061 72.694
50 85.364 86.098 85.286 85.102 84.237 83.661 76.743 76.651 74.830 74.987 75.039 74.083 74.044 73.008 72.576
51 85.390 86.111 85.259 85.076 84.290 83.648 76.716 76.690 74.817 74.961 74.974 74.070 74.030 73.035 72.707
52 85.377 86.072 85.325 85.142 84.251 83.687 76.651 76.625 74.830 74.948 74.987 74.083 73.991 73.113 72.759
53 85.404 86.085 85.351 85.076 84.290 83.595 76.677 76.546 74.869 74.987 75.026 74.122 74.044 73.113 72.812
54 85.404 86.059 85.351 85.010 84.237 83.648 76.690 76.599 74.843 75.039 75.000 74.122 74.057 73.166 72.825
55 85.417 86.046 85.364 84.984 84.264 83.569 76.625 76.520 74.803 75.026 74.987 74.201 74.122 73.179 72.877
56 85.417 86.046 85.325 84.958 84.316 83.556 76.664 76.441 74.764 74.948 75.026 74.135 74.057 73.257 72.917
57 85.430 86.059 85.338 84.958 84.237 83.556 76.572 76.441 74.764 74.934 75.039 74.227 74.161 73.126 72.995
58 85.417 86.098 85.259 84.906 84.224 83.530 76.585 76.389 74.830 74.921 75.039 74.122 74.057 73.179 72.904
59 85.430 86.098 85.286 84.945 84.251 83.530 76.507 76.441 74.830 75.000 75.092 74.188 74.109 73.100 72.851
60 85.430 86.098 85.246 84.945 84.224 83.438 76.494 76.389 74.817 75.039 75.039 74.070 74.017 73.100 72.943
61 85.430 86.098 85.259 84.932 84.237 83.464 76.468 76.271 74.895 74.948 75.039 74.122 74.017 73.035 72.995
62 85.417 86.190 85.233 84.919 84.198 83.425 76.402 76.258 74.856 75.052 75.039 74.044 73.965 73.061 72.995
63 85.443 86.177 85.246 84.971 84.185 83.438 76.389 76.323 74.934 75.079 75.039 74.109 73.991 72.995 73.021
64 85.456 86.150 85.246 84.893 84.185 83.477 76.389 76.271 74.934 75.118 75.000 73.965 73.886 73.153 73.139
65 85.417 86.203 85.246 84.840 84.185 83.451 76.310 76.245 75.013 75.092 75.105 74.109 73.978 73.100 73.113
66 85.443 86.177 85.299 84.893 84.198 83.504 76.310 76.140 75.000 75.052 75.079 74.030 73.899 73.100 73.192
67 85.417 86.190 85.273 84.879 84.237 83.425 76.323 76.192 75.000 75.092 75.092 74.161 74.030 73.231 73.100
68 85.456 86.177 85.194 84.840 84.211 83.438 76.245 76.127 75.000 75.039 75.013 74.096 73.978 73.205 73.297
69 85.430 86.190 85.259 84.866 84.198 83.386 76.153 76.166 74.974 75.092 75.105 74.188 74.083 73.336 73.244
70 85.443 86.190 85.312 84.840 84.119 83.386 76.114 76.127 75.000 75.092 75.079 74.057 73.991 73.270 73.323
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Lampiran 2 : Kode Program
1. Source Code Random Undersampling
clc; clear; %% baca data [a b data]=xlsread('pisah.xls'); %baca data yang telah
dipisah berdasar label True dan label False dataTrue=data(1:1908,:); %menyimpan data berlabel True dataFalseMentah=data(1909:end,:); %menyimpan data
berlabel False randomPick1=randsample(size(dataFalseMentah,1),size(dataT
rue,1)*3); %mengambil index random dataFalseFix1=num2cell(rand((size(dataTrue,1)*3),18));
%menyimpan data berlabel False hasil sampling for i=1:size(randomPick1,1) dataFalseFix1(i,:)=dataFalseMentah(randomPick1(i),:);
%mengambil acak sejumlah 3 x jumlah dataTrue untuk
dataFalse baru end %% menggabungkan dataTrue dan dataFalse yang sudah
diseimbangkan 1:3 dataFix1=[dataTrue.' dataFalseFix1.']; dataFix1=dataFix1.'; %% acak keseluruhan data yang sudah diseimbangkan randomPick2=randsample(size(dataFix1,1),size(dataFix1,1))
; dataFix=num2cell(rand((size(dataFix1,1)),18)); for i=1:size(randomPick2,1)
dataFix(i,:)=dataFix1(randomPick2(i),:); end %% menyimpan hasil random sampling xlswrite('random3.xls',dataFix,1);
2. Source Code Transformasi
%baca data %... [num, text, raw] = xlsread('random2.xls');
%menghitung jumlah data revenue = raw(:,18); [m,n] = size(revenue);
%transformasi data kolom 11-Month & 16-Visitor Type dari
kategorikal ke numerikal for i=1:m %transformasi data kolom 11-Month if (strcmp(raw(i,11), 'Jan')) num(i,11) = 1; elseif (strcmp(raw(i,11), 'Feb')) num(i,11) = 2;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
elseif (strcmp(raw(i,11), 'Mar')) num(i,11) = 3; elseif (strcmp(raw(i,11), 'Apr')) num(i,11) = 4; elseif(strcmp(raw(i,11), 'May')) num(i,11) = 5; elseif(strcmp(raw(i,11), 'June')) num(i,11) = 6; elseif(strcmp(raw(i,11), 'Jul')) num(i,11) = 7; elseif(strcmp(raw(i,11), 'Aug')) num(i,11) = 8; elseif(strcmp(raw(i,11), 'Sep')) num(i,11) = 9; elseif(strcmp(raw(i,11), 'Oct')) num(i,11) = 10; elseif(strcmp(raw(i,11), 'Nov')) num(i,11) = 11; elseif(strcmp(raw(i,11), 'Dec')) num(i,11) = 12; end %transformasi data kolom 16-Visitor Type if (strcmp(raw(i,16), 'Returning_Visitor')) num(i,16) = 1; elseif(strcmp(raw(i,16), 'New_Visitor')) num(i,16) = 2; elseif(strcmp(raw(i,16), 'Other')) num(i,16) = 3; end end
% normalisasi min max kolom 1-10 admin = min_max(num(:,1)); adminDur = min_max(num(:,2)); info = min_max(num(:,3)); infoDur = min_max(num(:,4)); product = min_max(num(:,5)); productDur = min_max(num(:,6)); bounceRates = min_max(num(:,7)); exitRates = min_max(num(:,8)); pageVal = min_max(num(:,9)); specialDay = min_max(num(:,10)); [m,n] = size(admin); hasilTransformasi = num;
%menyimpan hasil normalisasi ke variabel
hasilTransformasi for i=1:m hasilTransformasi(i,1) = admin(i); hasilTransformasi(i,2) = adminDur(i); hasilTransformasi(i,3) = info(i); hasilTransformasi(i,4) = infoDur(i); hasilTransformasi(i,5) = product(i); hasilTransformasi(i,6) = productDur(i); hasilTransformasi(i,7) = bounceRates(i); hasilTransformasi(i,8) = exitRates(i);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
hasilTransformasi(i,9) = pageVal(i); hasilTransformasi(i,10) = specialDay(i); end
xlswrite('random2_transformasi.xls', hasilTransformasi,
1); end
3. Source Code Normalisasi Min-Max
function [newValue] = min_max(v_data) % MATH_SCALE_VALUES % Konversi suatu nilai dri range tertentu ke range yang
baru % (originalValue -
minOriginalRange)(maxNewRange - minNewRange) % newValue = -----------------------------------------
-------------------- + minNewRange % (maxOriginalRange -
minOriginalRange)
[m,n] = size(v_data); min_ = min(v_data); % minOriginalRange max_ = max(v_data); % maxOriginalRange nmin = 0; % minNewRange nmax = 1; % maxNewRange newValue = v_data; % v_data = originalValue
for i=1:m newValue(i) = nmin + (((v_data(i) - min_)*(nmax -
nmin))/(max_ - min_)); end end
4. Source Code Klasifikasi W-kNN
function [output] = wknn2(dataTrain, dataTrainLabel,
dataTest, k) [m,n] = size(dataTrainLabel); [o,p] = size(dataTest);
hasil = zeros(1,2);
%modelling for i=1:o sort = zeros(m,2); sort(:,2) = dataTrainLabel; dist = eucDistance(dataTrain,dataTest(i,:)); %mencari
jarak sort(:,1) = dist.'; assignin('base', 'sort', sort) sort = sortrows(sort,1); %mengurutkan jarak secara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
ascending (terkecil ke terbesar) assignin('base', 'sort', sort) true = 0; false = 0; for l=1:k %mengambil k-tetangga terdekat weight = 1/abs(sort(l,1)); %memberikan weight
pada jarak ke l if (sort(l,2)==1) true = true+weight; elseif (sort(l,2)==0) false = false+weight; end end hasil(i,1) = true; hasil(i,2) = false; end
%predict for i=1:o if(hasil(i,1)>hasil(i,2)) output(i) = 1; elseif (hasil(i,1)<=hasil(i,2)) output(i) = 0; end end end
5. Source Code Euclidean Distance
function [eucDist] = eucDistance(Y,X) % MATH_SCALE_VALUES % Mencari jarak euclidean % Y = data train % X = data test
[m,n] = size(X); [o,p] = size(Y);
%menghitung euclidean distance masing-masing data uji ke
data latih for i=1:o a = 0; for j=1:n a = a + ((X(m,j) - Y(i,j)) .^ 2); end eucDist(i) = sqrt(a); end
6. Source Code 3-fold
clear data = xlsread('random2.xls'); k = 65; %jumlah k tetangga untuk knn
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
%rangking = [9,8,6,7,5,1,11,2,15,3,4,16,10,12,17]; atribut = [9,8]; %atribut yg digunakan 9,8
%3-fold cross validation fold = 3; [m,n] = size(data); range = round(m/fold);
for i=1:fold trueLabels = data(range*(i-1)+1:(range*i),18);
%menyimpan label sebenarnya dari data pada fold ke-i
dataTest = data(range*(i-1)+1:(range*i),atribut);
%menyimpan data test fold ke-i
dataTrain = data; dataTrain(range*(i-1)+1:(range*i),:) = []; dataTrainLabel = dataTrain(:,18); %menyimpan label
data training untuk fold ke-i dataTrain = dataTrain(:,atribut); %menyimpan data
training pada fold ke-i sudah dipisah dengan data test
p = wknn2(dataTrain, dataTrainLabel, dataTest,k);
%melakukan klasifikasi wknn untuk fold ke-i predictedLabels = transpose(p); %menyimpan hasil
prediksi label dari klasifikasi fold ke-i
c = confusionmat(trueLabels,predictedLabels);
%menyimpan hasil confusion matriks untuk hasil fold ke-i akurasi(i)=(sum(diag(c)))/range*100; %menghitung
akurasi dari klasifikasi fold ke-i berdasarkan hasil
confusion matrix end
akurasiTot = sum(akurasi)/fold; %menghitung akurasi
keseluruhan dari klasifikasi wknn 10-fold cross
validation
7. Source Code GUI
a) wknn.m
function varargout = wknn(varargin) % WKNNBUTTON MATLAB code for wknnButton.fig ... % End initialization code - DO NOT EDIT
% --- Executes just before wknnButton is made visible. function wknn_OpeningFcn(hObject, eventdata, handles,
varargin) % This function has no outputtext args, see OutputFcn. ...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
% Choose default command line outputtext for wknnButton handles.Output = hObject;
% Update handles structure guidata(hObject, handles);
namaFile = get(handles.namaFile, 'String');
if (isempty(namaFile)) %mengecek bila belum ada data yang diinput maka
tombol lihatData, %transformasi, dan wknn di-disable set(handles.lihatDataButton,'Enable','off'); set(handles.transformasiButton,'Enable','off'); set(handles.wknnButton,'Enable','off'); else %bila sudah ada data yang diinput, tombol lihatData,
transformasi, dan %wknn di-enable set(handles.lihatDataButton,'Enable','on'); set(handles.transformasiButton,'Enable','on'); set(handles.wknnButton,'Enable','on'); end
% UIWAIT makes wknnButton wait for user response (see
UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the
command line. function varargout = wknn_OutputFcn(hObject, eventdata,
handles) % varargout cell array for returning outputtext args
(see VARARGOUT); ... % Get default command line outputtext from handles
structure varargout{1} = handles.Output;
% --- Executes on button press in uploadFileButton. function uploadFileButton_Callback(hObject, eventdata,
handles) % hObject handle to uploadFileButton (see GCBO) ... % handles structure with handles and user data (see
GUIDATA) [filename, filepath] = uigetfile([{'*.xls','XLS
Only'};{'*.xlsx','XLSX Only'}],'Pilih File'); clear global; global num; global raw;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
fullname = strcat(filepath, filename); if (~(isempty(fullname))) [num, text, raw] = xlsread(fullname); set(handles.namaFile,'String', filename); setappdata(0,'num',num); setappdata(0,'raw',raw); refreshdata(wknn); end
function namaFile_Callback(hObject, eventdata, handles) % hObject handle to namaFile (see GCBO) ... % Hints: get(hObject,'String') returns contents of
namaFile as text % str2double(get(hObject,'String')) returns
contents of namaFile as a double refreshdata(wknn);
% --- Executes during object creation, after setting all
properties. function namaFile_CreateFcn(hObject, eventdata, handles) % hObject handle to namaFile (see GCBO) ... % Hint: edit controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in lihatDataButton. function lihatDataButton_Callback(hObject, eventdata,
handles) % hObject handle to lihatDataButton (see GCBO) ... % handles structure with handles and user data (see
GUIDATA) lihatData;
% --- Executes on button press in transformasiButton. function transformasiButton_Callback(hObject, eventdata,
handles) % hObject handle to transformasiButton (see GCBO) ... % handles structure with handles and user data (see
GUIDATA) global num; global raw; revenue = raw(:,18); [m,n] = size(revenue);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
%transformasi data kolom 11-Month & 16-Visitor Type dari
kategorikal ke numerikal for i=1:m %transformasi data kolom 11-Month , min_max if (strcmp(raw(i,11), 'Jan')) num(i,11) = 1; elseif (strcmp(raw(i,11), 'Feb')) num(i,11) = 2; elseif (strcmp(raw(i,11), 'Mar')) num(i,11) = 3; elseif (strcmp(raw(i,11), 'Apr')) num(i,Jan11) = 4; elseif(strcmp(raw(i,11), 'May')) num(i,11) = 5; elseif(strcmp(raw(i,11), 'June')) num(i,11) = 6; elseif(strcmp(raw(i,11), 'Jul')) num(i,11) = 7; elseif(strcmp(raw(i,11), 'Aug')) num(i,11) = 8; elseif(strcmp(raw(i,11), 'Sep')) num(i,11) = 9; elseif(strcmp(raw(i,11), 'Oct')) num(i,11) = 10; elseif(strcmp(raw(i,11), 'Nov')) num(i,11) = 11; elseif(strcmp(raw(i,11), 'Dec')) num(i,11) = 12; end %transformasi data kolom 16-Visitor Type if (strcmp(raw(i,16), 'Returning_Visitor')) num(i,16) = 1; elseif(strcmp(raw(i,16), 'New_Visitor')) num(i,16) = 2; elseif(strcmp(raw(i,16), 'Other')) num(i,16) = 3; end end
% normalisasi min max kolom 1-10 admin = min_max(num(:,1)); adminDur = min_max(num(:,2)); info = min_max(num(:,3)); infoDur = min_max(num(:,4)); product = min_max(num(:,5)); productDur = min_max(num(:,6)); bounceRates = min_max(num(:,7)); exitRates = min_max(num(:,8)); pageVal = min_max(num(:,9)); specialDay = min_max(num(:,10)); [m,n] = size(admin);
global hasilTransformasi; hasilTransformasi = num; for i=1:m
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
hasilTransformasi(i,1) = admin(i); hasilTransformasi(i,2) = adminDur(i); hasilTransformasi(i,3) = info(i); hasilTransformasi(i,4) = infoDur(i); hasilTransformasi(i,5) = product(i); hasilTransformasi(i,6) = productDur(i); hasilTransformasi(i,7) = bounceRates(i); hasilTransformasi(i,8) = exitRates(i); hasilTransformasi(i,9) = pageVal(i); hasilTransformasi(i,10) = specialDay(i); end setappdata(0,'hasilTransformasi',hasilTransformasi); transformasiData
function k_Callback(hObject, eventdata, handles) % hObject handle to k (see GCBO) ... % Hints: get(hObject,'String') returns contents of k as
text % str2double(get(hObject,'String')) returns
contents of k as a double
% --- Executes during object creation, after setting all
properties. function k_CreateFcn(hObject, eventdata, handles) % hObject handle to k (see GCBO) ... % Hint: edit controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on selection change in jumlahAtribut. function jumlahAtribut_Callback(hObject, eventdata,
handles) % hObject handle to jumlahAtribut (see GCBO) ... % Hints: contents = cellstr(get(hObject,'String'))
returns jumlahAtribut contents as cell array % contents{get(hObject,'Value')} returns selected
item from jumlahAtribut
% --- Executes during object creation, after setting all
properties. function jumlahAtribut_CreateFcn(hObject, eventdata,
handles) % hObject handle to jumlahAtribut (see GCBO) ...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
% Hint: popupmenu controls usually have a white
background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
set(hObject, 'String', {'1', '2', '3', '4', '5', '6',
'7', '8', '9', '10', '11', '12', '13', '14', '15'});
% --- Executes on button press in wknnButton. function wknnButton_Callback(hObject, eventdata, handles) % hObject handle to wknnButton (see GCBO) % eventdata reserved - to be defined in a future version
of MATLAB % handles structure with handles and user data (see
GUIDATA) refreshdata(wknn);
global hasilTransformasi; global num;
data = [];
if (isempty(hasilTransformasi)) data = num; else data = hasilTransformasi; end
k = str2double(get(handles.k, 'String')); %jumlah k
tetangga untuk knn jumlahAtribut =(get(handles.jumlahAtribut, 'Value')); rangking = [9,8,6,7,5,1,11,2,15,3,4,16,10,12,17]; namaAtribut = {'Page Values', 'Exit Rates', 'Product
Related Duration', 'Bounce Rates', 'Product
Related','Administrative', 'Month', 'Administrative
Duration', 'Traffic Type', 'Informational',
'Informational Duration','Visitor Type', 'Special Day',
'Operating Systems', 'Weekend'}; atribut = rangking(:,1:jumlahAtribut); [m,n] = size(data);
%% outputText output = sprintf('%s===Weighted %d-Nearest
Neighbor===\n', '', k); output = sprintf('%sJumlah data : %d\n', output, m); output = sprintf('%sAtribut \t : %d\n', output,
jumlahAtribut);
for i=1:jumlahAtribut output = sprintf('%s ', output,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
char(namaAtribut(:,i))); output = sprintf('%s %d\n', output, ''); end
output = sprintf('%s\n===3-fold Cross Validation===%d\n',
output, ''); output = sprintf('%s==Confusion Matrix==%d\n\n', output,
'');
%% 3-fold cross validation fold = 3; [m,n] = size(data); range = round(m/fold);
for i=1:fold output = sprintf('%sFold %d\n', output, i); output = sprintf('%s a b \t\t <--
diklasifikasikan sebagai%d\n', output, '');
trueLabels = data(range*(i-1)+1:(range*i),18);
%menyimpan label sebenarnya dari data pada fold ke-i dataTest = data(range*(i-1)+1:(range*i),atribut);
%menyimpan data test fold ke-i dataTrain = data; dataTrain(range*(i-1)+1:(range*i),:) = []; dataTrainLabel = dataTrain(:,18); %menyimpan
label data training untuk fold ke-i dataTrain = dataTrain(:,atribut); %menyimpan data
training pada fold ke-i sudah dipisah dengan data test
p = wknn2(dataTrain, dataTrainLabel, dataTest,
k); %melakukan klasifikasi wknn untuk fold ke-i
predictedLabels = transpose(p); %menyimpan hasil
prediksi label dari klasifikasi fold ke-i c = confusionmat(trueLabels,predictedLabels);
%menyimpan hasil confusion matriks untuk hasil fold ke-i % assignin('base', 'c',c); d = [c(2,2) c(2,1); c(1,2) c(1,1)]; g = num2str(d);
[m,n] = size(g); if(m==1) h = sprintf('%s', '', g(1,:)); h = sprintf('%s 0\t | a = FALSE %d\n', h,
''); h = sprintf('%s 0 0 \t | b = TRUE %d\n', h,
''); else h = sprintf('%s', '', g(1,:)); h = sprintf('%s \t | a = TRUE %d\n', h, ''); h = sprintf('%s', h, g(2,:)); h = sprintf('%s \t | b = FALSE %d\n', h, ''); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
output = sprintf('%s', output, h);
akurasi(i)=(sum(diag(c)))/range*100; %menghitung
akurasi dari klasifikasi fold ke-i berdasarkan hasil
confusion matrix
output = sprintf('%sAkurasi : %.4f%% \n\n',
output, akurasi(i)); end
akurasiTot = sum(akurasi)/fold; %menghitung akurasi
keseluruhan dari klasifikasi wknn 3-fold cross validation output = sprintf('%sAkurasi Keseluruhan = %.4f%% \n',
output, akurasiTot); set(handles.outputText,'String',output);
function pageValues_Callback(hObject, eventdata, handles) % hObject handle to pageValues (see GCBO) ... % Hints: get(hObject,'String') returns contents of
pageValues as text % str2double(get(hObject,'String')) returns
contents of pageValues as a double
% --- Executes during object creation, after setting all
properties. function pageValues_CreateFcn(hObject, eventdata,
handles) % hObject handle to pageValues (see GCBO) ... % Hint: edit controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function exitRates_Callback(hObject, eventdata, handles) % hObject handle to exitRates (see GCBO) ... % Hints: get(hObject,'String') returns contents of
exitRates as text % str2double(get(hObject,'String')) returns
contents of exitRates as a double
% --- Executes during object creation, after setting all
properties. function exitRates_CreateFcn(hObject, eventdata, handles)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
% hObject handle to exitRates (see GCBO) ... % Hint: edit controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in uploadDataUjiButton. function uploadDataUjiButton_Callback(hObject, eventdata,
handles) % hObject handle to uploadDataUjiButton (see GCBO) ... % handles structure with handles and user data (see
GUIDATA) set(handles.tabelHasil,'data',''); [filename, filepath] = uigetfile([{'*.xls','XLS
Only'};{'*.xlsx','XLSX Only'}],'Pilih File'); global dataTestU; fullname = strcat(filepath, filename); if(~(isempty(fullname))) [num, text, raw] = xlsread(fullname);
if((size(num,2)>2)) dataTestU = [num(:,9) num(:,8)]; else dataTestU = [num(:,1) num(:,2)]; end if((size(dataTestU,1)==1)) set(handles.pageValues,'String',
dataTestU(:,1)); set(handles.exitRates,'String', dataTestU(:,2)); end refreshdata(wknn); end
% --- Executes on button press in tesButton. function tesButton_Callback(hObject, eventdata, handles) % hObject handle to tesButton (see GCBO) ... % handles structure with handles and user data (see
GUIDATA) set(handles.tabelHasil,'data',''); global dataTestU; k = 65; %jumlah k tetangga untuk wknn if((size(dataTestU,1)==1)||(isempty(dataTestU))) input1 = str2double(get(handles.pageValues,
'String')); input2 = str2double(get(handles.exitRates,
'String')); dataTest = [input1 input2]; else
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
set(handles.pageValues,'String', '0'); set(handles.exitRates,'String', '0'); dataTest = dataTestU; end
dataTestU = []; dataTrainT = []; dataTestT = [];
load dataTrain.mat;
for j = 1:size(dataTest,1) num = [cell2mat(dataTrain(:,[9,8]));dataTest(j,:)];
%menggabungkan dataTrain dan dataTest untuk dinormalisasi
seluruhnya
% normalisasi min max kolom 1-2 pageVal = min_max(num(:,1)); exitRates = min_max(num(:,2));
[m,n] = size(pageVal); transformasi = num;
%menyimpan hasil normalisasi ke variabel transformasi for i=1:m transformasi(i,1) = pageVal(i); transformasi(i,2) = exitRates(i); end
dataTrainT{1,j} = transformasi(1:7622,:); %menyimpan
hasil normalisasi untuk data train dataTestT(j,:) = transformasi(7623,:); %menyimpan hasil
normalisasi untuk data test end
dataTrainLabel = cell2mat(dataTrain(:,18)); [m,n] = size(dataTestT);
for i=1:m output(i) = wknn2(cell2mat(dataTrainT(1,i)),
dataTrainLabel, dataTestT(i,:), k); %melakukan
klasifikasi wknn terhadap data test if output(i)==1 hasil(i,1) = {'User berpotensi membeli
barang online'}; else hasil(i,1) = {'User tidak berpotensi membeli
barang online'}; end end
dataTest1 = num2cell(dataTest); dataTest1(:,3) = hasil; output = dataTest1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
set(handles.tabelHasil,'ColumnName',{'Page Values', 'Exit
Rates','Hasil Klasifikasi'}); set(handles.tabelHasil,'ColumnWidth',{'auto', 'auto',
300}); set(handles.tabelHasil,'ColumnFormat',{'short', 'short',
'long'}); set(handles.tabelHasil,'data',output);
xlswrite('hasil.xls', output, 1);
% --- Executes on button press in resetButton. function resetButton_Callback(hObject, eventdata,
handles) % hObject handle to resetButton (see GCBO) ... % handles structure with handles and user data (see
GUIDATA) set(handles.pageValues,'String', '0'); set(handles.exitRates,'String', '0'); set(handles.tabelHasil,'data','');
% --- Executes during object deletion, before destroying
properties. function tabelHasil_DeleteFcn(hObject, eventdata, ~) % hObject handle to tabelHasil (see GCBO) ... % handles structure with handles and user data (see
GUIDATA)
% --- Executes when user attempts to close figure1. function figure1_CloseRequestFcn(hObject, eventdata,
handles) % hObject handle to figure1 (see GCBO) ... % Hint: delete(hObject) closes the figure clear global; delete(hObject);
% --- Executes during object creation, after setting all
properties. function text89_CreateFcn(hObject, eventdata, handles) % hObject handle to text89 (see GCBO) ...
% Hint: edit controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
% --- Executes during object creation, after setting all
properties. function text99_CreateFcn(hObject, eventdata, handles) % hObject handle to text99 (see GCBO) ... % Hint: edit controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all
properties. function text16_CreateFcn(hObject, eventdata, handles) % hObject handle to text16 (see GCBO) ... % Hint: edit controls usually have a white background on
Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
b) lihatData.m
function varargout = lihatData(varargin) % LIHATDATA MATLAB code for lihatData.fig % LIHATDATA, by itself, creates a new LIHATDATA or
raises the existing ... % End initialization code - DO NOT EDIT
% --- Executes just before lihatData is made visible. function lihatData_OpeningFcn(hObject, eventdata,
handles, varargin) % This function has no output args, see OutputFcn. ... % Choose default command line output for lihatData handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% get the handle of Gui1 % if exists (not empty) % if ~isempty(h) % % get handles and other user-defined data
associated to Gui1 % g1data = guidata(h);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
% % maybe you want to set the text in Gui2 with that
from Gui1
% % maybe you want to get some data that was saved to
the Gui1 app raw = getappdata(0, 'raw');
set(handles.tabelData,'ColumnName',{'Administrative',
'Administrative Duration', 'Informational',
'Informational Duration', 'Product Related', 'Product
Related Duration', 'Bounce Rates', 'Exit Rates', 'Page
Values', 'Special Day', 'Month', 'OS', 'Browser',
'Region', 'Traffic Type', 'Visitor Type', 'Weekend',
'Revenue'});
set(handles.tabelData,'data',raw); % end
% UIWAIT makes lihatData wait for user response (see
UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the
command line. function varargout = lihatData_OutputFcn(hObject,
eventdata, handles) % varargout cell array for returning output args (see
VARARGOUT); ... % handles structure with handles and user data (see
GUIDATA) h = findobj('tag', 'wknn'); % Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on button press in transformasiButton. function transformasiButton_Callback(hObject, eventdata,
handles) % hObject handle to transformasiButton (see GCBO) % eventdata reserved - to be defined in a future version
of MATLAB % handles structure with handles and user data (see
GUIDATA)
raw = getappdata(0, 'raw'); num = getappdata(0, 'num'); revenue = raw(:,18); [m,n] = size(revenue);
%transformasi data kolom 11-Month & 16-Visitor Type dari
kategorikal ke numerikal for i=1:m %transformasi data kolom 11-Month , min_max if (strcmp(raw(i,11), 'Jan')) num(i,11) = 1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
elseif (strcmp(raw(i,11), 'Feb')) num(i,11) = 2; elseif (strcmp(raw(i,11), 'Mar')) num(i,11) = 3; elseif (strcmp(raw(i,11), 'Apr')) num(i,Jan11) = 4; elseif(strcmp(raw(i,11), 'May')) num(i,11) = 5; elseif(strcmp(raw(i,11), 'June')) num(i,11) = 6; elseif(strcmp(raw(i,11), 'Jul')) num(i,11) = 7; elseif(strcmp(raw(i,11), 'Aug')) num(i,11) = 8; elseif(strcmp(raw(i,11), 'Sep')) num(i,11) = 9; elseif(strcmp(raw(i,11), 'Oct')) num(i,11) = 10; elseif(strcmp(raw(i,11), 'Nov')) num(i,11) = 11; elseif(strcmp(raw(i,11), 'Dec')) num(i,11) = 12; end %transformasi data kolom 16-Visitor Type if (strcmp(raw(i,16), 'Returning_Visitor')) num(i,16) = 1; elseif(strcmp(raw(i,16), 'New_Visitor')) num(i,16) = 2; elseif(strcmp(raw(i,16), 'Other')) num(i,16) = 3; end end
% normalisasi min max kolom 1-10 admin = min_max(num(:,1)); adminDur = min_max(num(:,2)); info = min_max(num(:,3)); infoDur = min_max(num(:,4)); product = min_max(num(:,5)); productDur = min_max(num(:,6)); bounceRates = min_max(num(:,7)); exitRates = min_max(num(:,8)); pageVal = min_max(num(:,9)); specialDay = min_max(num(:,10)); [m,n] = size(admin);
global hasilTransformasi; hasilTransformasi = num; for i=1:m hasilTransformasi(i,1) = admin(i); hasilTransformasi(i,2) = adminDur(i); hasilTransformasi(i,3) = info(i); hasilTransformasi(i,4) = infoDur(i); hasilTransformasi(i,5) = product(i); hasilTransformasi(i,6) = productDur(i); hasilTransformasi(i,7) = bounceRates(i);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
hasilTransformasi(i,8) = exitRates(i); hasilTransformasi(i,9) = pageVal(i); hasilTransformasi(i,10) = specialDay(i); end setappdata(0,'hasilTransformasi',hasilTransformasi); transformasiData;
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata,
handles) % hObject handle to pushbutton2 (see GCBO) ... % handles structure with handles and user data (see
GUIDATA)
c) transformasiData.m
function varargout = transformasiData(varargin) % TRANSFORMASIDATA MATLAB code for transformasiData.fig % TRANSFORMASIDATA, by itself, creates a new
TRANSFORMASIDATA or raises the existing % singleton*. ... % End initialization code - DO NOT EDIT
% --- Executes just before transformasiData is made
visible. function transformasiData_OpeningFcn(hObject, eventdata,
handles, varargin) % This function has no output args, see OutputFcn. ... % varargin command line arguments to transformasiData
(see VARARGIN)
% Choose default command line output for transformasiData handles.output = hObject;
% Update handles structure guidata(hObject, handles);
hasilTransformasi = getappdata(0, 'hasilTransformasi');
set(handles.tabelTransformasi,'ColumnName',{'Administrati
ve', 'Administrative Duration', 'Informational',
'Informational Duration', 'Product Related', 'Product
Related Duration', 'Bounce Rates', 'Exit Rates', 'Page
Values', 'Special Day', 'Month', 'OS', 'Browser',
'Region', 'Traffic Type', 'Visitor Type', 'Weekend',
'Revenue'}); set(handles.tabelTransformasi,'data',hasilTransformasi);
% UIWAIT makes transformasiData wait for user response
(see UIRESUME)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the
command line. function varargout = transformasiData_OutputFcn(hObject,
eventdata, handles) % varargout cell array for returning output args (see
VARARGOUT); ... % handles structure with handles and user data (see
GUIDATA) h = findobj('tag', 'wknn'); h = findobj('tag', 'lihatData'); % Get default command line output from handles structure varargout{1} = handles.output;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI