SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh :
Margareta Ratna Kurnianita 055314061
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
i
PENIPISAN CITRA HURUF JAWA MENGGUNAKAN
ALGORITMA ZHANG SUEN
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Halaman judul bahasa indonesia
Oleh :Margareta Ratna Kurnianita 055314061
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
THINNING IMAGE OF JAVANESE CHARACTER USING
ZHANG SUEN ALGORITHM
A Thesis
Presented as Partial Fullfillment of The Requirements to Obtain The Scholar Degree Engineering in Informatics Engineering Study Program
Halaman judul bahasa Inggris
By :Margareta Ratna Kurnianita 055314061
INFORMATICS ENGINEERING STUDY PROGRAM
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan
dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 25 Juni 2005 Penulis
vi
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Lembar persetujuan publikasi
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Margareta Ratna Kurnianita
NIM : 055314061
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul :
PENIPISAN CITRA HURUF JAWA
MENGGUNAKAN ALGORITMA ZHANG SUEN
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta Pada tanggal: 25 Juni 2009 Yang menyatakan
vii
ABSTRAK
Penelitian ini berfokus pada proses penipisan citra huruf jawa dengan menggunakan algoritma zhang suen dan analisa rangka yang dihasilkan. Penipisan bertujuan untuk mengurangi bagian yang tidak perlu hingga menyisakan bagian yang disebut rangka yang dianggap mewakili obyek tersebut tanpa merubah bentuk aslinya, sehingga dapat digunakan untuk pemrosesan lebih lanjut seperti proses pengenalan karakter huruf jawa.
Analisa rangka citra huruf jawa yang dihasilkan dengan menggunakan algoritma zhang suen dilakukan dengan beberapa pengujian berdasarkan kriteria tertentu serta melalui pengamatan secara visual. Pengamatan secara visual dilakukan dengan membandingkan citra asli dengan rangka hasil penipisan menggunakan algoritma zhangsuen dan hilditch.
Hasil pengamatan visual yang dilakukan oleh 50 responden yang mengamati 40 rangka huruf jawa yang berbeda mencatat bahwa rata-rata setiap responden menyatakan 57,76% dari 40 rangka yang dihasilkan menggunakan algoritma penipisan zhang suen lebih mirip dengan citra asli dari pada algoritma
hilditch yang hanya sebesar 55,70%. Hal itu menunjukkan bahwa rangka yang dihasilkan menggunakan algoritma zhang suen relatif lebih mirip dengan citra asli dari pada algoritma hilditch.
viii
ABSTRACT
This research focuses on the process of image thinning uses zhang suen 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 suenand hilditch thinning algorithm.
Visual observation‟s results that is made by the 50 respondents view of 40 different skeleton of the Javanese character make a note that the average of each respondent explain 57,76% of 40 skeletons generated from zhang suen thinning algorithm more resembler the original image then hilditch algorithm only 55,70%. That is show skeletons generated from zhang suen thinning algorithm relatively more resembler the original image then hilditch algorithm.
Experimental results on the 60 Javanese character images show that most of the pixels of skeleton has one pixel thickness with the average is 90,26% of the entire pixels in the skeleton. This algorithm successfully removed a large number of the pixel object with the average is 82,08% from the entire pixels in the original image. This algorithm takes time relatively quick to thin the image of Javanese characters with the average is 0,029 seconds. The size of image file is relatively small with the average is 9,61% of the original image. The other experimental result based on the skeleton pixels connectivity shows this algorithm preserve the skeleton pixel connectivity accordance with the original pattern.
ix
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala berkat dan karunia-Nya, sehingga penulis dapat menyelesaikan Laporan Tugas Akhir yang berjudul “Penipisan Citra Huruf Jawa Menggunakan Algoritma Zhang-Suen”.
Penulis menyadari bahwa selama proses penelitian dan penyusunan laporan tugas akhir ini, banyak pihak yang telah memberikan perhatian, dukungan, semangat, kritik dan saran yang sangat membantu penulis, sehingga pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya, antara lain kepada:
1. Yosef Agung Cahyanta, S.T., M.T., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
2. Puspaningtyas Sanjaya Adi, S.T., M.T., selaku Ketua Jurusan Teknik Informatika Universitas Sanata Dharma.
3. Anastasia Rita Widiarti, S.Si., M.Kom., selaku dosen pembimbing akademik sekaligus pembimbing tugas akhir, atas kesabarannya dalam membimbing penulis, memberikan waktunya, dukungan, motivasi, serta saran yang sangat membantu penulis.
4. Keluargaku tercinta, kedua orang tuaku, Antonius Soenarwoko dan Fr. Endang Diatmiasih, kedua kakakku Agustina Emmi Kurniastuti dan
Florentina Septantia Kurniadini, serta adikku Ignatius Yani Satrio Wibowo, atas doa, semangat, dukungan baik moril maupun finansial serta cinta yang begitu besar, selalu ada dan tak akan pernah berhenti.
5. Lusia Krismiyati Budiasih, S.Si., M.Si., dan Sri Hartati Wijono, S.Si., M.Kom., yang bersedia meluangkan waktu dan pikirannya untuk membimbing dan membantu penulis ketika penulis mengalami kendala dalam memahami suatu materi. Serta Dr. G. Budi Subanar, SJ., yang telah memberikan motivasi dan membuka wawasan penulis.
x
7. Fransiska Kristi, Phalita Nariwastu, Agnes Tyas, dan Kartono Pinaryanto, rekan satu tim yang telah bekerja sama dengan penulis dalam menyelesaikan tugas akhir ini.
8. Serta semua pihak yang telah membantu kelancaran dalam penulisan tugas akhir ini, baik secara langsung maupun 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, 25 Juni 2009
xi
DAFTAR ISI
HALAMAN JUDUL BAHASA INDONESIA ... i
HALAMAN JUDUL BAHASA INGGRIS ... ii
HALAMAN PERSETUJUAN PEMBIMBING ... iii
HALAMAN PENGESAHAN ... iv
PERNYATAAN KEASLIAN KARYA ... v
LEMBAR PERSETUJUAN PUBLIKASI ... vi
ABSTRAK ...vii
ABSTRACT ...viii
KATA PENGANTAR ... ix
DAFTAR ISI ... xi
DAFTAR GAMBAR ...xii
DAFTAR TABEL ... xv
DAFTAR LAMPIRAN ...xvii
BAB I. PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Rumusan Masalah ... 3
1.3. Batasan Masalah ... 3
1.4. Tujuan Penelitian ... 4
1.5. Manfaat Penelitian ... 5
1.6. Metodologi Penelitian ... 5
1.7. Sistematika Penulisan ... 7
BAB II. LANDASAN TEORI ...10
2.1. Aksara Jawa ...10
2.2. Citra ...11
2.3. Binerisasi ...15
2.3.1. Algoritma Threshold Otsu ...16
2.4. Penipisan ...18
2.4.1. Algoritma Penipisan Zhang Suen ...22
xii
2.4.2.1. One-Pixel Thickness ...37
2.4.2.2. Connectivity ...39
2.5. Kompleksitas Waktu ...39
2.5.1. Kompleksitas Waktu Asimptotik ...41
2.6. Java Programing ...46
2.7. JMatlink ...47
BAB III. ANALISA DAN PERANCANGAN SISTEM ...48
3.1. Analisa Sistem ...48
3.1.1. Gambaran Umum Sistem ... 48
3.1.2. Analisa Kebutuhan ...50
3.1.2.1. Analisa Kebutuhan Hardware - Software ...50
3.2. Perancangan Sistem ...51
3.2.1. Rancangan Proses Sistem ... 51
3.2.1.1. Diagram Konteks ... 51
3.2.1.2. DAD Level 1 ...52
3.2.1.2.1 Rancangan Proses Binerisasi ...54
3.2.1.2.2 Rancangan Proses Penipisan Menggunakan i Algoritma Zhang Suen ...56
3.2.2. Rancangan Proses Pengujian ...75
3.2.3. Rancangan User Interface ... 77
BAB IV. IMPLEMENTASI SISTEM DAN ANALISA HASIL ...85
4.1. Implementasi Program ...85
4.1.1. Algoritma Penipisan Zhang Suen ...85
4.1.1.1 Kompleksitas Waktu Asimptotik Algoritma Zhang Suen 87 4.2. Implementasi User Interface ...91
4.2.1. Implementasi Halaman Intro...91
4.2.2. Implementasi Halaman Utama ...91
4.2.2.1.Implementasi Halaman Home ...92
4.2.2.2.Implementasi Halaman Thinning ...93
4.2.3.Implementasi Halaman Peringatan ...96
xiii
4.2.5.Implementasi Halaman Help and How to ...99
4.2.6.Implementasi Halaman About Zhang Suen ...99
4.2.7.Implementasi Halaman About Program...100
4.3. Analisa Hasil ...101
4.3.1. Analisa Citra Hasil Penipisan ...101
4.3.2. Pengamatan Visual...107
4.3.3. Jumlah Piksel yang Berhasil Dihapus ...111
4.3.4.Waktu Komputasi ...114
4.3.5.Ukuran Citra Setelah Penipisan ...116
4.3.6.One Pixel Thickness ...119
4.3.7.Connectivity ...124
BAB V. Penutup ...128
5.1. Kesimpulan ...128
5.2. Saran ...129
xiv
DAFTAR GAMBAR
No. Keterangan Gambar Halaman
Gambar 2.1. Aksara Konsonan Jawa ( -, 2008).……… 11 Gambar 2.2. (a) Citra biner, (b) Representasi citra biner dalam data
digital. ………...………...………...………...………... 13
Gambar 2.3. (a) Citra Skala Keabuan; (b) Representasi citra skala keabuan dalam data digital…… 13 Gambar 2.4. (a) Citra Warna; (b)Representasi citra warna dalam data
digital ……...………...………...………...………...… 14
Gambar 2.5. Citra warna berindeks dan representasinya dalam data
digital... 15 Gambar 2.6. Citra Huruf Jawa „Ra’...……...… 18 Gambar 2.7. Rangka Hasil Proses Penipisan yang didapat dari 4
Algoritma (Dawoud dan Kamel, 2003)……… 19 Gambar 2.8. Notasi 8 Titik Tetangga dari Titik (i, j) Pada Jendela 3x3
(Zhang dan Suen, 1984)... ………... 22 Gambar 2.9. Contoh Titik yang tidak memenuhi kondisi (1) (- , 2008)... 25 Gambar 2.10. Penghitungan Transisi Pola 0-1 dari Urutan Piksel
P2,P3, P4,P5,P6,P7, P8,P9 (Zhang dan Suen, 1984)…… 25
Gambar 2.11. Kemungkinan-kemungkinan Jumlah A(P1)
(Martin dan Tosunoglu, -) ……… 26
Gambar 2.12. Contoh Penghitungan B(P1) dan A(P1) ………...………...… 26 Gambar 2.13.(a) Citra Awal, (b) Citra Hasil Subiterasi I,
(c) Citra Hasil Subiterasi II, (d) Hasil akhir Setelah Melalui
Beberapa Iterasi...……….. 30
Gambar 2.14.(a) 4-neigbors dan 8-neigbors dari titik p,
xv
Gambar 2.16.(a) citra T. (b) 4-connected-component juga 8-connected-component dari S dan S c adalah 4-connected. (c)
8-connected-component dari S dan S c adalah 4-connected... 34 Gambar 2.17.(a) Citra T, yang memuat anggota S, (b) Border dari S,dan
(c) Interior dari S. ... 35 Gambar 2.18.(a) Citra T, yang memuat anggota S, (b) Background dari S,
dan (c) Holes dalam S.
... 36
Gambar 2.19. Struktur template A. ………...………. 38
Gambar 2.20. Struktur template B dan C. ………...………...………...…… 38 Gambar 3.1. Diagram Konteks ... 52
Gambar 3.2. DAD Level 1……….. 53
Gambar 3.3. Diagram Alir Proses Binerisasi Menggunakan
threshold……...………...………...………...………...… 55
Gambar 3.4. Diagram Alir Proses Penipisan Zhang Suen Secara
Keseluruhan ……… 58
Gambar 3.5. Diagram Alir Proses Penipisan Zhang Suen Subiterasi 1 .... 61 Gambar 3.6. Diagram Alir Proses Penipisan Zhang Suen
Kondisi 1 Pada Subiterasi 1………... 63
Gambar 3.7. Diagram Alir Proses Penipisan Zhang Suen
Kondisi 2 Pada Subiterasi 1 ……….. 65
Gambar 3.8. Diagram Alir Proses Penipisan Zhang Suen Kondisi 3 dan Kondisi 4 Pada Subiterasi 1……… 66 Gambar 3.9. Diagram Alir Proses Penipisan Zhang Suen Subiterasi 2 …. 69 Gambar 3.10. Diagram Alir Proses Penipisan Zhang Suen
Kondisi 1 Pada Subiterasi 2……….. 71
Gambar 3.11. Diagram Alir Proses Penipisan Zhang Suen
Kondisi 2 Pada Subiterasi 2 ……….. 73
xvi
Gambar 3.13. Rancangan Halaman Home ………... 78
Gambar 3.14. Rancangan Halaman Thinning / Proses Penipisan Zhang Suen………... 79
Gambar 3.15. Rancangan Menu File Pada Menu Bar ………. 80
Gambar 3.16. Rancangan Menu Help Pada Menu Bar ……… 81
Gambar 3.17. Rancangan Halaman Help andHow-to ………..…… 82
Gambar 3.18. Rancangan Halaman About Zhang Suen Thinning…………... 82
Gambar 3.19. Rancangan Halaman About Zhang Suen Thinning ………... 82
Gambar 3.20. Rancangan Halaman About Program ……… 83
Gambar 3.21. Rancangan Halaman Peringatan ………... 83
Gambar 4.1 Analisa Ketebalan Rangka Citra Huruf Jawa „Ra_4.JPG’. 123 Gambar 4.2 Component Pada Rangka Huruf “Ra_4.JPG”…...……. 126
xvii
DAFTAR TABEL
No.Tabel Keterangan Tabel Halaman
Tabel 2.1. Pengelompokkan algoritma berdasarkan notasi O-Besar… 45
Tabel 4.1. Rangka Hasil Penipisan Algoritma Zhang Suen
Menggunakan Citra Asli Hasil Binerisasi (Bagian1) …… 102 Tabel 4.2. Rangka Hasil Penipisan Algoritma Zhang Suen
Menggunakan Citra Asli Hasil Binerisasi (Bagian 2) …… 103 Tabel 4.3. Rangka Hasil Penipisan Algoritma Zhang Suen
Menggunakan Citra Asli Hasil Binerisasi (Bagian 3) …… 104 Tabel 4.4. Rangka Hasil Penipisan Algoritma Zhang Suen
Menggunakan Citra Asli Hasil Binerisasi (Bagian 4) …… 105 Tabel 4.5. Rangka Hasil Penipisan Algoritma Zhang Suen
Menggunakan Citra Asli Hasil Binerisasi (Bagian 5) …… 106 Tabel 4.6. Hasil Kuisioner (Bagian 1) ………...………...………...… 108 Tabel 4.7. Hasil Kuisioner (Bagian 2) ………...………...………...… 109 Tabel 4.8. Persentase Hasil Kuisioner (Bagian 1) ………...………... 110 Tabel 4.9. Persentase Hasil Kuisioner (Bagian 2) ………...………... 111 Tabel 4.10. Persentase Jumlah Piksel Obyek yang Dihapus (Bagian 1) 112 Tabel 4.11. Persentase Jumlah Piksel Obyek yang Dihapus (Bagian 2) 113 Tabel 4.12. Waktu Komputasi (Bagian 1) ………...………...………... 115 Tabel 4.13. Waktu Komputasi (Bagian 2) ………...………...………... 116 Tabel 4.14. Perbandingan ukuran file citra asli dengan citra setelah
penipisan (Bagian 1) ………...………...………...……….. 117 Tabel 4.15. Perbandingan ukuran file citra asli dengan citra setelah
penipisan (Bagian 2) ………...………...………...……….. 118 Tabel 4.16. Ketebalan Rangka Citra Hasil Penipisan Algoritma Zhang
Suen (Bagian 1) ………...………...………...………...… 121 Tabel 4.17. Ketebalan Rangka Citra Hasil Penipisan Algoritma Zhang
xviii
DAFTAR LAMPIRAN
No Keterangan Tabel Halaman
Lampiran 1. Intensitas Warna Citra Huruf Jawa „Ra‟………. 134
Lampiran 2. Proses Pencarian Nilai Ambang dari Citra Huruf Jawa „Ra‟ 135 Lampiran 3. Citra Asli dengan Obyek Huruf Jawa „Ra‟.……… 142
Lampiran 3. Citra Asli dengan Obyek Huruf Jawa „Ra’.……… 142
Lampiran 4. Citra Huruf Jawa „Ra‟yang Ditandai Akan Dihapus Pada Iterasi 1 - Subiterasi 1, menggunakan algoritma zhang suen 143 Lampiran 5. Citra Huruf Jawa „Ra’Hasil Iterasi 1 - Subiterasi ……… 144
Lampiran 6. Citra Huruf Jawa „Ra‟yang Ditandai Akan Dihapus Pada Iterasi 1 - Subiterasi 2, menggunakan algoritma zhang suen 145 Lampiran 7. Citra Huruf Jawa „Ra’Hasil Iterasi 1 - Subiterasi 2……… 146
Lampiran 8. Citra Huruf Jawa „Ra‟yang Ditandai Akan Dihapus Pada Iterasi 2 - Subiterasi 1, menggunakan algoritma zhang suen 147 Lampiran 9. Citra Huruf Jawa „Ra’Hasil Iterasi 2 - Subiterasi 1……… 148
Lampiran 10. Citra Huruf Jawa „Ra‟yang Ditandai Akan Dihapus Pada Iterasi 2 - Subiterasi 2, menggunakan algoritma zhang suen 149 Lampiran 11. Citra Huruf Jawa „Ra’Hasil Iterasi 2 - Subiterasi 2 ……… 150
Lampiran 12. Citra Huruf Jawa „Ra‟yang Ditandai Akan Dihapus Pada Iterasi 3 - Subiterasi 1, menggunakan algoritma zhang suen 151 Lampiran 13. Citra Huruf Jawa „Ra’Hasil Iterasi 3 - Subiterasi 1 ……… 152
Lampiran 14. Citra Huruf Jawa „Ra‟yang Ditandai Akan Dihapus Pada Iterasi 3 - Subiterasi 2, menggunakan algoritma zhang suen 153
Lampiran 15. Kuisioner (halaman 1) ……… 155
Lampiran 16. Kuisioner (halaman 2) ……… 156
Lampiran 17. Kuisioner (halaman 3) ……… 157
Lampiran 18. Kuisioner (halaman 4) ……… 158
xix
Lampiran 20. Kuisioner (halaman 6) ……… 160
Lampiran 21. Kuisioner (halaman 7) ……… 161
1
BAB I
. PENDAHULUAN
PENDAHULUAN
1.1.Latar Belakang
Pengolahan citra mempunyai peranan yang sangat penting dalam
berbagai bidang kehidupan, salah satunya pada bidang kesusastraan. Kitab-kitab
kuno bertuliskan huruf jawa merupakan salah satu kekayaan budaya Indonesia
yang mungkin didalamnya terkandung suatu makna yang dapat menyingkapi
kejadian ataupun gejala yang terjadi dimasa kini dan telah dialami pada masa
lampau. Bahkan dapat pula berisi nilai-nilai budaya bangsa Indonesia yang
menjadi ciri khas dan menunjukkan jati diri bangsa Indonesia. Nilai-nilai budaya
tersebut harus dapat diwariskan dan disebarluaskan kepada generasi muda bangsa
Indonesia, agar tetap lestari. Namun sayangnya, hanya sedikit orang yang mampu
menterjemahkan isi yang terkandung didalam kitab-kitab tersebut, untuk itu
diperlukan suatu alat bantu agar dapat menterjemahkan huruf jawa tersebut,
kedalam bahasa yang dapat lebih dipahami oleh manusia zaman sekarang, seperti
misalnya diubah kedalam bahasa latin jawa.
Proses penerjemahan huruf jawa menjadi bahasa latin jawa
membutuhkan proses yang panjang dan kompleks. Salah satu proses yang harus
dilalui adalah proses penipisan. Proses penipisan merupakan salah satu proses
pada tahap pra-pemprosesan (preprocessing) dari keseluruhan proses
penerjemahan huruf jawa menjadi bahasa latin jawa, yang akan digunakan untuk
jawa tersebut.
Proses penipisan citra huruf jawa mengambil rangka dari huruf jawa
dengan cara membuang titik-titik atau lapisan terluar hingga seluruh garis atau
kurva hanya kurang lebih selebar satu piksel. Rangka yang dihasilkan ini disebut
skeleton. Skeleton memberikan representasi yang lebih sederhana dari suatu bentuk dengan mempertahankan karakteristik ukuran dan topologi dari bentuk
aslinya. Dengan penipisan, suatu ciri dari obyek pada suatu citra dapat dikenali
dan diekstrak, tanpa merubah bentuk aslinya, sehingga dapat digunakan untuk
pemrosesan lebih lanjut. Hasil proses penipisan dapat membantu mempermudah
dalam menganalisa struktur bentuk dari suatu obyek, sebab melalui proses
penipisan akan mengurangi informasi yang tidak diperlukan dan hanya dihasilkan
rangka dari obyek tersebut (Dawoud dan Kamel, 2003). Selain itu hasil dari
proses penipisan dapat digunakan untuk proses pengenalan suatu pola, khususnya
pada character recognition yang tidak memperhatikan ketebalan piksel dari pola
aslinya (Zhang dan Wang, 1992).
Proses penipisan dapat dilakukan dengan berbagai algoritma
(Lam et al., 1992), masing–masing algoritma memiliki kelebihan dan kekurangan
dalam menghasilkan rangka dari suatu obyek. Secara umum algoritma penipisan
yang efektif harus mampu melakukan penipisan dengan cepat tanpa merubah
karakteristik ukuran dan topologi dari bentuk asli obyek yang ditipiskan, selain itu
algoritma penipisan tersebut harus dapat memperkecil ukuran data setelah
mengalami proses penipisan. Salah satu algoritma yang penulis gunakan untuk
(Zhang dan Suen, 1984). Algoritma ini dipilih sebab algoritma ini dikenal sebagai
algoritma yang cepat dalam proses penipisan bila dibandingkan dengan algoritma
penipisan hilditch (Lam dan Suen, 1995), selain itu algoritma zhang suen mudah
untuk diimplementasikan (Engkamat, 2005) serta dapat digunakan untuk
menipiskan berbagai jenis pola digital (Zhang dan Suen, 1984).
1.2.Rumusan Masalah
Berdasarkan permasalahan – permasalahan seperti telah dijabarkan dalam
latar belakang, maka dapat dibuat rumusan masalah sebagai berikut :
1. Bagaimana cara kerja proses penipisan citra aksara jawa dengan menggunakan
algoritma penipisan zhang suen.
2. Apakah algoritma penipisan zhang suen merupakan algoritma yang efektif
untuk melakukan penipisan citra huruf jawa dengan tujuan mendapatkan
rangka hasil penipisan sesuai dengan kriteria.
3. Berapa kompleksitas algoritma penipisan zhang suen.
1.3.Batasan Masalah
1. Proses utama yang dilakukan adalah proses penipisan citra huruf jawa dengan
menggunakan algoritma penipisan zhang suen, sebagai proses tambahan
adalah proses binerisasi. Proses binerisasi dilakukan sebagai preprocessing
dari citra masukkan yang bukan biner, sehingga nantinya citra masukkan
2. Data masukkan proses penipisan berupa citra huruf jawa dalam bentuk cetak
dan tulisan tangan, dengan file citra berekstensi *.jpg.
3. Keluaran proses penipisan dalam bentuk gambar disimpan dalam file
berekstensi *.jpg, sedangkan keluaran representasi matrik citra hasil
penipisan disimpan dalam file dokumen berekstensi *.mat, *.txt.
4. Penelitian ini diimplementasikan menggunakan bahasa pemrograman Java dan
bahasa pemrograman Matlab, kedua bahasa pemrograman tersebut akan
dihubungkan dengan JMatlink.
5. Pengujian keberhasilan proses penipisan yang dilakukan dengan menguji
keterhubungan antar piksel rangka dan ketebalan rangka yang dihasilkan.
6. Merumuskan kompleksitas algorima penipisan zhang suen.
1.4.Tujuan Penelitian
Berdasarkan masalah-masalah yang ditemui, seperti yang telah dijelaskan
pada rumusan masalah, maka tujuan dari penelitian ini adalah:
1. Mengetahui cara kerja proses penipisan citra aksara jawa dengan
menggunakan algoritma penipisan zhang suen.
2. Menganalisa keefektifan algoritma zhang suen untuk melakukan penipisan
citra huruf jawa berdasarkan ketebalan rangka aksara jawa dan keterhubungan
antar piksel (konektivitas) rangka.
1.5.Manfaat Penelitian
Penelitian ini diharapkan dapat memberikan manfaat dalam beberapa hal,
diantaranya yaitu :
1. Proses penipisan dapat digunakan oleh pengguna yang lebih menitik beratkan
pada struktur bentuk suatu obyek dari pada ukuran obyek sebab dengan
penipisan dapat mempermudah dalam menganalisa struktur bentuk obyek
tersebut.
2. Hasil dari proses penipisan dapat digunakan untuk proses pengenalan pola
(pattern recognition), khususnya pada character recognition yang tidak
memperhatikan ketebalan piksel dari pola aslinya.
3. Citra hasil penipisan memiliki ukuran file yang lebih kecil sebab melalui
proses penipisan akan mengurangi informasi yang tidak diperlukan dan hanya
dihasilkan rangka dari obyek citra tersebut, sehingga dapat menghemat
penggunaan memory untuk menyimpan file citra tersebut.
1.6.Metodologi Penelitian
Metodologi penelitian yang digunakan dalam peyusunan dan penulisan
laporan hasil peneliti ini adalah dengan langkah-langkah sebagai berikut :
1) Metodologi Kepustakaan (Literature)
Studi pustaka dengan membaca dan mempelajari referensi dari berbagai
sumber, baik dari buku, laporan penelitian, jurnal ilmiah, makalah dari internet
2) Metodologi Perancangan Perangkat Lunak
Metodologi dalam perancangan perangkat lunak ini dengan
menggunakan model proses rekayasa perangkat lunak waterfall yang pertama kali
diperkenalkan oleh Winston Royce tahun 1970 (Kristanto, 2004).
Tahapan-tahapan dalam model waterfall sesuai yang diperlukan dalam penelitian ini adalah
sebagai berikut (Pressman, 1997) :
a) Analisa Kebutuhan Perangkat Lunak
Proses pengumpulan kebutuhan, mengidentifikasi seluruh kebutuhan
sistem, khususnya pada perangkat lunak. Untuk memahami sifat program yang
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 yang terdiri atas beberapa
tahap yang berfokus pada empat atribut program yang berbeda, yakni struktur
data, arsitektur perangkat lunak, representasi antarmuka, dan detail algoritma.
Desain didokumentasikan dan menjadi bagian dari pembuatan perangkat lunak.
c) Implementasi
Desain yang telah dirancang harus diterjemahkan kedalam bahasa yang
dapat dimengerti oleh mesin, atau dengan kata lain tahap ini merupakan tahap
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 yang berfokus
pada logika internal dari suatu perangkat lunak, yang bertujuan untuk memastikan
bahwa semua pernyataan telah diuji. Selain itu pengujian berfokus pada eksternal
fungsional, yang akan mengarahkan penulis untuk menemukan kesalahan –
kesalahan dan memastikan bahwa data masukan yang dibatasi akan memberikan
hasil yang valid dan aktual sesuai dengan hasil yang dibutuhkan. Tahapan ini
perlu dilakukan sebab setiap kali kode dibuat maka akan dilanjutkan dengan
pengujian kode.
3) Analisa hasil implementasi untuk menyatakan unjuk kerja dari algoritma
zhang suen.
1.7.Sistematika Penulisan
Sistem penulisan yang digunakan dalam penyusunan laporan tugas akhir
ini terdiri dari beberapa bab, sehingga mempermudah penulisan serta pembahasan.
Adapun sistematika penulisan sebagai berikut :
Bab I . Pendahuluan
Bab ini sebagai pengantar sebelum memasuki isi tulisan yang
sesungguhnya meliputi latar belakang dan rumusan masalah yang akan diteliti,
penelitian, tujuan dan manfaat dari penelitian ini, metodologi penelitian yang akan
digunakan oleh penulis, dan sistematika penulisan hasil penelitian.
Bab II . Landasan Teori
Bab ini berisi mengenai konsep dasar dari teori-teori yang dipergunakan
dalam penelitian ini dan saling berhubungan erat. Adapun teori yang akan dibahas
mengenai aksara jawa, definisi citra, pengertian dan tujuan penipisan, klasifikasi
algoritma penipisan, termasuk algoritma yang akan digunakan dalam penelitian,
penjelasan mengenai bahasa pemrograman Java yang digunakan untuk aplikasi
pengolahan citra dokumen, serta penjelasan mengenai JMatlink yang digunakan
untuk menghubungkan Java dengan Matlab.
Bab III . Analisa Dan Perancangan Sistem
Bab ini berisi analisa sistem yang dibutuhkan dalam penelitian ini.
Berdasarkan hasil analisa sistem tersebut, akan dirancang sistem untuk
menyelesaikan masalah dalam penelitian ini.
Analisa sistem meliputi gambaran umum sistem dan analisa kebutuhan.
Sedangkan perancangan sistem meliputi proses kerja sistem.
Bab IV . Implementasi Sistem dan Analisa Hasil
Bab ini berisi penjelasan mengenai tahapan kegiatan penelitian dalam
mengubah rancangan yang telah dibuat ke dalam bentuk program dengan
JMatlink.
Bab ini juga terdapat analisa hasil penelitian yang penulis lakukan selama
penelitian.
Bab V . Penutup
Bab ini berisi kesimpulan yang dapat diambil penulis selama melakukan
penelitian, berdasarkan hasil-hasil pada bab sebelumnya, selain itu juga berisi
beberapa saran yang dapat penulis ajukan untuk pengembangan lebih lanjut.
10
BAB II
. LANDASAN TEORI
LANDASAN TEORI
Penelitian ini lebih menekankan pada proses penipisan dengan
menggunakan algoritma penipisan zhang suen dan obyek yang akan dikenai
proses penipisan berupa citra digital bertuliskan huruf jawa. Kemudian
dilanjutkan dengan mengevaluasi hasil keluaran proses penipisan. Bab ini akan
menguraikan beberapa teori dan konsep yang mendasari penelitian ini diantaranya
adalah jenis huruf Jawa, teori citra dan pengelompokannya, konsep binerisasi dan
cara mendapatkan nilai ambang, teori penipisan dan algoritma penipisan zhang
suen, serta penjelasan singkat mengenai beberapa bahasa pemrograman untuk membangun sistem untuk membantu memudahkan penelitian.
2.1.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, ma,
ga, ba, tha, nga) (Molen, 1993), seperti yang ditunjukkan pada Gambar 2.1.
Aksara tersebut dikenal sebagai aksara biasa yang tergolong aksara konsonan,
ha na ca Ra Ka
da ta sa Wa la
pa dha ja Ya nya
ma ga ba Tha nga
Gambar 2.1. Aksara Konsonan Jawa ( -, 2008).
2.2.Citra
Citra merupakan istilah lain dari gambar, sebagai bentuk informasi secara
visual, dengan demikian sebuah citra pasti mengandung informasi tentang obyek
yang direpresentasikan. Menurut Rinaldi Munir, citra adalah gambar pada bidang
dwimatra atau dua dimensi (Munir, 2004).
Citra secara umum dapat dikelompokkan menjadi 2 yaitu:
1) Citra tampak seperti foto keluarga, gambar burung.
2) Citra tak tampak seperti data gambar dalam file, yang sering disebut citra
digital.
menggunakan komputer, sehingga penulis menggunakan citra digital sebagai
obyek yang diteliti dalam penelitian ini, dimana citra digital yang digunakan
berbentuk citra dokumen bertuliskan aksara jawa.
Citra digital tersusun atas kumpulan titik atau elemen-elemen gambar
yang disebut piksel (picture element). Piksel merupakan elemen terkecil dari
sebuah citra digital, dengan jumlah total piksel adalah M x N, dimana M
merupakan width (nilai tinggi citra digital) dan N merupakan height (nilai lebar
citra digital). Setiap piksel memiliki nilai berupa angka digital yang
mempresentasikan informasi yang mewakili piksel tersebut.
Format nilai piksel ditentukan oleh format citra digital. Citra berdasarkan
nilai piksel dapat dikelompokan menjadi 4 macam citra
(Achmad dan Firdausy, 2005), yaitu :
1.Citra Biner
Citra biner merupakan citra yang hanya mempunyai dua nilai derajat
keabuan yaitu hitam dan putih. Setiap piksel pada citra biner memiliki nilai 0
untuk warna hitam atau 1 untuk warna putih dan hanya membutuhkan representasi
1 bit. Beberapa contoh citra biner antara lain, citra logo instansi (yang hanya
terdiri atas warna hitam dan putih), citra kode barang yang tertera pada label
barang, dan citra teks (hasil pemindaian dokumen).
Kesepakatan untuk menentukan format piksel pada citra biner bisa
berbeda-beda, seperti misalnya dengan mendeskripsikan nilai 1 sebagai warna
obyek), namun ketentuan ini bukan merupakan keharusan tergantung dari citra
biner yang dihasilkan.
0--- 0 0 0 0 --- 0 1 1 1 --- 0 0 0 1 --- 0 1 1 1 --- 0 1 1 1 (a) (b)
Gambar 2.2. (a) Citra biner, (b) Representasi citra biner dalam data digital.
2.Citra Skala Keabuan
Citra skala keabuan memberikan kemungkinan warna yang lebih banyak
daripada citra biner. Banyaknya kemungkinan nilai dan nilai maksimumnya
bergantung pada jumlah bit yang digunakan. Misalnya untuk skala keabuan 8 bit,
maka jumlah kemungkinan nilainya adalah 28 = 256, dan nilai maksimumnya adalah 28-1 = 255. Format citra ini disebut skala keabuan karena pada umumnya warna yang dipakai adalah antara hitam sebagai warna minimal dan putih sebagai
warna maksimalnya, sehingga warna antaranya adalah abu-abu.
---80 93 91
---89 126 120
---140 107 87
---84 166 84
(a) (b)
Gambar 2.3. (a) Citra Skala Keabuan; (b) Representasi citra skala keabuan dalam data digital
3.Citra Warna
Pada citra warna, setiap titik mempunyai warna yang spesifik yang
merupakan kombinasi dari 3 warna dasar, yaitu: merah, hijau dan biru. Format
citra seperti ini sering disebut sebagai citra RGB (red-green-blue). Setiap warna
dasar mempunyai intensitas sendiri dengan nilai maksimum 255 (8 bit), misalnya
warna kuning merupakan kombinasi warna merah dan hijau sehingga nilai
RGB-nya adalah 255 255 0. Dengan demikian setiap titik pada citra warna
membutuhkan data 3 byte.
Jumlah kombinasi warna yang mungkin unutk format citra ini adalah 224 atau lebih dari 16 juta warna, dengan demikian bisa dianggap mencakup semua
warna yang ada.
118 134 235 114 131 212 58 115 205 75 91 207 55 71 198 169 110 203 126 74 195 253 201 190 94 103 202 (a) (b)
Gambar 2.4. (a) Citra Warna; (b)Representasi citra warna dalam data digital
4.Citra Warna Berindeks
Jumlah memori yang dibutuhkan untuk format citra warna adalah 3 kali
jumlah titik yang ada dalam citra yang ditinjau. Di lain pihak, pada kebanyakan
kasus, jumlah warna yang ada dalam suatu citra terkadang sangat terbatas, karena
banyaknya warna dalam sebuah citra tidak mungkin melebihi banyaknya titik
dalam citra itu sendiri. Untuk kasus tersebut, disediakan format citra warna
tabel yang berisi informasi warna yang tersedia, yang disebut palet warna.
Palet warna merupakan bagian dari citra warna berindeks, sehingga pada
saat menyimpan citra ini ke dalam file, informasi palet warna juga harus
disertakan.
INDEKS R G B
0 1 2 3 4 5 ...15
108 104 198 139 110 203 124 122 195 122 93 201 130 115 198 183 168 235 110 98 200 = 5 11 9 7
= 12 0 15 3 = 2 13 10 8 = 14 4 1 6
Gambar 2.5. Citra warna berindeks dan representasinya dalam data digital.
2.3.Binerisasi
Pada tahap pra-pemrosesan, sebelum memasuki tahap penipisan, data
citra yang digunakan akan melewati beberapa tahap pra-pemrosesan salah satunya
adalah proses binerisasi. Proses ini bertujuan untuk menandai piksel-piksel dalam
citra menjadi bagian dari daerah foreground / object dan bagian dari daerah
background (O‟Gorman dan Kasturi, 1997). Sehingga melalui proses ini seluruh
piksel-piksel dalam citra akan terpisah dengan jelas antara obyek dan latarnya.
Pemisahan ini dilakukan dengan menguji apakah nilai dari piksel yang
bersangkutan lebih besar atau tidak dari nilai threshold / ambangnya. Nilai
ambang yang baik sangat dibutuhkan untuk menghasilkan keluaran berupa citra
biner yang baik pula. Salah satu algoritma pencarian nilai ambang adalah dengan
2.3.1. Algoritma Threshold Otsu
Algoritma penentuan nilai ambang (threshold) yang dikembangkan oleh
Nobuyuki Otsu, merupakan sebuah algoritma untuk memilih sebuah nilai ambang
(threshold pada level ke-k) secara otomatis dari sebuah histogram derajat keabuan
yang diperoleh dari sudut pandang analisa diskriminan. Analisa diskriminan
digunakan untuk mengevaluasi kebaikan / keefektifan dari nilai ambang yang
dihasilkan. Nilai ambang yang optimal dipilih berdasarkan kriteria diskriminan yaitu dengan memaksimalkan ukuran diskriminan (atau ukuran untuk
memisahkan kelas-kelas yang diperoleh dalam derajat keabuan). Dimana
(eta) setara dengan maksimal dari maksimal dari ukuran diskriminan
(sigma_b_kuadrat) atau varian antar kelas (between-class variance)
(Otsu, 1979).
Matlab menggunakan algoritma ini untuk menghasilkan nilai ambang
suatu citra secara otomatis, sebagai hasil keluaran dari sebuah fungsi yang diberi
nama fungsi graythresh.
Misal piksel-piksel citra diwakilkan dalam Lderajat keabuan [1,2, …, L],
dimana pada citra skala keabuan, derajat ke-i memiliki rentang nilai 1-256.
Jumlah dari piksel-piksel pada derajat ke-i, dinotasikan dengan dan jumlah total
piksel dinotasikan dengan N = n1 + n2 +
…
+ nL. Histogram derajat keabuan yangsudah dinormalisasikan dianggap sebagai sebuah fungsi distribusi probabilitas /
Kemudian jumlah kumulatif dari probabilitas dan jumlah kumulatif dari
rata-rata dinotasikan sebagai berikut:
Pi= 1 dan μ (x) = i · Pi ω (x) =
dimana ω (x) adalah probabilitas moments comulative dan μ(x) adalah rata-rata
momentscomulative dari histogramnya, sampai derajat ke-x, sedangkan:
adalah rata-rata total dari citra asli.
Seperti yang telah dijelaskan sebelumnya, untuk mengevaluasi kebaikan /
keefektifan nilai ambang (threshold) yang dipilih (pada level ke-k), diberikan
suatu ukuran kriteria diskriminan (atau ukuran untuk memisahkan kelas) yang
digunakan dalam analisis diskriminan, ukuran kriteria diskriminan tersebut adalah
sebagai berikut:
Dimana, (baca: sigma_b_kuadrat) adalah variansi antar kelas, dan adalah
variansi total.
Nilai ambang optimal pada level k*, diperoleh dengan memaximalkan
ukuran kriteria diskriminan , atau setara dengan memaksimalkan nilai. Nilai
terbesar dipilih menggunakan pencarian berurut (sequential search)
berdasarkan jumlah kumulatif dari probabilitas ( ) dan jumlah kumulatif dari
rata-rata ( ).
Ukuran kriteria diskriminan dan nilai pada level ke-k, dinotasikan
Sedangkan nilai ambang optimal pada levelk*, yang didapat dari levelk* dengan
nilai terbesar, dinotasikan sebagai berikut:
Dimana nilai ambang optimal k* berada dalam rentang nilai [0, 1].
Pada Lampiran 1. – Lampiran 2. akan ditunjukkan proses penentuan
nilai ambang (threshold) untuk citra huruf jawa „ra‟ dengan menggunakan
algoritma otsu. Melalui proses tersebut citra dengan obyek huruf jawa „ra‟ yang
termasuk citra skala keabuan seperti Gambar 2.6, menghasilkan nilai ambang
sebesar 0,52549.
Gambar 2.6. Citra Huruf Jawa „Ra‟
2.4.Penipisan
Pada proses pengenalan pola, banyak bentuk terutama bentuk yang
mengulur atau memanjang yang dapat dinyatakan dalam bentuk yang lebih tipis.
Bentuk yang lebih tipis tersebut terdiri dari garis – garis terhubung dengan tebal
obyek, biasa disebut sebagai rangka (skeleton).
Penipisan didefinisikan sebagai proses pengurangan pola (pattern) yang
secara umum diperpanjang (elongated) ke representasi yang menyerupai garis
(Lam et al., 1992). Sedangkan menurut Rinaldi Munir, penipisan adalah operasi
pemrosesan citra biner dimana obyek direduksi menjadi rangka yang
menghampiri garis sumbu obyek (Munir, 2004). Hasil dari proses penipisan
disebut sebagai rangka (skeleton), seperti yang ditunjukan pada Gambar 2.7.
Gambar 2.7. Rangka Hasil Proses Penipisan yang didapat dari 4 Algoritma (Dawoud dan Kamel, 2003)
Syarat-syarat yang harus dipenuhi sebuah rangka adalah sebagai berikut
(Toussaint, -):
1. Ketipisan : kerangka dari dari suatu citra terdiri dari garis tipis, yang diperoleh
dengan menghapus (merubah dari hitam ke putih) secara berturut-turut
yang tersisa lebarnya satu titik.
2. Konektivitas : kerangka dari suatu obyek terhubung satu sama lain sesuai
dengan topologi aslinya.
3. Posisi: letak kerangka setelah mengalami proses penipisan, tepat ditengah
obyek.
4. Stabilitas: setelah suatu bagian kerangka diperoleh, maka bagian tersebut tidak
akan terkikis oleh operasi pengikisan berikutnya.
Hampir seluruh algoritma penipisan diterapkan pada citra biner
(Lam et al., 1992), sehingga bila data yang akan ditipiskan masih merupakan citra
warna maupun citra skala keabuan, maka pada tahap pra-pemrosesan sebelum
memasuki proses penipisan, citra tersebut diubah terlebih dahulu menjadi citra
biner melalui operasi binerisasi. Meskipun lebih banyak digunakan citra biner,
ada beberapa algoritma penipisan menggunakan citra warna maupun citra skala
keabuan sebagai data masukkan (Verwer et al., 1993).
Proses penipisan secara umum dinilai baik bila memenuhi persyaratan
sebagai berikut:
1. Mampu memperkecil ukuran data (Lam et al., 1992).
2. Menghasilkan gambar garis yang tipis dari suatu obyek, dimana garis tersebut
terdiri atas piksel-piksel yang saling terhubung (Engkamat, 2005).
3. Mampu mempertahankan keterhubungan antar piksel-piksel obyek
(konektivitas), atau dengan kata lain tidak menyebabkan bentuk obyek menjadi
4. Mampu mempertahankan ciri penting dari suatu obyek (Lam et al., 1992).
5. Menghasilkan bentuk yang menyerupai bentuk aslinya dengan tidak
mengenalkan ciri baru dari suatu obyek dimana ciri tersebut bukan merupakan
bentuk aslinya, maupun tidak menghilangkan ciri dari obyek tersebut
(Engkamat, 2005).
Tujuan dari proses penipisan adalah mengurangi bagian yang tidak perlu
hingga tersisa hanya rangkanya saja, sehingga akan dihasilkan informasi yang
penting saja (Munir, 2004). Informasi tersebut mungkin terdiri atas
struktur-struktur dari suatu obyek seperti persimpangan (junctions), titik ujung (end points)
dantitik hubung (connection points).
Beberapa keuntungan yang akan diperoleh apabila proses penipisan
berhasil dengan baik
1. Ukuran data menjadi lebih kecil sebab hanya akan dihasilkan informasi yang
penting saja, dengan demikian mengurangi penggunaan memori. (Zhang dan
Wang, 1992) dan (Lam et al., 1992).
2. Memudahkan dalam analisa struktur bentuk suatu objek sebab proses
penipisan akan mengurangi informasi yang tidak diperlukan dan hanya
dihasilkan rangka dari obyek tersebut (Dawoud dan Kamel, 2003).
3. Rangka yang dihasilkan dapat digunakan untuk proses pengenalan pola
(pattern recognition), khususnya pada character recognition yang tidak
2.4.1. Algoritma Penipisan Zhang Suen
Citra digital biner didefinikan dengan sebuah matrik IT, dimana tiap
piksel dari matrik IT (i, j) bernilai 0 atau 1. Pola dari piksel yang menjadi obyek
memiliki nilai 1. Diasumsikan bahwa tetangga dari titik (i, j) adalah (i-1, j), (i-1,
j+1), (i, j+1), (i+1, j+1), (i+1, j), (i +1, j-1), (i, j-1) and (i-1, j-1), seperti ditunjukan pada Gambar 2.8.
Algoritma zhang suen termasuk kedalam algoritma penipisan paralel,
dimana pada algoritma ini, nilai baru yang diberikan untuk sebuah titik pada
iterasi sekarang (iterasi ke- n) tergantung pada nilai yang dihasilkan pada iterasi
sebelumnya (iterasi ke-(n-1)), dimana seluruh titik yang mewakili citra tersebut
diproses secara serentak, dengan asumsi bahwa menggunakan jendela 3x3 dan
tiap titik terhubung dengan 8 titik tetangga.
Gambar 2.8. Notasi 8 Titik Tetangga dari Titik (i, j) Pada Jendela 3x3 (Zhang dan Suen, 1984)
Algoritma oleh Zhang dan Suen (Zhang dan Suen, 1984), menghilangkan
titik-titik batas yang teridentifikasi dari pola citra, kecuali titik-titik yang termasuk
kerangka dari citra. Agar dapat menghasilkan rangka dengan tetap
mempertahankan hubungan antar piksel-piksel sebuah rangka, maka setiap iterasi (i-1, j-1) (i-1, j) (i-1, j+1)
(i, j-1) (i, j+1)
dibagi kedalam dua subiterasi.
Subiterasi pertama menentukan titik-titik batas yang terletak pada batas
selatan-timur dan ujung-ujung utara-barat. Subiterasi kedua menentukan titik-titik
batas yang terletak pada batas utara-barat dan ujung-ujung selatan-timur. Kedua
subiterasi tersebut dibutuhkan dan harus dipenuhi untuk menjaga hubungan dari
pola utama pada kerangka-kerangkanya karena titik-titik yang teridentifikasi
dipindah-pindahkan secara paralel. Proses penipisan selesai apabila tidak ada titik
batas yang teridentifikasi untuk dihapus sesuai dengan kedua ketentuan subiterasi
tersebut.
Langkah pada subiterasi pertama adalah menandai semua titik kontur
untuk dihapus, jika titik kontur tersebut memenuhi seluruh kondisi dibawah ini
(Zhang dan Suen, 1984):
(1). 2 B(P1) 6
B(P1) adalah banyaknya titik tetangga dari titik P1yang bukan nol / nonzero
(Zhang dan Suen, 1984), yaitu: B(P1) = P2+ P3+ P4+... + P8+ P9. Seperti
tampak pada Gambar 2.9.
(2). A (P1) = 1
A (P1) adalah banyaknya transisi pola 0 ke 1 dari nilai piksel P2, P3, P4, ... ,
P8, P9, P10 (P10 = P2) secara berurutan, untuk operasi terhubung 8 (8 titik
tetangga). Seperti tampak pada Gambar 2.10.
(3). P2
.
P4.
P6 = 0Kondisi (1), digunakan untuk menunjukkan bahwa tidak ada titik
terisolasi ataupun titik ujung yang terkikis, serta untuk mencegah pengecilan
rangka (-,2008). Titik terisolasi adalah titik obyek yang semua tetangganya adalah
titik latar atau dengan kata lain banyaknya B(P1) = 0, seperti pada Gambar 2.9 (a).
Sedangkan titik ujung adalah titik obyek yang mempunyai tepat sebuah tetangga
yang merupakan titik obyek juga atau dengan kata lain banyaknya B(P1) = 1,
seperti pada Gambar 2.9 (b). Demikian juga titik yang berada dalam obyek, atau
dengan kata lain B(P1) = 8, seperti pada Gambar 2.9 (d), sedangkan titik obyek
yang memiliki tetangga berjumlah 7 titik, dimana ketujuh titik tersebut juga
merupakan titik obyek, atau dengan kata lain banyaknya B(P1) = 7, seperti pada
Gambar 2.9 (c)., tidak boleh dihilangkan untuk mencegah pengecilan rangka
(-, 2008).
Kondisi (1) dilanggar jika titik P1memiliki hanya satu atau tujuh tetangga,
bahkan tidak memiliki tetangga dari 8-tetangganya yang pikselnya merupakan
titik obyek.
Kondisi (2), digunakan untuk mempertahankan keterhubungan antar
piksel-piksel obyek (-,(2008)) (Martin dan Tosunoglu, -), di mana ketika nilai
A(P1) = 0 seperti pada Gambar 2.11 (a), maka titik P1 akan dihapus sebab
merupakan titik terasing, namun kondisi A(P1) = 0 tidak mungkin terjadi sebab
tidak memenuhi kondisi 1 karena seluruh tetangganya merupakan latar, jika
A(P1) = 1 seperti pada Gambar 2.11 (b), titik P1 dihapus maka tidak akan
menghilangkan suatu titik yang mempunyai nilai A(P1) lebih dari 1, seperti pada
Gambar 2.11 (c) nilai A(P1) = 2, Gambar 2.11 (d) nilai A(P1) = 3, dan
Gambar 2.11 (e) nilai A(P1) = 4, maka pola atau kerangka akan menjadi terputus.
Dengan demikian titik P1 pada kemungkinan tersebut tidak boleh dihapus.
Kondisi (3) dan (4) pada subiterasi pertama dipenuhi jika minimal
P4= 0 atau P6= 0 atau (P2= 0 dan P8= 0). Kedua kondisi ini menunjukkan bahwa
titik yang akan dihapus berada pada batas tepi selatan-timur atau ujung-ujung
utara-barat.
(a) B(P1) = 0 (b) B(P1) = 1 (c) B(P1) = 7 (d) B(P1) = 8 Gambar 2.9. Contoh Titik yang tidak memenuhi kondisi (1) (- , 2008)
1
A(P1) = 2
2
Gambar 2.10. Penghitungan Transisi Pola 0-1 dari Urutan Piksel
P2,P3, P4, P5, P6,P7, P8, P9 (Zhang dan Suen, 1984)
0 0 0
0 1 0
0 0 0
0 1 0
0 1 0
0 0 0
1 1 1
1 1 0
1 1 1
1 1 1
1 1 1
1 1 1
0 0 1
1 0
1 0 0
(a) A(P1) = 0 (b) A(P1) = 1 (c) A(P1) = 2 (d) A(P1) = 3
(e) A(P1) = 4
Gambar 2.11. Kemungkinan-kemungkinan Jumlah A(P1)
(Martin dan Tosunoglu, -)
Misalnya, untuk nilai P2, P3,P4,... , P8,P9, seperti pada 0.
Gambar 2.12. Contoh Penghitungan B(P1) dan A(P1)
0 0 0
0 1 0
0 0 0
0 1 0
0 1 0
0 0 0
0 1 0
0 1 0
0 1 0
1 0 1
0 1 0
0 1 0
1 0 1
0 1 0
Setelah subiterasi pertama selesai, hapus seluruh titik yang telah ditandai,
kemudian dilanjutkan dengan subiterasi kedua, yang diterapkan terhadap titik
kontur dari hasil subiterasi pertama (sebelumnya), dimana hanya kondisi (3) dan
(4) yang akan diubah, sedangkan kondisi (1) dan (2) sama seperti pada subiterasi
pertama:
(3'). P2
.
P4.
P8 = 0(4'). P2
.
P6.
P8 = 0Kondisi (3‟) dan (4‟) pada subiterasi kedua terpenuhi jika minimal
(P4 = 0 dan P6= 0) atau P2= 0 atau P8= 0. Kedua kondisi tersebut menunjukkan
bahwa titik yang akan dihapus berada pada batas ujung-ujung selatan-timur atau
batas tepi utara-barat.
Subiterasi pertama diterapkan ke seluruh titik batas pada citra biner. Jika
satu atau lebih syarat dari kondisi (1), (2), (3), dan (4) tidak dipenuhi, titik tersebut
tidak ditandai untuk dihapus. Sebaliknya, jika semua kondisi terpenuhi, maka titik
tersebut ditandai untuk dihapus. Titik–titik batas tersebut tidak dihapus terlebih
dahulu, sampai semua titik batas dievaluasi pada subiterasi pertama. Hal ini
mencegah perubahan struktur data selama eksekusi algoritma. Setelah subiterasi
pertama selesai dievaluasi terhadap semua titik batas, titik-titik yang diberi tanda
dihapus (misalnya dengan cara mengubah obyek menjadi latar atau mengubah
nilai piksel dari 1 ke 0).
Setelah subiterasi pertama selesai dilakukan, maka proses akan
subiterasi pertama. Pada subiterasi kedua, titik-titik batas juga tidak akan dihapus
terlebih dahulu, sampai semua titik dievaluasi. Selama proses evaluasi, titik hanya
akan ditandai untuk dihapus jika titik tersebut memenuhi seluruh kondisi pada
subiterasi kedua. Setelah seluruh titik pada subiterasi kedua selesai dievaluasi,
maka titik yang telah ditandai, akan dihapus.
Subiterasi pertama dan kedua diterapkan berulang-ulang, sampai tidak
ada lagi titik yang dapat dihapus.
Dari keterangan di atas, dapat diambil kesimpulan bahwa satu iterasi
pada algoritma penipisan ini terdiri atas 6 langkah, yaitu:
1. Membaca seluruh titik pada citra biner, untuk setiap titik yang merupakan
obyek citra terapkan subiterasi pertama.
2. Jika sebuah titik memenuhi ke-4 kondisi pada subiterasi pertama, tandai titik
tersebut sebagai titik yang akan dihapus.
3. Menghapus seluruh titik yang sudah diberi tanda.
4. Membaca seluruh titik citra hasil subiterasi pertama, untuk setiap titik yang
merupakan obyek citra terapkan subiterasi kedua.
5. Jika sebuah titik memenuhi ke-4 kondisi pada subiterasi kedua, tandai titik
tersebut sebagai titik yang akan dihapus.
Langkah 1-6 akan terus berulang hingga tidak ada lagi titik yang dapat
dihapus. Gambar 2.13 merupakan contoh hasil dari implementasi algoritma
penipisan zhang suen, dimana piksel yang ditandai dengan simbol “
.
” merupakanpiksel yang akan dihapus.
Pada Lampiran 3. – Lampiran 14. akan ditunjukkan proses penipisan huruf jawa „Ra‟ dengan menggunakan algoritma zhang suen. Melalui proses
tersebut, penipisan citra biner dengan obyek huruf jawa „Ra‟ yang berukuran
31x21 piksel, membutuhkan 3 kali iterasi dengan 6 kali subiterasi. Pada iterasi
ke-3 dan subiterasi ke-2, ketika seluruh piksel dievaluasi, ternyata tidak
ditemukan piksel yang akan dihapus, dengan kata lain rangka sudah terbentuk dan
(a) (b)
(c) (d)
Gambar 2.13. (a) Citra Awal, (b) Citra Hasil Subiterasi I,
(c) Citra Hasil Subiterasi II, (d) Hasil akhir Setelah Melalui Beberapa Iterasi (Zhang dan Suen, 1984)
2.4.2. Analisa Algoritma Penipisan
Menurut Jang dan Chin, algoritma penipisan dianalisa untuk
menunjukkan bahwa suatu algoritma penipisan selalu menghasilkan rangka yang
memliki ketebalan sebesar 1 piksel dan menghasilkan rangka yang saling
Menganalisa suatu algoritma diperlukan suatu alat ukur yang dapat
membuktikan apakah rangka yang dihasilkan memenuhi kriteria rangka yang
saling terhubung dengan ketebalan 1 piksel. Untuk itu pada penelitian ini penulis
akan menganalisa rangka hasil penipisan salah satu algoritma penipisan yakni
algoritma penipisan zhang suen, berdasarkan ketebalan rangka dan keterhubungan
antar piksel rangka apakah sesuai dengan topologi citra aslinya, sehingga analisa
dilakukan dengan menggunakan kedua pendekatan tersebut sesuai dengan yang
dijabarkan oleh Jang dan Chin (Jang dan Chin, 1990).
Ketentuan-ketentuan / definisi yang akan digunakan dalam analisa,
dijelaskan sebagai berikut (Jang dan Chin, 1990):
Sebuah himpunan disebut berhingga jika mengandung elemen-elemen
yang berhingga. Misalnya P adalah himpunan bagian berhingga dari Z2. Z2 adalah matrik 2 dimensi, sedangkan Z adalah himpunan bilangan bulat (integer). P
mewakili sebuah citra dengan luas yang berhingga yang seluruhnya mengandung
nilai 1, dan Q={0, 1} yaitu himpunan yang elemennya berisi 0 atau 1.
Sebuah citra biner berhingga adalah sebuah fungsi yang memetakan P ke
dalam Q. Kemudian citra biner X secara unik didefinisikan sebagai himpunan
obyek yaitu himpunan S.
S = {p P : X(p) = 1}
Kemudian mengidentifikasi citra biner dengan himpunan obyek (S).
Himpunan-himpunan ini adalah sembarang himpunan bagian dari P.
Definisi 1: Sebuah titik p mempunyai 4 tetangga yang disebut atas,
Gambar 2.14. Titik-titik ini disebut 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.
Definisi 2: Sebuah titik p mempunyai 4 tetangga diagonal, yaitu titik e, f,
g, dan h seperti ditunjukkan pada Gambar 2.14. Ke-empat titik tersebut, bersama
dengan titik 4-neigbors seperti yang disebutkan pada definisi 1, maka akan
disebut 8-neigbors dari p (atau 8-adjacent dari p). Misalnya U, V S, dan beberapa titik dari U adalah 8-adjacent terhadap beberapa titik dari V, maka U dikatakan 8-adjacent terhadap V.
(a) (b)
Gambar 2.14. (a) 4-neigbors dan 8-neigbors dari titik p,
(b) koordinate 4-neigbors dan 8-neigbors dari titik p
Definisi 3: Sebuah 8-path ataupun 4-path yang disebut (x,y) yaitu
panjang n dari x ke y adalah sebuah urutan dari titik-titik ( x = x0, x1, x2, ...,xn = y),
dimana xi adalah 8-neigbors atau 4-neigbors dari xi-1, untuk 1 i n, seperti
ditunjukkan pada Gambar 2.15, (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-neigbors dari x0 , x2 merupakan 8-neigbors dari x1 , x3 merupakan 4-neigbors dari
x4 , begitu seterusnya hingga x6.
(-1,-1) (0,-1) (1,-1) (-1,0) (0,0) (1,0)
(-1,1) (0,1) (1,1)
e A f
d P b
Gambar 2.15. (a) 4-path dan 8-path (x,y)
Definisi 4: Misalkan x dan y adalah 2 titik yang berbeda dalam S. Titik x
disebut merupakan 8-path-connected atau 4-path-connected terhadap y, jika
terdapat sebuah 8-path ataupun 4-path, (x,y), dalam S. Definisi ini
menyiratkan bahwa jika x adalah 4-path-connected terhadap y, maka x juga
8-path-connected terhadap y. Namun keadaan sebaliknya tidak selalu terpenuhi. Definisi 5: Misalkan x S, 8-component (terkadang disebut juga sebagai
8-connected-component) atau 4-component 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.
X = x0 x2 x3
x1 x4
x5
(a) (b)
(c)
Gambar 2.16. (a) citra T. (b) 4-connected-component juga 8-connected
-component dari S dan S c adalah 4-connected. (c) 8-connected-component dari S
dan S c 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 adalah 4-adjacent terhadap y, x S, y S c }. Interior dari S
didefinisikan sebagai himpunan perbedaan antara S dan bordernya. Seperti
dijelaskan pada Gambar 2.17, (a) piksel-piksel obyek yang bernilai „1‟ adalah
anggota S, maka (b) piksel-piksel obyek yang termasuk border dan merupakan 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0
4-adjacent terhadap piksel berwarna putih (S c), sedangkan (c) piksel-piksel obyek
yang termasuk interior dari S, yaitu piksel-piksel yang merupakan anggota S
tetapi bukan border.
(a) (b)
(c)
Gambar 2.17. (a) Citra T, yang memuat anggota S, (b) Border dari S,dan
(c) Interior dari S.
Definisi 8: Component dari Sc, c
S
K
, yang mengandung baris-baristeratas dan dasar (baris pertama dan terakhir) maupun kolom paling kiri dan
paling kanan (kolom pertama dan terakhir) dari sebuah daerah segi empat
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
0 1 1 0
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1 1
0 0
1 1
1 1
1 1 1 1
0 1 1 1 1 1 1 1 0
1 1 1 1
1 1
berhingga yang merupakan anggota S, disebut latar (background) dari S. Semua
komponen lain dalam Sc disebut lubang (holes) dalam S. Seperti ditunjukkan pada Gambar 2.18, (a) piksel-piksel obyek yang bernilai „1‟ adalah anggota S, maka (b)
piksel-piksel latar yang berwarna putih, diluar piksel obyek bernilai „1‟ adalah
background dari S, sedangkan (c) piksel-piksel berwarna kuning adalah holes dari
S, yaitu piksel-piksel lain yang bukan merupakan anggota S dan bukan
background.
(a) (b)
(c)
Gambar 2.18. (a) Citra T, yang memuat anggota S, (b) Background dari S,dan
(c) Holes dalam S.
X X X X X X X X X X X
X X X X
X X X
X X
X X
X X
X X X
X X
X X
X X
X X X
X X X X
X X X X X X X X X X X X X X X X X X X X X X
X 1 1 1 1 1 1 1 X X X X 1 1 1 1 1 1 1 1 X X X 1 1 v v v V v 1 1 X X 1 1 v 1 1 1 v 1 1 X X 1 1 v v v V v 1 1 X X 1 1 1 1 1 1 1 1 X X X 1 1 v v v V v 1 1 X X 1 1 v 1 1 1 v 1 1 X X 1 1 v v v V v 1 1 X X 1 1 1 1 1 1 1 1 X X X 1 1 1 1 1 1 1 X X X X X X X X X X X X X X
0 0 0 0 0 0
v v v v v
v v
v v v v v
v v v v v
v v
Definisi 9: S adalah simply connected jika S adalah 8-connected dan
tidak mempunyai holes. S disebut multiply connected jika S adalah 8-connected
tetapi mempunyai holes.
Definisi 10 : Diberikan sebuah object S yang adalah 8-connected dan Sc mengandung 4-connected component, skeleton dari S yaitu I harus memenuhi
kondisi connectivity dan one pixel thickness yang dijabarkan sebagai berikut :
2.4.2.1.One-Pixel Thickness
Suatu rangka hasil penipisan dikatakan memiliki ketebalan 1 piksel bila
tidak memuat template A = {A1, A2, A3, A4} yang berukuran 2x2, dengan struktur seperti ditunjukkan