T1__Full text Institutional Repository | Satya Wacana Christian University: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan Algoritma Iterative Dichotomiser Three Berbasis Android T1 Full text

Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan
Algoritma Iterative Dichotomiser Three (ID3) Berbasis Android

Artikel Ilmiah

Diajukan kepada
Fakultas Teknologi Informasi
Untuk memperoleh Gelar Sarjana Komputer

Oleh:
Ardi Pratama Patengko
NIM: 672014603

Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
November 2016

1.


Pendahuluan

Sistem pakar (expert system) adalah sistem yang menggunakan pengetahuan seorang pakar
untuk menyelesaikan masalah terkait dengan bidang tertentu seperti yang biasa dilakukan oleh
seorang pakar. Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalahan
tertentu dengan meniru kerja dari para ahli. Dengan sistem pakar, orang awam pun dapat
menyelesaikan masalah yang cukup rumit yang sebenarnya hanya dapat diselesaikan dengan
bantuan para ahli. Bagi para ahli, sistem pakar juga akan memabntu aktivitasnya sebagai asisten
yang sangat berpengalaman [1].
Penelitian ini menggunakan algoritma ID3 karena dapat membangun sebuah pohon keputusan
dengan cepat dan mudah dipahami. Penanganan penyakit diabetes melitus menjadi lebih mudah
apabila menggunakan pohon keputusan karena hanya membutuhkan masukan berupa data gejala.
Dataset yang digunakan dalam penelitian ini diambil dari repositori database Pima Indians, UCI
[2]. Dataset Pima ini terdiri dari 768 data yang pasiennya berjenis kelamin perempuan dengan
umur sekurang – kurangnya 21 tahun. Berdasarkan dataset ini penulis membangun aplikasi
berbasis Android yang bisa menghasilkan pohon keputusan berdasarkan fakta-fakta yang ada dan
bisa digunakan untuk menguji apakah pasien menderita penyakit diabetes mellitus.
2.

Kajian Pustaka

Penelitian oleh Lesmana [3] yang juga menggunakan dataset Pima Indians, ada beberapa
attribut yang memiliki nilai tidak lengkap. Dari sembilan attribut yaitu Pregnant (Pregnant),
Plasma-Glucose (Glucose), Diastolic Blood-Pressure (DBP), Tricepts Skin Fold Thickness
(TSFT), Insulin (INS), Body Mass Index (BMI), Diabetes Pedigree Function (DPF), Age (Age),
dan Class Variable (Class) hanya tujuh attribut yang digunakan dan siap diolah lebih lanjut dalam
penelitian tersebut antara lain Pregnant, Glucose, DBP, BMI, DPF, Age, dan Class. ID3 adalah
algoritma yang akan digunakan dalam penelitian ini untuk membuat pohon keputusan berdasarkan
dataset Pima Indians. Untuk menghitung dan membuat pohon keputusan menggunakan algoritma
ID3 dibutuhkan data yang bersifat kategorial sedangkan dataset yang digunakan bersifat nominal.
Oleh karena itu diskritisasi atribut pada dataset dibutuhkan untuk mempermudah pengelompokan
nilai berdasarkan kriteria yang telah ditetapkan.

Atribut
Pregnant
Glucose
DBP
BMI
DPF
Age
Class


Tabel 1 Diskritisasi atribut dataset diabetes Pima Indians [3]
Diskritisasi
Low (0,1), Medium (2,3,4,5), High ( > 6)
Low (< 95 ), Medium (95-140), High (> 140)
Normal (< 80), Normal-to-High (80-90), High (> 90)
Low (< 24.9), Normal (25-29.9), Obese (30-34.9), Severely-Obese (> 35)
Low (< 0.5275), High (> 0.5275)
Young ( 60)
Positive (1), Negative (0)

1

Untuk mendapatkan pohon keputusan menggunakan algoritma ID3, Entropy dan Gain harus
dihitung terlebih dahulu.
Entropy
Untuk menghitung gain ratio, terlebih dahulu harus diketahui nilai entropy-nya. Entropy
merupakan suatu parameter untuk mengukur heterogenitas (keberagaman) dari suatu kumpulan
sampel data. Jika kumpulan sampel data semakin heterogen, maka nilai entropynya semakin besar.
Secara matematis, entropy dirumuskan pada persamaan (1).

Entropy(S) = -p + log2 p + -p - log2 p-

(1)

Keterangan persamaan (1) :
S

: 700 ruang (data) sampel yang digunakan untuk training.

P+

: 241 sampel yang bersolusi positif (mendukung).

P-

: 459 sampel yang bersolusi negatif (tidak mendukung).

Gain ratio
Setelah nilai entropy didapatkan dari suatu kumpulan sampel data, maka kita dapat
mengukur efektifitas suatu atribut dalam mengklasifikasikan data. Ukuran efektivitas ini

disebut gain ratio. Gain ratio dihitung berdasarkan split information yang dirumuskan pada
persamaan (2).
|��|

Gain(S, A) = Entropy(S) - ∑| � | � ��

Keterangan persamaan (2) :
A

� ��

(2)

: atribut yang digunakan yaitu Pregnant, Plasma-Glucose, Diastolic Blood-

Pressure, Body Mass Index, Diabetes Predigree Function, Age, dan Class
v

: menyatakan suatu nilai yang mungkin untuk atribut yang digunakan


Values(A)

: himpunan yang mungkin untuk atribut A

|Sv|

: jumlah sampel untuk nilai v

|S|

: jumlah seluruh sampel data

Entropy(Sv) : entropy untuk sampel-sampel yang memiliki nilai v
3.

Perancangan Sistem
Sistem yang dibangun akan menggunakan arsitektur tiga layer yaitu Presentation Layer,
Business Logic Layer, dan Data Access Layer. Arsitektur tiga layer adalah kasus termudah dari
arsitektur n-tier [5].


2

3

Gambar 1 Arsitektur Aplikasi
Presentation Layer adalah apa yang dilihat oleh pengguna dan tempat untuk berinteraksi
dengan sistem. Activity Gejala, Data Gejala, Pohon Keputusan, dan Pengujian adalah tempat
pengguna untuk berinteraksi dengan sistem dan merupakan representasi dari presentation layer.
Business Logic Layer merupakan aturan bisnis yang diterapkan pada sistem melalui logika
pemograman dan bagaimana aturan itu dapat dijalankan. Cara menyimpan data gejala,
menggunakan library, mmebuat dan membaca file text, membentuk pohon keputusan sampai
menguji pohon keputusan merupakan tugas dari business logic layer. Lapisan yang terakhir yaitu
data access layer merupakan sebuah tempat untuk menyimpan dan mengambil informasi. Data
yang disimpan berupa file teks yang menyimpan atribut dan data penyakit diabetes melitus.
ID3 adalah salah satu kelas dipaket classifier pada aplikasi data mining weka yang
mengimplementasikan algoritma ID3 untuk membangun pohon keputusan yang disebut tree dan
menggunakan instance untuk mengisi atribut yang ada pada dataset yang digunakan. Weka juga
menyediakan library yang dapat digunakan untuk membangun aplikasi dengan bahasa
pemograman java pada Netbeans atau Android hanya dengan mengimport library dan
menggunakan classifier dan instance sesuai kebutuhan. Cara menggunakan library weka adalah

menyiapkan instances yang memuat informasi nama instances, atribut, dan data yang disimpan
pada sebuah file text dengan format :

4

@RELATION [nama instances]
@ATTRIBUTE [atribut]
@DATA
[dataset]

Kelas ID3 akan membuat pohon keputusan berdasarkan instances yang ada. Kelas ID3 akan
menggunakan instance dengan 6 nilai atribut yang tersedia untuk menguji pohon keputusan. Hasil
pengujian dari pohon keputusan berupa nilai 0 (Negatif) atau 1 (Positif).
Metode pengembangan perangkat lunak yang dipakai dalam penelitian ini adalah model
prototyping. Model prototyping adalah salah satu metode pengembangan perangkat lunak yang
dibuat dengan pendekatan aspek desain, fungsi, dan user-interface. Bagan mengenai prototype
model dapat dilihat pada Gambar 1.

Gambar 1 Bagan Prototype Model [4]
Tahap-tahap dalam prototype model adalah sebagai berikut: (1) Listen to Customer, (2) Build,

(3) Customer Test. Dari tahap pertama didapatkan bahwa kebutuhan dari sistem adalah sebagai
berikut: aplikasi menampilkan menu utama yaitu data gejala, rules ID3, dan pengujian ID3. Data
gejala adalah tempat untuk memasukkan data-data dari dataset yang ada. Rules ID3 adalah tempat
untuk melihat pohon keputusan yang telah dibentuk berdasarkan dataset yang ada. Dan pengujian
ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang
ada. Tahap build meliputi tahap perancangan dan pengimplementasian aplikasi. Aplikasi Sistem
Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan Algoritma ID3 menggunakan
pendekatan Object Oriented. Sedangkan aplikasi diimplementasikan menggunakan bahasa
pemograman Java.
4.

Hasil dan Implementasi
5

Aplikasi sistem pakar diagnosa penyakit diabetes mellitus menggunakan algoritma ID3
mempunyai beberapa fungsi utama yaitu : (1) Data gejala dimasukkan oleh user pada activity
Gejala kemudian bisa dilihat pada expendable list view, dan selanjutnya akan disimpan menjadi
sebuah file text pada tempat penyimpanan internal android yang akan digunakan untuk membentuk
pohon keputusan; (2) Pohon keputusan yang telah dibuat berbentuk teks yang menunjukkan atribut
dan nilai atribut; (3) Pengujian menggunakan radio button yang menampilkan nilai masing-masing

atribut dan hasil dari pohon keputusan akan ditampilkan melalui alert dialog pada android.
Data gejala harus dimasukkan terlebih dahulu melalui activity Data Gejala oleh pengguna
sebagai acuan untuk membangun pohon keputusan. Pengguna juga dapat melihat data gejala yang
telah dimasukkan sebelumnya dengan melakukan swipe pada activity data gejala. Nilai atribut
ditampilkan pada komponen spinner android dan daftar gejala disimpan pada komponen
expandable list view. Gambar 2 menunjukkan data gejala pada halaman daftar gejala.
Pseudocode 1 Untuk memasukkan gejala kedalam expandable list view
1. Start
2. Input List
3. Read value pregnat
4. Add List child (value pregnant)
5. Read value glucose
6. Add List child (value glucose)
7. Read value dbp
8. Add List child (value dbp)
9. Read value bmi
10. Add List child (value bmi)
11. Read value dpf
12. Add List child (value dpf)
13. Read value age

14. Add List child (value age)
15. Read value class
16. Add List child (value class)
17. Input ExpandableListView
18. Set ExpandableListView = List
19. End

6

Gambar 2 Daftar gejala
Informasi yang dibutuhkan oleh library weka untuk membangun pohon keputusan
menggunakan algoritma ID3 adalah sebuah file teks yang berisi informasi tentang nama instances,
atribut, dan dataset. Aplikasi akan mencari file dengan nama data_diabetes.txt pada direktori
internal android. Jika file sudah ada sebelumnya maka file tersebut akan dihapus dan akan dibuat
sebuah file baru dengan nama yang sama.
Pseudocode 2 Untuk membuat file teks pada penyimpanan internal android
1. Start
2. Function WritetoFile
3. Read File
4. If File is exist
5. Delete File
6. Create New File
7. End If
8. Write to File = “@RELATION diabetes”
9. Write to File = “@ATTRIBUTE Pregnant{Low, Medium, High}”
10. Write to File = “@ATTRIBUTE Glucose{Low, Medium, High}”
11. Write to File = “@ATTRIBUTE DBP{Normal, High}”
12. Write to File = “@ATTRIBUTE BMI{Low, Normal, Obese, Severely-Obese}”
13. Write to File = “@ATTRIBUTE DPF{Low, High}”
14. Write to File = “@ATTRIBUTE Age{Young, Medium}”
15. Write to File = “@ATTRIBUTE Class{Positif, Negatif}”
16. Write to File = “@DATA”
17. End Function
18. End

Setelah file teks dibuat program akan mengisi file teks tersebut dengan format yang telah
ditentukan. Nama instances, atribut, dan dataset disimpan pada array bertipe data String yang akan

7

diubah menjadi Byte array dan disimpan pada file teks menggunakan fungsi write dan flush pada
kelas FileOutputStream.
Pseudocode 3 Untuk mengisi file teks
1.
2.
3.
4.
5.
6.
7.
8.

Start
Read Data Diabetes
For i = 1 to Data Diabetes Length Do
String value = “Pregnat Value,Glucose Value,DBP Value,BMI Value,Age Value,
Class Value”
Array of Byte = Get Bytes value
Write Byte
End For
End

Gambar 3 menunjukkan isi dari file teks dengan format yang telah ditentukan sebelumnya.

Gambar 3 Isi file teks data_diabetes
Setelah file teks terisi dengan data yang dibutuhkan untuk membangun pohon keputusan,
aplikasi akan mengisi instances menggunakan file tersebut melalui variabel trainingData.
Pseudocode 4 Untuk membaca file teks

8

1. Start
2. Input File Reader
3. Try
4. File Reader = filename
5. Training Data = Reader Instances
6. Catch
7. Write Error
8. Finally
9. Close Reader
10. End Try
11. End

Setelah instances dibuat melalui variabel trainingData aplikasi akan membangun pohon
keputusan ID3 menggunakan class Id3 dengan fungsi buildClassifier dengan 1 parameter
instances. Gambar 4 menunjukkan bentuk pohon keputusan yang telah dibuat dengan atribut BMI
sebagai root.

Gambar 4 Bentuk Pohon Keputusan
Pseudocode 5 Untuk membuat pohon keputusan
1. Start
2. Function TrainTree
3. ID3 Tree = ID3
4. Try
5. Tree Build Classifier = Training Data
6. Catch
7. Write Error
8. End Try
9. Return Tree
10. End Function
11. End

Hasil dari metode prototyping pada penelitian ini menghasilkan dua hasil prototype. Dari hasil
prototype pertama, sistem menulis semua nilai atribut pada file teks dan menampilkan semua
atribut pada activity pengujian ID3. Dengan cara seperti ini sistem hampir berjalan dengan baik
9

tapi ada masalah yang terjadi yaitu pada beberapa pengujian menghasilkan pohon keputusan
dengan sebuah cabang yang mempunyai nilai atribut null atau kosong.

Gambar 5 Pohon keputusan prototype pertama
Hasil prototype kedua, sistem sudah dapat melakukan seleksi atribut dengan tidak menulis
semua atribut yang ada tetapi menulis hanya pada atribut yang digunakan. Atribut akan disimpan
dan digunakan nanti pada saat proses penulisan pada file teks. Pohon keputusan yang dihasilkan
tidak mempunyai cabang dengan nilai atribut null atau kosong.

Gambar 6 Pohon keputusan prototype kedua
Cross validation yang merupakan salah satu teknik untuk menilai/memvalidasi keakuratan
sebuah model yang dibangun berdasarkan dataset tertentu [6]. Pada pengujian ini menggunakan
cross validation 10 fold dengan memanfaatkan fungsi yang ada pada library weka. Jumlah dataset
10

yang digunakan sebanyak 700 data. Hasil dari pengujian didapatkan data yaitu jumlah instances
yang berhasil diklasifikasi ada 485 data, 196 data yang salah diklasifikasi, dan 19 data yang tidak
dapat diklasifikasi dengan presisi 0.7708 %. Gambar 7, 8, 9, dan 10 menunjukkan hasil pohon
keputusan dengan menggunakan 700 data.
Tabel 2 Hasil pengujian cross validation 10 fold
Keterangan
Jumlah
Persentase
Correctly Classified Instances
485
69.2857 %
Incorrectly Classified Instances
196
28%
2.7143 %
UnClassified Instances
19
Total Number of Instances
700
100%
0.7708
%
Precision
-

Gambar 7 Pohon keputusan menggunakan 700 data

11

Gambar 8 Pohon keputusan menggunakan 700 data

Gambar 9 Pohon keputusan menggunakan 700 data

12

Gambar 10 Pohon keputusan menggunakan 700 data
5.

Simpulan

Dalam penelitian ini dibuat aplikasi sistem pakar diagnosa penyakit diabetes melitus
menggunakan algoritma ID3 berbasis Android dengan metode prototyping untuk menghasilkan
pohon keputusan menggunakan dataset Pima Indians. Aplikasi menerima masukan berupa data
gejala dari penyakit diabetes melitus. Sistem akan membentuk pohon keputusan berdasarkan data
gejala, kemudian dibentuk sebuah pohon keputusan menggunakan library dari aplikasi data
mining weka, dan melakukan pengujian terhadap pohon keputusan tersebut. Berdasarkan hasil
pengujian menggunakan cross validation jumlah data yang berhasil diklasifikasi ada 485 data
(69.2857 %), 196 data (28%) yang salah diklasifikasi, dan 19 data (2.7143 %) yang tidak dapat
diklasifikasi dengan presisi 0.7708 %.
Pengembangan yang dapat dilakukan pada penelitian ini di kemudian hari adalah memperbaiki
pohon keputusan yang dihasilkan karena pohon keputusan yang terbentuk menggunakan 700
dataset masih mempunyai cabang dengan nilai null dan menghasilkan data yang tidak dapat
diklasifikasikan dan memperbaiki sistem jika ditemukan bug.
6.

Daftar Pustaka
[1] Dahria, Muhammad. 2011. Pengembangan Sistem Pakar Dalam Membangun Aplikasi.
Jurnal SAINTIKOM. 10 : 3
[2] Pima Indians Diabetes Dataset, UCI Machine Learning Repository, diambil dari
http://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes
[3] Lesmana, I Putu Dody. 2012. Perbandingan Kinerja Decision Tree J48 dan ID3 Dalam
Pengklasifikasian Diangosis Penyakit Diabetes Mellitu. Jurnal Teknologi dan

13

Informatika (Teknomatika) 2:2, http://news.palcomtech.com/wpcontent/uploads/2012/08/DODY_TE020220121.pdf. (diakses tanggal 20 Juli 2016).
[4] Pressman, Roger S., 2001, Software Engineering a Practitioner’s Approach, New York :
McGraw-Hill Higher Education
[5] Gill, Amandeep Kaur & Charanjit Singh. 2014. Implementation of NTRU Algorithm for
the Security of N-Tier Architecture. International Journal of Computer Science and
Information Technologies. 5 : 6
[6] Novianti, Triuli. Irwan Santosa. 2016. Penentuan Jadwal Kerja Berdasarkan Klasifikasi
Data Karyawan Menggunakan Metode Decision Tree C4.5 (Studi Kasus Universitas
Muhammadiyah Surabaya. Jurnal Komunikasi, Media dan Informatika. 5 : 1

14