BAB II LANDASAN TEORI
2.8 Evaluasi dan Validasi
2.8.2 Confusion Matrix
Gambar 2.4 Cross validation dengan 5-Fold Cross Validation
Dengan ini jumlah kemunculan setiap sampel dalam data latih pasti sama dan setiap sampel pasti muncul satu dan hanya satu kali (tidak kurang dan tidak lebih) dalam data uji (Dr.
Suryanto 2019).
Bentuk umum pendekatan ini memecah set data mejadi k bagian set data dengan ukuran yang sama. Setiap kali berjalan, satu pecahan berperan sebagai set data uji sedangkan pecahan lainnya menjadi set data latih. Prosedur tersebut dilakukan sebanyak k kali sehingga setiap data berkesempatan menjadi data uji tepat satu kali dan menjadi data latih sebanyak k-1 kali (Eko Prasetyo 2014).
2.8.2 Confusion Matrix
Confusion matrix merupakan table yang mencatat hasil kerja klasifikasi.
Tabel 2.1 Matriks confusion untuk klasifikasi 2 kelas
f
ij Kelas hasil prediksi(j)Kelas = 1 Kelas = 0
Kelas asli (i)
Kelas = 1 f11 f10
Kelas = 0 f01 f00
Contoh confusion matrix yang melakukan klasifikasi masalah biner untuk dua kelas., misalnya kelas 0 dan 1. Setiap sel fij dalam matriks menyatakan jumlah data dari kelas i yang prediksinya masuk ke kelas j. Misalnya sel f11 adalah jumlah data dalam kelas 1 yang secara benar dipetakan ke kelas 1, dan f10 adalah data dalam kelas 1 yang dipetakan secara salah ke kelas 0.
Berdasarkan isi matriks confusion, maka dapat diketahui jumlah data dari masing-masing kelas yang di prediksi secara benar yaitu (f11+f00) dan data yang diklasifikasikan secara salah yaitu(f10+f01).
Kuantitas matriks confusion dapat diringkat menjadi dua nilai yaitu akurasi dan laju error.
Dengan mengetahui jumlah data yang diklasifikasikan secara benar maka dapat diketahui akurasi hasil prediksi dan dengan mengetahui jumlah data yang diklasifikasikan secara salah maka diketahui laju error dari prediksi yang dilakukan. Dua kuantitas ini digunakan sebagai matriks kinerja klasifikasi.(Eka Pasetyo, 2014)
Formula untuk menghitung akurasi adalah sebagai berikut : Akurasi= Jumlah data yang diprediksi secara benar
Jumlah prediksi yang dilakukan * 100% ---(2.9) Akurasi = π11+π00
π11+π10+π01+π00 *100%
Formula untuk menghitung lanju error (kesalahan prediksi) sebagai berikut : Laju error = Jumlah data yang diprediksi secara salah
Jumlah preddiksi yang di lakukan * 100% ---(2.10) Laju error = π10+π01
π11+π10+π01+π00 * 100%
17
BAB III
METODOLOGI PENELITIAN
Bab 3 ini berisikan metodologi yang akan digunakan penulis dalam penelitian ini. Pada bagian ini akan menjelaskan proses sistem, sumber data, user interface, peralatan penelitian yang digunakan dan uji akurasi data.
3.1 Sumber Data
Data yang digunakan pada penelitian ini adalah data yang diambil dari web www.kaggle.com (https://www.kaggle.com/iabhishekofficial/mobile-price-classification/version/1) Data yang telah didapatkan berisi data dari penjualan handphone yang di dapat dari berbagai perusahaan.
Nantinya fitur atau atribut ini akan menentukan apakah termasuk dalam handphone dengan harga murah atau mahal. Dari data ini terdapat data testing sebanyak 1000 data yang memiliki 21 atribut dan data training sebanyak 2000 data yang memiliki 20 atribut. Perbedaan data testing dan training terletak pada di data testing tidak ada atribut price range sebagai data label sedangkan di data training ada dan juga aribut id tidak ada di data testing namun di data training tidak ada. Fitur- fitur dan penjelasannya dapat dilihat pada table 3.1
Table 3.1 Atribut harga handphone No Nama Atribut Keterangan
1 ID Nomor
2 Baterry_Power Kapasitas baterai(mAh)
3 Blue Sudah memiliki bluethoot atau tidak
4 Clock_Speed Kecepatan mikroprosesor untuk menjalankan nstruksi(GHz)
5 Dual_Sim Memiliki dua sim atau tidak
6 Fc Ukuran kamera depan(MP)
7 Four_G Sudah memiliki jaringan 4G apa tidak 8 Int_Memory Kapasitas memory internal (GB)
9 M_Dep Ketebalan Handphone(cm)
10 Mobile_wt Berat Handphone(gram)
11 N_Cores Jumlah inti presesor(MB)
12 PC Ukuran kamera utama(MG)
13 Px_height Tinggi resolusi pixel(px) 14 Px_widht Lebar resolusi pixel(px)
15 RAM Random Acces Memory dalam(MB)
16 Sc_H Tinggi layar handphone (cm)
17 Sc_W Lebar layar Handphone (cm)
18 Talk_Time Lamanya waktu bicara untuk menggambarkan durasi penggunaan konstan yang di dukung oleh baterai tunggal yang terisi penuh satuan dalam secon(s)
19 Three_G Sudah 3G atau belum
20 Touch_Screen Sudah layar sentuh atau belum
21 Wifi Sudah ada wifi atau belum
Dalam data ini terdapat 4 kelas label yang akan dikategorikan dapat dilihat sebagai berikut :
Gambar 3.1 Kelas label
Berikut ini contoh 21 atribut data testing yang di dapat dari website www.kaggle.com Tabel 3.2 21 atribut Data Testing
id battery_power blue clock_speed dual_sim fc four_g int_memory m_dep mobile_wt
1 1043 1 1.8 1 14 0 5 0.1 193
2 841 1 0.5 1 4 1 61 0.8 191
3 1807 1 2.8 0 1 0 27 0.9 186
4 1546 0 0.5 1 18 1 25 0.5 96
n_cores pc px_height px_width ram sc_h sc_w talk_time three_g touch_screen wifi
3 16 226 1412 3476 12 7 2 0 1 0
Berikut ini contoh 20 atribut data training beserta label yang di dapat dari website www.kaggle.com
Tabel 3.3 20 atribut Data Training
battery_power blue clock_speed dual_sim fc four_g int_memory m_dep mobile_wt n_cores
842 0 2.2 0 1 0 7 0.6 188 2
pc px_height px_width ram sc_h sc_w talk_time three_g touch_screen wifi price_range
3.1.1 Data yang digunakan
Dalam penelitian ini data yang digunakan hanyalah data yang atributnya telah diseleksi terlebih dahulu menggunakan aplikasi WEKA dengan algoritma info gain dalam menyeleksi data sehingga dari 20 atribut yang digunakan hanya 4 atribut yaitu (Batrerry power, Px height, Px weight dan Ram) yang memiliki bobot tertinggi. Sehingga penulis menggunakan ke 4 atribut tersebut untuk penelitian.
Tabel 3.4 4 atribut yang sudah diseleksi battery_power px_height px_width ram
842 20 756 2549
3.2 Spesifikasi Alat
Perangkat keras yang digunakan dalam penelitian ini adalah laptop LENOVO ThinkPad X230i, dengan spesifikasi sebagai berikut ;
CPU : Intel core i3-3120M, 2.50GHz
RAM : 4GB
HDD : 298GB
Perangkat lunak yang digunakan dalam penelitian ini adalah aplikasi WEKA versi 3.8.5, Matlab versi 2016B dan Windows 10 pro 64-bit
3.3 Tahap Penelitian 3.3.1 Studi kasus
Handphone salah satu alat komunikasi yang tak dapat dipisahkan oleh masyarakat. Dalam kasus ini ketika seorang ingin mendirikan perusahaan handphone sendiri, maka hal yang harus ada sebagai tolak ukur adalah penentuan harga handphone yang akan dijual. Dalam menentukan handphone tersebut termasuk dalam kategori mahal atau murah adalah dilihat dari fitur yang dimiliki dan seberapa jauh hubungan fitur ini dalam menentukan harga handphone.
3.3.2 Penelitian Pustaka
Dalam melakukan penelitian ini penulis mencari dan mengumpulkan data literature yang berkaitan dengan teori-teori yang akan peneliti gunakan dalam meneliti. Literatu ini nantinya digunakan sebagai pendukung dalam proses penelitian ini. Literature yang penulis gunakan berasal dari buku, jurnal ilmiah dan karya ilmiah.
3.4 Skenario Sistem
Proses sistem pada penelitian ini akan diawali dengan data yang akan digunakan, dimana data yang digunakan pada penelitian ini berasal dari website Kaggle yang di ambil pada bulan September 2019. Data tersebut berisi data spesifikasi yang terdapat dalam sebuah Handphone yang berjumlah 2 file csv, file pertama adalah file testing dan file kedua adalah file training.
Di dalam file testing terdapat 21 atribut yaitu (ID, Battery Power, Blue, Clock Speed, Dual sim, fc, Four G, Int Memory, M deep, Mobile wt, N cores, Pc, Px Height, Px Width, Ram, Sc h, Sc w, Talk Time, Three G, Touch Screen dan Wifi) dan di dalam file training terdapat 20 atribut yaitu (Battery Power, Blue, Clock Speed, Dual sim, fc, Four G, Int Memory, M deep, Mobile wt, N cores, Pc, Px Height, Px Width, Ram, Sc h, Sc w, Talk Time, Three G, Touch Screen dan Wifi) dan kelas label nya bernama Price range. Dari semua atribut data termasuk atribut berjenis numerik.
Sebelum proses berlanjut data akan di ubah menjadi bentuk excel dengan format .xls, selanjutnya data mentah ini akan dilakukan tahap preprocessing. Data yang diperoleh akan dilakukan seleksi atribut menggunakan aplikasi WEKA dengan menggunakan algoritma info gain untuk mendapatkan atribut terbaik dari 20 atribut yang akan diuji. Dari hasil seleksi diperoleh sebanyak 4 atribut terbaik yaitu (Battery Power, Px Height, Px Width dan Ram).
Dimana data yang digunakan adalah data yang memiliki bobot paling tinggi dari atribut yang lain yang telah diseleksi menggunakan system. Lalu data yang telah dipilih atributnya akan diproses ke tahap selanjutnya yaitu proses normalisasi data. Metode yang digunakan pada penelitian ini adalah metode tanpa normalisasi, Min-Max dan Z-score.
Setelah tahap pre-processing tahap selanjutnya adalah klasifikasi menggunakan metode K-Nearest Neighbour. Adapun algoritma dari K-K-Nearest Neighbour adalah :
1. Mulai input data training, label data training , k, data testing 2. Hitung jarak dari semua data testing ke setiap data training
3. Lalu tentukan berapa nilai k dari data training yang jaraknya paling dekat dengan data testing.
4. Periksa label dari data yang diperoleh dengan nilai jarak terdekat berdasakan nilai k yang telah ditentukan
5. Tentukan label yang frekuensinya paling banyak dari data yang dipeoleh sejumlah nilai k
6. Masukkan data testing ke kelas dengan frekuensi paling banyak.
7. Lalu proses klasifikasi akan berakhir.
Setelah proses klasifikasi selesai maka langkah selanjutnya menghitung nilai evaluasinya menggunakan metode k-fold cross validation dan confusion matrix. Dari hasil nilai evaluasi
yang telah dihitung dari berbagai percobaan maka dapat ditentukan variasi mana yang menghasilkan klasifikasi yang paling optimal. Hasil paling optimal dilihat dari nilai confusion matrix nya semakin mendekati angka 1 maka hasil itu akan dikatakan terbaik dan tepat.
Pada penelitian menggunakan metode K-Nearest Neighbour ini peneliti melakukan percobaan dengan mengkombinasikan setiap variasi normalisasi, jumlah tetangga, variasi jarak, dan juga variasi k-fold untuk mendapat hasil yang paling optimal dan terbaik. Percobaan perhitungan menggunakan variasi non-normalisasi, Min-Max dan Z-Score. Percobaan jumlah tetangga menggunakan k =3,5,7 dan 9. Proses perhitungan jarak dilakukan menggunakan percobaan dengan variasi Euclidean distance dan Manhattan distance. Dan hasil evaluasi menggunakan percobaan perhitungan menggunakan 3-fold cross validation dan 5-fold cross validation.
3.5 Proses Sistem
Dalam tahap ini system akan dirancang sebagai berikut :
Gambar 3.2 Proses Sistem
3.5.1 Data
Data yang penulis peroleh dari website kaggle berisi 2 file csv file pertama berisi data teting file kedua berisi data training yang akan di ubah kedalam bentuk file excel dengan format .xls. Pada file testing berisi 21 atribut dan file training berisi 20 atribut dan kelas label yang keseluruhan data nya bertipe numerik dapat dilihat di table 3.2 Tabel 21 atribut Data Testing dan Tabel 3.3 Tabel 21 atribut Data Training
3.5.2 Pre-processing
Data yang sudah di dapat akan dipreprocessing dahulu sebelum dapat di klasifikasi. Berikut tahapan yang penulis gunakan dalam preprocessing
a. Seleksi data
Pada tahap seleksi data, dilakukan penghapusan beberapa atribut yang tidak digunakan dalam penelitian, atribut yang dihapus yaitu : ID, blue, clock speed, dual sim, fc, four g, int memory, m dep, mobile wt, n cores, pc, sc h, sc w, talk time, three g dan touch screen. Pada tahap seleksi ini penulis menggunakan aplikasi WEKA dengan menggunakan fungsi Select attributes dan menggunakan algoritma InfoGainAttributesEval hasil yang diperoleh seperti pada gambar berikut :
Gambar 3.3 Hasil seleksi atribut menggunakan WEKA
Pada percobaan menggunakan sistem terdapat 4 atribut yang memiliki bobot, yang mana atribut yang terpilih merupakan atribut pilihan terbaik dalam menentukan harga handphone sehingga penulis memilih atribut tersebut untuk dijadikan data uji dalam penelitian.
Tabel 3.5 Atribut yang digunakan
battery_power px_height px_width ram prize_range
1954 512 1149 700 0
838 984 1850 3554 3
842 20 756 2549 1
1021 905 1988 2631 2
563 1263 1716 2603 2
1445 386 836 1099 0
1821 1208 1212 1411 1
Pada tahap ini data yang telah diseleksi dan dibersihkan akan ditransformasikan.
Transformasi data dilakukan dengan cara menormalisasikan data menggunakan normalisasi min max dan z-score agar jarak antar atribut tidak terlalu jauh. Berikut contoh bentuk normalisasi data menggunakan min max dan z score
Table 3.6 Setelah normalisasi menggunakan min max battery_power px_height px_width ram prize_range
0,99 0,396 0,4112 0,092 0
0,07 0,962 0,8582 0,671 2
Tabel 3.7 Setelah normalisasi menggunakan z-score battery_power px_height px_width ram prize_range
1,37 -0,325 -0,169 -1,3111 0
-1,26 1,356 -0,007 -1,471 0
Pada tahap ini akan dilakukan klasifikasi menggunakan metode K-Nearest Neighbor. Dari data pada tabel 3.6 Tabel setelah normalisasi menggunakan min-max. Berikut langkah-langkah proses klasifikasi menggunakan metode k-nearest neighbour dengan menggunakan normalisasi min-max dan Euclidean distance
a. Membagi data menjadi data testing dan data training menggunakan 5-fold cross validation.
Tabel 3.8 Data training menggunakan min-max No battery_power px_height px_width ram prize_range
1 0,99 0,396 0,4112 0,092 0
20 0 0,899 0,4639 0,039 0
Tabel 3.9 Data testing
No battery_power px_height px_width ram prize_range
21 0,96 0,682 0,7502 0,751 3
22 0 0,372 0,134 0,992 3
23 1 0,72 0,9839 0,464 2
24 0,05 0,178 0,2042 0,621 1
25 0,69 0,254 0,0751 0,139 0
b. Lalu hitung nilai jarak data training dengan data testing menggunakan incluedian distance Perhitungan jarak pada data testing no 21 dengan data training no 1
= β(0,96 β 0,99)2+ (0,682 β 0,396)2+ (0,682 β 0,396)2+ (0,751 β 0,092)2
= 0,796
Perhitungan jarak pada data testing no 21 dengan data training no 2
= β(0,96 β 0,23)2+ (0,682 β 0,776)2+ (0,7502 β 0,9032)2+ (0,751 β 0,89)2
= 0,771
Perhitungan jarak pada data testing no 21 dengan data training no 3
= β(0,96 β 0,23)2+ (0,682 β 0)2+ ( 0,7502 β 0,1354)2+ (0,751 β 0,609)2
= 1,184
Perhitungan jarak pada data testing no 21 dengan data training no 4
= β(0,96 β 0,35)2+ (0,682 β 0,712)2+ ( 0,7502 β 1)2+ (0,751 β 0,632)2
= 0,672
Perhitungan jarak pada data testing no 21 dengan data training no 5
= β(0,96 β 0,04)2+ (0,682 β 1)2+ ( 0,7502 β 0,8091)2+ (0,751 β 0,624)2
= 0,989
Perhitungan jarak pada data testing no 21 dengan data training no 6
= β(0,96 β 0,64)2+ (0,682 β 0,294)2+ ( 0,7502 β 0,1916)2+ (0,751 β 0,203)2
= 0,93
Perhitungan jarak pada data testing no 21 dengan data training no 7
= β(0,96 β 0,9)2+ (0,682 β 0,956)2+ ( 0,7502 β 0,4554)2+ (0,751 β 0,291)2
= 0,615
Perhitungan jarak pada data testing no 21 dengan data training no 8
= β(0,96 β 0,9)2+ (0,682 β 0,472)2+ ( 0,7502 β 0,1298)2+ (0,751 β 0,31)2
= 0,792
Perhitungan jarak pada data testing no 21 dengan data training no 9
= β(0,96 β 0,9)2+ (0,682 β 0,29)2+ ( 0,7502 β 0,3193)2+ (0,751 β 0,797)2
= 0,587
Perhitungan jarak pada data testing no 21 dengan data training no 10
= β(0,96 β 0,07)2+ (0,682 β 0,962)2+ ( 0,7502 β 0,8582)2+ (0,751 β 0,671)2
= 0,943
Perhitungan jarak pada data testing no 21 dengan data training no 11
= β(0,96 β 0,93)2+ (0,682 β 0,27)2+ ( 0,7502 β 0)2+ (0,751 β 0)2
= 1,139
Perhitungan jarak pada data testing no 21 dengan data training no 12
= β(0,96 β 0,18)2+ (0,682 β 0,677)2+ ( 0,7502 β 0,913)2+ (0,751 β 0,055)2
= 1,059
Perhitungan jarak pada data testing no 21 dengan data training no 13
= β(0,96 β 0,43)2+ (0,682 β 0,513)2+ ( 0,7502 β 0,2211)2+ (0,751 β 0,409)2
= 0,844
Perhitungan jarak pada data testing no 21 dengan data training no 14
= β(0,96 β 0,69)2+ (0,682 β 0,105)2+ ( 0,7502 β 0,3102)2+ (0,751 β 0,966)2
= 0,803
Perhitungan jarak pada data testing no 21 dengan data training no 15
= β(0,96 β 0,2)2+ (0,682 β 0,261)2+ ( 0,7502 β 0,6154)2+ (0,751 β 0,646)2
= 0,887
Perhitungan jarak pada data testing no 21 dengan data training no 16
= β(0,96 β 0,18)2+ (0,682 β 0,183)2+ ( 0,7502 β 0,2182)2+ (0,751 β 1)2
= 1,099
Perhitungan jarak pada data testing no 21 dengan data training no 17
= β(0,96 β 0,93)2+ (0,682 β 0,792)2+ ( 0,7502 β 0,7656)2+ (0,751 β 0,194)2
= 0,569
Perhitungan jarak pada data testing no 21 dengan data training no 18
= β(0,96 β 0,31)2+ (0,682 β 0,218)2+ ( 0,7502 β 0,6112)2+ (0,751 β 0,674)2
= 0,816
Perhitungan jarak pada data testing no 21 dengan data training no 19
= β(0,96 β 0,06)2+ (0,682 β 0,339)2+ ( 0,7502 β 0,1733)2+ (0,751 β 0,946)2
= 1,143
Perhitungan jarak pada data testing no 21 dengan data training no 20
= β(0,96 β 0)2+ (0,682 β0,899)2+ ( 0,7502 β0,4639)2+(0,751 β 0,039)2
= 1,25
Setelah menghitung jarak data testing no 21 ke semua data training lakukan perhitungan jarak data testing lainnya terhadap semua data training. Maka akan di dapat hasil dari perhitungan data testing terhadp data training yaitu terlihat pada table berikut :
Tabel 3.10 Hasil nilai jarak data testing terhadap data training
NO
c. Kemudian tentukan data dengan jarak terdekat sebanyak k. Sebagai contoh, nilai k yang akan digunakan yaitu k = 3. Berikut hasil
Tabel 3.11 KNN dengan k = 3
d. Lalu tentukan label berdasarkan kelas yang paling banyak muncul, jika data kelas beda semua maka pilih jarak yang paling dekat dengan testing.
Tabel 3.12 Hasil klasifikasi KNN K = 3
TES 1 TES2 TES 3 TES 4 TES 5
1 3 1 3 0
3.5.4 Evaluasi
Evaluasi dalam penelitian ini menggunakan k-fold cross validation dan uji akurasi menggunakan confusion matrix. Setelah penambangan data dilakukan menggunakan metode knn kemudian dilakukan uji akurasi.
Tabel 3.13 Confussion matrix
Confusion Matrix (K = 3) Kelas Hasil Prediksi
0 1 2 3
Akurasi data yang salah = 3
5 * 100% = 60%
Data di atas menunjukan dari 25 data akurasi yang diperoleh sebanyak 40%, akurasi ini merupakan akurasi fold pertama dari 5-fold cross validation. Berikut hasil perhitungan menggunakan confusion matrix dari setiap model data menggunakan keseluruhan fold dalam 5 βfold cross validation.
Tabel 3.14 Nilai akurasi 5-fold cross validation
Hasil nilai rata-rata akurasi : Akurasi = 40+20+60+80+40
3.6 Desain User Interface
Gambar 3.4 User interface klasifikasi harga handphone menggunakan KNN
Gambar 3.5 merupakan desain dari user interface yang dirancang dengan tujuan pengguna dapat menggunakan dan mengoperasikan sistem dengan lebih baik dan mudah. User pertama kali akan menekan tombol βInput Dataβ pada tombol sebelah kiri dan menekan tombol βInput Data Non Labelβ untuk memasukkan data yang akan diseleksi. Pada bagian βTrain Test Classificationβ adalah metode yang digunakan dalam klasifikasi dan hasil akurasi yang didapat dari klasifikasinya.
3.7 Pembuatan Program
Pada tahap ini rancangan system yang telah dibuat akan diimplementasikan kedalam bentuk kode dengan menggunakan bahasa pemrograman Matlab.
35
BAB IV
IMPLEMENTASI DAN ANALISIS
Bab 4 ini akan dibahas mengenai hal-hal yang terkait dengan hasil implementasi system dari klasifikasi harga handphone yang telah dirancang dan diuji serta analisis pengujian dari penelitian ini.
4.1 Data
Data yang digunakan dalam penelitian ini adalah data harga handpone yang didapat dari website www.kaggle.com terdapat 20 atibut dan kelas label. Data yang diperoleh dilakukan seleksi atribut terlebih dahulu menggunakan aplikasi WEKA proses selanjutnya adalah proses preprocessing yaitu dengan melakukan normalisasi data. Kemudian setelah melalui proses preprocessing dilakukan proses classification dengan menggunakan metode K-Nearest Neighbor.
4.2 Implementasi Sistem
Proses sistem diawali dengan menginput data, normalisasi data, pemilihan perhitungan jarak, pemilihan jumlah tetangga, pemilihan perhitungan jumlah fold dan mengetahui hasil akurasi.
4.2.1 Input Data
Gambar 4.1 Input data atribut handphone
Gambar 4.1 merupakan proses input data yang diawali dengan menekan tombol βinput dataβ
berada disebelah kiri tabel, setelah itu akan tampil jendela file explore lalu pilih file yang akan digunakan, pada sistem input ini menggunakan file dengan format excel *.xls yang akan ditampilkan pada tabel.
Gambar 4.2 Input data non label
Selanjutnya input data handphone yang tidak memiliki label, format file harus sama yaitu excel *.xls. Pada input ini sistem hanya membaca file yang bertipe .xls saja. Untuk memilih data yang akan digunakan penulis menggunkan fungsi getFile dan file yang akan dibaca adalah bertipe .xls menggunakan method xlread() selain file bertipe itu akan terjadi kesalahan atau sistem error.
Gambar 4.3 Source Code Input data
4.2.2 Preprocessing (Normalisasi)
Setelah berhasil input data selanjutnya adalah tahap normalisasi. Pada tahap ini penulis menggunakan 3 variasi yaitu tanpa normalisasi, min-max dan z-score.
Gambar 4.4 Gui Normalisasi
Dalam memanggil fungsi dari normalisasi ini penulis terlebih dahulu membuat kelas normalisasi min-max dan kelas z-score yang berisi rumus dari normalisasi tersebut. Pada codingan normalisasi min-max nantinya hasil dari perhitungan akan masuk kedalam kelas minMaxNorm selanjutnya akan dimasukkan ke dalam function NormData. Begitu juga
dengan normalisasi z-score akan dimasukkan ke dalam kelas zscore yang nantinya akan dimasukkan ke dalam function NormData. Data yang tadinya memiliki rentang yang berbeda selanjutnya akan di normalisasi menjadi rentang 0-1 dengan menggunakan rumus normalisasi min-max dan z-score
Gambar 4.5 Source Code Min-max normalisasi
Gambar 4.6 Source Code Z-score normalisasi
4.2.3 K-Nearest Neighbour
Selanjutnya ketika sudah melalui tahap normalisasi maka data akan memiliki rentang 0-1 lanjut ke tahap berikutnya yaitu penambangan data. Pada tahap penambangan data akan menggunakan algoritma K-Nearest Neighbour dalam proses ini yang akan dilakukan adalah memilih jumlah tetangga terdekat dan memilih jarak. Sebelumnya data akan dipisah menjadi data training dan data testing lalu akan dilakukan proses penambangan.
Gambar 4.7 Source code memisah data Training dan data Testing
Gambar 4.8 GUI K-Nearest Neighbor
a. Distance
Ketika data sudah dibagi menjadi data testing dan training maka tahap selanjutnya adalah menghitung jarak antar data testing dan training menggunakan Euclidean Distance atau Manhattan Distance pada tahap ini nantinya hasil dari perhitungan akan dimasukkan ke dalam matrix yang bermana matrix distance
Gambar 4.9 Source code Euclidean Distance
Gambar 4.10 Source code Manhattan Distance
Gambar 4.11 Source code Matrix distance
b. Jumlah Tetangga (k)
Setelah menemukan hasil dari jarak antara data testing dan training maka tahap selanjutnya menentukan jumlah tetangga terdekat. Pada tahap ini jumlah tetangga yang dipilih memiliki variasi yang berbeda yaitu 3,5,7,9. Penulis tidak menggunakan variasi tetangga dengan jumlah genap karena mungkin saja jumlah pola terdekat pada kelas label sama sehingga algoritma ini kesulitan dalam melakukan klasifikasi (tidak ada cara lain selain memilih kelas label secara acak) pada tahap ini tetangga akan dipilih sesuai dengan dialog box yang telah tersedia.
Gambar 4.12 Source code Tetangga
Gambar 4.13 GUI Jumlah Tetangga
4.2.4 Evaluasi
Proses evaluasi menggunakan K-Fold Cross Validation dengan membagi data menjadi n-fold di pada tahap ini data training dan testing akan dibagi menjadi beberapa bagian tergantung dari jumlah fold yang akan digunakan.
a. K-Fold Cross Validation
Gambar 4.14 Source code k-fold cross validation
b. Akurasi Menggunakan Confussion Matrix
Setelah membagi menjadi n-fold maka selanjutnya menghitung akurasi menggunakan metode Confussion Matrix. Hasil dari perhitungan akan dimasukkan ke dalam kelas accuracy
Gambar 4.15 Source code Confusion matrix
Gambar 4.16 GUI akurasi dan hasil
4.2.5 Data tanpa Label
Pada tahap ini data akan di label dengan menggunakan perhitungan yang sama dengan perhitungan hasil akurasi. Pada bagian ini hasil akan di proses dengan memanggil kelas knn2 dimana dalam kelas ini sudah terdapat perhitungan klasifikasi, sehingga hasil yang akan keluar adalah hasil dari kategori kelas tersebut.
Gambar 4.17 Source code input tanpa label
Gambar 4.18 Data non label
4.3 Proses Klasifikasi
Proses diawali dengan menginput data lalu user akan memilih metode normalisasi dan memilih jarak k yang akan digunakan, setelah itu user memilih variasi distance diantaranya Euclidean Distance dan Manhattan Distance. Yang terakhir adalah memilih berapa fold yang akan digunakan. User akan menekan tombol βRunβ dan hasil yang akan muncul adalah berupa angka akurasi sesuai dengan fold yang diinginkan. Terlihat perbandingan antara hasil akurasi 3 fold cross validation dan 5-fold cross validation pada gambar
Gambar 4.19 Hasil dengan 3-Fold Cross Validation
Gambar 4.19 Hasil dengan 3-Fold Cross Validation