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 browse file/ 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:
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 browse file 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 browse file 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)
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
Gambar 4.1 Tampilan Form Splash
2. Tampilan Form Utama Enkripsi
Berikut ini adalah gambar form utama enkripsi pada Gambar 4.2
3. Tampilan Form Utama Dekripsi
Berikut ini adalah gambar form utama dekripsi pada Gambar 4.3
4. Tampilan Form Utama Kompresi
Berikut ini adalah gambar form utama kompresi pada Gambar 4.4
Gambar 4.3 Tampilan Form Utama Dekripsi
5. Tampilan Form Utama Dekompresi
Berikut ini adalah gambar form utama dekompresi pada Gambar 4.5
6. Tampilan Form Tentang Penulis
Berikut ini adalah gambar form tentang penulis pada Gambar 4.6
Gambar 4.5 Tampilan Form Utama Dekompresi
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 fungsi-fungsi 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.
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 Normal dan Tidak Normal.
Skenario Sifat Kondisi Awal Hasil yang diinginkan
Browse File
Normal Temukan File teks yang dicari
Direktori file akan terekam kedalam kolom text Tidak
Normal
Tidak ada file teks yang dicari
Tetap pada tombol browse file
* Proses Enkripsi
Normal File teks terenkripsi File teks terenkripsi dan teks didalamnya tidak dapat terbaca Tidak
Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file
Proses Dekripsi
Normal File teks kembali pada teks aslinya/terdekripsi
File teks kembali dapat terbaca Tidak
Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file
** Proses Kompresi
Normal File teks terkompresi Ukuran file menjadi lebih padat/kecil
Tidak Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file
Proses Dekompresi
Normal File teks di dekompresi File teks kembali pada ukuran aslinya
Tidak Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file
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 Hasil yang
diinginkan Hasil Pengujian Status Akhir Browse File Normal Temukan File teks yang dicari
Direktori file akan terekam kedalam kolom text Direktori terekam sukses Tidak Normal
Tidak ada file teks yang dicari
Tetap pada tombol browse file Tetap pada tombol browse file Proses Enkripsi Normal File teks terenkripsi
File teks terenkripsi dan tidak dapat terbaca teks didalamnya File tek terenkripsi sukses Tidak Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file Dapat diulang browse file Proses Dekripsi Normal File teks kembali pada teks aslinya/terdekri psi
File teks kembali dapat terbaca File teks kembali pada teks aslinya sukses Tidak Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file
Dapat diulang browse file
Proses Kompresi
Normal File teks terkompresi
Ukuran file menjadi lebih padat/kecil Ukuran file menjadi padat sukses Tidak Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file Dapat diulang browse file Proses Dekompresi Normal File teks di dekompresi
Ukuran file kembali pada ukuran aslinya
Ukuran file kembali pada ukuran aslinya sukses Tidak Normal
Tidak ada file teks yang dicari
Ulangi pencarian file teks dengan browse file
Dapat diulang browse file
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
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.7 Tampilan File Properties Txt
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
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 browse file.
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