sistem pakar diagnosa penyakit diabetes melitus menggunakan … · 2018. 1. 31. · id3 adalah...

20
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

Upload: others

Post on 25-Feb-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

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

Page 2: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada
Page 3: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada
Page 4: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada
Page 5: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada
Page 6: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada
Page 7: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

1

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.

Tabel 1 Diskritisasi atribut dataset diabetes Pima Indians [3]

Atribut Diskritisasi

Pregnant Low (0,1), Medium (2,3,4,5), High ( > 6)

Glucose Low (< 95 ), Medium (95-140), High (> 140)

DBP Normal (< 80), Normal-to-High (80-90), High (> 90)

BMI Low (< 24.9), Normal (25-29.9), Obese (30-34.9), Severely-Obese (> 35)

DPF Low (< 0.5275), High (> 0.5275)

Age Young (<40), Medium (40-59), Old (> 60)

Class Positive (1), Negative (0)

Page 8: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

2

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) - ∑ 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆𝑣)|𝑆𝑣|| 𝑆 | (2)

Keterangan persamaan (2) :

A : 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].

Page 9: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

3

Page 10: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

4

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 :

Page 11: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

5

@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

Page 12: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

6

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

Page 13: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

7

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

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

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

Page 14: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

8

diubah menjadi Byte array dan disimpan pada file teks menggunakan fungsi write dan flush pada

kelas FileOutputStream.

Pseudocode 3 Untuk mengisi file teks

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

1. Start 2. Read Data Diabetes 3. For i = 1 to Data Diabetes Length Do 4. String value = “Pregnat Value,Glucose Value,DBP Value,BMI Value,Age Value,

Class Value”

5. Array of Byte = Get Bytes value 6. Write Byte 7. End For 8. End

Page 15: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

9

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

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

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

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

Page 16: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

10

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

Page 17: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

11

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%

UnClassified Instances 19 2.7143 %

Total Number of Instances 700 100%

Precision - 0.7708 %

Gambar 7 Pohon keputusan menggunakan 700 data

Page 18: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

12

Gambar 8 Pohon keputusan menggunakan 700 data

Gambar 9 Pohon keputusan menggunakan 700 data

Page 19: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

13

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

Page 20: Sistem Pakar Diagnosa Penyakit Diabetes Melitus Menggunakan … · 2018. 1. 31. · ID3 adalah tempat untuk menguji pohon keputusan yang telah dibuat menggunakan atribut yang ada

14

Informatika (Teknomatika) 2:2, http://news.palcomtech.com/wp-

content/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