Perbandingan algoritma k-nearest neighbor dan naive bayes untuk studi data wisconsin diagnosis breast cancer.

(1)

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.


(2)

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.


(3)

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


(4)

"

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


(5)

HALAMAN PERSETUJUAN

TUGASAKHIR

PERBANDINGAI{ AI,GORITMA K-NEAREST NEIGIIBOR DAII NAIYE

BAYES UNTUK STT]DI DATA "WISCONSIN DIAGNOSIS BREAST

\,ombor.xolB

Pembimbing,

rAlo,

'Q

q'w*0

fr

mf*"*

\

B

,rTus

s.r.,Nr.r.

I

,"*S,,

ogvnros$t

/t

I


(6)

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

Ketua

Sekretaris

Anggota

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

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

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

uogauara,.?7..

,l

Tanda Tangan


(7)

iii

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


(8)

(9)

(10)

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


(11)

vii

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.


(12)

(13)

ix 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


(14)

x

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


(15)

xi

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


(16)

xii

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


(17)

xiii

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


(18)

1 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


(19)

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


(20)

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.


(21)

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.


(22)

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


(23)

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.


(24)

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.


(25)

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


(26)

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< =30 Age 31..40 Age> 40 Income = low Income= medium Income= high Student =yes Studen t=no Credit_ Rating= fair Credit_ Rating= excelent Class

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


(27)

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< =30 Age 31..40 Age> 40 Income = low Income= medium Income= high Student =yes Studen t=no Credit_ Rating= fair Credit_ Rating= excelent Class

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< =30 Age 31..40 Age> 40 Income = low Income= medium Income= high Student =yes Studen t=no Credit_ Rating= fair Credit_ Rating= excelent Class

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


(28)

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


(29)

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, probabilitastidak (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)


(30)

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


(31)

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


(32)

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


(33)

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


(34)

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


(35)

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


(36)

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


(37)

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.


(38)

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


(39)

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


(40)

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,


(41)

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.


(42)

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 berlayer atau tidak karena sel tumor jinak (benign celss) cenderung hanya mempunyai satu layer (monolayer) sedangkan sel ganas cenderung mempunyai banyak layer (multilayer).

1-10

3. Keseragaman ukuran sel

Atribut ini menentukan konsistensi ukuran sel.

1-10 4. Keseragaman bentuk

sel

Atribut ini menentukan kesamaan bentuk sel.

1-10 5. Adhesi Marginal Atribut ini menentukan apakah

sel-sel bersama sama atau tidak karena sel ganas cenderung kehilangan kemampuan ini.


(43)

6. Ukuran sel tunggal epitel

Atribut ini menentukan apakah

ephitelial cell cenderung membesar atau tidak.

1-10

7. Bare Nuclei Atribut ini menentukan apakah sel dikelilingi sitoplasma (sisa sel) atau tidak.

1-10

8. Bland Kromatin Atribut ini menentukan tingkat tekstur dari sel kromatin.

1-10 9. Nukleous Normal Atribut ini menentukan bentuk dari

nucleoli.

1-10 10. Mitosis Atribut ini menentukan seberapa

banyak sel kanker membagi, membelah atau memperbanyak dirinya.

1-10

11. Kelas Atribut ini menentukan

kelas apakah tumor yang diderita jinak atau parah.

2 untuk Benign

dan 4 untuk

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:


(44)

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.


(45)

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.

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

Fold

Use case ini digunakan untuk menentukan jumlah fold yang akan Pengguna

Menentukan Jumlah Fold

Mengimpor data

Melakukan klasifikasi <<depends on>>


(46)

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.


(47)

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

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.


(48)

Gambar 3.3 Gambar saat menu bar go to ditekan 3.5.2 Halaman Bantuan

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 menuditekan maka sistem akan menampilkan Gambar 3.4. Saat menu bar keluar ditekan, maka sistem akan keluar dari program.

3.5.3 Halaman Klasifikasi

Gambar 3.5 Desain Halaman Klasifikasi

Menu Keluar

Tempat pengguna dapat membaca manual – manual atau bantuan sistem ini.

Menu Keluar

KNN Naive Bayes

Proses

Akurasi

Menu

Halaman Beranda Hitung Perbandingan Bantuan


(49)

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


(50)

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


(51)

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


(52)

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


(53)

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


(54)

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.


(55)

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;


(56)

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.


(57)

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


(58)

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)


(59)

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


(60)

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);


(61)

} }

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.


(62)

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|


(63)

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:


(64)

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; }


(65)

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.


(1)

c. Fungsi Method: Menghitung akurasi dari suatu klasifikasi. d. Algoritma:


(2)

LAMPIRAN V HASIL AKURASI 1. Hasil akurasi K-Nearest Neighbor 3-fold cross validation


(3)

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


(4)

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


(5)

7. Hasil akurasi Naive Bayes 5-fold cross validation


(6)

9. Hasil akurasi Naive Bayes 15-fold cross validation