Dalam bab ini akan dijelaskan kebutuhan sistem yang mencakup spesifikasi perangkat keras dan perangkat lunak, implementasi sistem berupa analisis sistem dan analisis hasil pengujian.
IV.1.Kebutuhan Sistem
Dalam pengimplementasian sistem pengenalan jenis buah ini diperlukan perangkat keras dan perangkat lunak serta data yang akan digunakan dalam penelitian. IV.1.1. Kebutuhan Perangkat Keras
Dalam pengimplementasian sistem pengenalan jenis buah ini, spesifikasi perangkat keras yang diperlukan sebagai berikut :
1. Processor : Intel Core 2 Duo T6600 2. VGA : NVIDIA GeForce G105M 3. Harddisk : 320 GByte
4. Memory : 2 GByte
Adapun perangkat keras yang disebutkan di atas tidak bersifat mutlak, dapat digantikan dengan perangkat keras spesifikasi lain yang sesuai.
IV.1.2. Kebutuhan Perangkat Lunak
Dalam pembuatan dan pengimplementasian sistem pengenalan jenis buah ini diperlukan perangkat lunak dengan spesifikasi sebagai berikut :
1. Adobe Photoshop 2. Matlab 6.5.1
34
Adobe Photoshop digunakan dalam tahap pre-processing untuk pemotongan buah yang bertumpuk atau bergerombol, sedangkan Matlab 6.5.1 digunakan untuk pengenalan jenis buah.
IV.2. Implementasi Sistem
Implemetasi sistem ini meliputi proses training dan testing untuk semua data buah serta analisis hasil pengujian.
IV.2.1. Proses Training
Proses training meliputi proses pengekstrakan ciri serta pembagian data menggunakan five folds dan penghitungan mean dan standar deviasi untuk setiap
feature dari setiap sampel buah. Output dari proses training ini adalah model untuk setiap jenis buah.
IV.2.1.1. Ekstak Feature
Setelah melalui tahap pre-processing, data buah akan diekstrak feature-nya. Pengekstrakan feature meliputi penghitungan perbandingan ukuran, rata-rata Hue, rata-rata RGB, rata-rata nilai R, rata-rata nilai G, rata-rata nilai B, nilai (2R-(G+B)), nilai (2G-(R+B)) dan nilai (2B-(G+R)).
Proses pengekstrakan feature, menggunakan program berikut (sebagai contoh untuk mengekstrak buah apel)
35
Dalam proses pengekstrakan ini akan menghasilkan data dengan angka apa adanya yang disimpan dalam matrik h1 (untuk apel), h2 (untuk jeruk), h3 (untuk mangga), h4 (untuk pisang), h5 (untuk stroberi). Dari data yang dihasilkan dalam setiap matrik akan ada satu feature yang sangat dominan, sehingga hasil pengklasifikasian akan cenderung dalam hasil yang dominan tersebut. Untuk menghindari hasil yang dominan dalam pengekstrakan ini, dibutuhkan normalisasi. Normalisasi yang digunakan dalam pengekstrakan feature ini adalah teori transformasi Z. Rumus untuk menghitung normalisasi menggunakan transformasi Z sebagai berikut
direktori={'APEL'; 'JERUK'; 'MANGGA'; 'PISANG'; 'STROBERI'}; H=[]; for i=1:length(direktori) %masuk ke direktori cd (direktori{i}); if(i==1) filename=dir('*.jpg');
%ambil file dari filename, simpan di variabel namafile
namafile={};
for j=1:length(filename)
namafile{j}=filename(j).name end
%ekstrak feature dari setiap gambar h1=[];
%hasilApel=[];
%proses ekstrak satu per satu for k=1:length(namafile) apel=ciri2(namafile{k}); %hasilApel=[hasilApel; apel]; h1=[h1; apel]; end
36
Proses pengekstrakan normalisasi,menggunakan program berikut
Untuk proses normalisasi ini semua hasil pengekstrakan feature
digabungkan dalam satu matrik kosong yang sudah disiapkan. Kemudian dari data yang tesimpan dalam matrik gabungan dihitung nilai mean dan standar deviasinya. Setelah diketahui nilai mean dan standar deviasi, dihitung nilai Xn dari masing-masing data dalam matrik gabungan untuk mendapatkan data baru setelah proses normalisasi.
Setelah proses normalisasi, data gabungan kemudian dibagi dan dikelompokan dalam masing-masing jenis buah. Dimana data ke-1 sampai data 80 menjadi data apel, data 81 sampai 160 menjadi data jeruk, data ke-161 sampai ke-240 menjadi data mangga, data ke-241 sampai ke-320 menjadi data pisang dan data ke-321 sampai ke-400 menjadi data stroberi.
Proses normalisasi akan menyimpan hasil pengekstrakan dengan nama hasilApel, hasilJeruk, hasilMangga, hasilPisang dan hasilStroberi. Masing-masing hasil akan mempunyai martik 80 x 9, yang berarti 80 sampel untuk setiap jenis buah dengan 9 feature. Kemudian hasil ekstraksi tersebut akan dibagi menjadi 5 bagian, dengan menggunakan metode five folds. Jadi, dalam implementasi sistem
H=[h1;h2;h3;h4;h5]; % menggabungkan 5 jenis buah hasil ekstraksi
% menghitung mean dan standar deviasi M=mean(H); S=std(H); %normalisasi N=[]; [m,n]=size(H); for i=1:n for j=1:m x=(H(j,i)-M(i))/S(i); N(j,i)=x; end end
37
ini akan terdapat 5 kali percobaan dengan 5 kali five folds (fold1, fold2, fold3, fold4 dan fold5).
Proses pembagian data, menggunakan program berikut (sebagai contoh fold1)
%matrik untuk data training dan testing setiap jenis buah trainA=[]; trainJ=[]; trainM=[]; trainP=[]; trainS=[]; tesA=[]; tesJ=[]; tesM=[]; tesP=[]; tesS=[];
%matrix target seluruh data training untuk setiap jenis buah. targettrainA=[];
targettrainJ=[]; targettrainM=[]; targettrainP=[]; targettrainS=[];
%matrix target seluruh data testing untuk setiap buah. targettesA=[]; targettesJ=[]; targettesM=[]; targettesP=[]; targettesS=[]; [baris1,kolom1]=size(hasilApel); for a=1:baris1 if (a<=64) trainA=[trainA;hasilApel(a,:)]; else tesA=[tesA;hasilApel(a,:)]; end end
38
Untuk proses five folds terlebih dahulu disiapkan matrik kosong untuk menyimpan data training dan testing serta matrik untuk target seluruh data training
dan target untuk seluruh data testing. Dalam fold1 ini data yang digunakan sebagai data training adalah data ke-1 sampai data ke-64, sedangkan data ke-65 sampai data ke-80 akan digunakan sebagai data testing. Hasil running fold1 akan terlihat dari matrik yang telah terbentuk sebelumnya. Matrik trainA, trainJ, trainM, trainP dan trainS akan mempunyai matrik 64 x 9. Sedangkan tesA, tesJ, tesM, tesP dan tesS masing-masing akan mempunyai matrik 16 x 9. Matrik-matrik hasil testing tersebut akan disimpan di dalam matrik data testing (DTS), sehingga DTS akan mempunyai matrix 9 x 80. 80 sampel karena setiap jenis buah mempunyai data testing sebanyak 16 sampel.
%membuat matrik fivefold mmodelA=[1;0;0;0;0]; mmodelJ=[0;1;0;0;0]; mmodelM=[0;0;1;0;0]; mmodelP=[0;0;0;1;0]; mmodelS=[0;0;0;0;1]; for j=1:64 targettrainA=[targettrainA,mmodelA]; targettrainJ=[targettrainJ,mmodelJ]; targettrainM=[targettrainM,mmodelM]; targettrainP=[targettrainP,mmodelP]; targettrainS=[targettrainS,mmodelS]; end for j=1:16 targettesA=[targettesA,mmodelA]; targettesJ=[targettesJ,mmodelJ]; targettesM=[targettesM,mmodelM]; targettesP=[targettesP,mmodelP]; targettesS=[targettesS,mmodelS]; end DTR=[trainA',trainJ',trainM',trainP',trainS']; DTS=[tesA',tesJ',tesM',tesP',tesS']; TTR=[targettrainA,targettrainJ,targettrainM,targettrainP,targ ettrainS]; TTS=[targettesA,targettesJ,targettesM,targettesP,targettesS];
39
IV.2.1.2. Penghitungan Nilai Mean dan Standar Deviasi
Setelah melakukan proses five folds, akan diketahui data mana yang akan digunakan sebagai data training atau data testing. Dari data training tersebut akan
dihitung nilai mean (µ) dan standar deviasinya (σ). Hasil penghitungan tersebut
akan dijadikan model untuk setiap jenis buah.
Proses penghitungan mean dan standar deviasi, menggunakan program berikut (sebagai contoh menghitung mean dan standar deviasi untuk buah apel)
Hasil dari penghitungan mean dan standar deviasi ini akan disimpan di dalam matrik kosong yang sudah disiapkan, yaitu MSA, MSJ, MSM, MSP dan MSP. Setiap matrik tersebut akan menyimpan nilai mean dan nilai standar deviasi untuk setiap feature. MSA, MSJ, MSM, MSP dan MSM akan mempunyai matrik 2 x 9. Matrik-matrik MSA, MSJ, MSM, MSP dan MSM inilah yang menjadi model untuk setiap jenis buah.
% feature disimpan di variabel train [baris1,kolom1]=size(trainA);
[baris2,kolom2]=size(trainJ); [baris3,kolom3]=size(trainM); [baris4,kolom4]=size(trainP); [baris5,kolom5]=size(trainS);
% mean dan standar deviasi disimpan dalam variabel MS MSA=[];
MSJ=[]; MSM=[]; MSP=[]; MSS=[];
%menghitung mean dan standar deviasi for i=1:kolom1
hasilApel=trainA(:,i); aa=mean(hasilApel); aaa=std(hasilApel);
% membuat mean dan stdev dalam 2 baris b=[aa; aaa];
MSA=[MSA b]; end
40
IV.2.2. Proses Testing
Setelah didapatkan model untuk setiap jenis buah, kemudian dilakukan tahap
testing. Dalam tahap testing ini data baru sebagai data testing akan dicocokan dengan model yang sudah ada.
Proses testing meliputi proses penghitungan nilai probability density function, penghitungan nilai likelihood, penghitungan nilai probabilitas dan penentuan nilai probabilitas terbesar. Output dari proses testing atau output yang ingin di tampilkan dari sistem ini adalah pengklasifikasian jenis buah.
IV.2.2.1. Penghitungan Nilai Probability Density Function
Langkah pertama dalam proses testing ini adalah penghitungan nilai density. Sebelum menghitung nilai density terlebih dahulu data testing diekstrak selanjutnya hasilnya dibandingkan dengan model yang sudah ada.
Proses penghitungan nilai probability density function, menggunakan program berikut
Model-model dari setiap buah akan disimpan dalam array. Hasil dari penghitungan nilai denisity akan disimpan dalam matrik kosong yang sudah
MATRIX={MSA MSJ MSM MSP MSS};
DEN = []; MDEN = {};
[baris,kolom]=size(DTS); % 9x80
for i=1:kolom %80
for j=1:length(MATRIX) % 1 sampai 5 for k=1:baris % 9 a=DTS(k,i); b=MATRIX{j}; c=b(1,k); d=b(2,k); pangkat=((a-c)^2)/(2*(d^2)); e=exp(pangkat); sq=1/(sqrt (2*pi)*d); den=sq*e; DEN(j,k)=den; end end MDEN{i}=DEN; end
41
disiapkan yaitu MDEN. Matrik MDEN akan menyimpan nilai density semua data untuk semua jenis buah. Jika satu data hasil penghitungan density mempunyai matrik 5 x 9, maka matrik MDEN akan mempunyai matrik ((5 x 9) x 80).
IV.2.2.2. Penghitungan nilai Likelihood dan Probabilitas
Setelah nilai density didapat, kemudian dihitung nilai likelihood dan nilai probabilitas. Dari nilai probabilitas dapat ditentukan probabilitas maksimum dan dapat diketahui jenis klasifikasinya.
Proses penghitungan nilai likelihood,menggunakan program berikut
Penghitungan nilai likelihood disimpan dalam matrik kosong L yang sudah disiapkan. Dari hasil penghitungan likelihood, maka matrik L akan mempunyai matrik 5 x 9 untuk 80 data.
Jenis buah dari data testing akan disimpan dalam matrik kosong yang sudah disiapkan, yaitu matrik BUAH.
BUAH=[]; for i =1:length(MDEN) % Hitung likelihood d=MDEN{i}; [m,n]=size(d); L = []; for j =1:m a=(prod(d(j,:)))*0.2; L=[L a]; End % Hitung probabilitas P=[]; for k=1:length(L); b=(L(k)/sum(L))*100; P=[P b]; end % Tentukan output [e,f]=max(P); BUAH=[BUAH; f]; end
42
IV.3. Analisis Hasil Pengujian
Penelitian ini bertujuan untuk mengklasifikasikan jenis buah dengan mengekstrak
feature untuk memperoleh hasil maksimal. Dalam penelitian ini terdapat 5 jenis buah yang akan diuji dengan 9 feature. Pada penelitian ini awalnya feature akan diekstrak satu per satu, kemudian data akan diuji lagi dengan menggunakan kombinasi feature.
Hasil dari pengekstrakan setiap feature akan ditampilkan pada tabel berikut.
Tabel 3.5
Tabel Hasil Ekstrak Setiap Feature
No Feature Hasil Akurasi ( dalam %)
1 Jarak 19.75 2 Rata Hue 18.75 3 Rata R 16.25 4 Rata G 10.25 5 Rata B 14.25 6 Rata RGB 16.5 7 Nilai 2RGB 4.25 8 Nilai 2GRB 1.5 9 Nilai 2BGR 20
Dari hasil pengekstrakan setiap feature diatas, akan diambil feature-feature yang mempunyai nilai terbaik yang kemudian akan dikombinasikan dengan feature yang lain. Berdasarkan hasil diatas, hanya ada 7 feature yang akan digunakan, yaitu jarak, rata-rata Hue, rata-rata nilai R, rata-rata nilai G, rata-rata nilai B, rata-rata nilai RGB
43
dan rata-rata nilai 2BGR. Feature-feature tersebut dipilih karena mempunyai nilai yang berdekatan.
Untuk kombinasi feature dipilih dari feature yang mempunyai nilai akurasi terbesar hingga terkecil, yaitu nilai 2BGR, jarak, rata-rata Hue, rata-rata nilai RGB, rata-rata nilai R, rata-rata nilai B dan rata-rata nilai G. Susunan kombinasi feature dan hasil pengkombinasian feature sebagai berikut (hasil kombinasi ditampilkan dalam bentuk grafik).
• Kombinasi 1 : nilai 2BGR dan jarak
• Kombinasi 2 : nilai 2BGR, jarak, rata-rata Hue
• Kombinasi 3 : nilai 2BGR, jarak, rata-rata Hue, rata-rata nilai RGB
• Kombinasi 4 : nilai 2BGR, jarak, rata-rata Hue, rata-rata nilai RGB, rata-rata nilai R
• Kombinasi 5 : nilai 2BGR, jarak, rata-rata Hue, rata-rata nilai RGB, rata-rata nilai R, rata-rata nilai B
• Kombinasi 6 : nilai 2BGR, jarak, rata-rata Hue, rata-rata nilai RGB, rata-rata nilai R, rata-rata nilai B, rata-rata nilai G
44
Gambar 4.1 Hasil Kombinasi Feature
Dari grafik diatas terlihat bahwa kombinasi 1 mempunyai nilai akurasi tertinggi, sedangkan kombinasi 2 mempunyai nilai akurasi terendah. Kombinasi 3 mempunyai nilai akurasi lebih tinggi dari kombinasi 2, dan untuk kombinasi 4,5 dan 6 mempunyai nilai akurasi yang sama. Penambahan feature yang dalam pengekstrakan setiap
feature memiliki nilai akurasi yang baik ternyata tidak selalu memberikan hasil yang baik juga apabila dikombinasikan dengan feature yang lain, terlihat dalam kombinasi 2. Rata-rata Hue mempunyai nilai terbaik ketiga dalam pengekstrakan setiap feature, tetapi dalam pengkombinasian dengan feature yang lain justru mempunyai nilai akurasi terendah.
Akurasi terbaik yang diperoleh dari percobaan tersebut sebesar 20 %, hal ini dimungkinkan karena pemilihan feature yang kurang kompleks untuk menjadi pembeda buah yang akan dikenali.
45