24
sama dengan riset pustaka. Historical research dilakukan dengan membaca buku- buku dan literatur serta mengikuti pola dari literatur maupun buku yang dibaca.
3.2. Data Yang Digunakan
Pada penelitian ini penulis akan menggunakan file dokumen teks yang terdapat huruf kecil, huruf besar kapital, tanda baca dan angka numerik dengan jumlah karakter
yang berbeda-beda. Untuk file dokumen yang digunakan dalam proses kompresi dapat dilihat pada tabel 3.1 berikut.
Tabel 3.1. Jenis File Dokumen Yang Akan Dikompresi No
Nama Dokumen Variasi Teks
1 Dokumen U10k.txt
File teks dengan jumlah karakter di bawah 10.000 2
Dokumen U20k.txt File teks dengan jumlah karakter di bawah 20.000
3 Dokumen U30k.txt
File teks dengan jumlah karakter di bawah 30.000 4
Dokumen U45k.txt File teks dengan jumlah karakter di bawah 45.000
5 Dokumen U60k.txt
File teks dengan jumlah karakter di bawah 60.000
3.3. Analisa Data
3.3.1. Elias Gamma Code
Langkah-langkah kompresi dengan algoritma Elias Gamma Code, dapat dilihat pada gambar 3.1 berikut.
Universitas Sumatera Utara
25
Gambar 3.1. Diagram Kompresi Algoritma Elias Gamma Code Bentuk Tabel Kode
Elias Gamma Masukkan File
Teks
Pembacaan Scanning Isi File
Bentuk Peta Kode Karakter dan Frekuensi Kemunculan
Tiap Karakter
Ganti Karakter Pada File Sesuai dengan Tabel Kode
Simpan Hasil ke File Output
Generate Kode Elias Gamma ke ASCII
Timer Stop Timer Start
Sort Z-A
Rasio Kompresi Space Saving
Kecepatan Kompresi
Universitas Sumatera Utara
26
Langkah pertama dalam melakukan kompresi file adalah dengan memasukkan file teks dokumen.txt. Isi file dokumen.txt adalah SEKELOMPOK KAWANAN
GAJAH SEDANG MANDI DI KALI. Setelah file teks diterima maka Timer akan mulai melakukan pencatatan waktu yang diperlukan untuk melakukan proses
kompresi mulai awal hingga selesai. Langkah selanjutnya adalah dengan melakukan pembacaan isi file scanning.
Pada tahap ini akan dilakukan pembentukan karakter set yaitu karakter-karakter yang terdapat pada isi file. Setelah karakter set diperoleh maka frekuensi kemunculan untuk
tiap-tiap karakter akan dihitung. Berikut adalah hasil scanning terhadap file dokumen.txt:
Karakter set = {S, E, K, L, O, M, P, SPASI, A, W, N, G, J, H, D, I} Frekuensi Karakter =
S = 2
A = 8
E = 3
W = 1
K = 4
N = 4
L = 2
G = 2
O = 2
J = 1
M = 2
H = 1
P = 1
D = 3
SPASI = 6
I = 3
Setelah karakter set dan frekuensi kemunculan tiap karakter diketahui maka selanjutnya karakter set akan diurutkan berdasarkan frekuensi kemunculannya mulai
dari karakter dengan frekuensi kemunculan terbesar ke karakter dengan frekuensi kemunculan terkecil. Jika terdapat lebih dari satu karakter dengan frekuensi
kemunculan yang sama maka diurutkan berdasarkan abjad. Untuk hasil pengurutan karakter set dan frekuensi karakter dapat dilihat pada tabel 3.2 di bawah ini.
Universitas Sumatera Utara
27
Tabel 3.2. Hasil Pengurutan Karakter Set Kompresi Kode Elias Gamma No
Karakter Frekuensi Karakter
1 A
8 2
SPASI 6
3 K
4 4
N 4
5 D
3 6
E 3
7 I
3 8
G 2
9 L
2 10
M 2
11 O
2 12
S 2
13 H
1 14
J 1
15 P
1 16
W 1
Langkah selanjutnya adalah dengan membentuk tabel kode Elias Gamma. Untuk kode-kode yang terbentuk pada tabel kode Elias Gamma dapat dilihat pada
tabel 2.1. Setelah itu karakter-karakter yang terdapat pada file dokumen yang akan dikompresi diganti dengan kode yang terdapat pada tabel kode Elias Gamma. Setelah
diganti, hitung jumlah bit untuk tiap karakter. Untuk hasil pergantian karakter pada file dokumen dengan kode Elias Gamma dapat dilihat pada tabel 3.3 di bawah ini:
Universitas Sumatera Utara
28
Tabel 3.3. Penggantian Karakter Dengan Kode Elias Gamma No
Karakter Frekuensi
Karakter Kode Elias
Gamma Bit
Frekuensi x Bit
1 A
8 1
1 8
2 SPASI
6 010
3 18
3 K
4 011
3 12
4 N
4 00100
5 20
5 D
3 00101
5 15
6 E
3 00110
5 15
7 I
3 00111
5 15
8 G
2 0001000
7 14
9 L
2 0001001
7 14
10 M
2 0001010
7 14
11 O
2 0001011
7 14
12 S
2 0001100
7 14
13 H
1 0001101
7 7
14 J
1 0001110
7 7
15 P
1 0001111
7 7
16 W
1 000010000
9 9
Total Char 45
Total Bit 203
Setelah diketahui kode untuk masing-masing karakter maka akan diperoleh sebuah string bit untuk dokumen.txt dengan isi dokumen adalah SEKELOMPOK
KAWANAN GAJAH SEDANG MANDI DI KALI seperti yang terlihat pada gambar 3.2 di bawah ini:
Gambar 3.2. String Bit Kode Elias Gamma Pada dokumen.txt 00011000011001100110000100100010110001010000111
10001011011010011100001000010010010010001000010 00100011101000110101000011000011000101100100000
10000100001010100100001010011101000101001110100 111000100100111
Universitas Sumatera Utara
29
Selanjutnya adalah melakukan generate string bit kode Elias Gamma pada dokumen.txt menjadi kode ASCII. Namun sebelum melakukan generate dilakukan
pemeriksaan terhadap panjang string bit dokumen.txt terlebih dahulu. Berikut adalah langkah-langkah dalam melakukan pemeriksaan terhadap panjang string bit :
1. Jika sisa bagi panjang string bit terhadap 8 adalah 0 maka tambahkan
00000001. Nyatakan dengan Bit Akhir. 2.
Jika sisa bagi panjang string bit terhadap 8 adalah n 1, 2, 3, 4, 5, 6, 7 maka tambahkan 0 sebanyak 7
– n +”1” di akhir string bit. Nyatakan dengan L. Lalu tambahkan bilangan biner dari 9 - n. Nyatakan dengan Bit
Akhir. Langkah-langkah pemeriksaan string bit dapat dilihat pada gambar 3.3. dan
gambar 3.4 di bawah ini:
Gambar 3.3. Pemeriksaan Panjang String Bit Kode Elias Gamma
Gambar 3.4. Hasil Penambahan Pada String Bit Kode Elias Gamma 00011000011001100110000100100010110001010000111
10001011011010011100001000010010010010001000010 00100011101000110101000011000011000101100100000
10000100001010100100001010011101000101001110100 111000100100111
Jumlah Total 203 bit N = MOD 203,8 = 3
L = 7 – 3 + “1” = 00001
Bit Akhir = 9 – n = 6 00000110
00011000011001100110000100100010110001010000111 10001011011010011100001000010010010010001000010
00100011101000110101000011000011000101100100000 10000100001010100100001010011101000101001110100
1110001001001110000100000110
Universitas Sumatera Utara
30
Hasil generate kode Elias Gamma menjadi kode ASCII dapat dilihat pada gambar 3.5 di bawah ini:
Gambar 3.5. Hasil Generate String Bit Kode Elias Gamma Ke ASCII
Hasil generate pada gambar 3.5 akan disimpan pada file output lalu Timer akan berhenti melakukan pencatatan waktu. Rasio kompresi dan space saving dari proses
kompresi yang
ditandai dengan
dimulainya perhitungan
waktu hingga
diberhentikannya waktu adalah sebagai berikut: Input Stream = 45 x 8 = 360
Output Stream = 203 � � �
� � = x
= .
��� ��� � = − . =
. 00011000 01100110 01100001 00100010 11000101
00001111 00010110 11010011 10000100 00100100 10010001 00001000 10001110 10001101 01000011
00001100 01011001 00000100 00100001 01010010 00010100 11101000 10100111 01001110 00100100
11100001 00000110
00000000 00000000 00000000 0000000
Universitas Sumatera Utara
31
Langkah-langkah dekompresi dengan algoritma Elias Gamma Code, dapat dilihat pada gambar 3.6 di bawah ini.
Gambar 3.6. Diagram Dekompresi Algoritma Elias Gamma Code
Langkah pertama dalam melakukan dekompresi file adalah dengan memasukkan file hasil kompresi. Saat file dimasukkan Timer akan mulai melakukan
pencatatan waktu yang dilanjutkan dengan melakukan generate terhadap isi file ke binary. Hasil generata isi file menjadi binary dapat dilihat pada gambar 3.7 di bawah
ini: Masukkan File
Teks
Generate Isi File Ke Binary
Ganti String Bit Sesuai Dengan Tabel Kode Elias
Gamma
Simpan Hasil ke File Output
Timer Stop Timer Start
Kembalikan Ke String Bit Semula
Universitas Sumatera Utara
32
Gambar 3.7. Hasil Generate ASCII Ke Binary Selanjutnya adalah dengan mengembalikan binary menjadi string bit semula.
Untuk mengembalikan binary menjadi string bit semula dapat dilakukan melalui langkah-langkah berikut ini:
1. Lakukan pembacaan pada 8 bit terakhir, hasil pembacaan berupa bilangan
desimal. Nyatakan hasil pembacaan dengan n. 2.
Hilangkan bit pada bagian akhir sebanyak 7 + n. Hasil pengembalian binary menjadi string bit semula dapat dilihat pada
gambar 3.8 di bawah ini:
Gambar 3.8. Pengembalian Binary Ke String Bit Semula Kode Elias Gamma 00011000011001100110000100100010110001010000111
10001011011010011100001000010010010010001000010 00100011101000110101000011000011000101100100000
10000100001010100100001010011101000101001110100 1110001001001110000100000110
00011000011001100110000100100010110001010000111 10001011011010011100001000010010010010001000010
00100011101000110101000011000011000101100100000 10000100001010100100001010011101000101001110100
1110001001001110000100000110
desimal n = 6 00011000011001100110000100100010110001010000111
10001011011010011100001000010010010010001000010 00100011101000110101000011000011000101100100000
10000100001010100100001010011101000101001110100 111000100100111
7 + n 7 + 6 = 13
Universitas Sumatera Utara
33
Setelah diperoleh string bit seperti semula, langkah selanjutnya adalah dengan menggantikan kode pada string bit berdasarkan Tabel 3.3 agar diperoleh isi dokumen
seperti sebelum mengalami kompresi. Berikut adalah langkah-langkah untuk mengganti string bit berdasarkan tabel kode Elias Gamma:
1. Lakukan pembacaan string bit dari awal hingga ketemu 1. Catat posisi
angka 1 dan nyatakan sebagai p. Nyatakan jumlah 0 dengan n. 2.
Lanjutkan pembacaan string bit setelah angka 1 sebanyak n. 3.
Ganti kode hasil pembacaann dengan karakter berdasarkan tabel 3.3. Hasil penggantian string bit berdasarkan tabel 3.3. ataupun hasil dekompresi
dengan kode Elias Gamma dapat dilihat pada gambar 3.9. di bawah ini:
Gambar 3.9. Hasil Dekompresi Kode Elias Gamma
Hasil dekompresi pada gambar 3.9 akan disimpan pada file output lalu Timer akan berhenti melakukan pencatatan waktu. Hasil pencatatan waktu oleh Timer akan
dijadikan sebagai pembanding kecepatan dekompresi.
00011000011001100110000100100010110001010000111 10001011011010011100001000010010010010001000010
00100011101000110101000011000011000101100100000 10000100001010100100001010011101000101001110100
111000100100111
SEKELOMPOK KAWANAN GAJAH SEDANG MANDI DI KALI
Universitas Sumatera Utara
34
3.3.2. Elias Delta Code