You are on page 1of 8

IMPLEMENTASI METODE K-NEAREST NEIGHBOUR UNTUK MELAKUKAN

DIAGNOSIS TERHADAP PENYAKIT DIABETES


Ester Krisdianti Astikarani1), Gilang Saeful Anwar2)
Universitas Siliwangi Tasikmalaya
Jl. Siliwangi No. 24 Tasikmalaya Telp. (0265) 232537
e-mail: 167006050@student.unsil.ac.id 1), 167006040@student.unsil.ac.id 2)

Abstrak
Data dari WHO menyatakan bahwa jumlah pengidap diabetes telah naik drastis dari 108 juta pada tahun
1980 menjadi 422 juta pada tahun 2014. Pada tahun 2016, diperkirakan sebanyak 1.6 juta kematian
disebabkan secara langsung oleh diabetes. Sebanyak 2.2 juta kematian disebabkan kelebihan glukosa dalam
darah terjadi pada tahun 2012. Diabetes adalah penyakit kronis yang terjadi baik ketika pankreas tidak
memproduksi cukup insulin atau ketika tubuh tidak dapat secara efektif menggunakan insulin yang
dihasilkannya. Penerapan algoritma K-Nearest Neighbour (K-NN) diharapkan dapat mengatasi masalah
efektivitas dan akurasi dalam mendiagnosis penyakit diabetes. Pada penelitian ini digunakan algoritma K-
NN dengan k = 11 pada 768 data pasien yang diambil 2/3 untuk data latih dan 1/3 untuk data tes. Hasil
penelitian diperoleh akurasi sebesar 76% pada data tes. Setelah dilakukan perhitungan dengan K-NN, model
dianalisis dan diuji lagi dengan Confusion Matrix dan mendapatkan nilai True Positive sebesar 143, False
Positive sebesar 24, False Negative sebesar 37 dan True Negative sebesar 52. Disimpulkan bahwa algoritma
K-NN dapat digunakan dan diterapkan untuk mendeteksi penyakit diabetes.
Kata Kunci: Diabetes, K-Nearest Neighbour, Confusion Matrix
Abstract
Data from WHO states that the number of people with diabetes has drastically risen from 108 million in
1980 to 422 million in 2014. In 2016, an estimated 1.6 million deaths were directly caused by diabetes.
Another 2.2 million deaths were attributable to high blood glucose in 2012. Diabetes is a chronic disease
that occurs either when the pancreas does not produce enough insulin or when the body cannot effectively
use the insulin it produces. Th application of K-Nearest Neighbour (K-NN) algorithm is expected to
overcome the problems on the effectivity and accuracy in diagnosing diabetes. In this research, the K-NN
with k = 11 is used on 768 patients that split to 2/3 for data training and 1/3 for data test. The result
revealed that the accuracy is. After calculating with K-NN algorithm, the model analysed and tested with
Confusion Matrix and resulted True Positive value by 143, False Positive value by 24, False Negative value
by 37, and True Negative value by 52. Hence, the K-NN algorithm can be used and applied in diagnosing
diabetes.
Keywords: Diabetes, K-Nearest Neighbour, Confusion Matrix

I. PENDAHULUAN kelebihan glukosa dalam darah terjadi pada tahun


2012.
Diabetes adalah penyakit kronis yang terjadi
baik ketika pankreas tidak memproduksi cukup Algoritma K-Nearest Neighbour (K-NN)
insulin atau ketika tubuh tidak dapat secara efektif merupakan algoritma klasifikasi berdasarkan
menggunakan insulin yang dihasilkannya [1]. kedekatan jarak suatu data dengan data lain. Pada
Data dari WHO menyatakan bahwa jumlah algoritma K-NN, data berdimensi q, jarak dari
pengidap diabetes telah naik drastis dari 108 juta data tersebut ke data yang lain dapat dihitung.
pada tahun 1980 menjadi 422 juta pada tahun Nilai jarak inilah yang digunakan sebagai nilai
2014. Pada tahun 2016, diperkirakan sebanyak 1.6 kedekatan/kemiripan antara data uji dengan data
juta kematian disebabkan secara langsung oleh latih. Nilai k pada K-NN berarti k-data terdekat
diabetes. Sebanyak 2.2 juta kematian disebabkan dari data uji [2].
Program Studi Informatika
Fakultas Teknik Universitas Siliwangi
Tujuan dari penelitian ini adalah mencari tahu B. Confusion Matrix
apakah algoritma K-NN dapat diterapkan pada
Confusion matrix adalah suatu metode yang
sistem pendeteksi dan diagnosa penyakit diabetes?
biasanya digunakan untuk melakukan perhitungan
Bagaimana tingkat akurasi pendeteksian penyakit
akurasi pada konsep data mining atau Sistem
diabetes menggunakan algoritma K-NN?
Pendukung Keputusan. Pada pengukuran kinerja
Lalu setelah menggunakan K-NN, hasil dari menggunakan confusion matrix, terdapat 4
proses tersebut dievaluasi menggunakan (empat) istilah sebagai representasi hasil proses
Confusion Matrix. Confusion Matrix mengandung klasifikasi. Keempat istilah tersebut adalah True
informasi tentang klasifikasi aktual dan Positive (TP), True Negative (TN), False Positive
terprediksi yang dilakukan oleh klasifikasi sistem. (FP) dan False Negative (FN). Nilai True
Performa sistem seperti itu umumnya dievaluasi Negative (TN) merupakan jumlah data negatif
menggunakan data pada matriks [3]. yang terdeteksi dengan benar, sedangkan False
Positive (FP) merupakan data negatif namun
Singkatnya, confusion matrix adalah teknik terdeteksi sebagai data positif. Sementara itu, True
yang digunakan untuk meringkas kinerja Positive (TP) merupakan data positif yang
algoritma klasifikasi yaitu ia memiliki keluaran terdeteksi benar. False Negative (FN) merupakan
biner. Contoh untuk algoritma klasifikasi: kebalikan dari True Positive, sehingga data
Memprediksi jika pasien menderita kanker. Di posifit, namun terdeteksi sebagai data negatif [7].
sini, hanya ada dua output yaitu Ya atau Tidak.
Confusion matrix memberi kita gagasan yang
lebih baik tentang apa yang diprediksi model
klasifikasi kita dengan benar dan jenis kesalahan
apa yang dibuatnya [4].

II. TINJAUAN PUSTAKA


A. K-Nearest Neighbour
K-Nearest Neighbours (K-NN) adalah salah
satu metode klasifikasi yang paling mendasar dan
sederhana dan harus menjadi salah satu pilihan Gambar 1. Tabel Confusion Matrix
pertama untuk studi klasifikasi ketika ada sedikit
atau tidak ada pengetahuan sebelumnya tentang
distribusi data. Klasifikasi K-Nearest Neighbours Sumber:
dikembangkan dari kebutuhan untuk melakukan http://www.kuliahkomputer.com/2018/07/penguji
analisis diskriminan ketika estimasi parametrik an-dengan-confusion-matrix.html
reliabilitas kepadatan probabilitas tidak diketahui
atau sulit untuk ditentukan [5]. Konten adalah milik dan hak cipta
kuliahkomputer.com
Tahapan dari algoritma K-NN ini adalah
sebagai berikut [6]: III. BAHAN DAN METODOLOGI
1. Menentukan parameter k (jumlah tetangga Data utama diperoleh dari UCI Machine
paling dekat). Learning repository. Sedangkan data pendukung
2. Menghitung kuadrat jarak eucliden objek diambil dari buku, jurnal, website dan publikasi
terhadap data training yang diberikan. lainnya. Sampel dari penelitian ini adalah data
3. Mengurutkan hasil no 2 secara ascending profil pasien yang didiagnosis menderita penyakit
(berurutan dari nilai tinggi ke rendah) diabetes. Data tersebut bersifat publik dan bisa
4. Mengumpulkan kategori Y (Klasifikasi didapatkan dari UCI Machine Learning
nearest neighbor berdasarkan nilai k) repository.
5. Dengan menggunakan kategori nearest
Pengolahan data dalam penelitian ini
neighbor yang paling mayoritas maka dapat
dilakukan dengan cara mengelompokkan data-
dipredisikan kategori objek.
Program Studi Informatika
Fakultas Teknik Universitas Siliwangi
data yang telah dikumpulkan sebelumnya dengan skemanya disamakan dengan kolom yang ada
tujuan untuk menentukan variabel-variabel yang pada data csv. Lalu setelah data didapatkan,
akan digunakan beserta himpunan-himpunan yang lakukan konversi ke pandas, yaitu library dari
termasuk ke dalam variabel-variabel yang Python untuk keperluan struktur data dan analisis
digunakan. Terdapat 8 atribut yang digunakan data yang mudah digunakan dan berkinerja tinggi
dalam mendiagnosis penyakit diabetes yaitu untuk bahasa pemrograman Python.
Pregnancy, Glucose, Blood Pressure, Skin
D. Pembersihan Data
Thickness, Insulin, BMI, Diabetes Pedigree
Function, dan Age. Pada tahap pembersihan data, hal pertama
yang dilakukan adalah mengganti nilai 0 dengan
Data sudah berbentuk file csv yang berisi 768
NaN (Not a Number) agar nantinya bisa dihitung.
data pasien yang didiagnosis mengidap diabetes.
Perbedaan akan terlihat di tampilan grafik
Data sudah menyertakan hasil klasifikasi yang
histogram.
dilakukan oleh pemilik data yang bisa digunakan
untuk melakukan perbandingan. Selain histogram, data yang sudah dibersihkan
pun bisa terlihat dengan jelas pada scatter matrix.
Pengolahan data dilakukan secara digital
menggunakan Apache Spark yang dijalankan E. Transformasi Data
dengan bahasa pemrograman Python yang
Transformasi data dilakukan dengan cara
terintegrasi dengan Jupyter Notebook.
mentransformasikan data menjadi bentuk standar
Spesifikasi sistem yang digunakan dalam dan normal. Transformasi data dilakukan dengan
penelitian ini adalah sebagai berikut: menggunakan library dari scikit-learn yaitu
StandardScaler.
Tabel 1. Spesifikasi sistem yang digunakan
untuk penelitian F. Training Data

Processor Intel(R) Core(TM) i3-4030U CPU Proses training data dilakukan untuk
@ 1.90GHz (4 CPUs), ~1.9GHz memisahkan data menjadi dua bagian, yaitu data
GPU AMD Radeon HD 8500M training dan data test. Proses pemisahan data
RAM 4096MB RAM dilakukan dengan menggunakan library dari
Storage WD Blue 3D NAND 500GB scikit-learn yaitu train_test_split.
Toshiba 500GB
Selanjutnya dilakukan training data dengan
OS Windows 10 Pro 64-bit (10.0,
Build 18362) metode K-NN yang didapat dari library scikit-
BIOS InsydeH2O Version learn yaitu KNeigborsClassifier. Training dan test
03.73.069ACN32WW dilakukan sebanyak 15 kali iterasi dan diambil
Tahapan penelitian dibagi menjadi beberapa nilai tertinggi dari tiap iterasi.
bagian, diantaranya Obtain Data atau G. Pemodelan Data
pengumpulan data, Scrubbing Data atau
pembersihan data, Scaling Data atau transformasi Hasil dari training data diambil nilai dengan
data, Modelling Data atau pemodelan data, dan persentase yang paling besar dari nilai test. Lalu
Interpret Data atau evaluasi data. iterasinya dimasukkan ke final model. Setelah
selesai, maka hasilnya disimpan di variabel yang
C. Pengumpulan Data nantinya akan dilakukan evaluasi data.
Proses pengumpulan data dilakukan dengan H. Evaluasi Data
meng-import data dari file csv yang didapat dari
UCI Machine Learning repository, yaitu data Setelah selesai melakukan pemodelan data,
tentang diabetes. Kode dieksekusi menggunakan hasil dari pemodelan diambil dan dilakukan
library Apache Spark yang ada di Python. Data evaluasi data dengan menggunakan Confusion
dimasukkan berdasarkan skema yang dibuat, dan Matrix

Program Studi Informatika


Fakultas Teknik Universitas Siliwangi
IV. HASIL DAN PEMBAHASAN
Pada penelitian ini digunakan 768 records pasien. 2/3 records digunakan sebagai data latih (training
data) dan 1/3 records digunakan sebagai data uji (testing data). Pertama ambil data yang telah disediakan
dan masukkan ke DataFrame untuk Apache Spark. Setelah data didapatkan, konversi ke format pandas.
Berikut tampilan tabel data yang sudah didapat.

Gambar 2. Tabel data bagian 5 teratas yang telah didapat

Setelah data didapat, lakukan scrubbing data atau pembersihan data. Perbandingan data yang asli dan
data yang telah dibersihkan divisualisasikan dalam bentuk histogram.

Gambar 3. Visualisasi histogram terhadap data asli yang belum dibersihkan dan sudah dibersihkan. 3x3
dari kiri merupakan data asli, dan 3x3 dari kanan adalah data yang sudah dibersihkan

Selain menggunakan histogram, data juga divisualisasikan menggunakan Scatter Matrix. Berikut adalah
visualisasi Scatter Matrix.

Program Studi Informatika


Fakultas Teknik Universitas Siliwangi
Gambar 4. Visualisasi dengan Scatter Matrix

Setelah dilakukan pembersihan data, data yang sudah bersih dilakukan penyesuaian dengan cara scaling
yaitu mentransformasikan data agar semua data dalam bentuk normal dan standar. Transformasi data
dilakukan dengan menggunakan library dari scikit-learn yaitu StandardScaler. Berikut hasil dari scaling
data.

Gambar 5. Hasil Scaling data terhadap kolom Pregnancies, Glucose, BloodPressure, SkinThickness,
Insulin, BMI, DiabtesPedigreeFunction, dan Age

Program Studi Informatika


Fakultas Teknik Universitas Siliwangi
Setelah scaling data, dilakukan proses pemisahan data untuk training data dan test data. Pemisahan
dilakukan dengan library dari scikit-learn yaitu train_test_split. Porsi pembagiannya yaitu 2/3 untuk training
data dan 1/3 untuk test data. Setelah dibagi, maka masukkan ke metode K-NN yang diambil dari library
scikit-learn yaitu KNeighborsClassifier. Pada penelitian ini dilakukan 15 kali iterasi untuk penghitungan K-
NN. Didapat hasil bahwa nilai terbesar 76% pada iterasi ke-11.
Tabel 2. Hasil dari kalkulasi K-Nearest Neighbours dengan 15 kali iterasi
Max train score 100.0 % and k = [1]
Max test score 76.171875 % and k = [11]

Gambar 6. Grafik hasil kalkulasi data training dan data test K-Nearest Neighbours

Setelah didapat nilai tertinggi, masukkan nilai tersebut ke model final metode K-NN di penelitian ini.
Iterasi yang dimasukkan adalah 11 yang berarti K = 11. Didapat hasil 0.76171875 dari model final.
Terakhir masukkan data ke confusion matrix untuk menentukan apakah analisis sudah benar.

Gambar 7. Hasil dari Confusion Matrix

Program Studi Informatika


Fakultas Teknik Universitas Siliwangi
Gambar 8. Grafik dari Confusion Matrix

V. KESIMPULAN DAN SARAN


Dalam penelitian ini dilakukan penerapan
algoritma K-Nearest Neighbours dengan K = 11
pada data pasien untuk mendiagnosis penyakit
diabetes. Kedekatan antara kasus pada data
training dan data test dilakukan untuk menentukan
kelas data uji tersebut. Untuk mengukur kinerja
algoritma tersebut dilakukan dengan confusion
matrix. Diperoleh nilai tertinggi yaitu 76% dan
termasuk klasifikasi baik karena memiliki nilai
final model 0.76171875.
Terdapat saran yang dapat diterapkan guna
penelitian selanjutnya, yaitu, lakukan
perbandingan terhadap algoritma atau metode lain
dalam mendiagnosis penyakit diabetes. Lalu
lakukan proses evaluasi yang lain untuk lebih
meyakinkan keakuratan algoritma.

VI. PERNYATAAN KEASLIAN TULISAN


Dengan ini kami menyatakan bahwa tulisan
ini benar-benar adalah karya kami. Dalam
penulisan ini kami tidak melakukan pengutipan
dengan cara-cara yang tidak sesuai dengan etika
atau yang tidak berlaku dalam tradisi keilmuan.
Atas pernyataan ini kami siap menerima sanksi
yang dijatuhkan kepada kami apabila di kemudian
hari ditemukan pelanggaran atas etika akademik
dalam karya kami, atau terdapat klaim terhadap
keaslian karya kami ini.

DAFTAR PUSTAKA

Program Studi Informatika


Fakultas Teknik Universitas Siliwangi
[1] “Diabetes,” World Health Organization, 30 10 2018. [Online]. Available:
https://www.who.int/news-room/fact-sheets/detail/diabetes. [Diakses 20 12 2019].

[2] M. Lestari, “Penerapan Algoritma Klasifikasi Nearest Neigbhbor (K-NN) Untuk Mendeteksi
Penyakit Jantung,” Faktor Exacta, vol. 7, no. 4, pp. 366-371, 2015.

[3] K. Polat dan S. Güneş, “Breast cancer diagnosis using least square support vector machine,”
Digital Signal Processing, vol. 17, no. 4, pp. 694-701, 2007.

[4] J. D'Souza, “Confusion Matrix ain’t that Confusing,” Medium, 12 3 2018. [Online]. Available:
https://medium.com/@djocz/confusion-matrix-aint-that-confusing-d29e18403327. [Accessed 20 12
2019].

[5] L. E. Peterson, “K-nearest neighbor,” Scholarpedia, 21 2 2009. [Online]. Available:


http://scholarpedia.org/article/K-nearest_neighbor. [Diakses 20 12 2019].

[6] Aditya, “Algoritma K-Nearest Neighbor (K-NN),” Informatikalogi, 13 6 2017. [Online]. Available:
https://informatikalogi.com/algoritma-k-nn-k-nearest-neighbor/. [Diakses 20 12 2019].

[7] “Pengujian Dengan Confusion Matrix,” Teori Kuliah Komputer, 23 7 2018. [Online]. Available:
http://www.kuliahkomputer.com/2018/07/pengujian-dengan-confusion-matrix.html. [Diakses 20
12 2019].

Program Studi Informatika


Fakultas Teknik Universitas Siliwangi

You might also like