Perbandingan Identifikasi Citra Penyakit Kulit Menggunakan Metode K-Nearest Neighbor dan Metode Sistem Pakar.

(1)

i Universitas Kristen Maranatha

Perbandingan Identifikasi Citra Penyakit Kulit Menggunakan

Metode K-Nearest Neighbor Dan Metode Sistem Pakar

Dian Pitan Diani / 0622046 E-mail : diampitamdiami@yahoo.com

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg. Suria Sumantri 65

Bandung 40164, Indonesia

ABSTRAK

Pada perkembangan saat ini, seorang dokter kesulitan untuk mengidentifikasi suatu penyakit (dalam hal ini penyakit kulit). Hal ini disebabkan karena gambaran penyakit kulit yang bermacam-macam, beragam, dan tidak khas. Untuk mempermudah dalam mengidentifikasi penyakit kulit dibutuhkan alat berupa software dengan menggunakan teknologi Digital Image Processing dan Sistem Pakar. Dengan adanya teknologi Digital Image Processing,

pengklasifikasian penyakit kulit dapat dikembangkan dan bermanfaat khususnya dibidang medis.

Pada Tugas Akhir ini dibuat sistem untuk mengidentifikasi dan mendiagnosis citra penyakit kulit berdasarkan warna penyakit kulit (bisul, cacar air, dan panu) tersebut. Secara umum, identifikasi citra penyakit kulit ini terdiri dari dua bagian utama, yaitu pengklasifikasian menggunakan K-Nearest Neighbor

dan mendiagnosis penyakit kulit menggunakan Sistem Pakar.

Hasil pengujian sistem identifikasi penyakit kulit menggunakan K-Nearest Neighbor dan Sistem Pakar yang direalisasi, dapat disimpulkan program berhasil pada pengujian dengan menggunakan 120 sampel citra penyakit kulit yang berbeda warna. Pada metode K-Nearest Neighbor tingkat keberhasilan identifikasi penyakit kulit bisul = 3.33%, cacar air = 46,67%, dan panu = 86.67%),


(2)

ii Universitas Kristen Maranatha dan tingkat keberhasilan metode Sistem Pakar terhadap penyakit kulit bisul = 100%, panu = 100%, dan cacar air = 46,67%). Dilihat dari tingkat keberhasilannya metode Sistem Pakar lebih memuaskan dibandingkan dengan metode K-Nearest Neighbor


(3)

iii Universitas Kristen Maranatha COMPARISON OF IDENTIFICATION FOR SKIN DISEASES USING K-NEAREST NEIGHBOR METHOD AND EXPERT SYSTEM METHOD

Dian Pitan Diani / 0622046 E-mail : diampitamdiami@yahoo.com

Electrical Engineering Department, Faculty Of Engineer, Maranatha Christian University

Prof. Drg. Suria Sumantri 65 Street Bandung 40164, Indonesia

ABSTRACT

Now a days, a doctor difficult to identify disease (in this skin disease). This is because the image of skin disease in diversity, varied, and does not specifically. To facilitate the identification of disease of the skin can helped by the technology of Digital Image Processing and Expert System. With Digital Image Processing technology, classification of skin disease can be designed and useful, particularly in medical.

In this Final Project has been made program for identifying and diagnosing an image based on the color of skin disease. In General, identification of skin disease image consists of two main parts, namely, the classification based on K-Nearest Neighbor, and diagnosing disease of the skin using an Expert System.

From the data observation identification of skin disease system using K-Nearest Neighbor and Expert System are realized, it can be concluded successfully the test program using 120 samples images skin disease of different color. The K-Nearest Neighbor method success rate of identification disease the skin ulcer = 3.33%, chicken pox = 46.67%, and sputum = 86.67%), and the


(4)

iv Universitas Kristen Maranatha success rate of the Expert System method skin diseases ulcers = 100%, sputum = 100%, and chicken pox = 46, 67%). Seen from the success rate are more satisfying method of Expert System in comparison with K-Nearest Neighbor method.


(5)

vii Universitas Kristen Maranatha DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... iii

KATA PENGANTAR ... v

DAFTAR ISI ... vii

DAFTAR TABEL... ix

DAFTAR GAMBAR ... x

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Perumusan Masalah... 2

1.3 Tujuan... 2

1.4 Pembatasan Masalah ... 3

1.5 Sistematika Penulisan ... 3

BAB 2 LANDASAN TEORI ... 5

2.1 Pengertian Kulit dan Penyakit Kulit... 5

2.1.1 Karakteristik Penyakit Kulit ... 5

2.2 Pengolahan Citra Digital ... 7

2.3 Komponen Warna Citra ... 7

2.4 K-Nearest Neighbor ... 12

2.4.1 Konsep Dasar K-Nearest Neighbor ... 12

2.5 Sistem Pakar ... 12

2.6 Visual Basic... 16

BAB 3 PERANCANGAN DAN REALISASI ... 18

3.1 Pengambilan Data Citra Penyakit Kulit ... 22

3.2 Desain GUI Database Grafik Nilai Warna Penyakit Kulit ... 23

3.3 Menghitung Jarak Euclidian... 25

3.4 Desain GUI Tampilan K-NN dan Sistem Pakar... 26

BAB 4 DATA PENGAMATAN DAN ANALISIS DATA... 30

4.1 Data Pengamatan ... 31

4.1.1 K-NN Dengan Menggunakan 30 Citra Uji...32


(6)

viii Universitas Kristen Maranatha

4.2 Analisa Data ... 38

BAB 5 KESIMPULAN DAN SARAN ... 39

5.1 Kesimpulan... 39

5.2 Saran ... 40

DAFTAR PUSTAKA ... 41 LAMPIRAN A LISTING PROGRAM ... A LAMPIRAN B NILAI CrCb REFERENSI DAN UJI ... B LAMPIRAN C CITRA PENYAKIT KULIT REFERENSI DAN UJI ... C


(7)

ix Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 2.1 Skor Awal Penyakit Kulit ……….13

Tabel 2.2 Kuesioner Penyakit Bisul (Furunkel)……...13

Tabel 2.3 Kuesioner Penyakit Cacar Air (Varicella) ...…..14 Tabel 2.4 Kuesioner Penyakit Panu (Tinea atau Ptiriasis Versikolor)...14

Tabel 2.5 Sistem Pakar dengan Skor dan Bobot Nilai...14

Tabel 3.1 Komponen dan Properti Program Nilai Warna Penyakit Kulit...23

Tabel 3.2 Komponen dan Properti Program KNN dan Sistem Pakar...27

Tabel 4.1 K-NN dengan Menggunakan 30 Citra Uji (Bisul Uji) ...32

Tabel 4.2 K-NN dengan Menggunakan 30 Citra Uji (Cacar Uji) ...33

Tabel 4.3 K-NN dengan Menggunakan 30 Citra Uji (Panu Uji) ...34

Tabel 4.4 Hasil Dari Kuesioner Citra Penyakit Bisul (Furunkel) ...35

Tabel 4.5 Hasil Dari Kuesioner Citra Penyakit Cacar Air (Varicella) ...36

Tabel 4.6 Hasil Dari Citra Penyakit Panu (Tinea atau Ptiriasis Versikolor)..37 Tabel 4.7 Tabel Persentase Perhitungan Tingkat Keberhasilan Secara


(8)

x Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar 2.1 Citra Penyakit Bisul...6

Gambar 2.2 Citra Penyakit Cacar Air ……...6

Gambar 2.3 Citra Penyakit Panu...7

Gambar 2.4 Ruang Warna RGB...8

Gambar 2.5 Ruang Warna YCbCr ……...9

Gambar 3.1 Diagram Blok Keseluruhan Proses Identifikasi Citra Penyakit Kulit ...18

Gambar 3.2 Diagram Blok Proses Identifikasi Citra Penyakit Kulit...19

Gamvar 3.3 Langkah Kerja Identifikasi Citra Penyakit Kulit Menggunakan Metode K-NN...20

Gambar 3.4 Langkah Kerja Identifikasi Citra Penyakit Kulit Menggunakan Metode Sistem Pakar...21

Gambar 3.5 Diagram Alir Proses Mengubah Nilai RGB Menjadi YCrCb...22

Gambar 3.6 Desain GUI Database Grafik Nilai Warna Penyakit Kulit………23 Gambar 3.7 Diagram Alir Proses Perhitungan Jarak Euclidian...…...25

Gambar 3.8 Desain GUI Tampilan K-NN dan Sistem Pakar………26 Gambar 4.1 Tampilan Pendistribusian Database Nilai Warna CrCb Beserta Centroid nya……...30


(9)

LAMPIRAN A

LISTING PROGRAM


(10)

A-1

1. Listing Program Pengambilan Nilai CrCb dan CrCb Unik

Private Sub cmdGambar_Click() Dim Cr, Cb As Single

Dim r1, R2, r3, alfa1, alfa2, alfa3 As Single

Dim rataR1, rataR2, rataR3, rataAlfa1, rataAlfa2, rataAlfa3 As Single Dim Cr1, Cb1, Cr2, Cb2, Cr3, Cb3 As Single

Dim s1, s2, s3, p1, p2, p3 As Single maksCb = 255

minCb = -15 maksCr = 255 minCr = -15 s1 = 0 p1 = 0 s2 = 0 p2 = 0 s3 = 0 p3 = 0

'Distribusi warna Bisul

Open "CrCb.txt" For Input As #1 While Not EOF(1)

Input #1, Cr, Cb c = c + 1

r1 = Sqr((Cr ^ 2) + (Cb ^ 2)) s1 = s1 + r1

alfa1 = Atn(Cb / Cr) p1 = p1 + alfa1

u = Picture2.ScaleWidth / (maksCr - minCr) * (Cr - minCr) v = Picture2.ScaleHeight / (maksCb - minCb) * (maksCb - Cb) Picture2.PSet (u, v), RGB(255, 0, 0)

Wend Close #1 rataR1 = (s1 / c) rataAlfa1 = (p1 / c)

Open "Sentroid.txt" For Append As #2 Cr1 = Abs(rataR1 * Cos(rataAlfa1)) Cb1 = Abs(rataR1 * Sin(rataAlfa1)) Write #2, Cr1, Cb1

u = Picture2.ScaleWidth / (maksCr - minCr) * (Cr1 - minCr) v = Picture2.ScaleHeight / (maksCb - minCb) * (maksCb - Cb1) Picture2.Circle (u, v), 2, RGB(0, 0, 0)


(11)

A-2

'Distribusi warna Cacar

Open "CrCb1.txt" For Input As #1 While Not EOF(1)

Input #1, Cr, Cb d = d + 1

R2 = Sqr((Cr ^ 2) + (Cb ^ 2)) s2 = s2 + R2

alfa2 = Atn(Cb / Cr) p2 = p2 + alfa2

u = Picture3.ScaleWidth / (maksCr - minCr) * (Cr - minCr) v = Picture3.ScaleHeight / (maksCb - minCb) * (maksCb - Cb) Picture3.PSet (u, v), RGB(0, 255, 0)

Wend Close #1 rataR2 = (s2 / d) rataAlfa2 = (p2 / d)

Open "Sentroid.txt" For Append As #2 Cr2 = rataR2 * Cos(rataAlfa2)

Cb2 = rataR2 * Sin(rataAlfa2) Write #2, Cr2, Cb2

u = Picture3.ScaleWidth / (maksCr - minCr) * (Cr2 - minCr) v = Picture3.ScaleHeight / (maksCb - minCb) * (maksCb - Cb2) Picture3.Circle (u, v), 2, RGB(0, 0, 0)

Close #2

'Distribusi warna Panu

Open "CrCb2.txt" For Input As #1 While Not EOF(1)

Input #1, Cr, Cb e = e + 1

r3 = Sqr((Cr ^ 2) + (Cb ^ 2)) s3 = s3 + r3

alfa3 = Atn(Cb / Cr) p3 = p3 + alfa3

u = Picture4.ScaleWidth / (maksCr - minCr) * (Cr - minCr) v = Picture4.ScaleHeight / (maksCb - minCb) * (maksCb - Cb) Picture4.PSet (u, v), RGB(0, 0, 255)

Wend Close #1


(12)

A-3 rataR3 = (s3 / e)

rataAlfa3 = (p3 / e)

Open "Sentroid.txt" For Append As #2 Cr3 = rataR3 * Cos(rataAlfa2)

Cb3 = rataR2 * Sin(rataAlfa2) Write #2, Cr3, Cb3

u = Picture4.ScaleWidth / (maksCr - minCr) * (Cr3 - minCr) v = Picture4.ScaleHeight / (maksCb - minCb) * (maksCb - Cb3) Picture4.Circle (u, v), 2, RGB(0, 0, 0)

Close #2

MsgBox ("Selesai") End Sub

Private Sub cmdKeluar_Click() Unload Me

End Sub

Private Sub Command1_Click() Dim Cr, Cb As Single

Dim r1, R2, r3, alfa1, alfa2, alfa3 As Single

Dim rataR1, rataR2, rataR3, rataAlfa1, rataAlfa2, rataAlfa3 As Single Dim Cr1, Cb1, Cr2, Cb2, Cr3, Cb3 As Single

Dim s1, s2, s3, p1, p2, p3 As Single maksCb = 255

minCb = -15 maksCr = 255 minCr = -15 s1 = 0 p1 = 0 s2 = 0 p2 = 0 s3 = 0 p3 = 0

'Distribusi warna Bisul

Open "Bisul.csv" For Input As #1 While Not EOF(1)

Input #1, Cr, Cb c = c + 1

r1 = Sqr((Cr ^ 2) + (Cb ^ 2)) s1 = s1 + r1

alfa1 = Atn(Cb / Cr) p1 = p1 + alfa1

u = Picture1.ScaleWidth / (maksCr - minCr) * (Cr - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - Cb)


(13)

A-4 Picture1.PSet (u, v), RGB(255, 0, 0) Wend

Close #1 rataR1 = (s1 / c) rataAlfa1 = (p1 / c)

Open "Sentroid.txt" For Append As #2 Cr1 = Abs(rataR1 * Cos(rataAlfa1)) Cb1 = Abs(rataR1 * Sin(rataAlfa1)) Write #2, Cr1, Cb1

u = Picture1.ScaleWidth / (maksCr - minCr) * (Cr1 - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - Cb1) Picture1.Circle (u, v), 2, RGB(255, 0, 0)

Close #2

'Distribusi warna Cacar

Open "Cacar.csv" For Input As #1 While Not EOF(1)

Input #1, Cr, Cb d = d + 1

R2 = Sqr((Cr ^ 2) + (Cb ^ 2)) s2 = s2 + R2

alfa2 = Atn(Cb / Cr) p2 = p2 + alfa2

u = Picture1.ScaleWidth / (maksCr - minCr) * (Cr - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - Cb) Picture1.PSet (u, v), RGB(0, 255, 0)

Wend Close #1 rataR2 = (s2 / d) rataAlfa2 = (p2 / d)

Open "Sentroid.txt" For Append As #2 Cr2 = rataR2 * Cos(rataAlfa2)

Cb2 = rataR2 * Sin(rataAlfa2) Write #2, Cr2, Cb2

u = Picture1.ScaleWidth / (maksCr - minCr) * (Cr2 - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - Cb2) Picture1.Circle (u, v), 2, RGB(0, 255, 0)

Close #2

'Distribusi warna Panu

Open "Panu.csv" For Input As #1 While Not EOF(1)

Input #1, Cr, Cb e = e + 1


(14)

A-5 r3 = Sqr((Cr ^ 2) + (Cb ^ 2))

s3 = s3 + r3 alfa3 = Atn(Cb / Cr) p3 = p3 + alfa3

u = Picture1.ScaleWidth / (maksCr - minCr) * (Cr - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - Cb) Picture1.PSet (u, v), RGB(0, 0, 255)

Wend Close #1 rataR3 = (s3 / e) rataAlfa3 = (p3 / e)

Open "Sentroid.txt" For Append As #2 Cr3 = rataR3 * Cos(rataAlfa2)

Cb3 = rataR2 * Sin(rataAlfa2) Write #2, Cr3, Cb3

u = Picture1.ScaleWidth / (maksCr - minCr) * (Cr3 - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - Cb3) Picture1.Circle (u, v), 2, RGB(0, 0, 255)

Close #2

MsgBox ("Selesai") End Sub

Private Sub Form_Load() Dim u, v As Single Dim n, m As Single Dim z, x1, y1 As Single Picture2.AutoRedraw = True Picture3.AutoRedraw = True Picture4.AutoRedraw = True Picture1.AutoRedraw = True maksCb = 255

minCb = -15 maksCr = 255 minCr = -15 Picture2.Cls Picture3.Cls Picture4.Cls Picture1.Cls


(15)

A-6

'Membuat Sumbu Koordinat

u = Picture2.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture2.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture2.Line (u, 0)-(u, Picture2.ScaleHeight)

Picture2.Line (0, v)-(Picture2.ScaleWidth, v)

u = Picture3.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture3.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture3.Line (u, 0)-(u, Picture3.ScaleHeight)

Picture3.Line (0, v)-(Picture3.ScaleWidth, v)

u = Picture4.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture4.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture4.Line (u, 0)-(u, Picture4.ScaleHeight)

Picture4.Line (0, v)-(Picture4.ScaleWidth, v)

u = Picture1.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture1.Line (u, 0)-(u, Picture1.ScaleHeight)

Picture1.Line (0, v)-(Picture1.ScaleWidth, v)

'Membuat titik2 koordinat (0,0)

n = Int(minCr) m = Int(minCb)

For y1 = m To maksCb Step 30 For z = n To maksCr Step 30

x1 = Picture2.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture2.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture2.Circle (x1, v), 2, RGB(0, 0, 255)

x1 = Picture3.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture3.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture3.Circle (x1, v), 2, RGB(0, 0, 255)

x1 = Picture4.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture4.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture4.Circle (x1, v), 2, RGB(0, 0, 255)

x1 = Picture1.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture1.Circle (x1, v), 2, RGB(0, 0, 255)

Next z Next y1

'Membuat tulisan koordinat

n = Int(minCr)

For z = n To maksCr Step 30

x1 = Picture2.ScaleWidth / (maksCr - minCr) * (z - minCr) v = Picture2.ScaleHeight / (maksCb - minCb) * (maksCb - 0)


(16)

A-7 Picture2.Circle (x1, v), 1, RGB(0, 255, 0) Picture2.CurrentX = x1

Picture2.CurrentY = v Picture2.Print z

x1 = Picture3.ScaleWidth / (maksCr - minCr) * (z - minCr) v = Picture3.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture3.Circle (x1, v), 1, RGB(0, 255, 0)

Picture3.CurrentX = x1 Picture3.CurrentY = v Picture3.Print z

x1 = Picture4.ScaleWidth / (maksCr - minCr) * (z - minCr) v = Picture4.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture4.Circle (x1, v), 1, RGB(0, 255, 0)

Picture4.CurrentX = x1 Picture4.CurrentY = v Picture4.Print z

x1 = Picture1.ScaleWidth / (maksCr - minCr) * (z - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - 0) Picture1.Circle (x1, v), 1, RGB(0, 255, 0)

Picture1.CurrentX = x1 Picture1.CurrentY = v Picture1.Print z Next z

m = Int(minCb)

For y1 = m To maksCb Step 30

x1 = Picture2.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture2.ScaleHeight / (maksCb - minCb) * (maksCb - y1) Picture2.Circle (x1, v), 1, RGB(0, 255, 0)

Picture2.CurrentX = x1 Picture2.CurrentY = v Picture2.Print y1

x1 = Picture3.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture3.ScaleHeight / (maksCb - minCb) * (maksCb - y1) Picture3.Circle (x1, v), 1, RGB(0, 0, 255)

Picture3.CurrentX = x1 Picture3.CurrentY = v Picture3.Print y1

x1 = Picture4.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture4.ScaleHeight / (maksCb - minCb) * (maksCb - y1) Picture4.Circle (x1, v), 1, RGB(0, 0, 255)

Picture4.CurrentX = x1 Picture4.CurrentY = v


(17)

A-8 Picture4.Print y1

x1 = Picture1.ScaleWidth / (maksCr - minCr) * (0 - minCr) v = Picture1.ScaleHeight / (maksCb - minCb) * (maksCb - y1) Picture1.Circle (x1, v), 1, RGB(0, 0, 255)

Picture1.CurrentX = x1 Picture1.CurrentY = v Picture1.Print y1 Next y1

End Sub

Private Sub Text1_Change() End Sub

2. Listing Program Perhitungan Jarak Euclidian

Dim rsb(30), rsc(30), rsp(30) As Single Dim db, dc, dp, cr, cb As Single Dim DeucB, DeucC, DeucP As Single Dim folder, file As String

Dim i As Single Dim x As Byte

Private Sub Command1_Click() Command1.FontBold = True CommonDialog1.ShowOpen

Picture1.Picture = LoadPicture(CommonDialog1.FileName) Picture1.AutoRedraw = True

xfile = Mid(CommonDialog1.FileName, 1, Len(CommonDialog1.FileName) - 4) + ".csv"

If CommonDialog1.FileName <> "" Then n = 1

'Bisulreferensi

Open folder & "\Bisul\Bisulall.csv" For Input As #1 For n = 1 To 30

Input #1, cr, cb

rsb(n) = Sqr(cr ^ 2 + cb ^ 2) Next n


(18)

A-9

'Cacar referensi

Open folder & "\Cacar\Cacarall.csv" For Input As #1 For n = 1 To 30

Input #1, cr, cb

rsc(n) = Sqr(cr ^ 2 + cb ^ 2) Next n

Close #1

'Panu referensi

Open folder & "\Panu\Panuall.csv" For Input As #1 For n = 1 To 30

Input #1, cr, cb

rsp(n) = Sqr(cr ^ 2 + cb ^ 2) Next n

Close #1

Open xfile For Input As #1 Input #1, cru, cbu

rsu = Sqr(cru ^ 2 + cbu ^ 2) Close #1

'Hitung Deuc

db = 0 dc = 0 dp = 0

For n = 1 To 30

db = db + (rsb(n) - rsu) ^ 2 dc = dc + (rsc(n) - rsu) ^ 2 dp = dp + (rsp(n) - rsu) ^ 2 Next n

DeucB = Sqr(db) DeucC = Sqr(dc) DeucP = Sqr(dp)

Text1.Text = DeucB Text2.Text = DeucC Text3.Text = DeucP

If DeucB < DeucC And DeucB < DeucP Then Text4.Text = "Bisul"

ElseIf DeucP < DeucC And DeucP < DeucB Then Text4.Text = "Panu"

ElseIf DeucC < DeucB And DeucC < DeucP Then Text4.Text = "Cacar"

End If End If End Sub


(19)

A-10

3. Listing Program Pendeteksian Menggunakan Sistem Pakar

Private Sub Command2_Click()

i = ya(0).Value * -1 * 0.17 + ya(1).Value * -1 * 0 + ya(2).Value * -1 * 0.21 + _ ya(3).Value * -1 * 0 + ya(4).Value * -1 * 0.21 + ya(5).Value * -1 * 0 + _ ya(6).Value * -1 * 0.21 + ya(7).Value * -1 * 0.21

Text7.Text = i

i = ya(0).Value * -1 * 0.04 + ya(1).Value * -1 * 0 + ya(2).Value * -1 * 0.04 + _ ya(3).Value * -1 * 0.15 + ya(4).Value * -1 * 0.19 + ya(5).Value * -1 * 0.19 + _ ya(6).Value * -1 * 0.19 + ya(7).Value * -1 * 0.19

Text6.Text = i

i = ya(0).Value * -1 * 0 + ya(1).Value * -1 * 0.33 + ya(2).Value * -1 * 0 + _ ya(3).Value * -1 * 0.33 + ya(4).Value * -1 * 0# + ya(5).Value * -1 * 0.33 + _ ya(6).Value * -1 * 0 + ya(7).Value * -1 * 0

Text5.Text = i For x = 0 To 7 ya(x).Value = False tidak(x).Value = False Next x

If Text5.Text > Text6.Text And Text5.Text > Text7.Text Then Text8.Text = "Panu"

Else

If Text6.Text > Text5.Text And Text6.Text > Text7.Text Then Text8.Text = "Cacar"

Else

Text8.Text = "Bisul" End If

End If

Text8.FontBold = True Text8.FontSize = 12 End Sub

Private Sub Form_Load() folder = App.Path For x = 0 To 7

ya(x).Value = False tidak(x).Value = False Next x


(20)

LAMPIRAN B


(21)

B-1 1. Nilai CrCb Citra Referensi

o Bisul (Furunkel) Bisul 1-10


(22)

(23)

(24)

(25)

(26)

(27)

(28)

(29)

(30)

(31)

(32)

(33)

(34)

(35)

(36)

(37)

(38)

B-18


(39)

B-19 o Cacar Air (Varicella)


(40)

(41)

(42)

(43)

(44)

(45)

B-25


(46)

B-26


(47)

(48)

(49)

B-29


(50)

B-30


(51)

B-31


(52)

B-32 o Panu (Tinea atau Ptiriasis Versikolor) Panu 1-10


(53)

(54)

(55)

(56)

(57)

(58)

(59)

B-39


(60)

B-40 2. Nilai CrCb Citra Uji

o Bisul (Furunkel) Bisul Uji 1-10


(61)

(62)

(63)

(64)

(65)

(66)

(67)

(68)

(69)

(70)

(71)

B-51


(72)

B-52 o Cacar Air (Varicella)


(73)

(74)

(75)

(76)

(77)

(78)

(79)

(80)

B-60


(81)

B-61 o Panu (Tinea atau Ptiriasis Versikolor) Panu Uji 1-10


(82)

(83)

(84)

(85)

(86)

(87)

LAMPIRAN C

CITRA PENYAKIT KULIT REFERENSI

DAN UJI


(88)

C-1 1. Citra Referensi

a. Penyakit Bisul (Furunkel)

B1.jpg B2.jpg B3.jpg B4.jpg

B5.jpg B6.jpg B7.jpg B8.jpg

B9.jpg B10.jpg B11.jpg B12.jpg


(89)

C-2

B17.jpg B18.jpg B19.jpg B20.jpg

B21.jpg B22.jpg B23.jpg B24.jpg

B25.jpg B26.jpg B27.jpg B28.jpg

B29.jpg B30.jpg


(90)

C-3 b. Penyakit Cacar Air (Varicella)

C1.jpg C2.jpg C3.jpg C4.jpg

C5.jpg C6.jpg C7.jpg C8.jpg

C9.jpg C10.jpg C11.jpg C12.jpg

C13.jpg C14.jpg C15.jpg C16.jpg


(91)

C-4

C17.jpg C18.jpg C19.jpg C20.jpg

C21.jpg C22.jpg C23.jpg C24.jpg

C25.jpg C26.jpg C27.jpg C28.jpg

C29.jpg C30.jpg


(92)

C-5

c. Penyakit Panu (Tinea atau Ptiriasis Versikolor)

P1.jpg P2.jpg P3.jpg P4.jpg

P5.jpg P6.jpg P7.jpg P8.jpg

P9.jpg P10.jpg P11.jpg P12.jpg


(93)

C-6

P17.jpg P18.jpg P19.jpg P20.jpg

P21.jpg P22.jpg P23.jpg P24.jpg

P25.jpg P26.jpg P27.jpg P28.jpg

P29.jpg P30.jpg


(94)

C-7 2. Citra Uji

a. Penyakit Bisul (Furunkel)

B01.jpg B02.jpg B03.jpg B04.jpg

B05.jpg B06.jpg B07.jpg B08.jpg

B09.jpg B010.jpg B011.jpg B012.jpg

B013.jpg B014.jpg B015.jpg B016.jpg


(95)

C-8

B017.jpg B018.jpg B019.jpg B020.jpg

B021.jpg B022.jpg B023.jpg B024.jpg

B025.jpg B026.jpg B027.jpg B028.jpg


(96)

C-9 b. Penyakit Cacar Air (Varicella)

C01.jpg C02.jpg C03.jpg C04.jpg

C05.jpg C06.jpg C07.jpg C08.jpg

C09.jpg C010.jpg C011.jpg C012.jpg


(97)

C-10

C017.jpg C018.jpg C019.jpg C020.jpg

C021.jpg C022.jpg C023.jpg C024.jpg

C025.jpg C026.jpg C027.jpg C028.jpg


(98)

C-11

c. Penyakit Panu (Tinea atau Ptiriasis Versikolor)

P01.jpg P02.jpg P03.jpg P04.jpg

P05.jpg P06.jpg P07.jpg P08.jpg

P09.jpg P010.jpg P011.jpg P012.jpg

P013.jpg P014.jpg P015.jpg P016.jpg


(99)

C-12

P017.jpg P018.jpg P019.jpg P020.jpg

P021.jpg P022.jpg P023.jpg P024.jpg

P025.jpg P026.jpg P027.jpg P028.jpg


(100)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

1.1 Latar Belakang

Pada perkembangan saat ini, banyak ditemukan masalah kesehatan pada masyarakat. Salah satu contoh masalah kesehatan yang dihadapi masyarakat adalah mengenai penyakit kulit. Penyakit kulit ini tidak dapat disembunyikan dan tidak mengenal usia, baik itu orang dewasa maupun anak-anak juga dapat terkena penyakit ini. Penyebab dari penyakit kulit ini antara lain karena terinfeksi bakteri, jamur atau virus. Infeksi bakteri, jamur atau virus cepat menyebar diseluruh tubuh disebabkan dengan berkurangnya daya tahan pada tubuh manusia.

Kadang-kadang seorang dokter kesulitan mengidentifikasi suatu penyakit kulit disebabkan karena efloresensi atau gambaran penyakit kulit yang bermacam-macam, beragam dan tidak khas. Oleh sebab itu, dibutuhkan suatu alat berupa software untuk mempermudah dalam identifikasi penyakit kulit.

Dengan adanya teknik Digital Image Processing suatu teknik pengklasifikasian penyakit kulit akan bisa dikembangkan dan bermanfaat khususnya dibidang medis. Input atau masukannya berupa citra kulit yang berpenyakit dan merupakan citra asli. Untuk melakukan klasifikasi pada citra tersebut, fitur citra harus ditetapkan terlebih dahulu agar dapat membedakan citra yang satu dengan citra yang lain.

Salah satu metode yang digunakan untuk mengklasifikasi citra berdasarkan fitur-fitur visual yang dimilikinya adalah K-Nearest Neighbor.

Yang dimaksud dengan fitur-fitur visual adalah fitur-fitur yang terdiri dari warna, bentuk, dan tekstur. Pada Tugas Akhir ini akan digunakan metode


(1)

BAB 1 PENDAHULUAN

2 Universitas Kristen Maranatha dapat dimanfaatkan dalam bidang medis untuk mendiagnosis penyakit kulit.

Selain metode K-Nearest Neighbor , digunakan juga sistem pakar

yaitu untuk mendapatkan ketepatan dalam mendiagnosis penyakit kulit. Sistem pakar adalah program komputer yang dibangun bukan berdasarkan algoritma melainkan berdasarkan pengetahuan dan aturan. Sistem ini sudah banyak dikembangkan untuk kepentingan penelitian maupun kepentingan bisnis dari berbagai bidang ilmu. Dalam bidang kesehatan khususnya diagnosis, sistem ini telah dikembangkan pada pertengahan tahun 1970 untuk melakukan diagnosis dan terapi terhadap penyakit

meningitis dan infeksi bakteriemia. Oleh karena itu, selain K-Nearest Neighbor, sistem pakar ini juga akan bermanfaat untuk mendiagnosis penyakit kulit pada Tugas Akhir ini.

1.2 Perumusan Masalah

Berdasarkan uraian di atas, maka dapat dirumuskan permasalahan yang ada yaitu:

a. Bagaimana cara identifikasi penyakit kulit dilihat berdasarkan warna

penyakit kulit ?

b. Bagaimana menentukan penyakit kulit dilihat berdasarkan

gejala-gejalanya ?

c. Bagaimana cara membuat program untuk identifikasi citra penyakit

kulit menggunakan metode K-Nearest Neighbor dan Sistem Pakar ?

1.3 Tujuan

Tujuan dari Tugas Akhir ini adalah perancangan dan realisasi yang berfungsi untuk identifikasi citra penyakit kulit dengan menggunakan


(2)

BAB 1 PENDAHULUAN

3 Universitas Kristen Maranatha Sistem Pakar digunakan untuk menghitung skor dan bobot nilai dari kuesioner citra penyakit kulit.

1.4 Pembatasan Masalah

1. Format citra yang digunakan untuk input atau masukan yaitu bitmap.

2. Analisa yang dilakukan menggunakan metode K-Nearest Neighbor

dan Sistem Pakar.

3. Jenis penyakit kulit yang akan diidentifikasi dan diklasifikasikan

dibatasi sampai 3 macam penyakit kulit, yaitu : Bisul (Furunkel), Cacar Air (Varicella), dan Panu (Tinea atau Ptiriasis Versikolor).

4. Menggunakan Visual Basic sebagai bahasa pemrograman.

1.5 Sistematika Penulisan

BAB I : PENDAHULUAN

Bab ini membahas mengenai latar belakang permasalahan, perumusan masalah, tujuan penulisan, metode penyelesaian masalah serta sistematika penulisan pada Tugas Akhir ini. BAB II : LANDASAN TEORI

Bab ini membahas konsep dasar mengenai citra digital, sekilas tentang kulit, dan pengolahan citra digital yang sesuai dengan kebutuhan pengklasifikasian penyakit berdasarkan

citra kulit, konsep dasar K-Nearest Neighbor, dan konsep

dasar Sistem Pakar.

BAB III : PERANCANGAN DAN REALISASI

Bab ini membahas bagaimana proses perancangan program simulasi guna pengklasifikasian penyakit kulit berdasarkan citra warna penyakit kulit.

BAB IV : DATA PENGAMATAN DAN ANALISA

Bab ini menguraikan hasil dan analisa dari program simulasi yang telah dibuat.


(3)

BAB 1 PENDAHULUAN

4 Universitas Kristen Maranatha BAB V : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari analisa yang telah dilakukan dan saran untuk pengembangan lebih lanjut.


(4)

39 Universitas Kristen Maranatha

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang dapat diambil dalam Tugas Akhir ini adalah sebagai berikut :

1. Perancangan identifikasi citra penyakit kulit menggunakan metode

K-NN dan Sistem Pakar berhasil direalisasikan.

2. Dalam Tugas Akhir ini, ternyata dengan menggunakan metode K-NN

hasilnya tidak memuaskan terutama pada citra penyakit bisul uji yang tingkat keberhasilannya hanya 3.33%, akan tetapi untuk identifikasi citra penyakit kulit panu tingkat keberhasilannya mencapai 86.67%.

3. Pada metode Sistem Pakar tingkat keberhasilan pada citra penyakit

kulit bisul dan panu 100%, tetapi untuk identifikasi penyakit cacar air hanya mencapai 46.67%.

4. Hasil dari data pengamatan identifikasi citra penyakit kulit

menggunakan metode Sistem Pakar lebih memuaskan dibandingkan hasil dari metode K-NN.

5. Dalam Tugas Akhir ini, kegagalan identifikasi citra penyakit kulit

dengan metode K-NN dikarenakan pengambilan parameter feature

extraction adalah warna kulit, ternyata proses feature extraction warna kulit belum berhasil dengan baik.


(5)

40 Universitas Kristen Maranatha 5.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan Tugas Akhir ini dimasa mendatang adalah :

1. Algoritma identifikasi warna citra penyakit kulit lebih disempurnakan

saat proses feature extraction, sehingga dapat lebih akurat dalam

mengidentifikasi citra penyakit kulit dan dapat membedakan berbagai jenis penyakit kulit dengan melihat warna dari penyakit kulit tersebut.

2.

Selanjutnya diharapkan dapat dibuat suatu program untuk identifikasi


(6)

41 Universitas Kristen Maranatha

DAFTAR PUSTAKA

1. Ahmad, Usman, “Pengolahan Citra Digital dan Teknik

Pemrogramannya,”, Graha Ilmu, Yogyakarta, 2005.

2. Basuki, Achmad, Jozua F.Palandi, Fatchurrochman,”Pengolahan Citra

Digital menggunakan Visual Basic”, Graha Ilmu,Yogyakarta, 2005.

3. Darmawan, Aan. 2007, Diktat Kuliah Pengolahan Citra Digital,

Universitas Kristen Maranatha, Bandung.

4. P.Zebua, Andy Putra, “Pengenalan Warna Kulit Untuk Klasifikasi Ras

Manusia”, Universitas Kristen Maranatha, Bandung, 2009.

5. Setiawan, Sandi, “Artificial Intelligence”, Andi Offset, Yogyakarta, 1993.

6. Subari, Yuswanto, “Panduan Lengkap Pemrograman Visual Basic”, Cerdas Pustaka Publisher, Jakarta, 2008.

7. http://achmad.blog.undip.ac.id/kuliah/pcd/

8.

http://docs.google.com/viewer?a=v&q=cache:mcL-T0y38xAJ:fri3ta.files.wordpress.com/2010/06/kulit.pdf+kulit+adalah&hl= id&gl=id&pid=bl&srcid=ADGEESjhqQ5fTYzTFHjKOQX91OENcXqqiy 51tlnPdbE1y8MTTUCqVlNMUhGKj6Ye4FHHsREbW743BMYEJEZTT

VI1qy6dVFDD15-YHG8QhKPVmHkeopwUqgHZyw-Jo_Q734rJbJP_demK&sig=AHIEtbRCdyS0_piKD7l-bEF3J-QlA6F5Ng

9. http://www.improvedoutcomes.com/docs/WebSiteDocs/Clustering/Cluster ing_Parameters/Euclidean_and_Euclidean_Squared_Distance_Metrics.htm