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

(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 Form5.Show()

End Sub

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

End Sub

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 Form7.Show()

End Sub End Class

2. Form Enkripsi-Kompresi .vb

Imports System.IO

Imports Microsoft.Office.Interop.Word Public Class Form3

Dim strFileName As String 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

If alpabet(i) = huruf Then Return False

End If Next

alpabet(ab) = huruf ab += 1

Return True End Function

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

Dim temp As Char = " "c For i As Integer = 0 To 18 For j As Integer = 0 To 4

If matrix(i, j) = huruf Then If j = 4 AndAlso i = 18 Then temp = matrix(i, j)

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

limit = True Exit For ElseIf i = 18 Then temp = matrix(i, j)


(3)

matrix(i, j) = matrix(0, j) matrix(0, j) = matrix(0, j + 1) matrix(0, j + 1) = matrix(i, j + 1) matrix(i, j + 1) = temp

limit = True Exit For ElseIf j = 4 Then temp = matrix(i, j)

matrix(i, j) = matrix(i + 1, j) matrix(i + 1, j) = matrix(i + 1, 0) matrix(i + 1, 0) = matrix(i, 0) matrix(i, 0) = temp

limit = True Exit For Else

temp = matrix(i, j)

matrix(i, j) = matrix(i + 1, j)

matrix(i + 1, j) = matrix(i + 1, j + 1) matrix(i + 1, j + 1) = matrix(i, j + 1) matrix(i, j + 1) = temp

limit = True Exit For End If End If Next

If limit Then Exit For End If Next End Sub

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

Dim temp As Char = " "c For i As Integer = 0 To 18 For j As Integer = 0 To 4

If matrix(i, j) = huruf Then If i = 18 AndAlso j = 4 Then temp = matrix(i, j) matrix(i, j) = matrix(i, 0)

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

limit = True Exit For ElseIf i = 18 Then temp = matrix(i, j)

matrix(i, j) = matrix(i, j + 1) matrix(i, j + 1) = matrix(0, j + 1) matrix(0, j + 1) = matrix(0, j) matrix(0, j) = temp

limit = True Exit For


(4)

(5)

ElseIf j = 4 Then temp = matrix(i, j)

matrix(i, j) = matrix(i, 0) matrix(i, 0) = matrix(i + 1, 0) matrix(i + 1, 0) = matrix(i + 1, j) matrix(i + 1, j) = temp

limit = True Exit For Else

temp = matrix(i, j)

matrix(i, j) = matrix(i, j + 1)

matrix(i, j + 1) = matrix(i + 1, j + 1) matrix(i + 1, j + 1) = matrix(i + 1, j) matrix(i + 1, j) = temp

limit = True Exit For End If End If Next

If limit Then Exit For End If Next End Sub

Private Sub enkripsi(ByVal bigram As String, ByVal Matrik As Char(,)) Dim limit As Boolean = False

Dim bigramx As Integer() = New Integer(1) {} Dim bigramy As Integer() = New Integer(1) {} For x As Integer = 0 To 1

For i As Integer = 0 To 18 For j As Integer = 0 To 4

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

bigramy(x) = j limit = True

If limit = True AndAlso x = 2 Then Exit For

End If End If Next

If limit = True AndAlso x = 2 Then Exit For

End If Next Next

If bigramx(0) = bigramx(1) Then If bigramy(0) = 4 Then

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


(6)

(7)

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

Else

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

End If

ElseIf bigramy(0) = bigramy(1) Then If bigramx(0) = 18 Then

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

ElseIf bigramx(1) = 18 Then

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

Else

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

End If Else

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

End If

TextBox3.Text = cipher End Sub

Private Sub cari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cari.Click

Dim AmbilFile As New OpenFileDialog

Dim objFSO As New Scripting.FileSystemObject Dim objFile As Scripting.File

objFSO = New Scripting.FileSystemObject AmbilFile.CheckFileExists = True

AmbilFile.CheckPathExists = True AmbilFile.DefaultExt = "txt" AmbilFile.Filter =

"Documen(*.doc)|*.doc|document(*.docx)|*.docx|TXT File (*.txt)|*.txt|All Files (*.*)|*.*"

AmbilFile.Multiselect = False AmbilFile.ShowDialog()

strFileName = AmbilFile.FileName Textcari.Text = strFileName

Dim app As Application = New Application

Dim doc As Document = app.Documents.Add(strFileName) ' Dim co As Integer = doc.Characters.Count

For i As Integer = 1 To co - 1

Dim tex As String = doc.Characters(i).Text TextBox1.Text += tex

Next

TextBox9.Text = TextBox1.TextLength objFile = objFSO.GetFile(strFileName) TextBox7.Text = objFile.Size & "bytes" End Sub


(8)

(9)

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim kunci As String = TextBox2.Text Dim PKunci As Integer = kunci.Length Dim a As Integer = 0, asci As Integer = 32 Dim Matrik As Char(,) = New Char(18, 4) {} waktu_proses.Start()

For i As Integer = 0 To 18 For j As Integer = 0 To 4 If a < PKunci Then

If cekKunci(kunci(a)) = True Then Matrik(i, j) = kunci(a) Else

j -= 1 End If a += 1 Else

If cekKunci(ChrW(asci)) = True Then Matrik(i, j) = ChrW(asci) Else

j -= 1 End If asci += 1 End If

Next Next

Dim plain As String = TextBox1.Text Dim bigram As String = ""

If plain.Length Mod 2 <> 0 Then plain += "x"

End If

Dim x As Integer = 0

bigram = plain.Substring(x, 2) x += 2

enkripsi(bigram, Matrik)

For i As Integer = 0 To plain.Length - 3 If i Mod 2 = 0 Then

putarKunci1(Matrik, plain(i)) Else

putarKunci2(Matrik, plain(i)) bigram = plain.Substring(x, 2) x += 2

enkripsi(bigram, Matrik) End If

Next

waktu_proses.Stop()

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

Dim ccnt As Integer = 1 'char counter

For i As Integer = 0 To s.Length - 2

If s(i) <> s(i + 1) OrElse i = s.Length - 2 Then

'..a break in character repetition or the end of the string

If s(i) = s(i + 1) AndAlso i = s.Length - 2 Then 'end of string condition

ccnt += 1 End If

If ccnt = 1 Then

srle += (If("1234567890".Contains(s(i).ToString()), "" + ESCAPE, "")) + s(i)

Else

'escape digits

srle += ccnt.ToString() +

(If("1234567890".Contains(s(i).ToString()), "" + ESCAPE, "")) + s(i) End If

'escape digits

If s(i) <> s(i + 1) AndAlso i = s.Length - 2 Then 'end of string condition

srle += (If("1234567890".Contains(s(i + 1).ToString()), "1" + ESCAPE, "")) + s(i + 1)


(12)

(13)

End If

'reset char repetition counter ccnt = 1

Else

ccnt += 1 End If

Next

Return srle End Function

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()

End Sub End Class

3. Form Dekompresi-Dekripsi .vb

Imports System.IO

Imports Microsoft.Office.Interop.Word Public Class Form4

Dim strFileName As String Dim plain As String = ""

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

Dim waktu_proses As New Stopwatch 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

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim AmbilFile As New OpenFileDialog Dim strFileName As String

Dim objFSO As New Scripting.FileSystemObject Dim objFile As Scripting.File

objFSO = New Scripting.FileSystemObject AmbilFile.CheckFileExists = True

AmbilFile.CheckPathExists = True AmbilFile.DefaultExt = "txt" AmbilFile.Filter =

"Documen(*.doc)|*.doc|document(*.docx)|*.docx|TXT File (*.txt)|*.txt|All Files (*.*)|*.*"


(14)

(15)

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

AmbilFile.ShowDialog()

strFileName = AmbilFile.FileName Textcari.Text = strFileName

Dim app As Application = New Application

Dim doc As Document = app.Documents.Add(strFileName) Dim co As Integer = doc.Characters.Count

For i As Integer = 1 To co - 1

Dim tex As String = doc.Characters(i).Text TextBox1.Text += tex

Next

TextBox6.Text = TextBox1.TextLength objFile = objFSO.GetFile(strFileName) TextBox7.Text = objFile.Size & "bytes" 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\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

Public Shared Function RunLengthDecode(ByVal s As String) As String Dim dsrle As String = String.Empty, ccnt As String =

String.Empty

'char counter

For i As Integer = 0 To s.Length - 1

If "1234567890".Contains(s(i).ToString()) Then 'extract repetition counter

ccnt += s(i) Else

If s(i) = ESCAPE Then i += 1

End If

If ccnt = "" Then

dsrle += s(i).ToString() ccnt = ""

Else

dsrle += New [String](s(i), Integer.Parse(ccnt)) ccnt = ""

End If End If Next

Return dsrle End Function


(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

If alpabet(i) = huruf Then Return False

End If Next

alpabet(ab) = huruf ab += 1

Return True End Function

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

Dim temp As Char = " "c For i As Integer = 0 To 18 For j As Integer = 0 To 4

If matrix(i, j) = huruf Then If j = 4 AndAlso i = 18 Then temp = matrix(i, j)

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

limit = True Exit For ElseIf i = 18 Then temp = matrix(i, j)

matrix(i, j) = matrix(0, j) matrix(0, j) = matrix(0, j + 1) matrix(0, j + 1) = matrix(i, j + 1) matrix(i, j + 1) = temp

limit = True Exit For ElseIf j = 4 Then temp = matrix(i, j)

matrix(i, j) = matrix(i + 1, j) matrix(i + 1, j) = matrix(i + 1, 0) matrix(i + 1, 0) = matrix(i, 0) matrix(i, 0) = temp

limit = True Exit For Else

temp = matrix(i, j)

matrix(i, j) = matrix(i + 1, j)

matrix(i + 1, j) = matrix(i + 1, j + 1) matrix(i + 1, j + 1) = matrix(i, j + 1) matrix(i, j + 1) = temp

limit = True Exit For End If End If


(18)

(19)

Next

If limit Then Exit For End If Next End Sub

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

Dim temp As Char = " "c For i As Integer = 0 To 18 For j As Integer = 0 To 4

If matrix(i, j) = huruf Then If i = 18 AndAlso j = 4 Then temp = matrix(i, j)

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

limit = True Exit For ElseIf i = 18 Then temp = matrix(i, j)

matrix(i, j) = matrix(i, j + 1) matrix(i, j + 1) = matrix(0, j + 1) matrix(0, j + 1) = matrix(0, j) matrix(0, j) = temp

limit = True Exit For ElseIf j = 4 Then temp = matrix(i, j)

matrix(i, j) = matrix(i, 0) matrix(i, 0) = matrix(i + 1, 0) matrix(i + 1, 0) = matrix(i + 1, j) matrix(i + 1, j) = temp

limit = True Exit For Else

temp = matrix(i, j)

matrix(i, j) = matrix(i, j + 1)

matrix(i, j + 1) = matrix(i + 1, j + 1) matrix(i + 1, j + 1) = matrix(i + 1, j) matrix(i + 1, j) = temp

limit = True Exit For End If End If Next

If limit Then Exit For End If Next End Sub

Private Sub dekripsi(ByVal bigram As String, ByVal Matrik As Char(,)) Dim limit As Boolean = False

Dim bigramx As Integer() = New Integer(1) {} Dim bigramy As Integer() = New Integer(1) {} For x As Integer = 0 To 1

For i As Integer = 0 To 18 For j As Integer = 0 To 4


(20)

(21)

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

bigramy(x) = j limit = True

If limit = True AndAlso x = 2 Then Exit For

End If End If Next

If limit = True AndAlso x = 2 Then Exit For

End If Next Next

If bigramx(0) = bigramx(1) Then If bigramy(0) = 0 Then

plain += Matrik(bigramx(0), 4).ToString() + Matrik(bigramx(1), bigramy(1) - 1).ToString()

ElseIf bigramy(1) = 0 Then

plain += Matrik(bigramx(0), bigramy(0) - 1).ToString() + Matrik(bigramx(1), 4).ToString()

Else

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

End If

ElseIf bigramy(0) = bigramy(1) Then If bigramx(0) = 0 Then

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

ElseIf bigramx(1) = 0 Then

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

Else

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

End If Else

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

End If

TextBox3.Text = plain End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim kunci As String = TextBox2.Text Dim PKunci As Integer = kunci.Length Dim a As Integer = 0, asci As Integer = 32 Dim Matrik As Char(,) = New Char(18, 4) {} waktu_proses.Start()

For i As Integer = 0 To 18 For j As Integer = 0 To 4 If a < PKunci Then

If cekKunci(kunci(a)) = True Then Matrik(i, j) = kunci(a) Else

j -= 1 End If a += 1 Else


(22)

(23)

Matrik(i, j) = ChrW(asci) Else

j -= 1 End If asci += 1 End If

Next Next

Dim cipher As String = TextBox4.Text Dim bigram As String = ""

Dim x As Integer = 0

bigram = cipher.Substring(x, 2) x += 2

dekripsi(bigram, Matrik)

For i As Integer = 0 To cipher.Length - 3 If i Mod 2 = 0 Then

putarKunci1(Matrik, plain(i)) Else

putarKunci2(Matrik, plain(i)) bigram = cipher.Substring(x, 2) x += 2

dekripsi(bigram, Matrik) End If

Next

TextBox9.Text = TextBox3.Text.Count waktu_proses.Stop()

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

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

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.

Whitten, J.L., Bentley, L.D. & Dittman, K.C. 2004. Metode Desain & Analisis Sistem. Edisi 6. ANDI: Yogyakarta.


(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, ketersediaan. Mengirim dan menerima pesan rahasia membutuhkan elemen – elemen berikut ini (Sadikin,2012).


(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).

Aplikasi kriptografi masih tergolong tidak sederhana

Sistem Algoritma

kriptografi klasik tidak terlalu aman

Metode Sulit menemukan metode yang tepat untuk mengamankan dan kompresi file teks

Ukuran file besar Data tidak aman Data

Pemalsuan pesan User

Kebutuhan user untuk mengirim data dengan aman dan cepat

Keamanan pesan dan pemampatan data dengan Playfair Cipher dan RLE


(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 kriptografi dan kompresi yang dilakukan oleh sistem.


(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 flowchart sistem.


(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 dilakukan. Proses dekripsi pesan dapat dilihat pada flowchart Gambar 3.4 berikut ini:


(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 utama sistem yaitu pengamanan dan kompresi data.


(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 pada aplikasi dapat dilihat pada Gambar 3.7 berikut ini :


(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 Alternative Flows -


(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 dilihat pada Gambar 3.9 berikut ini :


(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 ditunjukkan pada Gambar 3.10 berikut ini :


(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 penulis. Rancangan halaman awal dapat dilihat pada Gambar 3.11.


(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

Waktu : Ukuran : dengan Hasil Kompresi Plainteks File :

dengan Ukuran : dengan Plainteks Plainteks Kunci Cipherteks Plainteks

1 2

3

4 6 7

8 5

9

10

11 12

13 14 15 23 19 20 22 18 16 21 17


(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 dengan RLE. Halaman dekripsi-dekompresi ini ditunjukkan pada Gambar 3.13.


(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

Kunci

Ukuran : dengan Plainteks

Plainteks File :

dengan Ukuran : dengan Hasil Kompresi Plainteks Waktu Cipherteks Plainteks 1 3

4 6 7

8 5 9 12 18 10 13 1 16 15 11 17 14 1 21 1 20 1 22 14 1 19 1 2


(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 dihasilkan. Untuk halaman dekompresi-dekripsi dapat dilihat pada Gambar 4.3.


(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 kompresi-enkripsi dapat dilihat pada Gambar 4.4.


(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 Gambar 4.7.


(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

37 % 69 E 101 e

38 & 70 F 102 f

39 ' 71 G 103 g

40 ( 72 H 104 h

41 ) 73 I 105 i

42 * 74 J 106 j

43 + 75 K 107 k

44 , 76 L 108 l

45 - 77 M 109 m

46 . 78 N 110 n

47 / 79 O 111 o

48 0 80 P 112 p

49 1 81 Q 113 q

50 2 82 R 114 r

51 3 83 S 115 s

52 4 84 T 116 t

53 5 85 U 117 u

54 6 86 V 118 v

55 7 87 W 119 w

56 8 88 X 120 x

57 9 89 Y 121 y

58 : 90 Z 122 z

59 ; 91 [ 123 {

60 < 92 \ 124 |

61 = 93 ] 125 }

62 > 94 ^ 126 ~

63 ? 95 _

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 plainteks : MAMA dengan kata kunci : ilkom.


(54)

Proses enkripsi sebagai berikut:

Plainteks dalam bentuk bigram : MA MA Matriks kunci dapat dilihat pada Tabel 4.1.

Tabel 4.1 Matriks kunci

i l k o m

sp ! " # $

% & ' ( )

* + , - .

/ 0 1 2 3

4 5 6 7 8

9 : ; < =

> ? @ A B

C D E F G

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 { | } ~

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

i l k o m

sp ! " # $

% & ' ( )

* + , - .

/ 0 1 2 3

4 5 6 7 8

9 : ; < =


(55)

C D E F G

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 { | } ~

Selanjutnya huruf yang berada disekitar „A‟ diputar berlawanan arah jarum jam

sehingga hasilnya dapat dilihat pada Tabel 4.3.

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

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 { | } ~

Kunci matriks pada Tabel 4.3 digunakan untuk mengenkripsi bigram kedua pada

plainteks, menjadi “PD”.

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

Gambar 4.8 menjelaskan hasil enkripsi dan kompresi dari plainteks „MAMA‟ pada sistem. Dengan kata kunci „ilkom‟ ditampilkan cipherteks dan hasil kompresi pesan beserta jumlah karakternya.


(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. Dengan kata kunci „ilkom‟ ditampilkan hasil dekompresi pesan yaitu ciphertext dan pesan asli yaitu plaintext beserta jumlah karakternya.


(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

i l k o m

sp ! " # $

% & ' ( )

* + , - .

/ 0 1 2 3

9 4 6 7 8

: 5 ; < =

> ? @ A B

C D E F G

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


(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 Gambar 4.10


(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

adalah “4A”, selanjutnya untuk mendekripsi bigram kedua yaitu “7@” dilakukan perputaran kunci terhadap karakter disekitar „4‟ diputar searah jarum jam dan karakter disekitar „A‟ diputar berlawanan arah jarum jam. Matriks hasil perputaran dapat dilihat pada Tabel 4.7.


(62)

Tabel 4.7 Matriks hasil setelah perputaran

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 { | } ~

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 dekripsi dan dekompresi dapat dilihat pada Gambar 4.11.


(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)

@an' #&CygnSyppl @an' #&CygnSy2pl 0.0754886 Kompresi lossless run length encoding dan kriptografi simetris playfair cipher 78 P#istcpoi!m}ymnoki v}wl*zhnnr%}hn&ak aj.rcj2mq$dd{r!ga~5( {$rdvs(;qob)zh''<tl{q ke P#istcpoi!m}ymnoki v}wl*zh2nr%}hn&ak aj.rcj¥2mq$2d{r!ga~ ¥5({$rdvs(;qob)zh2'< tl{qke 78 0,3619115 0.382058 8 Lnnlqcjg%jrioi)ov$}s t+x$mhgq,+jkyqmqz 0mkz/!uqzgtyakjt7bq o,q$qb9jt#ghkt&:a|hn 6+ L2nlqcjg%jrioi)ov$}s t+x$mhgq,+jkyqmqz ¥0mkz/!uqzgtyakjt¥7 bqo,q$qb¥9jt#ghkt&: a|hn¥6+ 0.4092215 Nkjkpgmhdrujpwquo atl +qgaflkdl"^s!}'{a%d-nbtqu}urj$}_%x_tjc| xe#'v"xg.q)ate$v&- Nkjkpgmhdrujpwquo atl +qgaflkdl"^s!}'{a%d-nbtqu}urj$}_%x_tjc| xe#'v"xg.q)ate$v&- 0.3750435 Kompresi adalah sebuah proses mengubah ukuran data menjadi lebih kecil dari ukarannya yang semula sehingga dapat lebih menghemat kebutuhan tempat penyimpana n dan waktu

untuk transmisi data. 189 P#istcpo$bfjoqw"qtv {~f){hk|sr,&igxhvuz-rhypid*gedh0eotd!ge 1qunmq8ipju!0j,{r1e pl(lbyp,<qlxw<|m'i24 <f&)&q|n4?}1g8w@ -rg)(G+(oq%(,3yGrrpi z&45/Bi+*!li@&zzo u8o6/>&FsD&PjHnv iLi'bi/Uy!K&o5tq/[sJ (S"j P#istcpo$bfjoqw"qtv {~f){hk|sr,&igxhvuz-rhypid*gedh¥0eotd!g e¥1qunmq¥8ipju!¥0j, {r¥1epl(lbyp,<qlxw<| m'i¥2¥4<f&)&q|n¥4? }¥1g¥8w@-rg)(G+(oq%(,¥3yG2r piz&¥4¥5/Bi+*!li@ &2zou¥8o¥6/>&FsD &PjHnviLi'bi/Uy!K& o¥5tq/[sJ(S"j 189 0,4802678 0.505719 Lnnlqcjg#bh#s&f#g( %z.ialhif.g&h0wnz% +r(|$co.w1q/f1ei dt2jy4n !xi1z #mv2s<fm/z$<i=dx}; 2o9}f9j7q$};>f4y||nx @FvCfHj@"?.$mB} 2fh$2u=%;.:-l|'dE|@h2zvF#@f:$' m+vHoNrCxUoQqY 4'xRdgmd*Sc$_"%+ }`oX$`lw3g L2nlqcjg#bh#s&f#g( %z.ialhif.g&h¥0wnz %+r(|$co.w¥1q/f¥1ei dt¥2jy¥4n !xi¥1z #mv¥2s<fm/z$<i=dx };¥2o¥9}f¥9j¥7q$};> f¥4y2|nx@FvCfHj@" ?.$mB}¥2fh$¥2u=%; .:-l|'dE|@h¥2zvF#@f:$' m+vHoNrCxUoQqY ¥4'xRdgmd*Sc$_"% +}`oX$`lw¥3g 0.4543715 Nkjkpgmh!da(k#f%p s^o*s#io}qwq)et$f~_ *g(ex)k'$,% k2.o|ei6&g*`{`ed5{zl ob5#<lm."|<e;+kc;.|> +p8wryh|B8ti)oinoB D)HsF|Dpgj~)>or{u &noF+<"xy$xduMtB r"kbH$Bsok--}bJtS$GtX$KvY'k$J $0(00S'iv$lkjlsXmfh` 4% Nkjkpgmh!da(k#f%p s^o*s#io}qwq)et$f~_ *g(ex)k'$,% k¥2.o|ei¥6&g*`{`ed¥ 5{zlob¥5#<lm."|<e;+ kc;.|>+p¥8wryh|B¥8ti )oinoBD)HsF|Dpgj~) >or{u&noF+<"xy$xd uMtBr"kbH$Bsok2-}bJtS$GtX$KvY'k$J $¥0(2¥0S'iv$lkjlsXm fh`¥4% 0.5825178


(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 dan Tabel 4.10.

0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6

Plainteks 12 Karakter Plainteks 78 Karakter Plainteks 189 Karakter

W

a

k

tu

(

s)

Jumlah Plainteks

Grafik Panjang Plainteks dan Waktu


(66)

Tabel 4.9 Hasil Pengujian string Homogen

String Homogen No Jumlah

Karakter Jenis Karakter Ukuran sebelum Kompresi (Byte) Ukuran setelah

kompresi (Byte) Rc Cr Rd

1 14 1 14 6 2.34 42.80% 0.572

2 26 1 26 6 4.34 23.00% 0.77

3 42 1 42 6 7 14.20% 0.858

4 84 1 84 6 14 7.14% 0.928

5 150 1 150 7 21.4 4.67% 0.953

6 500 1 500 7 71.4 1.40% 0.986

Rata-rata 20.08 15.54% 0.8445

Tabel 4.10 Hasil Pengujian string Heterogen

String Heterogen No Jumlah

Karakter Jenis Karakter Ukuran sebelum Kompresi (Byte) Ukuran setelah

kompresi (Byte) Rc Cr Rd

1 14 2 14 7 2 50.00% 0.5

2 26 4 26 12 2.167 46.15% 0.538

3 42 6 42 16 2.625 38.10% 0.619

4 84 9 84 26 3.23 30.95% 0.69

5 150 12 150 39 3.846 26.00% 0.74

6 500 20 500 59 8.474 11.80% 0.882

Rata-rata 3.7237 33.83% 0.6615

4.2.7 Pengujian Kompleksitas Algoritma

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

Kode program Eksekusi

1 For x = 0 To 1 n

2 For i = 0 To 18 n2

3 For j = 0 To 4 n3

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

5 bigramx(x) = i n3

6 bigramy(x) = j n3

7 limit = True n3


(67)

9 Exit For

10 End If

11 End If

12 Next

13 If limit = True AndAlso x = 2 Then n2

14 Exit For

15 End If

16 Next

17 Next

18 If bigramx(0) = bigramx(1) Then 1

19 If bigramy(0) = 4 Then 1

20 cipher += Matrik(bigramx(0), 0) +

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

21 ElseIf bigramy(1) = 4 Then 1

22 cipher += Matrik(bigramx(0), bigramy(0) + 1) +

Matrik(bigramx(1), 0) 1

23 Else

24 cipher += Matrik(bigramx(0), bigramy(0) + 1)+

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

25 End If

26 ElseIf bigramy(0) = bigramy(1) Then 1

27 If bigramx(0) = 18 Then 1

28 cipher += Matrik(0, bigramy(0))+ Matrik(bigramx(1) + 1, bigramy(1)) 1

29 ElseIf bigramx(1) = 18 Then 1

30 cipher += Matrik(bigramx(0) + 1, bigramy(0))+

Matrik(0, bigramy(1)) 1

31 Else

32 cipher += Matrik(bigramx(0) + 1, bigramy(0)) +

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

33 End If

34 Else

35 cipher += Matrik(bigramx(0), bigramy(1)) +

Matrik(bigramx(1), bigramy(0)) 1

36 End If

Total eksekusi n+2n2+6n3+13

.

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

Kode program Eksekusi

1 For i = 0 To s.Length - 2 n

2 If s(i) <> s(i + 1) OrElse i = s.Length - 2 Then n

3 If s(i) = s(i + 1) AndAlso i = s.Length - 2 Then n

4 ccnt += 1 n

5 End If

6 If ccnt = 1 Then n

7 srle += ("")) + s(i) If("1234567890".Contains(s(i)), "" + ESCAPE, n

8 Else


(68)

10 End If

11 If s(i) <> s(i + 1) AndAlso i = s.Length - 2 Then n

12 srle += (ESCAPE, "")) + s(i + 1) If("1234567890".Contains(s(i + 1)), "1" + n

13 End If

14 ccnt = 1 n

15 Else

16 ccnt += 1 n

17 End If

18 Next

Total eksekusi 11n

Kompleksitas algoritma kompresi pada RLE tersebut adalah 11n dengan Big-O = O(n). Selanjutnya dihitung kompleksitas algoritma dekripsi Playfair Cipher yang ditunjukan pada Table 4.13

Tabel 4.13 Kompleksitas Algoritma Dekripsi Playfair Cipher

Kode program Eksekusi

1 For x = 0 To 1 n

2 For i = 0 To 18 n2

3 For j = 0 To 4 n3

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

5 bigramx(x) = i n3

6 bigramy(x) = j n3

7 limit = True n3

8 If limit = True AndAlso x = 2 Then n3

9 Exit For

10 End If

11 End If

12 Next

13 If limit = True AndAlso x = 2 Then n2

14 Exit For

15 End If

16 Next

17 Next

18 If bigramx(0) = bigramx(1) Then 1

19 If bigramy(0) = 0 Then 1

20 plain += Matrik(bigramx(0), 4)+ Matrik(bigramx(1), bigramy(1) - 1) 1

21 ElseIf bigramy(1) = 0 Then 1

22 plain += Matrik(bigramx(0), bigramy(0) - 1) + Matrik(bigramx(1), 4) 1

23 Else

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

25 End If

26 ElseIf bigramy(0) = bigramy(1) Then 1

27 If bigramx(0) = 0 Then 1

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


(69)

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

31 Else

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

33 End If

34 Else

35 plain += Matrik(bigramx(0), bigramy(1)) + Matrik(bigramx(1), bigramy(0)) 1

36 End If

Total eksekusi n+2n2+6n3+13

.

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

1 For i = 0 To s.Length - 1 n

2 If "1234567890".Contains(s(i).ToString()) Then n

3 ccnt += s(i) n

4 Else

5 If s(i) = ESCAPE Then n

6 i += 1 n

7 End If

8 If ccnt = "" Then n

9 dsrle += s(i) n

10 ccnt = "" n

11 Else

12

dsrle += New [String](s(i),

Integer.Parse(ccnt)) n

13 ccnt = "" n

14 End If

15 End If

16 Next

Total eksekusi 10n

Kompleksitas algoritma untuk dekompresi pada algoritma RLE tersebut hasilnya adalah 10n dengan Big-O = O(n).


(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 dan dekripsi algoritma Playfair Cipher kompleksitasnya adalah O(n3)


(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 pengiriman pesan seperti sms, email dan sebagainya.


(1)

ABSTRAK

Komunikasi dan bertukar informasi secara jarak jauh sudah sangat mudah dan praktis. Kemudahan ini menuntut peningkatan keamanan terhadap kerahasiaan data yang dikirim. Kriptografi adalah salah satu cara yang digunakan untuk menjaga kerahasian dari sebuah pesan, dimana pesan disamarkan menjadi sandi. Selain keamanan data yang perlu diperhatikan juga adalah kecepatan dalam pengiriman data tersebut. Kecepatan pengiriman ini tergantung dari ukuran informasi tersebut. Kompresi adalah proses pengubahan sekumpulan data menjadi bentuk kode dengan tujuan untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data. Dalam penelitian ini penulis mengkombinasi algoritma kriptografi Playfair Cipher dengan algoritma kompresi Run Length Encoding, serta menganalisa kedua algoritma menggunakan kompleksitas algoritma. waktu eksekusi pesan dengan 16 karakter adalah 0.54423 sekon, waktu eksekusi pesan dengan 78 karakter adalah 1.14617 sekon, dan waktu eksekusi pesan dengan 189 karakter adalah 1.51715 sekon. Hasil pengujian proses kompresi string Homogen dengan kompresi rasio rata-rata sebesar 33.83% dan sring Heterogen dengan kompresi rasio rata-rata-rata-rata sebesar 15,54%. Dapat disimpulkan jumlah karakter pada pesan berbanding lurus terhadap waktu.


(2)

ANALYSIS AND IMPLEMENTATION PLAYFAIR CIPHER CRYPTOGRAPHY ALGORITHM AND RUN LENGTH

ENCODING COMPRESSION ALGORITHM IN TEXT DATA SECURITY AND COMPRESSION

Communication and information exchange in long distance have been very simple and practical. This simplicity demands security increment toward data privacy that is sent. Cryptography is one of some techniques which is used to keep message privacy, which is, message is encrypted to be ciphertext. Besides data security, point that also need to be concerned is speed of data transmission. Speed of data transmission depends on size of that data. Compression is conversion process of data set to be code form that purposed to decrease memory usage and time of transmission data. In this experiment, writer combines Playfair Cipher cryptography algorithm with Run Length Encoding compression algorithm, and analyze both of algorithm by using algorithm complexity. Execution time for 16 characters is 0.54423 second, execution time for 78 characters is 1.14617 second, and execution time for 189 characters is 1.51715 second. The result of research show that the compression process of Homogeneous String with the average of compression ratio is 42.39 %, and the compression process of Heterogeneous String with the average of compression ratio is 84.36 %. So it can be concluded that amount of character in message is directly propotional to the time.

Keywords : Cryptography, Playfair Cipher, Compression, Run Length Encoding.


(3)

DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Ruang Lingkup Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 4

1.7 Sistematika Penulisan 5

Bab 2 Landasan Teori

2.1 Kriptografi 6

2.1.1 Pengertian Kriptografi 6

2.1.2 Jenis-jenis Algoritma Kriptografi 8 2.1.2.1 Algoritma Simetris 8 2.1.2.2 Algoritma Asimetris 8

2.2 Playfair Cipher 9

2.3 Kompresi Data 13

2.4 Run Length Encoding 15

2.5 Kompleksitas Algoritma 15

2.6 Penelitian yang Relevan 18

Bab 3 Analisis dan Perancangan

3.1 Analisis Sistem 19

3.1.1 Analisis Masalah 19

3.1.2 Analisis Kebutuhan 21

3.1.2.1 Kebutuhan Fungsional 21 3.1.2.2 Kebutuhan Nonfungsional 21

3.2 Perancangan Sistem 22

3.2.1 Flowchart 22

3.2.4.2 Flowchart Enkripsi Playfair Cipher 23 3.2.4.2 Flowchart Kompresi RLE 24 3.2.4.3 Flowchart Dekripsi Playfair Cipher 25 3.2.4.2 Flowchart Dekompresi RLE 26 3.2.4.4 Flowchart Sistem 27

3.2.2 Use Case Diagram 27


(4)

3.2.4 Sqeuence Diagram 32

3.3 Perancangan Antarmuka 33

3.3.1 Halaman Beranda 33

3.3.2 Halaman Enkripsi-Kompresi 34 3.3.3 Halaman Dekripsi-Dekompresi 36

3.3.4 Halaman Tentang 38

3.2.5 Halaman Bantuan 39

Bab 4 Implementasi dan Pengujian

4.1 Implementasi 40

4.1.1 Halaman Beranda 40

4.1.2 Halaman Proses 41

4.1.3 Halaman Tentang 44

4.1.4 Halaman Bantuan 44

4.2 Pengujian 45

4.2.1 Pengujian Proses Enkripsi-Kompresi 46 4.2.2 Pengujian Proses Dekompresi-Dekripsi 50 4.2.3 Pengujian Proses Kompresi-Enkripsi 52 4.2.4 Pengujian Proses Dekripsi-Dekompresi 54 4.2.5 Hasil Pengujian Algoritma Terhadap Waktu 56 4.2.6 Pengujian Kompleksitas Algoritma 59

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 63

5.2 Saran 64

Daftar Pustaka 65

Listing Program A-1

Curriculum Vitae


(5)

DAFTAR TABEL

Hal.

TABEL 2.1. Contoh Matriks Kunci „ILKOM‟ 9

TABEL 2.2. Contoh Matriks Kunci 11

TABEL 2.3. Matriks Kunci 4 Huruf disekitar Huruf „A‟ Sebelum diputar 12

TABEL 2.4. Matriks Kunci 4 Huruf disekitar Huruf „A‟ Setelah diputar 12

TABEL 2.5. Matriks Kunci 4 Huruf disekitar Huruf „N‟ Sebelum diputar 13

TABEL 2.6. Matriks Kunci 4 Huruf disekitar Huruf „N‟ Setelah diputar 13

TABEL 2.7. Format Kode Karakter Berulang 15

TABEL 2.8. Perbandingan Pertumbuhan fungsi f dan g 17

TABEL 3.1. Spesifikasi Use Case Enkripsi Pesan 28

TABEL 3.2. Spesifikasi Use Case Kompresi Pesan 29

TABEL 3.3. Spesifikasi Use Case Dekompresi Pesan 29

TABEL 3.4. Spesifikasi Use Case Dekripsi Pesan 30

TABEL 4.1. Karakter ASCII yang digunakan 45

TABEL 4.2. Matriks Kunci 47

TABEL 4.3. Matriks 4 Huruf disekitar Huruf „M‟ Setelah diputar 47

TABEL 4.4. Matriks 4 Huruf disekitar Huruf „A‟ Setelah diputar 48

TABEL 4.5. Matriks Hasil Perputaran „M‟ dan „A‟ 50

TABEL 4.6. Matriks Hasil disekitar „4‟ Setelah diputar 52

TABEL 4.7. Matriks Hasil disekitar „A‟ Setelah diputar 53

TABEL 4.8. Matriks Hasil Perputaran „4‟ dan „A‟ 55

TABEL 4.9. Pengujian Terhadap Waktu Proses 56

TABEL 4.10. Hasil Pengujian String Homogen 59

TABEL 4.11. Hasil Pengujian String Heterogen 59

TABEL 4.12. Kompleksitas Algoritma Enkripsi Playfair Cipher 59

TABEL 4.13. Kompleksitas Algoritma Kompresi RLE 60

TABEL 4.14. Kompleksitas Algoritma Dekripsi Playfair Cipher 61 TABEL 4.15. Kompleksitas Algoritma Dekompresi RLE 62


(6)

DAFTAR GAMBAR

Hal. GAMBAR 2.1. Skema Proses Enkripsi dan Dekripsi 6

GAMBAR 2.2. Skema Kriptografi Simetris 8

GAMBAR 2.3. Skema Kriptografi Asimetris 9

GAMBAR 2.4. Grafik fungsi f dan g 17

GAMBAR 3.1. Diagram Ishikawa Masalah Penelitian 20 GAMBAR 3.2. Flowchart Enkripsi Playfair Cipher 23

GAMBAR 3.3. Flowchart Kompresi RLE 24

GAMBAR 3.4. Flowchart Dekripsi Playfair Cipher 25

GAMBAR 3.5. Flowchart Dekompresi RLE 26

GAMBAR 3.6. Flowchart Sistem 27

GAMBAR 3.7. Use Case Diagram 28

GAMBAR 3.8. Activity Diagram Enkripsi-Kompresi 31 GAMBAR 3.9. Activity Diagram Dekompresi-Dekripsi 32

GAMBAR 3.10. Sequence Diagram Sistem 33

GAMBAR 3.11. Rancangan Antarmuka Beranda 34

GAMBAR 3.12. Rancangan Antarmuka Enkripsi-Kompresi 35 GAMBAR 3.13. Rancangan Antarmuka Dekompresi-Dekripsi 37

GAMBAR 3.14. Rancangan Antarmuka Tentang 38

GAMBAR 3.15. Rancangan Antarmuka Bantuan 39

GAMBAR 4.1. Antar Muka Menu Utama 40

GAMBAR 4.2. Antar Muka Enkripsi-Kompresi 41

GAMBAR 4.3. Antar Muka Dekompresi-Dekripsi 42

GAMBAR 4.4. Antar Muka Kompresi-Enkripsi 43

GAMBAR 4.5. Antar Muka Dekripsi-Dekompresi 43

GAMBAR 4.6. Antar Muka Tentang 44

GAMBAR 4.7. Antar Muka Bantuan 45

GAMBAR 4.8. Tampilan Pengujian Enkripsi-Kompresi 49 GAMBAR 4.9. Tampilan Pengujian Dekompresi-Dekripsi 51 GAMBAR 4.10. Tampilan Pengujian Kompresi - Enkripsi 54 GAMBAR 4.11. Tampilan Pengujian Dekripsi-Dekompresi 56 GAMBAR 4.12. Grafik Hubungan Panjang Plainteks dengan Waktu 58