implementasi algoritma knapsack dan base64 pada …

12
Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019 ISSN 2301-9425 (Media Cetak) Hal: 552-563 552 IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA PENGAMANAN FILE TEKS Wina Mariana Br Purba Prodi Teknik Informatika STMIK Budi Darma, Medan, Indonesia Jl. Sisingamangaraja No. 338 Simpang Limun, Medan ABSTRAK Keamanan dan kerahasiaan pesan merupakan aspek penting yang dibutuhkan dalam proses pertukaran pesan. Sehingga untuk mengatasi masalah tersebut maka terciptalah ilmu kriptografi. Kriptografi merupakan ilmu sekaligus seni untuk menjaga kerahasiaan pesan dengan cara menyamarkannya menjadi bentuk tersandi yang tidak mempunyai makna. Contoh dari algoritma kriptografi diantaranya adalah algoritma Knapsack dan Base64. Secara umum pesan/data dikategorikan menjadi dua. Pesan yang bersifat rahasia dan pesan yang tidak bersifat rahasia. Pesan yang tidak bersifat rahasia biasanya tidak akan terlalu diperhatikan. Yang sangat perlu diperhatikan adalah Pesan yang bersifat rahasia, dimana setiap informasi yang ada didalamnya akan sangat berharga bagi pihak yang membutuhkan karena data tersebut dapat dengan mudah digandakan. Untuk mendapatkan informasi didalamnya, biasanya dilakukan berbagai cara yang tidak sah. Salah satu hal penting dalam menjaga kerahasiaan dan keamanan file teks adalah dengan proses enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang dapat dimengerti menjadi sebuah kode yang tidak dapat dimengerti atau tidak terbaca. Dengan menggunakan kombinasi algoritma kriptografi, dimana pesan akan disandikan menggunakan algoritma Knapsack, lalu hasilnya (cipherteks) akan disandikan lagi menggunakan algoritma Base64, diharapkan dapat memperkuat keamanan dari pesan rahasia, sehingga akan lebih sulit untuk dipecahkan. Jenis file yang akan di uji cobakan adalah file teks (.txt) pada Notepad. Notepad ini memiliki tampilan yang simple, apa adanya dan fitur yang ada memang yang paling sering digunakan, mudah, cepat, dan segudang kepraktisan lainnya yang tidak didapatkan pada microsoft word. Kata Kunci : Kriptografi, knapsack, base64, plainteks, cipherteks. I. PENDAHULUAN Keamanan merupakan salah satu aspek terpenting dari sebuah sistem informasi. Masalah keamanan sering kurang mendapatkan perhatian dari para perancang dan pengelola sistem informasi. Masalah keamanan sering berada diurutan setelah tampilan, atau bahkan diurutan terakhir dalam daftar hal-hal yang dianggap penting. Secara umum pesan/data dikategorikan menjadi dua. Pesan yang bersifat rahasia dan pesan yang tidak bersifat rahasia. Pesan yang tidak bersifat rahasia biasanya tidak akan terlalu diperhatikan. Yang sangat perlu diperhatikan adalah Pesan yang bersifat rahasia, dimana setiap informasi yang ada didalamnya akan sangat berharga bagi pihak yang membutuhkan karena data tersebut dapat dengan mudah digandakan. Untuk mendapatkan informasi didalamnya, biasanya dilakukan berbagai cara yang tidak sah. Salah satu hal penting dalam menjaga kerahasiaan dan keamanan file teks adalah dengan proses enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang dapat dimengerti menjadi sebuah kode yang tidak dapat dimengerti atau tidak terbaca. Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dapat dimengerti (unintelligible), dan untuk memperoleh kembali informasi yang asli dilakukan proses dekripsi dengan menggunakan kunci yang benar. Dengan menggunakan kombinasi algoritma kriptografi, dimana pesan akan disandikan menggunakan algoritma Knapsack, lalu hasilnya (cipherteks) akan disandikan lagi menggunakan algoritma Base64, diharapkan dapat memperkuat keamanan dari pesan rahasia, sehingga akan lebih sulit untuk dipecahkan. Jenis file yang akan di uji cobakan adalah file teks (.txt) pada Notepad. Notepad ini memiliki tampilan yang simple, apa adanya dan fitur yang ada memang yang paling sering digunakan, mudah, cepat, dan segudang kepraktisan lainnya yang tidak didapatkan pada microsoft word. Selain itu jika tidak menggunakan komputer pribadi, notepad ini sering digunakan untuk menyimpan catatan singkat seperti password, kode-kode HTML dll. Knapsack merupakan algoritma kriptografi asimetris yang menggunakan kunci publik untuk mengenkripsi pesan dan menggunakan kunci pribadi untuk mendeskripsikan pesan. Keamanan algoritma ini terletak pada sulitnya memecahkan persoalan knapsack (Knapsack Problem) karena, dengan kunci publik orang dapat mengenkripsi pesan tetapi tidak bisa mendekripsinya. Hanya orang yang memiliki kunci rahasia yang dapat mendekripsi pesan tersebut. Base64 merupakan salah satu algoritma untuk Encoding dan Decoding suatu data ke dalam format ASCII, yang didasarkan pada bilangan dasar 64 atau bisa dikatakan sebagai salah satu metode yang digunakan untuk melakukan encoding (penyandian) terhadap data binary . II. TEORITIS A. Kriptografi Kriptografi berasal dari bahasa Yunani, menurut bahasa dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia berarti

Upload: others

Post on 09-Dec-2021

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

552

IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA

PENGAMANAN FILE TEKS

Wina Mariana Br Purba

Prodi Teknik Informatika STMIK Budi Darma, Medan, Indonesia

Jl. Sisingamangaraja No. 338 Simpang Limun, Medan

ABSTRAK

Keamanan dan kerahasiaan pesan merupakan aspek penting yang dibutuhkan dalam proses pertukaran pesan. Sehingga untuk mengatasi masalah tersebut maka terciptalah ilmu kriptografi. Kriptografi merupakan ilmu sekaligus seni untuk menjaga

kerahasiaan pesan dengan cara menyamarkannya menjadi bentuk tersandi yang tidak mempunyai makna. Contoh dari algoritma

kriptografi diantaranya adalah algoritma Knapsack dan Base64. Secara umum pesan/data dikategorikan menjadi dua. Pesan

yang bersifat rahasia dan pesan yang tidak bersifat rahasia. Pesan yang tidak bersifat rahasia biasanya tidak akan terlalu diperhatikan. Yang sangat perlu diperhatikan adalah Pesan yang bersifat rahasia, dimana setiap informasi yang ada didalamnya

akan sangat berharga bagi pihak yang membutuhkan karena data tersebut dapat dengan mudah digandakan. Untuk mendapatkan

informasi didalamnya, biasanya dilakukan berbagai cara yang tidak sah. Salah satu hal penting dalam menjaga kerahasiaan dan

keamanan file teks adalah dengan proses enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang dapat dimengerti menjadi sebuah kode yang tidak dapat dimengerti atau tidak terbaca. Dengan menggunakan kombinasi

algoritma kriptografi, dimana pesan akan disandikan menggunakan algoritma Knapsack, lalu hasilnya (cipherteks) akan

disandikan lagi menggunakan algoritma Base64, diharapkan dapat memperkuat keamanan dari pesan rahasia, sehingga akan

lebih sulit untuk dipecahkan. Jenis file yang akan di uji cobakan adalah file teks (.txt) pada Notepad. Notepad ini memiliki tampilan yang simple, apa adanya dan fitur yang ada memang yang paling sering digunakan, mudah, cepat, dan segudang

kepraktisan lainnya yang tidak didapatkan pada microsoft word.

Kata Kunci : Kriptografi, knapsack, base64, plainteks, cipherteks.

I. PENDAHULUAN

Keamanan merupakan salah satu aspek

terpenting dari sebuah sistem informasi. Masalah

keamanan sering kurang mendapatkan perhatian dari

para perancang dan pengelola sistem informasi.

Masalah keamanan sering berada diurutan setelah

tampilan, atau bahkan diurutan terakhir dalam daftar

hal-hal yang dianggap penting. Secara umum

pesan/data dikategorikan menjadi dua. Pesan yang

bersifat rahasia dan pesan yang tidak bersifat rahasia.

Pesan yang tidak bersifat rahasia biasanya tidak akan

terlalu diperhatikan. Yang sangat perlu diperhatikan

adalah Pesan yang bersifat rahasia, dimana setiap

informasi yang ada didalamnya akan sangat berharga

bagi pihak yang membutuhkan karena data tersebut

dapat dengan mudah digandakan. Untuk mendapatkan

informasi didalamnya, biasanya dilakukan berbagai

cara yang tidak sah. Salah satu hal penting dalam

menjaga kerahasiaan dan keamanan file teks adalah

dengan proses enkripsi. Enkripsi adalah sebuah proses

yang melakukan perubahan sebuah kode dari yang

dapat dimengerti menjadi sebuah kode yang tidak dapat

dimengerti atau tidak terbaca. Enkripsi dapat diartikan

sebagai kode atau chiper. Sebuah chiper menggunakan

suatu algoritma yang dapat mengkodekan semua aliran

data (stream) bit dari sebuah pesan menjadi cryptogram

yang tidak dapat dimengerti (unintelligible), dan untuk

memperoleh kembali informasi yang asli dilakukan

proses dekripsi dengan menggunakan kunci yang

benar.

Dengan menggunakan kombinasi algoritma

kriptografi, dimana pesan akan disandikan

menggunakan algoritma Knapsack, lalu hasilnya

(cipherteks) akan disandikan lagi menggunakan

algoritma Base64, diharapkan dapat memperkuat

keamanan dari pesan rahasia, sehingga akan lebih sulit

untuk dipecahkan. Jenis file yang akan di uji cobakan

adalah file teks (.txt) pada Notepad. Notepad ini

memiliki tampilan yang simple, apa adanya dan fitur

yang ada memang yang paling sering digunakan,

mudah, cepat, dan segudang kepraktisan lainnya yang

tidak didapatkan pada microsoft word. Selain itu jika

tidak menggunakan komputer pribadi, notepad ini

sering digunakan untuk menyimpan catatan singkat

seperti password, kode-kode HTML dll.

Knapsack merupakan algoritma kriptografi

asimetris yang menggunakan kunci publik untuk

mengenkripsi pesan dan menggunakan kunci pribadi

untuk mendeskripsikan pesan. Keamanan algoritma

ini terletak pada sulitnya memecahkan persoalan

knapsack (Knapsack Problem) karena, dengan kunci

publik orang dapat mengenkripsi pesan tetapi tidak bisa

mendekripsinya. Hanya orang yang memiliki kunci

rahasia yang dapat mendekripsi pesan tersebut.

Base64 merupakan salah satu algoritma untuk

Encoding dan Decoding suatu data ke dalam format

ASCII, yang didasarkan pada bilangan dasar 64 atau

bisa dikatakan sebagai salah satu metode yang

digunakan untuk melakukan encoding (penyandian)

terhadap data binary .

II. TEORITIS

A. Kriptografi

Kriptografi berasal dari bahasa Yunani, menurut

bahasa dibagi menjadi dua, yaitu kripto dan graphia.

Kripto berarti secret (rahasia) dan graphia berarti

Page 2: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

553

writing (tulisan). Menurut terminologinya, kriptografi

adalah ilmu dan seni untuk menjaga keamanan pesan

ketika pesan dikirim dari suatu tempat ketempat yang

lain. Kriptografi pada awalnya dijabarkan sebagai ilmu

yang mempelajari bagaimana menyembunyikan pesan.

Namun pada pengertian modern kriptografi adalah

ilmu yang bersandarkan pada teknik matematika untuk

berurusan dengan keamanan informasi seperti

kerahasiaan, keutuhan data dan otentikasi entitas. Jadi

pengertian kriptografi modern adalah tidak saja

berurusan hanya dengan menyembunyikan pesan,

namun lebih pada sekumpulan teknik yang

menyediakan keamanan informasi. [2]

B. Algoritma Knapsack

Algoritma Knapsack adalah algoritma

kriptografi kunci publik, dimana keamanan algoritma

ini terletak pada sulitnya memecahkan persoalan

Knapsack (Knapsack Problem). Knapsack artinya

karung atau kantung, dimana karung mempunyai

kapasitas muat yang terbatas. [4] Tahapan dalam

membuat kunci publik dan kunci privat dalam

algoritma Knapsack adalah sebagai berikut:

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 factor persekutuan dengan m.

3. Hasil perkalian akan menjadi kunci publik

sedangkan barisan superincreasing semula menjadi

kunci privat.

Sedangkan untuk proses enkripsi dilakukan

dengan tahapan sebagai berikut:

1. Enkripsi dilakukan dengan cara yang sama yaitu

dengan menggunakan algoritma Knapsack

sebelumnya.

2. Mula-mula plaintext dipecah menjadi blok bit yang

panjangnya sama dengan kardinalitas barisan kunci

publik.

3. Kalikan setiap bit di dalam blok dengan elemen

yang berkoresponden di dalam kunci publik.

Sementara untuk proses dekripsi dilakukan

dengan tahapan sebagai berikut:

1. Dekripsi dilakukan dengan menggunakan kunci

privat.

2. Awalnya penerima pesan menghitung n–1 , yaitu

balikan n modulo m, sedemikian sehingga n . n–1 ≡

1 (mod m). Kekongruenan ini dapat dihitung

dengan cara sebagai berikut:

a. n . n–1 ≡ 1 (mod m)

b. n . n–1 = 1 + km

c. n–1 = (1 + km)/n, dengan k sembarang bilangan

bulat

d. Kalikan setiap kriptogram dengan n–1 mod m,

lalu nyatakan hasil kalinya sebagai penjumlahan

elemen-elemen kunci privat untuk memperoleh

plaintext dengan menggunakan algoritma

pencarian menjadi superincreasing Knapsack.

C. Algoritma Base64

Transformasi Base64 merupakan salah satu

algoritma untuk Encoding dan Decoding suatu data ke

dalam format ASCII, yang didasarkan pada bilangan

dasar 64 atau bisa dikatakan sebagai salah satu metoda

yang digunakan untuk melakukan encoding

(penyandian) terhadap data binary. Karakter yang

dihasilkan pada transformasi Base64 ini terdiri dari

A..Z, a..z dan 0..9, serta ditambah dengan dua karakter

terakhir yang bersimbol yaitu + dan / serta satu buah

karakter sama dengan (=) yang digunakan untuk

penyesuaian dan menggenapkan data binary atau

istilahnya disebut sebagai pengisi pad. Karakter simbol

yang akan dihasilkan akan tergantung dari proses

algoritma yang berjalan. [11] Dalam Encoding Base64

dapat dikelompokkan dan dibedakan menjadi beberapa

kriteria yang tertera (Wahyu, dkk 2012), seperti yang

dapat dilihat di dalam tabel 1

Tabel 1 Encoding Base64

Data 6

bit

Karakter

Encoding 64

Data 6

bit

Karakter

Encoding 64

0 A 33 H

1 B 34 I

2 C 35 J

3 D 36 K

4 E 37 L

5 F 38 M

6 G 39 N

7 H 40 O

8 I 41 P

9 J 42 Q

10 K 43 R

11 L 44 S

12 M 45 T

13 N 46 U

14 O 47 V

15 P 48 W

16 Q 49 X

17 R 50 Y

18 S 51 Z

19 T 52 0

20 U 53 1

21 V 54 2

22 W 55 3

23 X 56 4

24 Y 57 5

25 Z 58 6

26 A 59 7

27 B 60 8

28 C 61 9

29 D 62 +

30 E 63 /

31 F Pad =

32 G

Teknik encoding Base64 sebenarnya sederhana,

jika ada satu (string) bytes yang akan disandikan ke

Base64 maka caranya adalah : [11]

1. Pecah string bytes tersebut ke per-3 bytes.

2. Gabungkan 3 bytes menjadi 24 bit. Dengan catatan

1 bytes = 8 bit, sehingga 3 x 8 = 24 bit.

Page 3: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

554

3. Lalu 24 bit yang disimpan di-buffer (disatukan)

dipecah-pecah menjadi 6 bit, maka akan

menghasilkan 4 pecahan.

4. Masing masing pecahan diubah ke dalam nilai

decimal, dimana maksimal nilai 6 bit dalah 63.

5. Terakhir, jadikan nilai nilai desimal tersebut

menjadi indeks untuk memilih karakter penyusun

dari base64 dan maksimal adalah 63 atau indeks ke

64.

Dan seterusnya sampai akhir string bytes yang

mau dikonversikan. Jika ternyata dalam proses

encoding terdapat sisa pembagi, maka tambahkan

sebagai penggenap sisa tersebut karakter =. Maka

terkadang pada base64 akan muncul satu atau dua

karakter =.

III. ANALISA

A. Analisa Masalah

Misalkan pesan rahasia (plainteks) yang akan

dienkripsi adalah kata “Serang Markas Musuh”, maka

proses enkripsi dan dekripsinya adalah sebagai berikut:

1. Proses Pembentukan Kunci

Sebelum dilakukan proses enkripsi, terlebih dahulu

dibangkitkan kunci privat untuk menghasilkan

kunci publik. Adapun langkah-langkahnya adalah

sebagai berikut:

a. Input nilai bilangan integer pertama dan kedua

pada barisan superincreasing. Input pula nilai

pertambahan untuk membangkitkan barisan

superincreasing yang nantinya akan menjadi

kunci privat.

b. Pastikan bahwa nilai bilangan ketiga harus lebih

besar dari jumlah bilangan-bilangan

sebelumnya. Nilai tersebut didapat dengan cara

menjumlahkan semua bilangan sebelumnya dan

menambahkannya dengan nilai pertambahan

yang telah diinputkan.

Contoh:

Bilangan pertama = 2, bilangan kedua = 3, nilai

pertambahan = 2

Dengan demikian diperoleh:

Bilangan pertama = 2

Bilangan kedua = 3

Bilangan ketiga = (2+3+2) = 7

Bilangan keempat = (2+3+7+2) = 14

Bilangan kelima = (2+3+7+14+2) = 28

Bilangan keenam = (2+3+7+14+28+2) = 56

Bilangan ketujuh = (2+3+7+14+28+56+2) =

112

Bilangan kedelapan = (2 + 3 + 7 + 14 + 28 + 56

+ 112 + 2) = 224

Maka barisan superincreasing (kunci privat) = 2

3 7 14 28 56 112 224

c. Setelah diperoleh kunci privat, selanjutnya

bangkitkan kunci publik dengan terlebih dahulu

menentukan nilai m dan n, dimana m harus lebih

besar dari jumlah semua elemen didalam barisan

superincreasing (kunci privat) dan n tidak

mempunyai faktor persekutuan dengan m. Lalu

kalikan setiap elemen didalam barisan tersebut

dengan n modulo m.

2. Proses Enkripsi Algoritma Knapsack

Sebelum melakukan proses enkripsi, pertama sekali

yang harus dilakukan adalah melakukan proses

pembentukan kunci publik dan kunci privat seperti

berikut ini:

a. Tentukan barisan superincreasing

Misalkan bilangan pertama = 2, bilangan kedua

= 3 dan nilai pertambahan = 2

Dengan demikian diperoleh:

Bilangan keti ga = (2+3+2) = 7

Bilangan keempat = (2+3+7+2) = 14

Bilangan kelima = (2+3+7+14+2) = 28

Bilangan keenam = (2+3+7+14+28+2) = 56

Bilangan ketujuh = (2+3+7+14+28+56+2) =

112

Bilangan kedelapan = (2 + 3 + 7 + 14 + 28 + 56

+ 112 + 2) = 224

Maka barisan superincreasing (kunci privat) =

{2, 3, 7, 14, 28, 56, 112, 224}

b. Kalikan setiap elemen di dalam barisan tersebut

dengan n modulo m (m seharusnya angka yang

lebih besar daripada jumlah semua elemen di

dalam barisan, sedangkan pengali n seharusnya

tidak mempunyai factor persekutuan dengan m).

Nilai yang dipilih adalah m = 450 dan n = 31

Sehingga bila dihitung hasilnya adalah sebagai

berikut:

(2 * 31) mod 450 = 62

(3 * 31) mod 450 = 93

(7 * 31) mod 450 = 217

(14 * 31) mod 450 = 434

(28 * 31) mod 450 = 418

(56 * 31) mod 450 = 386

(112 * 31) mod 450 = 322

(224 * 31) mod 450 = 194

c. Hasil perkalian akan menjadi kunci publik

sedangkan barisan superincreasing semula

menjadi kunci privat.

Sehingga diperoleh:

Kunci publik = {62, 93, 217, 434, 418, 386, 322,

194}

Kunci privat = {2, 3, 7, 14, 28, 56, 112, 224}

Setelah proses pembentukan kunci selesai

dilakukan, maka tahap selanjutnya adalah

melakukan proses enkripsi.

Adapun tahapan proses enkripsi menggunakan

algoritma Knapsack adalah sebagai berikut:

a. Ubah karakter plainteks menjadi bilangan biner

8 bit. Seperti terlihat pada table 2

Tabel 2 Konversi karakter menjadi bilangan biner 8

bit

Pesan Desimal Biner

S 83 01010011

E 101 01010011

R 114 01110010

A 97 01100001

N 110 01101110

Page 4: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

555

Pesan Desimal Biner

G 103 01100111

Spasi 32 00100000

M 77 01001101

A 97 01100001

R 114 01110010

K 107 01101011

A 97 01100001

S 115 01110011

Spasi 32 00100000

M 77 01001101

U 117 01110101

S 115 01110011

U 117 01110101

H 104 01101000

Setiap bit plainteks dikalikan dengan elemen

yang berkoresponden didalam kunci publik, dimana

kunci publik = {62, 93, 217, 434, 418, 386, 322, 194.

Seperti terlihat pada table 3

Tabel 3 Perkalian bit plainteks dengan elemen yang

berkoresponden pada kunci publik

Biner Kriptogram

01010011 (1 x 93) + (1 x 434) + (1 x 322) + (1 x 194) = 1043

01010011 (1 x 93) + (1 x 217) + (1 x 386) + (1 x 194) = 890

01110010 (1 x 93) + (1 x 217) + (1 x 434) + (1 x 322) = 1066

01100001 (1 x 93) + (1 x 217) + (1 x 194) = 504

01101110 (1 x 93) + (1 x 217) + (1 x 418) + (1 x

386) + (1 x 322) = 1436

01100111 (1 x 93) + (1 x 217) + (1 x 386) + (1 x

322) + (1 x 194) = 1212

00100000 (1 x 217) = 217

01001101 (1 x 93) + (1 x 418) + (1 x 386) + (1 x

194) = 1091

01100001 (1 x 93) + (1 x 217) + (1 x 194) = 504

01110010 (1 x 93) + (1 x 217) + (1 x 434) + (1 x

322) = 1066

01101011 (1 x 93) + (1 x 217) + (1 x 418) + (1 x

322) + (1 x 194) = 1244

01100001 (1 x 93) + (1 x 217) + (1 x 194) = 504

01110011 (1 x 93) + (1 x 217) + (1 x 434) + (1 x 322) + (1 x 194) = 1260

00100000 (1 x 217) = 217

01001101 (1 x 93) + (1 x 418) + (1 x 386) + (1 x

194) = 1091

01110101 (1 x 93) + (1 x 217) + (1 x 434) + (1 x

386) + (1 x 194) = 1324

01110011 (1 x 93) + (1 x 217) + (1 x 434) + (1 x

322) + (1 x 194) = 1260

01110101 (1 x 93) + (1 x 217) + (1 x 434) + (1 x

386) + (1 x 194) = 1324

01101000 (1 x 93) + (1 x 217) + (1 x 418) = 728

Dengan demikian, cipherteks_Knapsack yang

dihasilkan adalah:

1043 890 1066 504 1436 1212 217 1091 504 1066

1244 504 1260 217 1091 1324 1260 1324 728

3. Proses Enkripsi Algoritma Base64

Setelah diperoleh hasil enkripsi Knapsack

(cipherteks_Knapsack), tahap selanjutnya adalah

mengenkripsi cipherteks_Knapsack menggunakan

algoritma Base64, seperti berikut ini:

a. Ubah cipherteks_Knapsak menjadi bilangan

biner 8 bit. Seperti terlihat pada tabel 3.3

Tabel 4 Konversi cipherteks_knapsack menjadi

bilangan biner 8 bit

Karakter Desimal Biner

1 49 00110001

0 48 00110000

4 52 00110100

3 51 00110011

Spasi 32 00100000

8 56 00111000

9 57 00111001

0 48 00110000

Spasi 32 00100000

1 49 00110001

0 48 00110000

6 54 00110110

6 54 00110110

Spasi 32 00100000

5 53 00110101

0 48 00110000

4 52 00110100

Spasi 32 00100000

1 49 00110001

4 52 00110100

3 51 00110011

6 54 00110110

Spasi 32 00100000

1 49 00110001

2 50 00110010

1 49 00110001

2 50 00110010

Spasi 32 00100000

2 50 00110010

1 49 00110001

7 55 00110111

Spasi 32 00100000

1 49 00110001

0 48 00110000

9 57 00111001

1 49 00110001

Spasi 32 00100000

5 53 00110101

0 48 00110000

4 52 00110100

Spasi 32 00100000

1 49 00110001

0 48 00110000

6 54 00110110

6 54 00110110

Spasi 32 00100000

1 49 00110001

2 50 00110010

4 52 00110100

4 52 00110100

Spasi 32 00100000

5 53 00110101

0 48 00110000

4 52 00110100

Spasi 32 00100000

1 49 00110001

2 50 00110010

6 54 00110110

Page 5: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

556

Karakter Desimal Biner

0 48 00110000

Spasi 32 00100000

2 50 00110010

1 49 00110001

7 55 00110111

Spasi 32 00100000

1 49 00110001

0 48 00110000

9 57 00111001

1 49 00110001

Spasi 32 00100000

1 49 00110001

3 51 00110011

2 50 00110010

4 52 00110100

Spasi 32 00100000

1 49 00110001

2 50 00110010

6 54 00110110

0 48 00110000

Spasi 32 00100000

1 49 00110001

3 51 00110011

2 50 00110010

4 52 00110100

Spasi 32 00100000

7 55 00110111

2 50 00110010

8 56 00111000

b. Pecah menjadi per 3 byte, dengan catatan 1 byte

= 8 bit, sehingga 3 x 8 bit = 24 bit. Bila ada yang

tidak lengkap 24 bit (3 byte), maka tambahkan

bit 0 untuk melengkapi (pad).

00110001 00110000 00110100

00110011 00100000 00111000

00111001 00110000 00100000

00110001 00110000 00110110

00110110 00100000 00110101

00110000 00110100 00100000

00110001 00110100 00110011

00110110 00100000 00110001

00110010 00110001 00110010

00100000 00110010 00110001

00110111 00100000 00110001

00110000 00111001 00110001

00100000 00110101 00110000

00110100 00100000 00110001

00110000 00110110 00110110

00100000 00110001 00110010

00110100 00110100 00100000

00110101 00110000 00110100

00100000 00110001 00110010

00110110 00110000 00100000

00110010 00110001 00110111

00100000 00110001 00110000

00111001 00110001 00100000

00110001 00110011 00110010

00110100 00100000 00110001

00110010 00110110 00110000

00100000 00110001 00110011

00110010 00110100 00100000

00110111 00110010 00111000

c. Kemudian bit-bit diatas dipecah menjadi

masing-masing 6 bit.

001100 010011 000000 110100

001100 110010 000000 111000

001110 010011 000000 100000

001100 010011 000000 110110

001101 100010 000000 110101

001100 000011 010000 100000

001100 010011 010000 110011

001101 100010 000000 110001

001100 100011 000100 110010

001000 000011 001000 110001

001101 110010 000000 110001

001100 000011 100100 110001

001000 000011 010100 110000

001101 000010 000000 110001

001100 000011 011000 110110

001000 000011 000100 110010

001101 000011 010000 100000

001101 010011 000000 110100

001000 000011 000100 110010

001101 100011 000000 100000

001100 100011 000100 110111

001000 000011 000100 110000

001110 010011 000100 100000

001100 010011 001100 110010

001101 000010 000000 110001

001100 100011 011000 110000

001000 000011 000100 110011

001100 100011 010000 100000

001101 110011 001000 111000

d. Ubah masing-masing bit menjadi index Base64,

lalu ubah menjadi karakter sesuai table encoding

Base64 (Tabel 2.1), dengan catatan bahwa jika

terdapat pad, maka pad tersebut akan diubah

menjadi karakter “=”. Seperti terlihat pada tabel

5

Tabel 5 Konversi bit menjadi karakter Base64

Bit Desimal Karakter Base64

001100 12 M

010011 19 T

000000 0 A

110100 52 0

001100 12 M

110010 50 Y

000000 0 A

111000 56 4

001110 14 O

010011 19 T

000000 0 A

100000 32 G

001100 12 M

010011 19 T

000000 0 A

110110 54 2

001101 13 N

100010 34 I

000000 0 A

Page 6: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

557

Bit Desimal Karakter Base64

110101 53 1

001100 12 M

000011 3 D

010000 16 Q

100000 32 G

001100 12 M

010011 19 T

010000 16 Q

110011 51 Z

001101 13 N

100010 34 i

000000 0 A

110001 49 x

001100 12 M

100011 35 J

000100 4 E

110010 50 y

001000 8 I

000011 3 D

001000 8 I

110001 49 x

001101 13 N

110010 50 y

000000 0 A

110001 49 x

001100 12 M

000011 3 D

100100 36 k

110001 49 x

001000 8 I

000011 3 D

010100 20 U

110000 48 w

001101 13 N

000010 2 C

000000 0 A

110001 49 x

001100 12 M

000011 3 D

011000 24 Y

110110 54 2

001000 8 I

000011 3 D

000100 4 E

110010 50 y

001101 13 N

000011 3 D

010000 16 Q

100000 32 g

001101 13 N

010011 19 T

000000 0 A

110100 52 0

001000 8 I

000011 3 D

000100 4 E

110010 50 Y

Bit Desimal Karakter Base64

001101 13 N

100011 35 J

000000 0 A

100000 32 G

001100 12 M

100011 35 J

000100 4 E

110111 55 3

001000 8 I

000011 3 D

000100 4 E

110000 48 w

001110 14 O

010011 19 T

000100 4 E

100000 32 g

001100 12 M

010011 19 T

001100 12 M

110010 50 y

001101 13 N

000010 2 C

000000 0 A

110001 49 x

001100 12 M

100011 35 J

011000 24 Y

110000 48 W

001000 8 I

000011 3 D

000100 4 E

110011 51 Z

001100 12 M

100011 35 J

010000 16 Q

100000 32 G

001101 13 N

110011 51 Z

001000 8 I

111000 56 4

Dengan demikian, maka cipherteks_Base64

yang dihasilkan dari proses enkripsi Base64 diatas

adalah:

MTA0MyA4OTAgMTA2NiA1MDQgMTQzNiAxMj

EyIDIxNyAxMDkxIDUwNCAxMDY2IDEyNDQgN

TA0IDEyNjAgMjE3IDEwOTEgMTMyNCA

xMjYwIDEzMjQgNzI4

4. Proses Dekripsi Algoritma Base64

Setelah diperoleh hasil enkripsi Base64

(cipherteks_Base64), tahap selanjutnya adalah

mendekripsikan cipherteks_Base64 menggunakan

algoritma Base64, seperti berikut ini:

a. Ubah semua karakter cipherteks_Base64

menjadi nilai index berdasarkan table encoding

Page 7: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

558

Base64. Setelah itu ubah lagi menjadi bilangan

biner 6 bit. Seperti terlihat pada tabel 6

Tabel 6 Konversi cipherteks_Base64 menjadi bilangan

biner 6 bit

Karakter

Base64 Index Bit

M 12 001100

T 19 010011

A 0 000000

0 52 110100

M 12 001100

Y 24 110010

A 0 000000

4 56 111000

O 14 001110

T 19 010011

A 0 000000

G 32 100000

M 12 001100

T 19 010011

A 0 000000

2 54 110110

N 13 001101

I 34 100010

A 0 000000

1 53 110101

M 12 001100

D 3 000011

Q 16 010000

G 32 100000

M 12 001100

T 19 010011

Q 16 010000

Z 51 110011

N 13 001101

I 34 100010

A 0 000000

X 49 110001

M 12 001100

J 35 100011

E 4 000100

Y 50 110010

I 8 001000

D 3 000011

I 8 001000

X 49 110001

N 13 001101

Y 50 110010

A 0 000000

X 49 110001

M 12 001100

D 3 000011

K 36 100100

X 49 110001

I 8 001000

D 3 000011

U 20 010100

Karakter

Base64 Index Bit

W 48 110000

N 13 001101

C 2 000010

A 0 000000

X 49 110001

M 12 001100

D 3 000011

Y 24 011000

2 54 110110

I 8 001000

D 3 000011

E 4 000100

Y 50 110010

N 13 001101

D 3 000011

Q 16 010000

G 32 100000

N 13 001101

T 19 010011

A 0 000000

0 52 110100

I 8 001000

D 3 000011

E 4 000100

Y 50 110010

N 13 001101

J 35 100011

A 0 000000

G 32 100000

M 12 001100

J 35 100011

E 4 000100

3 55 110111

I 8 001000

D 3 000011

E 4 000100

W 48 110000

O 14 001110

T 19 010011

E 4 000100

G 32 100000

M 12 001100

T 19 010011

M 12 001100

Y 50 110010

N 13 001101

C 2 000010

A 0 000000

X 49 110001

M 12 001100

J 35 100011

Y 24 011000

W 48 110000

I 8 001000

D 3 000011

E 4 000100

Page 8: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

559

Karakter

Base64 Index Bit

Z 51 110011

M 12 001100

J 35 100011

Q 16 010000

G 32 100000

N 13 001101

Z 51 110011

I 8 001000

4 56 111000

b. Lalu pecah menjadi bilangan biner 8 bit.

00110001 00110000 00110100

00110011 00100000 00111000

00111001 00110000 00100000

00110001 00110000 00110110

00110110 00100000 00110101

00110000 00110100 00100000

00110001 00110100 00110011

00110110 00100000 00110001

00110010 00110001 00110010

00100000 00110010 00110001

00110111 00100000 00110001

00110000 00111001 00110001

00100000 00110101 00110000

00110100 00100000 00110001

00110000 00110110 00110110

00100000 00110001 00110010

00110100 00110100 00100000

00110101 00110000 00110100

00100000 00110001 00110010

00110110 00110000 00100000

00110010 00110001 00110111

00100000 00110001 00110000

00111001 00110001 00100000

00110001 00110011 00110010

00110100 00100000 00110001

00110010 00110110 00110000

00100000 00110001 00110011

00110010 00110100 00100000

00110111 00110010 00111000

c. Apabila terdapat bilangan biner 8 bit yang bernilai

0 diakhir, maka harus dibuang.

Selanjutnya ubah semua bilangan biner 8 bit

tersebut menjadi desimal. Setelah itu ubah nilai

desimal menjadi karakter berdasarkan table ASCII

untuk membentuk plainteks_Base64. Seperti

terlihat pada tabel 7

Tabel 7 Konversi Biner 8 bit menjadi karakter ASCII

Biner Desimal Karakter

00110001 49 1

00110000 48 0

00110100 52 4

00110011 51 3

00100000 32 Spasi

00111000 56 8

00111001 57 9

00110000 48 0

Biner Desimal Karakter

00100000 32 Spasi

00110001 49 1

00110000 48 0

00110110 54 6

00110110 54 6

00100000 32 Spasi

00110101 53 5

00110000 48 0

00110100 52 4

00100000 32 Spasi

00110001 49 1

00110100 52 4

00110011 51 3

00110110 54 6

00100000 32 Spasi

00110001 49 1

00110010 50 2

00110001 49 1

00110010 50 2

00100000 32 Spasi

00110010 50 2

00110001 49 1

00110111 55 7

00100000 32 Spasi

00110001 49 1

00110000 48 0

00111001 57 9

00110001 49 1

00100000 32 Spasi

00110101 53 5

00110000 48 0

00110100 52 4

00100000 32 Spasi

00110001 49 1

00110000 48 0

00110110 54 6

00110110 54 6

00100000 32 Spasi

00110001 49 1

00110010 50 2

00110100 52 4

00110100 52 4

00100000 32 Spasi

00110101 53 5

00110000 48 0

00110100 52 4

00100000 32 Spasi

00110001 49 1

00110010 50 2

00110110 54 6

00110000 48 0

00100000 32 Spasi

00110010 50 2

00110001 49 1

00110111 55 7

00100000 32 Spasi

00110001 49 1

Page 9: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

560

Biner Desimal Karakter

00110000 48 0

00111001 57 9

00110001 49 1

00100000 32 Spasi

00110001 49 1

00110011 51 3

00110010 50 2

00110100 52 4

00100000 32 Spasi

00110001 49 1

00110010 50 2

00110110 54 6

00110000 48 0

00100000 32 Spasi

00110001 49 1

00110011 51 3

00110010 50 2

00110100 52 4

00100000 32 Spasi

00110111 55 7

00110010 50 2

00111000 56 8

Dengan demikian, maka plainteks_Base64 yang

dihasilkan dari proses dekripsi Base64 diatas

adalah:

1043 890 1066 504 1436 1212 217 1091 504 1066

1244 504 1260 217 1091 1260 1324 728

5. Proses Dekripsi Algoritma Knapsack

Setelah diperoleh hasil dekripsi Base64

(plainteks_Base64), tahap selanjutnya adalah

mendekripsikan plainteks_Base64 menggunakan

algoritma Knapsack, seperti berikut ini:

a. Tentukan terlebih dahulu nilai n invers dengan

rumus: n-1 = (1+k*m)/n, dimana nilai k adalah

dimulai dari nol (0).

Dengan m = 450, n = 31 dan menggunakan k =

29, maka diperoleh:

n-1 = (1 + 29*450) / 31 = 421

b. Tentukan nilai transformasi masing-masing

plainteks_Base64, lalu nyatakan hasilnya

sebagai penjumlahan elemen-elemen kunci

privat untuk memperoleh plainteks_Knapsack

dengan menggunakan algoritma pencarian

menjadi superincreasing Knapsack sehingga

didapatkan plainteks dalam bentuk biner.

Kunci privat = {2, 3, 7, 14, 28, 56, 112, 224}

1043*421 Mod 450 = 353 = 3 + 14 + 112 + 224,

berkoresponden dengan 01010011

890*421 Mod 450 = 290 = 3 + 7 + 56 + 224,

berkoresponden dengan 01100101

1066*421 Mod 450 = 136 = 3 + 7 + 14 + 112,

berkoresponden dengan 01110010

504*421 Mod 450 = 234 = 3 + 7 + 224,

berkoresponden dengan 01100001

1436*421 Mod 450 = 206 = 3 + 7 + 28 + 56 +

112, berkoresponden dengan 01101110

1212*421 Mod 450 = 402 = 3 + 7 + 56 + 112 +

224, berkoresponden dengan 01100111

217*421 Mod 450 = 7, berkoresponden dengan

00100000

1091*421 Mod 450 = 311 = 3 + 28 + 56 + 224,

berkoresponden dengan 01001101

504*421 Mod 450 = 234 = 3 + 7 + 224,

berkoresponden dengan 01100001

1066*421 Mod 450 = 136 = 3 + 7 + 14 + 112,

berkoresponden dengan 01110010

1244*421 Mod 450 = 374 = 3 + 7 + 28 + 112 +

224, berkoresponden dengan 01101011

504*421 Mod 450 = 234 = 3 + 7 + 224,

berkoresponden dengan 01100001

1260*421 Mod 450 = 360 = 3 + 7 + 14 + 112 +

224, berkoresponden dengan 01110011

217*421 Mod 450 = 7, berkoresponden dengan

00100000

1091*421 Mod 450 = 311 = 3 + 28 + 56 + 224,

berkoresponden dengan 01001101

1324*421 Mod 450 = 304 = 3 + 7 + 14 + 56 +

224, berkoresponden dengan 01110101

1260*421 Mod 450 = 360 = 3 + 7 + 14 + 112 +

224, berkoresponden dengan 01110011

1324*421 Mod 450 = 304 = 3 + 7 + 14 + 56 +

224, berkoresponden dengan 01110101

728*421 Mod 450 = 38 = 3 + 7 + 28,

berkoresponden dengan 01101000

c. Ubah nilai biner 8 bit pada plainteks_Knapsack

menjadi karakter ASCII. Seperti terlihat pada

table 3.7

Tabel 8 Konversi bilangan biner 8 bit pada plainteks_

Knapsack menjadi karakter ASCII

Biner Desimal Pesan

01010011 83 S

01010011 101 e

01110010 114 r

01100001 97 a

01101110 110 n

01100111 103 g

00100000 32 Spasi

01001101 77 M

01100001 97 a

01110010 114 r

01101011 107 k

01100001 97 a

01110011 115 s

00100000 32 Spasi

01001101 77 M

01110101 117 u

01110011 115 s

01110101 117 u

01101000 104 h

Dengan demikian maka diperoleh kembali plainteks

asli “Serang Markas Musuh”.

IV. IMPLEMENTASI

A. Implementasi Sistem

Page 10: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

561

Implementasi sistem program ini mencakup

spesifikasi kebutuhan perangkat keras (hardware) dan

spesifikasi perangkat lunak (software).

Tampilan program terdiri dari print screen dari

tampilan input, output, danproses yang dirancangan.

Adapun tampilan program yang dirancang adalah

sebagai berikut:

1. Tampilan Menu Utama

Ketika aplikasi dijalankan, maka yang pertama kali

tampil adalah halaman utama. Pada halaman utama

ini terdapat 6 buah menu, yaitu menu pembentukan

kunci, proses enkripsi, proses dekripsi, tentang

mahasiswa, tentang aplikasi dan keluar. Tampilan

halaman utama dapat dilihat pada gambar 1

Gambar 1 Tampilan Halaman Utama

2. Tampilan Halaman Pembentukan Kunci

Knapsack

Halaman pembentukan kunci knapsack ini

berfungsi untuk membentuk kunci publik dan kunci

privat algoritma Knapsack. Dimana kunci publik

nantinya akan digunakan untuk melakukan proses

enkripsi dan kunci privat nantinya akan digunakan

untuk melakukan proses dekripsi. Tampilan

Halaman pembentukan kunci dapat dilihat pada

gambar 2

Gambar 2 Tampilan Halaman Pembentukan Kunci

3. Halaman Enkripsi

Halaman enkripsi merupakan halaman yang

digunakan untuk melakukan proses enkripsi file

teks (plainteks). Untuk melakukan proses enkripsi,

plainteks dapat diinputkan dengan 2 cara. Pertama

dengan mengetiknya langsung pada textarea atau

yang kedua dengan cara mencari file teks

menggunakan tombol Open File. Dan untuk kunci

publik Knapsack, sistem akan memanggil kunci

publik tersebut ketika halaman enkripsi muncul dan

menampilkannya pada textbox. Tampilan halaman

enkripsi dapat dilihat pada gambar 3

Gambar 3 Tampilan Halaman Enkripsi

4. Halaman Dekripsi

Halaman dekripsi ini merupakan halaman yang

digunakan untuk melakukan proses dekripsi. Untuk

melakukan proses dekripsi, user harus mencari file

teks (cipherteks) menggunakan tombol Open File.

Untuk kunci privat Knapsack, nilai M dan nilai N,

sistem akan memanggil kunci privat, nilai M dan

nilai N yang pernah disimpan lalu menampilkannya

pada textbox ketika halaman dekripsi muncul

pertama. Halaman dekripsi dapat dilihat pada

gambar 4

Gambar 4 Tampilan Halaman Dekripsi

B. Hasil Pengujian Program

Hasil pengujian program menampilkan hasil

output dari sebuah input data pada aplikasi yang telah

siap. Untuk pengujian programnya bisa kita lihat

sebagai berikut:

1. Proses Pembentukan Kunci

Sebelum melakukan proses enkripsi, pertama-tama

user harus menciptakan pasangan kunci publik dan

kunci privat terlebih dahulu, yang nantinya akan

digunakan untuk melakukan proses enkripsi dan

dekripsi pada algoritma Knapsack. Untuk

melakukan proses pembentukan kunci, jalankan

aplikasi sehingga akan muncul halaman utama.

Lalu klik menu Pembentukan Kunci, sehingga

halaman pembentukan kunci akan muncul.

Selanjutnya ketikkan nilai bilangan 1, nilai bilangan

2, dan juga nilai penambahannya. Setelah itu klik

tombol Proses Kunci untuk menciptakan nilai M,

nilai N, kunci publik dan juga kunci privat. Seperti

yang terlihat pada gambar 5

Page 11: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

562

Gambar 5 Proses Pembentukan Kunci Algoritma

Knapsack

2. Proses Enkripsi

Setelah proses pembentukan kunci Knapsack

berhasil dilaksanakan, tahap selanjutnya adalah

melakukan proses enkripsi. Klik menu Proses

Enkripsi yang terdapat pada halaman utama,

sehingga akan muncul halaman enkripsi. Pada saat

halaman enkripsi muncul, maka sistem juga akan

menampilkan kunci publik algoritma Knapsack

yang telah disimpan sebelumnya, sehingga nantinya

akan dapat digunakan untuk melakukan proses

enkripsi. Kemudian klik tombol Open File untuk

mencari file teks asli (plainteks) yang akan di

enkripsi. Misalkan file teks yang akan di enkripsi

adalah “Kriptografi.txt” seperti yang terlihat pada

gambar 6

Gambar 6 Plainteks yang akan di enkripsi

Setelah plainteks muncul, selanjutnya klik tombol

Enkripsi untuk melakukan proses enkripsi. Setelah

proses enkripsi selesai dilakukan maka akan

menghasilkan cipherteks dan juga lamanya waktu

proses enkripsi. Serta akan muncul juga pemberitahuan

seperti terlihat pada gambar 7

Gambar 7 Proses Enkripsi Telah Selesai

Selanjutnya klik tombol “Save File” untuk

menyimpan file teks hasil proses enkripsi. Misalkan file

teks hasil enkripsi diberi nama “Cipherteks

Kriptografi.txt”, sehingga akan muncul pemberitahuan

bahwa file berhasil disimpan seperti yang terlihat pada

gambar 8

Gambar 8 Pemberitahuan File Hasil Enkripsi Berhasil

Disimpan

Setelah proses enkripsi selesai dilakukan dan hasilnya

berhasil disimpan, selanjutnya klik tombol Keluar

untuk menutup halaman enkripsi dan kembali ke

halaman utama.

V. KESIMPULAN

Berdasarkan hasil pengujian yang telah

dilakukan maka penulis mengambil beberapa

kesimpulan, diantaranya adalah sebagai berikut :

1. Sistem yang dibangun dapat mengamankan

(mengenkripsi) file teks dengan menggunakan

algoritma Knapsack dan Base64, serta

mengembalikan (mendekripsikan) kembali

dengan baik.

2. Semakin panjang jumlah karakter yang

dienkripsi, maka waktu yang dibutuhkan juga

akan semakin lama.

3. meningkatkan keamanan file teks dari tindakan-

tindakan pengerusakan atau hal-hal lain dari

orang-orang yang tidak bertanggung jawab.

4. Menghasilkan aplikasi yang dapat digunakan

untuk mengenkripsi dan dekripsi file teks dengan

menggunakan algoritma Knapscak dan Base64.

Page 12: IMPLEMENTASI ALGORITMA KNAPSACK DAN BASE64 PADA …

Jurnal Pelita Informatika, Volume 7, Nomor 4, April 2019

ISSN 2301-9425 (Media Cetak)

Hal: 552-563

563

REFERENCES

[1] Andi, Visual Basic 2012 Programming, Semarang, Wahana

Komputer. 2013

[2] Dony Ariyus, Kriptografi Keamanan Data dan Komunikasi,

Bandung, Graha Ilmu. 2006

[3] Dony Ariyus, Pengantar Ilmu Kriptografi Teori Analisis dan

Implementasi, Yogyakarta, Andi Offset. 2008

[4] Irawan R, Ilhamsyah dan Brianorman Y, 2015, Aplikasi

Enkripsi dan Dekripsi Pesan Singkat Menggunakan Algoritma

Knapsack Berbasis Android.

http:/jurnal.untan.ac.id/index.php/jcskommipa/article/downlo

ad/11753/1101

[5] Kusrini, M.kom,“Konsep dan Aplikasi Sistem Pendukung

Keputusan”,Penerbit Andi,Yogyakarta,2007.

[6] Kurniawan, Bahasa Baru untuk Dynamic Programming, Jakarta.

2011

[7] Nina Setyaningsih, “Profesional Pemrograman Visual Basic

2008", Penerbit Salemba Infotek, Jakarta, 2009

[8] Sentot Kromodimoeljo, 2010, Teori dan Aplikasi Kriptografi,

SPK Consuling.

http://download833.mediafire.com/xq74t9vavc6g/fxrzj3zug6

u1t2u/TeoridanAplikasiKriptografi.pdf

[9] Suarga, Algoritma dan Pemrograman, Yogyakarta, Andi

Offset. 2012

[10] Syaputra H dan Herdiyatmoko, 2012, Aplikasi Enkripsi Data

Pada File Teks Dengan Algoritma Rsa (Rivest

Shamir Adleman). http:download.portalgaruda.org/article.php?article=113607&

val=5187&title

[11] Wahyu F C, Rahangiar A P dan De Fretes F, 2012, Penerapan

Algoritma Gabungan RC4 dan Base64 Pada Sistem

Keamanan E-Commerce. http://journal.uii.ac.id/index.php/Snati/article/download/2873

/2628 [12] Widodo, Prabowo Pudjo dan Herlawati, Menggunakan UML,

Bandung Informatika. 2011