Pengenalan Tulisan Tangan Aksara Batak Toba Menggunakan Jaringan Saraf Tiruan Backpropagation
49
LAMPIRAN A : DATA SAMPEL
1.
Data latihan
Pola
Citra
0
Pola
Citra
1
A1
4
A2
A5
12
Ma
16
20
Ma3
Ma6
Ma4
19
Na
22
Na4
Ha6
15
18
21
Na3
11
14
17
Ha2
Ha5
Ma2
Ma5
7
10
13
A4
Ha
Ha4
Citra
3
6
9
Pola
A3
A6
Ha3
Citra
2
5
8
Pola
Na2
23
Na5
Na6
Universitas Sumatera Utara
50
24
25
Ra
28
26
Ra2
29
Ra5
32
30
33
36
48
Sa4
43
Da
Da2
46
Da4
49
Ga
39
42
45
47
Da5
50
Ga2
Ta6
Sa3
Sa6
Da3
35
Ta5
Sa2
Sa5
Ta2
38
41
44
Ta
Ta4
Sa
Ra4
31
34
37
40
Ra3
Ra6
Ta3
27
Da6
51
Ga3
Ga4
Universitas Sumatera Utara
51
52
53
Ga5
56
Ga6
57
Ja3
Ja4
Ba
64
Nga
Nga4
Nga2
71
Nga5
74
La2
Ba4
67
70
73
La
Ba3
Ba6
Nga3
Ja6
63
66
69
72
Ja5
Ba2
Ba5
Ja2
59
62
65
68
Ja
58
61
60
55
54
Nga6
75
La3
La4
Universitas Sumatera Utara
52
76
77
78
La5
80
La6
81
Nya3
90
Nya5
Wa3
wa
94
Wa4
96
Wa2
95
Wa5
97
Ya
Nya4
91
Nya6
93
Pa6
87
Nya2
89
92
Pa5
86
Nya
Pa2
83
Pa4
85
88
Pa
82
Pa3
84
79
Wa6
98
Ya2
99
Ya3
Ya4
Universitas Sumatera Utara
53
101
100
Ya5
102
Ya6
105
104
I3
I
104
I4
109
108
U
103
105
I5
110
U2
I2
I6
111
U3
U4
113
112
U5
U6
Universitas Sumatera Utara
54
2.
Data uji
Pola
Citra
0
Pola
Citra
1
A7
4
A8
H7
12
Na7
16
20
Na9
Ra8
Na10
19
Ra9
22
Ta8
Ma10
15
18
21
Ta7
11
14
17
Ha10
Ma9
Na8
Ra7
7
10
13
A10
Ha9
Ma8
Citra
3
6
9
Pola
A9
Ha8
Ma7
Citra
2
5
8
Pola
Ra10
23
Ta9
Ta10
Universitas Sumatera Utara
55
24
25
Sa7
26
Sa8
27
Sa9
Sa10
29
28
30
Da7
32
Da8
33
Ga7
36
34
37
40
Ja9
Ba8
Ja10
43
Ba9
46
Nga8
Ga10
39
42
45
Nga7
Ga9
Ja8
Ba7
Da10
35
38
41
44
Da9
Ga8
Ja7
31
Ba10
47
Nga9
Nga10
Universitas Sumatera Utara
56
48
49
La7
52
50
La8
53
Pa7
56
54
57
60
Ya9
I8
Ya10
71
I9
74
U8
Wa10
67
70
73
U7
Wa9
Ya8
I7
Nya10
63
66
69
72
Nya9
Wa8
Ya7
Pa10
59
62
65
68
Pa9
Nya8
Wa7
La10
55
58
61
64
La9
Pa8
Nya7
51
I10
75
U9
U10
Universitas Sumatera Utara
57
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();
Universitas Sumatera Utara
58
// 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];
Universitas Sumatera Utara
59
int [][] matriksbanding2 = new int [width][height];
//int [][] zoning2 = new int [width][height];
for (int i = 0; i < width; i++) {
for (int j = 0; j
LAMPIRAN A : DATA SAMPEL
1.
Data latihan
Pola
Citra
0
Pola
Citra
1
A1
4
A2
A5
12
Ma
16
20
Ma3
Ma6
Ma4
19
Na
22
Na4
Ha6
15
18
21
Na3
11
14
17
Ha2
Ha5
Ma2
Ma5
7
10
13
A4
Ha
Ha4
Citra
3
6
9
Pola
A3
A6
Ha3
Citra
2
5
8
Pola
Na2
23
Na5
Na6
Universitas Sumatera Utara
50
24
25
Ra
28
26
Ra2
29
Ra5
32
30
33
36
48
Sa4
43
Da
Da2
46
Da4
49
Ga
39
42
45
47
Da5
50
Ga2
Ta6
Sa3
Sa6
Da3
35
Ta5
Sa2
Sa5
Ta2
38
41
44
Ta
Ta4
Sa
Ra4
31
34
37
40
Ra3
Ra6
Ta3
27
Da6
51
Ga3
Ga4
Universitas Sumatera Utara
51
52
53
Ga5
56
Ga6
57
Ja3
Ja4
Ba
64
Nga
Nga4
Nga2
71
Nga5
74
La2
Ba4
67
70
73
La
Ba3
Ba6
Nga3
Ja6
63
66
69
72
Ja5
Ba2
Ba5
Ja2
59
62
65
68
Ja
58
61
60
55
54
Nga6
75
La3
La4
Universitas Sumatera Utara
52
76
77
78
La5
80
La6
81
Nya3
90
Nya5
Wa3
wa
94
Wa4
96
Wa2
95
Wa5
97
Ya
Nya4
91
Nya6
93
Pa6
87
Nya2
89
92
Pa5
86
Nya
Pa2
83
Pa4
85
88
Pa
82
Pa3
84
79
Wa6
98
Ya2
99
Ya3
Ya4
Universitas Sumatera Utara
53
101
100
Ya5
102
Ya6
105
104
I3
I
104
I4
109
108
U
103
105
I5
110
U2
I2
I6
111
U3
U4
113
112
U5
U6
Universitas Sumatera Utara
54
2.
Data uji
Pola
Citra
0
Pola
Citra
1
A7
4
A8
H7
12
Na7
16
20
Na9
Ra8
Na10
19
Ra9
22
Ta8
Ma10
15
18
21
Ta7
11
14
17
Ha10
Ma9
Na8
Ra7
7
10
13
A10
Ha9
Ma8
Citra
3
6
9
Pola
A9
Ha8
Ma7
Citra
2
5
8
Pola
Ra10
23
Ta9
Ta10
Universitas Sumatera Utara
55
24
25
Sa7
26
Sa8
27
Sa9
Sa10
29
28
30
Da7
32
Da8
33
Ga7
36
34
37
40
Ja9
Ba8
Ja10
43
Ba9
46
Nga8
Ga10
39
42
45
Nga7
Ga9
Ja8
Ba7
Da10
35
38
41
44
Da9
Ga8
Ja7
31
Ba10
47
Nga9
Nga10
Universitas Sumatera Utara
56
48
49
La7
52
50
La8
53
Pa7
56
54
57
60
Ya9
I8
Ya10
71
I9
74
U8
Wa10
67
70
73
U7
Wa9
Ya8
I7
Nya10
63
66
69
72
Nya9
Wa8
Ya7
Pa10
59
62
65
68
Pa9
Nya8
Wa7
La10
55
58
61
64
La9
Pa8
Nya7
51
I10
75
U9
U10
Universitas Sumatera Utara
57
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();
Universitas Sumatera Utara
58
// 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];
Universitas Sumatera Utara
59
int [][] matriksbanding2 = new int [width][height];
//int [][] zoning2 = new int [width][height];
for (int i = 0; i < width; i++) {
for (int j = 0; j