Pengenalan Tulisan Tangan Aksara Batak Toba Menggunakan Jaringan Saraf Tiruan Backpropagation

(1)

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


(2)

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


(3)

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


(4)

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


(5)

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


(6)

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


(7)

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


(8)

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


(9)

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(); //tipegambar = input2.nextLine();


(10)

// 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 [][] matriksC = new int [width][height];


(11)

int [][] matriksbanding2 = new int [width][height]; //int [][] zoning2 = new int [width][height];

for (int i = 0; i < width; i++) {

for (int j = 0; j <height; j++) {

int gambar = binarized.getRGB(i,j);

matriks[i][j] = gambar;

// System.out.println(gambar);

if(matriks[i][j] == -16777216){

matriks[i][j] = 1 ;}

if(matriks[i][j] == -1){

matriks [i][j] = 0;}}}

matriks = fungsi_tulisan.doHilditchsThinning(matriks);

for (int i = 0; i < width; i++) {

for (int j = 0; j < height; j++) {

if(matriks[i][j] == 0 ){

matriks[i][j] = -16777216 ; //-1;

// untuk citra thinning berwarna hitam buat nilainya sama dengan -1}

if(matriks[i][j] == 1){

matriks [i][j] = -1 ; //-16777216;}

binarized.setRGB(i,j,matriks[i][j]); }}

fungsi_tulisan2.writeImage2(binarized);

uji = ImageIO.read(tulisan.class.getResource("gambarmatriks.bmp")); matriksbanding = matriksmatriks.matriks_banding1(uji);

for (int i = 0; i < width; i++) {

for (int j = 0; j < height; j++) {

if(matriksbanding[i][j] == -1 ){

matriksbanding[i][j] = 0; //-1;

// untuk citra thinning berwarna hitam buat nilainya sama dengan -1}

if(matriksbanding[i][j] == -16777216){


(12)

}

}

}

// 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; } }


(13)

for(int i=0; i<matriksbanding.length; i+=ZONA_U){ for(int j=0; j<matriksbanding.length; j+=ZONA_U){ //Hitung jumlah piksel hitam setiap zona

for(int k=i; k<i+ZONA_U; k++) { for(int l=j; l<j+ZONA_U; l++){

if(matriksbanding2[l][k] == 1)

piksel_zona[i/ZONA_U][j/ZONA_U]++; }} //cout << piksel_zona[i/10][j/10] << " ";

if(piksel_zona[i/ZONA_U][j/ZONA_U] > piksel_zona_max) piksel_zona_max = piksel_zona[i/ZONA_U][j/ZONA_U]; } //cout << endl;}

//cout << "max :" << piksel_zona_max << endl; //cout << endl;

// Hitung nilai setiap zona

for(int i=0; i<ZONA_T; i++){ for(int j=0; j<ZONA_L; j++){

piksel_zona[i][j] /= piksel_zona_max; //cout << piksel_zona[i][j] << " ";

input_jst[pola][j] = piksel_zona[i][j]; } //cout << endl; }

for(int n = 0 ; n < 10 ; n++ ){ for(int m = 0 ; m< 1 ; m++){

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


(14)

for(int j=0; j<ZONA_L; j++) {

rata_rata_zona[i][j] = 0; //array rata_rata_zona rata_rata_ver[j] = 0; //array rata_rata_ver } // System.out.println();

rata_rata_hor[i] = 0; //array rata_rata_hor //System.out.print(rata_rata_hor[i]);}

//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; // System.out.println(rata_rata_hor[i]);


(15)

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}, {1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};


(16)

//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){


(17)

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();

} }


(18)

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-1078.

Gonzales, R. C. & Woods, R. E. 2002. Digital Image Processing. Addison Wasley, Massachussets.

Graupe, D. 2007. Principles of Artificial Neural Networks (2nd edition). Chicago:

World Scientific.

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.


(19)

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


(20)

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 Canon dengan resolusi 300 dpi. Citra hasil scanning disimpan dengan format Bmp.


(21)

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


(22)

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

Inisialisasi tinggi, lebar

x= 0 y = 0

y < tinggi

x < lebar Nilai rata-rata (x,y) = (R + G +

B) /3 ya

(x,y) < T Matriks[y][x] = 1 Matriks[y][x] = 0 ya tidak

tidak Selesai tidak

ya

x= x + 1

y = y + 1


(23)

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

Citra hasil thinning pada gambar 3.6 adalah hasil akhir dari seluruh tahap prapengolahan citra. Citra terebut dapat digunakan pada tahap ekstraksi fitur.


(24)

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.


(25)

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

dimana1 ≤ n ≤ 54

Hitung jumlah piksel hitam setiap zona

Nilai fitur setiap zona = jumlah piksel zona / jumlah piksel

hitam tertinggi

Nilai fitur = nilai zona, rata-rata histogram zona, rata-rata zona per baris, rata-rata zona per kolom Bagi citra menjadi

6 kolom dan 9 baris zona dengan ukuran setiap zona

10x10 piksel

Hitung histogram diagonal setiap zona

Hitung rata-rata zona per baris

Hitung rata-rata zona per kolom Cari jumlah piksel

hitam tertinggi

Hitung rata-rata histogram diagonal


(26)

Dari ekstraksi zoning didapatkan 54 nilai fitur yang mewakili setiap zona. Flowchart dari proses ekstraksi zoning dapat dilihat pada gambar 3.10.

Start

y ß 0

k ß y

l ß x

img(l, k) = 0

piksel_zona[y/10][x/10] ß piksel_zona[y/10][x/10] + 1

Yes y < tinggi

x ß 0

x < lebar Yes

y ß 0

No

y ß y + 10

x ß x + 10

Yes

k < y + 10 k ß k + 1

Yes

l < x + 10 l ß l + 1

Yes No No piksel_zona[y/10][x/10] > piksel_zona_max No

piksel_zona_max ß piksel_zona[y/10][x/10]

Yes No

No y < ZONA_T

x ß 0

x < ZONA_L Yes

piksel_zona[y][x] ß piksel_zona[y][x] / piksel_zona_max

Yes

x ß x + 1 y ß y + 1

No

End No

Inisialisasi ZONA_L ß 6, ZONA_T ß 9

img (hasil Thinning)

tinggi ß img(height), lebar ß img(width) piksel_zona[ZONA_T][ZONA_L] ß 0.0

piksel_zona_max ß 0.0 x, y, k, l


(27)

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

Dari metode diagonal based feature extraction didapatkan 54 nilai fitur rata-rata histogram diagonal setiap zona, 9 nilai fitur rata-rata-rata-rata zona setiap baris dan 6 nilai fitur rata-rata zona setiap kolom kolom. Total nilai fitur yang didapatkan dari metode ini adalah 69 nilai fitur. Flowchart proses diagonal based feature extraction dapat dilihat pada gambar 3.12.


(28)

Start

ZONA_L ß 6, ZONA_T ß 9 img (hasil Thinning) tinggi ß img(height), lebar ß img(width)

jml_piksel_zona ß 0 jml_hor ß 0.0, jml_ver ß 0.0 rata_rata_zona[ZONA_T][ZONA_L] ß 0.0

rata_rata_hor[ZONA_T] ß 0.0 rata_rata_ver[ZONA_L] ß 0.0

int x, y, k, l

y ß 0

y < tinggi

x ß 0 Yes

x < lebar x ß x + 10 y ß y + 10

No

jml_piksel_zona ß 0 Yes

k ß y

k < y + 10

l ß x

l < x + 10 Yes

l ß l + 1 k ß k + 1

No

No

img(l, k) = 0

Jml_piksel_zona ß jml_piksel_zona + 1

Yes Yes

No

rata_rata_zona[y/10][x/10] ß jml_piksel_zona / 19

y ß 0

y < ZONA_T

x ß 0 Yes

x < ZONA_L y ß y + 1

No No

x ß x + 1

jml_hor ß jml_hor + rata_rata_zona[y][x]

Yes

rata_rata_hor[y] ß jml_hor / ZONA_L

jml_hor ß 0

x ß 0

x < ZONA_L

y ß 0 Yes

y < ZONA_T

x ß x + 1 No

No

y ß y + 1

jml_ver ß jml_ver + rata_rata_zona[x][y]

Yes

rata_rata_ver[x] ß jml_hor / ZONA_T

jml_ver ß 0

End


(29)

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

Berdasarkan jumlah nilai fitur yang didapatkan dari tahap ekstraksi fitur, yaitu 123, maka jumlah neuron pada lapis masukan jaringan backpropagation adalah 123 neuron. Jumlah neuron pada lapis keluaran adalah 19 huruf aksara Batak Toba. Nilai keluaran setiap angka dapat dilihat pada tabel 3.1.


(30)

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( )

Jumlah neuron lapisan tersembunyi pada jaringan dirancang berdasarkan penelitian sebelumnya yang digunakan oleh Khairunnisa (2012) dan Putra (2012). Meskipun penelitian yang dilakukan oleh Khairunnisa adalah pengenalan huruf bersambung bukan pengenalan angka dan penelitian yang dilakukan putra (2012)


(31)

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.

3. 1 lapisan output. Lapisan output terdiri dari unit-unit output mulai dari unit output 1 sampai unit output k, dimana k = 19.

x1 x2 x3 x123 z1 z2 z3 Zn y1 y2 y3 Y19

b1 v0,1 b2 v0,2 v03 V0,100 w0,1 w0,2 w0,3 w1,0 v1,1 v1,2 v1,3 v1,100 v2,1 v2,2 v2,3 v2,100 v3,1 v3,2 v3,3 v3,100 v69,1 v69,2 v69,3 v69,10 0 w1,1 w1,2 w1,3 w1,10 w2,1 w2,2 w2,3 w2,10 w3,1 w3,2 w3,3 w3,10 w100,1 w100,2 w100,3 w100,10


(32)

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

Proses pengujian adalah menguji jaringan yang telah dilatihkan untuk mengenali data uji yang tidak digunakan pada tahap pelatihan jaringan. Menggunakan bobot yang didapatkan setelah proses pelatihan, jaringan diharapkan mampu mengenali tulisaan tangan aksara Batak Toba yang terdapat pada data uji. Tahap pengujian hanya menggunakan tahap umpan maju yang dipakai untuk mencari nilai keluaran lapisan tersembunyi dan lapisan keluaran. Tahapan proses pengujian dapat dilihat pada bab 2.6 mengenai algoritma backpropagation.


(33)

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:

1. Processor Pentium Intel ® Core ™ i3-2310M 2. Kapasitas harddiks 500GB.


(34)

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

3. Jika jawaban y maka ukuran gambar akan dicocokkan dengan ukuran 60,90. dapat dilihat seperti pada gambar 4.3


(35)

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

Pelatihan jaringan saraf tiruan ini berfungsi untuk mengajarkan kepada jaringan pola-pola tulisan huruf aksara Batak Toba yang ada sehingga diharapkan jaringan dapat mengenali pola-pola tulisan baru yang diberikan. Pada tahap pengujian dilakukan pengujian dengan menggunakan 76 pola. Hasil pengujian dapat dilihat pada tabel 4.1.


(36)

Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation

Input Learning

Rate

Momentum Epoch Tingkat

Kecocokan

Output

A 0,9 0,1 10000 74.97% Ya

A2 0,5 0,2 8000 73.92% Ya

A3 0,4 0,3 1000 92.96% A

A4 0,3 0,4 4000 93.10% A

A5 0.2 0.5 2000 93.44% A

A6 0,1 0,7 1000 93.57% A

Ha 0,9 0,1 10000 79.97% Ha

Ha2 0,5 0,2 8000 82.92% Ha

Ha3 0,4 0,3 1000 84.95% Ha

Ha4 0,3 0,4 4000 84.09% Ha

Ha5 0.2 0.5 2000 80.40% Ha

Ha6 0,1 0,7 1000 88.57% Ha

Ma 0,9 0,1 10000 92.97% Ma

Ma2 0,5 0,2 8000 92.92 % Ma

Ma3 0,4 0,3 1000 92.96% Ma

Ma4 0,3 0,4 4000 93.10% Ma

Ma5 0.2 0.5 2000 93.47% Ma

Ma6 0,1 0,7 1000 93.60% Ma

Na 0,9 0,1 10000 89.97% Na

Na2 0,5 0,2 8000 89.92 % Na

Na3 0,4 0,3 1000 81.96% Na

Na4 0.3 0,4 4000 80.11% Na

Na5 0,2 0,5 2000 85.40% Na

Na6 0,1 0,7 1000 84.61% Na

Ra 0,9 0,1 10000 82.97% Ra


(37)

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


(38)

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


(39)

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


(40)

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


(41)

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


(42)

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


(43)

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


(44)

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


(45)

Tabel 4.2 Hasil Pengujian Jaringan Saraf Tiruan Backpropagation (Lanjutan)

Input Learning

Rate

Momentum Epoch Tingkat

Kecocokan

Output

Nya7 0,1 0,7 1000 80.72% Nya

Nya8 0,1 0,7 1000 80.66% Nya

Nya9 0,1 0,7 1000 80.66% Nya

Nya10 0,1 0,7 1000 80.72% Nya

Wa7 0,1 0,7 1000 80.65% Wa

Wa8 0,1 0,7 1000 94.70 % Wa

Wa9 0,1 0,7 1000 94.72 % Wa

Wa10 0,1 0,7 1000 94.64 % Wa

Ya7 0,1 0,7 1000 82.74% Ya

Ya8 0,1 0,7 1000 85.68 % Ya

Ya9 0,1 0,7 1000 82.67 % Ya

Ya10 0,1 0,7 1000 83.70 % Ya

I7 0,1 0,7 1000 85.71% I

I8 0,1 0,7 1000 80.71% I

I9 0,1 0,7 1000 80.80% I

I10 0,1 0,7 1000 82.70% I

U7 0,1 0,7 1000 83.98% U

U8 0,1 0,7 1000 82.67% U

U9 0,1 0,7 1000 82.71% U

U10 0,1 0,7 1000 82.73% U

Dari tabel 4.1 diketahui bahwa tingkat pengenalan jaringan menggunakan kombinasi metode zoning dan diagonal based feature extraction mampu mengenali tulisan tangan aksara Batak Toba dengan tingkat akurasi 86.37%. Berdasarkan hasil pengujian data pada tabel 4.2 dapat disimpulkan bahwa pengenalan jaringan menggunakan kombinasi metode zoning dan diagonal based feature extraction mampu mengenali tulisan tangan aksara Batak Toba dengan tingkat akurasi 87.19% dengan learning rate 0,1, momentum 0,7 dan epoch 1000.


(46)

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 penelitian ini hanya dilatih hingga mencapai batas error 0.42. Nilai error yang dicapai setelah pelatihan belum tentu merupakan nilai minimum.


(47)

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

Munir (2004) berpendapat bahwa citra (image) merupakan gambar pada bidang dwimatra (dua dimensi). Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber


(48)

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


(49)

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 juga memiliki nilai berupa angka digital yang merepresentasikan informasi yang diwakili oleh titik tersebut.


(50)

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.

Algoritma ini adalah algoritma untuk citra biner, dimana piksel background citra bernilai 0, dan piksel foreground (region) bernilai 1. Algoritma ini cocok digunakan untuk bentuk yang diperpanjang (elongated) dan dalam aplikasi OCR (Optical Character Recognition). Algoritma ini terdiri dari beberapa penelusuran, dimana setiap penelusurannya terdiri dari 2 langkah dasar yang diaplikasikan terhadap


(51)

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 -


(52)

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.


(53)

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) (Graupe, 2007). Jaringan saraf tiruan pertama kali didesain oleh Warren Mc-Culloh dan Walter Pitts pada tahun 1943. Mc Cullah-Pitts menemukan bahwa dengan


(54)

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


(55)

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


(56)

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


(57)

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;


(58)

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 :


(59)

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.

Dengan penskalaan maka diharapkan kemampuan belajar dari unit-unit tersembunyi dapat meningkat.


(60)

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


(61)

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 10x10 piksel. Tingkat pengenalan yang dicapai adalah 87%


(62)

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 satunya adalah meneliti tulisan tangan aksara Batak Toba menggunakan metode ekstraksi freeman chain code (Robin, 2013).


(1)

ABSTRAK

Pengenalan tulisan tangan telah lama diidentifikasikan sebagai permasalahan yang sulit dipecahkan oleh komputer karena karakteristik tulisan tangan setiap orang berbeda-beda. Pada penelitian ini, jaringan saraf tiruan backpropagation digunakan dalam mengenali tulisan tangan aksara Batak Toba melalui beberapa tahap pra proses meliputi binarization, memorization dan thinning, tahap selanjutnya adalah ekstraksi fitur menggunakan kombinasi metode zoning dan diagonal based feature extraction. Kedua metode ini sama-sama membagi data sampel menjadi NxM zona dan menghitung nilai fitur dari setiap zona tersebut. Data sampel dibagi menjadi 6x9 zona, yaitu 54 zona dengan ukuran masing-masing zona adalah 10x10 piksel. Metode

zoning menghitung jumlah piksel hitam setiap zona dan melakukan perbandingan

terhadap zona yang memiliki jumlah piksel hitam paling banyak. Metode diagonal

based feature extraction menghitung nilai rata-rata histogram diagonal setiap zona.

Selain itu juga dihitung rata-rata nilai zona setiap baris dan kolom. Berdasarkan ekstraksi fitur tersebut didapatkan 123 nilai fitur, yaitu 54 dari metode zoning dan 69 dari metode diagonal based feature extraction. Nilai fitur tersebut dijadikan masukan untuk proses klasifikasi menggunakan jaringan backpropagation. Pada penelitian ini digunakan 114 data untuk pelatihan dan 76 data untuk pengujian. Dari pengujian yang dilakukan diperoleh tingkat pengenalan menggunakan jaringan saraf tiruan

backpropagation dengan kombinasi dua metode fitur ekstraksi adalah 87,19%.

Kata kunci : jaringan saraf tiruan, backpropagation, diagonal based feature


(2)

HAND-WRITING RECOGNITION IN BATAK TOBA SCRIPT USING BACKPROPAGATION NEURAL NETWORK

ABSTRACT

Hand-writing recognition had been identified as a complicated problem to solve by computation that is because every single person has different characteristic of writing. In this research, backpropagation of neural network been used to recognize in hand-writing of Batak Toba script by certain phases of preprocessing including binarization, memorization and thinning, feature extraction to the next phase using the combination of zoning method and diagonal based feature extraction. Both of these methods worked together to devide sample data into NxM zone and compute a feature value for each zone. Sample data is divided into 6x9 zone which is amount to 54 zones with each zone has 10x10 pixel size. Zoning method computed the amount for black pixel in each zone and collated zones that have the most quantity of black pixel. On the other hand, the diagonal based feature extraction method computed an average value for diagonal histogram in each zone and also computed average value for each rows and colomns. Based on the extraction feature that had been done, we gained 123 feature values, that is 54 for the zoning method and 69 for the diagonal based feature extraction method. Those feature values became input for classification process using backpropagation network. On this research, had 114 training data and 76 testing data that been used. Based on the research that been done, we result recognition level using backpropagation neural network with a combination of two feature extractions is 87.19%.

Keywords: Neural network, Backpropagation, diagonal based feature extraction, zoning, hand-writing, Batak Toba Script.


(3)

DAFTAR ISI

Halaman

PERSETUJUAN iii

PERNYATAAN iv

PENGHARGAAN v

ABSTRAK vi

ABSTRAC vii

DAFTAR ISI viii

DAFTAR TABEL x

DAFTAR GAMBAR xii

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

BAB 2 LANDASAN TEORI 5

2.1 Aksara Batak 5

2.1.1 Ina Ni Surat 5

2.2 Citra 5

2.3 Pengolahan Citra (Image Processing) 7

2.3.1 Binarization 8

2.3.3 Normalization 8

2.3.4 Thinning 8

2.4 Ekstraksi Fitur 9

2.4.1 Zoning 10

2.4.2 Diagonal Based Feature Extraction 10

2.5 Jaringan Saraf Tiruan 11

2.5.1 Komponen Jaringan Saraf Tiruan 12

2.6 Algoritma backpropogation 12

2.6.1 Fungsi Aktivasi 16

2.6.1.1 Fungsi Sigmoid Biner 16

2.6.2 Inisialisasi Bobot dan Bias 17

2.6.2.1 Inisialisasi Acak 17

2.6.2.2 Inisialisasi Nguyen Widrow 17

2.6.3 Pengupdate Bobot dengan Momentum 18

2.7 Penelitian Terdahulu 19


(4)

3.1.1 Akuisisi Citra 20

3.1.2 Prapengolahan Citra 21

3.1.2.1 Pembentukan Matriks Biner (Binarization) 22

3.1.2.2 Normalization 23

3.1.2.3 Pengurusan Objek Citra (Thinning) 23

3.2 Tahap Ekstraksi Fitur 24

3.2.1 Metode Ekstraksi Zoning 25 3.2.2 Metode Ekstraksi Diagonal Based Feature Extraction 27 3.2.3 Penggabungan nilai fitur 29

3.3 Tahap Setelah Ekstraksi Fitur 29

3.3.1 Perancangan Jaringan Backpropogation 29

3.3.2 Proses Pelatihan 32

3.3.3 Proses Pengujian 32

BAB 4 IMPLEMENTASI DAN PENGUJIAN 33

4.1 Implementasi 33

4.2 Spesifikasi Perangkat Keras dan Perangkat Lunak yang Digunakan 33

4.3 Tampilan Implementasi Program 34

4.3.1 Hasil Pelatihan Jaringan Saraf Tiruan 35 4.3.2 Hasil Pengujian Jaringan Saraf Tiruan 42

BAB 5 KESIMPULAN DAN SARAN 46

5.1 Kesimpulan 46

5.2 Saran 46

DAFTAR PUSTAKA 47

LAMPIRAN A : DATA SAMPEL 49

LAMPIRAN PROGRAM 57


(5)

DAFTAR TABEL

Halaman

Tabel 2.1 Huruf-huruf ina ni surat dan variannya 6

Tabel 2.2 Ekstraksi fitur pada representasi citra yang berbeda 9

Tabel 2.3 Penelitian Terdahulu 19

Tabel 3.1 Nilai keluaran dan target keluaran jaringan 30 Tabel 4.1 Hasil Pelatihan Jaringan Saraf Tiruan Backpropagation 36 Tabel 4.2 Hasil Pengujian Jaringan Saraf Tiruan Backpropagation 42


(6)

DAFTAR GAMBAR

Halaman Gambar 2.1 Huruf-huruf Ina ni surat (Font tradisional) 6

Gambar 2.4 Pembagian zona pada citra biner 10

Gambar 2.5 Karakter ukuran 60x90 piksel 11

Gambar 2.6 Pembagian zona ekstraksi fitur 11

Gambar 2.7 Diagonal histogram setiap zona 11

Gambar 2.8 Jaringan propagasi balik dengan satu buah lapisan tersembunyi 13 Gambar 2.9 Fungsi Sigmoid Biner Dengan Rentang (0,1) 17 Gambar 3.1 skema dasar pengenalan tulisan tangan aksara Batak Toba 20

Gambar 3.2 tinta warna hitam 21

Gambar 3.3 Tahapan Prapengolahan Citra 22

Gambar 3.4 Flowchat pembentukan matriks biner 22

Gambar 3.5 Citra hasil normalisasi 23

Gambar 3.6 Citra hasil thinning 23

Gambar 3.7 Matrik penyimpanan nilai fitur 24

Gambar 3.8 Pembagian zona menjadi 6 kolom dan 9 baris 24

Gambar 3.9 Diagram ekstraksi fitur 25

Gambar 3.10 Flowchart ekstraksi fitur zoning 26

Gambar 3.11 Histogram diagonal zona 27

Gambar 3.12 Flowchart ekstraksi diagonal based feature extraction 28

Gambar 3.13 Matrik penyimpanan nilai fitur 29

Gambar 3.14 Arsitektur jaringan saraf tiruan 31

Gambar 4.1. Input citra pengujian 34

Gambar 4.2. Proses pencocokan gambar 34

Gambar 4.3. Hasil pencocokan ukuran gambar 35