Anda di halaman 1dari 19

JARINGAN SYARAF TIRUAN UNTUK KLASIFIKASI

CITRA DAUN DENGAN METODE NEURAL NETWORK

Disusun oleh :

MUHAMAD CHOIRUL UMAM


C.431.18.0020

FAKULTAS TEKNIK ELEKTRO

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.

II. LANDASAN TEORI

2.1 METODE NEURAL NETWORK.


Neural Network (NN) adalah suatu metode pembelajaran yang diinspirasi dari
jaringan sistem pembelajaran biologis yang terjadi dari jaringan sel syaraf (neuron)
yang terhubung satu dengan yang lainnya. Struktur NN yang digunakan adalah
Backpropagation (BP) yang merupakan sebuah metode sistematik untuk pelatihan
multiplayer. Metode ini memiliki dasar matematis yang kuat, objektif dan algoritma
ini mendapatkan bentuk persamaan dan nilai koefisien dalam formula dengan
meminimalkan jumlah kuadrat galat error melalui model yang dikembangkan
(training set). Menurut Daghli (1994), jenis backpropagation lebih fleksibel dan
secara umum relatif lebih baik karena paling banyak penerapannya digunakan
khususnya untuk aplikasi dalam dunia industri. Riggs (1987) menyatakan bahwa
salah satu cara peramalan adalah dengan metode urutan waktu (time series) yang
menggunakan data histori (data waktu lampau), misalnya data permintaan, untuk
membuat ramalan permintaan diwaktu mendatang. Tujuan dari metode ini adalah
untuk mengidentifikasi pola data histori dan kemudian mengekstrapolasikan pola ini
ke masa datang. Metode NN ini dilatih dengan seperangkat data untuk bisa mengenal
dan mengidentifikasi pola data atau kurva. Proses pelatihan disebut tahap belajar
(learning process), yang merupakan bagian penting dalam metode ini. Pemilihan
algoritma dan parameter yang bersesuaian dan penentuan berapa banyak perangkat
data yang dibutuhkan sangat penting untuk menentukan akurasi dari peramalan yang
dihasilkan.

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

2.3 Arsitektur Jaringan Syaraf Tiruan


Seperti otak manusia, jaringan syaraf juga terdiri dari neuron-neuron yang
saling berhubungan. Neuron-neuron tersebut mentransformasikan informasi yang
diterima melalui sambungan keluarnya menuju neuron-neuron yang lain (disebut
dengan bobot). Informasi (disebut dengan input) akan diproses oleh suatu fungsi yang
akan menjumlahkan semua bobot yang datang. Hasil penjumlahan bobot ini
kemudian akan dibandingkan dengan ambang (threshold) tertentu melalui fungsi
aktivasi setiap neuron. Jika nilai bobot lebih besar dari nilai threshold, maka neuron
tersebut akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron
yang berhubungan dengannya (Siang, 2005). 1. Lapisan input Unit- unit input

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.

IV. DATA PERCOBAAN


-METODE NEURAL NETWORK
Pada percobaan ini implementasi deep learning pada identifikasi jenis tumbuhan
berdasarkan citra daun menggunakan Neural Network, Pada percobaan kali ini
menggunakan 2 sampel data, yaitu data latih dan data uji.

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:

Sedangkan tampilan proses pelatihan jaringan yaitu:

Hasil klasifikasi proses pelatihan ditunjukkan pada tabel berikut:

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:

function varargout = Klasifikasi_daun(varargin)


% KLASIFIKASI_DAUN MATLAB code for Klasifikasi_daun.fig
%      KLASIFIKASI_DAUN, by itself, creates a new KLASIFIKASI_DAUN
or raises the existing
%      singleton*.
%
%      H = KLASIFIKASI_DAUN returns the handle to a new
KLASIFIKASI_DAUN or the handle to
%      the existing singleton*.
%
%      KLASIFIKASI_DAUN('CALLBACK',hObject,eventData,handles,...)
calls the local
%      function named CALLBACK in KLASIFIKASI_DAUN.M with the given
input arguments.
%
%      KLASIFIKASI_DAUN('Property','Value',...) creates a new
KLASIFIKASI_DAUN or raises the
%      existing singleton*.  Starting from the left, property value
pairs are
%      applied to the GUI before Klasifikasi_daun_OpeningFcn gets
called.  An
%      unrecognized property name or invalid value makes property
application
%      stop.  All inputs are passed to Klasifikasi_daun_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
Klasifikasi_daun
 
% Last Modified by GUIDE v2.5 23-Oct-2016 15:06:14
 
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                  'gui_OpeningFcn', @Klasifikasi_daun_OpeningFcn,..
                   'gui_OutputFcn',  @Klasifikasi_daun_OutputFcn,..
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout

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

2. Pengolahan citra daun untuk kelas Bougainvillea sp

14
3. Pengolahan citra daun untuk kelas Geranium sp

4. Pengolahan citra daun untuk kelas Magnolia soulangeana.

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

Dari percobaan diatas dapat disimpulkan bahwa:


Tingkat akurasi bukan berdasarkan dari banyaknya pelatihan, namun tergantung dari
kombinasi parameter pelatihan. Hal tersebut menandakan bahwa tidak ada
patokan/pedoman pasti untuk mencapai nilai error terkecil dalam hal penggunaan
parameter pelatihan. akurasi yang dihasilkan sistem dalam proses pelatihan adalah
24/24*100% = 100%. akurasi yang dihasilkan jaringan dalam proses pengujian
adalah sebesar 15/16*100% = 93,75%.

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

Anda mungkin juga menyukai