Analisis Kombinasi Algoritma Knapsack Dan Rle Pada File Teks
ANALISIS KOMBINASI ALGORITMA KNAPSACK DAN RLE
PADA FILE TEKS
SKRIPSI
NAMIRA LISTYA UTAMI TANJUNG
081401093
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013
(2)
ANALISIS KOMBINASI ALGORITMA KNAPSACK DAN RLE PADA FILE TEKS
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
NAMIRA LISTYA UTAMI TANJUNG 081401093
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2013
(3)
PERSETUJUAN
Judul : ANALISIS KOMBINASI ALGORITMA KNAPSACK
DAN RLE PADA FILE TEKS
Kategori : SKRIPSI
Nama : NAMIRA LISTYA UTAMI TANJUNG
Nomor Induk Mahasiswa : 081401093
Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 22 Agustus 2013
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Syahril Efendi, S.Si, MIT M. Andri Budiman S.T., M.Comp.Sc., M.E.M. NIP. 196711101996021001 NIP. 197510082008011001
Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991021001
(4)
PERNYATAAN
ANALISIS KOMBINASI ALGORITMA KNAPSACK DAN RLE
PADA FILE TEKS
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Agustus 2013
NAMIRA LISTYA UTAMI TANJUNG 081401093
(5)
PENGHARGAAN
Puji dan syukur penulis ucapkan kehadirat Allah SWT atas segala rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul ” Analisis Kombinasi Algoritma Knapsack Dan Rle Pada File Teks”. Skripsi ini merupakan salah satu syarat yang ditetapkan untuk memperoleh gelar sarjana komputer di Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, shalawat beriring salam penulis persembahkan kepada Nabi Besar Muhammad SAW.
Pada kesempatan kali ini penulis ingin mengucapkan terima kasih kepada semua pihak yang telah membantu penulis selama pengerjaan skripsi ini, antara lain kepada :
1. Rektor USU Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc (CTM), Sp.A(K).
2. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Departemen Ilmu Komputer, Fakultas Ilmu komputer dan Teknologi Informasi, Universitas Sumatera Utara dan sebagai dosen penguji dan pembanding I.
4. Ibu Maya Silvi Lydia, BSc,.MSc selaku sekretaris Departemen Ilmu Komputer Fakultas Ilmu komputer dan Teknologi Informasi, Universitas Sumatera Utara. 5. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM dan bapak Syahril Efendi,
S.Si, MIT selaku dosen pembimbing.
6. Bapak Ade Chandra, ST, M.Kom selaku dosen pembanding.
7. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
8. Seluruh dosen Departemen Ilmu Komputer, Fakultas Ilmu komputer dan Teknologi Informasi, Universitas Sumatera Utara yang telah membimbing dan mencurahkan ilmunya selama masa perkuliahan.
9. Seluruh pegawai di lingkungan Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
10. Kedua orang tua tercinta, Ayahanda H.M. Bustami Tanjung dan ibunda H. Ummi Salamah Lubis atas kasih sayang, do’a, dukungan dan motivasi yang tak ternilai harganya.
11. Ketiga adinda Dhabitah Amalina Utami Tanjung, M.Raja’a Fawwaz Tanjung, dan M. Rafiuddin Tanjung yang selalu memberi semangat dan do’anya.
(6)
12. Keluarga besar S1 Ilmu Komputer, khususnya angkatan 2008 yang telah banyak memberi dukungan, masukan, dan kerjasama yang baik.
13. Dira Fahrendy Sembiring yang telah memberi semangat, bimbingan dan serta doanya.
14. Terkhusus ParkirRanger Saria Mahdi Ginting, S.kom, Nurul Faradhilla, S.Kom , Khairunisa Lubis, Skom, Octi Fadhilla Khair, S.Kom. Gustaf Prameswara, S.Kom. Setyo M. Syamsudin Noor, S.Kom, Nanang Tri Bhuana, S.Kom, Nasan Siregar, S.Kom, Marthin F.P, serta teman-teman dilingkungan kampus yang tidak bisa disebutkan satu-persatu yang telah memberikan dukungan yang begitu membekas dihati.
15. Guru-guru dari SD Kemala Bhayangkari 1 Medan, SMPN 15 Medan dan SMAN 14 Medan untuk ilmu yang telah diberikan.
16. Semua pihak yang terlibat langsung ataupun tidak langsung dalam membantu penyelesaian skripsi ini dan tidak dapat penulis ucapkan satu persatu.
Tak ada gading yang tidak retak, demikian juga halnya dengan skripsi ini. Kritik dan saran yang membangun sangat penulis harapkan. Semoga skripsi ini bisa memberikan manfaat bagi pembaca penulis sendiri, amin.
Medan, Agustus 2013
(7)
ABSTRAK
Algoritma Knapsack merupakan bagian dari kriptografi asimetri yang mana kunci enkripsinya berbeda dengan kunci dekripsinya. Di samping masalah keamanan file teks, masalah ukuran dari sebuah file teks juga menjadi pertimbangan. File teks yang berukuran besar dapat dimampatkan dengan melakukan proses kompresi. Algoritma
Run Length Encoding (RLE) merupakan algoritma yang mengecilkan ukuran file teks,
apabila teks tersebut mengalami banyak perulangan karakter. Kombinasi algoritma Knapsack dan RLE dapat menjamin file Teks tidak dapat dilihat oleh pengguna yang tidak berhak dan dapat menjamin file teks dapat disimpan dalam media file yang berkapasitas rendah. Pada penelitian ini, penulis membuat program kombinasi algortitma knapsack dan RLE pada file teks. Pada algoritma Knapsack akan terjadi penambahan ukuran file teks, hal ini dapat dilihat pada contoh kasus yang mana ukuran plainteks (pesan asli) adalah 9 bytes, kemudian setelah dilakukan proses enkripsi ukuran file teks menjadi 37 bytes. Pada algoritma kompresi RLE terjadi pengurangan ukuran sebagai contoh kasus cipherteks (pesan yang disamarkan) yang awalnya berukuran 37 bytes setelah dilakukan proses kompresi ukurannya menjadi 7 bytes. Proses kombinasi dapat dilakukan sebaliknya, yaitu kompresi teks terlebih dahulu kemudian enkripsi teks tersebut, masih dengan plainteks yang sama beukuran 9 bytes, setelah dilakukan kompresi ukuran file menjadi 2 bytes. Kemudian dilakukan enkripsi ukuran file menjadi 9 bytes. Karena itu pengunaan kombinasi enkripsi dan kompresi data lebih baik karena file menjadi lebih kecil dibandingkan kombinasi kompresi dan enkripsi data. Plainteks yang memiliki banyak perulangan karakter akan terkompresi dengan baik.
(8)
ANALYSIS COMBINATION KNAPSACK ALGORITHM AND RLE FOR TEXT FILE
ABSTRACT
Knapsack algorithm is part of the asymmetric cryptography which the encryption key is different from the decryption key. Apart from safety, the size of the file is also measure and the file may be compressed further. Run Length Encoding (RLE) algorithm is an algorithm that shrink the size of the text file, if and only if the text has a lot of looping of character. Combination of Knapsack and RLE algorithm can guarantee that text files may not be seen by unauthorized users and to ensure the text file may be stored in a low-capacity media file. In this paper, writer makes a combination program of Knapsack and RLE for text files. Sometimes Knapsack algorithm may add the size of the text file, it can be seen in the case where the size of the plaintext is only 9 bytes, then after the encryption process the text file size becoming 37 bytes. In the RLE compression algorithm happen size reduction as an example the case of the ciphertext which initially measuring 37 bytes after compression process the size becoming 7 bytes. Combination process can be done otherwise, the text compression first and then the encrypting text, still with the same plaintext measuring 9 bytes, after the compressed file size to 2 bytes. Then do the encryption of the file size to 9 bytes. There for using a combination of encryption and file compression are better because it is smaller than a combination of compression and file encryption. The plaintext who has a lot of looping of character will be compressed correctly.
(9)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Bab 1 Pendahuluan 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 3
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 5
Bab 2 Landasan Teori 6
2.1. Kriptografi 6
2.1.1 Pengertian Kriptografi 6
2.1.2 Enkripsi dan Dekripsi 7
2.1.3 Jenis Kriptografi 8
2.2. Algoritma Knapsack 10
2.3. Teori Dasar Kompresi 14
2.3.1 Kompresi data 14
2.3.2 Dekompresi data 16
2.4. Run Length Encoding 17
Bab 3 Analisis dan Perancangan Sistem 19
3.1. Analisis Sistem 19
3.1.1 Analisis Masalah 19
3.2 Analisis Persyaratan 20
3.2.1 Analisis Persyaratan Fungsional 21 3.2.2 Analisis Persyaratan Non-Fungsional 21
(10)
3.3.1 Pemodelan Persyaratan Sistem Use Case 22
3.3.2 Activity Diagram 26
3.3.3 Sequence Diagram 31
3.3.4 Perancangan Flowchart Sistem 34 3.3.4.1 Flowchart Proses Algoritma Knapsack 34 3.3.4.2 Flowchart Proses Algoritma RLE 36 3.3.4.3 Flowchart Proses Algoritma Kombinasi 37
3.4 Perancangan Antar Muka 40
3.4.1 Perancangan Form Beranda 41 3.4.2 Perancangan Form Menu 41
Bab 4 Implementasi dan Pengujian 45
4.1. Implementasi Sistem 45
4.1.1. Proses Tahapan Algoritma Knapsack dan RLE 45 4.1.1.1 Proses Bangkit Kunci 45 4.1.1.2 Proses Kompresi dan Enkripsi 47 4.1.1.3 Proses Enkripsi dan Kompresi 50
4.1.2. Tampilan Antarmuka Sistem 51
4.1.1.1.Tampilan Form Beranda 51 4.1.1.2.Tampilan Form Menu 52 4.1.1.3.Tampilan Form Tentang 52 4.1.1.4.Tampilan Form Bantuan 53
4.2 Pengujian 54
4.2.1 Pengujian Kompresi 54
4.2.2 Pengujian Dekompresi 55
4.2.3 Pengujian Bangkit Kunci 56
4.2.4 Pengujian Enkripsi 57
4.2.5 Pengujian Dekripsi 58
4.2.6 Pengujian Kombinasi Algoritma Knapsack dan RLE 59 4.2.7 Pengujian Dekripsi dan Dekompresi 61 4.2.8 Pengujian Dekompresi dan Dekripsi 63
4.2.9 Hasil Pengujian 64
Bab V Kesimpulan dan Saran 66
5.1. Kesimpulan 66
5.2. Saran 67
Daftar Pustaka 68
(11)
DAFTAR TABEL
Halaman 3.1
3.2 3.3 3.4 3.5 3.6 4.1 4.2
Spesifikasi Use Case Kompresi Spesifikasi Use Case Dekompresi Spesifikasi Use Case Bangkit Kunci Spesifikasi Use Case Enkripsi Spesifikasi Use Case Dekripsi Spesifikasi Use Case Kombinasi
Tabel Hasil Pengujian Kombinasi untuk TEKS1.txt Tabel Hasil Pengujian Kombinasi untuk TEKS2.txt
23 23 24 24 25 25 65 66
(12)
DAFTAR GAMBAR Halaman 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13
Proses Enchipering dan Deciphering
Kriptografi Simetris Kriptografi Kunci Publik
Compresion dan Decompresion
Coder dan Decoder
Diagram Ishikawa untuk Analisis Permasalahan Sistem
Use case diagram
Activity Diagram Kompresi
Activity Diagram Dekompresi
Activity Diagram Bangkit Kunci
Activity Diagram Enkripsi
Activity Diagram Dekripsi
Activity Diagram Kombinasi
Sequence diagram Kombinasi Algoritma Kompresi dan Enkripsi
Sequence diagram Kombinasi Algoritma Enkripsi dan Kompresi
Sequence diagram Bangkit Kunci
Flowchart Enkripsi
Flowchart Dekripsi
Flowchart Kompresi
Flowchart Dekompresi
Flowchart Kompresi dan Enkripsi
Flowchart Enkripsi dan Kompresi
Flowchart Dekompresidan Dekripsi
Flowchart Dekripsi dan Dekompresi
Form Beranda
Form Bangkit Kunci
Form Kombinasi
Form Dekripsi dan Dekompresi
Form Dekompresi dan Dekripsi
Source Code proses Bangkit Kunci Rahasia
Source Code proses Bangkit Kunci Publik
Source Code proses Kompresi
Source Code proses Enkripsi
Source Code proses Dekripsi
Source Code proses Dekompresi
Tampilan Form Beranda Tampilan Form Tentang Tampilan Form Bantuan
Tampilan Pop-up Windows Pilih Teks TampilanPengujianKompresi
TampilanPengujianDekompresi Tampilan Pengujian Bangkit Kunci
6 8 9 16 17 20 22 26 27 28 29 30 31 32 33 34 35 35 36 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 51 53 54 54 55 56 57 58
(13)
4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22
Tampilan Pengujian Enkripsi
Informasi Penyimpanan File Enkripsi TampilanPengujian Dekripsi
TampilanPengujianKombinasi untuk TEKS1 TampilanPengujianKombinasi untuk TEKS2
TampilanPengujianDekripsi dan Dekompresi untuk TEKS1 TampilanPengujianDekripsi dan Dekompresi untuk TEKS2 TampilanPengujianDekompresi dan Dekripsi untuk TEKS1 TampilanPengujianDekompresi dan Dekripsi untuk TEKS2
59 59 60 61 62 63 63 64 65
(14)
ABSTRAK
Algoritma Knapsack merupakan bagian dari kriptografi asimetri yang mana kunci enkripsinya berbeda dengan kunci dekripsinya. Di samping masalah keamanan file teks, masalah ukuran dari sebuah file teks juga menjadi pertimbangan. File teks yang berukuran besar dapat dimampatkan dengan melakukan proses kompresi. Algoritma
Run Length Encoding (RLE) merupakan algoritma yang mengecilkan ukuran file teks,
apabila teks tersebut mengalami banyak perulangan karakter. Kombinasi algoritma Knapsack dan RLE dapat menjamin file Teks tidak dapat dilihat oleh pengguna yang tidak berhak dan dapat menjamin file teks dapat disimpan dalam media file yang berkapasitas rendah. Pada penelitian ini, penulis membuat program kombinasi algortitma knapsack dan RLE pada file teks. Pada algoritma Knapsack akan terjadi penambahan ukuran file teks, hal ini dapat dilihat pada contoh kasus yang mana ukuran plainteks (pesan asli) adalah 9 bytes, kemudian setelah dilakukan proses enkripsi ukuran file teks menjadi 37 bytes. Pada algoritma kompresi RLE terjadi pengurangan ukuran sebagai contoh kasus cipherteks (pesan yang disamarkan) yang awalnya berukuran 37 bytes setelah dilakukan proses kompresi ukurannya menjadi 7 bytes. Proses kombinasi dapat dilakukan sebaliknya, yaitu kompresi teks terlebih dahulu kemudian enkripsi teks tersebut, masih dengan plainteks yang sama beukuran 9 bytes, setelah dilakukan kompresi ukuran file menjadi 2 bytes. Kemudian dilakukan enkripsi ukuran file menjadi 9 bytes. Karena itu pengunaan kombinasi enkripsi dan kompresi data lebih baik karena file menjadi lebih kecil dibandingkan kombinasi kompresi dan enkripsi data. Plainteks yang memiliki banyak perulangan karakter akan terkompresi dengan baik.
(15)
ANALYSIS COMBINATION KNAPSACK ALGORITHM AND RLE FOR TEXT FILE
ABSTRACT
Knapsack algorithm is part of the asymmetric cryptography which the encryption key is different from the decryption key. Apart from safety, the size of the file is also measure and the file may be compressed further. Run Length Encoding (RLE) algorithm is an algorithm that shrink the size of the text file, if and only if the text has a lot of looping of character. Combination of Knapsack and RLE algorithm can guarantee that text files may not be seen by unauthorized users and to ensure the text file may be stored in a low-capacity media file. In this paper, writer makes a combination program of Knapsack and RLE for text files. Sometimes Knapsack algorithm may add the size of the text file, it can be seen in the case where the size of the plaintext is only 9 bytes, then after the encryption process the text file size becoming 37 bytes. In the RLE compression algorithm happen size reduction as an example the case of the ciphertext which initially measuring 37 bytes after compression process the size becoming 7 bytes. Combination process can be done otherwise, the text compression first and then the encrypting text, still with the same plaintext measuring 9 bytes, after the compressed file size to 2 bytes. Then do the encryption of the file size to 9 bytes. There for using a combination of encryption and file compression are better because it is smaller than a combination of compression and file encryption. The plaintext who has a lot of looping of character will be compressed correctly.
(16)
BAB 1 PENDAHULUAN
1.1 Latar Belakang Masalah
Kemajuan teknologi dewasa ini menyebabkan saling ketergantungan antara komputer dan telekomunikasi semakin besar. Jaringan-jaringan komputer mempunyai andil besar untuk pengadaan sumber-sumber informasi. Dengan adanya jaringan-jaringan tersebut memudahkan orang memperoleh data serta informasi dimanapun secara terbuka. Hal ini membuka peluang bagi orang-orang yang tidak bertanggung jawab melakukan kecurangan-kecurangan. Seperti memanipulasi data, menyadap data, dan lain sebagainya pada data yang dianggap penting dan sangat pribadi.
Keamanan data diperlukan untuk mengatasi kecurangan tersebut, salah satu penelitian yang membahas tentang pengamanan data adalah Aplikasi Enkripsi Dan
Dekripsi Dengan Algoritma Knapsack Public Block Menggunakan Vb.Net. oleh Tri
Wahyu Widyaningsih. Pada penelitian ini membahas tentang pemanfaatan VB.Net sebagai salah satu bahasa pemrograman berorientasi objek untuk memperoleh rancangan yang lebih menarik, dan mendukung pembuatan aplikasi keamanan data untuk meningkatkan keotentikan data. Aplikasi enkripsi dekripsi dengan algoritma knapsack public block diharapkan dapat membantu siapapun yang ingin mengamankan data yang berupa file teks [13].
(17)
Selain keamanan data yang perlu diperhatikan juga adalah kecepatan dalam pengiriman data tersebut. Kecepatan pengiriman ini tergantung dari ukuran informasi tersebut. Salah satu solusi masalah tersebut adalah dengan melakukan pemampatan (kompresi) data sebelum melakukan pengiriman dan kemudian penerima akan merekonstruksinya kembali menjadi data aslinya (dekompresi).
Kompresi data adalah istilah umum untuk berbagai algoritma dan program yang dikembangkan untuk mengatasi masalah pemampatan data. Tujuan dari data yang kompresi untuk mengurangi redundansi dalam data yang tersimpan atau data ditransmisikan, sehingga meningkatkan efektif data kepadatan [3]. Salah satu penelitian yang membahas tentang masalah kompresi data yaitu Analisis Perbandingan Algoritma Kompresi Lempel Ziv Welch, Arithmetic Coding, Dan
Run-Length Encoding Pada File Teks oleh Telaumbanua ,Plipus . Dalam penelitian ini,
dibandingkan tiga algoritma kompresi data yaitu Lempel Ziv Welch (LZW), Arithmetic Coding, dan Run-Length Encoding(RLE), dimana algoritma RLE dibantu oleh algoritma BurrowsWheeler Transform (BWT) untuk memaksimalkan kinerjanya. Algoritma-algoritma tersebut dipilih karena semuanya dalam kategori algoritma
lossless, dan mewakili masing-masing teknik pengkodean. Algoritma yang memiliki
perfomansi terbaik berdasarkan rata-rata rasio dan waktu proses kompresi/dekompresi adalah algoritma LZW. Algortima RLE+BWT sangat efektif untuk file yang memilki banyak deretan karakter yang sama, namun buruk untuk file yang isinya tidak beraturan (acak). Sama halnya seperti algoritma RLE+BWT, algoritma LZW juga buruk untuk file yang isinya acak, namun efektif untuk file teks biasa, sedangkan algoritma Arithmetic Coding efektif untuk semua file uji baik dalam keadaan acak maupun tidak [12]
Menimbang begitu pentingnya arti keamanan dalam komunikasi pertukaran data, maka penulis mengusulkan suatu penelitian yang berjudul“Analisis Kombinasi Algoritma Knapsack dan RLE pada File Teks”. Dimana dalam penelitian ini akan dibahas mengenai teknik enkripsi dan dekripsi data menggunakan algoritma Knapsack
dan algoritma RLE (Run Length Encoding) sebagai kompresi data pada file teks ataupun sebaliknya.
(18)
Berdasarkan hal-hal yang telah diungkapkan pada latar belakang, maka yang menjadi rumusan masalah dalam penelitan ini adalah bagaimana mengimplementasikan kriptografi dan kompresi teks dengan algoritma Knapsack dan RLE untuk mengamankan file teks.
1.3 Batasan Masalah
Beberapa batasan masalah yang menjadi acuan dalam pengerjaan skripsi ini adalah sebagai berikut:
1. Penelitian ini hanya membahas tentang teknik pengamanan file teks menggunakan algoritma Knapsack dan kompresi menggunakan algoritma RLE.
2. Teks yang digunakan dalam penelitian ini adalah code ASCII (American Standard
Code for Information Interchange) dan tiap-tiap karakter direpresentasikan oleh 7
binary digit.
3. Format file teks yang digunakan adalah *.txt
4. Untuk mengimplementasikan algoritma tersebut maka akan dibuat aplikasi dengan menggunakan Bahasa pemograman MATLAB 2009
1.4 Tujuan Penelitian
1. Membangun aplikasi yang dapat menerapkan sistem pengamanan file teks dengan menggunakan algoritma Knapsack serta pemampatan (kompresi) data pada file teks yang telah di enkripsi tersebut dengan menggunakan algoritma RLE.
2. Mengatasi masalah keamanan data dan pemampatan data dalam pengiriman informasi melalui jaringan komunikasi.
3. Membuktikan tepat atau tidaknya metode enkripsi menggunakan algortima Knapsack dikombinasikan dengan metode kompresi menggunakan algoritma RLE ataupun sebaliknya.
1.5 Manfaat Penelitian
1. Bagi penulis, penelitian ini dilakukan untuk memenuhi syarat kelulusan program Strata-1 (S1) program studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
(19)
2. Diharapkan penilitian ini akan menambah literatur dan rujukan dalam bidang ilmu Kriptografi mengenai pengamanan data menggunakan algoritma Knapsack serta kompresi data menggunakan algoritma RLE khususnya pada file teks.
3. Bagi masyarakat diharapkan aplikasi ini dapat berguna untuk memberikan rasa aman dan nyaman bagi pengguna untuk melakukan pertukaran informasi melalui jaringan komunikasi.
1.6 Metodologi Penelitian
Dalam penelitian ini, ada beberapa tahapan yang akan dilakukan sebagai berikut: 1. Studi Literatur
Algoritma ini dilaksanakan dengan melakukan studi kepustakaan yang relevan serta buku-buku maupun artikel-artikel atau e-book dan juga journal international
yang didapatkan melalui internet.
2. Analisis Data
Pada tahap ini dilakukan pengolahan data yang didapat yaitu dilakukan pemrosesan awal sehingga data masukan relatif lebih kecil dan kemudian dilakukan analisis terhadap hasil studi literatur yang diperoleh sehingga menjadi suatu informasi.
3. Perancangan Sistem
Pada tahap ini akan dilakukan perancangan desain antarmuka sistem dan struktur proses kerja sistem.
4. Pengimplementasian Sistem
Pada tahap ini akan dilakukan implementasi dari hasil perancangan sistem dalam bentuk perangkat lunak.
5. Pengujian Sistem
Pada tahap ini akan dilakukan pengujian sistem yang bertujuan untuk mengetahui kesalahan-kesalahan yang terjadi pada sistem, sehingga dapat dilakukan perbaikan. Kemudian dilakukan analisis pada sistem untuk mengetahui apakah sistem sesuai dengan permasalahan dari penelitian.
6. Penyusunan Laporan
Pada tahap ini dilakukan penyusunan laporan dari hasil analisis dan perancangan sistem dalam format penulisan penelitian.
(20)
1.7 Sistematika Penulisan BAB 1: PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB 2:LANDASAN TEORI
Membahas teori-teori yang berhubungan dengan kriptografi, algoritma knapsack dan kompresi data yaitu algoritma RLE .
BAB 3:ANALISIS DAN PERANCANGAN SISTEM
Membahas bagian-bagian yang berkaitan dengan sistem, antarmuka sistem, serta menjelaskan mengenai cara kerja sistem pada proses pengamanan data menggunakan algoritma knapsack dan kompresi data menggunakan algoritma RLE.
BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM
Membahas tentang implementasi dan pengujian sistem.
BAB 5: KESIMPULAN DAN SARAN
Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat dalam pengembangan selanjutnya.
(21)
BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Pengertian kriptografi
Kriptografi merupakan metode untuk mengirimkan pesan rahasia sehingga hanya penerima pesan yang dimaksud dapat menghapus, menyamarkan atau membaca pesan tersebut. Kriptografi berasal dari kata bahasa Yunani yaitu kryptos yang berarti tersembunyi dan grapein yang berarti menulis. Pesan asli disebut plainteks dan pesan yang telah disandikan disebut cipherteks. Pesan yang telah dienkapsulasi dan dikirim disebut kriptogram. Proses mengubah plainteks menjadi cipherteks disebut enkripsi. Membalikkan proses cipherteks menjadi plainteks disebut dekripsi. Siapapun yang terlibat dalam kriptografi disebut kriptografer. Pada sisi lain, studi tentang teknik matematika karena berusaha untuk mengalahkan metode kriptografi disebut pembacaan sandi. Cryptanalysts adalah orang-orang berlatih pembacaan sandi [7]
Gambar 2.1. Proses Enchiphering dan Deciphering [5]
Enciphering Plainteks
Cipherteks
Key Key Deciphering
Plainteks Cipherteks
(22)
2.1.2 Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption) atau disebut juga enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks disebut dekripsi (decryption) atau dechipering. Enkripsi dan dekripsi dapat diterapkan pada pesan yang dikirim ataupun pesan yang disimpan. Istilah encryption of data in motion mengacu pada enkripsi data yang ditransmisikan melalui saluran komunikasi, sedangkan istilah decryption of data at rest mengacu pada enkripsi data yang ada didalam storage. [8]
Enkripsi data yang sering digunakan adalah Fast Block dan Strem Cipher. Kedua teknik ini adalah contoh dari algoritma simetris. Kekurangan dari algoritma simetris adalah tingkat kesulitan dalam menentukan kunci rahasia (private key) untuk didistribusikan . Oleh karena itu kita harus mengetahui teknik dari algoritma kriptografi yang kita gunakan untuk membuat sebuah data enkripsi.
Untuk mengembalikan plainteks yang telah dienkripsi, membutuhkan teknik dekripsi. Dekripsi adalah teknik yang digunakan untuk menguraikan data rahasia atau pesan yang telah dienkripsi kembali kebentuk semula atau bentuk aslinya dan menjadi pesan yang dapt dibaca dan dimengerti maksudnya. Adapun rumus untuk proses enkripsi dan dekripsi adalah sebagai berikut:
c = ek(m)………2.1[11]
dimana:
- m adalah plainteks
- e adalah fungsi penyamaran - k adalah kunci rahasia - c adalah cipherteks
dan untuk proses dekripsi dapat digunakan persamaan sebagai berikut:
m = dk(c)………2.2[11]
dimana :
(23)
- d adalah fungsi dekripsi - k adalah kunci
- c adalah cipherteks
kedua persamaan ini adalah teknik enkripsi dan dekripsi yang menggunakan kuncipada proses permutasinya. [11]
2.1.3 Jenis kriptografi
2.1.2.1Algoritma simetris
Adalah algoritma dimana kunci untuk enkripsi bisa dihitung dari kunci dekripsi, dan sebaliknya. Algoritma simetris kadang disebut juga algoritma konvensional. Sebagian besar algoritma simetris menggunakan kunci enkripsi dan kunci dekripsi yang sama. Algoritma simetris sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci. Pengirim dan penerima harus menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Yang termasuk algoritma kunci simetris adalah OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan lain-lainnya [9].
Gambar 2.2 Kriptografi Simetris
Keterangan :
- m adalah plainteks
plainteks (P)
cipherteks (C)
Enkripsi
c = ��(m)
Dekripsi � = ��(�)
(24)
- e adalah fungsi enkripsi - d adalah fungsi dekripsi - k adalah kunci
- c adalah cipherteks
2.1.2.2Algoritma Kunci Publik
Sering juga disebut sebagai algoritma asimetris. Merupakan algoritma dimana kunci untuk mengenkripsi pesan berbeda dengan kunci yang digunakan untuk mendekripsi. Bahkan kunci untuk mendekripsi tidak bisa dihitung dari kunci untuk mengekripsi.
Dinamakan kunci publik, sebab kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan. Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik.
Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat mendekripsikan pesan karena hanya dia yang mengetahui kunci privatnya sendiri [9].
Gambar 2.3 Kriptografi Kunci Publik
Keterangan : - m adalah plainteks - e adalah fungsi enkripsi - E adalah kunci publik - d adalah fungsi dekripsi
plainteks (P)
cipherteks (C)
Enkripsi
c = ��(m)
Dekripsi � = ��(�)
(25)
- D adalah kunci rahasia - c adalah cipherteks
2.1.4 Algoritma Knapsack
Algoritma Knapsack juga adalah algoritma kriptografi kunci-publik. Keamanan algoritma ini terletak pada sulitnya memecahkan persoalan knapsack (Knapsack Problem). Knapsack artinya karung/kantung. Karung mempunyai kapasitas muat terbatas. Barang-barang dimasukkan ke dalam karung hanya sampai batas kapasitas maksimum karung saja [8].
Jenis-jenis Knapsack adalah: 1. 0/1 Knapsack Problem
Setiap barang hanya terdiri satu unit dan boleh diambil atau tidak sama sekali [4]
2. 0/n Knapsack Problem
Setiap barang terdiri dari n buat unit dan boleh diambil atau tidak sama sekali 3. Bounded Knapsack Problem
Setiap barang tersedia n buah unit dan jumlahnya terbatas 4. Unbounded Knapsack Problem
Setiap barang tersediah lebih dari satu unit dan jumlahnya tidak terbatas 5. Fractional Knapsack Problem
Barang boleh diambil dalam bentuk pecahan atau sebahagian. Contohnya gula,garam,tepung dan lain-lain [2].
Knapsack Problem:
Diberikan bobot knapsack adalah M. Diketahui n buah objek yang masing-masing bobotnya adalah w1, w2, …, wn. Tentukan nilai bi sedemikian sehingga
M = b1w1 + b2w2 + … + bnwn (2.1)[8]
yang dalam hal ini, bi bernilai 0 atau 1. Jika bi = 1, berarti objek i dimasukkan kedalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan.
(26)
Dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial [8].
Algoritma Knapsack Sederhana
Ide dasar dari algoritma kriptografi knapsack adalah mengkodekan pesan sebagai rangkaian solusi dari dari persoalan knapsack. Setiap bobot wi di dalam persoalan knapsack merupakan kunci privat, sedangkan bit-bit plainteks menyatakan bi. Sayangnya, algoritma knapsack sederhana ini hanya dapat digunakan untuk enkripsi, tetapi tidak dirancang untuk dekripsi.
Algoritma superincreasing Knapsack adalah algoritma yang lemah, karena cipherteks dapat didekripsi menjadi plainteksnya secara mudah dalam waktu lanjar. Algoritma non-superincreasing Knapsack atau normal Knapsack adalah kelompok algoritma Knapsack yang sulit (dari segi komputasi) karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya.Namun, superincreasing Knapsack dapat dimodifikasi menjadi non-superincreasing Knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci rahasia (untuk dekripsi). Kunci publik merupakan barisan non-superincreasing sedangkan kunci rahasia tetap merupakan barisan superincreasing. Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle [8].
Cara membuat kunci publik dan kunci rahasia: 1. Tentukan barisan superincreasing.
2. Kalikan setiap elemen di dalam barisan tersebut dengan n modulo m. Modulus m seharusnya angka yang lebih besar daripada jumlah semua elemen di dalam barisan, sedangkan pengali n seharusnya tidak mempunyai faktor persekutuan dengan m.
3. Hasil perkalian akan menjadi kunci publik sedangkan barisan superincreasing semula menjadi kunci rahasia.
Contoh :
(27)
Barisan non-superincreasing (atau normal) Knapsack dihitung sbb: 2 ⋅ 31 mod 103 = 62
5 ⋅ 31 mod 103 = 52 9 ⋅ 31 mod 103 = 73 17 ⋅ 31 mod 103 =12 25 ⋅ 31 mod 103 =54 50 ⋅ 31 mod 103 =5
Jadi, kunci publik adalah {62, 52, 73, 12, 54, 5}, sedangkan kunci rahasia adalah {2, 5, 9, 17, 25, 50}.
Enkripsi dilakukan dengan cara yang sama seperti algoritma Knapsack sebelumnya. Mula-mula plainteks dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Kemudian kalikan setiap bit di dalam blok dengan elemen yang berkoresponden di dalam kunci publik.
Contoh :
Misalkan Plainteks: 011001100000110110 dan kunci publik yang digunakan seperti pada Contoh sebelumnya.
Plainteks dibagi menjadi blok yang panjangnya 6, kemudian setiap bit di dalam blok dikalikan dengan elemen yang berkorepsonden di dalam kunci publik:
Blok plainteks ke-1 : 011001
Kunci publik : 62, 52, 73, 12, 54, 5
Kriptogram : (1 × 52) + (1 × 73)+ (1 × 5) = 130
Blok plainteks ke-2 : 100000
Kunci publik : 62, 52, 73, 12, 54, 5 Kriptogram : (1 × 62) = 62
Blok plainteks ke-3 : 110110
(28)
Kriptogram : (1 × 62) + (1 × 52) + (1 × 54) + (1 × 5) = 173
Jadi, cipherteks yang dihasilkan : 130, 62, 173
Dekripsi dilakukan dengan menggunakan kunci rahasia. Mula-mula penerima pesan menghitung n–1 , yaitu balikan n modulo m, sedemikian sehingga n ⋅ n–1 ≡ 1 (mod m). Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut (disamping dengan cara yang sudah pernah diberikan pada Teori Bilangan Bulat):
n ⋅ n–1 ≡ 1 (mod m) n ⋅ n–1 = 1 + km
n–1 = (1 + km)/n , k sembarang bilangan bulat
Kalikan setiap kriptogram dengan n–1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plainteks dengan menggunakan algoritma pencarian solusi superincreasing Knapsack.
Contoh :
Cipherteks dari 130, 62, 173 akan dideskripsikan dengan menggunakan kunci rahasia {2, 5, 9, 17, 25, 50}. Di sini, n = 31 dan m = 103. Nilai n–1 diperoleh sbb:
n–1 = (1 + 103k)/31
Dengan mencoba k = 0, 1, 2, …, maka untuk k = 3 diperoleh n–1 bilangan bulat, yaitu
n–1 = (1 + 103 ⋅ 3)/31 = 10
Cipherteks dari Contoh sebelumnya adalah 130, 62, 173 . Plainteks yang berkoresponden diperoleh kembali sebagai berikut:
(29)
62 ⋅ 10 mod 103 = 2 = 2 berkoresponden dengan 100000
173 ⋅ 10 mod 103 = 82 = 2 + 5 + 25 + 50 , berkoresponden dengan 110110
Jadi, plainteks yang dihasilkan kembali adalah: 011001 100000 110110
2.2 Teori Dasar Kompresi
2.2.1 Kompresi data
Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data . Saat ini terdapat berbagai tipe algoritma kompresi , antara lain: Huffman, IFO, LZHUF, LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-Sorting Lossless, Run-Length, Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), Burrows-Wheeler Block Sorting, dan Half Byte.
Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file input) menjadi sekumpulan codeword, metode kompresi terbagi menjadi dua kelompok, yaitu :
1. Metode statik : menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase (two-pass): fase pertama untuk menghitung probabilitas kemunculan tiap simbol/karakter dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Contoh: algoritma Huffman statik.
2. Metode dinamik (adaptif) : menggunakan peta kode yang dapat berubah dari waktu ke waktu. Metode ini disebut adaptif karena peta kode mampu beradaptasi terhadap perubahan karakteristik isi file selama proses kompresi berlangsung. Metode ini bersifat onepass, karena hanya diperlukan satu kali pembacaan terhadap isi file. Contoh: algoritma LZW dan DMC.
(30)
Berdasarkan teknik pengkodean/pengubahan simbol yang digunakan, metode kompresi dapat dibagi ke dalam tiga kategori, yaitu :
1. Metode symbolwise : menghitung peluang kemunculan dari tiap symbol dalam file input, lalu mengkodekan satu simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang lebih jarang muncul, contoh: algoritma Huffman.
2. Metode dictionary : menggantikan karakter/fragmen dalam file input dengan indeks lokasi dari karakter/fragmen tersebut dalam sebuah kamus (dictionary), contoh:algoritma LZW.
3. Metode predictive : menggunakan model finite-context atau finite-state untuk memprediksi distribusi probabilitas dari simbol-simbol selanjutnya; contoh: algoritma DMC.
Ada beberapa faktor yang sering menjadi pertimbangan dalam memilih suatu metode kompresi yang tepat, yaitu kecepatan kompresi, sumber daya yang dibutuhkan (memori, kecepatan PC), ukuran file hasil kompresi, besarnya redundansi, dan kompleksitas algoritma.
Tidak ada metode kompresi yang paling efektif untuk semua jenis file. Dalam penelitian ini algoritma yang digunakan hanya Run-Length Encoding. Karena Algoritma tersebut cepat dan mudah untuk mengeksekusi [6].
2.2.2 Dekompresi data
Dekompresi adalah kebalikan dari proses kompresi. Setiap proses kompresi data tentu saja membutuhkan proses dekompresi kembali untuk mendapatkan data yang sesungguhnya.
(31)
Pada praktek kasusnta, dekompresi yang baik atau dapat dikatakan efisien jika algoritma dekompresinya sesuai dengan algoritma kompresi pasa kasus itu sendiri. Audio, Video, dan Foto adalah contoh data yang sangat sering dilakukan proses kompresi dan dekompresi tentu saja menggunakan dengan algoritma yang sama. Adapun hubungan antara kompresi dan dekompresi dapat dilihat pada gambar dibawah ini:
Compression Algorithm
Decompression Algorithm Input Source
File
Output
Compressed File
Input Compressed File
Output
Decompressed File
Gambar 2.4 Compression dan Decompression [10]
Aplikasi dekompresi data sering juga disebut dengan dekompresor (decompresor). Bagaimanapun dekompresi adalah salah satu solusi terbaik untuk mengembalikan data yang telah mengalami proses kompresi (compressed Files).
Kompresor dan dekompresor dapat dikatakan sebagai dua proses yang saling berkaitan baik pada sumber dan tujuan masing-masing proses. Pada kasusnya, source disebut dengan coder dan destinasi pesan disebut dengan decoder. [10]
Proses transmisi antara sebuah coder dan decoder dapat kita lihat pada gambar dibawah ini:
(32)
Coder
Decoder Transmission Chanel Source
(Original Message) Coded Message
Destination (Decoded Message) Gambar 2.5 Coder dan Decoder [10]
2.2.3 Run Length Encoding (RLE)
Mengurangi ukuran karakter string yang berulang [1]. Berulang ini biasa disebut Run. Biasanya RLE mengkodekan run dari simbol menjadi dua byte, jumlah dan simbol. RLE dapat memampatkan semua jenis data terlepas dari isi informasi, tetapi isi dari( data yang akan dikompresi mempengaruhi rasio kompresi. RLE tidak dapat mencapai rasio kompresi yang tinggi dibandingkan dengan metode kompresi lainnya, tapi. mudah untuk menerapkan dan cepat untuk mengeksekusi. RLE didukung oleh sebagian besar format file bitmap seperti tiff, BMP, PCX.
Contoh:
S= 11111111111111100000000000000000001111
Ini dapat direpresentasikan sebagai 1 sebanyak Lima Belas, 0 sebanyak sembilan belas, dan empat buat 1, yaitu (15,1), (19,0), (4,1). karena pengulangan jumlah maksimum adalah 19, yang dapat direpresentasikan dengan 5 bit, dapat dikodekan sebagai bit stream (01111,1), (10011,0), (00100,1) [1].
Contoh dari lain algoritma RLE: 1. KKKKKKK
Adalah perulangan karakter “K” sebanyak 7 kali, ini dapat dikatakan sebagai run length karena mengulangi karakter yang sebanyak 7 kali.
(33)
Adalah contoh yang tidak akurat, karena tidak mengalami perulangan pada setiap karakternya. Ketujuh karakter diatas merupakan tujuh karakter yang berbeda-beda. Karakter ini tidak dapat dikatakan sebagai Run Length.
3. ABABBBC
Dari karakter contoh tiga, terdapat perulangan karakter “B” sebanyak 3 kali, karakter ini sudah dpat dikatakan run length
Teknik dari algoritma run length encoding adalah untuk mempersingkat penulisan dari sebuah code, untuk penyelesaian dari contoh 1 adalah kita dapat menuliskan “KKKKKKK” menjadi (‘r’,’7’,’K’) untuk lebih singkat ditulis dengan “r7k” dengan ketentuan bahwa angka 7 didapatkan karena symbol karaker “k” mengalami perlangan sebanyak 7 kali.
Penyelesaian untuk contoh dua yaitu ABCDEFG, pada simbol ini tidak dapat perulangan karakter sehingga penulisannya dapat kita ubah menjadi (‘n’’7’,”ABCDEFG”) dan lebih singkatnya n7ABCDEFG [10].
(34)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Sebelum dilakukan tahap perancangan sebuah sistem, perlu dilakukan analisis sistem yang akan dibangun. Analisis sistem merupakan istilah yang secara kolektif mendeskripsikan fase-fase awal pengembangan sistem. Analisis sistem pada dasarnya merupakan tahapan yang ditujukan untuk menciptakan pemahaman yang menyeluruh terhadap sistem sehingga diperoleh gambaran tentang kebutuhan, cara kerja, dan alur data yang akan dikerjakan sistem. Hal ini akan membantu mempermudah dalam proses implementasi sistem.
3.1.1 Analisis masalah
Sistem ini diharapkan dapat membantu menyelesaikan masalah dalam keamanan data, agar data tersebut tetap tidak dimodifikasi atau dibaca oleh orang yang tidak memiliki hak akses. Dalam sistem ini file teks akan dienkripsi menggunakan algoritma
Knapsack. Selanjutnya untuk kompresi data teks, dilakukan dengan menggunakan
algoritma RLE. Sehingga diharapkan file teks ini terjaga kemanannya serta ukuran file dapat lebih kecil dari sebelumnya.
Yang menjadi masalah utama penelitian ini adalah bagaimana mengkombinasikan algoritma knapsack dan RLE pada file teks. Sehingga diharapkan file teks ini terjaga
(35)
keamanannya serta ukuran file dapat lebih kecil dari sebelumnya. Setelah dipilah dan dibagi dalam beberapa kategori, dapat diuraikan sebagai berikut:
1. User adalah seorang yang melakukan proses bangkit kunci, enkripsi, kompresi, kombinasi kedua serta dekripsi dan dekompresi.
2. Proses : Sistem ini akan berjalan mengkombinasikan kedua algoritma Knapsack dan RLE pada file teks yaitu proses Enkripsi kemudian kompresi atau Kompresi kemudian Enkripsi, dapat juga dilakukan secara terpisah.
3. Sistem : Sistem ini menunjukan kombinasi mana yang lebih tepat digunakan antara Kompresi dan Enkripsi atau Enkripsi dan Kompresi
Selanjutnya masalah diuraikan kedalam bentuk diagram tulang ikan (ishikawa Diagram) dibawah ini:
Analisis Kombinasi algoritma Knapsack dan
RLE pada File Teks
Data Kebijakan User Proses Mendapati manipulasi data Tidak Efisien melakukan proses secara terpisah Pencurian data tidak terlalu mendapat prioritas Data tidak aman
Ukuran file cukup besar
Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalan Sistem
3.2 Analisis Persyaratan
Analisis ini bertujuan untuk mengidentifikasi dan menyatakan persyaratan apa saja yang akan dibutuhkan oleh sistem agar dapat berjalan sesuai dengan yang diharapkan. Analisis persyaratan dibagi menjadi dua bagian yaitu persyaratan fungsional
(functional requirement) dan persyaratan nonfungsional (nonfunctional requirement).
Dimana persyaratan fungsional adalah aktifitas dan layanan yang harus diberikan / disediakan oleh sebuah sistem, dan persyaratan nonfungsional berkaitan dengan fitur, karakteristik, dan batasan lainnya yang menentukan apakah sistem memuaskan atau
(36)
tidak. Persyaratan nonfungsional seringkali berupa batasan atau sesuatu yang menjadi perhatian stakeholder sebuah sistem.
3.2.1 Persyaratan fungsional
Persyaratan fungsional yang harus dipenuhi oleh sistem yang akan dibangun ini adalah :
1. File teks yang akan dienkripsi memiliki format *.txt.
2. Bilangan yang akan dibangkitkan untuk pembuatan kunci algoritma Knapsack
adalah bilangan bulat positif.
3. File teks yang telah dikompresi, dienkripsi, serta keduanya disimpan dalam format *.txt
4. Kunci kriptografi disimpan dalam bentuk *.txt.
3.2.2 Persyaratan nonfungsional
Persyaratan nonfungsional dari sistem ini adalah : 1. Performa
Perangkat lunak yang akan dibangun harus dapat menunjukkan hasil dari proses kompresi dan dekompresi, enkripsi dan dekripsi serta keduanya.
2. Mudah dipelajari dan digunakan
Sistem yang akan dibangun harus sederhana agar mudah dipelajari dan digunakan oleh pengguna (user).
3. Hemat biaya
Sistem ini tidak memerlukan perangkat tambahan maupun sistem pendukung dalam penggunaannya.
4. Dokumentasi
Sistem dapat menyimpan file teks yang dikompresi ,dienkripsi, keduanya dan kunci yang dibangkitkan.
5. Manajemen kualitas
Sistem memiliki kualitas yang baik yaitu proses kompresi dan dekompresi,enkripsi dan dekripsi file teks dan membangkitkan kunci relatif cepat.
(37)
3.3 Pemodelan
Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem serta hal-hal apa saja yang harus dilakukan oleh sebuah sistem. Aktor yang nantinya akan berinteraksi dengan sistem adalah user yang akan menggunakan sistem yang dibangun.
Berikut ini adalah diagram use case yang dirancang sebagai pemodelan persyaratan sistem berdasarkan informasi kebutuhan sistem dan aktor yang berperan didalamnya.
Gamabar 3.2 Use case diagram
3.3.1 Pemodelan persyaratan sistem dengan use case
Dari diagram use case diatas terlihat interaksi user pada sistem beserta proses-proses yang dilakukan. Diharapkan user mengetahui secara garis besar proses-proses yang terjadi pada setiap tahapan. Agar tidak terjadi kesalahan dalam urutan tahapan, maka sistem akan mengevaluasi pilihan-pilihan yang diambil oleh user. Proses enkripsi menggunakan algoritma Knapsack hanya bisa dilakukan oleh user apabila telah dilakukan proses pembangkitan kunci berdasarkan inputan yang dimasukkan. Selanjutnya setelah proses enkripsi selesai, dilakukan proses kompresi dengan algoritma RLE. Dan dapat dilakukan sebaliknya atau secara terpisah.
Sistem
Enkripsi Plainteks (knapsack)
Kompresi Cipherteks (RLE)
Dekompresi Cipherteksn (RLE)
Dekripsi Cipherteks (Knapsack)
Bangkit Kunci User
(38)
Berikut adalah tabel dari setiap proses.
Tabel 3.1 Spesifikasi Use Case Kompresi (RLE)
Name Kompresi Teks
Actors User
Trigger User telah menginputkan Teks
Preconditions User mengakses tombol Kompresi
Post Conditions User dapat melihat hasil proses kompresi
Success Scenario 1. User telah menginputkan Teks
2. User mengakses tombol Kompresi
3. Sistem akan melakukan proses kompresi terhadap teks yang diinputkan dan menampilkan hasil kompresi
4. User dapat melihat hasil kompresi
Tabel 3.2 Spesifikasi Use Case Dekompresi (RLE)
Name Dekompresi
Actors User
Trigger User telah menginputkan hasil teks yang telah dikompresi
Preconditions User mengakses tombol Dekompresi
Post Conditions User dapat melihat hasil proses dekompresi
Success Scenario 1. User telah menginputkan hasil teks yang telah dikompresi
2. User mengakses tombol Dekompresi
3. Sistem akan melakukan proses dekompresi terhadap teks yang diinputkan dan menampilkan hasil dekompresi berupa bentuk teks asli
(39)
Tabel 3.3 Spesifikasi Use Case Bangkit Kunci
Name Generate key
Actors User
Trigger User telah menginputkan parameter kunci
Preconditions User mengakses tombol generate key
Post Conditions User dapat melihat publickey dan privatekey hasil generatekey
Success Scenario 1. User telah menginputkan parameter kunci
2. User mengakses tombol generate key.
3. Sistem membangkitkan key berdasarkan parameter yang dimasukkan user.
4. User dapat melihat publickey dan privatekey hasil generatekey.
Alternative Flows -
Tabel 3.4 Spesifikasi Use Case Enkripsi Plainteks (Knapsack)
Name Enkripsi Plainteks
Actors User
Trigger 1. User telah menginputkan plainteks yang akan dienkripsi
2. User telah mendapatkan kunci untuk enkripsi
Preconditions User mengakses tombol enkripsi
Post Conditions User dapat melihat cipherteks hasil proses enkripsi
Success Scenario 5. User telah menginputkan plainteks yang akan dienkripsi.
6. User mengakses tombol load kunci dan tombol enkripsi. 7. Sistem membangkitkan key berdasarkan parameter yang
dimasukkan user.
8. Sistem akan melakukan proses enkripsi terhadap plainteks yang diinputkan dan menampilkan cipherteksnya.
9. User dapat melihat cipherteks hasil proses enkripsi.
(40)
Tabel 3.5 Spesifikasi Use Case Dekripsi Cipherteks (Knapsack)
Name Dekripsi cipherteks
Actors User
Trigger 1. User telah menginputkan cipherteks yang akan didekripsi
2. User telah memasukkan kunci dekripsi (privatekey)
Preconditions User mengakses button decrypt
Post Conditions User dapat melihat plainteks hasil proses dekripsi
Success Scenario 1. User telah menginputkan cipherteks yang akan didekripsi.
2. User telah memasukkan kunci 3. User mengakses tombol dekripsi.
4. Sistem akan melakukan proses dekripsi terhadap ciphertkes yang diinputkan dan menampilkan plainteksnya.
5. User dapat melihat plainteks hasil proses dekripsi.
Alternative Flows -
Tabel 3.6 Spesifikasi Use Case Kombinasi (Knapsack dan RLE)
Name Kombinasi
Actors User
Trigger User telah menginputkan plainteks
Preconditions User mengakses tombol Kombinasi (Enkripsi dan Kompresi
atau Kompresi dan Enkripsi)
Post Conditions User dapat melihat hasil proses kombinasi
Success Scenario 1. User telah menginputkan plainteks
2. User mengakses tombol Kompresi dan Enkripsi atau Enkripsi dan Kompresi
3. Sistem akan melakukan proses kombinasi terhadap teks yang diinputkan dan menampilkan hasil hasil berupa bentuk chiperteks
4. User dapat melihat hasil kombinas pada kolom yang tersedia
(41)
3.3.2 Activity diagram
Selain tabel-tabel spesfikasi pada subbab sebelumnya, activity diagram juga bagian dari pemodelan sistem. Berikut adalah activity diagram untuk setiap tabel proses pada subbab sebelumnya.
Dibawah ini Activity Diagram untuk Use Case Kompresi:
User memasukkan file teks
User menekan tombol Kompresi
Sistem mengecek proses yang akan dilakukan
Sistem melakukan Kompresi
Sistem memperlihatkan output Benar
salah
(42)
User memasukkan file Kompresi
User menekan tombol Dekompresi
Sistem mengecek proses yang akan dilakukan
Konfirmasi apa yang harus dilakukan user
Sistem melakukan Dekompresi
Sistem memperlihatkan output Benar
salah
Gambar 3.4 Acitvity diagram Dekompresi
(43)
User Memasukkan parameter Kunci
User menekan tombol Barisan Kunci Rahasia
Sistem mengecek proses yang dilakukan
Sistem melakukan proses bangkit kunci Rahasia
Sistem menampilkan Kunci rahasia
User menekan tombol Generate
Sistem menampilkan nilai m secara acak dan nilai n secara list
User memasukkan nilai n
Sistem melakukan proses bangkit kunci Rahasia
Sistem melakukan proses bangkit kunci Rahasia
Sistem menampilkan Kunci rahasia User menekan tombol Barisan Kunci Rahasia
Salah
Benar Salah
Benar
(44)
Dibawah ini Activity Diagram untuk Use Case Enkripsi:
User memasukkan file Teks
User menekan tombol Enkripsi
Sistem mengecek proses yang akan dilakukan
Sistem melakukan Enkripsi Teks
Sistem memperlihatkan output Benar
salah
(45)
Dibawah ini Activity Diagram untuk Use Case Dekripsi:
User memasukkan file Enkripsi
User menekan tombol Dekripsi
Sistem mengecek proses yang akan dilakukan
Sistem melakukan Dekripsi cipherteksi
Sistem memperlihatkan output Benar
salah
(46)
Dibawah ini Activity Diagram untuk Use Case Kombinasi:
User memasukkan file Teks
User menekan tombol Kombinasi
Sistem mengecek proses yang akan dilakukan
Sistem melakukan proses kombinasi
Sistem memperlihatkan output Benar
salah
Gamabar 3.8 Activity Diagram Kombinasi
3.3.3 Sequence diagram
Proses enkripsi plainteks menggunakan algoritma Knapsack yang dilakukan oleh sistem membangkitkan kunci terlebih dahulu kemudian dapat mengenkripsi plainteks. Kemudian sistem akan mengecek kebutuhan data dan proses yang akan dilakukan selanjutnya. Sequence Diagram untuk proses kombinasi Kompresi dan Enkripsi digambarkan dibawah ini :
(47)
User
:PilihTeks :LoadKunci :Kom_Enk
BrowseTeks
menampilkanTeks
loadKunci Menampilkan Kunci
Kompresi dan Enkripsi
Hasil Kompresi dan Enkripsi (cipherteks)
Kompresi dahulu kemudian enkripsi
Gambar 3.9 Sequence Diagram Kombinasi Kompresi dan Enkripsi
Untuk proses kombinasi Enkripsi dan Kompresi proses sistem sama dengan gambar 3.9, hanya saja proses enkripsi terlebih dahulu dan kemudian proses kompresi.
Setelah proses kombinasi dengan kedua algoritma berhasil, kita bisa melakukan proses kombinasi Dekripsi dan Dekompresi untuk hasil dari Kompresi dan Enkripsi. Untuk mendapatkan kembali plainteks semula. Sequence diagram untuk proses kombinasinya ada dibawah ini :
(48)
User
:PilihTeks :LoadKunci :DekripsiDekompresi
Browse cipherTeks
menampilkan cipherTeks
loadKunci Menampilkan Kunci
Dekripsi dan Dekompresi
Hasil Dekripsi dan Dekompresi (plainteks)
Dekripsi dahulu kemudian Dekompresi
Gambar 3.10 Sequence Diagram Kombinasi Dekripsi dan Dekompresi
Untuk mengembalikan plainteks pada proses kombinasi Enkripsi dan Kompresi, proses yang dilakukan adalah kombinasi Dekompresi dan Dekripsi. Proses sistem tersebut sama dengan gambar 3.10, hanya saja proses Dekompresi terlebih dahulu dilakukan dan kemudian proses Dekripsi.
Untuk membangkitkan kunci yang digunakan pada algoritma Knapsack
diperlukan parameter yang dimasukkan oleh user. Kemudian sistem akan melakukan pembangkitan kunci berdasarkan parameter tersebut. Dibawah ini adalah sequence
(49)
User
:LoadKunci input parameter kunci
Bangkit Kunci
Menampilkan Kunci
Gambar 3.11 Sequence Diagram Bangkit Kunci
3.3.4 Perancangan Flowchart Sistem
Perancangan flowchart sistem terdiri dari :
1. Flowchart Proses Algoritma Knapsack
2. Flowchart Proses Algoritma RLE
3. Flowchart Proses Kombinasi
3.3.4.1 Flowchart Proses Algoritma Knapsack
Flowchart proses Enkripsi dengan menggunakan metode Algoritma Knapsack dapat
(50)
Mulai
Masukkan Plainteks
Load Kunci Publik
Enkripsi Perkalian setiap plainteks
dengan Kunci Publik
Ciperteks
Akhir
Gambar 3.12 Flowchart Enkripsi
Flowchart proses Dekripsi dengan menggunakan metode Algoritma Knapsack
dapat dilihat pada gambar 3.13.
Mulai
Masukkan cipherteks
Dekripsi Perkalian setiap cipherteks dengan
kunci rahasia
Plainteks
Akhir
(51)
3.3.4.2 Flowchart proses algoritma rle
Flowchart proses Kompresi dengan menggunakan metode algoritma RLE dapat dilihat pada gambar 3.14.
Mulai
Masukkan Plainteks
Kompresi
Hasil Kompresi
Akhir
Gambar 3.14 Flowchart Kompresi
Flowchart proses Dekompresi dengan menggunakan metode algoritma RLE dapat dilihat pada gambar 3.15.
Mulai
Masukkan hasil Kompresi
Dekompresi
Plainteks
Akhir
(52)
3.3.4.3 Flowchart proses kombinasi
Flowchart proses kombinasi Kompresi dan Enkripsi dengan dua metode algoritma RLE dan Algoritma Knapsack dapat dilihat pada gambar 3.16.
Mulai
Masukkan Plainteks
Kompresi
Enkripsi
Ciperteks
Akhir
Gambar 3.16 Flowchart Kompresi dan Enkripsi
Flowchart proses Enkripsi dan Kompresi dengan dua metode algoritma Knapsack dan Algoritma RLE dapat dilihat pada gambar 3.17.
(53)
Mulai
Masukkan Plainteks
Enkripsi
Kompresi
Hasil Kompresi
Akhir
Gambar 3.17 Flowchart Enkripsi dan Kompresi
Flowchart proses Dekompresi dan Dekripsi dengan dua metode algoritma
(54)
Mulai
Masukkan hasil dari
Enkripsi dan kompresi
Dekompresi
Dekripsi
Plainteks
Akhir
Gambar 3.18 Flowchart Dekompresi dan Dekripsi
Flowchart proses Dekripsi dan Dekompresi dengan dua metode algoritma Knapsack dan Algoritma RLE dapat dilihat pada gambar 3.19.
(55)
Mulai
Masukkan hasil dari kompresi
dan Enkripsi
Dekripsi
Dekompresi
Plainteks
Akhir
Gambar 3.19 Flowchart Dekripsi dan Dekompresi
3.4 Perancangan Antar Muka
Perancangan antarmuka adalah rancangan tampilan yang menghubungkan pengguna
(user) dan komputer dengan bantuan program. Salah satu syarat pembuatan antarmuka
adalah berorientasi pada kemudahan dalam penggunaannya (user friendly) serta informatif.
Rancangan antarmuka aplikasi Kombinasi Algoritma Knapsack dan RLE pada file Teks dilakukan dengan tools bahasa Matlab 2009. Untuk memudahkan User
dalam mengoperasikan perangkat lunak ini, maka dirancang sebuah User Interface
yaitu sebuah antarmuka menggunakan beberapa rancangan halaman, antara lain: 1. RancanganAntarmuka Form Beranda
(56)
3.4.1. Perancangan Form Beranda
Rancangan Form Beranda merupakan tampilan yang pertama kali muncul saat program dijalankan. Rancangan tab Beranda terlihat seperti pada Gambar 3.18 di bawah ini.
Beranda
Beranda Menu Bantuan Tentang Keluar
ANALISIS KOMBINASI ALGORITMA KNAPSSACK DAN RLE PADA FILE TEKS
Logo Universitas Sumatera Utara
NAMIRA LISTYA UTAMI TANJUNG 081401093
Gambar 3.20 Form Beranda
3.4.2. Perancangan Form Menu
Pada rancangan Form Menu berfungsi untuk menampilkan beberapa form lainnya seperti form Bangkit kunci, form Kompresi, form Dekompresi, form Enkripsi, form
Dekripsi, form Kombinasi Algoritma Knapsack dan RLE, form Dekripsi dan Dekompresi, dan form Dekompresi dan Dekripsi. Form yang dipaparkan hanya form bangkit kunci pada gambar 3.18, form Kombinasi pada gambar 3.22, form
(57)
Dekripsi dan Dekompresi, dan form Dekompresi dan Dekripsi pada gambar 3.23 dan 3.24.
a. Perancangan Form Bangkit Kunci
W0 :
W1 :
Distance :
m: n:
n:
Proses
Simpan
Bersih
Kembali Bangkit Kunci
Beranda Menu Bantuan Tentang Keluar
Bangkit Kunci
Barisan SuperIncreasing
Generate
Gambar 3.21 Form Bangkit Kunci
Keterangan:
1. Button Barisan superincreasing, berfungsi menampilkan kunci rahasia
2. Button Generate, berfungsi menampilkan bilangan acak pada nilai M
(58)
b.Perancangan Form Kombinasi
Edit 1 Pilih Teks
Edit 2
Edit 3 Kompresi dan Enkripsi
Enkripsi dan Kompresi
Bersih
Kembali
Simpan 2 Simpan 1 Load Kunci
Nama File :
Ukuran : Waktu : Ukuran: Waktu : Ukuran: Kombinasi
Beranda Menu Bantuan Tentang Keluar
Kombinasi Algoritma Knapsack dan RLE pada File Teks
Gambar 3.22 Form Kombinasi
Keterangan:
1. Button Pilih Teks, berfungsi menampilkan teks yang akan dieksekusi
pada Edit 1
2. Button Load Kunci, berfungsi menampilkan kunci publik
3. Button Kompresi dan Enkripsi, berfungsi menampilkan hasil dari teks
yang telah dikompresi dan dienkripsi pada Edit 2.
4. Button Enkripsi dan Kompresi, berfungsi menampilkan hasil dari teks
yang telah dienkripsi dan dikompresi pada Edit 3.
5. Button Bersih, berfungsi membersihkan/menghapus semuanya
6. Button Kembali, berfungsi keluar dari form tersebut
7. Button Simpan1, berfungsi menyimpan hasil teks yang telah dikompresi
dan dienkripsi
8. Button Simpan2, berfungsi menyimpan hasil teks yang telah dienkripsi
(59)
c.Perancangan Form Dekripsi dan Dekompresi
Edit 1 Pilih Teks
Edit 2 Dekripsi dan Dekompresi
Simpan
Bersih
Kembali Load Kunci
Nama File :
Ukuran :
Dekripsi dan Dekompresi
Beranda Menu Bantuan Tentang Keluar
Dekripsi dan Dekompresi
Waktu Proses :
Ukuran :
M : N :
Gambar 3.23 Form Dekripsi dan Dekompresi
Keterangan :
1. Button Pilih Teks, berfungsi menampilkan teks hasil kombinasi
Kompresi dan Enkripsi pada
2. Button Dekripsi dan Dekompresi, berfungsi menampilkan teks yang
telah didekripsi dan dekompresi (teks asli) pada
3. Button Simpan, berfungsi menyimpan hasil dekripsi dan dekompresi.
4.Button Bersih, berfungsi membersihkan/menghapus semuanya
5. Button Kembali, berfungsi keluar dari form tersebut.
(60)
Edit 1 Pilih Teks
Edit 2 Dekompresi dan Dekripsi
Simpan
Bersih
Kembali Load Kunci
Nama File :
Ukuran :
Dekompresi dan Dekripsi
Beranda Menu Bantuan Tentang Keluar
Dekompresi dan Dekripsi
Waktu Proses :
Ukuran :
M : N :
Gambar 3.24 Form Dekompresi dan Dekripsi
Keterangan :
1. Button Pilih Teks, berfungsi menampilkan teks hasil kombinasi
Enkripsi dan KOmpresi pada
2. Button Dekompresi dan Dekripsi, berfungsi menampilkan teks yang
telah didekompresi dan dekripsi (teks asli) pada
3. Button Simpan, berfungsi menyimpan hasil dekompresi dan dekripsi
4. Button Bersih, berfungsi membersihkan/menghapus semuanya
(61)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
Tahap implementasi sistem dilakukan setelah tahap analisis dan perancangan sistem selesai dilakukan. Tahap ini merupakan tahapan penerjemahan sistem kedalam bahasa pemrograman atau yang lebih sering disebut sebagai pengkodean. Sistem ini akan diimplementasikan pada bahasa matlab dengan menggunakan Matlab 2009. Sistem ini memiliki 4 Form Utama, yaitu Form Beranda, Form Menu, Form Tentang, dan Form
Bantuan. Form Menu memiliki 8 Form turunan, yaitu Form Kompresi, Form
Dekompresi, Form Bangkit Kunci, Form Enkripsi, Form Dekripsi, Form Kombinasi Algoritma Knapsack dan RLE, Form Dekripsi dan Dekompresi, dan Form
Dekompresi dan Dekripsi.
4.1.1 Proses tahapan algoritma Knapsack dan RLE
4.1.1.1Proses Bangkit Kunci
Untuk menentukan barisan Kunci rahasia, harus memasukkan parameter sebagai contoh:
w(1) = 2 w(2) = 3
(62)
Parameter tersebut kemudian dimasukkan dalam rumus berikut :
w(3)=(distance)+w(1)+w(2);
w(4)=(distance+1)+w(1)+w(2)+w(3); w(5)=(distance+2)+w(1)+w(2)+w(3)+w(4); w(6)=(distance+3)+w(1)+w(2)+w(3)+w(4)+w(5); w(7)=(distance)+w(1)+w(2)+w(3)+w(4)+w(5)+w(6);
dimana nilai awal itu adalah w(1) = 2. Sehingga didapatkan : w(3)= 4 + 2 +3 =9
w(4)= (4 + 1)+2 +3 +9 = 19 w(5)= (4 + 2) + 2 +3 +9 + 19 = 39 w(6)= (4 + 3) + 2 +3 +9 + 19 + 39 = 79 w(7)= 4 + 2 +3 +9 + 19 + 39 + 79 = 155
maka dari perhitungan tersebut didapatkan bahwa kunci rahasia adalah
2,3,9,19,39,79,155
Dibawah ini adalah tampilan source code dari proses Bangkit Kunci rahasia:
Gambar 4.1 Source code proses Bangkit Kunci Rahasia
Untuk menentukan barisan Kunci publik , tentukan nilai Modulus m yaitu angka yang lebih besar dari jumlah semua elemen didalam barisan dan nilai n yaitu nilai yang tidak mempunyai persekutan terhadap m. Pada sistem ini nilai m dibangkitkan secara acak :
m = 352 n = 5
dihitung menggunakan rumus:
(63)
Keterangan:
Kp = barisan Kunci Publik
w(Kr) = nilai setiap barisan kunci rahasia
Sehingga didapat: (2.5)mod 352 = 10 (3.5)mod 352 = 15 (9.5)mod 352 = 45 (19.5)mod 352 = 95 (39.5)mod 352 = 195 (79.5)mod 352 = 43 (155.5)mod 352 = 71
Barisan Kunci Publik adalah 10,15, 45, 95, 195, 43, 71.
Dibawah ini adalah tampilan source code dari Bangkit Kunci Publik:
Gambar 4.2 Source Code Proses Bangkit Kunci Publik
4.1.1.2Proses Kompresi dan Enkripsi
Sebagai contoh implementasi dalam kasus ini, misalnya untuk mengenkripsi plainteks ‘AAAAAA’. Maka kita akan mendapatkan :
Kompresi menggunakaan RLE , plainteks “A” mengalami perulangan sebanyak 7
kali maka kompresi dari plainteks “AAAAAAA” adalah A7.
(64)
Gambar 4.3 Source Code Kompresi
Untuk mengenkripsi plainteks yang telah dikompresi yaitu A7:
Karakter ‘A’ dalam ASCII mempunyai nilai biner 1000001 Karakter ‘7’ dalam ASCII mempunyai nilai biner 0110111
Blok plainteks ke-1 : 1000001
Kunci publik : 10 15 45 95 195 43 71
Kriptogram : (1x10)+(0x15)+(0x45)+(0x95)+(0x195)+(0x43)+(1x71) = 81
Blok plainteks ke-2 : 0110111
Kunci publik : 10 15 45 95 195 43 71
Kriptogram :(0x10)+(1x15)+(1x45)+(0x95)+(1x195)+(1x43)+(1x71) = 369
Maka cipherteks dari plainteks A7 adalah 81, 369
Berikut adalah tampilan source code dari proses Enkripsi:
Gambar 4.4 Source Code Proses Enkripsi
Jika ingin mengembalikan ke teks semula maka harus dilakukan dekripsi terlebih dahulu kemudian dekompresi.
Cipherteks dari 81, 369 akan dideskripsikan dengan menggunakan kunci rahasia {2, 3, 9, 19, 39, 79, 155}. Di sini, n = 5 dan m = 352. Nilai n–1 diperoleh sbb:
(65)
n–1 = (1 + 352k)/5
Dengan mencoba k = 0, 1, 2, …, maka untuk k = 2 diperoleh n–1 bilangan bulat, yaitu
n–1 = (1 + 352 ⋅ 2)/5 = 141
Cipherteks dari Contoh sebelumnya adalah 81, 369 . Plainteks yang berkoresponden diperoleh kembali sebagai berikut:
81 ⋅ 141 mod 352 = 157 = 2 + 155 , berkoresponden dengan 1000001 yaitu A
369⋅ 141 mod 352 = 285 = 3 + 9 + 39 +79 + 155 , berkoresponden dengan 0110111 yaitu 7
Maka diperoleh plainteks A7.
Berikut adalah source code dari proses Dekripsi:
Gambar 4.5 Source Code Proses Dekripsi
A7 bukan merupakan plainteks awal, untuk menentukannya diperlukan dekompresi
yaitu membalikkan perulangannya A adalah objek yang berulang dan 7 adalah nilai perulangannya, maka diperoleh A sebanyak tujuh kali. Sehingga plainteks awal adalah “AAAAAAA”.
(66)
Gambar 4.6 Source Code Proses Dekompresi
4.1.1.3 Proses Enkripsi dan Kompresi
Proses awal dalam tahap ini adalah enkripsi data terlebih dahulu kemudian kompresi data. Kunci Publik, Kunci rahasia dan contoh plainteks sam dengan data diatas.
Plainteks = AAAAAA
Kunci Publik = 10 15 45 95 195 43 71 Kunci Rahasia = 2 3 9 19 39 79 155 Nilai m = 352
Nilai n = 5 Nilai n–1 = 141
Enkripsi plainteks :
Blok plainteks A : 1000001
Kunci publik : 10 15 45 95 195 43 71
Kriptogram : (1x10)+(0x15)+(0x45)+(0x95)+(0x195)+(0x43)+(1x71) = 81
Maka cipherteks adalah 81, 81, 81, 81, 81, 81, 81
Kompresi plainteks :
81 mengalami perulangan sebanyak tujuh kali maka kompresiny adalah
81 7
Untuk mengembalikan plainteks awal dilakukan dekompresi data terlebih dahulu kemudian dekripsi data.
(67)
81 7
perulangannya 81 adalah objek yang berulang dan 7 adalah nilai perulangannya, maka diperoleh 81 sebanyak tujuh kali. Sehingga dapat diperoleh plainteks awal adalah “81 81 81 81 81 81 81”.
81 81 81 81 81 81 81 bukan merupakan plainteks awal, untuk menentukannya diperlukan dekripsi data teks:
81. 141 mod 352 = 157 = 2 + 155 , berkoresponden dengan 1000001 yaitu A Maka diperoleh plainteks awal adalah “AAAAAAA”
4.1.2 Tampilan Antarmuka Sistem
Implementasi dari hasil tahapan analisis dan perancangan dapat dilihat dari tampilan antarmuka sistem sebagai berikut :
4.1.2.1Tampilan Form Beranda
Form Berandamerupakan tampilan awal dari sistem ini. Menampilkan judul Skripsi
dan nama penulis skripsi dapat dilihat pada gambar 4.7.
Gambar 4.7 Tampilan Form Beranda
4.1.2.2 Form Menu
Form ini memiliki 8 form turunan, yaitu form Bangkit kunci, form Kompresi, form
(68)
RLE, form Dekripsi dan Dekompresi, dan form Dekompresi dan Dekripsi. Form
tersebut akan dipaparkan pada subbab 4.2 Pengujian.
4.1.2.3 Tampilan Form Tentang
Form ini menampilkan nama software, versi, nama universitas, logo universitas, dan
keterangan singkat mengenai program ini ada disini. Tampilan Form Tentang dapat dilihat pada Gambar 4.8 dibawah ini.
Gambar 4.8 Tampilan Form Tentang
4.1.2.4 Tampilan Form Bantuan
Form ini berisi panduan singkat dalam penggunaan software ini. Dengan adanya Form
ini, diharapkan dapat membantu user yang kesulitan dalam menjalankan software ini. Tampilan Form Bantuan ditunjukan pada Gambar 4.9
(69)
Gambar 4.9 Tampilan Form Bantuan
4.2 Pengujian
Pengujian ini dilakukan pada laptop dengan spesifikasi sebagai berikut : 1. CPU : Intel(R) Core™ 2 CPU U7600 @1.20 GHz (2 CPUs) 2. Memory : 20388 MB RAM
Pengujian dilakukan dengan satu file teks yaitu TEKS1.txt yang berisi “AAAAAAAAA” dan untuk ukuran file adalah 9 byte. File teks ini berlaku untuk semua pengujian sistem ini. Pertama user harus menginputkan pesan yang akan dieksekusi. Pesan dinputkan hanya berupa file *.txt dengan cara mengklik tombol Pilih Teks. Setelah tombol ini diklik, maka akan tampil jendela pemilihan file seperti Gambar 4.10.
(70)
Gambar 4.10 Pop-up Windows Pilih Teks
4.2.1 Pengujian Kompresi
Form ini merupakan tempat user berinteraksi dengan sistem dalam melakukan kompresi teks dapat dilihat pada gambar 4.11
(71)
Gambar 4.11 Tampilan pengujian Kompresi
Pada gambar 4.11, setelah menginputkan file teks, kemudian user menekan tombol Kompresi. Dan hasil dari kompresi akan muncul beserta waktu proses sedangkan untuk ukuran file akan muncul setelah user menekan tombol Simpan.
4.2.2 Pengujian Dekompresi
Form ini merupakan tempat user berinteraksi dengan sistem dalam melakukan dekompresi teks dapat dilihat pada gambar 4.12. Yaitu mengembalikan teks yang telah dikompresi menjadi teks asli.
(72)
Gambar 4.12 Tampilan Pengujian Dekompresi
Pada gambar 4.12 pengujian dekompresi, user diwajibkan memasukkan file yang telah dikompresi yang bernama File Kompresi. Untuk melanjutkannya, user menekan tombol Dekompresi untuk membalikkan teks ke semula.
4.2.3 Pengujian Bangkit Kunci
Form ini merupakan tempat user berinteraksi dengan sistem dalam melakukan pembangkitan kunci dengan algoritma Knapsack dapat dilihat pada gambar 4.13.
(73)
Gambar 4.13 Tampilan Pengujian Bangkit Kunci
Pada gambar diatas, sebelum melakukan pengujian enkripsi, sebaiknya user
membangkitkan kunci terlebih dahulu dengan memasukkan parameter yang ada seperti, W1, W2, dan Distance . Setelah memasukkan parameter, user menekan tombol Barisan Kunci Rahasia untuk Kunci Rahasia. Dan untuk kunci publik, terlebih dahulu user menekan tombol Generate untuk membangkitkan nilai m secara acak dan menentukan nilai n sesuai pilihan yang telah disediakan, kemudian menekan tombol Barisan Kunci Publik.
4.2.4 Pengujian Enkripsi
Form ini merupakan tempat user berinteraksi dengan sistem dalam melakukan enkripsi teks dapat dilihat pada gambar 4.14. Yaitu mengubah plainteks menjadi cipherteks.
(74)
Gambar 4.14 Tampilan Pengujian Enkripsi
Gambar 4.15 Informasi Penyimpanan File Enkripsi
Setelah Kunci tersebut disimpan, maka untuk melakukan enkripsi file teks user hanya menekan tombol Load Kunci dan Enkripsi yang sebelumnya telah memasukkan file teks yang akan dieksekusi. Pengujian Enkripsi dapat dilihat pada gambar 4.14. File
dapat disimpan dengan menekan tombol Simpan, maka file akan tersimpan dengan nama File Enkripsi dapat dilihat pada gambar 4.15.
4.2.5 Pengujian Dekripsi
Form ini merupakan tempat user berinteraksi dengan sistem dalam melakukan dekripsi teks dapat dilihat pada gambar 4.16. Yaitu mengembalikan cipherteks menjadi plainteks.
(75)
Gambar 4.16 Tampilan Pengujian Dekripsi
Pada gambar diatas, user diwajibkan memasukkan file yang telah dienkripsi yang bernama File Enkripsi. Untuk melanjutkannya, user menekan load kunci untuk menampilkan kunci dekripsi dan tombol Dekripsi untuk mengembalikan teks ke semula.
4.2.6 Pengujian Kombinasi algoritma Knapsack dan RLE
Form ini merupakan tujuan dari penulisan skripsi ini. Yaitu mengkombinasikan algoritma Knapsack dan RLE pada file teks. Khusus pengujian Kombinasi Knapsack dan RLE dilakukan pengujian terhadap dua teks berbeda, TEKS1.txt berisi “AAAAAAAAA” dan TEKS2.txt berisi “ABABABABA”. Pengujian terhadap TEKS1 dapat dilihat pada gambar 4.10 dan TEKS2 dapat dilihat pada gambar 4.16.
(76)
Gambar 4.17 Tampilan Pengujian Kombinasi untuk TEKS1
Pada gambar 4.17, terlihat bahwa hasil pengujian pada TEKS1: a. Kompresi dan Enkripsi :
Waktu : 0.00245087 s
Ukuran File : 9 byte
b. Enkripsi dan Kompresi: Waktu : 1.60409 s
Ukuran File : 7 byte
Walaupun waktu yang dihasilkan lebih cepat pada kombinasi pertama yaitu Kompresi dan Enkripsi, tetapi ukuran file yang dihasilkan tidak terkompresi dengan baik. Pada kombinasi kedua yaitu Enkripsi dan Kompresi menghasilkan waktu yang sedikit lebih lama dari kombinasi pertama. Tetapi ukuran file terkompresi dengan baik yaitu terjadi pengurangan file yang awalnya 9 byte menjadi 7 byte.
(77)
Gambar 4.18 Tampilan Pengujian Kombinasi untuk TEKS2
Pada gambar 4.18, terlihat bahwa hasil pengujian pada TEKS2: a. Kompresi dan Enkripsi :
Waktu : 0.017664 s
Ukuran File : 73 byte
b. Enkripsi dan Kompresi: Waktu : 1.02683 s
Ukuran File : 55 byte
Pada pengujian TEKS2, kedua kombinasi dapat terenkripsi dengan baik tapi tidak dapat terkompresi dengan baik. Hal ini dikarenakan plainteks yang dimasukkan tidak memiliki perulangan yang berurutan pada setiap karakternya.
4.2.7 Pengujian Dekripsi dan Dekompresi
Form ini merupakan tampilan untuk mengembalikan hasil Kombinasi Kompresi dan Enkripsi pada file teks. Pengujian Dekripsi dan Dekompresi juga dilakukan dengan dua teks diatas. Pengujian TEKS1.txt dapat dilihat pada gambar 4.20 dan TEKS2.txt dapat dilihat pada gambar 4.21.
(78)
Gambar 4.19 Tampilan Pengujian Dekripsi dan Dekompresi untuk TEKS1
Pada gambar 4.19, terlihat bahwa hasil pengujian pada untuk mengembalikan TEKS1: Waktu : 0.00765377 s
Ukuran File : 9 byte
Gambar 4.21 Tampilan Pengujian Dekripsi dan Dekompresi untuk TEKS2
(79)
Pada gambar 4.21, terlihat bahwa hasil pengujian pada untuk mengembalikan TEKS2: Waktu : 0.00127167 s
Ukuran File : 9 byte
4.2.8 Pengujian Dekompresi dan Dekripsi
Form ini merupakan tampilan untuk mengembalikan hasil Kombinasi Enkripsi dan Kompresi pada file. Pengujian Dekompresi dan Dekripsi juga dilakukan dengan dua teks diatas. Pengujian TEKS1.txt dapat dilihat pada gambar 4.20 dan TEKS2.txt dapat dilihat pada gambar 4.22.
Gambar 4.21 Tampilan Pengujian Dekompresi dan Dekripsi untuk TEKS1
Pada gambar 4.21, terlihat bahwa hasil pengujian untuk mengembalikan TEKS1: Waktu : 4.74921e-005 s
(1)
Gambar 4.22 Tampilan Pengujian Dekompresi dan Dekripsi untuk TEKS2
Pada gambar 4.22, terlihat bahwa hasil pengujian untuk mengembalikan TEKS2: Waktu : 0.00124317 s
Ukuran File : 9 byte
4.2.9 Hasil Pengujian
Hasil pengujian sampel pertama yaitu untuk TEKS1.txt hasilnya dapat dilihat pada tabel 4.1 dan TEKS2.txt hasilnya dapat dilihat pada tabel 4.2.
Tabel 4.1 Hasil Pengujian Kombinasi untuk TEKS1.txt No Ukuran awal
(byte)
Kombinasi Waktu (s) Ukuran Akhir (byte) 1. 9 Kompresi dan Enkripsi 0.00245087 9
2. 9 Enkripsi dan Kompresi 1.60409 7
3. 9 Dekripsi dan Dekompresi 0.00765377 9
4. 7 Dekompresi dan Dekripsi 4.74921e-005 9
Pada TEKS1.txt yang berisi banyak perulangan karakter, kombinasi Kompresi dan Enkripsi, hasil pengujian dapat terenkripsi dengan baik tetapi tidak dengan kompresi
(2)
dikarenakan ukuran akhir dari sampel teks tidak lebih kecil dari ukuran awal. Sedangkan kombinasi Enkripsi dan Kompresi dapat berjalan dengan baik dikarenakan hasil dari ukuran lebih kecil dibandingkan dengan ukuran semula walaupun waktu yang dihasilkan sedikit lebih lama. Dan untuk pengembalian teks, pengujian kedua kombinasi dapat berjalan baik karena isi dan ukuran file dapat kembali seperti semula. Untuk masalah waktu Dekompresi dan Dekripsi lebih efisien dibandingkan kombinasi Dekripsi dan Dekompresi.
Tabel 4.2. Hasil Pengujian Kombinasi untuk TEKS2.txt No Ukuran awal
(byte)
Kombinasi Waktu (s) Ukuran Akhir (byte)
1 9 Kompresi dan Enkripsi 0.017664 73
2 9 Enkripsi dan Kompresi 1.02683 55
3 73 Dekripsi dan Dekompresi 0.00127167 9
4 55 Dekompresi dan Dekripsi 0.00124317 9
TEKS2.txt yang isinya tidak memiliki perulangan karakter, hasil pengujian kedua kombinasi yaitu Kompresi dan Enkripsi serta Enkripsi dan Kompresi, dapat terenkripsi dengan baik tetapi tidak dengan hasil kompresi dikarenakan hasil ukuran akhir dari sampel teks semakin besar. Dan untuk pengembalian teks, pengujian kedua kombinasi dapat berjalan baik karena isi dan ukuran file dapat kembali seperti semula serta waktu yang dihasilkan keduanya pun hampir sama.
(3)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan pengujian, maka penulis dapat menarik kesimpulan sebagai berikut :
1. Kompresi Teks dengan menggunakan algoritma Run Length Encoding dapat terkompresi dengan baik oleh sistem apabila dalam teks tersebut banyak perulangan huruf yang berurut. Sedang untuk teks yang sedikit perulangan atau tidak ada perulangan huruf sama sekali, kompresi menggunakan algoritma ini kurang terlaksana baik dikarenakan ukuran file bertambah besar dari ukuran semula.
2. Enkripsi teks dengan menggunakan algoritma Knapsack dapat mengamankan pesan dengan baik.
3. Kombinasi mendahulukan Enkripsi kemudian Kompresi teks lebih baik digunakan karena kombinasi keduanya berhasil terkompresi dengan baik dibandingkan mendahulukan Kompresi kemudian mengenkripsinya walaupun waktu untuk mengeksekusi plainteks lebih lama.
4. Kombinasi Algoritma Knapsack dan RLE pada file Teks tepat digunakan apabila dalam suatu plainteks (pesan asli) memiliki banyak perulangan karakter.
(4)
5.2 Saran
Untuk pengembangan lebih lanjut dari sistem ini maka penulis memberikan saran-saran sebagai berikut :
1. Diharapkan agar dapat memproses semua bentuk file teks, baik itu dalam format file *.docx, *.odt dan sebagainya.
2. Diharapkan kedepannya sistem seperti ini dapat diterapkan pada media pengiriman pesan seperti email, sms dan sebagainya.
3. Diharapkan untuk pengembangan selanjutnya menggunakan metode yang lain seperti Huffman, Arithmetic Coding, dan lain-lain.
(5)
DAFTAR PUSTAKA
[1] D Murray, James. 1996. Encyclopedia of Graphics File Formats. Second Edition. United State of America: O’Reilly & Associates, Inc.
[2] Diah KW, Kartina., Mardhiah Fadhli., dan Charly Sutanto. Seminar Nasional Informatika 2010 (semnasIF 2010) ISSN: 1979-2328. Yogyakarta, 22 Mei 2010
[3] Gozali dan Mervyn, Ferrianto. 2004. Analisis Perbandingan Kompresi Data Dengan Teknik Arithmetic Coding Dan Run Length Encoding . Volume 4 nomor 1, Agustus 2004, JETri. Hal 37-52. Bandung. Jurusan Teknik Elektro-FTI, Universitas Trisakti.
[4] Horowits, Ellis., Sartaj Sahni., dan Sanguthevar Rajasekaran. 1998. Computer Algorithms. United States America : W.H. Freeman and Company.
[5] Konheim, Alan G.2007. Computer Security And Cryptography .United State of America. John Wiley & Sons, Inc.
[6] Linawati dan Panggabean ,Henry P.2004. Perbandingan Kinerja Algoritma Kompresi Huffman, Lzw, Dan Dmc Pada Berbagai Tipe File.Vol 9 No 1, Maret 2004 Integral.Bandung. FMIPA Universitas Katolik Parahyangan Bandung
[7] Mollin, Richard A. 2007. An Introduction to Cryptography. Second Edition. Taylor & Francis Group, LLC.
[8] Munir, Rinaldi. 2006. Kriptografi. Bandung: Penerbit Informatika
[9] Prameswara, Gustaf. 2012. Implementasi Algoritma One Time Pad Pada Data Teks Dan Knapsack Pada Kunci. Skripsi. Program Studi S-1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.
[10] Pu, Ida Mengyi. 2006. Fundamental Data Compression. Elsevier’s Sience and Technology Rights Departemen Oxford.
[11] Smart, Nigel. 2004. Cryptography: An Introduction. Third Edition. Mcgraw Hill College
(6)
[12] Telaumbanua, Pilipus. 2011. Analisis Perbandingan Algoritma Kompresi Lempel Ziv Welch, Arithmetic Coding, Dan Run-Length Encoding Pada File Teks. Program Studi S-1 Ilmu Komputer, Universitas Sumatera Utara.
[13] Widyaningsih, Tri Wahyu. 2007. Aplikasi Enkripsi Dan Dekripsi Dengan Algoritma Knapsack Public Block Menggunakan Vb.Net. Skripsi. Program Studi Sistem Informasi, Fakultas Ilmu Komputer, Universitas Gunadarma.