T1 612007009 BAB III
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