T1 612007009 BAB III

(1)

8

BAB III

PERANCANGAN PERANGKAT LUNAK

Sistem alih aksara pada skripsi ini bertujuan untuk mengalih aksarakan aksara jawa menjadi aksara latin yang telah dikenal saat ini. Sistem alih aksara menerapkan metode template matching sebagai klasifikatornya.

Pada sistem alih aksara, pengumpulan dataset dilakukan dengan melakukan cropping citra aksara jawa menggunakan program paint. Untuk perancangan perangkat lunak digunakan dengan menggunakan Matlab.

Alur kerja sistem alaih aksara meliputi cropping, konversi RGB ke biner, median filter, proyeksi vertikal, template matching, penyederhanaan matriks, pruning dan pencetakan ASCII.

3.1 Cropping

Citra digital yang telah didapat selanjutnya akan dipilah menjadi 2 bagian. Bagian pertama adalah citra digital yang nantinya digunakan untuk penyusunan dataset dan bagian kedua adalah citra digital yang digunakan sebagai citra uji. Proses cropping citra ini dilakukan dengan menggunakan perangkat lunak paint. Untuk citra digital yang digunakan sebagai penyusun dataset cropping akan dilakukan per-aksara, sedangkan cropping pada citra uji dilakukan hanya untuk menghilangkan bagian yang tidak diperlukan.

Gambar 3.1. Citra Hasil Scan, Bagian Kotak Merah Digunakan Untuk Pengumpulan Dataset dan Citra Uji sedangkan Bagian Biru Alih Aksaranya


(2)

9

Gambar 3.2 Contoh Hasil Cropping Untuk Dataset

3.2 Konversi RGB ke Biner

Citra digitalisasi pada citra dataset maupun citra uji yang didapat pada proses

cropping berupa citra RGB selanjutnya diubah menjadi citra biner. Proses pengubahan RGB

ke biner seperti yang telah dijelaskan pada subbab 2.3.

(a) (b)

Gambar 3.3. (a) Citra RGB dan (b) Hasil Pengubahan Citra RGB ke Biner dengan threshold 0,5


(3)

10

3.3 Median Filter

Hasil pengubahan citra RGB menjadi biner masih menyisakan noise berupa titik-titik hitam seperti yang terlihat pada gambar 3.1. Untuk menghilangkan titik-titik hitam tersebut dilakukan median filtering.

(a) (b)

(c) (d)

Gambar 3.4. Hasil Penggunaan Median Filter dengan Ukuran (a) 3× 3, (b) 5× 5, (c) 7× 7 dan (d) 9× 9


(4)

11

Pada skripsi ini dipakai median filter berukuran 9× 9 karena tidak terlihat lagi titik-titik hitam pada citra keluaran median filter.

3.4 Proyeksi Vertikal

Seperti yang dijelaskan pada subbab 2.5 proyeksi vertikal digunakan untuk memisahkan baris-baris penyusun sebuah citra. Pemisahan ini dilakukan dengan menjumlahkan pixel hitam yang tegak lurus dengan sumbu y. Hasil proyeksi vertikal akan menjadi acuan dalam menentukan koordinat awal baris (a) dan akhir baris (b). Tahapan untuk menghasilkan batas awal dan batas akhir bisa dilihat pada Gambar 3.5.

ya

tidak

ya

tidak

START

i=1 j=banyak baris v=nilai batasan baris atas y=nilai batasan baris bawah

Jumlah tiap pixel dalam 1 baris (t)

Simpan baris

baris(i )-baris(i+1)<v

i+1

Bandingkan t(i) dengan tb

i+1<j

Simpan Batas atas

A B

Citra Uji


(5)

12

ya

tidak

tidak

ya

Gambar 3.5. Alur kerja Proyeksi Vertikal

Selanjutnya nilai awal baris (a) akan dikurangi dengan sebuah nilai offset a sedangkan pada akhir baris (b) akan ditambah dengan nilai offset b. Batas baris baru hasil penambahan dan pengurangan offset ini selanjutnya menjadi batasan proses template matching yang akan dilakukan pada proses selanjutnya. Pada skripsi ini besar pengurangan nilai offset a berkisar antara 103-110 pixel sedangkan penambahan nilai offsetb antara 215-233 pixel.

Gambar 3.6. Ilustrasi Penambahan dan Pengurangan dengan Nilai Offset

3.5 TemplateMatching

Setelah citra uji maupun citra dataset telah melewati proses median filtering, selanjutnya kedua citra tersebut dibandingkan dengan metode template matching. Proses template matching akan menghasilkan nilai korelasi antara citra uji dengan citra dataset seperti yang telah dijelaskan pada subbab 2.6.

baris(i+1 )-baris(i)>y

Simpan Batas bawah

i+1<j

i+1 A

END

B


(6)

13

3.6 Penyederhanaan Matriks r(x,y)

Keluaran dari proses template matching berupa matriks yang berisi nilai korelasi per pixel antara citra template pada dataset dengan citra uji. Penyederhanaan matriks ini dilakukan untuk mengurangi data-data yang tidak diperlukan sehingga memper mudah proses pengolahan data selanjutnya. Penyederhanaan matriks hasil template matching atau matriks r(x,y) dilakukan sebanyak 2 tahap. Tahap pertama adalah mencari nilai terbesar tiap kolom sehingga nantinya menghasilkan matriks baris q.

r(x,y)= [

]

q = [ ]

th = 0.45

qth = [ ]

Gambar 3.7. Ilustrasi Penyederhanaaan Matriks r(x,y)

Tahap kedua adalah membandingkan nilai matriks baris yang telah diperoleh dengan th. Bila nilai korelasi kurang dari th, nilai korelasi akan diset dengan angka 0. Nilai th diperoleh dengan cara eksperimen. Hasil pembandingan matriks baris q dengan th disimpan dalam matriks qthuntuk digunakan pada proses pruning.

3.7 Pruning

Langkah selanjutnya adalah pruning. Pruning dilakukan untuk menghilangkan nilai-nilai korelasi yang berada diapit oleh 0 sehingga pada proses pencetakan ASCII tidak ditemukan pencetakan aksara yang berlebihan.

Pruning akan bekerja saat nilai dalam penyederhanaan matriks r(x,y) tidak sama dengan 0. Bila nilai penyederhanaan matriks r(x,y) tidak sama dengan nol pruning akan membandingkan nilai tersebut dengan nilai selanjutnya. Hasil yang terbesar akan disimpan untuk dibandingkan dengan nilai selanjutnya. Nilai yang lebih kecil akan diset menjadi 0. Proses pembandingan ini akan dilakukan hingga nilai dalam matriks qth sama dengan 0. Dibawah ini merupakan penggalan program pruning.

%set ee dengan nilai pertama matriks qth

ee=max_korelasiTH2(1); dd=0;


(7)

14 ee=[];dd=[];

for i=1:length(max_korelasiTH2)

if max_korelasiTH2(i)==0 %cek penyederhanaan matriks qth

simpan(i)=0; ee=0;

dd=0;

else %cek penyederhanaan matriks qth tidak sama dengan 0

ee=max_korelasiTH2(i+1); %simapan nilai matriks+1

if dd<ee %bandingkan nilai yg disimpan dg nilai selanjutnya

ee=ee; %hanya nilai yg terbesar yang disimpan

else

ee=dd;

end

if max_korelasiTH2(i)>ee %pembandingan dengan nilai yang disimpan

simpan(i)=max_korelasiTH2(i);

dd=max_korelasiTH2(i); %nilai yg lebih besar dipertahankan

else

ee=max_korelasiTH2(i);

simpan(i)=0; %bila nilai lebih kecil diset 0

end

end

end

qth= [0 0 0 0.3 0.4 0.5 0.6 0 0 0 0 0.41 0.45 0.5 0.4 0.3 0 0]

pruning = [0 0 0 0 0 0 0.6 0 0 0 0 0 0 0.5 0 0 0 0] Gambar 3.8. Ilustrasi Hasil Pruning

3.8 Pencetakan ASCII

Data yang disimpan lalu diolah menjadi ASCII. Pengolahan data ini menggunakan nilai indeks n yang diperoleh dari nomer urutan baris dan matriks pruning. Nilai indeks n akan merepresentasikan alih aksara dari Aksara Jawa tersebut. Bila pada 1 kolom matriks pruning terdapat lebih dari 1 nilai maka diambil nilai paling maksimal. Pada Gambar 3.8 merupakan ilustrasi proses percetakaan ASCII.


(8)

15

[

]

[ ] nilai korelasi terbesar dalam 1 kolom

[0 0 1 0 3 0] letak baris nilai tersebut

Bila 1 merepresentasikan ha dan 3 adalah ca haca

Gambar 3.9. Ilustrasi Kerja Pencetakaan ASCII

Pada gambar 3.10 dibawah ini merupakan cara kerja sistem secara keseluruhan mulai dari membaca citra uji hingga proses pencetakan ASCII.

ya

tidak

PENYEDERHANAAN

MATRIKS r(x,y) CITRA UJI

KONVERSI RGB ke BINER DAN MEDIAN FILTER

MENGHITUNG JUMLAH BARIS (x) DENGAN PROYEKSI VERTIKAL

n=1

j=1 START

j < x

TEMPLATE MATCHING

DENGAN HURUF ke- n

AMBIL DATA ke - n

MAXKORELASI

MAX KORELASI >th

END

A

C B


(9)

16

ya

tidak

Gambar 3.10. Alur Kerja Sistem yang Dirancang

n ++

SIMPAN (korelasi,indeks,koordinat)

n+1<322

j++ UBAH DATA KE ASCII

PRUNING

B

C A


(1)

11

Pada skripsi ini dipakai median filter berukuran 9× 9 karena tidak terlihat lagi titik-titik hitam pada citra keluaran median filter.

3.4 Proyeksi Vertikal

Seperti yang dijelaskan pada subbab 2.5 proyeksi vertikal digunakan untuk memisahkan baris-baris penyusun sebuah citra. Pemisahan ini dilakukan dengan menjumlahkan pixel hitam yang tegak lurus dengan sumbu y. Hasil proyeksi vertikal akan menjadi acuan dalam menentukan koordinat awal baris (a) dan akhir baris (b). Tahapan untuk menghasilkan batas awal dan batas akhir bisa dilihat pada Gambar 3.5.

ya

tidak

ya

tidak

START

i=1 j=banyak baris

v=nilai batasan baris atas

y=nilai batasan baris bawah

Jumlah tiap pixel dalam 1 baris (t)

Simpan baris

baris(i )-baris(i+1)<v

i+1 Bandingkan t(i) dengan tb

i+1<j

Simpan Batas atas

A B

Citra Uji


(2)

12 ya

tidak

tidak

ya

Gambar 3.5. Alur kerja Proyeksi Vertikal

Selanjutnya nilai awal baris (a) akan dikurangi dengan sebuah nilai offset a sedangkan pada akhir baris (b) akan ditambah dengan nilai offset b. Batas baris baru hasil penambahan dan pengurangan offset ini selanjutnya menjadi batasan proses template matching yang akan dilakukan pada proses selanjutnya. Pada skripsi ini besar pengurangan nilai offset a berkisar antara 103-110 pixel sedangkan penambahan nilai offsetb antara 215-233 pixel.

Gambar 3.6. Ilustrasi Penambahan dan Pengurangan dengan Nilai Offset

3.5 TemplateMatching

Setelah citra uji maupun citra dataset telah melewati proses median filtering, selanjutnya kedua citra tersebut dibandingkan dengan metode template matching. Proses template matching akan menghasilkan nilai korelasi antara citra uji dengan citra dataset seperti yang telah dijelaskan pada subbab 2.6.

baris(i+1 )-baris(i)>y

Simpan Batas bawah

i+1<j

i+1 A

END

B


(3)

13 3.6 Penyederhanaan Matriks r(x,y)

Keluaran dari proses template matching berupa matriks yang berisi nilai korelasi per pixel antara citra template pada dataset dengan citra uji. Penyederhanaan matriks ini dilakukan untuk mengurangi data-data yang tidak diperlukan sehingga memper mudah proses pengolahan data selanjutnya. Penyederhanaan matriks hasil template matching atau matriks r(x,y) dilakukan sebanyak 2 tahap. Tahap pertama adalah mencari nilai terbesar tiap kolom sehingga nantinya menghasilkan matriks baris q.

r(x,y)= [

]

q = [ ]

th = 0.45

qth = [ ]

Gambar 3.7. Ilustrasi Penyederhanaaan Matriks r(x,y)

Tahap kedua adalah membandingkan nilai matriks baris yang telah diperoleh dengan th. Bila nilai korelasi kurang dari th, nilai korelasi akan diset dengan angka 0. Nilai th diperoleh dengan cara eksperimen. Hasil pembandingan matriks baris q dengan th disimpan dalam matriks qthuntuk digunakan pada proses pruning.

3.7 Pruning

Langkah selanjutnya adalah pruning. Pruning dilakukan untuk menghilangkan nilai-nilai korelasi yang berada diapit oleh 0 sehingga pada proses pencetakan ASCII tidak ditemukan pencetakan aksara yang berlebihan.

Pruning akan bekerja saat nilai dalam penyederhanaan matriks r(x,y) tidak sama dengan 0. Bila nilai penyederhanaan matriks r(x,y) tidak sama dengan nol pruning akan membandingkan nilai tersebut dengan nilai selanjutnya. Hasil yang terbesar akan disimpan untuk dibandingkan dengan nilai selanjutnya. Nilai yang lebih kecil akan diset menjadi 0. Proses pembandingan ini akan dilakukan hingga nilai dalam matriks qth sama dengan 0. Dibawah ini merupakan penggalan program pruning.

%set ee dengan nilai pertama matriks qth

ee=max_korelasiTH2(1); dd=0; simpan=[] ;


(4)

14 ee=[];dd=[];

for i=1:length(max_korelasiTH2)

if max_korelasiTH2(i)==0 %cek penyederhanaan matriks qth simpan(i)=0;

ee=0; dd=0;

else %cek penyederhanaan matriks qth tidak sama dengan 0 ee=max_korelasiTH2(i+1); %simapan nilai matriks+1

if dd<ee %bandingkan nilai yg disimpan dg nilai selanjutnya ee=ee; %hanya nilai yg terbesar yang disimpan

else

ee=dd; end

if max_korelasiTH2(i)>ee %pembandingan dengan nilai yang disimpan

simpan(i)=max_korelasiTH2(i);

dd=max_korelasiTH2(i); %nilai yg lebih besar dipertahankan else

ee=max_korelasiTH2(i);

simpan(i)=0; %bila nilai lebih kecil diset 0 end

end

end

qth= [0 0 0 0.3 0.4 0.5 0.6 0 0 0 0 0.41 0.45 0.5 0.4 0.3 0 0]

pruning = [0 0 0 0 0 0 0.6 0 0 0 0 0 0 0.5 0 0 0 0] Gambar 3.8. Ilustrasi Hasil Pruning

3.8 Pencetakan ASCII

Data yang disimpan lalu diolah menjadi ASCII. Pengolahan data ini menggunakan nilai indeks n yang diperoleh dari nomer urutan baris dan matriks pruning. Nilai indeks n akan merepresentasikan alih aksara dari Aksara Jawa tersebut. Bila pada 1 kolom matriks pruning terdapat lebih dari 1 nilai maka diambil nilai paling maksimal. Pada Gambar 3.8 merupakan ilustrasi proses percetakaan ASCII.


(5)

15

[

]

[ ] nilai korelasi terbesar dalam 1 kolom

[0 0 1 0 3 0] letak baris nilai tersebut

Bila 1 merepresentasikan ha dan 3 adalah ca haca

Gambar 3.9. Ilustrasi Kerja Pencetakaan ASCII

Pada gambar 3.10 dibawah ini merupakan cara kerja sistem secara keseluruhan mulai dari membaca citra uji hingga proses pencetakan ASCII.

ya

tidak

PENYEDERHANAAN

MATRIKS r(x,y) CITRA UJI

KONVERSI RGB ke BINER DAN MEDIAN FILTER

MENGHITUNG JUMLAH BARIS (x) DENGAN PROYEKSI VERTIKAL

n=1

j=1 START

j < x

TEMPLATE MATCHING

DENGAN HURUF ke- n

AMBIL DATA ke - n

MAXKORELASI

MAX KORELASI >th

END

A

C B


(6)

16

ya

tidak

Gambar 3.10. Alur Kerja Sistem yang Dirancang

n ++

SIMPAN (korelasi,indeks,koordinat)

n+1<322

j++ UBAH DATA KE ASCII

PRUNING

B

C A