BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Setelah melakukan analisis dan perancangan terhadap aplikasi yang akan dibangun, tahapan selanjutnya adalah implementasi dan pengujian. Untuk mengimplementasikan aplikasi kriptografi menggunakan metode Mars dan kompresi menggunakan algoritma Huffman sesuai dengan analisis dan perancangan, berikut spesifikasi komputer dimana sistem di implementasikan dan diujikan. Pada tahapan implementasi terdapat dua cakupan yaitu spesifikasi kebutuhan sistem yang meliputi perangkat keras (hardware), perangkat lunak (software), implementasi yang meliputi proses pengkodean, desain antarmuka dan hal-hal yang berhubungan dengan pengujian aplikasi. 4.1.1 Implementasi Aplikasi Pada bab ini diterangkan secara rinci mengenai tahapan-tahapan implementasi aplikasi kriptografi menggunakan metode Mars dan kompresi menggunakan algoritma Huffman yang meliputi proses pengkodean, dan bentuk tampilan layar. 4.1.1.1 Pengkodean Pada proses pengkodean aplikasi ini, perlu terlebih dahulu dibuat pemodulan. Modularisasi merupakan pembuatan program berdasarkan modul-
modul. Modul dapat berupa fungsi atau prosedur. Statement yang digunakan penulis untuk modularisasi adalah function. Dalam pemrograman aplikasi kriptografi menggunakan metode Mars dan kompresi menggunakan algoritma Huffman, implementasi dari modularisasi tersebut adalah sebuah function yang dibuat untuk dimasukkan ke dalam perintah enkripsi, dekripsi, kompresi dan dekompresi. Bahasa pemrogramannya adalah sebagai berikut : Public Function enkripsi(text As String, X As Integer, Y As Integer, Z As Integer) As String Dim strtemp As String Dim i As Integer For i = 1 To Len(Text) 'MsgBox Asc(Mid$(Text, i, 1)) If Asc(Mid$(Text, i, 1)) < 128 Then strtemp = Asc(Mid$(Text, i, 1)) + 128 - X + Y - Z Mid$(Text, i, 1) = Chr(strTemp) End If Next i enkripsi = Text End Function Perintah di atas menggunakan function dengan nama enkripsi(), didalamnya terdapat proses perhitungan matematika dan pengulangan variabel untuk merubah teks ke bentuk ASCII yang kemudian dikembalikan ke bentuk karakter yang tidak dapat terbaca. Perintah dibawah ini merupakan kebalikan dari enkripsi yaitu function dekripsi() yang digunakan untuk mengembalikan pada teks aslinya. Public Function dekripsi(text As String, X As Integer, Y As Integer, Z As Integer) As String Dim strtemp As String Dim i As Integer For i = 1 To Len(Text) If Asc(Mid$(Text, i, 1)) > 128 Then strtemp = Asc(Mid$(Text, i, 1)) - 128 + X - Y + Z Mid$(Text, i, 1) = Chr(strTemp) End If Next i dekripsi = Text End Function
Tujuan dilakukannya pemodulan program adalah untuk menghindari penulisan berulang-ulang untuk perintah yang sama dan jika ada perubahan pada perintah - perintahnya, maka hal yang perlu dilakukan adalah hanya dengan merubah isi dari function saja. Penggunaan function enkripsi dan dekripsi tersebut digunakan pada saat pengguna melakukan proses enkripsi atau dekripsi, selain itu terdapat juga sub function dengan nama EncodeFile() yang digunakan untuk pemadatan file/kompresi seperti perintah script sebagai berikut : Public Sub EncodeFile(SourceFile As String, DestFile As String) Dim ByteArray() As Byte Dim Filenr As Integer 'Apabila file tidak ada If (Not FileExist(SourceFile)) Then Err.Raise vbobjecterror, "clscompress.encodefile()", "sumber data tidak ada" End If Filenr = FreeFile Open SourceFile For Binary As #Filenr ReDim ByteArray(0 To LOF(Filenr) - 1) Get #Filenr,, ByteArray() Close #Filenr 'pemadatan file Call EncodeByte(ByteArray(), UBound(ByteArray) + 1) If (FileExist(DestFile)) Then Kill DestFile Open DestFile For Binary As #Filenr Put #Filenr,, ByteArray() Close #Filenr End Sub Pada proses pemadatan/kompresi file, juga terdapat sub function dengan nama DecodeFile() untuk fungsi dekompresi / pengembalian pada ukuran file aslinya, seperti pada perintah script dibawah ini : Public Sub DecodeFile(SourceFile As String, DestFile As String) Dim ByteArray() As Byte
Dim Filenr As Integer 'meyakinkan sumber file ada If (Not FileExist(SourceFile)) Then Err.Raise vbobjecterror, "clscompress.decodefile()", "sumber file tidak ada" End If 'membaca data dari file Filenr = FreeFile Open SourceFile For Binary As #Filenr ReDim ByteArray(0 To LOF(Filenr) - 1) Get #Filenr,, ByteArray() Close #Filenr 'Uncompress data Call DecodeByte(ByteArray(), UBound(ByteArray) + 1) If (FileExist(DestFile)) Then Kill DestFile Open DestFile For Binary As #Filenr Put #Filenr,, ByteArray() Close #Filenr End Sub Sebelum menggunakan tombol enkripsi, dekripsi, kompresi dan dekompresi, pengguna harus membuka file dengan tombol / mencari file yang akan di proses. Perintah/scriptnya adalah sebagai berikut : Dim filelocation As String txtinputenkrip.text = "" txtenkrip.text = "" CommonDialog1.ShowOpen filelocation = CommonDialog1.filename txtnmfile.text = filelocation TestFile$ = CommonDialog1.filename If TestFile$ <> "" Then If Dir(TestFile$) <> "" Then End If End If If Len(Trim(filelocation)) = 0 Then Exit Sub Else Open filelocation For Input As #1 End If Do Until EOF(1) Input #1, Data txtinputenkrip.text = txtinputenkrip.text + Data + vbnewline EOF (1) Loop Close #1 Exit Sub salah: MsgBox "File tidak bisa dibuka!"
Setelah file terpilih maka yang dilakukan secara umum adalah mengaktifkan fungsi-fungsi enkripsi, dekripsi, kompresi dan dekompresi sebagai berikut : 1. Tombol Proses Enkripsi Di bawah ini merupakan Perintah/script yang digunakan untuk mengaktifkan tombol enkripsi. Private Sub cmd_enkrip_click() Dim TextLine$, filename$ Dim FileHandle As Integer Dim FileHandle2 As Integer dekriptxt = "" filename$ = txtnmfile.text If Dir(filename$) = "" Then Exit Sub FileHandle = FreeFile Open filename$ For Input As #FileHandle Do While Not EOF(FileHandle) Line Input #FileHandle, TextLine$ enkriptxt = enkriptxt + enkripsi(textline$, 1, 2, 3) + vbnewline Loop Close #FileHandle Open filename$ For Output As #FileHandle Print #FileHandle, enkriptxt Close #FileHandle txtenkrip.text = enkriptxt MsgBox "Enkrip Berhasil", vbokonly, "Sukses" Exit Sub salah: MsgBox Err.Number End Sub Dari perintah di atas dapat digambarkan bahwa file teks yang dibuka oleh tombol lalu dilakukan enkripsi, mengaktifkan function enkripsi() dengan nilai function enkripsi(text,1,2,3). dimana text merupakan karakter yang akan dienkripsi dan nilai 1,2,3 merupakan nilai key statis untuk dilakukannya enkripsi.
2. Tombol Proses Dekripsi Di bawah ini merupakan Perintah/script yang digunakan untuk mengaktifkan tombol dekripsi. Private Sub cmd_dekrip_click() Dim TextLine$, filename$ Dim FileHandle As Integer Dim FileHandle2 As Integer dekriptxt = "" filename$ = txtnmfile2.text If Dir(filename$) = "" Then Exit Sub FileHandle = FreeFile Open filename$ For Input As #FileHandle Do While Not EOF(FileHandle) Line Input #FileHandle, TextLine$ dekriptxt = dekriptxt + dekripsi(textline$, 1, 2, 3) + vbnewline Loop Close #FileHandle Open filename$ For Output As #FileHandle Print #FileHandle, dekriptxt Close #FileHandle txtoutputdekrip.text = dekriptxt MsgBox "Dekrip Berhasil", vbokonly, "Sukses" Exit Sub salah: MsgBox Err.Number End Sub Dari perintah di atas dapat digambarkan bahwa file teks yang dibuka oleh tombol lalu dilakukan dekripsi, mengaktifkan function dekripsi() dengan nilai function dekripsi(text,1,2,3). dimana text merupakan karakter yang akan didekripsi dan nilai 1,2,3 merupakan nilai key statis untuk dilakukannya dekripsi. 3. Tombol Proses Kompresi Di bawah ini merupakan Perintah/script yang digunakan untuk mengaktifkan tombol kompresi.
Private Sub cmdcompress_click() Dim OldTimer As Single On Error GoTo ErrorHandler OldTimer = Timer Call compress.encodefile(txtnmcompress.text,txtnmdecompress.text) Label2(3).Caption = Timer - OldTimer & " s" Label2(0).Caption = FileLen(txtnmcompress.Text) & " bytes" Label2(1).Caption = FileLen(txtnmdecompress.Text)& " bytes" Label2(2).Caption = Format(Int(Val(Label2(1).Caption) / Val(Label2(0).Caption) * 100), "##,#") & "%" Call MsgBox("Kompresi Berhasil", vbinformation) Exit Sub ErrorHandler: Call MsgBox("Kompresi tidak berhasil." & vbcrlf & vbcrlf & Err.Description, vbexclamation) End Sub Dari perintah/script di atas merupakan perintah/script ketika tombol kompresi dijalankan dengan memanggil nama function compress.encodefile (txtnmcompress.text, txtnmdecompress.text). dimana txtnmcompress.text merupakan file yang akan dikompresi dan txtnmdecompress.text adalah file hasil kompresi. 4. Tombol Proses Dekompresi Di bawah ini merupakan Perintah/script yang digunakan untuk mengaktifkan tombol dekompresi. Private Sub cmddecompress_click() Dim Filenr As Integer Dim OldTimer As Single On Error GoTo ErrorHandler OldTimer = Timer Call compress.decodefile(txtnmcompress2.text,txtnmdecompress2.text) Label2(9).Caption = Timer - OldTimer & " s" Label2(6).Caption = FileLen(txtnmcompress2.Text) & " bytes" Label2(7).Caption = FileLen(txtnmdecompress2.Text) & " bytes" Label2(8).Caption = Int(Val(Label2(7).Caption) / Val(Label2(6).Caption) * 100) & "%" Call MsgBox("dekompresi berhasil.", vbinformation) Exit Sub ErrorHandler: Call MsgBox("dekompresi tidak berhasil." & vbcrlf & vbcrlf & Err.Description, vbexclamation) End Sub
Dari perintah/script di atas merupakan perintah/script ketika tombol dekompresi aktif dengan memanggil nama function compress.decodefile (txtnmcompress2.text,txtnmdecompress2.tex). dimana txtnmcompress2.text merupakan file yang akan didekompresi dan txtnmdecompress2.text adalah file hasil dekompresi. 4.1.1.2 Tampilan Layar Tampilan layar merupakan tampilan yang akan digunakan oleh pengguna sehingga dapat dirasakan manfaatnya. Beberapa tampilannya adalah sebagai berikut : 1. Tampilan Form Splash Berikut ini adalah gambar form splash pada Gambar 4.1 2. Tampilan Form Utama Enkripsi Gambar 4.1 Tampilan Form Splash Berikut ini adalah gambar form utama enkripsi pada Gambar 4.2 Gambar 4.2 Tampilan Form Utama Enkripsi
3. Tampilan Form Utama Dekripsi Berikut ini adalah gambar form utama dekripsi pada Gambar 4.3 Gambar 4.3 Tampilan Form Utama Dekripsi 4. Tampilan Form Utama Kompresi Berikut ini adalah gambar form utama kompresi pada Gambar 4.4 Gambar 4.4 Tampilan Form Utama Kompresi
5. Tampilan Form Utama Dekompresi Berikut ini adalah gambar form utama dekompresi pada Gambar 4.5 Gambar 4.5 Tampilan Form Utama Dekompresi 6. Tampilan Form Tentang Penulis Berikut ini adalah gambar form tentang penulis pada Gambar 4.6 Gambar 4.6 Tampilan Form Tentang Penulis
4.2 Pengujian Dalam perancangan sistem perlu dilakukan pengujian sistem sebagai verifikasi atas sistem yang telah dirancang. Verifikasi dilakukan untuk mengetahui kemungkinan terjadinya kesalahan dan untuk memastikan fungsifungsi yang terdapat dalam modul modul sistem berjalan dengan baik. Tahapan pengujian ini meliputi skenario pengujian, hasil pengujian, dan analisis hasil pengujian. 4.2.1 Lingkup Pengujian Berikut ini merupakan spesifikasi kebutuhan sistem, dimana sistem dibuat dan dijalankan. 1. Perangkat keras (hardware): a. Prosesor Intel Pentium IV 1.80 GHz b. RAM 512 MB c. Harddisk 2. Perangkat lunak (software): a. Visual Basic 6.0 merupakan bahasa pemrograman yang digunakan untuk pengembangan dan implementasi sistem aplikasi kriptografi metode MARS dan kompresi data Huffman. b. Windows XP Proffesional Service Pack 3 sebagai sistem operasi.
4.2.2 Skenario Pengujian Sebelum pengujian sistem aplikasi kriptografi menggunakan metode Mars dan kompresi menggunakan algoritma Huffman akan dijelaskan pada Tabel 4.1 tentang skenario normal dan tidak normal yang terjadi. Skenario yang dijelaskan antara lain skenario Browse File, Proses Enkripsi, Dekripsi, Kompresi dan Dekompresi. Tabel 4.1 Skenario dan Tidak. Skenario Sifat Kondisi Awal Hasil yang diinginkan Browse Temukan File teks yang dicari Direktori file akan terekam kedalam kolom text File Tidak Tidak ada file teks yang dicari Tetap pada tombol * Proses Enkripsi Proses Dekripsi ** Proses Kompresi Proses Dekompresi File teks terenkripsi File teks terenkripsi dan teks didalamnya tidak dapat terbaca Tidak Tidak ada file teks yang dicari Ulangi pencarian file teks dengan File teks kembali pada File teks kembali dapat terbaca teks aslinya/terdekripsi Tidak Tidak ada file teks yang Ulangi pencarian file teks dengan dicari File teks terkompresi Ukuran file menjadi lebih padat/kecil Tidak Tidak ada file teks yang Ulangi pencarian file teks dengan dicari File teks di dekompresi File teks kembali pada ukuran aslinya Tidak Tidak ada file teks yang Ulangi pencarian file teks dengan dicari 4.2.3 Hasil Pengujian Pada Tabel 4.2 akan dijelaskan hasil pengujian dari skenario Browse File, Proses Enkripsi, Dekripsi, Kompresi dan Dekompresi. * Enkripsi file text selain *.txt, misalnya *.cpp, *.c, *.pas, *.bas ** Kompresi file text selain *.txt, misalnya *.cpp, *.c, *.pas, *.bas
Tabel 4.2 Hasil Pengujian. Skenario Sifat Kondisi Awal Browse File Proses Enkripsi Proses Dekripsi Proses Kompresi Proses Dekompresi Tidak Tidak Tidak Tidak Tidak Temukan File teks yang dicari Tidak ada file teks yang dicari File teks terenkripsi Tidak ada file teks yang dicari File teks kembali pada teks aslinya/terdekri psi Tidak ada file teks yang dicari File teks terkompresi Tidak ada file teks yang dicari File teks di dekompresi Tidak ada file teks yang dicari Hasil yang diinginkan Direktori file akan terekam kedalam kolom text Tetap pada tombol File teks terenkripsi dan tidak dapat terbaca teks didalamnya Ulangi pencarian file teks dengan browse file File teks kembali dapat terbaca Ulangi pencarian file teks dengan browse file Ukuran file menjadi lebih padat/kecil Ulangi pencarian file teks dengan browse file Ukuran file kembali pada ukuran aslinya Ulangi pencarian file teks dengan browse file Hasil Pengujian Direktori terekam Tetap pada tombol browse file File tek terenkripsi Dapat diulang File teks kembali pada teks aslinya Dapat diulang Ukuran file menjadi padat Dapat diulang Ukuran file kembali pada ukuran aslinya Dapat diulang Status Akhir sukses sukses sukses sukses sukses Tabel 4.3 Pengukuran Rasio dan Lama Waktu Proses. No Nama File Text Ukuran File (kb) Setelah Enkripsi (kb) Setelah Kompresi (kb) Rasio Waktu 1 Tes.txt 3,05 kb 3,05 kb 1,73 kb 57 % 0,031 dtk 2 Tes.cpp 2,53 kb 2,53 kb 1,45 kb 57 % 0,015 dtk 3 Tes.c 3,79 kb 3,79 kb 2,11 kb 55 % 0,015 dtk 4 Tes.bas 4,15 kb 4,15 kb 2,30 kb 55 % 0,015 dtk 5 Tes.pas 5,79 kb 5,79 kb 3,16 kb 54 % 0,046 dtk Rata - Rata 56 % 0,024 dtk
Berikut ini merupakan tampilan hasil analisis tabel 4.3 dengan contoh nama file dengan nama tes.txt Gambar 4.7 Tampilan File Properties Txt Klik kanan pada file tes.txt kemudian pilih menu properties, maka akan didapati ukuran file sebesar 3,05 kb. Begitu juga sama ketika file dilakukan proses enkripsi dengan ukuran yang sama. Namun berbeda hasilnya ketika file tersebut dilakukan kompresi, maka hasil ukuran filenya akan mengecil dengan ukuran 1,73 kb seperti tampilan berikut ini. Gambar 4.8 Tampilan File Properties Kompresi
Setelah mendapatkan nilai dari ukuran file teks sebelum di kompresi dan setelah dikompresi dalam bentuk file *.zip, maka untuk mendapatkan nilai rasio dapat dilakukan perhitungan dengan software microsoft excell seperti pada Gambar 4.9 Gambar 4.9 Tampilan File Properties Rasio
4.2.4 Analisis Hasil Pengujian Setelah tahap pengujian maka dapat dianalisa bahwa: 1. Browse file berjalan dengan baik, karena file teks yang dicari dapat direkam kedalam kolom text, dan apabila tidak diketemukan file teks maka dapat diulangi proses pencarian dengan tombol. 2. Proses enkripsi dan dekripsi berjalan dengan baik, ketika dilakukan pengujian proses enkripsi maka file teks akan terenkripsi dan tidak dapat terbaca. Begitu juga sebaliknya ketika di dekripsi, maka file kembali ke file teks aslinya. 3. Proses Kompresi dan Dekompresi juga berjalan dengan baik, ketika proses dilakukan ukuran file menjadi lebih padat dan sebaliknya kembali kepada ukuran semula ketika dilakukan dekompresi. 4. File text selain *.txt yang diuji (*.cpp, *.c, *.pas, *.bas) berhasil di enkripsi karena file tersebut masih tergolong file text 5. File text selain *.txt yang diuji (*.cpp, *.c, *.pas, *.bas) berhasil di kompresi karena file tersebut dapat di konversi kedalam angka-angka biner untuk dilakukan pemadatan file. 6. Rata - rata hasil rasio hasil kompresi dari file text yang telah diuji adalah 56%. 7. Rata - rata lama waktu proses kompresi dari file text yang telah diuji adalah 0,024 detik.