• Tidak ada hasil yang ditemukan

SEGMENTASI CITRA DOKUMEN TEKS SASTRA JAWA MODERN

N/A
N/A
Protected

Academic year: 2019

Membagikan "SEGMENTASI CITRA DOKUMEN TEKS SASTRA JAWA MODERN"

Copied!
146
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Sains (S.Si)

Program Studi Ilmu Komputer

Oleh :

Vitri

NIM : 033124025

PROGRAM STUDI ILMU KOMPUTER

JURUSAN MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

A THESIS

Presented as Partial Fulfillment of the Requirements

To Obtain Sarjana Sains (S.Si) Degree

Computer Science Study Program

By :

Vitri

Student ID : 033124025

COMPUTER SCIENCE STUDY PROGRAM

MATHEMATICS DEPARTMENT

SCIENCE AND TECHNOLOGY FACULTY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

(3)

TEKS SASTRA JAWA MODERN

Oleh :

Vitri

NIM : 033124025

telah disetujui oleh

Pembimbing

Anastasia Rita Widiarti, S.Si., M.Kom.

tanggal...

(4)

TEKS SASTRA JAWA MODERN

Dipersiapkan dan ditulis oleh :

Vitri

NIM : 033124025

Telah dipertahankan di depan Panitia Penguji

pada tanggal 16 Agustus 2007

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap

Tanda Tangan

Ketua : Ir. Greg. Heliarko, S.J., S.S., B.S.T., M.Sc., M.A. ...

Sekretaris : P.H. Prima Rosa, S.Si., M.Sc.

...

Anggota : Anastasia Rita Widiarti, S.Si., M.Kom.

...

Anggota : Drs. Hj. Haris Sriwindono, M.Kom.

...

Anggota : St. Eko Hari Parmadi, S.Si., M.Kom.

...

Yogyakarta,

16

Agustus

2007

Fakultas

Sains

dan

Teknologi

Universitas

Sanata

Dharma

Dekan,

(Ir. Greg. Heliarko, S.J., S.S., B.S.T., M.Sc., M.A.)

(5)

Satu bola basket di tanganku dihargai sekitar 19 dolar,

satu bola basket di tangan Michael jordan dihargai sekitar 30 juta dolar.

Nilainya tergantung di tangan siapa bola itu berada.

2 ekor ikan dan 5 roti di tanganku menjadi sepasang sandwiches ikan,

2 ekor ikan dan 5 roti di tangan Tuhan dapat memberi makan ribuan orang.

Paku di tanganku dapat digunakan membuat satu kandang burung,

paku di tangan Tuhan Yesus Kristus menghasilkan keselamatan untuk seluruh dunia.

Selalu tergantung di tangan siapa benda itu berada.

Oleh karena itu, serahkanlah kegelisahanmu, kekhawatiranmu, ketakutanmu,

harapanmu, impianmu dan keluargamu ke dalam tangan Tuhan,

karena...dalam tangan-Nya segala sesuatu dibuat-Nya menjadi berguna bagimu dan

bagi orang yang kau kasihi.

Engkau akan menjadi mahkota keagungan di tangan Tuhan dan serban kerajaan di

tangan Allahmu (Yesaya 62:3)

Skripsi ini ku persembahkan UNTUK :

Tuhanku Yesus Kristus

Papa dan Mamaku tercinta

Koko dan ceceku tersayang

M O TTO :

J adilah diri an da sen diri. Siapa lagi yan g bisa m elakukan n ya lebih baik

ketim bang diri anda sendiri? -

Fr a n k Gib lin , Ii

Do all the goods you can , All the best you can , In all tim es you can , In all places

you can , For all the creatures you can .

(6)

tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan

dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta,

16

Agustus

2007

Penulis

Vitri

(7)

Vitri

INTISARI

Dokumen teks sastra jawa modern merupakan warisan kebudayaan yang

sangat penting dan patut dilestarikan baik secara fisik maupun makna. Pengenalan

citra dokumen adalah salah satu cara pelestarian yang bisa dilakukan, karena

dengan pengenalan citra, dokumen teks tersebut dapat dikenali dan dapat bertahan

lebih lama.

Segmentasi adalah tahapan dalam proses pengolahan citra tingkat piksel

dengan tujuan utama untuk mendapatkan citra-citra karakter penyusun citra

dokumen teks. Citra karakter penyusun tersebut akan berfungsi sebagai masukan

untuk tahap selanjutnya yaitu pengenalan citra karakter.

Penelitian ini membuat sebuah sistem segmentasi citra dokumen teks

sastra Jawa modern. Data masukan untuk sistem diperoleh dari hasil pembacaan

dokumen teks sastra Jawa modern dengan alat optis, yang kemudian disimpan

sebagai file gambar dengan format *.bmp. Metode segmentasi yang dipergunakan

adalah profil proyeksi dan chain code, dan dikembangkan menggunakan bahasa

pemrograman Delphi.

Dari hasil penelitian terhadap 5 citra dokumen, diperoleh rata-rata

prosentase keberhasilan segmentasi sebesar 94,62% dengan rata-rata waktu yang

dibutuhkan adalah 28,143 detik. Dengan demikian, dapat disimpulkan bahwa

pemilihan metode profil proyeksi dan chain code pada penelitian ini relatif sudah

baik.

(8)

Vitri

ABSTRACT

Text document of modern Javanese literature is a cultural heritage which is

very important and needed to be preserved both physically and semantically. The

recognition of document image is one of the preservation efforts that can be done,

since through the image recognition, the text document could be recognized and

therefore could survive longer.

Segmentation is one of the stages in pixel image processing whose main

objective is to obtain character images that forms the text document. Those

character will be as the inputs of the next stage namely character image

recognition.

The objective of this research is to develop an image segmentation system

of modern Javanese literature’s text document. The input data of the system is

obtained from the scanning of modern Javanese literature’s text document using

an optical device, which later on is saved as picture file in *.bmp format. The

segmentation methods used are the projection profile and the chain code. The

system is developed using Delphi programming language.

Based on the experiments using five document images, the average

percentage of segmentation succes rate is 94,62%, while the averagge time needed

is 28,14 seconds. Therefore, it can be concluded that the choosing of the

projection profile and the chain code methods in this research is relatively

appropriate.

(9)

rahmat dan kasih-Nya sehingga penulis dapat menyelesaikan skripsi dengan judul

“Segmentasi Citra Dokumen Teks Sastra Jawa Modern”

.

Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar

Sarjana Sains (S.Si) Program Studi Ilmu Komputer di Fakultas Sains dan

Teknologi Universitas Sanata Dharma Yogyakarta.

Dalam penulisan skripsi penulis menyadari banyak pihak yang telah

memberikan sumbangan baik pikiran, waktu, tenaga, bimbingan dan dorongan

pada penulis sehingga akhirnya skripsi ini dapat selesai. Oleh karena itu dengan

segala kerendahan hati penulis menyampaikan ucapan terima kasih yang

sebesar-besarnya kepada :

1.

Ibu Anastasia Rita Widiarti, S.Si., M.Kom. selaku dosen pembimbing yang

telah memberikan bimbingan, arahan, dan petunjuk selama penulisan skripsi.

2.

Bapak Drs. Hj. Haris Sriwindono, M.Kom selaku dosen pembimbing

akademik, sekaligus dosen penguji yang telah memberikan bimbingan,

masukan, saran, dan kritik yang membangun untuk skripsi ini.

3.

Bapak St. Eko Hari Parmadi, S.Si., M.Kom selaku dosen penguji yang telah

memberikan, masukan, saran dan kritik yang membangun untuk skripsi ini.

4.

Romo Gregorius Heliarko selaku Dekan Fakultas Sains dan Teknologi.

5.

Ibu P.H. Prima Rosa, M.Sc.selaku Kepala Program Studi Ilmu Komputer atas

kesabaran dan bimbingannya.

(10)

6.

Seluruh dosen pengajar Program Studi Ilmu Komputer Universitas Sanata

Dharma yang telah membimbing penulis selama kuliah, dan seluruh karyawan

terkait atas bantuan yang diberikan untuk kelancaran penyelesaian skripsi

7.

Papa dan Mama atas kasih sayang, doa yang tulus, dorongan semangat, dan

pengorbanannya selama ini.

8.

Kedua kakak penulis Andrew Michael dan Vivi yang telah banyak

memberikan bantuan, dorongan semangat, pelajaran hidup dan kasih sayang.

9.

Iwan yang telah memberi banyak pelajaran hidup, semangat dan kasih sayang,

sehingga penulis menjadi lebih kuat dan dewasa dalam menjalani hidup.

10.

Mbak Tika yang selalu memberikan bantuan, dorongan semangat dan selalu

siap mendampingi penulis.

11.

Kadek, Anjar, Clara dan Rey atas bantuan, semangat dan kerjasamanya selama

kuliah dan dalam penulisan skripsi ini.

12.

Semua teman seperjuangan ikom’03.

13.

Semua pihak yang tidak dapat penulis sebutkan satu persatu.

Penulis menyadari bahwa skripsi ini masih banyak kekurangan dan jauh dari

kesempurnaan, sehingga segala kritik dan saran yang bersifat membangun sangat

penulis harapkan demi perbaikan skripsi ini. Akhirnya dengan segala kekurangan

yang ada, penulis berharap agar skripsi ini masih dapat diambil manfaatnya.

Yogyakarta,

16

Agustus

2007

Penulis

(11)

HALAMAN PERSETUJUAN PEMBIMBING ...

HALAMAN PENGESAHAN ...

HALAMAN PERSEMBAHAN ...

PERNYATAAN KEASLIAN KARYA ...

INTISARI ...

ABSTRACT ...

KATA PENGANTAR ...

DAFTAR ISI ...

DAFTAR TABEL ...

DAFTAR GAMBAR ...

DAFTAR LAMPIRAN ...

BAB 1 PENDAHULUAN ...

A.

Latar Belakang ...

B.

Rumusan Masalah ...

C.

Batasan Masalah ...

D.

Tujuan dan Manfaat ...

E.

Metode ...

F.

Sistematika Penulisan ...

BAB 2 DASAR TEORI ...

ii

iii

iv

v

vi

vii

viii

x

xiii

xiv

xvi

1

1

3

3

3

4

4

6

(12)

A.

Citra ...

1.

Citra Biner ...

2.

Citra Skala Keabuan ...

3.

Citra Warna ...

4.

Citra Warna Berindeks ...

B.

Citra Dokumen Teks ...

C.

Pengolahan Citra Digital ...

D.

Histogram ...

E.

Binarisasi ...

F.

Segmentasi Citra Dokumen ...

1.

Profil Proyeksi ...

2.

Kode Rantai (Chain Code) ...

BAB 3 ANALISA DAN PERANCANGAN ...

A.

Analisa ...

B.

Perancangan ...

1.

Perancangan Proses ...

2.

Perancangan Menu ...

3.

Perancangan Teknologi ...

4.

Perancangan Antar Muka ...

5.

Perancangan Struktur Data ...

BAB 4 IMPLEMENTASI ...

A.

Implementasi Antar Muka dan Menu ...

B.

Implementasi Proses ...

6

6

7

8

8

9

10

13

13

15

15

16

18

18

19

19

23

25

25

29

31

31

34

(13)

BAB 5 HASIL DAN PEMBAHASAN ...

A.

Data Masukan ...

B.

Perangkat Keras dan Perangkat Lunak ...

C.

Eksekusi Modul ...

D.

Analisis Output ...

BAB 6 KESIMPULAN DAN SARAN ...

A.

Kesimpulan ...

B.

Saran ...

DAFTAR PUSTAKA ...

LAMPIRAN ...

46

46

46

47

54

64

64

64

65

66

(14)

Tabel 2. Hasil indeks baris ...

Tabel 3. Hasil indeks baris ...

Tabel 4. Cuplikan hasil Chain code citra dokumen data 1 ...

Tabel 5. Waktu Proses binarisasi dan segmentasi...

Tabel 6. Besar file hasil binarisasi dan segmentasi...

Tabel 7. Analisis output Segmentasi Citra Dokumen data 1 ...

Tabel 8. Analisis output Segmentasi Citra Dokumen data 2 ...

Tabel 9. Analisis output Segmentasi Citra Dokumen data 3 ...

Tabel 10. Analisis output Segmentasi Citra Dokumen data 4 ...

Tabel 11. Analisis output Segmentasi Citra Dokumen data 5 ...

Tabel 12. Rangkuman hasil Analisis output sistem ...

50

51

53

54

55

55

57

58

60

61

63

(15)

Gambar 2. Citra skala keabuan dan representasinya dalam data digital ...

Gambar 3. Citra warna dan representasinya dalam data digital ...

Gambar 4. Citra warna berindeks dan representasinya dalam data digital ...

Gambar 5. Citra dokumen teks ...

Gambar 6. Histogram citra ...

Gambar 7. citra dengan proyeksi vertikal dan horizontal ...

Gambar 8. Chain code 4 arah mata angin ...

Gambar 9. Chain code 8 arah mata angin ...

Gambar 10. Diagram konteks ...

Gambar 11. DAD level 1 ...

Gambar 12. DAD level 2 untuk proses binarisasi ...

Gambar 13. DAD level 2 untuk proses segmentasi ...

Gambar 14. Rancangan menu ...

Gambar 15. Rancangan antar muka menu utama ...

Gambar 16. Rancangan antar muka menu hasil segmentasi baris ...

Gambar 17. Rancangan antar muka menu hasil segmentasi kolom ...

Gambar 18. Rancangan antar muka menu chain code ...

Gambar 19. Rancangan antar muka menu piksel awal ...

Gambar 20. Rancang antar muka menu piksel biner ...

7

8

9

10

13

16

17

17

19

20

20

21

23

25

26

27

28

28

29

(16)

Gambar 21. Form Judul ...

Gambar 22. Form Utama ...

Gambar 23. Form Indeks baris ...

Gambar 24. Form Indeks Kolom ...

Gambar 25. Form Chain code ...

Gambar 26. Form Piksel awal ...

Gambar 27. Form Piksel biner ...

Gambar 28. Citra dokumen masukan data 1 ...

Gambar 29. Citra dokumen hasil proses binarisasi data 1 ...

Gambar 30. Histogram baris pada cuplikan citra dokumen data 1 ...

Gambar 31. Hasil pemotongan histogram baris ...

Gambar 32. Histogram kolom pada cuplikan citra dokumen data 1 ...

Gambar 33. Hasil pemotongan histogram kolom ...

Gambar 34. Hasil pemotongan kolom citra baris ...

Gambar 35. Citra dokumen hasil proses segmentasi data 1 ...

Gambar 36. Citra hasil chain code dan Chain code ...

31

31

32

32

33

33

34

47

48

49

49

50

50

51

51

52

(17)

Lampiran 2. Data Citra Dokumen Masukan dan Hasil ...

Lampiran 3. Hasil Chain Code ...

86

98

(18)

A

LATAR BELAKANG

Dewasa ini, aplikasi-aplikasi yang berhubungan dengan pemrosesan citra

berkembang pesat. Aplikasi-aplikasi pemrosesan citra telah merambah ke

berbagai bidang. Contoh aplikasinya antara lain, analisis citra dokumen,

pengenalan sidik jari, pembacaan kode barang, pengenalan plat nomor

kendaraan dll. Salah satu aplikasi yang paling banyak diteliti dan paling cepat

berkembang adalah ilmu analisis citra dokumen.

Analisis citra dokumen merupakan ilmu yang membahas tentang

algoritma-algoritma dan teknik-teknik yang diterapkan pada citra dokumen

untuk menghasilkan deskripsi yang dapat dikenali oleh komputer (Widiarti,

2006). Contoh kasus yang membutuhkan analisis citra dokumen misalnya

pembaca dokumen sampai dengan pembuatan sistem pengenal huruf otomatis

(automatic character recoqnizer) untuk suatu citra karakter ataupun citra

dokumen.

Sistem pengenal huruf otomatis telah banyak ditemukan pada berbagai alat

elektronik misalnya sebagai media input pengganti keyboard pada PC

genggam atau PDA. Selain itu, dengan adanya sistem pengenal huruf

otomatis, berbagai dokumen teks seperti jurnal-jurnal, surat-surat kantor

bahkan naskah-naskah kuno penting seperti naskah-naskah Jawa, dapat diubah

ke dalam format digital untuk dikenali atau bahkan diperbaharui.

(19)

Dokumen teks berupa naskah-naskah kuno seperti naskah Jawa merupakan

peninggalan kebudayaan lokal yang sangat penting dan perlu dilestarikan.

Tidak hanya naskah dokumen secara fisik, makna yang terkandung dalam

naskah dokumen tersebut juga harus dilestarikan dengan cara

menerjemahkannya ke dalam bahasa latin yang mudah dimengerti. Hal ini

membuka peluang yang sangat besar bagi perkembangan ilmu analisis citra

dokumen, khususnya untuk melestarikan naskah-naskah kuno atau dokumen

Jawa yang banyak ditemukan di Yogyakarta.

Secara umum terdapat 3 tahapan utama dalam analisis citra dokumen

(Widiarti, 2006). Pertama, menangkap atau mengambil citra dokumen teks

dengan menggunakan scanner. Kedua, proses pengolaan tingkat piksel.

Ketiga, tahap analisis tingkat fitur. Proses pengolaan tingkat piksel dibagi lagi

menjadi beberapa tahap yaitu binarisasi, normalisasi orientasi, pengurangan

noise (filling), perangkaan (thinning), dan segmentasi citra dokumen.

Sedangkan proses analisis tingkat fitur dibagi menjadi 2 tahap yaitu

pengenalan dan analisis teks serta pengenalan dan analisis grafis.

(20)

B

RUMUSAN MASALAH

Bagaimana melakukan proses segmentasi sehingga mendapatkan

citra-citra karakter penyusun citra-citra dokumen teks pada sebuah citra-citra dokumen teks

sastra Jawa modern?

C

BATASAN MASALAH

Sistem yang akan dibangun hanya akan membahas proses segmentasi dan

sedikit proses binarisasi sebuah citra dokumen teks sastra Jawa Modern.

Apabila ada proses sebelum proses segmentasi seperti normalisasi orientasi,

filling dan perangkaan, maka proses-proses tersebut akan dihitung atau

dilakukan secara manual dan tidak dibahas dalam tugas akhir ini.

Citra dokumen masukan yang ideal untuk sistem ini adalah citra dokumen

sastra Jawa modern yang tidak miring, bebas dari derau atau noise, karakter

penyusun citra dokumen tebal dan jelas, serta memiliki batas baris dan kolom

yang jelas.

D

TUJUAN DAN MANFAAT

Tujuan yang ingin dicapai adalah membangun sistem yang dapat

melakukan proses segmentasi untuk memperoleh citra-citra karakter penyusun

yang terdapat dalam citra dokumen teks sastra Jawa modern masukan.

(21)

E

METODE

Metode yang digunakan untuk membuat sistem segmentasi citra dokumen

ini adalah sebagai berikut :

1

Pengumpulan kebutuhan sistem

Pada tahap ini yang dilakukan adalah mengumpulkan data-data yang

terkait dengan sistem antara lain : citra dokumen yang akan digunakan

sebagai percobaan dan pelatihan, perangkat keras dan perangkat lunak

yang dibutuhkan.

2

Perancangan sistem

Pada tahap ini dilakukan perancangan yang dibutuhkan dalam sistem,

antara lain : proses-proses yang akan dilakukan, menu dan keterkaitannya,

karakteristik antar muka dan struktur data.

3

Penulisan Program

Merepresentasikan rancangan sistem ke dalam program.

4

Pengujian

Tahap ini dilakukan untuk mengetahui apakah sistem sesuai dengan yang

diinginkan, juga digunakan untuk mengetahui kesalahan yang mungkin

F

SISTEMATIKA PENULISAN

Bab I

Pendahuluan

(22)

Bab II

Dasar Teori

Dalam dasar teori akan membahas tentang berbagai dasar yang

mempengaruhi dan mendasari pembuatan sistem segmentasi citra

dokumen sastra Jawa modern ini.

Bab III

Analisis dan Perancangan Sistem

Dalam bab ini akan membahas tentang analisis masalah untuk

mempermudah dalam perancangan sistem serta perancangan sistem

antara lain perancangan modul dan antarmuka.

Bab IV

Implementasi

Dalam bab implementasi membahas tentang representasi dari tahap

perancangan ke dalam program dan pembahasannya.

Bab V

Hasil dan Pembahasan

Dalam bab hasil dan pembahasan menguraikan dan membahas

hasil pengujian sistem.

Bab VI

Kesimpulan dan Saran

(23)

A

CITRA

Citra merupakan suatu gambar pada bidang dua dimensi (Munir, 2004).

Secara umum citra dapat dikelompokkan menjadi 2 , yaitu citra tampak seperti

foto keluarga, gambar burung dan citra tak tampak seperti data gambar dalam

file yang sering disebut citra digital. Dari antara kelompok citra tersebut,

hanya citra digital yang dapat diolah menggunakan komputer, sehingga yang

akan dibahas dalam tugas akhir ini hanya citra digital.

Citra digital tersusun atas kumpulan titik atau elemen-elemen gambar yang

disebut piksel (picture element). Piksel merupakan elemen terkecil dari sebuah

citra digital, dengan jumlah total piksel adalah M x N, dimana M merupakan

width (nilai tinggi citra digital) dan N merupakan height

(nilai lebar citra

digital). Setiap piksel memiliki nilai berupa angka digital yang

merepresentasikan informasi yang mewakili piksel tersebut.

Menurut Achmad dan Firdausy (2005), 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,

(24)

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 1. Citra biner dan representasinya dalam data digital

2

Citra Skala Keabuan

Citra skala keabuan memberikan kemungkinan warna yang lebih

banyak daripada citra biner. Banyaknya kemungkinan nilai dan nilai

maksimumnya bergantung pada jumlah bit yang digunakan. Misalnya

untuk skala keabuan 8 bit, maka jumlah kemungkinan nilainya adalah 2

8

=

256, dan nilai maksimumnya adalah 2

8

-1 = 255. Format citra ini disebut

skala keabuan karena pada umumnya warna yang dipakai adalah antara

hitam sebagai warna minimal dan putih sebagai warna maksimalnya,

sehingga warna antaranya adalah abu-abu.

= 107 153 177 175

= 108 143 177 176

= 105 128 162 176

= 105 123 157 173

(25)

3

Citra Warna

Pada citra warna, setiap titik mempunyai warna yang spesifik yang

merupakan kombinasi dari 3 warna dasar, yaitu: merah, hijau dan biru.

Format citra seperti ini sering disebut sebagai citra RGB (red-green-blue).

Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum

255 (8 bit), misalnya warna kuning merupakan kombinasi warna merah

dan hijau sehingga nilai RGB-nya adalah 255 255 0. Dengan demikian

setiap titik pada citra warna membutuhkan data 3 byte.

Jumlah kombinasi warna yang mungkin unutk format citra ini

adalah 2

24

atau lebih dari 16 juta warna, dengan demikian bisa dianggap

mencakup semua warna yang ada.

= 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 3. Citra warna dan representasinya dalam data digital

4

Citra Warna Berindeks

(26)

informasi setiap titik merupakan indeks dari suatu tabel yang berisi

informasi warna yang tersedia, yang disebut palet warna.

Palet warna merupakan bagian dari citra warna berindeks, sehingga

pada saat menyimpan citra ini ke dalam file, informasi palet warna juga

harus disertakan.

Gambar 4. Citra warna berindeks dan representasinya dalam data digital

B

CITRA DOKUMEN TEKS

Dokumen teks merupakan sebuah tulisan yang memuat informasi

(Anonim, 2006). Biasanya dokumen ditulis atau dicetak di atas kertas dan

informasinya ditulis menggunakan tinta baik menggunakan tangan ataupun

media elektronik seperti komputer.

(27)

Gambar 5. Citra dokumen teks

C

PENGOLAHAN CITRA

DIGITAL

(28)

Operasi-operasi yang dilakukan di dalam pengolahan citra banyak

ragamnya. Namun, secara umum, operasi pengolahan citra dapat

diklasifikasikan dalam beberapa jenis (Munir, 2004) sebagai berikut :

1

Perbaikan kualitas citra

Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara

memanipulasi parameter-parameter citra. Dengan operasi ini, ciri-ciri

khusus yang terdapat di dalam citra lebih ditonjolkan.

2

Pemugaran citra

Operasi ini bertujuan menghilangkan/meminimumkan cacat pada citra.

Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra.

Bedanya, pada pemugaran citra penyebab degradasi gambar diketahui.

3

Pemampatan citra

Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk

yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal

penting yang harus diperhatikan dalam pemampatan adalah citra yang

telah dimampatkan harus tetap mempunyai kualitas gambar yang bagus.

4

Segmentasi citra

Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa

segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat

dengan pengenalan pola yang akan dibahas dalam tugas akhir ini.

5

Analisis citra

(29)

tertentu yang membantu dalam identifikasi objek. Proses segmentasi

kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari

sekelilingnya.

6

Rekonstruksi citra

Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa

citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam

bidang medis.

Pengolahan citra pada dasarnya dilakukan dengan cara memodifikasi setiap

titik dalam citra tersebut sesuai keperluan. Menurut Achmad dan Firdausy

(2005), secara garis besar modifikasi tersebut dikelompokkan menjadi:

1.

Operasi titik, dimana setiap titik diolah secara tidak berhubungan terhadap

titik-titik yang lain.

2.

Operasi global, di mana karakteristik global (biasanya berupa sifat

statistik) dari citra digunakan untuk memodifikasi nilai setiap titik.

3.

Operasi temporal/berbasis bingkai, di mana sebuah citra diolah dengan

cara dikombinasikan dengan citra lain.

4.

Operasi geometri, di mana bentuk, ukuran, atau orientasi citra dimodifikasi

secara geometris.

5.

Operasi banyak titik bertetangga, di mana data dari titik-titik yang

bersebelahan dengan titik yang ditinjau ikut berperan dalam mengubah

nilai.

(30)

D

HISTOGRAM

Histogram merupakan salah satu alat bantu yang paling sederhana dan

sangat berguna dalam pengolahan citra (Achmad dan Firdausy, 2005).

Histogram citra adalah grafik yang menggambarkan penyebaran nilai-nilai

intensitas piksel dari suatu citra atau bagian tertentu di dalam citra.

Misalkan citra digital memiliki L derajat keabuan, yaitu dari 0 sampai L-1

(pada citra dengan kuantitas derajat keabuan 8 bit, nilai derajat keabuan dari 0

sampai 255). Secara matematis histogram citra dihitung dengan rumus (Munir,

2004) :

1

,...,

2

,

1

,

0

,

=

=

i

L

n

n

h

i i

Dimana :

n

i

= jumlah piksel yang memiliki derajat keabuan i

n = jumlah seluruh piksel di dalam citra

a b

Gambar 6. a) citra skala keabuan, b) histogram citra skala keabuan

E

BINARISASI

(31)

proses ini adalah menentukan nilai ambang yang akan berfungsi untuk

membagi citra menjadi dua bagian secara otomatis. Salah satu algoritma

pencarian nilai ambang adalah menggunakan algoritma K-Mean Clustering.

K-Mean Clustering merupakan suatu algoritma yang menggolongkan

suatu objek berdasarkan atribut atau ciri tertentu kedalam K kelompok

(Savakis, 1998). K merupakan banyaknya kelompok yang akan dibentuk dan

bernilai bulat. Dalam kasus binarisasi, kelompok yang akan dibuat sebanyak

dua kelompok yaitu kelompok objek dan kelompok latar belakang. Berikut ini

merupakan algoritma K-Mean Clustering (Teknomo, 2004) :

1

Menentukan jumlah kelompok yang akan dibuat.

2

Inisialisasi Mean (pusat) dari masing-masing kelompok.

3

Menghitung jarak setiap titik terhadap masing-masing pusat dan

mengelompokkan titik tersebut ke dalam kelompok yang memiliki jarak

paling minimum.

4

Menghitung kembali pusat masing-masing kelompok dengan cara

menghitung rata-rata nilai setiap kelompok.

5

Ulangi kembali langkah 3-4 jika masih ada objek yang berpindah

kelompok atau pusat lama tidak sama dengan pusat baru.

6

Nilai ambang diperoleh dengan menghitung rata-rata semua pusat.

Nilai biner suatu citra g(x,y), dimana f(x,y) menyatakan gray-level dari

suatu poin (x,y), dan T menyatakan suatu nilai ambang, didefinisikan sebagai

berikut :

>

=

T

y

x

f

jika

T

y

x

f

jika

y

x

g

)

,

(

0

)

,

(

1

(32)

F

SEGMENTASI CITRA DOKUMEN

Segmentasi citra dokumen merupakan tahapan dalam proses pengolahan

citra dokumen tingkat piksel (Widiarti, 2006) dengan tujuan utama untuk

memperoleh citra-citra penyusun yang terdapat dalam citra dokumen masukan

dengan cara melakukan pembagian terhadap citra dokumen masukan sehingga

diperoleh beberapa wilayah berdasarkan kriteria tertentu. Hasil dari proses

segmentasi ini akan digunakan untuk proses yang lebih lanjut yang dapat

dilakukan terhadap suatu citra, yaitu pengenalan citra.

Ada beberapa metode yang dapat digunakan dalam segmentasi citra,

antara lain yaitu :

1

Profil Proyeksi

Metode profil proyeksi dibagi menjadi 2 yaitu profil proyeksi

vertikal dan profil proyeksi horizontal. Profil proyeksi vertikal adalah

banyaknya piksel hitam yang tegak lurus dengan sumbu y, yaitu:

[ ]

[ ]

=

=

M

j

v

i

S

i

j

P

1

,

Sedangkan profil proyeksi horizontal adalah banyaknya piksel

hitam yang tegak lurus dengan sumbu x (Widiarti,2006), yaitu:

[ ]

[ ]

=

=

N

i

h

j

S

i

j

P

1

,

Keterangan :

S =

Citra

(33)

M

= Lebar citra

N

= Tinggi citra

i

= Baris

i = 1,2,3...,N

j

= Kolom

j = 1,2,3...,M

Gambar 7. citra dengan proyeksi vertikal dan horizontal

2

Kode Rantai (Chain Code)

Kode rantai (chain code) adalah notasi untuk mengkodekan garis tepi

yang membentuk batas daerah (Munir, 2004). Pengkodean dengan chain

code lebih singkat dan jelas dibandingkan dengan notasi [(x

1

,y

1

),(x

2

,y

2

),..].

Kode rantai digambarkan untuk membentuk batas wilayah dimana piksel

putih berada di luar dan piksel hitam berada di dalam batas wilayah. Kode

rantai menspesifikasikan arah setiap piksel tepi di dalam garis tepi. Ada

dua kode arah yang dapat digunakan dalam kode rantai (Price, 1996) :

a

4 arah mata angin

(34)

a b

Gambar 8. a) 4 arah mata angin, b) kode rantai : 222110321033

b

8 arah mata angin

Arah yang digunakan adalah 8 arah mata angin, seperti yang

terlihat pada gambar 9. Karena menggunakan 8 arah mata angin, maka

dibutuhkan 3 bit untuk mengkodekan setiap arah.

a

b

Gambar 9. a) 8 arah mata angin, b) kode rantai : 01700754444422

(35)

A

ANALISA

Secara garis besar, proses segmentasi citra dokumen sastra jawa modern

membutuhkan

input berupa citra dokumen sastra jawa modern. Sebelum

menjadi

input dalam proses segmentasi, ada beberapa proses yang harus

dilakukan terlebih dahulu terhadap citra dokumen tersebut. Proses-proses

tersebut adalah :

1

Normalisasi orientasi, berfungsi untuk mengurangi kesalahan orientasi,

misalnya citra miring saat pembacaan data citra dokumen dengan scanner.

2

Binarisasi, berfungsi untuk membagi citra menjadi dua kelompok yaitu

kelompok objek yang dinyatakan dengan nilai biner 0 dan kelompok latar

yang dinyatakan dengan nilai biner 1.

3

Filling, berfungsi untuk menghapus sebanyak mungkin noise yang muncul

pada citra dokumen.

Proses normalisasi orientasi dan filling akan dilakukan secara manual dan

tidak akan dibahas lebih lanjut dalam tugas akhir ini.

Selanjutnya, untuk mengatasi input citra dokumen yang tidak biner, sistem

diharapkan mampu mengubah citra dokumen input menjadi citra dokumen

biner. Algoritma pencarian nilai ambang dalam binarisasi yang digunakan

adalah algoritma K-Mean Clustering.

(36)

Setelah citra dokumen sudah baik, artinya sudah melewati ketiga proses

diatas, maka citra dokumen tersebut siap menjadi input dari proses

segmentasi. Metode segmentasi yang digunakan ada 2 yaitu profil proyeksi

dan

chain code dengan 8 arah mata angin. Profil proyeksi digunakan untuk

membagi citra dokumen menjadi baris-baris dan kolom-kolom yang berisi

karakter. Kemudian chain code digunakan untuk mengkodekan tepi dari setiap

karakter.

Hasil yang diharapkan adalah memperoleh citra-citra karakter penyusun

citra dokumen beserta chain code dari masing-masing karakter yang terpisah

satu-sama lain.

B

PERANCANGAN

1

Perancangan Proses

a

Diagram Konteks (DAD level 0)

Gambar 10. Diagram konteks

(37)

penyusun citra dokumen beserta dengan chain code-nya

masing-masing.

b

DAD level 1

Gambar 11. DAD level 1

Proses pertama yang dilakukan adalah binarisasi terhadap citra

input. Proses binarisasi ini berfungsi untuk memisahkan citra objek

dengan citra latar belakang. Hasil dari proses binarisasi adalah sebuah

citra dokumen biner dengan nilai piksel 1 untuk citra latar belakang,

dan nilai piksel 0 untuk citra objek.

Citra dokumen biner tersebut kemudian menjadi input dari proses

segmentasi dan menghasilkan citra karakter penyusun citra dokumen

dan chain code.

c

DAD level 2 untuk proses binarisasi

Gambar 12. DAD level 2 untuk proses binarisasi

(38)

berupa citra dokumen sastra jawa modern. Kemudian dengan metode

K-Mean Clustering diperoleh suatu nilai ambang. Nilai ambang

tersebut akan menjadi input dalam proses selanjutnya yaitu ubah biner.

Dalam proses ubah biner, piksel-piksel yang bernilai lebih besar dari

nilai ambang akan menjadi 1 untuk menandakan citra latar belakang

dan piksel-piksel yang bernilai lebih kecil atau sama dengan nilai

ambang akan bernilai 0 untuk menandakan citra objek. Sehingga hasil

dari proses ini adalah sebuah citra dokumen biner yang

piksel-pikselnya bernilai 0 atau 1.

d

DAD level 2 untuk proses segmentasi

(39)

Dalam proses segmentasi terdapat beberapa proses. Proses pertama

adalah segmentasi menggunakan profil proyeksi vertikal. Proses ini

membutuhkan input berupa citra dokumen biner dari proses binarisasi.

Yang dilakukan dalam proses ini adalah menghitung banyaknya piksel

objek yang bernilai 0 dalam setiap1 baris piksel sampai dengan tinggi

citra dokumen sehingga menghasilkan histrogram vertikal.

Proses kedua adalah cari indeks baris. Input dari proses ini adalah

histrogram vertikal dari proyeksi vertikal. Yang dilakukan dalam

proses ini adalah mencari indeks baris sebagai penanda mulai dan

berakhirnya citra baris. Baris pertama yang memiliki nilai histrogram

vertikal 0 sebelum dan sesudah baris lain yang memiliki nilai

histogram vertikal lebih dari 0 serta baris yang memiliki nilai

histogram vertikal terendah dari 2 baris yang memiliki nilai histogram

vertikal tertinggi dalam histogram vertikal akan disimpan sebagai

indeks baris dalam file indeks baris.

Proses ketiga adalah segmentasi menggunakan profil proyeksi

horizontal. Proses ini membutuhkan input indeks baris yang diperoleh

dari

file indeks baris. Yang dilakukan dalam proses ini adalah

menghitung banyaknya piksel objek yang bernilai 0 dalam setiap 1

kolom piksel sampai dengan lebar citra dokumen sehingga

menghasilkan histogram horizontal.

(40)

pertama yang memiliki nilai histrogram horizontal 0 sebelum dan

sesudah kolom lain yang memiliki nilai histogram horizontal lebih dari

0 akan disimpan sebagai indeks kolom dalam file indeks kolom.

Proses kelima adalah potong karakter. Input dari proses ini adalah

indeks kolom dan indeks baris, kemudian citra dokumen dipotong

sesuai dengan indeks baris dan indeks kolom sehingga menghasilkan

citra karakter dan disimpan dalam file citra karakter.

Proses keenam adalah cari chain code. Input dari proses ini adalah

citra karakter. Titik pertama dari citra karakter yang bernilai 0 akan

disimpan sebagai suatu titik awal chain code, dan untuk titik

selanjutnya akan dikodekan sesuai dengan kode yang telah disepakati

dengan cara menelusuri sekeliling citra karakter yang bernilai 0.

Setelah

chain code diperoleh maka akan disimpan dalam file kode

rantai. Citra karakter dan chain code akan ditampilkan dilayar.

2

Perancangan Menu

Berikut merupakan perancangan menu sistem dan keterkaitannya :

(41)

Menu ambil citra berfungsi untuk membuka file citra dokumen

*.bmp.

Menu binarisasi berfungsi untuk mengubah citra dokumen input

menjadi citra dokumen biner.

Menu segmentasi berfungsi untuk memperoleh citra hasil

segmentasi profil proyeksi horizontal, profil proyeksi vertikal dan chain

code.

Menu hasil segmentasi baris berfungsi untuk menampilkan citra

dokumen hasil segmentasi profil proyeksi, hasil indeks baris dan jumlah

kolom yang diperoleh.

Menu hasil segmentasi kolom berfungsi untuk menampilkan citra

baris hasil segmentasi profil proyeksi dan hasil indeks kolom. Citra baris

ditampilkan per baris.

Menu

chain code berfungsi untuk menampilkan citra baris, citra

karakter hasil segmentasi chain code dan profil proyeksi serta chain code

dari masing-masing karakter. Citra karakter hasil ditampilkan per karakter.

Menu simpan chain code berfungsi untuk menyimpan chain code

yang diperoleh dari hasil segmentasi.

Menu pixel awal berfungsi untuk menampilkan nilai keabuan dari

citra dokumen masukan.

(42)

3

Perancangan Teknologi

Program yang digunakan untuk membuat aplikasi segmentasi citra

dokumen ini adalah Borland Delphi 7.

4

Perancangan Antar Muka

Tampilan utama memiliki beberapa pilihan menu. Pengaktifan

menu dilakukan secara bertahap. Menu yang pertama kali aktif adalah

menu ambil citra. Citra masukan akan ditampilkan pada jendela citra awal.

Setelah citra diinputkan, menu binarisasi akan aktif. Setelah proses

binarisasi dilakukan, menu segmentasi, pixel awal dan pixel biner akan

aktif. Citra hasil binarisasi dan segmentasi akan ditampilkan pada jendela

citra hasil. Perancangan antar muka untuk menu ambil citra, binarisasi dan

segmentasi sama dan disebut menu utama. Perancangan antar muka untuk

menu utama adalah sebagai berikut :

(43)

Menu hasil segmentasi baris menampilkan indeks baris yang telah

diperoleh dari proses proyeksi vertikal dalam segmentasi dan citra

dokumen hasil segmentasi. Indeks baris ditampilkan pada jendela indeks

baris dan citra hasil segmentasi ditampilkan pada jendela citra hasil

segmentasi. Perancangan antar muka untuk menu hasil segmentasi baris

adalah sebagai berikut :

Gambar 16. Rancangan antar muka menu hasil segmentasi baris

(44)

sama untuk setiap baris. Perancangan antar muka untuk menu hasil

segmentasi kolom adalah sebagai berikut :

Gambar 17. Rancangan antar muka menu hasil segmentasi kolom

(45)

Gambar 18. Rancangan antar muka menu chain code

Menu piksel awal berfungsi untuk menampilkan derajat keabuan

setiap piksel yang terdapat pada citra dokumen input. Perancangan antar

muka untuk menu pixel awal adalah sebagai berikut :

(46)

Menu piksel biner berfungsi untuk menampilkan nilai ambang dan

nilai biner yang diperoleh dari proses binarisasi. Perancangan antar muka

untuk menu pixel biner adalah sebagai berikut :

Gambar 20. Rancang antar muka menu piksel biner

5

Perancangan Struktur Data

Penyimpanan matriks perbatasan yang diperlukan untuk pencarian

chain code dan

file kode rantai menggunakan struktur data bertipe array

dua dimensi dan berukuran m x n, dimana dalam bahasa pemrograman

Delphi bentuk penyimpanan untuk matriks perbatasan adalah :

Tbatas = record

Titik : byte;

Penanda : integer;

end;

Matriks_batas : array[n,m] of Tbatas;

(47)

a

Matriks_batas

record pertama bernama titik bertipe byte dan

dipergunakan untuk menyimpan nilai apakah suatu titik merupakan

perbatasan. Jika titik merupakan perbatasan maka nilai yang disimpan

adalah 1, jika bukan maka nilai yang disimpan adalah 0.

b

Matriks_batas

record

kedua bernama penanda bertipe integer dan

dipergunakan untuk menyimpan nilai apakah suatu titik sudah

dikunjungi atau belum untuk keperluan pencarian chain code. Jika titik

belum pernah dikunjungi, maka nilai yang disimpan adalah 0, jika

sudah maka nilai yang disimpan adalah 1.

Penyimpanan untuk kode rantai adalah :

Tkode = record

Titik_awal, Chain_code : array of string;

huruf : array of array of byte;

end;

Kode_rantai : array[n,m] of Tkode;

Dengan m adalah jumlah baris, n adalah jumlah maksimum kolom dan

keterangan setiap selnya adalah sebagai berikut :

a

Kode_rantai record pertama bernama titik_awal bertipe array of string

dan dipergunakan untuk menyimpan titik awal suatu chain code.

b

Kode_rantai

record kedua bernama chain_code bertipe array of string

dan dipergunakan untuk menyimpan chain code.

(48)

A

IMPLEMENTASI ANTAR MUKA DAN MENU

Implementasi tampilan antar muka halaman judul adalah sebagai berikut :

Gambar 21. Form Judul

Implementasi antar muka dan menu utama adalah sebagai berikut :

Gambar 22. Form Utama

(49)

Implementasi tampilan antar muka dan menu hasil segmentasi baris adalah

sebagai berikut :

Gambar 23. Form Indeks baris

Implementasi tampilan antar muka dan menu hasil segmentasi kolom adalah

sebagai berikut :

(50)

Implementasi tampilan antar muka dan menu chain code adalah sebagai

berikut :

Gambar 25. Form Chain code

Implementasi tampilan antar muka dan menu piksel awal adalah sebagai

berikut :

(51)

Implementasi tampilan antar muka dan menu piksel biner adalah sebagai

berikut :

Gambar 27. Form Piksel biner

B

IMPLEMENTASI PROSES

1

Binarisasi

Modul binarisasi ini terdiri dari 2 submodul yaitu cari ambang dan

ubah biner. Algoritma pencarian ambang yang digunakan adalah algoritma

K-Mean Clustering. Setelah nilai ambang diperoleh, maka citra objek dan

citra latar belakang akan dipisahkan atau dibinerkan berdasarkan aturan

threshold.

a

Cari ambang

Fungsinya menentukan nilai ambang yang akan digunakan untuk

memisahkan citra objek dengan citra latar belakang. Inputnya adalah

citra dokumen (*.bmp). Outputnya adalah nilai ambang.

(52)

(1)

Buka citra dokumen input

(2)

Inisialisasi matriks_gambar sama dengan nilai piksel citra

dokumen input.

(3)

Inisialisasi nilai tengah 2 cluster M

1

(nilai tengah cluster

pertama) dan M

2

(nilai tengah cluster kedua) dengan 2 nilai

piksel pertama yang berbeda dari matriks_gambar.

(4)

Set i=0

(5)

Set j=0

(6)

Hitung jarak matriks_gambar[j,i] dengan M

1

dan M

2

berturut-turut D

1

dan D

2

. Jika D

1

lebih kecil daripada D

2

maka

matriks_gambar[j,i] akan menjadi anggota cluster pertama dan

sebaliknya. Jika D2 lebih kecil daripada D1 maka

matriks_gambar[j,i] akan menjadi anggota cluster kedua.

(7)

Tambahkan j dengan 1

(8)

Ulangi langkah ke (5)-(7) sampai dengan j=lebar citra-1

(9)

Tambahkan i dengan 1

(10)

Ulangi langkah (4)-(9) sampai dengan i=tinggi citra-1

(11)

Hitung rata-rata cluster pertama dan rata-rata cluster kedua.

Jika rata-rata cluster pertama sama dengan M

1

dan rata-rata

cluster kedua sama dengan M

2

, maka lanjut ke langkah (14).

Jika tidak maka ke langkah (12)

(12)

M

1

= rata-rata cluster pertama dan M

2

= rata-rata cluster kedua

(53)

(14)

Hitung nilai ambang dari rata-rata M

1

dan M

2

.

b

Ubah biner

Fungsinya membuat citra biner dari citra dokumen masukan

dimana citra objek bernilai 0 dan citra latar belakang bernilai 1.

Inputnya adalah citra dokumen (*.bmp) dan nilai ambang. Outputnya

adalah citra biner.

Algoritma :

(1)

Inisialisasi matriks_biner dengan baris = tinggi citra dokumen

dan kolom = lebar citra dokumen.

(2)

Set i=0

(3)

Set j=0

(4)

Jika matriks_gambar[j,i] lebih besar dari nilai ambang, maka

matriks_biner[j,i] akan menjadi 1. jika matriks_gambar[j,i]

lebih kecil atau sama dengan nilai ambang, maka

matriks_biner[j,i] akan menjadi 0.

(5)

Tambahkan j dengan 1

(6)

Ulangi (3)-(5) sampai dengan lebar citra-1

(7)

Tambahkan i dengan 1

(8)

Ulangi (2)-(7) sampai dengan tinggi citra-1

2

Segmentasi

(54)

Fungsinya adalah membuat histogram vertikal dari citra

dokumen.

Inputnya adalah citra dokumen biner. Outputnya adalah

histogram vertikal.

Algoritma :

(1)

Set i=0

(2)

Inisialisasi hitung_baris[i]=0

(3)

Set j=0

(4)

Jika matriks_biner[j,i] adalah objek maka hitung_baris[i]

ditambah 1

(5)

Tambahkan j dengan 1

(6)

Ulangi (4)-(5) sampai j sama dengan lebar citra-1

(7)

Tambahkan i dengan 1

(8)

Ulangi (2)-(7) sampai i sama dengan tinggi citra-1

b

Cari indeks baris

Fungsinya adalah mencari indeks-indeks baris citra. Inputnya

adalah histrogram vertikal. Outputnya adalah indeks batas atas dan

bawah dari setiap baris citra dokumen.

Algoritma:

(1)

Inisialisasi matriks_segment sama dengan matriks_biner

(2)

Set i=0

(3)

Jika hitung_baris[i]=0 jadikan semua nilai piksel

matriks_segment pada baris ke-i sama dengan objek

(55)

(5)

Ulangi (3)-(5) sampai i sama dengan tinggi citra-1

(6)

Inisialisasi maks1 = 0

(7)

Set i = 1

(8)

Jika hitung_baris[i] lebih besar dari hitung_baris[maks1] maka

maks1 = i dan lanjut langkah (8). Jika tidak maka lanjut

langkah (10).

(9)

Tambahkan i dengan 1

(10)

Ulangi langkah (8)-(9) sampai i sama dengan tinggi citra-1

(11)

Inisialisasi maks2 = maks1+1

(12)

Set i = maks1+1

(13)

Jika hitung_baris[i] lebih kecil dari hitung_baris[i+1] maka

maks2 = i+1 dan lanjut langkah (15), jika tidak lanjut langkah

(14)

(14)

Jika hitung_baris[maks2] lebih besar dari hitung baris

terbesar/3 maka lanjut langkah (17)

(15)

Tambahkan i dengan 1

(16)

Ulangi langkah (13)-(15) sampai i sama dengan tinggi citra-1

(17)

Set minim = maks1+1

(18)

Set i = maks1+1

(19)

Jika hitung_baris[i] lebih kecil daripada hitung_baris[minim],

maka minim=i

(20)

Tambahkan i dengan 1

(56)

(22)

Jika hitung_baris[maks2] lebih besar dari hitung baris

terbesar/2 dan hitung_baris[minim] lebih kecil dari hitung baris

terbesar/3 maka jadikan semua piksel matriks_segment pada

baris ke-minim sama dengan objek

(23)

maks1 = maks2

(24)

Ulangi langkah (11)-(23) sampai maks1 lebih besar atau sama

dengan dari tinggi citra-1

(25)

Set i=0

(26)

Inisialisasi hitung_baris2[i]=0

(27)

Set j=0

(28)

Jika matiks_segment[j,i] adalah objek maka hitung_baris2[i]

ditambah 1

(29)

Tambahkan j dengan 1

(30)

Ulangi (28)-(29) sampai j sama dengan lebar citra-1

(31)

Tambahkan i dengan 1

(32)

Ulangi (26)-(31) sampai i sama dengan tinggi citra-1

(33)

Set jumlah_baris=0

(34)

Set i=0

(57)

(36)

Jika hitung_baris2[i] tidak sama dengan lebar citra dan

hitung_baris2[i+1] sama dengan lebar citra maka i akan

disimpan dalam file indeks baris sebagai indeks batas

_bawah_baris[jumlah_baris] dan tambahkan jumlah_baris

dengan 1

(37)

Tambahkan i dengan 1

(38)

Ulangi (35)-(37) sampai i sama dengan tinggi citra-1

c

Profil proyeksi horizontal

Fungsinya adalah membuat histogram horizontal dari citra

baris.

Inputnya adalah indeks batas atas dan batas bawah baris.

Outputnya adalah histogram horizontal.

Algoritma :

(1)

Set i=0

(2)

Set j=0

(3)

Inisialisasi hitung_kolom[j]=0

(4)

Set k=batas_atas_baris [i]

(5)

Jika matriks_segment[j,i] adalah objek maka hitung_kolom[j]

ditambah 1

(6)

Tambahkan k dengan 1

(7)

Ulangi (5)-(6) sampai i sama dengan batas_bawah_baris[i]-1

(8)

Tambahkan j dengan 1

(58)

(11)

Tambahkan i dengan 1

(12)

Ulangi (2)-(11) sampai k sama dengan jumlah_baris-1

d

Cari indeks kolom

Fungsinya adalah mencari indeks-indeks kolom citra baris.

Inputnya adalah histrogram horizontal. Outputnya adalah indeks batas

atas dan bawah dari setiap citra karakter dari setiap baris citra.

Algoritma :

(1)

Set j=0

(2)

Jika hitung_kolom[j]=0 jadikan semua nilai piksel

matriks_segment pada kolom ke-j sama dengan objek

(3)

Tambahkan j dengan 1

(4)

Ulangi (2)-(3) sampai j sama dengan lebar citra-1

(5)

Inisialisasi jumlah_kolom[i]=0

(6)

Set j=0

(7)

Jika hitung_kolom[j] sama dengan 0 dan hitung_kolom[j+1]

tidak sama dengan 0, maka j akan disimpan dalam file indeks

kolom sebagai indeks batas_atas_kolom[jumlah_kolom[i],i]

(8)

Jika hitung_kolom[j] tidak sama dengan 0 dan

hitung_kolom[j+1] sama dengan 0, maka j akan disimpan

dalam

file indeks kolom sebagai indeks

batas_bawah_kolom[jumlah_kolom[i],i] dan jumlah_kolom[i]

ditambahkan dengan 1.

(59)

(10)

Ulangi langkah (7)-(9) sampai j sama dengan lebar citra-1

e

Potong karakter dan Chain code

Potong karakter berfungsi untuk membagi citra baris ke dalam

karakter-karakter.

Inputnya adalah file indeks kolom, file indeks baris

dan citra dokumen biner. Outputnya adalah citra karakter.

Chain code berfungsi untuk membuat chain code dari

masing-masing karakter. Inputnya adalah citra karakter. Outputnya adalah

chain code dari masing-masing karakter.

Algoritma :

(1)

Inisialisasi matriks_batas berdimensi dua dengan lebar = lebar

citra biner dan tinggi = tinggi citra biner.

Matriks_batas[n,m].titik bernilai piksel 0. Dengan n berkisar

antara 0 sampai lebar citra-1 dan m berkisar antara 0 sampai

tinggi citra-1.

(2)

Matriks_batas[n,m].penanda bernilai piksel 1. Dengan n

berkisar antara 0 sampai lebar citra-1 dan m berkisar antara 0

sampai tinggi citra-1

(3)

Set i=1

(4)

Set j=1

(5)

Jika piksel matriks_biner[j,i] adalah objek dan minimal satu

piksel 4 tetangganya adalah latar belakang, maka

matriks_batas[j,i].titik sama dengan 1

(60)

(7)

Ulangi (5)-(6) sampai j sama dengan lebar citra-2

(8)

Tambahkan i dengan 1

(9)

Ulangi (4)-(8) sampai i sama dengan tinggi citra-2

(10)

Set i=0

(11)

Set j=0

(12)

Chain=0 dan Chain2=1

(13)

Set k= batas_atas_baris[i]

(14)

Set l= batas_atas_kolom[j,i]

(15)

Jika matriks_batas[l,k].titik dan matriks_batas[l,k].penanda

sama dengan 1 (artinya piksel (k,l) merupakan perbatasan dan

belum pernah dikunjungi), maka k dan l akan disimpan sebagai

titik awal chain code dalam kode_rantai[j,i].titik_awal[chain],

matriks_batas[l,k].penanda akan berubah nilai menjadi 0

(artinya telah dikunjungi) dan kode_rantai[j,i].huruf[l,k] akan

berubah nilai menjadi 1 dilanjutkan langkah (16). Jika tidak,

dilanjutkan langkah (35)

(16)

x=k dan y=l

(17)

batas_x_atas=batas_x_bawah=x dan

batas_y_atas=batas_y_bawah=y

(18)

Cek titik awal chain code. Jika ada lanjutkan langkah (19). Jika

tidak lanjutkan langkah (33).

(61)

batas_y_atas>=y>=batas_y_bawah lanjut langkah (20). Jika

tidak, dilanjutkan langkah (33)

(20)

Jika x<batas_x_atas maka batas_x_atas=x

(21)

Jika x>batas_x_bawah maka batas_x_bawah=x

(22)

Jika y<batas_y_atas maka batas_y_atas=y

(23)

Jika y>batas_y_bawah maka batas_y_bawah=y

(24)

Cek banyaknya tetangga matriks_batas[x,y].titik yang

merupakan objek dan dinamakan B.

(25)

Jika B lebih dari 1 maka salah satu piksel akan menjadi x dan y

dan dikodekan sesuai dengan syarat yang ditentukan dan

ditambahkan dalam deretan string

kode_rantai[j,i].chain_code[chain], matriks_batas[x,y].penanda

sama dengan 0 dan kode_rantai[j,i].huruf[lx,y] sama dengan 1,

sedangkan piksel lainnya akan menjadi titik awal chain code

selanjutnya. Tambahkan chain2 dengan B-1, lanjut langkah

(28)

(26)

Jika B sama dengan 1 maka piksel tetangga tersebut akan

menjadi x dan y dan dikodekan sesuai dengan syarat yang

ditentukan dan ditambahkan dalam deretan string

kode_rantai[j,i].chain_code[chain], matriks_batas[x,y].penanda

sama dengan 0 dan kode_rantai[j,i].huruf[x,y] sama dengan 1,

lanjut langkah (28)

(62)

(28)

Jika x<batas_x_atas maka batas_x_atas=x

(29)

Jika x>batas_x_bawah maka batas_x_bawah=x

(30)

Jika y<batas_y_atas maka batas_y_atas=y

(31)

Jika y>batas_y_bawah maka batas_y_bawah=y

(32)

Ulangi langkah (24)-(27)

(33)

Tambahkan chain dengan 1

(34)

Ulangi langkah (18)-(33) sampai titik awal chain code tidak

ada atau sampai chain lebih besar atau sama dengan chain2

(35)

Tambahkan l dengan 1

(36)

Ulangi langkah (15)-(35) sampai l sama dengan

batas_bawah_kolom[i,j]

(37)

Tambahkan k dengan 1

(38)

Ulangi langkah (14)-(37) sampai k sama dengan

batas_bawah_baris[i]

(39)

Tambahkan j dengan 1

(40)

Ulangi langkah (12)-(40) sampai j sama dengan

jumlah_kolom[i]

(41)

Tambahkan i dengan 1

(63)

A

DATA MASUKAN

Data masukan untuk pengujian adalah citra dokumen sastra jawa modern

yang relatif bebas noise dan tidak miring. Terdapat 5 data citra dokumen yang

akan dijadikan input sistem. Karakteristik data citra dokumen masukan dapat

dilihat pada tabel berikut :

Tabel 1. Karakteristik citra dokumen masukan

No Nama

File

Dokumen

Ukuran Citra baris dan

Kolom

Besar

File

1.

Kolokodrat.bmp

2161 vs 1466

3100 KB

2.

Chino.bmp

2054 vs 1397

2810 KB

3.

Jinambar.bmp

2117 vs 1522

3152 KB

4.

Gandrung.bmp

2171 vs 1521

3233 KB

5.

Kebokanongo.bmp

2370 vs 1193

2770 KB

B

PERANGKAT KERAS DAN PERANGKAT LUNAK

Spesifikasi perangkat keras (Hardware) dan perangkat lunak (Software)

yang digunakan dalam implementasi dan pengujian sistem Segmentasi Citra

Dokumen teks Sastra Jawa Modern ini adalah : Ram 512 MB, Harddisk 40

GB, Intel(R) Celeron(R) CPU 2 GHz, Sistem Operasi Microsoft Windows XP

Professional, Program Borland Delphi 7

(64)

C

EKSEKUSI MODUL

Format ekstension citra masukan harus berupa file *.bmp. Setelah data

masukan diperoleh melalui menu ambil citra maka selanjutnya dilakukan

proses binarisasi terlebih dahulu, dengan tujuan memperoleh citra biner yang

akan digunakan sebagai masukan dalam proses segmentasi.

(65)

Dari hasil eksekusi modul binarisasi untuk data ke 1 diperoleh nilai

ambang 128. Artinya piksel dengan intensitas warna kurang dari atau sama

dengan 128 diganti dengan nilai 0 dan intensitas warna yang lebih dari 128

diganti dengan nilai 1.

(66)

Proses segmentasi dimulai dengan membuat histogram baris dengan tujuan

untuk mendapatkan batas-batas indeks baris teks. Contoh histogram baris pada

suatu cuplikan citra dokumen data 1 adalah sebagai berikut :

Gambar 30. Histogram baris pada cuplikan citra dokumen data 1

Hasil histogram baris tersebut kemudian digunakan untuk mendapatkan

batas-batas indeks baris. Contoh pemotongan baris dari histogram diatas :

Gambar 31. Hasil pemotongan histogram baris

(67)

Tabel 2. Hasil indeks baris

Baris

Indeks Baris

1 2 3

Batas atas

146 291 384

Batas bawah

239 384 478

Setelah diperoleh semua indeks baris dari citra dokumen, proses

segmentasi dilanjutkan dengan membuat histogram kolom untuk setiap baris

teks dengan tujuan untuk mendapatkan batas-batas indeks kolom. Contoh

histogram kolom pada suatu cuplikan citra dokumen data 1 adalah sebagai

berikut :

Gambar 32. Histogram kolom pada cuplikan citra dokumen data 1

(68)

Gambar 33. Hasil pemotongan histogram kolom

Dari pemotongan histogram kolom diatas, maka diperoleh tabel indeks

kolom sebagai berikut :

Tabel 3. Hasil indeks baris

Kolom ke-

Indeks Kolom

1

2

3 4 5 6 7 8 9

Batas atas

217 288 366

375 437 505 578 640 707

Batas bawah

275 309 364

428 492 575 629 694 765

Kolom ke-

Indeks Kolom

10

11

12 13 14 15 16 17

Batas atas

778 838 904

976 1037 1100 1163 1195

Batas bawah

829 892 965 1027 1096 1153 1184 1218

Contoh pemotongan baris kolom pada suatu citra baris berdasarkan

batas-batas indeks baris dan kolom yang telah diperoleh adalah sebagai berikut :

(69)

Citra dokumen segmentasi merupakan hasil dari profil proyeksi vertikal

dan horizontal. Berikut merupakan citra dokumen hasil segmentasi data 1.

Gambar 35. Citra dokumen hasil proses segmentasi data 1

(70)

chain code dan citra hasil chain code pada suatu cuplikan citra dokumen data

1 adalah sebagai berikut :

(a)

(b)

Gambar 36. (a) Citra hasil chain code, (b) Chain code

Pencarian chain code ini dilakukan pada semua karakter, sehingga setiap 1

kolom atau 1 karakter memiliki chain code tersendiri. Berikut merupakan

cuplikan hasil chain code dari citra dokumen untuk data 1 :

Tabel 4. Cuplikan hasil Chain code citra dokumen data 1

..HASIL CHAIN CODE/KODE RANTAI ..Baris 1

..Kolom 1

(171,245),000070707777111100100007077776666666566566566554444432121 2122122122132334445456555656566656656444433122122122212222334354545 6556566566566655454422321221212222233444454555666666670066644334323 2221212121120101000070707007121010

..Kolom 2

(172,295),000007766671211076656645454444453323322212 (183,292),000776771100666555445444344233222114

... ..Kolom 25

(2001,596),00766666656666667670112221200000077555455565676777677665 444442322233235656676654443431221222222222222222222322322010 ..Kolom 26

(2019,616),74576676767667600222322233223 (2020,622),56767676507676002222322332330

..Sumber Citra Î D:\Gambar Delphi\Buat segment\Kolokodrat.bmp

(71)

D

ANALISIS OUTPUT

Dari citra dokumen masukan yang kemudian dikenai proses binarisasi dan

segmentasi, diperoleh hasil output berupa citra karakter penyusun citra

dokumen. Analisis output ini berfungsi untuk menganalisis waktu serta besar

file hasil proses binarisasi dan segmentasi serta membandingkan banyaknya

citra karakter penyusun hasil proses segmentasi dengan banyaknya citra

karakter penyusun yang sebenarnya, sehingga dapat diperoleh rata-rata

prosentase keberhasilan atau keakuratan sistem.

Waktu yang diperlukan untuk melakukan proses binarisasi dan segmentasi

untuk setiap data citra dokumen dengan spesifikasi perangkat keras

(hardware) dan perangkat lunak (software) yang telah disebutkan diatas dapat

dilihat dalam tabel berikut :

Tabel 5. Waktu Proses binarisasi dan segmentasi

Waktu Proses

Data

Binarisasi Segmentasi

Jumlah Waktu

proses

1

0 : 0 : 10 : 188

0 : 0 : 18 : 188

0 : 0 : 28 : 376

2

0 : 0 : 09 : 875

0 : 0 : 16 : 469

0 : 0 : 26 : 344

3

0 : 0 : 10 : 047

0 : 0 : 20 : 984

0 : 0 : 31 : 031

4

0 : 0 : 10 : 594

0 : 0 : 17 : 968

0 : 0 : 28 : 562

5

0 : 0 : 11 : 015

0 : 0 : 15 : 360

0 : 0 : 26 : 375

Rata-rata

0 : 0 : 10 : 344

0 : 0 : 17 : 797

0 : 0 : 28 : 143

(72)

Besar

file

hasil proses binarisasi dan segmentasi dapat dilihat pada tabel

berikut ini :

Tabel 6. Besar file hasil binarisasi dan segmentasi

Besar

file

Hasil

Data

Binarisasi Segmentasi

1

389 KB

124 KB

2

354 KB

114 KB

3

397 KB

116 KB

4

408 KB

117 KB

5

352 KB

132 KB

Untuk citra dokumen data 1 diperoleh tabel data analisis output segmentasi

citra dokumen sebagai berikut :

Tabel 7. Analisis output Segmentasi Citra Dokumen data 1

Banyak

Karakter

Baris

Citra Hasil

Benar Keterangan

1 17 17 17

-

2 20 20 20

-

3 25 26 24

Ada 1 karakter terpisah jadi 2 kolom

4 25 26 24

Ada 1 karakter terpisah jadi 2 kolom

5 23 23 23

(73)

Banyak

Karakter

Baris

Citra Hasil

Benar Keterangan

9 26 26 26

-

10 26 26 26

-

11 25 26 24

Ada 1 karakter terpisah jadi 2 kolom

12 25 25 25

-

13 27 27 27

-

14 24 24 24

-

15 25 25 25

-

16 25 25 25

-

17 23 22 21

Ada 2 karakter tergabung jadi 1 kolom

18

25

25

22

Ada 1 karakter terpisah jadi 2 kolom

Ada 2 karakter tergabung jadi 1 kolom

19

36

34

32

Ada 2 karakter tergabung jadi 1 kolom

sebanyak 2 kolom

20 26 25 24

Ada 2 karakter tergabung jadi 1 kolom

497 499 483

Dari hasil analisis output pada tabel 7, diperoleh 497 karakter dalam citra

dokumen. Melalui proses segmentasi citra dokumen diperoleh 499 karakter

secara keseluruhan dan 483 karakter yang tersegmentasi secara benar dan

utuh. Sehingga dari hasil tersebut dapat dihitung prosentase derajat

keberhasilan segmentasi citra dokumen yaitu sebesar 97,18% yang diperoleh

dari (483/497) x 100%.

(74)

Tabel 8. Analisis output Segmentasi Citra Dokumen data 2

Banyak

Karakter

Baris

Citra Hasil

Benar Keterangan

1 16 16 16

-

2 13 13 13

-

3 21 21 21

-

4

26

23

21

Ada 3 karakter tergabung jadi 1 kolom

Ada 2 karakter tergabung jadi 1 kolom

5 25 24 23

Ada 2 karakter tergabung jadi 1 kolom

6 23 22 21

Ada 2 karakter tergabung jadi 1 kolom

7 24 24 24

-

8 23 23 23

-

9 27 26 25

Ada 2 karakter tergabung jadi 1 kolom

10 24 23 22

Ada 2 karakter tergabung jadi 1 kolom

11 27 26 25

Ada 2 karakter tergabung jadi 1 kolom

12 26 26 26

-

13 26 27 25

Ada 1 karakter terpisah jadi 2 kolom

14 25 25 25

-

15 25 25 25

-

16 28 28 28

-

17

24

21

18

Ada 2 karakter tergabung jadi 1 kolom

sebanyak 3 kolom

18

24

24

21

Ada 1 karakter terpisah jadi 2 kolom

Ada 2 karakter tergabung jadi 1 kolom

19 0 1 0

Bukan karakter

(75)

Banyak

Karakter

Baris

Citra Hasil

Benar Keterangan

21

12

9

6

Ada 2 karakter tergabung jadi 1 kolom

sebanyak 3 kolom

475 461 440

Dari hasil analisis output pada tabel 8, diperoleh 475 karakter dalam citra

dokumen. Melalui proses segmentasi citra dokumen diperoleh 461 karakter

secara keseluruhan dan 440 karakter yang tersegmentasi secara benar dan

utuh. Sehingga dari hasil tersebut dapat dihitung prosentase derajat<

Gambar

Gambar 1. Citra biner dan representasinya dalam data digital
Gambar  5. Citra dokumen teks
Gambar 7. citra dengan proyeksi vertikal dan horizontal
Gambar 13. DAD level 2 untuk proses segmentasi
+7

Referensi

Dokumen terkait

Dengan adanya aplikasi e-learning pada SMP-Islam AL-Muhajirin ini bisa membantu siswa dalam proses belajar, serta membantu seorang guru dalam penyampaian

Hal ini berarti siswa dengan berpikir secara intuisi dapat meningkatkan hasil belajar matematika di kelas, maka dari itu akan dikembangkan sebuah model Intuition

meta analisis pada 22 pelajar dilaporkan dengan kondisi depresi, Problem solving therapy (PST) sangat efektif sebagai pengobatan dan terapi psikososial yang lain dan lebih

JUDUL : PERDA ATASI JAJANAN SEKOLAH TAK SEHAT MEDIA : BERNAS JOGJA. TANGGAL : 25

Kesalahan pembentukan kalimat pasif yang sering dilakukan oleh penulis karya tulis ilmiah adalah kesalahan pembentukan. kalimat pasif yang berasal dari kalimat

Berdasarkan hasil analisis dalam penelitian ini menunjukkan bahwa dapat disimpulkan secara parsial variabel implementasi pengembangan karier mempunyai pengaruh yang

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

Keuntungan (kerugian) dari perubahan nilai aset keuangan dalam kelompok tersedia untuk..