Anda di halaman 1dari 108

PLAGIAT

PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

PERBANDINGAN ALGORITMA K-NEAREST


NEIGHBORS DAN NAIVE BAYES UNTUK STUDI
DATA “WISCONSIN DIAGNOSIS BREAST CANCER”
SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat


Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika

Disusun oleh :

Paulus Dian Wicaksana

115314068

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2015
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

A COMPARISON ALGORITHM BETWEEN K-NEAREST


NEIGHBORS AND NAIVE BAYES FOR DATA STUDY
"WISCONSIN DIAGNOSIS BREAST CANCER"
A THESIS

Presented as Partial Fulfillment of the Requirements


To Obtain the Sarjana Komputer Degree
In Informatics Engineering

By :

Paulus Dian Wicaksana

115314068

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTEMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2015
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

HALAMAN PERSETUJUAN

TUGASAKHIR

PERBANDINGAI{ AI,GORITMA K-NEAREST NEIGIIBOR DAII NAIYE


BAYES UNTUK STT]DI DATA "WISCONSIN DIAGNOSIS BREAST

'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

PERBANDINGAN ALGORITMA K.NEAREST NEIGIIBOR DAN NAI\'E


BAYES UNTUK STUDI DATA "WISCONSIN DIAGNOSIS BREAST
CANCER''
Studi Data : Wisconsin Diagnosis Breast Cancer

Yang Dipersiapkan dan Disusun Oleh :


Paulus Dian Wicaksana
11s314068
Tclah dipertahankan di depan Panitia Penguji
Pada tanggat '!7'lJovembac
rot5
Dan dinyatakan memenuhi syarat
Susunan Panitia Penguji

Nama Lengkap Tanda Tangan

Ketua : Eko Hari Parmadi, S.Si., M.Kom.

Sekretaris : Sri Hartati Wijono, S.Si., M.Kom.

Anggota : Albertus Agung lladhiatma, S.T,, M.T.

uogauara,.?7..
akultas Sains dan Teknologi

,l
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

HALAMAN PERSEMBAHAN

I don’t judge and I don’t hate

Skripsi ini saya persembahkan kepada:


Yesus Kristus
Almarhum Bapak, Ibu, Kakakku dan Adikku
Semua Sanak Keluarga
Keluarga Rohani
Teman – teman tercinta

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”

Dalam mengklasifikasi data teks, terdapat beberapa algoritma klasifikasi yang


dapat digunakan, antara lain algoritma Naïve Bayes dan K-Nearest Neighbor. Algoritma
Naïve Bayes dan K-Nearest Neighbor adalah dua algoritma yang memiliki tingkat
akurasi yang tinggi dalam mengklasifikasikan data teks. Tingkat akurasi yang terbaik di
antara kedua algoritma ini dapat diketahui dengan cara melakukan perbandingan.
Perbandingan algoritma dapat dilakukan dengan cara membandingkan tingkat akurasi
dari algoritma yang dibandingkan. Perbandingan algoritma bertujuan untuk
mendapatkan algoritma yang dianggap paling baik pada proses klasifikasi suatu
permasalahan. Maka, diharapkan dengan adanya penelitian dalam perbandingan
algoritma Naïve Bayes dan K-Nearest Neighbor, dapat diketahui algoritma yang paling
baik dalam pengklasifikasian data teks wisconsin diagnosis breast cancer.

Kata Kunci : Perbandingan Algoritma, K-Nearest Neighbor, Naïve Bayes

vi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

ABSTRACT
COMPARISON OF K-NEAREST NEIGHBOR AND NAIVE BAYES ALGORITHM
FOR DATA STUDY "WISCONSIN DIAGNOSIS BREAST CANCER"

In Classification text data, there are several classification algorithms that


can be used, there are Naïve Bayes algorithm and K-Nearest Neighbor algorithm.
Naïve Bayes algorithm and K-Nearest Neighbor algorithm are two algorithm that have
high accuracy in classification text data. The highest accuracy between them can be
discovered by comparing the both algorithm. Comparison of the algorithm can be done
by comparing accuracy of the algorithm. Comparison algorithm aims to obtain an
algorithm that is the best for classification process of a problems. Thus, in this research
of comparison algorithm K-Nearest Neighbor and Naïve Bayes, it can be seen that a
best classification algorithm for classification text wisconsin diagnosis breast cancer
data.

Key Word: Algorithm Comparison, K-Nearest Neighbor, Naïve Bayes

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

3.1. Sumber Data ................................................................................................25


3.2. Analisis Pengolahan Data.............................................................................26
3.3. Perancangan Umum Sistem..........................................................................28
3.4. Perancangan Umum Algoritma....................................................................29
3.5. Desain Antarmuka Sistem ...........................................................................30
BAB IV IMPLEMENTASI SISTEM .............................................................................33
4.1. Implementasi Antarmuka Pemakai (User Interface)....................................33
4.2. Pemrosesan Input .........................................................................................36
4.3. Implementasi Algoritma pada Sistem...........................................................40
BAB V ANALISIS HASIL ............................................................................................52
5.1. Analisis Proses Penambangan Data .............................................................52
5.2. Analisa Hasil……………………… ............................................................71
5.3. Kelebihan dan Kekurangan Sistem ..............................................................75
BAB VI PENUTUP ........................................................................................................77
6.1. Kesimpulan ..................................................................................................77
6.2. Saran ............................................................................................................77
DAFTAR PUSTAKA .....................................................................................................78
LAMPIRAN I .................................................................................................................79
LAMPIRAN II ................................................................................................................81
LAMPIRAN III ..............................................................................................................83
LAMPIRAN IV ..............................................................................................................84
LAMPIRAN V ...............................................................................................................89

x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

DAFTAR TABEL

Tabel 2.1. Data buys_computer………........................................................................... 8


Tabel 2.2. Tabel data teks buys_computer........................................................................9
Tabel 2.3. Tabel probabilitas yes data teks buys_computer.......................................... .10
Tabel 2.4. Tabel probabilitas no data teks buys_computer.............................................10
Tabel 2.5. Tabel data buys_computer…......................................................................... 13
Tabel 2.6. Data Numerik buys computer....................................................................... 14
Tabel 2.7. Data testing KNN.......................................................................................... 15
Tabel 3.1. Data Atribut Wisconsin Diagnosis Breast Cancer........................................25
Tabel 3.2. Jumlah Data Hasil Pembersihan................................................................... 27
Tabel 3.3. Deskripsi use case …..…….......................................................................... 28
Tabel 5.1. Tabel akurasi sistem dan weka..................................................................... 70
Tabel 5.2. Tabel perhitungan jumlah operasi dasar algoritma K-Nearest Neighbor......74
Tabel 5.3. perhitungan jumlah operasi dasar algoritma Naïve Bayes............................ 74

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.1 Latar Belakang Masalah


Penambangan Data adalah proses pengumpulan informasi penting dari sejumlah
data besar yang tersimpan di basis data, gudang data, atau tempat penyimpanan lainnya
(Han & Kamber, 2006).Perkembangan penambangan data tidak terlepas dari kemajuan
teknologi informasi yang memungkinkan data dalam jumlah yang besar terakumulasi.
Seiring dengan semakin dibutuhkannya penambangan data muncul beberapa algoritma
klasifikasi untuk memproses data dalam jumlah besar.
Klasifikasi adalah proses pembelajaran secara terbimbing (supervised learning).
Klasifikasi digunakan untuk memprediksi kelas dari objek yang kelasnya belum
diketahui (Raviya & Gajjar, 2013). Metode klasifikasi yang umum digunakan antara
lainDecision Tree, K-Nearest Neighbor, Naïve Bayes, neural network dan support
vector machines (Sahu dkk, 2011).Maka dari itu penulis tertarik untuk membandingkan
beberapa metode klasifikasi. Perbandingan metode klasifikasi dilakukan untuk
menentukan jenis klasifikasi yang paling cocok digunakan dengan data yang berbentuk
informasi teks.
Sebagai tahap awal dalam penelitian, penulis melakukan pengamatan awal
terhadap beberapa jurnal ilmiah diantaranya berupa penelitian oleh Adel Aloraini (2012)
berjudul „Different Machine Learning Algorithms for Breast Cancer Diagnosis‟.
Penelitian tersebut mencoba membandingkan lima algoritma yaitu, (1) Bayesian
Network, (2) Naive Bayes, (3) J48, (4) ADTree, dan (5) Multilayer Neural Network.
Dari pengamatan itu peneliti tertarik mengangkat kembali ide penelitian, tetapi penulis

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.

1.2 Rumusan Masalah


Rumusan masalah dibuat agar penelitian menjadi lebih terarah. Berdasarkan
uraian latar belakang diatas, peneliti merumuskan rumusan masalah ”Sejauh mana
perbedaan akurasi algoritma naive bayes dan KNN dalam mengklasifikasikan data
wisconsin breast cancer?”.

1.3 Tujuan Penelitian


Tujuan penelitian ini adalah mendapatkan hasil perbandingan dari kedua
algoritma berupa tingkat akurasi, dan waktu proses, serta menentukan algoritma mana
yang memiliki algoritma yang lebih baik dan lebih baik.

1.4 Manfaat Penelitian


Penelitian ini diharapkan dapat memberikan manfaat bagi mahasiswa dan
penelitian lain.
(1) Bagi Mahasiswa
Penelitian dapat membantu menambah wawasan dan memperluas pengetahuan
tentang algoritma, khususnya ketiga algoritma yang dipakai di tugas akhir ini.
(2) Bagi Penelitian Lain
Penelitian ini sebagai bentuk sumbangan terhadap penelitian lainnya agar dapat
mengembangkan penelitian lebih lanjut berkaitan dengan masalah perbandingan
algoritma.

1.5 Batasan Masalah


Batasan masalah pada skripsi ini yaitu penulis memfokuskan untuk
menggunakan kedua algoritma, yaitu (1) Naive Bayes dan (2) K-nearest Neighbors dan
melihat tingkat akurasinya, serta data yang dipakai adalah data wisconsin breast cancer.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4

1.6 Sistematika Penyajian


Penelitian ini terdiri dari lima bab:
BAB I PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, rumusan masalah, tujuan
masalah, tujuan penelitian, manfaat penelitian, batasan masalah, dan sistematika
penyajian.
BAB II LANDASAN TEORI
Bab ini berisi tentang penelitian terdahulu yang relevan dan kajian teori
yang dipakai untuk menunjang penelitian.
BAB III PERANCANGAN SISTEM
Bab ini berisi tentang perancangan sistem yang akan dibangun. Bab ini
membahas tentang sumber data, analisis pengolahan data, dan desain antarmuka
sistem.
BAB IV IMPLEMENTASI SISTEM
Bab ini membahas hasil tentang implementasi sistem yang telah
dirancang pada bab iii.
BAB V ANALISIS HASIL
Bab ini berisi tentang analisis sistem yang telah dibangun pada bab iv.
BAB VI PENUTUP
Bab ini berisi tentang kesimpulan dan saran dari penelitian yang telah
dilakukan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5

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.

2.1 Penelitian Terdahulu yang Relevan


Penelitian tentang perbandingan algoritma memang beberapa kali telah
dilakukan. Kajian terhadap penelitian-penelitian tersebut sangat beragam sesuai dengan
permasalahan yang diamati oleh peneliti lain. Hal yang menjadi keberagaman penelitian
mengenai perbandingan algoritma adalah mengenai algoritma yang digunakan dan
sumber data yang dianalisis.
Penelitian mengenai perbandingan algoritma pernah dilakukan oleh Adel
Aloraini (2012) dalam jurnal berjudul „Different Machine Learning Algorithms for
Breast Cancer Diagnosis‟. Adapun yang menjadi objek penelitian adalah data wisconsin
breast cancer. Penelitian tersebut mencoba membandingkan kelima algoritma yaitu, (1)
Bayesian Network, (2) Naive Bayes, (3) J48, (4) ADTree, dan (5) Multilayer Neural
Network. Berikut ini adalah hasil penelitian yang dilakukan oleh Adel Aloraini.
(1) Membuktikan bahwa kecerdasan buatan dapat membantu pakar dalam
mendeteksi penyakit kanker payudara.
(2) Bayesian Network dan Naive Bayes adalah algoritma yang berbeda.
(3) Bayesian Network adalah algoritma yang terbaik dibandingkan keempat
algoritma lainnya.
Renaldo Malau (2015) dalam skripsinya yang berjudul Perbandingan Akurasi
Algoritma Naive Bayes Classifier dan Algoritma Bayesian Belief Network dalam
mengklasifikasikan mahasiswa Universitas Sanata Dharma Program Studi Teknik
Informatika menemukan bahwa akurasi kedua algoritma itu setelah diuji menggunakan
metode 5-fold cross validation, Naive Bayes Classifier sebanyak 49,0909%, dan
Bayesian Belief Network sebanyak 52,7273%, dan membuktikan bahwa metode
Bayesian Belief Network lebih akurat dibandingkan Naive Bayes Classifier.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6

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 Neighbordalam
pengklasifikasian dokumen teks.
Meskipun penelitian tentang perbandingan algoritma pernah dilakukan,
penelitian tersebut masih layak dilakukan. Masih banyak algoritma yang perlu
dibandingkan untuk mengetahui algoritma mana yang paling akurat.
Oleh karena itu, penulis akan membandingkan algoritma yang berbeda dari
penelitian-penelitian sebelumnya yaitu (1) Naive Bayes dan (2) K-nearest Neighbor.

2.2 Kajian Teori


2.2.1 Penambangan Data
Penambangan Data adalah proses pengumpulan informasi penting dari sejumlah
data besar yang tersimpan di basis data, gudang data, atau tempat penyimpanan lainnya
(Han & Kamber, 2006). Penambangan data merupakan proses yang tidak dapat
dipisahkan dengan Knowledge Discovery in Database (KDD), karena penambangan
data adalah salah satu tahap dalam proses KDD seperti yang ditunjukkan oleh gambar
2.1.

Gambar 2.1 Tahapan Dalam KDD (Han & Kamber, 2006)


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7

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.

2.2.2 Naive Bayes Classifier


Metode NBC menempuh dua tahap dalam proses klasifikasi teks, yaitu tahap
pelatihan dan tahap klasifikasi. Pada tahap pelatihan dilakukan proses analisis terhadap
sampel dokumen berupa pemilihan vocabulary, yaitu kata yang mungkin muncul dalam
koleksi dokumen sampel yang sedapat mungkin dapat menjadi representasi dokumen.
Selanjutnya adalah penentuan probabilitas prior bagi tiap kategori berdasarkan sampel
dokumen.Pada tahap klasifikasi ditentukan nilai kategori dari suatu dokumen
berdasarkan term yang muncul dalam dokumen yang diklasifikasi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8

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.

Contoh Naïve Bayesian


Berikut contoh kasus yang akan diselesaikan dengan metode Naïve Bayes
Classifier:
Tabel 2.1 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
8. 29 Medium No Fair No
9. 29 Low Yes Fair Yes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9

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

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. Kemudian tentukan P(Wk|Yes) dan P(Wk|No) yaitu probabilitas kata wk


dalam kategori yes atau no ditentukan dengan :
P(Wk|Yes)=Nk+1
N+|Vocabulary|
Dimana nk adalah frekuensi munculnya kata wk dalam dokumen yang ber
kategori yes atau no, sedangkan nilai n adalah banyaknya seluruh kata dalam dokumen
berkategori yes atau no, dan vocabulary adalah banyaknya kata dalam contoh pelatihan.
a. Probabilitas kelas Age (W1)
P(W1=<30|Yes)=(2+1)/(36+10)=0.06
P(W1=<30|No)=(3+1) /(20+10)=0.13
P(W1=31..40|Yes)=(4+1)/(36+10)=0.10
P(W1=31..40|No)=(0+1)/(20+10)=0.03
P(W1=>40|Yes)=(3+1)/(36+10)=0.08
P(W1=>40|No)=(2+1)/(20+10)=0.1
b. Probabilitas kelas Income (W2)
P(W2=low|Yes)=(3+1)/(36+10)=0.08
P(W2=low|No)=(1+1)/(20+10)=0.06
P(W2=medium|Yes)=(4+1)/(36+10)=0.10
P(W2=medium|No)=(2+1)/(20+10)=0.1
P(W2=high|Yes)=(2+1)/(36+10)=0.06
P(W2=high|No)=(2+1)/(20+10)=0.1
c. Probabilitas kelas Student (W3)
P(W3=yes|Yes)=(6+1)/(36+10)=0.17
P(W3=yes|No)=(1+1)/(20+10)=0.06
P(W3=no|Yes)=(3+1)/(36+10)=0.08
P(W3=no|No)=(4+1)/(20+10)=0.16
d. Probabilitas kelas Credit_Rating (W4)
P(W4=fair|Yes)=(6+1)/(36+10)=0.15
P(W4=fair|No)=(2+1)/(20+10)=0.1
P(W4=excelent|Yes)=(3+1)/(36+10)=0.08
P(W4=excelent|No)=(3+1)/(20+10)=0.13
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12

1. Terakhir mencari nilai probabilitas data test.


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 adalah:
P(X|Y=yes) =
P(Yes)*(E1=<30|Yes)*P(E2=high|Yes)*P(E3=No|Yes)*P(E4=fair|Yes)
= 0.64*0.06*0.06*0.08*0.15 = 3.61 * 10-5
P(X|Y=no) = P(E1=<30|No)*P(E2=high|No)*P(E3=No|No)*P(E4=fair|No)
= 0.36*0.13*0.1*0.16*0.1 = 7.93 * 10-5
Setelah didapatkan hasil likelihood maka hasil tersebut dibagi dengan total
hasil likelihood supaya mendapatkan nilai probabilitas, maka:
P(X|Y=yes) = 3.61 * 10-5/(3.61 * 10-5+7.93 * 10-5)=0.31
P(X|Y=no)=7.93 * 10-5/(3.61 * 10-5+7.93 * 10-5)=0.69
Berdasarkan hasil perhitungan tersebut, probabilitas tidak (0,69) lebih besar jika
dibandingkan dengan probabilitas ya (0,31), sehingga dapat disimpulkan bahwa untuk
kasus ini orang yang berumur 29 tahun, berpenghasilan tinggi, bukan pelajar, dan
memiliki credit rating fair masuk dalam kelas orang yang tidak membeli computer.

2.2.3 K-Nearest Neighbor


K-Nearest Neighbor (KNN) termasuk kelompok instance-based learning.
Algoritma ini juga merupakan salah satu teknik lazy learning. KNN dilakukan dengan
mencari kelompok k objek dalam data training yang paling dekat (mirip) dengan objek
pada data baru atau data testing . Algoritma K-Nearest Neighbor adalah sebuah metode
untuk melakukan klasifikasi terhadap objek berdasarkan data pembelajaran yang
jaraknya paling dekat dengan objek tersebut. Nearest Neighbor adalah pendekatan
untuk mencari kasus dengan menghitung kedekatan antara kasus baru dan kasus lama
yaitu berdasarkan pada pencocokan bobot dari sejumlah fitur yang ada. Untuk
mendefinisikan jarak antara dua titik yaitu titik pada data training (x) dan titik pada data
testing (y) maka digunakan rumus Euclidean, seperti yang ditunjukkan pada persamaan
(1)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13

.................(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.

2.2.4 K-Fold Cross Validation


Pada penelitian ini metode yang digunakan untuk menguji pola klasifikasi
adalah metode k-fold cross validation. Dalam k-fold cross validation, data dibagi
menjadi k bagian, D1, D2,..Dk, dan masing-masing D memiliki jumlah data yang sama.
Kemudian lakukan proses perulangan sebanyak k, dimana dalam setiap perulangan ke-i,
Di akan dijadikan data testing, dan sisanya akan digunakan sebagai data training.
Sebagai contoh, misalkan akan dilakukan metode cross validation dengan
menggunakan 3 fold. Pertama pilih salah satu fold menjadi data testing, kemudian
gunakan fold sisanya sebagai data training. Hal ini dilakukan berulang untuk semua
kombinasi data training-testing.Untuk mengilustrasikan metode ini, perhatikan Gambar
2.9.

Gambar 2.2 Ilustrasi 3-fold Cross Validation

2.2.5 Pengukuran Akurasi Klasifikasi


Keakuratan hasil klasifikasi dapat diukur dengan menggunakan confusion
matrix. Confusion matrix adalah media yang berguna untuk menganalisis seberapa baik
classifier dapat mengenali tupel dari kelas yang berbeda (Tan, Steinbach, & Kumar,
2006). Misalkan terdapat dua kelas, maka akan diistilahkan menjadi tupel positif dan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
17

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:

2.2.6 Kanker Payudara


2.2.6.1 Definisi Kanker Payudara
Kanker payudara muncul sebagai akibat sel-sel yang abnormal terbentuk pada
payudara dengan kecepatan tidak terkontrol dan tidak beraturan. Sel tersebut merupakan
hasil mutasi gen dengan perubahan bentuk, ukuran maupun fungsinya (Lippman, 1998).
Lebih dari 70% penderita kanker payudara ditemukan sudah dalam stadium lanjut
(Moningkey, 2000).
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
18

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

Payudara normal mengandung jaringan kelenjar, duktus,jaringan otot penyokong,


lemak, pembuluh darah, saraf, dan pembuluh limfe(Guiliano, 2001).
2.6.3.5. Tanda dan Gejala Klinis
Berupa benjolan pada payudara, eksema punting susu atau pendarahan pada
punting susu, tetapi umumnya berupa benjolan yang tidak nyeri. Benjolan itumula-mula
kecil, makin lama makin besar lalu melekat pada kulit dan menimbulkan perubahan
kulit payudara atau punting susu.Kulit atau punting susu akan tertarik ke dalam
(retraksi), berwarna merah kecoklatan sampai menjadi udema hingga kulit kelihatan
seperti kulit jeruk,mengkerut dan timbul ulkus. Ulkus tersebut makin lama akan
semakin membesardan akhirnya akan menghancurkan seluruh payudara dengan bau
yang busuk danmenjadi mudah berdarah (Anonim, 2000a).
2.6.3.6. Diagnosis
Secara umum diagnosis kanker payudara dibedakan menjadi 2 yaitu skrining
dan diagnostik. Yang termasuk skrining antara lain :
a. pemeriksaan payudara sendiri (SADARI) yang dilakukan setahun
sekalisetelah umur 20 tahun,
b. pemeriksaan payudara oleh dokter yang dimulai pada umur 20 tahun, setiap
3tahun sekali pada umur 20-39 tahun dan setiap tahun sekali setelah umur 40tahun,
c. mammografi skrining yang dilakukan pada pasien tanpa gejala
untukmendeteksi adanya kanker payudara yang samar (Ramli, 2000).
Yang termasuk diagnostik (Ramli, 2000) :
a. anamnesa meliputi tanda, gejala dan faktor risiko,
b. pemeriksaan fisik meliputi keadaan umum, dan tanda metastasis
Salah satu alternatif tes skrining kanker payudara adalah Fine Breast Needle
Cytologi (FNA). FNA biasa dilakukan untuk mendeteksi kesalahan pertumbuhan sel
yang terdapat pada payudara dan juga mengkonfirmasi yang bukan merupakan
kesalahan pertumbuhan sel dari hasil mammografi skrining. FNA dilakukan dengan
jarum yang sangat kecil untuk mendapatkan sample darah dari payudara.Sample dari
biopsi nantinya akan dikirim ke ahli patologi untuk dianalisa dan dikonfirmasi hasil
diagnosanya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
21

2.2.7 Metode Hashing atau Hashmap


Map adalah salah satu bentuk struktur data. Hashmap adalah struktur data map
yang di berikan kemampuan hashing. hashing adalah salah satu metode pemberian nilai
pada string, yang biasanya di pakai untuk pembandingan kesamaan atau kedekatan dari
satu string ke string yang lain. Pada proses pencarian pada hashmap yaitu pertama
membuat nilai hash pada string yang di cari kemudian membandingkan nilai hash
tersebut dengan nilai hash pada semua string yang ada di hashmap atau di struktur data.
Hashing/Hashmap merupakan metode untuk menyimpan dan mengambil catatan
dari database. Hal ini memungkinkan kita untuk melakukan penyisipan, menghapus,
dan mencari catatan berdasarkan nilai kunci pencarian.Hashing/Hashmap adalah
metode pencari pilihan karena sangat efisien ketika diterapkan dengan benar. Bahkan,
system hash yang diprogram dengan benar biasanya melihat hanya satu atau dua catatan
untuk setiap pencarian, insert, atau menghapus operasi. Waktu pencarian data melalui
hashing jauh lebih effisien dari pada pencarian data biner pada array yang diurutkan
dari n catatan dengan waktu O (log n), atau pencarian data dengan binary tree yang
mana memiliki waktu O(log n). Namun pada kenyataannya hashing sulit untuk
diterapkan dengan benar (Nurhaerty,2008).
Hasing/Hashmap adalah teknik untuk melakukan penambahan, penghapusan,
dan pencarian dengan rata – rata waktu konstan.Selain itu hashing juga dikenal dengan
sebutan hash table. Hash tables adalah array dengan sel-sel yang ukurannya telah
ditentukan dan dapat berisi data atau key yang berkesesuaian dengan data. Selain itu
Hash tables merupakan struktur data yang sering digunakan untuk
mengimplementasikan ADT (Abstract Data Type) pada sebuah Dictionary, yaitu ADT
(Abstract Data Type) yang hanya mengizinkan pencarian, penyisipan, dan penghapusan
elemen-elemen yang ada di dalamnya. (Ruli dkk, 2008.).
Hash Table merupakan solusi elegan untuk menyelesaikan masalah pencarian.
Hash Table, seperti HashMap, menyimpan pasangan kunci/nilai. Jika kita mengetahui
kuncinya, maka kita bisa mencari nilainya di dalam tabel. Jika tabel hash digunakan
untuk mengimplementasikan set, maka semua nilainya berisi null. Kita masih harus
mencari kuncinya di dalam tabel. Pada hakekatnya hash table merupakan solusi yang
sangat effisien dalam mengatasi masalah pencarian pada sebuah data. Hal ini
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
22

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:

Gambar 2.5 Struktur kode hash


Pada gambar 2.5., hanya ada satu item dengan kode hash 0, tidak ada item
dengan kode hash 1, dua item dengan kode hash 2, dan seterusnya. Pada tabel hash
yang dirancang dengan benar, hampir semua list berantai berisi nol atau satu elemen
saja, dengan rata-rata panjang list kurang dari 1. Meskipun kode hash dari suatu kunci
mungkin tidak membawa kita langsung pada kunci yang kita mau, akan tetapi tidak
akan lebih dari satu atau dua item yang harus kita cari sebelum kita sampai pada item
yang kita inginkan (Anonim. 2012).
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
23

2.2.8 WEKA (Waikato Environment for Knowledge Analysis)


WEKA (Waikato Environment for Knowledge Analysis) adalah suatu perangkat
lunak pembelajaran mesin yang populer ditulis dengan Java, yang dikembangkan di
Universitas Waikato di Selandia Baru. WEKA adalah perangkat lunak gratis yang
tersedia di bawah GNU General Public License. WEKA menyediakan penggunaan
teknik klasifikasi menggunakan pohon keputusan dengan algoritma J48. Teknik
klasifikasi dan algoritma yang digunakan di WEKA disebut classifier.
2.2.8.1 Cara menggunakan WEKA
Cara termudah untuk menggunakan WEKA adalah melalui interface pengguna
grafis yang disebut Explorer. Hal ini memberikan akses ke semua fasilitas dengan
menggunakan pilihan menu dan pengisian formulir. Sebagai contoh, dataset dapat
dibaca dengan cepat dari file ARFF (atau spreadsheet) menggunakan Interface
Explorer. Kelemahan mendasar dari Interface Explorer adalah bahwa Explorer
memegang semuanya dalam memori utama. Ketika dataset dibuka, maka semua data set
tersebut masuk ke dalam memori utama. Ini berarti bahwa Explorer hanya dapat
diterapkan untuk masalah kecil sampai menengah. Namun, WEKA berisi beberapa
algoritma tambahan yang dapat digunakan untuk memproses dataset yang sangat besar.
Interface Knowledge Flow memungkinkan merancang konfigurasi untuk
pengolahan data secara streaming. Interface Knowledge Flow memungkinkan untuk
menarik kotak yang mewakili algoritma pembelajaran dan sumber data di sekitar layar
dan bergabung bersama-sama ke dalam konfigurasi yang diinginkan oleh user. Hal ini
memungkinkan untuk menentukan aliran data dengan menghubungkan komponen yang
mewakili sumber data, alat preprocessing, algoritma pembelajaran (learning
algorithms), metode evaluasi, dan modul visualisasi. Jika filter dan algoritma
pembelajaran (learning algorithms) mampu, maka data akan dimuat dan diproses secara
bertahap.
Interface yang ketiga adalah Experimenter, dirancang untuk membantu
menjawab pertanyaan praktis dasar ketika menerapkan teknik klasifikasi dan regresi
yaitu berupa metode dan nilai parameter karya terbaik yang sesuai untuk masalah yang
diberikan. Biasanya tidak ada cara untuk menjawab pertanyaan ini secara Apriori. Hal
ini dapat dilakukan secara interaktif dengan menggunakan interface explorer. Namun,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
24

interface eksperimenter memungkinkan untuk mengotomatisasi proses dengan


membuatnya mudah untuk menjalankan pengklasifikasi dan filter dengan pengaturan
parameter yang berbeda pada korpus dataset, untuk mengumpulkan statistik kinerja, dan
melakukan tes signifikansi. Pengguna advanced dapat menggunakan eksperimenter
untuk mendistribusikan beban komputasi di beberapa mesin menggunakan Java Remote
Method Invocation (RMI).
Dibalik interface ini terletak interaktif fungsionalitas dasar dari WEKA. Ini
dapat diakses dalam bentuk mentah dengan memasukkan perintah tekstual, yang
memberikan akses ke semua fitur dari sistem. Ketika WEKA dijalankan, harus dipilih di
antara empat interface pengguna yang berbeda: Explorer, Aliran Pengetahuan
(Knowledge Flow), eksperimenter, dan command-line interface. Kebanyakan orang
memilih Explorer.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
25

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.

3.1 Sumber Data


Dalam penelitian ini, obyek yang digunakan adalah data Wisconsin Breast
Cancer Database dari Dr.William H.Woldberg (1989-1991), University of Wisconsin
Hospitals, Madison, USA. Data berjumlah 699, dengan atribut sebanyak 11 termasuk
atribut kelas. Didalam file tersebut berisi data satu pasien dengan rincian sebagai
berikut:
Tabel 3.1 Data Atribut Wisconsin Diagnosis Breast Cancer
No Nama Atribut Keterangan Nilai
1. ID Nomor kode sampel Nomor Id
2. Ketebalan Clump Atribut ini menentukan apakah sel 1-10
berlayer atau tidak karena sel tumor
jinak (benign celss) cenderung
hanya mempunyai satu layer
(monolayer) sedangkan sel ganas
cenderung mempunyai banyak
layer (multilayer).
3. Keseragaman ukuran Atribut ini menentukan konsistensi 1-10
sel ukuran sel.
4. Keseragaman bentuk Atribut ini menentukan kesamaan 1-10
sel bentuk sel.
5. Adhesi Marginal Atribut ini menentukan apakah sel- 1-10
sel bersama sama atau tidak karena
sel ganas cenderung kehilangan
kemampuan ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
26

6. Ukuran sel tunggal Atribut ini menentukan apakah 1-10


epitel ephitelial cell cenderung membesar
atau tidak.
7. Bare Nuclei Atribut ini menentukan apakah sel 1-10
dikelilingi sitoplasma (sisa sel) atau
tidak.
8. Bland Kromatin Atribut ini menentukan tingkat 1-10
tekstur dari sel kromatin.
9. Nukleous Normal Atribut ini menentukan bentuk dari 1-10
nucleoli.
10. Mitosis Atribut ini menentukan seberapa 1-10
banyak sel kanker membagi,
membelah atau memperbanyak
dirinya.
11. Kelas Atribut ini menentukan 2 untuk Benign
kelas apakah tumor yang diderita dan 4 untuk
jinak atau parah. Malignant.

3.2 Analisis Pengolahan Data


Sebelum data diolah menggunakan sistem, dilakukan pemrosesan data awal
terlebih dahulu sesuai dengan proses KDD. Ada empat langkah pemrosesan data yaitu
(1) pembersihan data, (2) seleksi data, (3) transformasi data, dan (4) penambangan data.
3.2.1 Pembersihan Data
Pada tahap ini, dilakukan pembersihan terhadap data-data yang tidak lengkap,
kosong atau null, data yang mengandung noise, dan data tidak konsisten. Pada tahap ini
data yang bernilai null atau kosong, akan dibersihkan dengan cara dihapus secara
manual, dan akan dilakukan penghapusan attribut ID serta akan mengganti .
Pembersihan data dilakukan setelah proses integrasi dan seleksi data dilakukan. Proses
integrasi akan memudahkan proses pencarian data, sementara seleksi data akan
mengurangi jumlah data yang akan dibersihkan. Berikut rincian data yang akan
dibersihkan:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
27

Tabel 3.2 Jumlah Data Hasil Pembersihan


Jumlah data kanker payudara
Data awal 699
Data tidak lengkap 16
Jumlah data bersih 683

3.2.2 Seleksi Data


Pada tahap ini akan dilakukan penyeleksian data untuk mengurangi data yang
tidak relevan dan redundant. Menurut Tan, Steinbach, dan Kumar (2006), atribut yang
tidak relevan adalah atribut yang berisi informasi yang tidak berguna untuk melakukan
penambangan data, sedangkan atribut yang berlebihan (redundant) adalah atribut yang
menduplikasi banyak atau semua informasi yang terdapat didalam satu atau lebih atribut
lain.
Pada data wisconsin diagnosis breast cancer berisi 11 atribut, dan tidak semua
dipakai untuk mengklasifikasi kanker. Maka dari itu dilakukan penghapusan atribut
yang tidak dipakai, atribut yang tidak terpakai adalah atribut id, sehingga atribut id
dihapus.
3.2.3 Transformasi Data
Pada tahap ini akan dilakukan transformasi data kedalam format yang dapat
dikelola oleh sistem. Data nilai kelas memiliki format 2 dan 4, format ini diubah yaitu 2
menjadi benign, dan 4 untuk menjadi malignant.
3.2.4 Penambangan Data
Pada tahap ini data teks akan ditambang dengan menggunakan sistem. Langkah
awal dari pemrosesan input adalah membaca data teks ke dalam sistem. Setelah data
dibaca data berupa data string dan data tercampur didalam satu baris data, sehingga data
perlu dipisah kemudian diubah ke tipe data double, kecuali data kelas yaitu benign dan
malignant, sehingga data dapat diproses ke dalam perhitungan klasifikasi. Untuk
melakukan pemrosesan data tersebut maka sistem perlu menulis ulang data teks kanker,
sehingga data teks kanker dapat diproses oleh sistem.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
28

3.3 Perancangan Umum Sistem


Pada subbab ini akan dijelaskan gambaran yang dibangun, berupa diagram Use
Case, Skenario Use Case, diagram aktifitas, dan desain antarmuka sistem.
a. Diagram use case
Aktor dari sistem ini hanya satu, yaitu peneliti, namun seterusnya akan disebut
pengguna. Fungsi utama yang dapat dilakukan pengguna adalah melakukan klasifikasi.
Selain itu pengguna dapat menentukan fold dan mengimpor data.
Ketika fungsi melakukan klasifikasi dijalankan sistem akan menjalankan, sistem
akan melakukan proses cross validation, menghitung akurasinya, kemudian
menampilkan hasilnya. Output dari fungsi ini adalah hasil akurasi dan waktu proses dari
algoritma.

Menentukan
Jumlah Fold

Mengimpor data

<<depends on>>

Melakukan klasifikasi
Pengguna

Gambar 3.1 Diagram use case


b. Deskripsi Use Case
Fungsi yang dapat dilakukan oleh Pengguna terhadap sistem digambarkan
dengan diagram use case seperti pada Gambar 3.2. Berikut ini deskripsi atau penjelasan
dari diagram tersebut:
Tabel 3.3 Deskripsi use case
No Nama Use Case Deskripsi Use Case
1. Menentukan Jumlah Use case ini digunakan untuk
Fold menentukan jumlah fold yang akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
29

digunakan dalam proses cross validation.


2. Mengimpor data Use casi ini digunakan untuk
memasukkan data kedalam sistem
menggunakan file berekstensi .data. Data
yang dimasukkan akan ditambang dengan
menggunakan algoritma NB dan KNN.
3. Melakukan klasifikasi Use case ini digunakan untuk
melakukan proses klasifikasi dan
menghitung akurasi. Pengguna dapat
melihat hasil akurasi yang dihasilkan.
c. Skenario Use Case
Skenario use case merupakan penjabaran masing-masing use case yang terdapat
pada diagram use case. Skenario use case dapat dilihat pada lampiran 2.
d. Diagram Aktivitas
Diagram aktifitas digunakan untuk menunjukkan kegiatan yang dilakukan oleh
pengguna dan sistem dalam setiap use case. Rincian diagram aktifitas sistem ini dapat
dilihat pada lampiran 3.

3.4 Perancangan Algoritma


3.4.1. Perancangan Algoritma KNN
Berikut adalah proses jalannya algoritma KNN.
1. Pertama masukkan data kanker payudara
2. Untuk proses sebanyak data kanker payudara, lakukan langkah 3-5
3. Hitung jarak antara data testing dengan data training dengan menggunakan
rumus Euclidean Distance.
4. Bandingkan jarak untuk mendapatkan jarak terdekat yaitu jarak yang
mempunyai nilai terkecil.
5. Setelah mendapatkan jarak terdekat ambil nilai jarak terdekat untuk
mendapatkan nilai klasifikasi.
6. Selesai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
30

3.4.2. Perancangan Algoritma Naïve Bayes


Berikut adalah proses jalannya algoritma Naïve Bayes.
1. Pertama masukkan data kanker payudara.
2. Untuk proses sebanyak data kanker payudara, lakukan langkah 3-6
3. Hitung probabilitas nilai kelas yang ingin dibandingkan.
4. Hitung probabilitas Ketebalan Clump, Keseragaman ukuran sel, Keseragaman
bentuk sel, Adhesi Marginal, Ukuran sel tunggal epitel, Bare Nuclei, Bland
Kromatin, Nukleous Normal, Mitosis.
5. Hitung probabilitas data test dengan mengkalikan seluruh probabilitas kelas data
test, kemudian hasil dari perhitungan probabilitas dibagi jumlah nilai total
probabilitas untuk mendapatkan nilai probabilitas.
6. Bandingkan probabilitas yes dan no, pilih probabilitas yang paling tinggi.
7. Selesai

3.5 Desain Antarmuka Sistem


3.5.1 Halaman Utama

Menu Keluar

Gambar 3.2 Desain Halaman Utama


Halaman utama merupakan halaman yang muncul pertama kali saat sistem
dijalankan. Halaman ini memiliki menu bar menu dan keluar. Saat menu bar menu
ditekan maka sistem akan menampilkan Gambar 3.4. Saat menu bar keluar ditekan,
maka sistem akan keluar dari program.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
31

Menu
Halaman Beranda
Hitung Perbandingan
Bantuan

Gambar 3.3 Gambar saat menu bar go to ditekan


3.5.2 Halaman Bantuan

Menu Keluar

Tempat pengguna dapat membaca manual – manual atau


bantuan sistem ini.

Gambar 3.4. Desain Halaman Bantuan


Halaman bantuan merupakan halaman yang membantu pengguna untuk
mengenal sistem dan beberapa informasi tentang menu – menu pada sistem. Sama
seperti halaman utama di halaman bantuan juga terdapat menu bar menu dan keluar.
Saat menu bar menu ditekan maka sistem akan menampilkan Gambar 3.4. Saat menu
bar keluar ditekan, maka sistem akan keluar dari program.
3.5.3 Halaman Klasifikasi

Menu Keluar

KNN Akurasi

Naive Bayes

Waktu

Proses

Gambar 3.5 Desain Halaman Klasifikasi


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
32

Halaman klasifikasi merupakan halaman yang pengguna gunakan untuk


mengklasifikasi data dan melihat akurasi dan waktu prosesnya. Pada halaman ini ada
dua menu bar, tiga radio button, dan satu tombol proses. Saat menu bar menu ditekan
maka sistem akan menampilkan Gambar 3.4. Saat menu bar keluar ditekan, maka sistem
akan keluar dari program. Jika pengguna menekan radio button KNN dan mengklik
tombol proses maka program akan menampilkan akurasi, dan waktu proses dari
algoritma KNN.Jika pengguna menekan radio button Naive Bayes dan mengklik tombol
proses maka program akan menampilkan akurasi, dan waktu proses dari algoritma
Naive Bayes.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
33

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.

4.1 Implementasi Antarmuka Pemakai (User Interface)


Pada subbab ini akan dibahas mengenai implementasi dari sistem yang telah
direncanakan pada bab sebelumnya. Sistem akan mempunyai tiga halaman yaitu (1)
halaman beranda, (2) halaman bantuan, dan (3) halaman hitung perbandingan
4.1.1. Halaman Beranda

Gambar 4.1 Tampilan Halaman Beranda


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
34

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.

Gambar 4.2 Tampilan saat menu ditekan


Ketika submenu bar form help ditekan maka akan menampilkan halaman
bantuan seperti Gambar 4.3
4.1.2 Halaman Bantuan

Gambar 4.3 Tampilan Halaman Bantuan


Halaman bantuan merupakan halaman yang membantu pengguna untuk
mengenal sistem dan beberapa informasi tentang menu – menu pada sistem. Sama
seperti halaman utama di halaman bantuan juga terdapat menu bar menudan keluar. Saat
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
35

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

Gambar 4.4 Tampilan halaman hitung perbandingan


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
36

Gambar 4.5 Tampilan open file


Halaman hitung perbandingan adalah halaman yang digunakan pengguna untuk
mengklasifikasi dan melihat tingkat akurasi dari algoritma. Pada halaman ini pertama-
tama pengguna membuka file yang hendak diklasifikasikan yaitu wisconsin breast
cancer dataset dengan menekan tombol open file kemudian akan tampil kotak dialog
seperti gambar 4.5 kemudian cari file tekan tombol open, selanjutnya isikan jumlah fold
pada edit text jumlah fold ,selanjutnya pilih algoritma yang hendak dipakai dengan
memilih salah satu radio button, kemudian setelah memilih algoritma tekan tombol
proses dan akurasi, dan waktu proses akan ditampilkan.

4.2 Pemrosesan Input


Pada subbab ini akan dibahas beberapa langkah dalam preprocessing dari data
wisconsin breast cancer yang akan dilakukan oleh sistem agar data dapat dimasukkan
ke dalam proses perhitungan klasifikasi. Data yang digunakan adalah data yang
berbentuk teks, agar data teks ini dapat di proses dengan klasifikasi, maka langkah
pertama adalah membaca data teks kemudian menulis ulang data teks ini menjadi data
yang dapat diproses ke dalam sistem klasifikasi.
4.2.1 Membaca Data Teks ke dalam Sistem
Pada bagian ini akan dilakukan pembacaan file teks. Proses pembacaan teks
akan dilakukan perbarisan teks. Langkahnya adalah melakukan perulangan untuk
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
37

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

4.2.2 Menulis Ulang Teks di dalam Sistem


Pada tahap ini akan dilakukan penulisan ulang teks yang telah dibaca ke dalam
sistem agar dapat diproses ke dalam klasifikasi KNN dan NB. Langkah – langkah yang
dilakukan yaitu (1) memecah nilai berdasarkan separator, (2) mengubah nilai menjadi
bertipe double untuk kelas pembanding dan string untuk kelas yang dibandingkan, hal
ini dilakukan agar nilai dapat dimasukkan ke dalam proses perhitungan klasifikasi, dan
(3) menyimpan ke dalam kelas dataset.
Langkah pertama adalah memecah nilai berdasarkan pemisahnya (separator).
Berikut adalah kode programnya:
Dataset out = new DefaultDataset();
//simpan ke out
for (String line : it) {
String[] arr = line.split(separator);
//proses pemisahan value dengan separator
double[] values;
//untuk menyimpan value
Pada kode program ini langkah pertama yang dilakukan adalah membuat tempat
penyimpanan untuk data yang telah ditulis ulang yaitu pada out. Kemudian dilakukan
perulangan sebanyak baris pada data, dan dilakukan pemisahan berdasarkan separator
dengan perintah split dan menyimpannya pada string array yaitu arr, kemudian
membuat media penyimpanan untuk nilai kelas pembanding yang akan diubah menjadi
bertipe double ke dalam double array yaitu values.
Langkah kedua adalah mengubah nilai menjadi bertipe double untuk kelas
pembanding dan string untuk kelas yang dibandingkan untuk melakukan hal ini yang
pertama dilakukan adalah melakukan perulangan sebanyak baris yang dipisah (split).
Selama melakukan perulangan masukkan nilai sesuai indexnya dengan ketentuan index
ke-0 adalah nilai kelas yang dibandingkan dan index selanjutnya adalah nilai yang
dibandingkan kemudian menggabungkan kembali menjadi sebuah array yang berisi
nilai kelas yang dibandingkan dan kelas pembanding.
String classValue = null;
// karena classValue adalah string yes atau no
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
39

for (int i = 0; i < arr.length; i++) {


if (i == classIndex) {
//jika i=classValue
classValue = arr[i];
// simpan ke classValue
} else {
double val;
try {
val = Double.parseDouble(arr[i]);
} catch (NumberFormatException e) {
val = Double.NaN;
}
if (classIndex != -1 && i > classIndex)
values[i - 1] = val;
else
values[i] = val;
}
}
out.add(new DenseInstance(values, classValue));
}
return out;
}
Pada kode program diatas dilakukan perulangan sebanyak baris yang dipisah –
pisah kemudian untuk kelas index yang ke-0 disimpan ke dalam string yaitu kelas value
dan kelas index sisanya dikonversi menjadi double, kemudian disimpan di array double
yaitu values dan terakhir nilai kelas pembanding dan kelas yang dibandingkan
ditambahkan ke kelas dense instance untuk kemudian nantinya menjadi data yang
dipakai untuk melakukan perhitungan klasifikasi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
40

4.3 Implementasi Algoritma pada Sistem


Pada subbab ini akan dibahas beberapa pengimplementasian dari algoritma ke
dalam sistem. Pengimplementasian yang dibahas, yaitu (1) algoritma K-Nearest
Neighbor, (2) algoritma Naïve Bayes, dan (3) teknik Cross Validation.
4.3.1 Algoritma K-Nearest Neighbor
Pada bagian ini akan dijelaskan beberapa langkah untuk melakukan klasifikasi
dengan KNN menggunakan data yang telah di preprocessing. Beberapa langkahnya
yaitu, (1) menghitung jarak kemiripan (similarity) antara data training dengan data test
dengan menggunakan rumus euclidean distance, (2) membandingkan jarak kemiripan
(similarity) untuk mendapatkan tetangga terdekat (nearest neighbor), dan (3)
Mengambil nilai kelas dari tetangga terdekat (nearest neighbor) untuk dijadikan sebagai
nilai hasil klasifikasi.
4.3.1.1 Menghitung Euclidean Distance
Hal pertama yang dilakukan klasifikasi KNN adalah menghitung jarak
kemiripan (similarity), untuk menghitung jarak kemiripan (similarity) sistem
menggunakan perhitungan euclidean distance. Langkah pertama adalah memastikan
bahwa data testing dan training adalah data angka, kemudian barulah sistem akan
menghitung jarak kemiripan (similarity) data testing dan training dengan menggunakan
rumus euclidean distance, berikut adalah cuplikan kodingnya:
if (!Double.isNaN(y.value(i)) && !Double.isNaN(x.value(i)))
// isNan adalah Not a Number
sum += (y.value(i) - x.value(i)) * (y.value(i) - x.value(i));
}
return Math.sqrt(sum);
// kembalikan nilai akar dari sum
}
Setelah membuat method euclidean distance, langkah selanjutnya adalah
membuat method untuk membandingkan antar jarak untuk mendapatkan jarak yang
terdekat (nearest neighbor).
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
41

4.3.1.2 Membandingkan Jarak Terdekat (Nearest Neighbor)


Langkah kedua adalah membandingkan jarak kemiripan (similarity) dari semua
data yang telah dihitung menggunakan rumus euclidean distance untuk mendapatkan
jarak terdekat (nearest neighbor). Langkah pertama adalah dengan membuat suatu
tempat untuk menyimpan nilai jarak terdekat ke dalam sebuah map, berikut adalah
source code-nya:
Map<Instance, Double> closest = new HashMap<Instance, Double>();
// untuk menyimpan instance dan nilai jarak terdekat
double max = dm.getMaxValue();
Selanjutnya untuk setiap data kanker lakukan perhitungan jarak euclidean
distance antara data yang dites dengan data yang di-training dengan memanggil method
euclidean distance yang telah dibuat sebelumnya.
for (Instance tmp : this) {
// perulangan dilakukan sebanyak dataset
double d = dm.UkurdgnEuclid(inst, tmp);
// hitung dengan euclidean distance
Kemudian lakukan perbandingan antar jarak terdekat untuk mendapatkan jarak
yang paling dekat. Untuk mendapatkan jarak yang paling dekat (nearest neighbor) ada
beberapa langkah yaitu (1) menyimpan semua hasil perhitungan euclidean distance ke
sebuah hashmap, (2) mengurutkan jarak dari terdekat ke terjauh, dan (3) menghapus
jarak terjauh dan mengambil jarak terdekat sesuai k yang telah ditentukan.
if (dm.compare(d, max) && !inst.equals(tmp)) {
// Cek jika sudah dicompare
closest.put(tmp, d);
// masukkan jarak terdekat
Pada kode program di atas sistem akan mengecek jika jarak sudah didapatkan,
jika ya maka akan dimasukkan ke dalam hashmap, kemudian setelah itu agar jumlah
jarak terdekat sesuai dengan k yang telah ditentukan maka jarak yang terjauh akan
dihapus.
if (closest.size() > k)
// jika jumlah jarak terdekat melebihi k
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
42

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.

4.3.2 Algoritma Naive Bayes


Dalam implementasi algoritma ini akan dijelaskan beberapa proses dalam
perhitungan Naive Bayes dalam klasifikasi teks. Langkah – langkah yang dilakukan
dalam proses klasifikasi teks dengan Naïve Bayes adalah (1) menghitung frekuensi
kelas, baik kelas yang dibandingkan maupun kelas pembanding, (2) menghitung
probabilitas kelas, baik kelas yang dibandingkan maupun kelas pembanding, (3)
menghitung nilai likelihood dengan mengkalikan semua probabilitas kelas, (4)
menormalisasikan nilai likehood ke dalam bentuk probabilitas, dan (5) membandingkan
nilai probabilitas likehood dan nilai yang tertinggi dijadikan hasil akhir dari klasifikasi.
4.3.2.1 Menghitung Frekuensi Kelas
Langkah pertama adalah menghitung frekuensi kelas. Frekuensi disini adalah
banyaknya sebuah data dalam kategori tertentu, penulis mengambil contoh untuk data
buys_computer yang telah dibahas di bab sebelumnya adalah banyaknya pembeli
berusia 30 tahun yang membeli komputer atau banyaknya pembeli yang masih pelajar
yang membeli komputer dan seterusnya.
Langkah pertama adalah menyimpan nilai dari frekuensi kelas kedalam sebuah
array double.
double[] FrekuensiKelas = new double[numClasses];
// menyimpan jumlah frekuensi kelas
Kemudian pada bagian selanjutnya dilakukan perulangan sebanyak jumlah kelas
yang dimiliki oleh data kanker, kemudian setting nilai frekuensi kelas menjadi 0.
for (int i = 0; i < numClasses; i++) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
45

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

for (int l = 0; l < classes.length; l++) {


double classScore2 = out.get(classes[l]);
out.put(classes[l], classScore2/total);
}
return out;
}
Kemudian setelah mendapat nilai probabilitas barulah dibandingkan, kemudian
sistem akan mengembalikan nilai probabilitas tertinggi sebagai hasil akhir klasifikasi.
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;
}
}
return out;
}

4.3.3 Teknik Cross Validation


Teknik cross validation digunakan untuk memvalidasi keakuratan dari suatu
klasifikasi. Pada bagian ini akan dijelaskan beberapa proses dalam melakukan evaluasi
dengan cross validation.
4.3.3.1 Menghitung Evaluasi Cross Validation
Untuk mengevaluasi klasifikasi dengan teknik cross validation ada beberapa
langkah yaitu (1) melakukan perulangan sebanyak jumlah fold kemudian selama
perulangan tersebut lakukan pengambilan satu data sebagai data validasi dan sisanya
sebagai data latih / training, (2) Lakukan klasifikasi pada data training dengan KNN
atau NB, (3) Tentukan true positif, true negative, false positif, dan false negative.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
49

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

// Selama o bagian dari out.keySet()


if (o.equals(instance.classValue())) {
// jika o sama dengan nilai kelas
out.get(o).tp++;
} else {
out.get(o).tn++;
}}
Pada bagian ini sistem mengecek apabila klasifikasi benar yaitu nilai data
validasi dan nilai data yang di-training sama, maka selanjutnya jika data yang benar
bernilai positif maka tp++ , dan jika data yang benar bernilai negative maka tn++.
Kemudian sistem akan mengecek hasil klasifikasi yang salah.
} else {// jika prediksi tidak sama dengan kelas
for (Object o : out.keySet()) {
// Selama o bagian dari out.keyset
if (prediction.equals(o)) {

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

5.1 Analisis Hasil Penambangan Data


Proses penambangan data pada penelitian ini dilakukan dengan
menggunakan sistem yang telah dibangun. Oleh karena itu, untuk memastikan bahwa
sistem sudah menerapkan algoritma dengan tepat maka perlu dilakukan perbandingan
hasil antara sistem yang dibangun dan sistem lain. Sistem yang dipilih untuk digunakan
sebagai pembanding adalah Weka 3.7 dengan ketentuan memakai 3, 5, 10, 15, dan 20
fold cross validation. Ada alasan yang menjadi dasar pemilihan 3, 5, 10, 15, dan 20 fold
cross validation karena menurut Witten, Ian H, dan Frank, Eibe (2005) 10 fold
memberikan hasil prediksi terbaik dalam percobaan dengan beragam data dan beragam
algoritma sehingga 10 fold menjadi standar dalam melakukan pengujian tetapi pendapat
ini masih sering didebatkan oleh karena itu penulis juga menambahkan 3, 5, 15 dan 20
fold dengan harapan mendapatkan fold yang menghasilkan akurasi yang paling baik.

Gambar 5.1 Screenshot KNN dengan 3-fold cross validation dengan


menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
53

Gambar 5.2 Screenshot Naive bayes dengan 3-fold cross validation dengan
menggunakan program weka
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
54

Gambar 5.3 Screenshot KNN dengan 5-fold cross validation dengan


menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
55

Gambar 5.2 Screenshot KNN dengan 5-fold cross validation dengan


menggunakan program weka.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
56

Gambar 5.4 Screenshot KNN dengan 10-fold cross validation dengan


menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
57

Gambar 5.5 Screenshot KNN dengan 10-fold cross validation dengan


menggunakan program weka.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
58

Gambar 5.6 Screenshot KNN dengan 15-fold cross validation dengan


menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
59

Gambar 5.7 Screenshot Naive bayes dengan 15-fold cross validation dengan
menggunakan program weka
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
60

Gambar 5.8 ScreenshotKNN dengan 20-fold cross validation dengan


menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
61

Gambar 5.9 Screenshot KNN dengan 20-fold cross validation dengan


menggunakan program weka
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
62

Gambar 5.10 Screenshot KNN dengan 3-fold cross validation dengan


menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
63

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.16 Screenshot KNN dengan 15-fold cross validation dengan


menggunakan sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
68

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.

Setelah dilakukan percobaan dengan sistem dan weka menggunakan 3, 5, 10, 15


dan 20 fold cross validation maka dapat dihasilkan tabel 5.1.
Tabel 5.1 Tabel akurasi sistem dan weka
Algoritma Fold Akurasi Sistem Waktu Proses Akurasi Weka

KNN 3-fold 95.5% 324 ms 95.4%

5-fold 96.2% 340 ms 95.7%

10-fold 95.8% 385 ms 95.7%

15-fold 95.6% 391 ms 95.6%

20-fold 95.8% 409 ms 95.3%

Naive 3-fold 97.5% 58 ms 96.1%


Bayes
5-fold 97.5% 77 ms 96.3%

10-fold 97.7% 142 ms 96.3%

15-fold 97.5% 192 ms 96.1%

20-fold 97.5% 265 ms 96.1%


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
71

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%.

5.2 Analisa Hasil


Pada subbab ini akan dibahas tiga hal yaitu (1) analisa akurasi, dan (2) analisa
waktu proses, dan (3) analisa dengan penelitian terdahulu.
5.2.1 Analisa Akurasi
Pada penelitian ini evaluasi klasifikasi dilakukan sebanyak lima kali, yaitu
dengan (1) 3-fold cross validation, (2) 5-fold cross validation, (3) 10-fold cross
validation, (4) 15-fold cross validation, dan (5) 20-fold cross validation dengan
menggunakan data wisconsin diagnosis breast cancer.
Pada percobaan pertama penulis menguji akurasi perhitungan klasifikasi naïve
bayes dan k-nearest neighbor dengan menggunakan evaluasi 3-fold cross validation,
pada k-nearest neighbor akurasi yang dihasilkan adalah sebesar 95.5%, dan pada naïve
bayes akurasi yang dihasilkan adalah sebesar 97.5%. Maka pada percobaan dengan
menggunakan 3-fold cross validation naïve bayes terbukti akurasinya lebih tinggi bila
dibandingkan k-nearest neighbor.
Pada percobaan kedua penulis menguji akurasi perhitungan klasifikasi naïve
bayes dan k-nearest neighbor dengan menggunakan evaluasi 5-fold cross validation,
pada k-nearest neighbor akurasi yang dihasilkan adalah sebesar 96.2%, dan pada naïve
bayes akurasi yang dihasilkan adalah sebesar 97.5%. Maka pada percobaan dengan
menggunakan 5-fold cross validation naïve bayes terbukti akurasinya lebih tinggi bila
dibandingkan k-nearest neighbor.
Pada percobaan ketiga penulis menguji akurasi perhitungan klasifikasi naïve
bayes dan k-nearest neighbor dengan menggunakan evaluasi 10-fold cross validation,
pada k-nearest neighbor akurasi yang dihasilkan adalah sebesar 95.8%, dan pada naïve
bayes akurasi yang dihasilkan adalah sebesar 97.7%. Maka pada percobaan dengan
menggunakan 10-fold cross validation naïve bayes terbukti akurasinya lebih tinggi bila
dibandingkan k-nearest neighbor.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
72

Pada percobaan keempat penulis menguji perhitungan klasifikasi naïve bayes


dan k-nearest neighbor dengan menggunakan evaluasi 15-fold cross validation, pada k-
nearest neighbor akurasi yang dihasilkan adalah sebesar 95.6%, dan pada naïve bayes
akurasi yang dihasilkan adalah sebesar 97.5%. Maka pada percobaan dengan
menggunakan 15-fold cross validation naïve bayes terbukti akurasinya lebih tinggi bila
dibandingkan k-nearest neighbor.
Pada percobaan kelima penulis menguji perhitungan klasifikasi naïve bayes dan
k-nearest neighbor dengan menggunakan evaluasi 20-fold cross validation, pada k-
nearest neighbor akurasi yang dihasilkan adalah sebesar 95.8%, dan pada naïve bayes
akurasi yang dihasilkan adalah sebesar 97.5%. Maka pada percobaan dengan
menggunakan 20-fold cross validation naïve bayes terbukti akurasinya lebih tinggi bila
dibandingkan k-nearest neighbor.
Maka dari kelima percobaan yang telah dilakukan penulis dapat disimpulkan
bahwa akurasi perhitungan klasifikasi naïve bayes lebih tinggi bila dibandingkan
klasifikasi k-nearest neighbor untuk studi data wisconsin diagnosis breast cancer.
Hal ini dapat dikarenakan oleh data wisconsin diagnosis breast cancer memiliki
atribut yang beberapa tidak saling berhubungan, sehingga pada proses perhitungan
algoritma naïve bayes lebih unggul karena perhitungan klasifikasi naïve bayes bersifat
independen sedangan k-nearest neighbor bersifat dependen.
5.2.2 Analisa Waktu Proses
Pada penelitian ini evaluasi waktu proses dilakukan sebanyak lima kali, yaitu
dengan (1) 3-fold cross validation, (2) 5-fold cross validation, (3) 10-fold cross
validation, (4) 15-fold cross validation, dan (5) 20-fold cross validation dengan
menggunakan data wisconsin diagnosis breast cancer.
Pada percobaan pertama penulis menguji akurasi perhitungan klasifikasi naïve
bayes dan k-nearest neighbor dengan menggunakan evaluasi 3-fold cross validation,
pada k-nearest neighbor waktu proses yang diperlukan untuk melakukan klasifikasi ini
adalah 324 ms, dan pada naïve bayes waktu proses yang diperlukan adalah 58 ms. Maka
pada percobaan dengan menggunakan 3-fold cross validation naïve bayes terbukti
bahwa waktu prosesnya lebih cepat bila dibandingkan k-nearest neighbor.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
73

Pada percobaan kedua penulis menguji akurasi perhitungan klasifikasi naïve


bayes dan k-nearest neighbor dengan menggunakan evaluasi 5-fold cross validation,
pada k-nearest neighbor waktu proses yang diperlukan untuk melakukan klasifikasi ini
adalah 340 ms, dan pada naïve bayes waktu proses yang diperlukan adalah 77 ms. Maka
pada percobaan dengan menggunakan 5-fold cross validation naïve bayes terbukti
bahwa waktu prosesnya lebih cepat bila dibandingkan k-nearest neighbor.
Pada percobaan ketiga penulis menguji akurasi perhitungan klasifikasi naïve
bayes dan k-nearest neighbor dengan menggunakan evaluasi 10-fold cross validation,
pada k-nearest neighbor waktu proses yang diperlukan untuk melakukan klasifikasi ini
adalah 385 ms, dan pada naïve bayes waktu proses yang diperlukan adalah 142 ms.
Maka pada percobaan dengan menggunakan 10-fold cross validation naïve bayes
terbukti bahwa waktu prosesnya lebih cepat bila dibandingkan k-nearest neighbor.
Pada percobaan keempat penulis menguji akurasi perhitungan klasifikasi naïve
bayes dan k-nearest neighbor dengan menggunakan evaluasi 15-fold cross validation,
pada k-nearest neighbor waktu proses yang diperlukan untuk melakukan klasifikasi ini
adalah 391 ms, dan pada naïve bayes waktu proses yang diperlukan adalah 192 ms.
Maka pada percobaan dengan menggunakan 15-fold cross validation naïve bayes
terbukti bahwa waktu prosesnya lebih cepat bila dibandingkan k-nearest neighbor.
Pada percobaan kelima penulis menguji akurasi perhitungan klasifikasi naïve
bayes dan k-nearest neighbor dengan menggunakan evaluasi 20-fold cross validation,
pada k-nearest neighbor waktu proses yang diperlukan untuk melakukan klasifikasi ini
adalah 409 ms, dan pada naïve bayes waktu proses yang diperlukan adalah 265 ms.
Maka pada percobaan dengan menggunakan 20-fold cross validation naïve bayes
terbukti bahwa waktu prosesnya lebih cepat bila dibandingkan k-nearest neighbor.
Maka dari kelima percobaan yang telah dilakukan penulis dapat disimpulkan
bahwa kecepatan perhitungan klasifikasi naïve bayes lebih tinggi bila dibandingkan
klasifikasi k-nearest neighbor untuk studi data wisconsin diagnosis breast cancer.
Hal ini dikarenakan oleh kompleksitas algoritma KNN lebih kompleks bila
dibandingkan Naïve Bayes. Berikut merupakan tabel operasi dasar dari kedua algoritma
dengan N adalah jumlah data keseluruhan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
74

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.

5.3 Kelebihan dan Kekurangan Sistem


Pada subbab ini penulis akan membahas tentang kelebihan dan kekurangan dari
sistem yang dibangun oleh penulis.
5.3.1 Kelebihan Sistem
Kelebihan dari sistem yang dibangun adalah sebagai berikut:
1. Pengguna dapat memasukkan jumlah fold secara manual.
2. Bagi pengguna yang masih awam sistem yang dibangun sangat mudah untuk
digunakan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
76

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

Ian H. Witten, Eibe Frank, Mark A. Hall.(2011) Data Mining: Practical


Machine Learning Tools and Techniques (Third Edition), Morgan Kaufmann.
Jiawei Han, Micheline Kamber (2006). Data Mining: concept and techniques.
San Francisco: Elsevier Inc.
Kamath, Chandrika. (2009). Scientific Data Mining: a practical perspective.
Philadelpia: Society for Industrial and Applied Mathematics.
Larose, Daniel T. (2006). Data Mining: methods and models. New Jersey: John
Wiley & Sons, Inc.
Malau, Renaldo. (2015). “Perbandingan Akurasi Algoritma Naive Bayes
Classifier dan Algortima Bayesian Belief Network dalam mengklasifikasi mahasiswa
Universitas Sanatha Dharma Program Studi Teknik Informatika”. Skripsi. Yogyakarta:
Teknik Informatika Sanata Dharma.
Megantari, Irene.(2007). “Evalusi pemilihan dan penggunaan antibiotika pada
pasien kanker payudara pasca kemotrapi di RSUP.Dr.Sardjito Yogyakarta”.
Skripsi.Yogyakarta: Farmasi Sanata Dharma.
Pal, Sankar K., dan Mitra, Pabitra.(2004). Pattern Recognition Algorithms for
Data Mining. Florida: Chapman and Hall/CRC.
Pang-Ning Tan, Michael Steinbach, Vipin Kumar.(2006). Introduction to Data
Mining.Boston: Pearson Education, Inc.
Richard O. Duda; Peter E. Hart; David G. Stork.(2006). Pattern Classification.
Canada: John Wiley & Sons, Inc.
Santosa Budi (2007), Data Mining: Teknik Pemanfaatan Data Untuk Keperluan
Bisnis. Yogyakarta: Graha Ilmu.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
79

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.

Nama Use Mengimpor data


Case
Deskripsi Use Use case ini digunakan untuk memasukkan data kedalam sistem
Case menggunakan file berekstensi .data. Data yang dimasukkan akan
ditambang dengan menggunakan algoritma NB, dan KNN.
Pra Kondisi -
Langkah Kegiatan Aktor Respon Sistem
Umum 1. Pengguna menekan tombol
open
2. Sistem menampilkan kotak
dialog open file
3. Pengguna memilih file dan
menekan tombol open
4. Sistem membaca file dan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
80

menampilkannya letak file nya


ke label.
Alternatif -
Kesimpulan Use case ini berhenti apabila data telah masuk dan terbaca
disistem.

Nama Use Melakukan klasfikasi


Case
Deskripsi Use Use case ini digunakan untuk melakukan proses klasifikasi dan
Case menghitung akurasi. Pengguna dapat melihat hasil akurasi yang
dihasilkan.
Pra Kondisi - Data telah dimasukkan kedalam sistem.
- Jumlah fold telah ditentukan
Langkah Kegiatan Aktor Respon Sistem
Umum 1. Pengguna memilih algoritma
yang akan digunakan.
2. Pengguna menekan tombol
proses
3. Sistem menampilkan hasil
akurasi, dan waktu proses .
Alternatif -
Kesimpulan Use case ini berhenti apabila hasil telah berhasil ditampilkan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
81

LAMPIRAN II
DIAGRAM AKTIVITAS
1. Diagram Aktivitas Mengimpor Data
AKTOR SISTEM

mulai

Klik tombol Open


Menampilkan kotak Open File

Memilih file dalam drive


lalu menekan tombol Open

Sesuai
format
No

Yes

Tampilkan Tampilkan
data pesan error

selesai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
82

2. Diagram aktivitas memilih fold


AKTOR SISTEM

mulai

Pengguna memasukkan
angka di edit text fold

Mengeset angka yang di


ubah sebagai jumlah fold

selesai

3. Diagram aktivitas melakukan klasifikasi


AKTOR SISTEM

mulai

Memilih algoritma yang


hendak digunakan dan
menekan tombol proses

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

C. Menghitung Kelas Distribusi KNN


a. Nama Kelas:KnearestNeighbors.java
b. Nama Method: KelasDistribusi(Instance,Instance)
c. Fungsi Method: Menampilkan hasil klasifikasi.
d. Algoritma:
1. Cek jika training==null, berikan hasil "Kelas Tranining anda null".
2. Deklarasikan variabel neighbors bertipe Set<instance>.
3. Deklarasikan variabel out bertipe HashMap<Object, Double>.
4. Selama Object o : training.classes(), lakukan out.put(o,0.0)
5. Selama Instance i : neighbors, lakukan out.put(i.classValue(),
out.get(i.classValue()) + 1)
6. Kembalikan nilai out.

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

2. Untuk k=0, dan selama k<numClasses lakukan probs[k] = (freq[k] + 1) /


(numInstances + numClasses).
3. Kembalikan nilai probs.
C. Menghitung Kelas Distribusi Naïve Bayes
a. Nama Kelas:NaiveBayesClassifier.java
b. Nama Method:HitungProbs(Instance)
c. Fungsi Method:Menampilkan hasil klasifikasi
d. Algoritma:
1. Deklarasikan variabel out bertipe HashMap<Object, Double>.
2. Deklarasikan variabel featureName_HT bertipe Hashtable<Integer,
Hashtable<Double, ClassCounter>>.
3. Deklarasikan freq bertipe double[].
4. Deklarasikan total bertipe double.
5. Untuk k=0 , dan selama memenuhi syarat k<numClasses lakukan langkah 6-
13.
6. Deklarasikan denominator bertipe double.
7. Deklarasikan classScore bertipe double.
8. Selama Object key : featureName_HT.keySet(), lakukan langkah 9-11.
9. Deklarasikan featureName dan numValues bertipe integer.
10. Deklarasikan featureValue dan numerator bertipe double.
11. Lakukan classScore += fnc.log2(numerator + 1) - fnc.log2(denominator +
numValues).
12. Lakukan out.put(classes[k], classScore).
13. Lakukan total = total + Math.pow(2,classScore).
14. Untuk l=0 , dan selama l<classes.length lakukan langkah 15-16.
15. Deklarasikan classScore bertipe double.
16. Lakukan out.put(classes[l], Math.pow(2.0,(classScore-fnc.log2(total)))).
17. Kembalikan nilai out.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
87

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

c. Fungsi Method: Menghitung akurasi dari suatu klasifikasi.


d. Algoritma:
1.Kembalikan nilai dari (this.tp + this.tn) / this.getTotal().
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89

LAMPIRAN V
HASIL AKURASI

1. Hasil akurasi K-Nearest Neighbor 3-fold cross validation

2. Hasil akurasi K-Nearest Neighbor 5-fold cross validation


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
90

3. Hasil akurasi K-Nearest Neighbor 10-fold cross validation

4. Hasil akurasi K-Nearest Neighbor 15-fold cross validation


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
91

5. Hasil akurasi K-Nearest Neighbor 20-fold cross validation

6. Hasil akurasi Naive Bayes 3-fold cross validation


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
92

7. Hasil akurasi Naive Bayes 5-fold cross validation

8. Hasil akurasi Naive Bayes 10-fold cross validation


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
93

9. Hasil akurasi Naive Bayes 15-fold cross validation

10. Hasil akurasi Naive Bayes 20-fold cross validation

Anda mungkin juga menyukai