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()
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
matrix(i, j) = matrix(0, j)
ElseIf j = 4 Then
cipher += Matrik(bigramx(0), bigramy(0) + 1).ToString()
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
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
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
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
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
Next
Private Sub putarKunci2(ByVal matrix As Char(,), ByVal huruf As Char) Dim limit As Boolean = False
If bigram(x) = Matrik(i, j) Then
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
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.
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,
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).
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
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
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:
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 :
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
.
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 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
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
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
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
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
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
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.
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
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 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
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
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
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
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
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
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
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
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
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 mediaBAB 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
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
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
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‟
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 :
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
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
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
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,
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
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