Algoritma Boldi- Vigna ζ Implementasi Algoritma Knapsack dan Algoritma Boldi-Vigna (ζ4) Pada Keamanan dan Kompresi File Teks

2.4 Algoritma Boldi- Vigna ζ

4 Z eta ζ kode juga dikenal sebagai Boldi-Vigna code, diperkenalkan oleh Paolo Boldi dan Sebastiano Vigna sebagai keluarga Variable-Length Code yang merupakan pilihan terbaik untuk kompresi. Dimulai dengan hukum Zipf, seorang kuasa hukum empiris [Zipf 07] diperkenalkan oleh Linguis George K. Zipf. Menyatakan bahwa frekuensi setiap kata dalam bahasa alami kira-kira berbanding terbalik dengan posisinya dalam tabel frekuensi. Boldi-Vigna kode zeta dimulai dengan bilangan bulat k positif yang menjadi menyusut oleh Faktor kode. Himpunan semua bilangan bulat positif dibagi menjadi [2 , 2 k - 1], [2 k , 2 2k - 1], [2 2k , 2 3k - 1], dan secara umum [2 hk , 2 h + 1 k - 1]. Panjang setiap interval adalah 2 h + 1 k - 2 hk Salomon, 2007. Diberikan interval [0, z-1] dan sebuah integer x di interval ini, pertama kita hitung s =[ log 2 z]. Jika x 2 s - z, dikodekan sebagai unsur xth elemen pada interval ini, pada s - 1 bit. Jika tidak, maka dikodekan sebagai x - z - 2 s th elemen pada interval di s bit. Dengan latar belakang ini, di sini dibahas bagaimana kode zeta dibangun. Mengingat bilangan bulat n akan dikodekan, kami mempekerjakan k untuk menentukan interval di mana n berada. Salah satu yang diketahui, nilai-nilai h dan k yang digunakan dengan cara yang sederhana untuk membangun kode zeta n dalam dua bagian, nilai h + 1 di unary sebagai nol h diikuti dengan 1, diikuti oleh minimal kode biner dari n - 2 hk dalam interval [0, 2 h + 1 k - 2 hk - 1] Salomon, 2007. Contoh: Diberikan k = 3 dan n = 16, kita tentukan dulu n yang terletak di interval [2 3 , 2 6 -1], yang sesuai dengan h = 1. Dengan demikian, h + 1 = 2 dan kode unary dari 2 adalah 01. Kode biner minimal 16 - 2 3 = 8 dibangun dalam langkah-langkah berikut. Panjang z dari interval [2 3 , 2 6 -1] adalah 56. Ini berarti bahwa s =[ log 2 56] = 6. Nilai 8 akan dikodekan 8 = 26 - 56, sehingga dikodekan sebagai x - z - 2 s = 8- 56-2 6 = 16 dalam enam bit, sehingga 010000. Dengan demikian, kode ζ 3 dari n = 16 adalah 010000111 Salomon, 2007. Contoh daftar kode Boldi-Vigna ζ 4 dapat dilihat pada tabel 2.1 dibawah ini : Universitas Sumatera Utara Tabel 2.1 Kode Daftar Boldi-Vigna ζ 4 Contoh : Diberikan string = “ERNA LESTARI” Σ = { E, R, N, A, sp, L, S, T, I } , dengan sp = spasi Maka dibuat sebuah tabel untuk menghitung bit setelah di kompresi. Tabel bisa dilihat pada tabel 2.2 dibawah ini : Tabel 2.2 Kompresi Dengan Boldi-Vigna ζ 4 Σ Freq Boldi- Vigna ζ 4 Bit FreqBit E 2 1000 4 8 R 2 10010 5 10 A 2 10011 5 10 N 1 10100 5 5 Sp 1 10101 5 5 L 1 10110 5 5 S 1 10111 5 5 T 1 11000 5 5 I 1 11001 5 5 Jumlah Bit 58 Bit n ζ 4 1 1000 2 10010 3 10011 4 10100 5 10101 6 10110 7 10111 8 11000 9 11001 10 11010 11 11011 12 11100 13 11101 14 11110 15 11111 16 010000111 Universitas Sumatera Utara 2.5 Parameter pembanding Ada 3 parameter pembanding yang digunakan dalam peneltiaan ini, yaitu Ratio of Compression R C , Compression Ratio C R , dan Redudancy Rd. 1. Ratio of Compression Rc Ratio of Compression Rc adalah perbandingan antara ukuran data sebelum dikompresi dengan ukuran data setelah dikompresi Salomon, 2007. � = …………...……………1 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, 2007. � = � ...…………….. 2 3. Redudancy 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, 2007. � = − � …………………………………..…...... 3

2.6 Penelitian Yang Relevan