## Metrik Kompleksitas Software Berorientasi Objek
Kalvin Niam Aunillah 1,* , Akbar Roihan 2 , Hikmah Damasta Ribilanam 3 , Muhammad Ainul Yaqin 4
Jurusan Teknik Informatika, Universitas Islam Negeri Maulana Malik Ibrahim, Indonesia
1 17650060@student.uin-malang.ac.id; 2 17650006@student.uin-malang.ac.id; 3 17650062@student.uin-malang.ac.id;
4 yaqinov@ti.uin-malang.ac.id; *corresponding author

## PENDAHULUAN
Teknologi merupakan salah satu ciptaan manusia yang terus mengalami perkembangan, salah satu contoh produk teknologi yakni software. Software berperan sebagai sebagai suatu penjembatan antara hardware (perangkat keras) dengan pengguna, karena itu software dapat membantu meringankan pekerjaan manusia melalui hardware hingga sampai saat ini. Selain itu teknologi diperkirakan akan terus berkembang hingga dapat bepikir dan merasakan[1]. Object  oriented (OO)  merupakan  suatu  teknik  perancangan  sistem  software  dengan pendekatan  program  yang  berorientasi  objek,  OO  sering  juga  disebut object  oriented progamming dalam aspek syntax program (OOP) [2].
OO sering digunakan developer saat perancangan sistem software, hal ini dikarenakan dapat mempermudah saat bekerja dalam tim.  Kompleksitas suatu software harus diketahui oleh  para    developer,  dikarenakan  selain untuk  mengetahui  nilai  kompleksitas  juga  dapat dijadikan penentu atau patokan harga suatu sotware. Semakin kompleks suatu software maka semakin tinggi atau besar harga software, dalam paper ini akan membahas mengenai metrik

## I N F O A R T I K E L A B S T R A K

## Sejarah Artikel
Diterima: 24 Desember 2020 Direvisi: 20 Januari 2021 Diterbitkan: 30 April 2021 Teknologi  sudah  banyak  berperan  andil  besar  dalam  meringankan pekerjaan  manusia  saat  ini,  teknologi  diperkirakan  akan  terus berkembang. Software merupakan salah satu contoh dari perkembangan teknologi  yang  sampai  sekarang  banyak  digunakan.  Hal  ini  yang menyebabkan  teknik  pengembangan  software  semakin  berkembang, dahulu developer menggunakan teknik procedural programming namun teknik  ini  mulai  tidak  praktis  untuk  bekerja  dalam  tim  hingga  dikenal teknik object  oriented atau  dalam  pemrogaman  disebut object  oriented progamming .  Berorientasi  objek  atau object  oriented mulai  banyak diterapkan  karena  lebih  mempermudah developer saat  bekerja  dalam bentuk  tim.  Dikarenakan  semakin  banyak  pengguna  teknik object oriented dibutuhkan  formula  baru  untuk  menghitung  kompleksitas software  berorientasi  objek,  hal  ini  dikarenakan  formula  yang  diajukan peneliti  sebelumnya  lebih  mengarah  formula  untuk  menghitung kompleksitas  software  berbasis procedural .  Selain  itu,  mengetahui kompleksitas  metrik  dibutuhkan  agar  mempermudah  developer  untuk mengetahui kualitas dari software buatannya. Metrik yang diajukan pada penelitian  ini  memperhitungkan  aspek  dari  relasi  antar class , method , attribute dan  bobot class .  Metrik  yang  kami  usulkan  menghitung kompleksitas  berorientasi  objek  berdasarkan  diagram  UML  ( Unified Modeling Language ) untuk memodelkan sistemnya dan direpresentasikan  ke  dalam  bentuk  WDAG.  Setelah  itu,  metrik  akan divalidasi menggunakan dasar teori sembilan properti Weyuker. Setelah dilakukan  validasi,  hasil  yang  didapat  adalah  delapan  dari  sembilan properti Weyuker terpenuhi.
Kata Kunci
Object Oriented Metrik Kompleksitas Kompleksitas Software
Vol. 3, No. 1, April 2021, Halaman 103-110
kompleksitas  software  berorientasi  objek  melalui  perhitungan  dari  diagram  UML  lalu didokumentasikan dalam graph .
Pada perkembangannya, metrik kompleksitas software berorientasi objek terdapat istilah yakni Object  oriented  Complexity  Metric (OOCM)  merupakan  metrik  yang  mengukur kompleksitas  dan  kerumitan software yang  berorientasi  objek. OOCM sudah  banyak diajukan oleh peneliti. Akan tetapi, kebanyakan rumus yang digunakan belum cukup efektif untuk  mengukur  kompleksitas  hingga  pengembangan  rumus  saat  ini.  Pemrograman berorientasi objek (OOP) telah mendominasi bidang pemrograman perangkat lunak selama beberapa dekade terakhir. Perbaikan dan modifikasi dalam teknik-teknik ini masih menjalani penelitian  [3],  sehingga  masih  belum  ada  metrik  yang  menggunakan  pendekatan graph dalam  perhitungannya. Development  software OOP  berbeda  dengan devolempent tradisional, yang berbeda adalah teknik dalam pengembangannya [4]. Oleh sebab itu, paper ini  mengajukan  metrik  kompleksitas  berorientasi  objek  dengan  pendekatan graph . Pendekatan ini dilakukan berdasarkan diagram UML dengan cara mengukur kompleksitas berorientasi  objek  yang  didasarkan  pada  bobot class yang  dihubungkan  oleh  relasi  antar class . Dengan demikian, hasil perhitungan metrik kompleksitas berorientasi objek diperoleh dari  perbandingan  terbalik  antara  Tm  dan  WCC.  Tahap  terakhir  adalah  validasi  metrik menggunakan teori sembilan Weyuker’s Properties .

## METODE

## Identifikasi Metrik Menggunakan Goal Question Metrics (GQM)
Untuk  memudahkan  identifikasi  dan  penggambaran  penelitian,  peneliti  menerapkan Goal  Question  Metrics (GQM).  Metode  dimulai  dari goal  measurement dilanjutkan serangkaian pertanyaan untuk setiap goal , dimana setiap pertanyaan akan dijawab apabila goal tercapai[8] , sebagaimana ditampilkan pada Tabel 1 dan Tabel 2.
Tabel 1. Goal Measurement
Analysis : Mengukur kompleksitas software berorientasi objek. Issue : Untuk dapat mendapatkan besaran nilai kompleksitas dari suatu software berorientasi objek. Focus of measurement : Class, method, attribute, Relasi kelas,  Jumlah Child, Tingkat kedalaman pewarisan.

## Point of view
: Progammer Context of Measurement : Kualitas suatu software dapat dinilai melalui struktur didalamnya. Tabel 2. Identifikasi goal kompleksitas software berorientasi objek Q.1 Apa yang membentuk berorientasi objek?
M.1 Class dan relasi
Q.2 Apa yang membentuk sebuah Class ?
M.2 Methods dan attributes
Q.3 Apa saja jenis relasi?
M.3 Inheritance, Association, Aggregation, Composition dan Interface
Q.4 Apa saja metrik berorientasi objek yang pernah diajukan?
M.4 Graph dan jenis relasi

## Tinjauan ulang formula kompleksitas
Merepresentasi kompleksitas berorientasi objek, dengan mempertimbangkan beberapa hal yakni penelitian terdahulu menngenai kompleksitas method dan jumlah atribut di dalam kelas[5].  Serta  penelitian  Chidamber  &  Kemerer  yang  merepresentasikan  kompleksitas berorientasi objek, dengan memperthitungkan [6][7]:
Sedangkan perbandingan formula kompleksitas dalam bentuk Tabel 3.
Tabel 3. Metrik-metrik yang telah disertakan dalam formula kompleksitas
C M A R WM C DIT NOC CB O RFC LCO M Chidamber dkk., 1994 - √ - - √ √ √ √ √ √ Sanjay dkk., 2008 - √ √ - - - - - - - Metrik yang diusulkan √ √ √ √ √ √ √ - √ -
Tabel 3 merupakan perbandingan formula kompleksitas setiap usulan dari penemu, dari tabel  tersebut  diketahui  formula  setiap  metrik  yang  diusulkan.  pada  metode  metrik kompleksitas Chidamber belum diperhitungkan formula dari kuantitas class , attribute dan relasi. Sedangkan metode Sanjaya, belum memperhitungkan formula kuantitas class , relasi, dan kriteria yang mencangkup OOP dari Chidamber & Kemerer. Sedangkan metode yang paper ini usulkan, memiliki formula lebih lengkap dari metode yang Chidamber & Kemerer dan Sanjay usulkan.

## Perhitungan dengan Weighted Class Complexity (WCC)
Perhitungan  metrik  diawali  dengan  mencari  nilai Weighted  Class  Complexity (WCC) dikarenakan  WCC  merupakan  perhitungan  kompleksitas  yang  berkaitan  dengan Method Complexity dalam class terkait. Nilai bobot kognitif yang didapat berasal dari method class . Kemudian  ditambah  dengan  total  jumlah attributes dari class tersebut.  Maka,  akan menambah  kompleksitas  karena  faktor  data members ( attributes ).  Rumus  formula  seperti halnya Persamaan (1).
𝑊𝐶𝐶 = 𝑁 𝑎 + ∑ 𝑀𝐶 𝑖 𝑝=1 𝑝 (1)
Keterangan:
• Na adalah jumlah attribute class
• MC kompleksitas method pada class
Pada penelitian ini, kami menggunakan studi kasus UML aplikasi penduduk desa berbasis object oriented seperti tampak pada Gambar 1. Selain dikarenakan UML aplikasi ini berbasis object  oriented, aplikasi  ini  layak  untuk  diketahui  tingkat  kompleksitasnya  untuk meningkatkan dan pengembangan pelayanan di desa.
1. WMC ( Weight Method Class ) 2. DIT ( Depth of Inheritance Tree )
3. RFC ( Response for a Classes )
4. LCOM ( Lack of Cohesion Of Methods )
5. NOC ( Number Of Children ) 6. CBO ( Coupling Between Object Classes )
Gambar 1. Model UML aplikasi penduduk desa
Berdasarkan  UML  tersebut,  langkah  pertama  mencari  jumlah attribute  class (Na), kemudian  langkah  kedua  menghitung  total  jumlah  kompleksitas method pada  satu class . Tabel 4 merupakan hasil dari perhitungan WCC berdasarkan UML pada Gambar 1.
Tabel 4. Hasil dari perhitungan WCC
Class Na Mc WCC koneksi 3 1 4 Login 0 2 2 Admin 0 4 4 User 0 4 4 Data 17 34 51
‘
Diketahui hasi WCC dari hasil perhitungan didapati class warga memiliki kompleksitas yang besar dengan nilai 42, sedangkan WCC terendah yakni class Login dengan nilai sebesar
Vol. 3, No. 1, April 2021, Halaman 103-110
2.  Langkah  selanjutnya  dengan  menghitung  OOC  ( Object  oriented  Complexity )  dengan direpresentasikan dalam bentuk WDAG ( Weighted Directed Acyclic Graph ).

## Perhitungan OOC dengan dengan Representasi WDAG
Proses  perhitungan  selanjutnya  dengan  menghitung  relasi  antar class ,  WDAG  pada penelitian  ini  berperan  sebagai  pendokumentasi  kompleksitas.  WDAG  merupakan graph berarah yang memiliki bobot dan terdiri dari himpunan simpul ( Nodes atau vertices ) dan sisi ( Edges atau arcs ) yang tidak memiliki cycle . Penggunaan konsep WDAG dalam penelitian yakni:
1. Pada WDAG terdiri atas:
• Leaf nodes, merepresentasikan class atau objek beserta bobotnya.
• Interior Nodes, merepresentasikan operasi atau operator (tergantung jenis relasi).
2. Sebuah node baru, dibuat dan dihubungkan dengan Interior Node hanya ketika class atau objek mempunyai relasi dengan objek lainnya.
Sedangkan formula rumus untuk menghitung jumlah relasi sesuai pada persamaan (2).
𝑇𝑚 = (𝐶, 𝑡 1 … tm ) (2)
Keterangan:
• m adalah jumlah relasi antar class
• C adalah himpunan WCC ( e.g., bilangan real)
• t adalah operator binary ( e.g., +, *) terhadap elemen-elemen dari C.
Gambar 2. Hasil pendokumentasi kompleksitas dalam bentuk WDAG
Studi  kasus  ini apabila  dibentuk  dalam WDAG  sesuai  dua  konsep  diatas,  sesuai pada gambar 2.  Hasil dari perhitungan relasi antar class (Tm) yakni hasil pengoperasian WCC sesuai  dengan  operator  WDAG  pada  gambar  2.  Sehingga,  untuk  studi  kasus  ini 4+4+51*(4*2)  =  416.  Langkah  selajutnya  dengan  menghitung  OOC,  dengan  rumus Persamaan (3).
𝑂𝑂𝐶 = 𝑇𝑚 ∑ 𝑊𝐶𝐶 𝑛 𝑖=1 (3)
Keterangan:
• T m adalah total bobot dari DAG
• WCC adalah Weighted Class Complexity
Menggunakan persamaan (3), maka diketahui OOC pada studi kasus ini merupakan hasil pembagian  416  dengan  total  keselurahan  jumlah  WCCyakni  65.  Sehingga,  nilai kompleksitas berdasarkan UML pada studi kasus aplikasi penduduk desa sebesar 6,4.

## HASIL DAN PEMBAHASAN
Perhitungan  Berdasarkan  Gambar  2,  dilanjutkan  dengan  perhitungan  hasil  akhir kompleksitas sesuai pada persamaan (3)  dengan pembagian total bobot DAG  sebesar 416 dan  jumlah  WCC  sebesar  65.  Sehingga,  nilai  kompleksitas  berdasarkan  UML  pada  studi kasus aplikasi penduduk desa sebesar 6,4. Setiap metrik baru harus divalidasi dan dievaluasi baik secara teori maupun praktek. Tujuan validasi adalah untuk membuktikan ketepatan dari metrik  yang  diusulkan.  Oleh  karena itu, kami  sebagai  pengusul  metrik  memeriksa  metrik yang  kami  usulkan  terhadap  sembilan  properti  Weyuker  yang  terkenal  [9].  Meskipun,  9 properti ini sangat banyak dikritik oleh beberapa peneliti, 9 properti ini masih digunakan dan menjadi topik penelitian[10].

## Properties Pertama
Kompleksitas metrik yang diajukan mampu membedakan antara dua model proses yang tidak  sama  sehingga  menciptakan  hasil  metrik  yang  berbeda.  Berdasarkan statement tersebut,  pengukuran  tidak  boleh  dilakukan  pada class dengan  kompleksitas  yang  sama. Misal,  diketahui  pada  tabel  2, class C  dengan  kompleksitas  6  dan class D  dengan kompleksitas 3, dimana C dan D adalah class yang berbeda. Dengan demikian, properti ini terpenuhi.

## Properties Kedua
Pengajuan  metrik  kompleksitas  memiliki  sifat  positif. Properties ini  juga  berlaku, apabila saat melakukan perhitungan WCC. Hasilnya berupa  angka yang positif  (tabel 4) begitu juga dengan perhitungan akhir OCC memilik sifat angka positif yakni 6,4. Sehingga properti ini terpenuhi.

## Properties Ketiga
Jika ada  beberapa  dua  model  yang  terdapat  perbedaan  (proses  bisnis)  memungkinkan memiliki nilai kompleksitas yang sama. Berdasarkan hal ini , seperti yang tampak pada tabel 4  dapat  diketahui  ada  dua class  atau bisa  disebut  dua  model.  Keduanya  memiliki  bisinis yang berbeda, tapi nilai WCC keduanya yakni admin dan user sama yakni 4. Maka property ini telah terpenuhi.

## Properties Keempat
Metrik kompleksitas dapat membedakan suatu model yang memiliki proses bisnis sama namun berbeda dalam implementasinya.  Misal terdapat class P dan Q yang menghasilkan output yang berbeda dengan input yang sama. Karena pada bobot kognitif bergantung pada elemen internal class ( attribute dan method ), sehingga kompleksitas juga mungkin berbeda. Seperti yang tampak pada Tabel 4 dan secara keseluruhan pada Gambar 2, terdapat proses
Vol. 3, No. 1, April 2021, Halaman 103-110
model  bisnis  yang class sama  namun  berbeda  implementasi  ( relation ).  Maka,  dengan demikian properti ini juga terpenuhi.

## Properties Kelima
Metrik kompleksitas dapat terdiri dari elemen penggabungan yang baru. Pada Persamaan (3) merupakan hasil penggabungan elemen baru, eleman baru yang dimaksud adalah WCC dari  class  admin,  user,  login,  koneksi  dan  data.  Sehingga  dengan  demikian  properti  ini terpenuhi.

## Properties Keenam
Apabila terdapat model proses bisnis X, Y, dan Z dengan nilai metrik yang sama, lalu model A dikaitkan dengan model Z atau model Y dikaitkan dengan model Z. Maka kedua nilai  metrik  berbeda.  Ini  berarti  bahwa  jika class baru  ditambahkan  ke  kedua class yang memiliki kompleksitas class yang sama, maka kombinasi kompleksitas kedua class tersebut berbeda.
Misal: WCC class X = 4, WCC class Y= 4, WCC class Z= 6, WCC class N = 3.
X = Y, & (X * Z) ≠ (Y * Z)  🡺 4 = 4, & 24 ≠ 12 X = X, & (Z * X) ≠ (Z * Y)  🡺 4 = 4, & 24 ≠ 12
Maka, metrik yang kami ajukan belum memenuhi properti ini.

## Properties Ketujuh
Apabila  membandingkan  dua  model  bisinis  yang  mana  masing-masing  kesatuan yang utuh. Jika salah satu proses bisinis berbeda dalam atat letak model. Maka berbeda pula nilainuya, maka metrik yang kami ajukan dapat memenuhi properti ini.
Gambar 3. WDAG 2
Gambar 4. WDAG 3
Tm dari gambar WDAG 1 = A + ( B * (C+ D)) dan Tm dari gambar WDAG 2 = A + ((B + D) * C ). Maka, properti ini terpenuhi.

## Properties Kedelapan
Properti  ini  mensyaratkan  bahwa  ketika  nama class berubah  itu  tidak  akan mempengaruhi  kompleksitas.  Bahkan  jika  nama method ataupun  nama attributes dalam class berubah, kompleksitas juga tidak berubah. Berdasarkan pengukuran kompleksitas yang kami  usulkan,  tidak  ada  efek  dalam  kompleksitas  dalam  penggantian  nama. Dengan demikian, properti ini juga terpenuhi.

## Properties Kesembilan
Properti ini menunjukkan bahwa interaksi tertentu meningkatkan kompleksitas. Properti ini menyatakan bahwa kompleksitas yang berasal dari hasil interaksi antara dua class lebih besar daripada kompleksitas class sebelum berinteraksi. Untuk properti ini, pembuktiannya sama dengan pada properti 5. Maka, dengan demikian properti ini juga terpenuhi.

## KESIMPULAN
Penelitian  ini  menghasilkan  metrik  yang  mengukur  tingkat  kompleksitas  software berorientasi objek melalui UML dan pendokumentasian dalam bentuk WDAG. Hasil formula metrik ini memenuhi delapan properties dari sembilan properties yang terdapat di weyuker properties . Formula kompleksitas yang kami ajukan Persamaan (3), dapat digunakan untuk mengukur kompleksitas software khusus berbasis object oriented , harapan kami formula ini dapat  melengkapi kekurangan dari formula  kompleksitas  metrik  peneliti  sebelumnya  yang masih mengarah prosedural programming.

## REFERENSI
[1] Y. Wang, “Cognitive Informatics: Towards Future Generation Computers that Think and Feel,” pp. 3–7, 2006.
[2] L. C. Briand and J. Wüst, “Modeling development effort in object-oriented systems using design properties,” IEEE Trans. Softw. Eng. , vol. 27, no. 11, pp. 963–986, 2001, doi: 10.1109/32.965338.
[3] L. C. Briand, C. Bunse, and J. W. Daly, “A controlled experiment for evaluating quality guidelines on the maintainability of object-oriented designs,” IEEE Trans. Softw. Eng. , vol. 27, no. 6, pp. 513– 529, 2001, doi: 10.1109/32.926174.
[4] S. R. Schach, Object-Oriented and Classical Software Engineering . 2010.
[5] G. Costagliola, F. Ferrucci, G. Tortora, and G. Vitiello, “Class point: An approach for the size estimation of object-oriented systems,” IEEE Trans. Softw. Eng. , vol. 31, no. 1, pp. 52–74, 2005, doi: 10.1109/TSE.2005.5.
[6] S. R. Chidamber and C. F. Kemerer, “A Metrics Suite for Object oriented Design,” IEEE Trans. Softw. Eng. , vol. 20, no. 6, pp. 476–493, 1994, doi: 10.1109/32.295895.
[7] K. Letelay and S. N. Azhari, “Evaluasi Kualitas Perangkat Lunak dengan Metrics Berorientasi Objek,” Semin. Nas. Inform. … , vol. 2012, no. semnasIF, pp. 139–145, 2015.
[8] M. Yaqin, R. Sarno, and S. Rochimah, “Measuring Scalable Business Process Model Complexity Based on Basic Control Structure,” Int. J. Intell. Eng. Syst. , vol. 13, no. 6, pp. 52–65, 2020, doi: 10.22266/ijies2020.1231.06.
[9] S. Misra, “Weyuker’s properties, language independency and object oriented metrics,” Lect. Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes Bioinformatics) , vol. 5593 LNCS, no. PART 2, pp. 70–81, 2009, doi: 10.1007/978-3-642-02457-3_6.
[10] Gursaran and Gurdev. Roy, “On the Applicability of Weyuker Property 9 to Object-Oriented Structural Inheritance Complexity Metrics,” vol. 27, no. 4, pp. 1–1, 2012, doi: 10.1109/vr.2012.6180941.