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 , Zarnelly

12 Universitas Islam Negeri Sultan Syarif Kasim Riau

  

  2

   zar_nelly@yahoo.com

  

ABSTRAK

Pengukuran kohesi pada sebuah kelas merupakan parameter penting dalam pengukuran kualitas

sebuah 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 1

  5

  ,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 1

  1

  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(),

observers

  Percobaan 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

LCOM

  ASIL 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

constructor

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