2.2 Algoritma Elias Omega Codes dilakukan dengan algoritma Golomb Rice, hasil
dekompresi pertama, dilanjutkan dengan dekompresi
Algoritma Elias Omega Code merupakan algoritma
kedua menggunakan algoritma Elias Omega Code,
kompresi yang diperkenalkan oleh Peter Elias pada tahun
sehingga didapatkan data file awal.
1975. Gagasan utama kode ini adalah untuk awalan integer
dikodekan dengan representasi kode dari besarnya order
dan inisialisasi kode secara rekursif. Algoritma Elias
Omega Code mengurutkan karakter yang paling banyak
muncul ke bit terkecil dan karakter yang langka ke bit
terbesar. Dengan begitu, ukuran file dapat diminimalisir
dari ukuran aslinya[3].
2.3 Algoritma Golomb Rice
Rice Code adalah salah satu algoritma kompresi yang dapat Gambar 1. Diagram Kompresi File Teks
memperkecil ukuran data yang lebih kecil dari ukuran
sebelumnya. Sebelum adanya Rice Code, terdapat 3.1 Penerapan Algoritma
algoritma yang disebut sebagai Golomb Codes yang Sebelum melakukan manual kompresi, terlebih dahulu
merupakan familydengan Rice Code karena memiliki menentukan file teks yang akan dikompresi. Adapun
persamaan yang bergantung pada pemilihan parameter m, contoh file teks yang akan dikompresi dengan nama file
dimana m adalah himpunan dari 2 (m = 2k). Rice Code sampel.txt seperti pada gambar di bawah ini.
disebut juga sebagai Golomb-Rice Code, yang diberi nama
sesuai dengan penciptanya yaitu Robert F. Rice pada tahun
1979 [4].
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. Rice Code menunjukkan penggunaan
sebuah subset dari turunan Golomb Code untuk
menghasilkan sebuah kode yang sederhana dan mudah
diimplementasikan dalam kasus aritmatika biner secara
efisien, dan keduanyadigunakan pada beberapa metode Gambar 2. File Teks Sampel
untuk kompresi audio lossless. Di dalam algortima Rice,
ada sebuah nilai k yang artinya adalah banyaknya angka 1 Untuk melihat isi dari file teks pada keperluan hitungan
pada suffix dari kode terkompresi. Dalam proses encode, manual, maka dibutuhkan aplikasi tambahan. Adapun hasil
dilakukan pemisahan pada prefix dan suffix. Ketika proses dari isi file teks sampel adalah sebagai pada gambar di
decode, decoder membaca sign bit dan lompat ke angka 0 bawah ini.
pertama dari sebelah kiri, yang mana akan berlanjut
kembali untuk penambahan bit pada k selanjutnya.
3. ANALISA
File yang berukuran besar, tentu dapat memadati ruangan
penyimpanan didalam komputer, salah satunya adalah file
teks. Semakin banyak informasi yang terkandung didalam Gambar 3. Isi File Teks Sampel
file teks tersebut, semakin besar ukuran pemyimpanan
yang digunakan. Untuk mengatasi hal tersebut tentu Adapun isi file teks sampel.txt yang akan dikompresi
dibutuhkanya sebuah teknik yang dapat mengecilkan atau secara manual adalah "FEBIKA RADA KESUMA" (tanpa
mengompress ukuran file besar tersebut menjadi lebih tanda petik) dengan nilai Hexa
kecil dari ukuran semula. Teknik yang dapat digunakan 46,45,42,49,4B,41,20,52,41,44,41,20,4B,45,53,55,4D,41.
adalah teknik kompresi. Pada proses hitungan manual, proses kompresi pertama
Teknik kompresi dapat mengecilkan data file teks dilakukan dengan algoritma Elias Omega Code.
dari ukuran semula. Dalam penelitian ini, algoritma Sebelumnya string karakter dikelompokan kedalam tabel
kompresi yang dipakai adalah algoritma Elias Omega Code dengan banyaknya jumlah karakter yang muncul seperti
dan Golomb Rice. Dengan maksud teknik high compress, tabel di bawah ini.
file yang diinputkan akan dilakukan kompresi sebanyak Tabel 1. Urutan Sampel Teks
dua kali menggunakan algoritma yang sudah disebutkan
sebelumnya. Kompresi pertama dilakukan dengan Karakter Frekuensi
menggunakan algoritma Elias Omega Code, hasil F 1
kompresi pertama dilanjutkan dengan kompresi kedua E 2
menggunakan algoritma Golomb Rice. Kemudian hasil B 1
akhir dari kompresi kedua, dihitung parameternya berupa I 1
rasio kompresi dan space saving. Sedangkan untuk K 2
melakukan pengembalian ukuran file, dekompresi pertama A 4
Spasi 2 6 10 110 0
R 1 7 10 111 0
D 1 8 11 1000 0
S 1 9 11 1001 0
U 1 10 11 1010 0
M 1 11 11 1011 0
Total 18 Karakter 12 11 1100 0
Selanjutnya dilakukan kompresi file teks yang sudah
Berdasarkan pada tabel di atas, terdapat 18 karakter yang
disusun berdasarkan pada tabel 3 di atas dengan
akan dikompresi pertama menggunakan algoritma Elias
mengalikan banyaknya frekuensi karakter yang muncul
Omega Code. Pada dasarnya 1 karakter adalah 8 bit.
dengan banyaknya nilai bit dari kode nilai algoritma
a. Kompresi Berdasarkan Algoritma Elias Omega Code
Elias Omega Code. Adapun proses keseluruhanya
Sebelum melakukan kompresi menggunakan algoritma
dapat dilihat pada tabel di bawah ini.
Elias Omega Code, karakter yang sudah disusun pada
tabel 1 di atas terlebih dahulu disusun berdasarkan Tabel 4. Kompresi Pertama Berdasarkan Algoritma Elias
frekuensi terbesar dan ditentukan banyaknya jumlah bit Omega Code
pada sampel karakter tersebut. Adapun prosesnya dapat Elias Jumlah
dilihat pada tabel di bawah ini. Frekuensi Bit *
N Karakter Omega Bit
Karakter Frek
Codes Omega
Tabel 2. Urutan Karakter Sesuai Banyaknya Frekuensi 1 A 0 1 4 4
Bit * 2 E 10 0 3 2 6
Karakter BinnerKarakter Bit Frekuensi 3 K 11 0 3 2 6
Frek
A 01000001 8 4 32 4 spasi 10 100 0 6 2 12
E 01000101 8 2 16 5 F 10 101 0 6 1 6
K 01001011 8 2 16 6 B 10 110 0 6 1 6
spasi 00100000 8 2 16 7 I 10 111 0 6 1 6
F 01000110 8 1 8 8 R 11 1000 0 7 1 7
B 01000010 8 1 8 9 D 11 1001 0 7 1 7
I 01001001 8 1 8 10 S 11 1010 0 7 1 7
R 01010010 8 1 8 11 U 11 1011 0 7 1 7
D 01000100 8 1 8 12 M 11 1100 0 7 1 7
S 01010011 8 1 8 81
Total
U 01010101 8 1 8 bit
M 01001101 8 1 8
Total 144 Bit
Berdasarkan pada p roses kompresi menggunakan
algoritma Elias Omega Code tabel 3.4 di atas, maka
Berdasarkan apda tabel 2 di atas, satu karakter terdiri untuk mendapakan karakter baru hasil kompresi,
dari 8 bit. Sehingga dengan jumlah karakter sebanyak digabungkan nilai kode Elias Omega Code yang
18 karakter dikalikan dengan 8 bit, maka total berurutan dengan karakter sampel awal yaitu "FEBIKA
keseluruhan ukuran karakter adalah 144 bit. Setelah RADA KESUMA". Contohnya karakter "F"
nilai bit didapatkan dari semua karakter, selanjutnya mendapatkan nilai kode Elias Omega Code pada tabel
adalah melakukan kompresi pertama menggunakan 3.4 yaitu "101010". Proses selanjutnya dilakukan
algoritma Elias Omega Code. kompresi dilakukan dengan cara yang seperti tabel di bawah ini.
dengan mengalikan nilai frekuensi dari karakter yang
muncul dengan nilai frekuensi bit dari algoritma Elias Tabel 5. Susunan Bit Baru Kompresi Pertama
Omega Codes. Adapun untuk mendapat nilai bit Kode Elias
No Karakter
algoritma Elias Omega Codes adalah sebagai berikut: Omega Code
a) Inisialisasikan code_so_far = 0. b) Jika n = 1, maka 1 F 101010
stop (proses berhenti). Jika tidak, maka tambahkan 2 E 100
representasi binary dari n ke code_so_far. Asumsikan 3 B 101100
jumlah binary bit sebagai L (panjang digit bit). c) 4 I 101110
5 K 110
Ulangi langkah b hingga representasi binary dari L = 1
6 A 0
untuk menggunakan n. d) Dimisalkan jika n = 17 dan 7 Spasi 101000
code_so_far = 0. Ubahlah n ke dalam bentuk binary 8 R 1110000
menjadi n = 1710 = 100012 dengan L = 5. 9 A 0
Sehingga didapatkan kode nilai Elias Omega Code 10 D 1110010
sesuai dengan jumlah karakter yang akan dikompresi 11 A 0
adalah sebagai berikut. 12 Spasi 101000
13 K 110
Tabel 3. Kode Nilai Algoritma Elias Omega Code 14 E 100
15 S 1110100
N Kode Elias 16 U 1110110
1 0 17 M 1111000
2 10 0 18 A 0
3 11 0 Total 81 bit
4 10 100 0
Kemudian gabungan setiap nilai bit kode Elias Omega
5 10 101 0
Code dari atas ke bawah menjadi:
01010001 101010 0 | 00
0 170 3 1 3
10
11000001 010110 0 | 01
1 89 3 1 3
11001001 01
011101 0 | 10
01000110 2
10
118 3 1 3
010100 0 | 11
10011101 3
01
81 3 1 3
00111011 4
110000
193
10 |
4 1 4
01 00
01111000 110010 10 |
5 201 4 1 4
01 01
00000000 010001 10 |
6 70 4 1 4
00000111 10 10
100111 10 |
Berhubungan tidak ada nilai yang sama, maka urutan 7
01
157
11
4 1 4
001110 10 |
susunan dimulai dari urutan awal (atas) hingga bawah. 8
11
59
000
5 1 5
Adapun bit hasil kompresi pertama yang telah disusun 011110
110 |
9 120 001 6 1 6
dapat dilihat pada tabel di bawah ini : 00
000000 110 |
10 0 010 6 1 6
Tabel 6. Urutan Nilai Hasil Kompresi Pertama 00
000001 110 |
Nilai Bit * 11 7 011 6 1 6
Binner Bit Frekuensi 11
Desimal Frek Total 51 bit
10101010 170 8 1 8
01011001 89 8 1 8 Berdasarkan pada proses kompresi kedua
01110110 118 8 1 8
01010001 81 8 1 8 menggunakan algoritma Golomb Rice tabel 3.8 di atas,
11000001 193 8 1 8 maka untuk mendapakan karakter baru hasil kompresi,
11001001 201 8 1 8 digabungkan nilai kode Golomb Rice K=2 yang
01000110 70 8 1 8 berurutan dengan karakter atau nilai desimal binner
10011101 157 8 1 8
00111011 59 8 1 8 yaitu "170, 89, 118, 81, 193, 201, 70, 157, 59, 120, 0,
01111000 120 8 1 8 7". Contohnya nilai pertama adalah "170" mendapatkan
00000000 0 8 1 8 nilai kode Golomb Rice K=2 pada tabel 3.8 yaitu "000".
00000111 7 8 1 8 Proses selanjutnya dilakukan dengan cara yang seperti
Total 96 Bit
tabel di bawah ini :
Total bit hasil kompresi pertama adalah 96 bit. 96 bit
Tabel 9. Susunan Bit Baru Kompresi Kedua
ini akan dikompresi kembali menggunakan algoritma
Golomb Rice. Kompresi dilakukan dengan mengalikan No Desimal Kode Golomb Rice
nilai frekuensi dari setiap nilai biner yang muncul 1 170 0 | 00
dengan nilai frekuensi bit dari algoritma Golomb Rice. 2 89 0 | 01
5. KESIMPULAN
Gambar 8. Informasi file teks Berdasarkan pada gambar 11 di atas, proses
kompresi file teks berhasil dilakukan menggunakan
Berdasarkan pada gambar 4.3 di atas, untuk algoritma Elias Omega Codes dan Golomb Rice.
memulai proses kompresi user hanya tinggal menekan a. Proses Kompresi file teks berhasil dilakukan
button KOMPRESI seperti gambar di bawah ini. menggunakan dua algoritma yaitu Elias Omega Codes
dan Golomb Rice.
b. Pada file teks hasilkompresi mengalami perubahan
ukuran yang signifikan. Rata2 space saving yang
didapatkan lebih dari 50%.
c. Waktu yang dibutuhkan untuk proses kompresi file tesk
bervariasi. Hal ini dipengaruhi oleh panjangnya
karakter file yang diinputkan.
Daftar Pustaka
[1] G.E Blelloch, Introduction To Data Compression. Carnegie
Mellon University, 2013
[2] K. Sayood, Introduction To Data Compression Third Edition.
Morgan Kaufman Publishers : San Fransisco, 2006
[3] D. Salomon dan M. Giovanni, Handbook of Data Compression.
5th Edition. Springer: London : 12, 2010
[4] D. Salomon, Data Compression Fourth Edition. London: Springer,
Gambar 9. Proses Kompresi Elias Omega code 2007
Berdasarkan pada gambar 9 proses kompresi
pertama dilakukan dengan algoritma Elias Omega Code,
sehingga dihasilkan karakter kompresi pertama, kemudian
dilanjutkan menggunakan algoritma Golomb Rice seperti
gambar di bawah ini.