Download - Proposal Skripsi New
I.JUDUL
Pengenalan Pola Citra Retina Menggunakan Jaringan Syaraf Tiruan
Backpropagation Untuk Mendeteksi Retinopati Diabetes
(Retina Image Pattern Recognition Using Artificial Neural Network for Retinopathy
Diabetes Detection)
II.PENDAHULUAN
II.1 Latar Belakang
Pada penderita Diabetes Melitus dapat terjadi kelainan retina yang disebut
sebagai Retinopati Diabetes. Retinopati Diabetes merupakan penyakit sistemik yang
paling penting pada mata. Retinopai Diabetes akan menyebabkan gangguan pada
tajam penglihatan, sehingga penglihatan penderita akan semakin menurun dan dapat
menyebabkan kebutaan. Meskipun penyakit Diabetes Melitus ini adalah penyakit
turunan, namun penyebab yang paling besar adalah pola makan yang keliru. Hal ini
sering membuat para penderita Diabetes Melitus tidak menyadari bahwa dirinya
telah mengidap penyakit ini. Sehingga, sering terjadi Retinopati Diabetes sebelum
penderita menyadari bahwa dirinya mengidap Diabetes Melitus.
Sebagaimana kita ketahui peran dokter sangat penting dalam mendiagnosis
suatu penyakit, sehingga sangat mempengaruhi dalam pengambilan keputusan
terhadap suatu penyakit. Akan sangat membantu jika ada suatu alat bantu untuk
mendeteksi kelainan Retinopati Diabetes pada pasien agar dapat dilakukan
penanganan sedini mungkin.
Metode Jaringan Syaraf Tiruan (Artificial Neural Network) merupakan salah
satu alternatif pemecahan masalah dan banyak diminati oleh para peneliti pada saat
ini. Hal ini adalah karena keluwesan yang dimiliki oleh Jaringan Syaraf Tiruan, baik
dalam perancangan maupun penggunaannya. Dasar pemikiran metode Jaringan
Syaraf Tiruan ini adalah jaringan syaraf manusia. Metode ini meniru cara kerja otak
manusia dalam berfikir untuk memecahkan beragam permasalahan.
Salah satu penggunaan dari metode Jaringan Syaraf Tiruan seperti yang
dilakukan pada tugas akhir ini yaitu untuk mengidentifikasi pola citra hasil foto
Fundus sehingga dapat mengidentifikasi kelainan mata akibat Diabetes Melitus
yang biasa disebut Retinopati Diabetes.
Jaringan Syaraf Tiruan dapat dikembangkan untuk mempermudah deteksi
Retinopati Diabetes pada citra retina, dimana data citra retina yang diperoleh dari
foto Fundus diolah dengan menggunakan Operator Sobel untuk memperoleh data
biner. Data biner ini digunakan sebagai data masukan pada proses Jaringan Syaraf
Tiruan. Setelah melalui proses training dan mapping, jaringan dapat mengenali pola
sesuai dengan pola yang telah diajarkan. Dengan demikian jaringan dapat
mengambil keputusan mengenai ada atau tidaknya Retinopati Diabetes pada pasien.
II.2 Rumusan Masalah
Berdasarkan permasalahan yang telah dijelaskan pada bagian latar belakang,
maka rumusan masalah dikhususkan pada :
Penerapan Operator Sobel untuk mengolah citra retina sehingga
didapatkan data digital dari citra tersebut.
Penerapan Algoritma Backpropagation untuk mengenali pola citra retina
dari penderita Retinopati Diabetes dan citra retina normal.
Pengembangan aplikasi pendeteksi diabetes dengan menerapkan
Algoritma Backpropagation menggunakan UML dan Java.
II.3 Batasan Masalah Masalah
Ruang lingkup permasalahan dibatasi oleh :
Citra retina yang digunakan adalah citra Retinopati Diabetik dan citra
retina normal hasil dari foto Fundus.
Data yang digunakan berupa file *.bmp 256 warna..
Aplikasi akan dirancang menggunakan UML dan diimplementasikan
menggunakan Java.
Aplikasi dibuat untuk bekerja pada sistem operasi Windows XP
Profesional.
Menggunakan Learning Rate 0,3 dan Momentum 0,8.
Jeringan Syaraf Tiruan yang dipergunakan adalah metode
Backpropagation dengan Hidden Layer maksimal 5 layer.
Deteksi tepi yang digunakan adalah Operator Sobel
II.4 Tujuan
Tujuan dari penelitian ini adalah mengembangkan Jaringan Syaraf Tiruan
yang dapat mengidentifikasi Retinopati Diabetes melalui citra retina sehingga dapat
dilakukan penanganan secara dini terhadap penderita Retinopati Diabetes.
II.5 Manfaat
Manfaat dari penelitian ini antara lain :
1. Sebagai upaya untuk menerapkan Jaringan Syaraf Tiruan metode
Backpropagation dalam dunia kedokteran.
2. Didapatkan sebuah aplikasi yang dapat mendeteksi penyakit Retinopati
Diabetes secara cepat dan akurat.
3. Membantu dokter untuk mendiagnosis pasien penderita Renitopati
Diabetes lebih dini.
II.6 Tinjauan Pustaka
II.6.1 Retinopati Diabetes
Pada penderita Diabetes Melitus dapat terjadi kelainan retina yang disebut
sebagai Retinopati Diabetes. Retinopati Diabetes merupakan penyakit sistemik yang
paling penting pada mata. Retinopai Diabetes akan menyebabkan gangguan pada
tajam penglihatan, sehingga penglihatan penderita akan semakin menurun dan dapat
menyebabkan kebutaan.
Kemungkinan terjadinya Retinopati Diabetes cukup tinggi dan mencapai 40-
50% dari penderita Diabetes Melitus.Kemungkinannya bertambah akibat pemakaian
insulin, sehingga mengakibatkan bertambahnya usia penderita Diabetes Melitus.
Pada Diabetes Juvenil jarang ditemukan Retinopati Diabetes pada usia lebih rendah
dari 17 tahun. Pada umumnya Retinopati Diabetes terjadi pada penderita Diabetes
Melitus yang telah terjangkit selama 10 tahun. Rada usia lanjut sering terlihat
Retinopati Diabetes sebelum penderita menyadari adanya Diabetes Melitus. [ILY-
05]
Kelainan pada Retina yang dapat terjadi akibat Retinopati Diabetes adalah :
1. Kelainan Vena, yaitu melebar iregular dan berkelok-kelok. Kelainan vena
terjadi akibat gangguan sirkulasi dan gangguan pada Endotelnya.
2. Microaneurismata, yaitu terjadi penonjolan dinding pembuluh darah kapiler
vena retina.
3. Pendarahan pada retina berbentuk pendarahan bintik dan bercak-bercak di
dalam retina.
4. Obstruksi kapiler, mengakibatkan terganggunya aliran darah kapiler retina.
5. Neovaskularisasi, merupakan awal penyakit yang lebih berat pada
Retinopati Diabetes.
II.6.2 Pengolahan Citra Digital
Pengolahan citra (image processing) merupakan suatu sistem di mana proses
dilakukan dengan masukan berupa citra (image) dan hasilnya juga berupa citra
(image). Sesuai dengan perkembangan komputer vision itu sendiri, pengolahan citra
mempunyai dua tujuan utama, yakni:
1. Memperbaiki kualitas citra, dimana citra yang dihasilkan dapat menampilkan
informasi secara jelas atau dengan kata lain manusia dapat melihat informasi
secara jelas atau dapat menginterpretasikan citra yang ada.
2. Mengekstraksi informasi ciri yang menonjol pada suatu citra di mana
hasilnya adalah informasi citra di mana manusia mendapatkan informasi ciri
dari citra secara numerik atau dengan kata lain komputer (mesin) melakukan
interpretasi terhadap informasi yang ada pada citra melalui besaran-besaran
data yang dapat dibedakan secara jelas (besaran-besaran ini berupa besaran
numerik). [BAS-05]
Dalam perkembangan lebih lanjut dari ilmu komputasi yang memanfaatkan
pengolahan citra, ternyata untuk mengidentifikasi seseorang bisa menggunakan
sidik jari, pengenalan wajah (face recognition) ataupun pengenalan retina (retina
recognition). Dalam model pengenalan wajah dan pengenalan retina, proses
pengolahan citra yang dilakukan menjadi tidak sederhana, baik dari sisi capture
sampai pada ekstraksi cirinya. Pada pengenalan wajah proses capture ini sangat
menentukan tingkat kesulitan dalam komputasinya, salah satunya bahwa dalam
setiap dalam setiap proses capture ternyata cahaya, warna, posisi, skala dan
kemiringan menjadi suatu masalah yang perlu di perhatikan.
Citra digital adalah citra yang didefinisikan sebagai fungsi f(x,y) dimana x
menyatakan nomor baris, y menyatakan nilai kolom, dan f menyatakan nilai derajat
keabuan pada citra. Dengan demikian (x,y) adalah posisi dari piksel dan f adalah
nilai derajat keabuan pada titik(x,y).Citra yang dimaksudkan dalam keseluruhan
buku ini adalah ”citra diam” (still images). Citra diam adalah citra tunggal yang
tidak bergerak. Untuk selanjutnya citra diam disebut citra saja. [BAS-05]
II.6.2.1 Representasi Citra Digital
Sebuah citra dalam komputer direpresentasikan dalam sebuah matriks yang
berisikan angka-angka. Jika kita menyimpan citra kedalam sebuah file, maka yang
disimpan kedalam file tersebut adalah angka-angka yang diperoleh dari matriks
kanvas seperti yang ditunjukkan oleh gambar berikut ini ini.
201 188 181 185 180 147 140 149 155 138 144 144 145 199 200 201 188 139 132 147 150 143 123 112 102 117 207 221 222 136 90 111 125 145 140 138 122 104 97 231 219 200 90 65 84 84 107 95 92 92 99 89 227 223 181 74 72 89 92 86 77 63 50 55 65 217 211 166 85 47 75 82 83 75 42 42 39 40 208 195 179 131 54 68 66 72 46 21 15 24 19 198 187 181 141 53 54 55 59 37 21 37 66 90 195 184 170 134 52 38 42 45 35 43 98 152 172 186 175 171 169 100 34 34 27 44 85 139 170 184 167 156 142 144 112 48 32 46 84 133 166 172 186 142 139 131 120 108 67 30 76 102 123 153 171 178 145 134 128 125 117 70 38 91 101 105 125 146 157
Gambar 2.1 Representasi citra kedalam matriks angka
Untuk format Windows Bitmap File (.bmp) terdapat sebuah header yang
berisi informasi jumlah kolam dan baris dalam citra serta informasi palet. Header
langsung diikuti oleh angka-angka dalam matriks yang disusun perbaris, baris
pertama langsung diikuti baris kedua.
Header
Angka-angka
dari matriks
Header Baris 1 ….. Baris terakhir
Gambar 2.2 Susunan Header dan Matriks angka
Ada bermacam format representasi citra dalam file, seperti bmp, tif, jpg, dan
sebagainya. Dalam format .bmp semua informasi angka dalam baris disimpan.
Misalkan ukuran header adalah H byte, ukuran citra 100x100 byte monokrom, maka
ukuran file bmp tersebut adalah : H + data citra = H + 10000 Byte. Bagian data citra
(10000 byte) sebenarnya bisa dikompresi agar ukuran file tidak terlalu besar. Salah
satu cara kompresi adalah dengan terlebih dahulu mentransformasikan citra ke ruang
yang berbeda (contoh: format file JPEG).
II.6.2.2 Hubungan Dasar Antar Piksel
Dalam pengolahan citra, hubungan dasar antar piksel merupakan hal yang
sangat penting. Sebuah piksel p pada koordinat (x,y) mempunyai 4 tetangga
horisontal dan vertikal yang koordinat-koordinatnya sebagai berikut :
(x+1,y),(x-1,y),(x,y+1), dan (x,y-1) (2.1)
Kumpulan dari píxel-piksel data yang disebut 4-neighbours of p dapat
dinyatakan sebagai N4 (p). Kecuali jika p(x,y) posisinya berada di garis batas
gambar, sehingga jumlah píxel tetangga tidak terdiri dari 4 piksel tetangga. Selain 4
tetangga diatas, p juga mempunyai 4 tetangga diagonal yaitu :
(x+1,y+1),(x+1,y-1),(x-1,y+1), dan (x-1,y-1) (2.2)
píksel-piksel diatas dinyatakan dalam ND (p). Gabungan dari N4 (p) dan ND (p)
didefinisikan sebagai 8-neighbours of p dapat dinyatakan sebagai N8 (p).
Hubungan dasar antar píksel merupakan suatu konsep yang sangat penting
yang digunakan untuk mendefinisikan batas-batas dari suatu objek dan bagian-
bagian daerah kecil dari suatu gambar. Sebagai pertimbangan apakan dua buah
piksel saling berhubungan atau tidak, diperlukan beberapa kriteria. Diantaranya
apakah kedua piksel tersebut mempunyai prinsip kedekatan yang sesuai dengan
konsep yang telah ditentukan, seperti 4-neighbours atau 8-neighbours. Selain itu,
apakah kedua piksel tersebut mempunyai gray level yang sesuai dengan kriteria
yang diinginkan. Sebagai contoh, jika dua piksel masing-masing mempunyai nilai 1
dan 0 dan keduanya merupakan bagian dari 4-neighbours, maka dinyatakan kedua
piksel tersebut tidak ada hubungan, hal ini karena kedua piksel tersebut memiliki
nilai yang berbeda.
II.6.2.3 Deteksi Tepi
Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses yang
menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah :
o Untuk menandai bagian yang menjadi detail citra
o Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena
error atau adanya efek dari proses akuisisi citra
Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik
tersebut mempunyai perbedaan yang tinggi dengan tetangganya. Gambar 2.3 berikut
ini meng-gambarkan bagaimana tepi suatu gambar diperoleh.
Gambar 2.3. Proses Deteksi Tepi Citra
Perhatikan hasil deteksi dari beberapa citra menggunakan model differensial di atas:
Gambar 2.4. Hasil beberapa deteksi tepi
Pada gambar 2.4. terlihat bahwa hasil deteksi tepi berupa tepi-tepi dari suatu
gambar. Bila diperhatikan bahwa tepi suatu gambar terletak pada titik-titik yang
memiliki perbedaan tinggi. Berdasarkan prinsip-prinsip filter pada citra maka tepi
suatu gambar dapat diperoleh menggunakan High Pass Filter (HPF), yang
mempunyai karakteristik:
Contoh:
Diketahui fungsi citra f(x,y) sebagai berikut:
1 1 1 1 1
1 1 1 1 0
1 1 1 0 0
1 1 0 0 0
1 0 0 0 0
Dengan menggunakan filter : H (x,y) = [-1 1]
Maka Hasil filter adalah :
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
Bila digambarkan maka proses filter di atas mempunyai masukan dan keluaran
sebagai berikut
Untuk mencoba perhitungan di atas dapat dilakukan dengan cara manual
menggunakan perhitungan konvolusi yang telah dibahas pada bab 5, atau dengan
memanfaatkan program konvolusi.
Macam-macam metode untuk proses deteksi tepi ini, antara lain:
1. Metode Robert
2. Metode Prewitt
3. Metode Sobel
Metode yang banyak digunakan untuk proses deteksi tepi adalah metode Robert,
Prewitt dan Sobel.
II.6.2.4 Operator Sobel
Operator sobel melakukan perhitungan secara 2D terhadap suatu ruang di
dalam sebuah gambar dengan harapan nantinya akan nampak daerah-daerah bernilai
tinggi pada gambar tersebut yang merupakan deteksi tepi dari suatu gambaran.
Operator ini biasanya digunakan untuk mencari gradient dari masing-masing pixel
gambar input yang telah di grayscale sebelumnya. Secara teori, diperlukan matrik
setidaknya berukuran 3x3 sebagai kernelnya. Seperti gambar dibawah ini
menunjukkan kernel 3x3 dari sobel :
Gambar 2.5 Kernel Konvolusi Sobel
Sumber : Wikipedia
Kernel ini dirancang untuk menyelesaikan permasalahan deteksi tepi baik
secara vertikal maupun horisontal. Penggunaan kernel-kernel ini dapat digunakan
bersamaan ataupun secara terpisah. Apabila digunakan kernel verikal dan kernel
horisontal
secara bersamaan, maka gradient dapat diukur dengan formula sbb:
G = Gx2 + Gy2
Nilai magnitude dari gradient juga dapat dihitung lebih cepat lagi dengan
menggunakan formula sbb:
G = Gx + Gy
Gradient tersebut pasti mempunyai derajat kemiringan tertentu. Untuk dapat
menegtahui sudut dari gradient tersebut dapat dihitung dengan menggunakan rumus
sbb:
ϑ = arctan(Gy / Gx)
Dalam kasus ini, orientasi 0 untuk menentukan nilai kontras maximum dari
hitam ke putih dihitung dari kiri menuju kanan dan berjalan terus sampai ke bagian
paling atas dari suatu gambaran. Sedangkan sudutnya diukur berlawanan arah jarum
jam.
Yang sering terjadi dalam filter ini adalah nilai absolut dari magnitude hanya
sebatas penglihatan mata kita saja, apabila terdapat dua komponen gradient maka
akan digabungkan menggunakan operator pseudo-convolution sbb:
Gambar 2.6 Kernel pseudo-convolution agar mempercepat komputasi
Sumber : Wikipedia
Dengan menggunakan kernel pseudo-convolution seperti
diatas maka perhitungan yang terjadi adalah:
Pada kenyataannya operator Sobel memerlukan proses perhitungan yang
lebih lama dibandingkan dengan operator Robert Cross. Akan tetapi, bila nantinya
dalam proses digunakan kernel berukuran besar, maka akan memperhalus gambar
input sehingga nantinya akan mereduksi noise. Keunggulan lain dari operator Sobel
dibandingkan dengan Robert Cross adalah nilainilai output dari proses konvolusi
dengan Sobel lebih akurat dan presisi.
Gambar 2.7 Citra Grayscale dan Hasil Operator Sobel
Sumber : Wikipedia
II.6.3 Jaringan Syaraf Tiruan
II.6.3.1 Definisi Jaringan Syaraf Tiruan
Jaringan Saraf tiruan (artificial neural networks) atau di singkat JST adalah
sistem komputasi dimana arsitektur dan operasi di ilhami dari pengetahuan tentang
sel saraf biologi di dalam otak. JST dapat digambarkan sebagai model matematis
dan komputasi untuk fungsi aproksimasi nonlinear, klasifikasi data, cluster dan
regresi non parametrik atau sebagai sebuah simulasi dari koleksi model saraf
biologi. [KRI-04]
II.6.3.2 KOMPONEN JARINGAN SARAF
Ada beberapa tipe jaringan saraf, namun demikian, hampir semuanya
memiliki komponen-komponen yang sama. Seperti halnya otak manusia, jaringan
saraf juga terdiri dari beberapa neuron, dan ada hubungan antara neuron-neuron
tersebut. Neuron-neuron tersebut akan mentransformasikan informasi yang di terima
melalui sambungan
keluarnya menuju ke neuron-neuron yang lain. Pada jaringan saraf, hubungan ini
dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu
pada bobot tersebut. Gambar 2.8 menunjukkan struktur neuron pada jaringan saraf.
Gambar 2.8Struktur neuron jaringan saraf
Sumber : Dewi.2003
Jika kita lihat, neuron buatan ini sebenarnya mirip dengan sel neuron
biologis. Neuron-neuron buatan tersebut bekerja dengan cara yang sama pula
dengan sel neuron biologis. Informasi (disebut dengan input) akan dikirim ke neuron
dengan bobot kedatangan tertentu. Input ini akan di proses oleh suatu fungsi
perambatan yang akan menjumlahkan nilai-nilai semua bobot yang datang. Hasil
penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang
(threshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input tersebut
melewati suatu nilai ambang tertentu, maka neuron tersebut diaktifkan, tapi kalau
tidak, maka neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut akan
diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot
outputnya ke semua neuron yang berhubungan dengannya. Demikian seterusnya.
[DEW-03]
II.6.3.3 ARSITEKTUR JARINGAN
JST yang telah dan sedang dikembangkan merupakan pemodelan matematika
dari jaringan syaraf, berdasarkan asumsi :
1. Pemrosesan info terjadi pada banyak elemen pemroses sederhana yang
disebut neuron;
2. Sinyal dilewatkan antar neuron yang membentuk jaringan neuron;
3. Setiap elemen pada jaringan neuron memiliki 1 (satu) pembobot. Sinyal
yang dikirimkan ke lapisan neuron berikutnya adalah info dikalikan dengan
pembobot yang bersesuaian;
4. Tiap-tiap neuron mengerjakan fungsi aktivasi untukmendapatkan nilai output
masing-masing.
Karakteristik dari JST secara umum adalah :
1. Arsitektur (pola koneksi antar neuron)
2. Pelatihan/ pembelajaran
3. Fungsi aktivasi
Suatu neuron sederhana digambarkan sebagai berikut :
Gambar 2.9 Neuron Sederhana
Sumber : Astutik.2005 : 11
Pada gambar 2.9 di atas, neuron Y menerima input dari neuron X1, X2, dan
X3 serta W1, W2, dan W3 merupakan pembobot antar koneksi dari X1, X2, X3
terhadap neuron Y. Jaringan input y_in pada neuron Y merupakan penjumlahan dari
perkalian neuron-neuron input dengan masing-masing pembobot yang bersesuaian,
dimana :
……………………………..(2.3)
Fungsi aktivasi dari neuron Y (f(y_in)) diberikan sebagai fungsi dari
input jaringannya (y_in) :
...............................................(2.4)
Apabila neuron Y di atas dihubungkan dengan neuron Z1 dan Z2 dengan pembobot
v1 dan v2, maka nilai aktivasi z1 dan z2 dari neuron neuron Z1 dan Z2 akan
tergantung pada input-input dari beberapa atau bahkan banyak neuron , tidak hanya
satu.
Gambar 2.10 Neuron Network Yang Sangat Sederhana
Sumber : Astutik.2005 : 12
Gambar 2.10. merupakan suatu model neural network yang sangat sederhana yang
terdiri dari unit-unit input, output dan satu unit hidden yang terletak pada suatu
lapisan tersembunyi (hidden layer).
Susunan dari neuron-neuron di dalam layer dan bentuk hubungan di dalam
dan diantara layer disebut net architecture (arsitektur jaringan). Neural net pada
umumnya diklasifikasikan berdasarkan pada jumlah layer (input unit tidak dihitung
sebagai layer, karena tidak mengerjakan fungsi aktivasi). Jumlah dari layer pada net
dapat didefinisikan menjadi jumlah layer-layer dari pembobotan interkoneksi (links)
diantara neuron-neuron, karena pembobot pada suatu net berisi info yang amat
penting. Sebuah net yang memiliki satu layer dari hubungan pembobot-
pembobotnya, diantara unit-unit input dengan unitunit output disebut single-layer
neural network (Gambar 2.11).
Sedangkan, sebuah net dengan satu atau lebih hidden layer diantara unit -unit
input dengan unit-unit output dikenal dengan multilayer neural network (Gambar
2.12). Untuk beberapa kasus, mungkin multilayer lebih menguntungkan, tetapi pada
umumnya dengan satu layer saja sudah memadai untuk menyelesaikan berbagai
masalah.
Gambar 2.11 Singlelayer Neural Network
Sumber : Fausett.1997
Gambar 2.12 Multilayer neural network
Sumber : fausett.1997
II.6.3.4 JARINGAN SARAF TIRUAN PROPAGASI BALIK
Metode Neural Network atau Jaringan Saraf Tiruan (JST) yang akan
digunakan pada tugas akhir ini menggunakan algoritma Backpropagation. Aturan
belajar algoritma ini adalah menggunakan error atau ketidaksesuaian output dengan
target untuk koreksi bobotnya. Bobot di koreksi sampai error dapat diterima
(memenuhi toleransi yang kita berikan) atau sampai dengan jumlah epoch tertentu.
Prosedur pengajaran atau pembentukan bobot-bobot yang digunakan adalah
sebagaimana yang digunakan dalam pengajaran jaringan yang bersifat supervised
learning (pengajaran yang menggunakan target). Sehingga aturan ini memerlukan
pasangan output untuk tiap input yang akan diajarkan.
Dengan keadaan bobot awal random, tiap input dilewatkan ke bobot tersebut
dan di hasilkan output untuk saat itu. Output tersebut di bandingkan dengan target
yang diinginkan. Besar perbedaan yang terjadi digunakan sebagai faktor pengubah
pembobot yang menghubungkan input dengan output tersebut (Update wight).
Sehingga, dengan bobot yang baru akan mengarahkan output ke target yang
seharusnya. Proses perubahan bobot berdasarkan error ini dilakukan terus sampai
output yang di hasilkan sesuai dengan yang di targetkan, atau mempunyai error yang
dapat diterima. Logika umumnya adalah sebuah metode untuk meminimalisasi error
rata-rata total (gradient descent), yang dihitung oleh net (jaringan neuron).
Gambar 2.13 Gradient descent
Sumber : Astutik.2005 : 14
Tujuannya, yaitu melatih sistem jaringan untuk mencapai suatu
keseimbangan dalam merespon secara benar model input yang telah dilatihkan, dan
kemampuan untuk memberikan respon yang masuk akal bagi input yang mirip tetapi
tidak identik dengan input pada saat pembelajaran. Pada proses pengajaran,
diperlukan semua pola data input
yang akan diajarkan dan target yang telah di tentukan sebelumnya. Setiap pola yang
diinputkan akan diolah dan diproses melalui bobot yang ada, dan hasilnya
dibandingkan dengan data target yang diinginkan, kemudian dihitung error-nya
(ketidaksamaan hasil saat itu dengan hasil yang diinginkan). Dimana, error tersebut
diumpan-balikkan (backpropagation) kebobot yang menghubungkan layer tersebut
sebagai sinyal koreksi bobot, agar dengan bobot yang baru errornya berkurang
sampai dengan harga yang diterima.
Prinsip algoritma bacpropagation memiliki 3 fase, yaitu:
1. Fase feedforward pada pola input pembelajaran.
2. Fase kalkulasi dan backpropagation error yang didapat.
3. Fase penyesuaian bobot.
Arsitektur yang digunakan adalah jaringan perseptron lapis banyak (multi layer
perseptron), hal ini merupakan generalisasi dari arsitektur jaringan perseptron lapis
tunggal. Secara umum, algoritma jaringan ini memerlukan waktu pembelajaran yang
memang lambat, namun setelah pembelajaran selesai, aplikasinya akan memberikan
output yang sangat cepat dikarenakan faktor pembobot yang lebih baik..Berikut
adalah gambar arsitektur algoritma Backpropagation dengan banyak lapisan :
Gambar 2.14 Arsitektur Backpropagation
Sumber : Freeman.1991: 90
II.6.3.5 Fungsi Aktivasi
Fungsi aktivasi merupakan fungsi pengolah jumlahan data input menjadi
data output. Karakteristik pada fungsi aktivasi dari Backpropagation adalah
kontinyu, dapat diturunkan, dan tidak menurun secara monoton. Fungsi aktivasi
merupakan lengkung sigmoid, sebagaimana ditunjukkan oleh keterangan berikut.
Ada beberapa jenis fungsi aktivasi untuk algoritma backpropagasi:
1. Bipolar sigmoid
Bipolar sigmoid memiliki range dari (-1,1) dan didefinisikan :
............................................................................(2.5)
dan turunan fungsi adalah :
f '(x) = 0.5 [1 + f(x)][1 – f(x)] ..................................................................(2.6)
Ilustrasi fungsi di atas digambarkan :
Gambar 2.15 Bipolar sigmoid, range (-1,1)
Sumber : Astutik.2005 : 17
Fungsi bipolar sigmoid ini dapat juga dihasilkan dari :
……........…....................(2.7)
dengan turunan fungsi adalah :
h ' (x) = [1 + h(x)][1 – h(x)] ............................................................( 2.8)
2. Binary sigmoid
Binary sigmoid memiliki range dari (0,1) dan didefinisikan :
………………………………..............…(2.9)
dan fungsi turunannya adalah :
f '(x) = f(x).[1-f(x)] …………………....................……………….(2.10)
Ilustrasi fungsi di atas digambarkan :
Gambar 2.16 Binary sigmoid, range (0,1)
Sumber : Astutik.2005 : 18
Lengkung sigmoid secara relatif mendatar pada kedua ujungnya, dan
meningkat cepat pada pertengahannya. Ketika x kurang dari –3, f(x) mendekati 0,
ketika x lebih besar dari 3, f(x) mendekati 1. Kenyataannya, f(x) mendekati 1 secara
lurus sebagaimana x bertambah dan f(x) mendekati 0 secara lurus sebagaimana x
menjadi lebih besar dari harga negatif. Ada suatu transisi dari 0 ke 1 dimana x
secara perkiraan (-3 < x <3). Fungsi sigmoid menunjukkan semacam threshold yang
dibulatkan (dan
dapat diturunkan} terhadap fungsi step (gambar 2.17).
Gambar 2.17 Fungsi Step
Sumber : Astutik.2005 : 18
Setelah fungsi sigmoid dihitung, nilai resultan menjadi level pengaktifasi
unit tersebut. Nilai ini, dikirim sepanjang interkoneksi output. Nilai output yang
sama dikirim ke semua interkoneksi output.
Lapisan input unit adalah kasus khusus. Unit-unit ini tidak menunjukkan
jumlah pembobotan pada vektor inputnya. Kita pertimbangkan lapisan input sebagai
sebuah lapisan jaringan meskipun tidak menunjukkan jumlah pembobotan dan
perhitungan sigmoid.
Beberapa jaringan backpropagasi menerapkan sebuah unit bias sebagai
bagian tiap lapisan. Unit ini mempunyai nilai pengaktifan konstan berharga 1,
dimana tiap unit bias dihubungkan ke semua unit pada lapisan selanjutnya yang
lebih tinggi, dan pembobotan padanya diatur selama back-error propagation. Unit
bias memberikan masa konstan dalam jumlah pembobotan dari unitunit dilapisan
selanjutnya. Hasilnya kadangkala merupakan properti konvergensi (menuju target)
dari jaringan. Unit bias juga memberikan efek threshold pada tiap unit pada
targetnya, fungsi sigmoid (1). Ini ekivalen dengan translasi lengkung sigmoid pada
gambar 2.18, ke kiri atau ke kanan.
Gambar 2.18 Lengkung Sigmoid
Sumber : Astutik.2005 : 19
Sebagai contoh, anggap unit bias (v0) pada gambar 2.12
mempunyai nilai output 1 dan bobot :
c=vj0 ..............................................................................................(2.11)
dengan mengambil
. ……………………………......................……(2.12)
Maka z adalah jumlah masukan dari semua unit pada gambar 2.13 selain unit bias.
Jika unit bias memberi kontribusi konstanta c ke jumlah masukan unit j,
penjumlahan ini menjadi:
z+c ……………………………………………........................….(2.13)
Konstanta c mentranslansikan grafik ke kiri sejumlah c, kemudian menggerakkan
threshold lengkung sigmoid dari 0 ke –c. Dengan cara ini, unit bias memberikan
suatu threshold yang dapat diatur untuk tiap unit target. Threshold untuk unit j
kemudian diambil dari nilai vj0, bobot interkoneksi dari unit bias.
II.6.3.6 Pembelajaran/ Pelatihan
Pada JST, belajar adalah proses pembentukan konfigurasi harga-harga bobot
dari jaringan. Pembentukan ini memiliki tujuan akhir agar input-input yang
diberikan padanya akan direspon melalui bobot-bobot tersebut sehingga
menghasilkan output yang sesuai dengan target atau mendekati, untuk input yang
bersangkutan. Terdapat banyak cara di dalam proses pembelajaran dari JST, secara
umum dapat dikategorikan dalam 2 jenis proses, yaitu :
• Supervised training (Pembelajaran Dengan Pengawasan)
Pada tipe belajar dengan pengawasan, tiap pola input memiliki pola target.
Sehingga pada pembelajaran tipe ini, masing-masing input memiliki pasangan
output yang bersesuaian. Pada proses belajarnya, bobot-bobot dibangun menuju
kesesuaian respon pasangan input-output dari pola yang diajarkan, yaitu tiap
diberikan pola input yang diajarkan, pembobotnya dapat memberikan respon dan
menghasilkan pola output
yang sesuai dengan target dari pola input tersebut. Dalam hal ini, dapat diterapkan
toleransi kesalahan output respon terhadap target yang seharusnya. Error digunakan
untuk mengubah bobot sambungan sehingga kesalahan akan semakin kecil dalam
siklus pelatihan berikutnya. Pada tugas akhir ini akan digunakan tipe pembelajaran
di atas.
• Unsupervised training (Pembelajaran Tanpa Pengawasan)
Algoritma ini tidak membutuhkan vektor target untuk keluarannya, sehingga
tidak ada perbandingan untuk menentukan respon yang ideal. Kumpulan pola
pelatihan hanya terdiri dari vektor masukan dan, algoritma pelatihan berfungsi
sebagai pengubah/update pembobot (weight) jaringan untuk menghasilkan pola
vektor, sehingga penerapan 2 vektor pelatihan suatu vektor lain yang cukup sejenis
menghasilkan pola keluaran yang sama. Dalam proses pelatihan, jaringan
mengklasifikasikan pola-pola masukan menjadi kelompok yang sejenis. Penerapan
suatu vektor dari suatu kelas tertentu pada masukannya akan menghasilkan vektor
keluaran yang spesifik, namun tak ada cara untuk menentukan terlebih dahulu pada
pelatihannya, yang akan menghasilkan pola keluaran tertentu dengan satu vektor
masukan dari kelas tertentu.
II.6.3.7 Algoritma Pembelajaran
Algoritma pembelajaran backpropagation terdiri dari tiga tahap, yaitu
feedforward dari pola pelatihan input, backpropagation dari errornya, serta
adjustment of the weights. Algoritma Pembelajaran sebagai berikut :
Step 0. Inisialisasi pembobot (set ke nilai-nilai kecil secara acak/random)
Step 1. Saat kondisi pemberhentian false, kerjakan langkah 2-9
Step 2. Untuk tiap-tiap pasangan pelatihan, kerjakan step 3-8
Feedforward:
Step 3. Tiap input unit (Xi , i = 1……n) menerima sinyal input xi dan
mengirimkan sinyal ini ke semua unit-unit pada layer di atasnya
(hidden units).
Step 4. Tiap hidden unit (Zj , j = 1…..p) menjumlahkan sinyal-sinyal input
pembobotnya,
..........................................
..................(2.14)
menerapkan fungsi aktifasi, menghitung sinyal output:
z j = f(z_inj), ........................................................................(2.15)
dan mengirimkan sinyal ini ke semua unit-unit pada layer di atasnya
(output units).
Step 5. Tiap output unit (Yk, k = 1……..m) menjumlahkan sinyal-sinyal input
pembobotnya,
y_in k = wok + zjwjk, .................................................(2.16)
menerapkan fungsi aktivasi, dan menghitung sinyal outputnya :
y k = f(y_ink). ......................................................................(2.17)
Backpropagation of error :
Step 6. Tiap output unit (Yk, k = 1……..m) menerima suatu pola target yang
bersesuaian dengan pola pelatihan input, menghitung batas informasi
errornya,
δ k = (tk – yk)f ′___ (y_ink), ……...……………………...(2.18)
serta mengkalkulasi batas koreksi pembobotnya(digunakan untuk
update wjk selanjutnya),
∆wjk = αδkzj, …………………………………………….(2.19)
mengkalkulasi batas koreksi biasnya (digunakan untuk meng update
w0k selanjutnya),
∆w0k = αδk, ………………………………………….…..(2.20)
dan mengirimkan δk pada unit-unit layer di bawahnya.
Step 7. Tiap-tiap hidden unit (Zj, j = 1……p) menjumlahkan delta input-
inputnya (dari unit-unit layer diatasnya),
δ_inj = δkwjk,
………………………………………..(2.21)
mengalikan dengan turunan dari fungsi aktivasinya untuk
mengkalkulasi batas informasi errornya,
δj = δ_inj f ′(z_inj), …………………………………………..(2.22)
mengkalkulasi batas koreksi pembobotnya (digunakan untuk meng
update vij kemudian),
∆vij = αδjxi, …..………………………………………………(2.23)
dan mengkalkulasi batas koreksi biasnya (digunakan untuk meng
update v0 j selanjutnya),
∆v0j = αδj, ………………...............................................…….(2.24)
Update weights and biases :
Step 8. Tiap output unit (Yk, k = 1……m) mengupdate bias danpembobot-
pembobotnya (j = 0…..p) :
wjk(new) = wjk(old) + ∆ wjk, ………………………………..(2.25)
Tiap hidden unit (Zj, j=1…..p) meng update bias dan pembobot-
pembobotnya (i = 0……n) :
vij(new) = vij(old) + ∆vij, ……………………………..…….(2.26)
Step 9. Uji kondisi pemberhentian
II.6.3.8 Faktor-faktor Pembelajaran
Parameter-parameter yang turut menentukan keberhasilan proses belajar
pada algoritma backpropagation adalah :
Inisialisasi pembobot dan bias
Pemilihan nilai awal untuk pembobot merupakan faktor yang mempengaruhi
kecepatan suatu net untuk mencapai kondisi output yang mendekati target
(konvergensi). Nilai pembobot yang terlalu besar menyebabkan nilai output dari
output unit jatuh pada daerah saturasi, sedangkan nilai pembobot yang terlalu kecil
menyebabkan net menjadi sangat lambat untuk belajar.Pembobot bisa diinisialisasi
secara random dengan nilai batasan antara –0.5 sampai 0.5, atau -1 sampai 1.
Adaptasi pembobot
Ada 2 macam jenis adaptasi pembobot,yaitu:
1. Adaptasi kumulatif (comulatif weight adjustment) Pembobot baru diadaptasi
setelah semua pembobot masuk.
2. Adaptasi biasa (incremental updating)Pembobot diadaptasi pada setiap pola
yang masuk.
Learning rate (α)
Parameter kecepatan belajar sangat mempengaruhi intensitas dalam proses
belajar, efektivitas dan konvergensi dari pelatihan. Harga optimum dari α
tergantung dari masalah yang dihadapi. Intinya, dipilih sedemikian rupa agar
tercapai konvergensi yang optimal dalam proses pelatihan. Harga α yang relatif
kecil menjamin penurunan gradien terlaksana dengan baik, namun hal ini berakibat
lamanya jumlah iterasi. Harga batasan untuk α antara 0.001 sampai 10 untuk proses
belajar.
Momentum ( µ )
Tujuan metode ini adalah untuk mempercepat konvergensi dari algoritma
error backpropagation. Prinsip dari metode ini adalah menambahkan sebagian dari
perubahan pembobot sebelumnya. Hal ini dapat dirumuskan dengan :
∆w(t) = α E(t) + µ∆w(t-1)…………………....................................(2.27)
dengan µ adalah harga konstanta momentum yang berupa bilangan positif antara 0.5
sampai dengan 0.9. Penggunaan momentum ini disarankan apabila konvergensi
berlangsung terlalu lama.
Parameter-parameter yang telah dijelaskan di atas dapat membantu proses
algoritma backpropagasi error agar lebih cepat mencapai keadaan konvergensi.
Maka, JST Backpropagasi dilatih secara terpadu (supervised) dengan menggunakan
algoritma GDR (Generalized Delta Rule) yang menyertakan parameter-parameter di
atas dengan langkah sebagai berikut:
1. Inisialisasi iterasi N=1.
2. Inisialisasi matriks bobot wij dengan bilangan random, ataunilai yang
didapat sebelumnya.
3. Masukkan pola input dan hitung respon JST.
4. Hitung error output, dengan rumus :
………………...…….....................................……(2.28)
dimana:
t = target output.
o = keluaran dari jaringan neural network.
5. Jika E ≤ Et (threshold) atau N ≥ Nmak stop training.
Hitung output neuron, dengan rumus:
δo=(t-o).f ’(x)……………………...................................................…(2.29)
dimana:
f‘(x) = turunan fungsi sigmoid.
X = input neuron, total output dari hidden layeryang terkoneksi.
6. Hitung keluaran hidden layer, dengan rumus:
hj=f ‘(x). ……........................(2.30)
dimana :
n = jumlah neuron pada output layer.
Wnj = bobot koneksi dari neuron j ke neuron n.
n = keluaran dari neuron output
7. Update matrik bobot wij dengan rumus:
∆wij(n+1) = α. j.oj + µ.∆wji(n)…….................…(2.31)
dimana:
α = laju pembelajaran (learning rate)
µ = parameter momentum
oj = output neuron i yang masuk ke neuron j
= keluaran dari neuron hidden.
8. Naikkan harga N, kembali ke langkah 3 hingga selesai jika langkah 5
terpenuhi.
Training dilakukan sampai error melampaui ambang toleransi atau jumlah
training telah mencapai harga yang telah ditentukan. Setelah training selesai
dilakukan dengan ambang toleransi telah dicapai atau dilampaui, matrik bobot wij
dipakai untuk menentukan jalur yang paling ekonomis. Sedangkan untuk mengecek
hasil dari training
tersebut digunakan data yang digunakan pada saat training terpadu, jika
menghasilkan keluaran yang benar, maka pada proses training berhasil.
Fase Pemakaian
Pada fase pemakaian, pola yang hendak dikenali dimasukkan pada node
layer masukan jaringan. Inisialisasi pembobot sambungan diambil dari nilai
pembobot sambungan terakhir pada tahap belajar yang dianggap terbaik. Pada fase
ini, jaringan (backpropagation neural network) diterapkan hanya dengan
penggunaan fase umpan maju (feedforward) dari algoritma pelatihan. Prosedurnya
sebagai berikut :
Step 0 Inisialisasi pembobot (dari pembobot terakhir saat pelatihan)
Step 1 Untuk tiap-tiap vektor input , kerjakan langkah 2-4
Step 2 For i = 1……n : set aktivasi dari input unit xi .
Step 3 For j = 1…..p :
z_inj = voj + ∑ xivij………………………....................................…(2.32)
z j = f(z_inj)…………………………...………………………..……(2.33)
mengirimkan sinyal ini ke semua unit-unit pada layer di atasnya, output
(units).
Step 4 For k = 1……..m) :
y_in k = wok + zjwjk……...................................................…...(2.34)
menerapkan fungsi aktivasi menghitung sinyal outputnya
y k = f(y_ink)…………………………...........(2.35)
II.6.3.9 Permasalahan dalam Bacpropagation
Gambar 2.19 Kesalahan pada Local Minimum
Sumber : Freeman.1991 : 106
Pemasalahan yang mungkin terjadi dalam pelatihan bacpropagation dan
beberapa model jaringan saraf tiruan lainnya adalah saat pelatihan, output terjebak
dalam local minimum sehingga proses pelatihan tidak akan mencapai global
minimum, seperti yang ditunjukkan pada gambar 2.16. diatas.
II.7 Metodologi Penelitian
Langkah-langkah yang dilakukan dalam pembuatan aplikasi ini adalah :
1. Studi literatur mengenai retina dan berbagai penyakit mata yang diakibatkan
oleh Diabetes Melitus.
2. Penentuan kebutuhan dan perancangan aplikasi
Menentukan bahan dalam pembuatan aplikasi
Data :
Data yang digunakan adalah citra retina hasil foto Fundus yang diambil dari
Rumah Sakit Dr. Saiful Anwar Malang dengan format .bmp.
Analisa Kebutuhan
Aplikasi ini dikembangkan dengan metode analisis berorientasi objek berupa
UML dengan tool bahasa pemrograman Java.
Dari analisa kebutuhan awal yang telah dilakukan maka diteruskan dengan
pembuatan rancangan awal aplikasi dalam bentuk Use Case Diagram aplikasi
Gambar 2.20 Contoh Use Case Diagram
Perancangan Perangkat Lunak
Perancangan perangkat lunak dilakukan dengan orientasi terhadap objek
menggunakan UML. Dari diagram use case dibuat diagram activity, yang
menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang,
bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan
bagaimana mereka berakhir.
3. Implementasi Rancangan
Implementasi rancangan dilakukan dengan menggunakan aplikasi Java dan
dibagi menjadi dua tahap, yaitu:
- Pembuatan unit, untuk setiap kelas, objek, dan interface yang telah
dirancang sebelumnya.
- Integrasi unit, yang dilakukan setelah setiap unit telah dibuat sebelumnya.
Tahap implementasi dilakukan berurutan atau secara perulangan dengan
mengacu kepada analisis kebutuhan dan perancangan aplikasi.
Gambar 2.21 Contoh Activity Diagram
4. Pengujian dan Analisis Aplikasi
Pengujian aplikasi untuk mengetahui apakah aplikasi yang telah dibuat dapat
berjalan sesuai dengan fungsi yang diinginkan sebelumnya. Pengujian aplikasi
dilaksanakan dalam beberapa tahap, yakni :
- Pengujian Kotak Putih (White Box Testing), dengan menggunakan kelas
dummy dari kelas-kelas yang digunakan, untuk mengetahui apakah algoritma
yang digunakan telah bekerja dengan benar.
- Pengujian Kotak Hitam (Black Box Testing), untuk mengetahui apakah
semua kebutuhan telah terpenuhi.
- Pengujian terhadap data, dimana pengujian akan dilaksanakan untuk 20 data,
10 data citra Retinopati Diabetes dan 10 data citra retina normal untuk
mengetahui perbedaan pola diantara keduanya.
- Strategi pengujian meliputi Pengujian Unit, Pengujian Terintegrasi dan
Pengujian Validasi.
II.8 Sistematika Penulisan
Dalam penulisan tugas akhir ini untuk mendapat hasil yang sesuai dengan
sasaran yang ingin dicapai maka digunakan sistematika penulisan sebagai berikut :
BAB I memuat tentang latar belakang, rumusan masalah, ruang lingkup,
tujuan, dan sistematika penulisan.
BAB II memuat tentang teori dasar dan teori penunjang mengenai
pengolahan citra dan Jaringan Syaraf Tiruan Backpropagation.
BAB III membahas tentang perancangan dan pembuatan aplikasi Jaringan
Syaraf Tiruan untuk identifikasi pola citra retina dengan menggunakan Java.
BAB IV membahas tentang simulasi dan pengujian identifikasi pola citra
retina dengan metode Backpropagation.
BAB V berisi tentang kesimpulan dan saran yang didapatkan selama proses
perencanaan dari sistem serta rencana pengembangan dari proyek akhir
dimasa yang akan datang.
III. Daftar Pustaka
[AST-06] Astutik, Wahyu Sri. 2006. Proyek Akhir Pengenalan Osteoporosis
Melalui Pola Iris Mata. Surabaya : Jurusan Teknik Elektronika
POLTEK ITS.
[BAS-05] Basuki, Achmad .2005. Pengolahan Citra Digital.
Yogyakarta :Graha Ilmu.
[BOS-96] Bose, N.K., Liang, P. 1996. Neural Network Fundamentals with
Graphs, Algorithms, and Applications. Singapore : McGraw Hill.
[CSU-06] http://www.cs.ui.ac.id/WebKuliah/citra/2005. tanggal akses : 21
Desember 2006.
[DEW-03] Dewi, Sri Kusuma. 2003. Artificial Intelligence (Teknik dan
Aplikasinya). Yogyakarta : Graha Ilmu.
[DEP-07] http://www.depkes.go.id/index.php?option=news&task=viewarticle
&sid=1183&Itemid=2. tanggal akses : 21 Maret 2007
[DJU-07] Djuwantoro, Dy-ri. Deteksi Dini Kebutaan akibat Diabetes Melitus
di Puskesmas. www.kalbefarma.com/files/cdk/files/16Deteksi
DiniKebutaan95.pdf/16DeteksiDiniKebutaan95.html. tanggal akses:
12 Maret 2007.
[FAU-97] Fausett, L. 1997. Artificial Neural Network, McGRAW-HILL INT.
[FIK-05] Fikri, Rijalul, Adam, Ipam Fuadina, Prakoso, Imam. 2005.
Pemrograman Java. Yogyakarta : ANDI.
[FRE-91] Freeman, James A., Skapura, David M. 1991. Neural Networks
Algorithms, Applications, and Programming Techniques. United
States of America : Addison-Wesley Publishing Company, Inc.
[ILY-05] Ilyas, Sidarta. 2005. Kedaruratan Dalam Ilmu Penyakit Mata.
Jakarta : Balai Penerbit Fakultas Kedokteran Universitas Indonesia.
[JAH-97] Jahne, Bernd.1997. Digital Image Processing Concepts, Algorithms,
and Scientific Applications. Berlin, Germany : Springer.
[KRI-04] Kristanto, Andri. 2004. Jaringan Syaaf Tiruan: Konsep Dasar,
Algoritma, dan Apilkasi. Yogyakarta :Gava Media.
[LEC-06] http://lecturer.eepis-its.edu/~riyanto/citra-bab8.pdf. tanggal akses : 21
Desember 2006.
[WIK-06] http://en.wikipedia.org/wiki/Sobel. tanggal akses : 21 Desember 2006.