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