7/23/2019 Klasifikasi Buah Tomat Metode C-means
1/15
TUGAS NEURO FUZZY PADA INSTRUMENTASI ELKA
KLASIFIKASI KEMATANGAN BUAH TOMATMENGGUNAKAN METODE FUZZY C MEANS
Disusun oleh :
M A!h"#i A$inu%in &'()*'))'+
BIDANG STUDI ELEKTRONIKA
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNI,ERSITAS BHAYANGKARA SURABAYA
()'- . ()'/
' PENDAHULUAN
0
7/23/2019 Klasifikasi Buah Tomat Metode C-means
2/15
Percobaan ini menggunakan model warna RGB. Tingkat RGB pola bit
dikomposisikan dari tiga warna tersebut dan masing-masing warna mempunyai
28 atau 25 bit !0 - 255". #odel warna RGB yang dapat dinyatakan dalam bentuk
indeks warna RGB dengan cara menormalisasi setiap komponen warna dengan
persamaan sebagai sebagai berikut$
R %R
R+G+BG %
G
R+G+BB %
B
R+G+B
&istogram 'arna &istogram warna atau color (istogram adala(
representasi distribusi warna dalam sebua( gambar yang didapatkan dengan
meng(itung )umla( pi*el dari setiap bagian range warna+ secara tipikal dalam dua
dimensi atau tiga dimensi. ,alam pembuatan (istogram+ nilai RGB mempunyai
range dari 0 sampai 255 akan punya kemungkinan kombinasi warna sebesar
2 !didapat dari$ 255 * 255 * 255".
/ara mengidentiikasi dan mendeteksi kematangan bua( yang dilakukan
di ruma( kaca masi( banyak menggunakan cara manual. /ara manual dilakukan
berdasarkan pengamatan 1isual secara langsung pada bua( yang akan
diklasiikasi. elema(an pengklasiikasian manual sangat dipengaru(i
sub)ektiitas operator sortir se(ingga pada kondisi tertentu tidak konsisten proses
pengklasiikasiannya. Perkembangan teknologi inormasi memungkinkan
identiikasi bua( berdasarkan ciri warna dengan bantuan komputer. /ara
komputasi ini dilakukan dengan pengamatan 1isual tidak langsung dengan
menggunakan kamera sebagai pengola( citra dari gambar yang direkam !image
processing" untuk kemudian diola( dengan menggunakan perangkat lunak
computer.lasiikasi ini menggunakan aplikasi kecerdasan buatan menggunakan
metode u33y c-means clustering. 4b)ek yang diamati yaitu bua( tomat yang
berbeda tingkat kematangannya berdasarkan warna. normasi citra dari bua(
tomat yang diamati menggunakan bantuan 1ideo kamera atau webcam. 'ebcam
dan sotware diintegrasikan ke komputer menggunakan u33y c-means clustering
agar komputer dapat mengenali inormasi citra bua( tomat tersebut.
7/23/2019 Klasifikasi Buah Tomat Metode C-means
3/15
Bua( tomat diklasiikasi berdasarkan input (istogram warna citra yang
didapat dari (asil capture. ,ari beberapa sampel pola data bua( tomat dengan
tingkatan kematangan yang berbeda diinputkan pada u33y c-means untuk
meng(asilkan nilai pusat cluster. 6ilai pusat cluster yang diperole( tersebut
digunakan untuk proses klasiikasi bua( tomat matang+ muda+ dan setenga(
matang. Tingkatan keber(asilan identiikasi dipengaru(i ole( aktor penca(ayaan
ter(adap citra.
( DASAR TEORI
7u33y /-#eans !7/#" merupakan sala( satu algoritma u33y
clustering. 7u33y /-#eans !7/#" adala( suatu teknik pengclusteran data yang
keberadaan setiap titik data dalam suatu cluster ditentukan ole( dera)at
keanggotaan. Teknik ini pertama kali diperkenalkan ole( im Be3dek pada ta(un
98.
onsep dasar 7/# yaitu menentukan pusat cluster+ yang akan
menandai lokasi rata-rata untuk setiap cluster. ,engan cara memperbaiki pusat
cluster dan dera)at keanggotaan setiap titik data secara berulang+ maka akan
dapat dili(at ba(wa pusat cluster akan bergerak menu)u lokasi yang tepat.
Perulangan ini didasarkan pada pada minimisasi ungsi obyekti yang
menggambarkan )arak dari titik data yang diberikan ke pusat cluster yang
terbobot ole( dera)at keanggotaan titik data tersebut.
4utput dari 7/# bukan merupakan u33y inerence system+ namunmerupakan deretan pusat cluster dan beberapa dera)at keanggotaan untuk tiap-tiap
titik data. normasi ini dapat digunakan untuk membangun suatu u33y inerence
system. :lgoritma 7u33y /-means clustering adala( sebagai berikut $
. #enentukan$
#atriks ; yang merupakan data yang akan dicluster+ berukuran k * )+ dengan
k % )umla( data yang akan di-cluster dan ) % )umla( 1ariabel
7/23/2019 Klasifikasi Buah Tomat Metode C-means
4/15
2. #enentukan $
a. umla( cluster yang akan dibentuk !n =c > 2".
b. pembobot !w = ".
c. #aksimum iterasi !ma* n".
d. riteria peng(entian
7/23/2019 Klasifikasi Buah Tomat Metode C-means
5/15
5. &itung nilai obyekti !Pn" dengan rumus $
eterangan $
Dik % data partisi !pada matriks @" pada cluster ke-i dan data ke-k.
dik% ungsi ukuran )arak untuk )arak Euclidean pada pusat cluster ke-i dan
data ke-k.
w % pembobot.Pn% nilai obyekti pada iterasi ke-n.
. Perbaiki dera)at keanggotaan setiap data pada setiap cluster !perbaiki matriks
partisi"
dengan $
eterangan $
Dik % data partisi !pada matriks @" pada pusat cluster ke-i dan data ke-k.
dik% ungsi ukuran )arak untuk )arak Euclidean pada pusat cluster ke-i dan
data ke-k.
d)k% ungsi ukuran )arak untuk )arak Euclidean pada pusat cluster ke-) dan
data ke-k.
w % pembobot.
;k) % data !pada matriks @" pada atribut ke-) dan data ke-k.
. #eng(entikan iterasi )ika pusat cluster C tidak beruba(. :lternati
kriteria peng(entian adala( )ika peruba(an nilai error kurang dari tres(old F
7/23/2019 Klasifikasi Buah Tomat Metode C-means
6/15
Pn - Pn-F . :lternati adala( ketika perulangan melebi(i maksimum iterasi
! n = ma* n". ika iterasi belum ber(enti+ kembali ke langka( .
8. ika iterasi ber(enti+ ditentukan cluster dari tiap-tiap data. /luster dipili(
berdasarkan nilai matriks partisi terbesar.
0 PERCOBAAN DAN ANALISA
" H"sil D"1" His1o2#"$ 3"#n"
,ilakukan pemrosesan awal dengan beberapa kali pengambilan data
(istogram untuk bua( tomat yang memiliki tingkat kematangannya berbeda.
,ibawa( ini sala( satu data dari beberapa pengambilan data nilai (istogram
warna bua( tomat $
T"4el 0' Be4e#"5" D"1" Nil"i His1o2#"$ To$"1
6o. warna 6ilai (istogram warna
Bua( tomat R!Red" G!Green" B!Blue"
288 22 895
2 592 2 85
? ?5 ?9 2
5098 2059 88
5 259 ??98
528 598?2 92?
5229 880? ??0?
8 588 890?2 50?55
9 52 89 55
5
7/23/2019 Klasifikasi Buah Tomat Metode C-means
7/15
4 T#"inin2
Proses training menggunakan ? sampel pola data yang mencirikan
masing-masing tingkat kematangan bua( tomat. Tetapi untuk lebi( seder(ananya
bisa menggunkan 2 sampel warna sa)a. 2 sampel data bua( tomat masak warna
mera(+ 2 sampel bua( tomat muda warna (i)au+ dan 2 sampel bua( tomat
setenga( matang warna campur+ untuk percobaan ini suda( dilakukan
normalisasi se(ingga (anya tinggal memasukkan nilai normalisasinya sa)a. 2
G"$4"# 0' %"1" 1#"inin2 5"%" no1e5"%
Pada data training+ kolom pertama merepresentasikan RE,+ sedangkan
kolom kedua adala( GREE6. Tidak ada kolom ketiga sebagai target+ karena
7u33y /-#eans akan menentukan klasiikasi berdasarkan nilai kluster yang
dibuat. ,ata training tadi kemudian di masukkan ke dalam matlab menggunakan
clustering dengan cara mengetikkanfindclusterpada command window. ,i bawa(
ini adala( tampilan )endela clustering pada matlab. ,alam (al ini terdapat tiga
7/23/2019 Klasifikasi Buah Tomat Metode C-means
8/15
kelas yaitu matang+ muda+ dan setenga( matang. He(inggga akan terbentuk tiga
titik pusat. Titik pusat kluster inila( alat penentu keputusan dari data baru yang
kita cari klasiikasinya.
G"$4"# 0( 6en%el" 7lus1e#in2 5"%" $"1l"4
@ntuk $e1o%e8 menggunakan FCMkarena memang metode itu yang kita
gunakan. Clus1e# Nu$adala( )umla( kelas klasiikasi yang kita butu(kan+ dalam(al ini adala( kelas 9$"1"n298 kelas se1en2"h $"1"n2;dan kelas9$u%"9+
maka diisi ?.
7 Pe#7o4""n
percobaan dilakukan dengan mengunakan G@ yang suda( tersedia di
matlab. Berikut adala( tampilan G@ untuk klasiikasi kematangan bua( tomat.
7/23/2019 Klasifikasi Buah Tomat Metode C-means
9/15
G"$4"# 00 GUI un1u<
7/23/2019 Klasifikasi Buah Tomat Metode C-means
10/15
5 20 0 9.920.
2?.?
8
#asak
0 KESIMPULAN
Hetela( melakukan perencanaan dan pembuatan sistem klasiikasi bua(
tomat menggunakan u33y c-means kemudian dilakukan pengu)ian+ maka dapat
diambil kesimpulan ba(wa. Histem dapat menganali kematangan bua( tomat
dengan keber(asilan mendekati 00J (anya dengan menggunakan 5 data
training.
* DAFTAR PUSTAKA
KL Hariatul :dawiya(+ 20. 7@MMN /-#E:6.
(ttp$
7/23/2019 Klasifikasi Buah Tomat Metode C-means
11/15
- LAMPIRAN
Lis1in2 P#o2#"$ 5"%" GUI $"1l"4 @
functionvarargout = kasifikasitomat(varargin)% KASIFIKASITOMAT MATLAB code for kasifikasitomatfig
% KASIFIKASITOMAT! "# itse$f! creates a ne KASIFIKASITOMAT orraises t&e e'isting% sing$eton
%% = KASIFIKASITOMAT returns t&e &and$e to a ne KASIFIKASITOMAT ort&e &and$e to
% t&e e'isting sing$eton%
% KASIFIKASITOMAT(*+ALLBA+K*!&O",ect!event-ata!&and$es!) ca$$st&e $oca$
% function named +ALLBA+K in KASIFIKASITOMATM it& t&e given in.utarguments%
% KASIFIKASITOMAT(*/ro.ert#*!*0a$ue*!) creates a neKASIFIKASITOMAT or raises t&e% e'isting sing$eton Starting from t&e $eft! .ro.ert# va$ue .airs
are% a..$ied to t&e 12I "efore kasifikasitomat3O.eningFcn gets ca$$edAn
% unrecogni4ed .ro.ert# name or inva$id va$ue makes .ro.ert#a..$ication% sto. A$$ in.uts are .assed to kasifikasitomat3O.eningFcn via
varargin%% See 12I O.tions on 12I-5*s Too$s menu +&oose 612I a$$os on$#one
% instance to run (sing$eton)6%% See a$so7 12I-5! 12I-ATA! 12IA8-L5S
% 5dit t&e a"ove te't to modif# t&e res.onse to &e$. kasifikasitomat
% Last Modified "# 12I-5 v9: ;an9;?< 9@79
7/23/2019 Klasifikasi Buah Tomat Metode C-means
12/15
% 5'ecutes ,ust "efore kasifikasitomat is made visi"$efunctionkasifikasitomat3O.eningFcn(&O",ect! eventdata! &and$es!
varargin)% T&is function &as no out.ut args! see Out.utFcn% &O",ect &and$e to figure% eventdata reserved to "e defined in a future version of MATLAB
% &and$es structure it& &and$es and user data (see 12I-ATA)% varargin command $ine arguments to kasifikasitomat (see 0AHAH1I8)
% +&oose defau$t command $ine out.ut for kasifikasitomat&and$esout.ut = &O",ect
% 2.date &and$es structure
guidata(&O",ect! &and$es)
% 2IAIT makes kasifikasitomat ait for user res.onse (see 2IH5S2M5)
% uiait(&and$esfigure?)
% Out.uts from t&is function are returned to t&e command $inefunctionvarargout = kasifikasitomat3Out.utFcn(&O",ect! eventdata!
&and$es)% varargout ce$$ arra# for returning out.ut args (see 0AHAH1O2T)% &O",ect &and$e to figure
% eventdata reserved to "e defined in a future version of MATLAB% &and$es structure it& &and$es and user data (see 12I-ATA)
% 1et defau$t command $ine out.ut from &and$es structure
varargout?G = &and$esout.ut
functionred3+a$$"ack(&O",ect! eventdata! &and$es)% &O",ect &and$e to red (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB
% &and$es structure it& &and$es and user data (see 12I-ATA)
% ints7 get(&O",ect!*String*) returns contents of red as te't% str9dou"$e(get(&O",ect!*String*)) returns contents of red as a
dou"$e
% 5'ecutes during o",ect creation! after setting a$$ .ro.erties
functionred3+reateFcn(&O",ect! eventdata! &and$es)
% &O",ect &and$e to red (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB
% &and$es em.t# &and$es not created unti$ after a$$ +reateFcnsca$$ed
% int7 edit contro$s usua$$# &ave a &ite "ackground on indos
% See IS/+ and +OM/2T5Hifis.c EE iseJua$(get(&O",ect!*Background+o$or*)!get(;!*defau$t2icontro$Background+o$or*))
set(&O",ect!*Background+o$or*!*&ite*)end
functiongreen3+a$$"ack(&O",ect! eventdata! &and$es)
7/23/2019 Klasifikasi Buah Tomat Metode C-means
13/15
% &O",ect &and$e to green (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB% &and$es structure it& &and$es and user data (see 12I-ATA)
% ints7 get(&O",ect!*String*) returns contents of green as te't% str9dou"$e(get(&O",ect!*String*)) returns contents of green as adou"$e
% 5'ecutes during o",ect creation! after setting a$$ .ro.ertiesfunctiongreen3+reateFcn(&O",ect! eventdata! &and$es)
% &O",ect &and$e to green (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB% &and$es em.t# &and$es not created unti$ after a$$ +reateFcns
ca$$ed
% int7 edit contro$s usua$$# &ave a &ite "ackground on indos
% See IS/+ and +OM/2T5Hifis.c EE iseJua$(get(&O",ect!*Background+o$or*)!get(;!*defau$t2icontro$Background+o$or*)) set(&O",ect!*Background+o$or*!*&ite*)
end
function&asi$3+a$$"ack(&O",ect! eventdata! &and$es)% &O",ect &and$e to &asi$ (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB% &and$es structure it& &and$es and user data (see 12I-ATA)
% ints7 get(&O",ect!*String*) returns contents of &asi$ as te't
% str9dou"$e(get(&O",ect!*String*)) returns contents of &asi$ as adou"$e
% 5'ecutes during o",ect creation! after setting a$$ .ro.erties
function&asi$3+reateFcn(&O",ect! eventdata! &and$es)% &O",ect &and$e to &asi$ (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB% &and$es em.t# &and$es not created unti$ after a$$ +reateFcns
ca$$ed
% int7 edit contro$s usua$$# &ave a &ite "ackground on indos
% See IS/+ and +OM/2T5Hifis.c EE iseJua$(get(&O",ect!*Background+o$or*)!
get(;!*defau$t2icontro$Background+o$or*)) set(&O",ect!*Background+o$or*!*&ite*)end
% 5'ecutes on "utton .ress in .us&"utton?function.us&"utton?3+a$$"ack(&O",ect! eventdata! &and$es)% &O",ect &and$e to .us&"utton? (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB
% &and$es structure it& &and$es and user data (see 12I-ATA)red = get(&and$esred! *string*)green = get(&and$esgreen! *string*)
red = str9dou"$e(red)
green = str9dou"$e(green)
2
7/23/2019 Klasifikasi Buah Tomat Metode C-means
14/15
data = Cred greenD$oad .usatc$ustertomatdat.usat? = .usatc$ustertomat(?!7)
.usat9 = .usatc$ustertomat(9!7)
.usat@ = .usatc$ustertomat(@!7)
u,iA = norm(data .usat?)
u,iB = norm(data .usat9)u,i+ = norm(data .usat@)set(&and$eseditA!*string*!u,iA)
set(&and$eseditB!*string*!u,iB)set(&and$esedit+!*string*!u,i+)
ifu,iA u,iB EE u,iA u,i+
set(&and$es&asi$!*string*!*matang*)e$seif u,i+ u,iB EE u,i+ u,iB set(&and$es&asi$!*string*!*muda*)
e$seset(&and$es&asi$!*string*!*setenga& matang*)
end
% If 5na"$e == *on*! e'ecutes on mouse .ress in : .i'e$ "order% Ot&erise! e'ecutes on mouse .ress in : .i'e$ "order or over
.us&"utton?function.us&"utton?3Button-onFcn(&O",ect! eventdata! &and$es)% &O",ect &and$e to .us&"utton? (see 1+BO)
% eventdata reserved to "e defined in a future version of MATLAB% &and$es structure it& &and$es and user data (see 12I-ATA)
functionedit+3+a$$"ack(&O",ect! eventdata! &and$es)% &O",ect &and$e to edit+ (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB
% &and$es structure it& &and$es and user data (see 12I-ATA)
% ints7 get(&O",ect!*String*) returns contents of edit+ as te't% str9dou"$e(get(&O",ect!*String*)) returns contents of edit+ as a
dou"$e
% 5'ecutes during o",ect creation! after setting a$$ .ro.erties
functionedit+3+reateFcn(&O",ect! eventdata! &and$es)% &O",ect &and$e to edit+ (see 1+BO)
% eventdata reserved to "e defined in a future version of MATLAB% &and$es em.t# &and$es not created unti$ after a$$ +reateFcnsca$$ed
% int7 edit contro$s usua$$# &ave a &ite "ackground on indos
% See IS/+ and +OM/2T5Hifis.c EE iseJua$(get(&O",ect!*Background+o$or*)!get(;!*defau$t2icontro$Background+o$or*))
set(&O",ect!*Background+o$or*!*&ite*)end
functioneditA3+a$$"ack(&O",ect! eventdata! &and$es)
% &O",ect &and$e to editA (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB
?
7/23/2019 Klasifikasi Buah Tomat Metode C-means
15/15
% &and$es structure it& &and$es and user data (see 12I-ATA)
% ints7 get(&O",ect!*String*) returns contents of editA as te't
% str9dou"$e(get(&O",ect!*String*)) returns contents of editA as adou"$e
% 5'ecutes during o",ect creation! after setting a$$ .ro.erties
functioneditA3+reateFcn(&O",ect! eventdata! &and$es)% &O",ect &and$e to editA (see 1+BO)% eventdata reserved to "e defined in a future version of MATLAB
% &and$es em.t# &and$es not created unti$ after a$$ +reateFcnsca$$ed
% int7 edit contro$s usua$$# &ave a &ite "ackground on indos% See IS/+ and +OM/2T5Hifis.c EE iseJua$(get(&O",ect!*Background+o$or*)!
get(;!*defau$t2icontro$Background+o$or*)) set(&O",ect!*Background+o$or*!*&ite*)end
functioneditB3+a$$"ack(&O",ect! eventdata! &and$es)% &O",ect &and$e to editB (see 1+BO)
% eventdata reserved to "e defined in a future version of MATLAB% &and$es structure it& &and$es and user data (see 12I-ATA)
% ints7 get(&O",ect!*String*) returns contents of editB as te't
% str9dou"$e(get(&O",ect!*String*)) returns contents of editB as adou"$e
% 5'ecutes during o",ect creation! after setting a$$ .ro.ertiesfunctioneditB3+reateFcn(&O",ect! eventdata! &and$es)% &O",ect &and$e to editB (see 1+BO)
% eventdata reserved to "e defined in a future version of MATLAB% &and$es em.t# &and$es not created unti$ after a$$ +reateFcnsca$$ed
% int7 edit contro$s usua$$# &ave a &ite "ackground on indos% See IS/+ and +OM/2T5Hifis.c EE iseJua$(get(&O",ect!*Background+o$or*)!
get(;!*defau$t2icontro$Background+o$or*)) set(&O",ect!*Background+o$or*!*&ite*)
end