Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
ISSN: 2089-9813
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:
[email protected],
[email protected],
[email protected] 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 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 dibandingkan 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 kaidah-
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 116
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
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.
ISSN: 2089-9813
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 bacaanbacaan 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, understandability, maintainability dan testability, 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 dari suatu class. 117
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
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.
ISSN: 2089-9813
Gambar 2. Class Diagram Sistem Aplikasi 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. 4.3
Gambar 3. Halaman Utama
Gambar 1. Use Case Diagram, Aspek Authorization 4.2 Class Diagram Merupakan diagram yang menunjukan classclass 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 4. Halaman Login
118
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
} 4.5
ISSN: 2089-9813
}
}
HttpContext.Current .Response.Redirect("~ /Account/AccessDenied"); }
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; Gambar 5. Halaman Utama Administrator 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.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. Tabel 1. Hasil Perhitungan WMC dari Aplikasi OOP dan AOP
4.4
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")) { 119
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
Nama Kelas
Account Controller Artist Controller Checkout Controller Genre Controller Home Controller Order Controller OrderDetail Controller Shopping Cart Controller Store Controller Store Manager Controller Shopping Cart Authorization Logging
WMC OOP
8 7 3 7 2 3 1 4 4 8 11 2 1
Total
61
Nama Kelas
Account Controller Artist Controller Checkout Controller Genre Controller Home Controller Order Controller OrderDetail Controller Shopping Cart Controller Store Controller Store Manager Controller Shopping Cart Exception Controller ActionLog Filter Attribute Custom Authorize Attribute Model Exception Attribute Total
ISSN: 2089-9813
WMC AOP
8 7 3 7 2 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
3 1 4 4 8 11 1
Nama Kelas
1
Account Controller Artist Controller Checkout Controller Genre Controller Home Controller Order Controller OrderDetail Controller Shopping Cart Controller Store Controller Store Manager Controller Shopping Cart Authorization Logging
1 1 62
Gambar 6. Diagram perhitungan WMC dari OOP
DIT OOP
3 3 3 3 3 3 3 3 3 3 0 0 0
120
Nama Kelas
Account Controller Artist Controller Checkout Controller Genre Controller Home Controller Order Controller OrderDetail Controller Shopping Cart Controller Store Controller Store Manager Controller Shopping Cart Exception Controller ActionLog Filter Attribute
DIT AOP
3 3 3 3 3 3 3 3 3 3 0 3 4
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
Total
30
Custom Authorize Attribute Model Exception Attribute Total
Checkout Controller Genre Controller Home Controller Order Controller Order Detail Controller Shopping Cart Controller Store Controller Store Manager Controller Shopping Cart Authorization
4 3 44
Gambar 8. Diagram perhitungan DIT dari OOP
Logging Total
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 NOC NOC Nama Kelas Nama Kelas OOP AOP Account Account 0 0 Controller Controller Artist Artist 0 0 Controller Controller
ISSN: 2089-9813
0 0 0 0 0 0 0 0 0 0 0 0
Checkout Controller Genre Controller Home Controller Order Controller Order Detail Controller Shopping Cart Controller Store Controller Store Manager Controller Shopping Cart Exception Controller ActionLog Filter Attribute Custom Authorize Attribute Model Exception Attribute Total
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Gambar 10. Diagram perhitungan NOC dari OOP
Gambar 11. Diagram perhitungan NOC dari AOP 121
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
Dengan melihat hasil perhitungan NOC pada Tabel 3 dan diagram pada Gambar 10 dan Gambar 11, dimana hasil perhitungan NOC dari masingmasing 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 CBO CBO Nama Kelas Nama Kelas OOP AOP Account Account 6 7 Controller Controller Artist Artist 7 8 Controller Controller Checkout Checkout 6 8 Controller Controller Genre Genre 6 7 Controller Controller Home Home 5 4 Controller Controller Order Order 5 7 Controller Controller OrderDetail OrderDetail 3 3 Controller Controller Shopping Shopping Cart 7 Cart 6 Controller Controller Store Store 5 4 Controller Controller Store Store Manager 8 Manager 7 Controller Controller Shopping Shopping 0 9 Cart Cart Exception Authoriza2 9 Controller tion ActionLog Logging 5 Filter 3 Attribute Custom Authorize 1 Total 81 Attribute Model Exception 3 Attribute Total 70
ISSN: 2089-9813
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 RFC RFC Nama Kelas Nama Kelas OOP AOP Account Account 18 19 Controller Controller Artist Artist 14 15 Controller Controller Checkout Checkout 13 15 Controller Controller Genre Genre 15 16 Controller Controller Home Home 7 8 Controller Controller Order Order 13 11 Controller Controller OrderDetail OrderDetail 5 5 Controller Controller Shopping Shopping Cart 20 Cart 19 Controller Controller 122
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
Store Controller Store Manager Controller Shopping Cart Authorization Logging
11 19 24 4 6
Total
175
Store Controller Store Manager Controller Shopping Cart Exception Controller ActionLog Filter Attribute Custom Authorize Attribute Model Exception Attribute Total
ISSN: 2089-9813
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 LCO LCOM Nama Kelas Nama Kelas M OOP AOP Account Account 16 16 Controller Controller Artist Artist 1 1 Controller Controller Checkout Checkout 1 1 Controller Controller Genre Genre 1 1 Controller Controller Home Home 0 0 Controller Controller Order Order 1 1 Controller Controller OrderDetail OrderDetail 0 0 Controller Controller Shopping Shopping Cart 0 Cart 0 Controller Controller Store Store 4 4 Controller Controller Store Store Manager 0 Manager 0 Controller Controller Shopping Shopping 9 9 Cart Cart AuthorizaException 0 0 tion Controller Logging ActionLog 0 0 Filter Attribute Custom Authorize 0 Total 33 Attribute Model Exception 0 Attribute Total 33
10 18 24 2 5 2 4 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.
Gambar 16. Diagram perhitungan LCOM dari OOP
123
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
kemudian metode Number of Children (NOC) dan Lack of Cohesion in Methods (LCOM), masingmasing memiliki nilai yang sama, yang berarti dengan pengukuran ketiga metode metrik ini kedua aplikasi memiliki tingkat reusability, understandability, 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.
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) Coupling Between Object Classes (CBO)
0
0
81
70
175
167
33
33
Response for Class (RFC) Lack of Cohesion in Methods (LCOM)
ISSN: 2089-9813
PUSTAKA Mahendra, Adhari C., 2004, Pengantar Pemrograman 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.
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, 124
Seminar Nasional Teknologi Informasi dan Komunikasi 2014 (SENTIKA 2014) Yogyakarta, 15 Maret 2014
ISSN: 2089-9813
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.
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-sqlserver.aspx, diakses 20 Agustus 2013 Wikipedia, 2013, Pemrograman berorientasi objek, (OnLine), http://id.wikipedia.org/wiki /Pemrograman_berorientasi_objek, diakses 15 Agustus 2013. Sustainable Debian Network--Unified Nifty Documents 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/paperidentity-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.
125