PENINGKATAN FUNGSIONALITAS PERANGKAT LUNAK MELALUI RESTRUKTURISASI DATA (Studi Kasus: Sistem Informasi Akademik Fakultas Ilmu Komputer Universitas Sriwijaya)
TESIS Karya tulis sebagai salah satu syarat untuk memperoleh gelar Magister dari Institut Teknologi Bandung
Oleh
M. FACHRURROZI NIM : 23506007 Program Studi Rekayasa Perangkat Lunak Program Magister Informatika
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2008
ABSTRAK PENINGKATAN FUNGSIONALITAS PERANGKAT LUNAK MELALUI RESTRUKTURISASI DATA (Studi Kasus: Sistem Informasi Akademik Fakultas Ilmu Komputer Universitas Sriwijaya)
Oleh M. FACHRURROZI NIM : 23506007 Sistem informasi akademik merupakan salah satu bagian penting di dalam kegiatan akademik di suatu perguruan tinggi. Namun seiring dengan perkembangan teknologi dan peningkatan jumlah data, sistem tersebut harus dapat mengakomodasi perubahan tersebut. Dengan adanya keinginan untuk meningkatkan fungsionalitas perangkat lunak, maka perlu dilakukan perubahan dari perangkat lunak. Perubahan ini dapat berdampak terhadap data yang ada di sistem lama, sehingga data tersebut perlu untuk dipertahankan untuk dapat digunakan di sistem baru nantinya. Salah satu metode yang dapat dipakai adalah dengan restrukturisasi data, yaitu perubahan terhadap struktur data serta lingkungan DBMS yang digunakan. Restrukturisasi data ini dilakukan dengan beberapa tahapan, yaitu analisa pada sistem lama, rekayasa ulang data, implementasi hasil yang diperoleh dengan memindahkan data yang ada di sistem lama ke dalam sistem yang baru serta melakukan pengujian terhadap data yang telah dipindahkan ke lingkungan DBMS yang baru. Tahap analisa dilakukan untuk mendeteksi database smells yang terdapat di basisdata yang ada sistem lama. Kemudian tahapan rekayasa ulang dilakukan untuk mengatasi basisdata tersebut sehingga database smells dapat dihindari. Pengujian dapat dilakukan dengan melakukan query terhadap setiap permintaan informasi dari data tersebut, misalnya menampilkan Transkrip Nilai Akhir (TNA) mahasiswa. Tidak terdokumentasinya sistem lama menyebabkan proses restrukturisasi data akan menjadi lebih lambat karena harus melakukan survei dan penelusuran terhadap sistem lama tersebut. Penggunaan tools dapat dilakukan untuk memindahkan data yang ada di sistem lama ke dalam sistem baru. Kata kunci
: Restrukturisasi data, Database Smells
i
ABSTRACT INCREASING THE FUNCTIONALITY OF SOFTWARE THROUGH DATA RESTRUCTURING (Case Study: Academic Information System of Faculty of Computer Science, Universitas Sriwijaya)
Writer M. FACHRURROZI NIM : 23506007 Academic Information system is one important part in college’s academic activity. System must be able to accommodate changes due to technology and data amount growth and improvement, so change in software must be made to improve its functionality. This change can affect data that exist in old system, thus data have to be protected so it can be used in new system later. One usable method is data restructuring, which is to change data structure and its DBMS environment. Data restructuring is conducted with some steps, consist of old system analysis, data reengineering, implementation of reengineering result by moving data from the old to the new system, and conducting test to data in it’s new environment. Analysis Phase is conducted to detect “database smells” that exist in old system databases. Later, reengineering step conducted to overcome its problems until “database smells” can be avoided. Testing can be conducted by undertaking query to every information request from data, for example, viewing student’s Transcript. Data restructuring process is slow due to poor documentation, forcing engineer to conduct survey and tracing of the old system. Usage of tools is conducted to move data that exist in old system into new system Keywords
: Data Restructuring, Database Smells
ii
HALAMAN PENGESAHAN PENINGKATAN FUNGSIONALITAS PERANGKAT LUNAK MELALUI RESTRUKTURISASI DATA (Studi Kasus: Sistem Informasi Akademik Fakultas Ilmu Komputer Universitas Sriwijaya)
TESIS Program Studi Rekayasa Perangkat Lunak Program Magister Informatika
Oleh M. FACHRURROZI NIM : 23506007
Telah disetujui dan disahkan sebagai laporan tesis di Bandung, pada tanggal 18 Juni 2008
Pembimbing
Dr. Ing. M. Sukrisno Mardiyanto NIP. 130 938 170
iii
PEDOMAN PENGGUNAAN TESIS
Tesis S2 yang tidak dipublikasikan terdaftar dan tersedia di Perpustakaan Institut Teknologi Bandung, dan terbuka untuk umum dengan ketentuan bahwa hak cipta ada pada pengarang dengan mengikuti aturan HaKI yang berlaku di Institut Teknologi Bandung. Referensi kepustakaan diperkenankan dicatat, tetapi pengutipan atau peringkasan hanya dapat dilakukan seizin pengarang dan harus disertai dengan kebiasaan ilmiah untuk menyebutkan sumbernya. Memperbanyak atau menerbitkan sebagian atau seluruh tesis haruslah seizin Direktur Program Pascasarjana, Institut Teknologi Bandung.
iv
KATA PENGANTAR Alhamdulillah, segala puji bagi Allah atas limpahan rahmat dan karunia-Nya sehingga Penulis dapat menyelesaikan tesis yang berjudul ”Peningkatan Fungsionalitas Perangkat Lunak Melalui Restrukturisasi Data (Studi Kasus: Sistem Informasi Akademik Fakultas Ilmu Komputer Universitas Sriwijaya)”. Sholawat dan salam penulis tujukan kepada Baginda Nabi Muhammad SAW yang telah memberikan cahaya yang terang benderang di alam semesta ini. Ucapan terima kasih banyak tak lupa penulis sampaikan pada semua pihak yang telah membantu dalam pelaksanaan tesis ini, yaitu: 1. Bapak Dr. Ing. M. Sukrisno Mardiyanto selaku dosen pembimbing yang telah memberikan bimbingan, masukan dan wawasan selama pengerjaan tesis; 2. Bapak Achmad Imam Kistijantoro, atas kesediaannya membaca, mencermati dan memberi masukan dalam pelaksanaan tesis ini; 3. Ir. Hira Laksmiwati, M.Sc selaku Wali Akademik, terima kasih atas petunjuk dan saran serta nasehat selama menjalankan studi S2 RPL ITB ini. 4. Rektor Universitas Sriwijaya; 5. Drs. Saparudin, M.T selaku Dekan Fakultas Ilmu Komputer Universitas Sriwijaya beserta para stafnya; 6. Ir. Siti Nurmaini, M.T selaku Kepala Laboratorium Fakultas Ilmu Komputer Universitas Sriwijaya, terima kasih atas dukungannya. 7. Bunda dan Ubed yang selalu tabah, sabar dan semangat memberikan motivasi dan doa yang tiada pernah putus; 8. Keluarga : Ibuk, Pak dan dulur-dulur yang selalu memberikan doa dan tunjangan moril dan materil; 9. Ustadz H. M. Nurdin Mansur selaku pembimbing spiritual. 10. Rekan-rekan di Fasilkom Unsri. 11. Rekan-rekan seperjuangan S2 STEI (RPL, IF, SI) ITB 2006 semuanya. 12. Rekan-rekan futsal, badminton dan tenis meja dan rekan-rekan satu kost. 13. Ucapan khusus diperuntukkan Ibu Dr. Ir. M.M Inggriani Liem, terima kasih atas motivasi dan wawasan yang diberikan selama ini. 14. Mbak Nur, Pak Ade, staf duktek, staf dapur, atas kebaikan, keramahan dan kerja kerasnya membantu kami mahasiswa. v
15. Pihak lain yang tidak dapat disebutkan satu persatu dalam tulisan ini.
Penulis menyadari bahwa dalam penulisan tesis ini masih banyak sekali kekurangan yang harus disempurnakan. Karena itu, Penulis sangat terbuka menerima kritik dan saran berkaitan dengan tesis ini. Kritik dan saran dapat dikirimkan ke fachrur@yahoo.com. Semoga dokumen tesis ini dapat dimanfaatkan sebaik-baiknya oleh siapa pun yang membacanya.
Bandung, 18 Juni 2008 Penulis
vi
DAFTAR ISI ABSTRAK ............................................................................................................... i ABSTRACT............................................................................................................ ii HALAMAN PENGESAHAN................................................................................ iii PEDOMAN PENGGUNAAN TESIS ................................................................... iv KATA PENGANTAR ............................................................................................ v DAFTAR ISI......................................................................................................... vii DAFTAR LAMPIRAN........................................................................................... x DAFTAR GAMBAR ............................................................................................. xi DAFTAR TABEL................................................................................................ xiii BAB I
PENDAHULUAN .............................................................................. 1
I.1
Latar Belakang .................................................................................... 1
I.2
Rumusan Masalah ............................................................................... 2
I.3
Tujuan ................................................................................................. 3
I.4
Batasan Masalah ................................................................................. 3
I.5
Metodologi .......................................................................................... 3
I.6
Sistematika Penulisan ......................................................................... 4
BAB II
DASAR TEORI .................................................................................. 5
II.1
Perangkat Lunak ................................................................................. 5
II.1.1 Rekayasa Perangkat Lunak (Software Engineering) .......................... 6 II.1.2 Model Proses Rekayasa Perangkat Lunak .......................................... 6 2.1.2.1 Model Waterfall .............................................................................. 7 2.1.2.2 Model Incremental .......................................................................... 8 2.1.2.3 Model Spiral.................................................................................... 8 II.1.3 Prototyping.......................................................................................... 9 II.2
Sistem Basis Data (Database System) .............................................. 10
II.2.1 Basisdata (Database) ........................................................................ 13 2.2.1.1 Basis Data Relasional.................................................................... 14 II.2.2 Sistem Manajemen Basisdata (DBMS)............................................. 15 II.2.3 DBMS Open Source - MySQL ......................................................... 16 II.3
Entity Relationship Diagram (Diagram ER) ..................................... 17
vii
II.3.1 Entitas................................................................................................ 17 II.3.2 Relasi (Relationship)......................................................................... 18 II.3.3 Atribut ............................................................................................... 18 II.3.4 Derajat Relasi .................................................................................... 19 II.3.5 Kardinalitas (Cardinality) ................................................................. 20 II.3.6 Participation Constraint ................................................................... 20 II.3.7 Weak Entity (Entitas lemah).............................................................. 21 II.4
Rekayasa Ulang Perangkat Lunak (Software Reengineering) .......... 21
II.4.1 Reverse Engineering ......................................................................... 23 II.4.2 Restrukturisasi................................................................................... 24 II.5
Restrukturisasi Data .......................................................................... 25
II.5.1 Paradigma.......................................................................................... 25 II.5.2 Pendekatan dan Issue ........................................................................ 25 II.5.3 Strategi .............................................................................................. 27 II.6
Refactoring Basisdata (Database Refactoring)................................. 28
II.6.1 Kategori Refactoring Basisdata......................................................... 28 II.6.2 Database Smells ................................................................................ 30 II.7
Pengukuran Kualitas Basisdata ......................................................... 31
BAB III
ANALISIS SISTEM LAMA ............................................................ 33
III.1
Fitur Perangkat Lunak....................................................................... 33
III.2
Proses Bisnis ..................................................................................... 35
III.3
Diagram Konseptual (Diagram ER).................................................. 36
III.4
Diagram Fisik.................................................................................... 37
III.5
Pengolahan Basisdata........................................................................ 39
III.6
Deteksi Smells Basisdata .................................................................. 39
III.6.1 Multipurpose Column ....................................................................... 40 III.6.2 Multipurpose Table ........................................................................... 40 III.6.3 Data Redundan .................................................................................. 40 III.6.4 Tabel yang memiliki terlalu banyak kolom ...................................... 40 III.6.5 Tabel yang memiliki terlalu banyak baris......................................... 41 III.6.6 Kolom “Smart” ................................................................................. 42 III.6.7 Takut akan perubahan ....................................................................... 42
viii
III.7
Asumsi dan Batasan Simak............................................................... 42
III.8
Kebutuhan Fungsional Sistem Baru.................................................. 43
III.9
Kebutuhan Non Fungsional Sistem Baru.......................................... 43
III.10
Evaluasi Sistem Basisdata................................................................. 44
BAB IV
REKAYASA ULANG BASISDATA............................................... 45
IV.1
Restrukturisasi Berdasarkan Hasil Deteksi Smell............................. 45
IV.1.1 Data Redundan .................................................................................. 46 IV.1.2 Tabel yang memiliki terlalu banyak kolom ...................................... 49 IV.1.3 Tabel yang memiliki terlalu banyak baris......................................... 53 IV.2
Restrukturisasi Berdasarkan Kebutuhan Fungsional dan Non Fungsional ......................................................................................... 54
IV.2.1 Restrukturisasi Berdasarkan Kebutuhan Fungsional ........................ 56 IV.2.2 Restrukturisasi Berdasarkan Kebutuhan Non Fungsional ................ 57 IV.3
Evaluasi Hasil Restrukturisasi Data .................................................. 59
IV.4
Diagram Konseptual.......................................................................... 61
IV.5
Diagram Fisik.................................................................................... 61
BAB V
IMPLEMENTASI RANCANGAN BASISDATA ........................... 63
V.1
Implementasi Basisdata ke Lingkungan DBMS ............................... 63
V.2
Migrasi Data...................................................................................... 64
V.3
Pengujian Basisdata .......................................................................... 67
V.4
Evaluasi Perbandingan Antara Simak dan Facis.............................. 69
BAB VI
PENUTUP......................................................................................... 73
VI.1
Kesimpulan ....................................................................................... 73
VI.2
Saran.................................................................................................. 73
DAFTAR PUSTAKA ........................................................................................... 74
ix
DAFTAR LAMPIRAN Lampiran A Data Simak Keseluruhan............................................................. 75 Lampiran B Simbol-simbol Diagram ER dan Konseptual ............................ 78 Lampiran C Diagram Konseptual Sistem Baru.............................................. 79 Lampiran D Diagram Fisik Sistem Baru.......................................................... 80 Lampiran E Struktur Data Keseluruhan Facis ............................................... 81 Lampiran F Script SQL Facis ........................................................................... 85 Lampiran G Skenario dan Hasil Pengujian Facis.......................................... 91
x
DAFTAR GAMBAR Gambar II-1 Waterfall Model [7]............................................................................ 7 Gambar II-2 Incremental Model [7]........................................................................ 8 Gambar II-3 Full Spiral Model [7].......................................................................... 9 Gambar II-4 Proses Prototyping ........................................................................... 10 Gambar II-5 Sistem Basisdata [6] ......................................................................... 11 Gambar II-6 Database System Development [6] .................................................. 12 Gambar II-7 Contoh Relasi ................................................................................... 18 Gambar II-8Contoh Atribut .................................................................................. 18 Gambar II-9 Contoh Composite............................................................................ 19 Gambar II-10 Contoh Derivatif............................................................................. 19 Gambar II-11 Contoh Unary Degree..................................................................... 19 Gambar II-12 Contoh Binary ................................................................................ 19 Gambar II-13 Contoh Tenary Degree ................................................................... 20 Gambar II-14 Contoh Kardinalitas 1:1 ................................................................. 20 Gambar II-15 Contoh Kardinalitas 1:N................................................................ 20 Gambar II-16 Contoh Kardinalitas N:N................................................................ 20 Gambar II-17 Contoh Total Participants............................................................... 21 Gambar II-18 Contoh Partial Participants............................................................. 21 Gambar II-19 Contoh Weak Entity ....................................................................... 21 Gambar II-20 Reverse Engineering [9]................................................................. 23 Gambar II-21 Paradigma Restrukturisasi Data[9]................................................. 25 Gambar II-22 Pendekatan restrukturisasi data [9] ................................................ 26 Gambar II-23 Arsitektur migrasi data dan transformasi skema [6] ...................... 28 Gambar III-1 Diagram Fungsional Simak (Proses Bisnis) ................................... 35 Gambar III-2 Diagram Konseptual Simak (Diagram ER) .................................... 37 Gambar III-3 Diagram Fisik Simak ...................................................................... 37 Gambar III-4 Pengolahan basisdata Simak ........................................................... 39 Gambar IV-1 Relasi Dosen dengan Mahasiswa.................................................... 48 Gambar IV-2 Relasi Matakuliah dengan MKPrasyarat ........................................ 49
xi
Gambar IV-3 Relasi Mahasiswa dengan Matakuliah............................................ 51 Gambar V-1 Program migrasi data ....................................................................... 65 Gambar V-2 Perbandingan IPK Simak dan IPK Facis ......................................... 68 Gambar V-3. Performance Testing Tools ............................................................. 70
xii
DAFTAR TABEL Tabel II-1 Kategori Refactoring Basisdata [1]...................................................... 28 Tabel III-1 Daftar tabel di Simak .......................................................................... 34 Tabel III-2 Simbol -simbol Proses Bisnis ............................................................. 36 Tabel III-3 Deteksi data redundan......................................................................... 40 Tabel III-4 Deteksi banyak kolom ........................................................................ 41 Tabel III-5 Deteksi banyak baris........................................................................... 41 Tabel III-6 Evaluasi basisdata keseluruhan........................................................... 44 Tabel IV-1 Kasus data redundan 1........................................................................ 46 Tabel IV-2 Kasus data redundan 2........................................................................ 47 Tabel IV-3 Kasus data redundan 3........................................................................ 48 Tabel IV-4 Hasil deteksi banyak baris .................................................................. 54 Tabel IV-5 Contoh identifikasi tipe data dan ukuran kolom tabel........................ 62 Tabel V-1 Perbandingan Simak dan Facis ............................................................ 69
xiii