Perbandingan Identifikasi Citra Penyakit Kulit Menggunakan Metode K-Nearest Neighbor dan Metode Sistem Pakar.
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