Implementasi Algoritma Trithemius dengan Algoritma Rice Dalam Pengamanan dan Kompresi File Teks

5

BAB 2
TINJAUAN PUSTAKA

2.1 Kriptografi
Krpitografi berasal dari bahasa Yunani, yang terdiri dari kata kryptos yang berarti
tersembunyi dan graphein yang berarti menulis. Kriptografi merupakan pembelajaran
teknik matematika yang berhubungan dengan aspek keamanan informasi seperti
kerahasiaan, integritas data, otentikasi entitas dan otentikasi data asal. Kriptografi
bukan hanya membahas soal keamanan informasi, tetapi juga lebih dari satu kesatuan
teknik (Menezes, van Oorschot&Vanstone, 1996).
Kriptografi adalah ilmu yang mempelajari tentang cara mengirim pesan
rahasia (yaitu yang terenkripsi atau disamarkan) sehingga hanya penerima yang
dimaksud saja yang dapat menghilangkan pesan yang disamarkan tersebut dan
membacanya atau yang dapat mendekripsi pesan tersebut.
Pesan asli dalam pesan rahasia tersebut disebut plaintext sedangkan pesan
yang disamarkan disebut ciphertext. Pesan yang dikirim disebut tulisan rahasia
(crypthogram) dan proses mengubah dari plaintext menjadi ciphertext disebut proses
enkrpsi, sedangkan proses membalikkan dari ciphertext menjadi plaintext yang hanya
dapat dilakukan oleh penerima yang dimaksud disebut proses dekripsi (Mollin, 2007).

Kriptografi mempunyai sejarah yang sangat panjang. Sejak zaman Romawi,
Yulius Caesar telah menggunakan teknik kriptografi yang sekarang dianggap kuno
dan sangat mudah dibobol untuk keperluan militernya. Pada perang dunia kedua,
Jepang dan Jerman menggunakan kriptografi untuk keperluan komunikasi militernya.
Namun sekutu dapat menembus Enigma, kriptografi produk Jerman dan Purple,
kriptografi produk Jepang. Dengan terpecahkannya kedua kriptografi tersebut, sekutu
pun akhirnya memenangkan perang dunia tersebut.
Untuk 30 tahun terakhir, penelitian akademik dalam bidang kriptografi
meledak dengan begitu dahsyatnya. Kemajuan teknologi komputer menambah

Universitas Sumatera Utara

7

cepatnya perkembangan kriptografi. Bukan hanya untuk keperluan militer, namun
setiap individu berhak untuk mengamankan komunikasinya agar tidak dimata-matai
pihak yang tidak diinginkan (Kurniawan, 2004).
Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari
bagaimana


meyembunyikan

pesan.

Kriptografi

modern

adalah

ilmu

yang

bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi
seperti kerahasiaan, keutuhan data dan otentikasi entitas. Jadi pengertian kriptografi
modern tidak saja berurusan hanya dengan penyembunyian pesan namun lebih pada
sekumpulan teknik yang menyediakan keamanan informasi (Sadikin, 2012).

2.2 Tujuan Dasar Kriptografi dalam Aspek Keamanan

Kriptografi tidak hanya memberikan kerahasiaan dalam berkomunikasi, namun juga
melibatkan sejumlah aspek yang dikenal dengan aspek keamanan, yaitu sebagai
berikut (Menezes, van Oorschot&Vanstone, 1996):
1. Privacy of Confidentiality : Menjaga kerahasiaan informasi yang hanya dapat
diketahui oleh pihak yang berhak untuk melihatnya.
2. Data Integrity : Memastikan informasi yang akan disampaikan, apakah pesan
telah dimodifikasi atau tidak dari orang-orang yang tidak berwenang dalam hal
tersebut.
3. Entity Authentication or Identification : Pembuktian identitas dari entitas
(misal : seseorang, terminal komputer, kartu kredit, dll) agar lebih autentik.
4. Message Authentication : Memastikan sumber informasi yang diperoleh.
5. Signature : Sarana untuk mengikat informasi terhadap entitas.
6. Authorization : Pernyataan yang menandakan adanya sanksi secara resmi
apabila ada suatu hal yang melanggar hak cipta.
7. Validation : Sarana untuk menyediakan otorisasi/hak cipta yang aktual untuk
digunakan atau memanipulasi sumber informasi.
8. Access Control : Membatasi akses hanya untuk entitas yang diutamakan saja.
9. Certification : Dukungan informasi dari entitas yang terpercaya.
10. Timestamping : Merekam waktu pembuatan dari adanya informasi.
11. Witnessing: Verifikasi bahwa pembuatan dari adanya informasi tersebut

berasal dari sebuah entitas atau pembuat yang lain.
12. Reciept : Pernyataan bahwa informasi telah diterima.

Universitas Sumatera Utara

8

13. Confirmation : Pernyataan bahwa layanan telah tersedia.
14. Ownership : Sarana untuk menyediakan entitas dengan hak yang sah untuk
menggunakan atau mengirim sumber informasi.
15. Anonymity : Menyembunyikan informasi dari entitas yang terlibat dalam
beberapa proses.
16. Non-repudiation : Pengirim seharusnya tidak dapat mengelak bahwa dialah
pengirim pesan yang sesungguhnya. Tanpa kriptografi, seseorang dapat
mengelak bahwa dia yang mengirim email yang sesungguhnya.
17. Revocation : Pencabutan sertifikasi.

Suatu algoritma dapat dikatakan aman, apabila tidak ada cara ditemukan
plaintext-nya, namun selalu ada saja kemungkinan ditemukannya cara baru untuk
menembus algoritma kriptografi. Oleh karena itu, algoritma kriptografi dapat

dikatakan “cukup” atau “mungkin” aman, jika memiliki keadaan sebagai berikut
(Kurniawan, 2004):
1. Bila harga untuk menjebol algoritma lebih besar daripada nilai informasi yang
dibuka, maka algoritma itu cukup aman.
2. Bila waktu yang digunakan untuk membobol algoritma tersebut lebih lama
daripada lamanya waktu yang diperlukan oleh informasi tersebut harus tetap
aman, maka algoritma tersebut mungkin aman.
3. Bila jumlah data yang dienkripsi dengan kunci dan algoritma yang sama lebih
sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut,
maka algoritma itu aman.

2.3 Perkembangan Kriptografi
Perkembangan algoritma kriptografi terbagi menjadi dua, yaitu kriptografi klasik dan
kriptografi modern.

2.3.1 Kriptografi Klasik
Kriptografi klasik telah dipakai sebelum era komputer. Kriptografi klasik umumnya
merupakan teknik penyandian dengan kunci simetrik dan menyembunyikan pesan
yang memiliki arti ke sebuah pesan yang nampaknya tidak memiliki arti (Sadikin,
2012).


Universitas Sumatera Utara

9

Eve

Alice

Bob

C

Algoritma
SaluranM
Publik Enkripsi

AlgoritmaM
Dekripsi


K

Sumber
Kunci

K

Saluran Aman

Gambar 2.1 Sistem Kriptografi Klasik

Berdasarkan Gambar 2.1, sistem kriptografi terbagi atas 5 bagian (Stinson, 2002):
1. Plaintext: pesan atau data dalam bentuk aslinya, yaitu masukan bagi algoritma
enkripsi.
2. Secret Key: masukan bagi algoritma enkripsi yang merupakan nilai yang bebas
terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.
3. Ciphertext: merupakan keluaran algoritma enkripsi. Dianggap sebagai pesan
dalam bentuk tersembunyi.Algoritma enkripsi yang baik akan menghasilkan
ciphertext yang terlihat acak.
4. Algoritma Enkripsi: Memiliki dua masukan teks asli dan kunci rahasia.

Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga
menghasilkan teks sandi.
5. Algoritma Dekripsi: Memiliki dua masukan yaitu teks sandi dan kunci rahasia.
Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci
rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang
dipakai algoritma enkripsi.

Universitas Sumatera Utara

10

Kriptografi klasik memiliki beberapa ciri sebagai berikut (Ariyus, 2008) :
1. Berbasis karakter.
2. Menggunakan cara manual saja, belum ada komputer.
3. Termasuk dalam kriptografi kunci simetri.

Adapun alasan mempelajari kriptografi klasik adalah (Ariyus, 2008) :
1. Memahami konsep dasar kriptografi.
2. Dasar algoritma kriptografi modern.
3. Memahami kelemahan sistem kode.


2.3.1.1 Teknik Subtitusi dan Transposisi
Pada kriptografi klasik, teknik cipher yang digunakan adalah teknik substitusi dan
teknik transposisi. Teknik substitusi adalah penggantian setiap karakter plaintext
dengan karakter lain, sedangkan teknik transposisi adalah teknik yang menggunakan
permutasi karakter (Kurniawan, 2004).
Dalam teknik substitusi, elemen pada pesan (karakter byte atau bit) ditukar
dengan elemen lain dari ruang pesan. Misalnya A ditukar menjadi B, B menjadi D,
dan C menjadi Z, maka “BACA” akan menjadi “DBZB” (Sadikin, 2012). Subtitusi
cipher dikelompokkan kedalam empat jenis, yaitu sebagai berikut:
1. Cipher Alfabet-Tunggal (Monoalphabetic): Disebut juga cipher subtitusi
sederhana, dimana satu huruf di plaintext diganti dengan tepat satu huruf
ciphertext, yang disebut juga fungsi satu-ke-satu (Munir, 2006). Untuk proses
dekripsi dari cipher ini juga sama namun kebalikannya, misalnya pada enkripsi
diganti dengan satu huruf pada ciphertext setelahnya, maka pada dekripsinya
pada satu huruf sebelumnya. Cipher yang paling terkenal dari jenis ini adalah
cipher milik Julius Caesar, yaitu Caesar Cipher.
2. Cipher Alfabet-Majemuk (Polyalphabetic): Merupakan cipher subtitusi ganda
yang melibatkan penggunaan kunci berbeda (Munir, 2006). Cipher
Polyalphabetic pertama kali diperkenalkan oleh Leon Battista Alberti pada

tahun 1467, dimana Alberti hanya menggunakan 20 huruf yang digambarkan
dalam Alberti Disk (Mollin, 2005). Dari penemuan Alberti inilah awal
mulanya algoritma Trithemius.

Universitas Sumatera Utara

11

3. Cipher Substitusi

Homofonik(homophonic

substitution

cipher):

Yang

membedakan antara Homophonic dengan Monoalphabetic hanya setiap huruf
dalam plaintext yang dapat dipetakan kedalam salah satu dari unit ciphertext

yang mungkin, dimana setiap huruf plaintext dapat memiliki lebih dari satu
kemungkinan unit ciphertext. Huruf yang paling sering muncul dalam teks
mempunyai lebih banyak pilihan unit ciphertext, jadi fungsi ciphering-nya
memetakan satu-ke-banyak (one-to-many) (Munir, 2006).
4. Cipher Substitusi Poligram(polygram substitution cipher): dimana setiap unit
huruf disubstitusi dengan unit huruf ciphertext (Munir, 2006).

Dalam teknik transposisi, teknik ini menggunakan permutasi karakter, yang
mana dengan menggunakan teknik ini pesan yang asli tidak dapat dibaca kecuali
orang yang memiliki kunci untuk mengembalikan pesan tersebut ke bentuk semula.
(Ariyus, 2008).

2.3.1.2 Contoh Kriptografi Klasik
Yang termasuk dalam kriptografi klasik adalah sebagai berikut (Ariyus, 2008).
1. Caesar Cipher, merupakan subtitusi kode pertama yang ditemukan oleh Yulius
Caesar, dengan metode mengganti posisi huruf awal dari alfabet, atau disebut
juga sebagai algoritma ROT3. Metode ini menggeser huruf dilakukan
sebanyak tiga kali. Misalnya, huruf A menjadi D, B menjadi E, dan seterusnya.
Caesar Cipher dipecahkan dengan cara brute force attack, atau serangan
dengan mencoba-coba berbagai kemungkinan untuk menemukan kunci. Selain
itu bisa juga dengan melihat frekuensi kemunculan huruf.
2. Shift Cipher, merupakan teknik subtitusi kode geser (shift) dengan modulus 26,
dengan memberi angka pada setiap alfabet, yang dimulai dengan huruf A sama
dengan 0, B sama dengan 1 sampai Z sama dengan 25.Untuk mendapatkan
ciphertext, menggunakan kunci 11. Misalnya A=0, ditambahkan dengan kunci
yaitu 11, maka hasil ciphertext dari A adalah 11. Apabila lebih dari 25, maka
dikurangi dengan 26, misalnya huruf W = 22 + 11 = 33 – 26 = 7.
3. Hill Cipher, yang ditemukan pada tahun 1929 oleh Lester S.Hill, yang
termasuk dalam sistem kripto polialfabetik.

Universitas Sumatera Utara

12

4. Vigenere Cipher, yang dipublikasikan oleh Blaise de Vigenere pada tahun
1586, yang juga termasuk dalam kripto polialfabetik. Teknik subtitusi
Vigenere ini menggunakan dua metode, yaitu angka dan huruf. Vigenere
Chiperberhasil dipecahkan oleh Babbage dan Kasiski pada pertengahan abad
19. Vigenere Cipher ini cukup mirip dengan pendahulunya yaitu Kode
Trithemius (yang penulis bahas dalam penulisan ini).
5. Playfair Cipher, ditemukan oleh Sir Charles Wheatstone dan Baron Lyon
Playfair pada tahun 1854 dan digunakan pertama kali oleh tentara inggris pada
Perang Boer (Perang Dunia I). Adapun kuncinya menggunakan matriks 5x5
dengan masukan yang terdiri dari 25 huruf (menghilangkan huruf j).
6. One Time Pad, yang dikenal dengan algoritma kriptografi klasik yang cukup
aman dan lebih baik dari algoritma sebelumnya. One Time Pad ditemukan oleh
Mayor J. Maugborne dan G. Vernam pada tahun 1917, yang mana berisi
deretan karakter kunci yang dibangkitkan secara acak.

2.3.2 Kriptografi Modern
Enkripsi modern berbeda dengan enkripsi konvensional. Enkripsi modern sudah
menggunakan komputer untuk pengoperasiannya, berfungsi untuk mengamankan data
baik yang ditransfer melalui jaringan komputer maupun yang bukan. Hal ini sangat
berguna untuk melindungi privacy, data integrity, authentication dan non-repudiation.
Algoritma modern lebih fokus kepada tingkat kesulitan algoritma juga pada kunci
yang digunakan, sehingga butuh dasar pengetahuan terhadap matematika. Macammacam algoritma menurut kuncinya adalah algoritma simetris dan algoritma asimetris.

2.3.2.1 Algoritma Simetris
Algoritma simetris disebut juga sebagai algoritma konvensional, yaitu algoritma yang
menggunakan kunci yang sama untuk proses enkripsi dan dekripsinya. Keamanan
algoritma simetris tergantung pada kuncinya.
Algoritma simetris sering juga disebut algoritma kunci rahasia, algoritma
kunci tunggal atau algoritma satu kunci. Algoritma yang termasuk pada algoritma
simetris ini adalah algoritma block cipher dan stream cipher.
Algoritma block cipher adalahalgoritma yang masukan dan keluarannya
berupa satu block dan setiap block-nya terdiri dari banyak bit, sedangkan algoritma

Universitas Sumatera Utara

13

stream cipher adalah cipher yang berasal dari hasil XOR antara bit plaintext dengan
setiap bit kuncinya (Prayudi, 2005).
Adapun beberapa contoh penggunaan dari algoritma simetris adalah sebagi
berikut (Ariyus, 2008).
1. Algoritma DES (Data Encryption Standard), merupakan algoritma yang
paling banyak dipakai di dunia yang diadopsi oleh NIST (Nasional Institute of
Standards and Technology) sebagai standar pengolahan informasi Federal AS.
DES merupakan riset dari IBM untuk proyek dari Lucifer, yang dipimpin oleh
Horst Feistel, yang dimulai dari akhir tahun 1960 dan berakhir pada tahun
1971, yang kemudian proyek Lucifer disebut dengan DES yang dipimpin oleh
Walter Tuchman. DES termasuk sistem kriptografi simetri dan tergolong jenis
blok kode yang beroperasi pada ukuran blok 64 bit.
2. Advanced Encryption Standard (AES), yang merupakan blok kode simetris
untuk menggantikan DES, yang dipublikasikan oleh NIST pada tahun 2001.
AES mempunyai kunci 128, 192 dan 256 bit.
3. International Data Encryption Standard (IDEA), yang merupakan revisi dari
Propose Encryption Standard (PES) pada tahun 1992. IDEA menggunakan
confusion (konfusi) dan diffusion (difusi), berbeda dengan DES dari kunci
yang mempunyai panjang 128 bit dibangkitkan 52 upa-kunci. Algoritma IDEA
menggunakan 52 upa-kunci dan 16 bit kunci per blok. IDEA menggunakan
aljabar yang tidak kompatibel seperti XOR, penambahan modulo 216 perkalian
modulo 216 + 1 (operasi ini menggantikan kotak-S).
4. A5.
5. RC4.

Universitas Sumatera Utara

14

2.3.2.2 Algoritma Asimetris
Algoritma asimetris atau biasa disebut algoritma kunci publik dirancang sedemikian
sehingga kunci yang digunakan untuk mengenkripsi dan mendekripsi berbeda.Kunci
dekripsi tidak dapat dihitung dari kunci enkripsi, karena kunci enkripsi dapat dibuat
secara public yang dapat diakses semua orang, namun hanya orang tertentu dengan
kunci dekripsi yang sama dapat mendekripsi pesan tersebut, yang disebut sebagai
public key sedangkan kunci dekripsi sering disebut sebagai private key (Prayudi,
2005).
Contoh dari algoritma asimetris adalah algoritma RSA, yang dibuat oleh tiga
orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976
yaitu Ron (R)iverst, Adi (S)hamir dan Leonard (A)dleman. Algoritma ini melakukan
pemfaktoran bilangan yang sangat besar. Oleh karena alasan tersebut RSA dianggap
aman. Untuk membangkitkan dua kunci, dipilih dua bilangan prima acak yang besar.

2.4 Trithemius
Algoritma Trithemius adalah kelanjutan dari cipher polyalphabetic oleh Alberti,
dimana Johannes Trithemiusmenggunakan sebuah tabel alfabet untuk membantu
dalam enkripsi dan dekripsi cipher polyalphabetic, yang mana hal tersebut dijelaskan
dalam bukunya Polygraphia (yang merupakan judul official dari buku karya
Trithemius, yang diterbitkan pada 15 Desember 1516), dimana Polygraphia
merupakan buku kriptografi pertama kalinya pada masa itu (Mollin, 2005).

Universitas Sumatera Utara

15

Tabel 2.1. Trithemius (Mollin, 2005)

a b c d e f

g h i

a A B C D E F G H I
b B C D E F G H I
c C D E F G H I
d D E F G H I
e E F G H I
f F G H I
g G H I
h H I
i

I

k l

m n o p q r

s

t

u w x y z

K L M N O P Q R S T U W X Y Z

K L M N O P Q R S T U W X Y Z A

K L M N O P Q R S T U W X Y Z A B

K L M N O P Q R S T U W X Y Z A B C

K L M N O P Q R S T U W X Y Z A B C D

K L M N O P Q R S T U W X Y Z A B C D E

K L M N O P Q R S T U W X Y Z A B C D E F

K L M N O P Q R S T U W X Y Z A B C D E F G

K L M N O P Q R S T U W X Y Z A B C D E F G H

k K L M N O P Q R S T U W X Y Z A B C D E F G H I
l

L M N O P Q R S T U W X Y Z A B C D E F G H I

m M N O P Q R S T U W X Y Z A B C D E F G H I
n N O P Q R S T U W X Y Z A B C D E F G H I
o O P Q R S T U W X Y Z A B C D E F G H I
p P Q R S T U W X Y Z A B C D E F G H I
q Q R S T U W X Y Z A B C D E F G H I
r R S T U W X Y Z A B C D E F G H I
s S T U W X Y Z A B C D E F G H I
t

T U W X Y Z A B C D E F G H I

u U W X Y Z A B C D E F G H I
w W X Y Z A B C D E F G H I
x X Y Z A B C D E F G H I
y Y Z A B C D E F G H I
z Z A B C D E F G H I

K

K L

K L M

K L M N

K L M N O

K L M N O P

K L M N O P Q

K L M N O P Q R

K L M N O P Q R S

K L M N O P Q R S T

K L M N O P Q R S T U

K L M N O P Q R S T U W

K L M N O P Q R S T U W X

K L M N O P Q R S T U W X Y

Pada Alberti Disc dalam cipher polyalphabetic menggunakan 20 huruf, maka dalam
Tabel Trithemius menggunakan 24 huruf, menghilangkan huruf j dan v (Seperti pada
tabel 2.1).

Universitas Sumatera Utara

16

Untuk gambaran dari penggunaan tabel 2.1, misalkan plaintext nya adalah
maximilian. Untuk huruf pertama yaitu m, lihat baris pertama tepat dibawah huruf m,
huruf tersebut adalah M. Untuk huruf a, lihat baris kedua pada kolom huruf a, huruf
tersebut adalah B. Untuk huruf x, lihat baris ketiga pada kolom huruf x, maka huruf
yang didapat adalah huruf Z, dan begitu juga seterusnya, sehingga akan dihasilkan
ciphertext MBZMQORQIX (Mollin, 2005).
Apabila memiliki panjang plaintext yang lebih dari 24 huruf, maka dapat
menggunakan modulo 24. Setelah penemuan dari Trithemius inilah muncul yang
disebut sebagai tabel Vigenere yang ditemukan oleh Blaise de Vigenere, dimana
terinspirasi dari tabel yang dibuat oleh Trithemius. Bedanya pada tabel Vigenere,
menggunakan tabel 26 x 26, yang dikenal dengan Tabula Recta.
Sebagai contoh, misalkan terdapat plaintext “golombrice” dengan kunci
“kripto”, maka proses enkripsi dari pesan “golombrice” dengan kunci “kripto”
menggunakan tabel trithemius adalah sebagai berikut (Mollin, 2005):
1. Buatlah plaintext dalam satu baris.
2. Kemudian letakkan kunci tepat diatas baris plaintext.
3. Lalu lihat pada tabel trithemius pertemuan huruf antara plaintext dan kunci,
maka huruf tersebut adalah ciphertext-nya.

Maka hasilnya sebagai berikut.

k

r

i

p

t

o

k

r

i

p

g

o

l

o

m

b

r

i

c

e

Q

F

T

D

F

P

B

A

L

T

Hasil enkripsinya dihasilkan ciphertext QFTDFPBALT. Untuk dekrpisnya sama
seperti langkah di atas, namun letakkan ciphertext nya berada ditengah, sehingga:

k

r

i

p

t

o

k

r

i

p

Q

F

T

D

F

P

B

A

L

T

g

o

l

o

m

b

r

i

c

e

Universitas Sumatera Utara

17

Untuk memudahkan dalam mengimplementasikan algoritma Trithemius ke dalam
bahasa pemrograman yang penulis gunakan, maka tabel 2.1 diubah ke dalam bentuk
array seperti pada tabel 2.2.

Tabel 2.2 Tabel Trithemius dalam bentuk array

a

b

c

d

e

f

g

h

i

k

l

0

1

2

3

4

5

6

7

8

9

10

m

n

o

p

q

r

s

t

u

w

x

11

12

13

14

15

16

17

18

19

20

21

y

z

22

23

Dalam tabel 2.2, Trithemius hanya menggunakan 24 huruf saja dan tidak
memperdulikan huruf besar atau kecil, ataupun angka-angka maupun simbol-simbol.
Oleh karena itu, penulis memodifikasi tabel Trithemius dengan tetap menggunakan 24
huruf yang sama, namun di tambah dengan huruf kecil dan huruf besar, kemudian
disertai dengan angka 0-9 dan juga simbol seperti “spasi”, “.”, “,” dan “!”. Pada tabel
2.3 adalah tabel array untuk Trithemius yang telah penulis modifikasi.

Tabel 2.3 Modifikasi Tabel Trithemius dalam bentuk array

a

b

c

d

e

f

g

h

i

k

l

0

1

2

3

4

5

6

7

8

9

10

m

n

o

p

q

r

s

t

u

w

x

11

12

13

14

15

16

17

18

19

20

21

Universitas Sumatera Utara

18

y

z

A

B

C

D

E

F

G

H

I

22

23

24

25

26

27

28

29

30

31

32

K

L

M

N

O

P

Q

R

S

T

U

33

34

35

36

37

38

39

40

41

42

43

W

X

Y

Z

0

1

2

3

4

5

6

44

45

46

47

48

49

50

51

52

53

54

7

8

9

sp

.

,

!

55

56

57

58

59

60

61

2.5 Kompresi Data
Kompresi adalah proses mengkonversikan sebuah aliran input data (sumber aliran
data, atau asli) menjadi aliran data lainnya (aliran data dalam bentuk bit, atau output
data yang telah dipadatkan) yang memiliki ukuran lebih kecil (Salomon, 2007).
Sedangkan kompresi data adalah cara untuk mengurangi jumlah bit pada data
dalam penyimpanan, sehingga membuat lebih efisien dalam penyimpanan ataupun
dalam pertukaran data tersebut (Nelson & Gailly 1996). Dalam kompresi data terdapat
metode yang dikelompokkan menjadi dua bagian yaitu metode lossless dan metode
lossy.

2.5.1 Metode Lossless
Kompresi data lossless adalah metode yang tidak menyebabkan kehilangan informasi
pada data yng telah dikompresi. Data asli dapat kembali didapatkan tepat seperti
sebelum dilakukan proses kompresi (Sayood, 2006).
Metode lossless digunakan dalam berbagai aplikasi seperti format ZIP dan
GZIP. Lossless juga sering digunakan sebagai komponen dalam teknologi kompresi
data lossy, yang digunakan ketika sesuatu yang penting pada kondisi aslinya.
Beberapa format gambar sperti PNG atau GIF hanya menggunakan kompresi lossless,

Universitas Sumatera Utara

19

sedangkan yang lainnya sperti TIFF dan MNG dapat menggunakan metode lossy atau
juga lossless.
Metode lossless menghasilkan data yang identik dengan data aslinya, hal ini
dibutuhkan untuk banyak tipe data, seperti executable code, word processing files,
tabulated numbers dan sebagainya. Kompresi lossless diperlukan untuk data teks dan
file, seperti catatan bank, artikel teks dll.
Misalkan pada suatu citra atau gambar, dimana metode ini akan menghasilkan
hasil yang sama persis dengan citra semula, pixel per pixel sehingga tidak ada
informasi yang hilang akibat kompresi, namun untuk rasio kompresi (yaitu, ukuran
file yang dikompresi dibanding ukuran file sebelum dikompresi) dengan metode ini
sangat rendah. Metode kompresi ini cocok untuk kompresi citra yang mengandung
informasi penting yang tidak boleh rusak/hilang akibat kompresi, misalnya gambar
hasil diagnosa medis (Nelson, 1996).
Beberapa contoh algoritma kompresi lossless adalah sebagai berikut (Sayood,
2006).
1. Algoritma Huffman, yang ditemukan oleh David Huffman, dapat digunakan
untuk kompresi gambar dan suara lossless serta kompresi teks.
2. Algoritma Arithmetic Code, dapat digunakan untuk metode lossless maupun
lossy.
3. Golomb Code dan Rice Code.

2.5.2 Metode Lossy
Metode kompresi lossy yaitu metode yang menyebabkan kehilangan beberapa
informasi dan data yang telah dikompresi dengan menggunakan metode ini, namun
akan mendapatkan rasio kompresi yang lebih tinggi jika dibandingkan dengan metode
lossless (Sayood, 2006).
Metode lossy adalah suatu metode untuk mengkompresi data dan mendekompresinya, dimana data yang diperoleh mungkin berbeda dari yang aslinya tetapi
cukup dekat perbedaaanya. Lossy kompresi ini paling sering digunakan untuk
mengkompresi data multimedia (audio ataupun gambar). Format kompresi lossy
mengalami generation loss yaitu jika melakukan berulang kali kompresi dan
dekompresi file akan menyebabkan kehilangan kualitas secara progresif.

Universitas Sumatera Utara

20

Ada terdapat dua skema dasar dalam kompresi lossy, yaitu : lossy transform codec dan
lossy predictive codec.
1. Lossy transform codec, yaitu kompresi dimana sampel suara atau gambar yang
diambil, di potong kesegmen kecil, diubah menjadi ruang basis yang baru dan
hasil nilai kuantisasinya menjadi entropy coded.
2. Lossy predictive codec, yaitu kompresi dimana sebelum atau sesudahnya data
yang didecode digunakan untuk memprediksi sampel suara dan frame picture
saat ini. Kesalahan antara data prediksi dan data yang nyata, bersamaan
dengan informasi lain digunakan untuk mereproduksi prediksi, dan kemudian
dikuantisasi. Dalam beberapa system, kedua teknik digabungkan, dengan
mengubah codec yang digunakan untuk mengkompresi kesalahan sinyal yang
dihasilkan dari tahapan prediksi (Nelson, 1996).

Dengan kompresi data lossless, ketika pengguna yang menerima file
terkompresi secara lossy (misalnya untuk mengurangi waktu download) file yang
diambil akan sedikit berbeda dari yang aslinya dalam levelbit nya, dimana tidak dapat
dibedakan oleh mata dan juga telinga manusia secara langsung. Metode ini
menghasilkan rasio kompresi yang lebih besar daripada metode lossless. Contoh
metode lossy adalah metode CS&Q (coarser sampling and / or quantization), JPEG,
dan MPEG.

2.5.3 Ukuran Kinerja Kompresi
Ketika mengukur performa dari suatu algoritma kompresi, biasanya akan fokus pada
efisiensi dari ruang penyimpanan dan efisiensi waktu termasuk dalam faktor lainnya.
Performa suatu algoritma kompresi juga bergantung pada tipe dan struktur dari
sumber masukan, yang mana juga akan tergantung pada apakah termasuk dalam
kategori kompresi lossless atau lossy. Untuk menilai dan mengetahui keefektifan suatu
algoritma kompresi ataupun untuk mengetahui perbandingan file sebelum dan setlah
di kompresi, maka diperlukan beberapa parameter kinerja kompresi yang harus
diperhatikan sebagai berikut (Kodituwakku, 2011).
1. Compression Ratio
Compression Ratio merupakan perbandingan antara ukuran file setelah
terkompresi dengan file asli, dimana:

Universitas Sumatera Utara

21

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

Compression Ratio = ������������

2. Compression Factor

���

Compression Factor merupakan kebalikan dari Compression Ratio, dimana
perbandingan antara file asli (sebelum terkompresi) dengan file setelah
terkompresi, dimana:
Compression Factor =

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

3. Saving Percentage

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

Saving Percentage menghitung penyusutan setelah file terkompresi dari file
asli sebagai persentase, dimana:
Saving Percentage=

���� ������ ����������� −���� ����� ���������� �
���� ������ �����������

4. Compression Time
Waktu

yang

dibutuhkan

untuk

kompresi

dan

x 100 %

dekompresi

harus

dipertimbangkan secara terpisah. Jika waktu yang dibutuhkan suatu algoritma
untuk kompresi dan juga dekompresi kecil atau masih dalam level yang dapat
diterima, hal itu menunjukkan bahwa algoritma tersebut dapat diterima untuk
masing-masing

faktor

waktunya.

Dengan

perkembangan

kecanggihan

komputer saat ini, maka membuat compression time bernilai sangat kecil dan
tergantung pada performa dari komputer yang digunakan.

2.6 Rice Code
Rice Codeadalah salah satu algoritma kompresi yang dapat memperkecil ukuran data
yang lebih kecil dari ukuran sebelumnya. Sebelum adanya Rice Code, terdapat
algoritma yang disebut sebagai Golomb Codes yang merupakan familydengan Rice
Code karena memiliki persamaan yang bergantung pada pemilihan parameter m,
dimana m adalah himpunan dari 2 (m = 2k). Rice Codedisebut juga sebagai GolombRice Code, yang diberi nama sesuai dengan penciptanya yaitu Robert F. Rice pada
tahun 1979 (Salomon, 2007).
Rice Code merupakan special case dari Golomb Codes yang mana nilai x
dikodekan k pertama digeser kekanan untuk mendapatkan nilai unary coded.
Kemudian urutan terendah dari k nilai asli dari x dilanjutkan sebagai k yang bernilai
biner (Moffat & Turpin 2002). Rice Code menunjukkan penggunaan sebuah subset

Universitas Sumatera Utara

22

dari turunan Golomb Code untuk menghasilkan sebuah kode yang sederhana dan
mudah diimplementasikan dalam kasus aritmatika biner secara efisien, dan
keduanyadigunakan pada beberapa metode untuk kompresi audio lossless. Di dalam
algortima Rice, ada sebuah nilai k yang artinya adalah banyaknya angka 1 pada suffix
dari kode terkompresi. Dalam proses encode, dilakukan pemisahan pada prefix dan
suffix. Ketika proses decode, decoder membaca sign bit dan lompat ke angka 0
pertama dari sebelah kiri, yang mana akan berlanjut kembali untuk penambahan bit
pada k selanjutnya. Untuk nilai k dalam proses kompresi menggunakan Rice Code,
dapat dilihat pada tabel 2.4 berikut ini.

Tabel 2.4 Nilai k Rice Code (Sayood, 2006)

n

k=0

k=1

k=2

k=3

k=4

k=5

0

0|

0|0

0 | 00

0 | 000

0 | 0000

0 | 00000

1

10 |

0|1

0 | 01

0 | 001

0 | 0001

0 | 00001

2

110 | 0

10 | 0

0 | 10

0 | 010

0 | 0010

0 | 00010

3

110 | 1

10 | 1

0 | 11

0 | 011

0 | 0011

0 | 00011

4

1110 | 00

110 | 00

10 | 00

0 | 100

0 | 0100

0 | 00100

5

1110 | 01

110 | 01

10 | 01

0 | 101

0 | 0101

0 | 00101

6

1110 | 10

110 | 10

10 | 10

0 | 110

0 | 0110

0 | 00110

7

1110 | 11

110 | 11

10 | 11

0 | 111

0 | 0111

0 | 00111

8

11110 | 000

1110 | 000

10 | 000

10 | 000

0 | 1000

0 | 01000

9

11110 | 001

1110 | 001

110 | 001

10 | 001

0 | 1001

0 | 01001

10

11110 | 010

1110 | 010

110 | 010

10 | 010

0 | 1010

0 | 01010

11

11110 | 011

1110 | 011

110 | 011

10 | 011

0 | 1011

0 | 01011

12

11110 | 100

1110 | 100

110 | 100

10 | 100

0 | 1100

0 | 01100

13

11110 | 101

1110 | 101

110 | 101

10 | 101

0 | 1101

0 | 01101

14

11110 | 110

1110 | 110

110 | 110

10 | 110

0 | 1110

0 | 01110

15

11110 | 111

1110 | 111

110 | 111

10 | 111

0 | 1111

0 | 01111

16

111110 | 0000

11110 | 0000

1110 | 0000

110 | 0000

10 | 0000

0 | 10000

Universitas Sumatera Utara

23

Misalkan, terdapat string “RAJA ARIF”, dimana :
| String | = 9
Ʃ = {R, A, J, sp, I, F}|Ʃ | = 6
Tabel 2.5 Tabel String “RAJA ARIF”
Ʃ

ASCII

ASCII

Bit

Frekuensi

Frek x Bit

Code

(Binary)

(ASCII)

R

82

01010010

8 bit

2

16

A

65

01000001

8 bit

3

24

J

74

01001010

8 bit

1

8

sp

32

00100000

8 bit

1

8

I

73

01001001

8 bit

1

8

F

70

01000110

8 bit

1

8

Jumlah

72

Setelah dibuat seperti pada tabel 2.5, kemudian terlebih dahulu diurutkan berdasarkan
jumlah frekuensi terbanyak (descending order), maka urutannya dimulai dari A, R, J,
sp, I, F. Dengan menggunakan Rice Code dengan nilai k=2, maka hasilnya seperti
pada tabel 2.6:

Tabel 2.6 Tabel String “RAJA ARIF” setelah dikompresi
Ʃ

Rice Code

Bit

Frekuensi

Frek x Bit

A

000

3

3

9

R

001

3

2

6

J

010

3

1

3

sp

011

3

1

3

I

1000

4

1

4

F

1001

4

1

4

Jumlah

29

Universitas Sumatera Utara