• Tidak ada hasil yang ditemukan

PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN ALGORITMA WANG – ZHANG SKRIPSI

N/A
N/A
Protected

Academic year: 2019

Membagikan "PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN ALGORITMA WANG – ZHANG SKRIPSI"

Copied!
164
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

iii 

(5)

 

(6)

 

(7)

vi

 

(8)

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.

(9)

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.

(10)

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.

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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 

(19)

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 

(20)

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 

(21)

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

(22)

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 

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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 :

(31)

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

(32)

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).

(33)

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

(34)

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

(35)

“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,

(36)

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 citraY”, jika piksel yang sedang diproses adalah piksel “7” dan previous point dari piksel “7” adalah “6” maka z =

(37)

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

(38)

(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

(39)

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

(40)

1 1 1 0

0 0 1

0 1 1 2 

A(p)=

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

(41)

(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

(42)

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

(43)

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.

(44)

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

(45)

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.

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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 :

(51)

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)

(52)

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)

(53)

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)

(54)

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

(55)

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!)

(56)

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.

(57)

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

(58)

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 :

(59)

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

(60)

3.1.2.2 Analisa Kebutuhan HardwareSoftware

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

(61)

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

(62)

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.

(63)

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.

(64)

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

(65)
(66)
(67)

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

(68)

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

(69)

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

(70)
(71)

• 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

(72)

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

Gambar

Gambar 5.3 : component Rangka yang Terdapat pada Citra Asli Huruf
Tabel 5.1 : Rangka Hasil Penipisan Algoritma Wang-Zhang  Menggunakan Citra
Gambar 2.1. (a) Citra biner. (b) Representasi citra biner dalam data digital
Gambar 2.2. Representasi Citra Keabuan
+7

Referensi

Dokumen terkait

Pada gambar diatas menjelaskan tentang proses ubah data member yang dilakukan oleh seorang admin. Statechart Diagram Hapus

Penelitian ini menggunakan metode deskriptif kuantitatif, yaitu metode yang menganalisis masalah dengan cara mendeskripsikannya pada data-data yang sudah ada, berupa

Kenaikan produksi kedelai tahun 2009 terbesar terjadi pada panen subround September-Desember sebesar 916 ton biji kering atau 85,69 persen dibandingkan dengan periode yang sama

Unsur yang membentuk biaya penuh suatu produk adalah terdiri dari biaya langsung yang berkaitan dengan produk ditambah dengan bagian biaya tidak langsung yang

Pembangunan HTI menggunakan jenis asli dikombinasikan dengan hutan rakyat merupakan salah satu alternatif yang dapat dilakukan swasta untuk merehabilitasi hutan rawa

Hal tersebut dikarenakan setiap janin yang ada di dalam rahim sang ibu adalah pemberian dari Allah SWT, terlepas apakah kehamilan tersebut karena suatu kehamilan

Pengaruh nilai hematologisayam petelur fase layer pada THI yang rendah dengan THI yang tinggi tidak menunjukkan perbedaan yang dilihat dari jumlah eritrosit, nilai hematokrit,

Semua kegiatan pemantauan pertumbuhan dan pemantauan perkembangan dicatat pada Formulir Deteksi Dini Tumbuh Kembang Anak, Rekapitulasi Deteksi Dini Tumbuh Kembang, kohort