PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN
ALGORITMA WANG – ZHANG
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh:
Andreas Andre Marwadi
065314038
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN
ALGORITMA WANG – ZHANG
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh:
Andreas Andre Marwadi
065314038
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010
THINNING IMAGE OF JAVANESE CHARACTER USING
WANG-ZHANG ALGORITHM
A Thesis
Presented as a Partial Fullfillment of The Requirements to Obtain The Sarjana Teknik Degree
in Informatics Engineering Study Program
Oleh:
Andreas Andre Marwadi
065314038
INFORMATICS ENGINEERING STUDY PROGRAM
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
iii
vi
Abstrak
Penelitian ini berfokus kepada proses penipisan citra Aksara Jawa dengan menggunakan Algoritma Wang-Zhang dan melakukan analisa rangka hasil penipisan. Tujuan dilakukannya penipisan adalah untuk mendapatkan kerangka citra digital yang sering dianggap sebagai informasi esensial sebuah obyek yang berguna untuk analisa lebih lanjut seperti pengenalan karakter. Analisa rangka citra Aksara Jawa dilakukan dengan beberapa kriteria tertentu dan pengamatan visual dimana Algoritma Zhang-Suen yang akan digunakan sebagai pembanding.
Penelitian dilakukan dengan menganalisa citra rangka yang dihasilkan oleh penipisan menggunakan Algoritma Wang-Zhang menurut beberapa parameter, yaitu connectivity, one point thickness / ketebalan 1 piksel, kecepatan proses penipisan, persentase jumlah piksel yang dihapus, pengurangan ukuran file, dan kompleksitas waktu Algoritma. Selain itu dilakukan juga pengujian untuk mengukur kemiripan citra hasil penipisan dengan citra asli dengan cara menyebarkan kuisioner terhadap 50 orang responden, dimana Algoritma Zhang-Suen sebagai pembanding. Dipilihnya Algoritma Zhang-Suen karena Algoritma ini telah diujikan oleh Margaretha Kurnianita dan menghasilkan rangka yang lumayan baik ketika diaplikasikan ke citra Aksara Jawa.
Hasil pengujian yang dilakukan terhadap 60 citra hasil penipisan Aksara Jawa dengan menggunakan Algoritma Wang-Zhang diketahui bahwa citra rangka hasil penipisan Aksara Jawa memenuhi syarat connectivity. Algoritma Wang-Zhang memiliki rata-rata ketebalan 1 piksel sebesar 98,28%, relatif lebih baik dibandingkan dengan Algoritma Zhang-Suen yang memiliki rata-rata ketebalan 1 rangka sebesar 90,26%. Algoritma Wang-Zhang memiliki kecepatan rata-rata proses penipisan sebesar 0,06 second, hal ini lebih lambat dibandingkan dengan Algoritma Zhang-Suen yang memiliki kecepatan rata-rata sebesar 0,02 second. Persentase rata-rata jumlah piksel yang dihapus sebesar 83,80% relatif lebih baik dibandingkan dengan Algoritma Zhang-Suen yang persentase penghapusannya hanya 82,08%. Berdasarkan pengurangan ukuran file, Algoritma Wang-Zhang memiliki persentase rata-rata sebesar 90,13%, hal ini lebih kecil dibandingkan dengan Algoritma Zhang-Suen yang memiliki persentase 90,39%. Sedangkan untuk pengukuran kompleksitas waktu asimptotik, kedua Algoritma memiliki hasil yang sama baiknya, yaitu O(n3) atau termasuk kategori polinomial, dengan demikian kedua Algoritma tergolong algoritma yang mangkus. Dari segi pengamatan visual terhadap hasil proses penipisan dilakukan dengan menyebar kuisioner terhadap 50 responden untuk melakukan penilaian kemiripan 40 citra Aksara Jawa hasil penipisan dengan citra asli. Hasil pengamatan visual menyatakan 56,60% tingkat kemiripan citra rangka hasil penipisan Algoritma Wang-Zhang terhadap citra asli. Sedangkan hasil kemiripan citra asli menggunakan Algoritma Zhang-Suen 54,69%. Hal ini menunjukkan bahwa tingkat kemiripan Algoritma Wang-Zhang lebih baik dibandingkan dengan Algoritma Zhang-Suen. Berdasarkan tinjauan di atas, maka dapat disimpulkan bahwa Algoritma Wang-Zhang relatif baik untuk melakukan penipisan citra Aksara Jawa.
Abstract
This research focuses on the process of image thinning uses Wang-Zhang algorithm and analysis of generated Javanese character skeleton. Thinning aims to reduce unnecessary part of pattern leaving until the skeleton is deemed to represent an object without changing the original pattern, so it can be used for further processing such as Javanese character recognition. Similarity analysis of the Javanese character image which is generated using by the zhang suen algorithm done by several testing based on certain criteria and visual observations. The analysis done by comparing the original image with the skeleton generated from zhang suen and hilditch thinning algorithm.
This research was done by analyzing skeleton image with was produced by Wang-Zhang algorithm. It was according several parameters such as: connectivity, one point thickness, running time, percentage of removed pixels, decrease image size, and complexity algorithm. Besides, questionnaires as the instrument as this research were also distributed to 50 respondents to observe resemblence of the result with the original images, with Zhang-Suen algorithm was use to compare, in as much as this algorithm tested by Margaretha Kurnianita and produced skeletons with good quality when applied in Javanese character.
The test’s result of 60 Javanese characters, it produced the result that skeleton images using Wang-Zhang algorithm fullfiled connectivity rule. It algorithm had one point thickness accuration 98,28% , its better than Zhang-Suen Algorithm which had mean accuration 90,26%. Wang-Zhang algorithm had thinning rapidity 0,06 second, its worse than Zhang-Suen algorithm which had rapidity 0,02 second. Its had percentage of removed pixel 83,80% that relative better than Zhang-Suen algorithm which had 82,08%. Based on input output file size of Wang-Zhang algorithm after thinning was decreased 90,13%, its smaller than percentage of Zhang-Suen algorithm which decreased 90,39%. Both of algorithms are equally a good algorithm in algorithm time complexity was O(n3) or included in the category of polynomial algorithm, the both algorithm were effective algorithm. Visual obeservation result of 50 questionnaire respondent, to compared 40 result of thinning image with the original image of Javanese character. Its result Wang-Zhang algorithm had similarity 56,60% and 54,69% for the Zhang-Suen algorithm. It show the Wang-Zhang algorithm had a better level of similarity than Zhang-Suen algorithm. From all of experimental above, Wang-Zhang algorithm good to applied in Javanese charater.
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa, atas segala rahmat dan
anugrah yang telah diberikan, sehingga penulis dapat menyelesaikan Tugas Akhir
“Penipisan Citra Aksara Jawa Menggunakan Algoritma Wang-Zhang” ini dengan baik.
Dalam menyelesaikan tugas akhir ini, penulis tidak lepas dari bantuan
sejumlah pihak, oleh sebab itu penulis ingin mengucapkan terima kasih kepada:
1. Bapak dan Ibu, adik-adik tercinta atas diberikannya dukungan dan
kesempatan dalam mengerjakan tugas akhir ini.
2. Anastasia Rita Widiarti, S.Si., M.Kom., selaku pembimbing tugas
akhir atas kesabarannya dalam membimbing penulis, memberikan
waktu, dukungan dan saran yang membantu penulis untuk
menyelesaikan tugas akhir ini.
3. Pacar saya, Elisabeth Grani Larasati beserta keluarga, telah membantu
dan memberi dukungan terhadap penulis untuk mengerjakan tugas
akhir ini.
4. Seluruh teman TI angkatan 2006, Martinus Prima, Alim Untung S.T.,
Asteria Indah S.T., Kartono S.T., dan lainnya, serta anak-anak kos
Bunga yang selalu memberi semagat dan penghiburan dalam proses
pengerjaan tugas akhir ini.
x
5. Responden kuisioner, atas kerjasama dan waktunya untuk membantu
dalam pengamatan visual.
6. Sr. Vincenti .OSF beserta anak asrama Denpasar, atas doa untuk saya
dalam keberhasilan pengerjaan tugas akhir ini.
7. Serta semua pihak yang telah membantu kelancaran dalam penulisan
tugas akhir ini, baik secara langsung atau tidak langsung. Penulis
mengucapkan banyak terima kasih.
Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada
laporan tugas akhir ini. Saran dan kritik sangat penulis harapkan untuk
perbaikan-perbaikan dimasa yang akan datang. Akhir kata, penulis berharap tulisan ini
bermanfaat bagi kemajuan dan perkembangan ilmu pengetahuan serta berbagai
pengguna pada umumnya.
Yogyakarta, … Desember 2010
MOTTO
O
I
m
d
Ini adalah k
menjadi berb
dapat membe
karya tulis
beda untuk
eri saya mot
kedua saya,
hidup yang
tivasi untuk
, setelah bu
saling melen
k menulis lag
uku ‘ isolasi,
ngkapi ’. S
gi.
i, dimana kit
Semoga kary
ta harus bis
ya tulis ini
Edu
ucation Trruthfull R
xi
Religion/Relalation Opttimist X-treme
DAFTAR ISI
LEMBAR JUDUL ….………. i
HALAMAN PERSETUJUAN PEMBIMBING ………. iii
HALAMAN PENGESAHAN ……….. iv
PERNYATAAN KEASLIAN KARYA ……… v
LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH ..………. vi
ABSTRAK ……… vii
ABSTRACT ………..……….. viii
KATA PENGANTAR ……… ix
HALAMAN MOTO ………. xi
DAFTAR ISI ……….. xii
DAFTAR GAMBAR ………xvii
DAFTAR TABE L……… xxi
BAB I : PENDAHULUAN ………. 1
1.1 Latar Belakang ……… 1
1.2 Rumusan Masalah ……….. 3
1.3 Tujuan Penelitian ……… 3
1.4 Batasan Masalah ………. 4
1.5 Metodologi Penelitian ……… 4
1.6 Sistematika Penulisan ……… 6
xii
BAB II : LANDASAN TEORI ……….. 8
2.1 Citra ………. 8
2.2 Binerisasi ………. 11
2.3 Penipisan ………. 12
2.4 Algoritma Penipisan Wang-Zhang ………. 12
2.4.1 Analisa Algoritma Penipisan ………... 20
2.4.1.1 Connectivity ……….. 20
2.4.1.2 One Point Thickness ………. 20
2.4.1.3 Analisa Menurut Jang & Ching ……… 22
2.4.2 Kompleksitas Waktu ……… 26
2.4.2.1 Kompleksitas Waktu Asimptotik ………. 27
2.6 Aksara Jawa ……… 34
2.7 Bahasa Pemrograman Matlab ………. 35
BAB III : ANALISA DAN PERANCANGAN SISTEM ……… 36
3.1 Analisa Sistem ……… 36
3.1.1 Gambaran Umum Sistem ……… 36
3.1.2 Analisa Kebutuhan Sistem ……….. 37
3.1.2.1 Data ……… 37
3.1.2.2 Analisa Kebutuhan Hardware – Software ……….. 38
3.2 Perancangan Sistem ………. 39
3.2.1 Rancangan Proses Sistem ……….. 39
3.2.1.1 Binarisasi ……… 40
xiii
3.2.1.2 Penipisan ……… 41
3.2.2 Perancangan Pengujian Sistem ………. 46
3.2.2.1 Pengamatan Ukuran Citra ……….. 46
3.2.2.2 Sum of Template A dan Sum of Not Critical Point ……… 46
3.2.2.3 One Point Thickness ……….. 49
3.2.2.4 Sum of Pixel Object ……….. 51
3.2.2.5 Sum of Removal Pixel ………... 52
3.2.2.6 Running Time ……… 54
3.2.2.7 Connectivity ……….. 55
3.2.2.8 Waktu Asimptotik ……… 55
3.3 Perancangan tampilan Antarmuka ………. 55
3.3.1 Rancangan Halaman Utama ………. 55
3.3.2 Rancangan Halaman Open File ……… 56
3.3.3 Rancangan Halaman Save File ……… 57
3.3.4 Rancangan Menu Bar ……… 58
3.3.5 Rancangan Halaman About Algorithm ………. 59
3.3.6 Rancangan Halaman About Program ……….. 59
3.3.7 Rancangan Halaman Help ………. 60
3.3.8 Rancangan Halaman Konfirmasi dan Peringatan ………. 61
BAB IV : IMPLEMENTASI ……… 62
4.1 Implementasi Algoritma Wang-Zhang ………. 62
4.2 Implementasi Binerisasi ……… 70
xiv
4.3 Implementasi Pengujian ……… 70
4.3.1 Implementasi Pengamatan Ukuran Citra ………. 71
4.3.2 Implementasi Sum of Template A dan Sum of Not Critical Point 71 4.3.3 Implementasi One Point Thickness ……… 72
4.3.4 Implementasi Sum of Pixel Object ………. 72
4.3.5 Implementasi Sum of Removal Pixel ……….. 73
4.3.6 Implementasi Running Time ……… 73
4.3.7 Implementasi Connectivity ……….. 73
4.3.8 Implementasi Kompleksitas Waktu Asimptotik ………... 74
4.3.9 Implementasi Pengamatan Visual ………... 74
4.4 Implementasi User Interface ………. 75
4.4.1 Implementasi Halaman Utama ……….. 75
4.4.2 Implementasi Halaman Open File ……… 77
4.4.3 Implementasi Halaman Save File ………. 78
4.4.4 Implementasi Halaman Menu Bar ……….. 78
4.4.5 Implementasi Halaman About Algorithm.………. 80
4.4.6 Implementasi Halaman About Program ……… 80
4.4.7 Implementasi Halaman Help ………. 81
4.4.8 Implementasi Halaman Konfirmasi dan Peringatan ……… 82
BAB V : HASIL DAN PEMBAHASAN ……… 84
5.1 Analisa Citra Hasil Penipisan ……….. 84
5.1.1 Pengamatan Ukuran Citra……….. 89
xv
xvi
5.1.2 Pengamatan Sum of Removal Pixel ……… 92
5.1.3 Pengamatan Running Time (Waktu Komputasi)………... 94
5.1.4 Pengujian One Point Thickness ……… 96
5.1.5 Pengujian Connectivity ……… 101
5.1.6 Pengamatan Visual ……… 105
5.1.7 Penghitungan Kompleksitas Waktu Asimptotik ……….. 110
5.2 Perbandingan Hasil Algoritma Wang-Zhang dengan Algoritma Zhang-Suen ………. 112
BAB VI : PENUTUP ………. 115
6.1 Kesimpulan ………. 115
6.2 Saran ……… 117
DAFTAR PUSTAKA ……….. 118
DAFTAR GAMBAR
Gambar 2.1 : (a) Citra biner (b) Representasi citra biner dalam data digital ……. 9
Gambar 2.2 : Representasi citra keabuan ………... 10
Gambar 2.3 : Representasi citra warna ………... 10
Gambar 2.4 : (a) gambar citra sebelum proses penipisan (b) gambar citra setelah proses Penipisan ……… 12
Gambar 2.5 : notasi titik 8 ketetanggaan dari piksel (i,j) ………... 13
Gambar 2.6 : gambar citra “Y” (Wang dan Zhang, 1989) …………... 15
Gambar 2.7 : B(p)=0 (-,2008) ………... 17
Gambar 2.8 : B(p)=1 (-,2008) ………... 17
Gambar 2.9 : Transisi pola on-off pada piksel searah jarum jam (Wang dan Zhang, 1989) ………. 18
Gambar 2.10 : kemungkinan jumlah A(p) ………... 18
Gambar 2.11 : Pseudocode algoritma Wang-Zhang (Wang dan Zhang, 1989)………... 19
Gambar 2.12 : Struktur template A ………... 21
Gambar 2.13 : Struktur template B dan C ………... 21
Gambar 2.14 : (a) 4-neighbors dan 8-neighbors dan titik p (b) koordinat 4-neighbors dan 8-neighbors dari titik p ………... 22
Gambar 2.15 :4-path dan 8-path πn(x,y) ………... 23
xvii
Gambar 2.16 : (a) citra T. (b) 4-connected component dan 8-connected component dari S dan Sc adalah 4-connected (c) 8- connected component dan 8-
connected component dari S dan Sc adalah 4-connected …... 24
Gambar 2.17 : (a) citra T, yang memuat anggota S (b) border dari S. (c) interior dari S ………. 25
Gambar 2.18 : (a) citra T yang memuat anggota S (b) background dari S. (c) holes dari S. ……….… 26
Gambar 2.19 : Aksara Jawa (Warsito, 2002) ………... 34
Gambar 3.1 : Diagram konteks dari sistem yang dirancang ……… .. 37
Gambar 3.2 : DAD Level 1 ………... 39
Gambar 3.3 : Proses Binerisasi ………... ... 40
Gambar 3.4 : Proses Penipisan ………... 41
Gambar 3.5 : Diagram alir proses penipisan menggunakan Algoritma Wang-Zhang secara keseluruhan (bagian 1) ………... 43
Gambar 3.6 : Diagram alir proses penipisan menggunakan Algoritma Wang-Zhang secara keseluruhan (bagian 2) ……….. 44
Gambar 3.7 : pengujian Sum Template A dan Sum of Not Critical Point ……... 48
Gambar 3.8 :One Point Thickness ………... 50
Gambar 3.9 : Sum of pixel object ………... 51
Gambar 3.10 :Sum of removal pixel ……….. 53
Gambar 3.11 :Running time ………...… 54
Gambar 3.12 : Rancangan Halaman Utama ………... 56 xviii
Gambar 3.13 : Rancangan Open File ………... 57
Gambar 3.14 : Rancangan Save File ………... 57
Gambar 3.15 : Rancangan menu bar file ………... 58
Gambar 3.16 : Rancangan menu bar about ………... 58
Gambar 3.17 : Rancangan halaman about algorithm ………... 59
Gambar 3.18 : Rancangan halaman about Program ………... 60
Gambar 3.19 : Rancangan halaman Help ………... 60
Gambar 3.20 : Rancangan konfirmasi ………... 61
Gambar 3.21 : Rancangan peringatan ………... 61
Gambar 4.1 : Implementasi Halaman Utama ………... 77
Gambar 4.2 : Implementasi Halaman Open File ………... 77
Gambar 4.3 : Implementasi Halaman Save File ………...…. 78
Gambar 4.4 : Implementasi Menu File ………... 79
Gambar 4.5 : Implementasi Menu About ………... 79
Gambar 4.6 : Implementasi Menu Help ………... 79
Gambar 4.7 : Implementasi Halaman About Algorithm ………... 80
Gambar 4.8 : Implementasi Halaman About Program ………... 81
Gambar 4.9: Implementasi Halaman Help ………...81
Gambar 4.10 : Implementasi Halaman Konfirmasi ………82
Gambar 4.11 : Implementasi Halaman Konfirmasi ……… 82
Gambar 4.12 : Implementasi Halaman Konfirmasi ……… 82
Gambar 4.13 : Implementasi Halaman Peringatan ……….... 83 xix
xx
Gambar 4.14 : Implementasi Halaman Peringatan ……… 83
Gambar 5.1 : Analisa Ketebalan Rangka Citra “WA3.jpg” ……… 100
Gambar 5.2 :component Rangka Huruf “WA_3.JPG” ……… 103
Gambar 5.3 :component Rangka yang Terdapat pada Citra Asli Huruf
“WA_3.JPG” ………. 104
Gambar 5.4 : Kondisi dimana algoritma Wang-Zhang gagal melakukan
DAFTAR TABEL
Tabel 2.1 : Pengelompokan algoritma berdasarkan notasi O-Besar ……… 33
Tabel 5.1 : Rangka Hasil Penipisan Algoritma Wang-Zhang Menggunakan Citra Asli hasil Binerisasi ……….... 84
Tabel 5.2 : Perbandingan Ukuran File Citra Asli dengan Ukuran File Citra
Rangka ……… 90
Tabel 5.3 : Persentase sum of removal pixel ……… 92
Tabel 5.4 : tabel running time (Waktu Komputasi) ………... 94
Tabel 5.5 : Hasil Pengujian One point thickness ……… 97
Tabel 5.6 : Hasil Kuisioner ……… 105
Tabel 5.7 : Persentase Hasil Kuisioner ……… 108
Tabel 5.8 : Hasil perbadingan algoritma Wang-Zhang dengan algoritma
Zhang-Suen. ……… 112
xxi
BAB I PENDAHULUAN
1.1 Latar Belakang
Indonesia adalah negara yang memiliki beragam seni dan budaya, salah
satunya adalah nilai-nilai budaya yang tertuang dalam naskah-naskah Jawa kuno yang
ditulis dengan aksara Jawa. Naskah kuno ini biasanya terdapat dalam buku-buku
cetak atau media lainnya seperti lontar. Pustaka Artati Universitas Sanata Dharma
adalah salah satu tempat yang mengeksplorasi, menyimpan dan merawat berbagai
koleksi khusus tentang studi kebudayaan termasuk naskah kuno aksara Jawa. Naskah
yang tersimpan masih berbentuk hardcopy, yaitu dalam media buku, kertas-kertas,
maupun daun lontar. Karena masih berbentuk hardcopy, untuk menikmati
kebudayaan maupun memperoleh informasi yang terdapat dalam naskah tersebut
sangatlah susah, hal ini dikarenakan kita harus datang langsung mengunjungi tempat
seperti Pustaka Artati. Selain itu, terdapat pula kemungkinan akan terjadi kerusakan
naskah yang dikarenakan basah, robek, maupun rusak akibat termakan rayap.
Seiring dengan berjalannya waktu dan perkembangan zaman,
naskah-naskah kuno ini kemudian menjadi kurang populer di kalangan masyarakat. Oleh
karena itu, dalam rangka memelihara kebudayaan Jawa yang berupa naskah-naskah
kuno perlu dilakukan proses digitalisasi dan penerjemahan agar kekayaan bangsa ini
tidak hilang dan tidak diklaim oleh bangsa lain. Dengan adanya proses digitalisasi
naskah kuno, maka orang-orang tidak perlu datang langsung ke tempat seperti
Pustaka Artati tadi karena naskah yang sudah berupa softcopy yang bisa dishare
kepada semua orang di penjuru negeri. Sedangkan proses penerjemahan aksara Jawa
ke Latin bertujuan untuk mempermudah masyarakat Indonesia yang tidak mengerti
bahasa maupun aksara Jawa dapat mengerti dan mempelajari naskah Jawa tersebut.
Dalam skripsi ini penulis ingin turut serta dalam bagian kecil pengenal
karakter aksara Jawa tersebut yaitu melakukan proses penipisan aksara Jawa. Proses
penipisan ini salah satu bagian dari proses preprosessing, yaitu proses untuk
mendapatkan rangka dari aksara Jawa yang bersangkutan. Rangka ini merupakan
informasi esensial dari aksara Jawa tersebut yang kemudian dapat dijadikan acuan
untuk proses pengenalan karakter, inilah sebabnya proses penipisan perlu dilakukan.
Dalam skripsi ini penulis memilih algoritma Wang - Zhang untuk
melakukan proses penipisan. Dipilihnya algoritma ini dikarenakan algoritma ini telah
diketahui dapat digunakan untuk melakukan penipisan citra aksara Latin dan
memiliki hasil yang cukup baik (Wang dan Zhang, 1989), sehingga algoritma ini
patut untuk di uji coba terhadap data citra aksara Jawa untuk mendapatkan rangka
yang lebih baik. Dalam penelitian ini, penulis akan melakukan pengujian
connectivity, ketebalan 1 piksel / one point thickness, pengamatan ukuran file citra,
pengamatan jumlah piksel yang dihapus, pengamatan waktu komputasi, kompleksitas
waktu dan pengamatan visual dengan menggunakan pembanding algoritma
1.2 Rumusan Masalah
Dari permasalahan yang dijabarkan di latar belakang, dapat dirumuskan
beberapa rumusan masalah sebagai berikut :
1. Bagaimana cara kerja algoritma penipisan Wang - Zhang?
2. Bagaimana cara mengimplementasikan algoritma Wang - Zhang pada penipisan
citra Aksara Jawa?
3. Apakah algoritma Wang - Zhang merupakan algoritma yang dapat menghasilkan
citra hasil penipisan / citra rangka yang sesuai dengan kriteria operasi penipisan,
yaitu connectivity, ketebalan rangka 1 piksel / one point thickness.
4. Apakah algoritma penipisan Wang-Zhang memenuhi pengujian pengamatan
ukuran file citra, jumlah piksel terhapus, waktu komputasi, kompleksitas waktu,
dan pengamatan visual?
1.3 Tujuan Penelitian
Tujuan penulisan skripsi adalah untuk mengetahui cara kerja penipisan
dengan algoritma Wang – Zhang dalam melakukan penipisan citra aksara jawa.
Selain itu untuk mengetahui apakah algoritma ini merupakan algoritma yang efektif
untuk melakukan penipisan citra aksara Jawa dengan syarat penipisan yaitu,
connectivity, ketebalan rangka 1 piksel / one point thickness, pengamatan ukuran file
citra, jumlah piksel terhapus, waktu komputasi, kompleksitas waktu, dan pengamatan
visual dengan menggunakan algoritma Zhang-Suen sebagai pembanding karena telah
Zhang-Suen dapat memenuhi syarat-syarat penipisan yang telah disebutkan
sebelumnya (Kurnianita, 2009).
1.4 Batasan Masalah
Dalam pembuatan program implementasi algoritma Wang - Zhang pada
penipisan citra aksara Jawa ini ditentukan beberapa batasan masalah sebagai berikut :
1. Citra yang dapat diproses adalah citra biner atau citra skala keabuan dimana data
citra diperoleh dari koleksi hasil penelitian sebelumnya.
2. Program dibuat dengan bahasa pemrograman Matlab.
3. Proses utama yang dilakukan program adalah proses penipisan atau thinning.
Sebagai proses tambahan adalah proses binerisasi, proses ini dilakukan sebagai
preprocessing dari citra masukan yang bukan biner sehingga bisa diproses oleh
program.
4. Pengujian hasil penipisan yang dilakukan adalah pengujian connectivity, ketebalan rangka 1 piksel / one point thickness, pengamatan ukuran file citra,
jumlah piksel terhapus, waktu komputasi, kompleksitas waktu, dan pengamatan
visual dengan menggunakan algoritma Zhang-Suen sebagai pembanding.
1.5 Metodologi Penelitian
Metodologi penelitian yang ditempuh penulis untuk menyusun dan
1. Studi literatur tentang teknik penipisan citra menggunakan algoritma
Wang-Zhang melalui buku-buku pendukung, literatur maupun mencari informasi di
internet.
2. Mengembangkan sistem penipisan citra sebagai alat bantu pengujian perangkat
lunak yang menggunakan metodologi Waterfall. Tahapan metodologi Waterfall
(Pressman, 1997) yang digambarkan sebagai berikut :
a) Analisa Kebutuhan Perangkat Lunak
Pada proses pengumpulan kebutuhan, dilakukan pengidentifikasian
seluruh kebutuhan sistem, khususnya kebutuhan pada perangkat lunak. Untuk
memahami sifat program yang akan dibangun, perangkat lunak yang
dihasilkan harus memahami domain informasi, tingkah laku, unjuk kerja, dan
antarmuka (interface) yang diperlukan.
b) Desain
Desain perangkat lunak merupakan proses untuk menerjemahkan
kebutuhan sistem ke dalam sebuah gambaran program, yang berfokus pada
empat atribut program yang berbeda, yakni struktur data, arsitektur perangkat
lunak, perancangan antarmuka, dan detail algoritma. Desain
didokumentasikan dan menjadi bagian dari pembuatan perangkat lunak.
c) Implementasi
Desain yang telah dirancang harus diterjemahkan ke dalam bahasa
yang dimengerti oleh mesin, atau dengan kata lain pada tahap ini merupakan
dilakukan dengan menggunakan bahasa pemrograman. Jika desain dilakukan
dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara
mekanis.
d) Pengujian
Tahap ini merupakan proses pengujian perangkat lunak untuk
memastikan apakah semua fungsi-fungsi pada perangkat lunak yang dibangun
berfungsi dengan baik dan menghasilkan output sesuai yang diharapkan.
3. Menganalisa hasil implementasi untuk mengukur kinerja dari algoritma
Wang-Zhang dalam menipiskan citra aksara Jawa sesuai dengan syarat-syarat yang
sudah ditentukan sebelumnya dan diambil kesimpulan dari percobaan yang
dilakukan.
1.6 Sistematika Penulisan
Untuk memudahkan dalam penyusunan dan pemahaman isi dari skripsi
ini, maka digunakan sistematika penulisan sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, perumusan masalah yang
akan diteliti, batasan masalah, tujuan dan manfaat penelitian, metode penelitian dan
BAB II LANDASAN TEORI
Bab ini berisikan berisikan tentang landasan teori yang digunakan dalam
analisis, perancangan dan implementasi program serta penulisan isi dari pembahasan
dan evaluasi hasil penelitian.
BAB III ANALISA DAN PERANCANGAN
Bab ini berisi tentang rancangan sistem secara umum, rancangan proses
dan rancangan desain antar muka yang akan digunakan.
BAB IV IMPLEMENTASI
Bab ini berisi tentang implementasi hasil dari analisa dan perancangan
sistem dalam bentuk program (proses, antar muka dan cara kerja program)
BAB V HASIL DAN PEMBAHASAN
Bab ini menyajikan hasil penelitian berupa hasil percobaan dan kuisioner,
dan analisa terhadap hasil penelitian tersebut yang ditinjau dari syarat-syarat
penipisan citra.
BAB VI PENUTUP
Bab ini berisi tentang kesimpulan yang dapat diambil untuk menjawab
rumusan masalah yang dikemukan dalam BAB I, serta saran yang dapat diberikan
BAB II
LANDASAN TEORI
Dalam bab ini lebih menekankan pada pembahasan penipisan sebuah citra
aksara Jawa dengan menggunakan algoritma Wang-Zhang, dan citra yang ditipiskan
berupa citra biner dari aksara Jawa, kemudian dilakukan pengevaluasikan pada hasil
penipisan. Pada bab ini akan diuraikan beberapa teori dan konsep yang akan dijadikan
dasar dari penelitian ini.
2.1 Citra
Citra adalah suatu representasi / gambaran, kemiripan, atau imitasi dari
suatu obyek (Sutoyo dkk, 2009). Indeks baris dan kolom (x,y) dari sebuah piksel
dinyatakan dengan bilangan bulat. Piksel (0,0) terletak pada sudut kiri atas, indeks x
bergerak ke kanan dan indeks y bergerak ke bawah. Konvensi ini menunjuk pada cara
panulisan larik yang digunakan dalam pemrograman komputer (Ahmad, 2005). Citra
secara umum dapat dikelompokkan menjadi 2, yaitu :
1) Citra tampak, seperti foto, lukisan, dan lainnya.
2) Citra tidak tampak atau citra digital, sepeti file yang berisi data citra.
Antara kelompok citra tersebut, citra yang digunakan penulis untuk
penelitian adalah citra digital. Hal ini dikarenakan hanya citra digital yang dapat
diolah dengan komputer. Berdasarkan cara untuk menyimpannya, citra digital dapat
di bagi menjadi beberapa jenis (Sutoyo dkk, 2009), yaitu :
1. Citra Biner atau Monokrom
Citra biner adalah citra yang memiliki dua nilai derajat keabuan, yaitu
hitam dan putih. Pada citra biner tiap piksel hanya membutuhkan nilai memori
sebesar 1 bit. Setiap piksel pada citra biner memiliki nilai 0 untuk warna hitam, dan
nilai 1 untuk warna putih.
(a) (b)
Gambar 2.1.(a) Citra biner. (b) Representasi citra biner dalam data digital
2. Citra Skala Keabuan atau citra Grayscale
Citra keabuan adalah citra yang memiliki skala keabuan lebih banyak
daripada citra biner. Skala keabuan tergantung dari jumlah bit yang akan disimpan,
misalnya skala keabuan untuk 8 bit adalah 28 = 256, dan nilai maksimum nya adalah
28 – 1 = 255. Sehingga pada penyimpanan 1 byte citra grayscale akan diwakilkan
oleh 256 gradasi warna. Format citra pada citra skala keabuan pada umumnya warna
Gambar 2.2. Representasi Citra Keabuan (Ayman Ammoura, 2007)
3. Citra Warna (True color)
Pada tiap piksel citra warna memiliki warna yang merupakan kombinasi
dari tiga warna dasar (RGB=red, green, blue). Setiap warna dasar menggunakan
penyimpanan 8 bit, yang berarti setiap piksel mempunyai kombinasi warna sebanyak
28 x 28 x28 = 224 = 16 juta warna. Pada penyimpanan 1 piksel citra warna diwakilkan
dengan 3 byte, dimana masing-masing byte merepresentasikan warna dasar, yaitu
merah (red), hijau (green), dan biru (blue). Setiap warna dasar memiliki intensitas
maksimum 255 (8 bit).
2.2 Binerisasi
Sebelum mengalami penipisan, data citra yang akan digunakan akan
mengalami proses preprossesing, salah satunya adalah binerisasi. Proses ini bertujuan
untuk memisahkan piksel pada citra yang akan digunakan. Tiap piksel akan ditandai
sebagai obyek (foreground) atau sebagai latar (background). Sehingga dalam proses
ini piksel-piksel dalam citra akan terpisah secara jelas, antara obyek dan latar.
Pemisahan ini dilakukan dengan cara membandingkan nilai tiap piksel dengan nilai
ambang (threshold). Jika lebih besar maka nilai piksel tersebut akan di jadikan
sebagai latar dan sebaliknya.
Dalam penilitian ini pencarian nilai ambang dilakukan dengan
memanggil fungsi greythresh pada Matlab. Fungsi ini menghitung nilai ambang
sebuah citra skala keabuan dengan menggunakan metode Otsu. Tujuan dari metode
Otsu ini adalah membagi histogram citra grey level ke dalam dua daerah yang
berbeda secara otomatis tanpa membutuhkan user memasukkan nilai ambang.
Pendekatan yang dilakukan metode Otsu adalah melakukan analisis diskriminan yang
menentukan suatu variabel yang dapat membedakan antara dua atau lebih kelompok
yang muncul secara alami. Analisis diskriminan akan memaksimalkan variabel
tersebut agar dapat membagi obyek menjadi latar depan (foreground) atau latar
2.3 Penipisan / Thinning
Penipisan adalah sebuah proses untuk melakukan penghapusan titik hitam
(obyek) dan mengubah bentuk obyek menjadi gambar garis “tipis” yang dikenal
sebagai rangka / skeleton (Wang dan Zhang,1989). Penipisan juga dapat diartikan
proses untuk menguruskan citra (Sutoyo dkk, 2009). Tujuan dari proses penipisan
adalah mereduksi komponen citra menjadi suatu informasi yang sifatnya mendasar,
sehingga dapat memfasilitasi analisa selanjutnya.
(a) (b)
Gambar 2.4. (a) Gambar citra sebelum proses penipisan , (b) Gambar citra hasil penipisan (citra rangka)
Pada gambar 2.4 ditunjukkan citra sebelum penipisan (a) dan citra hasil
penipisan (b), dimana citra hasil penipisan merupakan rangka dari citra sebelum
proses penipisan.
2.4 Algoritma Penipisan Wang-Zhang
Seperti yang dikatakan di subbab 2.3, penipisan adalah proses untuk
“tipis” yang dikenal sebagai rangka. Berikut ini adalah beberapa istilah yang
digunakan dalam algoritma penipisan Wang-Zhang :
1. Titik ketetanggaan
Pada tiap citra biner akan didefenisikan sebagai matriks Q, dimana tiap piksel
dari matriks Q(i,j) bernilai 0 atau 1. Diasumsikan bahwa tiap piksel pada matriks
Q , piksel (i,j), akan memiliki 8 buah ketetanggaan ,yaitu (i-1,j), (i-1,j+1), (i,
j+1), (i+1,J+1), (i+1,j), (i+1,j-1), (i, j-1), (i-1,j-1).
Gambar 2.5. Notasi titik 8 ketetangaan dari piksel (i,j)
2. Contourpoint
Pada algoritma ini contour point dapat didefinisikan sebagai piksel yang
memiliki sekurang-kurangnya sebuah piksel latar sebagai tetangganya. Dalam
Gambar 2.6.contour point ditunjukkan oleh piksel “a”, ”b”, “c”, “d”, …, “s”
3. Contour loop
Contour loop adalah contour point yang saling berhubungan satu antara lainnya,
4. Previous point dan successor point
Ketika sebuah contour point diproses (misal : piksel p), maka contour point
berikutnya yang akan di proses disebut dengan successor point dan piksel
sebelum piksel p disebut dengan previous point. Pada Gambar 2.6. dapat ditunjukkan previous point dari piksel “b” adalah piksel “a” dan successor point
-nya adalah piksel “c”.
5. Successor function
Successor function adalah sebuah fungsi untuk mencari piksel berikutnya yang
akan diproses. Fungsi ini mencari piksel berikutnya melalui 8 ketetanggaan dari
piksel p, dan akan menguji titik tetangga piksel p yang merupakan obyek.
Pengecekan dimulai dari previous piksel dari piksel p, mengelilingi piksel p
searah jarum jam sampai menemukan tetangga p yang merupakan obyek. Jika
piksel p sedang diproses maka z sebagai successor point, x sebagai previous
point, dan s menjadi successor function maka akan didapatkan rumus z = s(x,p).
Contoh pada Gambar 2.6 pada citra “Y”, jika piksel yang sedang diproses adalah piksel “7” dan previous point dari piksel “7” adalah “6” maka z =
a b e f s 1 c 4 g
2 d 5 h
3 6 i 7 r 8 j q 9 k p t l o n m
Gambar 2.6. Gambar citra “Y” (Wang dan Zhang, 1989)
Algoritma Wang-Zhang akan melakukan identifikasi jumlah contour loop
pada suatu citra yang akan diproses, dan akan menentukan titik awal (first) dari tiap
contour loop. Algoritma ini akan menyusuri contour loop pada citra tersebut dan
menghilangkan piksel-piksel pada contour loop, kecuali piksel-piksel yang
merupakan titik kerangka. Pada algoritma ini penjelajahan contour loop dilakukan
dengan menggunakan fungsi successor (fungsi untuk mencari piksel berikutnya yang
akan di proses). Pada algoritma ini tiap contour loop dibagi menjadi dua subiterasi.
Pada subiterasi pertama, akan dilakukan dengan menghapus contour point
(1). 1<B(p)<7
B(p) adalah banyaknya jumlah tetangga dari piksel p yang bernilai “on” (Wang
dan Zhang, 1989), yaitu B(p)= p0 + p1 + p2 + p3 + … + p6 + p7 seperti tampak
pada Gambar 2.7. dan Gambar 2.8.
(2). A(p)=1 atau c(p) =1
A(p) adalah banyaknya transisi pola dari “on” ke “off” dari nilai tetangga dari
piksel p, yaitu piksel p0 + p1 + p2 + p3 + … + p6 + p7 secara berurutan searah
dengan arah jarum jam seperti tampak pada Gambar 2.9.
Nilai c(p) adalah nilai yang digunakan jika nilai A(p) tidak terpenuhi, nilai c(p)
diperoleh dari :
c(p) = 1 jika, p[k-1] + p[k] +p[k+1]+ p[k+4]=0 and p[k+3]=1 and p[k+5]=1
dimana nilai k adalah 1 atau 3.
Selain persamaan di atas nilai c(p) dianggap 0 (c(p)=0)
(3). p[0] + p[6] * p[2] * p[4] = 0
Kondisi (1). Digunakan untuk menunjukkan bahwa piksel yang di proses
bukanlah piksel terisolasi atau piksel yang merupakan piksel terujung, sehingga
mencegah untuk merubah struktur rangka dari citra. Piksel terisolasi adalah piksel
dimana semua tetangganya adalah latar ditunjukkan pada Gambar 2.7. Sedangkan piksel terujung adalah piksel yang hanya memiliki 1 buah tetangga saja, dengan kata
Kondisi (2). digunakan untuk mempertahankan hubungan piksel-piksel
antar obyek. Jumlah transisi yang memenuhi syarat penghapusan adalah A(p)=1
ditunjukkan pada Gambar 2.10. bagian(b) sedangkan jika nilai A(p) kurang dari 1
(A(p)=0), ditunjukkan pada Gambar 2.10. bagian(a) maka piksel tidak dapat
dihapus, hal ini dikarenakan piksel tidak memenuhi syarat (1), dimana piksel
merupakan titik terisolasi. Sedangkan jika nilai A(p) lebih besar dari pada 1
ditunjukkan pada Gambar 2.10. bagian (c), maka dilakukan pengecekan terhadap piksel tersebut, apakah memenuhi syarat nilai c(p).
Kondisi (3) pada subiterasi g==0 dipenuhi jika p[0] + p[6] * p[2] *
p[4]=0. Jika ketiga kondisi ini terpenuhi pada subiteras g==0, maka akan dilakukan
penghapusan pada piksel p.
1 1 1
1 0 1
1 1 1
Gambar 2.7.B(p)=0 (-,2008) 1 0 1
1 0 1
1 1 1
1 1 1 0
0 0 1
0 1 1 2
A(p)=2
Gambar 2.9. Transisi pola on-off pada piksel searah jarum jam (Wang dan Zhang, 1989)
1 1 1 1 0 1 1 0 1
1 0 1 1 0 1 1 0 1
1 1 1 1 1 1 1 0 1
(a) A(p)=0 (b) A(p)=1 (c) A(p)=2
Gambar 2.10. Kemungkinan jumlah A(p)
Setelah dilakukan penghapusan pada subiterasi g==0, maka dilanjutkan
dengan subiterasi g==1, yang diterapkan pada citra hasil dari subiterasi g==0,
dimana hanya kondisi (3) yang berubah, sedangkan kondisi (1) dan (2) sama seperti
(3’). p[2] + p[4] * p[0] * p[6] = 0
Kondisi (3’) pada subiterasi g==1 terpenuhi jika p[2] + p[4] * p[0] * p[6]
= 0. Jika ketiga kondisi ini terpenuhi pada subiteras g==0, maka akan dilakukan
penghapusan pada piksel p.
Subiterasi g==0 dan g==1 dilakukan berulang-ulang sampai tidak
menemukan lagi titik yang akan dihapus. Hal ini ditunjukkan pada pseudocode dari
algoritma Wang-Zhang pada Gambar 2.11
2.4.1 Analisa Algoritma Penipisan
Suatu algoritma dikatakan baik jika memenuhi beberapa syarat, seperti
connectivity dan ketebalan 1 piksel / one point thickness. oleh karena itu dibutuhkan
suatu analisa untuk membuktikan, hal ini dilakukan untuk menunjukkan suatu
algoritma penipisan harus menghasilkan rangka yang selalu terhubung dan memiliki
ketebalan 1 piksel (Jang dan Ching, 1990). Oleh karena itu, pada penelitian ini
dilakukan pengujian terhadap hasil penipisan algoritma Wang-Zhang, sebagai
berikut:
2.4.1.1 Connectivity
Suatu kerangka hasil penipisan (I) yang memiliki connectivity dengan
citra asli (S) harus memiliki homotopy yang sama (dua himpunan berhingga dikatakan
homotopy jika terdapat korespondensi satu-satu antara citra asli(S) dengan hasil
penipisan (I) termasuk korespondensi terhadap adanya holes pada S dan I). Sehingga I
da S merupakan 8-connected dan mengandung 4-connenctedcomponent.
2.4.1.2 One Point Thickness
Sebuah kerangka yang dibentuk dari proses penipisan harus memiliki
kriteria one point thickness, atau memiliki ketebalan 1 piksel. Syarat sebuah kerangka
dapat disebut one point thickness adalah sebagai berikut :
1. Bila tidak memuat A={A1, A2, A3, A4} yang berukuran 2 x 2 dengan struktur
Gambar 2.12. Struktur template A
Susunan pada Gambar 2.11 adalah susunan pola yang ditemukan dalam komponen terhubung yang merupakan bukan rangka.
2. Apabila satu atau lebih template A (A1, A2, A3, A4) terdapat rangka hasil penipisan, maka ada dua kemungkinan yaitu, rangka tersebut bukan rangka
dengan ketebalan 1 piksel atau rangka merupakan critical point atau jika
piksel-piksel tersebut dihapus akan menyebabkan piksel-piksel yang lain
menjadi tidak terhubung atau menghasilkan lubang. Suatu rangka disebut
critical point bila sekurang-kurangnya memenuhi struktur template B=(B1, B2,
B3, B4), atapun C yang memuat struktur ke emapat template A ditunjukkan
pada Gambar 2.13.
2.4.1.3 Analisa menurut Jang & Ching
Analisa menurut Jang dan Ching sebagai berikut : (Jang dan Ching, 1990)
Definisi 1: Sebuah titik p memiliki 4 tetangga yaitu atas, bawah, kiri,
kanan yang diinisalisasikan sebagai a, b, c, dan d seperti ditunjukkan pada Gambar 2.14 Titik-titik ini disebut dengan 4-neighbors dari p (atau 4-adjacent dari p). Jika U, V S, dan beberapa titik dari U adalah 4-adjacent terhadap beberapa titik dari V,
maka U dikatakan 4-adjacent dari V.
Gambar 2.14. (a) 4-neighbors dan 8-neighbors dari titik p, (b) koordinate 4-neighbors dan 8-neighbors dari titik p
Definisi 2 : sebuah titik p mempunyai 4 tetangga diagonal, yaitu titik e, f,
g, dan h seperti pada Gambar 2.14. Keempat titik tersebut bersama dengan definisi 1, maka akan disebut 8-neighbors dari p (8 adjacent dari p).misal U,V ⊆ S dan
beberapa titik dari U adalah ⊆ terhadap beberapa titik dari V, maka U dikatakan
Definisi 3 : sebuah 8-path ataupun 4-path yang disebut πn(x,y) yaitu
panjang n dari x ke y adalah sebuah urutan dari titik-titik (x= x0, x1,x2 ,…, xn = y ),
dimana x1 adalah 8-neighbors atau 4-neighbors dari xi -1 untuk 1 ≤ i ≤ n, seperti
ditunjukkan Gambar 2.15. πn(x,y) merupakan 8-path atau 4-path dengan panjang
n=6 dari x ke y dengan urutan x0, x1,x2 ,…, x6 dimana x1 merupakan 8-neighbors dari
x0, x2 merupakan 8-neighbors x1, x3 merupakan 4-neighbors dari x4 begitu seterusnya
hingga x6.
Gambar 2.154-path dan 8-path πn(x,y)
Definisi 4 : Misal x dan y adalah 2 titik yang berbeda dalam S. Titik x
tersebut merupakan 8-path-connected atau 4-path-connected terhadap y, jika terdapat
sebuah 8-path ataupun 4-path, πn(x,y), dalam S. Definisi ini menyiratkan bahwa x
adalah 4-path-connected terhadap y, maka x juga 8-path-connected terhadap y.
Definisi 5 : misalkan x ∈ S, 8-component (8-connectedcomponent) atau 4
componenet dari S, Ks(x), didefinisikan sebagai Ks(x)={y∈S: y adalah 8-
path-connected ataupun 4-path-connected terhadap x}, seperti pada contoh Gambar 2.16.
Gambar 2.16. (a) citra T. (b) 4-connected component dan 8-connected component dari S dan Sc adalah 4-connected (c) 8- connected component
dan 8-connected component dari S dan Sc adalah 4-connected
Definisi 6 : S adalah 8-connected ataupun 4-connected jika S hanya
mempunyai satu 8-component ataupun 4-component.
Definisi 7 : Border dari S disebut ∂S yang didefinisikan oleh S={x:x
himpunan perbedaan antara S dengan bordernya. Seperti yang terlihat pada Gambar 2.17.
Gambar 2.17. (a) citra T, yang memuat anggota S (b) border dari S. (c) interior dari S
Pada gambar(a) piksel-piksel obyek bernilai ‘1’ adalah anggota S, maka
(b) piksel-piksel obyek yang termasuk border dan merupakan 4-ketetanggaan
terhadap piksel berwarna putih (Sc), sedangkan (c) piksel-piksel obyek yang termasuk
interior dari S, yaitu piksel yang merupakan anggota dari S, tetapi buka border.
Defenisi 8 : komponen dari Sc, Ksc yang mengandung baris-baris teratas
dan dasar (baris pertama dan baris terakhir) maupun kolom paling kiri dan paling
kanan (kolom pertama dan terakhir) dari sebuah daerah segi empat berhingga yang
merupakan anggota S3 disebut latar dari S. Seperti yang ditunjukan pada Gambar
Gambar 2.18. (a) citra T yang memuat anggota S (b) background dari S. (c) holes dari S.
Pada gambar (a) piksel-piksel obyek bernilai ‘1’ adalah anggota S, maka
(b) piksel-piksel latar berwarna putih, di luar piksel obyek bernilai ‘1’ adalah
background dari S, sedangkan (c) piksel-piksel berwarna abu-abu adalah lubang dari
S dan bukan latar.
2.4.2 Kompleksitas Waktu
Sebuah algoritma yang baik tidak hanya harus benar, tetapi juga harus
efisien. Keefisienan algoritma berdasarkan pada pengukuran waktu dan ruang(space)
memori untuk menjalankannya. Algoritma yang efisien adalah algoritma yang
meminimumkan penggunaan waktu dan ruang.
Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan
Kompleksitas waktu dinotasikan dengan T(n), diukur dari tahapan
komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran
masukan n. Kompleksitas ruang dinotasikan dalam S(n), diukur dari memori yang
digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari
ukuran masukan n.
Dengan menggunakan besaran kompleksitas waktu/ruang algoritma kita
dapat menentukan laju yang diperlukan algoritma dengan meningkatkan ukuran
masukan n.
Di dalam algoritma terdapat berbagai macam operasi :
[1] Operasi baca/tulis
[2] Operasi aritmatika (+,-,*,/).
[3] Operasi pengisian nilai / assignment.
[4] Operasi pengaksesan elemen larik.
[5] Operasi pemanggilan fungsi/ prosedur.
Dalam praktek, kompleksitas waktu akan dihitung berdasar jumlah operasi
abstrak yang mendasari algoritma, dan memisahkan analisisnya dari implementasi
2.4.2.1 Kompleksitas Waktu Asimptotik
Kompleksitas waktu asimptotik adalah penghitungan besaran dari
kompleksitas waktu suatu algoritma yang mendekati kompleksitas waktu sebenarnya.
Dalam menghitung kompleksitas waktu suatu algoritma, tidak begitu diperlukan
kompleksitas waktu yang mendekati besaran kompleksitas waktu yang sebenarnya.
Kompleksitas waktu asimptotik ini dilambangkan dengan notasi “O” atau notasi “O
-Besar”
Kompleksitas waktu asimptotik memiliki beberapa teorema dan defenisi
sebagai berikut :
a) Definisi 1 : T(n) = O(f(n))
(dibaca : “T(n) adalah O(f(n))” yang artinya T(n) berorde paling besar
f(n)). Bila terdapat konstanta C dan n0 sedemikian sehingga T(n) <
O(f(n)) untuk n > n0 dimana f(n) adalah batas atas dari T(n) untuk n
yang besar
b) Teorema 1 : Bila T(n) = am nm + am-1 nm-1 + ... + a1n+ a0 adalah
polinom derajat m maka T(n) = O(nm )
c) Teorema 2 : Misalkan T1(n) = O(f(n)) dan T2(n) = O(g(n)), maka
(a) T1(n) + T2(n) = O(f(n)) + O(g(n)) = O(max(f(n), g(n))
(b) T1(n)T2(n) = O(f(n))O(g(n)) = O(f(n)g(n))
(c) O(cf(n)) = O(f(n)), c adalah konstanta
(d) f(n) = O(f(n))
contoh teorema 2 :
1). Misalkan T1(n) = O(n) dan T2(n) = O(n2), maka kompleksitas
waktu asimptotiknya adalah :
T1(n)T2(n) = O(n.n2)
= O(n3)
Menghitung O-Besar untuk setiap instruksi di dalam setiap algoritma dan
kemudian menerapkan teorema-teorema seperti yang telah disebutkan sebelumnya
adalah sebagai berikut :
a) Operasi pengisian nilai (assignment), operasi perbandingan, operasi aritmatik,
dan operasi baca / tulis, membutuhkan waktu sebesar O(1).
b) Operasi pengaksesan elemen larik atau memilih field tertentu dari sebuah
record membutuhkan waktu sebesar O(1).
Contoh :
read x; O(1)
x : = x + a[k]; O(1) + O(1) + O(1) = O(1)
writln(x); O(1)
kompleksitas waktu asimptotik = O(1) + O(1) + O(1) = O(1)
Penjelasan : O(1) + O(1) + O(1) = O(max (1,1)) + O(1)
= O(1) + O(1) = O(max (1,1)) = O(1)
c) Operasi if-else, misalnya if C then S1 else S2 ; membutuhkan waktu Tc +
max(TS1,TS2).
Contoh :
read(x); O(1)
begin
x:=x+1; O(1)
writeln(x); O(1)
end else
writeln(x); O(1)
Kompleksitas waktu asimptotik:
= O(1) + O(1) + max(O(1)+O(1), O(1))
= O(1) + max(O(1),O(1))
= O(1) + O(1)
= O(1)
d) Operasi perulangan / looping for. Kompleksitas waktu perulangan for adalah
jumlah pengulangan dikali dengan kompleksitas waktu badan (body)
perulangan.
Contoh :
for i:=1 to n do
jumlah:=jumlah + a[i]; O(1)
Kompleksitas waktu asimptotik = n . O(1)
= O(n .1)
Contoh looping for bersarang :
for i:=1 to n do
for j:=1 to n do
a[i,j]:=0; O(1)
kompleksitas waktu asimptotiknya :
nO(n) = O(n.n) = O(n2)
contoh for bersarang dengan dua instruksi :
for i:=1 to n do
for j:=1 to i do begin
a:=a+1; O(1)
b:=b-2 O(1) end;
kompleksitas waktu asimptotiknya :
waktu untuk a:=a+1 : O(1)
waktu untuk b:=b-2 : O(1)
total waktu untuk badan kalang = O(1) + O(1) = O(1)
kalang terluar dieksekusi sebanyak n kali
kalang terdalam dieksekusi sebanyak i kali, i = 1, 2, …, n
jumlah pengulangan seluruhnya = 1 + 2 + … + n
= n(n + 1)/2
kompleksitas waktu asimptotik = n(n + 1)/2 .O(1)
e) Operasi perulangan while-do dan repeat-until, untuk kedua perulangan
tersebut, kompleksitas waktunya adalah jumlah perulangan dikali dengan
kompleksitas waktu C dan S.
Contoh: kalang tunggal sebanyak n-1 putaran
i:=2; O(1)
while i <= n do O(1)
begin
jumlah:=jumlah + a[i]; O(1)
i:=i+1; O(1)
end;
Kompleksitas waktu asimptotiknya adalah
= O(1) + (n-1) { O(1) + O(1) + O(1) }
= O(1) + (n-1) O(1)
= O(1) + O(n-1)
= O(1) + O(n)
= O(n)
Contoh perulangan yang tidak diketahui panjangnya
ketemu:=false;
while (p <> Nil) and (not ketemu) do
if p^.kunci = x then
ketemu:=true
else
p:=p^.lalu
Di sini, pengulangan akan berhenti bila x yang dicari ditemukan di dalam
senarai. Jika jumlah elemen senarai adalah n, maka kompleksitas waktu
terburuknya adalah O(n) -yaitu kasus x tidak ditemukan
f) Operasi pemanggilan fungsi atau prosedur, waktu yang dibutuhkan untuk
memindahkan kendali ke rutin yang dipanggil adalah O(1).
Pengelompokan Algoritma berdasarkan Notasi O-Besar tertera dan
ditunjukkan pada Tabel 2.1
Tabel 2.1 pengelompokan Algoritma berdasarkan notasi O-Besar. Kelompok Algoritma Nama
O(1)
O(log n)
O(n)
O(n log n) O(n2)
O(n3) O(2n) O(n!)
konstan logaritmik lanjar n log n kuadratik kubik
eksponensial faktorial
Urutan spektrum kompleksitas waktu algoritma adalah :
4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 2
1(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<...<
O O1(4 22n4)<4 3O4(n!)
Algoritma polinomial lebih baik dibandingkan algoritma eksponensial.
Hal ini ditunjukkan berdasarkan jumlah waktu yang digunakan. Urutan Spektrum
kompleksitas waktu menunjukkan semakin ke kiri semakin sedikit waktu yang
dibutuhkan.
2.6 Aksara Jawa
Aksara Jawa dalam lafalan baku memiliki urutan tertentu yang diwakili
oleh 20 aksara dasar ( Ha, Na, Ca, Ra, Ka, Da, Ta, Sa, Wa, La, Pa, Dha, Ja, Ya, Nya,
Ga, Ba, Tha, Nga) seperti yang ditunjukkan pada Gambar 2.19.
2.7 Bahasa Pemrograman Matlab
Matlab adalah singkatan dari Matrix / Mathematics Laboratory. Matlab berfungsi sebagai bahasa pemrograman yang dapat menyelesaikan operasi
matematika dan operasi aljabar matriks. Dalam penelitian ini Matlab digunakan untuk
melakukan perintah-perintah penipisan. Selain itu Matlab juga digunakan sebagai
BAB III
ANALISA DAN PERANCANGAN
Penelitian ini membutuhkan sistem sebagai alat bantu untuk memudahkan
proses penelitian, dengan cara mengotomatisasi proses penipisan dan mengevaluasi
rangka hasil penipisan untuk setiap citra yang dimasukan. Sistem akan secara
otomatis menampilkan hasil penipisan dan mengevaluasi hasil penipisan.
Pada bab ini membahas perancangan sistem secara umum, rancangan
proses, rancangan cara pengujian, serta rancangan antar muka yang akan digunakan
pada penelitian ini. Selain itu akan diterangkan juga kebutuhan hardware dan
software untuk menunjang penelitian ini.
3.1 Analisa Sistem
3.1.1 Gambaran Umum Sistem
Sistem yang akan dibangun adalah sistem yang berfungsi mencari
kerangka dari masukan berupa citra biner sebuah karakter aksara Jawa. Masukan citra
merupakan hasil scanning dokumen yang bertuliskan aksara Jawa, yang merupakan
tulisan cetak maupun tulisan tangan. Keluran dari sistem merupakan kerangka dari
aksara Jawa yang telah mengalami proses penipisan. Diagram konteks dari sistem
yang akan dibangun adalah sebagai berikut :
Gambar 3.1. Diagram konteks dari sistem yang dirancang
Pada Gambar 3.1 ditunjukkan bahwa user memasukan citra asli dan sistem akan memproses citra masukan. Setelah proses penipisan berlangsung sistem
akan menampilkan citra rangka serta informasi citra rangka hasil proses penipisan
kepada user.
3.1.2 Analisa Kebutuhan Sistem
3.1.2.1 Data
Data yang dibutuhkan dalam menyelesaikan penelitian ini berupa data
citra digital aksara Jawa yang didapatkan dari proses scanning. Citra aksara Jawa ini
merupakan koleksi dari penelitian sebelumnya yang diperoleh dari Pustaka Artati,
yaitu penelitian penipisan citra aksara Jawa menggunakan algoritma Zhang-Suen
3.1.2.2 Analisa Kebutuhan Hardware – Software
a. Kebutuhan Hardware
Analisa kebutuhan hardware atau perangkat keras adalah analisa
kebutuhan dari perangkat keras yang dibutuhkan oleh penulis untuk melakukan
penelitian ini. Perangkat yang digunakan adalah :
a. Prosesor : Intel Dual Core 2.93 GHz
b. RAM : 1472 MB
c Sistem Operasi : Windows XP Service Pack 2
d Media Tampilan : VGA 64 Mb
e Media Penyimpanan : Hardisk 80 GB
b. Kebutuhan Software
Perangkat lunak yang dibutuhkan untuk menyelesaikan penelitian ini
adalah Matlab (Mathematics Laboratory) versi 7.0 R2008a yang berfungsi sebagai
bahasa pemrograman yang dapat menyelesaikan operasi matematika dan operasi
aljabar matrix, baik itu dalam proses binerisasi maupun penipisan. Selain berfungsi
sebagai bahasa pemrograman, perancangan user interface juga dilakukan dengan
3.2 Perancangan Sistem
3.2.1 Rancangan Proses Sistem
Dari gambaran sistem secara umum di atas, terdapat beberapa proses
yang harus dilakukan oleh sistem yaitu, proses memasukan citra aksara Jawa, proses binerisasi (jika citra belum biner), proses penipisan, dan proses penyimpanan citra
yang telah diproses oleh sistem.
Dan dari penjelasan di atas, dapat digambarkan DAD level 1 sebagai
berikut :
Gambar 3.2. DAD Level 1
User akan memasukan citra yang akan diproses dan sistem akan membaca
citra yang akan ditipiskan, dengan asumsi citra tersebut telah mengalami proses
perbaikan citra, seperti penghilangan noise maupun proses segmentasi. Setelah itu
sistem akan melakukan pengecekan apakah citra yang dimasukan berupa citra biner,
jika tidak, secara otomatis sistem akan melakukan binerisasi terhadap citra yang
dimasukan. Hal ini harus dilakukan karena citra yang dapat diproses oleh proses
Selanjutnya sistem akan melakukan proses penipisan dengan
menggunakan algoritma Wang-Zhang. Proses ini bertujuan untuk mendapatkan citra
rangka dari aksara Jawa. Selanjutnya sistem akan menampilkan citra aksara Jawa
hasil penipisan, serta menampilkan informasi tentang lama waktu yang dibutuhkan
dalam proses penipisan, menampilkan jumlah piksel yang berhasil dihapus, serta
evaluasi dari rangka citra hasil penipisan yaitu, syarat connectivity, dimana evaluasi
piksel rangka apakah masih terhubung satu sama lainnya dan syarat one point
thickness, yaitu syarat apakah ketebalan piksel rangka berukuran 1 piksel.
3.2.1.1 Binarisasi
Proses binerisasi adalah proses yang dibutuhkan sebelum melakukan
proses penipisan, hal ini dikarenakan citra masukan yang dapat diproses dalam proses
penipisan adalah citra biner yang memiliki nilai 0 atau 1. Proses binerisasi yang
dirancang dapat dilihat pada Gambar 3.3.
Keterangan :
• Proses penipisan nantinya akan dilakukan dengan memanggil fungsi Matlab
yaitu im2bw. Sebelum proses im2bw dilakukan proses greythresh dulu untuk
mencari nilai ambang citra yang nantinya piksel yang bernilai lebih kecil dari
nilai ambang akan diubah menjadi obyek dan sebaliknya.
3.2.1.2 Penipisan
Proses Penipisan adalah proses utama yang akan dilakukan sistem, proses
penipisan dilakukan dengan menggunakan Algoritma Wang-Zhang. Dimana hasil
dari proses penipisan inilah yang akan disimpan oleh user, selain itu disertai pula
informasi yang diproleh dari proses penipisan, seperti persentase One point thickness,
jumlah piksel citra asli, jumlah piksel citra rangka, jumlah piksel citra yang berhasil
dihapus, waktu yang dibutuhkan untuk melakukan proses penipisan, jumlah piksel
yang mengandung template A, jumlah piksel yang mengandung template A yang
bukan critical point. Proses penipisan ditunjukkan pada Gambar 3.4.
Keterangan :
• Pada proses penipisan, citra yang diinputkan adalah citra biner. Proses ini
nantinya akan menghasilkan citra rangka serta keterangan dari citra rangka
tersebut berupa informasi persentase One point thickness, jumlah piksel citra asli,
jumlah piksel citra rangka, jumlah piksel citra yang berhasil dihapus, waktu yang
dibutuhkan untuk melakukan proses penipisan, jumlah piksel yang mengandung
template A, jumlah piksel yang mengandung template A yang bukan critical
Berdasarkan pada algoritma Wang-Zhang (Wang dan Zhang, 1989) , maka
berjalannya proses flowchart adalah sebagai berikut :
a) Mendapat masukan data citra Aksara Jawa yang telah mengalami proses
pra-pemrosesan sebelum proses penipisan (penghilangan noise, segmentasi dan
binerisasi). Baca citra biner tersebut.
b) Melakukan inisialisasi : jumlah contour loop (m), titik awal (first), titik prev,
dan menentukan nilai h_k=1, menentukan nilai g=1.
c) Memeriksa nilai g
i) Jika g==1 maka g ditentukan nilainya g=0
ii) Jika g==0 maka g ditentukan nilainya g=1
d) Memeriksa apakah nilai h_k=1
i) Jika ya, proses dilanjutkan pada bagian point e.
ii) Jika tidak maka proses penipisan akan berakhir.
e) Menentukan nilai k=1
f) Memeriksa apakah nilai k lebih kecil dibandingkan dengan jumlah contour
loop(m)
i) Jika ya nilai p(x,y) diisi dengan first(x,y), x(x,y) diisi dengan prev(x,y) dan
h_k=0
ii) Jika tidak kembali pada poin c
g) Memeriksa apakah nilai loop end test ==1, yaitu fungsi dari pemberhentian
i) jika ya, maka melanjutkan pada poin h
ii) jika tidak kembali pada poin e
h) Mencari nilai successor(z) dari p
i) Dilakukan pengecekan nilai g dan memeriksa apakah piksel tersebut
memungkinkan untuk dihapus
i) jika ya dilakukan penghapusan dan melakukan proses pada poin j
ii) jika tidak melakukan proses pada poin j
j) Nilai p(x,y) diisi dengan nilai successor(z) (x,y) dan nilai x(x,y) diisi dengan nilai
p(x,y)
k) Ulangi proses h s/d j, sampai menyusuri tiap piksel pada suatu contour loop.
Jika sudah loop end test=0. Kembali ke langkah g.
3.2.2 Perancangan Pengujian Sistem
3.2.2.1 Pengamatan Ukuran Citra
Pengamatan ukuran citra adalah pengamatan yang dilakukan dengan
membandingkan ukuran file citra asli dengan ukuran file citra hasil penipisan. Hal ini
untuk mengetahui apakah citra asli mengalami proses penipisan atau tidak, karena
citra yang mengalami proses penipisan maka ukuran file akan lebih kecil
dibandingkan dengan ukuran file citra aslinya.
3.2.2.2 Sum of TemplateA dan Sum of Not Critical Point
Sum of Template A dan Sum of Not Critical Point digunakan untuk
merupakan critical point. Tiap piksel rangka akan diperiksa apakah mengandung
template A seperti yang dijelaskan pada Subbab 2.4.1.2, dan dihitung jumlah piksel
yang mengandung template A. jika diketahui mengandung template A, maka setiap
piksel yang mengandung template A akan diperiksa apakah mengandung template B
• Pencarian template A dilakukan dengan mengeksekusi setiap piksel pada citra
kerangka, yaitu dengan melihat apakah piksel tersebut mengandung template A
seperti pada Gambar 2.11 jika terpenuhi, maka nilai template A=template A +1 • Jika template A sudah diketahui selanjutnya dilakukan dengan mengeksekusi
apakah template A mengandung template B atau template C seperti pada Gambar
2.12 , jika tidak terpenuhi maka bukan merupakan critical point.
3.2.2.3 One Point Thickness
One Point Thickness adalah pengujian yang dilakukan untuk mengetahui
apakah piksel hasil rangka memiliki ketebalan 1 piksel atau tidak. Nilai One Point
Thickness diperoleh dari jumlah piksel citra hasil penipisan dikurangi dengan sum of
not critical point. Sehingga dari hasil pengurangan tersebut akan didapat jumlah
critical point. Setelah itu jumlah critical point dibagi dengan seluruh jumlah piksel
Gambar 3.8One Point Thickness Keterangan :
• One point thickness didapatkan dari jumlah piksel citra hasil penipisan dikurangi
jumlah piksel yang bukan merupakan critical point. Dari hasil pengurangan
tersebut akan didapatkan jumlah critical point atau memenuhi syarat ketebalan 1
piksel
• Setelah diketahui syarat ketebalan 1 piksel, maka