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
8
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
9
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
10
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.
START
i=1 j=banyak baris v=nilai batasan baris atas y=nilai batasan baris bawah
Citra Uji
Jumlah tiap pixel dalam 1 baris (t)
Bandingkan t(i) dengan tb
i+1<j
C
ya i+1
tidak Simpan baris
B
ya baris(i)baris(i+1)
Simpan Batas atas
tidak
A
11
A
ya
baris(i+1)baris(i)>y
Simpan Batas bawah
C
tidak tidak
END
i+1<j ya
i+1
B
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 offset b antara 215-233 pixel.
Gambar 3.6. Ilustrasi Penambahan dan Pengurangan dengan Nilai Offset 3.5 Template Matching 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.
12
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 qth untuk digunakan pada proses pruning.
3.7 Pruning Langkah selanjutnya adalah pruning. Pruning dilakukan untuk menghilangkan nilainilai 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=[] ;
13
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.
14
[
]
[
]
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.
START
n=1 j=1
CITRA UJI
KONVERSI RGB ke BINER DAN MEDIAN FILTER
MENGHITUNG JUMLAH BARIS (x) DENGAN PROYEKSI VERTIKAL
ya
AMBIL DATA ke - n
j <x
TEMPLATE MATCHING DENGAN HURUF ke- n
tidak PENYEDERHANAAN
B
MAX KORELASI
C
MATRIKS r(x,y)
MAX KORELASI >th
END A 15
A
n ++
ya
B
n+1<322
tidak
SIMPAN (korelasi,indeks,koordinat)
PRUNING
UBAH DATA KE ASCII
j++
Gambar 3.10. Alur Kerja Sistem yang Dirancang
16
C