• Tidak ada hasil yang ditemukan

Analisis dan Implementasi Algoritma Kriptografi Playfair Cipher dan Algoritma Kompresi Run Length Encoding Dalam Pengamanan dan Kompresi Data Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis dan Implementasi Algoritma Kriptografi Playfair Cipher dan Algoritma Kompresi Run Length Encoding Dalam Pengamanan dan Kompresi Data Teks"

Copied!
103
0
0

Teks penuh

(1)

LISTING PROGRAM

1. Form Home.vb

Public Class Form1

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub AlgoritmaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

AlgoritmaToolStripMenuItem.Click Form2.Show()

End Sub

Private Sub MenuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuToolStripMenuItem.Click End Sub

Private Sub EnkripsiKompresiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

EnkripsiKompresiToolStripMenuItem.Click Form3.Show()

End Sub

Private Sub DekripsiDekompresiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

DekripsiDekompresiToolStripMenuItem.Click Form4.Show()

End Sub

Private Sub TentangToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

TentangToolStripMenuItem.Click

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub KompresiEnkripsiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

KompresiEnkripsiToolStripMenuItem.Click Form6.Show()

(2)

Private Sub DekripsiDekompresiToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

DekripsiDekompresiToolStripMenuItem1.Click Dim cipher As String = ""

Dim alpabet As Char() = New Char(94) {} Dim ab As Integer = 0

Dim plain As String = ""

Dim waktu_proses As New Stopwatch Public Const EOF As Char = ChrW(127) Public Const ESCAPE As Char = ChrW(165)

'

Private Function cekKunci(ByVal huruf As Char) As Boolean For i As Integer = 0 To ab - 1

(3)

matrix(i, j) = matrix(0, j)

(4)
(5)

ElseIf j = 4 Then

(6)
(7)

cipher += Matrik(bigramx(0), bigramy(0) + 1).ToString()

(8)
(9)

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

TextBox6.Text = waktu_proses.Elapsed.TotalSeconds.ToString() waktu_proses.Reset()

End Sub

Private Sub hapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hapus.Click

(10)
(11)

Textcari.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = ""

MsgBox("Data telah dihapus", MsgBoxStyle.Exclamation, "Perhatian")

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim i As Integer = FreeFile()

FileOpen(i, "D:\KULIAH\hasil.txt", OpenMode.Output) PrintLine(i, TextBox3.Text)

FileClose(i)

MsgBox("Data telah disimpan", MsgBoxStyle.Information, "Perhatian")

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Dim i As Integer = FreeFile()

FileOpen(i, "D:\KULIAH\finish.txt", OpenMode.Output) PrintLine(i, TextBox4.Text)

FileClose(i)

MsgBox("Data telah disimpan", MsgBoxStyle.Information, "Perhatian")

End Sub

Public Shared Function RunLengthEncode(ByVal s As String) As String Dim srle As String = String.Empty

(12)
(13)

End If

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

waktu_proses.Start()

TextBox4.Text = RunLengthEncode(TextBox3.Text) TextBox10.Text = TextBox4.Text.Count()

waktu_proses.Stop()

TextBox5.Text = waktu_proses.Elapsed.TotalSeconds.ToString() waktu_proses.Reset() Public Const EOF As Char = ChrW(127) Public Const ESCAPE As Char = ChrW(165)

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

End Sub

(14)
(15)

AmbilFile.Title = "Pilih TXT, doc File aja, jangan yg lain"

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Dim i As Integer = FreeFile()

FileOpen(i, "D:\KULIAH\hasil.txt", OpenMode.Output) PrintLine(i, TextBox4.Text)

FileClose(i)

MsgBox("Data telah disimpan", MsgBoxStyle.Information, "Perhatian")

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim i As Integer = FreeFile()

FileOpen(i, "D:\KULIAH\hasil.txt", OpenMode.Output) PrintLine(i, TextBox3.Text)

FileClose(i)

MsgBox("Data telah disimpan", MsgBoxStyle.Information, "Perhatian")

End Sub

(16)
(17)

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

waktu_proses.Start()

TextBox4.Text = RunLengthDecode(TextBox1.Text) waktu_proses.Stop()

TextBox5.Text = waktu_proses.Elapsed.TotalSeconds.ToString() waktu_proses.Reset()

End Sub

Private Function cekKunci(ByVal huruf As Char) As Boolean For i As Integer = 0 To ab - 1

(18)
(19)

Next

Private Sub putarKunci2(ByVal matrix As Char(,), ByVal huruf As Char) Dim limit As Boolean = False

(20)
(21)

If bigram(x) = Matrik(i, j) Then

(22)
(23)

Matrik(i, j) = ChrW(asci)

TextBox8.Text = waktu_proses.Elapsed.TotalSeconds.ToString() waktu_proses.Reset()

End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

MsgBox("Data telah dihapus", MsgBoxStyle.Exclamation, "Perhatian")

TextBox1.Focus() End Sub

(24)

DAFTAR PUSTAKA

Azhari, Pocut Rizky. 2014. Implementasi kombinasi algoritma kriptografi modifikasi playfair cipher dan teknik steganografi begin of file pada pengamanan tesan Teks. Skripsi. Universitas Sumatera Utara.

Cormen, Thomas H. 2001. Introduction to Algorithms. Second Edition. USA: MIT Press.

Herry dan Yessi. 2000. Algoritma Run-Length Half Byte dan Huffman untuk Pemampatan File. Bandung: Institut Teknologi Bndung.

Kurniawan, Yusuf. 2004. Kriptografi keamanan Internet dan Jaringan Komunikasi. Bandung : Informatika Bandung.

Munir, Rinaldi. 2005. Matematika Diskrit. Edisi ketiga. Informatika: Bandung.

Munir, Rinaldi. 2006. Kriptografi. Informatika: Bandung.

Mollin, R.A. 2007. An Introduction to Cryptography. 2nd Edition. Taylor &Francis Group: LLC. United State of America.

Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java. Andi Offset: Yogyakarta.

Schneier, Bruce. 1996. Applied Cryptography: Protocols, Algorithms, and Source Code in C. Edisi ke-2. New Jersey: John Wiley & Sons, Inc.

Setyaningsih, Emy. 2009. Penyandian citra menggunakan metode Playfair Cipher. Jurnal Teknologi: 213-217.

Tanjung, Namira Listya Utami. 2014. Analisis kombinasi algoritma Knapsack dan RLE pada file teks. Skripsi. Universitas Sumatera Utara.

Yonathan, F. 2011. Modifikasi Playfair Cipher dengan teknik pemutaran kunci dua arah. Makalah. Institut Teknologi Bandung.

(25)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Sebelum dilakukan tahap perancangan sitem kita perlu melakukan analisis terhadap

sistem yang hendak di bangun. Analisis sistem diperlukan agar sistem yang dirancang

sesuai dengan tujuan awal pembuatan sistem, pada tahap ini akan diperoleh gambaran

kebutuhan, cara kerja sistem, dan alur data yang akan dikerjakan oleh sistem. Hal ini

akan sangat membantu dalam proses implementasi sistem.

3.1.1 Analisis Masalah

Untuk dapat menghindari ancaman dalam proses pengiriman dan penerimaan data

rahasia, diperlukan sebuah algoritma enkripsi untuk penyandian data agar data

menjadi sulit dimengerti. Namun, agar penerima yang dituju dapat membaca data

yang dikirim, diperlukan algoritma dekripsi untuk mengembalikan data asli seperti

sebelum penyandian. Selanjutnya untuk menghindari lamanya waktu pengiriman data

dalam ukuran yang besar dibutuhkan algoritma kompresi dan dekompresi data. Pada

penelitian ini akan di analisis dan diimplementasikan algoritma kriptografi Playfair

Cipher dan algoritma kompresi RLE.

Pada kriptografi terdapat enam hal pokok layanan yang harus terpenuhi yaitu :

otentikasi, kendali akses, kerahasiaan data, keutuhan data, nonrepudiation,

(26)

1. Plaintext

Pesan atau data dalam bentuk aslinya yang dapat dibaca dan masukan bagi

algoritma enkripsi.

2. Secret Key

Masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli

dan menentukan hasil keluaran algoritma enkripsi.

3. Ciphertext

Hasil dari proses algoritma enkripsi dan teks asli dianggap telah tersembunyi.

4. Algoritma Enkripsi

Algoritma enkripsi memiliki 2 masukan yaitu teks asli dan kunci rahasia, kedua

masukan tersebut akan diproses sehingga menghasilkan teks sandi.

5. Algoritma Dekripsi

Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia,

keduanya

akan diproses sehingga menghasilkan teks asli.

Diagram Ishikawa merupakan suatu alat visual untuk mengidentifikasi,

mengeksplorasi, dan secara diagram menggambarkan semua penyebab yang

berhubungan dengan suatu permasalahan. Diagram ini berbentuk tulang ikan yang

kepalanya menghadap ke kanan. Diagram ini menunjukkan sebuah dampak atau

akibat dari permasalahan dengan berbagai penyebabnya (Whitten, 2004). Masalah

penelitian ini dapat dilihat pada Gambar 3.1 yang dirancang dalam bentuk diagram

Ishikawa (fishbone/cause and effect diagram).

(27)

Gambar 3.1 Diagram Ishikawa Masalah Penelitian

3.1.2 Analisis Kebutuhan

Analisis kebutuhan merupakan analisis untuk menentukan kebutuhan apa saja yang

diperlukan untuk membangun sistem sesuai dengan yang diharapkan. Analisis

kebutuhan dibagi menjadi dua bagian, yaitu kebutuhan fungsional dan kebutuhan non

fungsional.

3.1.2.1 Kebutuhan fungsional

Kebutuhan fungsional adalah fungsi-fungsi yang harus dipenuhi oleh sistem. Untuk

mengimplementasi algoritma kriptografi Playfair Cipher dan algoritma kompresi

RLE, kebutuhan fungsional yang harus dipenuhi adalah sebagai berikut :

1. Sistem mampu membaca String dalam file teks yang diinputkan oleh user

maupun file yang telah ada dalam format *.txt, *.doc/docx.

2. Sistem mampu melakukan enkripsi pesan dengan algoritma Playfair

Cipher dengan kunci yang diinputkan dan telah disepakati oleh user

pengirim dan user penerima pesan, sehingga didapat hasil berupa

cipherteks. Sistem juga mampu melakukan dekripsi pesan menjadi String

yang sesuai dengan pesan asli atau plainteks.

3. Sistem mampu melakukan kompresi pesan tersandi (Cipherteks) dengan

menggunakan algoritma RLE, sehingga menghasilkan pesan yang telah

dikompresi. Selanjutnya sistem juga mampu melakukan dekompresi

sehingga didapatkan pesan yang sama seperti sebelum dikompresi.

3.1.2.2Kebutuhan Nonfungsional

Kebutuhan nonfungsional sistem ini mencakup karakteristik berikut:

1. Performa

Perangkat lunak yang akan dibangun harus dapat menunjukkan hasil dari fungsi

(28)

2. Efisiensi

Sistem atau perangkat lunak yang akan dibangun harus sesederhana mungkin dan

memiliki tampilan yang user friendly agar mudah digunakan oleh pengguna, serta

memiliki halaman petunjuk.

3. Ekonomi

Sistem atau perangkat lunak yang akan dibangun harus dapat bekerja dengan baik

tanpa perlu mengeluarkan biaya yang tinggi.

4. Dokumentasi

Sistem atau perangkat lunak yang akan dibangun dapat menyimpan data hasil

enkripsi, kompresi pesan serta hasil dekompresi dan dekripsi pesan, dan juga tata

cara penggunaan sistem.

5. Manajemen kualitas

System atau perangkat lunak yang dibangun harus memiliki kualitas yang baik

yaitu proses enkripsi dan dekripsi yang akurat serta proses kompresi dan dekripsi

yang cepat.

6. Kontrol

Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input

yang tidak sesuai.

3.2 Perancangan Sistem

Sistem ini dirancang dengan membuat flowchart, use case, activity diagram, dan

sequence diagram.

3.2.1 Flowchart

Pada tahap ini, akan dibuat lima buah flowchart untuk masing-masing algoritma yang

digunakan pada sistem ini, yaitu: flowchart enkripsi Playfair Cipher, flowchart

kompresi RLE, flowchart dekripsi Playfair Cipher, flowchart dekompresi RLE dan

(29)

3.2.1.1 Flowchart Proses Enkripsi

Proses enkripsi pesan ini menggunakan algoritma klasik Playfair Cipher yang

dimodifikasi dengan teknik pemutaran kunci dua arah. Proses enkripsi dapat dilihat

pada flowchart Gambar 3.2 berikut ini:

(30)

3.2.1.2 Flowchart Proses Kompresi

Setelah proses enkripsi menghasilkan cipherteks, selanjutnya dilakukan proses

kompresi untuk memampatkan pesan menjadi ukuran yang lebih kecil dengan

menggunakan algoritma RLE. Proses kompresi pesan dapat dilihat pada flowchart

Gambar 3.3 berikut ini :

(31)

3.2.1.3 Flowchart Proses Dekripsi

Proses dekripsi dilakukan setelah pesan di dekompresikan dengan RLE, sehingga

menghasilkan cipherteks yang sama dengan pesan sebelum proses kompresi

(32)
(33)

3.2.1.4 Flowchart Proses Dekompresi

Proses dekompresi dilakukan untuk mengembalikan pesan ke ukuran semula yaitu

cipherteks sebelum dilakukan kompresi. Langkah dekompresi dapat dilihat pada

flowchart Gambar 3.5 berikut ini :

Gambar 3.5 Flowchart dekompresi RLE

3.2.1.5 Flowchart Sistem

Flowchart sistem secara umum digambarkan pada Gambar 3.6. Pada Flowchart ini

digambarkan sistem yang akan dibangun memiliki tiga parameter halaman yang dapat

dipilih oleh user, yaitu halaman petunjuk penggunaan, halaman profil, dan halaman

(34)

Gambar 3.6 Flowchart Sistem

3.2.2.Use Case Diagram

Use case adalah rangkaian uraian sekelompok yang saling terkait dan membentuk

sebuah sistem secara teratur yang dilakukan oleh actor. Use case digunakan untuk

membentuk tingkah laku benda dalam sebuah model serta direalisasikan dengan

kolaborasi (Whitten, 2004).

Berikut ini adalah use case diagram yang dirancang untuk menganalisa

komponen-komponen apa saja yang berperan dalam sistem. Use case diagram sistem

(35)

Gambar 3.7 Use case diagram

Berikut ini merupakan tabel spesifikasi use case untuk enkripsi pesan dapat dilihat

pada Tabel 3.1.

Tabel 3.1 Spesifikasi Use Case enkripsi pesan

Name Enkripsi pesan

Actors User

Trigger User menginputkan plaintext yang akan di enkripsi dan

menginputkan kunci

Preconditions User telah menyiapkan plaintext yang disimpan dalam

bentuk *.txt atau *.doc dan user juga dapat menginputkan

langsung plaintext kedalam system

Post Conditions User dapat melihat hasil enkripsi pesan / Ciphertext

Success Scenario 1. User telah menginputkan plaintext yang akan

dienkripsi dan kuncinya.

(36)

3. Sistem melakukan proses enkripsi plaintext yang

telah diinputkan.

4. User dapat melihat hasil enkripsi plaintext yaitu

Ciphertext..

Alternative Flows -

Berikut ini merupakan tabel spesifikasi use case untuk kompresi pesan dapat dilihat

pada Tabel 3.2.

Tabel 3.2 spesifikasi Use Case kompresi pesan

Name Kompresi pesan

Actors User

Trigger User menginputkan pesan yang akan di kompresi

Preconditions User mengakses tombol kompresi

Post Conditions User dapat melihat hasil kompresi pesan

Success Scenario 1. User telah menginputkan pesan yang akan

dikompresi

2. User mengakses tombol kompresi

3. Sistem melakukan proses kompresi pesan yang telah

diinputkan.

4. User dapat melihat hasil kompresi pesan

Alternative Flows -

Berikut ini merupakan tabel spesifikasi use case untuk dekompresi pesan dapat dilihat

pada Tabel 3.3.

Tabel 3.3 spesifikasi Use Case dekompresi pesan

Name Dekompresi pesan

Actors User

(37)

Preconditions User mengakses tombol dekompresi

Post Conditions User dapat melihat hasil dekompresi pesan.

Success Scenario 1. User telah menginputkan pesan yang akan

didekompresi.

2. User mengakses tombol dekompresi

3. Sistem melakukan proses dekompresi pesan yang

telah diinputkan.

4. User dapat melihat hasil dekompresi pesan/plaintext

Alternative Flows -

Berikut ini merupakan tabel spesifikasi use case untuk dekripsi pesan dapat dilihat

pada Tabel 3.4

Tabel 3.4 spesifikasi Use Case dekripsi pesan

Name Dekripsi pesan

Actors User

Trigger User menginputkan pesan / ciphertext yang akan di dekripsi

Preconditions User mengakses tombol dekripsi

Post Conditions User dapat melihat hasil dekripsi pesan / plaintext

Success Scenario 1. User telah menginputkan pesan yang akan

didekripsi.

2. User mengakses tombol dekripsi

3. Sistem melakukan proses dekripsi pesan yang telah

diinputkan.

4. User dapat melihat hasil dekripsi pesan/plaintext

(38)

3.2.3 Activity Diagram

Activity diagram juga merupakan bagian dari pemodelan sistem, menampilkan

gambaran berbagai alur aktivitas dalam sistem yang sedang dirancang. Activity

diagram lebih menggambarkan proses – proses dan jalur – jalur aktivitas dari level atas secara umum (Whitten, 2004).

Berikut ini adalah activity diagram untuk proses enkripsi dan kompresi pesan dapat

dilihat pada Gambar 3.8 berikut ini :

Gambar 3.8 Activity Diagram Enkripsi dan Kompresi

Berikut ini adalah activity diagram untuk proses dekompresi dan dekripsi pesan dapat

(39)

Gambar 3.9 Activity Diagram Dekompresi dan Dekripsi

3.2.4 Sequence Diagram

Sequence diagram (diagram urutan) adalah suatu diagram yang memperlihatkan

interaksi – interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Sequence diagram diawali dari apa yang men-trigger aktivitas

tersebut, proses dan perubahan apa saja yang terjadi secara internal dan keluaran yang

dihasilkan (Whitten, 2004). Sequence diagram pada sistem yang dirancang

(40)

Gambar 3.10 Sequence Diagram Sistem

3.3 Perancangan Antar Muka

Perancangan antar muka merupakan penghubung antara user dengan sistem. Syarat

utama pembuatan antar muka adalah berorientasi pada user friendly, hal ini

dimaksudkan untuk memudahkan user dalam pengoperasian system.

3.3.1 Halaman Beranda

Pada halaman beranda ini merupakan tampilan awal dari sistem saat dijalankan.

Halaman awal ini berisikan judul sistem, nama penulis dan instansi pendidikan

(41)

Gambar 3.11 Rancangan Antarmuka Beranda

Keterangan Gambar :

1. Label : Label yang digunakan untuk judul sistem dan nama penulis.

2. Picturebox : Digunakan untuk logo USU.

3. Menustrip menu : Menampilkan dua menu pilihan yaitu enkripsi-kompresi dan

dekripsi-dekompresi.

4. Menustrip Tentang : Digunakan untuk menampilkan keterangan penulis.

5. Menustrip bantuan : Digunakan untuk menampilkan petunjuk penggunaan

sistem.

3.3.2 Halaman Enkripsi-Kompresi

Halaman enkripsi-kompresi ini merupakan sub menu dari menustrip menu yang dapat

dipilih oleh user. Pada halaman utama sistem ini, terdapat beberapa tombol yang

digunakan untuk menjalankan fungsi-fungsi enkripsi Playfair Cipher dan fungsi

kompresi dengan RLE. Halaman enkripsi-kompresi ini ditunjukkan pada Gambar 3.12. Bantuan

Tentang Menu

ANALISIS DAN IMPLEMENTASI ALGORITMA PLAYFAIR CIPHER DAN RUN LENGTH ENCODING DALAM PENGAMANAN DAN KOMPRESI

DATA TEKS

Logo Universitas Sumatera Utara

ANANDA DWI PUTRI 121401050

3 4 5

1

2

(42)

Gambar 3.12 Rancangan Antarmuka Enkripsi-Kompresi

Keterangan Gambar :

1. Label : Label enkripsi pesan.

2. Label : Label kompresi pesan.

3. Label : Label pencarian file.

4. Label : Label ukuran file.

5. Label : Label plainteks.

6. Textbox : Menampilkan nama file yg di cari.

7. Button : Tombol cari, untuk membuka direktori dan mencari file.

8. Textbox : Menampilkan ukuran file.

9. Textbox : Menampilkan isi file/plainteks yang telah dicari sebelumnya.

10.Label : Label kunci.

11.Textbox : Menginput kunci yang diinginkan.

12.Button : Tombol enkripsi, untuk mengenkripsi pesan/plainteks.

13.Label : Label cipherteks.

21

17 Enkripsi dengan Playfair Kompresi dengan RLE

(43)

14.Textbox : Menampilkan hasil enkripsi/cipherteks.

15.Button : Tombol save, menyimpan file cipherteks.

16.Label : Label hasil kompresi.

17.Textbox : Menampilkan hasil kompresi.

18.Button : Tombol kompresi, untuk kompresi pesan cipherteks.

19.Label : Label waktu kompresi.

20.Textbox : Menampilkan waktu kompresi.

21.Label : Label ukuran file.

22.Textbox : Manampilkan ukuran file setelah dikompresi.

23.Button : Tombol save, menyimpan hasil kompresi.

3.3.3 Halaman Dekripsi-Dekompresi.

Halaman dekripsi-dekompresi ini merupakan sub menu dari menustrip menu yang

dapat dipilih oleh user. Pada halaman ini, terdapat beberapa tombol yang digunakan

untuk menjalankan fungsi-fungsi dekripsi Playfair Cipher dan fungsi dekompresi

(44)

Gambar 3.13 Rancangan Antarmuka Dekompresi-Dekripsi

Keterangan Gambar :

1. Label : Label dekompresi pesan.

2. Label : Label dekripsi pesan.

3. Label : Label pencarian file.

4. Label : Label ukuran file.

5. Label : Label file ter-kompresi.

6. Textbox : Menampilkan nama file yg di cari.

7. Button cari : Tombol cari, untuk membuka direktori dan mencari file.

8. Textbox : Menampilkan ukuran file.

9. Textbox : Menampilkan isi file ter-kompresi yang telah dicari sebelumnya.

10.Button dekompresi : Untuk dekompresi file.

11.Label : Label cipherteks.

12.Textbox : Menampilkan file yg telah di-dekompresikan/cipherteks. Dekompresi dengan RLE Dekripsi dengan Playfair

(45)

13.Label : Label waktu dekompresi.

14.Textbox : Menampilkan waktu dekompresi file.

15.Label : Label kunci pesan.

16.Textbox : Meng-input kunci pesan.

17.Button Dekripsi : Mengdekripsikan pesan.

18.Textbox : Menampilkan hasil dekripsi pesan/plainteks.

19.Label : Label plainteks.

20.Textbox : Menampilkan ukuran file.

21.Label : Label ukuran file.

22.Button save : Menyimpan file.

3.3.4 Halaman Tentang

Halaman tentang ini merupakan menustrip yang dapat dipilih oleh user. Pada halaman

ini, user dapat melihat profil/biodata dari penulis. Halaman tentang ini ditunjukkan

pada Gambar 3.14.

Gambar 3.14 Rancangan Antarmuka Tentang

Keterangan Gambar :

1. Label : Label judul skripsi/ aplikasi

2. Picturebox : Menampilkan Foto penulis.

3. Label : Label nama penulis.

1

2

3

4

5

(46)

4. Label : Label nomor induk mahasiswa (NIM) penulis.

5. Label : Label alamat e-mail penulis.

6. Label : Label no HP penulis.

3.3.5 Halaman Bantuan

Halaman bantuan ini merupakan menustrip yang dapat dipilih oleh user. Pada halaman

ini, user dapat melihat petunjuk penggunaan aplikasi. Halaman bantuan ini

ditunjukkan pada Gambar 3.15.

Gambar 3.15 Rancangan Antarmuka Bantuan

Keterangan Gambar :

1. Label : Label petunjuk penggunaan.

2. Textbox : Menampilkan petunjuk penggunaan aplikasi. Petunjuk Penggunaan

1

(47)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Setelah selesai tahap analisis dan perancangan sistem, selanjutnya dilakukan tahap

implementasi sistem, yaitu mengimplementasikan sistem yang telah dirancang

sebelumnya ke dalam bahasa pemrograman. Dalam tugas akhir ini sistem dibangun

dengan menggunakan Microsoft Visual Basic 2010. Terdapat 7 halaman utama pada

sistem, yaitu : halaman Beranda, halaman Proses yang terdiri dari halaman

Enkripsi-Kompresi, Dekompresi-Dekripsi, Kompresi-Enkripsi, dan Dekripsi-Dekompresi,

halaman Tentang, dan halaman Bantuan.

4.1.1 Halaman Beranda

Halaman Beranda merupakan halaman yang pertama kali terbuka saat sistem

dijalankan. Halaman ini ditunjukan pada Gambar 4.1.

(48)

Pada Gambar 4.1 terdapat 3 menu utama yang dapat memanggil halaman lain, yaitu:

menu Proses, menu Tentang, dan menu Bantuan. Pada menu bar Proses terdapat 4

menu lainnya yaitu: Enkripsi-kompresi, dekompresi-dekripsi, kompresi-enkripsi, dan

dekripsi-dekompresi. Pada halaman Beranda ini terdapat informasi mengenai judul

serta data pembuat sistem.

4.1.2 Halaman Proses

Pada menu proses yang terdapat pada halaman beranda, user dapat memilih proses

yang diinginkan sesuai kebutuhan. Halaman proses ini digunakan untuk proses

enkripsi dan kompresi pesan serta proses dekripsi dan dekompresi pesan

menggunakan algoritma Playfair Cipher dan RLE. Untuk halaman Enkripsi-kompresi

dapat dilihat pada Gambar 4.2.

Gambar 4.2 Antarmuka Enkripsi-Kompresi

Pada halaman enkripsi-kompresi, proses dilakukan dengan meng-enkripsi pesan

terlebih dahulu selanjutnya dilakukan proses kompresi terhadap ciphertext yang

(49)

Gambar 4.3 Antarmuka Dekompresi-Dekripsi

Pada halaman dekompresi-dekripsi, proses pengembalian pesan semula dilakukan

dengan meng-dekompresi pesan terlebih dahulu selanjutnya dilakukan proses dekripsi

terhadap ciphertext dan menghasilkan plaintext sesuai pesan semula. Untuk halaman

(50)

Gambar 4.4 Antarmuka Kompresi-Enkripsi

Pada halaman kompresi-enkripsi, proses dilakukan dengan mengkompresi pesan

terlebih dahulu, selanjutnya dilakukan proses enkripsi pesan. Untuk halaman

dekripsi-dekompresi dapat dilihat pada Gambar 4.5

.

(51)

4.1.3 Halaman Tentang

Halaman Tentang dapat ditampilkan bila user memilih menu “Tentang” pada halaman

“Beranda” .Adapun tampilan dari halaman Tentang ini dapat dilihat pada Gambar

4.6.

Gambar 4.6 Antarmuka Tentang

Pada Gambar 4.6 ditampilkan informasi mengenai judul tugas akhir , foto beserta

biodata singkat dari penulis / pembuat sistem.

4.1.4 Halaman Bantuan

Halaman Bantuan dapat ditampilkan bila user memilih menu “bantuan” pada

halaman “Beranda” .Adapun tampilan dari halaman bantuan ini dapat dilihat pada

(52)

Gambar 4.7 Antarmuka Bantuan

Pada Gambar 4.7 ditampilkan informasi tentang petunjuk penggunaan sistem, hal ini

dimaksudkan dapat mempermudah pengguna dalam mengoperasikan sistem.

4.2 Pengujian

Tahap selanjutnya dilakukan pengujian terhadap algoritma yang digunakan dalam

sistem, yaitu algoritma kriptografi Playfair Cipher dan algoritma kompresi Run

Length Encoding. Pada pengujian tugas akhir ini parameter yang dihitung adalah

waktu dari kedua algoritma melakukan proses enkripsi-dekripsi dan

kompresi-dekompresi serta ukuran file setelah proses kompresi dan kompresi-dekompresi. Digunakan pula

notasi big-O untuk menganalisa kompleksitas algoritma. Terdapat beberapa kriteria

dalam pengujian ini, yaitu :

1. Pesan yang digunakan/plaintext terdiri dari karakter ASCII yang bersumber

dari file teks (*.txt/*.doc/*.docx) atau dapat langsung diinputkan pada textbox

yang tersedia. Karakter ASCII yang digunakan dapat dilihat pada Tabel 4.1.

Tabel 4.1 Karakter ASCII yang digunakan Desimal Karakter Desimal Karakter Desimal Karakter

32 Spasi 64 @ 96 `

33 ! 65 A 97 a

34 " 66 B 98 b

(53)

36 $ 68 D 100 d

2. Kata kunci Playfair Cipher diinputkan terlebih dahulu oleh user untuk proses

enkripsi dan dekripsi pesan, selanjutnya dibentuk matriks kunci yang terdiri

dari karakter ASCII seperti pada table 4.1 dan juga kata kunci itu sendiri.

3. Perhitungan kompleksitas algoritma dengan notasi big-O dilakukan secara

manual.

4.2.1 Pengujian Proses Enkripsi-Kompresi

Sebagai contoh implementasi pada kasus ini, proses enkripsi dan kompresi digunakan

(54)

Proses enkripsi sebagai berikut:

Plainteks dalam bentuk bigram : MA MA

Matriks kunci dapat dilihat pada Tabel 4.1.

Tabel 4.1 Matriks kunci

Dengan menggunakan matriks kunci “ilkom” pada Tabel 4.1, bigram “MA” terlebih

dahulu dienkripsi, hasilnya yaitu “P>” selanjutnya matriks kunci diputar. Pada matriks kunci, huruf yang berada disekitar „M‟ diputar searah jarum jam, sehingga hasilnya

dapat dilihat pada Tabel 4.2.

Tabel 4.2 Matrisk 4 huruf disekitar huruf „M‟ setelah diputar

(55)

C D E F G

sehingga hasilnya dapat dilihat pada Tabel 4.3.

Tabel 4.3 Matriks 4 huruf disekitar huruf „A‟ setelah diputar

i l k o m

Dengan menggunakan teknik pemutaran kunci dua arah, maka cipherteks yang

(56)

Selanjutnya cipherteks yang dihasilkan dikompresi dengan algoritma RLE, hasilnya

sebagai berikut : “P>PD”.

Proses enkripsi pesan dapat dilakukan setelah user memasukan file teks yang

ingin di proses dengan memilih tombol “buka file” lalu file dibaca dan sistem akan menampilkan ukuran file dan panjang karakter pesan. Selanjutnya user mengisi kata

kunci dan memilih tombol “enkripsi”. Kemudian sistem akan menampilkan hasil Ciphertext dan perhitungan waktu eksekusi proses. Setelah itu user memilih tombol

“kompresi” untuk pemampatan file ciphertext, kemudian sistem menampilkan hasil kompresi file beserta perhitungan waktu eksekusi proses dan panjang karakter setelah

pesan dikompresi. Tampilan hasil proses enkripsi-kompresi dapat dilihat pada Gambar

4.8.

Gambar 4.8 Tampilan pengujian Enkripsi-Kompresi

(57)

4.2.2 Pengujian Proses Dekompresi-Dekripsi

Hasil dekompresi dengan pesan : “P>PD” adalah : “P>PD”. Hasil dekripsi pesan

dengan kata kunci “ilkom” adalah sebagai berikut :

Cipherteks dalam bentuk bigram : “P> PD”

Matriks kunci yang dibentuk dari kata kunci “ilkom” dapat dilihat pada Tabel 4.1.

Proses dekripsi pesan dilakukan dengan mengenkripsi bigram pertama yaitu “P>” terlebih dahulu, hasilnya yaitu “MA”. Selanjutnya dilakukan teknik pemutaran kunci 2

arah pada bigram plainteks yang telah dihasilkan. Huruf disekitar „M‟ diputar searah jarum jam, dan huruf „A‟ diputar berlawanan arah jarum jam, hasilnya dapat dilihat

pada Tabel 4.4.

Tabel 4.4 Matriks hasil perputaran „M‟ dan „A‟

i l k o m

sp ! " # $

% & ' ( )

* + , - .

/ 0 1 2 3

4 5 6 7 8

9 : ; < =

> ? @ B G

C D E A F

H I J K L

R M O P Q

S N T U V

W X Y Z [

\ ] ^ _ `

a b c d e

f g h j n

p q r s t

u v w x y

z { | } ~

Dengan menggunakan matriks kunci pada Tabel 4.4, bigram cipherteks kedua yaitu

(58)

Dengan menggunakan teknik pemutaran kunci dua arah, maka pesan “P>PD” dapat didekripsi menjadi pesan awal yaitu “MAMA”

Proses dekompresi-dekripsi pesan pada sistem dapat dilakukan setelah user

memasukan file teks yang telah di enkripsi dan dikompresi dengan memilih tombol

buka file” lalu file dibaca dan sistem akan menampilkan ukuran file dan panjang

karakter pesan. Setelah itu user memilih tombol “dekompresi” untuk mngembalikan

file ke bentuk ciphertext serta menampilkan waktu eksekusi proses. Selanjutnya user

mengisi kata kunci sama dengan kata kunci untuk proses enkripsi dan memilih tombol

“dekripsi”, kemudian sistem akan menampilkan plaintext dan perhitungan waktu eksekusi proses. Tampilan hasil proses dekompresi dan dekripsi dapat dilihat pada

Gambar 4.9.

Gambar 4.9 Tampilan pengujian Dekompresi-Dekripsi

Gambar 4.9 menjelaskan hasil dekompresi dan dekripsi ciphertext terkompresi.

(59)

4.2.3 Pengujian Proses Kompresi-Enkripsi

Sebagai contoh implementasi pada kasus ini, proses kompresi dan enkripsi digunakan

plainteks dengan karakter berulang berurut : “AAAABBBBBB” dengan kata kunci : ilkom.

Proses kompresi sebagai berikut:

Plainteks “A” mengalami perulangan sebanyak 4 kali dan plainteks “B” mengalami perulangan sebanyak 6 kali maka kompresi dari plainteks “AAAABBBBBB” adalah :

4A6B”.

Proses enkripsi sebagai berikut :

Plainteks dalam bentuk bigram : 4A 6B

Dengan menggunakan matriks kunci pada Tabel 4.1, bigram pertama yaitu “4A” dapat dienkripsi menjadi “7>”. Selanjutnya karakter disekitar „4‟ diputar searah jarum jam

,sehingga matriks hasil dapat dilihat pada Tabel 4.5.

Tabel 4.5 Matrisk hasil disekitar „4‟ setelah diputar

(60)

Selanjutnya karakter disekitar „A‟ diputar berlawanan arah jarum jam, dan hasilnya

dapat dilihat pada Tabel 4.6.

Tabel 4.6 Matrisk hasil disekitar „A‟ setelah diputar

i l k o m

sp ! " # $

% & ' ( )

* + , - .

/ 0 1 2 3

9 4 6 7 8

: 5 ; < =

> ? @ B G

C D E A F

H I J K L

M N O P Q

R S T U V

W X Y Z [

\ ] ^ _ `

a b c d e

f g h j n

p q r s t

u v w x y

z { | } ~

Kunci matriks pada Tabel 4.6 digunakan untuk mengenkripsi bigram kedua pada

plainteks, yaitu “6B” menjadi “7@”.

Dengan menggunakan teknik pemutaran kunci dua arah, maka cipherteks yang

dihasilkan dari plainteks yg telah terkompresi yaitu “4A6B” adalah : “7>7@”

Proses kompresi pesan pada sistem dapat dilakukan setelah user memasukan

file teks yang ingin diproses dengan memilih tombol “buka file” lalu file dibaca dan sistem akan menampilkan ukuran file serta panjang karakter pesan. Setelah itu user

memilih tombol “kompresi” dan selanjutnya mengisi kata kunci untuk menghasilkan

ciphertext dari pesan. Tampilan hasil proses kompresi dan enkripsi dapat dilihat pada

(61)

.Gambar 4.10 Tampilan pengujian Kompresi-Enkripsi

Gambar 4.10 menjelaskan hasil kompresi dan enkripsi dari plaintext

“AAAABBBBBB”. Dengan kata kunci „ilkom‟ ditampilkan hasil kompresi pesan dan ciphertext beserta jumlah karakternya.

4.2.4 Pengujian Proses Dekripsi-Dekompresi

Cipherteks dalam bentuk bigram : 7> 7@

Dengan menggunakan kata kunci “ilkom” matriks kunci pada Tabel 4.1 digunakan

untuk mendekripsi pesan. Untuk bigram pertama yaitu “7>” plainteks yang dihasilkan

(62)

Tabel 4.7 Matriks hasil setelah perputaran

Dengan menggunakan matriks kunci pada Tabel 4.7, bigram cipherteks kedua yaitu

“7@” didekripsi menjadi “6B”.

Dengan menggunakan teknik pemutaran kunci dua arah, maka cipherteks “7>7@” dapat didekripsi menjadi pesan yaitu “4A6B”. Pesan 4A6B bukan merupakan

plainteks awal, dilakukan dekompresi : 4 adalah angka yang merupakan nilai

perulangan dari karakter A, 6 adalah angka yang merupakan nilai perulangan dari

karakter B, sehingga didapat palinteks awal adalah : “AAAABBBBBB”

Proses dekripsi pesan pada sistem dapat dilakukan setelah user memasukan file

teks yang telah di enkripsi dan dikompresi dengan memilih tombol “buka file” lalu file dibaca dan sistem akan menampilkan ukuran file dan panjang karakter pesan. Setelah

itu user user mengisi kata kunci yang sama dengan kata kunci untuk proses enkripsi,

memilih tombol “dekripsi”. Selanjutnya memilih tombol “dekompresi” untuk menampilkan plaintext dan perhitungan waktu eksekusi proses. Tampilan hasil proses

(63)

Gambar 4.11 Tampilan pengujian Dekripsi-Dekompresi

Gambar 4.11 menjelaskan hasil dekripsi dan dekompresi dari ciphertext terkompresi.

Dengan kata kunci „ilkom‟ ditampilkan hasil dekripsi pesan yaitu ciphertext dan pesan asli yaitu plaintext beserta jumlah karakternya.

4.2.5 Hasil Pengujian Algoritma terhadap waktu

Pada pengujian kali ini akan dilakukan dengan menggunakan 3 plaintext dengan

jumlah karakter yang berbeda. Pada masing-masing plaintext akan dilakukan

pengujian sebanyak 3 kali dengan kunci yang berbeda terhadap waktu proses enkripsi

dan kompresinya. Pengujian terhadap waktu proses dapat dilihat pada Table 4.8 .

Tabel 4.8 Pengujian terhadap waktu proses

Plainteks Ukuran

Awal Cipherteks Hasil Kompresi

Ukuran Akhir

Waktu Proses

Rata-rata waktu

Ananda Dwi

Putri 16

Bjetec!CykoNquvk Bjetec!CykoNquvk

16

0,1153196 0.181410

9

(64)
(65)

Hasil pengujian waktu proses yang didapat berdasarkan masing-masing plaintext

dengan jumlah karakter yang berbeda-beda dapat diilustrasikan pada sebuah grafik

pada Gambar 4.12.

Gambar 4.12 Grafik Hubungan Panjang Plainteks dengan Waktu

Pada Gambar 4.12 ditunjukkan lama waktu yang dibutuhkan untuk mengenkripsi dan

kompresi plainteks 12 karakter adalah 0.5 sekon, lama waktu yang dibutuhkan untuk

mengenkripsi dan kompresi plainteks 78 karakter adalah 1.1 sekon, sedangkan lama

waktu yang dibutuhkan untuk mengenkripsi dan kompresi pesan dengan jumlah

karakter sebanyak 189 adalah 1.5 sekon. Dari grafik yang ditunjukan pada Gambar

4.12 dapat dilihat bahwa hubungan antara jumlah plainteks berbanding lurus terhadap

waktu proses enkripsi dan kompresi.

4.2.6 Hasil Pengujian String Homogen dana Heterogen

Pengujian ini menggunakan 2 jenis string yang berbeda pada proses kompresi dan

dekompresinya, yaitu string yang terdiri dari deretan karakter yang sama (Homogen)

dan string terdiri dari karakter yang berbeda (Heterogen). Hasil pengujian string

Homogen dan Heterogen menggunakan algoritma RLE dapat dilihat pada Tabel 4.9

(66)

Tabel 4.9 Hasil Pengujian string Homogen

Tabel 4.10 Hasil Pengujian string Heterogen

String Heterogen

Pada pengujian kali ini, menggunkan kompleksitas algoritma dengan notasi Big-O

untuk mengetahui tingkat nilai masukan n suatu algoritma. Kompleksitas algoritma ini

dapat dilihat dari kode program yang digunakan. Untuk kompleksitas algoritma

enkripsi dengan Playfar Cipher ditunjukkan pada Tabel 4.11

Tabel 4.11 Kompleksitas Algoritma Enkripsi Playfair Cipher

(67)

9 Exit For

Matrik(bigramx(1), bigramy(1) + 1) 1

21 ElseIf bigramy(1) = 4 Then 1

Matrik(bigramx(1) + 1, bigramy(1)) 1

33 End If

Kompleksitas algoritma enkripsi pada Playfair cipher tersebut adalah n+2n2+6n3+19 dengan Big-O = O(n3). Selanjutnya dihitung kompleksitas algoritma kompresi RLE yang ditunjukan pada Table 4.12.

Tabel 4.12 Kompleksitas Algoritma Kompresi RLE

(68)

10 End If

O(n). Selanjutnya dihitung kompleksitas algoritma dekripsi Playfair Cipher yang

ditunjukan pada Table 4.13

Tabel 4.13 Kompleksitas Algoritma Dekripsi Playfair Cipher

(69)

30 plain += Matrik(bigramx(0) - 1, bigramy(0)) + Matrik(18, bigramy(1)) 1

Kompleksitas algoritma dekripsi pada Playfair cipher tersebut adalah n+2n2+6n3+13 dengan Big-O = O(n3). Selanjutnya dihitung kompleksitas algoritma dekompresi RLE yang ditunjukan pada Table 4.14.

Tabel 4.14 Kompleksitas Algoritma Dekompresi RLE

Kode program Eksekusi

Kompleksitas algoritma untuk dekompresi pada algoritma RLE tersebut hasilnya

(70)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan analisis, perancangan, dan pengujian dari penelitian pengamanan dan

kompresi data teks menggunakan algoritma Playfair Cipher dan Run Length

Encoding, maka diperoleh beberapa kesimpulan :

1. Proses enkripsi-dekripsi dan kompresi-dekompresi pada file teks dengan

menggunakan algoritma Playfair Cipher dan Run Length Encoding memenuhi

parameter keutuhan data.

2. Berdasarkan grafik hubungan antara waktu proses dengan panjang plainteks

diperoleh hasil panjang plainteks berbanding lurus terhadap waktu. Semakin

panjang plainteks maka waktu yang dibutuhkan juga akan semakin banyak.

3. Hasil pengujian kompresi String dengan karakter yang sama (homogen) berdasarkan variabel Ratio of compression (Rc), Compression ratio (Cr), Redundancy (Rd) dengan rasio kompresi rata-rata sebesar 33,83% dan String

dengan karakter berbeda (heterogen) sebesar 15,54%.

4. Kombinasi dengan mendahulukan proses kompresi dilanjutkan dengan proses

enkripsi teks lebih baik digunakan untuk teks dengan banyak perulangan berurut, karna kombinasi keduanya berhasil terkompresi dengan baik.

5. Untuk proses kompresi maupun dekompresi algoritma Run Length Encoding

memiliki kompleksitas yang sama yaitu O(n), sedangkan untuk proses enkripsi

(71)

5.2. Saran

Adapun saran-saran yang dapat dipertimbangkan untuk tahap pengembangan

penelitian ini antara lain :

1. Sistem ini hanya dapat mengamankan dan memampatkan file teks berformat

*.txt, *.doc/docx. Sehingga untuk penelitian selanjutnya diharapkan dapat

mengembangkan kombinasi algoritma Playfair Cipher dan Run Length

Encoding untuk mengamankan dan memampatkan citra.

2. Untuk pengembangan sistem selanjutnya dapat mengombinasikan Playfair

Cipher dengan algoritma kompresi lainnya seperti Arithmetic Coding,

Huffman Coding dan sebagainya.

3.

Diharapkan untuk kedepannya sistem seperti ini dapat diterapkan pada media

(72)

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

(Mollin,2007).

Pada kriptografi, pesan asli disebut plaintext dan pesan yang disamarkan disebut

ciphertext. Proses menyamarkan plaintext menjadi ciphertext disebut enkripsi.

Sedangkan proses untuk mengubah ciphertext kembali menjadi plaintext disebut

dekripsi (Mollin,2007). Skema rangkaian proses enkripsi dan dekripsi ditunjukkan

secara umum pada Gambar 2.1.

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi

Plaintext

Enkripsi

(73)

Plaintext adalah pesan yang akan diamankan. Pada awalnya, plaintext hanya

berbentuk data teks. Namun seiring dengan perkembangan, plaintext kini bisa

berbentuk teks, citra (image), suara/bunyi (audio) dan video. Sedangkan ciphertext

adalah hasil dari plaintext yang telah disamarkan. Enkripsi (encryption) adalah proses

mengubah pesan asli (plaintext) sedemikian rupa menjadi pesan tersandi (ciphertext).

Sedangkan dekripsi (decryption) adalah proses mengubah kembali pesan tersandi

(ciphertext) menjadi pesan asli (plaintext).

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan

aspek keamanan informasi, yaitu :

1. Kerahasiaan (Confidentiality)

Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi dari

siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk

membuka/mengupas informasi yang telah disandi.

2. Integritas Data (Integrity)

Integritas adalah berhubungan dengan penjagaan dari perubahan data secara tidak

sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk

mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain

penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang

sebenarnya.

3. Otentikasi (Authentication)

Otentikasi adalah berhubungan dengan identifikasi/pengenalan, baik secara

kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling

berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan

melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan

lain-lain.

4. Ketiadaan Penyangkalan (Non-repudiation).

Ketiadaan penyangkalan adalah usaha untuk mencegah terjadinya penyangkalan

terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat

(74)

2.1.2 Jenis-Jenis Algoritma Kriptografi

Algoritma Kriptografi dapat diklasifikasikan menjadi dua jenis berdasarkan proses

enkripsi dan deskripsi nya, yaitu algoritma simetris dan algoritma asimetris. Dan

berdasarkan perkembangannya terbagi menjadi algoritma kriptografi modern dan

klasik.

2.1.2.1 Algoritma Simetris

Algoritma simetris kadang disebut juga algoritma konvensional. Algoritma ini

menggunakan kunci yang sama pada saat proses enkripsi dan dekripsi. Pengirim harus

memberitahu kuncinya terlebih dahulu, agar penerima dapat mendekripsi ciphertext.

Keamanan algoritma simetris terletak pada kunci nya, agar data tetep terjaga kunci

harus tetap dirahasiakan. Adapun algoritma yang termasuk ke dalam algoritma

simetris adalah OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Playfair Cipher,

Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5,

Kasumi dan lain-lainnya. Skema kriptografi simetris dapat dilihat pada Gambar 2.2.

Gambar 2.2. Skema Kriptografi Simetris

2.1.2.2 Algoritma Asimetris

Berbeda dengan kriptografi simetri, kriptografi asimetri menggunakan dua kunci yang

berbeda pada saat proses enkripsi dan dekripsinya. Kunci pada proses enkripsi

asimetris ini tidak rahasia (public key) dan kunci pada proses dekripsi bersifat rahasia

(private key), sehingga algoritma asimetris disebut juga dengan algoritma kunci

publik. Pengirim akan mengenkripsi dengan menggunakan kunci public, sedangkan

penerima mendeskripsi menggunakan kunci privat. Adapun algoritma yang

menggunakan kunci asimetris adalah seperti Rivest-Shamir-Adleman (RSA),

El-Gamal, Rabin dan lain-lain. Skema kriptografi asimetris dapat dilihat pada Gambar

2.3.

Plaintext, P

Plaintext, P Enkripsi Ek(P) Ciphertext, C

= C

Dekripsi Dk(C) = P

(75)

Gambar 2.3. Skema Kriptografi Asimetris

2.2Playfair Cipher

Playfair Cipher merupakan salah satu contoh algoritma klasik yang ditemukan oleh

Charles Wheatstone, salah seorang Pioneer Telegraf. Kemudian algoritma ini

dipopularkan oleh Lyon Playfair pada tahun 1854. Algoritma Playfair Cipher

termasuk ke dalam polygram cipher (Munir, 2006).

Proses enkripsi dengan menggunakan algoritma Playfair Cipher, dilakukan

dengan mengenkripsi dua huruf atau pasangan-pasangan huruf. Kunci yang di

gunakan dalam proses enkripsi harus disepakati oleh pengirim dan penerima pesan

terlebih dahulu, agar pesan dapat di deskripsi oleh penerima pesan. Kunci tersebut

disusun pertama kali dalam sebuah bujur sangkar yang memiliki ukuran 5x5, setelah

itu sisa dari elemen-elemen bujur sangkar yang masih kosong akan diisi dengan

seluruh alfabet (A-Z) terkecuali J. Sebagai contoh, misalkan kata kunci yang disetujui

oleh pengirim dan penerima pesan adalah IMILKOM. Contoh matriks kunci Playfair

Cipher dengan penulisan kunci dalam baris dapat dilihat pada Tabel 2.1.

Tabel 2.1. Contoh matriks kunci „ILKOM‟

(76)

Setelah bujur sangkar terisi penuh dengan kata kunci dan huruf alphabet. Proses

enkripsi dilanjutkan dengan proses pengaturan pesan yang ingin dienkripsi, sebagai

berikut (Azhari, 2014) :

1. Ganti huruf „J‟ yang terdapat pada pesan yang ingin dienkripsi dengan huruf

I‟.

2. Tulis kembali pesan dengan kedalam pasangan huruf atau bigram.

3. Bila terdapat bigram yang memiliki huruf yang sama, maka sisipkan dengan

huruf „X‟ ditengahnya.

4. Bila huruf terakhir tidak memiliki pasangan (jumlah huruf pada pesan ganjil),

maka tambahkan huruf „X‟ sebagai pasangannya.

Contoh Plaintext : ILKOM

Karena bigram terakhir tidak memiliki pasangan maka, ditambahkan huruf X pada

bigram terakhir, menjadi (Azhari, 2014) :

IL KO MX

Setelah plaintext disusun kedalam bigram dan sesuai dengan aturan diatas, pesan

dapat dienkripsi dengan menggunakan matriks kunci pada Tabel 2.1. Dengan

ketentuan sebagai berikut (Azhari, 2014) :

1. Bila dua huruf dalam satu bigram berada pada baris kunci yang sama, maka

masing-masing huruf digantikan dengan huruf disebelah kanannya.

2. Bila dua huruf dalam satu bigram berada pada kolom kunci yang sama, maka

masing-masing huruf digantikan dengan huruf yang berada dibawahnya.

3. Bila dua huruf dalam satu bigram tidak berada pada baris maupun kolom yang

sama, maka huruf pertama digantikan dengan huruf pada perpotongan baris huruf

pertama dengan kolom huruf kedua. Dan huruf kedua digantikan dengan huruf

pada titik sudut keempat dari persegi yang dibentuk dari 3 huruf yang digunakan

sebelumnya.

Contoh :

Matriks kunci di tulis kembali, dapat dilihat pada Table 2.2 :

(77)

Tabel 2.2. Contoh matriks kunci

Plaintext dalam bentuk bigram, sebagai berikut :

IL KO MX

Ciphertext yang dihasilkan, sebagai berikut :

MK OI LW

Untuk mendekripsikan pesan nya, dengan kunci yang telah diketahui sebelumnya oleh

si penerima, maka dilakukan seperti enkripsi pesan dengan membentuk pasangan

huruf dari Ciphertext . Hanya saja aturan yang digunakan untuk dekripsi merupakan

kebalikan dari enkripsi pesan (Azhari, 2014).

2.2.1 Playfair Cipher dengan Teknik Pemutaran Kunci Dua Arah

Ide untuk mencegah terjadinya pasangan huruf yang terus berulang memiliki

hasil enkripsi yang sama adalah dengan mengganti matriks yang digunakan pada saat

enkripsi. Teknik pemutaran kunci dua arah merupakan suatu cara untuk mengganti

matriks agar berbeda dari kunci matriks untuk mengenkripsi bigram sebelumnya.

Teknik pemutaran kunci dua arah dilakukan dengan memutar 4 huruf disekitar huruf

pertama dengan menempatkan huruf pertama yang dienkripsi searah jarum jam,

kemudian memutar 4 huruf disekitar huruf kedua berlawanan arah jarum jam (Azhari,

2014).

Proses pemutaran matriks kunci memiliki aturan sebagai berikut:

1. Pilihlah 4 huruf disekitar huruf bigram plaintext. Yaitu huruf itu sendiri, huruf

disebelah kanannya, huruf disebelah kanan bawah dan huruf dibawahnya.

2. Apabila huruf plaintext terletak di paling bawah atau paling kanan, maka sebelah

kanan dari huruf itu adalah huruf dipaling kiri pada baris huruf plaintext berada

dan sebelah bawah huruf plaintext terletak di paling atas dari kolom tempat huruf

plaintext berada.

I M L K O

A B C D E

F G H N P

Q R S T U

(78)

3. Untuk setiap huruf pertama pada bigram plaintext, 4 huruf yang berada

disekitarnya (pada poin nomor 1) diputar searah jarum jam.

4. Untuk setiap huruf kedua pada bigram plaintext, 4 huruf yang berada disekitarnya

(pada poin nomor 1) diputar berlawanan jarum jam.

5. Proses ini diulang terus sampai seluruh plaintext selesai dienkripsi.

Contoh pada matriks kunci “IMILKOM” pada Tabel 2.3, bigram “IL” terlebih

dahulu dienkripsi, hasilnya yaitu “MK” baru matriks kunci diputar. Pada matrik kunci,

huruf yang berada disekitar „I‟ dapat dilihat pada Tabel 2.3.

Tabel 2.3. Matriks Kunci 4 huruf disekitar huruf „I‟ sebelum diputar

Kemudian matrik 4 huruf tersebut diputar searah jarum jam, sehingga hasilnya dapat

dilihat pada Tabel 2.4.

Tabel 2.4. Matriks 4 huruf disekitar huruf „I‟ setelah diputar

Selanjutnya matrik kunci, huruf yang berada disekitar „L‟ dapat dilihat pada Tabel 2.5.

I M L K O

A B C D E

F G H N P

Q R S T U

V W X Y Z

A I L K O

B M C D E

F G H N P

Q R S T U

(79)

Tabel 2.5. Matriks 4 huruf disekitar huruf „L‟ sebelum diputar

Kemudian matrik 4 huruf tersebut diputar berlawanan jarum jam, sehingga hasilnya

dapat dilihat pada Tabel 2.6.

Tabel 2.6. Matriks 4 huruf disekitar huruf „L‟ setelah diputar

Kunci matriks pada Tabel 2.6 digunakan untuk mengenkripsi bigram kedua

pada plaintext. Proses ini terus berulang sampai plaintext habis dienkripsi.

Dengan menggunakan teknik pemutaran kunci dua arah, maka ciphertext yang

dihasilkan dari plaintext “ILKOM” adalah:

Plaintext (setelah disusun sesuai dengan bigram dan aturan): IL KO MX

Ciphertext yang dihasilkan:

MK DA CW

Dapat dilihat ciphertext yang dihasil dari algoritma Playfair Cipher klasik

dengan Playfair Cipher Modifikasi teknik pemutaran kunci dua arah memiliki

perbedaan meskipun dengan plaintext yang sama.

2.3Kompresi Data

Kompresi adalah sebuah proses mengubah ukuran data menjadi lebih kecil dari

ukarannya yang semula sehingga dapat lebih menghemat kebutuhan tempat

penyimpanan dan waktu untuk transmisi data . Saat ini terdapat berbagai tipe

A I L K O

B M C D E

F G H N P

Q R S T U

V W X Y Z

A I K D O

B M L C E

F G H N P

Q R S T U

(80)

algoritma kompresi , antara lain: Huffman, IFO, LZHUF, LZ77 dan variannya (LZ78,

LZW, GZIP), Dynamic Markov Compression (DMC), Block-Sorting Lossless, Run

Length Encoding (RLE), Shannon-Fano, Arithmetic, PPM (Prediction by Partial

Matching), Burrows-Wheeler Block Sorting, dan Half Byte.

Untuk melakukan kompresi data telah banyak algoritma yang telah

dikembangkan. Namun, secara umum algoritma kompresi data dapat di bagi menjadi

dua kelompok besar berdasarkan dapat tidaknya rekontuksi ke data asli dilakukan

yaitu:

1. Kompresi Lossless

Kompresi lossless adalah kompresi yang menjaga keakuratan dari data yang

telah di kompres, bila selama proses kompresi terjadi perubahan atau hilangnya

informasi dari data bahkan hanya beberapa bit saja, tidak dapat ditoleransi. Sehingga

teknik kompresi ini bersifat reversible yaitu hasil kompresi dapat dikembalikan ke

bentuk semula secara utuh. Teknik kompresi lossless ini lebih cocok diaplikasikan

pada teks, gambar medis, atau photo hasil satelit dimana hilangnya beberapa detail

pada data dapat berakibat fatal. Contoh algoritma lossless adalah Run Length

Encoding, Arithmetic Coding, Huffman Coding, dan lain-lain.

2. Kompresi Lossy

Berbeda dengan teknik kompresi lossless, pada kompresi lossy perubahan atau

hilangnya beberapa informasi pada data dapat ditoleransi, sehingga hasil kompresi

tidak bisa lagi dikembalikan ke bentuk semula (irreversible). Namun, hasil kompresi

masih bisa mempertahankan informasi utama pada data. Kompresi ini cocok

diaplikasikan pada file suara, gambar atau video. Umumnya teknik ini menghasilkan

kualitas hasil kompresi yang rendah, namun rasio kompresinya cenderung tinggi.

Contoh algoritma kompresi lossy adalah Fractal Compression, Wavelet Compression,

(81)

2.4 Run Length Encoding

Algoritma Run Length Encoding mengurangi ukuran karakter string yang berulang.

Algoritma ini memanfaatkan karakter yang berulang secara berurutan pada sebuah

data dengan mengkodekannya dengan sebuah string yang terdiri dari jumlah karakter

yang berulang dan diikuti dengan karakter itu sendiri. Sehingga banyak tidaknya

karakter yang berulang pada sebuah data menjadi penentu keberhasilan kompresi

algoritma RLE.

Setiap kode perlu ditambahkan sebuah penanda (marker byte) yang berfungsi

untuk menghindari keambiguan pada saat decoding. Jadi, secara umum format kode

yang dihasilkan oleh algoritma RLE dapat dilihat pada Tabel 2.7.

Tabel 2.7. Format kode karakter berulang

m n s

Keterangan :

m : Sebuah penanda (marker byte).

n : Jumlah deret karakter yang berulang.

s : Karakter yang berulang tersebut.

Contoh :

String : “AAABBBBBCCDDDCCCCC”

Kompresi RLE : “#3A#4B#2C#3D#5C”

Sebaiknya yang dipilih sebagai penanda m, adalah karakter yang jarang

digunakan pada data (seperti tanda #, ^, |, atau ~). Namun, apabila penanda m terdapat

pada data, cukup dengan mengkodekannya sebanyak dua kali, sehingga apabila

penanda tersebut muncul dua kali secara berturut-turut saat decoding, maka penanda

tersebut dianggap sebagai karakter asli.

2.5 Kompleksitas Algoritma

Secara informal algoritma adalah suatu prosedur komputasi yang terdefenisi

dengan baik yang mengambil beberapa nilai atau sekumpulan nilai sebagai input dan

menghasilkan beberapa nilai atau sekumpulan nilai sebagai output. Dengan demikian

algoritma adalah suatu urutan langkah-langkah komputasi yang mentransformasikan

input menjadi output (Cormen & Thomas H, 2001). Secara singkat, algoritma

(82)

menerangkan model abstrak pengukuran waktu dan ruang maka digunakan suatu

fungsi yang menjelaskan bagaimana ukuran masukan data (n) mempengaruhi

perfomansi algoritma yang disebut sebagai kompleksitas algoritma.

Pada saat penentuan kompleksitas algoritma, ada beberapa istilah yang sering

digunakan untuk menunjukkan kinerja suatu algoritma untuk ukuran input n, yaitu

best-case, average-case, dan worst-case yang masing-masing menyatakan

kompleksitas keadaan terbaik, keadaan rata-rata, dan keadaan terburuk dari suatu

algoritma. Namun, pada prakteknya penentuan nilai pasti untuk setiap case tersebut

sulit dilakukan. Jadi, yang dilakukan hanyalah analisis asimtotik dari suatu algoritma,

yaitu bagaimana pertumbuhan fungsi (growth of function) suatu algoritma dipengaruhi

oleh input n yang semakin membesar menuju ke tak terhingga (infinity).

Dalam analisis asimtotik, ada beberapa notasi yang sering digunakan untuk

menunjukkan batas-batas fungsi asimtot, yaitu notasi Big-O, Big-Omega, dan Big-

Theta yang masing-masing menunjukkan batas atas (upper bound), batas bawah

(lower bound), dan batas atas dan batas bawah (tight bound) dari fungsi asimtot.

2.5.1 Big – O

Notasi Big-O adalah notasi matematika yang digunakan untuk menggambarkan

suatu fungsi asimtotik. Notasi Big-O sering juga digunakan untuk menjelaskan

seberapa besar ukuran dari suatu data mempengaruhi penggunaan sebuah algoritma

dari sumber komputasi. Notasi ini pertama kali diperkenalkan pada tahun 1894 oleh

Paul Bachman, yaitu pada volume kedua dari bukunya Analytische Zahlentheorie

(analisis teori bilangan) sehingga notasi Big-O biasa juga disebut sebagai notasi

Landau (Landau notation), Bachman-Landau notation, atau notasi asimtotik

(asymptotic notation).

Notasi big O adalah fungsi yang berkaitan dengan kelajuan proses dari pada

kelajuan pertambahan data. Notasi big O merupakan sesuatu nilai dari penyeleasian

masalah dengan merujuk proses kerja dari penyelesaian masalah tersebut. Sebuah

algoritma tidak saja harus benar, tetapi juga harus efisien. Keefesien algoritma diukur

dari beberapa jumlah waktu dan ruang (space) memory yang dibutuhkan untuk

menjalankannya. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran

masukan (n), yang menyatakan jumlah data yang diproses. Dengan menggunakan

Gambar

Gambar 3.3 berikut ini :
Gambar 3.4 Flowchart dekripsi Playfair Cipher
Gambar 3.5 Flowchart dekompresi RLE
Gambar 3.6 Flowchart Sistem
+7

Referensi

Dokumen terkait

[r]

[r]

menggunakan MS Word untuk bekerja (mengetik).Jendela utama terdiri dari jendela dokumen. (tempat untuk memasukkan teks dan penyuntingan) dan jendela perintah

PENDIDIKAN ANAK USIA DINI DAN PENDIDIKAN MASYARAKAT DIREKTORAT PEMBINAAN PENDIDIKAN ANAK USIA DINI.

2009 Novel: Tegar Bengawan Pemenang I Sayembara Penulisan Buku Pengayaan PUSBUK KEMENDIKBUD 2009 2009 Prophetic Learning Pro-U Media (Cetakan ke-2 pd 2010) 2008 Novel:

Dari diagram aktivitas belajar siklus I dan siklus II dapat dijelaskan mengenai peningkatan aktivitas belajar peserta didik, perolehan data pada siklus I indikator pertama

pemeriksaan di sidang pengadilan terhadap tindak pidana korupsi dilakukan hukum acara yang berlaku, kecuali ditentukan lain dalam undang- undang ini”.. 31 Tahun 1999 mulai

kegiatan ilmiah berupa diskusi atau seminar, mengenai bidang studinya; (2) selalu berusaha meningkatkan keefektifan mengajar, mencari cara- cara baru dalam menyampaikan materi