BAB V IMPLEMENTASI DAN PENGUJIAN Bab kelima ini berisi uraian hasil implementasi dan pengujian terhadap perangkat lunak yang dibuat pada tugas akhir ini.
5.1
Implementasi Sub bab ini mendeskripsikan hasil implementasi perangkat lunak berdasarkan pada
bab IV yaitu analisis dan perancangan perangkat lunak.
5.1.1 Batasan Implementasi Hal-hal yang menjadi batasan implementasi adalah : 1. Perangkat lunak hanya diimplementasikan pada satu macam basis data relasional yaitu Microsoft SQL Server 2005. 2. Hasil perancangan diimplementasikan pada jaringan komputer lokal dengan satu komputer sebagai server basis data dan satu komputer sebagai server aplikasi web.
5.1.2 Lingkungan Implementasi Lingkungan implementasi perangkat lunak terdiri atas : 1. Perangkat Keras Perangkat keras yang digunakan dalam pengembangan perangkat lunak pada tugas akhir ini antara lain : 1. Prosesor Intel Pentium 4 2.4 GHz 2. Memori RAM 768 MB. 3. Kapasitas harddisk 120 GB. 2. Perangkat Lunak Perangkat lunak yang digunakan dalam pengembangan perangkat lunak pada tugas akhir ini antara lain : 1. Sistem Operasi : Microsoft Windows XP. 2. Server basis data : Microsoft SQL Server 2005. 3. Server Web : ASP .NET Development Server 4. Bahasa Pemrograman : C#, HTML, JavaScript, SQL. V‐1
5. Kakas pengembangan modul : Microsoft Visual Studio 2005 6. Browser : Internet Explorer.
5.1.3 Implementasi Modul Perangkat Lunak Modul perangkat lunak diimplementasikan dengan menggunakan kakas Microsoft Visual Studio 2005 dengan bahasa pemgrograman C#. Implementasi kelas perangkat lunak dapat dilihat pada table V-1. Tabel V-1 Implementasi Kelas
No 1. 2. 3. 4. 5. 6.
Nama Kelas Antarmuka Akun Pengguna Query Enkripsi RC4 Manajemen Kunci Hash MD5
Nama File Fisik *.aspx.cs AkunPengguna.cs Query.cs RC4.cs KeyManager.cs HashMD5.cs
Berikut deskripsi implementasi kelas sesuai dengan table V-1 : 1. Antarmuka Implementasi kelas Antarmuka merupakan eventhandler dari setiap aksi yang dilakukan pengguna terhadap perangkat lunak.
Perangkat lunak ini memiliki
beberapa antarmuka sehingga memiliki beberapa kelas antarmuka. Rincian implementasi kelas Antarmuka dapat dilihat pada lampiran B bagian B.1. 2. Akun Pengguna Kelas Akun Pengguna beroperasi untuk melakukan pengolahan user account dengan data aplikasi tersimpan pada file yang terdapat pada hard disk web server. Operasi yang banyak dilakukan kelas ini adalah membaca dan menulis file data aplikasi yang berisi data tentang akun pengguna seperti username dan password. Implementasi kelas Akun Pengguna dapat dilihat pada lampiran B bagian B.2.1
V‐2
3. Query Kelas Query dapat melakukan eksekusi untuk setiap macam query dengan tipe data selain image, hal itu dikarenakan untuk tipe data image tidak dapat dieksekusi dalam bentuk string query. Kelas Query bekerja dengan memanggil stored procedure yang terdapat pada basis data. Stored procedure yang dipanggil diantaranya SP_Query(), SP_NonQuery(), ChPwd(). Rincian implementasi stored procedure dapat dilihat pada lampiran B
bagian B3. Implementasi kelas Query dapat dilihat pada lampiran B bagian B.2.2 4. Enkripsi RC4 Implementasi RC4 dilakukan baik di server web maupun di basis data yang berjalan dengan stored procedure. Modul yang berada di server web dan basis data merupakan modul yang sama baik secara arsitektural yaitu berorientasi objek maupun prosedural yaitu cara kerjanya. Implementasi Kelas RC4 ini menggunakan initialization vector untuk mencegah dihasilkannya cipherteks yang sama untuk plainteks yang sama dengan kunci yang sama. Initialization vector diimplementasikan dengan suatu fungsi acak dengan bilangan awal pembangkit tertentu. Nilai awal pembangkit tersebut juga dikirim ke basis data untuk menjamin kesamaan nilai enkripsi dan dekripsi. Implementasi kelas Enkripsi RC4 dapat dilihat pada lampiran B bagian B.2.3 5. Manajemen Kunci Implementasi kelas Manajemen Kunci dapat dilihat pada lampiran B bagian B.2.4 6. Hash MD5 Modul ini sama seperti modul RC4 yaitu diimplementasikan baik di server web maupun basis data dengan identik. Implementasi kelas Hash MD5 dapat dilihat pada lampiran B bagian B.2.5 V‐3
5.1.4 Implementasi Antarmuka Antarmuka pada tugas akhir ini diimplementasikan dengan menggunakan pendekatan berorientasi objek sehingga menghasilkan beberapa kelas antarmuka sesuai dengan tabel V-2 Tabel V-2 Implementasi Antarmuka
No 1. 2. 3. 4. 5. 6. 7. 8.
Antarmuka Index Login Eksplorasi basis data Tambah baris Ubah baris Ubah Password Register Manajemen Kunci
Nama File Fisik Default.aspx Login.aspx Dbexplorer.aspx Add.aspx Edit.aspx ChangePassword.aspx Register.aspx ChEncPwd.aspx
Rincian implementasi antarmuka perangkat lunak dapat dilihat pada lampiran C.
5.1.5 File Lain yang Dihasilkan Implementasi perangkat lunak ini menghasilkan beberapa file selain yang telah disebutkan pada sub bab 5.1.3 dan 5.1.4. File lain tersebut dapat dilihat pada tabel V-3. Tabel V-3 File lain yang dihasilkan
5.2
No 1
Nama File Web.config
2.
Global.asax
3. 4.
Dbcrypto.css Data.txt
5. 6.
Userlist.txt Encpwd.txt
Keterangan File yang berfungsi mengkonfigurasi aplikasi klien yang berbasis web pada saat instalasi. File yang berfungsi untuk memisahkan jenis user pengguna aplikasi, yaitu user dan Administrator. File yang berfungsi untuk mengatur style halaman web. File menyimpan data user account dalam bentuk nilai hash. File menyimpan daftar username. File menyimpan kunci enkripsi dalam bentuk terenkripsi.
Pengujian Pengujian perangkat lunak merupakan aktivitas menjalankan perangkat lunak dengan
berbagai cara yang bertujuan untuk melakukan evaluasi terhadap perangkat lunak yang dibuat serta mendeteksi atau menemukan kesalahan perangkat lunak. Pada sub bab pengujian ini terdiri atas tujuan pengujian, rencana dan prosedur pengujian, kasus uji dan evaluasi pengujian.
V‐4
5.2.1 Tujuan Pengujian Pengujian perangkat lunak pada tugas akhir ini bertujuan untuk menguji kemampuan perangkat lunak sesuai dengan analisis kebutuhan perangkat lunak pada bab IV bagian 4.1.2 yaitu apakah perangkat lunak mampu: 1. Mengamankan transmisi data antara server basis data dengan server web dengan cara mengenkripsi dan dekripsi data query dan hasil query basis data pada server web dan server basis data. 2. Melakukan otentikasi username dan password untuk dapat masuk ke aplikasi dan menambah atau menghapus akun pengguna. 3. Menampilkan basis data beserta tabel dan isi tabel pada basis data. 4. Menerjemahkan perintah berbasis GUI dari pengguna menjadi query basis data. 5. Mengganti kunci enkripsi dan dekripsi.
5.2.2 Lingkungan Pengujian Lingkungan pengujian perangkat lunak terdiri atas : 1. Komputer Klien Pada pengujian ini komputer klien merupakan komputer dimana perangkat lunak terinstalasi sebagai aplikasi berbasis web. Komputer ini berfungsi sebagai server web. Berikut spesifikasi komputer klien : 1. Prosesor Intel Core 2 T5300 1.73GHz 2. Memori RAM 2 GB. 3. Kapasitas harddisk 120 GB. 4. Antarmuka Jaringan : Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC dan kabel LAN sepanjang 10 M. 5. Sistem Operasi : Microsoft Windows XP. 6. Server Web : IIS 5.1 7. Browser : Internet Explorer.
V‐5
2. Komputer Server Pada pengujian ini komputer server merupakan komputer dimana basis data terinstalasi. Komputer ini berfungsi sebagai server basis data. Berikut spesifikasi komputer server : 1. Prosesor Intel Pentium 4 2.4 GHz 2. Memori RAM 768 MB. 3. Kapasitas harddisk 120 GB. 4. Antarmuka Jaringan : VIA Rhine II Fast Ethernet Adapter. 5. Sistem Operasi : Microsoft Windows XP. 6. Server Basis Data: Microsoft SQL Server 2005. 7. Kakas Pengujian : Wireshark (kakas untuk melihat traffic data pada antarmuka jaringan)
5.2.3 Rencana dan Prosedur Pengujian 5.2.3.1 Rencana Pengujian Rencana pengujian dilakukan untuk tiap-tiap use case. Rencana pengujian dapat dilihat pada tabel V-4. Tabel V-4 Rencana Pengujian
No Use Case
Pengujian
1
1. Pengguna melakukan login dengan memasukkan username dan password yang telah terdaftar dalam aplikasi. 2. Pengguna melakukan login dengan memasukkan username dan password yang tidak terdaftar dalam aplikasi. 1. Pengguna melakukan operasi query select 2. Pengguna melakukan operasi query insert 3. Pengguna melakukan operasi query edit 4. Pengguna melakukan operasi query delete 5. Pengecekan visibilitas data selama transmisi.
2
Login
Query
V‐6
Jenis Pengujian 1. Black Box
Identifikasi RP-1-001
2. Black Box
RP-1-002
1. Black Box
RP-2-001
2. Black Box
RP-2-002
3. Black Box
RP-2-003
4. Black Box
RP-2-004
5. White Box
RP-2-005
No Use Case
Pengujian
3
1. Pengguna mengganti password dengan memasukkan password lama, password baru dan konfirmasi password dengan benar. 2. Pengguna mengganti password dengan memasukkan password lama salah , password baru dan konfirmasi password dengan benar. 3. Pengguna mengganti Password dengan memasukkan password baru yang sama dengan password lama 4. Pengguna mengganti password dengan memasukkan password lama benar, password baru dan konfirmasi password dengan tidak sama. 1. Administrator melakukan penambahan user dengan mengisi form register dengan username, password, konfirmasi password dengan benar 2. Administrator melakukan penambahan user dengan mengisi form register dengan password dan konfirmasi password berbeda 3. Administrator melakukan penambahan user dengan mengisi form register dengan tidak lengkap. 4. Administrator melakukan penghapusan terhadap akun terpilih 5. Administrator melakukan penghapusan terhadap akun Admin 1. Administrator melakukan inisialisasi awal kunci dengan mengetikkan kunci pada form yang tersedia. 2. Administrator melakukan pengubahan kunci dengan memasukkan kunci lama, kunci baru dan konfirmasi kunci baru dengan benar. 3. Administrator memasukkan kunci baru yang tidak dapat disimpan oleh sistem
4
5
Mengganti Password
Register
Manajemen Kunci
V‐7
Jenis Pengujian 1. Black Box
Identifikasi RP-3-001
2. Black Box
RP-3-002
3. Black Box
RP-3-003
4. Black Box
RP-3-004
1. Black Box
RP-4-001
2. Black Box
RP-4-002
3. Black Box
RP-4-003
4. Black Box
RP-4-004
5. Black Box
RP-4-005
1. Black Box
RP-5-001
2. Black Box
RP-5-002
3. Black Box
RP-5-003
5.2.3.2 Prosedur Pengujian Prosedur pengujian perangkat lunak dalam tugas akhir ini adalah sebagai berikut : 1. Menyusun rencana pengujian. 2. Menyusun kasus uji. 3. Mendokumentasikan hasil pengujian. 4. Mengadakan evaluasi terhadap pengujian.
5.2.4 Kasus Uji Sesuai dengan rencana pengujian yakni pengujian dilakukan tiap use case maka kasus uji dilakukan sesuai rencana tersebut. Kasus uji dan hasil uji tiap use case dapat dilihat pada lampiran D.
5.2.5 Kriteria Pengujian Kriteria evaluasi hasil pengujian perangkat lunak berbeda-beda untuk setiap rencana pengujian. Rincian kriteria pengujian dapat dilihat pada lampiran D.
5.2.6 Evaluasi Pengujian Berdasarkan kasus uji dan hasil pengujian yang dilakukan selama implementasi perangkat lunak maka dapat diperoleh hasil evaluasi pengujian sebagai berikut : 1. Perangkat lunak dapat mengamankan transmisi query dan hasil query antara server basis data dengan server web dengan cara mengenkripsi data query dan hasil query. Hal itu dibuktikan pada pengujian use case query dimana data yang melewati jaringan merupakan data yang terenkripsi. Enkripsi ini menghasilkan cipherteks yang berbeda walaupun berasal dari plainteks yang sama dan kunci yang sama. Hal itu dikarenakan enkripsi menggunakan initialization vector yang nilainya akan berbeda untuk setiap eksekusi query. 2. Perangkat lunak mengharuskan pengguna yang dapat menggunakan perangkat lunak merupakan pengguna yang terotentikasi. Jika pengguna tidak terotentikasi maka pengguna tidak dapat menggunakan perangkat lunak walaupun pengguna langsung menuju alamat halaman yang akan digunakan. 3. Perangkat lunak dapat menampilkan isi tabel basis data dengan mengkonversi semua tipe data menjadi bentuk string. Keluaran tampilan tabel dapat berbeda untuk mesin V‐8
basis data yang berbeda. Contoh keluaran tipe tanggal pada umumnya dalam format mm/dd/yyyy hh:mm:ss AM/PM(jam dalam format 12 jam), tetapi pada kasus lain ditampilkan format tanggal dalam dd/mm/yyyy hh:mm:ss (jam dalam format 24 jam). Keluaran tipe binary dan varbinary ditampilkan dalam bentuk string bertuliskan system.byte[].Untuk tipe bit keluaran yang ditampilkan dalam bentuk string
“True” atau “False” 4. Keluaran tipe binary dan varbinary dalam bentuk string bertuliskan system.byte[] dan tanggal dengan format dd/mm/yyyy hh:mm:ss (jam dalam format 24 jam) memiliki permasalahan ketika baris dengan tipe data tersebut dilakukan perubahan dan pengguna tidak melakukan perubahan kolom pada tipe tersebut maka akan terjadi kegagalan query. Untuk mengatasinya pengguna harus melakukan perubahan format pada textbox yang tersedia sesuai dengan kompatibilitas data tersebut. Karena itu untuk tipe data binary dan varbinary pengguna harus memasukkan nilai berupa bilangan integer ataupun heksadesimal, sedangkan untuk tipe data tanggal harus memasukkan tanggal dengan format mm/dd/yyyy atau mm/dd/yyyy hh:mm:ss AM/PM(jam dalam format 12 jam). Cara lain yaitu dengan mengosongkan data pada textbox dengan asumsi data bersangkutan kosong nilainya dan memiliki nilai NULL pada basis data. 5. Perangkat lunak dapat melakukan operasi select, insert, edit dan delete dengan cara melakukan pengisian textbox dan klik link perintah pada antarmuka perangkat lunak. 6. Perangkat lunak mampu melakukan operasi query basis data untuk semua tipe data selain image. Hal itu dikarenakan pemrosesan image tidak dapat dilakukan dengan query dalam bentuk string. 7. Perangkat lunak hanya mampu melaksanakan operasi edit dan delete jika tabel mengandung primary key. Hal itu dikarenakan query untuk edit dan delete menggunakan klausa where pada atribut primary key. 8. Perangkat lunak hanya mampu melaksanakan operasi query, jika data masukkan pengguna kompatibel dengan tipe data kolom bersangkutan. Kompatibilitas data masukan dan tipe data dapat dilihat pada lampiran D bagian D.2. 9. Perangkat lunak mampu melakukan pembuatan kunci enkripsi dekripsi dan pengubahan kunci kecuali untuk pembuatan dan penggantian kunci dengan string yang menghasilkan nilai hash yang mengandung karakter yang tidak bisa disimpan
V‐9
oleh basis data sehingga tidak semua string dapat digunakan untuk dijadikan kunci enkripsi dekripsi. 10. Pembuatan dan pengubahan kunci enkripsi dekripsi mendistribusikan kunci dari aplikasi klien ke basis data dengan mengirimkan kunci dalam bentuk cipherteks yang merupakan hasil enkripsi algoritma kriptografi RC4 dengan kunci lama untuk perubahan kunci dan kunci default untuk pembuatan kunci. Karena itu distribusi pembuatan kunci memiliki risiko dapat dipecahkan nilai kunci jika pengguna mengetahui nilai kunci default yang tersimpan pada aplikasi.
V‐10