BAB IV IMPLEMENTASI DAN PENGUJIAN
Implementasi merupakan proses transformasi representasi rancangan ke bahasa pemrograman yang dapat dimengerti oleh komputer. Pada bab ini akan dibahas halhal yang berkaitan dengan implementasi sistem enkripsi dan dekripsi file.
4.1 LINGKUNGAN IMPLEMENTASI Lingkungan implementasi yang akan dipaparkan disini meliputi lingkungan perangkat keras dan lingkungan perangkat lunak.
4.1.1 Lingkungan Perangkat Keras Perangkat keras yang digunakan dalam pengembangan sistem enkripsi ini adalah sebagai berikut : 1. Laptop IBM Thinkpad dengan Prosesor Intel Pentium 4, 1.7.6 GHz 2. RAM 1024 MB 3. HardDisk dengan kapasitas 80 GB 4. VGA Ati Radeon 32mb
4.1.2 Lingkungan Perangkat Lunak Perangkat lunak yang dibutuhkan dalam pembangunan aplikasi ini antara lain file ini adalah : 1. Sistem Operasi Windows 7 Profesional 2. Visual C# - Microsoft Visual Studio 2010 Ultimate 3. DotNet Frame Network versi 4.
4.1.3 Batasan Implementasi Aplikasi yang dibangun disini memiliki batasan sebagai berikut : 1. Ukuran satu file yang dienkripsi tidak lebih dari 2 gigabyte. 2. Iterasi proses enkripsi hanya dapat dilakukan satu kali pada tiap file yang akan dienkripsi.
73
74
4.1.4 Implementasi Kelas Pada Tabel berikut dapat dilihat daftar implementasi dari kelas-kelas yang telah kita rancang pada bagian sebelumnya. Penjelasan dari kelas-kelas tersebut dapat dilihat pada Tabel di bawah ini.
Tabel 4.1 Daftar Implementasi Kelas Nama Kelas
Nama File
Keterangan
FormPassword
Form_Password.cs
Kelas ini berfungsi sebagai jembatan antar muka dalam memasukkan kata kunci yang akan digunakan untuk proses enkripsi atau dekripsi
FormProses
Form_Proses.cs
Kelas ini berfungsi sebagai tempat dimana proses dari aplikasi yang dibuat dipilih untuk dijalankan baik itu proses
enkripsi,
proses
dekripsi,
peregistrian folder, dan pemilihan file dilakukan
KryptoManager
CryptoManager.cs
Kelas ini adalah inti dari aplikasi program yang dibuat. Input yang diberikan
akan
diproses
menjadi
output. Algoritma Rijndael enkripsi beserta pembentukan kunci internal akan diimplementasikan pada kelas ini. List_File_
ListFile.cs
Selection
Kelas ini digunakan untuk menampilkan isi file dari suatu folder yang dipilih dan memilih file yang akan dienkripsi atau didekripsi.
Insialisasi_file
IntialFile.cs
Pada kelas ini akan diinisialisasi nama dari file yang akan dienkripsi, lokasinya dan panjang dari file tersebut
75
4.1.5. Implementasi Operasi pada Kelas Daftar implementasi operasi yang ada dalam kelas dapat dilihat dalam Tabel-Tabel berikut ini. Table 4.2 Implementasi operasi pada kelas FormPassword Nama
Visibility
Operasi
(private, public)
Button1_click
private
Implementasi
Keterangan
get_password()
Prosedur ini berfungsi
set_password()
untuk menerima teks yang dimasukan dan menyimpannya kedalam variabel textBox1.Text;
Table 4.3 Implementasi operasi pada kelas FormProses Visibility Nama Operasi
(private,
Implementasi
Keterangan
public) btnAddDir_click
private
lbFolders.Items.Add() Prosedur ini berfungsi untuk menginisialisasi folder tempat file berada. Jika folder lain akan dimasukkan, kita dapat menambahkannya lewat operasi ini.
btnRemoveDir_click
private
lbFolders.Items.Remo Prosedur ini berfungsi ve()
untuk untuk menghapus folder yang sudah terinisialisasi
comboBox1_Selection private
workingDirectory()
Prosedur ini adalah
76
pengejawantahan dari operasi btnAddDir_click. Dimana folder-folder yang telah ditambahkan dapat dipilih untuk seleksi file yang akan diproses. listView1
private
listView1.Sort()
Prosedur ini berfungsi untuk menampilkan isi file dari folder yang telah dipilih lewat operasi comboBox1_selection.
btnLeft_click
private
Call proses_enkripsi()
Prosedur ini berfungsi sebagai triger proses enkripsi file dari file-file yang sudah dipilih dengan memanggil operasi proses_enkripsi
btnRight_click
private
Call
Prosedur ini berfungsi
proses_dekripsi();
sebagai triger proses dekripsi file dari file-file yang sudah dipilih dengan memanggil operasi proses_dekripsi
listView2
private
listView2.Sort()
Prosedur ini berfungsi untuk menampilkan filefile yang telah dienkripsi
viewProces
private
viewProces.Update()
Prosedur ini berfungsi untuk menampilkan proses yang sedang berjalan, baik proses enkripsi ataupun dekripsi.
77
Table 4.4 Implementasi operasi pada kelas KryptoManager Visibility Nama Operasi
(private,
Implementasi
Keterangan
public) getKeyFromPassword
Public
Getbytes()
Prosedur ini berfungsi untuk merubah kata kunci dari password yang telah dimasukkan kedalam bentuk byte
encryptData
Public
Getbytesfile()
Prosedur proses untuk
Create Encryptor()
enkripsi file
Create CryptoStream() Create FileStream() Run rijndaelManaged() Write fileout Delete()
decryptData
Public
Getbytesfile()
Prosedur proses untuk
Create Decryptor()
dekripsi file
Create CryptoStream() Create FileStream() Run rijndaelManaged() Write fileout Delete()
fireMessage
Public
EventArgs()
Prosedur untuk menampilan keberhasilan atau tidak dari proses enkripsi/dekripsi yang dilakukan
78
Tabel 4.5 Implementasi operasi pada kelas InisialisasiFile Visibility Nama Operasi
(private,
Implementasi
Keterangan
public) FileName
Public
FileLength
Public
FilePosition
Public
Get_filename()
Prosedur untuk membaca
Set_filename()
nama file
Get_fileLength()
Prosedur untuk membaca
Set_filelength()
panjang file
Get_filePosition()
Prosedur untuk membaca
Set_filePosition()
lokasi file
Tabel 4.6 Implementasi operasi pada kelas ListFileSelection Visibility Nama Operasi
(private,
Implementasi
Keterangan
public) List_file_Selection
public
Get_object()
Prosedur untuk membaca file yang telah dipilih untuk dilakukan proses enkripsi/dekripsi
79
4.1.5. Implementasi Antar Muka
Gambar 4.1 Tampilan awal saat program dijalanan
Pada saat pertama kali program dijalankan antar muka seperti pada gambar 4.1 akan tampak dilayar monitor, dimana program aplikasi meminta user memasukkan kata kunci yang akan digunakan untuk mengenkripsi atau mendekripsi file. Ketika pengguna sudah memasukkan kata kunci dan menekan tombol ”OK” maka program akan memberitahukan bahwa folder tempat file-file yang akan dienkripsi/didekripsi belum di pilih seperti tampak pada gambar 4.2 dibawah ini.
Gambar 4.2 Tampilan pemberitahuan inisialisasi folder
80
Gambar 4.3 Tampilan penambahan folder Pada gambar 4.3 diatas terlihat bahwa belum ada folder yang teregistrasi. User harus menambahkan folder dengan menekan tombol ”Tambah Folder” yang berada pada kiri bawah antar muka.
Gambar 4.4 Tampilan proses siap dilakukan
81
Pada Gambar 4.4, folder yang sudah ditambahkan/diregistrasi, pada menu tabulasi ”Files” nantinya akan ditampilkan tiap file yang berada pada foldernya masingmasing pada kolom ”File Original”. Dimana kita juga bisa memilih satu atau sebagian atau seluruh file yang akan diproses untuk dienkripsi. Setelah kita menekan tombol ”Enkripsi”, file-file yang telah kita pilih untuk diproses akan berpindah ke kolom ”File Terenkripsi”. Pada bagian bawah, juga akan ditampilkan indikator dari proses yang berjalan, yang akan menampilkan lokasi file, ukuran file dan waktu yang diperlukan untuk proses enkripsi dari tiap-tiap file tersebut.
4.2 PENGUJIAN APLIKASI Pengujian aplikasi ini kita bagi menjadi dua bagian. Pengujian pertama adalah pengujian terhadap input, proses dan output dari enkripsi/dekripsi. Sedangkan pengujian kedua dilakukan untuk mengukur performansi dari aplikasi ini.
4.2.1
Pengujian proses enkripsi dan dekripsi Pengujian ditujukan untuk melihat fungsi-fungsi yang ada pada program
aplikasi berjalan dengan benar dan juga untuk melihat keberhasilan output dari proses yang dilakukan. Pengujian ini dilakukan pada komputer dengan spesifikasi seperti yang telah disebutkan pada bagian diatas. Pada Table 4.7 dapat dilihat beberapa jenis pengujian yang dilakukan.
Tabel 4.7 Daftar Pengujian Aplikasi No.
Jenis Pengujian
1 Memastikan enkripsi yang dilakukan terhadap file plain text file sederhana berjalan baik dan benar. 2 Memastikan hasil enkripsi yang dilakukan terhadap file plain text sederhana tidak dapat dimengerti isinya. 3 Memastikan proses dekripsi berjalan dengan benar terhadap file plain text
82
yang telah dienkripsi. 4 Memastikan program aplikasi dapat memproses file-file yang biasa digunakan sehari-hari (Microsoft Word, Excel, MP3, AVI, Mpeg, dan lainlain) 5 Memastikan program aplikasi dapat memproses satu file, lebih dari satu file ataupun seluruh file dalam satu folder untuk dienkripsi 6 Memastikan fungsi penambahan file yang akan dienkripsi yang berada di folder lain dapat berjalan dengan baik 7 Memastikan file yang sudah dienkripsi tidak dapat dibaca dengan program aslinya. 8 Memastikan enkripsi yang dilakukan terhadap file yang berukuran besar (1 GB) dapat dilakukan dengan baik 9 Memastikan file yang sudah dienkripsi dapat dikembalikan seperti semula dengan kunci yang benar lewat fungsi dekripsi pada program aplikasi 10 Memastikan proses dekripsi hanya bisa dilakukan jika kata kunci yang digunakan adalah benar
Hasil pengujian nomer 1, 2 dan 3 menggunakan kata kunci ”mercubuana123456” dapat dilihat pada Tabel 4.8 dibawah ini.
Tabel 4.8 Hasil enkripsi dan dekripsi file sederhana File Test1.txt
Proses enkripsi Berhasil
Hasil enkripsi Isi file tidak terbaca
Proses Hasil dekripsi Dekripsi Berhasil Isi file kembali terbaca
83
Gambar 4.5 File Test1.txt asli
Pada Gambar 4.5 dapat dilihat isi dari Test1.txt dibuka dengan program notepad. Dan pada Gambar 4.6 file yang sama dibuka dengan program Grovy Hex Editor, yang dapat menampilkan isi dalam bentuk teks dan dalam bentuk heksadesimal.
Gambar 4.6 File Test1.txt dibuka dengan hex editor
84
Gambar 4.7 File Test1.txt.enk terenkripsi dibuka dengan hex editor
Setelah proses enkripsi dilakukan kita dapat melihat seperti pada Gambar 4.7 bahwa isi file dalam bentuk text sudah berubah menjadi karakter-karakter yang tidak beraturan yang sukar dimengerti.
Hasil tes terhadap pengujian no. 4,5,6,7,8,9 dan 10 dapat dilihat pada Tabel 4.9 dibawah ini. Tabel 4.9 Pengujian lanjutan terhadap aplikasi No. Pengujian 4.
Program aplikasi dapat memproses file-file Microsoft
Hasil Pengujian Berhasil
Word, Excel, MP3, AVI, Mpeg. 5.
Program aplikasi dapat memproses satu file, lebih dari
Berhasil
satu file ataupun seluruh file dalam satu folder untuk dienkripsi 6.
Fungsi penambahan file yang akan dienkripsi yang berada di folder lain dapat berjalan dengan baik
Berhasil
85
7.
File yang sudah dienkripsi tidak dapat dibaca dengan
Berhasil
program aslinya. 8.
Enkripsi terhadap file yang berukuran besar (1 GB)
Berhasil
dapat dilakukan dengan baik 9.
File yang sudah dienkripsi dapat dikembalikan seperti
Berhasil
semula dengan kunci yang benar lewat fungsi dekripsi pada program aplikasi 10.
Dekripsi tidak bisa dilakukan jika kata kunci yang
Berhasil
dimasukkan salah
4.2.2 Pengujian performansi aplikasi Pada bagian ini pengujian dilakukan untuk melihat waktu yang diperlukan dalam melakukan proses enkripsi (Gambar 3.8) dan proses dekripsi (Gambar 3.9) dengan melihat ukuran dari file sebelum enkripsi, sesudah enkripsi. Password yang digunakan adalah ”mercubuana123456”
Gambar 4.8. Proses Enkripsi File
86
Pada Gambar 4.8 dan Gambar 4.9 dapat dilihat bahwa program berjalan sesuai dengan apa yang diharapkan, yaitu dapat mengenkripsi lebih dari satu file sekaligus secara berurutan.
Gambar 4.9. Proses Dekripsi File
Tabel 4.10 Pengujian performansi dari aplikasi Jenis File
Besar File asli (byte)
Waktu Proses Enkripsi
Txt Docx
238 164.667
0ms 46ms
Besar File setelah enkripsi (byte) 256 164.688
Ppt
294.400
78ms
Jpg
1.522.621
mp3
Waktu Proses Dekripsi
Besar File setelah dekripsi (byte)
15ms 62ms
238 164.667
294.416
78 ms
294.400
375
1.522.640
421ms
1.522.621
8.864.957
2 dtk:171ms
8.864.976
2 dtk:281ms
8.864.957
Pdf
82.820.696
9 dtk:203ms
82.820.720
21dtk:109ms
82.820.696
Iso
82.820.696
87
4.2.3 Analisa Hasil Pengujian Dari pengujian beberapa proses yang telah dilakukan, dapat ditarik analisa sebagai berikut : - Analisa proses enkripsi dan dekripsi Dari Tabel 4.8 dengan menggunakan file plaintext sederhana dapat dilihat bahwa proses enkripsi maupun dekripsi rijndael berjalan dengan semestinya sehingga tujuan dari pengamanan file dengan membentuk ciphertext dari suatu file telah tercapai. - Analisa proses pembacaan file Dari beberapa skenario yang dicoba seperti diulas pada Tabel 4.9, program tidak mengalami kesulitan untuk membaca berbagai jenis file guna dilakukan proses enkripsi. - Analisa waktu proses secara umum Sedangkan dari waktu yang diperlukan untuk melakukan proses enkripsi untuk katagori file ukuran kurang dari 100 megabyte tergolong singkat yaitu kurang dari 1 menit walaupun menggunakan konfigurasi perangkat keras yang tergolong katagori low end saat ini. - Analisa perbandingan waktu enkripsi dan dekripsi Dari pengujian yang ditampilkan pada Tabel 4.10 terlihat bahwa waktu dekripsi cenderung lebih besar sedikit dibandingkan dengan waktu enkripsi. Hal ini dimungkinkan karena pada proses dekripsi penggunaan roundkey dimulai dengan roundkey #10, sedangkan proses pembentuan roundkey melewati fase 1 sampai 10 terlebih dahulu. - Analisa besar file Dari sisi ukuran file dapat dilihat bahwa ukuran file dari file yang sudah dienkripsi akan bertambah tapi tidak jauh berbeda dengan file aslinya. Sedangkan pada proses dekripsi, ukuran file akan berkurang dan akan kembali ke ukuran file aslinya seperti dipaparkan sebelumnya pada bab II dalam rumusan dasar matematik untuk enkrisi/dekripsi, yaitu E(P) = C dan D(C) = P. - Perbedaan ukuran file setelah enkripsi, dimana pada contoh menggunakan kata kunci yang panjangnya 16 byte, kemungkinan besar dikarenakan faktor dari teknik kompresi (codec) dari masing-masing jenis file. - Enkripsi gagal dilakukan pada file yang berukuran 2 gigabyte.