Penelusuran Bug Program Simulasi Pencetakan Transkrip Siakad
Unila Dengan Metode Whitebox Dan Solusi Menggunakan Variabel
Memori
1Dwi Sakethi, 2Wamiliana, 3Wisnu Wardhana, 1Alifah Zahroh
1Jurusan IlmuKomputer FMIPA Unila 2Jurusan Matematika FMIPA Unila 3
Linux Lampung
Abstract
In tracking of SIAKAD transcript, there was found a bug, that is the arrangement of the lesson position at the tenth till fifteenth semester located between first and second semester. Process tracking bug did in simulation program. In this research, carried out a development of the original program Siakad as simulation program that will be analyzed, to find out where is bug in the system. Development this program using PHP and MySQL database software. Tracking bug using whitebox testing method, it can be determined whether there is a bug in the procedural structure of the program or just on the operational function of the system itself. Bugs can be repaired by adding some changes on source code of the program. The changes are determination of new variables as memory variables and application of Bubble sort method on sorting proccess. The result shows bugs on the program is fixed.
Keywords: Bubble sort, Bug, MySQL, PHP, Siakad, Whitebox
1. Pendahuluan
Siakad adalah sebuah sistem khusus yang digunakan untuk keperluan pengelolaan data-data akademik dengan menerapkan teknologi komputer, baik hardware maupun software. Siakad digunakan untuk mengambil mata kuliah mahasiswa sesuai dengan fakultas dan jurusan, merencanakan studi atau yang disebut dengan KRS, melihat nilai mata kuliah, mencetak transkrip atau nilai keseluruhan mahasiswa, melihat daftar dosen di setiap fakultas dan jurusan masing-masing.
Siakad atau sistem informasi akademik, sebagai penyedia data pendukung harus mampu memberikan data dan informasi secara cepat dan akurat untuk memberikan informasi kepada
user. Apabila sistem yang digunakan belum berfungsi secara sempurna sesuai dengan kebutuhan programmer dan user, maka diperlukan perbaikan dan pengembangan pada sistem, sehingga
Testing.
Hasil pencetakan transkrip SIAKAD Unila terdapat kekeliruan yaitu pada output pencetakan. Kekeliruan ini hanya ditemukan pada transkrip pada mahasiswa yang mengambil mata kuliah lebih dari 9 semester yaitu 10, 10P, 11, 12,12P, 13, 14, 14P, dengan mengisi KRS (Kartu Rencana Studi) di semester-semester tersebut.
Pada penelitian yang dilakukan sebelumnya oleh Selva Apriliyani (2011), telah diberikan solusi mengenai penemuan bug atau kekeliruan tersebut yaitu dengan menambahkan tabel semester baru pada database.
Untuk itu, pada penelitian lanjutan ini, dilakukan hal yang sama yaitu menelusuri kesalahan yang terdapat pada pencetakan transkrip SIAKAD Unila. Kemudian diberikan solusi pada bug yang terdapat pada program simulasi dengan metode whitebox dan memperbaiki source code program simulasi tanpa melakukan perubahan pada database sistem dan menambah tabel pada database seperti yang telah dibuat pada penelitan sebelumnya.
2. Metode Penelitian
2.1 Studi Literatur
Studi literatur dimaksudkan untuk mempelajari berbagai sumber referensi yang diperoleh baik itu jurnal, E-book, buku, dan lain-lain yang berkaitan dengan pembuatan dan perancangan sistem. Literatur yang dipelajari adalah yang berkaitan dengan :
1. PHP MySQL
2. Metode Pengurutan (Sorting). 3. Metode Pengujian Whitebox.
2.2 Pembuaan Program Simulasi
Merupakan proses pembuatan program simulasi pencetakan transkip Siakad dengan menggunakan software PHPMyadmin dan MySQL. Program simulasi dimodifikasi sesuai dengan tampilan output program pencetakan transkrip Siakad Unila.
2.3 Memperbaiki Program Simulasi
Pada penelitian sebelumnya dilakukan penelusuran bug pada program simulasi pencetakan transkip siakad unila dengan menggunkan metode whitebox testing. Pada penelitian lanjutan ini akan dilakukan hal yang sama, dengan tidak mengubah database, namun hanya memperbaiki
2.3 Uji Coba Whitebox
Pengujian bug program Siakad menggunakan metode whitebox. Merupakan metode yang digunakan untuk pengujian perangkat lunak. Whitebox testing adalah jenis pengujian software yang berkonsentrasi pada source code perangkat lunak, sehingga membutuhkan waktu yang lebih lama karena membutuhkan ketelitian dari para tester serta kemampuan teknik pemrograman bagi para tester.
3. Pembahasan
3.1 Pembuatan Program Simulasi
Tahap ini merupakan tahapan awal dalam persiapan melakukan pengujian. Pada pembuatan program simulasi ini, sudah diketahui dimana letak kesalahan atau bug yang akan dibuat solusinya.
Tahapan lain yang dilakukan adalah membuat database dan instalasi software yang diperlukan dalam proses pembuatan program simulasi pencetakan transkrip siakad unila. Program dibuat dengan menggunakan bahasa pemrograman PHP dan MySQL.
3.1.1 Pembuatan Database
Database yang dibuat dalam pembuatan program ini terdiri dari 3 tabel yaitu tabel mahasiswa,
matakuliah, dan tabel mkmahasiswa. Tabel mahasiswa berisi identitas mahasiswa. Tabel ini terdiri dari 2 field yaitu npm dan nama mahasiswa, dengan npm sebagai primary key.
Tabel yang kedua adalah tabel matakuliah, yang berisi tentang informasi data-data mata kuliah pada jurusan masing-masing. Pada tabel ini terdiri dari 3 field yaitu kode_mk, nama_mk, dan sks, dengan kode_mk sebagai primary key nya.
Tabel mkmahasiswa terdiri dari 4 field yaitu npm, kode_mk, semester, dan nilai_mk, dimana kode_mk sebagai foreign key.
3.1.2 Pembuatan Program Simulasi
Tahap ini merupakan tahap pembuatan program simulasi pencetakan transkrip Unila, untuk mengetahui dimana letak kesalahan dalam pengurutan data semester. Berikut ini adalah potongan program yang telah dibuat.
4 from mkmahasiswa order by Semester ASC"; 5 mysql_select_db($database, $Siakad);
6 $hasil_kueri = mysql_query($baca_mk, $Siakad); 7 ?> 8 <?php 9 $no = 0; 10 while($data_nilai = mysql_fetch_row($hasil_kueri)){ 11 $npm[$no] = $data_nilai[0]; 12 $kode[$no] = $data_nilai[1]; 13 $semester[$no] = $data_nilai[2]; 14 $nilai[$no] = $data_nilai[3]; 15 $no++; 16 }; 17 ?>
Berdasarkan program simulasi yang dibuat, ditemukan kesalahan atau bug dalam pencetakan transkrip tersebut. Kesalahan terletak pada pengambilan mata kuliah di atas semester 9, yaitu semester 10, 10P, 11, 12, 12P, 13, 14, 14P, dan 15. Bug ditemukan pada penggunaan tipe data untuk field semester, yaitu char. Terdapat perintah order by semester pada program simulasi dan juga membaca data mk_mahasiswa yang di order by semester.
Pada dasarnya data yang bertipe char akan menampilkan data sesuai dengan data alfanumerik, yaitu aa, ab, ac, ad, ae, dan seterusnya serta dibaca sesuai dengan order by semester. Sehingga semester yang diambil lebih dari semester 9 akan dibaca 1, (1,0), (1,1), (1,2), (1,3), (1,4) dan seterusnya.
3.2 Pembuatan Program Solusi
Untuk mengatasi kekeliruan yang telah ditemukan pada program simulasi tersebut, maka peneliti membuat program solusi untuk mengatasi kekeliruan tersebut. Berikut ini adalah potongan program solusi yang telah dibuat :
1 <?php
2require_once('koneksi.php');
3 $baca_mk = "select * from mkmahasiswa";
4 $baca_mk = "select NPM, Kode_MK, Semester, Nilai_MK from mkmahasiswa”;
5
6 mysql_select_db($database, $Siakad); 7 $hasil_kueri = mysql_query($baca_mk);
8 $jumlah_data = mysql_num_rows($hasil_kueri); 9 ?> 10 <?php 11 $no = 0; 12 while($data_nilai =mysql_fetch_row($hasil_kueri)){ 13 $npm[$no] = $data_nilai[0]; 14 $kode[$no] = $data_nilai[1]; 15 $semester[$no] = $data_nilai[2]; 16 $nilai[$no] = $data_nilai[3]; 17 if(($semester[$no][1] == "P") || 18 ($semester[$no][2] == "P")){ 19 $nsemester[$no] = ($semester[$no] + 0.5) * 10; 20 } 21 else{ 22 $nsemester[$no] = $semester[$no] * 10; 23 }; 24 $no++; 25 }; 26
27 for ($i=0; $i<$no-1 ;$i++) 28 {
29 for ($j=$i+1; $j<$no; $j++) 30 { 31 if ($nsemester[$i] > $nsemester[$j]) 32 33 { 34 $temp = $npm[$i]; 35 $npm[$i] = $npm[$j]; 36 $npm[$j] = $temp; 37 38 $temp = $kode[$i]; 39 $kode[$i] = $kode[$j]; 40 $kode[$j] = $temp; 41 42 $temp = $semester[$i]; 43 $semester[$i] = $semester[$j]; 44 $semester[$j] = $temp; 45 46 $temp = $nilai[$i]; 47 $nilai[$i] = $nilai[$j]; 48 $nilai[$j] = $temp; 49
52 $nsemester[$j] = $temp; 53 }
54 } 55 }
56
57 for ($i=0; $i<$no ; $i++) 58 {
Berdasarkan program solusi yang telah dibuat pada penelitian ini hanya menggunakan variabel memori, yaitu dengan mengubah source code program serta mengkonversikan tipe data char atau string ke dalam bentuk integer. Hasil konversi nilai semester yang disimpan dalam variabel nsemester.
Setelah dilakukannya proses konversi nilai semester, maka akan dilakukan proses sorting atau proses pengurutan data dengan menggunakan metode bubble sort. Pengurutan dengan metode
bubble sort didasarkan pada perbandingan data secara berurut dari awal hingga akhir dengan
menempatkan data yang lebih besar di sebelah kanan. Penukaran terus dilakukan, selama masih ditemukan data yang belum terurut. Pengurutan data dilakukan dengan cara membandingkan semua elemen array satu per satu. Dengan menggunakan metode sorting maka hasil yang didapatkan akan berbeda.
Metode bubble sort juga dikenal dengan nama pengurutan Apung karena terinspirasi dari gelembung sabun yang berada di atas air. Karena berat jenis gelembung lebih ringan dibandingkan dengan berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Secara umum, benda-benda yang berat tenggelam dan benda-benda ringan terapung ke atas permukaan. Prinsip pengapungan ini juga digunakan pada pengurutan apung. (Rinaldi,2007)
3.3 Uji Coba Whitebox
Penelusuran bug dilakukan dengan menggunakan metode Whitebox Testing. Metode ini melalui beberapa tahapan diantaranya adalah menterjemahkan source code kedalam flowgraph, menentukan cyclometic complexity, dan membuat test case. (Ayuliana,2009)
3.3.1 Menterjemahkan Source Code Ke dalam CFG
Pada tahap ini, uji coba whitebox dilakukan dengan menterjemahkan source code program simulasi ke dalam bentuk flowgraph. Flowgraph adalah notasi sederhana untuk mempresentasikan alur kontrol. Flowgraph terdiri dari beberapa elemen yaitu node, edges, dan
Figure 1 Flowgraph dan Daerah Region
3.3.2 Menentukan Cyclometic Complexity
Terdapat tiga proses dalam menentukan nilai CC yang dilakukan agar didapat nilai CC yang tepat. Setiap proses dilakukan dengan rumus dan cara yang berbeda. (Busono,2010)
Proses CC 1
Jumlah node(N)/lingkaran = 24 Jumlah edges(E)/tanda panah = 29 Rumus CC = E - N + 2 CC = 29 - 24 + 2 = 7 Proses CC II Predicate node = 3(4,5,7,8), 5(6,8), 12(13,14,8) = 16(17,19,8), 9(20,21,22,24,8), 22(23,8) = 6 + 1 = 7 Proses CC III
Proses CC III dapat dilihat pada Gambar 7. Kesimpulan dari gambar tersebut adalah: Region 1 = 3;4;5;7;8 Region 2 = 5;6;7;8 Region 3 = 12;13;14;8 Region 4 = 16;17;18;19;8 Region 5 = 9;20;21;22;24;8 Region 6 = 22;23;8
Region 7 adalah daerah diluar node dan edge.
3.3.3 Perancangan Test Case
Perancangan test case merupakan tahapan dalam uji coba whitebox. Test case ini dilakukan pada
Path 1 = 1,2,3,9,10,11,12,14,15,16,,18,19,8 Path 2 = 1,2,3,4,5,6,8 Path 3 = 1,2,4,5,6,8 Path 4 = 1,2,12,13,14,15,16,18,19,8 Path 5 = 1,2,16,17,19,8 Path 6 = 1,2,9,20,21,22,24,8 Path 7 = 1,2,22,23,8
4. Kesimpulan
Berdasarkan hasil dari penelitian yang dilakukan maka didapatkan kesimpulansebagai berikut : (a) Bug atau kesalahan yang ditemukan disebabkan karena tipe data pada field semester yang bertipe data char yang berurut sesuai dengan aturan alfanumerik dan perintah query pada program simulasi. (b) Ditemukan alternatif solusi yang terdapat pada kesalahan program simulasi pencetakan transkrip SIAKAD Unila yaitu menggunakan variabel memori dengan mengubah source code program.
5. Referensi
Apriliana, S. 2011. Penelusuran Bug Program Simulasi Pencetakan Transkrip Siakad Unila dengan Metode Whitebox dan Solusinya. Skripsi. Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Lampung.
Ayuliana, 2009. Pertemuan04-Software Testing Techniques.pdf
Busono, Pranto. 2010. Testing dan Implementasi Pengujian WhiteBox Basis Path Testing.Doc.
ModulVII. Universitas Mercubuana
Rao, A. dan Kiran Kumar. 2011. An Approach to Cost Effective Regression Testing in Blackbox
Testing Environment. International Journal of Computer Science Issue Vol.8,issue 3.No1. India
Munir, Rinaldi. 2007Algortima dan Pengurutan Dalam Bahasa Pascal dan C hal 428-432. Bandung:INFORMATIKA.