BAB III PERANCANGAN PERANGKAT LUNAK Sistem alih aksara pada skripsi ini bertujuan untuk mengalih aksarakan aksara jawa menjadi aksara latin ng telah dikenal saat ini. Sistem alih aksara menerapkan metode template matching sebagai klasifikatorn. 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 ng telah didapat selanjutn akan dipilah menjadi 2 bagian. Bagian pertama adalah citra digital ng nantin digunakan untuk penyusunan dataset dan bagian kedua adalah citra digital ng digunakan sebagai citra uji. Proses cropping citra ini dilakukan dengan menggunakan perangkat lunak paint. Untuk citra digital ng digunakan sebagai penyusun dataset cropping akan dilakukan per-aksara, sedangkan cropping pada citra uji dilakukan han untuk menghilangkan bagian ng diperlukan. Gambar 3.1. Citra Hasil Scan, Bagian Kotak Merah Digunakan Untuk Pengumpulan Dataset dan Citra Uji sedangkan Bagian Biru Alih Aksaran 8
Gambar 3.2 Contoh Hasil Cropping Untuk Dataset 3.2 Konversi RGB ke Biner Citra digitalisasi pada citra dataset maupun citra uji ng didapat pada proses cropping berupa citra RGB selanjutn diubah menjadi citra biner. Proses pengubahan RGB ke biner seperti ng telah dijelaskan pada subbab 2.3. (a) Gambar 3.3. (a) Citra RGB dan (b) Hasil Pengubahan Citra RGB ke Biner dengan threshold 0,5 (b) 9
3.3 Median Filter Hasil pengubahan citra RGB menjadi biner masih menyisakan noise berupa titik-titik hitam seperti ng 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 terlihat lagi titik-titik hitam pada citra keluaran median filter. 3.4 Proyeksi Vertikal Seperti ng dijelaskan pada subbab 2.5 proyeksi vertikal digunakan untuk memisahkan baris-baris penyusun sebuah citra. Pemisahan ini dilakukan dengan menjumlahkan pixel hitam ng 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=bank baris v=nilai batasan baris atas y=nilai batasan baris bawah Citra Uji Jumlah tiap pixel dalam 1 baris (t) Bandingkan t(i) dengan t b C i+1<j i+1 Simpan baris B baris(i)- baris(i+1)<v Simpan Batas atas A 11
A baris(i+1)- baris(i)>y Simpan Batas bawah C i+1<j END B i+1 Gambar 3.5. Alur kerja Proyeksi Vertikal Selanjutn 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 selanjutn menjadi batasan proses template matching ng akan dilakukan pada proses selanjutn. 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, selanjutn kedua citra tersebut dibandingkan dengan metode template matching. Proses template matching akan menghasilkan nilai korelasi antara citra uji dengan citra dataset seperti ng telah dijelaskan pada subbab 2.6. 12
3.6 Penyederhanaan Matriks r(x,y) Keluaran dari proses template matching berupa matriks ng berisi nilai korelasi per pixel antara citra template pada dataset dengan citra uji. Penyederhanaan matriks ini dilakukan untuk mengurangi data-data ng diperlukan sehingga memper mudah proses pengolahan data selanjutn. Penyederhanaan matriks hasil template matching atau matriks r(x,y) dilakukan sebank 2 tahap. Tahap pertama adalah mencari nilai terbesar tiap kolom sehingga nantin menghasilkan matriks baris q. r(x,y)= [ ] q = [ ] q th = [ ] t h = 0.45 Gambar 3.7. Ilustrasi Penyederhanaaan Matriks r(x,y) Tahap kedua adalah membandingkan nilai matriks baris ng telah diperoleh dengan t h. Bila nilai korelasi kurang dari t h, nilai korelasi akan diset dengan angka 0. Nilai t h diperoleh dengan cara eksperimen. Hasil pembandingan matriks baris q dengan t h disimpan dalam matriks q th untuk digunakan pada proses pruning. 3.7 Pruning Langkah selanjutn adalah pruning. Pruning dilakukan untuk menghilangkan nilainilai korelasi ng berada diapit oleh 0 sehingga pada proses pencetakan ASCII ditemukan pencetakan aksara ng berlebihan. Pruning akan bekerja saat nilai dalam penyederhanaan matriks r(x,y) sama dengan 0. Bila nilai penyederhanaan matriks r(x,y) sama dengan nol pruning akan membandingkan nilai tersebut dengan nilai selanjutn. Hasil ng terbesar akan disimpan untuk dibandingkan dengan nilai selanjutn. Nilai ng lebih kecil akan diset menjadi 0. Proses pembandingan ini akan dilakukan hingga nilai dalam matriks q th 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 sama dengan 0 ee=max_korelasith2(i+1); %simapan nilai matriks+1 if dd<ee %bandingkan nilai yg disimpan dg nilai selanjutn ee=ee; %han nilai yg terbesar ng disimpan else ee=dd; end end end if max_korelasith2(i)>ee %pembandingan dengan nilai ng 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 q th = [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 ng disimpan lalu diolah menjadi ASCII. Pengolahan data ini menggunakan nilai indeks n ng 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 j < x AMBIL DATA ke - n TEMPLATE MATCHING DENGAN HURUF ke- n PENYEDERHANAAN MAX KORELASI B MATRIKS r(x,y) C MAX KORELASI >t h END A 15
A n ++ B n+1<322 SIMPAN (korelasi,indeks,koordinat) PRUNING UBAH DATA KE ASCII j++ C Gambar 3.10. Alur Kerja Sistem ng Dirancang 16