Implementasi merupakan proses transformasi representasi rancangan ke bahasa pemrograman yang dapat dimengerti oleh komputer. Pada bab ini akan dibahas hal-hal 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.
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_ Selection
ListFile.cs Kelas ini digunakan untuk menampil-kan 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, lokasi-nya dan panjang dari file tersebut
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
Operasi
Visibility
(private, public) Implementasi Keterangan
Button1_click private get_password() set_password()
Prosedur ini berfungsi untuk menerima teks yang dimasukan dan menyimpannya kedalam variabel textBox1.Text;
Table 4.3 Implementasi operasi pada kelas FormProses
Nama Operasi
Visibility (private, public)
Implementasi Keterangan
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 ve()
Prosedur ini berfungsi untuk untuk menghapus folder yang sudah terinisialisasi comboBox1_Selection private workingDirectory() Prosedur ini adalah
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
proses_dekripsi();
Prosedur ini berfungsi 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 file-file yang telah dienkripsi
viewProces private viewProces.Update() Prosedur ini berfungsi untuk menampilkan proses yang sedang berjalan, baik proses enkripsi ataupun dekripsi.
Table 4.4 Implementasi operasi pada kelas KryptoManager Nama Operasi Visibility (private, public) Implementasi Keterangan
getKeyFromPassword Public Getbytes() Prosedur ini berfungsi
untuk merubah kata kunci dari password yang telah dimasukkan kedalam bentuk byte
encryptData Public Getbytesfile()
Create Encryptor() Create CryptoStream() Create FileStream() Run rijndaelManaged() Write fileout Delete()
Prosedur proses untuk enkripsi file
decryptData Public Getbytesfile()
Create Decryptor() Create CryptoStream() Create FileStream() Run rijndaelManaged() Write fileout Delete()
Prosedur proses untuk dekripsi file
fireMessage Public EventArgs() Prosedur untuk
menampilan keberhasilan atau tidak dari proses enkripsi/dekripsi yang dilakukan
Tabel 4.5 Implementasi operasi pada kelas InisialisasiFile Nama Operasi Visibility (private, public) Implementasi Keterangan
FileName Public Get_filename()
Set_filename()
Prosedur untuk membaca nama file
FileLength Public Get_fileLength()
Set_filelength()
Prosedur untuk membaca panjang file
FilePosition Public Get_filePosition() Set_filePosition()
Prosedur untuk membaca lokasi file
Tabel 4.6 Implementasi operasi pada kelas ListFileSelection
Nama Operasi
Visibility (private, public)
Implementasi Keterangan
List_file_Selection public Get_object() Prosedur untuk membaca file yang telah dipilih untuk dilakukan proses enkripsi/dekripsi
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.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.
Pada Gambar 4.4, folder yang sudah ditambahkan/diregistrasi, pada menu tabulasi ”Files” nantinya akan ditampilkan tiap file yang berada pada foldernya masing-masing 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.
yang telah dienkripsi.
4 Memastikan program aplikasi dapat memproses file-file yang biasa digunakan sehari-hari (Microsoft Word, Excel, MP3, AVI, Mpeg, dan lain-lain)
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 Proses
enkripsi
Hasil enkripsi Proses Dekripsi
Hasil dekripsi
Test1.txt Berhasil Isi file tidak terbaca
Berhasil Isi file kembali terbaca
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.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 Hasil Pengujian
4. Program aplikasi dapat memproses file-file Microsoft Word, Excel, MP3, AVI, Mpeg.
Berhasil
5. Program aplikasi dapat memproses satu file, lebih dari satu file ataupun seluruh file dalam satu folder untuk dienkripsi
Berhasil
6. Fungsi penambahan file yang akan dienkripsi yang berada di folder lain dapat berjalan dengan baik
7. File yang sudah dienkripsi tidak dapat dibaca dengan program aslinya.
Berhasil
8. Enkripsi terhadap file yang berukuran besar (1 GB) dapat dilakukan dengan baik
Berhasil
9. File yang sudah dienkripsi dapat dikembalikan seperti semula dengan kunci yang benar lewat fungsi dekripsi pada program aplikasi
Berhasil
10. Dekripsi tidak bisa dilakukan jika kata kunci yang dimasukkan salah
Berhasil
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”
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 Besar File setelah enkripsi (byte) Waktu Proses Dekripsi Besar File setelah dekripsi (byte) Txt 238 0ms 256 15ms 238 Docx 164.667 46ms 164.688 62ms 164.667 Ppt 294.400 78ms 294.416 78 ms 294.400 Jpg 1.522.621 375 1.522.640 421ms 1.522.621 mp3 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
4.2.3Analisa 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.