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
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
Langkah-langkah kompresi dengan algoritma Levenstein Code, dapat dilihat pada gambar 3.19 di bawah ini.
Gambar 3.19. Diagram Kompresi Algoritma Levenstein Code Masukkan File
Teks
Pembacaan Scanning Isi File
Bentuk Peta Kode Karakter dan Frekuensi Kemunculan
Tiap Karakter
Bentuk Tabel Kode Levenstein
Ganti Karakter Pada File Sesuai dengan Tabel Kode
Simpan Hasil ke File Output
Generate Kode Levenstein ke ASCII
Timer Stop Timer Start
Sort Z-A
Rasio Kompresi Space Saving
Kecepatan Kompresi
Universitas Sumatera Utara
44
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.6 di bawah ini.
Universitas Sumatera Utara
45
Tabel 3.6. Hasil Pengurutan Karakter Set Kompresi Kode Levenstein 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 Levenstein. Untuk kode-kode yang terbentuk pada tabel kode Levenstein dapat dilihat pada tabel 2.5.
Setelah itu karakter-karakter yang terdapat pada file dokumen yang akan dikompresi diganti dengan kode yang terdapat pada tabel kode Levenstein. Setelah diganti, hitung
jumlah bit untuk tiap karakter. Untuk hasil pergantian karakter pada file dokumen dengan kode Levenstein dapat dilihat pada tabel 3.7 di bawah ini:
Universitas Sumatera Utara
46
Tabel 3.7. Penggantian Karakter Dengan Kode Levenstein No
Karakter Frekuensi
Karakter Kode
Levenstein Bit
Frekuensi x Bit
1 A
8 1
8 2
SPASI 6
10 2
12 3
K 4
1100 4
16 4
N 4
1101 4
16 5
D 3
1110000 7
21 6
E 3
1110001 7
21 7
I 3
1110010 7
21 8
G 2
1110011 7
14 9
L 2
11101000 8
16 10
M 2
11101001 8
16 11
O 2
11101010 8
16 12
S 2
11101011 8
16 13
H 1
11101100 8
8 14
J 1
11101101 8
8 15
P 1
11101110 8
8 16
W 1
11101111 8
8 Total Char
45 Total Bit
225
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.20 di bawah ini:
Gambar 3.20. String Bit Kode Levenstein Pada dokumen.txt 11101011111000111001110001111010001110101011101
00111101110111010101100101100011101111011010110 11011100110111011010111011001011101011111000111
10000011011110011101110100101101111000011100101 0111000011100101011000111010001110010
Universitas Sumatera Utara
47
Selanjutnya adalah melakukan generate string bit kode Levenstein 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.21 dan
gambar 3.22 di bawah ini:
Gambar 3.12. Pemeriksaan Panjang String Bit Kode Levenstein
Gambar 3.13. Hasil Penambahan Pada String Bit Kode Levenstein 11101011111000111001110001111010001110101011101
00111101110111010101100101100011101111011010110 11011100110111011010111011001011101011111000111
10000011011110011101110100101101111000011100101 0111000011100101011000111010001110010
Jumlah Total 225 bit N = MOD 225,8 = 1
L = 7 – 1 + “1” = 0000001
Bit Akhir = 9 – n = 8 00001000
11101011111000111001110001111010001110101011101 00111101110111010101100101100011101111011010110
11011100110111011010111011001011101011111000111 10000011011110011101110100101101111000011100101
01110000111001010110001110100011100100000001000 01000
Universitas Sumatera Utara
48
Hasil generate kode Levenstein menjadi kode ASCII dapat dilihat pada gambar 3.23 di bawah ini:
Gambar 3.23. Hasil Generate String Bit Kode Levenstein Ke ASCII
Hasil generate pada gambar 3.23 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 = 225
� � � � � =
x =
. ��� ��� � =
− . = .
11101011 11100011 10011100 01111010 00111010 10111010 01111011 10111010 10110010 11000111
01111011 01011011 01110011 01110110 10111011 00101110 10111110 00111100 00011011 11001110
11101001 01101111 00001110 01010111 00001110 01010110 00111010 00111001 00000001 00001000
00000000
Universitas Sumatera Utara
49
Langkah-langkah dekompresi dengan algoritma Levenstein Code, dapat dilihat pada gambar 3.24 di bawah ini.
Gambar 3.24. Diagram Dekompresi Algoritma Levenstein 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.25 di bawah
ini: Masukkan File
Teks
Generate Isi File Ke Binary
Ganti String Bit Sesuai Dengan Tabel Kode
Levenstein
Simpan Hasil ke File Output
Timer Stop Timer Start
Kembalikan Ke String Bit Semula
Universitas Sumatera Utara
50
Gambar 3.25. Hasil Generate ASCII Ke Binary Kode Levenstein 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.26 di bawah ini:
Gambar 3.26. Pengembalian Binary Ke String Bit Semula Kode Levenstein 11101011111000111001110001111010001110101011101
00111101110111010101100101100011101111011010110 11011100110111011010111011001011101011111000111
10000011011110011101110100101101111000011100101 01110000111001010110001110100011100100000001000
01000
11101011111000111001110001111010001110101011101001111 01110111010101100101100011101111011010110110111001101
11011010111011001011101011111000111100000110111100111 01110100101101111000011100101011100001110010101100011
1010001110010 000000100001000
desimal n = 8 7 + n 7 + 8 = 15
11101011111000111001110001111010001110101011101 00111101110111010101100101100011101111011010110
11011100110111011010111011001011101011111000111 10000011011110011101110100101101111000011100101
0111000011100101011000111010001110010
Universitas Sumatera Utara
51
Setelah diperoleh string bit seperti semula, langkah selanjutnya adalah dengan menggantikan kode pada string bit berdasarkan Tabel 3.7 agar diperoleh isi dokumen
seperti sebelum mengalami kompresi. Berikut adalah langkah-langkah untuk mengganti string bit berdasarkan tabel kode Levenstein:
1. Lakukan perhitungan terhadap jumlah angka “1” sampai “0” ketemu.
Nyatakan angka “1” dengan C. 2.
Jika hasil perhitungannya adalah C=0, makanya nilainya adalah “0”. Lalu berhenti dan gantikan kode bit dengan huruf pada tabel 3.7. Jika tidak
lanjutkan ke langkah ketiga. 3.
Jika jumlah C=1 ambil bit sebanyak 2 dari posisi awal pembacaan. 4.
Jika jumlah C=2 ambil bit sebanyak 4 dari posisi awal pembacaan. 5.
Jika jumlah C=3 dan bit di depan “0” yang dijumpai adalah “0” ambil bit sebanyak 7 dari posisi awal pembacaan.
6. Jika jumlah C=3 dan bit di depan “0” yang dijumpai adalah “1” ambil bit
sebanyak 8 dari posisi awal pembacaan. 7.
Selain itu ambil bit sebanyak 12 dari posisi awal pembacaan. Lalu gantikan dengan huruf berdasarkan tabel 3.7.
Hasil penggantian string bit berdasarkan tabel 3.7 atau pun hasil dekompresi dengan kode Levenstein dapat dilihat pada gambar 3.27 di bawah ini:
Gambar 3.27. Hasil Dekompresi Kode Levenstein
11101011111000111001110001111010001110101011101 00111101110111010101100101100011101111011010110
11011100110111011010111011001011101011111000111 10000011011110011101110100101101111000011100101
0111000011100101011000111010001110010
SEKELOMPOK KAWANAN GAJAH SEDANG MANDI DI KALI
Universitas Sumatera Utara
52
Hasil dekompresi pada gambar 3.27 akan disimpan pada file output lalu Timer akan berhenti melakukan pencatatan waktu. Hasil pencatatan waktu oleh Timer akan
dijadikan sebagai pembanding kecepatan dekompresi.
3.4. Alat Penelitian
Pada penelitian ini digunakan alat penelitian berupa: a.
Perangkat keras Laptop DELL 1.
Processor IntelR CoreTM i3 CPU M330 2.13GHz 2.
RAM 2 GB DDR3 3.
Harddisk 320 GB 4.
Monitor dengan resolusi 1366 x 768 pixel 32 bit true color 5.
Mouse dan keyboard b.
Perangkat lunak 1.
Sistem Operasi Windows 7 Windows 7 adalah jajaran sistem operasi berbasis grafis yang dibuat oleh
Microsoft untuk digunakan pada komputer pribadi, yang mencakup komputer rumah, desktop bisnis, laptop, dan MediaCenter. Windows 7
merupakan sistem dasar untuk dapat menjalankan berbagai perangkat lunak yang digunakan pada penelitian ini.
2. Microsoft Visual Basic .Net
Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak diatas sistem .NET Framework,
dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, aplikasi web
berbasis ASP.NET, dan juga aplikasi command-line. Alat ini diperoleh secara terpisah dari beberapa produk lainnya seperti Microsoft Visual
C++, Visual C, atau Visual J, atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET.
Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari
Universitas Sumatera Utara
53
Microsoft Visual Basic versi sebelumnya yang diimplementasikan diatas .NET Framework. Peluncurannya mengundang kontroversi, mengingat
banyak sekali perubahan yang dilakukan oleh Microsoft dan versi baru ini tidak kompatibel dengan versi terdahulu.
Beberapa versi Visual Basic .NET antara lain : 1.
Visual Basic .NET 2002 VB 7.0 2.
Visual Basic .NET 2003 VB 7.1 3.
Visual Basic .NET 2005 VB 8.0 4.
Visual Basic 2008 Visual Basic 9.0 Apakah Visual Basic .NET dianggap sebagai sebuah versi Visual Basic
atau benar-benar bahasa yang berbeda merupakan sebuah topik perdebatan yang hangat. Hal ini dikarenakan sintaksis bahasa Visual Basic .NET tidak
mengalami perubahan yang sangat drastis, dan hanya menambahkan beberapa dukungan fitur baru seperti penanganan eksepsi secara
terstruktur dan eskpresi yang bisa di-short-circuit-kan. Dua perubahan tipe dan pun terjadi saat berpindah ke Visual Basic .NET. Dibandingkan Visual
Basic 6.0, tida data integer yang dimiliki oleh Visual Basic .NET memiliki panjang dua kali lebih panjang dari 16 bit menjadi 32 bit. Selain itu, tipe
data long juga sama-sama berubah menjadi dua kali lebih panjang dari 32 bit menjadi 64 bit. Bilangan bulat 16-bit dalam Visual Basic .NET
dinamakan dengan Short. Lagi pula, desainer GUI Windows Forms yang terdapat di dalam Visual Studio .NET atau Visual Basic .NET memiliki
gaya yang sangat miirp dengan editor form Visual Basic klasik. Jika sintaksis tidak banyak yang berubah, lain halnya dengan semantik,
yang berubah secara signifikan. Visual Basic .NET merupakan sebuah bahasa pemrograman yang mendukung fitur Bahasa Pemrograman
Berorientasi Objek secara penuh, karena memang didukung oleh arsitektur Microsoft .NET Framework, yang mengandung kombinasi
dari Common Language Runtime dan Base Class Library. Visual Basic klasik, hanya merupakan sebuah bahasa pemrogaman berbasis objek, yang
berjalan di atas arsitektur Component Object Model COM.
Universitas Sumatera Utara
54
Perubahan ini telah mengubah banyak asumsi tentang hal yang benar yang harus dilakukan dengan mempertimbangkan performa dan kemudahan
untuk dipelihara. Beberapa fungsi dan pustaka perangkat lunak, yang ada di dalam Visual Basic klasik, kini tidak terdapat di dalam Visual Basic
.NET, mungkin masih banyak yang masih terdapat di dalam Visual Basic .NET, tapi tidak seefisien apa yang ditawarkan oleh .NET Framework.
Bahkan jika program Visual Basic klasik bisa dikompilasi dengan benar, sebagian besar program Visual Basic klasik harus melalui beberapa
proses refactoring untuk mengadopsi fitur bahasa baru secara keseluruhan. Dokumentasi untuk ini pun tersedia di situs Microsoft.
Universitas Sumatera Utara
55
BAB 4 HASIL DAN PEMBAHASAN
Pada bagian ini, penulis menyajikan hasil dan pembahasan penelitian mengenai analisa algoritma Elias Gamma Code, Elias Delta Code dan Levenstein Code terhadap
data teks berdasarkan jumlah karakter yang berbeda-beda pada dokumen yang akan dikompres. Dari proses kompresi terhadap data teks akan diketahui rasio kompresi,
Space Saving serta kecepatan waktu kompresi.
4.1. Hasil Kompresi Algoritma Elias Gamma Code
Terdapat 5 buah teks dokumen dengan jumlah karakter yang berbeda-beda akan dikompresi menggunakan metode Elias Gamma Code. Hasil kompresi akan
dikembalikan seperti semula untuk mengetahui waktu yang diperlukan untuk melakukan proses dekompresi.
Gambar 4.1 berikut ini menunjukkan hasil kompresi teks dokumen dengan jumlah karakter di bawah 10.000 karakter yang dikompresi dengan menggunakan
kode Elias Gamma.
Gambar 4.1. Proses Kompresi Dokumen U10k.txt Dengan Kode Elias Gamma
Universitas Sumatera Utara