Kompresi Data Perancangan Add On Keamanan Email Mozillathunderbird Dengan Algoritma Kriptografi Xor Dan Three Pass Protocol Serta Kompresi Lempel Ziv Welch

Gambar 2.1 Three Pass Protocol Tampak bahwa pada Three Pass Protocol terjadi tiga kali pass pengiriman informasi yang didalamnya dilakukan proses enkripsi ganda enkripsi dengan k_sender diikuti dengan enkripsi dengan k_recaiver dan dekripsi ganda dekripsi dengan k_sender dan k_recaiver . Dengan demikian berlaku proses, DDEEk_sender,P,k_recaiver ,k_sender ,k_recaiver =P . Pada penerapan Three Pass Protocolsebuah algoritma kriptografi harus memenuhi aturan commutative encryption.Dengan demikian algoritma kriptografi XOR dapat diterapkan denganThree Pass Protocol.

2.4 Kompresi Data

Kompresi data dalam konteks ilmu komputer, adalah ilmu seni untuk merepresentasikan informasi dalam sebuah bentuk yang padat[10]. Kompresi data Universitas Sumatera Utara merupakan salah satu aspek penting sebagai pemicu revolusi dalam bidang multimedia digital.Kompresi data bertujuan untuk mereduksi jumlah bit-bit yang digunakan untuk menyimpan atau mentransmisikan informasi[9]. Defenisi lain menyebutkan, kompresi data adalah proses perubahan rentetan data input data asli ke dalam rentetan data lain data output atau data terkompresi yang berukuran lebih kecil [14]. Lebih spesifik lagikompresi data merupakan teknik atau desain algoritma yang efisien untuk [10]: a. Merepresentasikan data dalam sebuah cara yang mengandung sedikit redudansi b. Mengurangi redudansi dalam data c. Mengimplementasikan algoritma kompresi, termasuk didalamnya kompresi dan dekompresi.

2.4.1 Kompresi dan Dekompresi Data

Kompresi data dapat dipandang sebagai bentuk representasi yang efisien dari sebuah data sumber seperti, teks, gambar, suara atau kombinasi ketiganya dalam sebuah video misalnya.Tujuannya adalah untuk merepresentasikan data sumber dalam bentuk digital dengan jumlah bit-bit sesedikit mungkin [10].Algoritma kompresi data disebut kompresor compressor. Berkebalikan dengan kompresi, dekompresi merupakan cara yang diterapkan pada sebuah bentuk terkompresi untuk mengembalikannya ke bentuk aslinya sebelum mengalami proses kompresi. Dekompresi yang efisien juga menjadi sebuah pertimbangan penting dalam konteks kompresi data, sebab bila sebuah algoritma kompresi mampu menghasilkan bentuk paling minimal sekalipun pada sebuah kasus, implementasinya akan mengalami kendala bila tidak terdapat mekanisme lain yang mampu mengembalikan hasil kompresi ke bentuk asli atau setidaknya mendekati bentuk asli sebelum mengalami kompresi. Algoritma dekompresi data disebut dekompresor decompressor. Universitas Sumatera Utara

2.4.2 Kompresi Lossless dan Lossy

Terdapat dua bagian besar kelompok kompresi bila ditinjau dari tersedianya kemungkinan peluang dalam merekonstruksi hasil kompresi kembali ke bentuk asli. Kedua kelompokalgoritma tersebut adalah kompresi data losslessdankompresi data lossy [10]. Sebuah kompresi disebut lossless hanya jika memungkinkan untuk merekonstrusi bentuk data terkompresi secara benar-benar persis seperti data asli sebelum di kompresi. Tidak ada satupun informasi yang hilang selama proses kompresi-dekompresi. Kompresi Lossless disebut juga dengan kompresi reversible karena data asli secara persis dapat diperoleh melalui proses dekompresi. Gambar 2.2 Kompresi Data Lossless Teknik kompresi ini banyak digunakan ketika bentuk data asli dari sebuah data benar-benar diperlukan sehingga tidak boleh ada sedikitpun informasi yang hilang. Bentuk data tersebut misalnya, gambar analisis medis, teks dan gambar yang digunakan pada proses peradilan. Berbeda dengan kompresi lossless, sebuah metode kompresi disebut lossy apabila tidak ada kemungkinan untuk merekonstrusi bentuk terkompresi secara persis sama dengan bentuk asli. Mungkin terdapat beberapa bagian data yang tidak signifikan sehingga dapat hilang pada proses kompresi-dekompresi. Kata tidak signifikan disini mengacu pada syarat kualitas tertentu yang harus dipenuhi oleh hasil rekonstruksi [10]. Gambar 2.3 Kompresi Data Lossy Bentuk Asli “Bawakan File ABC” Bentuk Terkompresi “1100101” Hasil Dekompresi “Bawakan File ABC” Bentuk Asli “3.147223…” Bentuk Terkompresi “110111” Hasil Dekompresi “3.14” Universitas Sumatera Utara Kompresi lossy disebut juga kompresi irreversible karena tidak mungkin secara persis untuk mengembalikan data hasil kompresi persis seperti bentuk semula melalui proses dekompresi [10]. Hasil dekompresi umunya akan berbeda dari data asli, namun demikian berbagai pendekatan digunakan sehingga hasilnya meskipun tidak persis sama akan mendekati bentuk aslinya. Salah satu besaran yang digunakan untuk mengukur kinerja kompresi suatu algoritma kompresi adalah rasio kompresi compression ratio, yang dinyatakan sebagai berikut. � � = ���� ����� ����������� ���� ������ ����������� � 100 2.7 C r menyatakan compression ratio rasio kompresi.

2.4.3 Algoritma Kompresi Lempel Ziv WelchLZW

Algoritma kompresi Lempel Ziv Welch LWZ merupakan salah satu algoritma kompresi lossless berbasis dictionary. Algoritma ini dikembangkan oleh Terry Welch sebagai penerus algoritma LZ77 dan LZ78 yang sebelumnya ditemukan oleh Abraham Lempel dan Jacob Ziv pada tahun 1977 dan 1978. Algoritma ini bersifat adaptif dan efektif gunakan dalam mengkompresi pesan teks, karena prinsip dari algoritma ini adalah menyimpan pasangan kode-kode dan deretan karakter yang pernah muncul pada bagian teks sebelumnya dalam sebuah dictionary . Kode-kode singkat tersebut digunakan sebagai substitusi deretan karakter pada hasil kompresi sekaligus sebagai indeks dalam kamus selama proses kompresi berlangsung. Proses kompresi diawali oleh proses inisiasi dictionary dengan karakter- karakter yang digunakan penyusun input stream misalnya deretan karakter ASCII. Selama proses kompresi dilakukan, algoritma akan mengidentifikasi deretan karakter dalam input stream dan memeriksa apakah deretan tersebut terdapat dalam dictionary. Universitas Sumatera Utara Bila deretan karakter tersebut ditemukan dalam dictionary, diperiksa kembali apakah dengan memasangkan deretan karakter tersebut dengan karakter berikutnya masih ditemukan dalam dictionary, proses ini diulangi terus-menerus hingga deretan karakter tersebut tidak ditemukan lagi dalam dictionary. Bila sudah tidak ditemukan, maka indeks pada dictionary ditambahkan dan dipasangkan dengan deretan karakter tersebut, lalu deretan karakter terakhir yang masih ditemukan pada dictionary akan digantikan dengan indeks yang sesuai sebagai outputnya. Proses yang berlangsung dalam kompresi data LZW dinyatakan sebagaiberikut. Tabel 2.3 Pseudocode Algoritma Kompresi LZW [10] 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10: 11: 12: word ‘’ while not EOF do x  read_next_character if word + x is in dictionary then word  word + x else output the dictionary index for word add word + x to the dictionary word  x end if end while output the dictionary index for word Sebagai contoh sebuah string “BUKAN BUKA” akan dikompresi dengan algoritma LZW, prosesnya adalah sebagai berikut karakter yang digunakan adalah karakter standar ASCII. Tabel 2.4 Proses Kompresi LZW untuk String “BUKAN BUKA” lookAhead nextChar lookAheadNext lookAheadNext ada dalam Dictionary? Output Tambahan dalam dictionary B U BU Tidak 66 BU-256 U K UK Tidak 85 UK-257 K A KA Tidak 75 KA-258 A N AN Tidak 65 AN-259 N Sp NSp Tidak 78 NSp-260 Sp B SpB Tidak 32 SpB-261 B U BU Ya - - BU K BUK Tidak 256 BUK-262 K A KA Ya - - KA End KA - 258 - Universitas Sumatera Utara Hasil kompresi adalah 668575657832256258 masing- masing berukuran 9 bit. Maka hasil kompresi hanya sepanjang 9 × 8 = 72 bit. Sedangkan input adalah 10 byte ASCII, yang ukurannya 10 × 8 = 80 bit. Dengan demikian diperoleh penghematan sebanyak 8 bit. Proses dekompresi juga melibatkan proses yang mirip dengan proses kompresi, hanya saja outputnya adalah karakter yang indeksnya sesuai dengan entry dalam dictionary dan selama proses perubahan indeks ke bentuk karakter dilakukan saat itu pula ditambahkan isi dictionary. Bila indeks tidak ditemukan pada dictionary, output yang digunakan adalah output yang terakhir kali diperoleh sebagai hasil konversi indeks pada kamus dipasangkan dengan karakter pertama dari output tersebut. Sedangkan untuk entri baru pada kamus ditambahkan output yang sebelumnya dipasangkan dengan karakter pertama output yang baru saja dihasilkan.Proses yang berlangsung dalam dekompresi data LZW dinyatakan sebagaiberikut. Tabel 2.5 Pseudocode AlgoritmaDekompresi LZW [9] 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10: 11: 12: 13: 14: read a token x from the compressed file look up dictionary for element at x output element word  element while not E0F do read x look up dictionary for element at x if there is no entry yet for index x then element  word + firstCharOfWord end if output element add word + firstCharOfElement to the dictionary word  element end while Misalnya hasil kompresi sebelumnya 668575657832256258 akandidekompresi ke bentuk semula. Prosesnya sebagai berikut karakter yang digunakan adalah karakter standar ASCII. Universitas Sumatera Utara Tabel 2.6 Proses Dekompresi LZW untuk Menemukan String “BUKAN BUKA” Dengan demikian diperoleh output “BUKAN BUKA”. Pada kasus ini indeks selalu ditemukan dalam dictionary. Bila kondisi tertentu menyebabkan indeks tidak ditemukan dalam dictionary ditunjukkan dengan temp yang berisi null, maka output yg dihasilkan adalah karakter sebelumnya ditambahkan dengan karakter pertama dari karakter tersebut. Misalnya bila karakter sebelumnya “A”, maka outputnya adalah “AA”. Dan ke dalam kamus ditambahkan “AA”.

2.5 Base64Encoding