Metric software: Lack of Cohesion (LCOM)

 

LCOM digunakan untuk mengukur derajat kemiripan method oleh  variabel input data atau atribut dalam class. Semakin besar nilai  LCOM pada suatu class mengindikasikan meningkatnya kompleksitas  sehingga meningkatkan  kemungkinan dari error selama proses  pengembangan. Class dengan nilai LCOM yang ditinggi dapat dibagi  menjadi dua atau lebih subclass sehingga dapat meningkatkan nilai  cohesi dari class. Semakin kecil nilai LCOM pada suatu class  mengindikasikan meningkatnya reuseability, maintainabilty dan  understanability.

Berikut rumus yang digunakan untuk menghitung LCOM:

Berikut contoh perhitungan LCOM pada class Cshape:

Cara perhitungan :

Berikut hasil pengukuran metrik LCOM pada program Characters Graphic

Pada paper berjudul “Applying and Interpreting Object Oriented Metrics” yang ditulis oleh Dr. Linda H. Rosenberg disajikan aplikasi dan interpretasi dari metric LCOM dengan menggunakan NASA project data sebagai berikut:

Dari grafik plot yang disajikan diatas, kita dapat melihat pengukuran LCOM yang dibandingkan dengan kemungkinan maksimumnya dari LCOM. Nilai LCOM maksimum bila tidak irisan atribut diantara method di dalam class atau q=0.

Metric Software : Response for Class (RFC)

 
RFC(Response for Class) merupakan metrik yang menghitung banyaknya method yang kemungkinan di eksekusi sebagai response atas message objek dari kelas tersebut. RFC Menyatakan banyaknya method lokal dan banyaknya method yang dipanggil oleh method lokal termasuk semua method dalam kelas hirarki dan juga termasuk kelas library(kecuali method print). Method tersebut menghitung method secara rekursif. Method yang sama cukup dihitung sekali. sumber
Metrik ini berpengaruh terhadap Testability dan Reuseablility. Semakin banyak method yang ada pada kelas tersebut + method kelas lain yang dipanggil maka kelas tersebut akan semakin sulit ditesting dan semakin tidak reusable. RFC pada code dibawah adalah :
RFC(tool)=1(self)+1(drawing)
RFC(tool)=2;
Berikut hasil RFC pada kelas Characters Graphic.
Sedangkan grafik yang dihasilkan pada paper yang kami bahas seperti di bawah ini. Pada gambar dibawah, terdapat beberapa class didalam project yang dalam prosesnya dapat melibatkan lebih dari 200 method. Class dengan RFC yang besar memiliki kompleksitas yang tinggi dan mengurangi understandability dari class tersebut, sehingga menyebabkan testing dan debugging menjadi rumit.

Metric Software : Weighted Methods per Class (WMC)

 

WMC termasuk metrik untuk object oriented yang mengukur banyaknya method yang diimplementasikan dalam kelas atau jumlah keseluruhan kompleksitas method (CC). Dalam paper sumber kami, WMC dihitung berdasarkan banyaknya method yang terdapat dalam kelas.

WMC berpengaruh terhadap understandability, maintenance dan reusability. Semakin banyak method yang terdapat kelas, maka semakin sulit untuk memahami kelas tersebut dan semakin sulit untuk melakukan pemeliharaan. Disamping itu, dengan semakin banyak method didalam suatu kelas, maka kelas tersebut semakin tidak reusable.

Untuk menghitung WMC dilakukan secara sederhana, yaitu menghitung banyaknya suatu method dalam kelas tersebut. Contohnya pada kelas dibawah ini, WMC nya adalah 6.

Berikut hasil WMC yang didapatkan pada program Character Graphic

Pada paper sumber kami, diperoleh Histogram WMC seperti dibawah ini. Histogramtersebut memperlihatkan bahwa sebagian besar class memiliki WMC yang kurang dari 20 dan terdapat beberapa class dengan WMC lebih besar dari 100.  Beberapa class dengan WMC tertinggi merupakan kandidat class yang perlu untuk diperiksa atau perlu dilakukan revisi.Histogram ini juga berguna untuk melakukan monitor kompleksitas terhadap waktu.

 

Metric Software : Comment Percentage

 

Semakin banyak ada komentar yang berisi penjelasan singkat terhadap code yang dibuat, maka akan semakin mudah untuk memahami(Understandbility) dan memelihara(Maintainability) source code tersebut. Tentu saja akan berpengaruh terhadap pengujian(Testing) yang dilakukan terhadap source code tersebut. Untuk menghitung Comment Persentage(CP) = jumlah komentar/(LOC-jumlah baris kosong). Berikut Contohnya.

Total Comments=1, LOC=6, Blank line =0, CP = 1/(6-0) x 100% =17%

Berikut hasil metric comment percentage Characters Graphic


 

Metric software : Size

 

Metric Size merupakan metrik tradisional yang digunakan untuk mengevaluasi tingkat kemudahan untuk mengerti code oleh developer dan mainteners. Seperti metrik Cyclomatic Complexity, Metrik size juga berpengaruh terhadap understandbility, maintainability dan testing. Semakin rendah nilai metrik size, maka semakin mudah untuk mengerti dan memelihara method tersebut. Ada beberapa cara untuk menghitung size dari method, diantaranya adalah Line of Code (LOC), Non-Comment Non Blank (NCNB) dan Executable Statements(EXEC).

LOC menghitung seluruh baris dalam program, NCNB menghitung semua baris yang tidak berisi komentar dan tidak kosong sedangkan EXEC menghitung banyaknya jumlah statement excecutable tanpa memperhatikan jumlah LOC. LOC dan NCNB sangat dipengaruhi oleh bahasa pemrograman dan style dari programmer. pengukuran Exec paling sedikit dipengaruhi oleh programmer, Exec sangat bagus digunakan untuk mengukur metric size terutama jika project menggunakan banyak bahasa pemrograman seperti yang dilakukan oleh SATC yang menggunakan EXEC untuk mengevaluasi project size. Berikut contoh perhitungan metric size.

IF X=3
Then
Y=10

Nilai  LOC= 3 , NCNB=3,  EXEC=1

Contoh lainnya :

LOC = 6, NCNB = 5, EXEC = 1.

Berikut hasil pengukuran metrik size pada Characters Graphic

 

Metric software: Cyclomatic Complexity (CC)

 

Cyclomatic Complexity (CC) merupakan metrik tradisional yang menghitung tingkat kompleksitas suatu method/procedure. Metrik ini bisa diterapkan pada pemrograman berorientasi objek untuk menghitung kompleksitas suatu method. Kompleksitas dalam method merujuk kepada berapa jumlah test case yang diperlukan untuk mengevaluasi method tersebut sehingga setiap percabangan didalam method tersebut pernah dilalui. Cyclomatic Complexity (CC) secara langsung tidak bisa digunakan untuk mengukur kompleksitas kelas. Menurut sumber kami, hal tersebut tidak bisa karena adanya pewarisan dalam code. Namun Cyclomatic Complexity (CC)  bisa menghitung kompleksitas kelas jika dikombinasikan dengan pengukuran lain.

Cyclomatic Complexity (CC) berpengaruh terhadap Understandability, Maintainability dan Testing. Semakin kompleks suatu method berpengaruh terhadap semakin sulit untuk memahami method tersebut dan tentu saja akan semakin sulit jika nantinya ingin melakukan memaintenace method tersebut. Selain itu, tentu saja akan berpengaruh terhadap kompleksitas pengujian yang dilakukan terjadap method tersebut.

Dalam menghitung Cyclomatic Complexity (CC) dalam method, statement disimbolkan dengan node dan aliran program dilambangkan dengan edge. Nilai Cyclomatic Complexity (CC) merupakan jumlah edges-jumlah node +2. Berikut contoh penghitungan CC.

Berikut contoh perhitungan CC dari code. Nilai CC 4 yang dihasilkan berarti diperlukan 4 test case untuk menguji method tersebut

Kami juga melakukan penghitungan nilai CC pada program Character Graphic, diperoleh hasil seperti berikut.

CC tertinggi ditemukan pada kelas Drawing Package. Nilai CC Drawing Package sangat significant dibanding dengan kelas-kelas lain. Ini terjadi karena kelas Drawing Package merupakan kelas yang berisi banyak kondisional case untuk menterjemahkan menu-menu diinput.

Baca Juga : Metrik pengembangan perangkat lunak berorientasi objek

 

 

sada
sadasd•Understandability dan Maintainability

Installing iRODS at Ubuntu(mengatasi error saat download postgresql dan unixODBC)

 

iRODS(Integrated Rule-Oriented Data System) merupakan software system  data grid yang didevelop oleh Data Intensive Cyber Environments research group (developers of the SRB, the Storage Resource Broker). Sistem iRODS didasarkan pada pengalaman yang diperoleh melalui satu dekade menerapkan teknologi SRB dalam mendukung Data Grids, Digital Libraries, Persistent Arsip, dan Real-time Data Systems. iRODS open source dibawah lisensi BSD. Selengkapnya tentang irods bisa lihat di https://www.irods.org/.

Sebenarnya langkah-langkah instalasi iRODS sederhana, sama dengan instalasi software yang lain. namun saat melakukan instalasi  selalu gagal saat irods download postgresql dan unixodbc.  Saya melakukan instalasi di komputer lab digital library & distance learning Fasilkom UI, mungkin error muncul karena koneksi internet melalui proxy. Meskipun proxy sudah diset namun tetap error juga :bingung: . Read the rest of this entry »

Mengenal Array pada Pascal

 

1. Definisi

Array adalah koleksi data yang bertipe sama, tersusun dalam bentuk barisan linier berurutan (sequence) dan jumlah elemen atau datanya tidak berubah (statis) sesuai dengan deklarasi awal. Semua elemen array diidentifikasi dengan sebuah nama (nama array) dan untuk setiap elemennya diidentifikasi/dibedakan dengan sebuah index. Read the rest of this entry »

Membuat autentikasi (login/logout) sederhana pada codeigniter

 

Konsep autentikasi sebenarnya sangat sederhana. Pada dasarnya, entah membuat login di Codeigniter(CI) atau web biasa, kita menyimpan informasi login user pada session. Halaman yang diproteksi juga akan mengecek informasi pada session.
Andaikan kita mempunyai dua halaman web, satu halaman untuk login, satu lagi halaman yang akan diproteksi. Pada halaman login kita buat form untuk input username, password dan tombol submit.  ketika disubmit arahkan ke controler untuk mengecek apakah username benar/salah. Jika benar, kita buat session yang menyatakan user telah login dan arahkan ke halaman yang diproteksi, jika salah arahkan ke halaman login lagi. Sedangkan pada halaman login kita tinggal mengecek session apakah ada session yang menyatakan username sudah login atau belum.  Membuat login pada codeigniter mudah bukan? Berikut contohnya

halaman login, ketika submit akan diarahkan ke controler admin

Login Admin :
<form method="post" action="<?php echo site_url("admin" ) ?>">
 Username : <input type="text" name="username" />
 Password : <input type="password" name="password" />
 <input type="submit" name="Login" id="Login" value="Login"/>
</form>

 

Read the rest of this entry »

Bajuku duluuu nda begini….

 

Kisah percakapan antara bagian2 tubuhku
Kaki      : hey perut, lo berat banget. gw capek ngangkat kamu terus.. :bingung:
Perut    : jangan salahin gw donk, tu si mulut makan terus makanya gw jadi gede :mad:
Mulut   : lho kok nyalahin gw?Tuh si tangan masukin makanan terus ke mulut gw,, :gila:
Tangan : mmmmm.. gw di suruh si Otak tu :amazed:
Otak     : jangan salahin gw donk.. tu si mata liat yang enak2.. gw kan pengen.. :o
mata    : bukan salah gw donk.. si Kaki ngajak gw jalan melewati warung2 enak… :P
Gw        : :lapar

:jrb: