Implementasi Algoritma Affine Cipher, RSA-CRT dan Alternate Unary Code Dalam Pengamanan dan Kompresi Teks

BAB 2
TINJAUAN PUSTAKA

2.1. Algoritma
Menurut Untoro (2010) algoritma adalah urutan suatu proses atau prosedur yang
dilakukan secara bertahap dari mulai sampai dengan selesai yang tersusun secara logis
dan sistematis untuk mendapatkan pemecahan suatu masalah, baik pemecahan yang
benar maupun yang salah.
Definisi algoritma menurut Suarga (2004) adalah susunan langkah-langkah
penyelesaian masalah yang tersusun secara pasti, logis dan sistematis, yang jika
diikuti akan mengubah data input menjadi output yang berupa informasi.
Algoritma mempunyai sifat. Sifat utama dari suatu algoritma adalah sebagai
berikut (Untoro, 2010) :
1. Mempuyai masukan (input)
2. Menghasilkan keluaran (output)
3. Langkah-langkahnya terdefinisi dengan jelas (definiteness).
4. Menghasilkan output setelah melakukan sejumlah langkah tertentu (finiteness).
5. Setiap langkah bisa dilaksanakan untuk memberikan penyelesaian yang sesuai
dengan harapan (effectiveness).
6. Langkah-langkah dalam algoritma haurs berlaku umum (generality) pada
masalah yang sama dengan kasus yang berbeda.

Salah satu unsur dari yang tersebut di atas tidak terpenuhi, maka ia dikatakan
bukan suatu algoritma.

Universitas Sumatera Utara

6

2.2. Kriptografi
Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata kriptografi
dibagi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia
berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni
untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang
lain (Ariyus, 2006).
Kriptografi adalah ilmu yang mempelajari bagaimana cara agar pesan atau
dokumen yang kita miliki aman dan tidak dapat diterjemahkan oleh pihak lain yang
tidak berhak (Kurniawan, 2004).
Menurut Salomon (2004) Kriptografi adalah seni dan ilmu mengaburkan pesan.
Pesan itu biasanya berupa serangkaian huruf dan dienkripsi dengan mengganti setiap
huruf dengan huruf lain atau dengan angka. Dalam perkembangan komputer, pesan
berupa string biner (bitstring) di komputer, dan dienkripsi dengan mengganti dengan

bitstring lain, biasanya yang sama panjang.
Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan
prosesnya dilakukan oleh cryptographer (Wahana Komputer, 2003).

2.3. Jenis Algoritma Kriptografi
Terdapat dua jenis Algoritma Kriptografi berdasarkan jenis kuncinya (Kurniawan,
2004) :
1. Algoritma Simetri (Konvensional), yaitu algoritma yang menggunakan kunci
enkripsi yang sama dengan kunci dekripsinya.
plainteks

Algoritma
enkripsi

cipherteks

Algoritma
dekripsi

User A


plainteks

User B

Kunci/key

Gambar 2.1. Proses Enkripsi Konvensional
(Wahana Komputer, 2003)
Algoritma simetri dapat dibagi dalam dua kategori, yaitu stream cipher dan
block cipher. Algoritma strean cipher beroperasi pada plaintext yang berupa

Universitas Sumatera Utara

7

satu bit tunggal per satu waktu. Sedangkan algoritma block cipher beroperasi
pada plaintext dalam grup bit-bit yang disebut blok (misalnya 1 blok terdiri
atas 64 atau 128 bit).
2. Algoritma Asimetri (kunci publik), merupakan algoritma yang didesain

sedemikian rupa sehingga kunci yang digunakan untuk enkripsi berbeda
dengan kunci yang digunakan untuk dekripsi. Dalam sistem ini kunci enkripsi
sering disebut kunci publik, sementara kunci dekripsi sering disebut kunci
privat.
plainteks

Algoritma
enkripsi

cipherteks

Algoritma
dekripsi

User A

plainteks

User B


Private key B

Public key B

Gambar 2.2. Proses Enkripsi Kunic Publik
(Wahana Komputer, 2003)

2.4. Kriptografi Hibrida
Kriptografi hibrida adalah teknik kriptografi dengan menggabungkan dua atau lebih
algoritma kriptografi. Algoritma yang digabungkan adalah algoritma kunci simetris
dan kunci asimetris. Dalam pemanfaatannya kunci simetris yang disebut juga session
key (kunci sesi) digunakan untuk enkripsi data dan pasangan kunci rahasia kunci
publik (asimetris) untuk melindungi kunci simetri.(Widarma, 2016)
Konsep kriptografi hibrida dapat dilihat pada Gambar 2.3. Skema tersebut
menjelaskan bahwa Bob memiliki kunci algoritma asimetris (kunci publik dan kunci
rahasia). Alice mengirim pesan yang terenkripsi kepada Bob dan mengenkripsi kunci
pesan tersebut (session key) dengan kunci publik milik Bob. Bob mendekripsi session
key dengan kunci privat miliknya lalu mendekripsi pesan Alice dengan session key
yang telah didekripsikannya.


Universitas Sumatera Utara

8

Kunci
Publik B
Kunci Privat
B

A

B

Kunci
Rahasia

Kunci Terenkripsi

Enkripsi


Dekripsi

Kunci
Rahasia

Kunci Rahasia

Pesan terenkripsi
(cipherteks)

Enkripsi

Dekripsi

Pesan

Pesan

Gambar 2.3. Skema Kriptografi Hibrida
Pada penelitian ini kriptografi hibrida menggunakan algoritma affine cipher

sebagai session key, dan untuk mengamankan kunci affine cipher tersebut digunakan
kriptografi asimetris dengan algoritma RSA-CRT. Perhatikan Gambar 2.4.
Kunci Publik

Kunci Affine Cipher
(Session key)

Plainteks

Enkripsi
(Affine cipher)

Enkripsi
(RSA-CRT)

Kunci Privat

Cipherkey

Dekripsi

(RSA-CRT)

Cipherteks

Kunci Affine Cipher
(Session key)

Enkripsi
(Affine cipher)

Plainteks

Gambar 2.4. Kriptografi Hibrida Affine Cipher dan RSA-CRT

2.5. Dasar Matematika dalam Kriptografi
2.5.1. Bilangan Prima
Bilangan prima adalah bilangan bulat positif yang hanya memiliki 2 faktor pembagi
yaitu 1 dan bilangan itu sendiri (Forouzan, 2007). Sebagai contoh bilangan 13 adalah
bilangan prima karena hanya habis dibagi 1 dan bilangna itu sendiri, yaitu 13.
2.5.2. Fermat’s Little Theorem

Teorema fermat digunakan untuk menentukan keprimaan suatu bilangan dengan
rumus :
��−1 ≡ 1 ��� �

Universitas Sumatera Utara

9

di mana p adalah bilangan bulat dan a adalah sembarang integer yang lebih kecil dari
p. Jika hasilnya≠ 1, maka p bukan bilangan prima. Sebaliknya, jika hasilnya = 1,
maka p adalah mungkin bilangan prima.
Contoh : Tentukan apakah 5 adalah bilangan prima.
p=5
Maka 1 ≤ a< 5, didapat a = {1, 2, 3, 4}
a p-1mod p
1 5-1 mod 7 = 14 mod 5 = 1
2 5-1 mod 7 = 24 mod 5 = 1
3 5-1 mod 7 = 34 mod 5 = 1
4 5-1 mod 7 = 44 mod 5 = 1
Perhitungan diatas untuk memastikan apakah 5 bilangan prima atau tidak,

ditemukan hasil dari semua perhitungan = 1, maka jelas bahwa 5 merupakan bilangan
prima.
2.5.3. Great Common Divisor (GCD)
Integer yang sering digunakan dalam kriptografi adalah GCD dari dua buah integer.
Dua buah integer mungkin memiliki banyak faktor pembagi, tapi pasti hanya memiliki
satu faktor pembagi yang terbesar (Forouzan, 2007). Misalnya faktor pembagi 12 dan
140 adalah 1, 2, dan 4, dapat diketahui bahwa faktor pembagi terbesanya adalah 4.
2.5.4. Euclidean Algorithm
Salah satu cara untuk mencari GCD dari dua buah bilangan bulat adalah dengan
Euclidean Algorithm. Euclidean Algorithm berdasarkan dua rumus, yaitu :
1. gcd(�, 0) = �

2. gcd(�, �) = gcd(�, �) , dimana r adalah sisa pembagian � dan �

Rumus pertama menjelaskan bahwa jika integer kedua adalah 0, maka gcdnya

adalah bilangan pertama. Jika � dan � merupakan bilangan bulat positif, maka

digunakan rumus kedua. Penggunaan rumus kedua dapat kita lihat pada Gambar 2.5.

Universitas Sumatera Utara

10

Gambar 2.5. Proses Algoritma Euclid
(Forouzan, 2007)
Jika hasil gcd(�, �) = 1 , maka � dan � relatif prima.
Contoh

: Tentukan gcd(192,23)

192 mod 23 = 8
23 mod 8 = 7
8 mod 7 = 1
7 mod 1 = 0
1 mod 0 = 1
Saat r = 0, diperoleh gcd(192,23) = 1
2.5.5. Euler Phi Function
Euler’s phi function, ϕ(�), atau yang kadang disebut Euler’s totient function

memainkan peranan penting didalam kriptografi. Fungsi ini digunakan untuk
menentukan bilangan yang lebih kecil dan relatif prima terhadap n. Aturan dalam
fungsi Euler antara lain :
1. ϕ(1) = 0

2. ϕ(�) = � − 1, jika � prima

3. ϕ(� × �) = Φ(�) × Φ(�), jika m dan n relatif prima
4. ϕ(�� ) = �� − ��−1 , jika p prima

Kita dapat mengkombinasikan keempat aturan tersebut untuk menentukan nilai

ϕ(�), menjadi seperti berikut :

ϕ(�) = (�1 �1 − �1 �1 −1 ) × (�2 �2 − �2 �2 −1 ) × … × (�� �� − �� � � −1 )

Contoh : Tentukan nilai dari Φ(256)

ϕ(120) = ϕ(23 ) × ϕ(3) × ϕ(5)
Universitas Sumatera Utara

11

= (23 − 22 ) × (3 − 1) × (5 − 1)

= (8 − 4) × 2 × 4

=4×2×4
= 32
2.5.6. Aritmatika Modulo

Aritmatika modulo digunakan untuk menentukan sisa hasil bagi antara dua buah
integer. Operasi dalam aritmatika modulo menggunakan modulo operator yaitu mod.
Perhatikan rumus berikut :
� ��� � = �

� adalah integer, � merupakan modulus dan � adalah sisa pembagian atau residue.
Contoh : 12 mod 5 = 2

2.5.7. Multiplicative Inverse
Dalam aritmatika modulo, dua buah bilangan bulat a dan b dikatakan multiplicative
inverse satu sama lain jika :
� × � ≡ 1(��� �)

Untuk menentukan multiplicative inverse dari sebuah bilangan komposit dapat
menggunakan teorema euler, yaitu :
�−1 ��� � = �� (�)−1 ��� �

Contoh : Tentukan nilai dari 12−1 ��� 30
12−1 ��� 30 = 12� (30)−1 ��� 30

= 12� (2)×�(3)×�(5)−1 ��� 30

= 12(1×2×4)−1 ��� 30

= 128−1 ��� 30

= 127 ��� 30

= 18 ��� 30

Diperoleh nilai dari 12−1 ��� 30 adalah 18

2.5.8. Chinese Remainder Theorem (CRT)

Chinese Remainder Theorem (CRT) digunakan untuk menyelesaikan persamaan
kongruen yang memiliki nilai modulus berbeda dan relatif prima dengan sebuah
variabel. (Forouzan, 2007)
� ≡ �1 (��� �1 )
Universitas Sumatera Utara

12

� ≡ �2 (��� �2 )
….

� ≡ �� (��� �� )

Untuk menyelesaikan masalah diatas dapat dilakukan dengan langkah-langkah
berikut :
a) Hitung nilai � = �1 × �2 × … × ��

b) Hitung �1 = �/�1 , �2 = �/�2 , … , �� = �/��

c) Tentukan invers perkalian dari �1 , �2 , … , �� terhadap masing-masing modulus
�1 , �2 , … , ��

d) Sehingga nilai � dapat diperoleh dengan persamaan berikut :

� = ��1 × �1 × �1 −1 � + ��2 × �2 × �2 −1 � + ⋯ + ��� × �� × �� −1 � ��� �

Sebagai contoh diberikan masalah kongruen sebagai berikut :
� ≡ 2 (��� 3)

� ≡ 6 (��� 7)

� ≡ 10 (��� 13)

Penyelesaian :

a) � = 3 × 7 × 13 = 273

b) Hitung �1 = 273/3 = 91, �2 = 273/7 = 39, �3 = 273/13 = 21

c) Tentukan invers perkalian dari �1 , �2 , �3 terhadap masing-masing modulus
�1 , �2 , �3

�1 −1 = 1, �2 −1 = 2, �3 −1 = 5

d) Maka diperoleh nilai x sebagai berikut :
� = ��1 × �1 × �1 −1 � + ��2 × �2 × �2 −1 � + ��3 × �3 × �3 −1 � ��� �
� = (2 × 91 × 1) + (6 × 39 × 2) + (10 × 21 × 5) ��� 273
� = (182) + (468) + (1050) ��� 273

� = 1700 ��� 273
� = 62 ��� 273

Nilai x = 62 memenuhi semua persamaan kongruen 62 ≡ 2 (��� 3), 62 ≡
6 (��� 7), dan 62 ≡ 10 (��� 13)

Universitas Sumatera Utara

13

2.6. Algoritma Affine Cipher
Affine cipher merupakan block cipher kunci simetris (Mollin, 2005). Affine cipher
adalah kombinasi dari additive dan multiplicative cipher dengan kunci yang
berpasangan (Forouzan, 2007).
Proses kerja Affine cipher adalah dengan mengalikan pesan asli (plainteks)
dengan sebuah nilai integer dan menambahkannya dengan sebuah pergeseran dan
dinyatakan dengan fungsi kongruen untuk menghasilkan ciphertext. Kunci affine
cipher terdiri dari dua parameter yaitu a dan b, dimana a harus relatif prima dengan n,
gcd(a,n) = 1. Kunci pertama (a) merupakan multiplicative cipher dan kunci kedua (b)
merupakan additive cipher. Enkripsi dan dekripsi affine menggunakan affine
transformation dengan rumus enkripsi
�� (�) ≡ �� + � (��� �)

dan rumus untuk dekripsi

�� (�) ≡ � −1 (� − �) (��� �)

dimana m adalah plainteks, c adalah cipherteks dan n merupakan ukuran alfabet yang
dienkripsi.
Contoh proses enkripsi dan dekripsi dengan algoritma Affine Cipher :
Misal : plainteks

=A

Kode ASCII = 65
n

= 256

Proses enkripsi :
Tentukan nilai a dan b degan ketentuan gcd(a,n) = 1, maka ditentukan a = 5 dan
b = 11
Proses enkripsi dengan rumus �� (�) ≡ �� + � (��� �)

�� (�) ≡ 5.65 + 11 (��� 256)

�� (�) ≡ 325 + 11 (��� 256)

�� (�) ≡ 80

Maka diperoleh cipherteks dengan kode ASCII = 80 = “P”
Proses dekripsi :
Cipherteks (c) = P = 80
Porses dekripsi menggunakan rumus �� (�) ≡ �−1 (� − �) (��� �)

�� (�) ≡ 5−1 (80 − 11) (��� 256)

�� (�) ≡ 205(69) (��� 256)

Universitas Sumatera Utara

14

�� (�) ≡ 65 (��� 256)
�� (�) ≡ 65

Maka diperoleh plainteks dengan kode ASCII = 65 = “A”

2.7. Algoritma RSA-CRT
Algoritma RSA (Rivest Shamir Adleman) dapat dikembangkan dan dimodifikasi
dengan memanfaatkan teorema Chinesse Remainder Theoreme (CRT), dan penerapan
algoritma CRT pada algoritma RSA ini kemudian disebut RSA-CRT (Arief & Saputra,
2016). Keunggulan dari algoritma kriptografi RSA-CRT ini adalah kemampuannya
melakukan komputasi yang hampir empat kali lebih cepat daripada menggunakan
algoritma RSA biasa.
RSA-CRT merupakan varian dari algoritma RSA yang digunakan untuk
mempercepat proses dekripsi RSA (Noureldien & Mustafa, 2014). Adanya varian RSA
adalah untuk menentukan algoritma RSA mana yang lebih tepat diterapkan untuk
melakukan proses enkripsi dan dekripsi.
Pada dasarnya algoritma RSA-CRT hampir sama dengan algoritma RSA biasa,
perbedaannya adalah algoritma RSA-CRT memanfaatkan metode Chinesse Remainder
Theoreme (CRT) untuk memperpendek ukuran bit eksponen dekripsi d dengan cara
menyembunyikan d pada sistem kongruen agar dapat mempercepat waktu dekripsi
(Arief & Saputra, 2016).
Algortima RSA-CRT dibagi menjadi 3 langkah utama, yaitu :
1. Membangkitkan Kunci
Berikut algoritma pembangkit kunci RSA-CRT (Shinde & Fadewar, 2008):
a. Tentukan bilangan acak prima p dan q dimana gcd(� − 1, � − 1) = 2

b. Hitung nilai � = � × � dan �(�) = (� − 1)(� − 1)

c. Tentukan bilangan acak �� dan �� dengan gcd��� , � − 1� = 1, gcd��� , � −

1) = 1 dan �� ≡ �� ��� 2

d. Cari nilai d sedemikian hingga � ≡ �� ��� (� − 1) dan � ≡ �� ��� (� −

1)

e. Hitung nilai � = �−1 ��� �(�)

f.

������� = (�, �), ������� = (�� , �� , �, �)

Universitas Sumatera Utara

15

Untuk mengaplikasikan CRT pada langkah 4, tiap bilangan modulo masingmasing (� − 1) dan (� − 1) harus berpasangan dengan bilangan yang relatif

prima agar persoalan ini mempunyai solusi. Karena (� − 1) dan (� − 1) adalah

genap dan maka tidak dapat langsung mengaplikasikan CRT. Untuk memperoleh

solusi nilai d berdasarkan
� ≡ �� (��� � − 1)
� ≡ �� (��� � − 1)

dapat dicari dengan :
� − 1 ≡ �� − 1(��� � − 1)
� − 1 ≡ �� − 1(��� � − 1)

Dengan menggunakan hukum kanselasi, maka didapat :

� = � ′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)
� = � ′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)

Dengan menggunakan CRT didapatkan nilai d sedemikian sehingga

� = (2 × �’) + 1

2. Enkripsi RSA-CRT
Rumus untuk mengenkripsi pesan dengan algoritma RSA-CRT sama dengan
sistem RSA pada umumnya yaitu :
� = �� ��� �

3. Dekripsi RSA-CRT
Rumus untuk dekripsi RSA-CRT adalah sebagai berikut:
a. �� = � �� ��� �

b. �� = � �� ��� �

c. � ≡ �� ��� �
d. � ≡ �� ��� �

Contoh enkripsi dan dekripsi dengan algoritma RSA-CRT:
1. Bangkitkan kunci RSA-CRT
a. Bangkitkan bilangan prima besar p dan q
p = 23
q = 47
gcd(p-1, q-1) = 2

Universitas Sumatera Utara

16

b. Hitung nilai N = p × q dan �(�) = (� − 1) × (� − 1)
N = p × q = 23 × 47 = 1081

�(�) = (� − 1) × (� − 1)
�(�) = 22 × 46

�(�) = 1012

c. Tentukan �� dan �� secara acak yang memenuhi gcd��� , � − 1� = 1,
gcd��� , � − 1� = 1 dan �� ≡ �� (��� 2)

�� = 13 → gcd(13,22) = 1

�� = 19 → gcd(19,46) = 1

13 ≡ 19 (��� 2)

d. Cari nilai d sedemikian hingga � ≡ �� ��� (� − 1) dan � ≡ �� ��� (� −

1)

� ≡ 13 ��� (22)

� ≡ 19 ��� (46)

Nilai d tidak dapat langsung ditentukan menggunakan CRT karena
gcd(22,46) ≠ 1, oleh karena itu persamaan tersebut harus diubah dengan

memanfaatkan hukum kanselasi, yaitu :
� − 1 ≡ 13 − 1(��� 22)

� − 1 ≡ 19 − 1(��� 46)
Maka didapat :

� = �′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)
� = �′ ≡ (� − 1)/2 ≡ (�� − 1)/2 (��� (� − 1)/2)

� = �′ ≡ (� − 1)/2 ≡ (13 − 1)/2 (��� (22)/2) = 6 ��� 11

� = �′ ≡ (� − 1)/2 ≡ (19 − 1)/2 (��� (46)/2) = 9 ��� 23

Diperoleh gcd(11,23) = 1, maka persamaan tersebut dapat diselesaikan
dengan metode CRT.
� = 11 × 23 = 253

�1 = 253/11 = 23

�2 = 253/23 = 11

�1 −1 = 23−1 ��� 11 = 239 ��� 11 = 1

�2 −1 = 11−1 ��� 23 = 1121 ��� 23 = 21

Diperoleh nilai �′ seperti berikut :

Universitas Sumatera Utara

17

�′ = (6 × 23 × 1 + 9 × 11 × 21)��� 253

�′ = (138 + 2079)��� 253

�′ = 193

� = (2 × �’) + 1

� = (2 × 193) + 1 = 387

e. Tentukan nilai e

� = �−1 ��� �(�)

� = 387−1 ��� (1012)

� = 387� (1012 )−1 ��� (1012)
� = 387440−1 ��� (1012)
� = 523

f. ������� = (�, �), ������� = (��, ��, �, �)

������� = (523,1081), ������� = (13, 19, 23, 47)

2. Enkripsi RSA-CRT

Rumus untuk mengenkripsi pesan dengan algoritma RSA-CRT sama dengan
sistem RSA pada umumnya yaitu :
Misalkan yang akan dienkripsi adalah bilangan 65
� = �� ��� �

� = 65523 ��� 1081
� = 849

3. Dekripsi RSA-CRT
Rumus untuk dekripsi RSA-CRT adalah seperti berikut :
a. �� = � �� ��� �

�� = 84913 ��� 23

�� = 19

b. �� = � �� ��� �

�� = 84919 ��� 47

�� = 18

� = 23 × 47 = 1081
�1 = 1081/23 = 47

�2 = 1981/47 = 23

�1 −1 = 47−1 ��� 23 = 4721 ��� 23 = 1
Universitas Sumatera Utara

18

�2 −1 = 23−1 ��� 47 = 2345 ��� 47 = 45

� = (19 × 471 + 18 × 23 × 45)��� 1081

� = (893 + 1860)��� 1081
� = (19523) ��� 1081

� = 65

Maka diperoleh plainteks M = 65

2.8. Kompresi
Istilah kompresi diterjemahkan dari kata bahasa Inggris "compression" yang berarti
pemampatan. Kompresi data berarti proses untuk memampatkan data agar ukurannya
menjadi lebih kecil. Pemampatan ukuran berkas melalui proses kompresi hanya
diperlukan sewaktu berkas tersebut akan disimpan dan atau dikirim melalui media
transmisi atau media telekomunikasi (Kurniawan, 2004).
Kompresi data adalah seni atau ilmu yang merepresentasikan informasi dalam
bentuk compact (ringkas/padat). Bentuk padat tersebut direpresentasikan dengan
mengidentifikasi dan menggunakan struktur yang ada dalam data. Data dapat berupa
karakter dalam sebuah file teks, jumlah gelombang suara atau gambar, ataupun yang
dihasilkan oleh proses lainnya. Alasan dibutuhkannya kompresi data adalah semakin
banyak informasi yang dihasilkan dan digunakan dalam bentuk digital. Dan jumlah
byte yang diperlukan untuk mewakili data multimedia bisa sangat besar. Sebagai
contoh, untuk mewakili 1 detik dari video digital tanpa kompresi (menggunakan
format CCIR 601), kita perlu lebih dari 20 megabyte, atau 160 megabit. Jika kita
mempertimbangkan jumlah detik dalam sebuah film, kita dapat dengan mudah melihat
mengapa kita perlu kompresi (Sayood, 2006).
2.8.1. Teknik Kompresi Data
Teknik kompresi data dapat dibagi atas dua bagian yaitu lossy compression dan
lossless compression.
1. Lossless Compression
Metode kompresi lossless tidak melibatkan kehilangan informasi. Jika data
terkompresi secara lossless data asli dapat dipulihkan seperti sebelum dikompresi.
Kompresi lossless umumnya digunakan untuk aplikasi yang tidak mentolerir adanya
perbedaan antara data asli dengan data yang telah terekonstruksi (Sayood, 2006).

Universitas Sumatera Utara

19

Biasanya metode kompresi lossless digunakan untuk mengkompresi file teks,
terutama file yang berisi program komputer (Salomon, 2007).
2. Lossy Compression
Metode kompresi Lossy mengakibatkan berkurangnya beberapa informasi. Saat data
terkompresi di dekompresi, hasilnya tidak akan identik dengan data asli. Metode ini
cocok digunakan untuk mengkompresi file gambar, video ataupun suara. Karena jika
data yang hilang sedikit, kita mungkin tidak bisa membedakannya (Salomon, 2007).
Pada umumnya data hasil kompresi lossy memiliki rasio kompresi yang lebih
besar jika dibandingkan dengan kompresi lossless (Sayood, 2006).
2.8.2. Performa Kompresi
Ada beberapa parameter yang bisa digunakan untuk mengukur kinerja proses
kompresi, dan dalam penelitian ini penulis akan membahas dua parameter yang
mewakilinya, yaitu :
1. Compression Ratio (�� )

Compression Ratio (�� ) adalah persentasi data terkompresi dibandingkan dengan data

asli sebelum dikompresi.

�� =

���������� ���
������������ ���

Misalkan diperoleh nilai �� 0,6 itu berarti data yang terkompres besarnya adalah

60% dari data asli atau dapat pula dikatakan perbandingan antara data terkompresi

dengan data asli adalah 0,6 : 1. Nilai �� yang lebih besar dari 1 mengindikasikan hasil
kompresi yang lebih besar dibandingkan data asli, hal ini disebut negative
compression. Compression Ratio (�� ) dapat disebut juga bpb (bit per bit).
2. Space Saving (�� )

Space saving adalah besarnya data/storage yang telah dihemat setelah dilakukan
proses kompresi terhadap suatu file.
�� = 100 × (1 − ����������� �����)

Misalkan diperoleh nilai Ss = 60, berarti banyaknya data yang berhasil dihemat
setelah proses kompresi adalah sebesar 60% dari data asli.

Universitas Sumatera Utara

20

2.9. Algoritma Alternate Unary Code
Unary code dari bilangan bulat positif n adalah � − 1 bit 1 diikuti dengan satu

buah angka bit 0, atau reversenya adalah � − 1 bit 0 diikuti dengan satu buah bit 1.

Panjang unary code untuk integer n adalah n bit. Dua kolom disebelah kanan Tabel

2.1. menunjukkan bagaimana unary code dapat di diperpanjang untuk meng-encode
bilangan bulat non-negatif (dengan membuat 1 bit lebih panjang). Bentuk alternate
unary code dapat dilihat dalam Tabel. 2.1. kolom ketiga (Salomon, 2007).
Unary Code dapat dibedakan menjadi beberapa kategori yaitu Unary code biasa,
Reverse Unary Code, Alternate Unary Code dan Alternate Reverse Unary Code.
Pembagian tersebut dapat dilihat pada tabel 2.1.
Tabel 2.1. Pembagian Unary Code (Salomon, 2007)
n

Code

Reverse

Alt. Code

Alt. Reverse

0

-

-

0

1

1

0

1

10

01

2

10

01

110

001

3

110

001

1110

0001

4

1110

0001

11110

00001

5

11110

00001

111110

000001

Berdasarkan Tabel 2.1. dapat dilihat bahwa Alternate Unary Code dari bilangan
positif n adalah n buah bit 1 diikuti dengan satu buah bit 0. Jadi jika n = 1 maka Alt.
Codenya adalah 0, jika n = 2 Alt. Codenya adalah 10, jika n = 3 Alt. Codenya adalah
110 dan begitu seterusnya.

2.10. Penelitian Terkait
Terdapat bebrapa penelitian yang berhubungan dengan yang dilakukan penulis,
diantaranya adalah sebagai berikut :
1. Penelitian yang dilakukan oleh Hari Rahman Nihe (2015) dengan judul
“Implementasi Algoritma Affine Cipher dan Algoritma Advanced Encryption
Standard pada Aplikasi Short Message Service (SMS) Berbasis Android”.
Penelitian ini menmbahas pengamanan pesan dengan menggunakan algoritma
AES dan Affine Cipher. Penelitian ini menghasilkan kesimpulan bahwa jumlah

Universitas Sumatera Utara

21

nilai karakter setelah dienkripsi akan semakin besar dan akan kembali ke semula
setelah didekripsi.
2. Penelitian yang dilakukan oleh Nilam Amalia Pusparani (2009) dengan judul
“Analisis RSA dengan Penambahan Chinese Remainder Theorem untuk
Mempercepat Proses Dekripsi”. Penelitian ini membahas tentang kinerja
algoritma RSA dari segi kecepatan dan keamanannya serta membandingkannya
dengan algoritma RSA-CRT. Berdasarkan penelitian tersebut ditarik kesimpulan
bahwa kedua algoritma tersebut memiliki kompleksitas yang sama untuk
pembangkitan kunci dan proses enkripsinya yaitu O((lg n)3). Tetapi pada proses
pembangkitan kunci RSA-CRT terdapat bagian yang memiliki kompleksitas
O(lg(n/2))2). Kompleksitas dekripsi RSA adalah O((lg n)3), sedangkan RSA-CRT
O(lg(n/2))3). Waktu dekripsi rata-rata RSA-CRT lebih cepat daripada RSA.
3. Penelitian yang dilakukan oleh Muhammad Solihin (2013) dengan judul
“Perancangan Sistem Pengamanan dan Kompresi Data Teks dengan Fibonacci
Encoding dan Algoritma Shannon Fano serta Algoritma Deflate”. Penelitian ini
membahas tentang perancangan aplikasi yang mampu mengamankan serta
mengkompresi data teks. Pertama teks dienkripsi dengan Fibonacci Encoding,
kemudian hasilnya di kompresi dengan algoritma Shannon Fano dan hasilnya
dikompresi lagi dengan algoritma Deflate. Kesimpulan yang diperoleh dari
penelitian ini adalah rasio kompresi rata-rata file doc adalah 43,653% dan rasio
kompresi rata-rata file txt adalah 78,444%. Waktu kompresi rata-rata file doc
adalah 5328,2 milisecond dan waktu kompresi rata-rata file txt adalah 15837,5
milisecond.

Universitas Sumatera Utara