ANALISIS KOMBINASI ALGORITMA KNAPSACK DAN RLE PADA FILE TEKS SKRIPSI NAMIRA LISTYA UTAMI TANJUNG 081401093
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 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
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
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
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.
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 Penulis
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.
Katakunci : File Teks, Knapsack, Kompresi, Kriptografi, Run Length Encoding
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.
Keywords: Compression, Cryptography, Knapsack, Run Length Encoding, Text File
Halaman Persetujuan ii
3.1.1 Analisis Masalah
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.
19
19
Algoritma Knapsack 10 2.3.
3.2 Analisis Persyaratan
20
3.2.1 Analisis Persyaratan Fungsional
21
3.2.2 Analisis Persyaratan Non-Fungsional
21
3.3 Pemodelan
22
Teori Dasar Kompresi
2.1.3 Jenis Kriptografi 8 2.2.
Pernyataan iii
Rumusan Masalah 3 1.3.
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.
Batasan Masalah 3 1.4.
7
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
Analisis Sistem
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.
45 Implementasi Sistem 4.1.1.
45 Proses Tahapan Algoritma Knapsack dan RLE
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.
51 Tampilan Antarmuka Sistem 4.1.1.1.
51 Tampilan Form Beranda 4.1.1.2.
52 Tampilan Form Menu 4.1.1.3.
52 Tampilan Form Tentang 4.1.1.4.
53 Tampilan Form Bantuan
4.2
54 Pengujian
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.
66 Kesimpulan 5.2.
67 Saran Daftar Pustaka
68 Lampiran A Listing Program A-1
DAFTAR TABEL
23
65
25
25
24
24
23
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
Halaman
4.1
3.6
3.5
3.4
3.3
3.2
3.1
66
DAFTAR GAMBAR
26
35
34
33
32
31
30
29
28
27
22
36
20
17
16
9
8
6
proses Dekompresi Tampilan Form Beranda Tampilan Form Tentang Tampilan Form Bantuan Tampilan Pop-up Windows Pilih Teks Tampilan Pengujian Kompresi Tampilan Pengujian Dekompresi Tampilan Pengujian Bangkit Kunci
Source Code proses Bangkit Kunci Publik Source Code proses Kompresi Source Code proses Enkripsi Source Code proses Dekripsi Source Code
proses Bangkit Kunci Rahasia
35
36
Beranda
49
57
56
55
54
54
53
51
51
50
48
37
47
45
44
43
42
41
40
39
38
Form Bangkit Kunci Form Kombinasi Form Dekripsi dan Dekompresi Form Dekompresi dan Dekripsi Source Code
Flowchart Kompresi dan Enkripsi Flowchart Enkripsi dan Kompresi Flowchart Dekompresi dan Dekripsi Flowchart Dekripsi dan Dekompresi Form
Halaman
3.6
3.15
3.14
3.13
3.12
3.11
3.10
3.9
3.8
3.7
3.5
3.17
3.4
3.3
3.2
3.1
2.5
2.4
2.3
2.2
2.1
3.16
3.18
Dekompresi
4.7
Sequence diagram Bangkit Kunci Flowchart Enkripsi Flowchart Dekripsi Flowchart Kompresi Flowchart
diagram Kombinasi Algoritma Enkripsi dan Kompresi
Compresion dan Decompresion Coder dan Decoder Diagram Ishikawa untuk Analisis Permasalahan Sistem Use case diagram Activity Diagram Kompresi Activity Diagram Dek ompresi Activity Diagram Bangkit Kunci Activity Diagram Enkripsi Activity Diagram Dekripsi Activity Diagram Kombinasi Sequence diagram Kombinasi Algoritma Kompresi dan Enkripsi Sequence
4.13 Proses Enchipering dan Deciphering Kriptografi Simetris Kriptografi Kunci Publik
4.12
4.11
4.10
4.9
4.8
4.6
3.19
4.5
4.4
4.3
4.2
4.1
3.24
3.23
3.22
3.21
3.20
58
4.14
59
64
63
63
62
61
60
59
4.15
4.22 Tampilan Pengujian Enkripsi Informasi Penyimpanan File Enkripsi Tampilan Pengujian Dekripsi Tampilan Pengujian Kombinasi untuk TEKS1 Tampilan Pengujian Kombinasi untuk TEKS2 Tampilan Pengujian Dekripsi dan Dekompresi untuk TEKS1 Tampilan Pengujian Dekripsi dan Dekompresi untuk TEKS2 Tampilan Pengujian Dekompresi dan Dekripsi untuk TEKS1 Tampilan Pengujian Dekompresi dan Dekripsi untuk TEKS2
4.21
4.20
4.19
4.18
4.17
4.16
65