PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Disusun oleh :
115314068
YOGYAKARTA
2015
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
By :
115314068
YOGYAKARTA
2015
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSETUJUAN
TUGASAKHIR
'Q
q'w*0
rAlo,
fr mf*"* \ B
Pembimbing,
,rTus
I ,"*S,,
s.r.,Nr.r. \,ombor.xolB
ogvnros$t /t
fi I
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PENGESAIIAN
SKRIPSI
TUGASAKHIR
uogauara,.?7..
akultas Sains dan Teknologi
,l
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSEMBAHAN
iii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRAK
PERBANDINGAN ALGORITMA K-NEAREST NEIGHBOR DAN NAÏVE
BAYES UNTUK STUDI DATA “WISCONSIN DIAGNOSIS BREAST CANCER”
vi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRACT
COMPARISON OF K-NEAREST NEIGHBOR AND NAIVE BAYES ALGORITHM
FOR DATA STUDY "WISCONSIN DIAGNOSIS BREAST CANCER"
vii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR ISI
HALAMAN PERSETUJUAN.......................................................................................... i
HALAMAN PENGESAHAN.......................................................................................... ii
HALAMAN PERSEMBAHAN.......................................................................................iii
PERNYATAAN KEASLIAN KARYA...........................................................................iv
LEMBAR PERNYATAAN PERSETUJUAN..................................................................v
ABSTRAK ......................................................................................................................vi
ABSTRACT................................................................................................................... vii
KATA PENGANTAR ...................................................................................................viii
DAFTAR ISI .................................................................................................................. ix
DAFTAR TABEL .......................................................................................................... xi
DAFTAR GAMBAR .....................................................................................................xii
BAB I PENDAHULUAN ................................................................................................1
1.1. Latar Belakang Masalah.................................................................................1
1.2. Rumusan Masalah ..........................................................................................3
1.3. Tujuan Penelitian ...........................................................................................3
1.4 Manfaat Penelitian...........................................................................................3
1.5. Batasan Masalah ............................................................................................3
1.6. Sistematika Penyajian.....................................................................................4
BAB II LANDASAN TEORI ..........................................................................................5
2.1. Penelitian Terdahulu yang Relevan................................................................5
2.2. Kajian Teori….. .............................................................................................6
2.2.1. Penambangan Data …………………………….........................................6
2.2.2. Naive Bayes Classifier.................................................................................7
2.2.3. K-Nearest Neighbor…...............................................................................12
2.2.4. K-Fold Cross Validation ...........................................................................16
2.2.5. Pengukuran Akurasi Klasifikasi ...............................................................16
2.2.6. Kanker Payudara........................................................................................17
2.2.7. Metode Hashing.........................................................................................21
2.2.8. WEKA (Waikato Environment for Knowledge Analysis)…………........23
BAB lll PERANCANGAN SISTEM .............................................................................25
ix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR TABEL
xi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR GAMBAR
Gambar 2.1. Tahapan Dalam KDD (Han & Kamber, 2006) ......................................... 6
Gambar 2.2. Ilustrasi 3-fold Cross Validation………………..........................................16
Gambar 2.3. Confusion Matrix untuk matrix 2×2 (Tan, Steinbach, & Kumar, 2006).. 17
Gambar 2.4. Perbedaan sel normal dengan sel kanker (Weaver, 2002)……............... 18
Gambar 2.5. Struktur kode hash……….........…….. ................................................... 22
Gambar 3.1. Diagram use case ………….…………………....................................... 28
Gambar 3.2. Desain Halaman Utama……………….................................................... 30
Gambar 3.3. Gambar saat menu bar go to ditekan…………........................................ 31
Gambar 3.4. Desain Halaman Bantuan……………………........................................ 31
Gambar 3.5. Desain Halaman Klasifikasi……………….. .......................................... 31
Gambar 4.1 Tampilan Halaman Beranda...................................................................... 33
Gambar 4.2. Tampilan saat menu ditekan..................................................................... 34
Gambar 4.3. Tampilan Halaman Bantuan..................................................................... 34
Gambar 4.4. Tampilan halaman hitung perbandingan ................................................. 35
Gambar 4.5. Tampilan open file ................................................................................... 36
Gambar 5.1. Screenshot KNN dengan 3-fold cross validation dengan menggunakan
sistem........................................................................................................ 52
Gambar 5.2. Screenshot KNN dengan 3-fold cross validation dengan menggunakan
program weka. ......................................................................................... 53
Gambar 5.3. Screenshot KNN dengan 5-fold cross validation dengan menggunakan
sistem........................................................................................................ 54
Gambar 5.4. Screenshot KNN dengan 5-fold cross validation dengan menggunakan
program weka........................................................................................... 55
Gambar 5.5. Screenshot KNN dengan 10-fold cross validation dengan menggunakan
sistem........................................................................................................ 56
Gambar 5.6. Screenshot KNN dengan 10-fold cross validation dengan menggunakan
program weka........................................................................................... 57
Gambar 5.7. Screenshot KNN dengan 15-fold cross validation dengan menggunakan
sistem....................................................................................................... 58
xii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 5.8. Screenshot KNN dengan 5-fold cross validation dengan menggunakan
program weka. ....................................................................................... 59
Gambar 5.9. Screenshot KNN dengan 20-fold cross validation dengan menggunakan
sistem.......................................................................................................60
Gambar 5.10.Screenshot KNN dengan 20-fold cross validation dengan menggunakan
program weka..........................................................................................61
Gambar 5.11. Screenshot Naive bayes dengan 3-fold cross validation dengan
menggunakan sistem...........................................................................62
Gambar 5.12. Screenshot Naive bayes dengan 3-fold cross validation dengan
menggunakan program weka............................................................. 63
Gambar 5.13. Screenshot Naive bayes dengan 5-fold cross validation dengan
menggunakan sistem.......................................................................... 64
Gambar 5.14. Screenshot Naive bayes dengan 5-fold cross validation dengan
menggunakan program weka............................................................. 65
Gambar 5.15. Screenshot Naive bayes dengan 10-fold cross validation dengan
menggunakan sistem.......................................................................... 66
Gambar 5.16. Screenshot Naive bayes dengan 10-fold cross validation dengan
menggunakan program weka. ........................................................... 66
Gambar 5.17. Screenshot Naive bayes dengan 15-fold cross validation dengan
menggunakan sistem.......................................................................... 67
Gambar 5.18. Screenshot Naive bayes dengan 15-fold cross validation dengan
menggunakan program weka............................................................. 68
Gambar 5.19. Screenshot Naive bayes dengan 20-fold cross validation dengan
menggunakan sistem.......................................................................... 69
Gambar 5.20. Screenshot Naive bayes dengan 20-fold cross validation dengan
menggunakan program weka............................................................. 70
xiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB I
PENDAHULUAN
Dalam bab pendahuluan ini, akan dikaji dalam enam hal, yaitu (1) latar belakang
masalah, (2) rumusan masalah, (3) tujuan penelitian, (4) manfaat penelitian, (5) batasan
masalah, dan (6) sistematika penyajian. Keenam hal tersebut akan dibahas satu per satu
dalam subbab yang ada di bawah ini.
1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2
akan membandingkan dua algoritma lain yaitu (1) Naive Bayes dan (2) K-Nearest
Neighbor.
Perbandingan algoritma adalah membandingkan dua algoritma yang bertujuan
untuk mengetahui algoritma mana yang paling baik diantara kedua algoritma yang
dibandingkan.
Adapun dipilihnya algoritma Naïve Bayes dan K-Nearest Neighbors sebagai
algoritma pengklasifikasian teks yang dibandingkan karena tingkat akurasi dari kedua
algoritma ini dalam pengklasifikasian dokumen teks relatif tinggi. Hal ini dibuktikan
melalui jurnal penelitian yang dilakukan oleh Dedy Santoso, Dian Eka Ratnawati, dan
Indriati (2015) berjudul „Perbandingan Kinerja Metode Naive Bayes, K-Nearest
Neighbor, dan Metode Gabungan K-Means dan LVQ dalam Pengkategorian Buku
Komputer Berbahasa Indonesia Berdasarkan Judul dan Sinopsis‟. Pada hasil penelitian
tersebut menunjukkan bahwa rata-rata akurasi metode KNN mencapai 96% dan metode
Naive Bayes mencapai 98%.
Klasifikasi Naive Bayes Adalah metode classifier yang berdasarkan probabilitas
dan Teorema Bayesian dengan asumsi bahwa setiap variabel X bersifat bebas
(independence). Klasifikasi KNN merupakan metode klasifikasi yang menentukan label
(class) dari suatu objek baru berdasarkan class yang mayoritas dari kneighbor dalam
training set.
Algoritma K-Nearest Neighbor dan Naïve Bayes Classifier masing – masing
memiliki kelebihan dan kekurangan. Oleh karena itu, pada penelitian ini penulis akan
melakukan perbandingan antara kedua algoritma tersebut untuk memperoleh algoritma
yang paling maksimal dalam klasifikasi terhadap data wisconsin breast cancer. Adapun
parameter pembanding kedua algoritma adalah tingkat akurasi system, dan waktu proses
kedua algoritma.
Oleh karena itu penulis mengembangkan sebuah penelitian dengan judul
„Perbandingan Algoritma K-Nearest Neighbors dan Naive Bayes untuk Studi Data
Wisconsin Breast Cancer Data‟.
Adapun dua alasan pemilihan data adalah (1) karena data ini yang paling relevan
dengan penelitian yang hendak dilakukan penulis dimana data ini nilai attributnya
berupa angka sehingga dapat dilakukan proses perhitungan klasifikasi, dan (2) penulis
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3
merasa data ini memadai dan sesuai dengan penelitian karena mempunyai jumlah data
yang cukup banyak sehingga bisa mendapatkan hasil klasifikasi yang baik.
BAB II
LANDASAN TEORI
Dalam bab landasan teori ini akan dikaji dua hal, yaitu (1) penelitian terdahulu
yang relevan dan (2) kajian teori. Kedua hal tersebut akan dibahas satu per satu dalam
subbab yang ada di bawah ini.
Menurut Han dan Kamber (2006), tahapan-tahapan dalam proses KDD adalah
sebagai berikut:
1. Pembersihan data (Data Cleaning)
Pembersihan data merupakan proses untuk menghilangkan data yang
mengandung noise, atau data yang tidak konsisten.
2. Integritas data (Data Integration)
Pada tahap ini akan dilakukan penggabungan data yang berasal dari berbagai
sumber.
3. Seleksi data (Data Selection)
Pada tahap ini akan dilakukan pemilihan data yang relevan dari database.
4. Transformasi data (Data Transformation)
Pada tahap ini data akan ditransformasikan kedalam format yang sesuai
untuk diproses dalam penambangan data.
5. Penambangan data (Data Mining)
Penambangan data merupakan proses penting dimana metode akan
disistemkan untuk mengekstrak pola data.
6. Evaluasi pola (Pattern Evaluation)
Pada tahap ini, pola/model yang dihasilkan dari teknik data mining akan
mengidentifikasi pola-pola yang menarik berdasarkan ukuran tertentu
7. Presentasi pengetahuan (Knowledge Presentation)
Pada tahap ini akan dilakukan teknik visualisasi yang digunakan untuk
menampilkan pengetahuan hasil proses mining kepada pengguna.
Untuk menghitung nilai kelas yang akan dibandingkan (ya atau tidak), dilakukan
perhitungan probabilitas P(Vj):
P(Vj)= |docj|
|Contoh|
Dimana docj adalah banyaknya dokumen yang memiliki kategori j dalam
pelatihan, sedangkan Contoh banyaknya dokumen dalam contoh yang digunakan untuk
pelatihan. Untuk nilai P(Wk|Vj) , yaitu probabilitas kata wk dalam kategori j ditentukan
dengan :
P(Wk|Vj)= Nk+1
N+|vocabulary|
Dimana nk adalah frekuensi munculnya kata wk dalam dokumen yang ber
kategori vj ditambah 1, hal ini berfungsi untuk menghindari angka 0 dalam data atau
biasa disebut Laplace Smoothing, sedangkan nilai n adalah banyaknya seluruh kata
dalam dokumen berkategori vj, dan vocabulary adalah banyaknya kata dalam contoh
pelatihan.
Berdasarkan data pada tabel 2.1., model Naïve Bayes Classifier adalah sebagai
berikut:
1. Tentukan P(yes) sebagai probabilitas orang yang membeli komputer dan
P(no) sebagai probabilitas orang yang tidak membeli komputer dengan
rumus sebagai berikut:
P(yes/no) = |doc j|
|Contoh|
Dimana doc j adalah banyaknya dokumen yang memiliki kategori j dalam
pelatihan, sedangkan Contoh banyaknya dokumen dalam contoh yang digunakan untuk
pelatihan.
Berikut perhitungannya :
a. Tabel data
Tabel 2.2 Tabel data teks buys_computer
No Age< Age Age> Income Income= Income= Student Studen Credit_ Credit_ Class
=30 31..40 40 = low medium high =yes t=no Rating= Rating=
fair excelent
1. 1 0 0 0 0 1 0 1 1 0 No
2. 1 0 0 0 0 1 0 1 0 1 No
3. 0 1 0 0 0 1 0 1 1 0 Yes
4. 0 0 1 0 1 0 0 1 1 0 Yes
5. 0 0 1 1 0 0 1 0 1 0 Yes
6. 0 0 1 1 0 0 1 0 0 1 No
7. 0 1 0 1 0 0 1 0 0 1 Yes
8. 1 0 0 0 1 0 0 1 1 0 No
9. 1 0 0 1 0 0 1 0 1 0 Yes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
10. 0 0 1 0 1 0 1 0 1 0 Yes
11. 1 0 0 0 1 0 1 0 0 1 Yes
12. 0 1 0 0 1 0 0 1 0 1 Yes
13. 0 1 0 0 0 1 1 0 1 0 Yes
14. 0 0 1 0 1 0 0 1 0 1 No
b. Tabel P(yes)
Tabel 2.3 Tabel probabilitas yes data teks buys_computer
No Age< Age Age> Income Income= Income= Student Studen Credit_ Credit_ Class
=30 31..40 40 = low medium high =yes t=no Rating= Rating=
fair excelent
3. 0 1 0 0 0 1 0 1 1 0 Yes
4. 0 0 1 0 1 0 0 1 1 0 Yes
5. 0 0 1 1 0 0 1 0 1 0 Yes
7. 0 1 0 1 0 0 1 0 0 1 Yes
9. 1 0 0 1 0 0 1 0 1 0 Yes
10. 0 0 1 0 1 0 1 0 1 0 Yes
12. 0 1 0 0 1 0 0 1 0 1 Yes
13. 0 1 0 0 0 1 1 0 1 0 Yes
P(Y=Yes)=9/14=0.64
c. Tabel P(No)
Tabel 2.4 Tabel probabilitas no data teks buys_computer
No Age< Age Age> Income Income= Income= Student Studen Credit_ Credit_ Class
=30 31..40 40 = low medium high =yes t=no Rating= Rating=
fair excelent
1. 1 0 0 0 0 1 0 1 1 0 No
2. 1 0 0 0 0 1 0 1 0 1 No
6. 0 0 1 1 0 0 1 0 0 1 No
8. 1 0 0 0 1 0 0 1 1 0 No
14. 0 0 1 0 1 0 0 1 0 1 No
P(Y=No)=5/14=0.36
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11
.................(1)
Dengan D adalah jarak antara titik pada data training x dan titik data testing y
yangakan diklasifikasi, dimana x=x1,x2,…,xi dan y=y1,y2,…,yi dan I
merepresentasikan nilai atribut serta n merupakan dimensi atribut.
Pada fase training, algoritma ini hanya melakukan penyimpanan vektor-vektor
fitur dan klasifikasi data training sample. Pada fase klasifikasi, fitur-fitur yang sama
dihitung untuk testing data (yang klasifikasinya tidak diketahui). Jarak dari vektor baru
yang ini terhadap seluruh vektor training sample dihitung dan sejumlah k buah yang
paling dekat diambil.
Langkah-langkah untuk menghitung metode Algoritma K-Nearest Neighbor:
a. Menentukan Parameter K (Jumlah tetangga paling dekat).
b. Menghitung kuadrat jarak Euclid (queri instance) masing-masing objek
terhadap datasampel yang diberikan.
c. Kemudian mengurutkan objek-objek tersebut ke dalam kelompok yang
mempunyai jarak Euclid terkecil.
d. Mengumpulkan kategori Y (Klasifikasi Nearest Neighbor).
e. Dengan menggunakan kategori Nearest Neighbor yang paling mayoritas
maka dapatdiprediksi nilai queri instance yang telah dihitung.
Contoh K-Nearest Neighbor
Berikut contoh kasus yang akan diselesaikan dengan metode K-Nearest
Neighbor:
Tabel 2.5 Tabel data buys_computer
RID Age Income Student Credit_Rating Class
1. 29 High No Fair No
2. 29 High No Excelent No
3. 31..40 High No Fair Yes
4. 41 Medium No Fair Yes
5. 41 Low Yes Fair Yes
6. 41 Low Yes Excelent No
7. 31..40 Low Yes Excelent Yes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
14
8. 29 Medium No Fair No
9. 29 Low Yes Fair Yes
10. 41 Medium Yes Fair Yes
11. 29 Medium Yes Excelent Yes
12. 31..40 Medium No Excelent Yes
13. 31..40 High Yes Fair Yes
14. 41 Medium No Excelent No
Vektornya adalah sebagai berikut:
Tabel 2.6 Data Numerik buys computer
Age Income Student Credit_Rating Class
1 3 2 1 No
1 3 2 2 No
2 3 2 1 Yes
3 2 2 1 Yes
3 1 1 1 Yes
3 1 1 2 No
2 1 1 2 Yes
1 2 2 1 No
1 1 1 1 Yes
3 2 1 1 Yes
1 2 1 2 Yes
2 2 2 2 Yes
2 3 1 1 Yes
3 2 2 2 No
1. Menghitung Euclidean Distance
Misalkan kita memiliki dua buah titik, titik A dan titik B yang masing masing
dapat dipresentasikan dalam bentuk vektor sebagai berikut:
A = Titik representasi dari data yang kita training.
B= Titik representasi dari data yang kita testing.
A = [a1 a2 a3 …. an] T
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15
B = [b1 b2 b3 …. bn] T
Maka jarak Euclid antara kedua titik tersebut dapat dicari dengan rumus:
D2 = (a1-b1)2 + (a2-b2)2 + (a3-b3)2 + ….. + (an-bn)2
atau
D= √ (a1-b1)2 + (a2-b2)2 + (a3-b3)2 + ….. + (an-bn)2
Misalkan diketahui umur 29 tahun, berpenghasilan tinggi (high), Bukan pelajar,
dan peringkat rating (credit_rating) fair, maka perhitungan probabilitas untuk
menentukan apakah dia membeli komputer atau tidak jika ditentukan memiliki 1 jarak
terdekat (k) adalah:
Vektor data testing:
Tabel 2.7 Data testing KNN
Age Income Student Credit_Rating
1 3 2 1
Membandingkan dengan rumus Euclidean Distance:
D1(x,y)=√(1-1) 2 +(3-3) 2 +(2-2) 2 +(1-1) 2 =0
D2(x,y)=√ (1-1) 2 +(3-3) 2 +(2-2) 2 +(1-2) 2 =1
D3(x,y)=√ (1-2) 2 +(3-3) 2 +(2-2) 2 +(1-1) 2 =1
D4(x,y)=√ (1-3) 2 +(3-2) 2 +(2-2) 2 +(1-1) 2 =2,23
D5(x,y)=√ (1-3) 2 +(3-1) 2 +(2-1) 2 +(1-1) 2 =3
D6(x,y)=√ (1-3) 2 +(3-1) 2 +(2-1) 2 +(1-2) 2 =3,16
D7(x,y)=√ (1-1) 2 +(3-2) 2 +(2-2) 2 +(1-1) 2 =2,64
D8(x,y)=√ (1-2) 2 +(3-1) 2 +(2-1) 2 +(1-2) 2 =1
D9(x,y)=√ (1-1) 2 +(3-1) 2 +(2-1) 2 +(1-1) 2 =2,23
D10(x,y)=√ (1-3) 2 +(3-2) 2 +(2-1) 2 +(1-1) 2 =2,44
D11(x,y)=√ (1-1) 2 +(3-2) 2 +(2-1) 2 +(1-2) 2 =1,73
D12(x,y)=√ (1-2) 2 +(3-2) 2 +(2-2) 2 +(1-2) 2 =1,73
D13(x,y)=√ (1-2) 2 +(3-3) 2 +(2-1) 2 +(1-1) 2 =1,41
D14(x,y)=√ (1-3) 2 +(3-2) 2 +(2-2) 2 +(1-2) 2 =2,44
Kemudian setelah itu dibandingkan jaraknya, dan setelah dibandingkan dicari 1
jarak paling dekat. Berdasarkan hasil perhitungan tersebut D1 adalah jarak yang paling
dekat (0), sehingga dapat disimpulkan bahwa dapat disimpulkan bahwa untuk kasus ini
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
16
orang yang berumur 29 tahun, berpenghasilan tinggi, bukan pelajar, dan memiliki credit
rating fair masuk dalam kelas orang yang tidak membeli computer.
tupel negatif. True positive mengacu pada tupel positif yang diberi label dengan tepat
oleh classifier, sementara true negatif adalah tupel negatif yang diberi label dengan
tepat oleh classifier.False positive adalah tupel negatif yang diberi label dengan tidak
tepat. Demikian pula, false negative adalah tupel positif yang diberi label dengan tidak
tepat.Istilah-istilah ini berguna ketika menganalisis kemampuan classifier dan diringkas
dalam Gambar 2.10.
Gambar 2.3 Confusion Matrix untuk matrix 2×2 (Tan, Steinbach, & Kumar, 2006)
Misalkan terdapat confusion matrix 2×2 seperti pada Gambar 2.10, maka rumus
yang akan digunakan untuk menghitung akurasi adalah sebagai berikut:
Rumus 2.6 diatas dapat juga didefinisikan seperti pada rumus berikut:
Gambar 2.4 Perbedaan sel normal dengan sel kanker (Weaver, 2002)
2.2.6.2 Epidemiologi
Di Indonesia setiap tahunnya diperkirakan terdapat 100 penderita kanker baru
setiap 100.000 penduduk seiring peningkatan angka harapan hidup, sosial ekonomi serta
perubahan pola penyakit (Tjindarbumi, 2000). Kasus baru kanker payudara pada wanita
di Amerika Serikat tahun 2005 adalah 211.240 dengan kematian 40.410, di Indonesia
terdapat 114.649 penderita (National CancerInstitute, 2005). Di RSUP. Dr. Sardjito
Yogyakarta pasien kanker payudara yang dirawat ada 252 orang pada tahun 2005. Pada
tahun 2006 di Amerika Serikat, kasus kanker payudara (wanita saja) menempati urutan
pertama (32%) dan penyebab kematian kedua setelah kanker paru (Anonim, 2007).
2.2.6.3 Etiologi
Penyebab kanker payudara belum diketahui secara pasti. Faktor risiko yang
sangat berpengaruh terhadap timbulnya kanker payudara antara lain genetik, faktor
endokrin, dan faktor lingkungan.
a. Faktor Endokrin
Faktor endokrin akan mempengaruhi insidensi pada kanker payudara,
diantaranya adalah total durasi lamanya menstruasi, early menarche (menstruasi di
umur dini), nulliparity (wanita yang tidak memiliki anak) dan melahirkan anak pertama
di umur >30 tahun akan meningkatkan risiko lama hidup pada perkembangan kanker
payudara (Dipiro, 2003).
b. Faktor Genetik
Sekitar 5-10% kanker payudara terjadi akibat adanya kelainan genetik yang
diturunkan anggota keluarga. Hal ini akan meningkatkan risiko timbulnya kanker tipe
tertentu misalnya sindroma Li-Fraumeni, mutasi pada kromosom 1q, 3p, 13q, 17p
menimbulkan kanker payudara pada umur lebih muda. Lebih dari 50- 85% wanita
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
19
dengan mutasi gen BRCA-1 atau BRCA-2 akan terkena kanker payudara (Anonim,
2003b).
c. Faktor Lingkungan
Makanan, nutrisi, dan terpapar senyawa radioaktif dapat memicutimbulnya
kanker payudara (Anonim, 2003b).
2.6.3.4. Patofisiologi
Identifikasi subtipe histopatologi kanker payudara penting karena ada
hubungannya dengan aspek klinik yaitu prediksi metastasis, terapi dan prognosis.
a. Dasar klasifikasi subtipe histopatologi kanker payudara yang sering
digunakanadalah WHO tahun 1981. Menurut WHO subtipe histopatologi
kankerpayudara ada 2 macam yaitu :
1). carcinoma noninvasive
Carcinoma noninvasive artinya sel yang membahayakan mengikatkelenjar lain
pada lobus, dengan tidak ada bukti penetrasi pada sel tumormenyambung dengan dasar
membran di sekitar 2 tipe pada struktur yangdikelilingi jaringan fibrous. Umumnya
kanker payudara adalahadenocarcinoma yang berasal dari sel epitel pada pembuluh atau
kelenjar.Ada dua bentuk pada carcinoma noninvasive yaitu ductal carcinoma insitudan
lobular carcinoma insitu.
2). carcinoma invasif
Carcinoma invasif adalah sel yang rusaknya melewati dasar membrandi
sekeliling struktur payudara, dimana sel tersebut muncul dan menyebar disekeliling
jaringan. Ukuran carcinoma bermacam-macam, kurang dari10mm dan kedalaman lebih
dari 80mm, namun yang sering dijumpai yaknikedalaman 20-30mm. Secara klinis akan
terlihat kuat dan jelas serta kulitnampak bersisik dengan punting susu tertarik ke dalam
(Underwood, 2001).
b. Anatomi payudara
Payudara manusia berbentuk kerucut tetapi sering kali berukuran tidaksama.
Payudara memanjang dari tulang rusuk kedua atau ketiga sampai tulang rusuk keenam
atau ketujuh, dari tepi sentral ke garis aksilaris anterior. “Ekor”payudara memanjang
sampai ke aksila dan cenderung lebih tebal ketimbang daerah payudara lainnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
20
dikarenakan table hash seperti halnya hashmap menyimpan setiap pasangan kunci atau
nilai dari setiap data. Jika diketahui sebuah kuncinya maka bukan hal yang mustahil lagi
untuk mencari atau mengetahui nilai dari data tersebut. Namun lain halnya jika hash
table diimplementasikan pada system set data maka untuk mencari sebuah nilai kita
harus mencari kunci di dalam table hash padahal semua nilai yang berada dalam tabel
berisi null (Anonim. 2012).
Dalam tabel hash yang digunakan pada Java, setiap lokasi array sebetulnya
adalah suatu list berantai yang berisi pasangan kunci/nilai (atau mungkin juga list
kosong). Jika dua item memiliki kode hash yang sama, maka kedua item tersebut akan
ada pada list yang sama. Strukturnya bisa digambarkan sebagai berikut:
BAB III
PERANCANGAN SISTEM
Dalam bab metodologi penelitian ini akan dikaji tiga hal, yaitu (1) sumber data,
(2) analisis pengolahan data, (3) desain antarmuka sistem. Ketiga hal tersebut akan
dibahas satu per satu dalam subbab yang ada di bawah ini.
Menentukan
Jumlah Fold
Mengimpor data
<<depends on>>
Melakukan klasifikasi
Pengguna
Menu Keluar
Menu
Halaman Beranda
Hitung Perbandingan
Bantuan
Menu Keluar
Menu Keluar
KNN Akurasi
Naive Bayes
Waktu
Proses
BAB IV
IMPLEMENTASI SISTEM
Bab ini berisi tentang hasil penelitian berupa sistem yang dibangun berdasarkan
analisis dan perancangan yang telah dibahas pada bab sebelumnya dan pembahasan
mengenai hasil yang didapatkan. Adapun sistem dibangun dengan software Netbeans
IDE 7.0.1 pada komputer dengan spesifikasi memory 2 GB dan hardisk 465 GB.
Halaman utama merupakan halaman yang muncul pertama kali saat sistem
dijalankan. Halaman ini memiliki menu barmenu dan keluar. Saat menu bar
menuditekan maka sistem akan menampilkan Gambar 4.2. Saat menu bar keluar
ditekan, maka sistem akan keluar dari program.
menu bar menu ditekan maka sistem akan menampilkan Gambar 4.2. Saat menu bar
keluar ditekan, maka sistem akan keluar dari program. Saat pengguna menekan
submenu bar pada Gambar 4.2 dan memilih form hitung perbandingan maka akan
menampilkan seperti Gambar 4.4.
4.1.3 Halaman Hitung Perbandingan
membaca teks dari baris awal sampai dengan baris akhir. Berikut adalah kode
programnya:
public class LineIterator implements Iterable<String>, Iterator<String>,
Closeable {
private BufferedReader in = null;
private String next = null;
Pada kode program diatas dilakukan pengimplementasian untuk melakukan
perulangan sampai baris terakhir. Kemudian setelah itu dilakukan pembacaan teks
perbaris.
private static InputStream stream(File f) {
try {
return new FileInputStream(f);
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
Pada kode program diatas dilakukan pembacaan teks sesuai dengan file yang
dipilih oleh pengguna.
try {
in = new BufferedReader(reader);
next = in.readLine();
if (next == null) {
in.close(); }
} catch (IOException e) {
throw new RuntimeException(e);
}
Pada kode program diatas dilakukan pembacaan teks perbaris.Kemudian setelah
membaca data teks sistem perlu melakukan penulisan ulang agar isi dari data teks dapat
diproses dengan perhitungan klasifikasi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
38
max = removeFarthest(closest,dm); }}
// hapus jarak terjauh
return closest.keySet();}
Pada kode program diatas jika jumlah jarak terdekat melebihi k maka sistem
akan menghapus jarak terjauh sehingga sistem akan mengambil jarak terdekat sesuai
dengan k yang telah ditentukan. Dan kode program di bawah ini adalah untuk
menghapus jarak terjauh.
private double removeFarthest(Map<Instance, Double> vector,DistanceMeasure
dm) {
Instance tmp = null;
double max = dm.getMinValue();
for (Instance inst : vector.keySet()) {
double d = vector.get(inst);
if (dm.compare(max,d)) {
max = d;
tmp = inst;
}
}
vector.remove(tmp);
return max;
}
Pada kode program di atas sistem akan mengurutkan jarak terdekat dan akan
menghapus jarak yang paling jauh.
Setelah jarak terdekat didapatkan maka langkah selanjutnya adalah menentukan
nilai hasil klasifikasi dengan mengambil nilai dari data yang merupakan data yang
memiliki jarak terdekat.
4.3.1.3 Mengambil Nilai Jarak Terdekat
Untuk mendapatkan nilai hasil klasifikasi maka dilakukan pengambilan nilai
dari data yang merupakan data yang memiliki jarak yang paling dekat. Langkah pertama
sistem akan memanggil method untuk membandingkan jarak terdekat, kenudian untuk
semua nilai data training diset nol (0), tetapi khusus untuk jarak terdekat sistem akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
43
menambah satu (+1) pada nilai yang dimiliki oleh jarak terdekat. Penambahan nilai satu
pada value yang dimiliki jarak terdekat bertujuan agar pada saat perbandingan
probabilitas sistem akan memilih atau mengambil nilai yang dimiliki oleh jarak terdekat
sebagai nilai hasil dari klasifikasi. Berikut adalah kode programnya:
Set<Instance> neighbors = training.kNearest(k, instance, dm);
// menyimpan hasil jarak terdekat
/* Membangun kelas distribusi */
HashMap<Object, Double> out = new HashMap<Object, Double>();
// menyimpan hasil klasifikasi
for (Object o : training.classes()){
// Selama o bagian dari data training
out.put(o, 0.0);
// set nilai kelasnya menjadi 0
for (Instance i : neighbors) {
// selama I bagian dari jarak terdekat
out.put(i.classValue(), out.get(i.classValue()) + 1);
//set nilai kelas menjadi 1
}
return out;
// kembalikan nilai out
Setelah didapatkan nilai satu untuk nilai kelas yang dibandingkan maka sistem
akan membandingkan nilai tersebut untuk menentukan hasil akhir klasifikasi. Berikut
adalah kode program untuk membandingkan nilai.
public Object classify(Instance instance) {
Map<Object, Double> distribution = KelasDistribusi(instance);
double max = 0;
Object out = null;
for (Object key : distribution.keySet()) {
if (distribution.get(key) > max) {
max = distribution.get(key);
out = key;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
44
}
}
return out;
}
Pada method ini sistem akan membandingkan nilai kelas yang telah diberi bobot
pada method KelasDistribusi(), misalnya: nilai jarak terdekat adalah yes maka yes akan
diberi nilai 1 dan no akan diberi nilai 0 maka method ini akan mengeluarkan yes sebagai
hasil dari klasifikasi.
FrekuensiKelas[i] = 0;
// setting frekuensi kelas menjadi 0 }
Selanjutnya dilakukan perulangan untuk setiap data yang muncul sesuai dengan
kategori tertentu yang dipanggil maka frekuensi kelas akan otomatis bertambah 1.
for (Instance inst : Instances2Train) {
FrekuensiKelas[Classname2IndexCCountermap.get(inst.classValue())]++;
}
return FrekuensiKelas;
}
Pada kode program di atas sistem akan menambahkan satu setiap ada kelas
pembanding yang muncul hal ini dapat dilakukan karena
Classname2IndexCCountermap bisa mendeteksi kepemilikan kelas pada nilai kelas
pembanding sehingga ketika nilai keluar maka pada kelas pemilik sistem akan
menambahkan nilai satu.
for (Object o : trainingData.classes()) {
String classname = o.toString();
Classname2IndexCCountermap.put(classname, cnt);
classes[cnt] = classname;
cnt++;
}
Pada kode program diatas sistem membuat nama untuk setiap nilai kelas
pembanding pada setiap data training, sehingga ketika dipanggil sistem akan menambah
nilai frekuensi kelas data tersebut.
Kemudian langkah selanjutnya adalah menghitung probabilitas masing-masing
kelas.
4.3.2.2 Menghitung Probabilitas Kelas
Langkah kedua adalah menghitung probabilitas kelas dari masing – masing
kelas. Dalam proses klasifikasi naive bayes perhitungan probabilitas kelas dihitung
dengan menggunakan rumus sebagai berikut:
P(Wk|Vj)= Nk+1
N+|vocabulary|
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
46
Rumus tersebut yang akan diimplementasikan dalam kode program ini. Langkah
pertama adalah membuat sebuah array untuk menyimpan nilai frekuensi dan
probabilitas, kemudian lakukan iterasi sebanyak jumlah kelas lakukan perhitungan
probabilitas. Berikut adalah kode programnya:
private double[] HitungProbsKelas() {
double[] probs = trainResult.getClassFreqs().clone();
// menyimpan probabilitas kelas
double[] freq = trainResult.getClassFreqs().clone();
for (int k = 0; k < numClasses; k++) {
probs[k] = (freq[k] + 1) / (numInstances + numClasses);
}
return probs;
}
4.3.2.3 Menghitung Kelas Distribusi Naïve Bayes
Langkah ketiga adalah menghitung probabilitas likehood dari naive bayes
dengan mengkalikan semua probabilitas kelas, kemudian menormalisasi hasil likehood
ke dalam bentuk probabilitas, dan kemudian membandingkan probabilitas kelas yang
dibandingkan untuk mendapatkan hasil akhir dari klasifikasi. Yang pertama dilakukan
adalah membuat suatu tempat penyimpanan atau map untuk menyimpan nilai frekuensi,
fitur tabel dan menyimpan hasil klasifikasi.
HashMap<Object, Double> out = new HashMap<Object,
Double>(numClasses);
// menyimpan hasil klasifikasi
Hashtable<Integer, Hashtable<Double, ClassCounter>> featureName_HT =
trainResult.getFeatureTable();
// menyimpan fitur tabel
double[] freq = trainResult.getClassFreqs().clone();
double total = 0;
Kemudian langkah selanjutnya adalah menghitung probabilitas nilai kelas yang
akan dibandingkan (yes atau no) dengan menggunakan rumus:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
47
P(yes/no) = |doc j|
|Contoh|
for (int k = 0; k < numClasses; k++) {
double denominator = freq[k];
double classScore2 = freq[k]/numInstances;
Pada bagian kode program diatas adalah implementasi dari hitung probabilitas
nilai kelas yang akan dibandingkan dan akan diulang sebanyak jumlah kelas dalam
kasus ini diulang dua kali karena kelas yang dibandingkan adalah dua (yes dan no).
Kemudian setelah menghitung probabilitas nilai kelas selanjutnya sistem akan
menghitung nilai dari kelas pembanding lainnya dengan menggunakan rumus:
P(Wk|Vj)= Nk+1
N+|vocabulary|
Kemudian mengkalikan seluruh probabilitas kelas pembanding untuk kategori
yes dan no untuk mendapatkan likelihood yang nantinya akan dibandingkan.
for (Object key : featureName_HT.keySet()) {
int featureName = (Integer) key;
int numValues = featureName_HT.get(featureName).size();
Double featureValue = getInstValue(featureName, inst);
double numerator = featureName_HT.get(featureName).get(
featureValue).getCountClass(k);
// Laplace correction
classScore2 *= (numerator+1)/(denominator+numValues);
}
Pada bagian ini sistem menghitung probabilitas kelas pembanding yang muncul
dan mengkalikan seluruhnya untuk mendapatkan nilai likelihood, kemudian sistem
menormalisasi nilai likelihoss agar berbentuk probabilitas dengan cara likelihood yes
ataupun no dibagi hasil total dari penjumlahan hasil perkalian likelihood yes dan no.
out.put(classes[k], classScore2);
total = total +classScore2;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
48
Langkah pertama yang dilakukan adalah membuat suatu tempat penyimpanan data
untuk validasi dan data untuk training.
for (int i = 0; i < numFolds; i++) {
Dataset validation = folds[i];
// untuk menyimpan data validasi
Dataset training = new DefaultDataset();
// untuk menyimpan data training
Pada kode program diatas perulangan dilakukan untuk mengambil data untuk
dijadikan data validasi untuk setiap perulangan, dan perulangan dilakukan sebanyak
jumlah fold yang diinginkan, kemudian setelah pengambilan data validasi sisa data nya
dijadikan sebagai data training.
for (int j = 0; j < numFolds; j++) {
if (j != i)
training.addAll(folds[j]); }
classifier.buildClassifier(training);
Pada kode program diatas perulangan digunakan untuk mengambil semua data
kecuali data yang dijadikan sebagai data validasi. Kemudian melatihnya dengan
klasifikasi yang diinginkan. Selanjutnya menentukan jumlah benar yang positif (true
positif), jumlah benar yang negatif (true negative), jumlah salah yang positif (false
positif) dan jumlah salah yang negatif (false negative).
Pada bagian ini dilakukan pengecekan pada data yang dijadikan validasi dan
dicocokan dengan data yang telah di-training. Langkah pertama adalah menjalankan
proses klasifikasi
for (Instance instance : validation) {
// Selama instance bagian dari validation
Object prediction = classifier.classify(instance);
Kemudian setelah proses dijalankan maka pengecekan dimulai dari klasifikasi
yang bernilai benar terlebih dahulu.
if (instance.classValue().equals(prediction)) {
// jika prediksi sesuai dengan kelas maka
for (Object o : out.keySet()) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
50
out.get(o).fp++;
}
/* instance is positive class */
else if (o.equals(instance.classValue())) {
out.get(o).fn++; }
/* none is positive class */
else {
out.get(o).tn++; }
} } }}
return out; //kembalikan nilai out/hasil
}
Pada bagian ini sistem akan mengecek apabila klasifikasi yang salah yaitu jika
data validasi bernilai yes sedangkan data yang di-training bernilai no dan sebaliknya.
Jika data yang salah bernilai positif maka fp++, dan jika data yang salah bernilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
51
negative maka fn++. Setelah nilai tp, tn, fp, dan fn udah dihitung langkah selanjutnya
menentukan parameter yaitu akurasi.
4.3.3.2 Menghitung Akurasi
Untuk mengetahui akurasi atau frekuensi benar dari sebuah klasifikasi maka
perlu dihitung akurasinya. Langkahnya adalah dengan menjumlahkan true positif
dengan true negative kemudian membaginya dengan total seluruh data klasifikasi.
Misalkan: a= jumlah klasifikasi positif benar (true positif)
b= jumlah klasifikasi negative benar (true negative)
c= jumlah total seluruh data
Maka : (a+b)/c
Berikut adalah kode program yang mengimplementasikan akurasi:
public double getAkurasi() {
return (this.tp + this.tn) / this.getTotal();}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
52
BAB V
ANALISIS HASIL
Gambar 5.2 Screenshot Naive bayes dengan 3-fold cross validation dengan
menggunakan program weka
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
54
Gambar 5.7 Screenshot Naive bayes dengan 15-fold cross validation dengan
menggunakan program weka
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
60
Gambar 5.11 Screenshot Naive bayes dengan 3-fold cross validation dengan
menggunakan program weka
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
64
Gambar 5.12 Screenshot Naive bayes dengan 5-fold cross validation dengan
menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
65
Gambar 5.13 Screenshot Naive bayes dengan 5-fold cross validation dengan
menggunakan program weka
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
66
Gambar 5.14 Screenshot Naive bayes dengan 10-fold cross validation dengan
menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
67
Gambar 5.15 Screenshot Naive bayes dengan 10-fold cross validation dengan
menggunakan program weka.
Gambar 5.18 Screenshot Naive bayes dengan 15-fold cross validation dengan
menggunakan program weka.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
69
Gambar 5.19 Screenshot Naive bayes dengan 20-fold cross validation dengan
menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
70
Gambar 5.20 Screenshot Naive bayes dengan 20-fold cross validation dengan
menggunakan program weka.
Dari tabel diatas dapat diketahui bahwa jumlah fold dapat mempengaruhi hasil
akurasi, dan dari tabel diatas hasil akurasi sistem dapat terbukti sama dengan weka
dengan tingkat kecocokan kurang lebih 99%.
Tabel 5.2 Tabel perhitungan jumlah operasi dasar algoritma K-Nearest Neighbor
No. Operasi Dasar KNN Jumlah iterasi
1. Penghitungan tingkat kemiripan dengan euclidean distance N kali
2 Pembandingan tingkat kemiripan untuk menentukan jarak N kali
terdekat
3. Mengambil nilai jarak terdekat untuk menjadi nilai 1 kali
klasifikasi
Total 2N + 1 kali
Tabel 5.3 Tabel perhitungan jumlah operasi dasar algoritma Naïve Bayes
No. Operasi Dasar NB Naïve Bayes Jumlah iterasi
1. Menghitung probabilitas kelas yang dibandingkan 1 kali
2 Menghitung probabilitas kelas pembanding 1 kali
3. Menghitung likelihood dengan mengkalikan probabilitas 1 kali
kelas yang dibandingkan dengan nilai kelas pembanding
4. Menormalisasikan ke dalam bentuk probabilitas 1 kali
Total 4 kali
Dari tabel diatas dapat dilihat dan diambil kesimpulan bahwa operasi dasar
algoritma KNN lebih kompleks jika dibandingkan dengan algoritma Naïve Bayes dan
berdampak pada waktu proses kedua algoritma, sehingga menyebabkan algorima KNN
membutuhkan waktu proses lebih lama dibandingkan algoritma K-Nearest Neighbor.
5.3.3 Analisa dengan Penelitian Terdahulu yang Relevan
Penelitian perbandingan algoritma antara k-nearest neighbor sebelumnya telah
diteliti dengan data yang berbeda – beda dan menghasilkan hasil yang berbeda – beda
juga.
Beberapa antara lain pada penelitian oleh Riyan Eko Putri dkk (2014) dalam
jurnal berjudul „Perbandingan Metode Klasifikasi Naïve Bayes dan K-Nearest Neighbor
pada Analisis Data Status Kerja di Kabupaten Demak tahun 2012‟ berdasarkan hasil
perhitungan dengan menggunakan data status kerja di Kabupaten Demak tahun 2012
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
75
ditemukan bahwa akurasi K-Nearest Neighbor lebih unggul bila dibandingkan Naïve
Bayes dengan akurasi K-Nearest Neighbor sebesar 96% dan Naïve Bayes sebesar 94%.
Raviya dan Gajjar (2013) melakukan perbandingan tiga metode klasifikasi yaitu
Decision Tree, Naïve Bayes dan KNN dan menemukan bahwa hasil akurasi metode
Decision Tree dan KNN memperoleh nilai yang sama yaitu 63.7% sedangkan Naïve
Bayes memperoleh nilai 37.1%.
Dedy Santoso dkk (2013) melakukan penelitian membandingkan kinerja metode
Naïve Bayes, K-Nearest Neighbor dan metode gabungan K-Means dan LVQ dalam
pengkategorian buku komputer bahasa Indonesia berdasarkan judul dan sinopsis. Pada
penelitian ini ditemukan bahwa hasil akurasi Naïve Bayes lebih unggul dibandingkan
KNN dengan akurasi untuk Naïve Bayes sebesar 98% dan untuk KNN sebesar 96%.
Cahyo Darujati (2010) dalam jurnalnya berjudul Perbandingan Klasifikasi
Dokumen Teks menggunakan Metode Naïve Bayes dengan K-Nearest Neigtbor
menemukan bahwa Naïve Bayes kinerjanya lebih baik dari K-Nearest Neighbor dalam
pengklasifikasian dokumen teks.
Dari penelitian yang dilakukan sebelumnya dapat disimpulkan bahwa
perbandingan algoritma KNN dengan Naïve Bayes dapat menghasilkan hasil yang
berbeda – beda tergantung masukan yang diberikan dan pada penelitian ini penulis
melakukan penelitian dengan masukan data wisconsin diagnosis breast cancer dan
menemukan bahwa untuk data tersebut terbukti bahwa Naïve Bayes lebih baik
dibandingkan KNN.
3. Sistem yang dibangun tidak menggunakan database atau media penyimpanan lain.
Data yang dimasukkan/di-input oleh pengguna disimpan dalam memori RAM,
sehingga sistem akan bekerja lebih cepat dan lebih hemat memori.
4. Sistem mudah untuk diperbarui atau di update.
5. Menggunakan java sehingga dapat digunakan dengan mudah.
5.3.2 Kekurangan Sistem
Kekurangan dari sistem yang dibangun adalah sebagai berikut:
1.Hanya dapat mengklasifikasi data dengan algoritma KNN dan Naive Bayes,
2.Hanya dapat memproses data wisconsin breast cancer.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
77
BAB VI
PENUTUP
6.1 Kesimpulan
Kesimpulan yang dapat diambil dari penelitian analisa perbandingan algoritma
Naïve Bayes dan KNN untuk studi data “Wisconsin Diagnosis Breast Cancer” adalah :
1. Algoritma Naïve Bayes mempunyai akurasi yang lebih akurat bila
dibandingkan dengan algoritma KNN dalam mengklasifikasi data wisconsin
diagnosis breast cancer.
2. Algoritma Naïve Bayes lebih cepat waktu prosesnya bila dibandingkan
algoritma KNN dalam mengklasifikasikan data wisconsin diagnosis breast
cancer.
3. Dalam mengklasifikasikan data wisconsin diagnosis breast cancer penulis
lebih menyarankan algoritma Naïve Bayes untuk dipakai dalam proses
klasifikasi jika dibandingkan algoritma KNN.
6.2 Saran
Sebagai akhir dari penelitian ini, peneliti menyampaikan beberapa saran yang
diharapkan dapat berguna bagi kepentingan pihak-pihak terkait. Saran tersebut
ditujukan untuk mahasiswa dan peneliti lain. Saran tersebut antara lain:
1. Bagi Mahasiswa
Diharapkan penelitian ini dapat membantu mahasiswa dalam pembelajaran
berkaitan dengan algoritma yang diteliti.
2. Bagi Peneliti lain
Pembahasan dalam penelitian ini terbatas pada ketiga algoritma saja yaitu
(1)K-Nearest Neighbor dan (2) Naive Bayes diharapkan peneliti selanjutnya
dapat meneliti algoritma-algoritma lain ataupun dataset lain.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
78
DAFTAR PUSTAKA
LAMPIRAN I
SKENARIO USE CASE
Nama Use Menentukan Jumlah Fold
Case
Deskripsi Use Use case ini digunakan untuk menentukan jumlah fold yang akan
Case digunakan dalam proses cross validation.
Pra Kondisi Data telah diimpor
Langkah Kegiatan Aktor Respon Sistem
Umum 1. Pengguna mengisikan angka di
edit text fold.
2. Sistem mengeset angka yang
telah diganti sebagai fold.
Alternatif -
Kesimpulan Use case ini berhenti apabila telah memasukkan angka di edit text,
dan menekan tombol proses.
LAMPIRAN II
DIAGRAM AKTIVITAS
1. Diagram Aktivitas Mengimpor Data
AKTOR SISTEM
mulai
Sesuai
format
No
Yes
Tampilkan Tampilkan
data pesan error
selesai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
82
mulai
Pengguna memasukkan
angka di edit text fold
selesai
mulai
Meanampilkan hasil
akurasi, dan waktu proses
selesai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
83
LAMPIRAN III
Flowchart Alur Sistem
Start
Pilih dataset
Tidak
Ya
Masukkan
jumlah fold
Tidak
Ya
Memilih
klasifikasi
Tidak
Ya
Proses dengan
Naive Bayes Ya klasifikasi Naive Bayes
Clasifier Classifier dan
menampilkan tingkat
akurasi dan waktu
proses
Tidak
Proses dengan
Ya
klasifikasi KNN dan
KNN menampilkan tingkat
akurasi dan waktu
Tidak
End
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
84
LAMPIRAN IV
ALGORITMA PROSES KLASIFIKASI
1. K-Nearest Neighbor
A. Menghitung Euclidean Distance
a. Nama Kelas:EuclideanDistance.java
b. Nama Method: UkurdgnEuclid(Instance,Instance)
c. Fungsi Method: Untuk melakukan proses perhitungan jarak dengan euclidean
distance.
d. Algoritma :
1. Cek jika x.noAttributes() != y.noAttributes(), jika ya maka tampilkan
"Kedua atribut harus berupa angka".
2. Deklarasikan sum bertipe double.
3. Untuk i=0, dan memenuhi syarat i < x.noAttributes() lakukan langkah 4.
4. Cek jika !Double.isNaN(y.value(i)) && !Double.isNaN(x.value(i), jika ya
maka lakukan sum += (y.value(i) - x.value(i)) * (y.value(i) - x.value(i).
5. Kembalikan nilai Math.sqrt(sum).
B. Menghitung Jarak Terdekat
a. Nama Kelas: DefaultDataset.java
b. Nama Method: kNearest(Instance,DistanceMeasure)
c. Fungsi Method: Mencari jarak yang terdekat antara 2 titik.
d.Algoritma:
1. Deklarasikan variabel closest bertipe Map<Instance,Double>.
2. Deklarasikan variabel Max bertipe double.
3. Selama tmp masih bagian dari dataset Lakukan langkah 4-6.
4. Cari jarak terdekat menggunakan method euclidean distance pada kelas
EuclideanDistance.
5. Cek jika dm.compare(d, max) && !inst.equals(tmp), jika ya maka
closest.put(tmp, d).
6. Cek jika closest.size() > k, jika ya maka max = removeFarthest(closest,dm).
7. Kembalikan hasil closest.keySet().
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
85
2. Naive Bayes
A. Menghitung Kelas Frekuensi
a. Nama Kelas:AbstractBayesianClassifier.java
b. Nama Method:HitungFreqKelas(Dataset)
c. Fungsi Method:Menghitung Frekuensi dari suatu Kelas
d. Algoritma:
1. Deklarasikan FrekuensiKelas bertipe double[].
2. Untuk i=0, dan selama memenuhi i<numClasses lakukan FrekuensiKelas[i]
= 0.
3. Selama Instance inst : Instances2Train lakukan
FrekuensiKelas[Classname2IndexCCountermap.get(inst.classValue())]++.
4. Kembalikan nilai FrekuensiKelas.
B. Menghitung Probabilitas Kelas
a. Nama Kelas:AbstractBayesianClassifier.java
b. Nama Method:HitungProbsKelas()
c. Fungsi Method:Menghitung Probabilitas Kelas
d. Algoritma:
1. Deklarasikan probs dan freq bertipe double[].
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
86
3. Cross Validation
A. Algoritma Cross Validation
a. Nama Kelas: CrossValidation.java
b. Nama Method: crossValidation(Dataset,int,Random)
c. Fungsi Method: Untuk mengevaluasi suatu klasifikasi dengan teknik cross
validation.
d. Algoritma:
1. Deklarasikan folds bertipe Dataset[].
2. Deklarasikan out bertipe Map<Object, PerformanceMeasure>.
3. Selama Object o : data.classes(), lakukan out.put(o, new
PerformanceMeasure()).
4. Untuk i=0, dan selama memenuhi i<numFolds lakukan langkah 5-16
5. Deklarasikan variable validation dan training bertipe Dataset.
6. Untuk j=0, dan selama memenuhi j<numfolds lakukan langkah 7-16.
7. Cek jika j!=I, jika ya maka lakukan training.addAll(folds[j]).
8. Jalankan method classifier.buildClassifier(training) pada kelas Classifier.
9. Selama Instance instance : validation lakukan langkah 10-16.
10. Deklarasikan variable prediction bertipe object
11. Cek jika instance.classValue().equals(prediction), jika ya maka lakukan
langkah 12-13, dan jika tidak lakukan langkah 14-16.
12. Selama instance.classValue().equals(prediction), lakukan langkah 13.
13. Cek jika o.equals(instance.classValue()) lakukan jika ya maka
out.get(o).tp++, dan jika tidak maka out.get(o).tn++
14. Selama Object o : out.keySet() lakukan langkah 15 -16.
15. Cek jika prediction.equals(o), jika ya maka out.get(o).fp++.
16. Cek jika o.equals(instance.classValue()), jika ya maka out.get(o).fn++, jika
tidak maka out.get(o).tn++.
17. Kembalikan nilai out
B. Algoritma Hitung Akurasi
a. Nama Kelas: PerformanceMeasure.java
b. Nama Method: getAkurasi()
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
88
LAMPIRAN V
HASIL AKURASI