Penipisan citra aksara Jawa menggunakan algoritma Rosenfeld - USD Repository

PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN ALGORITMA ROSENFELD

  Skripsi Diajukan untuk Memenuhi Salah Satu Syarat

  Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika

  

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

  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.

  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.

  From the testing of 60 Javanese characters, could be concluded that Rosenfeld algorithm generated skeleton image that fulfils connectivity and one

  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

  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

  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 DFTAR TABEL ……………..………………………………….…………. xv

  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

  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

  LAMPIRAN Code Program …………………………………..…………… 114 LAMPIRAN Kuisioner …………………………..…...…………………… 122

  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

  5.4 Tabel Responden A 104-105

  DAFTAR GAMBAR

  16 2.6 8-adjacency dari p

  2.9 X H (p) = 2

  20

  (p) = 1

  H

  2.8 X

  20

  2.7 X H (p) = 0

  18

  2.5 Proses Penipisan, citra masukkan dan keluarannya

  Gambar Keterangan Halaman

  14

  2.4 Urutan Langkah Analisis Citra Dokumen

  2.3 Citra warna dan representasinya dalam data digital 13

  12

  digital

  2.2 Citra skala keabuan dan representasinya dalam data

  11

  digital

  2.1 Gambar Citra biner dan representasinya dalam data

  21

  

Gambar Keterangan Halaman

  3.2 Konteks Diagram

  42

  3.3 DFD Level

  1

  43 Flowchart input 3.4 citra

  43

  3.5 Flowchart Proses Binarisasi

  45 Flowchart

  3.6 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

  

Gambar Keterangan Halaman

  5.3 Letak Rangka RA_3.JPG pada Citra Aslinya

  5.7 Representasi Citra NGA_3.JPG 101

  5.6 Letak Rangka Citra DHA_2.JPG pada Citra Aslinya 100

  99

  5.5 Representasi Citra Rangka DHA_2.JPG

  98

  5.4 Representasi Citra DHA_2.JPG

  97

  96

  4.9 Cara mengakses menu item ”About Program”

  5.2 Representasi Citra Rangka RA_3.JPG

  95

  5.1 Representasi Citra RA_3.JPG

  70

  4.11 Konfirmasi Keluar

  70

  4.10 Menu item “About Program”

  69

  5.8 Representasi Citra Rangka NGA_3.JPG 102

  BAB I PENDAHULUAN

  1.1. LATAR BELAKANG Indonesia adalah negara yang begitu kaya akan seni dan budaya, salah satunya adalah nilai-nilai budaya bangsa yang dituangkan dalam naskah-naskah jawa kuno yang ditulis dalam aksara jawa yang terdapat pada buku-buku cetak atau tulisan tangan dalam kertas ataupun media lain seperti daun lontar. Adalah Pustaka Artati Universitas Sanata Dharma yang merupakan tempat yang mengeksplorasi, menyimpan dan merawat berbagai koleksi khusus tentang studi kebudayaan masa lampau, teristimewa naskah-naskah jawa kuno yang tentu saja ditulis dalam aksara jawa. Naskah-naskah tersebut masih disimpan dalam bentuk hardcopy

  Seiring dengan berjalannya waktu dan perkembangan zaman, naskah-naskah jawa kuno ini kemudian menjadi kurang populer dikalangan masyarakat Indonesia bahkan orang jawa sekalipun. Namun tentu saja ini bukanlah alasan untuk melupakan apalagi membuang budaya jawa yang merupakan warisan leluhur kita. Oleh karena itu, dalam rangka memelihara kebudayaan jawa yang berupa naskah-naskah jawa kuno tersebut, maka perlu dilakukan proses digitalisasi dan penerjemahan agar kekayaan bangsa yang satu ini tetap dapat terpelihara dan tidak dilupakan orang. Dengan mendigitalisasi naskah jawa kuno, orang-orang yang peduli akan kebudayaan jawa tidak perlu datang jauh-jauh ke tempat-tempat seperti pustaka artati tadi karena naskah-naskah yang sudah berupa softcopy bisa di share kepada semua orang ke penjuru negeri. Sedangkan proses penerjemahan dari bahasa jawa dengan aksara

  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

  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?

  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

  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. 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 Tahap ini merupakan proses pengujian perangkat

  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 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 Bab ini berisi tentang kesimpulan yang dapat diambil untuk menjawab rumusan masalah yang dikemukakan dalam BAB I, serta saran yang dapat diberikan untuk melakukan penelitian

  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

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

  = 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 analisis yang bertujuan untuk mengenali komponen teks dan grafik dalam citra dokumen, dan untuk mengekstrak informasi yang diharapkan seperti yang dikehendaki oleh manusia (O’Gorman & Kasturi 1997). Dalam hal ini, citra dokumen aksara jawa yang akan dikenali dan diekstrak informasi

Gambar 2.4 Urutan Langkah Analisis Citra Dokumen

  Pada langkah Pixel-Level Processing atau yang sering juga disebut 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

  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

  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

  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 :

  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 X H (p) :

  4 b i

  X H (p)=

  ∑ i =

  1

  bi = 1 jika x 2i-1 =1 dan (x 2i =0 or x 2i+1 =0) bi = 0 jika sebaliknya

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

  X6 X7

  X8 X6

  X7 X8

  X5 X5 P

  X1 P

  X1 X4

  X3 X2

  X4 X3

  X2 Isolated point

Gambar 2.7 X H (p) = 0

  b. X H (p) = 1 Adalah kondisi dimana jika titik p dihapus maka connectivity dari piksel-piksel 8-neighbornya tidak terganggu, karena connected c. X H (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.

  X8 X5 P

  X3 X2

xhp = 2

Gambar 2.9 X H (p) = 2

  d. X H (p) = 3 e. X H (p) = 4 Sama dengan kondisi X (p) = 2 di atas namun jumlah connected

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

  X8 X5 P

  X3 X2 xhp = 4

Gambar 2.11 X H (p) = 4 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. X H (p) = 1 4. x 2i+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

  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

  3. Jika X adalah himpunan bagian dari Z (yaitu

  Z

  X

  ⊂ ), maka X

  c adalah anggota himpunan Z yang bukan anggota himpunan X.

  4. Z

  2

  = matrik 2 dimensi dari titik-titik yang diskrit

  5. P = himpunan bagian berhingga dari Z

  2

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

  } ) ( : { = ∈ = p

  X P p S

  Dengan demikian kita dapat mengidentifikasi citra-citra biner

  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

  U , VS , 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 ( y x , ) yaitu panjang n dari x ke y π n adalah sebuah urutan / sequence dari titik-titik (x=x 0, x 1, x 2, . . . , x n =y) dimana x i adalah 8-neighbor atau 4-neighbor dari x i-1 ,

  i n

  dimana 1 ≤ ≤

  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 , π ( y x , ) , n 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 x S ∈ , 8-component (atau yang terkadang juga disebut sebagai 8-connected-components) ataupun 4-component dari S, yaitu Ks(x), didefinisikan sebagai berikut :

  Definisi 7 : Border dari S, yaitu S

  X X X X

  X X X X X X X X X X X X

  X X X X X X X X X X X X

  X X X X X X X X X X X X

  X X X X

  X X X

  X X X X

  X X X

  X X X X

  X X X

  X X X X

  X X X

  X X X

  ∂ , didefinisikan oleh

  X X X X

  X X X

  X X X X X X X X X

  X X X X X X X X X X X

  X X X X X X X X X

  X X X

  X X X

  ∈ ∈ . Interior dari S didefinisikan sebagai himpunan perbedaan antara S dan border- nya, contohnya :

  S y S x y x x

  : 4 is { c

  ∂ = } , , o adjacent t -

  S

  X X X X X X X

  Definisi 8 : Component dari S c

  , c

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

S K

  X X X

  X X X X

  X X X X X X X X X X X X

  X X X X

  X X X

  X X X X

  X X X

  X X X X

  X X X

  X X X

  X X X X X X X X X

  X X X X

  X X X

  X X X X

  X X X

  X X X X

  X X X X X

  X X X X X X X X X X X

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

  X X X X

  X X X X X

  X X X X X X X

  X X X X

  X X

  X X X

  X X X

  X X X

  X X X

  X X X

  X X X X

  X X

  X X X X X X X X

  X X X X X X X

  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

  1

  2

  3

  4 template A={A ,A ,A ,A } 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

  1

  2

  3

  4

  adalah termasuk dalam pola B={B ,B ,B ,B } dan C pada gambar 2.11 di bawah :

  x x 1 x x 2 3 4 A A A A

Gambar 2.16 Template A

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

  1 , a 2 , ..., a n : integer, output r :

  real)

  { Menghitung nilai rata-rata dari sekumpulan elemen larik integer a , a , ..., a .

  1 2 n Nilai rata-rata akan disimpan di dalam peubah r.

   Masukan: a , a , ..., a

  1 2 n Keluaran: r (nilai rata-rata) } Deklarasi

  k : integer jumlah : real 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 n sedemikian hingga

  T(n)

  ≤ C(f(n)) untuk n ≥ n

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

  Contohnya :

  1. Misalkan terdapat sebuah fungsi kompleksitas waktu :

  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 :

  (n) (n)

  Misalkan T

  1 = O(f(n)) dan T 2 = O(g(n)), maka

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

  1

  2

  2. T (n)T (n) = O(f(n))O(g(n)) = O(f(n)g(n))

  1

  2

  3. O(cf(n)) = O(f(n)), c adalah konstanta 4. f(n) = O(f(n)) Aturan menghitung Big-O :

  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 : ketemu:=false;

  while

  (p <> Nil) and (not ketemu) do if p^.kunci = x then ketemu:=true else p:=p^.lalu

  { p = Nil or ketemu }

  Pada algoritma di atas, pengulangan akan berhenti bila x yang dicari ditemukan di dalam senarai. Jika jumlah elemen senarai

  2 O (n ) kuadratik

  3 O

  (n ) kubik

  n O (2 ) eksponensial O

  (n!) faktorial Urutan spektrum kompleksitas waktu algoritma adalah :

  2 3 n ( 1 ) (log ) ( ) ( log ) ( ) ( ) ... ( 2 ) ( ! )

  O < O n < O n < O n n < O n < O n < < O < O n

  1

  4

  4

  4

  4

  4

  4

  4

  4

  4

  4

  4

  2

  4

  

4

  4

  4

  4

  4

  4

  4

  4

  4

  4

  3 1 4 2 4 4 3

  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,

  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 merupakan sistem interaktif yang data dasarnya adalah matriks (Hasan, 2005). Dalam skripsi ini, Matlab digunakan untuk melakukan fungsi-fungsi dasar dalam penipisan yang kemudian dipanggil dalam program java dengan bantuan Jmatlink.

  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

  Citra Asli (DA) Citra hasil penipisan

Gambar 3.1 Proses Penipisan Secara Umum

  Konteks Diagram dari sistem yang akan dibangun adalah sebagai berikut :

Gambar 3.2 Konteks DiagramGambar 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

  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.

  Proses binarisasi berfungsi untuk mengubah citra masukkan yang tidak biner kedalam bentuk biner yaitu yang setiap pikselnya hanya berisi nilai 0 atau 1. Proses binarisasi dilakukan dengan mencari nilai ambang sehingga citra masukkan dapat dibagi menjadi 2 bagian yaitu obyek dan latar berdasarkan nilai ambangnya. Fungsi yang akan dipakai pada proses binarisasi ini adalah fungsi im2bw yang terdapat dalam Matlab. Alur proses binarisasi dapat dilihat pada flowchart di bawah :

  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 Proses penipisan adalah proses utama dalam sistem ini.

  Dalam proses ini algoritma Rosenfeld membuang boundary dari sebuah citra agar didapatkannya sisa piksel obyek yang merupakan rangka dari citra masukkan. Flowchart proses penipisan ini terdapat pada gambar di bawah :

  47 n isa p Peni roses P Flowchart

  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 X H (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 X H (p) = 1 Citra[i,j] adalah east border

  Citra[i,j] adalah simple, yaitu X H (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 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

  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

MASUK

Kristi Krisnawati- TIUSD

Gambar 3.7 Halaman Awal

  3.5.2. Halaman Utama

  Penipisan Citra Huruf Jawa Dengan Algoritma Rosenfeld Input Citra Citra Masukkan Citra Hasil Penipisan Binarisasi Help Penipisan Program Proses Simpan Tentang Keluar

Gambar 3.8 Halaman Utama

  Halaman utama adalah halaman kerja dari sistem. Pada

  • 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