PENERAPAN HIERARCHICAL CLUSTERING PADA PENGUKURAN KOHESI KELAS
Jurnal Sains, Teknologi dan Industri, Vol. 12, No. 1, Desember 2014, pp. 136 - 145
ISSN 1693-2390 print/ISSN 2407-0939 online
PENERAPAN HIERARCHICAL CLUSTERING PADA
PENGUKURAN KOHESI KELAS
1 2 Inggih Permana , Zarnelly12 Universitas Islam Negeri Sultan Syarif Kasim Riau
2
zar_nelly@yahoo.com
ABSTRAK
Pengukuran kohesi pada sebuah kelas merupakan parameter penting dalam pengukuran kualitassebuah perangkat lunak. Telah banyak penelitian dilakukan untuk hal ini, salah satunya menggunakan
hierarchical clustering . Teknik pengukuran kohesi menggunakan hierarchical clustering yang ditawarkan
oleh penelitian sebelumnya tidak mempertimbangkan hubungan tidak langsung antara method dan instance
variabel. Studi ini bertujuan untuk memperbaiki hal tersebut dengan cara memodifikasi matriks EP sehingga
matriks tersebut mempertimbangkan hubungan tidak langsung antara method dan instance variabel. Hasil
percobaan menunjukkan bahwa dengan menggunakan teknik ini tidak hanya dapat meningkatkan
kemampuan pengukuran kohesi, tetapi juga dapat membagi method-method dan instance variabel-variabel
dalam beberapa cluster menurut fungsi dan penggunaan umumnya Kata Kunci: Kelas, Kohesi, Hierarchical Clustering, Matriks EP, Matriks EP yang dimodifikasi, Method, Instance
Variabel
ABSTRACT
Measurement of cohesion in a class is an important parameter in measuring the quality of a
software. There have been many studies done on this subject, one of them using hierarchical clustering.
Cohesion measurement technique using hierarchical clustering offered by previous studies did not consider
indirect relations between the methods and instance variables. This study aims to rectify this by modifying the
EP matrix so that the matrix is considered an indirect relationship between the methods and instance
variables. The experimental results show that by using this technique not only can improve the cohesion
measurement, but also can divide those methods and instance variables into several clusters according to
function and general use.Key Words : Class, Cohesion, Hierarchical Clustering, Matrix EP, Instance Variabel
PENDAHULUAN Banyak metode untuk mengukur kohesi
pada sebuah kelas yang telah ditawarkan oleh Pengukuran kohesi pada sebuah kelas berbagai peneliti [1], [2], [3], [4], [5], [6], [7]. telah menjadi bagian penting dalam Metode terbaru dikemukakan oleh L. Sadoui, M. memprediksi kualitas sebuah perangkat lunak
Badri dan L. Badri[8] pada tahun 2012. Mereka yang dibuat dengan konsep berorientasi objek. menawarkan penggunaan metode hierarchical
Ini dikarenakan kohesi pada kelas
clustering untuk mengukur hubungan antara
menggambarkan keterhubungan antara
method -method dan instancevariabel-variabel komponen-komponen yang ada di dalam kelas.
pada sebuah kelas.Hasilnya adalah didapat Semakin tinggi kohesi sebuah kelas maka sebuah nilai yang lebih merefleksikan kohesi semakin tinggi hubungan antara anggota- dan juga struktur sebuah kelas. anggota di dalam kelas dan semakin jelas juga
Penelitian ini bertujuan untuk fungsi kelas tersebut. Sebaliknya, semakin meningkatkan kemampuan metode pengukuran rendah kohesi sebuah kelas maka semakin kohesi pada sebuah kelas yang dilakukan oleh L. rendah hubungan antara anggota-anggota di
Sadoui, M. Badri dan L. Badri [8] dalam kelas dan semakin semakin rendah juga sebelumnya.Penelitian mereka tidak kejelasan fungsi kelas tersebut. mempertimbangkan hubungan tidak langsung
Permana, et al../Penerapan Hierarchical Clustering
tool
perkembangan metode perhitungan kohesi pada kelas yang dibuat oleh H.S. Chae dan Y.R. Kwon [10] ditambah dengan perkembangan terbaru tentang perhitungan kohesi dari tahun 2012.
Tabel 1 merupakan roadmap
warisan dari kelas parent tidak digunakan dalam perhitungan kohesi [9].
method -method dan instance variable-variabel
lain di tubuhnya. Perlu diketahui
method
Keterhubungan antar method tersebut bisa dikarenakan oleh method-method tersebut menggunakan instance variabel yang sama atau bisa juga karena sebuah method memanggil
Kohesi adalah ukuran seberapa baik baris-baris kode sumber (source code) bekerja sama di dalam sebuah modul untuk menyediakan fungsionalitas yang spesifik [9]. Sebuah kelas memiliki kohesif yang baik apabila method-method yang ada di dalam kelas tersebut memiliki keterhubungan yang dekat tetapi tetap melakukan fungsi tunggal dikelas tersebut.
digunakan untuk pengukuran secara manual nilai kohesi. Selanjutnya dilakukan analisis terhadap hasil perhitungan kohesi yang didapat.
Hasilclusterakan
ini dapat diunduh di
XLSTAT,
antara method dan instance variabel. Penelitian ini juga menggunakan dua buah metode pengukuran kohesi terkenal, yaituLCOM5 [4] dan TCC [6] sebagai perbandingan.
singkat pada bagian 4. Peng-cluster-an dilakukan dengan tool statistik yang bernama
clustering . Metode ini akan dijelaskan secara
Monteiro [13]. Kedua kelas tersebut juga digunakan dalam penelitian pengukuran kohesi dengan menggunakan clustering sebelumnya [8]. Dari kedua kelas tersebut akan dibuat matriks EP, Matriks ini akan dijelaskan pada bagian 5 (matriks EP berdasarkan penelitian sebelumnya [8]) dan 6 (matriks EP yang ditawarkan oleh penelitian ini). Matriks EP tersebut kemudian menjadi sumber data untuk proses peng-cluster- an dengan menggunakan metode hierarchical
Gambar 1 Desain umum penelitian Kelas yang digunakan dalam penelitian ini berjumlah dua buah. Kelas pertama berasal dari penelitian St. Hanenberg dan R. Unland [12] dan kelas kedua berasal dari penelitian M. J. T.
Cluster dengan Pembentukan menggunakan Hierarchical Clustering Matriks EP Pengukuran Kohesi
merupakan desain secara umum teknik pengukuran kohesi yang dilakukan dalam penelitian ini.Desain ini dibuat untuk mempermudah memahami bagaimana sebenarnya teknik yang ditawarkan dalam studi inibekerja. Kelas
DESAIN KERJA Gambar 1
dilakukan. Bagian 7 adalah percobaan dan analisis terhadap metode yang ditawarkan penelitian ini. Bagian 8 merupakan bagian terakhir dari makalah ini, berisi tentang kesimpulan dan saran kedepan.
method dan instance variabel sebelum cluster
tentang metode yang ditawarkan oleh Lazhar, Mourad dan Linda [8], sebagai ide dasar penelitian ini. Bagian 6 menjelaskan tentang ide yang ditawarkan oleh penelitian ini, yaitu penambahan hubungan tidak langsung antara
hierarchical clustering . Bagian 5 menjelaskan
Makalah ini dibagi menjadi beberapa bagian untuk mempermudah mengemukakan ide yang akan kami tawarkan. Bagian 1, bagian ini, merupakan bagian yang membahas tentang latar belakang dan tujuan penelitian yang dilakukan. Bagian 2 menjelaskan tentang desain yang digunakan dalam penelitian ini.Bagian 3 menjelaskan sekilas tentang teori-teori dasar kohesi pada class. Bagian 4 akan menjelaskan sekilas tentang metode cluster yang akan digunakan pada penelitian ini, yaitu
KOHESI PADA KELAS
Jurnal Sains, Teknologi dan Industri, Vol. 12, No. 1, Desember 2014, pp. 136 - 145
ISSN 1693-2390 print/ISSN 2407-0939 online
ABEL OADMAP PERKEMBANGAN METODE PENGUKURAN KOHESI PADA KELAS
T
1 R
Nama Tahun Cara pengukuran
LCOM1 1991 Jumlah method-method berpasangan yang tidak menggunakaninstance variabel LCOM2 1994 Disediakan kelas dengan } { } { }. method{
[2] Disediakan { } = himpunan instance variabel yang digunakan oleh method{ }.
Maka ada n buah himpunan { } { }.
Disediakan { }dan { }. Jika semua
} { himpunan { } adalah maka .
| | | | | | | | {
} LCOM3 1995 Disediakan graf yang tidak mempunyai arah G, dimana simpul-simpulnya adalah [3] method -method sebuah kelas.Sisi antara dua buah simpul ada jika setidak-tidaknya dua buah method menggunakan satu instance variabel yang sama.LCOM3 =
|jumlah komponen yang terhubung dari G| LCOM4 1995 Hampir sama dengan LCOM3, hanya saja hubungan dua buah simpul selain dari [3] instance variabel,bisa juga terjadi karena sebuah method memanggil method lain di tubuhnya.
Co [3] 1995 Disediakan graf yang tidak mempunyai arah G, dengan simpul V dan sisi E. Maka
| | | |
kohesi dihitung dengan rumus
| | | |
LCC [4] 1995 Disediakan sebuah kelas dengan N buah method publik. Anggap NP sebagai jumlah maksimum method publik yang berpasangan.
, untuk Nmethod publik. Disediakan NIC sebagai hubungan langsung maupun tidak langsung antara method publik.
Maka LCC didefinisikan sebagai jumlah relatif dari hubungan langsung maupun tidak langsung antara method publik.
TCC [4] 1995 Hampir sama dengan LCC, hanya saja TCC tidak mempertimbangkan hubungan tidak langsung antara method publik, atau disebut dengan NDC.
Maka TCC didefinisikan sebagai jumlah relatif dari hubungan langsung antara method publik.
LCOM5 1996 Disediakan
{ } { } dan sebagai himpunan
[5]
method , himpunan instance variabel dan referensi instance variabel yang digunakan sebuah method.
∑ | ( )|
Coh [6] 1998
∑ | ( )|
Merupakan pengembangan dari LCOM5, CBMC [7] 2000 Disediakan F c sebagai faktor konektifitas dan F s sebagai faktor struktur. Maka
COH CL [8] 2012 Disediakan kelas dengan c merupakan graf
method{ } { } { }, G
hasil clustering dan E A adalah simpul yang masih berhubungan setelah
buah method di-clustering.
Jumlah maksimum method yang berpasangan adalah | |
Maka,
Permana, et al../Penerapan Hierarchical Clustering
HIERARCHICAL CLUSTERING
6
Gambar 3 merupakan hasil proses hierarchical clustering Tabel 2
disebutkan di bagian 2 bahwa penelitian ini akan menggunakan tool XLSTAT. Tool ini juga digunakan pada penelitian sebelumnya.
hierarchicalclustering . Seperti yang telah
Matriks EP yang didapat akan digunakan sebagai input dalam proses
4 }.Tabel 2 menunjukan matriks EP hasil dari contoh ini.
= {i
7
} dan U
5
,i
4
= {i
}, U
m 1 m 2 m 3 m 4 m
5 m
6 m 7 i 1 i 2 i 3 i 4 i 5 m 15
,i
4
,i
1
= {i
5
}, U
1
{i
1 ,i 2 ,i 3 ,m 7 }, U 2 = {i 1 ,i 2 , m 7 }, U 3 = {i 2 ,i 3 }, U 4 =
{i
dengan menggunakan XLSTAT. TABEL2 C ONTOH MATRIKS EP
1
1
1
is si m il ari ty Dendrogram
1 x6 x5 x4 x1 x2 x3 0.1 0.2 0.3 0.4 0.5 0.6 0.7 D
1
1
1
1
i 1
1
m 7
1
1
m 6
1
digunakan oleh method m i . Diberikan U
1
m 5
1
m 4
1
1
m 3
1
1
1
m 2
1
1
1 =
1 , i 2 , i 3 , i 4 , i 5 }.U i adalah himpunan method dan himpunan instance variabel yang
Hierarchical clustering merupakan
matriks EP (Entities-Properties). Matriks EP adalah sebuah matrik yang merepresentasikan hubungan antara method-metthod dan instance variabel-variabel yang ada pada sebuah kelas[8].Disediakan sebuah kelas C yang mempunyai himpunan methodM dan himpunan
a j
(n+k)×(n+k), atau dengan kata lain Matriks EP merupakan matriks persegi. Matriks EP merupakan matriks biner. Jika methodm i menggunakan secara langsung instance variabel
1 , i 2 , ..., i n }. Ukuran matriks EP adalah
}. I mempunya k buah instance variabel, sehingga I = {i
n
, ..., m
2
, m
1
method , sehingga M = {m
variable I. M mempunyai n buah
instance
hierarchical clustering adalah dengan membuat
i
Langkah awal yang dilakukan untuk pengukuran kohesi sebuah kelas dengan metode
Bagian ini akan menjelaskan secara singkat tentang teknik yang dilakukan pada penelitian sebelumnya[8]. Teknik yang menjadi dasar penelitian ini. Sedangkan ide baru yang ditawarkan oleh peneltian ini akan dijelaskan dibagian 6.
MENGGUNAKAN HIERARCHICAL CLUSTERING
, dimana N jumlah data dan k adalah jumlah cluster. Berarti untuk awal N = k. 2) Hitung jarak antar cluster, pada penelitian ini digunakan metodejaccard. 3) Cari dua buah cluster yang mempunyai jarak paling maksimal, lalu gabungkan dalam cluster baru, sehingga k = k-1. 4) Kembali ke langkah ketiga, lakukan sampai dicapai cluster yang diinginkan.
cluster
pada hierarchical clustering, berikut algoritmanya [11] : 1) Pada awal diasumsikan setiap data adalah
complete linkage
Pada penelitian ini digunakan teknik
hierarchical clustering
Gambar 2. Contoh dendogram hasil
dimana N adalah jumlah data dan k adalah jumlah cluster.
Agglomerative yaitu dari Ncluster ke kcluster,
teknik clusteringyang biasa ditampilkan dalam dendogram. Arahhierarchical clusteringyang digunakan pada penelitian ini adalah
, maka nilai EP(m
,a
= {i
2
variabelI
} dan himpunan instance
7
, m
6
, m
5
, m
4
, m
3
m
,
, m
j
1
C yang memiliki himpunan methodM = {m
) diisi 1. Sebagai contoh diberikan sebuah kelas
k
,m
i
maka nilai EP(m
k
) diisi dengan 1. Jika sebuah methodm i memanggil secara langsung method m
i
,m
j
) dan nilai EP(a
PENGUKURAN KOHESI PADA
Jurnal Sains, Teknologi dan Industri, Vol. 12, No. 1, Desember 2014, pp. 136 - 145
1 5
ISSN 1693-2390 print/ISSN 2407-0939 online i 2
seperti yang terlihat pada Gambar 4 . Untuk pengukuran kohesi maka harus dihitung terlebih dahulu berapa kemungkinan jumlah sisi yang terbentuk jika semua method yang ada dalam sebuah kelas terhubung. Perhitungan tersebut dilakukan dengan rumus
C
di dalam sebuah clusterC i menjadi sebuah simpul yang dihubungkan satu sama lain dengan menggunakan sisi yang terdapat di himpunan E A , sehingga terbentuk sebuah graf tidak berarah G
cluster yang mengandung method saja. Method- method
1 Hasil clustering terlihat seperti di dendogram yang terlihat pada Gambar 3. Di gambar tersebut terdapat 4 buah cluster. Untuk pengukuran kohesi yang diambil hanyalah
1
1
Gambar 3. Contoh hasil peng-cluster-an matriks EP pada tabel 2 dengan menggunakanhierarchical clustering m1 m2
1
i 4
1
i 3
1
1
1
m3 m4 m5 m7 m6 Gambar 4. Graf hasil clustering.
PENGUKURAN KOHESI DENGAN MEMPERTIMBANGKAN HUBUNGAN
A
}, U
2
dan m
1
, himpunan yang mewakilimethod dan instance variabelm
2
dan U
1
Pada U
1 }, U 5 = {i 1 , i 4 , i 5 }, U 6 = {i 4 , i 5 } dan U 7 = {i 4 }.
= {i
4
3
7
, i
2
= {i
3
}, U
7
, m
2
, i
1
= {i
2
, terlihat bahwa keduanya menggunakan method lain yaitu m
. Sedangkan U
7
2
m 7 , i 4 }. Hasil modifikasi matriks EP ini dapat dilihat di Tabel 3. i4 i5 i3 i1 i2 m7 m5 m6 m1 m2 m3 m4 0.2 0.4 0.6 0.8 1 1.2 D is si m il ari ty Dendrogram
,
2
, i
1
= {i
2
, i 4 } dan U
7
, m
3
, i
, i
7
1
= {i
1
, sehingga U
4
menggunakani
2
dan m
1
secara tidak langsung m
7 memiliki anggotai 4 . Jadi
, himpunan yang mewakili method dan instance variabel yang digunakan oleh m
}, U
, m
|, sehingga rumus untuk mencari kohesi sebuah kelas menjadi seperti berikut ini [8].
,m
4
, m
3
1 , m 2 , m
yang memiliki himpunan methodM = {m
C
secara tidak langsung melalui m j . Untuk aturan pengisian matriks EP yang lainnya sama dengan yang ada di bagian 5. Pada contoh di bagian 5 diberikan sebuah kelas
k
menggunakan i
j
) saja yang diisi dengan nilai 1, tetapiEP(m j ,i k ) juga diisi dengan nilai 1, karena m
k
j
5
, maka tidak hanya EP(m
k
menggunakan instance variabel i
j
dan m
methodm i memanggil secara langsung method m j
Bagian ini akan menjelaskantentang teknik yang ditawarkan oleh penelitian ini. Pada dasarnya ide yang ditawarkan penelitian ini hanyalah memodifikasi matriks EP sehingga memuat hubungan tak langsung antara method dan instance variabel. Misalkan sebuah
VARIABEL
TIDAK LANGSUNG ANTARA METHOD DAN
method [4]. Setelah itu baru dihitung sisi yang
terbentuk setelah proses clustering dilakukan, jumlah sisi yang terbentuk itu disimbolkan dengan |E
| | Pada contoh ini didapat NP = 21 dan |E A | = 9, sehingga COH CL = 9/21 = 0.43.
, m
, m
3
i
, i
2
i
,
1
= {i
1
. Diberikan U
, dimana N adalah jumlah
digunakan oleh method m
method dan himpunan instance variabelyang
adalah himpunan
}. U
6
5
, i
4
, i
3
, i
2
, i
1
} dan himpunan instance variabelI = {i
7
, m
i
Permana, et al../Penerapan Hierarchical Clustering
ASIL MODIFIKASI MATRIKS
TABEL 3 H EP.
m 1 m 2 m 3 m 4 m
5 m
6 m 7 i 1 i 2 i 3 i 4 i 5 m 11
1
1
1
1
m 3
1
1
m 4
1
m 5
1
1
1
m 6
1
1
m 7
1
i 1
1
1
1
1
1
i 2
1
1
1
i 3
1
i 4
1
1
1
1
1
i 5
1
1
informObservers ()}, attachObservers () =
Proses selanjutnya adalah sama dengan {observers}, detachObservers() = {observers} proses yang ada di bagian 5. Matriks EP di dan informObservers() = {observers}. Karena
Tabel 3 di clustering dengan menggunakan methodsetX (), setY() dan setXY() memanggil
hierarchicalclustering , lalu dibuat graf hasil methodinformObservers () daninformObservers()
clustering instance, dan yang terakhir dihitung kohesinya. sendiri menggunakan variabel
observers , maka ketiga properti method tersebut
PERCOBAAN DAN ANALISIS menjadi: setX() = {x, informObservers(),
observersPercobaan ini akan menggunakan kelas }, setY() = {y, informObservers(), yang juga telah digunakan pada penelitian observers }, setXY() = {x, y, informObservers(),
observers
tentang pengukuran kohesi dengan }. Matriks EP untuk kelas Point menggunakan hierarchical clustering [8] ditunjukkan pada Tabel 4. sebelumnya. Kelas Point berasal dari penelitianSt. Hanenberg dan R. Unland[12] dan kelas TangleStack berasal dari penelitian M. J. T. Monteiro[13]. Seperti yang telah dijelaskan pada bagian sebelumnya, proses hierarchical clustering akan menggunakan tool
XLSTAT. Teknik
hierarchical clustering
yang digunakan adalah
complete linkage dan perhitungan jarak antar cluster menggunakan jaccard.
A. Percobaan pada Kelas Point
Pada percobaan ini akan diukur kohesi pada kelas point. Seperti yang terlihat pada Gambar
5
, kelas point terdiri dari 3 buah instance variabel (x, y dan observers) dan 6 buah method (setX(), setY(), setXY(), attachObservers(),
detachObservers informObservers () dan ()).
Berikutinstance variabel ataumethod yang Gambar 5. Kode kelas Point. digunakanoleh masing-masingmethod di kelas
point
:setX() = {x, informObservers()}, setY() = {y, informObservers()}, setXY() = {x, y,
1 Y
TABEL
0.73
Nilai
5 [5] TC C [4] COH C L [8] COH CL *
Metrik
s
LCOMASIL PERHITUNGAN KOHESI KELAS POINT .
5 H
clustering kelas Point. SetX() SetY() SetX() attachObservers() detachObservers() K1 informObservers() K2 Gambar 7. Graf kelas Pointsetelah di-cluster.
0.4
Gambar 6. Dendogram hasil hierarchical
COH CL
| = 6. Karena jumlahmethod 6 buah maka NP= 15. Dengan menggunakan rumus yang telah dijelaskan sebelumnya didapat
A
merupakan graf yang menunjukkan koneksi antar method setelah dilakukan proses peng-cluster-an. Pada gambar tersebut terlihat hanya ada 6 buah simpul yang terhubung sehingga |E
Gambar 7
0.33
0.4 COH
setXY ()}. Dendogram tersebut juga
Percobaan pada Kelas TangleStack
O method TangleStack () merupakan o b serv ers x y in fo rm b serv ers () a tt a ch O b serv ers () d et a ch O b serv ers () set Y () set X( ) set XY () 0.2 0.4 0.6 0.8 1 1.2 D is si m il ari ty Dendrogram
(), top(), isFull() dan isEmpty()). Karena
pop
(TangleStack(), toString(), display(), push(),
_label dan _text) dan 8 buah method
Pada percobaan ini akan diukur kohesi pada kelas TangleStack. Seperti yang terlihat pada gambar 8, kelas TangelStack terdiri dari 5 buah instance variabel (_top, _elements, s_size,
B.
CL
pengukuran kohesi dengan cluster sebelumnya [8] juga telah berhasil membagi method-method menjadi bagian seperti ini, tetapi teknik yang dilakukan penelitian ini lebih rapi mengelompokkan instance variabel dalam kelompok khusus seperti yang terlihat pada dendogram di Gambar 6.
instance variabel observers. Sebenarnya teknik
7 terlihat sebenarnya method-method di kelas Point dibagi menjadi 2 buah bagian, yaitu method
CL
dan COH
CL
menunjukkan bahwa instance variabel dikelompokkan dalam satu cluster khusus.
= {setX(), setY(),
Jurnal Sains, Teknologi dan Industri, Vol. 12, No. 1, Desember 2014, pp. 136 - 145
1
1 attachObservers()
1
1
1
1 setXY()
1
1 setY()
1 informObservers()
1
1
KELAS POINT . setX() setY() setXY() attachObse rvers() detachObs ervers() informOb servers() x y observers setX()
4 MATRIKS EP
TABEL
ISSN 1693-2390 print/ISSN 2407-0939 online
1 detachObservers()
1 X
2
1 Hasil clustering dengan menggunakan hierarchical clustering terlihat pada dendogram
detachObservers ()} dan K
(),
attachObservers
= {informObservers(),
1
diGambar 6. Pada dendogram tersebut terlihat bahwa method-method di kelas Point dibagi menjadi dua buah cluster , K
1
1
1
1
1
1
1 observers
1
- merupakan hasil perhitungan dengan pendekatan yang ditawarkan penelitian ini. Pada Tabel 5 terlihat penggunaan LCOM5 menunjukkan bahwa kelas point memiliki kohesi yang baik, yaitu 0.7. Sedangkan dengan menggunakan TCC, COH
- = 0.4.Perbandingan hasil pengukuran kohesi dengan metode lain [4] [5] [8] dapat dilihat di Tabel 5.
- terlihat kohesi pada kelas Point rendah, yaitu masing-masing 0.33, 0.4 dan 0.4.Pada Gambar
- method yang memanajemen point (x dan y) dan method-method yang memanajemen
Permana, et al../Penerapan Hierarchical Clustering
constructorpada kelas TangleStack, maka
method tersebut diabaikan dalam perhitungan
kohesi [4]. Berikutinstance variabel atau method yang digunakan masing-masing method di kelas
TangleStack : toString() = {_top, _elements}, display () = {_text}, push() = {_top, _elements, display
(),isFull()}, pop() = {_top, display(),
isEmpty() }, top () = {_top, _elements , isEmpty() }, isFull() = {_top, s_size} dan isEmpty () = {_top}.
Methodpush () memanggil metho- display
() dan isFull() dalam tubuhnya. Oleh sebab itu semua instance variabel yang ada
method display () dan isFull() yang belum ada di method push () ditambahkan
Gambar 8. Kode kelas TangleStack. kedalammethodpush(), sehinggaproperti method
push() tersebut menjadi:push() = {_top,
Hasil peng-clusteri-ankelas TangleStack
_elements display isFull s_size
, (), (), , dengan menggunakan hierarchical clustering
_text }.Methodpop() memanggil methoddisplay()
terlihat pada dendogram di Gambar 9. Pada dan isEmpty() dalam tubuhnya. Karena instance dendogram tersebut terlihat bahwa method- variabel yang digunakan di method isEmprty() method di kelas TangleStack dibagi menjadi dua telah digunakan oleh method pop(), maka tidak buah cluster, K = {toString(), top(), isFull(),
1
perubahan properti methodpop() karena method isEmpty ()} dan K = {display(), push(), pop()}.
2 isEmpty
(). Sedangkan pada method display() Dendogram tersebut juga menunjukkan bahwa terdapat instance variabel yang belum
instance variabel dikelompokkan dua
digunakan oleh method pop(), sehingga properti buahcluster, yaitu kelompok instance variabel
method pop()
tersebut menjadi:pop() = {_top, yang digunakan pada method-method yang ada
display (), isEmpty(), _text}.Method top()
di matriks EP dan kelompok instance variabel menggunakan methodisEmpty(), tetapi instance yang tidak digunakan sama sekali karena hanya variabel yang digunakan oleh method isEmpty() method constructor digunakan pada . telah digunakan method top(), oleh sebab itu
Sebagaimana yang telah dijelaskan sebelumnya, tidak ada perubahan properti pada method top().
method constructor diabaikan dalam
Matriks EP untuk kelas TangleStack perhitungan kohesi. ditunjukkan pada Tabel 6.
TABEL 6 H ASIL PERHITUNGAN KOHESI KELAS T ANGLE S TACK .
toString display push pop( top( isFull isEmpty _to _elemen s_siz _lab _tex () () () ) ) () () p ts e el t toString
1
1 () display(
1 ) push()
1
1
1
1
1
1 pop()
1
1
1
1 top()
1
1
1 isFull()
1
1 isEmpty
1 () _top
1
1
1
1
1
1 _elemen
1
1
1 ts s_size
1
1 _label _text
1
1
1 Jurnal Sains, Teknologi dan Industri, Vol. 12, No. 1, Desember 2014, pp. 136 - 145
ISSN 1693-2390 print/ISSN 2407-0939 online
method
berdasarkan fungsi umumnya. Kelompok pertama (toString(), top (), isFull () danisEmpty())adalah kelompokmethod yang hanya memanfaatkankeadaan stack tanpa mengubah isi di dalam stack.Kelompok kedua (display(), push() dan pop()) adalah kelompok
method yang bisa mengubah isi stack, yaitu pop () untuk mengeluarkan satu elemen dari stuck
dan push() untuk mengisi satu elemen ke dalam stuck . Sedangkanmethod display () memang tidak berpengaruh pada isi stuck danseharusnya method inimemang berada pada
cluster tersendiri. Seandainya teknik
pemotongan untuk menentukan jumlah
cluster bisa lebih tepat, sehingga bisa menjadi
seperti pada dendogram di Gambar 11, makamethod display() akan berada di cluster tersendiri, karena memang method display() mempunyai fungsi yang berbeda dari method-
lainnya, yaitu menampilkan isi stuck ke dalam text field.Dendogram di Gambar 11 tersebut merupakan hasil hierarchical clustering dengan jumlah cluster yang telah ditentukan sebelumnya secara manual, yaitu 5 buah cluster.
di kelas
Gambar 11. Dendogram hasil hierarchical
clustering
kelas TangleStackdengan penentuan jumlah cluster manual, yaitu 5 buah cluster.
Studi ini bertujuan untuk mengukur kohesi pada sebuah kelas menggunakan
hierarchical clustering
dengan mempertim- bangkan hubungan tidak langsung antaramethod dan instance variabel. Pengukuran kohesi denganhierarchical clusteringsebenarnya telah dilakukan oleh peneliti sebelumnya [8], tetapi pengukuran kohesi tersebut dilakukan tanpa mempertimbangkan hubungan tidak langsung tersebut. Penelitian ini mengubah matriks EP _t ext s_s ize _t o p _e lem en ts _l a b el to S tr in g () to p () is F u ll () is E m p ty () d is p la y () p u sh () p o p () 0.2 0.4 0.6 0.8 1 1.2 D
is si m il ari ty Dendrogram _t ext s_s ize _t o p _e lem en ts _l a b el to S tr in g () to p () is F u ll () is E m p ty () d is p la y () p u sh () p o p () 0.2 0.4 0.6 0.8 1 1.2 D iss im il ari ty Dendrogram
TangleStack
method-method
Gambar 9. Dendogram hasil hierarchical clustering kelas TangleStack.
K1 K2
Gambar 10. Graf kelas TangleStacksetelah di-
Gambar 10 merupakan graf yang
menunjukkan koneksi antar method setelah dilakukan proses peng-cluster-an pada kelas
TangleStack . Pada gambar tersebut terlihat ada 9 buah simpul yang terhubung sehingga |E A | = 9.
Karena jumlah method 7 buah maka NP = 21. Dengan menggunakan rumus yang telah dijelaskan sebelumnya didapat COH CL *= 0.33.
Perbandingan hasil pengukuran kohesi dapat dilihat di Tabel 5. display() push()
pop() isFull() isEmpty() toString()
top()
cluster .
0.33 Pada Tabel 7 terlihat penggunaan LCOM5, TCC, COH CL menunjukkan bahwa kelas TangleStack memiliki kohesi yang baik, yaitu 0.7, 1 dan 0.71. Sedangkan dengan menggunakan COH CL * terlihat kohesi pada kelas TangleStackrendah, yaitu hanya 0.33. Ini karena proses hierarchicalclustering menghasilkan dua kelompok yang mempunyai jumlah elemen yang hampir sama, sehingga jumlah sisinya semakin sedikit. Tetapi perlu diketahui bahwa proses ini berhasil membagi
TABEL
7 H ASIL PERHITUNGAN KOHESI KELAS
T ANGLE S TACK .
Metrik s LCOM 5 [5] TC C [4] COH C L [8] COH CL *
Nilai
0.7
1
0.71
KESIMPULAN DAN SARAN KEDEPAN
Permana, et al../Penerapan Hierarchical Clustering
L.C. Briand, J.W. Daly, dan J.K. Wust, “A Unified Framework for Cohesion Measurement in Object-Oriented Systems ,” Empirical Software Eng ., vol. 1, no. 1, hal. 65-117, 1998.
Monteiro, “Refactorings to Evolve Object- Ori- ented Systems with Aspect-Oriented Concepts ,” Ph.D. Thesis, Universidade do Minho, Minho, 2005.
M. J. T.
Classifying Tangled Code ,” 2ndAOSD-GI Workshop , Bonn, 21- 22 Februari 2002.
,” Seminar Nasional Informatika. ISSN: 1979-2328. 2009. St. Hanenberg and R. Unland, “A Proposal for
Kematangan Buah Tomat dengan Metode Valley Tracing
Metrics for Classes by Considering Dependent Instance Variables, ”IEEE Transactions on Software Engineering, vol. 30, no. 11, hal. 826-832. 2004. M.H. Noor dan M. Hariadi, “Image Cluster Berdasarkan Warna untuk Identifikasi
, vol. 2, hal. 38-44, 2011. H.S. Chae dan Y.R. Kwon, “Improving Cohesion
S.M. Chandrika, E.S. Babu dan N. Srikanth, “Conceptual Cohesion of Classes in Object Oriented Systems ,” International Journal of Computer Science and Telecommunications
Cohesion Measurement: Towards a Novel Approach Using Hierarchical Clustering ,” Journal of Software Engineering and Application , vol 5, hal. 449-458, 2012.