• Tidak ada hasil yang ditemukan

Pengenalan Pola Huruf 't' Dari Tulisan Tangan Untuk Menentukan Karakter Seseorang Dengan Menggunakan Principal Component Analysis dan Algoritma Backpropagation.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengenalan Pola Huruf 't' Dari Tulisan Tangan Untuk Menentukan Karakter Seseorang Dengan Menggunakan Principal Component Analysis dan Algoritma Backpropagation."

Copied!
66
0
0

Teks penuh

(1)

i

Universitas Kristen Maranatha

PENGENALAN POLA HURUF ‘t’ DARI TULISAN TANGAN

UNTUK MENENTUKAN KARAKTER SESEORANG

DENGAN MENGGUNAKAN PRINCIPAL COMPONENT ANALYSIS

DAN ALGORITMA BACKPROPAGATION

ABSTRAK

Michael Parlindungan (0722017)

Jurusan Teknik Elektro Universitas Kristen Maranatha

email : mikethepioneer@gmail.com

Manusia memiliki karakter yang sangat bervariasi dan unik satu sama

lainnya. Ilmu Psikologi banyak membahas mengenai pengenalan karakter

seseorang ini, banyak teknik yang dapat digunakan untuk mengenali karakter

seseorang salah satunya dengan analisis tulisan tangan (grafologi). Grafologi

adalah metode yang mengorelasikan pola-pola tulisan tangan dengan karakter

seseorang. Tulisan tangan digunakan karena tulisan tangan itu bersifat unik sama

seperti sidik jari seseorang. Tidak ada tulisan tangan yang sama antara satu orang

dengan orang lain.

Pada Tugas Akhir ini dirancang untuk mengenali pola huruf ‘t’ tulisan

tangan manusia melalui perangkat lunak menggunakan Principal Component

Analysis dan Algoritma Backpropagation yang direalisasikan dengan

menggunakan MATLAB R2008a.

Perangkat lunak pengenalan pola huruf ‘t’ dari tulisan tangan seseorang,

berhasil mengenali 100% data yang telah dilatihkan dan 73.33% untuk data yang

belum pernah dilatihkan, yang diperoleh dari 30 responden.

Kata Kunci : Grafologi, Principal Component Analysis, Algoritma

Backpropagation, Pengenalan Pola Huruf ‘t’ Tulisan

(2)

ii

Universitas Kristen Maranatha

HANDWRITING LETTER ‘t’ PATTERN RECOGNITION

TO DETERMINE HUMAN CHARACTER

USING PRINCIPAL COMPONENT ANALYSIS

AND BACKPROPAGATION ALGORITHM

ABSTRACT

Michael Parlindungan (0722017)

Jurusan Teknik Elektro Universitas Kristen Maranatha

email : mikethepioneer@gmail.com

Human have variance character and unique one and another else.

Psycology science discuss many of the human character recognition, many

technique can use to recognize human character, one of tem is handwriting

recognition(graphology). Graphology is method to correlate handwriting patterns

with person’s character. Handwriting used because it is unique same like person’s

fingerprint. None handwriting same one and another peson.

This final project is designed to recognition letter ‘t’ pattern from human

handwriting with software using Principal Component Analysis and

Backpropagation Algorithm, realized using MATLAB R2008a.

Software recognition letter ‘t’ pattern from human handwriting success to

recognition 100% trained data and 73.33% for data never trained before, it got

from 30 responden.

(3)

vi

Universitas Kristen Maranatha

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... vi

DAFTAR TABEL ... viii

DAFTAR GAMBAR ... ix

DAFTAR LAMPIRAN ... x

BAB I

PENDAHULUAN... 1

I .1 Latar Belakang Masalah ... 1

I.2 Identifikasi Masalah ... 1

I.3 Tujuan Tugas Akhir ... 1

I.4 Batasan-batasan masalah ... 1

I.5 Sistematika Penulisan ... 2

BAB II

DASAR TEORI ... 3

II.1. Citra Dijital ... 3

II.2 Praproses Citra... 3

II.3 Ekstraksi Ciri ... 5

II.3.1 Matriks Kovarian ... 5

II.3.2 Nilai Eigen dan Vektor Eigen... 5

II.3.3 Principal Component Analysis (PCA)... 6

II.4 Jaringan Saraf Tiruan ... 8

(4)

vii

Universitas Kristen Maranatha

II.4.2 Algorima Jaringan Saraf Tiruan ... 11

II.4.3 Fungsi Aktivasi ... 11

II.5 Grafologi... 19

BAB III

PERANCANGAN PERANGKAT LUNAK ... 22

III.1 Arsitektur Perancangan JST ... 22

III.2 Diagram Alir ... 24

III.3 Perancangan Antarmuka Pemakai (User Interface) ... 31

III.4 Tampilan Perangkat Lunak Pengguna ... 33

BAB IV

SIMULASI DAN ANALISA ... 35

IV.1 Simulasi 1... 35

IV.2 Simulasi 2... 41

IV.3 Analisa ... 46

BAB V

KESIMPULAN DAN SARAN ... 47

V.1 Kesimpulan... 47

V.2 Saran ... 47

DAFTAR PUSTAKA

LAMPIRAN A

LAMPIRAN B

LAMPIRAN C

(5)

viii

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 3.1 Atribut Rancangan Perangkat Lunak ... 32

Tabel 3.2 Penjelasan Rancangan Perangkat Lunak... 34

Tabel 4.1 Tabel Hasil Pengujian Data Latih Ukuran 10 x 10 piksel... 36

Tabel 4.2 Tabel Hasil Pengujian Data Uji Ukuran 10 x 10 piksel ... 37

Tabel 4.3 Tabel Data Latih ukuran 20 x 20 piksel yang Diujikan ... 39

Tabel 4.4 Tabel Hasil Pengujian Data Uji Ukuran 20 x 20 piksel ... 40

Tabel 4.5 Hasil Pengujian Huruf ‘t’ Responden Latief... 41

Tabel 4.6 Hasil Pengujian Huruf ‘t’ Responden Novitasari ... 43

(6)

ix

Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar 2.1 Citra huruf ‘t’ setelah binerisasi ... 4

Gambar 2.2 Struktur Neuron Jaringan Saraf ... 9

Gambar 2.3 Jaringan Lapisan Tunggal ... 10

Gambar 2.4 Jaringan Lapisan Jamak ... 10

Gambar 2.5 Fungsi Tangga Biner ... 12

Gambar 2.6 Fungsi Threshold ... 12

Gambar 2.7 Fungsi linear ... 13

Gambar 2.8 Fungsi Sigmoid Biner... 13

Gambar 2.9 Fungsi Sigmoid Bipolar ... 14

Gambar 3.1 Diagram Blok Sistem ... 23

Gambar 3.2 Arsitektur Backpropagation ... 23

Gambar 3.3 Diagram Alir Utama Pelatihan ... 24

Gambar 3.4 Diagram Alir Utama Pengujian Simulasi 1 ... 25

Gambar 3.5 Diagram Alir Utama Pengujian Simulasi 2 ... 26

Gambar 3.6 Diagram Alir Praproses ... 27

Gambar 3.8 Cropping 2... 28

Gambar 3.9 Cropping 3... 28

Gambar 3.7 Cropping 1... 28

Gambar 3.10 Diagram Alir PCA ... 29

Gambar 3.11 Rancangan Tampilan Perangkat Lunak... 31

Gambar 3.12 Tampilan Perangkat Lunak ... 33

Gambar 4.1 Grafik Error Terhadap Jumlah Pelatihan Data Ukuran 10 x 10 piksel

... 36

Gambar 4.2 Grafik Error Terhadap Jumlah Pelatihan Data Ukuran 20 x 20 piksel

... 38

(7)

x

Universitas Kristen Maranatha

DAFTAR LAMPIRAN

LAMPIRAN A

Program MATLAB

LAMPIRAN B

Data Simulasi 1

LAMPIRAN C

Data Simulasi 2

(8)

LAMPIRAN A

(9)

A-1

LAMPIRAN A

%% Praproses %% cropping

baca= imread('data1.jpg');

figure('name','Baca Image');

a=imshow(baca);

b=im2bw(baca,graythresh(baca)); b=~b;

[baris kolom] = size(b);

for kolom1=1:kolom

for baris1=1:baris

if b(baris1,kolom1)==1

batas_kanan=kolom1;

end

end

end

for kolom2=kolom:-1:1

for baris2=1:baris

if b(baris2,kolom2)==1

batas_kiri=kolom2;

end

end

end

for baris3=1:baris

for kolom3=1:kolom

if b(baris3,kolom3)==1

batas_bawah=baris3;

end

end

end

for baris4=baris:-1:1

for kolom4=1:kolom

if b(baris4,kolom4)==1

batas_atas=baris4; end end end height=((batas_bawah-batas_atas)); width=((batas_kanan-batas_kiri));

x= imcrop(b,[batas_kiri batas_atas width height]);

figure,imshow (x), title ('Citra keseluruhan setelah proses

Crop');

%baris 1

(10)

A-2

y4=imcrop(x,[1365 13 47 62]);

%baris 2

y5=imcrop(x,[774 85 47 62]); y6=imcrop(x,[1010 84 47 62]); y7=imcrop(x,[1130 84 47 62]); y8=imcrop(x,[1306 83 47 62]);

%baris 3

y9=imcrop(x,[657 160 47 62]); y10=imcrop(x,[774 159 47 62]);

%baris 4

y11=imcrop(x,[835 233 47 62]); y12=imcrop(x,[1129 232 47 62]);

%baris 5

y13=imcrop(x,[9 311 47 62]); y14=imcrop(x,[362 309 47 62]); y15=imcrop(x,[538 308 47 62]); y16=imcrop(x,[657 308 47 62]); y17=imcrop(x,[1898 304 47 62]);

%baris 6

y18=imcrop(x,[186 385 47 62]); y19=imcrop(x,[362 383 47 62]); y20=imcrop(x,[1484 379 47 62]); y21=imcrop(x,[1602 379 47 62]);

%baris 7

y22=imcrop(x,[600 456 47 62]); y23=imcrop(x,[835 456 47 62]);

%baris 8

y24=imcrop(x,[245 532 47 62]); y25=imcrop(x,[599 530 47 62]); y26=imcrop(x,[1484 527 47 62]); y27=imcrop(x,[1602 526 47 62]);

%baris 9

y28=imcrop(x,[953 604 47 62]); y29=imcrop(x,[1308 603 47 62]);

% baris 10

y30=imcrop(x,[541 680 47 62]); y31=imcrop(x,[776 679 47 62]); y32=imcrop(x,[1367 676 47 62]);

%baris 11

(11)

A-3

%baris 12

y36=imcrop(x,[1072 827 47 62]);

%baris 1

[baris kolom] = size(y1); % crop t1

for kolom1=1:kolom

for baris1=1:baris

if y1(baris1,kolom1)==1

batas_kanan=kolom1;

end

end

end

for kolom2=kolom:-1:1

for baris2=1:baris

if y1(baris2,kolom2)==1

batas_kiri=kolom2;

end

end

end

for baris3=1:baris

for kolom3=1:kolom

if y1(baris3,kolom3)==1

batas_bawah=baris3;

end

end

end

for baris4=baris:-1:1

for kolom4=1:kolom

if y1(baris4,kolom4)==1

batas_atas=baris4; end end end height=((batas_bawah-batas_atas)); width=((batas_kanan-batas_kiri));

x1= imcrop(y1,[batas_kiri batas_atas width height]);

figure,imshow (x1), title ('Citra t1 crop final');

imwrite(x1,'x1.jpg','jpg')

. . . . .

Proses diulang sampai 36 .

. . .

[baris kolom] = size(y36); % crop t36

for kolom1=1:kolom

for baris1=1:baris

(12)

A-4

batas_kanan=kolom1;

end

end

end

for kolom2=kolom:-1:1

for baris2=1:baris

if y36(baris2,kolom2)==1

batas_kiri=kolom2;

end

end

end

for baris3=1:baris

for kolom3=1:kolom

if y36(baris3,kolom3)==1

batas_bawah=baris3;

end

end

end

for baris4=baris:-1:1

for kolom4=1:kolom

if y36(baris4,kolom4)==1

batas_atas=baris4; end end end height=((batas_bawah-batas_atas)); width=((batas_kanan-batas_kiri));

x36= imcrop(y36,[batas_kiri batas_atas width height]);

figure,imshow (x36), title ('Citra t36 crop final');

imwrite(x36,'x36.jpg','jpg')

save 2data1.mat x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15

x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 x35 x36

%% Resize

%% untuk ukuran 10 x 10

load 2data1.mat x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15

x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 x35 x36

(13)

A-5

s12=imresize(x12,[10 10]); s13=imresize(x13,[10 10]); s14=imresize(x14,[10 10]); s15=imresize(x1,[10 10]); s16=imresize(x16,[10 10]); s17=imresize(x17,[10 10]); s18=imresize(x1,[10 10]); s19=imresize(x19,[10 10]); s20=imresize(x20,[10 10]); s21=imresize(x21,[10 10]); s22=imresize(x22,[10 10]); s23=imresize(x23,[10 10]); s24=imresize(x24,[10 10]); s25=imresize(x25,[10 10]); s26=imresize(x26,[10 10]); s27=imresize(x27,[10 10]); s28=imresize(x28,[10 10]); s29=imresize(x2,[10 10]); s30=imresize(x30,[10 10]); s31=imresize(x31,[10 10]); s32=imresize(x32,[10 10]); s33=imresize(x33,[10 10]); s34=imresize(x34,[10 10]); s35=imresize(x35,[10 10]); s36=imresize(x36,[10 10]);

save 8original1.mat s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13

s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36

%% untuk ukuran 20 x 20

load 2data1.mat x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15

x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 x35 x36

(14)

A-6

s20=imresize(x20,[20 20]); s21=imresize(x21,[20 20]); s22=imresize(x22,[20 20]); s23=imresize(x23,[20 20]); s24=imresize(x24,[20 20]); s25=imresize(x25,[20 20]); s26=imresize(x26,[20 20]); s27=imresize(x27,[20 20]); s28=imresize(x28,[20 20]); s29=imresize(x2,[20 20]); s30=imresize(x30,[20 20]); s31=imresize(x31,[20 20]); s32=imresize(x32,[20 20]); s33=imresize(x33,[20 20]); s34=imresize(x34,[20 20]); s35=imresize(x35,[20 20]); s36=imresize(x36,[20 20]);

save 9original1.mat s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13

s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36

%% Reshape

load 9original1.mat s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14

s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36

(15)

A-7

p27= reshape(s27,1,[]); p28= reshape(s28,1,[]); p29= reshape(s29,1,[]); p30= reshape(s30,1,[]); p31= reshape(s31,1,[]); p32= reshape(s32,1,[]); p33= reshape(s33,1,[]); p34= reshape(s34,1,[]); p35= reshape(s35,1,[]); p36= reshape(s36,1,[]);

resu= [p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15; p16; p17; p18; p19; p20; p21; p22; p23; p24; p25; p26; p27; p28; p29; p30; p31; p32; p33; p34; p35; p36]

save ('original1.mat', 'resu')

%% PCA

load('tesujidata6.mat' ,'latih6' ,'uji6')

lat=latih6 e=36

%% data latih

Data =lat';

Av=mean(Data,2) %rata-rata citra

[H W]=size(Data) ; %mengetahui ukuran

matriks

AvData =repmat(Av,1,W); %menggandakan nilai Av

sebanyak H

DataAdjust= Data-AvData ; %menghitung zero mean

CovDataAdjust=DataAdjust*DataAdjust' ; %menghitung kovarian

[EigVector,EigValue] = eig(CovDataAdjust);

EigValue=diag(EigValue); %mengambil nilai

diagonal eigen value

[junk,index]= sort(-EigValue); %mengurutkan nilai

eigen dari yang terbesar ke yang terkecil dengan dikalikan

(16)

A-8

EigValue = EigValue(index) ; %nilai agen value yang

sudah di urutkan

EigVector=EigVector(:,index) ; %mengurutkan nilai

eigen vektor

RowFatureVector=transpose(EigVector(:,1:e)); %mengambil nilai

eigen vektor dari semua baris pada 5 kolom

RowDataAdjust=(DataAdjust); %transpose nilai zero

mean

FinalData =RowFatureVector*RowDataAdjust ; %hasil PCA

FinalDatanorm=FinalData*diag(1./(sum(FinalData.^2).^0.5));

%normalisasi hasil PCA

a= FinalDatanorm

save('teslat6.mat','a')

%%Data uji

ujii=uji6

Datauji=ujii';

DataAdjustuji= Datauji-AvData ; %menghitung zero mean

bb=RowFatureVector*DataAdjustuji; %hasil PCA

b=bb*diag(1./(sum(bb.^2).^0.5)) %normalisasi hasil PCA

save ('tesuji6.mat','b')

JST LATIH

load ('teslat6.mat','a')

tic

Data=[a' ]

[Baris Kolom]=size(Data); jmlh_data=Baris;

(17)

A-9

hidden_unit=26 output_unit=6 bobotv=(0.5-(rand(jmlh_input,hidden_unit)*(0.5-(-0.5)))); bobotV=bobotv'; bobotw=(0.5-(rand(hidden_unit,output_unit)*(0.5-(-0.5)))); biasOut=(0.5-(rand(1,output_unit)*(0.5-(-0.5)))); delbobotv=zeros(hidden_unit,jmlh_input); delbiasIn=zeros(hidden_unit,1); delbobotw=zeros(output_unit,hidden_unit); delbiasOut=zeros(output_unit,1); target=[

1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0;

(18)

A-10

0 0 1;

]; [np no]=size(target); alpha=0.2 momentumfactor=0.5 con=1; epoch=0; beta=0.7*hidden_unit^(1/jmlh_input);

for i5=1:hidden_unit

vabs(i5)=norm(bobotv(i5,:)); end

for i6=1:hidden_unit

for j6=1:jmlh_input

v(i6,j6)=beta*bobotV(i6,j6)/vabs(i6);

end

end

bobot_bias_in=(beta-rand(hidden_unit,1)*(beta-(-beta)));

%Algoritma Pelatihan Backpropagation... ______________________________________________________________

while con e=0;

for i1=1:jmlh_data

for j1=1:hidden_unit;

z_net(j1)=bobot_bias_in(j1);

for k1=1:jmlh_input

z_net(j1)=z_net(j1)+Data(i1,k1)*v(j1,k1);

end

Z(j1)=(2/(1+exp(-z_net(j1))))-1;

end

y_net = biasOut+Z*bobotw;

for l1=1:output_unit

y(l1)=1/(1+exp(-y_net(l1))); f_errork(l1)=(target(i1,l1)-y(l1))*(y(l1)*(1-(y(l1)))); end delbobotw=(alpha*f_errork'*Z)+(momentumfactor*delbobotw); delbiasOut=alpha*f_errork'; f_errorj=bobotw*f_errork'*((y)*(1-(y))');

for k3=1:hidden_unit

(19)

A-11

delbobotv(k3,i3)=(alpha*f_errorj(k3)*Data(i1,i3))+(momentumfactor* delbobotv(k3,i3)); delbiasIn=alpha*f_errorj'; end end v=v+delbobotv; bobot_bias_in=bobot_bias_in+delbiasIn'; bobotw=bobotw+delbobotw'; biasOut=biasOut+delbiasOut';

for i4=1:output_unit

e=e+(sqrt((sum(y(i4)-target(i1,i4))^2)/(np*no)));

end

end

n=str2num(get(handles.edit5,’String’));

epoch=epoch+1;

if e<0.001 || epoch==n

con=0; end xl(epoch)=epoch; yl(epoch)=e; end Data v bobot_bias_in bobotw biasOut epoch e figure,plot(xl,yl);

xlabel('Epoch');

ylabel('Error');

toc

save BP8 v bobot_bias_in bobotw biasOut

JST UJI

load BP8 v bobot_bias_in bobotw biasOut

load ('tesORI1.mat','b')

(20)

A-12

[Baris Kolom]=size(Data); jmlh_data=Baris; jmlh_input=Kolom; hidden_unit=26 output_unit=3

%Algoritma Pengujian Backpropagation... %_______________________________________________________________ jum_naik=0 jum_lurus=0 jum_turun=0 jum_td=0

for i1=1:jmlh_data

for j1=1:hidden_unit;

z_net(j1)=bobot_bias_in(j1);

for k1=1:jmlh_input

z_net(j1)=z_net(j1)+Data(i1,k1)*v(j1,k1);

end

Z(j1)=(2/(1+exp(-z_net(j1))))-1;

end

y_net = biasOut+Z*bobotw;

for l1=1:output_unit

y(l1)=1/(1+exp(-y_net(l1)));

end

i1 y

for k=1:1

for h=1:output_unit

if y(k,h)>= 0 && y(k,h)<0.5;

y(k,h)=0; q(k,h)=y(k,h); else y(k,h)=1; q(k,h)=y(k,h); end end q(1,:);

if q==[1,0,0]

h=' naik'

(21)

A-13

jum_naik=jum_naik+1;

elseif q==[0,1,0]

h=' lurus'

jum_lurus=jum_lurus+1;

elseif q==[0,0,1]

h=' turun'

jum_turun=jum_turun+1; else

h=' tidak terdefinisi'

jum_td=jum_td+1; end end q; end jum_naik jum_lurus jum_turun jum_td a=[ jum_naik jum_lurus jum_turun ]

a1=sort(a,1,'descend')

aa=a1(1,1) aaa=a1(2,1)

if aa==jum_naik

'karakter anda optimis, dinamis, dan termotivasi'

elseif aa==jum_lurus

'karakter anda tenang, dapat mengendalikan diri dalam berfikir dan bertindak'

else

'Karakter anda suka bergantung pada orang lain,mudah putus asa dan pasrah'

(22)

A-14

if aaa==jum_naik

'namun terkadang muncul karakter optimis, dinamis, dan termotivasi'

elseif aaa==jum_lurus

'namun terkadang muncul karakter tenang,dapat mengendalikan diri dalam berfikir dan bertindak'

else

'namun terkadang muncul karakter suka bergantung pada orang lain, mudah putus asa dan pasrah'

End

Program GUI

function varargout = GUI_PCA_JST(varargin)

% GUI_PCA_JST M-file for GUI_PCA_JST.fig

% GUI_PCA_JST, by itself, creates a new GUI_PCA_JST or raises the existing

% singleton*. %

% H = GUI_PCA_JST returns the handle to a new GUI_PCA_JST or the handle to

% the existing singleton*. %

% GUI_PCA_JST('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in GUI_PCA_JST.M with the given input arguments.

%

% GUI_PCA_JST('Property','Value',...) creates a new GUI_PCA_JST or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before GUI_PCA_JST_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to GUI_PCA_JST_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)". %

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help GUI_PCA_JST

% Last Modified by GUIDE v2.5 30-Jul-2013 06:49:38

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

(23)

A-15

'gui_OutputFcn', @GUI_PCA_JST_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% --- Executes just before GUI_PCA_JST is made visible.

function GUI_PCA_JST_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn. % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % varargin command line arguments to GUI_PCA_JST (see VARARGIN)

% Choose default command line output for GUI_PCA_JST

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes GUI_PCA_JST wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = GUI_PCA_JST_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles) tic

load ('teslat6.mat','a')

(24)

A-16

]; [Baris Kolom]=size(Data); jmlh_data=Baris; jmlh_input=Kolom; hidden_unit=26 output_unit=3 bobotv=(0.5-(rand(jmlh_input,hidden_unit)*(0.5-(-0.5)))); bobotV=bobotv'; bobotw=(0.5-(rand(hidden_unit,output_unit)*(0.5-(-0.5)))); biasOut=(0.5-(rand(1,output_unit)*(0.5-(-0.5)))); delbobotv=zeros(hidden_unit,jmlh_input); delbiasIn=zeros(hidden_unit,1); delbobotw=zeros(output_unit,hidden_unit); delbiasOut=zeros(output_unit,1); target=[

%% untuk 36

1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0; 1 0 0;

0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0; 0 1 0;

(25)

A-17

0 0 1;

0 0 1; 0 0 1; 0 0 1; 0 0 1; 0 0 1; 0 0 1; 0 0 1; 0 0 1; ]; [np no]=size(target); alpha=0.2 momentumfactor=0.5 con=1; epoch=0; beta=0.7*hidden_unit^(1/jmlh_input);

for i5=1:hidden_unit

vabs(i5)=norm(bobotv(i5,:)); end

for i6=1:hidden_unit

for j6=1:jmlh_input

v(i6,j6)=beta*bobotV(i6,j6)/vabs(i6);

end

end

bobot_bias_in=(beta-rand(hidden_unit,1)*(beta-(-beta)));

%Algoritma Pelatihan Backpropagation... %_______________________________________________________________

while con e=0;

for i1=1:jmlh_data

for j1=1:hidden_unit;

z_net(j1)=bobot_bias_in(j1);

for k1=1:jmlh_input

z_net(j1)=z_net(j1)+Data(i1,k1)*v(j1,k1);

end

Z(j1)=(2/(1+exp(-z_net(j1))))-1;

end

y_net = biasOut+Z*bobotw;

for l1=1:output_unit

y(l1)=1/(1+exp(-y_net(l1)));

f_errork(l1)=(target(i1,l1)-y(l1))*(y(l1)*(1-(y(l1))));

end

(26)

A-18

delbiasOut=alpha*f_errork';

f_errorj=bobotw*f_errork'*((y)*(1-(y))');

for k3=1:hidden_unit

for i3=1:jmlh_input

delbobotv(k3,i3)=(alpha*f_errorj(k3)*Data(i1,i3))+(momentumfactor* delbobotv(k3,i3)); delbiasIn=alpha*f_errorj'; end end v=v+delbobotv; bobot_bias_in=bobot_bias_in+delbiasIn'; bobotw=bobotw+delbobotw'; biasOut=biasOut+delbiasOut';

for i4=1:output_unit

e=e+(sqrt((sum(y(i4)-target(i1,i4))^2)/(np*no)));

end

end

n=str2num(get(handles.edit5,'String'));

epoch=epoch+1;

if e<0.001 || epoch==n

con=0;

end

xl(epoch)=epoch; yl(epoch)=e;

xlabel('Epoch');

ylabel('Error');

plot(epoch,e,'m.-'); title('Grafik Error Terhadap Epoch');

hold on;

grid on;

axes(handles.axes2);

set(handles.text8,'String',e);

set(handles.text9,'String',epoch);

(27)

A-19

set(handles.text14,'String',toc);

save BP10 v bobot_bias_in bobotw biasOut

% --- Executes on button press in pushbutton7.

function pushbutton7_Callback(hObject, eventdata, handles)

% load('tesujidata6.mat' ,'uji6')

load('teslat6.mat','AvData','RowFatureVector')

load ('shape.mat','resu')

ujii=resu;

Datauji=ujii';

DataAdjustuji= Datauji-AvData ;

bb=RowFatureVector*DataAdjustuji;

b=bb*diag(1./(sum(bb.^2).^0.5));

[brs klm]=size(b);

baris=num2str(brs);

sp=' x ';

dim=[baris sp];

kolom=num2str(klm);

dimensi=[dim kolom];

set(handles.text11,'String',dimensi);

save ('ProsPCA.mat','b')

% --- Executes on button press in pushbutton8.

function pushbutton8_Callback(hObject, eventdata, handles)

load BP8 v bobot_bias_in bobotw biasOut

load('ProsPCA.mat','b')

Data=[b' ];

[Baris Kolom]=size(Data); jmlh_data=Baris;

jmlh_input=Kolom;

hidden_unit=26; output_unit=3;

%Algoritma Pengujian Backpropagation... %_______________________________________________________________

(28)

A-20

jum_lurus=0;

jum_turun=0; jum_td=0;

for i1=1:jmlh_data

for j1=1:hidden_unit;

z_net(j1)=bobot_bias_in(j1);

for k1=1:jmlh_input

z_net(j1)=z_net(j1)+Data(i1,k1)*v(j1,k1);

end

Z(j1)=(2/(1+exp(-z_net(j1))))-1;

end

y_net = biasOut+Z*bobotw;

for l1=1:output_unit

y(l1)=1/(1+exp(-y_net(l1)));

end

i1; y;

for k=1:1

for h=1:output_unit

if y(k,h)>= 0 && y(k,h)<0.5;

y(k,h)=0; q(k,h)=y(k,h); else y(k,h)=1; q(k,h)=y(k,h); end end q(1,:);

if q==[1,0,0]

h=' naik';

jum_naik=jum_naik+1;

elseif q==[0,1,0]

h=' lurus';

jum_lurus=jum_lurus+1;

elseif q==[0,0,1]

h=' turun';

(29)

A-21

else

h=' tidak terdefinisi';

jum_td=jum_td+1; end end q; end jum_naik; jum_lurus; jum_turun; jum_td; a=[ jum_naik; jum_lurus; jum_turun; ]

a1=sort(a,1,'descend');

aa=a1(1,1); aaa=a1(2,1);

if aa==jum_naik

karakter1='karakter anda optimis, dinamis, dan termotivasi';

elseif aa==jum_lurus

karakter1='karakter anda tenang, dapat mengendalikan diri

dalam berfikir dan bertindak'; else

karakter1='Karakter anda suka bergantung pada orang lain,mudah

putus asa dan pasrah'; end

if aaa==jum_naik

karakter2=' namun terkadang muncul karakter optimis, dinamis,

dan termotivasi'; elseif aaa==jum_lurus

karakter2=' namun terkadang muncul karakter tenang,dapat

mengendalikan diri dalam berfikir dan bertindak'; else

karakter2=' namun terkadang muncul karakter suka bergantung

pada orang lain, mudah putus asa dan pasrah';

end

karakter=[karakter1 karakter2]

set(handles.text7,'String',karakter);

% --- Executes on button press in pushbutton9.

(30)

A-22

[FileName,PathName]=uigetfile('*.jpg','Select the JPG-file');

handles.gambar=imread(fullfile(PathName, FileName)); axes(handles.axes73);

hold on;

image(handles.gambar)

axis off

guidata(hObject,handles);

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles)

handles.bw=im2bw(handles.gambar,graythresh(handles.gambar)); handles.b=~handles.bw;

[baris kolom] = size(handles.b);

for kolom1=1:kolom

for baris1=1:baris

if handles.b(baris1,kolom1)==1

batas_kanan=kolom1;

end

end

end

for kolom2=kolom:-1:1

for baris2=1:baris

if handles.b(baris2,kolom2)==1

batas_kiri=kolom2;

end

end

end

for baris3=1:baris

for kolom3=1:kolom

if handles.b(baris3,kolom3)==1

batas_bawah=baris3;

end

end

end

for baris4=baris:-1:1

for kolom4=1:kolom

if handles.b(baris4,kolom4)==1

batas_atas=baris4; end end end height=((batas_bawah-batas_atas)); width=((batas_kanan-batas_kiri)); reset (gca)

x= imcrop(handles.b,[batas_kiri batas_atas width height]); axes(handles.axes73)

crop=imshow(x);

(31)

A-23

y1=imcrop(x,[7 15 47 62]); y2=imcrop(x,[598 13 47 62]);

y3=imcrop(x,[715 13 47 62]); y4=imcrop(x,[1365 13 47 62]);

%baris 2

y5=imcrop(x,[774 85 47 62]); y6=imcrop(x,[1010 84 47 62]); y7=imcrop(x,[1130 84 47 62]); y8=imcrop(x,[1306 83 47 62]);

%baris 3

y9=imcrop(x,[657 160 47 62]); y10=imcrop(x,[774 159 47 62]);

%baris 4

y11=imcrop(x,[835 233 47 62]); y12=imcrop(x,[1129 232 47 62]);

%baris 5

y13=imcrop(x,[9 311 47 62]); y14=imcrop(x,[362 309 47 62]); y15=imcrop(x,[538 308 47 62]);

y16=imcrop(x,[657 308 47 62]); y17=imcrop(x,[1898 304 47 62]);

%baris 6

y18=imcrop(x,[186 385 47 62]); y19=imcrop(x,[362 383 47 62]);

y20=imcrop(x,[1484 379 47 62]); y21=imcrop(x,[1602 379 47 62]);

%baris 7

y22=imcrop(x,[598 457 47 62]); y23=imcrop(x,[835 456 47 62]);

%baris 8

y24=imcrop(x,[245 532 47 62]); y25=imcrop(x,[599 530 47 62]); y26=imcrop(x,[1484 527 47 62]); y27=imcrop(x,[1602 526 47 62]);

%baris 9

y28=imcrop(x,[953 604 47 62]); y29=imcrop(x,[1308 603 47 62]);

% baris 10

(32)

A-24

%baris 11

y33=imcrop(x,[1131 752 47 62]); y34=imcrop(x,[1308 752 47 62]); y35=imcrop(x,[1426 751 47 62]);

%baris 12

y36=imcrop(x,[1072 827 47 62]);

%baris 1

[baris kolom] = size(y1); % crop t1

for kolom1=1:kolom

for baris1=1:baris

if y1(baris1,kolom1)==1

batas_kanan=kolom1;

end

end

end

for kolom2=kolom:-1:1

for baris2=1:baris

if y1(baris2,kolom2)==1

batas_kiri=kolom2;

end

end

end

for baris3=1:baris

for kolom3=1:kolom

if y1(baris3,kolom3)==1

batas_bawah=baris3;

end

end

end

for baris4=baris:-1:1

for kolom4=1:kolom

if y1(baris4,kolom4)==1

batas_atas=baris4; end end end height=((batas_bawah-batas_atas)); width=((batas_kanan-batas_kiri));

x1= imcrop(y1,[batas_kiri batas_atas width height]);

imwrite(x1,'x1.jpg','jpg');

. . .

Diulang sampai t36 .

(33)

A-25

[baris kolom] = size(y36); % crop t36

for kolom1=1:kolom

for baris1=1:baris

if y36(baris1,kolom1)==1

batas_kanan=kolom1;

end

end

end

for kolom2=kolom:-1:1

for baris2=1:baris

if y36(baris2,kolom2)==1

batas_kiri=kolom2;

end

end

end

for baris3=1:baris

for kolom3=1:kolom

if y36(baris3,kolom3)==1

batas_bawah=baris3;

end

end

end

for baris4=baris:-1:1

for kolom4=1:kolom

if y36(baris4,kolom4)==1

batas_atas=baris4; end end end height=((batas_bawah-batas_atas)); width=((batas_kanan-batas_kiri));

x36= imcrop(y36,[batas_kiri batas_atas width height]);

imwrite(x36,'x36.jpg','jpg')

(34)

A-26

s5=imresize(x5,[20 20]);

axes(handles.axes14) crop=imshow(s5);

s6=imresize(x6,[20 20]); axes(handles.axes15) crop=imshow(s6);

s7=imresize(x7,[20 20]); axes(handles.axes16) crop=imshow(s7);

s8=imresize(x8,[20 20]); axes(handles.axes17) crop=imshow(s8);

s9=imresize(x9,[20 20]); axes(handles.axes18) crop=imshow(s9);

s10=imresize(x10,[20 20]); axes(handles.axes19)

crop=imshow(s10);

s11=imresize(x11,[20 20]); axes(handles.axes20)

crop=imshow(s11);

s12=imresize(x12,[20 20]); axes(handles.axes21)

crop=imshow(s12);

s13=imresize(x13,[20 20]); axes(handles.axes22)

crop=imshow(s13);

s14=imresize(x14,[20 20]); axes(handles.axes23)

crop=imshow(s14);

s15=imresize(x15,[20 20]); axes(handles.axes24)

crop=imshow(s15);

s16=imresize(x16,[20 20]); axes(handles.axes25)

crop=imshow(s16);

s17=imresize(x17,[20 20]); axes(handles.axes26)

(35)

A-27

s18=imresize(x18,[20 20]);

axes(handles.axes27) crop=imshow(s18);

s19=imresize(x19,[20 20]); axes(handles.axes28)

crop=imshow(s19);

s20=imresize(x20,[20 20]); axes(handles.axes29)

crop=imshow(s20);

s21=imresize(x21,[20 20]); axes(handles.axes30)

crop=imshow(s21);

s22=imresize(x22,[20 20]); axes(handles.axes31)

crop=imshow(s22);

s23=imresize(x23,[20 20]); axes(handles.axes32)

crop=imshow(s23);

s24=imresize(x24,[20 20]); axes(handles.axes33)

crop=imshow(s24);

s25=imresize(x25,[20 20]); axes(handles.axes34)

crop=imshow(s25);

s26=imresize(x26,[20 20]); axes(handles.axes35)

crop=imshow(s26);

s27=imresize(x27,[20 20]); axes(handles.axes36)

crop=imshow(s27);

s28=imresize(x28,[20 20]); axes(handles.axes64)

crop=imshow(s28);

s29=imresize(x29,[20 20]); axes(handles.axes65)

crop=imshow(s29);

s30=imresize(x30,[20 20]); axes(handles.axes66)

(36)
(37)

A-29

p32= reshape(s32,1,[]); p33= reshape(s33,1,[]); p34= reshape(s34,1,[]); p35= reshape(s35,1,[]); p36= reshape(s36,1,[]);

resu= [p1; p2; p3; p4; p5; p6; p7; p8; p9; p10; p11; p12; p13; p14; p15; p16; p17; p18; p19; p20; p21; p22; p23; p24; p25; p26; p27; p28; p29; p30; p31; p32; p33; p34; p35; p36]

save ('shape.mat','resu')

axis off

axes(handles.axes73); guidata(hObject, handles);

% --- If Enable == 'on', executes on mouse press in 5 pixel border.

% --- Otherwise, executes on mouse press in 5 pixel border or over pushbutton9.

function pushbutton9_ButtonDownFcn(hObject, eventdata, handles)

figure('ButtonDownFcn',handles.gambar);

axes(handles.axes73);

% --- Executes on button press in pushbutton13.

function pushbutton13_Callback(hObject, eventdata, handles)

close all

function edit5_Callback(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a double

% --- Executes during object creation, after setting all properties.

function edit5_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

(38)
(39)

LAMPIRAN B

(40)

B-1

Data latih

‘t’ 1

‘t’ 2

‘t’ 3

‘t’ 4

‘t’ 5

‘t’ 6

‘t’ 7

‘t’ 8

‘t’ 9

‘t’ 10

‘t’ 11

‘t’ 12

‘t’ 13

‘t’ 14

‘t’ 15

‘t’ 16

‘t’ 17

‘t’ 18

‘t’ 19

‘t’ 20

‘t’ 21

‘t’ 22

‘t’ 23

‘t’ 24

‘t’ 25

‘t’ 26

‘t’ 27

‘t’ 28

‘t’ 28

‘t’ 30

(41)

B-2

Data uji

‘t’ 1

‘t’ 2

‘t’ 3

‘t’ 4

‘t’ 5

‘t’ 6

‘t’ 7

‘t’ 8

‘t’ 9

‘t’ 10

‘t’ 11

‘t’ 12

‘t’ 13

‘t’ 14

‘t’ 15

‘t’ 16

‘t’ 17

‘t’ 18

‘t’ 19

‘t’ 20

‘t’ 21

‘t’ 22

‘t’ 23

‘t’ 24

‘t’ 25

‘t’ 26

‘t’ 27

‘t’ 28

‘t’ 28

‘t’ 30

(42)

LAMPIRAN C

(43)

C-1

Responden 1

(44)

C-2

Responden 3

(45)

C-3

Responden 5

(46)

C-4

Responden 7

(47)

C-5

Responden 9

(48)

C-6

Responden 11

(49)

C-7

Responden 13

(50)

C-8

Responden 15

(51)

C-9

Responden 17

(52)

C-10

Responden 19

(53)

C-11

Responden 21

(54)

C-12

Responden 23

(55)

C-13

Responden 25

(56)

C-14

Responden 27

(57)

C-15

Responden 29

(58)

LAMPIRAN D

(59)

D-1

Data

Nama

responden

Hasil JST

Karakter

‘t’

naik

‘t’

lurus

‘t’

turun

1

Latief

6

15

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

2

Novitasari

1

11

15

Karakter anda bergantung pada orang lain,

mudah putus asa, pasrah namun terkadang

muncul karakter tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

3

Leni

9

10

1

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

4

Renol

0

31

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

5

Nelly

12

7

1

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

6

Prili

6

26

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

7

Anastasia

7

10

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

8

Viranda

2

21

1

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

9

Sesilia

11

13

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

10

Jonathan

13

12

3

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

11

Rudi

2

29

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

(60)

D-2

Data

Nama

responden

Hasil JST

Karakter

‘t’

naik

‘t’

lurus

‘t’

turun

12

Katie

9

13

5

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

13

Debora

19

7

0

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

14

Hendri

13

8

6

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

15

Ester

0

15

11

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter bergantung pada orang lain,

mudah putus asa, pasrah

16

Theresia

5

22

1

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

17

Uchi

3

5

11

Karakter anda bergantung pada orang lain,

mudah putus asa, pasrah namun terkadang

muncul karakter tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

18

Damayanti

12

10

3

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

19

Nova

3

11

3

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

20

Melinda

9

19

1

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

21

Yenti

1

32

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

(61)

D-3

Data

Nama

responden

Hasil JST

Karakter

‘t’

naik

‘t’

lurus

‘t’

turun

22

Thari

3

24

2

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

23

Teddy

3

25

2

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

24

Robert

17

10

1

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

25

Rena

1

35

0

Karakter anda tenang, dapat

mengendalikan diri dalam berpikir dan

bertindak

namun terkadang muncul

karakter optimis, dinamis, termotivasi

26

Zen

26

0

0

Karakter anda optimis, dinamis,

termotivasi

27

Natalia

15

11

2

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

28

Harry

9

7

6

Karakter anda optimis, dinamis,

termotivasi namun terkadang muncul

karakter tenang, dapat mengendalikan diri

dalam berpikir dan bertindak

29

Randa

3

1

24

Karakter anda bergantung pada orang lain,

mudah putus asa, pasrah namun terkadang

muncul karakter optimis, dinamis,

termotivasi

30

Ika

35

0

0

Karakter anda optimis, dinamis,

termotivasi

Keterangan:

V = benar,

X

= salah

untuk 't' naik

untuk 't' lurus

(62)

1

Teknik Elektro

Universitas Kristen Maranatha

BAB I

PENDAHULUAN

I .1 Latar Belakang Masalah

Manusia memiliki karakter yang sangat bervariasi dan unik satu sama

lainnya. Ilmu Psikologi masih banyak membahas mengenai pengenalan karakter

seseorang ini, banyak teknik yang dapat digunakan untuk mengenali karakter

seseorang salah satunya dengan analisis tulisan tangan (grafologi). Grafologi

adalah metode yang mengorelasikan pola-pola tulisan tangan dengan karakter

seseorang. Seiring dengan berkembangnya teknologi, ilmu grafologi di

implementasikan secara komputerisasi untuk membantu dan mempermudah

grafolog untuk mengetahui karakter seseorang. Tulisan tangan digunakan karena

tulisan tangan itu bersifat unik sama seperti sidik jari seseorang. Tidak ada tulisan

tangan yang sama antara satu orang dengan orang lain. Salah satu dari analisis

tulisan tangan adalah melalui bentuk huruf “t” yang dituliskan seseorang yang

akan dikenali kepribadiannya.

Untuk pengenalan tulisan tangan seseorang, ada banyak metode ekstraksi

ciri yang digunakan seperti Fast Fourier Transform, Feature Point Extraction,

Linear Diskriminant Analisis, Principal Component Analysis dan sebagainya.

Untuk itu pada Tugas Akhir ini, coba direalisasikan pengenalan karakter

seseorang dengan menggunakan Principal Component Analysis (PCA) dan

(63)

BAB I Pendahuluan

1

Teknik Elektro

Universitas Kristen Maranatha

I.2 Identifikasi Masalah

Pembuatan Tugas Akhir ini terdapat beberapa identifikasi masalah.

Adapun identifikasi masalah tersebut antara lain :

1.

Bagaimana merancang JST (Jaringan Saraf Tiruan) dengan menggunakan

Algoritma Backpropagation dalam matlab ?

2.

Bagaimana pengenalan pola huruf ‘t’ dengan Principal Component

Analisis dan Jaringan Saraf Tiruan dengan Algoritma Backpropagation?

3.

Bagaimana mengenali karakter seseorang dari pengenalan pola tulisan

tangan huruf ‘t’ ?

I.3 Tujuan Tugas Akhir

Tujuan dari Tugas Akhir ini adalah untuk mengimpementasikan Principal

Component

Analisis

dan Jaringan Saraf Tiruan

Algoritma

Backpropagation dalam mengenali pola huruf ‘t’ yang ditulis seseorang

dan mengenali karakter orang tersebut.

I.4 Batasan-batasan masalah

Batasan-batasan masalah dalam Tugas Akhir ini adalah :

1.

Data yang digunakan adalah tulisan huruf ‘t dari 30 responden, tiap

responden menulis 36 pola huruf ‘t’ yang terdapat pada kalimat.

2.

Pola huruf ‘t ‘ yang digunakan adalah tipe : Naik (up turned), lurus

(horizontal) dan turun (down turned).

3.

Huruf ‘t’ dibubuhkan pada template yang ditentukan.

4.

Citra huruf ‘t ‘ yang digunakan dipindai dan formatnya jpeg(file .jpg) .

5.

Ekstraksi ciri yang digunakan adalah Principal Component Analysis

(PCA) .

6.

Algoritma Jaringan Saraf Tiruan yang digunakan adalah Algoritma

Backpropagation.

(64)

BAB I Pendahuluan

2

Teknik Elektro

Universitas Kristen Maranatha

I.5 Sistematika Penulisan

Sistematika yang akan digunakan untuk menyusun laporan ini adalah

sebagai berikut :

Bab 1. Pendahuluan

Merupakan bab yang menjelaskan mengenai latar belakang masalah,

identifikasi masalah, batasan masalah, tujuan Tugas Akhir, dan

sistematika penulisan dari Tugas Akhir ini.

Bab 2. Dasar Teori

Merupakan bab yang disusun untuk memberikan penjelasan mengenai

Principal Component Analisis, Jaringan Saraf Tiruan dengan Algoritma

Backpropagation dan analisis tulisan tangan (graphologi).

Bab 3. Perancangan Perangkat Lunak

Bab ini berisi penjelasan desain yang akan dilakukan untuk membuat

software pengenalan karakter pemilik tulisan tangan dengan

menggunakan Principal Component Analisis, Jaringan Saraf Tiruan

dengan Algoritma Backpropagation .

Bab 4. Simulasi dan Analisa

Bab ini berisi hasil yang diperoleh dari simulasi dan analisa data yang

diperoleh melalui Tugas Akhir ini.

Bab 5. Kesimpulan dan Saran

Berisi kesimpulan dan saran yang dapat diambil untuk melakukan

(65)

47

Teknik Elektro

Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Pada bab ini dapat disimpulkan dari hasil Tugas Akhir ini dan saran-saran

untuk perbaikan penelitian selanjutnya

V.1 Kesimpulan

1.

Pengenalan pola huruf ‘t’ dan pengenalan karakter berdasarkan pola huruf

‘t’ berhasil diimplementasikan dengan Principal Component Analysis dan

Algoritma Backpropagation.

2.

Pada simulasi 1 data uji ukuran citra 20 x 20 piksel mampu dikenali lebih

baik dibandingkan dengan ukuran citra 10 x 10 piksel, karena semakin

besar citra maka akan lebih baik pengenalannya.

3.

Pada pengujian simulasi 2 pengenalan pola huruf ‘t’ dari tulisan tangan,

dari 30 data uji berhasil dikenali sebesar 73.33%.

V.2 Saran

1.

Penggunaan ekstraksi ciri yang lebih baik sangat disarankan agar pola

yang tidak dikenali dapat dikenali.

2.

Pengenalan pola dapat dilakukan dengan metoda yang lain, misalnya

memakai Euclidian Distance.

3.

Data yang digunakan sebaiknya tidak menggunakan template agar tidak

berbenturan dengan ketentuan grafologi. Penambahan pengenalan tulisan

tangan berdasarkan pola huruf lain, pola garis dasar, spasi antar kata,

kemiringan tulisan sangat dianjurkan untuk menambah pengenalan

(66)

Universitas Kristen Maranatha

DAFTAR PUSTAKA

[1]

AnandaKumar, K R and H, Champa . Artificial Neural Network for

Human Behavior Prediction through Handwriting Analysis, International

Journal of Computer Applications, Volume 2 – No.2, May 2010.

[2]

Fausett, Laurene. Fundamentals of Neural Networks. Prentice Hall. 1994.

[

3]

Gonzalez, Rafael C, Richard E. Woods and Steven L. Eddins. Digital

Image Processing Using MATLAB. New Jersey: Pearson Prentice-Hall.

2004.

[4]

Jolliffe, I T. Principal Componen Analisis. New York:Springer. 2002.

[5]

Kusumaningtyas, Entin Martiana,S.Kom. Diktat Kuliah, Bab 8 Jaringan

Syaraf Tiruan. Surabaya. 2010.

[6]

Leon, Steven J. Aljabar Linier dan Aplikasinya. Jakarta:Erlangga. 2001.

[7]

Ludvianto,Bayu. Analisis Tulisan Tangan :Grapho for Success. Jakarta:

Gramedia Pustaka Utama. 2011.

[8]

Mutalib,Sofianita. Personality Analysis Based On Letter ‘t’ Using Back

Propagation Neural Network, Proceedings of the International

Conference on Electrical Engineering and Informatics Institut Teknologi

Bandung, Indonesia. June. 2007

[9]

Purnomo, Mauridhi Heri dan Muntasa, Arif. Konsep Pengolahan Citra

Digital dan Ekstraksi Fitur. Surabaya: Graha Ilmu. 2010.

[10]

Siang, Jong Jek. Jaringan Syaraf Tiruan & Pemrogramannya

Menggunakan Matlab. Yogyakarta: Andi. 2004.

[11]

Soemantoro,Achsinfina H. Mengenal Potensi Anak Melalui Tulisan

Gambar

figure('name','Baca Image'a=imshow(baca); b=im2bw(baca,graythresh(baca));

Referensi

Dokumen terkait

Metode penelitian yang digunakan adalah metode survey dan observasi ke lokasi penelitian dengan bantuan kuisioner, menggunakan data primer dan sekunder serta penilaian (skor)

Kepailitan adalah sebagai pranata hukum untuk melakukan pendistribusian aset Debitur terhadap semua Kreditornya, sehingga akan menghindari perebutan harta Debitur oleh

Dengan adanya perbedaan hasil tersebut, maka tujuan dilakukannya penelitian ini adalah menguji kembali faktor yang berpengaruh terhadap manajemen laba pada variabel

Mata Pelajaran Nilai Rata-rata Rapor1. Nilai

dipengaruhi oleh nilai parameter kestabilan (ksd).Nilai Ksd ini digunakan untuk mencari nilai Reduction Factor Damping (Rk) yang juga mempengarugi nilai dari umur

Hasil penelitian menunjukkan bahwa barotrauma telinga atau perforasi membran timpani banyak terjadi pada nelayan penyelam dengan waktu istirahat di permukaan &lt; 10

Hasibuan, Zainal A, 2007, Metode Penelitian Pa da Bidang Ilmu Komputer Dan Teknologi Informasi : Konsep, Teknik Dan Aplikasi , Jakarta : Fakultas Ilmu Komputer

Semoga Allah SWT selalu melimpahkan rahmat, hidayah, usia yang barokah,.. khusnul khatimah, pertolongan, serta jannah -Nya pada Ibu