• Tidak ada hasil yang ditemukan

Penipisan citra aksara Jawa menggunakan algoritma Rosenfeld - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Penipisan citra aksara Jawa menggunakan algoritma Rosenfeld - USD Repository"

Copied!
199
0
0

Teks penuh

(1)

i

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika

Oleh :

Kristi Krisnawati

NIM : 055314030

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

ii

THE THINNING OF JAVANESE CHARACTER IMAGE

USING ROSENFELD ALGORITHM

A Thesis

Presented as Partial Fullfillment of The Requirements to Obtain The Scholar Technique Degree in Department of Informatics Engineering

By : Kristi Krisnawati Student Number : 055314030

INFORMATICS ENGINEERING STUDY PROGRAM

INFORMATICS ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

(3)
(4)
(5)

v ABSTRAK

Rangka citra digital sering dianggap sebagai informasi esensial sebuah obyek yang berguna untuk analisis lebih lanjut seperti pengenalan karakter. Skripsi ini mengusulkan algoritma penipisan Rosenfeld untuk mendapatkan rangka sebuah citra digital karena terbukti dapat menghasilkan rangka yang tipis dan terhubung. Tujuan penelitian ini adalah untuk mengetahui cara kerja algoritma Rosenfeld dan melihat unjuk kerja algoritma ini dalam menipiskan citra aksara jawa.

Penelitian dilakukan dengan menganalisa citra rangka yang dihasilkan oleh algoritma ini menurut beberapa parameter yaitu keterhubungan, ketebalan, waktu dan persentase jumlah piksel yang dihapus. Selain itu juga disebarkan kuisioner terhadap 50 orang responden untuk melihat kemiripan citra hasil penipisan dengan citra aslinya, dimana algoritma Hilditch digunakan sebagai pembanding. Penipisan dan pengujian secara otomatis dilakukan dengan membangun aplikasi berbasis Java dan Matlab, serta JMatLink sebagai penghubungnya.

(6)

vi ABSTRACT

Skeletons of digital image are often assumed as object’s essential information that is useful for further analysis such as character recognition. This thesis proposed Rosenfeld thinning algorithm to obtain skeleton of a digital image because this algorithm has proven generating a thin and connected skeleton. The purposes of this research are to understand how this algorithm works and also to observe the performance of this algorithm to thin an Javanese character image.

This research was conducted by analyzing the skeleton images which is produced by this algorithm according to several parameters; they are connectivity, one pixel thickness, time consumption and percentage of pixel deleted. Questionnaires were also distributed to 50 respondences to observe the resemblance of skeleton image with its original image, where Hilditch algorithm is used as comparator. The thinning and testing is done automatically by building Java and Matlab-based application, with JMatLink as the connector.

(7)

vii

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yesus Kristus yang telah melimpahkan segala cinta-Nya sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik. Tugas akhir yang berjudul “Penipisan Citra Aksara Jawa Menggunakan Algoritma Rosenfeld” ini disusun sebagai pemenuhan salah satu syarat untuk memperoleh gelar Sarjana Teknik Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.

Penyelesaian tugas akhir ini tentu saja tidak terlepas dari bantuan dari berbagai pihak kepada penulis. Oleh karena itu, dengan segala ucapan syukur penulis ingin menyampaikan banyak terima kasih kepada :

1. Anastasia Rita Widiarti, S.Si., M.Kom., selaku dosen pembimbing tugas akhir yang telah memberikan waktu, ide, kritik dan saran yang sangat membantu penulis dalam mengerjakan tugas akhir ini.

2. Cyprianus Kuntoro Adi, SJ, MA, M.Sc., Ph.D., Lusia Krismiyati Budiasih, S.Si., M.Si., Sri Hartati Wijono, S.Si., M.Kom., Dr. G. Budi Subanar, SJ, Iwan Binanto S.Si., M.Cs., Eko Hari Parmadi, S.Si., M.Kom., yang telah memberikan waktu, pikiran dan ide untuk membantu dan membimbing penulis untuk terus belajar.

(8)

viii

4. Leonilla Tetty Koesharyanti Harjosuwignyo dan Drs. Adrianto Alio, orang tua yang selalu berusaha memberikan yang terbaik, terima kasih atas cinta yang tak terhingga itu.

5. Tyastri Alita Petronella dan Maria Goretti Wenny Eliandra, saudari yang membuat penulis selalu ingat untuk segera menyelesaikan tugas akhir ini.

6. Segenap karyawan sekretariat, laboran, teman-teman dan 50 responden, atas bantuan yang diberikan kepada penulis.

7. Dan semua pihak-pihak yang telah membantu penulis.

Penulis menyadari skripsi ini masih jauh dari sempurna, maka penulis mengharapkan kritik dan saran yang membangun guna penyempurnakan skripsi ini. Akhirnya penulis berharap, semogra skripsi ini berguna bagi semua pihak

(9)
(10)
(11)

xi DAFTAR ISI

HALAMAN JUDUL ………... i

HALAMAN PERSETUJUAN PEMBIMBING ………... iii

HALAMAN PENGESAHAN ………... iv

ABSTRAK ………... v

ABSTRACT ………... vi

KATA PENGANTAR ………...………... vii

PERNYATAAN KEASLIAN KARYA ………..…………... ix

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ……….. x

DAFTAR ISI ……….………... xi

1.5 METODOLOGI PENELITIAN ... 5

1.6 SISTEMATIKA PENULISAN ... 8

BAB II LANDASAN TEORI ... 10

2.1 Citra ...………... 10

(12)

xii

2.2 Proses pengolahan citra ...…... 13

2.3 Binarisasi ……… 14

2.4 Penipisan ……… 16

2.5 Algoritma Penipisan dan Algoritma Rosenfeld ... 18

2.6 Pengujian Rangka ... 24

2.7 Kompleksitas Waktu Asimptotik Algoritma ………... 32

2.7.1 Kompleksitas Algoritma ………. 16

2.7.2 Kompleksitas Waktu Asimptotik ……… 18

2.8 Aksara Jawa ……… 38

2.9 Bahasa pemrograman Java, Matlab, dan JMatLink sebagai penghubungnya ... 39

2.9.1 Java dan Netbeans... 39

2.9.2 Jmatlink ... 39

2.9.3 Matlab... 39

BAB III ANALISIS DAN PERANCANGAN …………... 41

3.1 Gambaran Sistem Secara Umum...……... 41

3.2 Analisa Kebutuhan Proses ……….. 42

3.2.1 Proses Input Citra ………... 43

3.2.2 Proses Binarisasi ……… 44

3.2.3 Proses Penipisan ………. 46

3.2.4 Proses Simpan Citra ………... 49

3.3 Kebutuhan Perangkat Lunak ………... 49

3.4 Kebutuhan Perangkat Keras ………... 50

(13)

xiii

3.6 Perancangan Pengujian Sistem ………... 57

BAB IV IMPLEMENTASI……….... 60

4.1. Implementasi Proses ………....…… 60

4.1.1. Proses Input Citra ……….. 60

4.1.2. Proses Binarisasi ………... 61

4.1.3. Proses Penipisan ……… 61

4.1.4. Implementasi Pengujian Ketebalan ………... 63

4.1.5. Proses Simpan Citra ……….. 64

4.2. Implementasi Interface ………. 64

BAB V HASIL DAN PEMBAHASAN……….... 71

5.8 Hasil Percobaan ……….………. 71

5.9 Hasil Kuisioner ……….. 85

5.10 Pembahasan ………... 90

5.10.1 Pembahasan Hasil Percobaan ……….… 90

5.10.1.1 One Pixel Thickness ………...………….… 90

5.10.1.2 Jumlah Piksel yang Dihapus ………..…. 91

5.10.1.3 Waktu Penipisan ………..…… 92

5.10.1.4 Connecitvity ………..……... 93

5.10.2 Pembahasan Hasil Kuisioner ………..……… 104

5.11 Kompleksitas Waktu Asimptoti ..……….……….. 106

BAB VI KESIMPULAN DAN SARAN ………..………… 109

6.8 Kesimpulan ……….……… 109

6.9 Saran ……….……..…… 111

(14)

xiv

(15)

xv

DAFTAR TABEL

Tabel Keterangan Halaman

5.1 Tabel Hasil Percobaan 72-84

5.2 Tabel Rekapitulasi Hasil Kuisioner 86-88

5.3 Tabel Persentase Kemiripan 89-90

(16)

xvi

DAFTAR GAMBAR

Gambar Keterangan Halaman

2.1 Gambar Citra biner dan representasinya dalam data digital

11

2.2 Citra skala keabuan dan representasinya dalam data digital

12

2.3 Citra warna dan representasinya dalam data digital 13 2.4 Urutan Langkah Analisis Citra Dokumen 14

2.5 Proses Penipisan, citra masukkan dan keluarannya 16

2.6 8-adjacency dari p 18

2.13 Ilustrasi border dan interior 28

2.14 Ilustrasi background dan holes 29

2.15 Ilustrasi simply connected 30

2.16 Template A 31

2.17 Template B dan C 31

2.18 Aksara Jawa 38

(17)

xvii

Gambar Keterangan Halaman

3.2 Konteks Diagram 42

3.3 DFD Level 1 43

3.4 Flowchart input citra 43 3.5 Flowchart Proses Binarisasi 45 3.6 Flowchart Proses Penipisan 47

3.7 Halaman Awal 51

3.8 Halaman Utama 52

3.9 Halaman Input Citra 54

3.10 Halaman Simpan 54

3.11 Halaman Tentang Program 55

3.12 Halaman Help 56

3.13 Halaman Konfirmasi Keluar 56

3.14 Flowchart Pengujian one-pixel thickness 58

3.15 Flowchart Pengujian connectivity 59

4.1 Halaman Utama 65

4.2 Buka Citra 65

4.3 Tampilkan Citra 66

4.4 Hasil Proses Penipisan 67

4.5 Simpan Citra 67

4.6 Konfirmasi Simpan Citra 68

(18)

xviii

Gambar Keterangan Halaman

4.9 Cara mengakses menu item ”About Program” 69

4.10 Menu item “About Program” 70

4.11 Konfirmasi Keluar 70

5.1 Representasi Citra RA_3.JPG 95

5.2 Representasi Citra Rangka RA_3.JPG 96

5.3 Letak Rangka RA_3.JPG pada Citra Aslinya 97

5.4 Representasi Citra DHA_2.JPG 98

5.5 Representasi Citra Rangka DHA_2.JPG 99 5.6 Letak Rangka Citra DHA_2.JPG pada Citra Aslinya 100

5.7 Representasi Citra NGA_3.JPG 101

(19)

1 BAB I PENDAHULUAN

1.1. LATAR BELAKANG

(20)
(21)

Memang dalam proses penerjemahan bahasa jawa dengan aksara jawa ke dalam bahasa Indonesia dengan aksara latin, dibutuhkan peran serta orang-orang dari berbagai bidang seperti Bahasa, Sastra, Kebudayaan, Informatika dan lainnya. Dalam menerjemahkan aksara jawa ke aksara latin yang terkomputerisasi / tidak manual, perlu dilakukan proses pengenalan pola dari masing-masing karakter aksara jawa untuk kemudian dapat diputuskan “huruf apakah itu?” dan kemudian menerjemahkannya ke dalam huruf latin. Oleh karena itu, penulis ingin turut serta dalam bagian kecil pengenal karakter huruf jawa tersebut yaitu melakukan proses penipisan huruf jawa. Proses penipisan / thinning ini adalah salah satu tahap dalam preprocessing yaitu proses untuk mendapatkan rangka / skeleton 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 mengapa proses penipisan perlu dilakukan.

(22)

1.2. RUMUSAN MASALAH

Dari latar belakang di atas, masalah dapat dirumuskan sebagai berikut :

1. Bagaimana cara kerja algoritma penipisan Rosenfeld?

2. Bagaimana mengimplementasikan algoritma Rosenfeld pada penipisan citra aksara jawa dengan bahasa pemrograman Java dan Matlab yang dihubungkan dengan JMatLink?

3. Apakah algoritma Rosenfeld merupakan algoritma yang efektif untuk melakukan penipisan citra aksara jawa dalam tujuan mendapatkan hasil penipisan (rangka) yang sesuai dengan kriteria operasi penipisan?

1.3. BATASAN MASALAH

Dalam pembuatan program implementasi algoritma Rosenfeld pada penipisan citra aksara jawa ini ditentukan beberapa batasan masalah sebagai berikut :

1. Citra yang dapat diproses adalah citra biner atau citra skala keabuan (grayscale) dengan ekstensi *.jpg.

(23)

3. Proses utama yang dilakukan program adalah proses penipisan. Sebagai proses tambahan adalah proses binarisasi, proses ini dilakukan sebagai preprocessing dari citra masukkan yang bukan biner sehingga bisa diproses oleh program.

4. Pengujian hasil penipisan yang lakukan adalah pengujian connectivity dan ketebalan rangka / thickness.

1.4. TUJUAN PENELITIAN

Tujuan penulisan skripsi adalah untuk mengetahui cara kerja algoritma penipisan Rosenfeld dengan membuat aplilkasi berbasis java dan matlab, serta untuk mengetahui apakah algoritma Rosenfeld merupakan algoritma yang efektif untuk melakukan proses penipisan citra, sesuai dengan syarat-syarat penipisan yaitu connectivity dan ketebalan.

1.5. METODOLOGI PENELITIAN

Metodologi penelitian yang dilakukan adalah sebagai berikut :

1.5.1. Studi literatur yang bertujuan untuk :

1. Mempelajari teori citra dan proses pengolahan citra digital.

(24)

3. Mempelajari metode pemilihan threshold Otsu yang akan digunakan untuk melakukan proses binarisasi.

4. Mempelajari bahasa pemrograman Java, Matlab, serta JMatLink sebagai penghubung antara bahasa pemrograman Java dan Matlab.

1.5.2. Melakukan analisis dan perancangan perangkat lunak dengan menggunakan metode waterfall. Menurut Pressman, (Pressman, 1997) langkah-langkah yang terdapat didalam metode waterfall adalah sebagai berikut :

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

1.5.2.2. Desain

(25)

detail algoritma. Desain didokumentasikan dan menjadi bagian dari pembuatan perangkat lunak.

1.5.2.3. Implementasi

Desain yang telah dirancang harus diterjemahkan kedalam bahasa yang dapat dimengerti oleh mesin, atau dengan kata lain tahap ini merupakan tahap pembuatan kode dari rancangan yang telah dibuat, dimana pengkodean dilakukan dengan menggunakan bahasa pemrograman. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.

1.5.2.4. Pengujian

(26)

1.5.3. Melakukan analisis dan pengujian terhadap hasil penipisan dengan syarat-syarat hasil penipisan citra yang sudah ditentukan sebelumnya dan mengambil kesimpulan dari percobaan yang telah 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, batasan masalah, tujuan dan manfaat penelitian, metode penulisan dan keterangan mengenai sistematika penulisan. BAB II LANDASAN TEORI

Bab ini berisi 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

(27)

BAB IV IMPLEMENTASI

Berisi tentang implementasi hasil dari analisis dan perancangan sistem dalam bentuk program (proses, interface 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

(28)

10 BAB II LANDASAN TEORI

Pada bab ini dituliskan landasan teori yang menjadi acuan pengerjaan skripsi ini yaitu teori citra, proses pengolahan citra digital, binarisasi, penipisan citra, algoritma penipisan Rosenfeld, pengujian hasil penipisan, kompleksitas algoritma, aksara jawa dan bahasa pemrograman yang dipakai.

2.1. Citra

2.1.1. Pengertian Citra

Citra adalah representasi informasi yang diciptakan dalam bentuk dua dimensi dimana representasi tersebut merupakan susunan array dari bilangan real atau bilangan kompleks yang diwakilkan dalam bilangan–bilangan bit terhingga. Menurut Munir, (Munir, 2004) citra adalah gambar pada bidang dwimatra (dua dimensi).

Citra digital tersusun atas kumpulan titik atau elemen-elemen gambar yang disebut piksel / pixel (picture element). Piksel merupakan elemen terkecil dari sebuah citra digital, dengan jumlah total piksel adalah M x N, dimana M merupakan height atau nilai tinggi citra digital dan N merupakan width atau nilai lebar citra digital. Setiap piksel memiliki nilai berupa angka digital yang

(29)

Achmad & Firdausy (2005) mengatakan bahwa format nilai piksel ditentukan oleh format citra digital antara lain :

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

= 0 0 1 1 = 0 0 1 1 = 0 0 1 1 = 0 0 0 1

Gambar 2.1Citra biner dan representasinya dalam data digital 2. Citra Skala Keabuan

(30)

pada umumnya warna yang dipakai adalah antara hitam sebagai warna minimal dan putih sebagai warna maksimalnya, sehingga warna antaranya adalah abu-abu.

= 107 153 177 175 = 108 143 177 176 = 105 128 162 176 = 105 123 157 17

Gambar 2.2 Citra skala keabuan dan representasinya 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.

(31)

= 183 168 235 156 131 212 151 115 205 157 101 200

= 146 139 207 130 115 198 139 110 203 149 102 204

= 124 122 195 112 104 190 123 103 202 136 99 204

= 128 131 208 108 104 198 110 98 200 122 93 201

Gambar 2.3 Citra warna dan representasinya dalam data digital

2.2. Proses pengolahan citra

Document image analysis (analisis citra dokumen) adalah sebuah

(32)

Gambar 2.4 Urutan Langkah Analisis Citra Dokumen

Pada langkah Pixel-Level Processing atau yang sering juga disebut Preprocessing atau Low-Level Processing, terdapat beberapa proses yang perlu dilakukan untuk mempersiapkan citra pada analisis yang lebih lanjut antara lain binarisasi / pengambangan (thresholding), reduksi derau, dan penipisan.

2.3. Binarisasi

(33)

daerah obyek citra / foreground dan bagian dari daerah latar atau background. Dengan kata lain memisahkan piksel-piksel menjadi piksel

obyek atau piksel latar. 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 output berupa citra biner yang baik pula. Karena itu pencarian nilai ambang merupakan hal yang sangat penting dalam binarisasi.

Dalam skripsi ini, pencarian nilai ambang dilakukan dengan memanggil fungsi graythresh yang terdapat dalam matlab. Fungsi ini menghitung nilai ambang sebuah citra skala keabuan dengan menggunakan metode Otsu. Metode ini mengasumsikan bahwa citra yang akan diambangkan mengandung dua kelas piksel, yaitu kelas objek dan latar, kemudian menghitung ambang optimum yang memisahkan dua kelas tadi sedemikian rupa sehingga kombinasi penyebarannya meminimalkan intra-class variance / within-class variance / varian dalam kelas, dengan kata lain memaksimalkan inter-class variance / between-class variance / varian antar kelas. Sehingga ambang dapat dicari dengan

(34)

Citra Asli Citra hasil thinning

2.4. Penipisan

Menurut O’Gorman dan Kasturi, (O’Gorman & Kasturi 1997) penipisan adalah sebuah operasi preprocessing citra dimana nilai biner region / daerah citra (daerah citra yang dianggap obyek) direduksi

menjadi garis yang kira-kira merupakan garis tengah, yang disebut rangka, dari daerah citra tersebut. Tujuan dari penipisan adalah mereduksi komponen citra menjadi suatu informasi yang sifatnya esensial / mendasar sehingga analisis lebih lanjut dan recognition (pengenalan) dapat terfasilitasi. Contohnya kata yang sama dapat ditulis tangan dengan pen yang berbeda dengan perbedaan ketebalan pula, namun informasi harafiah dari kata tersebut adalah sama. Untuk pengenalan dan metode analisa dimana penelusuran garis (line tracing) sudah dilakukan, akan lebih mudah dan cepat untuk menelusuri sepanjang garis yang lebarnya satu piksel daripada yang lebih lebar.

Gambar 2.5 Proses Penipisan, citra masukkan dan keluarannya

Terdapat beberapa persyaratan penipisan yang dijelaskan oleh O’Gorman dan Kasturi, (O’Gorman & Kasturi 1997), yaitu :

(35)

Hasil penipisan haruslah mempertahankan connectivity-nya, ini adalah syarat mendasar dari penipisan. Hal ini menjamin adanya jumlah yang sama antara connected line structures / struktur garis terhubung yang telah ditipiskan, yaitu hasil penipisannya, dengan connected region / daerah terhubung dari citra aslinya. Dalam

literatur lain, connected line structures dan connected region ini disebut sebagai connected component.

2. Hasil penipisan minimal harus 8-connected / 8-terhubung.

3. Perkiraan lokasi endline (titik yang berada diakhir garis) harus dipertahankan.

4. Hasil penipisan harus mendekati garis tengah region.

5. Extraneous Spurs (cabang-cabang pendek yang tidak ada hubungannya) yang dihasilkan dari proses penipisan harus diperkecil.

(36)

2.5. Algoritma Penipisan dan Algoritma Rosenfeld

Seperti yang telah dijelaskan pada subbab 2.4 di atas bahwa salah satu proses yang terdapat pada Pixel-Level Processing adalah penipisan yang berfungsi untuk mencari informasi esensial dari suatu citra yang dalam hal ini adalah citra karakter aksara jawa.

Menurut (Toussaint, -), algoritma Rosenfeld merupakan algoritma paralel yang bekerja dengan secara berturut-turut membuang subset dari boundary / batas dari region objek atau yang disebut juga contour pixel

atau contour point (piksel luar / tepi). Berikut adalah beberapa istilah yang ada dalam algoritma Rosenfeld yang diungkapkan oleh Klette, (Klette, 2002) :

1. Misal p adalah sebuah piksel objek, 8-adjacency set dari p atau A8(p) adalah sebagai berikut :

X1

Gambar 2.6 8-adjacency dari p

Dimana x9=x1.

8-adjacency set dari p tersebut juga disebut 8-neighbors dari p, atau

(37)

2. Sebuah titik dikatakan α-simple (pendeknya : simple) jika dilakukan penghapusan pada titik ini, tidak akan mengubah α-connectivity. Untuk menguji suatu titik adalah 8-simple maka digunakan definisi H-crossing number seperti yang diungkapkan dibawah ini :

Seringnya melintasi/ menjumpai titik background ke titik objek saat N(p) dilintasi dengan urutan tertentu, memotong sudut antara 8-adjacent 4-neighbors yang hitam.

Rumus XH(p) :

Sebuah titik dikatakan simple jika XH(p)-nya = 1. XH(p) sebenarnya digunakan untuk menghitung jumlah connected component (akan dibahas lebih lanjut pada subbab 2.8) yang tersisa jika titik p dihapus. Maka dari itu kemungkinan jumlah XH(p) pada suatu titik p adalah sebagai berikut :

a. XH(p) = 0

(38)

4-neighbor dan tidak ada atau ada salah satu atau seluruh 8-neighbor dari titik p merupakan piksel obyek, dimana jika

dilakukan penghapusan akan menyebabkan terjadinya holes (dijelaskan lebih lanjut pada subbab 2.8).

X1

Adalah kondisi dimana jika titik p dihapus maka connectivity dari piksel-piksel 8-neighbornya tidak terganggu, karena connected componentnya berjumlah 1.

(39)

c. XH(p) = 2

Dalam kondisi ini jumlah connected component yang ditinggalkan jika titik p dihapus adalah 2 dari yang tadinya 1 karena titik p adalah penghubungnya. Karena itu dalam kondisi ini titik p tidak dapat dihapus karena akan mengubah connectivity tetangga-tetangganya.

Sama dengan kondisi XH(p) = 2 di atas namun jumlah connected component yang ditinggalkan adalah 3.

(40)

e. XH(p) = 4

Sama dengan kondisi XH(p) = 2 di atas namun jumlah connected component yang ditinggalkan adalah 4. Dalam kondisi ini dapat

dikatakan bahwa keempat 4-neighbor dari titik p adalah latar (putih) sedangkan keempat 8-neighbor yang bukan 4-neighbor dari titik p (yaitu titik-titik diagonal p dari 8-adjacency-nya) merupakan titik obyek (hitam).

X1 3. B(p) adalah jumlah titik objek pada A8(p)

Stefanelli dan Rosenfeld, (Stefanelli & Rosenfeld, 1971) mengungkapkan bahwa pada awalnya algoritma Rosenfeld memiliki kekurangan yaitu dapat menghasilkan non-connected atau bahkan empty medial lines atau rangka yang kosong pada sebuah citra.

(41)

yaitu dalam algoritma Rosenfeld, sebuah piksel dihapus jika memenuhi ke-4 syarat di bawah :

1. p adalah piksel obyek

2. p bukan isolated atau end pixel, yang artinya B(p)>1 3. XH(p) = 1

4. x2i+1 = latar dimana i=1,...,4, berturut-turut pada setiap subiterasi.

Dalam skripsi ini yang disebut latar adalah piksel yang mewakili warna putih atau satu, sebaliknya yang disebut obyek adalah piksel yang mewakili warna hitam atau nol.

Pada subiterasi pertama penghapusan hanya dilakukan pada contour pixel dimana x3 = 1 yaitu lower contour pixel atau yang juga

disebut south border. Pada subiterasi kedua penghapusan hanya dilakukan pada contour pixel dimana x5 = 1 yaitu left contour pixel atau yang juga disebut west border. Pada subiterasi ketiga penghapusan hanya dilakukan pada contour pixel dimana x7 = 1 yaitu upper contour pixel atau juga disebut north border. Dan pada subiterasi terakhir penghapusan dilakukan hanya pada contour pixel dimana x9 = 1 yatu right contour pixel atau yang juga disebut east border. Pada dasarnya urutan contour pixel yang dikerjakan lebih

(42)

2.6. Pengujian Rangka

Seperti yang tertera pada sub bab 2.4 tentang persyaratan penipisan, connectivity merupakan syarat yang utama karena jika rangka hasil penipisan tidak memenuhi syarat ini maka bisa saja rangka tersebut tidak lagi dapat dianggap seperti citra aslinya karena ada bagian yang seharusnya terhubung menjadi tidak terhubung, maka syarat ini akan diujikan pada citra hasil penipisan. Di beberapa literatur lain juga disebutkan bahwa selain connectivity, one-pixel thickness merupakan syarat penting dalam penipsan karena jika sebuah rangka hasil penipisan tidak one-pixel thickness maka masih terdapat titik-titik obyek pada citra rangka yang seharusnya dapat dihapus dan keberadaannya tidak akan mengubah connectivity dari rangka yang ditinggalkan. Maka sebuah algoritma diharapkan dapat menghasilkan rangka yang benar-benar tipis yaitu yang merupakan one-pixel thickness. Oleh karena itu, pengujian rangka yang dilakukan dalam penelitian ini adalah mengenai connectivity dan one-pixel thickness berdasarkan (Jang, Ben-Kwei & Ching, Roland T. , 1990).

2.6.1. Definisi-definisi

1. Sebuah himpunan disebut berhingga hanya jika mengandung elemen-elemen yang berhingga.

(43)

3. Jika X adalah himpunan bagian dari Z (yaitu XZ), maka Xc adalah anggota himpunan Z yang bukan anggota himpunan X. 4. Z2 = matrik 2 dimensi dari titik-titik yang diskrit

5. P = himpunan bagian berhingga dari Z2, P merepresentasikan sebuah citra dengan luas yang berhingga yang mengandung semuanya 0, dan Q = {0,1} yaitu himpunan yang elemennya merupakan 0 atau 1.

6. Sebuah citra biner berhingga adalah sebuah fungsi X yang memetakan P kedalam Q. Kemudian citra biner X secara unik didefinisikan oleh himpunan obyeknya yaitu himpunan S:

}

Dengan demikian kita dapat mengidentifikasi citra-citra biner dengan himpunan obyeknya. Himpunan-himpunan ini adalah sembarang himpunan bagian (subset) dari P.

Definisi 1 :

Sebuah titik p mempunyai 4 tetangga yang disebut top, botton, left, right yaitu titik x7, x1, x3 dan x5 dalam gambar 2.7. Titik-titik ini

juga disebut 4-neighbors dari p (atau 4-adjacent terhadap p), seperti yang dijelaskan dalam bab 2 tentang istilah-istilah yang ada dalam algoritma Rosenfeld tentang 8-adjacent set dari p. Misalnya

S V

(44)

Definisi 2 :

Sebuah titik p mempunyai 4 tetangga diagonal yaitu titik x2, x4, x6 dan x8 pada gambar 2.7 dan seperti yang telah dibahas dalam bab 2 tentang istilah-istilah dalam algoritma Rosenfeld, titik-titik ini bersama dengan 4-neighbors-nya disebut 8-neighbors. Misalnya

S V

U, ⊆ , dan beberapa titik dari U adalah 8-adjacent terhadap beberapa titik dari V, maka U dikatakan 8-adjacent terhadap V. Definisi 3 :

Sebuah 8-path ataupun 4-path πn(x,y)yaitu panjang n dari x ke y adalah sebuah urutan / sequence dari titik-titik (x=x0, x1, x 2, . . . , xn=y) dimana xi adalah 8-neighbor atau 4-neighbor dari xi-1, dimana 1≤in

X=X0

X1

X2

X3

X4

X5=Y

(45)

Definisi 4 :

Misalkan x dan y adalah dua titik yang berbeda dalam S. Titik x disebut merupakan 8-path-connected ataupun 4-path-connected terhadap y jika terdapat sebuah 8-path ataupun 4-path , πn(x,y), dalam S. Definisi ini menyiratkan bahwa jika 4-path-connected terhadap y maka x juga 8-path-connected terhadap y. Namun kondisi sebaliknya tidak selalu terpenuhi. Dalam gambar 2.13 di atas x dan y dikatakan 8-path connected.

Definisi 5 :

Misalkan xS, 8-component (atau yang terkadang juga disebut sebagai 8-connected-components) ataupun 4-component dari S, yaitu Ks(x), didefinisikan sebagai berikut :

}

Misalkan gambar 2.13 di atas adalah S, tampak bahwa terdapat sebuah 8-connected component karena untuk sembarang y anggota S selalu ada path menuju x.

Definisi 6 :

(46)

Definisi 7 : didefinisikan sebagai himpunan perbedaan antara S dan border-nya, contohnya :

Gambar 2.13 Ilustrasi border dan interior

(47)

Definisi 8 :

Component dari Sc, c S

K

, yang mengandung baris-baris teratas

dan dasar (baris pertama dan terakhir) maupun kolom paling kiri dan paling kanan (kolom pertama dan terakhir) dari sebuah daerah segi empat berhingga yang merupakan anggota S, disebut latar dari S. Semua component lain dalam Sc disebut holes dalam S.

Gambar 2.14 Ilustrasi background dan holes

Pada gambar 2.15 daerah yang berwarna kuning adalah latar dan yang berwarna hijau adalah holes.

Definisi 9 :

(48)

Dalam skripsi ini istilah 8-connected merujuk pada simply connected atau multiply connected, dan 8-connected object

merujuk sebagai sebuah 8-connected component.

Gambar 2.15 merupakan contoh multiply connected karena 8-connected dan mempunyai holes. Sedangkan gambar 2.16 dibawah

adalah simply connected karena tdak mempunyai holes.

Gambar 2.15 Ilustrasi simply connected

Definisi 10 :

(49)

2.6.2. One-Pixel Thickness

I direduksi menjadi one-pixel thickness, yaitu setiap titik yang secara lokal termasuk pola 2x2 dalam gambar 2.10 di bawah yaitu template A={A1,A2,A3,A4} tidak terdapat dalam I kecuali titik tersebut adalah critical point (adalah titik yang jika dihapus akan merubah connectivity atau menghasilkan hole). Semua kemungkinan critical point yang mengandung salah satu pola A adalah termasuk dalam pola B={B1,B2,B3,B4} dan C pada gambar

Gambar 2.16 Template A

0

(50)

2.6.3. Connectivity

Connectivity : S dan I mempunyai homotopy yang sama (dua

himpunan berhingga dikatakan homotopic jika terdapat korespondensi satu-satu antara connected components dari S dan I; dan juga korespondensi satu-satu antara holes dalam S dan I). Maka dari itu I haruslah juga adalah 8-connected dan komplemennya mengandung 4-connected component.

2.7. Kompleksitas Waktu Asimptotik Algoritma 2.7.1. Kompleksitas Algoritma

Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang (space) yang dibutuhkan untuk menjalankannya. Algoritma yang mangkus adalah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses.

(51)

instruksi dalam sebuah algoritma dapat dilakukan dengan menjumlah semua operasi seperti operasi baca / tulis, operasi aritmatika (+,-,/,*), dan operasi pengisian nilai.

Namun, model perhitungan waktu seperti dikatakan di atas kurang dapat diterima dengan alasan bahwa dalam prakteknya tidak ada informasi berapa waktu sesungguhnya untuk melaksanakan suatu operasi dan juga komputer dengan arsitektur yang berbeda akan berbeda pula lama waktu untuk setiap jenis operasinya. Selain bergantung dengan hardware komputer, kebutuhan waktu sebuah program juga ditentukan oleh compiler bahasa yang digunakan. Karena itu, dibutuhkan suatu model abstrak pengukuran waktu / ruang yang harus independen dari pertimbangan hardware dan compiler apapun. Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu / ruang ini adalah kompleksitas algoritma.

Terdapat dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu, T(n) diukur dari jumlah tahapan komputasi yang dibutuhkan untuk

(52)

waktu (ruang) yang diperlukan algoritma seiring meningkatnya ukuran masukan n bisa ditentukan.

2.7.2. Kompleksitas Waktu Asimptotik

Dalam prakteknya, kompleksitas waktu dihitung berdasarkan jumlah operasi abstrak yang mendasari suatu algoritma, dan memisahkan analisisnya dari implementasi. Misalnya pada algoritma hitung rerata di bawah ini :

procedure HitungRerata(input a1, a2, ..., an : integer, output r : real)

{ Menghitung nilai rata-rata dari sekumpulan elemen larik integer a1, a2, ..., an.

Nilai rata-rata akan disimpan di dalam peubah r. Masukan: a1, a2, ..., an

Keluaran: r (nilai rata-rata) }

(53)

kompleksitas waktu asimptotiknya adalah O(n). Notasi “O” disebut notasi “O - Besar” (Big-O) yang merupakan notasi kompleksitas waktu asimptotik.

Definisi :

T(n)= O(f(n)) (baca : T(n) adalah O(f(n) yang artinya T(n) berorde (pangkat) paling besar f(n) ) bila terdapat konstanta C dan n0 sedemikian hingga

T(n) C(f(n))

untuk n ≥ n0.

f(n) adalah batas atas (upper bound) dari T(n) untuk n yang besar.

Contohnya :

1. Misalkan terdapat sebuah fungsi kompleksitas waktu : T(n)=2n+1, maka kompleksitas waktu asimptotiknya adalah :

O(n) dengan C = 3 dan n0 = 1, karena

2n+1 ≤ 2n + n = 3n untuk semua n ≥ 1

2. Misalkan terdapat sebuah fungsi kompleksitas waktu :

T(n)= 2n2 + 3n +2, maka kompleksitas waktu asimptotiknya adalah :

O(n2) dengan C = 7 dan n0 = 1, karena

(54)

Cara menentukan kompleksitas asimptotik di atas adalah jika kompleksitas waktu (T(n)) diketahui. Namun jika kompleksitas waktunya tidak diketahui maka kita dapat menghitung Big-O untuk setiap instruksi (yang mendasar) dalam sebuah algoritma dengan menerapkan teorema dan aturan di bawah ini :

Teorema :

Misalkan T1(n) = O(f(n)) dan T2(n) = O(g(n)), maka

1. T1(n) + T2(n) = O(f(n)) + O(g(n)) = O(max(f(n),g(n)))

2. T1(n)T2(n) = O(f(n))O(g(n)) = O(f(n)g(n))

3. O(cf(n)) = O(f(n)), c adalah konstanta 4. f(n) = O(f(n))

Aturan menghitung Big-O :

1. Pengisian nilai (assignment), perbandingan, operasi aritmatik, read, write membutuhkan waktu O(1).

2. Pengaksesan elemen larik atau memilih field tertentu dari sebuah record membutuhkan waktu O(1).

3. Kondisi if C then S1 else S2 membutuhkan waktu TC+max(TS1,TS2)

(55)

5. Kondisi while C do S; dan repeat S until C; untuk kedua buah kalang, kompleksitas waktunya adalah jumlah pengulangan dikali denan kompleksitas waktu badan C dan S.

Kondisi while do dan repeat until terkadang digunakan untuk suatu perulangan yang tidak diketahui kapan saatnya berhenti (tidak diketahui panjangnya), contohnya seperti algoritma di bawah ini :

Pada algoritma di atas, 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.

6. Prosedur dan fungsi. Waktu yang dibutuhkan untuk memindahkan kendali ke rutin yang dipanggil adalah O(1).

Pengelompokan algoritma berdasarkan notasi Big-O adalah sebagai berikut :

Kelompok Algoritma Nama

(56)

O(n2) Urutan spektrum kompleksitas waktu algoritma adalah :

4

algoritma polinomial algoritma eksponensial semakin ke kiri kompleksitas waktu asimptotiknya semakin kecil, dan sebaliknya semakin ke kanan maka semakin besar

2.8. Aksara Jawa

Aksara Jawa dalam lafalan (wanda) 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.4 di bawah ini :

(57)

2.9. Bahasa pemrograman Java, Matlab, dan JMatLink sebagai penghubungnya

2.9.1. Java dan Netbeans

Java adalah bahasa pemrograman serbaguna yang merupakan perpaduan antara sejumlah bahasa pemrograman seperti C, C++, Object-C, SmallTalk dan lainnya (Kadir, 2005). Pada skripsi ini, Java digunakan untuk membuat aplikasi yang mengimplementasikan algoritma penipisan Rosenfeld dengan perpaduan beberapa fungsi dari Matlab, dan Netbeans 5.5 sebagai IDE (Integrated Developmnent Environment) yaitu perangkat yang digunakan untuk mengembangkan sistem yang akan dibuat.

2.9.2. Jmatlink

JMatLink adalah sebuah library, yang mengijinkan koneksi Matlab dengan java (Müller, 2005). Dengan instance dari sebuah kelas JMatLink, dimungkinkan untuk men-start up program Matlab, mengeksekusi command dan memperoleh state dari workspace Matlab.

2.9.3. Matlab

Matlab adalah singkatan dari mathematics laboratory atau matrix laboratory. Dalam ilmu komputer, Matlab didefinisikan

(58)
(59)

41 BAB III

ANALISIS DAN PERANCANGAN

Bab III menceritakan gambaran umum sistem yang akan dibangun, proses-proses yang dibutuhkan dalam penelitian, perangkat lunak yang dibutuhkan dalam pengerjaan program, informasi perangkat keras yang digunakan dalam penelitian serta rancangan interface yang akan dibangun dalam sistem.

3.1. Gambaran Sistem Secara Umum

Sistem yang akan dibangun adalah sistem yang berfungsi untuk mencari kerangka dari masukkan berupa citra biner atau citra skala keabuan sebuah karakter aksara jawa. Masukkan citra diambil dari proses scanning dokumen-dokumen yang bertuliskan aksara jawa, yang

merupakan tulisan cetak ataupun tulisan tangan. Keluaran dari sistem merupakan suatu citra aksara jawa yang sudah mengalami proses penipisan yaitu rangka dari citra masukkan.

(60)

Gambar 3.1 Proses Penipisan Secara Umum

Konteks Diagram dari sistem yang akan dibangun adalah sebagai berikut :

Gambar 3.2 Konteks Diagram

3.2. Analisa Kebutuhan Proses

Dari gambaran sistem secara umum di atas terdapat beberapa proses yang harus dilakukan sistem yaitu proses memasukkan citra huruf jawa, mengubah citra menjadi citra biner (jika citra masukkan bukan merupakan citra biner), melakukan proses penipisan dan menyimpan citra yang dihasilkan dari proses penipisan.

Dan dari Konteks Diagram dan penjelasan proses di atas maka didapatkan Data Flow Diagram (DFD) Level 1 sebagai berikut :

(61)

Gambar 3.3 DFD Level 1

3.2.1. Proses Input Citra

Proses input citra merupakan proses pertama yang harus dilakukan dalam sistem. Dalam proses ini user diminta untuk memilih citra yang akan dikenai proses penipisan sesuai dengan direktorinya. Setelah citra dipilih, maka citra tersebut akan ditampilkan dalam program. Input citra dilakukan dengan menggunakan open dialog yang tersedia dalam java.

mulai

Citra

selesai

(62)

3.2.2. Proses Binarisasi

Setelah citra yang akan dikenai proses penipisan dipilih dan ditampilkan di dalam interface program maka citra ini akan diperiksa apakah sudah merupakan citra biner atau belum, jika belum maka citra ini akan dikenai proses binarisasi.

(63)

Gambar 3.5 Flowchart Proses Binarisasi

(64)

Kemudian dilakukan looping sebanyak jumlah piksel yaitu baris*kolom untuk melakukan pengujian dan penentuan nilai biner dari piksel yang bersangkutan, yaitu jika lebih dari nilai ambang maka piksel tersebut akan diubah nilainya menjadi 1 (putih / latar) dan jika kurang dari atau sama dengan nilai threshold akan diubah menjadi 0 (hitam / obyek).

3.2.3. Proses Penipisan

(65)

G

am

b

ar 3.6

Flowchart

P

roses

Peni

p

isa

(66)

Keterangan :

ƒPada subiterasi 1 kondisi yang harus dipenuhi adalah :

Citra[i,j] adalah obyek

Citra[i,j] bukan isolate atau end pixel, yaitu B(b)>1 Citra[i,j] adalah simple, yaitu XH(p) = 1

Citra[i,j] adalah north border

ƒPada subiterasi 2 kondisi yang harus dipenuhi adalah :

Citra[i,j] adalah obyek

Citra[i,j] bukan isolate atau end pixel, yaitu B(b)>1 Citra[i,j] adalah simple, yaitu XH(p) = 1

Citra[i,j] adalah east border

ƒPada subiterasi 3 kondisi yang harus dipenuhi adalah :

Citra[i,j] adalah obyek

Citra[i,j] bukan isolate atau end pixel, yaitu B(b)>1 Citra[i,j] adalah simple, yaitu XH(p) = 1

Citra[i,j] adalah south border

ƒPada subiterasi 4 kondisi yang harus dipenuhi adalah :

Citra[i,j] adalah obyek

(67)

Citra[i,j] adalah simple, yaitu XH(p) = 1 Citra[i,j] adalah border border

Jika salah satu dari keempat kondisi di atas dipenuhi maka piksel obyek yang bersangkutan akan diubah nilainya menjadi 1 (latar) dan variabel n yang didalam iterasi diset = 0 nilainya akan ditambah dengan 1, maka jika dalam iterasi tidak terdapat perubahan nilai piksel dari obyek ke latar maka nilai variabel n ini akan tetap sama dengan 0. Iterasi akan dilakukan selama masih ada piksel yang diubah dari piksel objek menjadi piksel latar (nilai n>0). Dengan kata lain iterasi akan dihentikan jika tidak ada lagi piksel obyek yang berubah menjadi piksel, yaitu nilai variabel n=0.

3.2.4. Proses Simpan Citra

Proses ini berfungsi untuk memfasilitasi user untuk menyimpan citra hasil penipisan. User dapat menyimpan citra hasil penipisan ke dalam direktori yang diinginkan.

3.3. Kebutuhan Perangkat Lunak

(68)

didalamnya. Untuk menghubungkan Java dan Matlab digunakanlah JMatLink yang merupakan native method penghubung kedua bahasa pemrograman tersebut. Digunakan juga ACDSee 8 dan Microsoft Paint untuk sedikit mengolah citra agar siap menjadi citra masukkan untuk dapat diproses. Sistem Operasi yang digunakan adalah Windows XP.

3.4. Kebutuhan Perangkat Keras

Perangkat keras yang digunakan untuk mengerjakan tugas akhir ini adalah sebagai berikut :

Main board : Abit Nf7S

Processor : AMD Sempron 1.8 GHz

• Memori: RAM 1024 MB

Harddisk : HDD 80 GB

• Monitor : LG FLATRON W1941S

(69)

3.5. Perancangan Tampilan Antar Muka

Antar muka yang dirancang terdiri dari berberapa halaman yaitu :

3.5.1. Halaman awal

Implementasi Algoritma Rosenfeld Pada Penipisan Citra Aksara Jawa

Kristi Krisnawati- TIUSD

MASUK

Gambar 3.7 Halaman Awal

(70)

3.5.2. Halaman Utama

Keluar Binarisasi

Input Citra PenipisanProses Simpan ProgramTentang Help Citra Masukkan Citra Hasil Penipisan Penipisan Citra Huruf Jawa Dengan Algoritma Rosenfeld

Gambar 3.8 Halaman Utama

Halaman utama adalah halaman kerja dari sistem. Pada halaman inilah user melakukan proses input, binarisasi, penipisan dan menyimpan citra hasil penipisan.

• Area ‘Citra Masukkan’ merupakan area dimana citra yang kita inputkan akan ditampilkan.

• Area ‘Citra Hasil Penipisan’ adalah area citra hasil penipisan ditampilkan.

(71)

• Jika citra yang dimasukkan bukanlah citra biner, maka tombol ‘Binarisasi’ akan aktif dan user harus menekannya untuk merubah citra masukkan menjadi citra biner.

• Proses penipisan akan dipicu dengan menekan tombol ‘Proses Penipisan’. Keadaan default tombol ini adalah tidak aktif, dan jika user sudah memasukkan citra biner maka tombol ini baru akan aktif. Setelah proses penipisan dilakukan, maka citra hasil penipisan akan muncul di area ‘Citra Hasil Penipisan’.

• User dapat menyimpan citra hasil penipisan ini dengan cara menekan tombol ‘Simpan’. User akan diminta untuk memasukkan direktori tempat file akan disimpan, serta memberikan nama untuk file hasil penipisan tersebut.

• Tombol ‘Tentang Program’ merupakan tombol yang akan membawa user ke halaman yang berisi informasi tentang program.

• Tombol ‘Help’ adalah tombol yang perlu ditekan oleh user jika mengalami kebingungan dalam pemakaian program.

(72)

3.5.3. Halaman Input Citra

Look In

File Name

Files of Types

Open

Cancel

Gambar 3.9 Halaman Input Citra

Halaman ini adalah halaman yang membantu user untuk memilih direktori dan file yang akan dikenai proses penipisan. Dengan menekan Combo box pada ‘Look In’ maka user dapat memilih direktori tempat file citra aksara jawa disimpan, kemudian user dapat memilih file yang diinginkan dengan cara meng-klik

salah satu file yang ditampilkan pada direktori tersebut. Untuk spesifikasi file yang ditampilkan pada direktori yang bersangkutan, user juga dapat menentukan Files of Types yang diinginkan.

3.5.4. Halaman Simpan Save In

File Name

Save As Types

Save

Cancel

(73)

Sama halnya dengan halaman input citra, pada halaman simpan user juga diminta untuk menentukan direktori penyimpanan, nama dari citra keluaran dan jenis citra yang disimpan.

3.5.5. Halaman Tentang Program

“Implementasi Algoritma Rosenfeld Pada Penipisan Citra Aksara Jawa”

Oleh :

Kristi Krisnawati 055314030

Jurusan Teknik Informatika Fakultas Sains Dan Teknologi Universitas Sanata Dharma Yogyakarta Tentang Program..

Program ini mengimplementasikan algoritma Rosenfeld

Dibuat dalam rangka penelitian skripsi dengan judul : untuk melakukan penipisan citra aksara jawa.

Gambar 3.11 Halaman Tentang Program

(74)

3.5.6. Halaman Help

Cara menggunakan aplikasi :

1. Pilihlah sebuah citra aksara jawa.

2. Jika citra bukan merupakan citra biner, maka lakukan proses binarisasi dengan menekan tombol ‘Binarisasi’, maka hasil binarisasi akan muncul di area ’Citra Masukkan’.

3. Kemudian lakukan proses penipisan dengan menekan tombol ‘Proses Penipisan’. Maka hasil penipisan akan muncul di area ‘Citra Hasil Penipisan’.

4. Untuk menyimpan citra hasil penipisan, anda dapat lakukan dengan menekan tombol ‘Simpan’. Tentukan direktori dan nama file yang

anda ingini.

5. Untuk keluar dari program tekanlah tombol ‘Keluar’.

Selamat Menikmati

Gambar 3.12 Halaman Help

Halaman help adalah halaman yang berisi informasi cara pemakaian program. Disini dijelaskan urut-urutan pemakaian program. Halaman ini berfungsi sebagai user guide dalam penggunaan program.

3.5.7. Halaman Konfirmasi Keluar

Apakah anda yakin untuk keluar?

Ya Tidak

?

Konfirmasi

Gambar 3.13 Halaman Konfirmasi Keluar

(75)

konfirmasi yang menanyakan user apakah benar-benar ingin keluar, konfirmasi ini juga berguna sebagai prevent error seandainya user tidak sengaja menekan tombol ‘Keluar’.

3.6. Perancangan Pengujian Sistem

Seperti yang dikemukakan pada subbab 2.8 bahwa syarat rangka yang terutama adalah connecitvity dan one-pixel thickness. Maka akan diuji apakah citra skeleton yang diperoleh memenuhi kedua syarat tersebut.

3.6.1. One-pixel thickness

(76)
(77)

3.6.2. Connectivity

Citra skeleton dikatakan connected citra skeleton tersebut dan citra aslinya mempunyai homotopy yang sama. Dikatakan homotopic jika terdapat korespondensi satu-satu antara connected

components dari citra asli dan skeletonnya; dan juga korespondensi

satu-satu antara holes dalam citra asli dan skeletonnya. Dengan demikian perancangan pengujian connectivity adakah sebagai berikut :

mulai

Hitung connected component dan holes

pada citra asli dan skeletonnya

selesai

Skeleton => connected Connected component dan holes pada

citra asli dan skeleton berkorespondensi satu – satu?

Ya

Skeleton => tidak connected

Ya

(78)

60 BAB VI

IMPLEMENTASI

Dalam bab ini disajikan implementasi proses yang telah dilakukan pada tahap coding berupa pseudocode serta implementasi interface program yang dibuat.

4.1. Implementasi Proses

Berikut adalah pseudocode yang digunakan untuk mengimplementasika proses-proses yang dilakukan dalam program, code program secara lengkap terdapat pada lampiran A.

4.1.1. Proses Input Citra

Proses ini adalah proses dimana user memilih citra yang ingin dikenai proses penipisan dan kemudian ditampilkan pada interface. Pseudocode untuk memilih citra adalah sebagai berikut : Algoritma Input Citra

1. Pilih file citra

2. Simpan path file (nama_file)

3. Tampilkan file yang path-nya = nama_file

(79)

4.1.2. Proses Binarisasi

Jika citra yang menjadi masukkan bukan merupakan citra biner maka citra tersebut terlebih dahulu akan diubah menjadi citra biner dengan mencari nilai ambangnya. Nilai ambang tersebut kemudian menjadi acuan untuk proses binarisasi.

Pseudocode untuk melakukan implementasi proses binarisasi adalah sebagai berikut:

Algoritma Binarisasi

1. Cari nilai intensitas citra terbesar (max)

2. Bandingkan nilai max dengan 1, jika max=1 proses binarisasi selesai, jika max > 1 lakukan langkah 3

3. Cari varian antar kelas terbesar dari nilai intensitas citra (sigma)

4. Bandingkan tiap nilai intensitas pada citra (intens_citra) dengan sigma, jika intents_citra > sigma maka intents_citra = 1, jika tidak maka intents_citra = 0

4.1.3. Proses Penipisan

Setelah citra biner didapatkan kemudian citra siap dikenai proses binarisasi. Pseudocode untuk melakukan implementasi proses penipisan adalah sebagai berikut :

Algoritma Penipisan Rosenfeld 1. input = array citra biner

2. Untuk setiap piksel (p) pada baris dan kolom pada input lakukan langkah 2.a (subiterasi 1)

(80)

b. Hitung XH(p) dan jumlah titik tetangga (b), jika XH(p) = 1 dan b > 1 dan north border = latar maka p diubah menjadi latar pada akhir subiterasi, lakukan langkah 2.c

c. Lakukan langkah 2.a untuk piksel berikutnya 3. Untuk setiap piksel (p) pada baris dan kolom pada input

lakukan langkah 3.a (subiterasi 2)

a. Uji apakah p = 0 (merupakan piksel obyek) jika ya lakukan langkah 3.b jika tidak lakukan langkah 3.c

b. Hitung XH(p) dan jumlah titik tetangga (b), jika XH(p) = 1 dan b > 1 dan east border = latar maka p diubah menjadi latar pada akhir subiterasi, lakukan langkah 3.c

c. Lakukan langkah 3.a untuk piksel berikutnya 4. Untuk setiap piksel (p) pada baris dan kolom pada input

lakukan langkah 4.a (subiterasi 3)

a. Uji apakah p = 0 (merupakan piksel obyek) jika ya lakukan langkah 6.b jika tidak lakukan langkah 4.c

b. Hitung XH(p) dan jumlah titik tetangga (b), jika XH(p) = 1 dan b > 1 dan south border = latar maka p diubah menjadi latar pada akhir subiterasi, lakukan langkah 4.c

c. Lakukan langkah 4.a untuk piksel berikutnya 5. Untuk setiap piksel (p) pada baris dan kolom pada input

lakukan langkah 5.a (subiterasi 4)

a. Uji apakah p = 0 (merupakan piksel obyek) jika ya lakukan langkah 5.b jika tidak lakukan langkah 5.c

b. Hitung XH(p) dan jumlah titik tetangga (b), jika XH(p) = 1 dan b > 1 dan west border = latar maka p diubah menjadi latar pada akhir subiterasi, lakukan langkah 5.c

c. Lakukan langkah 5.a untuk piksel berikutnya

(81)

4.1.4. Implementasi Pengujian Ketebalan (One Pixel Thickness)

Seperti yang tertera pada bab 2 salah satu pengujian rangka adalah ketebalan yaitu One Pixel Thickness. Pseudocode yang digunakan untuk implementasi pengujian suatu rangka apakah One Pixel Thickness atau tidak adalah sebagai berikut :

Algoritma Pengujian Ketebalan 1. Inisialisasi variabel contain_A = 0

2. Untuk setiap titik obyek pada citra rangka lakukan langkah 3 3. Uji apakah merupakan template A1, jika ya lakukan langkah

3.a jika tidak lakukan langkah 4

a. Uji apakah merupakan template B1 atau C, i. Jika ya lakukan langkah 4

ii. Jika tidak nilai contain_A bertambah 1, lakukan langkah 4

4. Uji apakah merupakan template A2, jika ya lakukan langkah 4.a jika tidak lakukan langkah 5

a. Uji apakah merupakan template B2 atau C, i. Jika ya lakukan langkah 5

ii. Jika tidak nilai contain_A bertambah 1, lakukan langkah 5

5. Uji apakah merupakan template A3, jika ya lakukan langkah 5.a jika tidak lakukan langkah 6

a. Uji apakah merupakan template B3 atau C, i. Jika ya lakukan langkah 6

ii. Jika tidak nilai contain_A bertambah 1, lakukan langkah 6

6. Uji apakah merupakan template A4, jika ya lakukan langkah 6.a jika tidak lakukan langkah 7

(82)

i. Jika ya lakukan langkah 7

ii. Jika tidak nilai contain_A bertambah 1, lakukan langkah 7

7. Uji apakah nilai contain_A > 0, jika ya maka rangka tidak one pixel thickness, jika tidak rangka merupakan one pixel thinckness.

4.1.5. Proses Simpan Citra

Setelah proses penipisan dilakukan pada sebuah citra, maka hasil dari proses tersebut dapat disimpan. Pseudocode untuk menyimpan citra hasil thinning adalah sebagai berikut:

Algoritma Simpan Citra

1. Inisialisasi variabel citra_rangka = array citra rangka yang didapatkan

2. Masukkan nama file (nama_citra) dan direktori (path_citra) yang diinginkan

3. Create file citra dengan ekstensi .jpg sesuai dengan path_citra

dan nama_citra

4.2. Implementasi Interface

4.2.1. Halaman Utama

(83)

Gambar 4.1 Halaman Utama

Untuk melakukan proses penipisan pada sebuah citra, maka hal pertama yang harus dilakukan user adalah memilih citra yang akan dikenai proses penipisan. Untuk memilih citra tersebut user dapat menekan tombol “OPEN IMAGE” di daerah kiri bawah atau dengan menekan menu item “Open Image” pada menu “File” pada menu bar. Kemudian akan muncul dialog untuk memilih file

berekstensi JPG seperti di bawah :

(84)

Setelah memilih citra sesuai direktorinya dan menekan tombol “Open” pada dialog di atas maka gambar yang dipilih akan muncul pada halaman utama seperti di bawah ini :

Gambar 4.3 Tampilkan Citra

Pada halaman utama tersebut terdapat keterangan nama dan direktori dari citra masukkan di daerah “Input Image”. Setelah citra masukkan dipilih maka tombol “THINNING” menjadi aktif / enabled dan dapat “di-click” untuk melakukan proses penipisan

(85)

Gambar 4.4 Hasil Proses Penipisan

Setelah proses thinning dilakukan maka user dapat menyimpan hasilnya dengan menekan tombol “SAVE IMAGE” atau dengan menekan menu item “Save Skeleton Image” pada menu “File” pada menu bar dan akan muncul dialog seperti di

bawah ini :

(86)

User dapat memilih direktori tempat menyimpan file citra rangka.

Setelah mengetikkan File Name dan menekan tombol “Save” maka user akan mendapat konfirmasi seperti pada gambar di bawah ini

yang berarti file sudah tercipta pada direktori yang dipilih tadi :

Gambar 4.6 Konfirmasi Simpan Citra 4.2.2. Help Content dan About Program

Help Content adalah menu bantuan untuk user, yang berisi

berbagai hal tentang penelitian dan program ini misalnya penjelasan interface, cara penggunaan program dan tentang algoritma Rosenfeld.

Help Content dapat diakses dengan menekan menu item “Help

Content” pada menu “Help” pada menu bar seperti di bawah ini :

Gambar 4.7 Cara mengakses menu item “Help Content”

(87)

Gambar 4.8 Menu item “Help Content”

Halaman yang berisi informasi tentang program yaitu judul program dan pembuat program. Halaman ini dapat diakses dengan menekan menu item “About Program” pada menu “Help” pada menu bar seperti di bawah ini :

Gambar 4.9 Cara mengakses menu item “About Program”

(88)

Gambar 4.10 Menu item “About Program”

4.2.3. Konfirmasi Keluar

Setelah user menekan tombol “QUIT” atau menekan menu item “Quit” pada menu “File” pada menu bar maka akan muncul

konfirmasi seperti di bawah ini :

Gambar 4.11 Konfirmasi Keluar

(89)

71 BAB V

HASIL DAN PEMBAHASAN

Bab ini menyajikan hasil penelitian yang dilakukan yaitu berupa hasil percobaan dan hasil penyebaran kuisioner. Bab ini juga membahas analisa hasil penelitian tersebut sesuai dengan syarat dan tujuannya.

5.1. Hasil Percobaan

(90)
(91)
(92)
(93)
(94)
(95)
(96)
(97)
(98)
(99)
(100)
(101)
(102)

No

(103)

5.2. Hasil Kuisioner

(104)

No Rosenfeld Hilditch

Pekerjaan Mirip Lumayan Tidak Mirip Jumlah Mirip Lumayan Tidak Mirip Jumlah

1 11 5 24 40 13 5 22 40 Pegawai swasta

2 37 3 0 40 36 4 0 40 Staff Perpustakaan

3 27 9 4 40 23 12 5 40 Mhs Math USD

4 3 30 7 40 1 31 8 40 Mhs Akunt USD

5 28 12 0 40 24 15 1 40 Dosen Teologi USD

6 34 5 0 39 34 5 0 39 Dosen TI USD

7 29 8 3 40 24 12 4 40 Dosen Sejarah USD

8 33 7 0 40 29 11 0 40 Dosen TI USD

9 26 14 0 40 20 20 0 40 Dosen TI USD

10 1 12 27 40 0 11 29 40 Karyawan RS Happy Land

11 14 17 9 40 16 14 10 40 Siswa SMP Kanisius

12 27 4 9 40 14 7 19 40 Siswa SMA Marsudirini

13 15 16 8 39 10 24 5 39 Laboran USD

14 31 7 2 40 35 4 1 40 Mhs TE USD

15 12 24 4 40 17 23 0 40 Mhs Mekatronika USD

16 34 6 0 40 35 5 0 40 Mhs Ikom UGM

17 17 18 5 40 16 20 4 40 Mhs Apoteker USD

18 13 11 12 36 6 16 14 36 Asisten Dosen TI USD

(105)

Mirip Lumayan Tidak Mirip Jumlah Mirip Lumayan Tidak Mirip Jumlah

20 33 7 0 40 33 6 0 39 Mhs TI USD

21 13 16 11 40 14 11 15 40 Mhs TI USD

22 20 19 1 40 28 12 0 40 Mhs P.Math USD

23 24 13 3 40 26 10 4 40 Mhs TE USD

24 8 24 8 40 2 17 21 40 Mhs P. Math USD

25 18 21 1 40 19 19 2 40 Mhs TM USD

26 28 12 0 40 25 15 0 40 Dosen (Tidak Tetap) TI USD

27 39 1 0 40 40 0 0 40 Dosen TI USD

28 33 7 0 40 33 5 2 40 Mhs TI USD

29 34 6 0 40 36 4 0 40 Mhs TI USD

30 23 13 4 40 27 10 3 40 Mhs TI USD

31 29 5 6 40 7 29 4 40 Mhs TI USD

32 26 13 1 40 24 14 2 40 Mhs Apoteker USD

33 32 6 1 39 33 4 1 38 RT USD

34 31 9 0 40 33 7 0 40 Mhs TI USD

35 35 5 0 40 34 6 0 40 Mhs TI USD

36 31 7 2 40 26 13 1 40 Mhs TI USD

37 29 9 2 40 17 15 8 40 Mhs TI USD

38 28 9 3 40 19 17 4 40 Mhs P.Math USD

39 24 13 3 40 25 13 2 40 Mhs TI USD

40 24 10 6 40 13 19 7 39 Alumnus TM USD

(106)

Mirip Lumayan Tidak Mirip Jumlah Mirip Lumayan Tidak Mirip Jumlah

42 31 6 3 40 24 15 1 40 Laboran USD

43 17 18 5 40 14 21 5 40 Mhs TM USD

44 11 23 6 40 8 24 8 40 Mhs TI USD

45 17 12 11 40 16 13 10 39 Mhs Math USD

46 28 9 3 40 32 5 3 40 Mhs TI USD

47 16 17 7 40 17 15 8 40 Mhs TI USD

48 27 13 0 40 27 11 2 40 Mhs TI USD

49 36 4 0 40 37 3 0 40 Dosen Math USD

50 24 6 10 40 17 7 16 40 Mhs TE USD

(107)

Sehingga persentase kemiripan untuk algoritma Rosenfeld dan Hilditch dapat disajikan dalam tabel di bawah :

Tabel 5.3 Tabel Persentase Kemiripan

No Persentase Rosenfeld Persentase Hilditch

Mirip Lumayan Tidak Mirip Mirip Lumayan Tidak Mirip

(108)

30 57.50 32.50 10.00 67.50 25.00 7.50

5.3.1. Pembahasan Hasil Percobaan 5.3.1.1. One Pixel Thickness

One pixel thickness adalah salah satu cara untuk

(109)

memenuhi salah satu syarat penipisan yaitu ketebalan yang harus setipis mungkin, one pixel thickness. Dalam bab 2 dikatakan bahwa suatu citra dikatakan merupakan one pixel thickness jika di dalamnya tidak mengandung template A

kecuali jika titik tersebut adalah critical point yaitu salah satu dari template B atau C.

Dari percobaan dengan 60 gambar yang berbeda yang terdiri dari 3 aksara untuk setiap aksara dalam tulisan jawa, didapat hasil seperti yang tertera pada tabel Tabel 5.1

dimana semua citra hasil penipisan memenuhi syarat one pixel thickness. Jadi dapat disimpulkan bahwa untuk kasus

aksara jawa algoritma Rosenfeld sudah memenuhi syarat one pixel thickness.

5.3.1.2. Jumlah Piksel yang Dihapus

Jumlah piksel yang dihapus sebenarnya berkaitan erat dengan syarat ketebalan / one pixel thickness. Sebuah algoritma harus menhasilkan skeleton setipis mungkin sehingga di sebut one pixel thickness, yang juga berarti menghapus sebanyak mungkin selama tidak mengubah connectivity. Pada percobaan di atas diperoleh persentase

(110)

algoritma Rosenfeld ternyata sudah dapat menghapus suatu citra aksara jawa dengan setipis mungkin.

5.3.1.3. Waktu Penipisan

Waktu penipisan merupakan parameter yang penting dalam mengukur sebuah unjuk kerja algoritma, karena jika waktu penipisan yang digunakan terlalu lama maka algoritma tersebut bisa dikatakan tidak cukup baik atau tidak efisien. Waktu yang dihabiskan untuk menipiskan sebuah citra memang sangat bergantung dari perangkat keras dan perangkat lunak yang digunakan, serta berapa size citra masukkan dan berapa banyak jumlah piksel objeknya.

(111)

bahwa waktu yang dibutuhkan algoritma Rosenfeld untuk menipiskan sebuah citra aksara jawa dengan kondisi jumlah piksel objek, perangkat keras dan perangkat lunak yang digunakan adalah cukup singkat.

5.3.1.4. Connecitvity

(112)

Seperti yang dikatakan pada bab 2 bahwa untuk menguji connectivity suatu citra hasil penipisan, connected component pada citra asli dan citra skeleton harus

berkorespondensi satu-satu, demikian pula pada holes-nya. Dengan definisi-definisi yang ada pada subbab 2.8.1 dan fungsi pemetaan korenspondensi satu-satu bahwa semua piksel yang terdapat dalam satu connected component pada citra rangka harus terdapat pada satu connected component pada citra asli juga, dan piksel dalam satu holes pada citra asli harus terdapat pada satu holes citra rangka, maka connectivity citra hasil penipisan pada dua gambar di bawah adalah sebagai berikut :

1. Citra RA_3.JPG

Gambar 5.1 di bawah ini adalah representasi dari citra RA_3.JPG, daerah yang merupakan obyek adalah yang bernilai 0 dan berwarna abu-abu, dan piksel yang warna abu-abunya lebih gelap adalah sebuah path dari titik (8,13) ke titik (70,29). Daerah obyek dari citra ini adalah 8-connected karena menurut definisi 6 pada subbab 2.8 tentang Pengujian Rangka sebuah daerah obyek disebut 8-connected jika mempunyai hanya satu 8-component. Dalam

(113)

adalah Ks(x) dimana sebuah titik x adalah anggota S, misalnya titik obyek yang terdapat dalam koordinat (8,13) pada gambar 5.1 di bawah. Maka Ks(x) adalah semua y yang merupakan anggota S dan terdapat 8-path ke titik x. Pada gambar 5.1 contoh titik y adalah titik obyek dengan koordinat (70.29). Secara visual pada gambar 5.1 juga terlihat bahwa untuk semua titik y pada S memang terdapat 8-path menuju x. Pada citra ini juga tidak terdapat holes,

jadi dalam hal ini citra RA_3.JPG mempunyai hanya satu 8-component.

(114)

Dengan cara yang sama untuk menghitung jumlah connected component (8-component) pada citra RA_3.JPG

di atas, diperoleh bahwa jumlah 8-component dari rangka citra RA_3.JPG yaitu yang representasinya seperti gambar 5.1 di bawah adalah satu.

Gambar 5.2 Representasi Citra Rangka RA_3.JPG

(115)

aslinya dimana daerah yang berwarna putih pada citra asli adalah connected component pada citra rangkanya. Dalam gambar di bawah terbukti bahwa citra rangka RA_3.JPG memenuhi syarat connectivity.

Gambar 5.3 Letak Rangka RA_3.JPG pada Citra Aslinya

2. Citra DHA_2.JPG

Gambar

Gambar Keterangan
Gambar Keterangan
Gambar 2.1 Citra biner dan representasinya dalam data digital
Gambar 2.4 Urutan Langkah Analisis Citra Dokumen
+7

Referensi

Dokumen terkait

Karena kartu negatif yang tertinggal dalam kotak tidak sesuai dengan yang diharapkan maka kita tambahkan lagi 2 pasang kartu positif dan negatif.. Kartu yang diinginkan

Metode yang dilakukan pada riset ini adalah mempelajari literatur untuk pemodelan data dari karakteristik material pembentuk beton, tabel referensi dan grafik

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

Hasil pengukuran dengan menggunakan Acoustic Doppler Velocimeter menunjukkan bahwa kecepatan longitudinal maksimum pada saluran sebelum belokan 120 o mencapai nilai

Melihat pertumbuhan produksi batu bara dari tahun ke tahun yang semakin besar, maka diperkirakan dalam jangka waktu 10 sampai 20 tahun kedepan deposit batubara

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

"8* adalah singkatan dari polyethylene terephthalate A merupakan resin  polyester yang tahan lama, kuat, ringan dan mudah dibentuk ketika panas. "8* dapat

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