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 tidak menangani aplikasi backoffice yang bertanggung jawab terhadap manajamen content aplikasi web seperti file yang bisa diunduh dan manajemen kunci.
2
Hasil perancangan diimplementasikan pada jaringan komputer lokal dengan satu komputer sebagai web server dan satu komputer sebagai klien.
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 Core 2 Duo E4500 2.2GHz 2. Memori RAM 1GB. 3. Kapasitas harddisk 200 GB.
2
Perangkat Lunak Perangkat lunak yang digunakan dalam pengembangan perangkat lunak pada tugas akhr ini antara lain : 1. Sistem Operasi : Microsoft Windows XP Professional Service Pack 2. 2. Server basis data : MySQL 5.0.27. 3. Server web : Apache PHP 2.2.3 4. Bahasa Pemrograman : PHP, HTML, JavaScript. V-1
5. Kakas pengembangan modul : Notepad++ 6. Browser : Mozilla Firefox 3 Beta 5 dilengkapi dengan plug-in Greasemonkey.
5.1.3 Implementasi Modul Perangkat Lunak Modul perangkat lunak diimplementasikan dengan menggunakan kakas Notepad++ dengan bahasa pemgrograman PHP dan JavaScript. 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 Enkripsi Akses Database Perangkat Lunak Konstruktor RC4
Nama File Fisik index.php & view.php Enkripsi.php AksesDatabase.php PerangkatLunak.php zapshare.user.js zapshare.user.js
Berikut deskripsi implementasi kelas sesuai dengan table V-1 : 1. Antarmuka Implementasi kelas antarmuka merupakan eventhandler (penghubung dengan sistem) dari setiap aksi yang dilakukan pengguna terhadap perangkat lunak. Perangkat lunak ini memiliki dua antarmuka sehingga memiliki dua buah script PHP Rincian implementasi kelas antarmuka dapat dilihat pada lampiran B bagian B.1. 2. Enkripsi Kelas enkripsi melakukan enkripsi terhadap halaman HTML yang dihasilkan oleh kelas antarmuka. Hasil enkripsi adalah berupa sebuah string yang terdiri dari nilai ASCII masing-masing karakter hasil enkripsi. Sebagai contoh, jika hasil enkripsi dari teks abcd adalah byte “&*z, string hasil akhir enkripsi adalah 034038042122 dimana masing-masing karakter diwakili oleh tiga digit bilangan dengan penambahan‘0’. Implementasi kelas Enkripsi dapat dilihat pada lampiran B bagian B.2.1 3. Akses Database Kelas ini menyediakan semacam interface antara kelas lain dengan basis data. Fungsi utama kelas ini adalah membuat koneksi ke basis data, melakukan fetching data dan mengembalikan hasil fetch tersebut dalam bentuk array. Implementasi kelas Akses Database dapat dilihat pada lampiran B bagian B.2.2
V-2
4. Perangkat Lunak Kelas ini merupakan kelas yang fungsi utamanya adalah menyimpan data perangkat lunak selama sistem melakukan eksekusi. Oleh karena itu, kelas implementasi ini hanya berisi atribut-atribut perangkat lunak disertai method getter. Implementasi kelas Perangkat Lunak dapat dilihat pada lampiran B bagian B.2.3 5. Konstruktor Kelas ini diimplementasikan dalam bentuk prosedural menggunakan bahasa JavaScript. Kelas ini berada dalam satu file fisik dengan kelas Dekripsi karena penggunaan plug-in Greasemonkey tidak memungkinkan untuk melakukan include file fisik lain. Tanggung jawabnya adalah meminta input kunci dekripsi dari user dan membangun halaman HTML. Ketika awal perancangan, kelas ini bertanggung jawab menampilkan seluruh tag HTML yang terdapat dalam head dan body HTML. Akan tetapi pada implementasinya, tidak seluruh tag yang berada di head berhasil ditampilkan kembali di web browser. Hal ini disebabkan karena sifat Greasemonkey yang melakukan pemrosesan halaman setelah halaman tersebut dieksekusi oleh web browser sehingga taq-tag yang tidak berada dalam InnerHTML seperti tag
tidak berhasil dimunculkan. Oleh karena itu, tag-tag seperti ini nantinya tidak akan dienkripsi agar bisa ditampilkan. Hal ini tidak menjadi masalah karena tag-tag tersebut tidak mengandung informasi yang harus disembunyikan. Implementasi kelas Konstruktor dapat dilihat pada lampiran B bagian B.2.4 6. Dekripsi Modul ini berada dalam satu file fisik dengan Konstruktor. Bersesuaian dengan kelas Enkripsi yang berada di sisi server, kelas ini menerima ciphertext dalam bentuk string nilai ASCII (sebagai contoh 034038042122) yang nantinya akan di-parsing tiap tiga digit untuk mendapatkan karakternya. Implementasi kelas Dekripsi dapat dilihat pada lampiran B bagian B.2.5
5.1.4 Implementasi Antarmuka Pengembangan antarmuka ini menggunakan pendekatan scripting PHP sehingga tidak ada kelas yang dihasilkan melainkan sebuah file PHP untuk masing-masin antarmuka. Daftar file-file fisik yang berisi implementasi antarmuka dapat dilihat pada Table V-2 dan rincian implementasi antarmuka perangkat lunak dapat dilihat pada lampiran C
V-3
Tabel V-2 Implementasi antarmuka
No Antarmuka 1. Index 2. View
Nama File Fisik index.php view.php
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-file lain
No 1 2
5.2
Nama File Keterangan config.inc.php File yang berisi konfigurasi. style.css File yang berisi style CSS untuk tampilan situs
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.
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. Mengenkripsi halaman web yang diminta oleh klien lalu mentransmisikannya ke klien tersebut. 2. Melakukan dekripsi halaman web di sisi klien yang telah dienkripsi oleh server. 3. Menampilkan halaman web di browser sesuai kondisinya sebelum dienkripsi. 4. Menyediakan fasilitas unduh file-file aplikasi setelah halaman didekripsi.
5.2.2 Lingkungan Pengujian Lingkungan pengujian perangkat lunak terdiri dari: 1. Komputer server Pada pengujian ini komputer server merupakan komputer dimana perangkat lunak terinstalasi sebagai aplikasi berbasis web yang berfungsi sebagai server web. Berikut spesifikasi komputer server: V-4
a. Prosesor Intel Core 2 T7100 1.80 GHz b. Memori RAM 1GB. c. Kapasitas harddisk 120 GB. d. Antarmuka Jaringan Marvel Yukon 88E8085 Gigabit Ethernet Controller. e. Sistem Operasi Microsoft Windows Vista Ultimate. f. Server Web Apache PHP 2.2.3 g. Basis Data MySQL 5.0.27 2. Komputer klien a. Prosesor Intel Core 2 Duo E4500 2.2 GHz b. Memori RAM 1GB. c. Kapasitas harddisk 200 GB. d. Antarmuka Jaringan Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC dan kabel LAN sepanjang 10 M. e. Sistem Operasi Microsoft Windows XP Service Pack 2. f. Browser
Mozilla Firefox
2.0.0.10
yang dilengkapi
dengan
plug-in
Greasemonkey g. Aplikasi pemantau jaringan WireShark 1.0
5.2.3 Rencana dan Prosedur Pengujian 5.2.3.1 Rencana Pengujian Rencana pengujian dilakukan untuk tiap use case. Rencana pengujian dapat dilihat pada tabel V-4. Tabel V-4 Rencana Pengujian
No Use Case
Pengujian
1
1. User mencoba melihat halaman file dengan memasukkan username dan kunci yang telah terdaftar dalam aplikasi. 2. User mencoba melihat halaman file dengan memasukkan username yang valid tetapi kunci tidak bersesuaian. 3. User mencoba melihat halaman file dengan memasukkan username yang tidak terdaftar dalam aplikasi. 4. Pengecekan kondisi halaman yang ditransmisikan melalui jaringan
Melihat halaman perangkat lunak
V-5
Jenis Pengujian 1. Black Box
Identifikasi RP-1-001
2. Black Box
RP-1-002
3. Black Box
RP-1-003
4. White Box
RP-1-004
No Use Case
Pengujian
2
1. User membuka link file yang valid 2. User membuka link file yang tidak valid 3. User membuka link file yang tidak disediakan oleh situs
Mengunduh perangkat lunak
Jenis Pengujian 1. Black Box 2. Black Box
Identifikasi RP-2-001 RP-2-002
3. Black Box
RP-2-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 Hasil 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 halaman web antara server dengan klien dengan cara mengenkripsi isi HTML hasil server side scripting. Hal itu dibuktikan pada pengujian use case melihat halaman perangkat lunak dimana halaman yang melewati jaringan merupakan data yang terenkripsi.
2
Perangkat lunak mampu menampilkan halaman web pada browser sesuai dengan kondisinya sebelum dienkripsi.
3
Perangkat lunak mengharuskan user memiliki akun yang dikenal oleh aplikasi. Oleh karena itu, sistem terlindungi dari anonymous user yang ingin melihat ataupun mengunduh file. V-6
4
Perangkat lunak mampu mengirimkan file yang ingin diunduh oleh user. User yang ingin mengunduh file sebelumnya harus terdaftar terlebih dahulu.
5
Perangkat lunak terlindung dari penyadapan ketika user meng-klik link untuk mengunduh file karena kunci sesi pada link sudah expired segera setelah sistem menerima request pertama dari authenticated user. Hal ini mengakibatkan penyadap hanya mengetahui link yang sudah expired.
6
Perangkat lunak mampu menangani user yang mencoba mengunduh file yang tidak disediakan aplikasi.
V-7