Disusun oleh :
UNIVERSITAS SEMARANG
2020/2021
1
I. Tujuan
-Mengetahui Aplikasi jaringan syaraf tiruan untuk mengklasifikasi bentuk suatu
objek dalam citra digital dengan metode Neural Network.
-Mengetahui cara membuat source code Aplikasi Jaringan Syaraf Tiruan Untuk suatu
objek dalam citra digital dengan Metode Neural Network.
2
2.2. Jaringan syaraf tiruan
Jaringan syaraf tiruan telah menjadi suatu teknik atau pendekatan yang
sangat popular saat ini untuk aplikasi ekstrasi fitur seperti face-detection. Jaringan
syaraf tirun terdiri dari stadium-stadium yang terdiri dari perceptron-perceptron
multilapis (multilayer perceptrons). Untuk meningkatkan kompleksitas biasanya
jaringan syaraf tiruan didukung oleh teknik-teknik yang lain. (Fadlisyah, 2007)
Jaringan syaraf tiruan (JST) adalah system pemroses informasi yang memiliki
karasteristik mirip dengan jaringan syaraf biologi. JST dibentuk generalisasi model
matematika dari jaringan syaraf biologi, dengan asumsi bahwa:
Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron)
Sinyal dikirimkan diantara neuron-neuron melalui penghubungan penghubungan.
Penghubungan antar neuron memiliki bobot yang akan memperkuat atau
memperlemah sinyal.
Untuk menentukan output setiap neuron menggunakan fungsi aktifasi (biasanya
bukan fungsi linier) yang di kenakan pada jumlahan input yang diterima.
Besarnya output ini selanjutnya dibandingjan dengan suatu batas ambang. (Siang,
2005) Jaringan syaraf tiruan di tentukan oleh 3 hal : Pola hubungan antar neuron
(disebut arsitektur jaringan) Metode untuk menentukan bobot perhubung
(disebutmetode training/learning/algoritma) Fungsi aktifasi yaitu fungsi yang di
gunakan untuk menentukan keluaran suatu neuron. Jaringan syaraf tiruan bekerja
terinspirasi oleh sistem jaringan syaraf biologis manusia. Jaringan tersebut terdiri
atas beberapa elemen yang bekerja secara pararel. Fungsi jaringan sangat tergantung
pada hubungan antar elemenelemen. Jaringan dapat dilatih untuk menampilkan
fungsi tertentu dengan memasukkan nilai (bobot) pada setiap koneksi diantara
elemen-elemen. Biasanya jaringan syaraf diatur atau dilatih agar input yang diberikan
menghasilkan output 13 yang sesuai target. Jaringan syaraf akan terus diatur atau
dilatih sampai output sesuai dengan target. Beberapa algoritma Jaringan Syaraf
Tiruan antara lain :
3
Algoritma Kohonen
Algoritma Fractal
Algoritma Learning Vektor Quantization
Algoritma Cyclic
Algoritma Alternating Projection
Algoritma Hammimg
Algoritma Feedforwad Banyak Lapis.
JST didefinisikan sebagai suatu sistem pemrosesan informasi yang memunyai
karakteristik memyerupai jaringan saraf manusia. JST tercipta sebagai suatu
generelasi model matematis dari pemahaman manusia (human cognition) yang
didasarkan atas asumsi sebagai berikut:
Pemrosesan informasi terjadi pada elemen sederhana yang disebut neuron.
Isyarat pengalir diantara sel saraf/neuron melalui suatu sambungan penghubung.
Setiap sambungan penghubung memiliki bobot yang bersesuaian. Bobot ini akan
digunakan untuk menggandakan/mengalikan isyarat yang dikirim melaluinya.
Setiap sel saraf akan menerapkan fungsi aktivitas terhadap isyarat hasil penjumlahan
berbobot yang masuk kepadanya untuk menentukan isyarat keluaranya (Hermawan,
2006).
4
menerima input dari dunia luar. Input yang dimasukkan merupakan penggambaran
suatu masalah. Lapisan input merupakan lapisan yang terdiri dari beberapa neuron
yang akan menerima sinyal dari luar dan kemudian meneruskan ke neuron-neuron
lain dalam jaringan. Lapisan ini dillhami berdasarkan ciri-ciri dan cara kerja sel-sel
saraf sensori pada jaringan saraf biologi.
2. Lapisan tersembunyi Jaringan didalam lapisan tersembunyi disebut unit-unit
tersembunyi. Output dari lapisan ini tidak dapat diamati secara langsung. Lapisan
tersembunyi merupakan tiruan dari sel-sel syaraf konektor pada jaringan saraf bilogis.
Lapisan tersembunyi berfungsi meningkatkan kemampuan jaringan dalam
memecahkan masalah. Konsekuensi dari adanya lapisan ini adalah pelatihan menjadi
makin sulit atau lama. 3. Lapisan output Keluaran atau output dari lapisan ini
merupakan output jaringan syaraf tiruan terhadap suatu permasalahan. Lapisan
keluaran berfungsi menyalurkan sinyal-sinyal keluaran hasil pemrosesan jaringan.
Lapisan ini juga terdiri dari sejumlah neuron. Lapisan keluaran merupakan tiruan dari
sel saraf motor pada jaringan saraf biologis.
2.4 flowchart
mulai
Proses input
Ekstrasi jenis
Klasifikasi
jenis
hasil
5
III. ALAT DAN BAHAN
Alat yang diganakan pada percobaan kali ini diantaranya:
-Laptop
-Software MATLAB R2018a
-Gambar citra 4 kelas spesies yaitu Bougainvillea sp, Geranium sp, Magnolia
soulangeana, dan Pinus sp.
A. Data latih
a. Citra latih berjumlah 24 citra yang terdiri dari 6 citra pada masing-masing kelas
6
Source code proses pelatihan jaringan adalah sebagai berikut:
1 clc;clear;close all;
2
3 image_folder = 'Citra Latih';
4 filenames = dir(fullfile(image_folder, '*.jpg'));
5 total_images = numel(filenames);
6
7 for n = 1:total_images
8 full_name= fullfile(image_folder, filenames(n).name);
9 I = imread(full_name);
10 J = I(:,:,1);
11 K = im2bw(J,.6);
12 L = imcomplement(K);
13 str = strel('disk',5);
14 M = imclose(L,str);
15 N = imfill(M,'holes');
16 O = bwareaopen(N,5000);
17 stats = regionprops(O,'Area','Perimeter','Eccentricity');
18 area(n) = stats.Area;
19 perimeter(n) = stats.Perimeter;
20 metric(n) = 4*pi*area(n)/(perimeter(n)^2);
21 eccentricity(n) = stats.Eccentricity;
22 end
23
input = [metric;eccentricity];
24
target = zeros(1,24);
25
target(:,1:6) = 1;
26
target(:,7:12) = 2;
27
target(:,13:18) = 3;
28
target(:,19:24) = 4;
29
30
net = newff(input,target,[10 5],{'logsig','logsig'},'trainlm');
31
net.trainParam.epochs = 1000;
32 net.trainParam.goal = 1e-6;
33
7
34 net = train(net,input,target);
35 output = round(sim(net,input));
36 save net.mat net
37
38 [m,n] = find(output==target);
39 akurasi = sum(m)/total_images*100
Salah satu tampilan citra hasil pengolahan ditunjukkan pada gambar di bawah ini:
8
b. Citra uji berjumlah 16 citra yang terdiri dari 4 citra pada masing-masing kelas.
9
Source code proses pengujian jaringan adalah sebagai berikut:
1 clc;clear;close all;
2
3 image_folder = 'Citra Uji';
4 filenames = dir(fullfile(image_folder, '*.jpg'));
5 total_images = numel(filenames);
6
7 for n = 1:total_images
8 full_name= fullfile(image_folder, filenames(n).name);
9 I = imread(full_name);
10 J = I(:,:,1);
11 K = im2bw(J,.6);
12 L = imcomplement(K);
13 str = strel('disk',5);
14 M = imclose(L,str);
15 N = imfill(M,'holes');
16 O = bwareaopen(N,5000);
17 stats = regionprops(O,'Area','Perimeter','Eccentricity');
18 area(n) = stats.Area;
19 perimeter(n) = stats.Perimeter;
20 metric(n) = 4*pi*area(n)/(perimeter(n)^2);
21 eccentricity(n) = stats.Eccentricity;
22 end
23
24 input = [metric;eccentricity];
25 target = zeros(1,16);
26 target(:,1:4) = 1;
27 target(:,5:8) = 2;
28 target(:,9:12) = 3;
29 target(:,13:16) = 4;
30
31 load net
32 output = round(sim(net,input));
33
34 [m,n] = find(output==target);
35 akurasi = sum(m)/total_images*100
Sedangkan tampilan proses pelatihan jaringan yaitu:
10
Source code GUI Matlab untuk proses klasifikasi citra daun adalah sebagai berikut:
11
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Klasifikasi_daun is made visible.
function Klasifikasi_daun_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 Klasifikasi_daun (see
VARARGIN)
% Choose default command line output for Klasifikasi_daun
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
movegui(hObject,'center');
% UIWAIT makes Klasifikasi_daun wait for user response (see
UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Klasifikasi_daun_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)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[nama_file,nama_path] = uigetfile({'*.*'});
if ~isequal(nama_file,0)
I = imread(fullfile(nama_path,nama_file));
axes(handles.axes1)
imshow(I)
handles.I = I;
guidata(hObject,handles)
12
else
return
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
I = handles.I;
J = I(:,:,1);
K = im2bw(J,.6);
L = imcomplement(K);
str = strel('disk',5);
M = imclose(L,str);
N = imfill(M,'holes');
O = bwareaopen(N,5000);
stats = regionprops(O,'Area','Perimeter','Eccentricity');
area = stats.Area;
perimeter = stats.Perimeter;
metric = 4*pi*area/(perimeter^2);
eccentricity = stats.Eccentricity;
input = [metric;eccentricity];
load net
output = round(sim(net,input));
axes(handles.axes2)
imshow(O)
if output == 1
kelas = 'Bougainvillea';
elseif output == 2
kelas = 'Geranium';
elseif output == 3
kelas = 'Magnolia soulangeana';
elseif output == 4
kelas = 'Pinus';
end
set(handles.edit1,'String',kelas)
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (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 edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1
as a double
13
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (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');
end
Membuat tampilan GUI Matlab
Tampilan GUI Matlab ditunjukkan pada gambar-gambar berikut ini:
1. Tampilan awal
14
3. Pengolahan citra daun untuk kelas Geranium sp
15
5. Pengolahan citra daun untuk kelas Pinus sp
V. Analisa Pembahasan
16
Pada data latih Berdasarkan pada tabel tersebut, akurasi yang dihasilkan sistem dalam
proses pelatihan adalah 24/24*100% = 100% Akurasi yang dihasilkan sistem baik
pada proses pelatihan maupun pengujian menunjukkan bahwa metode yang
digunakan dapat mengklasifikasikan citra daun dengan baik. Dapat kita simulkan
bahwa akurasi dari data uji ini tidak adanya kesalahan dengan citra latih yang
berjumlah 24 ini tidak ada keslahan dalam percobaan berdasarkan kelas asli dan
jaringan syaraf tiruan dengan keterangan nomor 1-6 menunjukan citra daun
bougainvillea sp, sedangkan untuk kelas spesies nomor 7-12 menunjukan citra daun
geranium sp, untuk nomot 13-18menunjukan citra daun magnolia soulangeana, dan
untuk citra kelas nomor 19-24 menujukan citra daun pinus sp
17
Sedangkan untuk data uji mengalami sedikit masalah dalam hasil klasifikasi proses
pengujian, Pada tabel terdapat satu kelas citra daun yang diklasifikasikan dengan
salah sehingga akurasi yang dihasilkan jaringan dalam proses pengujian adalah
sebesar15/16*100%=93,75%. Akurasi yang dihasilkan sistem baik pada proses
pelatihan maupun pengujian menunjukkan bahwa metode yang digunakan dapat
mengklasifikasikan citra daun sedikit kurang baik dimana untuk spesies nomor 7
menunjukan kelas spesies asli yaitu geranium sp sedangkan umtuk jaringan syaraf
tiruan menujukan citra daun magnolia soulangeana.
VI. KESIMPULAN
18
VII. DAFTAR PUSTAKA
Hermawan, A., 2006. Jaringan Syaraf Tiruan Teori dan Aplikasi. Yogyakarta :
Penerbit Andi.
Muntasiroh, L., 2018. IMPLEMENTASI JARINGAN SYARAF TIRUAN
PROPAGASI BALIK UNTUK MENGKLASIFIKASI JENIS BATIK DAERAH
KHAS SEMARANG DI KAMPUNG BATIK BUBAKAN SEMARANG.
Semarang
Darma, P., 2010. Pengolahan Citra Digital. Yogyakarta : Andi.
Pakaja, F., Naba, A. & Purwanto, P. 2013. Peramalan Penjualan Mobil
Menggunakan Jaringan Syaraf Tiruan dan Certainty Factor. Jurnal EECCIS, 6, pp.
23-28.
VIII. Lampiran
Gambar sempel
19