4
3. Number of Children NOC
NOC adalah jumlah subclass dalam sebuah class hierarchy. NOC
merupakan indikator
besarnya pengaruh sebuah class terhadap
disain sistem secara keseluruhan. Semakin besar nilai NOC, semakin
besar pula potensi ketidakcocokan sub class dengan abstraksi pada
parent class.
Hal ini dapat mengakibatkan kesalahan penggunaan sub class
seperti ketika menggunakan salah satu sub class dari sekian banyak sub
class yang lain dalam salah satu program.
4. Coupling Between Object Classes
CBO CBO menghitung class yang
berhubungan dengan class yang lain. Hal ini dihitung terhadap non-
inheritance class. Sehingga semakin sedikit class yang berhubungan maka
mengindikasikan class yang baik. Karena meningkatkan modularity dan
reuse.
Semakin banyak class yang tidak tergantung satu sama lain akan lebih
baik untuk digunakan dalam aplikasi yang lain. Hal ini sangat konsisten
dengan tingkat
interdependency antara
modul. Berapa
nilai maksimum yang diijinkan? CBO
14 terlalu tinggi menurut Houari A Sahraoui.
5. Response for a Class RFC
RFC adalah
jumlah semua
metode yang
dipanggil sebagai
respon terhadap diluar objek dari sebuah class. RFC juga mengukur
komunikasi antara objek. Hal ini berlaku terhadap semua metode yang
diakses dalam class hirarki. Sehingga semakin
banyak metode
yang digunakan untuk merespon objek dari
luar semakin
kompleks dan
meningkatkan waktu tes.
6. Lack of Cohesion Method
LCOM
LCOM mengukur ketidaksamaan metode dalam sebuah class dari
instance variabel atau atribut. Dengan tingginya
kohesi berarti
mengindikasikan semakin baik class tersebut.
Sehingga lebih sederhana dan memiliki sifat reusability yang tinggi.
Sedangkan semakin rendah kohesi atau lack of cohesion maka semakin
kompleks class tersebut.
1.4.2. PROPERTI KUALITAS DISAIN
SOFTWARE
Kualitas disain software pada aspek orientasi objek dan disesuaikan
dengan OO Metric maka hanya beberapa karakteristik atau properti
kualitas yang dapat dievaluasi untuk mengukur kualitas kode dan disain
yaitu
efficiency, complexity,
understandability, reusability,
maintainabilitytestability. 1.
Efficiency : Apakah disain dan implementasi
software telah
dilakukan dengan efisien? 2.
Complexity :
Dapatkah implementasi software digunakan
lebih efektif sehingga menurunkan tingkat kompleksitas?
3. Understandability : Apakah
disain software
lebih mudah
dimengerti? 4.
Reusability : Apakah kualitas disain
software mendukung
penggunaan kembali reuse? 5.
MaintainabilityTestability :
Apakah disain software mendukung untuk
kemudahan testing
dan perubahan?
1. Hubungan Properti Kualitas
Disain Software dan Parameter
MOOSE CK
Tabel 1. Hubungan Properti Kualitas Software dan Parameter Metric
Properti Kualitas
Software Parameter
Metric
Efficiency LCOM, CBO, DIT, NOC
Complexity CC Traditional Metric
Understandabili ty
WMC, RFC, DIT Reusability
WMC, LCOM, CBO, DIT, NOC Maintainability
Testability WMC, RFC, DIT, NOC
Pada tabel 1 diatas tampak bahwa penelitian Linda H Rosenberg
dan Lawrence E Hyaat pada tahun 2003,
menunjukkan properti
5
complexity tidak
menggunakan parameter
MOOSE CK,
tapi menggunakan
Cyclomatic Complexity CC. Pada riset yang
lain pada tahun 1993 terutama properti
maintainabilitytestability menggunakan
parameter yang
hampir sama, DIT, NOC, RFC, LCOM, WMC, DAC, NOM, SIZE1,
SIZE2, MPC . Sedangkan menurut
Magiel Bruntink dan Arie Van Deursen dalam Jurnal MTI UI,
2007: 13, DIT, LCOM, NOC, RFC, WMC, FOUT, LOCC, NOF, NOM,
Parameter-parameter yang dicetak tebal tidak termasuk MOOSE CK.
2. Pengaruh Parameter MOOSE
CK pada Properti Kualitas Disain
Software
Penelitian Linda H Rosenberg dan Lawrence E Hyatt mengenai
hubungan dan
pengaruh antara
parameter-parameter OO Metric dan properti kualitas disain software
menunjukkan bahwa nilai parameter MOOSE CK berbanding terbalik
dengan kualitas disain software
1.4.3. ANALYTIC
HIERARCHY PROCESS AHP
Metode Analytic
Hierarchy Process AHP dikembangkan oleh
Thomas L. Saaty pada tahun 70-an ketika di Warston School. Metode
AHP merupakan salah satu metode yang dapat digunakan dalam sistem
pengambilan
keputusan dengan
memperhatikan faktor-faktor
persepsi, preferensi, pengalaman dan intuisi.
AHP menggabungkan
penilaian-penilaian dan nilai-nilai pribadi ke dalam satu cara yang
logis. Analytic
Hierarchy Process
AHP dapat
menyelesaikan masalah multikriteria yang kompleks
menjadi suatu hirarki. Masalah yang kompleks dapat diartikan bahwa
kriteria dari suatu masalah yang begitu
banyak multikriteria,
struktur masalah yang belum jelas, ketidakpastian
pendapat dari
pengambil keputusan,
pengambil keputusan lebih dari satu orang, serta
ketidakakuratan data yang tersedia. Menurut Saaty, hirarki didefinisikan
sebagai suatu
representasi dari
sebuah permasalahan yang kompleks dalam suatu struktur multi level
dimana level pertama adalah tujuan, yang diikuti level faktor, kriteria, sub
kriteria, dan seterusnya ke bawah hingga level terakhir dari alternatif.
Dengan hirarki, suatu masalah yang kompleks dapat diuraikan ke dalam
kelompok-kelompoknya
yang kemudian diatur
menjadi suatu bentuk
hirarki sehingga
permasalahan akan tampak lebih terstruktur dan sistematis.
Analytic Hierarchy
Process AHP
mempunyai landasan
aksiomatik yang terdiri dari : 1. Reciprocal Comparison,
yang mengandung arti si pengambil keputusan
harus bisa
membuat perbandingan
dan menyatakan
preferensinya. Preferensinya
itu sendiri
harus memenuhi
syarat resiprokal yaitu kalau A lebih disukai
dari B dengan skala x, maka B lebih disukai dari A dengan skala 1:x.
2. Homogenity, yang
mengandung arti
preferensi seseorang harus dapat dinyatakan
dalam skala terbatas atau dengan kata lain elemen-elemennya dapat
dibandingkan satu sama lain. Kalau aksioma ini tidak dapat dipenuhi
maka
elemen-elemen yang
dibandingkan tersebut
tidak homogenous dan harus dibentuk
suatu cluster kelompok elemen- elemen yang baru.
3. Independence,
yang berarti preferensi dinyatakan dengan
mengasumsikan bahwa kriteria tidak dipengaruhi oleh alternatif-alternatif
yang ada melainkan oleh objektif secara keseluruhan. Ini menunjukkan
bahwa pola ketergantungan atau pengaruh dalam model AHP adalah
searah keatas, artinya perbandingan antara elemen-elemen dalam satu
level dipengaruhi atau tergantung
6
oleh elemen-elemen dalam level di atasnya.
4. Expectations,
artinya untuk tujuan pengambilan keputusan,
struktur hirarki
diasumsikan lengkap. Apabila asumsi ini tidak
dipenuhi maka
si pengambil
keputusan tidak memakai seluruh kriteria dan atau objektif yang
tersedia atau diperlukan sehingga keputusan yang diambil dianggap
tidak lengkap. 1. Prinsip-Prinsip Dasar
Analytic Hierarcy Process AHP
1. Decomposition
Pengertian decomposition
adalah memecahkan
atau membagi
problema yang
unsurnya ke bentuk hirarki proses
pengambilan utuh
menjadi unsur
keputusan, dimana setiap unsur atau
elemen saling berhubungan.
Gambar 1. Struktur Hirarki Sumber: Jurnal umum Universitas Sumatera Utara
2. Comparative Judgement Comparative
judgement dilakukan dengan penilaian tentang
kepentingan relatif dua elemen pada suatu
tingkat tertentu
dalam kaitannya
dengan tingkatan
diatasnya. Penilaian ini merupakan inti
dari AHP
karena akan
berpengaruh terhadap urutan prioritas dari elemen elemennya.
3. Synthesis of Priority Synthesis of priority dilakukan
dengan menggunakan eigen vector method untuk mendapatkan bobot
relatif bagi
unsur unsur
pengambilan keputusan. 4. Logical Consistency
Logical consistency
merupakan karakteristik penting AHP. Hal ini dicapai dengan
mengagresikan seluruh eigen vector yang diperoleh dari berbagai
tingkatan hirarki dan selanjutnya diperoleh suatu vektor composite
tertimbang
yang menghasilkan
urutan pengambilan keputusan. Tabel 2 ini adalah skala
Saathy yang digunakan dalam implementasi metode AHP. Seperti
pada penjelasan sebelumnya, pada kolom keterangan dapat merubah
kata-
kata “agar” sesuai dengan topik permasalahan. Pada baris
terakhir merupakan kebalikan dari nilai
perbandingan. Sehingga
seperti pada contoh diatas apabila objek A mempunyai nilai 3
dibandingkan nilai B, maka nilai B mempunyai nilai 13 dibandingkan
objek A.
Tabel 2. Skala Saaty
Nilai Keterangan
1 Sama penting equal
3 Sedikit
lebih penting
Moderate 5
Jelas Lebih Penting Strong 7
Sangat Jelas Penting Very Strong
9 Mutlak
Lebih Penting
Extreme 2,4,6,8
Apabila ragu-ragu antara dua nilai yang berdekatan
11-9 Kebalikan
nilai tingkat
kepentingan dari skala 1-9
1.5 Metodologi Penelitian
Pada studi kasus ini penulis akan menggunakan 5 framework
PHP yang
paling banyak
diminatidigunakan menurut versi www.phpframeworks.com.
Framework ini diurutkan mulai dari yang sering digunakan oleh para
programmer
PHP dalam
membangun aplikasi web, Yii 93 Votes, CodeIgniter 88 Votes,
CakePHP 67 Votes, Symfony 58
Tujuan
Kriteria 1
Alternatif 2 Alternatif 1
Kriteria 2 Kriteria 3
Kriteria 4
Alternatif 3
7
Votes, Zend 45 Votes. Data ini diambil pada tanggal 9 Oktober
2010. Kemudian dalam penghitungan parameter
MOOSE CK
akan digunakan tool PHP Depend yang
khusus untuk mengukur kualitas metric dari bahasa pemrograman
PHP.
Untuk menghitung besarnya nilai MOOSE CK yang digunakan,
penulis menggunakan tool PHP Depend. PHP Depend adalah sebuah
tool yang digunakan untuk mengukur metric aplikasi web menggunakan
bahasa pemrograman PHP. Menurut website
resminya http:www.pdepend.org
program kecil yang menunjukkan analisis
kode berdasarkan sumber file yang akan diuji. Analisis kode berarti PHP
Depend pertama kali mengambil kode
asal aplikasi
kemudian memparsingnya
kedalam proses
struktur data internal yang mudah. Data struktur ini biasa disebut
sebagai AST Abstract Sintax Tree, yang menampilkan pernyataan dan
elemen berbeda yang digunakan untuk menganalisa kode sumber.
Pengukuran ini juga disebut sebagai software metric.
Apa itu software metric? Pada dasarnya software metric adalah
sesuatu yang sangat sederhana. Software metric adalah penjumlahan
dari beberapa elemen atau fragmen kode yang ditemukan dalam kode
sumber.
Sebagai contoh
nilai cyclomatic complexity, metode yang
digunakan untuk
mendapatkan nilainya
adalah dengan
menjumlahkan pernyataan logika, seperti if, for dan lain sebagainya
kedalam metode analisis. Mengapa
penulis memilih
menggunakan PHP
Depend? Pertanyaan tersebut dapat penulis
jawab sebagai berikut : 1.
PHP Depend sangat otomatis dan selalu objektif, tool ini hanya
mengukur kualitas dari kode sumber aplikasi yang diberikan.
2. PHP Depend memberikan skala
tergantung pada
kode sumber
aplikasi. 3.
PHP Depend mengikuti untuk mengidentifikasi
bagian-bagian software yang digunakan untuk
menganalisis kodenya. 4.
PHP Depend juga mendukung beberapa fancy metric yang sangat
berguna.
Gambar 2. Empat Tahapan Utama Metode Pengukuran Kualitas Disain Software
Sumber: Tesis Magister Teknologi Informasi, Depok: Jurnal Sistem Informasi
MTI UI, Volume 5, No.1, 2007
1.5.1 Pembobotan Parameter MOOSE
CK
Pada tahap pembobotan, parameter MOOSE CK dibagi
dalam sembilan tahapan. Dimana tujuannya
adalah untuk
mendapatkan bobot dari masing- masing parameter MOOSE CK.
Hal ini seperti yang dijelaskan pada Gambar 4.2. Hasil yang diperoleh
dari
pembobotan parameter-
parameter MOOSE CK harus dicek konsistensinya, ini bertujuan untuk
mengukur konsistensi
dalam memberikan penilaian, pada skala
1-9.
1.5.2 Perbandingan Nilai Skala Saathy
Pada Parameter MOOSE CK
Perbandingan parameter- parameter
MOOSE CK
Pembobotan MOOSE CK
Evaluasi MOOSE CK
Pembobotan Properti Kualitas
Evaluasi Properti Kualitas
Hasil Evaluasi Keseluruhan
Software
8
berpedoman pada skala Saathy. Seperti yang ditunjukkan pada
Tabel 2. Dalam membandingkan parameter-parameter MOOSE CK
harus
mempertimbangkan objektifitas
dari pengukuran
software. Pemetaan metric dengan objet oriented design element,
Tabel 3 merupakan salah satu tool yang
dapat digunakan
dalam membandingkan
parameter- parameter MOOSE CK, maka
pemberian nilai
skala dapat
disesuaikan dengan
nilai objektifitas pengukuran kualitas
disain software. Tabel 3. Pemetaan metric dengan
Object Oriented Design Element
Metric Object
Definition Object
Attributes Object
Commu nication
WMC √
√ DIT
√ NOC
√ RFC
√ √
CBO √
LCOM √
Sumber: Tesis MTI UI Volume 5, No.1, 2007
Dengan preferensi seperti tabel diatas, diperoleh nilai bobot dari masing-
masing metric seperti disajikan tabel dibawah ini
Tabel 4. Bobot Parameter MOOSE CK
Rata- rata
WMC 0.1149
DIT
0.0565
NOC 0.0312
CBO 0.2396
RFC
0.4617
LCOM 0.0963
1.5.3
Evaluasi Parameter MOOSE CK
Evaluasi parameter
MOOSE CK adalah tahapan kedua dari metode pengukuran kualitas
disain software. Pada tahap ini dilakukan perbandingan parameter
MOOSE CK yang sama antar masing-masing software.
Banyak software atau tool yang dapat melakukan pengukuran
MOOSE CK. Masing-masing tool memiliki
kelebihan dan
kekurangan. Diantara tool yan penulis
pernah coba
adalah PHPUnit, CCLOC, namun yang
paling baik dalam hal perhitungan adalah PHP Depend. PHP Depend
adalah software metric khusus untuk bahasa pemrograman PHP.
Berbeda dengan software metric lainnya, PHP Depend mendukung
untuk menghitung aplikasi PHP yang berorientasi objek. Seperti
inheritance,
coupling, encapsulation,
cyclomatic complexity dan lain sebagainya.
Tool ini berbasis console, dan berjalan dalam sistem operasi
linux. Instalasinya cukup mudah, kita dapat mendownloadnya lewat
website
resminya di
www.pdepend.net. Kemudian kita mengikuti panduan instalasinya
dengan benar, untuk mengeceknya apakah sudah terinstal, kita perlu
mengetik pdepend
–version pada console terminal linux.
Setelah melalui
perhitungan menggunakan PHP Depend maka didapatkan hasil
sebagai berikut ini.
Tabel 5. Jumlah class pada masing-masing framework PHP
No Framework
Jumlah Class
1 Yii
1082 2
CodeIgniter 136
3 CakePHP
460 4
Symfony 2102
5 Zend
2244 Sumber: Hasil Pengujian Penulis