Pembuatan Kakas Pendeteksi Unused Methods pada Kode...

31
Pembuatan Kakas Pendeteksi Unused Methods pada Kode Program PHP dengan Framework CodeIgniter Menggunakan Call Graph DIVI GALIH PRASETYO PUTRI NRP 5110100 118 DOSEN PEMBIMBING DANIEL ORANOVA SIAHAAN, S.KOM., M.SC., P.D.ENG. RIZKY JANUAR AKBAR, S.KOM., M.ENG. JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2014

Transcript of Pembuatan Kakas Pendeteksi Unused Methods pada Kode...

Page 1: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pembuatan Kakas Pendeteksi Unused Methods pada Kode Program PHP dengan Framework CodeIgniter Menggunakan Call Graph

D I V I GA L I H PR A S E T YO PU T R I

N R P 5 11 0 1 00 11 8

D O S E N P E M B I M B I N G

D A N I E L O R A N O VA S I A H A A N , S . K O M . , M . S C . , P. D . E N G .

R I Z K Y J A N U A R A K B A R , S . K O M . , M . E N G .

J U R U S A N T E K N I K I N F O R M AT I K A

FA K U LTA S T E K N O L O G I I N F O R M A S I

I N S T I T U T T E K N O L O G I S E P U L U H N O P E M B E R

S U R A B AYA 2 0 1 4

Page 2: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Latar Belakang (1)

Evolusi

Unused Methods

Peningkatan Performa

Penambahan Fungsionalitas

Adaptasi Teknologi Baru

Page 3: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Latar Belakang (2)

Complexity

Size

Maintainability

Understandability

Unused Methods

Page 4: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Latar Belakang (3)

Nama Aplikasi Aplikasi yang Sudah Ada Aplikasi yang Dibangun

UCDetector Aplikasi dapat melakukan analisa pada kode program Java tetapi tidak pada kode program PHP.

Aplikasi dapat menganalisa kode program PHP.

PHPMD, PHPDCD Aplikasi dapat menganalisa kode program (dead code) PHP namun tidak pada framework CodeIgniter

Aplikasi dapat menganalisa kode program PHP dengan framework CodeIgniter

PHP CodeSniffer Aplikasi dapat menganalisa kode program PHP dengan framework CodeIgniter namun menuntut pengguna untuk mendefinisikan standar pengkodean sebelum dapat melakukan analisa.

Aplikasi dapat langsungdigunakan oleh pengguna.

Page 5: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Solusi

Kode Program PHP Kakas Bantu Daftar unused methods

Page 6: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Rumusan Masalah•Bagaimana melakukan analisis terhadap sebuah program untuk

menemukan unused method dengan memanfaatkan call graph yang telah dibangun.

•Bagaimana membangun sebuah call graph antar method dan antar komponen dari sebuah sistem web berbahasa pemrograman PHP dengan framework CodeIgniter.

Page 7: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Batasan Masalah

• Bahasa pemrograman menggunakan bahasa Java.

•Data uji yang akan digunakan adalah aplikasi web dengan bahasa pemrograman PHP dan dibangun menggunakan framework CodeIgniter.

•Kakas hanya dapat memberi saran dan acuan penghapusan fungsibagi pengguna Eclipse.

Page 8: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Analisa dan Perancangan

Page 9: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

AST (Abstract Syntax Tree) Representasikan kode program dalam bentuk tree.

Page 10: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Call GraphGraph berarah yang merepresentasikan pemanggilan kontrol antar prosedur.

Page 11: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

CodeIgniter Memanfaatkan paradigma

MVC

Entry point aplikasi adalah default_controller

C

M

V

Page 12: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Proses Deteksi Unused Methods

Page 13: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Proses Pembangunan Call Graph

Page 14: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Uji Coba

Lingkungan PengujianProsesor : Intel Core i5 M520 CPU @ 2.40GHz

Memori : 4.00 GB

Jenis Device : Laptop

Sistem Operasi : Microsoft Windows 8 Enterprise 32 bit

IDE Eclipse : Eclipse Kepler 4.3 (RCP)

JDK : JDK 7

Page 15: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Data Uji

Nama Aplikasi Ukuran Aplikasi

Jumlah Kelas Jumlah Method Link Aplikasi

kp2 10 18 https://www.dropbox.com/s/hu3zyod69et7

rgf/kp2.zip

aps 11 32 https://www.dropbox.com/s/duygzdl35hu1

oqp/aps.zip

Keymanagement 13 36 https://www.dropbox.com/s/2dp13csj8fr0

kfd/keymanagement.zip

SIMSchool 75 290 https://www.dropbox.com/s/gw2skryh3zu

2flt/SIMSchool.zip

Page 16: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Langkah-LangkahPengujian dan Penggunaan Membuka Project PHP pada Eclipse PDT

Buka tampilan view Detector - PHP Detector

Pilih menu untuk memulai proses deteksi

Pilih pada salah satu method untuk menampilkan kode program

Next

Page 17: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pengguna membuka PHP Project Pada PDT Eclipse

Back

Page 18: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Skenario PengujianBuka View ( Window

– Show View )

Back

Page 19: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Memilih menu untuk memulai proses deteksi

Back

Page 20: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pilih pada salah satu method untuk menampilkan kode program

Back

Page 21: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Hasil Uji Coba

Data Uji Retrieve Relevant Relevant retrieve Precision Recall

keymanagemen 7 6 6 0,857143 1

kp2 2 2 2 1 1

aps 25 17 17 0,68 1

SIMSchool 199 42 42 0,2111 1

Average 0,68706075 1

Page 22: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

KesimpulanSistem dapat mendeteksi method yang tergolong dalam unused method

dengan memanfaatkan call graph yang dibangun dari kode program. Hal ini ditunjukkan dengan nilai recall dari sistem sebesar 1.

Sistem dapat melakukan deteksi dengan rata-rata tingkat ketelitian dan ketepatan sebesar 0.68.

Sistem dapat menampilkan blok method yang dipilih pengguna untuk ditampilkan.

Page 23: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

SaranMeningkatkan presisi sistem untuk mendeteksi adanya unused methods

dengan menambahkan tipe – tipe pemanggilan method pada kelas kontroler dari sebuah view.

Menambahkan fitur untuk melakukan proses penghapusan terhadap methodyang terdeteksi sebagai unused method dari sistem.

Page 24: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Aturan – Aturan Pemanggilan Antar Kelas Pemanggilan dari kelas kontroler ke kelas model

Pemanggilan dari kelas kontroler ke kelas kontroler

Pemanggilan dari kelas kontroler ke view

Pemanggilan dari view ke kontroler

Page 25: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pemanggilan dari Kelas Kontroler ke Kelas Model

Pada method _construct :

Pada method pemanggil :

$this->load->model(‘nama kelas model');

$this->nama_kelas_model->nama_fungsi(‘parameter');

Back

Page 26: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pemanggilan antar Method pada Kelas Kontroler

Pada method pemanggil :

$this->nama_method();

Back

Page 27: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pemanggilan dari Kelas Kontroler ke View

Pada method pemanggil :

$this->load->view(‘nama_view’,’data’)

Back

Page 28: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pemanggilan dari View ke Kontroler Menggunakan syntax HTML

Menggunakan syntax PHP

Menggunakan syntax JavaScript

Back

Page 29: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pemanggilan dari view ke kontroler

Menggunakan syntax HTML

Tag <a href=# />

Nama_kontroler/nama_fungsi

<?php base_url()?>Nama_kontroler/nama_fungsi

Tag form

onclick=nama_fungsi_JavaScript()

action = nama_kontroler/nama_fungsi

Page 30: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pemanggilan dari view ke kontroler

Menggunakan syntax PHP

form_open(nama_kontroler/nama_method)

Page 31: Pembuatan Kakas Pendeteksi Unused Methods pada Kode ...digilib.its.ac.id/public/ITS-paper-36518-5110100118-presentation.pdf · Pembuatan Kakas Pendeteksi Unused Methods pada Kode

Pemanggilan dari view ke kontroler

Menggunakan syntax JavaScript

#ajax{ url=“pemanggilan_kontroler”}

window.Location.href= pemanggilan_kontroler

$(‘#...’).load(‘pemanggilan_kontroler’)