Deteksi Klon SQL di Lapisan Model pada Aplikasi Berarsitektur MVC

Akbar, Fawwaz Ali (2017) Deteksi Klon SQL di Lapisan Model pada Aplikasi Berarsitektur MVC. Masters thesis, Institut Teknologi Sepuluh Nopember.

[img]
Preview
Text
5115201006-Master_Thesis.pdf - Published Version

Download (2MB) | Preview

Abstract

Pola desain arsitektur Model-View-Controller (MVC) merupakan sebuah pola desain yang sesuai untuk sistem interaktif. Pola MVC banyak diadaptasi oleh aplikasi berbasis desktop maupun web. Banyak kerangka kerja dibangun dengan mengadaptasi pola MVC. Setiap lapisan pada MVC memiliki fungsi yang berbeda. Fungsi utama dari lapisan Model adalah pengaksesan data. Kerangka kerja berbasis MVC menyediakan kemudahan pengaksesan data seperti penulisan kueri yang dapat direpresentasikan dengan beberapa cara berbeda seperti raw SQL, query builder, ORM. Dalam proses pengembangan sebuah sistem perangkat lunak, duplikasi kode merupakan masalah yang serius karena akan berdampak pada proses pemeliharaan sistem. Terkait dengan pola MVC dan kode klon, pendekatan deteksi klon yang ada saat ini masih belum efektif untuk mendeteksi klon di lapisan model. Hal ini dikarenakan sebagian besar kode di lapisan model adalah kueri ke sistem basis data. Sehingga seharusnya deteksi klon pada lapisan model juga mempertimbangkan duplikasi kueri. Duplikasi kueri dalam bentuk skrip SQL ini juga mempunyai dampak yang sama dengan dampak negatif kode klon. Misalnya, pada saat proses pemeliharaan sistem, ada sebuah kueri yang diubah, dan kueri tersebut sama dengan beberapa kueri yang lain, maka duplikat kueri yang lain juga memungkinkan untuk diubah. Sehingga informasi duplikat kueri sangat dibutuhkan. Penelitian ini mengusulkan metode deteksi duplikasi kueri pada lapisan model dengan mengidentifikasi duplikat SQL skrip yang dihasilkan dari raw SQL atau query builder. Hasil deteksi duplikasi kueri pada lapisan model ini dapat dijadikan acuan untuk menghindari dampak negatif dari kode klon. Dari hasil uji coba pada pendekatan yang diusulkan menghasilkan akurasi sebesar 86,52%. Sedangkan untuk nilai precision dan recall berturut-turut sebesar 94,85% dan 84,34%. ================================================================= Model-View-Controller (MVC) design pattern is design pattern that suitable for interactive systems. MVC is adapted in desktop and web-based applications. Moreover, many frameworks adapting MVC pattern. Each layer of MVC has a different function. The main function of the Model layer is data access. MVC-based framework providing ease of data access such as writing queries that can be represented in different ways such as raw SQL, query builder, ORM. In software development, code duplication is a serious problem because it will impact on the maintenance process. Associated with the MVC pattern and code clone, clone detection approach that exists today is still not effective to detect clones in the model layer because most of the code in the model layer is the query to the database system. Based on that problem, clone detection of the model layer should considering duplicate query. Duplication queries also has same negative impact of code clones. For example, during system maintenance, if there is a query modified, and that query have duplicate, then the duplicate query is also possible to be changed. So that duplicate query information is needed. This study tries to detect duplicate queries in the model layer by identifying duplicate SQL scripts generated from the raw SQL or query builder. Detected duplicate query in model layer can be used as a reference in order to avoid the negative impact of the code clones. The results of evaluation on the proposed approach yield accuracy 86.52%, precision 94.85% and 84.34% recall.

Item Type: Thesis (Masters)
Uncontrolled Keywords: MVC, Web, SQL Klon, Lapisan Model, Deteksi Klon, SQL Clone, Model layer, Clone Detection
Subjects: T Technology > TK Electrical engineering. Electronics Nuclear engineering > TK5105.546 Computer algorithms
Divisions: Faculty of Information Technology > Informatics Engineering > 55101-(S2) Master Thesis
Depositing User: Fawwaz Ali Akbar
Date Deposited: 30 Oct 2017 07:31
Last Modified: 05 Mar 2019 07:42
URI: https://repository.its.ac.id/id/eprint/43321

Actions (login required)

View Item View Item