Anda di halaman 1dari 38

Dokumen Uji Perangkat Lunak

Refactoring pada Aplikasi Web Customer Care di PT. Bio


Farma (Persero), Bandung, Jawa Barat dan Sistem
Informasi Apotek Kimia Farma (SIAPFARMA) dengan
CodeIt.Right




Oleh:
Dhiyaan Sabila Ramadhani 5110100017
Wahyu Fitriani 5110100032
Helena Nadia Pratiwi 5110100155


Jurusan Teknik Informatika
Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember
2013
2

Daftar Perubahan

Revisi Deskripsi
A
B
C
D
E
F
G

INDEX A B C D E F G
TGL
Ditulis
Oleh

Diperiksa
Oleh

Disetujui
Oleh

3

Daftar Halaman Perubahan

Halaman Revisi Halaman Revisi



4

Daftar Isi

Daftar Perubahan ................................................................................................................................................... 2
Daftar Halaman Perubahan............................................................................................................................... 3
Daftar Isi ..................................................................................................................................................................... 4
Daftar Gambar ......................................................................................................................................................... 5
Daftar Tabel .............................................................................................................................................................. 7
1 Pendahuluan .................................................................................................................................................. 8
1.1 Tujuan ....................................................................................................................................................... 8
1.2 Lingkup Masalah .................................................................................................................................. 8
1.3 Referensi .................................................................................................................................................. 8
1.4 Deskripsi Umum Dokumen ............................................................................................................. 9
2 Lingkungan Pengujian ............................................................................................................................ 10
2.1 Perangkat Lunak ............................................................................................................................... 10
2.1.1 Aplikasi Customer Care di PT. Bio Farma, Bandung, Jawa Barat ...................... 10
2.1.2 Aplikasi Sistem Informasi Apotek Kimia Farma, Mulyosari, Surabaya ......... 15
2.2 Perangkat Keras ................................................................................................................................ 18
2.3 Kakas Pengujian ................................................................................................................................ 18
2.4 Persiapan Perangkat Keras .......................................................................................................... 23
3 Deskripsi Hasil Uji .................................................................................................................................... 24
3.1 Hasil Pengujian .................................................................................................................................. 24
3.1.1 Aplikasi Web Customer Care di PT. Biofarma, Bandung, Jawa Barat .............. 24
3.1.2 Aplikasi Desktop Sistem Informasi Apotek Kimia Farma, Mulyosari,
Surabaya ........................................................................................................................................................ 27
3.2 Analisis Hasil Pengujian ................................................................................................................ 30
4 Analisis Kakas ............................................................................................................................................. 32
4.1 Mengenai CodeIt.Right ................................................................................................................... 32
5 Penutup ......................................................................................................................................................... 37
5.1 Kesimpulan .......................................................................................................................................... 37
5.2 Saran ....................................................................................................................................................... 37
6 Daftar Pustaka ............................................................................................................................................ 38

5

Daftar Gambar

Gambar 2.1. Tampilan Halaman Registrasi ............................................................................................ 10
Gambar 2.2. Tampilan Halaman Log-in .................................................................................................... 11
Gambar 2.3. Tampilan Halaman Pembuatan Laporan Masalah ................................................... 12
Gambar 2.4. Tampilan Halaman Data Laporan Masalah .................................................................. 12
Gambar 2.5. Tampilan Halaman Detail Laporan Masalah ............................................................... 13
Gambar 2.6. Tampilan Memilih Penanggung Jawab Masalah/Solver ........................................ 13
Gambar 2.7. Tampilan Pengubahan Status Pengerjaan.................................................................... 14
Gambar 2.8. Tampilan Persetujuan Laporan Masalah ...................................................................... 14
Gambar 2.9. Tampilan Halaman Detail Laporan Masalah yang Terselesaikan ..................... 15
Gambar 2.10. Tampilan Halaman Detail Penutupan Laporan Masalah .................................... 15
Gambar 2.11. Tampilan Halaman Mengelola Stok Data Obat ........................................................ 16
Gambar 2.12. Tampilan Halaman Mengelola Data Pasien .............................................................. 16
Gambar 2.13. Tampilan Halaman Mengelola Data Dokter .............................................................. 17
Gambar 2.14. Tampilan Halaman Mengelola Data Pegawai........................................................... 17
Gambar 2.15. Mendeteksi Kesalahan Kode dengan CodeIt.Right ................................................ 19
Gambar 2.16. CodeIt.Right Melakukan Scanning pada Bad Smell Code di Project ............... 19
Gambar 2.17. Opsi Pembenaran Kode pada CodeIt.Right ............................................................... 20
Gambar 2.18. Fitur Excluded pada CodeIt.Right................................................................................... 20
Gambar 2.19. Daftar Severity Threshold dengan Level Error yang Terdeteksi...................... 21
Gambar 2.20. Proses Koreksi Kesalahan Kode dengan CodeIt.Right ......................................... 22
Gambar 2.21. Fitur Export to Excel pada CodeIt.Right ...................................................................... 23
Gambar 3.1. Hasil Pengujian Secara Keseluruhan .............................................................................. 24
Gambar 3.2. Hasil Pengujian Setelah Sejumlah Rule Tidak Digunakan .................................... 25
Gambar 3.3. Daftar Bad Smell Code Kategori Performance ............................................................. 26
Gambar 3.4. Hasil Koreksi Bad Smell Code Kategori Performance .............................................. 26
Gambar 3.5. Contoh Bad Smell Code Kategori Usage ......................................................................... 27
Gambar 3.6. Hasil Pengujian Secara Keseluruhan .............................................................................. 28
Gambar 3.7. Hasil Pengujian Setelah Sejumlah Rule Tidak Digunakan .................................... 29
Gambar 3.8. Daftar Bad Smell Code Kategori Performance ............................................................. 29
Gambar 3.9. Hasil Koreksi Bad Smell Code Kategori Performance .............................................. 30
Gambar 4.1. CodeIt.Right pada Visual Studio ........................................................................................ 32
Gambar 4.2. Metode Rule Utilities ............................................................................................................... 33
Gambar 4.3. Penjelasan Metode Rule Utilities ....................................................................................... 33
Gambar 4.4. Penjelasan Metode Rule Utilities (Lanjutan) ............................................................... 33
Gambar 4.5. Metode Naming Rule Utilities ............................................................................................. 34
Gambar 4.6. Penjelasan Metode Naming Rule Utilities ..................................................................... 34
Gambar 4.7. Penjelasan Metode Naming Rule Utilities (Lanjutan) ............................................. 34
Gambar 4.8. Metode Usage Rule Utils ........................................................................................................ 34
Gambar 4.9. Metode Security Rule Utilities ............................................................................................. 35
Gambar 4.10. Penjelasan Metode Security Rule Utilities .................................................................. 35
6

Gambar 4.11. Metode Gui Manager Utils ................................................................................................. 35
Gambar 4.12. Penjelasan Metode Gui Manager Utils ......................................................................... 35
Gambar 4.13. Automatic Code Refactoring ............................................................................................ 36

7

Daftar Tabel

Tabel 3.1. Sejumlah Rule yang Tidak Dilibatkan dalam Analisis Aplikasi Web Customer
Care ............................................................................................................................................................................ 24
Tabel 3.2. Sejumlah Rule yang Tidak Dilibatkan dalam Analisis Aplikasi Desktop
SIAPFARMA........................................................................................................................................................28
Tabel 3.3. Analisis Presisi dan Recall Aplikasi Web Customer Care PT. Bio Farma.............31
Tabel 3.4. Analisis Presisi dan Recall Aplikasi Desktop Sistem Informasi Apotek Kimia
Farma ...................................................................................................................................................................31


8

1 Pendahuluan
1.1 Tujuan
Dokumen pengujian ini merupakan panduan untuk menguji perangkat lunak yang
akan dijadikan bahan uji dengan menggunakan kakas bantu CodeIt.Right. Hal ini
bertujuan untuk mengidentifikasi kesalahan dari kode perangkat lunak yang diuji
dan juga untuk mengidentifikasi bug-bug yang terkandung dalam perangkat lunak
tersebut.
1.2 Lingkup Masalah
Software Refactoring merupakan bagian penting dalam pengembangan perangkat
lunak, khususnya dalam fase pemeliharaan (maintanence). Beberapa penelitian
menyebutkan bahwa harga (cost) pemeliharaan perangkat lunak lebih besar
dari cost pengembangan perangkat lunak. Proses refactoring pada perangkat
lunak dapat membantu pengembang untuk meningkatkan desain dari code dan
membuatnya lebih bersih, tanpa mengubah sifat dari code tersebut.
Perangkat lunak yang akan diuji merupakan aplikasi berbasis web dan berbasis
desktop dengan bahasa pemrograman C#. Aplikasi web Customer Care di PT. Bio
Farma, Bandung, Jawa Barat merupakan sebuah aplikasi yang digunakan untuk
memfasilitasi pelaporan masalah atau keluhan yang ditemui dalam penggunaan
sarana dan prasarana perusahaan. Aplikasi desktop SIAPFARMA merupakan
sebuah sistem informasi yang digunakan unuk memfasilitasi Apotek Kimia Farma
dalam melakukan transaksi penjualan obat dan transaksi praktik dokter.
Refactoring pada suatu perangkat lunak diperlukan sebagai proses pengubahan
sistem dari perangkat lunak dengan beberapa cara tanpa mengubah sifat-sifat
eksternal dari sebuah code. Salah satu caranya adalah dengan memperbaiki
struktur internal dari code.
1.3 Referensi
Pengujian ini menggunakan beberapa referensi sebagai berikut.
http://submain.com/products/codeit.right.aspx
Alamat situs web yang menjelaskan overview dari kakas CodeIt.Right.
http://submain.com/codeit.right/features.aspx
Alamat situs web yang menjelaskan fitur dari kakas CodeIt.Right.
http://submain.com/download/codeit.right/
Alamat situs web tempat pengunduhan kakas CodeIt.Right.
http://submain.com/codeit.right/sdk/
Alamat situs web tempat dokumentasi sdk dari CodeIt.Right.
9

1.4 Deskripsi Umum Dokumen
Dokumen pengujian perangkat lunak ini diharapkan mampu menjadi literatur bagi
pengembang dalam mengembangkan perangkat lunak yang dibuat agar proses
evolusi dari perangkat lunak tersebut dapat berlangsung konsisten.
10

2 Lingkungan Pengujian
2.1 Perangkat Lunak
2.1.1 Aplikasi Customer Care di PT. Bio Farma, Bandung, Jawa Barat
Perangkat lunak yang dijadikan bahan uji adalah web Customer Care di PT. Bio
Farma, Bandung, Jawa Barat. Aplikasi ini adalah sebuah aplikasi yang
memfasilitasi pelaporan masalah atau keluhan yang ditemui dalam penggunaan
sarana dan prasarana perusahaan. Aplikasi ini merupakan implementasi dari Help
Desk. Pembuatan aplikasi ini dilatarbelakangi karena seringkali ditemukan
kendala dalam pelaporan masalah atau keluhan dalam penggunaan sarana dan
prasarana perusahaan. Kendala tersebut antara lain ketidakjelasan alur
penanganan, pengguna sulit untuk mengetahui proses penanganan, proses
pelaporan yang memakan waktu cukup lama, dan sering terjadinya kesalahan
seperti human error. Oleh karena itu diperlukan sebuah sistem terintegrasi yang
dapat diakses oleh seluruh pengguna sarana dan prasarana dan dapat digunakan
untuk mengelola dan mencatat permasalahan yang dialami pengguna. Aplikasi ini
merupakan single point of contact bagi karyawan dalam pelaporan dan
penanganan masalah sarana dan prasarana.
Fitur-fitur yang terdapat dalam aplikasi ini adalah sebagai berikut:
Registrasi pengguna
Fitur ini merupakan fitur untuk mendaftarkan pengguna agar dapat
mengakses aplikasi web Customer Care. Tampilan dari halaman registrasi
pengguna ditunjukkan pada Gambar 2.1.

Gambar 2.1. Tampilan Halaman Registrasi
11

Log-in pengguna
Untuk dapat melakukan akses ke dalam aplikasi web Customer Care, terlebih
dahulu pengguna harus melakukan log-in dengan memasukkan username dan
password yang telah diperoleh dari proses registrasi. Tampilan halaman log-in
ditunjukkan pada Gambar 2.2.

Gambar 2.2. Tampilan Halaman Log-in
Membuat dan menyimpan laporan masalah atau keluhan
Fiturini digunakan untuk membuat laporan masalah untuk kemudian laporan
tersebut dapat ditindaklanjuti oleh pihak operator untuk ditugaskan pada
pihak solver. Tampilan halaman pembuatan laporan ditunjukkan pada Gambar
2.3.
Menampilkan data laporan masalah atau keluhan
Fitur ini menampilkan data laporan masalah yang dibuat oleh pengguna.
Tampilan halaman data laporan masalah ditunjukkan pada Gambar 2.4.
Menugaskan masalah kepada penanggung jawab dari bagian terkait
Setelah melihat data laporan masalah yang telah dibuat oleh pengguna, pihak
operator dapat memberikan penugasan masalah kepada penanggung jawab
dari bagian terkait. Ilustrasi penugasan masalah kepada penanggung jawab
ditunjukkan pada Gambar 2.5 dan Gambar 2.6.
12


Gambar 2.3. Tampilan Halaman Pembuatan Laporan Masalah


Gambar 2.4. Tampilan Halaman Data Laporan Masalah
13


Gambar 2.5. Tampilan Halaman Detail Laporan Masalah


Gambar 2.6. Tampilan Memilih Penanggung Jawab Masalah/Solver
Melaporkan pengerjaan masalah
Pihak penanggung jawab masalah/solver dapat melaporkan pengerjaan
masalah dengan cara melakukan pengubahan status pengerjaan. Tampilan
pengubahan status pengerjaan masalah ditunjukkan pada Gambar 2.7.
14


Gambar 2.7. Tampilan Pengubahan Status Pengerjaan
Melakukan penyetujuan laporan masalah
Setelah pihak solver menyelesaikan tugasnya, tahap selanjutnya adalah
menunggu persetujuan dari pihak atasan untuk menyetujui laporan masalah.
Gambar 2.8 menunjukkan tampilan persetujuan laporan masalah yang dapat
diakses oleh pihak atasan.

Gambar 2.8. Tampilan Persetujuan Laporan Masalah
Menutup laporan masalah
Setelah laporan diselesaikan dan disetujui oleh pihak atasan, pihak pelapor
dapat melakukan pengecekan. Apabila menurut pihak pelapor masalah sudah
teratasi, maka pelapor dapat menutup laporan masalah. Gambar 2.9 dan
Gambar 2.10 mengilustrasikan proses penutupan laporan masalah.
15


Gambar 2.9. Tampilan Halaman Detail Laporan Masalah yang Terselesaikan

Gambar 2.10. Tampilan Halaman Detail Penutupan Laporan Masalah
2.1.2 Aplikasi Sistem Informasi Apotek Kimia Farma, Mulyosari, Surabaya
Perangkat lunak yang dijadikan bahan uji adalah Aplikasi Desktop Sistem
Informasi Apotek Kimia Farma, Mulyosari, Surabaya. Aplikasi ini adalah sistem
untuk melakukan pendataan dari layanan jual beli obat dan transaksi praktik
dokter. Pembuatan aplikasi ini dilatarbelakangi karena seringkali ditemukan
kendala proses pendataan jual beli obat dan transaksi praktik dokter. Kendala
tersebut antara lain ketidakjelasan alur jual beli obat dan transaksi praktik dokter.
Oleh karena itu diperlukan sebuah sistem terintegrasi yang dapat diakses oleh
seluruh pengguna sarana dan prasarana dan dapat digunakan untuk mengelola
dan mencatat permasalahan yang dialami pengguna. Fitur-fitur yang terdapat
dalam aplikasi ini adalah sebagai berikut:
16

Mengelola stok data obat
Pengguna dapat mengelola stok data obat, yaitu menambahkan stok data obat,
menghapus stok data obat, dan memperbarui stok data obat. Pengguna juga
dapat memilih jenis pengelolaan stok data obat yang diinginkan, kemudian
mengisi data yang ingin diperbarui. Gambar 2.11 menampilkan halaman
pengelolaan stok data obat.


Gambar 2.11. Tampilan Halaman Mengelola Stok Data Obat
Mengelola data pasien
Pengguna dapat mengelola data pasien, yaitu menambahkan data pasien,
menghapus data pasien, dan memperbarui data pasien. Pengguna juga dapat
memilih jenis pengelolaan data pasien yang diinginkan, kemudian mengisi
data yang ingin diperbarui. Gambar 2.12 mengilustrasikan halaman
pengelolaan data pasien.

Gambar 2.12. Tampilan Halaman Mengelola Data Pasien
17


Mengelola data dokter
Pengguna dapat mengelola data dokter, yaitu menambahkan data dokter,
menghapus data dokter, dan memperbarui data dokter. Pengguna juga dapat
memilih jenis pengelolaan data dokter yang diinginkan, kemudian mengisi
data yang ingin diperbarui. Gambar 2.13 mengilustrasikan halaman
pengelolaan data dokter.

Gambar 2.13. Tampilan Halaman Mengelola Data Dokter
Mengelola data pegawai
Pengguna dapat mengelola data pegawai, yaitu menambahkan data pegawai,
menghapus data pegawai, dan memperbarui data pegawai. Pengguna juga
dapat memilih jenis pengelolaan data pegawai yang diinginkan, kemudian
mengisi data yang ingin diperbarui. Gambar 2.14 mengilustrasikan halaman
pengelolaan data pegawai.

Gambar 2.14. Tampilan Halaman Mengelola Data Pegawai
18

2.2 Perangkat Keras
Pengujian dilakukan dengan menggunakan komputer dengan spesifikasi sebagai
berikut.
Processor Intel Core i3-2370M @2.40GHz
Memory 4GB
Sistem Operasi: Windows 7 Ultimate 64 bit
2.3 Kakas Pengujian
CodeIt.Right merupakan sebuah add-ins untuk Microsoft Visual Studio yang
berguna untuk mendeteksi kesalahan pada kode, dengan menggabungkan analisis
kode statis dan koreksi error atau refactoring otomatis. CodeIt.Right merupakan
plug-in yang dibuat oleh SubMain. CodeIt.Right menyediakan versi trial yang dapat
di-download secara gratis pada website SubMain. CodeIt.Right mendukung bahasa
pemrograman C# dan Visual Basic. CodeIt.Right merupakan kakas bantu yang
dapat digunakan untuk mendeteksi Bad Smell Code. Fitur dari CodeIt.Right antara
lain:
Review kode secara instan
Refactoring kode secara otomatis
Adanya fitur report
Menerapkan peraturan berdasarkan panduan dari Microsoft .NET
User dapat menetapkan aturan tertentu untuk proses refactoring
Terintegrasi dengan Microsoft Visual Studio
Adapun langkah-langkah menggunakan CodeIt.Right dalam suatu project adalah
sebagai berikut:
1. Membuka project yang akan diuji menggunakan Microsoft Visual Studio
2. Membuka tab CodeIt.Right dan klik menu start analysis, pilih solution atau
project seperti yang ditunjukkan pada Gambar 2.15.

19


Gambar 2.15. Mendeteksi Kesalahan Kode dengan CodeIt.Right


Gambar 2.16. CodeIt.Right Melakukan Scanning pada Bad Smell Code di Project
Gambar 2.16 menampilkanCodeIt.Right melakukan scanning pada bad smell code
yang ada di project dan akan menampilkan hasilnya dalam bentuk report.
CodeIt.Right akan memberikan sejumlah pilihan mengenai metode koreksi yang
20

akan digunakan pada kode yang bermasalah seperti ditunjukkan pada Gambar
2.17.

Gambar 2.17. Opsi Pembenaran Kode pada CodeIt.Right
Dalam melakukan analisis, pihak analis dapat menentukan untuk melakukan
pengecualian terhadap rule, file, atau kesalahan tertentu. Fitur ini dapat ditemukan
di tab Excluded seperti ditunjukkan pada Gambar 2.18.

Gambar 2.18. Fitur Excluded pada CodeIt.Right
21

Pihak analis dapat menentukan untuk melakukan pengecualian pada kesalahan,
rule, file, atau project tertentu. Definisi dari melakukan pengecualian di sini adalah
elemen yang dilakukan pengecualian tersebut tidak akan dilibatkan dalam
analisis.
Terdapat beberapa macam tingkatan ambang parahnya kesalahan pada kode yang
dapat dideteksi oleh CodeIt.Right yaitu:
Information: mengindikasikan kesalahan kode dengan level paling rendah.
Warning: mengindikasikan kesalahan kode level warning atau merupakan
peringatan.
Critical Warning: mengindikasikan kesalahan kode lebih berat daripada
peringatan dan butuh ditangani untuk mengatasi error.
Error: mengindikasikan kesalahan kode level tinggi.
Critical Error: mengindikasikan kesalahan kode level paling tinggi dan harus
dibenarkan.
Gambar 2.19 menampilkan jenis severity threshold yang dideteksi oleh
CodeIt.Right.

Gambar 2.19. Daftar Severity Threshold dengan Level Error yang Terdeteksi
CodeIt.Right memberikan opsi untuk mengoreksi kesalahan/bad smell code yang
dideteksi oleh CodeIt.Right secara menyeluruh ataupun hanya kesalahan tertentu
saja yang dipilih oleh user. Terdapat check box di setiap kesalahan yang dapat
dipilih untuk menentukan apakah kesalahan tersebut akan diperbaiki atau tidak
dengan memilih tombol correct checked. Atau pengguna dapat melakukan proses
koreksi secara satu per satu pada setiap kesalahan kode dengan memilih tombol
Correct yang ada pada daftar error. Terdapat pilihan undo yang dapat
22

mengembalikan kode seperti semula apabila terdapat pengkoreksian yang tidak
diinginkan. Gambar 2.20 menampilkan proses koreksi kesalahan kode dengan
CodeIt.Right.

Gambar 2.20. Proses Koreksi Kesalahan Kode dengan CodeIt.Right
Selain itu CodeIt.Right juga memberikan fitur untuk mencetak ataupun
menyimpan hasil laporan deteksi bad smell code dengan ekstensi .xls seperti
ditunjukkan pada Gambar 2.21.
23


Gambar 2.21. Fitur Export to Excel pada CodeIt.Right
2.4 Persiapan Perangkat Keras
Dalam melakukan pengujian bad smell code dengan menggunakan CodeIt.Right ini
langkah awal yang harus dilakukan adalah meng-install Microsoft Visual Studio
dan dilanjutkan dengan meng-install plug-in CodeIt.Right pada Visual Studio.

24

3 Deskripsi Hasil Uji
3.1 Hasil Pengujian
3.1.1 Aplikasi Web Customer Care di PT. Biofarma, Bandung, Jawa Barat
Pengujian yang dilakukan adalah pengujian pada aplikasi web Customer Care di PT.
Bio Farma, Bandung, Jawa Barat menggunakan CodeIt.Right. Pengujian ini
bertujuan untuk mendeteksi bad smell code yang terdapat dalam project aplikasi.
Gambar 3.1 menunjukkan hasil pengujian secara keseluruhan pada project dimana
semua rule yang terdapat di CodeIt.Right digunakan untuk mendeteksi kesalahan
di dalam project.

Gambar 3.1. Hasil Pengujian Secara Keseluruhan
Dari pengujian tersebut didapatkan terdapat total 599 kesalahan. Akan tetapi
tidak semua kesalahan tersebut merupakan bad smell code. Oleh karena itu
terdapat beberapa rule yang tidak digunakan dalam analisis. Tabel 3.1
menampilkan sejumlah rule yang tidak digunakan dalam analisis.
Tabel 3.1. Sejumlah Rule yang Tidak Dilibatkan dalam Analisis Aplikasi Web Customer Care
Rule Category
Compilation Debug Must Be Disabled AspNet
Avoid Data Binder Eval Method AspNet
Avoid Setting Auto Post Back Property To True AspNet
Enable Event Validation Should Be True AspNet
Form Authentication Require SSL Should Be True AspNet
Http Cookies Require SSL Should Be True AspNet
Http Only Cookies Should Be True AspNet
Page View State Encryption Mode Should Be Always AspNet
Avoid Single Line If Statement CodingStyle
Do Not Include Multiple Statements On Single Line CodingStyle
25

Do Not Declare Externally Visible Instance Fields Design
Nested Types Should Not Be Visible Design
Types That Own Disposable Fields Should Be Disposable Design
Do Not Catch General Exception Types Exception Handling
Source File Should Have Header General
Source File Name Should Match Public Type Name General
Specify Culture Info Globalization
Identifiers Should Be Cased Correctly Naming
Acronyms Should Be Cased Correctly Naming
Identifiers Should Not Match Keywords Naming
Type Names Should Not Match Namespaces Naming
Do Not Check For Empty Strings Using Equals Performance
Close Database Connection In Finally Block Usage
Always Close Standard IO Streams Usage

Penentuan apakah sebuah rule digunakan atau tidak didasarkan pada jenis-jenis
bad smell code pada [1] dan [2]. Setelah rules di Tabel 3.1 tidak digunakan dalam
analisis, total kesalahan yang didapatkan sebanyak 19 yaitu berdasarkan kategori
performance 12 file, dan usage 7 file seperti ditunjukkan pada Gambar 3.2.

Gambar 3.2. Hasil Pengujian Setelah Sejumlah Rule Tidak Digunakan
26

3.1.1.1 Performance
Merupakan kesalahan kode yang dapat mempengaruhi performa dari aplikasi.
Dalam aplikasi web Customer Care PT. Bio Farma ini terdapat 12 kesalahan yang
disebabkan adanya variabel yang tidak digunakan. Gambar 3.3 menunjukkan
daftar bad smell code untuk kategori performance.

Gambar 3.3. Daftar Bad Smell Code Kategori Performance
Untuk melakukan koreksi dapat dilakukan dengan mencentang semua kesalahan
dengan kategori ini dan memilih pilihan Correct Checked atau dapat dilakukan
dengan satu per satu memilih tombol Correct pada error list. CodeIt.Right akan
secara otomatis meng-comment variabel yang tidak digunakan tersebut seperti
ditunjukkan pada Gambar 3.4

Gambar 3.4. Hasil Koreksi Bad Smell Code Kategori Performance
3.1.1.2 Usage
Merupakan kesalahan akibat penggunaan metode tertentu di dalam project. Dalam
aplikasi web Customer Care PT. Bio Farma ini terdapat 7 kesalahan yang
disebabkan oleh penggunaan switch statement seperti ditunjukkan pada Gambar
3.5.
27


Gambar 3.5. Contoh Bad Smell Code Kategori Usage
Permasalahan yang sering ditemui dalam penggunaan switch statement adalah
munculnya duplikasi. Seringkali ditemukan lebih dari satu case statement untuk
tujuan yang berbeda. Switch statement dianggap kurang cocok dengan prinsip
pemrograman berbasis objek. Prinsip polymorphism dapat digunakan untuk
mengatasi permasalahan ini.
Akan tetapi dalam kakas CodeIt.Right ini, fokus refaktor bukan untuk mengubah
switch statement menjadi polymorphism, melainkan untuk menambahkan default
case pada switch statement. Proses refaktor ini dianggap kurang tepat untuk
mengatasi bad smell code akan tetapi penggunaan CodeIt.Right dapat digunakan
untuk membantu mendeteksi adanya switch statement meskipun proses refaktor
masih harus dilakukan secara manual.
3.1.2 Aplikasi Desktop Sistem Informasi Apotek Kimia Farma, Mulyosari, Surabaya
Pengujian yang dilakukan adalah pengujian pada Aplikasi desktop Sistem
Informasi Apotek Kimia Farma, Mulyosari, Surabaya menggunakan CodeIt.Right.
Pengujian ini bertujuan untuk mendeteksi bad smell code yang terdapat dalam
project aplikasi. Gambar 3.6 menunjukkan hasil pengujian secara keseluruhan
pada project dimana semua rule yang terdapat di CodeIt.Right digunakan untuk
mendeteksi kesalahan di dalam project.
28


Gambar 3.6. Hasil Pengujian Secara Keseluruhan
Dari pengujian tersebut didapatkan terdapat total 39 kesalahan. Akan tetapi
terdapat sejumlah rule yang tidak digunakan yang ditunjukkan pada Tabel 3..
Tabel 3.2. Sejumlah Rule yang Tidak Dilibatkan dalam Analisis Aplikasi Desktop SIAPFARMA
Rule Category
Do NotDeclareExternallyVisibleInstanceFields Design
Mark Assemblies With Attribute Design
Assemblies Should Have Valid Strong Name Design
Do Not Catch General Exception Types Exception Handling
Source File Should Have Header General
Set All Windows Forms Designer Settings Correctly General
Identifiers Should Be Cased Correctly Naming
Acronyms Should Be Cased Correctly Naming
Close Database Connection In Finally Block Usage
Always Close Standard IO Streams Usage

Setelah rules di Tabel 3.2 tidak digunakan dalam analisis, total kesalahan yang
didapatkan sebanyak 9 yaitu berdasarkan kategori performance 9 file seperti
ditunjukkan pada Gambar 3.7.
29


Gambar 3.7. Hasil Pengujian Setelah Sejumlah Rule Tidak Digunakan
3.1.2.1 Performance
Merupakan kesalahan kode yang dapat mempengaruhi performa dari aplikasi.
Dalam Aplikasi desktop Sistem Informasi Apotek Kimia Farma ini terdapat 9
kesalahan yang disebabkan adanya variabel yang tidak digunakan. Gambar 3.8
menunjukkan daftar bad smell code untuk kategori performance.

Gambar 3.8. Daftar Bad Smell Code Kategori Performance
Untuk melakukan koreksi dapat dilakukan dengan mencentang semua kesalahan
dengan kategori ini dan memilih pilihan Correct Checked atau dapat dilakukan
dengan satu per satu memilih tombol Correct pada error list. CodeIt.Right akan
secara otomatis meng-comment variabel yang tidak digunakan tersebut seperti
ditunjukkan pada Gambar 3.9.
30


Gambar 3.9. Hasil Koreksi Bad Smell Code Kategori Performance
3.2 Analisis Hasil Pengujian
Analisis hasil pengujian dilakukan setelah menjalankan add-ins CodeIt.Right pada
Microsoft Visual Studio 2010 dan melihat keluaran dari pengujian project aplikasi
web Customer Care PT. Bio Farma, Bandung, Jawa Barat dan Aplikasi desktop
Sistem Informasi Apotek Kimia Farma, Mulyosari, Surabaya. Dari hasil beberapa
pengujian di atas didapatkan analisis hasil pengujian sebagai berikut:
Dalam project aplikasi web Customer Care PT. Bio Farma ini jumlah bad smell
code sudah cukup sedikit yaitu sebanyak 19 kesalahan dengan mayoritas
kesalahan didominasi oleh adanya variabel yang tidak digunakan.
Dalam project aplikasi desktop Sistem Informasi Apotek Kimia Farma,
Mulyosari, Surabaya jumlah bad smell code juga cukup sedikit yaitu sebanyak
9 kesalahan.
CodeIt.Right dapat digunakan untuk mendeteksi adanya bad smell code di
dalam program dan mampu memberikan informasi yang detail mengenai
kesalahan tersebut. Detail informasi yang diberikan oleh CodeIt.Right antara
lain:
1. Tingkat kepentingan dari kesalahan tersebut, dinyatakan dalam severity
threshold
2. Lokasi kode yang terdeteksi mengandung bad smell code
3. Jumlah kesalahan kode pada class dan project
4. Tipe file kode tersebut
5. Jenis kesalahan/bad smell
6. Kategori kesalahan/bad smell
7. Pilihan aksi yang dapat dilakukan untuk menangani kesalahan kode
tersebut
CodeIt.Right memiliki sejumlah rule yang dapat digunakan untuk mendeteksi
bad smell code pada program, akan tetapi tidak semua kesalahan yang
terdeteksi tersebut merupakan bad smell code sehingga sejumlah rule tidak
perlu digunakan dalam analisis.
Sejumlah proses refaktor yang dilakukan oleh CodeIt.Right kurang cocok
untuk mengatasi bad smell code pada program seperti contohnya refaktor
untuk mengatasi switch statement.
Setelah dilakukan analisis secara manual pada kedua project diketahui bahwa
CodeIt.Right gagal mendeteksi bad smell code yang berupa duplikasi kode.
31

Analisis Presisi dan Recall untuk project aplikasi web Customer Care PT. Bio
Farma, Bandung, Jawa Barat ditunjukkan pada Tabel 3.3.
Tabel 3.3. Analisis Presisi dan Recall Aplikasi Web Customer Care PT. Bio Farma
Total Bad Smell Terdeteksi CodeIt.Right 599
Total Bad Smell Code Sebenarnya 19
Total Bad Smell Code Tidak Terdeteksi CodeIt.Right 92
Precision
19
599
= 0.0317
Recall
19
19 +92
= 0.1712

Analisis Presisi dan Recall untuk project aplikasi desktop Sistem Informasi
Apotek Kimia Farma, Mulyosari, Surabaya ditunjukkan pada Tabel 3.4.
Tabel 3.4. Analisis Presisi dan Recall Aplikasi Desktop Sistem Informasi Apotek Kimia Farma
Total Bad Smell Terdeteksi CodeIt.Right 39
Total Bad Smell Code Sebenarnya 9
Total Bad Smell Code Tidak Terdeteksi CodeIt.Right 20
Precision
9
39
= 0.2308
Recall
9
9 +20
= 0.3103

32

4 Analisis Kakas
4.1 Mengenai CodeIt.Right
CodeIt.Right merupakan add-ins Microsoft Visual Studio yang bukan hanya
mengandalkan pendeteksian kesalahan pada kode dan bad smells code, namun
juga memberikan kemudahan dalam pengkoreksian kode seperti refactoring
otomatis di tempat maupun opsi untuk memilih kode mana yang ingin dikoreksi
dan mana yang tidak. CodeIt.Right juga disertai pilihan undo untuk membatalkan
proses refactoring yang telah dilakukan. CodeIt.Right terintegrasi dengan Visual
Studio 2010, Visual Studio 2008, dan Visual Studio 2005. Gambar 4.1
menampilkan tampilan CodeIt.Right pada Visual Studio.

Gambar 4.1. CodeIt.Right pada Visual Studio
CodeIt.Right membawa analisis kode statis ke level berikutnya dengan
memberikan aturan atas pelanggaran kode yang secara otomatis merefaktornya
ke kode yang benar. Terdapat banyak metode yang digunakan CodeIt.Right ketika
mengembangkan custom rules, naming,dan usage rules guna mendeteksi kesalahan
kode dan melakukan refaktor, metode tersebut antara lain sebagai berikut:
1. Metode Rule Utilities
Metode ini menyediakan kebutuhan dari rule-rule umum di CodeIt.Right.
Metode Rule Utilities ditunjukkan pada Gambar 4.2. Gambar 4.3 dan Gambar
4.4 menampilkan penjelasan dari setiap metode Rule Utilities.
33


Gambar 4.2. Metode Rule Utilities

Gambar 4.3. Penjelasan Metode Rule Utilities

Gambar 4.4. Penjelasan Metode Rule Utilities (Lanjutan)
2. Metode Naming Rule Utilities
Metode ini menyediakan kebutuhan umum dari naming rule pada
CodeIt.Right. Metode Naming Rule Utilities ditunjukkan pada Gambar 4.5.
Gambar 4.6 dan Gambar 4.7 menampilkan penjelasan detail dari tiap metode
Naming Rule Utilities.
34


Gambar 4.5. Metode Naming Rule Utilities

Gambar 4.6. Penjelasan Metode Naming Rule Utilities

Gambar 4.7. Penjelasan Metode Naming Rule Utilities (Lanjutan)
3. Metode Usage Rule Utils
Metode ini menyediakan kebutuhan umum dari usage rule pada CodeIt.Right.
Metode Usage Rule Utilities ditunjukkan pada Gambar 4.8.

Gambar 4.8. Metode Usage Rule Utils
4. Metode Security Rule Utilities
Metode ini menyediakan kebutuhan umum dari security rule pada
CodeIt.Right. Metode Security Rule Utilities ditunjukkan padaGambar 4.9.
Gambar 4.10 menampilkan penjelasan detail dari tiap metode Security Rule
Utilities.
35



Gambar 4.9. Metode Security Rule Utilities

Gambar 4.10. Penjelasan Metode Security Rule Utilities
5. Metode Gui Manager Utils
Metode ini menyediakan dialog untuk perbaikan rule pada CodeIt.Right.
Metode Gui Manager Utilities ditunjukkan pada Gambar 4.11. Gambar 4.12
menampilkan penjelasan detail dari tiap metode Gui Manager Utilities.

Gambar 4.11. Metode Gui Manager Utils

Gambar 4.12. Penjelasan Metode Gui Manager Utils
CodeIt.Right menggunakan teknologi IntelliFix
TM
yang secara otomatis akan
memulihkan code smells dan kesalahan pada program. Dalam melakukan analisis,
CodeIt.Right akan membuat file kopi bayangan dari source file di temporary file
dari pengguna. File kopi bayangan ini akan selalu di-overwrite setiap kali ada
perubahan yang dilakukan. CodeIt.Right akan menganalisis file kopi bayangan ini
dan menampilkan kesalahan kode yang ditemukan pada IDE seperti ditunjukkan
pada Gambar 4.13.
36

CodeIt.Right mengimplementasikan algoritma Scavenging untuk membersihkan
file kopi bayangan yang telah dibuat tersebut sehingga tidak ada space yang
terbuang. Algoritma Scavenging biasa digunakan dalam proses garbage collection.

Gambar 4.13. Automatic Code Refactoring










37

5 Penutup
5.1 Kesimpulan
Kakas bantu CodeIt.Right dapat digunakan untuk membantu mendeteksi adanya
bad smell code pada program. CodeIt.Right menunjukkan performa yang baik
karena dapat memberikan informasi yang detail mengenai bad smell code dalam
program seperti lokasi kesalahan kode, jumlah kesalahan kode dalam suatu
project, jenis kesalahan, kategori kesalahan yang dilakukan, serta pilihan aksi yang
dapat dilakukan untuk mengkoreksi kesalahan kode tersebut. Terdapat juga
pilihan undo untuk membatalkan proses koreksi yang telah dilakukan. Akan tetapi
kakas bantu CodeIt.Right memiliki kekurangan yaitu gagal dalam mendeteksi
adanya duplikasi kode dalam project.
Aplikasi web Customer Care PT. Bio Farma, Bandung, Jawa Barat dan Aplikasi
desktop Sistem Informasi Apotek Kimia Farma, Mulyosari, Surabaya tergolong
memiliki tingkat bad smell code yang cukup rendah. Berdasarkan hasil pengujian
menggunakan kakas bantu CodeIt.Right, aplikasi ini hanya memiliki sebanyak 19
dan 9 bad smell code.
5.2 Saran
Kakas bantu CodeIt.Right dapat membantu dalam mendeteksi adanya bad smell
code pada program, penggunaannya pun juga mudah. Akan tetapi kakas bantu ini
hanya dapat digunakan untuk bahasa pemrograman C# dan Visual Basic. Akan
lebih baik jika CodeIt.Right juga dapat digunakan untuk bahasa pemrograman
yang lain. Duplikasi kode juga merupakan salah satu bad smell code yang sering
ditemukan dalam project. Akan tetapi CodeIt.Right gagal dalam mendeteksi
adanya duplikasi kode. Akan lebih baik jika CodeIt.Right mampu mendeteksi
duplikasi kode dan memberikan metode refaktor yang tepat.


38

6 Daftar Pustaka


[1] Bad Smells In Code. [Online].
http://www.laputan.org/pub/patterns/fowler/smells.pdf
[2] George Blank. Refactoring.

Anda mungkin juga menyukai