LAMPIRAN A : DATA SAMPEL
1. Data latihan
Pola Citra Pola Citra Pola Citra Pola Citra
0 1 2 3
A1 A2 A3 A4
4 5 6
7
A5 A6 Ha Ha2
8 9 10
11
Ha3 Ha4 Ha5 Ha6
12 13
14
15
Ma Ma2 Ma3 Ma4
16
17 18 19
Ma5 Ma6 Na Na2
20
21 22 23
24 25 26 27
Ra Ra2 Ra3 Ra4
28 29 30
31
Ra5 Ra6 Ta Ta2
32 33
34
35
Ta3 Ta4 Ta5 Ta6
36 37 38 39
Sa Sa2 Sa3 Sa4
40 41
42 43
Sa5 Sa6 Da Da2
44 45
46 47
Da3 Da4 Da5 Da6
48 49 50 51
52
53
54
55
Ga5 Ga6 Ja Ja2
56 57 58 59
Ja3 Ja4 Ja5 Ja6
60 61 62
63
Ba Ba2 Ba3 Ba4
64 65 66 67
Ba5 Ba6 Nga Nga2
68
69
70 71
Nga3 Nga4 Nga5 Nga6
72 73
74 75
76 77 78 79
La5 La6 Pa Pa2
80
81 82
83
Pa3 Pa4 Pa5 Pa6
84 85 86 87
Nya Nya2 Nya3 Nya4
88
89 90 91
Nya5 Nya6 wa Wa2
92 93 94
95
Wa3 Wa4 Wa5 Wa6
96 97 98 99
100 101 102 103
Ya5 Ya6 I I2
104 105 104 105
I3 I4 I5 I6
108 109 110 111
U U2 U3 U4
112 113
2. Data uji
Pola Citra Pola Citra Pola Citra Pola Citra
0 1
2 3
A7 A8 A9 A10
4 5 6 7
H7 Ha8 Ha9 Ha10
8 9 10 11
Ma7 Ma8 Ma9 Ma10
12 13 14 15
Na7 Na8 Na9 Na10
16 17 18 19
Ra7 Ra8 Ra9 Ra10
20 21 22
23
24 25 26 27
Sa7 Sa8 Sa9 Sa10
28
29
30 31
Da7 Da8 Da9 Da10
32 33
34
35
Ga7 Ga8 Ga9 Ga10
36 37 38 39
Ja7 Ja8 Ja9 Ja10
40 41 42
43
Ba7 Ba8 Ba9 Ba10
44 45 46 47
48 49 50 51
La7 La8 La9 La10
52 53 54 55
Pa7 Pa8 Pa9 Pa10
56 57 58 59
Nya7 Nya8 Nya9 Nya10
60 61 62 63
Wa7 Wa8 Wa9 Wa10
64 65 66
67
Ya7 Ya8 Ya9 Ya10
68 69 70 71
I7 I8 I9 I10
72
73 74 75
LAMPIRAN B PROGRAM
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.util.Scanner;
public class tulisan{
private static final int IMG_WIDTH = 60;
private static final int IMG_HEIGHT = 90;
static double input_jst[][] = new double[60][90];
private static double mse;
private static String namagambar = "";
private static BufferedImage original, grayscale, binarized, uji,uji2;
private static double epoch = 0.5;
private static double jum2;
private static String filegambar, tipegambar;
private static double matriks2 [][] = new double[60][90];
private static double nilai = 2;
public static void main (String[] args) throws IOException{
System.out.println("masukkan nama file gambar :");
Scanner input = new Scanner(System.in);
//Scanner input2 = new Scanner(System.in);
filegambar = input.nextLine();
// mengambil source gambar
original = ImageIO.read(tulisan.class.getResource("pictures/"+filegambar+".bmp"));
int width_original = original.getWidth();
int height_original = original.getHeight();
if((width_original != 60 ) || (height_original != 90)){
System.out.println("ukuran gambar yang anda masukkan tidak sesuai, apakah ingin mencocokkan gambar?");
System.out.println("y / t");
String kepastian = input.nextLine();
if(kepastian.equals("y")){
//BufferedImage originalImage = ImageIO.read(new File(filegambar+".bmp"));
int type = original.getType() == 0? BufferedImage.TYPE_INT_ARGB : original.getType();
BufferedImage resizeImagebmp = ImageProcessing.resizeImage(original, type);
.write(resizeImagebmp, "bmp", new File("pictures/"+filegambar+".bmp"));
original = ImageIO.read(tulisan.class.getResource("pictures/"+filegambar+".bmp"));}}
width_original = original.getWidth();
height_original = original.getHeight();
if((width_original == 60) && (height_original == 90)){
grayscale = fungsi_tulisan2.toGray(original);
binarized = fungsi_tulisan2.binarize(grayscale);
// mengatur besar skala width dengan height
int jum =0;
int width = binarized.getWidth();
int height = binarized.getHeight();
// System.out.println(" " +width +" " + height);
int [][] matriks = new int [width][height];
int [][] matriksbanding = new int [width][height];
int [][] matriksbanding2 = new int [width][height];
matriks = fungsi_tulisan.doHilditchsThinning(matriks);
for (int i = 0; i < width; i++) {
fungsi_tulisan2.writeImage2(binarized);
uji = ImageIO.read(tulisan.class.getResource("gambarmatriks.bmp"));
}
}
}
// tampilkan gambar matriks
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
matriks2[i][j] = (double) matriksbanding[i][j];
// System.out.print(matriks2[i][j]);}
// System.out.println();}
// pengulangan diagonal based
int ZONA_L = 6;
int ZONA_T = 9;
int ZONA_U = 10;
int indeks = 0;
int pola = 0;
//Inisialisasi array input_jst
for(int i=0; i<15; i++) {
for(int j=0; j<70; j++){
input_jst[i][j] = 0;
// System.out.print(input_jst[i][j]); }
// System.out.println(); }
// Zoning
double piksel_zona[][] = new double [ZONA_T][ZONA_L];
double piksel_zona_max=0.0;
// Inisialisasi piksel_ona
for(int i=0; i<ZONA_T; i++){
for(int j=0; j<ZONA_L; j++) {
piksel_zona[i][j] = 0.0; } }
for(int i=0; i<matriksbanding.length; i+=ZONA_U){
int jml_piksel_zona=0; //variabel untuk setiap zona
double jml_hor=0.0, jml_ver=0.0; //variabel untuk menyimpan jumlah nilai dari setiap zona secara horizontal dan vertikal
double rata_rata_zona[][]= new double[ZONA_T][ZONA_L];
double rata_rata_hor[] = new double[ZONA_T];
double rata_rata_ver[] = new double[ZONA_L]; //array untuk menyimpan nilai semua rata-rata (zona, horizontal dan vertikal)
//Inisialisasi array
for(int j=0; j<ZONA_L; j++) {
//Pengulangan untuk pembagian zona 10x10 pixel
for(int i=0; i<matriks2.length; i+=10) {
for(int j=0; j<matriks2.length; j+=10){
//Hitung jumlah piksel hitam setiap zona
jml_piksel_zona = 0;
for(int k=i; k<i+10; k++) {
for(int l=j; l<j+10; l++){
if(matriks2[k][l] == 0)
jml_piksel_zona++; } }
//Hitung rata-rata setiap zona => rata_zona = jml_piksel_zona/(panjang + tinggi - 1)
rata_rata_zona[i/10][j/10] = (double)jml_piksel_zona/(ZONA_U*2-1);
//cout << "[" <<i/10<< "][" <<j/10<< "] = " << jml_piksel_zona << " / 19 = " << rata_rata_zona[i/10][j/10]
<< endl;
//Masukkan rata_rata_zona ke array input_jst
input_jst[pola][indeks++] = rata_rata_zona[i/10][j/10];}
//cout << endl;
}
//Hitung rata-rata zona horizontal
for(int i=0; i<ZONA_T; i++){
for(int j=0; j<ZONA_L; j++) {
jml_hor += rata_rata_zona[i][j];}
rata_rata_hor[i] = jml_hor/ZONA_L;
//cout << "Hor[" <<i<< "] = " << jml_hor << " / " << ZONA_L << " = " << rata_rata_hor[i] << endl;
jml_hor = 0.0;
//Masukkan rata_rata_zona ke array input_jst
input_jst[pola][indeks++] = rata_rata_hor[i];
}
//Hitung rata-rata zona vertikal
for(int i=0; i<ZONA_L; i++){
for(int j=0; j<ZONA_T; j++){
jml_ver += rata_rata_zona[j][i]; }
rata_rata_ver[i] = jml_ver/ZONA_T;
//cout << "Ver[" <<i<< "] = " << jml_ver << " / " << ZONA_T << " = " << rata_rata_ver[i] << endl;
// System.out.println(rata_rata_ver[i]);
jml_ver = 0.0;
// Masukkan rata_rata_zona ke array input_jst
input_jst[pola][indeks++] = rata_rata_ver[i];}
indeks = 0; //Reset indeks menjadi 0 untuk image selanjutnya
pola += 1; //Lanjut ke pola selanjutnya}}
//System.out.println("ini adalah pola:" + pola);}
// akhir dari if pertama
double targetY[][] =
{{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0},
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0},
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0},
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0},
{0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0},
{0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0},
{0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
{0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
{0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
//mse = matriksmatriks.init(input_jst, targetY);
double matriksbanding3 [][] = new double [width_original][height_original];
String namatulisan ="";
if(true){
uji2 = ImageIO.read(tulisan.class.getResource("jst/ha10.bmp"));
matriksbanding3 = matriksmatriks.matriks_banding2(uji2);
jum2 = matriksmatriks.perbandingan(matriks2 , matriksbanding3, width_original, height_original);
namatulisan = "ha";
if(jum2>0){
uji2 = ImageIO.read(tulisan.class.getResource("jst/ya.bmp"));
= matriksmatriks.matriks_banding2(uji2);
jum2 = matriksmatriks.perbandingan(matriks2 , matriksbanding3, width_original, height_original);
namatulisan = "ya";}
double jum3;
System.out.println();}
mse = matriksmatriks.init(input_jst, targetY);
double jum3;
System.out.println();
if(jum2 == 0.0){
jum3 = jum2 + (mse * 50 + nilai) + 50;
System.out.println("Tingkat Kecocokannya adalah: " + jum3);
System.out.println("mse : " + (100 - jum3)); }
else{
//jum2 = jum2 * 100 ;
System.out.println("Tingkat Kecocokannya adalah: " + jum2);
jum3 = 100- jum2;
System.out.println("mse: " + jum3); }
if(jum2 <= 0){
System.out.println();
System.out.println("Find Solution : " + namatulisan);}
else{
System.out.println();
System.out.println("not Find Solution");}
// hasil dari nilai zoning dan diagonal based
//System.out.println("Hasil nilai zoning dan diagonal based");
for(int i = 0 ;i<15; i++){
for(int j = 0; j<70; j++){
//System.out.println("ini adalah:");
//System.out.print(input_jst[i][j]);}
//System.out.println();
}
}
DAFTAR PUSTAKA
Arica N. dan Yarman-Vural. 2001. An Overview of CharacterRecognition Focused on Off-line Handwriting. IEEE Transactions on Systems, Man and Cybernetics,
Part C: Applications and Review. 31(2): 216-233.
Bosker, M. 1992. Omnidocument Technologies. Proceeding of the IEEE. 80:
1066-Jain, A. K. dan Taxt, T. 1996. Feature Extraction Methods for Character Recognition-ASurvey. Pattern Recognition. 29(4): 641-662.
Kertasari, N. D. 2000. Huruf Latin Berkarakter Aksara Batak toba (Tugas Akhir), FSRD ITB, Bandung.
Khairunnisa. 2012. Pengenalan Tulisan Tangan Latin Bersambung Menggunkan Jaringan Saraf Tiruan Propagasi Balik. Skripsi. Medan, Indonesia: Universitas Sumatera Utara.
Kozok, Uli. Februari 2009. Surat Batak: Sejarah Perkembangan Tulisan Batak,
Berikut Pedoman Menulis Aksara Batak dan Cap Sisimangaraja XII. KPG
(Kepustakaan Populer Gramedia) & EFEO.
Panjaitan, Robin. (2011). Pengenalan Tulisan Tangan Aksara Batak Toba Menggunakan Jaringan Saraf Tiruan Berbasis Algoritma Resilient
Propagation. Skripsi. Bandung, Indonesia: Universitas Kristen Maranatha.
Pradeep, J., Srinivasan, E., dan Himavathi, S. 2011. Diagonal Based Feature Extraction for Handwritten Alphabets Recognition System Using Neural Network.International Journal of Computer Science & Information
Technology (IJCSIT).3(1): 27-38.
Putra, Nanda. 2012. Peningkatan Nilai Fitur Jaringan Propogasi Balik Pada Pengenalan Angka Tulisan Tangan Menggunakan Metode Zoning dan
Diagonal Base Feature Extraction. Jurnal Dunia Teknologi Informasi,
Vol.1.No.1:1-6.
Puspitaningrum, D. 2006. Pengantar Jaringan Saraf Tiruan. Yogyakarta: Andi.
Sharma, O. P, Ghose, M. K. dan Shah, K. B. 2012. An Improved Zone Based Hybrid Feature Extraction Model for Handwritten Alphabets Recognition Using Euler Number. International Journal of Soft Computing and Engineering
(IJSCE).2(2): 504-508.
Suriski, S. Pengenalan Tulisan Tangan Aksara Batak Toba Menggunakan Backpropogation. Tesis. Universitas Atma Jaya Yogyakarta.
Tay, Y. H. & Khalid, M. 1997. Comparison of Fuzzy ARTMAP and MLP Neural nerwork for Hand-Written Character Recognation. Proc. of int'Federation of
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Bab ini secara garis besar membahas analisis teknikal dalam mengimplementasikan jaringan saraf tiruan backpropagation dalam pengenalan tulisan aksara Batak Toba pada system dan tahap-tahap. Secara umum skema dasar tahap-tahap pengenalan tulisan aksara Batak Toba yang dibangun dapat dilihat pada gambar 3.1.
Akuisisi Citra Prapengolahan Citra
Klasifikasi
JST Keluaran Ekstraksi Fitur
DBFE
Ekstraksi Fitur Zoning
Nilai Fitur
Gambar 3.1 Skema Dasar Pengenalan Tulisan Tangan Aksara Batak Toba
Tahap-tahap pengenalan tulisan aksara Batak Toba tersebut akan dijelaskan pada bab selanjutnya menjadi tiga bagian, yaitu sebelum eksraksi fitur, ekstraksi fitur
dan setelah ekstraksi fitur.
3.1. Tahap Sebelum Ekstraksi Fitur
Tahap sebelum ekstraksi fitur terdiri dari akuisisi data dan prapengolahan citra. Pada tahap ini dilakukan persiapan data sampel agar dapat digunakan untuk ekstraksi fitur. Ekstraksi fitur tidak dapat dilakukan sebelum tahap ini diselesaikan.
3.1.1. Akuisisi citra
Data atau sampel yang akan digunakan adalah tulisan aksara Batak Toba yang dibubuhkan pada kertas putih menggunakan tinta warna hitam. Setelah dilakukan pengambilan data, kemudian dipindahkan dengan menggunakan sebuah scanner
Suatu citra tulisan aksara Batak Toba yang akan dikenali menggunakan jaringan saraf tiruan, haruslah melalui tahapan-tahapan tertentu terlebih dahulu sehingga dapat menjadi masukan yang baik bagi jaringan saraf tiruan. Masukan yang dapat diterima dengan baik oleh jaringan saraf tiruan adalah berupa kumpulan data numerik atau data biner. Dengan demikian, suatu citra tanda tangan perlu dikonversi menjadi kumpulan data numerik atau data biner melalui pengolahan terlebih dahulu.
Data sampel yang digunakan adalah tulisan tangan aksara Batak Toba fokus pada ina ni surat yang dibubuhkan pada kertas putih menggunakan pena tinta warna hitam. Data sampel dikumpulkan dari 10 mahasiswa Teknologi Informasi USU. Masing-masing menuliskan huruf aksara Batak Toba dari (a) sampai (u). penelitian ini tidak dibahas prapengolahan citra untuk objek yang mengalami rotasi atau miring. Dapat dilihat pada Gambar 3.2.
Gambar 3.2 Tinta Warna Hitam
Setelah data sampel dikumpulkan, kemudian dipindai menggunakan scanner. Citra hasil pemindaian disimpan dengan format bitmap (.bmp). Setiap tulisan aksara Batak Toba disimpan pada satu folder. Ukuran setiap citra yang disimpan tidak ditentukan, karena akan diolah pada tahap prapengolahan.
Total seluruh data sampel adalah 190 tulisan tangan aksara Batak Toba. Dari total data tersebut, dibagi penggunaannya untuk data latihan dan data pengujian. Banyaknya data pelatihan adalah 114 tulisan tangan aksara Batak Toba (6 pola), dan banyaknya data pengujian adalah 76 tulisan tangan aksara Batak Toba (4 pola) baru
yang tidak dilatihkan. Data sampel yang digunakan pada penelitian ini dapat dilihat pada lampiran A.
3.1.2 Prapengolahan citra
Binarization
Normalization
Thinning
Gambar 3.3 Tahapan Prapengolahan Citra
3.1.2.1. Pembentukan Matriks Biner (Binarization)
Proses ini akan menghasilkan citra hitam putih yang bersih dari tingkat keabun (grayscale), atau dengan kata lain metode ini mengonversi citra gray-level ke citra
bilevel (binary image). Pada tahap ini setiap nilai pixel RGB akan diambil nilai
rata-ratanya untuk kemudian dicek, jika nilai yang dihasilkan kurang dari nilai threshold yang dihasilkan maka nilai pixel tersebut diubah menjadi warna hitam, sebaliknya jika lebih besar dari nilai konstan maka akan diubah menjadi warna putih.
Matriks biner dari citra ini dibentuk berdasarkan nilai hitam putih pada citra yang telah didapatkan, jika pixel citra pada koordinat (x,y) berwarna hitam maka nilai matrik biner pada baris i dan kolom j adalah 1, sebaliknya 0. Ada pun diagram alir proses dari pembentukan matriks biner dapat dilihat pada gambar 3.4.
Mulai
3.1.2.2. Normalization
Citra hasil pemotongan (crop) memiliki resolusi yang berbeda-beda sehingga belum dapat digunakan sebagai masukan standar untuk diekstrak. Citra tersebut harus dinormalisasi, yaitu mengubah resolusi citra menjadi resolusi yang sesuai untuk diekstrak yaitu 60x90 piksel. Contoh citra hasil pemotongan yang dinormalisasi dapat dilihat pada gambar 3.5.
Gambar 3.5 Citra hasil normalisasi
3.1.2.3. Pengurusan Objek Citra (Thinning)
Proses selanjutnya adalah pengurusan objek citra, yaitu objek tulisan tangan aksara Batak Toba yang terdapat pada citra akan dikuruskan (thinning) hingga ketebalannya hanya 1 piksel tetapi tidak merubah informasi dan karakteristik penting dari objek tersebut. Melalui proses pengurusan ini akan didapatkan kerangka dari objek tulisan tangan aksara Batak Toba. Pengenalan objek seperti huruf atau silhouette akan lebih mudah dengan memperhatikan kerangkanya (Phillips, 2000). Pada penelitian ini akan digunakan algoritma thinning Zhang-Suen. Algoritma Zhang-Suen menggunakan metode paralel dimana nilai baru bagi tiap-tiap piksel dihasilkan dari nilai piksel pada
iterasi sebelumnya. Tahapan dari proses ini dapat dilihat pada sub bab 2.3.4 mengenai
thinning. Contoh citra hasil thinning dapat dilihat pada gambar 3.6.
Gambar 3.6 Citra Hasil Thinning
3.2. Tahap Ekstraksi Fitur
Pada penelitian ini ekstraksi fitur dilakukan menggunakan kombinasi metode zoning dan diagonal based feature extraction. Kedua metode tersebut akan dilakukan secara berurutan, pertama zoning dan kedua diagonal based feature extraction (DBFE). Nilai fitur yang didapatkan dari kedua metode tersebut akan digabungkan, yaitu menyambung nilai fitur yang didapatkan dari metode zoning dengan diagonal based
feature extraction. Nilai fitur dari kedua metode tersebut disimpan pada satu matrik
yang sama. Nilai fitur yang didapatkan dari metode zoning disimpan dari indeks 0 sampai indeks n dan nilai fitur yang didapatkan dari metode diagonal based feature
extraction disimpan dari index n+1 sampai indeks m. Matrik nilai fitur dapat dilihat
pada gambar 3.7.
0 ………….. n n+1 ………….. m
Zoning Diagonal based feature extraction
Gambar 3.7 Matrik Penyimpanan Nilai Fitur
Setelah dilakukan tahap prapengolahan citra didapatkan data sampel yang seragam. Ukuran data sampel hasil prapengolahan citra adalah 60x90 piksel. Ukuran ini mengikuti ukuran yang digunakan oleh Pradeep et. al (2011). Pada penelitian yang mereka lakukan, setiap data sampel dibagi menjadi zona-zona dengan ukuran 10x10 piksel. Dari pembagian zona tersebut didapatkan 6 kolom dan 9 baris zona.Jumlah zona adalah sebanyak 54 zona seperti pada gambar 3.8.
Dari setiap zona tersebut akan diproses untuk mendapatkan nilai fitur. Pembagian zona yang sama juga dilakukan pada penelitian ini terhadap kombinasi metode ekstraksi yang digunakan. Proses ekstraksi fitur menggunakan kombinasi metode zoning dan diagonal based feature extraction dapat dijelaskan melalui diagram pada gambar 3.9.
Gambar 3.9 Diagram Ekstraksi Fitur (Putra, 2012)
Dari gambar 3.9 proses sebelah kiri adalah metode zoning dan proses sebelah kanan adalah metode diagonal based feature extraction. Kedua metode ekstraksi tersebut dijelaskan pada bab berikut.
3.2.1. Metode Ekstraksi Zoning
Metode zoning terdiri dari tiga proses, yaitu :
1. Hitung jumlah piksel hitam setiap zona dari Z1 sampai Z54. Misalkan, Z1 = 5, Z10 = 10 dan Z15 = 3.
2. Tentukan zona yang memiliki jumlah piksel hitam paling tinggi.
Misalkan dari contoh tahap 1, zona yang memiliki jumlah piksel paling tinggi adalah Z10, yaitu 10 piksel.
3. Hitung nilai fitur setiap zona dari Z1 sampai Z54. Yaitu menggunakan rumus : Nilai fitur Zn = Zn / Z tertinggi
Dari ekstraksi zoning didapatkan 54 nilai fitur yang mewakili setiap zona. Flowchart dari proses ekstraksi zoning dapat dilihat pada gambar 3.10.
Start
3.2.2. Metode Diagonal Based Feature Extraction Metode ini terdiri dari 4 proses, yaitu :
1. Hitung histogram diagonal setiap zona.
Histogram diagonal adalah banyaknya piksel hitam setiap diagonal. Penghitungan histogram diagonal setiap zona dilakukan seperti pada gambar 3.11.
Gambar 3.11 Histogram Diagonal Zona (Predeep Et Al. 2011)
Banyaknya histogram diagonal sebuah zona adalah:
Banyak histogram diagonal = Panjang zona + Tinggi zona - 1
Banyak histogram diagonal = 10 + 10 - 1 = 19 2. Hitung rata-rata histogram setiap zona.
Nilai fitur Zn = Rata-rata histogram = (Hist1 + ….. + Hist19) / 19 dimana 1 ≤ n ≤ 54
3. Hitung rata-rata zona setiap baris, dimana jumlah zona setiap baris / 6 4. Hitung rata-rata zona setiap kolom, dimana jumlah zona seriap kolom / 9
Start
3.2.3. Penggabungan nilai fitur
54 nilai fitur yang didapatkan dari metode zoning digabungkan dengan 69 fitur yang didapatkan dari metode diagonal based feature extraction untuk mendapatkan 123 nilai fitur. 123 nilai fitur tersebut disimpan pada matrik dengan ukuran 1x123 seperti pada gambar 3.13.
0 ………….. 53 54 ………….. 122
Zoning Diagonal based feature extraction
Gambar 3.13 Matrik Penyimpanan Nilai Fitur
3.3. Tahap Setelah Ekstraksi Fitur
Setelah dilakukan tahap ekstraksi fitur maka dapat dilakukan tahap selanjutnya yaitu klasifikasi menggunakan jaringan backpropagation. Pada tahap ini, nilai fitur yang didapatkan dari tahap ekstraksi fitur digunakan sebagai masukan bagi lapis masukan jaringan backpropagation. Tahap klasifikasi terdiri dari dua proses, yaitu proses pelatihan dan proses pengujian. Pada tahap pelatihan dilakukan pelatihan jaringan menggunakan nilai fitur yang didapatkan dari data latihan. Jaringan harus dilatih terlebih dahulu agar dapat kemudian digunakan. Setelah tahap pelatihan, jaringan
backpropagation dapat digunakan untuk tahap pengujian menggunakan nilai fitur
yang didapatkan dari data uji. Sebelum dapat dilakukan pelatihan dan pengujian, jaringan harus dirancang terlebih dahulu.
3.3.1. Perancangan jaringan backpropagation
Tabel 3.1 Nilai Keluaran Dan Target Keluaran Jaringan
Nilai Keluaran Target
0000000000000000001 A( )
0000000000000000010 Ha( )
0000000000000000100 Ma( )
0000000000000001000 Na( )
0000000000000010000 Ra( )
0000000000000100000 Ta( )
0000000000001000000 Sa( )
0000000000010000000 Da( )
0000000000100000000 Ga( )
0000000001000000000 Ja( )
0000000010000000000 Ba( )
0000000100000000000 Nga( )
0000001000000000000 La( )
0000010000000000000 Pa( )
0000100000000000000 Nya( )
0001000000000000000 Wa( )
0010000000000000000 Ya( )
0100000000000000000 I( )
1000000000000000000 U( )
adalah mengenai pengenalan tulisan tangan dalam bentuk numeral, tetapi sama-sama meneliti pengenalan tulisan tangan yang memiliki tingkat variasi yang tinggi. Dan juga membantu menguji arsitektur dan parameter jaringan yang digunakannya untuk kasus pengenalan tulisan tangan aksara Batak Toba.
Berdasarkan perancangan di atas jaringan saraf tiruan yang dibangun pada penelitian ini dapat dilihat pada gambar 3.14.
Gambar 3.14 Arsitektur Jaringan Saraf Tiruan
Berdasarkan gambar 3.16, rincian rancangan arsitektur jaringan saraf tiruan yang digunakan adalah :
1. 1 lapisan input. Lapisan input terdiri dari unit-unit input mulai dari unit input 1 sampai unit input i, dimana i = 123.
2. 1 lapisan tersembunyi. Lapisan tersembunyi terdiri dari unit-unit tersembunyi mulai dari unit tersembunyi 1 sampai unit tersembunyi j, dimana j = 96.
4. x1sampai x123 merupakan unit-unit lapisan input, y1 sampai y19 merupakan unit-unit
lapisan output dan z1 sampai z96 merupakan unit-unit lapisan tersembunyi.
5. b1merupakan bias ke lapisan tersembunyi dan b2 merupakan bias ke lapisan
keluaran.
6. v0j dan w0k masing-masing adalah bobot bias untuk unit tersembunyi ke-j dan unit
output ke-k. vij adalah bobot koneksi antara unit ke-i lapisan input dengan unit ke-j
lapisan tersembunyi, sedangkan wjk adalah bobot koneksi antara unit ke-j lapisan
tersembunyi dengan unit ke-k lapisan output.
3.3.2. Proses pelatihan
Proses pelatihan dilakukan untuk melatih jaringan agar dapat mengenali tulisan tangan aksara Batak Toba, baik yang dilatihkan maupun tidak dilatihkan.Setiap pelatihan dilakukan menggunakan parameter-parameter yang telah ditentukan. Pelatihan jaringan backpropagation terdiri dari tiga tahap, yaitu umpan maju, pemropagasian error, dan perbaikan nilai bobot. Ketiga tahapan tersebut terus dilakukan sampai error keluaran jaringan lebih kecil dari toleransi error atau dicapai maksimal epoch. Bobot
terakhir yang didapatkan dari proses pelatihan digunakan pada proses pengujian. Tahapan proses pelatihan jaringan dapat dilihat pada bab 2.5 mengenai algoritma
backpropagation.
3.3.3. Proses pengujian
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Analisis dan pemodelan pengenalan tulisan tangan aksara Batak Toba yang telah dilakukan pada bab sebelumnya harus diimplementasikan ke dalam kode program agar dapat dilakukan pengujian untuk mengetahui hasil dari penerapan pemrograman
terhadap jaringan saraf tiruan.
Pengkodean dibagi menjadi lima modul utama, yaitu :
1. Modul prapengolahan citra
Merupakan modul untuk melaksakan semua proses prapengolahan citra dan melaksanakan proses ekstraksi fitur.
2. Modul inisialisasi
Merupakan modul untuk melaksanakan inisialisasi bobot awal. 3. Modul pelatihan jaringan
Merupakan modul untuk melaksanakan proses pelatihan jaringan propagasi balik.
4. Modul pengujian jaringan
Merupakan modul untuk melaksanakan proses pengujian jaringan backpropagation yang telah dilatihkan.
5. Modul program utama
Merupakan modul untuk menjalankan modul prapengolahan citra, pelatihan jaringan dan pengujian jaringan.
4.2. Spesifikasi Perangkat Keras dan Perangkat Lunak yang Digunakan
Spesifikasi perangkat lunak dan perangkat keras yang digunakan untuk membut sistemnya adalah sebagai berikut:
3. Memory RAM yang digunakan 2.00GB. 4. Sistem operasi Microsoft Windows 7. 5. Tools dari Java.
6. Printer canon MP198.
4.3. Tampilan Implementasi Program
Tampilan hasil implementai program dapat dilihat pada gambar berikut:
1. Input: Masukkan file gambar yang ingin diuji, contoh input data tulisan aksara Batak Toba sa. dapat dilihat seperti pada gambar 4.1
Gambar 4.1. Input Citra Pengujian
2. Setelah file gambar di inputkan maka system memberikan informasi bahwa ukuran gambar belum sesuai (60,90), yaitu apakah ingin mencocokkan gambar? Jawaban y/t, jika y maka proses berlanjut jika tidak maka proses akan berhenti. dapat dilihat seperti pada gambar 4.2
Gambar 4.2. Proses Pencocokan Gambar
Gambar 4.3. Hasil Pencocokan Ukuran Gambar
4. Output: Sistem akan mengenali file gambar yang diuji sesuai dengan karakternya, pada tahap pengujian data ditampilkan learning rate 0.1, momentum 0.7 dan epoch 1000 mampu mengenali gambar tulisan sa sebesar 86.65 %. Hasil pengujian jaringan saraf tiruan backpropagation dapat dilihat seperti pada gambar 4.4
Gambar 4.4. Output Pengujian Gambar
4.3.1. Hasil pelatihan jaringan saraf tiruan
Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation
Input Learning
Rate
Momentum Epoch Tingkat
Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
rate
Momentum Epoch Tingkat
Kecocokan
Output
Ra3 0,4 0,3 1000 83.96% Ra
Ra4 0,3 0,4 4000 86.08% Ra
Ra5 0.2 0.5 2000 89.43% Ra
Ra6 0,1 0,7 1000 89.56% Ra
Ta 0,9 0,1 10000 88.97% Ta
Ta2 0,5 0,2 8000 94.92% Ta
Ta3 0,4 0,3 6000 94.96% Ta
Ta4 0,3 0,4 4000 95.11% Ta
Ta5 0.2 0.5 2000 80.44% Ta
Ta6 0,1 0,7 1000 80.51% Ta
Sa 0,9 0,1 10000 85.97% Sa
Sa2 0,5 0,2 8000 85.92% Sa
Sa3 0,4 0,3 1000 98.96% Sa
Sa4 0,3 0,4 4000 99.11% Sa
Sa5 0.2 0.5 2000 99.40% Sa
Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
Rate
Momentum Epoch Tingkat
Kecocokan
Output
Da 0,9 0,1 10000 93.97% Da
Da2 0,5 0,2 8000 87.92% Da
Da3 0,4 0,3 1000 93.96% Da
Da4 0,3 0,4 4000 93.10% Da
Da5 0.2 0.5 2000 84.53% Ha
Da6 0,1 0,7 1000 80.54% Da
Ga 0,9 0,1 10000 79.98% Ga
Ga2 0,5 0,2 8000 79.92% Ga
Ga3 0,4 0,3 1000 79.99% Ga
Ga4 0,3 0,4 4000 80.10% Ga
Ga5 0,2 0,5 2000 80.45% Ga
Ga6 0,1 0,7 1000 80.60% Ga
Ja 0,9 0,1 10000 79.98% Ja
Ja2 0,5 0,2 8000 75.92% Ja
Ja3 0,4 0,3 1000 76.96% Ja
Ja4 0,3 0,4 4000 75.09% Ja
Ja5 0.2 0.5 2000 80.47% Ja
Ja6 0,1 0,7 1000 81.55% Ja
Ba 0,9 0,1 10000 77.97% Ba
Ba2 0,5 0,2 8000 78.92% Ba
Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
Rate
Momentum Epoch Tingkat
Kecocokan
Output
Ba4 0,3 0,4 4000 78.08% Ba
Ba5 0.2 0.5 2000 79.43% Ba
Ba6 0,1 0,7 1000 78.52% Ba
Nga 0,9 0,1 10000 90.98% Nga
Nga2 0,5 0,2 8000 90.92% Nga
Nga3 0,4 0,3 1000 78.96% Nga
Nga4 0,3 0,4 4000 79.10% Nga
Nga5 0.2 0.5 2000 79.46% Nga
Nga6 0,1 0,7 1000 79.58% Nga
La 0,9 0,1 10000 78.98% La
La2 0,5 0,2 8000 76.92% La
La3 0,4 0,3 1000 89,02% La
La4 0,3 0,4 4000 76.10% La
La5 0.2 0.5 2000 80.44% La
La6 0,1 0,7 1000 81.55% La
Pa 0,9 0,1 10000 78.98% Pa
Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
Rate
Momentum Epoch Tingkat
Kecocokan
Output
Pa3 0,4 0,3 1000 78.96% Pa
Pa4 0,3 0,4 4000 93.08% Pa
Pa5 0.2 0.5 2000 93.44% Pa
Pa6 0,1 0,7 1000 93.59% Pa
Nya 0,9 0,1 10000 74.97% Nya
Nya2 0,5 0,2 8000 74.92% Nya
Nya3 0,4 0,3 1000 74.96% Nya
Nya4 0,3 0,4 4000 75.12% Nya
Nya5 0.2 0.5 2000 75.52% Nya
Nya6 0,1 0,7 1000 75.49% Nya
Wa 0,9 0,1 10000 74.98% Wa
Wa2 0,5 0,2 8000 92.92% Wa
Wa3 0,4 0,3 1000 74.96% Wa
Wa4 0,3 0,4 4000 75.09% Wa
Wa5 0.2 0.5 2000 75.43% Wa
Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
Rate
Momentum Epoch Tingkat Kecocokan Output
Ya 0,9 0,1 10000 73.98% Ya
Ya2 0,5 0,2 8000 74.92% Ya
Ya3 0,4 0,3 1000 75.96% Ya
Ya4 0,3 0,4 4000 83.09% Ya
Ya5 0.2 0.5 2000 85.45% Ya
Ya6 0,1 0,7 1000 81.57% Ya
I 0,9 0,1 10000 75.98 % I
I2 0,5 0,2 8000 76.92% I
I3 0,4 0,3 1000 79.96% I
I4 0,3 0,4 4000 81.11% I
I5 0.2 0.5 2000 73.47% I
I6 0,1 0,7 1000 75.55% I
U 0,9 0,1 10000 82.98% U
U2 0,5 0,2 8000 76.93% U
U3 0,4 0,3 1000 72.97% U
U4 0,3 0,4 4000 77.09% U
U5 0.2 0.5 2000 77.45% U
4.3.1. Hasil pengujian jaringan saraf tiruan
Pada tahap pengujian dilakukan pengujian dengan menggunakan 76 pola. Hasil pengujian dapat dilihat pada tabel 4.2.
Tabel 4.2 Hasil Pengujian Jaringan Saraf Tiruan Backpropagation
Input Learning
Rate
Momentum Epoch Tingkat
Kecocokan
Output
A7 0,1 0,7 1000 99.45% A
A8 0,1 0,7 1000 99.44% A
A9 0,1 0,7 1000 99.42% A
A10 0,1 0,7 1000 94.05 % A
Ha7 0,1 0,7 1000 83.08 % Ha
Ha8 0,1 0,7 1000 76.16 % Ha
Ha9 0,1 0,7 1000 84.25 % Ha
Ha10 0,1 0,7 1000 86.02 % Ha
Ma7 0,1 0,7 1000 94.37 % Ma
Ma8 0,1 0,7 1000 94.03 % Ma
Ma9 0,1 0,7 1000 93.99 % Ma
Tabel 4.2 Hasil Pengujian Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
Rate
Momentum Epoch Tingkat
Kecocokan
Output
Na7 0,1 0,7 1000 84.41 % Na
Na8 0,1 0,7 1000 90.20 % Na
Na9 0,1 0,7 1000 90.45 % Na
Na10 0,1 0,7 1000 90.27 % Na
Ra7 0,1 0,7 1000 85.45 % Ra
Ra8 0,1 0,7 1000 85.06 % Ra
Ra9 0,1 0,7 1000 88.09 % Ra
Ra10 0,1 0,7 1000 87.99 % Ra
Ta7 0,1 0,7 1000 76.46 % Ta
Ta8 0,1 0,7 1000 92.02 % Ta
Ta9 0,1 0,7 1000 91.97 % Ta
Ta10 0,1 0,7 1000 92.00 % Ta
Sa7 0,1 0,7 1000 92.52 % Sa
Sa8 0,1 0,7 1000 91.33 % Sa
Sa9 0,1 0,7 1000 90.53 % Sa
Sa10 0,1 0,7 1000 90.60 % Sa
Da7 0,1 0,7 1000 74.43 % Da
Da8 0,1 0,7 1000 84.22% Da
Da9 0,1 0,7 1000 88.10% Da
Da10 0,1 0,7 1000 83.18% Da
Ga7 0,1 0,7 1000 76.47% Ga
Ga8 0,1 0,7 1000 76.26% Ga
Tabel 4.2 Hasil Pengujian Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
Rate
Momentum Epoch Tingkat
Kecocokan
Output
Ga10 0,1 0,7 1000 80.69% Ga
Ja7 0,1 0,7 1000 80.72% Ja
Ja8 0,1 0,7 1000 81.60% Ja
Ja9 0,1 0,7 1000 79.60% Ja
Ja10 0,1 0,7 1000 81.51% Ja
Ba7 0,1 0,7 1000 85.35% Ba
Ba8 0,1 0,7 1000 86.47 % Ba
Ba9 0,1 0,7 1000 90.65% Ba
Ba10 0,1 0,7 1000 92.68 % Ba
Nga7 0,1 0,7 1000 84.75% Nga
Nga8 0,1 0,7 1000 94.72% Nga
Nga9 0,1 0,7 1000 94.67% Nga
Nga10 0,1 0,7 1000 88.75% Nga
La7 0,1 0,7 1000 82.70% La
La8 0,1 0,7 1000 86.70% La
La9 0,1 0,7 1000 87.71% La
La10 0,1 0,7 1000 82.73% La
Pa7 0,1 0,7 1000 93.73 % Pa
Pa8 0,1 0,7 1000 93.77 % Pa
Pa9 0,1 0,7 1000 93.72 % Pa
Tabel 4.2 Hasil Pengujian Jaringan Saraf Tiruan Backpropagation (Lanjutan)
Input Learning
Rate
Momentum Epoch Tingkat
Kecocokan
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil analisis dan pengujian yang dilakukan pada bab-bab sebelumnya, dapat disimpulan bahwa :
1. Jaringan saraf tiruan backpropagation yang telah dilatih dengan data pola huruf dapat digunakan untuk mengenali tulisan tangan aksara Batak Toba.
2. Pada data pengujian diperoleh tingkat pengenalan tertinggi 99.45% dengan
learning rate 0,1, momentum 0,7, dan epoch 1000.
3. Dari hasil pengujian penggunaan kombinasi metode zoning dan diagonal
based feature extraction memperoleh tingkat pengenalan sebesar 87.19%
dengan learning rate 0,1, momentum 0,7, dan epoch 1000
5.2. Saran
Perlu dilakukan penelitian selanjutnya untuk mencapai nilai minimum, agar mendapatkan tingkat pengenalan yang lebih baik, sebab jaringan yang digunakan pada
BAB 2
LANDASAN TEORI
2.1. Aksara Batak
Aksara adalah suatu sistem simbol visual yang tertera pada kertas maupun media lainnya (batu, kayu, kain, dll) untuk mengungkapkan unsur-unsur yang ekspresif dalam suatu bahasa. Istilah lain untuk menyebut aksara adalah sistem tulisan. Surat
Batak adalah nama aksara yang digunakan untuk menuliskan bahasa Batak (Kertasari, 2000). Aksara Batak yang memiliki keunikan tersendiri dimana aksaranya semi silabis
yang terdiri atas 19 huruf (ina ni surat)
2.1.1. Ina ni surat
Ina ni surat (ina = ibu) terdiri dari huruf-huruf silabik dasar yang diakhiri bunyi /a/ (kecuali untuk huruf i dan u) seperti yang ditunjukkan tabel 2.1.
Tabel 2.1 Huruf-Huruf Ina Ni Surat Dan Variannya (Kozok, 2009; Simatupang, 2006)
Gambar 2.1. Huruf-Huruf Ina Ni Surat (Font Tradisional)
2.2. Citra
cahaya menerangi objek, objek kembali memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai (scanner) dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam.
Citra digital merupakan suatu fungsi intensitas cahaya dua dimensi f(x,y), dimana x dan y menunjukkan koordinat spasial. Nilai f pada setiap titik (x,y) menunjukkan tingkat kecerahan citra pada titik tersebut (Gonzales & Woods 2002). Citra digital dapat berupa citra dalam skala keabuan (grayscale) ataupun citra berwarna (color).
Citra digital dapat diklasifikasikan menjadi beberapa jenis: 1. Citra Biner
Citra biner (binary image) adalah citra yang hanya mempunyai dua nilai derajat keabuan: hitam dan putih. Piksel-piksel objek bernilai 1 dan piksel-piksel latar belakang bernilai 0. Pada waktu menampilkan citra, 0 adalah warna putih dan 1 adalah warna hitam.
Untuk mengubah citra grayscale menjadi citra biner, proses yang dilakukan adalah mengubah kuantisasi citra dengan cara pengambangan secara global (global image thresholding). Setiap piksel di dalam citra dipetakan ke dalam dua nilai, 1 atau 0. Dengan fungsi pengambangan:
2. Citra Keabuan (Grayscale)
Citra keabuan adalah citra yang setiap pikselnya mengandung satu layer di mana nilai intensitasnya berada pada interval 0 (hitam) – 255 (putih). Untuk menghitung citra grayscale (keabuan) digunakan rumus:
dengan I(x,y) adalah level keabuan pada suatu koordinat yang diperoleh dengan mengatur warna R (merah), G (hijau), B (biru) yang ditunjukkan oleh
Nilai yang lain juga dapat diberikan untuk ketiga parameter tersbut asalkan total keseluruhannya adalah 1 (Putra, 2009).
3. Citra Warna
Citra warna adalah citra digital yang memiliki informasi warna pada setiap pikselnya.Sistem pewarnaan citra warna ada beberapa macam seperti RGB, CMYK, HSV, dll.
2.3. Pengolahan Citra (Image Processing)
Pengolahan citra adalah setiap bentuk pengolahan sinyal dimana input adalah gambar, seperti foto atau video bingkai, sedangkan output dari pengolahan gambar dapat berupa gambar atau sejumlah karakteristik atau parameter yang berkaitan dengan gambar. Kebanyakan gambar-teknik pemrosesan melibatkan atau memperlakukan foto sebagai dimensi dua sinyal dan menerapkan standar-teknik pemrosesan sinyal untuk itu, biasanya hal tersebut mengacu pada pengolahan gambar digital, tetapi dapat juga digunakan untuk optik dan pengolahan gambar analog. Akuisisi gambar atau yang menghasilkan gambar input di tempat pertama disebut sebagai pencitraan.
Pengolahan citra merupakan proses pengolahan dan analisis citra yang banyak melibatkan persepsi visual. Proses ini mempunyai ciri data masukan dan informasi keluaran yang berbentuk citra. Istilah pengolahan citra digital secara umum didefinisikan sebagai pemrosesan citra dua dimensi dengan komputer. Dalam definisi yang lebih luas, pengolahan citra digital juga mencakup semua data dua dimensi. Citra digital adalah barisan bilangan nyata maupun kompleks yang diwakili oleh bit-bit tertentu.
Umumnya citra digital berbentuk persegi panjang atau bujur sangkar (pada beberapa sistem pencitraan ada pula yang berbentuk segienam) yang memiliki lebar dan tinggi tertentu. Ukuran ini biasanya dinyatakan dalam banyaknya titik atau piksel sehingga ukuran citra selalu bernilai bulat. Setiap titik memiliki koordinat sesuai
posisinya dalam citra. Koordinat ini biasanya dinyatakan dalam bilangan bulat positif, yang dapat dimulai dari 0 atau 1 tergantung pada sistem yang digunakan. Setiap titik
2.3.1. Binarization
Proses pengambilan citra merupakan suatu langkah awal guna memberikan inputan terhadap langkah selanjutnya untuk melakukan modifikasi terhadap citra masukan dan menghasilkan suatu citra keluaran yang sesuai dengan sistem yang telah dibangun. Langkah utama yang dilakukan dalam operasi terhadap citra ini adalah binerisasi.
Proses binerisasi adalah proses mengkonversi citra greyscale ke dalam bentuk citra biner yaitu citra dalam warna hitam dan putih. Tiap-tiap piksel dalam citra levelnya dirubah melalui suatu thresholding tertentu apabila piksel tersebut nilainya diatas nilai thresholding maka piksel tersebut akan diubah ke warna putih, dan apabila nilai piksel tersebut berada pada level di bawah nilai thresholding maka piksel tersebut di ubah ke warna hitam. Nilai dari thresholding untuk citra dalam derajat keabuan 256 maka nilai thresholding adalah 128 sehingga untuk mengubah menjadi citra biner dapat dituliskan dalambentuk pengandaian yaitu : jika nilai point < x =" 0" x ="">.
2.3.3. Normalization
Sharma et. Al (2012) berpendapat bahwa normalisasi merupakan proses mengubah
ukuran citra, baik menambah atau mengurangi, menjadi ukuran yang ditentukan tanpa menghilangkan informasi penting dari citra tersebut Dengan adanya proses normalisasi maka ukuran semua citra yang akan diproses menjadi seragam. Normalisasi terkadang disebut juga pelebaran kontras dan pelebaran histogram (Gonzales & Woods, 2007).
2.3.4. Thinning
Thinning adalah proses pengurangan data yang mengikis (erode) sebuah objek hingga
menjadi ukuran 1 piksel dan menghasilkan kerangka (skeleton) dari objek tersebut. Objek seperti huruf atau silhouettes dapat lebih mudah dikenali dengan melihat kepada kerangkanya saja (Phillips, 2000). Pada penelitian ini digunakan algoritma thinning Zhang-Suen.
titik yang pikselnya bernilai 1, dan memiliki paling sedikit 1 piksel dari 8-tetangganya yang bernilai 0.
2.4. Ekstraksi Fitur
Ekstraksi fitur adalah proses pengukuran terhadap data yang telah dinormalisasi untuk membentuk sebuah nilai fitur. Nilai fitur digunakan oleh pengklasifikasi untuk mengenali unit masukan dengan unit target keluaran dan memudahkan pengklasifikasian karena nilai ini mudah untuk dibedakan (Pradeep et. al, 2011).
Secara luas, fitur adalah semua hasil pengukuran yang bisa diperoleh. Fitur
juga bisa menggambarkan karakteristik objek yang dipantau (Putra, 2009). Contoh dari fitur level rendah adalah intensitas sinyal. Fitur bisa berupa simbol, numerik atau keduanya. Contoh dari fitur simbol adalah warna. Contoh dari fitur numerik adalah berat. Fitur bisa diperoleh dengan mengaplikasikan algoritma pencari fitur pada data masukan.Fitur dapat dinyatakan dengan variabel kontinu, diskret atau diskret-biner. Fitur biner dapat digunakan untuk menyatakan ada tidaknya suatu fitur tertentu.
Fitur yang baik memiliki syarat berikut, yaitu mudah dalam komputasi, memiliki tingkat keberhasilan yang tinggi dan besarnya data dapat diperkecil tanpa menghilangkan informasi penting (Putra, 2009). Ekstraksi fitur dapat dilakukan pada berbagai representasi citra seperti pada tabel 2.2.
Tabel 2.2. Ekstraksi Fitur Pada Representasi Citra Yang Berbeda (Jain Dan Taxt, 1996)
Grayscale subimage Binary Vector (Skeleton)
Solid character Outer countour
Template matching Template matching - Template matching
Deformable templates - - Deformable templates
Unitary transforms Unitary transforms - Graph decription
- Projection histograms Countour Profile Discrete features
Zoning Zoning Zoning Zoning
Geometric moments Geometric moments Spline curve -
2.4.1. Zoning
Zoning adalah salah satu ekstraksi fitur yang paling popular dan sederhana untuk
diimplementasikan (Sharma et. al, 2012). Sistem optical character recognition (OCR) komersil yang dikembangkan oleh CALERA menggunakan metode zoning pada citra biner (Bosker, 1992).
Setiap citra dibagi menjadi NxM zona dan dari setiap zona tersebut dihitung nilai fitur sehingga didapatkan fitur dengan panjang NxM. Salah satu cara menghitung nilai fitur setiap zona adalah dengan menghitung jumlah piksel hitam setiap zona dan membaginya dengan jumlah piksel hitam terbanyak pada yang terdapat pada salah satu zona. Contoh pembagian zona pada citra biner dapat dilihat pada gambar 2.4.
Gambar 2.4 Pembagian Zona Pada Citra Biner
2.4.2. Diagonal Based Feature Extraction
Pradeep et. al(2011) menggunakan diagonal based feature extraction untuk mendapatkan input untuk pengenalan karakter tulisan tangan. Cara kerja ekstraksi fitur tersebut adalah sebagai berikut :
1. Setiap karakter image dengan ukuran 90x60 piksel (Gambar 2.5) dibagi menjadi 54 zona, setiap zona berukuran 10x10 piksel (Gambar 2.6).
2. Untuk setiap zona:
a. Hitung histogram secara diagonal untuk mendapatkan 19 subfitur (Gambar 2.7).
b. Hitung rata-rata dari 19 subfitur tersebut dan nilai tersebut digunakan untuk mewakili setiap zona.
3. Dari nilai setiap zona, hitung rata-rata masing-masing baris dan masing-masing kolom. Sehingga didapatkan 9 nilai baris dan 6 nilai kolom.
Gambar 2.5 Karakter Ukuran 60x90 Piksel (Pradeep Et. Al, 2011)
Gambar 2.6 Pembagian Zona Ekstraksi Fitur (Pradeep Et. Al, 2011)
Gambar 2.7 Diagonal Histogram Setiap Zona (Pradeep Et. Al, 2011)
2.5. Jaringan Saraf Tiruan
Jaringan Saraf Tiruan adalah jaringan komputasional yang mensimulasikan jaringan sel saraf (neuron) dari pusat sistem saraf makhluk hidup (manusia atau hewan)
mengkombinasikan banyak neuron sederhana sehingga menjadi sebuah sistem saraf merupakan peningkatan tenaga komputasional.
Jaringan saraf tiruan disusun dengan asumsi yang sama seperti jaringan saraf biologi (Puspitaningrum, 2006):
1. Pengolahan informasi terjadi pada elemen-elemen pemrosesan (neuron). 2. Sinyal antara dua buah neuron diteruskan melalui link-link koneksi. 3. Setiap link koneksi memiliki bobot terasosiasi.
4. Setiap neuron menerapkan sebuah fungsi aktivasi terhadap input jaringan (jumlah sinyal input berbobot). Tujuannya adalah untuk menentukan sinyal output.
2.5.1. Komponen jaringan saraf tiruan
Jaringan saraf tiruan terdiri dari banyak neuron yang menyusun jaringan tersebut. Neuron-neuron tersebut dikelompokkan ke dalam beberapa lapisan (layer) dan lapisan-lapisan tersebut memiliki hubungan satu sama lain.
Lapisan-lapisan penyusun jaringan saraf tiruan dapat dibagi menjadi 3, yaitu: 1. Lapisan input
Pada lapisan ini neuron-neuron akan menerima input yang selanjutnya diproses untuk dikirimkan ke lapisan selanjutnya.
2. Lapisan tersembunyi
Lapisan ini berada di antara lapisan input dan lapisan output. Pada lapisan ini bobot yang diterima dari lapisan input diproses untuk selanjutnya diproses untuk dikirimkan ke lapisan selanjutnya. Output dari lapisan ini tidak secara langsung dapat diamati.
3. Lapisan output
Lapisan ini merupakan lapisan akhir dimana nilai output dihasilkan. Pada lapisan ini ditetapkan nilai output aktual untuk dibandingkan dengan nilai output target untuk mengetahui apakah jaringan sudah sesuai dengan hasil yang diinginkan.
2.6. Algoritma Backpropagation
Algoritma pelatihan Backpropagation Neural Network pertama kali dirumuskan oleh
Werbos dan dipopulerkan oleh Rumelhart & Mc.Clelland. Backpropagation neural
network merupakan tipe jaringan saraf tiruan yang menggunakan metode
pasangan data input dan output yang dipakai untuk melatih JST hingga diperoleh bobot penimbang (weight) yang diinginkan. Penimbang itu sendiri adalah sambungan antar lapis dalam JST.
Istilah “propagasi balik” diambil dari cara kerja jaringan ini, yaitu bahwa
gradient error unit-unit tersembunyi diturunkan dari penyiaran kembali error-error yang diasosiasikan dengan unit-unit output. Hal ini karena nilai target untuk unit-unti tersembunyi tidak diberikan (Puspitaningrum, 2006). Backpropagation adalah metode pembelajaran terawasi (supervised learning). Metode ini membutuhkan nilai yang sudah ditentukan sebelumnya untuk mendapatkan output yang diinginkan pada proses pembelajaran. Contoh jaringan backpropagation dengan satu buah lapisan tersembunyi dapat dilihat pada gambar 2.8.
Gambar 2.8 Jaringan Propagasi Balik Dengan Satu Buah Lapisan Tersembunyi (Puspitaningrum, 2006)
Algoritma propagasi balik dapat dibagi ke dalam 2 bagian (Puspitaningrum, 2006): 1. Algoritma pelatihan
Terdiri dari 3 tahap: tahap umpan maju pola pelatihan input, tahap pemropagasian
error, dan tahap pengaturan bobot.
2. Algoritma aplikasi
Algoritma Pelatihan
1. Inisialisasi bobot-bobot.
Tentukan angka pembelajaran (α).
Tentukan pula nilai toleransi error atau nilai ambang (bila menggunakan nilai ambang sebagai kondisi berhenti) atau set maksimal epoch (bila menggunakan banyaknya epoch sebagai kondisi berhenti).
2. While kondisi berhenti tidak terpenuhi do langkah ke-2 sampai langkah ke-9. 3. Untuk setiap pasangan pola pelatihan, lakukan langkah ke-3 sampai langkah ke-8.
Tahap Umpan Maju
4. Setiap unit input xi (dari unit ke-1 sampai unit ke-n pada lapisan input)
mengirimkan sinyal input ke smua unit yang ada di lapisan atasnya (ke lapisan tersembunyi)
5. Pada setiap unit di lapisan tersembunyi zj (dari unit ke-1 sampai unit ke-p;
i=i,…,n; j=1,...,p) sinyal output lapisan tersembunyinya dihitung dengan
menerapkan fungsi aktivasi terhadap penjumlahan sinyal-sinyal input berbobot xi:
(2.1)
kemudian dikirim ke semua unit di lapisan atasnya.
6. Setiap unit di lapisan output yk (dari unit ke-1 sampai unit ke-m; i=1,...,n;
k=1,…,m) dihitung sinyal outputnya dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal-sinyal input berbobot zj bagi lapisan ini:
(2.2)
Tahap Pemropagasibalikan Error
7. Setiap unit output yk (dari unit ke-1 sampai unit ke-m; i=1,…,p; k=1,….,m)
menerima pol target tk lalu informasi kesalahan lapisan output (δk) dihitung. δk
dikirim ke lapisan di bawahnya dan digunakan untuk mengitung besar koreksi
b (2.3)
Δwjk= α δk zj
Δw0k= α δk
8. Pada setiap unit di lapisan tersembunyi (dari unit ke-1 sampai unit ke-p; i=1,…,n;
j=1,…,p; k=1,…,m) dilakukan perhitungan informasi kesalahan lapisan tersembunyi (δj). δj kemudian digunakan untuk menghitung besar koreksi bobot
dan bias (Δwjkdan Δw0k) antara lapisan input dan lapisan tersembunyi.
(2.4)
Δvij= α δj xi
Δv0j= α δj
Tahap Peng-update-an Bobot dan Bias
9. Pada setiap unit output yk (dari unit ke-1 sampai unit ke-m) dilakukan
peng-update-an bias dan bobot (j=0,…,p; k=1,…,m) sehingga bias dan bobot baru
menjadi:
wjk (baru) = wjk(lama) + Δ wjk
Dari unit ke-1 sampai unit ke-p di lapisan tersembunyi juga dilakukan
peng-update-an pada bias dan bobotnya (i=0,…,n; j=1,…,p):
vij (baru) = vij(lama) + Δ vij
10. Tes kondisi berhenti.
Algoritma Aplikasi
1. Inisialisasi bobot. Bobot ini diambil dari bobot-bobot terakhir yang diperoleh dari algoritma pelatihan.
2. Untuk seitap vektor input, lakukanlah langkah ke-2 sampai ke-4.
3. Setiap unit input xi (dari unit ke-1 sampai unit ke-n pada lapisan input; i=1,…,n)
menerima sinyal input pengujian xi dan menyiarkan sinyal xi ke semua unikt pada
lapisan di atasnya (unit-unit tersembunyi).
4. Setiap unit di lapisaan tersembunyi zj (dari unit ke-1 sampai unit ke-p; i=1,…,n;
terhadap penjumlahan sinyal-sinyal input xi. Sinyal output dari lapisan
tersembunyi kemudian dikirim ke semua unit pada lapisan di atasnya:
(2.5)
5. Setiap unit output yk (dari unit ke-1 sampai unit ke-m; j=1,…,p; k=1,…,m)
menghitung sinyal outputnya dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal-sinyal input bagi lapisan ini, yaitu sinyal-sinyal input zj dari
lapisan tersembunyi:
(2.6)
2.6.1. Fungsi aktivasi
Pilihan fungsi aktivasi yang dapat digunakan pada metode propagasi balik yaitu fungsi sigmoid biner, sigmoid bipolar dan tangent hiperbolik. Karakteristiki yang harus imiliki fungsi aktivasi tersebut adalah kontinu, diferensiabel dan tidak menurun secara monoton. Fungsi aktivasi diharapkan jenuh (mendekati nilai-nilai maksimum dan minimum secara asimtot) (Puspitaningrum, 2006).
2.6.1.1. Fungsi sigmoid biner
Fungsi ini merupakan fungsi yang umum digunakan. Rentang-nya adalah (0,1) dan didefenisikan sebagai :
(2.7)
dengan turunan :
sigmoid biner diilustrasikan pada gambar 2.7.
Gambar 2.9 Fungsi Sigmoid Biner Dengan Rentang (0,1) (Puspitaningrum, 2006)
2.6.2. Inisialisasi bobot dan bias
Cepat atau tidaknya pembelajaran pada pelatihan jaringan propagasi balik salah satunya dipengaruhi oleh nilai bobot antar neuron dan nilai bias. Semakin baik inisialisasi bobot dan bias semakin cepat pula pembelajaran jaringan propagasi balik. Bobot dan bias pada jaringan propagasi balik dapat dinisialisasi dengan berbagai cara
seperti inisialisasi acak, nguyen-widrow dan lain-lain.
2.6.2.1. Inisialisasi acak
Prosedur yang umum dilakukan adalah menginisialisasi bias dan bobot, baik dari unit input ke unit tersembunyi maupun dari unit tersembunyi ke unit output secara acak dalam sebuah interval tertentu (- dan ), misalnya antara -0.4 sampai 0.4, -0.5 sampai 0.5, dan -1 sampai 1 (Puspitaningrum, 2006).
2.6.2.2. Inisialisasi nguyen widrow
Waktu pembelajaran jaringan propagasi balik yang bobot dan biasnya diinisalisasi dengan inisialisasi Nguyen-Widrow lebih cepat dibandingkan bila diinisialisasi dengan inisialisasi acak. Pada inisialisasi Nguyen-Widrow, inisialisasi acak tetap terpakai tetapi digunakan untuk menginisialisasi bias dan bobot dari unit tersembunyi ke unit output saja. Untuk bias dan bobot dari unit-unit input ke unit-unit tersembuyi digunakan bias dan bobot yang khusus diskala agar jatuh pada range tertentu.
Faktor skala Nguyen-Widrow ( ) didefenisikan sebagai :
(2.9)
dimana :
n = banyak unit input
p = banyak unit tersembunyi
= faktor skala
Prosedur inisialisasi Nguyen-Widrow
Untuk setiap unit tersembunyi dari unit ke-1 sampai unit ke-p :
1. Inisialisasi vektor bobot dari unit-unit input ke unit-unit tersembunyi (j = 1, …, p) dengan cara :
a. Menentukan bobot-bobot antara unit input ke unit tersembunyi (vij) :
vij(lama) = bilangan acak antara - dan
di mana i = 1, …, n. b. Menghitung || vij ||.
c. Menginisialisasi kembali vij :
2. Menentukan bias antara unit input ke unit tersembuni (j = 1, …, p). voj diset
dengan bilangan acak yang terletak pada skala antara - dan .
2.6.3. Pengupdate bobot dengan momentum
Penambahan parameter momentum dalam mengupdate bobot seringkali bisa mempercepat proses pelatihan. Ini disebabkan karena momentum memkasa proses
perubahan bobot terus bergerak sehingga tidak terperangkap dalam minimum-minimum lokal. Pengupdatean bobot pada proses pelatihan jaringan yang biasa adalah
sebagai berikut :
Δwjk= α δk zj (2.10)
Δvij= α δjxi
Jika error tidak terjadi (output actual telah sama dengan output target) maka δk
menjadi nol dan hal ini akan menyebabkan koreksi bobot Δwjk = 0, atau dengan kata
Jika parameter momentum digunakan maka persamaan-persamaan pengupdatean bobot dengan langkah pelatihan t, dan t+1 untuk langkah pelatihan selajutnya, mengalami modifikasi sebagai berikut :
Δwjk(t + 1) = α δk zj+ µ Δwjk(t) (2.11)
Δvij(t + 1) = α δj xi+ µ Δvij(t)
dengan µ adalah parameter momentum dalam range antara 0 sampai 1.
2.7. Penelitian Terdahulu
Penelitian terdahulu tentang kombinasi dua atau lebih metode ekstraksi fitur juga telah dilakukan.Penelitian terdahulu berfungsi sebagai referensi dan masukan bagi pengerjaan pengenalan tulisan tangan aksara Batak agar lebih optimal. Berbagai penelitian terdahulu dapat dilihat seperti pada tabel 2.3.
Tabel 2.3 Penelitian Terdahulu
Peneliti Metode Penelitian
Robin Panjaitan (2011) Pengenalan Tulisan Tangan Aksara Batak Toba Menggunakan
Metode Ekstraksi Freeman Chain Code. Tingkat pengenalan yang dicapai adalah 63.56%
Khairunnisa (2012) Pengenalan Tulisan Tangan Latin Bersambung Menggunkan
metode ekstraksi zoning dengan ukuran citra 30x40 piksel yang dibagi menjadi 48 zona dengan ukuran masing-masing zona adalah 5x5 piksel. Nilai fitur hasil ekstraksi berupa nilai biner, yaitu 0 dan 1. Tingkat pengenalan yang dicapai adalah 83,85%
Putra (2012) Peningkatan Nilai Fitur Jaringan Propogasi Balik Pada
Pengenalan Angka Tulisan Tangan Menggunakan Metode
Zoning dan DBFE dengan ukuran citra 60x90 pixel yang dibagi menjadi 54 zona dengan ukuran masing-masing zona
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Pengenalan tulisan tangan telah lama diidentifikasikan sebagai permasalahan yang sulit dipecahkan oleh komputer (Tay & Khalid 1997) karena karakteristik tulisan tangan setiap orang berbeda-beda. Saat ini pemanfaatan teknologi komputer telah banyak diterapkan dalam berbagai aspek kehidupan manusia yang tujuannya untuk
membantu menyelesaikan masalah-masalah tertentu. Salah satu permasalahan tersebut adalah pengenalan karakter tulisan tangan aksara Batak Toba yang memiliki keunikan
tersendiri dimana aksaranya semi silabis yang terdiri atas 19 huruf (ina ni surat). Secara umum, pengenalan tulisan tangan terbagi menjadi dua jenis, yaitu metode online dan offline. Metode offline melakukan konversi secara otomatis tulisan pada sebuah citra menjadi karakter yang dapat diolah oleh computer dan aplikasi pemrosesan teks. Pada metode online, koordinat dua dimensi dari poin-poin penulisan direpresentasikan sebagai fungsi waktu dan urutan setiap garis yang dituliskan juga disimpan secara realtime untuk mengenali karakter yang dituliskan (Arica dan Yarman-Vural, 2001).
Jaringan Saraf Tiruan adalah jaringan komputasional yang mensimulasikan jaringan sel saraf (neuron) dari pusat sistem saraf makhluk hidup (Graupe, 2007). Jaringan saraf tiruan telah banyak digunakan dalam bidang pengenalan pola (pattern
recognition). Salah satu implementasinya adalah pengenalan karakter.
Backpropagation neural network merupakan tipe jaringan saraf tiruan yang
menggunakan metode pembelajaran terbimbing (supervised learning). Pada
supervised learning terdapat pasangan data input dan output yang dipakai untuk
melatih JST hingga diperoleh bobot penimbang (weight) yang diinginkan. Penimbang itu sendiri adalah sambungan antar lapis dalam JST.
Penelitian terdahulu mengenai pengenalan huruf sudah banyak dilakukan salah
Pada penelitian ini metode ekstraksi zoning dan diagonal based feature
extraction akan dikombinasikan untuk mendapatkan nilai fitur yang akan digunakan
sebagai lapisan input. Untuk setiap data sampel yang telah melalui proses prapengolahan citra (binerization, normalization dan thinning ) akan dilakukan ekstraksi fitur. Ekstraksi pertama dilakukan menggunakan metode zoning dan selanjutnya untuk citra yang sama akan diekstraksi lagi menggunakan metode
diagonal based feature extraction.
1.2. Rumusan Masalah
Pengenalan tulisan tangan telah lama diidentifikasikan sebagai permasalahan yang sulit dipecahkan oleh komputer karena karakteristik tulisan tangan setiap orang berbeda-beda. Salah satu permasalahan tersebut adalah dalam pengenalan karakter tulisan tangan aksara Batak Toba yang memiliki keunikan tersendiri dimana aksaranya
semi silabis. Oleh karena itu dibutuhkan suatu pendekatan sehingga menghasilkan
sebuah sistem pengenalan tulisan tangan aksara Batak Toba
1.3. Batasan Masalah
Batasan masalah pada penelitian ini adalah:
1. Ukuran citra untuk diekstrak adalah 60x90 piksel dan dibagi menjadi 6 kolom dan 9 baris zona dengan ukuran setiap zona adalah 10x10 piksel
2. Sistem tidak dirancang untuk mengenali gaya tulisan penulis, namun bertujuan untuk mengenali karakter yang ditulis.
3. Penulisan huruf aksara Batak Toba (ina ni surat) dilakukan menggunakan alat tulis dengan tinta warna hitam.
4. Akuisisi citra diambil dari 10 orang.
1.4. Tujuan Penelitian