Analisis Kombinasi Algoritma Knapsack Dan Rle Pada File Teks

(1)

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.