• Tidak ada hasil yang ditemukan

PERBANDINGAN PENERAPAN OOP DAN AOP PADA APLIKASI YANG DIBANGUN DENGAN FRAMEWORK ASP.NET MVC WEB APPLICATION

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERBANDINGAN PENERAPAN OOP DAN AOP PADA APLIKASI YANG DIBANGUN DENGAN FRAMEWORK ASP.NET MVC WEB APPLICATION"

Copied!
10
0
0

Teks penuh

(1)

PERBANDINGAN PENERAPAN OOP DAN AOP PADA APLIKASI YANG

DIBANGUN DENGAN FRAMEWORK ASP.NET MVC WEB APPLICATION

Adi Kusjani1, Lukito Edi Nugroho2, Sujoko Sumaryono3

Jurusan Teknik Elektro dan Teknologi Informasi, Fakultas Teknik, Universitas Gadjah Mada Jl. Grafika No.2 Kampus UGM Yogyakarta

Telp. +62 274 552305

E-mail:adikusjani@yahoo.com, lukito@mti.ugm.ac.id, sujoko@te.ugm.ac.id ABSTRAK

Paradigma Object Oriented Programming (OOP) mempunyai permasalahan dalam mengelompokkan fungsionalitas program yang terdapat dalam beberapa class yang tidak dapat dikelompokkan ke dalam suatu class tertentu, fungsionalitas program tersebut merupakan cross cutting concern. Kemudian muncul paradigma baru yaitu Aspect Oriented Programming (AOP) yang dikembangkan untuk memperbaiki paradigma OOP, dengan mengelompokkan cross cutting concern tersebut dalam sebuah class, yang kemudian disebut dengan aspect. Pada penelitian ini, kami akan menganalisis perbandingan penerapan OOP dan AOP dalam sebuah aplikasi yang dibangun menggunakan ASP.NET MVC Web Application, dimana untuk penerapan AOP menggunakan kelas-kelas Attribute yang ada di System.web.MVC, dengan batasan pada fungsionalitas program: fungsi logging, authorization dan error handling, yang akan diimplementasikan pada kedua paradigma. Adapun kaidah-kaidah untuk membandingkannya ini meliputi: reusability, understandability, maintainability dan testability. Untuk membandingkan menggunakan metode CK-metric berikut ini: Weighted Methods per Class, Response for Class, Lack of Cohesion in Methods, Coupling Between Object Classes, Depth of Inheritance Tree,dan Number of Children. Dari penelitian ini dapat dibuat kesimpulan bahwa aplikasi AOP lebih baik pada semua kaidah yaitu: reusability, maintainability, understandability dan testability, kecuali pada untuk metode Depth of Inheritance Tree kaidah understandability dari aplikasi OOP lebih baik dibandingkan dengan aplikasi AOP.

Kata kunci: Cross Cutting Concern, CK-Metric, Pemrograman Berorientasi Aspek, Pemrograman

Berorientasi Objek 1. PENDAHULUAN

1.1 Latar Belakang

Pemrograman Berorientasi Objek (OOP) telah menjadi teknologi utama pemrograman dalam beberapa tahun terakhir, yang mempunyai kelebihan dalam meningkatkan readibility (mudah dibaca dan dipelajari), reusability (mudah digunakan kembali), dan dekomposisi permasalahan (permodulan). Tetapi OOP mempunyai permasalahan dalam mengelompokkan fungsionalitas program yang terdapat dalam beberapa class yang tidak dapat dikelompokkan ke dalam suatu class tertentu, fungsionalitas program tersebut merupakan cross cutting concern. Hal ini akan menimbulkan permasalahan code tangling yaitu kondisi dimana struktur dari program tersebut tidak dapat ditelusuri dengan baik karena adanya kode-kode yang sama di beberapa bagian yang berbeda dalam program yang mengakibatkan aplikasi menjadi sulit dikelola dan diubah. Permasalahan lainnya scattering yaitu kondisi dimana beberapa aspek yang sama muncul pada setiap kelas.

Kemudian muncul paradigma baru yaitu Pemrograman Berorientasi Aspek (AOP) yang dikembangkan untuk memperbaiki paradigma OOP. AOP merupakan sebuah teknik yang melengkapi OOP dan berfungsi untuk mengatasi masalah diatas. Jika AOP dianalogikan dengan proses normalisasi pada pada perancangan basis data, maka AOP

merupakan teknik normalisasi cross cutting concern yang tersebar pada sebuah sistem, dan mengelompokkan cross cutting concern tersebut menjadi sebuah aspect.

1.2 Perumusan Masalah

Berdasarkan latar belakang yang telah disampaikan maka diperlukan adanya analisa perbandingan penerapan OOP dengan AOP dan sejauh mana kelebihan menerapkan AOP dibanding-kan dengan OOP.

1.3 Batasan Masalah

Batasan masalah dalam penelitian ini meliputi: 1. Fungsionalitas aplikasi meliputi: pencatatan

(logging), otorisasi (Authorization), dan penanganan kesalahan (Exception handling). 2. Kaidah-kaidah yang menunjukkan kualitas dari

perangkat lunak, meliputi: Reusability, Understanbility, Maintenace dan Testability. 1.4 Manfaat Penelitian

Dapat mengetahui kelebihan maupun kekurangan penerapan AOP, sehingga dapat dijadikan pertimbangan untuk menerapkan AOP pada aplikasi yang akan dibangun, khususnya yang dibangun menggunakan bahasa C# dengan framework ASP.NET MVC Web application .

1.5 Tujuan Penelitian

Membuktikan kelebihan AOP dibandingkan OOP, dengan mengevaluasi berdasarkan

(2)

kaidah-kaidah perangkat lunak yang berkualitas, menggunakan beberapa metode CK-metric.

2. TINJAUAN PUSTAKA

Menurut Prasojo, Nugroho Gito (2005) dari Universitas Indonesia, Jakarta dalam paper “Penerapan Teknik Aspect Oriented Programming dengan Studi Kasus: Sistem Card Fraud Monitoring”, menunjukkan bahwa teknik Aspect Oriented Programming menyediakan solusi pemisahan cross cutting concern yang efisien dan solusi elegan untuk mengubah sistem berbasis object menjadi mudah dibaca dan mudah di maintain. Dari hasil uji coba runtime weaving memberikan hasil terjadi penurunan performansi sebesar 45% yang disebabkan pendekatan weaving yang digunakan adalah runtime, sehingga ada tambahan waktu untuk mengevaluasi point cut dan pembuatan Advice object.

Menurut Trahkasno, Adhika Subhaga (2009) dari Institut Teknologi Telkom, Bandung dalam paper “Analisis Implementasi Aspect Oriented Programming (AOP) dan Dependency Injection (DI) pada Kualitas Desain Aplikasi JEE, Studi Kasus Implementasi Spring Framework pada Aplikasi JEE”, menunjukkan bahwa dengan AOP dan DI dari Spring framework yang dianalisis tingkat ketergantungan (coupling) fungsional concern terhadap nonfungsional concern dari suatu aplikasi JEE, dimana tools untuk menganalisis menggunakan package dependencies metrics, CK-metrics untuk AOP, dan LOCC metrics. Dapat disimpulkan bahwa AOP dan DI dari spring framework dapat menurunkan tingkat ketergantungan (coupling) fungsional concern terhadap nonfungsional concern dan juga mengurangi duplikasi kode dari aplikasi JEE, yang pada akhirnya meningkatkan kualitas desain aplikasi JEE.

Menurut B Vasundhara dan KV Chalapati Rao (2012) dari Dept. of Computer Science, AMS School of Informatics, Hyderabad, India dan CVR College of Engineering, Ibrahimpatnam, India, dalam paper “Improving Software Modularity using AOP”, menunjukkan bahwa jika dibandingkan dengan OOP, AOP lebih baik secara fungsional dalam rekayasa perangkat lunak. Dalam OOP, modul perangkat lunak yang sesuai, langsung pada sebuah blok kode yang dapat dieksekusi. Sedangkan di AOP, sebuah crosscutting concern, dapat ditemukan dalam beberapa blok kode. Hal ini dapat mengubah sebuah modul menjadi kusut berantakan (tangled mess) dari crosscutting concern. AOP adalah sebuah paradigma pemrograman yang meningkatkan modularitas dengan memungkinkan pemisahan crosscutting concern. AOP tidak menggantikan OOP dalam pemeliharaan sistem tetapi menambahkan fitur dekomposisi tertentu yang mengatasi dominasi crosscutting concern. Efektivitas AOP diilustrasikan dengan membahas fungsi logging di aplikasi katalog belanja online.

3. METODOLOGI PENELITIAN Metode penelitian yang dilakukan meliputi: 3.1 Studi Pustaka dan Literatur

Melakukan studi pustaka dan literatur dengan melakukan pencarian, pengumpulan, pembelajaran buku-buku, literatur-literatur, jurnal dan bacaan-bacaan lainnya dan dari internet.

3.2 Perangkat Penelitian 3.2.1 Perangkat Keras

Perangkat keras yang digunakan adalah: Prosesor Core 2 Duo 1.8GHz, Memori 2 GB, Harddisk 320 GB, dan Sistem operasi Windows 7.

3.2.2 Perangkat Lunak

Perangkat lunak yang digunakan adalah: Microsoft Visual Studi 2012, ASP.NET MVC Web application, C# (Sharp), dan SQL Sever 2012. 3.2.3 Tahap-Tahap Penelitian

1. Membangun aplikasi berbasis web dengan OOP dan AOP menggunakan bahasa C# dengan framework ASP.NET MVC Web application, yang keduanya memiliki sistem yang sama.

2. Melakukan pengujian pada aplikasi OOP dan AOP, dimana masing-masing aplikasi memiliki fungsionalitas tambahan sebagai berikut: pencatatan (logging), otorisasi (Authorization), dan penanganan kesalahan (Exception handling).

3. Membandingkan kedua aplikasi OOP dan AOP, dengan kaidah: reusability, understand-ability, maintainability dan testunderstand-ability, untuk metode yang digunakan membandingkan menggunakan metode CK-metric yang meliputi:

 Weighted Methods per Class (WMC) digunakan untuk mengukur banyaknya method yang diimplementasikan dalam kelas.

 Response for Class (RFC), digunakan untuk menghitung banyaknya method yang kemungkinan di eksekusi sebagai response atas message objek dari kelas tersebut.  Lack of Cohesion in Methods (LCOM),

digunakan untuk mengukur derajat kemiripan method oleh variabel input data atau atribut dalam class.

 Coupling Between Object Classes (CBO), digunakan menghitung jumlah class lainnya yang non-inheritance dimana class tersebut di couple(didalam satu class memanggil method dari class lainnya).  Depth of Inheritance Tree (DIT),

digunakan untuk mengukur kedalaman dari suatu class pada inheritance hierarchy tree, dengan cara menghitung jumlah tingkatan dari kelas node ke root dari inheritance hierarchy tree.

 Number of Children (NOC) merupakan jumlah subclass yang diturunkan langsung

(3)

4. PENGUJIAN DAN PEMBAHASAN 4.1 Use Case Diagram

Dalam use case diagram seorang user (konsumen atau administrator) dapat melakukan beberapa aktifitas, dimana aktifitas inilah yang akan membatasi kegiatan user didalam sistem. Dalam penelitian ini use case diagram ini dipisahkan menjadi 3 berdasarkan fungsionalitas tambahan yang kemudian akan dijadikan aspek, yaitu: Logging, Authorization, dan Exception handling.

Berikut akan ditunjukkan use case diagram dari aplikasi yang akan dibangun, dengan fungsionalitas tambahan atau aspek Authorization, dapat dilihat pada gambar 1. Dalam use case diagram ini, fungsionalitas tambahan Authorization yang merupakan pemberian hak akses yang mengizinkan sebuah subyek (user atau program) mempunyai akses secara legal terhadap sebuah obyek (basis data, tabel, view, application, procedure, atau method yang dibuat di dalam sebuah sistem).

Untuk selanjutnya fungsionalitas tambahan atau aspek Authorization ini akan dikenakan pada use case: Mengelola Katalog dan Mengelola Pesanan.

Gambar 1. Use Case Diagram, Aspek Authorization 4.2 Class Diagram

Merupakan diagram yang menunjukan class-class yang ada dari sebuah sistem dan hubungannya secara logika. Class diagram menunjukkan hubungan antar class dalam sistem yang dibangun dan bagaimana setiap class saling berkolaborasi untuk mencapai suatu tujuan. Class diagram dari sistem aplikasi yang dibangun dapat dilihat pada gambar 2.

Gambar 2. Class Diagram Sistem Aplikasi 4.3 Beberapa tampilan dari kedua aplikasi

Berikut ini beberapa tampilan pada aplikasi yang dibangun, meliputi: Gambar 3. Halaman Utama, Gambar 4. Halaman Login, dan Gambar 5. Halaman Utama Administrator.

Gambar 3. Halaman Utama

(4)

Gambar 5. Halaman Utama Administrator 4.4 Fungsionalitas pada Aplikasi OOP

Berikut ini salah satu contoh, kode program fungsionalitas Authorization pada aplikasi OOP: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcMusicStore.Models; namespace MvcMusicStore.Models {

public class Authorization {

public void authoriseAdmin() { if (!HttpContext.Current.User .Identity.IsAuthenticated) { HttpContext.Current .Response.Redirect("~ /Account/Logon"); } if (HttpContext.Current.User .IsInRole("Users")) { HttpContext.Current .Response.Redirect("~ /Account/AccessDenied"); } }

public void authoriseUser() { if (!HttpContext.Current.User .Identity.IsAuthenticated) { HttpContext.Current .Response.Redirect("~ /Account/Logon"); } if (HttpContext.Current.User .IsInRole("Administrator")) HttpContext.Current .Response.Redirect("~ /Account/AccessDenied"); } } } }

4.5 Fungsionalitas pada Aplikasi AOP

Berikut ini salah satu contoh, kode program fungsionalitas Authorization pada aplikasi AOP: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcMusicStore.Models; namespace MvcMusicStore.Aspects { public class ActionLogFilterAttribute : ActionFilterAttribute, IActionFilter {

public override void

OnActionExecuting( ActionExecutingContext filterContext) { MVCMusicStoreEntities storeDB = new MVCMusicStoreEntities(); ActionLog log = new ActionLog() { Controller = filterContext. ActionDescriptor. ControllerDescriptor. ControllerName, Action = filterContext. ActionDescriptor.ActionName, IP = filterContext. HttpContext.Request. UserHostAddress, DateTime = filterContext. HttpContext.Timestamp, UserName = filterContext. HttpContext.User.Identity. Name }; storeDB.AddToActionLogs(log); storeDB.SaveChanges(); base.OnActionExecuting (filterContext); } } }

4.6 Analisis Aplikasi dengan Metrik WMC Berikut tabel dan diagram hasil perhitungan WMC pada aplikasi OOP dan AOP.

(5)

Nama Kelas WMC OOP Nama Kelas WMC AOP Account Controller 8 Account Controller 8 Artist

Controller 7 Artist Controller 7 Checkout

Controller 3 Checkout Controller 3 Genre

Controller 7

Genre

Controller 7 Home

Controller 2 Home Controller 2 Order

Controller 3 Order Controller 3 OrderDetail

Controller 1 OrderDetailController 1 Shopping Cart Controller 4 Shopping Cart Controller 4 Store

Controller 4 Store Controller 4 Store Manager Controller 8 Store Manager Controller 8 Shopping Cart 11 Shopping Cart 11

Authoriza-tion 2 Exception Controller 1 Logging 1 ActionLog Filter Attribute 1 Total 61 Custom Authorize Attribute 1 Model Exception Attribute 1 Total 62

Gambar 6. Diagram perhitungan WMC dari OOP

Gambar 7. Diagram perhitungan WMC dari AOP Dengan melihat hasil perhitungan WMC pada Tabel 1 dan diagram pada Gambar 6 dan Gambar 7, dimana hasil perhitungan WMC dari aplikasi OOP sama dengan 61 dan AOP sama dengan 62. Hasil perhitungan WMC berpengaruh terhadap understandability, maintenance, reusability dan testability. Maka dapat kita simpulkan pengukuran dengan metode metrik WMC, menunjukkan tingkat understandability, maintenance, reusability dan testability dari kedua aplikasi OOP dan AOP yang relatif sama.

4.7 Analisis Aplikasi dengan Metrik DIT Berikut tabel dan diagram hasil perhitungan DIT pada aplikasi OOP dan AOP.

Tabel 2. Hasil Perhitungan DIT dari Aplikasi OOP dan AOP

Nama Kelas OOPDIT Nama Kelas AOPDIT Account

Controller 3 Account Controller 3 Artist

Controller 3 Artist Controller 3 Checkout

Controller 3

Checkout

Controller 3 Genre

Controller 3 Genre Controller 3 Home

Controller 3 Home Controller 3 Order

Controller 3 Order Controller 3 OrderDetail Controller 3 OrderDetail Controller 3 Shopping Cart Controller 3 Shopping Cart Controller 3 Store

Controller 3 Store Controller 3 Store Manager Controller 3 Store Manager Controller 3 Shopping

Cart 0 Shopping Cart 0

Authoriza-tion 0 Exception Controller 3 Logging

0

ActionLog Filter

(6)

Total 30 Custom Authorize Attribute 4 Model Exception Attribute 3 Total 44

Gambar 8. Diagram perhitungan DIT dari OOP

Gambar 9. Diagram perhitungan DIT dari AOP Dengan melihat hasil perhitungan DIT pada Tabel 2 dan diagram pada Gambar 8 dan Gambar 9, dimana hasil perhitungan DIT dari aplikasi OOP sama dengan 30 dan dari aplikasi AOP sama dengan 44. Hasil perhitungan DIT berpengaruh terhadap understandability dan reusability. Maka dapat kita simpulkan pengukuran dengan metode metrik Depth of Inheritance Tree, menunjukkan tingkat understandability dari aplikasi OOP lebih baik dibandingkan dengan aplikasi AOP, sedangkan tingkat reusability aplikasi AOP lebih baik dibandingkan dengan OOP.

4.8 Analisis Aplikasi dengan Metrik NOC Berikut tabel dan diagram hasil perhitungan NOC pada aplikasi OOP dan AOP.

Tabel 3. Hasil Perhitungan NOC dari Aplikasi OOP dan AOP

Nama Kelas NOC OOP Nama Kelas NOC AOP Account

Controller 0 Account Controller 0

Artist 0 Artist 0

Checkout

Controller 0 Checkout Controller 0 Genre

Controller 0 Genre Controller 0 Home

Controller 0 Home Controller 0 Order Controller 0 Order Controller 0 Order Detail Controller 0 Order Detail Controller 0 Shopping Cart Controller 0 Shopping Cart Controller 0 Store

Controller 0 Store Controller 0 Store Manager Controller 0 Store Manager Controller 0 Shopping Cart 0 Shopping Cart 0

Authoriza-tion 0 Exception Controller 0 Logging 0 ActionLog Filter

Attribute 0 Total 0 Custom Authorize Attribute 0 Model Exception Attribute 0 Total 0

(7)

Dengan melihat hasil perhitungan NOC pada Tabel 3 dan diagram pada Gambar 10 dan Gambar 11, dimana hasil perhitungan NOC dari masing-masing aplikasi OOP dan AOP sama dengan 0. Hasil perhitungan NOC berpengaruh terhadap reusability dan testability. Maka dapat kita simpulkan pengukuran dengan metode metrik Number of Children, menunjukkan tingkat reusability dan testability dari kedua aplikasi OOP dan AOP sama. 4.9 Analisis Aplikasi dengan Metrik CBO

Berikut tabel dan diagram hasil perhitungan CBO pada aplikasi OOP dan AOP.

Tabel 4. Hasil Perhitungan CBO dari Aplikasi OOP dan AOP

Nama Kelas CBO

OOP Nama Kelas CBO AOP Account Controller 7 Account Controller 6 Artist

Controller 8 Artist Controller 7 Checkout

Controller 8 Checkout Controller 6 Genre

Controller 7 Genre Controller 6 Home

Controller 5

Home

Controller 4 Order

Controller 7 Order Controller 5 OrderDetail

Controller 3 OrderDetailController 3 Shopping Cart Controller 7 Shopping Cart Controller 6 Store

Controller 5 Store Controller 4 Store Manager Controller 8 Store Manager Controller 7 Shopping Cart 9 Shopping Cart 0

Authoriza-tion 2 Exception Controller 9 Logging 5 ActionLog Filter

Attribute 3 Total 81 Custom Authorize Attribute 1 Model Exception Attribute 3 Total 70

Gambar 12. Diagram perhitungan CBO dari OOP

Gambar 13. Diagram perhitungan CBO dari AOP Dengan melihat hasil perhitungan CBO pada Tabel 4 dan diagram pada Gambar 12 dan Gambar 13, dimana hasil perhitungan CBO dari aplikasi OOP sama dengan 81 dan dari aplikasi AOP sama dengan 70 dimana hasil perhitungan CBO berpengaruh terhadap reusability dan maintainability. Maka dapat kita simpulkan pengukuran dengan metode metrik Coupling Between Object, menunjukkan tingkat reusability dan maintainability dari aplikasi AOP lebih baik dibandingkan dengan OOP.

4.10 Analisis Aplikasi dengan Metrik RFC Berikut tabel dan diagram hasil perhitungan RFC pada aplikasi OOP dan AOP.

Tabel 5. Hasil Perhitungan RFC dari Aplikasi OOP dan AOP

Nama Kelas RFC

OOP Nama Kelas RFC AOP Account

Controller 19 Account Controller 18 Artist

Controller 15 Artist Controller 14 Checkout

Controller 15

Checkout

Controller 13 Genre

Controller 16 Genre Controller 15 Home

Controller 8 Home Controller 7 Order

Controller 13 Order Controller 11 OrderDetail Controller 5 OrderDetail Controller 5 Shopping Cart Controller 20 Shopping Cart Controller 19

(8)

Store

Controller 11 Store Controller 10 Store Manager Controller 19 Store Manager Controller 18 Shopping Cart 24 Shopping Cart 24

Authoriza-tion 4 Exception Controller 2 Logging 6 ActionLog Filter Attribute 5 Total 175 Custom Authorize Attribute 2 Model Exception Attribute 4 Total 167

Gambar 14. Diagram perhitungan RFC dari OOP

Gambar 15. Diagram perhitungan RFC dari AOP Dengan melihat hasil perhitungan RFC pada Tabel 5 dan diagram pada Gambar 14 dan Gambar 15, dimana hasil perhitungan RFC dari aplikasi OOP sama dengan 175 dan dari aplikasi AOP sama dengan 167, dimana hasil perhitungan RFC berpengaruh terhadap reuseability, maintainability, understandability dan testability. Maka dapat kita simpulkan pengukuran dengan metode metrik Response for Class, menunjukkan tingkat reuseability, maintainability, understandability dan testability dari aplikasi AOP lebih baik dibandingkan dengan OOP.

4.11 Analisis Aplikasi dengan Metrik LCOM Berikut tabel dan diagram hasil perhitungan LCOM pada aplikasi OOP dan AOP.

Tabel 6. Hasil Perhitungan LCOM dari Aplikasi OOP dan AOP

Nama Kelas LCOM

OOP Nama Kelas LCO M AOP Account Controller 16 Account Controller 16 Artist

Controller 1 Artist Controller 1 Checkout

Controller 1 Checkout Controller 1 Genre

Controller 1 Genre Controller 1 Home

Controller 0

Home

Controller 0 Order

Controller 1 Order Controller 1 OrderDetail

Controller 0 OrderDetailController 0 Shopping Cart Controller 0 Shopping Cart Controller 0 Store

Controller 4 Store Controller 4 Store Manager Controller 0 Store Manager Controller 0 Shopping Cart 9 Shopping Cart 9

Authoriza-tion 0 Exception Controller 0 Logging 0 ActionLog Filter Attribute 0 Total 33 Custom Authorize Attribute 0 Model Exception Attribute 0 Total 33

(9)

Gambar 17. Diagram perhitungan LCOM dari AOP Dengan melihat hasil perhitungan LCOM pada Tabel 6 dan diagram pada Gambar 16 dan Gambar 17, dimana hasil perhitungan LCOM dari aplikasi OOP dan AOP sama dengan 33, hasil perhitungan LCOM ini berpengaruh terhadap reuseability, maintain-ability, understandability dan testability. Maka dapat kita simpulkan pengukuran dengan metode metrik Lack of Cohesion in Methods, menunjukkan tingkat reuseability, maintainability, understandability dan testability dari aplikasi AOP dan OOP sama.

4.12 Hasil Akhir Analisis dengan CK-Metric Berikut tabel dan diagram hasil akhir perhitungan CK-Metric aplikasi OOP dan AOP. Tabel 7. Hasil Perhitungan CK-Metric dari Aplikasi OOP dan AOP

Metode Metrik OOP AOP

Weighted Methods per Class

(WMC) 61 62

Depth of Inheritance Tree (DIT) 30 44 Number of Children (NOC) 0 0 Coupling Between Object Classes

(CBO) 81 70

Response for Class (RFC) 175 167 Lack of Cohesion in Methods

(LCOM) 33 33

Gambar 18. Diagram perbandingan OOP dan AOP dengan metode CK-metric

Dengan melihat pada Tabel 7 dan diagram pada Gambar 18, terlihat untuk metode Weighted Methods per Class (WMC) memiliki nilai relatif sama,

kemudian metode Number of Children (NOC) dan Lack of Cohesion in Methods (LCOM), masing-masing memiliki nilai yang sama, yang berarti dengan pengukuran ketiga metode metrik ini kedua aplikasi memiliki tingkat reusability, understand-ability, maintainability dan testability yang sama.

Untuk metode Depth of Inheritance Tree (DIT) nilai aplikasi OOP lebih rendah dibandingkan dengan AOP, yang berarti tingkat understandability dari aplikasi OOP lebih baik dibandingkan dengan aplikasi AOP, sedangkan tingkat reusability aplikasi AOP lebih baik dibandingkan dengan OOP. Metode Coupling Between Object nilai aplikasi OOP lebih tinggi dibandingkan dengan AOP, yang berarti dengan pengukuran ini tingkat reusability dan maintainability dari aplikasi AOP lebih baik, Sedangkan untuk metode Response for Class nilai aplikasi AOP lebih rendah dibandingkan dengan OOP, yang berarti dengan pengukuran ini tingkat reusability, maintainability dan testability aplikasi AOP lebih baik.

5. KESIMPULAN DAN SARAN 5.1 KESIMPULAN

Berdasarkan hasil penelitian dan pembahasan maka dapat di buat beberapa kesimpulan bahwa aplikasi AOP lebih baik pada semua kaidah yaitu: reusability, maintainability, understandability dan testability, kecuali pada untuk metode Depth of Inheritance Tree (DIT) kaidah understandability dari aplikasi OOP lebih baik dibandingkan dengan aplikasi AOP.

5.2 SARAN

Untuk pengembangan lebih lanjut dari penelitian ini kami menyarankan untuk aplikasi yang di buat lebih komplek, dengan jumlah kelas yang lebih banyak dan mengandung banyak crosscutting concerns.

PUSTAKA

Mahendra, Adhari C., 2004, Pengantar Pemrogra-man Berbasis Aspek (AOP), (OnLine), http:// dataku.50webs.com/download/PengantarPemogr amanBerbasisAspek%28AOP%29.pdf, diakses 10 Januari 2013.

Prasojo, Nugroho Gito., 2005, Penerapan teknik aspect oriented programming dengan studi kasus: sistem card fraud monitoring, (OnLine), http://lib.ui.ac.id/harvest/index.php/record/view/ 41869, diakses 10 Februari 2013.

El-Ahmadi, Abdellatif., 2006, Software Quality Metrics for Object Oriented Systems, Technical University of Denmark, Kongens Lyngby. Jawadekar, Waman S., 2004, Software Engineering:

Principles and Practice, Tata McGraw-Hill, New Delhi.

SATC.,1995, Software Quality Metrics for Object Oriented System Enviroments, NASA Goddard Space Flight Center, Grenbelt Maryland.

(10)

Barbacci, Mario R., 2004, Software Quality Atributes: Modifiability and Usability, Carnegie Mellon University, Pittsburgh.

Fenton, Norman E., 1997, Software Metrics: A Rigourous and Practical Approach, PWS Publishing Company, Boston.

Rhamdani, 2008, Evaluasi Kualitas Perangkat Lunak Berorientasi Objek, (OnLine), http://repository.ipb.ac.id/handle/123456789/179 81, Computer Science IPB, Bogor, diakses 15 Desember 2012.

Chidamber, S. dan Chris F. Kemerer., 1994, Metrics Suite for Object Oriented Design, IEEE Transaction on Software Engineering, vol.20 no.6.

Arthana, Resika dan Sunario, 2011, Matric Software, (OnLine), http://www.rey1024.com /index.php?s=Metric+Software, diakses 15 Desember 2012.

Suhanto, Agus., 2008, Mengenal ASP .NET MVC, Indonesia .NET Developer Community.

Kurniawan, Erick., 2012, Pemrograman Web Dinamis dengan ASP.NET 4.5, Andi, Yogyakarta.

Amri, M. Choirul., 2003, Pengantar ASP.NET, (OnLine), http://komputer34.files.wordpress.com /2008/12/pengantar-aspnet.pdf, diakses 17 Desember 2012.

Subagyo, Hendro., 2013, ASP.NET, (OnLine), http:// brainmatics.com/asp-net/, diakses 10 Oktober 2013

Hyrazz., 2011, Apa itu Microsoft SQL Server, (OnLine), http://mugi.or.id/blogs/9llagank

/archive/2011/06/25/apa-itu-microsoft-sql-server.aspx, diakses 20 Agustus 2013

Wikipedia, 2013, Pemrograman berorientasi objek, (OnLine), http://id.wikipedia.org/wiki /Pemro-graman_berorientasi_objek, diakses 15 Agustus 2013.

Sustainable Debian Network--Unified Nifty Docu-ments Project webpage, 2001, Loggging, (OnLine), http://sdn.vlsm.org/share/ServerLinux /node173.html, diakses 15 Oktober 2013.

Rahardjo, Budi., Kusdrianto, Andhi.,2005, ITB Campus-Wide Identity Management, (OnLine),

http://budi.paume.itb.ac.id/articles/paper-identity-5.doc, diakses 16 Oktober 2013.

Puspita, Nindya., 2013, Exception handling, (OnLine),http://nindyapuspita178.wordpress.com /2013/05/07/bab-6-exception-handling/, diakses 15 Oktober 2013.

Habibie, M.Iqbal., 2012, Security, (OnLine), http://iqbalhabibie.staff.gunadarma.ac.id, diakses 16 Oktober 2013.

B Vasundhara dan KV Chalapati Rao., 2012, Improving Software Modularity using AOP, Special Issue of International Journal of Computer Science & Informatics (IJCSI), ISSN (PRINT) : 2231–5292, Vol.- II, Issue-1.2.

Trahkasno, Adhika Subhaga 2009, Analisis Implementasi Aspect Oriented Programming (AOP) dan Dependency Injection (DI) pada Kualitas Desain Aplikasi JEE, Studi Kasus Implementasi Spring Framework pada Aplikasi JEE, http://digilib.ittelkom.ac.id/index.php? option=com_repository&Itemid=34&task=detail &nim=113040259 , diakses 11 Februari 2013. Lippert, Martin dan Lopes, Cristina Videira, 1999,

A Study on Exception Detection and Handling Using Aspect Oriented Programming, Xerox Palo Alto Research Center Technical Report P9910229 CSL-99-1.

Gambar

Gambar 2. Class Diagram Sistem Aplikasi  4.3   Beberapa tampilan dari kedua aplikasi
Tabel 1. Hasil Perhitungan WMC dari Aplikasi OOP
Gambar 6. Diagram perhitungan WMC dari OOP
Gambar 9. Diagram perhitungan DIT dari AOP  Dengan melihat hasil perhitungan DIT pada  Tabel 2 dan diagram pada Gambar 8 dan Gambar 9,  dimana hasil perhitungan DIT dari aplikasi OOP  sama dengan 30 dan dari aplikasi AOP sama dengan  44
+4

Referensi

Dokumen terkait

Untuk mencari penyebab dari permasalahan, baik yang berasal dari 6M seperti dijelaskan di atas maupun penyebab yang mungkin lainnya dapat digunakan teknik brainstorming

Dalam penelitian ini wawancara dilakukan khususnya berkaitan dengan data yang tidak tercantum pada laporan tahunan kecelakaan kerja perusahaan jasa konstruksi DIY yang dikeluarkan

Menimbang : bahwa untuk melaksanakan ketentuan Pasal 14 Peraturan Daerah Kota Tasikmalaya Nomor 7 Tahun 2016 tentang Pembentukan dan Susunan Perangkat Daerah,

Analisis Implementasi Kebijakan Bantuan Operasional Sekolah Dalam Upaya Peningkatan Efektivitas Pelaksanaan Program Sekolah Gratis Pada SEKOLAH DASAR NEGERI X KOTA

9. Buruknya postur tubuh. Sekali lagi, demonstrasi prosedur akan mencegah banyak masalah yang berkaitan dengan pemeriksaan spirometri dan, mengingat bahwa semua upaya

A tárgyalások következő fordulójára augusztus 10-én került sor. Erre készülvén mindkét országos képviselet feljegyzést állított össze