LANDASAN TEOR
2. Kriptografi Asimetr
2.5 Definisi Kompres
Kompresi data adalah proses yang dapat mengubah sebuah aliran data masukan (sumber data atau data asli) ke dalam aliran data yang lain yang memiliki ukuran yang lebih kecil (Salomon, 2007).
Penggunaan kompresi data dapat mengurangi ukuran dari sebuah file yang sangat berguna ketika memproses, menyimpan, dan mengirim sebuah file dengan ukuran yang besar. Jika algoritma kompresi yang digunakan bekerja dengan baik, seharusnya ada perbedaan yang signifikan antara file asli dan file yang telah dikompresi. Secara garis besar terdapat 2 buah penggolongan algoritma kompresi, yaitu:
1. Kompresi Loseless
Kompresi Loseless membangun kembali data asli yang sama persis dengan data yang di kompresi. Selama melakukan proses kompresi, tidak ada informasi yang hilang dari data tersebut. Contoh aplikasi lossless compression : WINRAR dan WINZIP
Contoh format file lossless compression : *.zip, *.rar, document file (*.doc, *.xls, *.ppt), file executable (*.exe). Gambar dibawah ini sebagai contoh proses kompresi dan dekompresi Loseless.
Pada gambar 2.6 merupakan visualisasi algoritma kompresi dan dekompresi
loseless.
BBAAB 0010100
0010100 BBAAB
Gambar 2.6 Proses algoritma kompresi dan dekompresi loseless
Pada contoh diatas, BBAAB dikompresi lalu menghasilkan bit angka 0010100. Hasil kompresi tersebut kemudian didekompresi kembali untuk menghasilkan data yang sama dengan data awal yaitu BBAAB. Tidak ada kekurangan data dalam proses kompresi Loseless tersebut.
2. Kompresi Lossy adalah suatu metode untuk mengkompresi data dan mendekompresinya dimana data yang dikompresi mungkin berbeda dari data aslinya, tetapi perbedaan itu cukup dekat. Metode ini paling sering digunakan untuk kompresi data multimedia (audio file dan gambar). Gambar 2.7 dibawah ini sebagai contoh proses kompresi dan dekompresi Lossy.
2,78128 00001110000010
00001110000010 2,78
Gambar 2.7 Proses kompresi dan dekompresi lossy
Algoritma Kompresi Algoritma Dekompresi Algoritma Kompresi Algoritma Dekompresi
Ada beberapa angka dari bilangan 2,78128 yang tidak begitu mempunyai peranan yang penting dalam penyimpanan data, sehingga dapat hilang selama proses kompresi. Data seperti gambar, multimedia, video, dan suara akan lebih mudah dikompresi dengan menggunakan teknik kompresi lossy. Kompresi lossy tidak memungkinkan untuk membangun kembali data yang telah dikompresi sama persis dengan data yang sebelum dikompresi. Tetapi, daya seperti gambar multimedia, video, dan suara walaupun telah dikompresi dengan menggunakan teknik kompresi lossy tidak menghambat pengguna untuk melihat ataupun mendengar secara keseluruhan.
Contoh aplikasi lossy compression: aplikasi pengkompres suara (mp3
compressor), gambar (adobe photoshop, paint), video (xilisoft)
Contoh format file lossy compression : MP3, JPEG, MPEG
2.5.1 Algoritma kompresi Goldbach Codes
Algoritma Goldbach Codes ditemukan oleh seorang matematikawan asal Prussia yang bernama Christian Goldbach. Dimana Algortima Goldbach Codes menyatakan bahwa setiap bilangan genap > 2 merupakan hasil dari dua buah bilangan prima. Seperti pada tabel 2.2 merupakan goldbach G0 Code yang berisi Codeword.
Tabel 2.2 Goldbach G0 Code
N 2(n+3) Primes Codeword 1 8 3 + 5 11 2 10 3 + 7 101 3 12 5 + 7 011 4 14 3 + 11 1001 5 16 5 + 11 0101 6 18 7 + 11 0011
7 20 7 + 13 00101
8 22 5 + 17 010001
9 24 11 + 13 00011
Tabel diatas merupakan angka-angka yang sudah diubah ke dalam Codeword. Pilih salah satu angka genap pada table Goldbach G0 Codes, misal 20. Angka 20 merupakan penjumlahan dua bilangan prima, yaitu 7 + 13, yang mana dalam Codeword adalah 00101. Dimana setiap bit disusun dari kiri ke kanan berdasarkan urutan yang telah di tetapkan, 13, 11, 7, 5 dan 3. Seperti pada Tabel 3 yang merupakan contoh angka yang akan dimasukkan kedalam Goldbach G0 Codes.
Contoh:
String = “375” , |string| = 3
∑ ( karakter yang berbeda dalam string) = {375}
∑ = 3
Setelah mendapatkan ∑ ( karakter yang berbeda dalam string), selanjutnya ∑
dimasukkan ke dalam ASCII seperti tabel 2.3 dibawah ini.
Tabel 2.3 String diubah kedalam ASCII
Char ASCII Code ASCII Bin Bit Freq Bit x Freq
3 51 00110011 8 1 8
7 55 00110111 8 1 8
5 53 00110101 8 1 8
Jumlah = 24
Lalu string juga diubah kedalam Goldbach G0 Codes. Pada tabel 2.4 string diubah kedalam Goldbach Codes.
Tabel 2.4 String diubah kedalam Goldbach G0 Codes.
Char Freq N 2(n+3) Prime Goldbach G0 Codes Bit Bit x Freq 3 1 1 2(1+3) 8 11 2 2 7 1 1 2(1+3) 8 11 2 2 5 1 1 2(1+3) 8 11 2 2 Jumlah = 6
Maka kompresi untuk 375 adalah 111111 Dekompresi 3 7 5
11 11 11
2.5.2 Konsep kompresi data
Untuk proses kompresi menggunakan Goldbach Codes kita merujuk pada Tabel 2.5.1, Dimana Goldbach Codes, proses kompresi sendiri didasarkan pada bahwa isi file akan dibaca secara per byte (8 bit) sehingga menghasilkan nilai pembacaan antara 0 hingga 255.
Suatu metode pada kompresi data akan menghasilkan bit-bit (satuan terkecil pembentuk data) data baru yang lebih pendek dibandingkan oleh bit-bit data sebelum dikompresi. Bit-bit data yang lebih pendek tersebut biasanya tidak akan bisa dibaca oleh komputer sebelum dilakukan proses encoding. Pada proses encoding bit-bit data tersebut di-encode setiap delapan bitnya sehingga membentuk satu karakter yang dapat dibaca oleh komputer. Begitu juga sebaliknya, pada saat dekompresi bit-bit data tersebut di-decode kembali agar membentuk bit-bit data semula yang akan digunakan dalam proses dekompresi.
Karena pada saat proses dekompresi dibutuhkan bit-bit data sebelum di
karakter direpresentasikan oleh bilangan ASCII (American Standard Code For
Information Interchange) sebanyak delapan bit dalam bilangan biner. Jika ternyata
jumlah bit-bit data tersebut bukan merupakan kelipatan delapan. Maka dibentuk variabel baru sebagai penambahan ke bit-bit data itu agar bit-bit data tersebut habis dibagi delapan. Variabel ini adalah padding dan flagging
1. Padding
Padding adalah penambahan bit 0 sebanyak kekurangan jumlah bit-bit data
pada hasil proses kompresi sehingga jumlah keseluruhan bit-bit data tersebut merupakan kelipatan delapan (habis dibagi delapan). Contoh misalkan dihasilkan bit-bit data hasil kompresi yaitu 1001011. Terdapat 7 bit data dalam bilangan biner. Maka dilakukan penambahan bit 0 sebanyak 1 kali agar jumlah
bit-bit data tersebut habis dibagi delapan. Sehingga bit-bit data itu menjadi
10010110 setelah diberikan padding. Contoh Padding:
Pada hasil kompresi Goldbach dengan string 375 adalah 111111, terdapat 6 bit data dalam bilanngan biner. Lalu, dilakukan penambahan bit 0 sebanyak dua kali 11111100 agar bit data tersebut habis dibagi delapan.
2. Flagging
Flagging adalah penambahan bilangan biner sepanjang delapan bit setelah padding dimana flagging ini adalah sejumlah bilangan yang memberikan
sebuah tanda bahwa terdapat n buah padding di dalam bit-bit data hasil dari kompresi. Penambahan flagging ini dimaksudkan untuk mempermudah dalam membaca bit-bit data hasil kompresi pada saat proses dekompresi.
Contoh misalkan bit-bit data yang telah diberikan padding adalah 11111100. Karena terdapat 2 bit penambahan padding maka flag nya adalah bilangan biner dari 2 dengan panjang 8 bit yaitu 00000001. Sehingga bit-bit datanya menjadi 1111110000110010 setelah diberikan flagging.
2.5.3. Pengukuran kinerja kompresi data
Pada tahap kompresi data, terdapat beberapa faktor atau variable yang biasa digunakan untuk mengukur kualitas dari suatu teknik kompresi data, diantaranya adalah:
a. Ratio of Compression (Rc)
Ratio of Compression merupakan hasil perbandingan antara ukuran fiile yang
telah dikompresi dengan file yang belum di kompresi.
= = 4
b. 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.
x 100%
= X 100% = 0,25 %
c. Redundancy (Rd)
Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum dilakukannya proses kompresi. Dihitung Redundancy data dengan cara persentasi dari hasil selisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi.
Rd = 100% - Cr = 100% - 0,25% = 99,75 %
d. Space Saving (SS)
Space Saving adalah persentase selisih antara data yang belum dikompresi dengan besar data yang dikompresi.
SS = 1 - Cr = 1 – 0,25%
PENDAHULUAN
Pada Bab I membahas latar belakang masalah yang akan dibahas didalam skripsi, dalam bab ini juga merangkum rumusan masalah, ruang lingkup penelitian, manfaat penelitian, penelitian sebelumnya, metode penelitian, dan sistematika penulisan skripsi.