Anda di halaman 1dari 14

PEMBUATAN APLIKASI KRIPTOGRAFI ALGORITMA

BASE64 MENGGUNAKAN JAVA JDK 1.6

HAYATUN NUFUS
Jurusan Sistem Informasi
Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Gunadarma
hello_nufuzZ@yahoo.co.id
06 September 2009

ABSTRAKSI
Keamanan data merupakan hal yang sangat penting dalam menjaga
kerahasiaan informasi terutama yang berisi informasi sensitif yang hanya boleh
diketahui isinya oleh pihak yang berhak saja, apalagi jika pengirimannya dilakukan
melalui jaringan publik, apabila data tersebut tidak diamankan terlebih dahulu, akan
sangat mudah disadap dan diketahui isi informasinya oleh pihak-pihak yang tidak
memiliki wewenang.
Salah satu cara yang digunakan untuk pengamanan data adalah menggunakan
sistem kriptografi yaitu dengan menyediakan isi informasi (plaintext) tersebut
menjadi isi yang tidak dipahami melalui proses enkripsi (encipher), dan untuk
memperoleh kembali informasi yang asli, dilakukan proses deskripsi (decipher),
disertai dengan menggunakan kunci yang benar. Untuk membangun aplikasi yang
terkomputerisasi ini, saya selaku penulis menggunakan Java JDK 1.6 dan NetBeans
IDE 6.0 sebagai aplikasi pendukungnya. Aplikasi ini dibuat dalam Platform Windows
sehingga memudahkan pemakai untuk menggunakannya.
Dalam pembuatan desain implementasi teknik kriptografi untuk pengaman
file teks dengan menggunakan algoritma kriptografi Standard RFC 1521 Base 64
Alphabet yang digunakan untuk implementasi enkripsi dan deskripsi file teks sebagai
komunikasi yang aman.
Kata Kunci : Kriptografi, Algoritma Base64
1

1. PENDAHULUAN

Oleh

1.1 Latar Belakang

karena

penulis

ingin

menanggapi masalah keamanan data

Ada cara yang lebih baik

dan sebagai bahan dalam penyusunan

untuk mengamankan filetext agar sulit

skripsi,

diketahui oleh pihak-pihak yang tidak

mngembangkan aplikasi kriptografi

diinginkan

yang menggunakan gabungan dari

yaitu

dengan

cara

maka

mengenkripsi (encrypt) pesan (file)

teknik

tersebut

beroperasi

menjadi

karakter-karakter

penulis

kriptografi
pada

mencoba

klasik
mode

namun

bit,

yaitu

acak yang tidak dimengerti sehingga

Algoritma base64 yang lebih mudah

hanya bagi seseorang yang memiliki

dalam

kunci

Aplikasi

(key)

mengembalikan

yang
pesan

dapat
kebentuk

pengimplementasiaanya.
ini

dibuat

dengan

menggunakan bahasa pemrograman

semula.

Java JDK 1.6.

Saat ini, banyak algoritmaalgoritma

kriptografi

2. LANDASAN TEORI

bermunculan

2.1 Java
-

sebagai teknik untuk mengamankan

Java adalah sebuah bahasa

data. Algoritma ini pada dasarnya

pemrograman

dibagi menjadi algoritma klasik dan

berbasiskan

modern. Algoritma klasik beroperasi

Oriented

dalam

mode

karakter,

sedangkan

komputer
kepada

pemrograman

Object

Programming
berbasiskan

algoritma modern beroperasi dalam

objek ) yang sederhana dan

mode bit.

tidak tergantung pada platform


2

yang digunakan. Bahasa ini

provider juga sudah tersedia

dikembangkan
Microsystem

oleh

Sun

secara

Corp.

dan

didalam java.security, security

memiliki banyak keunggulan,

dan

portable

2.2 Graphical User Interface (GUI)

(dapat

GUI merupakan suatu metode

dipindah-pindahkan di antara

untuk antar muka komputer berbasis

bermacam platform dan sistem

grafis.

operasi).

pembuatan program aplikasi dengan

JavaTM Cryptography Extension

mempertimbangkan dua aspek yaitu

(JCE) adalah sarana frame

keindahan tampilan dan kemudahan

kerja yang diimplementasikan

dalam penggunaan program.

dalam

2.3 IDE NetBeans 6.0

pembuatan

algoritma

kriptografi dalam encryption,

GUI

digunakan

Netbeans

dalam

sebagai

IDE

key generation, and decryption

(Interface

Didukung

Environtment) ditujukan untuk

dengan

untuk
kunci

enkripsi
simetrik,

Development

memudahkan

asimetrik, blok, dan cipher

pemrograman

interface
-

aliran.
-

diregistrasi

properties.

seperti sederhana, ukurannya


kecil,

otomatis

Memiliki fiture lebih baik dari

JCE sudah tersedia didalam

software

sepertinya

yaitu

optional package (Extension)

Module

Matisse

GUI

pada JavaTM 2 SDK. SunJCE

(Graphical

User

Interface)

Builder

yang

bersifat

Kriptografi adalah ilmu dan

ligtweight untuk memudahkan

seni untuk menjaga keamanan pesan

perancangan layout

yang bertujuan menjaga kerahasiaan

Pemrograman

informasi yang terkandung dalam data

dilakukan

dengan knsep free-design

sehingga informasi tersebut tidak dapat

Memudahkan untuk membuat

diketahui

aplikasi

bertanggung jawab.

desktop

dengan

oleh

pihak

yang

tidak

fasilitas yang dapat langsung

Dalam menjaga kerahasiaan

digunakan di berbagai paltform

data, kriptografi mentransformasikan

tanpa

data jelas (plaintext) ke dalam bentuk

harus

menginstal

software pendukungnya

data sandi (ciphertext) yang tidak

Memiliki fiture debugger untuk

dapat dikenali. Ciphertext inilah yang

mengetahui

kemudian dikirimkan oleh pengirim

dimana

terjadi

error

(sender) kepada penerima (receiver).

Memiliki fiture tooltip dimana

Setelah sampai di penerima, ciphertext

dapat diketahui cara perbaikan

tersebut ditranformasikan kembali ke

untuk error

dalam bentuk plaintext agar dapat

Berlisensikan

Sun

dikenali.

Public

2.5 Algoritma Base64

License atau open source

Algoritma Base64 merupakan

2.4 Kriptografi

algoritma yang menggunakan salah


satu konsep algoritma enkripsi modern
4

yaitu algoritma Block Cipher yang

Mail Extensions)/RFC 1521. RFC ini

yang berupa operasi pada mode bit

menegaskan sebuah standar untuk

namun algortma Base64 ini lebih

implementasi Base64 terhadap data

mudah dalam pengimplementasiannya

binary

dari algoritma-algoritma yang lainnya.

karakter padding = jika terdapat

3. ANALISA DAN PEMBAHASAN

kekurangan

MASALAH

Dalam streaming base64, spesifikasi

3.1 Analisa Masalah

mengharuskan setiap baris menjadi

Base64 adalah metoda yang


untuk

melakukan

dan

melampirkan

sebuah

pada

byte.

paling banyak 76 basis-64 karakter.

encoding

Tabel 3.1 Index Base64

(penyandian) terhadap data binary


menjadi format 6-bit character. Pada
algoritma

ini,

rangkaian

bit-bit

palainteks dibagi menjadi blok-blok bit


dengan panjang yang sama, biasanya
64 bit yang direpresentasikan dengan
karakter ASCII. Base64 menggunakan
Di

karakter A Z, a z dan 0 9 untuk

bawah

ini

merupakan

sebuah contoh mudah mengkonversi

62 nilai pertama, sedangkan 2 nilai

kata nuf (decimal 110, 117, 102)

terakhir digunakan symbol (+ dan /).

menjadi dasar Notasi 64.

Standar yang penulis gunakan

'01101110 01110101 01100110'

adalah MIME (Multipurpose Internet


5

Ini 8-bit string dibagi ke dalam dua set

tersebut dapat diwakili dengan satu

6 bit dan 4 blok.

byte dari 64 karakter dari Base64

'011011 100111 010101 100110

diikuti oleh dua karakter padding.

Untuk mengkonversi 6-bit angka,

Padding karakter yang telah ditentukan

maka rubah lagi ke dalam bentuk

adalah '='.

decimal yang didapatkan 27, 39, 20,

Mari mempertimbangkan

dan 38 yang jika dilihat pada dasar

contoh string s dengan decimal 115

abjad-64 pada tabel diatas, maka

berikut :

didapatkan alphabet bNUm. Namun

'01110011'

jika string biner tidak tepat dibagi

Contoh pad single-byte dengan dua

dalam 6-bit dan urutan biner tidak

byte dari angka nol.

merupakan ukuran 3 byte, maka

'00000001 00000000 00000000 '

Base64

Sekarang biner tersebut di set urutan

mengaturya

menambahkan
terakhir.

padding

Sebagai

dengan
pada

contoh

bit

enam byte.

kata

'000000 ''010000''000000 ''000000'

nufus, maka akan dipisah menjadi

Setelah di set, maka ditemukan

nuf dan us+1byte.

karakter berdasarkan Base64 adalah

Dalam kasus ini, jika diberikan

AQ==. Begitu pula pada

contoh di mana satu byte yang tersisa,

penambahan-penambahan padding

maka perlu tambahan dua byte pad

lainnya.

dengan semua zeros sampai akhir


urutan biner.

Selanjutnya, contoh proses

Kemudian satu byte

dekripsi. Contoh bNUm diatas, lalu


6

dirubah menjadi angka Index 27, 39,


20, dan 38.
Kemudian ubah menjadi 6-bit biner.
'011011 100111 010101 100110
Set 6-bit, diubah kedalam 8-bit string.
'01101110 01110101 01100110'
Maka akan dihasilkan angka decimal
110, 117, dan 102 dimana karakterkarakter semulanya adalah nuf jika
dilihat pada abel ASCII.
Berdasarkan

contoh-contoh

yang dapat dilihat, maka algoritma


umum proses encoding dari ASCII ke
Base64 adalah sebagai berikut
Gambar 3.1 Diagram alur algoritma
konversi ASCII Base64
Algoritma kriptografi Base64
ini

sebenarnya

menggunakan

algoritma kunci simetris atau disebut


juga

algoritma

kriptografi

konvensional, yaitu algoritma yang


menggunakan kunci untuk proses
7

enkripsi sama dengan kunci untuk

deskripsi.

Tahap

pertama

proses dekripsi. Dibawah ini adalah

pemilihan

teks

gambar proses enkripsi dan dekripsi

(plainteks), yang akan diubah menjadi

dari aplikasi :

isi yang tidak dipahami melalui proses

atau

adalah

informasi

enkripsi (encipher), proses tersebut


menghasilkan
enkripsi
Gambar 3.2 Proses Encrypt Decrypt

simulasi

kunci
algoritma

tahap

enkripsi

dan

file

yaitu

kunci

file
(yang

digunakan

pada

saat

memperoleh kembali informasi yang

Base64 terdiri dari dua tahap besar,


yaitu

dan

file

dinamakan enkripsi konvensional), file

Aplikasi
Pada

dua

asli (decipher).

tahap

3.2 Metodologi Enkripsi

3.3 Metodologi Dekripsi

Gambar 3.4 Flowchart Dekripsi


4. Implementasi
4.1 Implementasi Output

Gambar 3.3 Flowchart Enkripsi

Implementasi perancangan user


interface

4.3 Flowchart Program

bertujuan

mengimplementasikan

semua

hasil

perancangan kedalam dunia nyata,


agar dapat dipergunakan oleh user.
Implementasi

ini

menggunakan

software Netbeans 6.0 yang berbasis


Java.
4.2 Bagan Struktur

Gambar 4.2 flowchart Program


4.4 Tampilan Antarmuka Pengguna
(User Interface)
4.4.1 Pembuatan Menu Utama
Langkah
aplikasi
Netbeans

ini
6.0.

pembuatan

tampilan

menggunakan

langkah-langkahnya

adalah sebagai berikut :


1. Jalankan Netbeans 6.0

Gambar 4.1 Struktur Navigas


9

IDE

2. Pilih Menu File kemudian

Seperti

New Project setelah itu akan

pada

gambar

dibawah ini :

keluar Jendela New Project


3. Pada kotak Categories pilih
Java

dan

Projects

pada
pilih

kotak
Java
Gambar 4.3 Kotak Dialog New Java

Aplication dan klik Next.

Application

4. Ubah nama Project Name


sesuai

yang

Sampai

diinginkan.

class atau form seperti dibawah ini.

untuk menyimpan project.

1. Klik kanan pada node enkripsi

Contoh :
Document

pilih New dan pilih JFrame

and

Form.

setting\Nufus_Cute\Desktop

2. Pada

\enkripsi.

klik

JFrame

misalnya EnkripsiView.

main

3. Isi juga package yang kita

class. Contoh : EnkripsiApp.


itu

New

Frame pada textbox class name

Main Project dan beri nama


pada Create

jendela

Form, isikan nama class untuk

6. Centang pada label Set As

Setelah

diatas

untuk selanjutnya tinggal membuat

5. Pilih lokasi yang diinginkan

kelas

tahap

berarti satu project telah tercipta dan

Contoh : enkripsi.

C:\My

pada

inginkan pada textbox package

Finish.

misalnya

10

enkripsi kemudian

klik finish. Seperti gambar

menjalankan

program dan memilih

dibawah ini :

menu Enkripsi ,juga merupakan menu


utama. Dan tampilan decrypter juga
terdapat pada menu utama setelah
memilih

menu

dekripsi,

hasilnya

seperti gambar dibawah ini :


Gambar 4.4 Kotak Dialog New JFrame
Form
4. Tambahkan

komponen-

komponen yang dibutuhkan,


lalu atur tampilan sedemikian
rupa

hingga

tampak

pada

Gambar 4.6 Tampilan Decrypter

gambar di bawah ini :

4.4.2

Pembuatan Tampilan About


Encryption

1. Buatlah sebuah jDialog, lalu


ubah

Class

Name

EnkripsiAboutBox,

menjadi
atur

package-nya seperti gambar


Gambar 4.5 Tampilan Menu
dibawah ini :
Utama (Encrypter)
Encrypter File adalah tampilan
yang

muncul

pertama

kali

saat
11

sebagai berikut :
1. Sorot project Enkripsi
2. Klik kanan dan pilih Build.
Hasil build akan tersimpan
Gambar 4.7 Kotak Dialog New

pada

JDialog Form
2. Tambahkan
yang

lalu

nama

ubah

3. Aplikasi

dibutuhkan
form

penyimpanan

poject, yaitu pada folder dist.

komponen-

komponen

lokasi

yang

dihasilkan

bentuk file yang bertipe JAR.

ini
Untuk

menjadi About Encryption, lalu

menjalankan

aplikasi

ini, klik 2 kali pada file JAR dalam

atur tampilan sedemikian rupa

folder dist dan aplikasi akan dijalankan

hingga tampak pada gambar di

sama seperti saat me-running program

bawah ini :

di Netbeans.
4.4 Cara Menggunakan Aplikasi
Aplikasi ini dibuat hanya untuk
encrypt dan decrypt pada file text agar
pesan tersebut dapat sampai ke tangan
Gambar 4.8 Tampilan About
orang yant tepat dan dapat dpergunakn
Encryption
ssesuai fungsinya. Berikut adalah cara
4.4.3 Build Program

penggunaan aplikasi, yaitu :

Langkah-langkah build adalah

12

1. Jalankan aplikasi yang telah di-

3. Untuk men-decrypt, masih

build pada folder dist.

pada tampilan menu utama lalu

2. Setelah muncul tampilan menu

pilih menu Dekripsi kemudian

utama (Encrypt), lalu pilih

masukkan file ter-encrypt

menu Enkripsi dan masukkan

beserta kuncinya lalu tekan

file text yang akan di-encrypt

tombol Proses Dekripsi seperti

kamudian tekan tombol Proses

pada gambar dibawah ini :

Enkrpsi, seperti gambar


dibawah ini :

Gambar 4.12 Dekripsi File


Text
Gambar 4.9 Enkripsi File Text

4. Lihat hasilnya pada lokasi asal

Maka akan dihasilkan file text

file tersebut, akan ditemukana

yang telah terenkripi beserta

file yang telah di-decrypt yang

file kuncinya.

bersi file semula.


5. KESIMPULAN
Aplikasi ini dibuat bertujuan

Gambar 4.10 Encrypt File

sebagai salah satu cara yang lebih


baik yang mempermudah bagi
Gambar 4.11 Key File

siapa

13

saja

untuk

dapat

mengamankan

sendiri

filetext

http://www.di-

(berisi teks rahasia) dengan cara

mgt.com.au/encode_encrypt.html,

memilih filetext yang akan di-

15 Juni 2009, 15:00.

encrypt maka secara otomatis akan

[4] Tutorial Base64

terbentuk ciphertext (text yang

http://www.source-code.biz,

sudah disandikan) besama dengan

Juni 2009, 13.30.

23

key file yang kemudian digunakan

[5] Pemanfaatan MIME Base64.pdf

untuk mengembalikan ciphertext

http://www.kbcafe.com/artikel/

kebentuk teks semula. Aplikasi ini

23 Juni 2009, 20.30.

dirancang

sebagai

Desktop

[6]

Aplication.

Kadir,

Abdul,

Dasar

Pemrograman

6. REFERENSI

Java 2, Yogyakarta, Andi, 2003

[1] Hartati, A. Sri, Pemrograman GUI

[7] Munir, Rinaldi, Kriptografi,

Swing Java dengan Netbeans 5,

Bandung. Informatika, 2006

Yogyakarta, Andi, 2006

[8] Supandi, Ir. Yuniar, Belajar Semua

[2]How to Encode a String to Base64

Edisi Java 2 untuk Segala Tingkat,

WithJava

Jakarta, P.T Elex Media

http://www.dimgt.com.au/decode_d

komputindo, 2009

ecrypt.html, 2 April 2009, 10:55.


[3] Base64 Encoder/Decoder in Java

14

Anda mungkin juga menyukai