Perbandingan Algoritma Ternary Comma Code Dengan Levenstein Untuk Kompresi File Text

17

BAB 2
TINJAUAN PUSTAKA

Pada bab ini penulis memaparkan teori-teori ilmiah yang didapat dari metode pencarian
fakta yang digunakan untuk mendukung penulisan skripsi ini dan sebagai dasar
pengembangan sistem sehingga dapat diimplementasikan dengan baik dan benar.

2.1 Kompresi Data
Disamping usaha pengaman, sekarang ini orang juga berusaha melakukan proses
pengecilan ukuran suatu data (kompresi suatu data). Tujuan dari kompresi ini adalah untuk
mempercepat pengiriman data atau informasi tersebut. Keamanan dan kecepatan
merupakan hal yang penting dalam komunikasi menggunakan komputer dan jaringan
komputer.
Kompresi data adalah ilmu atau seni merepresentasikan informasi dalam bentuk yang lebih
compact (Pu, 2006).
Kompresi adalah sebuah usaha untuk memperkecil ukuran data pada suatu file,
dimana informasi yang terdapat didalam file tersebut tidak berubah. Untuk membuat suatu
data menjadi lebih kecil ukurannya dari pada data asli, diperlukan algoritma tertentu.
Dalam algortima kompresi data, tidak ada algoritma yang cocok untuk semua jenis data.

Hal ini disebabkan karena data yang akan dikompres harus dianalisis terlebih dahulu, dan
berharap menemukan pola tertentu yang dapat digunakan untuk memperoleh data dalam
bentuk yang lebih kecil, karena itu muncul banyak algoritma-algoritma kompresi data.
Kompresi data adalah sebuah cara untuk memadatkan data sehingga hanya
memerlukan ruang penyimpanan lebih kecil sehingga lebih efisien dalam menyimpannya
atau mempersingkat waktu pertukaran data tersebut (Zhang, 1996).
Teknik kompresi dikenal dengan beberapa nama. Inisialisasi burrows dan wheeler
digambarkan sebagai pengurutan perblok atau block shorting, kemudian wheeler dengan
istilah pengurutan blok dan perluasan blok (block expantion) untuk kompresi dan perluasan
operasinya (Fenwick, 1996).

Proses kompresi dan dekompresi data dapat ditunjukkan melalui diagram blok seperti pada
Gambar 2.1.

Universitas Sumatera Utara

18

Uncompressed data


Kompresi

Compressed data

Dekompresi
Compressed data

Uncompressed data

Gambar 2.1 Diagram Blok Proses Kompresi dan Dekompresi Data (Pu, 2006)
2.2. Penggolongan kompresi
Secara umum kompresi dibagi menjadi 2 golongan, yaitu :
2.2.1. Kompresi Lossy (Lossy Compression)
Algoritma kompresi lossy mengakibatkan perubahan data dibandingkan dengan sebelum
dilakukan kompresi. Tipe ini cocok untuk kompresi file suara digital dan gambar
digital. File suara dan gambar secara alamiah masih bisa digunakan walaupun tidak
berada pada kondisi yang sama sebelum dilakukan kompresi. Contoh algoritma yang
tergolong kompresi lossy yaitu, DCT, LPC, dan sebagainya. Konsep dasar kompresi lossy
dapat dilihat pada Gambar 2.2 (Sayood, 2006). Lossy compression disebut juga dengan
irreversible compression karena data asli tidak bisa dikembalikan dengan sempurna. Oleh

karena itu sangat kecil kemungkinan dan bahkan tidak akan pernah bisa data yang
dikompresi dengan teknik Lossy dapat dikembalikan seperti data sebelum dikompresi atau
data aslinya. Contoh data yang cosok adalah gambar, suara dan video. Karena cara kerja
sistem penglihatan dan pendengaran manusia yang terbatas, beberapa detail dapat
dihilangkan, sehingga didapat data hasil kompresi yang seolah-olah sama dengan data asli.
Contoh algoritma lossy pada kompresi data adalah Wavelet Compression, Fractal
Compression, Wyner-Coding (WZC) dan lain-lain. Teknik kompresi lossy dapat
digambarkan seperti gambar 2.3.

Gambar 2.2. Ilustrasi Kompresi Lossy (Sayood, 2006)

Universitas Sumatera Utara

19

Kompresi ini tidak hanya menghapus atau mengurangi redudansi data, tetapi juga
mengabaikan beberapa rincian kurang penting, yang memiliki rasio kompresi yang
signifikan. Tetapi metode kompresi ini bisa menghilangkan beberapa informasi dari
dokumen yang asli, yang menunjukkan bahwa file yang diunzziped memiliki perbedaan
dengan file yang aslinya (Zhong & Wen, 2010).


Gambar 2.3 Teknik Kompresi Lossy (Pu, 2006)

2.2.2. Kompresi lossless (Lossless Compression)
Algoritma kompresi lossless menghasilkan data yang sama dengan data sebelum dilakukan
kompresi. Kompresi ini cocok untuk basis data, dokumen atau spreadsheet. Pada
lossless compression ini tidak diijinkan ada bit yang hilang dari data pada proses
kompresi. Contoh algoritma yang tergolong kompresi lossless, yaitu Levenstein, Elias
Gamma code, Fibonacci, dan sebagainya. Konsep dasar kompresi lossless dapat dilihat
pada Gambar 2.4. (Sayood, 2006). Losseless compression disebut juga dengan reversible
compression karena data asli bisa dikembalikan dengan sempurna. Akan tetapi rasio
kompresinya sangat rendah, misalnya pada gambar seperti GIF dan PNG . Contoh data
yang cocok adalah gambar medis, teks, program, spreadsheet dan lain-lain. Teknik ini
digunakan jika data tersebut sangat penting, jadi tidak dimungkinkan untuk menghilangkan
beberapa detail. Teknik kompresi lossless dapat digambarkan seperti gambar 2.5.

Gambar 2.4. Ilustrasi Kompresi Lossless (Sayood, 2006)

Universitas Sumatera Utara


20

Metode kompresi lossless ini merupakan kombinasi data redudansi, yang mekanisme
kerjanya adalah untuk menghapus atau mengurangi redudansi data, oleh karena itu tidak
menyebabkan hilangnya data yang asli (Zhong & Wen, 2010).

Gambar 2.5 Teknik Kompresi Lossless (Pu, 2006)
2.2.3. Pengukuran Kinerja Kompresi Data
Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa faktor
atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknik kompresi
data tersebut, yaitu :

1. Ratio of compression (Rc)
Ratio of compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi
dengan ukuran data setelah dikompresi.
(Salomon & Motta, 2010)
Misalkan didapat sebuah nilai Ratio of Compression sebesar 1.30. Itu berarti besar data
sebelum kompresi adalah 1.30 kali lipat dari besar data setelah dikompresi.

2. Compression ratio (Cr)

Compression ratio (Cr) adalah persentasi besar data yang telah dikompresi yang didapat
dari hasil perbandingan antara ukuran data setelah dikompresi dengan ukuran data sebelum
dikompresi.

(Salomon & Motta, 2010)
Misalkan didapat sebuah nilai Compression Ratio sebesar 76,47%. Itu berarti setelah
dikompresi ukuran data adalah 76,4% dari data sebelum dikompresi.

Universitas Sumatera Utara

21

3. Redundancy (Rd)
Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi
setelah data dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil selisih
antara ukuran data sebelum dikompresi dengan data setelah dikompresi.

(Salomon & Motta, 2010)
Misalkan didapat sebuah nilai Redundancy sebesar 23,53%. Itu berarti besarnya kelebihan
data sebelum dikompresi adalah 23,53%.


4. Waktu Kompresi dan Dekompresi
Waktu kompresi dan dekompresi adalah waktu yang dibutuhkan oleh sebuah sistem untuk
melakukan proses kompresi dan dekompresi dari mulai pembacaan data hingga proses
encoding pada data tersebut. Semakin kecil waktu yang diperoleh maka semakin efisien
metode yang digunakan dalam proses kompresi dan dekompresi itu.

2.3. Dekompresi
Dekompresi merupakan proses pengembalian data kebentuk semula. Proses dekompresi
secara harfiah merupakan proses yang dilakukan bila data hasil kompresi ingin
dikembalikan ke ukuran dan bentuknya semula. Dengan demikian, dekompresi adalah
kebalikan dari kompresi data, yaitu dapat mengembalikan data kebentuk semula. Apabila
data hasil dekompresi sama seperti data sebelum dikompresi, maka teknik kompresi yang
digunakan adalah kompresi loseless. Sedangkan hasil dekompresi tidak sama dengan data
sebelum dikompresi, maka teknik yang digunakan adalah kompresi lossy.
Tujuan dari dekompresi data adalah untuk mengembalikan data yang telah
dikompresi ke bentuk semula. Karena data yang telah dikompresi tidak dapat dibaca tanpa
dikembalikan ke dalam bentuk semula (Erdiansyah, 2014).

2.3.1 Algoritma

Defenisi Algoritma :
1. Algoritma adalah urutan langkah – langkah berhingga untuk memecahkan masalah
logika atau matematika.
2. Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan
untuk memecahkan suatu permasalahan.

Universitas Sumatera Utara

22

3. Algoritma adalah urutan langkah – langkah logis penyelesaian masalah yang disusun
secara sistematis dan logis.

2.4 Algoritma Ternary Comma Code
Ternary Comma Kode adalah bilangan biner (basis 2) yang didasarkan pada dua nomor bit
0 dan 1. Demikian pula dengan terner bilangan (basis 3) dengan nomor bit 0, 1, dan 2.
Setiap trit dapat dikodekan dalam dua bit, setiap dua bit terdiri dari empat nilai. Nilai yang
terdapat didalam trit akan sejalan dengan nilai terner (0,1,2) jumlah sebuah sistem trit
diwakili oleh dua bit dan memiliki simbol yang disebut comma c, comma c dapat dibangun
dengan bilangan kode pada terner untuk bilangan bulat. kode comma berkaitan dengan

representasi pada terner (Salomon, 2007).
Menurut Fenwick pada tahun 1996 daftar beberapa kode comma terner berkaitan
dengan panjang kode didalam bit, dan cocok dengan aplikasi yang memiliki bilangan bulat.
Kode comma c juga mudah untuk mengetahui penandaan akhir dari sebuah kode yang ada
(Salomon, 2007).
Dengan cara decode dan downside. kode ini berdasarkan jumlah basis yang lebih
besar. Dalam basis kode terdapat 15 digit, 15 digit tersebut membutuhkan empat bit dan
comma pola 4 bit , setiap kode ujungnya harus berkaitan dengan 4 bit, dan fitur ini
membuat kode seperti tidak efisien untuk basis yang jumlahnya besar maka salah satu
ujung pada kode akan menjadi minimum terendah (Salomon, 2007).

2.5. Algoritma levenstein
Pada tahun 1968 Vladimir Levenstein mengembangkan kode Levenstein

yang dapat

digunakan untuk bilangan bulat non-negatif. Proses encoding dan decoding dilakukan
dibeberapa tahap( Antoni, et al.2014).
Levenstein kode untuk nol adalah 0 tunggal. Untuk kode angka positif n, berikut
adalah langkah encode-nya:

1. Set angka pertama dari C dengan 1. Letakkan kode-sejauh-ini pada string kosong.
2. Ambil nilai biner dari n tanpa angka 1 di awal dan tambahkan pada kode-sejauh-ini.
3. Nyatakan M sebagai jumlah bit yang ditambahkan pada tahap 2.
4. Jika M ≠ 0, tambahkan C dengan 1 dan lakukan langkah 2 kembali, tetapi dengan nilai
M, bukan n.
5. Jika M = 0, tambahkan 1 diikuti dengan 0 pada C ke kode-sejauh-ini dan berhenti.
Untuk contoh kasus, kita anggap n = 21. Nilai biner dari 21 adalah 10101, kita

Universitas Sumatera Utara

23

ambil 0101 dan tambahkan dibelakang 1. Tambahkan 1 pada kode, kemudian hitung
jumlah karakter pada 0010, kita dapatkan 4. Tambahkan kembali 1, Ambil nilai 00,
tambahkan di belakang penambahan tadi. Ulangi langkah tersebut sampai kita dapati nilai
M = 0, kemudian tambahkan 10. Sehingga 21 pada kode Levenstein adalah
11110|0|00|0101 (Erdiansyah, 2014).
Tabel 2.1 Tabel Kode Levenstein (Salomon, 2007)
N


Kode Levenstein

N

Kode Levenstein

0

0

14

11100

1 110

1

10

15

11100

1 111

2

110

0

16

11110 0 00

0000

3

110

1

17

11110 0 00

0001

4

1110 0 00

18

111100 0 00 010

5

1110 0 01

19

111100 0 00 011

6

1110 0 10

20

111100 0 00 100

7

1110 0 11

21

111100 0 00 101

8

11100 1 000

22

111100 0 00 110

9

11100 1 001

23

111100 0 00 111

10

11100 1 010

24

111100 0 00 000

11

11100 1 011

25

111100 0 00 001

12

11100 1 100

26

111100 0 00 010

13

11100 1 101

27

111100 0 00 011

Decoding dilakukan sebagai berikut:
1. Set C dengan jumlah berturut-turut angka1 sebelum angka 0 yang pertama.
2. Jika C = 0, nilai di-decode adalah nol, berhenti.
3. Set N = 1, dan ulangi langkah 4 (C-1) kali.
4. Baca N bit, tambahkan 1, dan tetapkan hasil bitstring ke N (dengan demikian menghapus
nilai sebelumnya dari N). String ditugaskan untuk N dalam iterasi terakhir adalah nilai
decode-nya.

2.6. File Teks
Teks adalah kumpulan dari karakter – karakter atau string yang menjadi satu kesatuan.

Universitas Sumatera Utara

24

Teks yang memuat banyak karakter didalamnya selalu menimbulkan masalah pada media
penyimpanan dan kecepatan waktu pada saat transmisi data. File teks merupakan file
yang berisi informasi-informasi dalam bentuk teks. Data yang berasal dari dokumen
pengolah kata, angka yang digunakan dalam perhitungan, nama dan alamat dalam basis
data merupakan contoh masukan data teks yang terdiri dari karakter, angka dan tanda baca
(Pramilo, 2008).
Masukan dan keluaran data teks direpresentasikan sebagai set karakter atau sistem
kode yang dikenal oleh sistem komputer. Ada tiga macam set karakter yang umum
digunakan untuk masukan dan keluaran pada komputer, yaitu ASCII, Unicode, dan
EBCDIC. ASCII (American Standard Code for Information Interchange) merupakan suatu
standar internasional dalam kode huruf dan simbol seperti Hex, dan Unicode tetapi ASCII
bersifat lebih universal. ASCII digunakan oleh komputer dan alat komunikasi lain untuk
menunjukkan teks. Kode ASCII memiliki komposisi bilangan biner sebanyak 8 bit, dimulai
dari 00000000 dan 11111111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari
kode 0 hingga 255 dalam sistem bilangan desimal. Unicode adalah suatu standar industri
yang dirancang untuk mengizinkan teks dan simbol dari semua sistem tulisan di dunia
untuk ditampilkan dan dimanipulasi secara konsisten oleh komputer. EBCDIC (Extended
Binary Code Decimal Interchange Code) merupakan set karakter yang diciptakan oleh
komputer merk IBM. EBCDIC terdiri dari 256 karakter yang masing-masing berukuran 8
bit (Erdiansyah, 2014). Tabel ASCII dapat dilihat pada Tabel 2.2.

Tabel 2.2 Tabel ASCII
De
c
0

Char
NUL

De

Cha

c

r

47

/

Dec

Cha

Dec

Char

r
94

^

141

RI


1

SOH

48

0

95

_

142

STX

49

1

96

`

143

SS2

ETX

50

2

97

A

144


De

Cha

c

r

c

r

18

¼

23

ë

18

5
½

9
SS3


3

Cha

8


2

De

19
19
1

ì

6
¾

0
DCS

23
23

í

7
¿

23

î

8

Universitas Sumatera Utara

25

4

EOT

51

3

98

B

145

PU1

19

À

2
5

ENQ

52

4

99

C

146

PU2

19

ACK

53

5

100

D

147

STS

19

Á

BEL

54

6

101

E

148

CCH

19

Â

BS

55

7

102

F

149

MW

19

Ã

TAB

56

8

103

G

150

SPA

19

Ä

LF

57

9

104

H

151

EPA

19

Å

VT

58

:

105

I

152

SOS

19

Æ

FF

59

;

106

J

153

SGCI

20

Ç

CR

60

<

107

K

154

SCI

20

È

SO

61

=

108

L

155

CSI

20

É

SI

62

>

109

M

156

ST

20

Ê

DLE

63

?

110

N

157

OSC

20

Ë

DC1

64

@

111

O

158

PM


18

DC2

65

A

112

P

159

20

Ì

20

Í

20

DC3
DC4

66
67

B
C

113
114

Q
R

160
161

Spac

20

e

7

¡

20

24

ö

24

÷

24

ø

24

ù

25

ú

25

û

25

ü

2
Î

6
19

õ

1

5
APC

24

0

4
17

ô

9

3
16

24

8

2
15

ó

7

1
14

24

6

0
13

ò

5

9
12

24

4

8
11

ñ

3

7
10

24

2

6
9

ð

1

5
8

24
0

4
7

ï

9

3
6

23

25

ý

3
Ï

25

þ

4
Ð

25

ÿ

Universitas Sumatera Utara

26

8
21

NAK

68

D

115

S

162

¢

20

5
Ñ

9
22

SYN

69

E

116

T

163

£

21

Ò

0
23

EBT

70

F

117

U

164

¤

21

Ó

1
24

CAN

71

G

118

V

165

¥

21

Ô

2
25

EM

72

H

119

W

166

¦

21

Õ

3
26

SUB

73

I

120

X

167

§

21

Ö

4
27

ESC

74

J

121

Y

168

¨

21

×

5
28

FS

75

K

122

Z

169

©

21

Ø

6
29

GS

76

L

123

{

170

ª

21

Ù

7
30

RS

77

M

124

|

171

«

21

Ú

8
31

US

78

N

125

}

172

¬

21

Û

9
32

SPAC

79

O

126

~

173

-

E
33

!

22

Ü

0
80

P

127



174

®

22

Ý

1
34

"

81

Q

128

PAD

175

¯


35

#

82

R

129

$

83

S

130

Þ

2
HOP

176

°


36

22
22

ß

3
BPH

177

±

22

à

4

Universitas Sumatera Utara

27

37

%

84

T

131

NBH

178

²

22

á

5
38

&

85

U

132

IND

179

³

22

â

6
39

'

86

V

133

NEL

180

´

22

ã

7
40

(

87

W

134

SSA

181

µ

22

ä

8
41

)

88

X

135

ESA

182



22

å

9
42

*

89

Y

136

HTS

183

·

23

æ

0
43

+

90

Z

137

HTJ

184

¸

23

ç

1
44

,

91

[

138

VTS

185

¹

23

è

2
45

-

92

\

139

PLD

186

º

23

é

3
46

.

93

]

140

PLU

187

»

23

ê

4

2.7 Black Box Testing
Black-Box Testing merupakan pengujian yang berfokus pada spesifikasi fungsional dari
perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan
pengetesan pada spesifikasi fungsional program (Pressman, 2012). Sistem (atau bagian)
menanggapi ranggsangan stimulan tertantu (peristiwa) dengan menerapkan seperangkat
aturan transmisi yang memetakan perangsangan stimulan ke respons Black Box
menentukan perilaku sistem atau bagian sistem. Cara ini melihat bagaiman sistem
merespon user dalam menerima inputan yang berbeda (Pressman, 2012).

Universitas Sumatera Utara