Anda di halaman 1dari 12

Isu dan Prinsip Proteksi Teknologi Informasi

Enkripsi Transposisi Kolom menggunakan Software Netbeans (java)

Nama : I Wayan Andis Indrawan


NIM

: 1304505014 (Genap)

Kelas : Isu dan Prinsip Proteksi TI (A)

Jurusan Teknologi Informasi


Fakultas Teknik
Universitas Udayana
2015

BAB I
PENDAHULUAN

I.

Latar Belakang
Ilmu kriptografi adalah ilmu yang mempelajari tentang penyembunyian huruf atau

tulisan sehingga membuat tulisan tersebut tidak dapat dibaca oleh orang yang tidak
berkepentingan. Kriptografi sudah dipakai sejak jaman Julius Caesar dimana akan
mengirimkan pesan kepada panglimanya tetapi tidak mempercayai kurir pembawa pesan
tersebut. Kriptografi mempunyai 2 (dua) bagian yang penting, yaitu enkripsi dan dekripsi.
Enkripsi adalah proses dari penyandian pesan asli menjadi pesan yang tidak dapat diartikan
seperti aslinya. Sedangkan deskripsi adalah merubah pesan yang sudah disandikan menjadi
pesan aslinya. Pesan asli biasanya disebut plaintext, sedangkan pesan yang sudah disandika
disebut ciphertext. Pada kesempatan kali ini akan dibahas secara spesifik mengenai
pembuatan program enkripsi transposisi kolom menggunakan bahasa java. Selain itu juga
akan dijelaskan mengenai flow chart dari program, pembuatan program serta bagaimana
program tersebut berjalan.
II.

Rumusan Masalah
Beranjak dari latar belakang diatas, dapat diangkat beberapa permasalah yang

nantinya akan di bahas pada BAB II. Masalah tersebut antara lain,
1.
2.
3.
4.
5.
6.
7.

Apa itu kriptografi?


Apa itu enkripsi dan deskripsi?
Apa yang dimaksud dengan transposisi?
Apa itu transposisi kolom?
Bagaimana flow chart dari program transposisi kolom?
Bagaimana source code dari program transposisi kolom dengan bahasa java?
Bagaimana teknis kerja dari program tersebut?

BAB II
PEMBAHASAN
I.

Kriptografi

Kriptografi berasal dari bahasa yunani, menurut bahasa dibagi menjadi dua kripto dan
graphia, kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut
teminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan
di kirim dari suatu tempat ketempat yang lain.
Implementasi dari kriptografi sangat banyak bisa kita temui dalam kehidupan seharihari, seperti Automatic Teller Machine (ATM),Penggunaan ATM untuk banking, bahkan
mulai meningkat menjadi Internet Banking, Mobile Banking, Komunikasi elektronik seperti
telepon tetap, cellular, SMS, MMS. 3G, Komunikasi via Internet seperti email, messaging,
chatting, Voice Call dan E-Government , E-Commence.
Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000
tahun yang lalu oleh raja-raja Mesir pada saat perang untuk mengirimkan pesan rahasia
kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini
disebut kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau
memecahkan

suatu

algoritma

kriptografi

tanpa

harus

mengetahui

kuncinya

disebut kriptanalis.
II.

Enkripsi dan Deskripsi


Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan proses

dekripsi. Proses enkripsi adalah proses penyandian pesan terbuka menjadi pesan rahasia
(ciphertext). Ciphertext inilah yang nantinya akan dikirimkan melalui saluran komunikasi
terbuka. Pada saat ciphertext diterima oleh penerima pesan, maka pesan rahasia tersebut
diubah lagi menjadi pesan terbuka melalui proses dekripsi sehingga pesan tadi dapat dibaca
kembali oleh penerima pesan.
III.

Transposisi
Kriptografi klasik terbagi menjadi dua kategori utama, yaitu metode penyandian

transposisi dan metode penyandian substitusi. Metode penyandian transposisi adalah metode
penyandian dengan cara mengubah letak dari teks pesan yang akan disandikan. Dan untuk
membaca pesan aslinya kembali, cukup dengan mengembalikan letak dari pesan tersebut
berdasarkan kunci dan algoritma pergeseran huruf yang telah disepakati.
Terdapat beberapa algoritma dalam metode penyandian transposisi yaitu :
1. Penyandian transposisi rail fence
2. Penyandian transposisi route
3. Penyandian transposisi kolom

4. Penyandian transposisi ganda


5. Penyandian transposisi Myszkowski
IV.

Transposisi Kolom

Penyandian Transposisi Kolom dituliskan secara baris dengan panjang yang telah
ditentukan sebagai kunci-nya. Teks sandi-nya dibaca secara kolom demi kolom dengan
pengacakan melalui permutasian angka kuncinya. Panjang baris dan permutasian kolomnya
disebut sebagai kata kunci.
Start

Dalam prosesnya, kata kunci tersebut didefinisikan dahulu dengan angka sesuai
urutan abjad. Sedangkan proses untuk mengembalikan ke teks sandi ke teks aslinya dilakukan
langkah kebalikan darinya. Input (key)
Y Input (plaintext)

Lebih mudahnya dapat dilihat dalam contoh berikut :

Baris <- roundup ( panjang (plaintext/key)

Teks pesan asli : SAYA


DENGAN CANDRA HEHE
Kolom <-CINTA
key
Kata kunci : ANDIS yang berarti 5 kolom
Proses : ANDIS didefinisikan
sesuai urutan abjad menjadi 1 4 2 3 5
Matriks [baris][kolom]

1 4 2 3 5
S A Y A C
I N T A D
E N G A N

Int posisi <- 0;

For I <- 0 to
kolom do
For j <- 0 to
baris do

C A N D R
A H E H E

If posisi < panjang (plaintext) ;

Matriks[j][i] = "Z";

Hasil penyandian (teks sandi) :

ANMDH UACAX CSAHY KTARE


IANEZ
Matriks[j][i] =
plaintext.charAt(posisi
);
Posisi++

V.

Flow Chart Transposisi


Kolom
For I <- 0 to baris
do

Berikut merupakan flow


For jchart
<- 0 to dari program transposisi kolom yang dibuat sesuai
kolom do

algoritma pengerjaan enkripsi dari transposisi kolom tersebut.


Output (matriks[i]
[j])

End

Gambar 1. Flow Chart Program Transposisi Kolom

VI.

Source Code Transposisi Kolom


Berikut merupakan source code yang digunakan untuk membuat program transposisi

kolom dengan menggunakan bahasa java pada aplikasi netbeans. Terdapat 2 class yang

tersimpan dalam 1 package yakni class mainkriptoclass dan class transposisikolom. Dibawah
ini akan dipaparkan kode programnya.
package mainkripto;
import java.util.ArrayList;
/**
*
* @author IWayanAndisIndrawan
*/
class transposisikolom {
public ArrayList<String> keyWords = new ArrayList<String>();
public char[][] plainText;
public char[] chipperText;
public void transKolom(String msgInput){
int[] intKW = new int[keyWords.size()];
int temp;
if(msgInput.length()%keyWords.size() != 0){
plainText = new char[msgInput.length()/keyWords.size()+1]
[keyWords.size()];
} else {
plainText = new char[msgInput.length()/keyWords.size()]
[keyWords.size()];
}
chipperText = new char[plainText.length*plainText[0].length];
for(int indexPTX = 0; indexPTX < plainText.length; indexPTX++){
for(int indexPTY = 0; indexPTY < plainText[0].length;
indexPTY++){
if((indexPTX*plainText[0].length+indexPTY) <
msgInput.length()){
plainText[indexPTX][indexPTY] =
msgInput.toUpperCase().charAt(indexPTX*plainText[0].length+indexPTY);
} else{
plainText[indexPTX][indexPTY] = (char) (90 (plainText[0].length - indexPTY - 1));
}
}

}
for(int indexKW = 0; indexKW < keyWords.size(); indexKW++){
intKW[indexKW] = keyWords.get(indexKW).charAt(0);
}
for(int indexINTKW = 0; indexINTKW < intKW.length - 1;
indexINTKW++){
int pos = 1;
for(int indexINTKW2 = indexINTKW + 1; indexINTKW2 <
intKW.length; indexINTKW2++){
if(intKW[indexINTKW] > intKW[indexINTKW2]){
pos = indexINTKW2;
temp = intKW[indexINTKW];
intKW[indexINTKW] = intKW[pos];
intKW[pos] = temp;
} else{
pos = indexINTKW;
}
}
}
for(int indexPTY = 0; indexPTY < plainText[0].length; indexPTY++)
{
char kW = (char) intKW[indexPTY];
int indexCTY = keyWords.indexOf(Character.toString(kW));
for(int indexPTX = 0; indexPTX < plainText.length; indexPTX+
+){
chipperText[indexPTX*plainText[0].length + indexPTY] =
plainText[indexPTX][indexCTY];
System.out.print(chipperText[indexPTX*plainText[0].length
+ indexPTY]);
}
keyWords.set(indexCTY, null);
}
}
public transposisikolom (String keyWordsInput) {

for(int indexKW = 0; indexKW < keyWordsInput.length(); indexKW+


+){
keyWords.add(Character.toString(keyWordsInput.charAt(indexKW)).toUpperCas
e());
}
}
}
Kode Program 1. Class Transposisikolom

Kode program diatas merupakan sebuah class yang memiliki fungsi utama dari
transposisi kolom. Segala konversi konsep dasar teori transposisi kolom di deklarasikan
dalam sebuah program yang mana class ini nantinya dipanggil oleh main class yakni dengan
nama mainkriptoclass. Untuk lebih jelasnya, dibawah ini merupakan kode program dari
mainkriptoclass.
package mainkripto;
import java.util.Scanner;
/**
*
* @author IWayanAndisIndrawan
*/
public class mainkriptoclass {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
// TODO code application logic here
System.out.print("TRANSPOSISI KOLOM \n");
System.out.print("Masukkan KeyWord : ");
String key = input.next().toString();
System.out.print("Masukkan PlainText (tanpa spasi) : ");
String msg = input.next().toString();
System.out.print("\nBerikut

adalah

Hasil

Transposisi Kolom anda : \n");


transposisikolom myTra = new transposisikolom(key);
myTra.transKolom(msg);
}

dari

Enkripsi

static void test(){


String key = input.next().toString();
String msg = input.next().toString();
transposisikolom myTra = new transposisikolom (key);
myTra.transKolom(msg);
System.out.print("\n");
for(int j = 0; j < myTra.plainText.length; j++){
for(int k = 0; k < myTra.plainText[0].length; k++){
System.out.print(myTra.plainText[j][k]+" "); }
System.out.print("\n");
}
}
}
Kode Program 2. Class Mainkripto Class

Mainkriptoclass ini difungsikan untuk menjadi class utama atau main class dari
program ini. Input kata kunci dan plaintext pemanggilan proses class transposisikolom untuk
memproses data yang ingin di enkripsi serta output yang berupa chippertext semua terdapat
pada class ini.
VII.

Teknis Kerja Program Transposisi Kolom


Setelah berhasil membuat source code dari program enkripsi transposisi kolom dan

berhasil di-build pada aplikasi netbeans dengan bahasa java, maka kita bisa mencoba
melakukan run program. Berikut adalah tampilan awal dari program yang sudah di-run.

Gambar 2. Tampilan Awal

Pada halaman awal seperti gambar diatas terdapat judul transposisi kolom dan
perintah masukkan keyword. Kemudian anda bisa memasukkan keyword atau kata

kunci yang diinginkan. Gambar dibawah menggunakan contoh kata andis sebagai
keyword.

Gambar 3. Memasukkan Keyword

Setelah anda memasukkan keyword anda bisa menekan tombol enter, kemudian
akan muncul perintah masukkan plaintext. Pada gambar dibawah plaintext yang
digunakkan ialah akucintasamacandrahehe.

Gambar 4. Memasukkan Plaintext

Setelah keyword dan plaintext diinputkan, tekan enter untuk melihat hasil
enkripsi yang berbentuk chippertext. Gambar dibawah merupakan hasil dari enkripsi
tersebut. Terlihat hasil dari enkripsi ialah ANMDHUACAXCSAHYKTAREIANEZ.

Gambar 5. Hasil enkripsi transposisi kolom

Dengan didapatkannya hasil dari enkripsi dari program transposisi kolom ini,
maka dapat dipastikan program ini berjalan dengan baik dan sesuai prosedur.

BAB III

PENUTUP

I.

Kesimpulan
Di zaman yang sudah merambah dunia komputerisasi membuat segala aspek yang ada

didalamnya juga mau tidak mau harus menyesuaikan dengan zaman. Dengan sebuah aplikasi
netbean yang menggunakan bahasa java sekiranya mampu melahirkan sebuah program yang
menganut konsep dasar enkripsi data dengan metode tranposisi kolom. Program tersebut
berjalan dengan baik sesuai prosedur.
II.

Saran
Program transposisi kolom ini masih sangat sederhana, masih dapat dikembangkan

agar menjadi program yang lebih baik dari segi tampilan maupun jika nantinya ingin dibuat
dalam bentuk portable. Lebih bagus lagi jika dalam satu program tersebut terdapat berbagai
macam jenis enkripsi dan deskripsi. Sehingga program ini nantinya diharapkan bisa berguna
untuk orang banyak.
III.

Daftar Pustaka

http://www.scribd.com/doc/226738432/KRIPTOGRAFI#scribd
https://www.hadiwibowo.wordpress.com/2007/03/28/metode-penyandian-transposisi/
https://www.dwiputrimeilatii.blogspot.com/2014/10/artikel-kriptografi.html

Anda mungkin juga menyukai