225x Filetype PDF File size 0.68 MB Source: repository.its.ac.id
PENGUKURAN KUALITAS DAN PERBAIKAN STRUKTUR CODE
PERANGKAT LUNAK BERBASIS OBJECT ORIENTED
PROGRAMMING MENGGUNAKAN METRIK CHIDAMBER DAN
KEMERER. (STUDI KASUS SOFTWARE ACCOUNTING XYZ.)
1) 2)
Aula Ayubi , Feby Artwodini Muqtadiroh, S.Kom, M.T. , Amna Shifia Nisafani, S.Kom,
3)
M.Sc.
Jurusan Sistem Informasi, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya (60111) – Indonesia
1) 2) 3)
e-mail: aulaayubi@gmail.com , febyherbowo@gmail.com , mafaniseventh@gmail.com
ABSTRAK
Peningkatan kualitas sebuah perangkat lunak mempunyai peran yang penting dalam praktek rekayasa
perangkat lunak. Pendekatan engineering menginginkan bahwa kualitas perangkat lunak dapat diukur secara
kuantitatif dalam bentuk angka yang dapat dipahami oleh orang lain. Object Oriented Programming (OOP) seringkali
menjadi pilihan pengembang dalam membangun perangkat lunak.
Pengukuran kualitas software berdasarkan aspek object oriented dengan menggunakan Metrik Chidamber
dan Kemerer. Metrik tersebut mempunyai enam metrik di dalamnya yaitu Weighted Method per Class (WMC),
Depth of Inheritance Tree (DIT), Number OF Children (NOC), Response For a Class (RFC), Coupling Between Object
Classes (CBO) dan Lack of Cohesion Method (LCOM).
Karakteristik kualitas yang dapat diukur menggunakan metrik ini berdasarkan ISO/IEC 9126-1 adalah
efficiency, understandability, reusability, dan maintainability/testability. Sehingga pengembang software dapat
mengetahui sejauh mana kualitas konsep object oriented yang ada pada kode perangkat lunak tersebut.
Hasil akhir yang diharapkan dari tugas akhir ini adalah perbaikan kode program berupa class diagram yang
lebih baik berdasarkan kualitas yang telah dipilih.
Kata kunci: Pengukuran Kualitas, Object Oriented Programming (OOP), Metrik Chidamber dan Kemerer, ISO/IEC
9126-1
1. PENDAHULUAN Pengembang perangkat lunak saat ini lebih cenderung
Saat Salah satu faktor penting dari suatu perangkat menggunakan konsep Object Oriented Programming
lunak adalah kualitas [1]. Kualitas perangkat lunak akan (OOP) yang memudahkan untuk membangun perangkat
mempengaruhi baik buruknya suatu kinerja dari lunak. Beragamnya pola implementasi berorientasi object
perusahaan yang bersangkutan dalam menjalankan menimbulkan perbedaan pendapat dalam melihat kualitas
bisnisnya. Perangkat lunak yang berkulitas akan sebuah perangkat lunak [7].
memudahkan perusahaan dalam menjalankan proses
bisnisnya sehingga sumber daya yang dikeluarkan oleh Metrik Chidamber dan Kemerer telah dipilih dalam
perusahaan akan semakin efisien dan efektif. pengerjaan tugas akhir ini karena pada penulisan
Peningkatan kualitas sebuah perangkat lunak sebelumnya telah menghasilkan pemetaan antara Metrik
mempunyai peran yang penting dalam praktek rekayasa Chidamber dan Kemerer dengan properti kualitas [11]
perangkat lunak [2]. Oleh karena itu pengukuran kualitas [12] [13]. Metrik Chidamber dan Kemerer merupakan
perangkat lunak sangat dibutuhkan agar Perangkat lunak salah satu kumpulan metrik yang digunakan untuk
dapat diperbaiki secara terus menerus. Pengukuran mengukur kualitas perangkat lunak melalui kode program
kualitas akan memberikan pandangan bagi organisasi atau pada perangkat lunak tersebut. Metrik Chidamber dan
perusahaan dalam mengalokasikan sumber dayanya Kemerer mengukur kualitas perangkat lunak berdasarkan
sehingga biaya yang dikeluarkan sesuai dengan enam metrik dengan melihat pada perspektif desain
perencanaan. berorientasi object [14].
Salah satu pengukuran kualitas perangkat lunak Pengukuran perangkat lunak dengan menggunakan
adalah pengukuran kualitas kode program pada perangkat studi kasus Software Accounting XYZ akan
lunak tersebut [5]. Pendekatan engineering menginginkan menghasilkan nilai kuantitatif yang akan
kualitas perangkat lunak dapat diukur secara kuantitatif merepresentasikan tingkat efficiency, understandability,
dalam bentuk angka yang dapat dipahami oleh orang lain. reusability, dan maintainability/testability software
Faktor efisiensi pada kode program akan mempengaruhi accounting XYZ. Sehingga tugas akhir ini akan dapat
manajemen perusahaan terkait perangkat lunak tersebut. menghasilkan nilai kuantitatif yang mempresentasikan
Banyak metode pengukuran kualitas kode program kualitas Software Accounting XYZ. Tugas akhir ini juga
seperti metode LOC, Function Point, dan Cocomo [6]. menghasilkan rekomendasi perbaikan struktur kode
program berupa class diagram berdasarkan design pattern.
Hasil tugas akhir ini diharapkan dapat menjadi referensi Metrik Chidamber dan Kemerer mempunyai enam
bagi pengembang Software Accounting XYZ untuk metrik yaitu Weighted Method per Class (WMC), Depth
memeperbaiki desain kode program perangkat lunak of Inheritance Tree (DIT), Number OF Children (NOC),
tersebut. Response For a Class (RFC), Coupling Between Object
2. TINJAUAN PUSTAKA Classes (CBO) dan Lack of Cohesion Method (LCOM).
2.1 Object Oriented Programming Tabel 1. Pemetaan Metrik Chidamber dan Kemerer
Pemograman berorientasi object adalah teknik dengan Kode Program
membuat suatu program berdasarkan object [15]. Object
Pendekatan berorientasi object mulai berkembang karena Source Metrik Oriented
adanya kesulitan dalam pengembangan sistem pada skala Construct
besar untuk menghasilkan sistem yang berkualitas sesuai Object Oriented Weighted Method per Class/Method
dengan biaya dan waktu yang ada . Pendekatan ini (New) Class (WMC)
menggabungkan data dan proses secara bersamaan dalam Object Oriented Depth of Inheritance
bentuk object, hal tersebut menjadi kelebihan dari (New) Tree (DIT) Inheritance
pendekatan ini karena kode program menjadi lebih mudah Object Oriented Number OF Children
digunakan kembali. Pendekatan ini memperkenalkan (New) (NOC) Inheritance
istilah class, object, atribut dan method. Object Oriented Response For a Class
Setiap object mempunyai field/atribut dan method. (New) (RFC) Class/Message
Field/atribut adalah segala sesuatu yang berhubungan Object Oriented Coupling Between
dengan karakteristik object. Method merupakan fungsi (New) Object Classes (CBO) Coupling
atau segala sesuatu yang dapat dilakukan oleh object. Object Oriented Lack of Cohesion
Class adalah tempat object tersebut berada [15]. (New) Method (LCOM) Class/Cohesion
Object mempunyai dua karakteristik yaitu variabel
atau field sebagai status dan method sebagai perilaku dari
sebuah object. Object menyimpan statusnya pada variabel Penelitian sebelumnya telah menghasilkan kategori dari
dan mendefinisikan perilakunya melalui sebuah method. Metrik Chidamber dan Kemerer [24] [25] yang telah ada
Method akan mengakses nilai dari field object dan pada Tabel 2, hijau mewakili kategori good, kuning
sebagai mekanisme utama komunikasi antar object, mewakili kategori medium, merah mewakili kategori bad.
sehingga dunia luar tidak perlu mengetahui bagaimana
object dapat saling berkomunikasi melalui sebuah Tabel 2. Nilai Metrik Chidamber dan Kemerer
method. Method adalah sebuah operasi pada sebuah Metrik
object dan didefinisikan dalam deklarasi class. Message Chidamber Hijau Kuning Merah
adalah permintaan dari object lain untuk melakukan dan
sebuah operasi/fungsi. Object tersebut menjawab message Kemerer
dengan sebuah method. Cohesion adalah tingkat method WMC
dalam class yang direlasikan ke class lain. Desain DIT
berorientasi objek yang efektif memaksimumkan NOC
cohesion karena meningkatkan encapsulation. Cohesian CBO
yang tinggi mengindikasikan subdivisi class yang baik. RFC
Coupling adalah method dalam sebuah class memanggil
method pada class lain. Inheritance adalah hirarki class,
terdapat superclass dan subclass yang mewarisi atribut 2.3 ISO/IEC 9126-1
atau method dari superclass. Package merupakan ISO 9126 merupakan best practice dalam melakukan
sekelompok class dan interface yang saling terkait [16]. evaluasi terhadap kualitas produk perangkat lunak.
Pemograman object mempunyai empat ciri-ciri ISO/IEC 9126 adalah standar internasional yang
yaitu abstraksi (abstraction), pembungkusan diterbitkan oleh ISO/IEC, standar ini dibagi menjadi
(encapsulation), pewarisan (inheritance) dan empat bagian yang masing-masing menjelaskan model
polimorfisme (polymorphism) [17]. kualitas, metrik eksternal, metrik internal, dan metrik
2.2 Metrik Chidamber dan Kemerer kualitas [32]
Metrik merupakan suatu prosedur yang ISO/IEC 9126 mempunyai enam model kualitas yang
memasangkan karakteristik tertentu pada entitas yang telah dicantumkan dalam ISO/IEC 9126-1. ISO/IEC
diamati menjadi sebuah nilai numerik [1]. Nilai numerik 9126-1 (bagian pertama dari ISO 9126) membagi model
pada metrik akan memberikan pengetahuan pengamat kualitas perangkat lunak (software quality model)
mengenai nilai yang terlalu tinggi atau terlalu rendah, menjadi enam karakteristik yaitu fungsionalitas
terlalu banyak atau terlalu sedikit. Manfaat metrik sangat (Functinability), kehandalan (Reliability), kebergunaan
tergantung pada apa yang akan dicapai dari hasil (Usability), efisiensi (Efficiency), keterpeliharaan
pengukuran yang telah dilakukan. (Maintainability) dan portabilitas (Portability) [32].
Metrik Chidamber dan Kemerer adalah salah satu
metrik yang digunakan untuk mengukur kualitas disain
sebuah perangkat lunak berdasarkan enam metrik dengan
melihat pada perspektif desain berorientasi object [22].
Tabel 3. Pemetaan Quality Model ISO/IEC 9126-1 adalah suatu dokumen yang sangat penting untuk dimiliki
dengan Metrik Chidamber dan Kemerer dan dipahami. Dimana design patterns bukan sekedar
Properti Kualitas Software Parameter Metric menyediakan solusi terbaik dalam memecahkan suatu
Efficiency LCOM, CBO, DIT, NOC masalah, tetapi lebih dari pada itu patterns membuat
Understandbility WMC, RFC, DIT desain perangkat lunak menjadi lebih efektif, fleksible
WMC, LCOM, CBO, DIT, dan waktu penyelesaikan desain perangkat lunak juga
Reusability/ Replaceability NOC lebih efisien.
Maintainability WMC, RFC, DIT, NOC. Ada banyak Design Patterns yang sudah diakui
kemampuannya, diterima dan diaplikasikan oleh banyak
Tabel 4. Deskrip Kriteria dan Subkriteria ISO/IEC praktisi. Design Patterns yang cukup populer adalah yang
9126-1 diperkenalkan The Gang of Four (GoF) - Erich Gamma,
Kriteria/Sub Kriteria Deskripsi Kriteria/Sub Kriteria Richard Helm, Ralph Johnson dan John Vlissides. Dalam
ISO/IEC 9126-1 ISO/IEC 9126-1 The Gang of Four (GoF) terdapat 23 Pattern yang dibagi
Kemampuan produk software yang menjadi 3 kelompok besar.
memungkinkan pengguna untuk Pada Gang of Four Patterns, terdapat tiga katalog
Understandability memahami apakah software tersebut design patterns yaitu creational, structural, dan
cocok, dan bagaimana hal itu dapat behavioral. Creational patterns berhubungan dengan
digunakan untuk tugas-tugas dan penciptaan objek. Pola-pola ini berkisar seputar objek
ketentuan penggunaan tertentu mana yang diciptakan, siapa yang menciptakannya, serta
Kemampuan produk software untuk berapa banyak objek diciptakan. Structural patterns
Efficiency dipahami, dipelajari, digunakan dan berhubungan dengan struktur statis objek dan kelas. Pola-
atraktif bagi pengguna, bila pola dalam structural patterns dapat dilihat pada saat
digunakan dalam kondisi tertentu program di-compile melalui struktur inheritance,
Kemampuan produk software untuk properties, serta agregasi objek-objek. Behavioral
dimodifikasi. Modifikasi dapat patterns terkait perilaku run-time program. Pola-pola ini
mencakup koreksi, perbaikan atau berkaitan dengan algoritma serta interaksi antar objek saat
Maintainability adaptasi dari perangkat lunak untuk
perubahan lingkungan, dan program berjalan. Penekanan behavioral patterns lebih
persyaratan dan spesifikasi pada komposisi objek ketimbang inheritance [34].
fungsional
Kemampuan produk software yang 2.5 Class Diagram
akan digunakan di tempat produk Pembuatan class diagram akan dilakukan setelah proses
Replaceability software lain yang ditentukan untuk
tujuan yang sama dalam lingkungan analisa kode program yang menghasilkan code
yang sama. dependency. Sebuah ketergantungan (dependencies)
mengandung tiga unsur yaitu sumber (source), target dan
Tabel 5. Korelasi Metrik Chidamber dan Kemerer tipe ketergantungan (dependency kind) [37].
dengan ISO/IEC 9126-1
Desirabl Effici Underst Maint Replace Tabel 6. Code dependency
Metric e Value ency andabili ainabi ability Depend
ty lity Source ency Target Deskripsi
WMC ↓ ↑ ↑ ↑ Kind
DIT ↓ ↑ ↑ ↑ ↑ class/int class/int class/interface extends
NOC ↓ ↑ ↑ ↑ erface extends erface (perluasan) terhadap
CBO ↓ ↑ ↑ class/interface/ yang lain.
RFC ↓ ↑ ↑ class/int class/int class/interface pada
LCOM ↓ ↓ ↓ ↓ erface contains erface source berisi sebuah
2.4 Design Pattren class/interface yang lain.
Dalam membuat desain sebuah perangkat lunak class/int class/interface/ pada
biasanya menggunakan asumsi atau pemahaman yang erface contains field source berisi field dari
bersifat subjektif sehingga dibutuhkan gambaran secara class yang lain.
method pada source
formal dari masalah dan pemecahannya. Design patterns method returns class/int mengembalikan sebuah
adalah unsur-unsur rancangan yang seringkali muncul erface nilai berdasarkan
pada berbagai sistem yang berbeda. Setiap pemakaian class/interface yang lain.
patterns akan menguji pattern tersebut di berbagai situasi. method pada source
Sebuah design pattern harus mendokumentasikan method has class/int mendeklarasikan sebuah
permasalahan, pemecahan, serta akibat-akibat param erface parameter berdasarkan
penggunaannya. Class diagram adalah salah satu bentuk class/interface yang lain.
dari interprestasi dari suatu pattern dengan memanfaatkan method pada source
kemampuan UML yang sudah berorentasi pada mendeklarasikan
perancangan yang berbasiskan objek (OOP) [34]. method throws class/int class/interface/ yang lain
erface dalam
Dalam pengembangan perangkat lunak sering terjadi mengirim/melempar
permasalahan yang terjadi berulang-ulang, sehingga clause-nya.
seorang arsitek mungkin akan banyak menghabiskan method pada source
waktu dalam memberikan solusi dengan masalah yang method calls methods memanggil method pada
serupa. Pada saat merancang perangkat lunak, patterns class yang lain.
Depend diukur nilai Metrik Chidamber dan Kemerer-nya dan
Source ency Target Deskripsi selanjutnya dihitung average (rata-rata) nya.
Kind 3.3 Tahap pembahasan hasil
method pada source Tahap pembahasan hasil meliputi empat tahapan
methods acceses field mengakses field pada yaitu Analisa perhitungan Metrik Chidamber dan
class yang lain. Kemerer, membuat class diagram baru, menghitung nilai
is of class/int field pada source Metrik Chidamber dan Kemerer, dan membuat
field type erface didasarkan pada kesimpulan serta saran.
class/interface yang lain.
remote objek yang 4. HASIL DAN PEMBAHASAN
any referenc class/int dipanggil oleh objek lain
es erface melalui remote object Berikut merupakan hasil dan pembahasan dalam
refernces. penelitian ini.
4.1 Analisa Hasil Perhitungan Metrik Chidamber dan
Tabel 7. Pemetaan Dependency Kind dan Relationship Kemerer
Class Diagram Perhitungan pada bab sebelumnya telah
Relations Deskripsi Dependency Kind menghasilkan nilai metrik metrik chidamber dan kemerer
hip pada Software Accounting XYZ. telah didapatkan nilai
Associatio Class yang memiliki Contains class yang memerlukan perbaikan. Terdapat dua class
ns atribut berupa class lain Referencess dengan warna merah yang menunjukkan kategori bad,
atau class yang harus Is Of Type sehingga harus dirubah. Terdapat 22 class yang
mengetahui ekstensi
class lain menunjukkan kategori medium, sehingga diperlukan
Dependen Operasi suatu class yang Retruns perbaikan hingga mencapai status green atau good.
cies menggunakan class lain Has Param
atau field/atribut class Throws Tabel 8. Class yang Memerlukan Perbaikan
lain Calls Nama
Accesses Package Class Metrik Nilai Kategori
Nesting Sebuah class yang appLayer accounts WMC 69 Medium
didefinisikan didalam List
class (outer class) lain. appLayer configs WMC 222 Bad
Realizatio Sebuah class yang Implements appLayer appLaye WMC 132 Bad
n mengimplementasikan (Interface) r.entry
interface dataLay
Generaliz Class yang Extendss dataLayer er.DB CBO 40 Medium
ation menunjukkan hubungan appLaye
warisan (inheritance) appLayer r.Messa CBO 18 Medium
dengan class lainnya. ges
appLayer account CBO 15 Medium
3. METODOLOGI PENELITIAN appLayer accounts CBO 19 Medium
Metode pengerjaan penelitian ini terdiri dari 3 tahap. List
Masing-masing tahap memiliki proses yang disesuaikan appLayer client CBO 56 Medium
dengan tujuan tahap. appLayer configs CBO 41 Medium
appLayer entry CBO 24 Medium
3.1 Tahap perancangan appLayer.t taxList CBO 16 Medium
Tahap perancangan meliputi dua tahapan yaitu axRelated
analisa kode program dan pembuatan class diagram. appLayer.t transacti
Analisa kode program Software Accounting XYZ ransaction on CBO 26 Medium
dengan memetakan code yang ada dan menemukan Related
dependencies masing-masing code. Sehingga code appLayer.t transacti
Software Accounting XYZ akan lebih mudah untuk ransaction ons CBO 18 Medium
diukur nilainya terhadap Metrik Chidamber dan Kemerer. Related
Class diagram dibuat berdasarkan hasil analisa dari GUILayer Message CBO 40 Medium
tahapan sebelumnya yaitu analisa code program yang s
menghasilkan code dependency. Code dependency dapat GUILayer balance CBO 15 Medium
Window
memudahkan pembuatan class diagram dengan bantuan GUILayer todoWin CBO 14 Medium
pemetaan antara relasi pada class diagram dengan dow
dependency kind. appLayer entry RFC 112 Medium
3.2 Tahap implementasi 4.2 Membuat Class Diagram Baru
Tahap implementasi meliputi perhitungan Metrik Pada bagian ini dijelaskan bagaimana membuat class
Chidamber dan Kemerer, yang terdiri dari Metrik WMC, diagram baru sehingga dapat memperoleh nilai Metrik
DIT, NOC, CBO, RFC, dan LCOM. Chidamber dan Kemerer yang lebih baik. Pembuatan
Tahapan implementasi ini melakukan perhitungan class diagram berdasarkan pedoman design pattern
Metrik Chidamber dan Kemerer. Code Dependency dan bagian refactoring.
Class diagram dapat menjadi acuan untuk menghitung
nilai Metrik Chidamber dan Kemerer. Setiap class akan
no reviews yet
Please Login to review.