34
3.3.2. Elias Delta Code
Langkah-langkah kompresi dengan algoritma Elias Delta Code, dapat dilihat pada gambar 3.10 di bawah ini:
Gambar 3.10. Diagram Kompresi Algoritma Elias Delta Code Masukkan File
Teks
Pembacaan Scanning Isi File
Bentuk Peta Kode Karakter dan Frekuensi Kemunculan
Tiap Karakter
Bentuk Tabel Kode Elias Delta
Ganti Karakter Pada File Sesuai dengan Tabel Kode
Simpan Hasil ke File Output
Generate Kode Elias Delta ke ASCII
Timer Stop Timer Start
Sort Z-A
Rasio Kompresi Space Saving
Kecepatan Kompresi
Universitas Sumatera Utara
35
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.4 di bawah ini:
Universitas Sumatera Utara
36
Tabel 3.4. Hasil Pengurutan Karakter Set Kompresi Kode Elias Delta 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 Delta. Untuk kode-kode yang terbentuk pada tabel kode Elias Delta dapat dilihat pada tabel 2.3.
Setelah itu karakter-karakter yang terdapat pada file dokumen yang akan dikompresi diganti dengan kode yang terdapat pada tabel kode Elias Delta. Setelah diganti, hitung
jumlah bit untuk tiap karakter. Untuk hasil pergantian karakter pada file dokumen dengan kode Elias Delta dapat dilihat pada tabel 3.5 di bawah ini:
Universitas Sumatera Utara
37
Tabel 3.5. Penggantian Karakter Dengan Kode Elias Delta No
Karakter Frekuensi
Karakter Kode Elias
Gamma Bit
Frekuensi x Bit
1 A
8 1
1 8
2 SPASI
6 0100
4 24
3 K
4 0101
4 16
4 N
4 01100
5 20
5 D
3 01101
5 15
6 E
3 01110
5 15
7 I
3 01111
5 15
8 G
2 00100000
8 16
9 L
2 00100001
8 16
10 M
2 00100010
8 16
11 O
2 00100011
8 16
12 S
2 00100100
8 16
13 H
1 00100101
8 8
14 J
1 00100110
8 8
15 P
1 00100111
8 8
16 W
1 001010000
9 9
Total Char 45
Total Bit 226
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.11 di bawah ini:
Gambar 3.11. String Bit Kode Elias Delta Pada dokumen.txt 00100100011100101011100010000100100011001000100
01001110010001101010100010110010100001011001011 00010000100000100100110100100101010000100100011
10011011011000010000001000010001010110001101011 11010001101011110100010110010000101111
Universitas Sumatera Utara
38
Selanjutnya adalah melakukan generate string bit kode Elias Delta 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.12 dan
gambar 3.13 di bawah ini:
Gambar 3.12. Pemeriksaan Panjang String Bit Kode Elias Delta
Gambar 3.13. Hasil Penambahan Pada String Bit Kode Elias Delta 00100100011100101011100010000100100011001000100
01001110010001101010100010110010100001011001011 00010000100000100100110100100101010000100100011
10011011011000010000001000010001010110001101011 11010001101011110100010110010000101111
Jumlah Total 226 bit N = MOD 226,8 = 2
L = 7 – 2 + “1” = 000001
Bit Akhir = 9 – n 9 – 2 = 7 00000111
00100100011100101011100010000100100011001000100 01001110010001101010100010110010100001011001011
00010000100000100100110100100101010000100100011 10011011011000010000001000010001010110001101011
11010001101011110100010110010000101111000001000 00111
Universitas Sumatera Utara
39
Hasil generate kode Elias Delta menjadi kode ASCII dapat dilihat pada gambar 3.14 di bawah ini :
Gambar 3.14. Hasil Generate String Bit Kode Elias Delta Ke ASCII
Hasil generate pada gambar 3.14 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 = 226
� � � � � =
x =
. ��� ��� � =
− . = .
00100100 01110010 10111000 10000100 10001100 10001000 10011100 10001101 01010001 01100101
00001011 00101100 01000010 00001001 00110100 10010101 00001001 00011100 11011011 00001000
00010000 10001010 11000110 10111101 00011010 11110100 01011001 00001011 11000001 00000111
11111111
Universitas Sumatera Utara
40
Langkah-langkah dekompresi dengan algoritma Elias Delta Code, dapat dilihat pada gambar 3.15 di bawah ini.
Gambar 3.15. Diagram Dekompresi Algoritma Elias Delta 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.16 di bawah
ini: Generate Isi File Ke
Binary
Ganti String Bit Sesuai Dengan Tabel Kode Elias
Delta
Simpan Hasil ke File Output
Timer Stop Timer Start
Kembalikan Ke String Bit Semula
Masukkan File Teks
Universitas Sumatera Utara
41
Gambar 3.16. Hasil Generate ASCII Ke Binary Kode Elias Delta 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.17 di bawah ini:
Gambar 3.17. Pengembalian Binary Ke String Bit Semula Kode Elias Delta 00100100011100101011100010000100100011001000100
01001110010001101010100010110010100001011001011 00010000100000100100110100100101010000100100011
10011011011000010000001000010001010110001101011 11010001101011110100010110010000101111000001000
00111
00100100011100101011100010000100100011001000100010011 10010001101010100010110010100001011001011000100001000
00100100110100100101010000100100011100110110110000100 00001000010001010110001101011110100011010111101000101
10010000101111 00000100000111
desimal n = 7 7 + n 7 + 7 = 14
00100100011100101011100010000100100011001000100 01001110010001101010100010110010100001011001011
00010000100000100100110100100101010000100100011 10011011011000010000001000010001010110001101011
11010001101011110100010110010000101111
Universitas Sumatera Utara
42
Setelah diperoleh string bit seperti semula, langkah selanjutnya adalah dengan menggantikan kode pada string bit berdasarkan Tabel 3.5 agar diperoleh isi dokumen
seperti sebelum mengalami kompresi. Berikut adalah langkah-langkah untuk mengganti string bit berdasarkan tabel kode Elias Delta:
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. Langkah ke-1 dan langkah ke-2 merupakan langkah-langkah untuk
mendapatkan kode Elias Gamma. Nyatakan hasil pada langkah ke-1 dan langkah ke-2 dengan M. Pada Elias Delta diperlukan langkah tambahan.
3. Lakukan pembacaan M sebagai angka desimal. Nyatakan angka desimal
sebagai L. 4.
Lanjutkan pembacaan string bit setelah M sebanyak L-1. Nyatakan hasilnya sebagai C.
5. Gabungkan hasil pembacaan M dan C lalu ganti dengan karakter sesuai
dengan tabel 3.5. Hasil penggantian string bit berdasarkan tabel 3.5 atau pun hasil dekompresi
dengan kode Elias Delta dapat dilihat pada gambar 3.18 di bawah ini:
Gambar 3.18. Hasil Dekompresi Kode Elias Delta
Hasil dekompresi pada gambar 3.18 akan disimpan pada file output lalu Timer akan berhenti melakukan pencatatan waktu. Hasil pencatatan waktu oleh Timer akan
dijadikan sebagai pembanding kecepatan dekompresi.
00100100011100101011100010000100100011001000100 01001110010001101010100010110010100001011001011
00010000100000100100110100100101010000100100011 10011011011000010000001000010001010110001101011
11010001101011110100010110010000101111
SEKELOMPOK KAWANAN GAJAH SEDANG MANDI DI KALI
Universitas Sumatera Utara
43
3.3.3. Levenstein Code