• Tidak ada hasil yang ditemukan

BAB IV : IMPLEMENTASI DAN ANALISA SISTEM

4.2. Implementasi Proses…

a. Implementasi algoritma ekstraksi ciri warna

Ciri warna diperoleh dari perhitungan rata-rata Red ( ), rata-rata Green

( ̅), rata-rata Blue ( ), kadar Red, kadar Green dan kadar Blue sehingga menghasilkan matrik 1x6. Algoritma ekstraksi ciri warna adalah sebagai berikut :

Implementasi algoritma ekstraksi ciriwarna dR = batik(:,:,1); dG = batik(:,:,2); dB = batik(:,:,3); meanR = mean(mean(dR)); meanG = mean(mean(dG)); meanB = mean(mean(dB));

kadarR = meanR/(meanR + meanG + meanB); kadarG = meanG/(meanR+meanG+meanB); kadarB = meanB/(meanR+meanG+meanB);

feature(y,:) =[meanR,meanG,meanB,kadarR,kadarG,kadarB];

Setiap komponen warna di ambil kemudian di cari rata- ratanya menggunakan

fungsi yang telah tersedia dalam matlab yaitu mean. Untuk mendapatkan masing

-masing kadar warna dengan membagi hasil rata warna terhadap jumlah

rata-rata ketiga warna. Contoh ekstraksi ciri warna dapat di lihat pada tabel 4.2

b. Implementasi algoritma informasi tepi

Pada ciri informasi tepidiperoleh matrik berukuran 1x16 yang merupakan

penjumlahan matrik secara vertikal dan horisontal dari matrik mean 8 vektor.

Implementasi algoritma ekstraksi ciriinformasi tepi dapat dilihat sebagai berikut :

for a =1:25

for b = 1:25

if(tepiGambar(a,b) == putih) sum1 = sum1+1; end

end

for c = 26:50

if(tepiGambar(a,c)== putih) sum2 = sum2+1; end

end

for d = 51:75

if(tepiGambar(a,d) == putih) sum3 = sum3+1; end

end

for e = 76 :100

if(tepiGambar(a,e)== putih) sum4 = sum4+1; end

for f = 101 : 125

if(tepiGambar(a,f)==putih) sum5 = sum5+1; end

end

for g = 126 : 150

if(tepiGambar(a,g) == putih) sum6 = sum6+1; end

end

for h = 151 : 175

if(tepiGambar(a,h) == putih) sum7 = sum7+1; end

end

for i = 176 : 200

if(tepiGambar(a,i) == putih) sum8 = sum8+1; end

end

end

mean1 = sum1/625; mean2 = sum2/625; mean3 = sum3/625; mean4 = sum4/625; mean5 = sum5/625; mean6 = sum6/625; mean7 = sum7/625; mean8 = sum8/625;

Ciri berupa 8 vektor horisontal dan 8 vektor vertikal di buat dengan cara

menelusuri per piksel dalam satu kolom yang berhenti pada setiap kelipatan 25

(piksel ke-25, 50, 75, 100, 125, 150, 175, dan 200) untuk membaginya menjadi 8

vektor vertikal yang sama besar. Hal yang sama juga dilakukan untuk vektor

horisontal. Tiap menemukan sebuah titik piksel 1 maka menambahkan 1 pada

variabel penghitung. Hal ini dilakukan untuk semua citra batik. Contoh hasil

ekstraksi ciri informasi tepi dapat di lihat pada tabel 4.3

c. Implementasi gabungan ciri warna dan informasi tepi

Gabungan ciri warna dan informasi tepi menghasilkan matrik 1 x 22 yang

merupakan hasil penjumlahan matrik 1 x 6 pada ciri warna dan matrik 1 x 16 pada

ciriinformasi tepi. Implementasi algoritma ekstraksi ciriwarna dan informasi tepi

dR = batik(:,:,1); dG = batik(:,:,2); dB = batik(:,:,3); meanR = mean(mean(dR)); meanG = mean(mean(dG)); meanB = mean(mean(dB));

kadarR = meanR/(meanR + meanG + meanB); kadarG = meanG/(meanR+meanG+meanB); kadarB = meanB/(meanR+meanG+meanB); meanRGB = (meanR+meanG+meanB)/3;

BW =rgb2gray(batik);

tepiGambar = edge(BW,'canny');

for a =1:25 for b = 1:25

if(tepiGambar(a,b) == putih) sum1 = sum1+1; end

end

for c = 26:50

if(tepiGambar(a,c)== putih) sum2 = sum2+1; end

end

for d = 51:75

if(tepiGambar(a,d) == putih) sum3 = sum3+1; end

end

for e = 76 :100

if(tepiGambar(a,e)== putih) sum4 = sum4+1; end

end

for f = 101 : 125

if(tepiGambar(a,f)==putih) sum5 = sum5+1; end

end

for g = 126 : 150

if(tepiGambar(a,g) == putih) sum6 = sum6+1; end

end

for h = 151 : 175

if(tepiGambar(a,h) == putih) sum7 = sum7+1; end

end

for i = 176 : 200

if(tepiGambar(a,i) == putih) sum8 = sum8+1; end

end

end

mean1 = sum1/625; mean2 = sum2/625; mean3 = sum3/625; mean4 = sum4/625; mean5 = sum5/625; mean6 = sum6/625; mean7 = sum7/625; mean8 = sum8/625;

Proses ekstraksi pada cirigabungan warna dan informasi tepi hampir sama dengan

ekstraksi warna dan ekstraksi informasi tepi, hanya saja kedua proses tersebut di

gabungkan sehingga memperoleh matrik 1x22. Contoh hasil ekstraksi gabungan

ciriwarna dan informasidapat di lihat pada tabel 4.4

d. Implementasi algoritma K-means

Hasil ekstraksi ciri kemudian di kelompokan untuk k=2,3,4,5,6 dan 7.

Implementasi algoritma K-meansclustering

[maxRow,maxCol] = size(feature); % p = randperm(size(feature,1)); for i = 1:k c(i,:)= feature(p(i),:); end temp = zeros(maxRow,1); while 1, aa = ListMatrik(feature,c);

[z,g]=min(aa,[],2); %mencari nilai minimum

if g==temp,

break; % menghentikan iterasi

else

temp=g; % mengcopy feature ke dalam variabel sementara

end for i=1:k f=find(g==i); if f c(i,:)=mean(feature(find(g==i),:),1); end end end hasil=g; end

Pada proses clustering, centroid awal ditentukan secara random kemudian

menghitung jarak centroid terhadap data dan mengelompokan berdasarkan jarak

minimum. Dari kelompok tersebut dicari kembali rata-ratanya, kemudian dihitung

jaraknya terhadap data, dikelompokan lagi berdasarkan jarak minimum dan di

kelompok yang berubah anggotanya atau konvergen. Contoh hasil clustering pada

k=2 untuk 10 kali percobaan yang dapat di lihat dalam tabel 4.5.

e. Implementasi algoritma dissimilarity

Perhitungan nilai dissimilarity dilakukan setelah proses clustering

selesai.

Implementasi algoritma dissimilarity

function [dissimilarity] = hitungDiss(hasilcluster,k) jum=0;

pr=perms(1:k);

[rowp colp]= size(pr);

[rowh colh] = size(hasilcluster);

for (colm = 1: colh-1) hasilSem=0; for (brs=1:rowh) if hasilcluster(brs,1) ~= hasilcluster(brs,(colm+1)) hasilSem(brs,1)=1; else hasilSem(brs,1)=0; end end kolomhsl =hasilcluster(:,colm+1); for (per = 1: rowp-1)

for(jj = 1 : rowh) for(ii = 1: colp)

if kolomhsl(jj) == pr(per,ii) item(jj,:)=pr(per+1,ii); end end end for(pjg=1:rowh) if hasilcluster(pjg,colm)~= item(pjg,1) hasilSem(pjg,per+1)=1; else hasilSem(pjg,per+1)=0; end end kolomhsl=item; end jum=sum(hasilSem);

[rowj colj] = size(jum); for(indek =1:colj)

if jum(indek)==min(jum) xx=indek; end end nilai(:,colm)=hasilSem(:,xx); end [rown coln]=size(nilai);

dissimilarity =(sum((sum(nilai))/rown))/coln;

end

Program di atas digunakan untuk menghitung nilai disimilaritas. Hasil

clustering pada kolom pertama dijadikan acuan sebagai pembanding dengan hasil

pengelompokan berikutnya. Nilai dissimilaritas diperoleh dengan rata-rata jumlah

perbandingan.

Dalam setiap ciri dilakukan 10 kali percobaan, untuk setiap percobaan

di cari nilai dissimilaritas terkecil yang di tandai dengan warna kuning pada tabel.

Nilai dissimilaritas terkecil menunjukan bahwa kelompok tersebut merupakan

kelompok ideal karena mempunyai nilai simmilaritas besar, yang berarti bahwa

sebagian besar data dalam kelompok tersebut adalah tetap atau tidak berpindah,

misalkan dalam percobaan dengan ciri warna pada percobaan 1, diperoleh hasil

seperti dalam tabel 4.1.

Tabel 4.1 Contoh hasil dissimilaritas pada percobaan 1

k Perc 1 2 0.0836 3 0.4249 4 0.1511 5 0.2498 6 0.2889 7 0.1698

Pada percobaan tersebut terdapat nilai dissimilaritas untuk

masing-masing k=2 sampai 7. Dari nilai tersebut di cari nilai dissimilaritas paling kecil

yaitu 0.0836 pada k=2 sehingga pada percobaan pertama, k =2 merupakan k ideal,

begitu juga untuk percobaan 2 sampai percobaan 10, kemudian di hitung jumlah k

yang memiliki nilai dissimilaritas paling kecil dengan jumlah terbanyak yang

Tabel 4.2 Contoh hasil ekstraksi ciri warna

M at rik ekstraksi w arna Dat a rat a-rat a

Red rat a-rat a Green rat a-rat a Blue kadar Red kadar Green kadar Blue Batik1 Batik2 Batik3 91.1666 82.8614 99.9966 62.4302 56.3780 73.2272 43.5056 40.1346 54.8650 0.4625 0.4619 0.4384 0.3167 0.3143 0.3210 0.2207 0.2237 0.2405

Tabel 4.3 Contoh hasil ekstraksi ciri untuk informasi tepi

M at rik ekst raksi infor masi t epi

dat a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Bat ik1 1x16 1,241 1,22 1,0464 1,1424 1,328 1,1104 1,1632 1,22240 1,04 1,26080 1,292 1,196800 1,246 1,078 1,2736 1,0384 Bat ik2 1x16 1,170 1,19 1,0992 1,09760 1,273 1,296 1,1230 1,25600 1,1 1,227 1,164 1,3936 1,345 1,129 1,1312 0,9680 Bat ik3 1x16 1,220 1,220 1,17280 1,3504 1,459 1,200 1,212 0,942 1,27 1,124 1,283 1,3776 1,217 1,251 1,192 1,0144

Tabel 4.4 Contoh hasil ekstraksi ciri untuk warna dan informasi tepi

M at rik ekst raksi w arna dan infor masi t epi

dat a Bat ik1 1x24 91.166 62.430 43.505 0.4625 0.3167 1.2416 0.2207 1.2240 1.0464 1.1424 1.3280 1.163 1.222 1.0448 1.2608 1.2928 1.1968 1.2464 1.0784 1.2736 1.2736 1.2736 Bat ik2 1x24 99.996 73.227 54.864 0.4384 0.3210 82.8614 56.3780 40.1346 0.4619 0.3143 0.2237 1.1904 1.0992 1.0976 1.2736 1.2960 1.1232 1.2560 1.3936 1.3456 1.1296 1.1312 Bat ik 3 1x24 99.996 73.2272 54.8650 0.4384 0.3210 0.2405 1.2208 1.2112 1.1728 1.3504 1.4592 1.2784 1.1248 1.2832 1.3776 1.2176 1.2512 1.1920 1.1920 1.1920 1.4592 1.3504

Tabel 4.5 Contoh hasil pengelompokan

Dat a Perc 1 Perc 2 Perc 3 Perc 4 Perc 5 Perc 6 Perc 7 Perc 8 Perc 9 Perc 10

Bat ik 1 1 2 2 2 2 1 1 2 1 1

Bat ik 2 1 2 2 2 2 1 1 2 1 1

Bat ik 3 1 2 2 2 2 1 1 2 1 1

Bat ik 4 1 2 2 2 2 1 1 2 1 1

Dokumen terkait