IMPLEMENTASI KOMPRESI DAN DEKOMPRESI TEKS MENGGUNAKAN TEKNIK ARITHMETIC CODING
PROPOSAL PROYEK AKHIR
Program Studi D3 Teknik Telekomunikasi
Jurusan Teknik Elektro
Politeknik Negeri Bandung
diajukan oleh:
Shanti Mayang Elfandari
111331058
kepada
PROGRAM STUDI D3 TEKNIK TELEKOMUNIKASI
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI BANDUNG
Januari, 2014
Proposal Proyek Akhir
IMPLEMENTASI KOMPRESI DAN DEKOMPRESI TEKS MENGGUNAKAN TEKNIK ARITHMETIC CODING
diajukan oleh:
Shanti Mayang Elfandari
111331058
telah disetujui oleh:
Pembimbing Utama,
Ir. Hertog Nugroho, M.Sc., Ph.D. tanggal, 16 Januari 2014
NIP. 19590515 199103 1 001
ABSTRAK
Pada Proyek Akhir ini akan dibuat sebuah pengembangan kompresi dan dekompresi teks dimana fungsi dari hal di atas dibuat untuk mengefisiensikan bandwidth yang terbatas dalam komunikasi data. Contoh penggunaan dari kompresi dan dekompresi adalah saat akan melakukan pengiriman pesan menggunakan media email atau sms.
Kompresi dan dekompresi teks dapat dibuat dengan berbagai macam metoda, seperti metoda Huffman, Shannon, Deflate dan lain-lain. Metoda yang telah digunakan selama ini memiliki kelebihan dan kekurangannya tersendiri. Namun pada intinya parameter kompresi seperti rasio kompresi, factor kompresi dan kecepatan kompresi menjadi parameter penting yang pada metoda di atas belum sempurna dan kerap kali menjadi kelemahan.
Untuk itu, disini akan dicoba metoda dengan teknik arithmetic coding dengan harapan penggunaan teknik ini bisa meningkatkan performa kompresi dan berkecepatan tinggi pada prosesnya. Karena diketahui bahwa teknik arithmetic coding menghasilkan rasio kompresi yang rendah.
Pendahuluan
Latar Belakang
Komunikasi pada zaman sekarang menjadi hal yang sangat vital bagi kehidupan bermasyarakat. Namun dalam prosesnya komunikasi memiliki kendala-kendala yang menyebabkan kualitas atau performa dari komunikasi tersebut menjadi jelek. Adapun kendala-kendala yang dimaksud seperti keterbatasan bandwidth dan kecepatan komunikasi. Kendala-kendala tersebut, menimbulkan satu permasalahan baru. Yaitu bagaimana agar supaya dengan bandwidth yang terbatas dapat mengirim dan menerima data dalam ukuran besar dalam waktu yang cepat. Untuk itu, pemecahan masalah atau solusinya adalah dibutuhkan aplikasi kompresi agar data yang dikirimkan dapat ditransmisikan dengan ukuran yang lebih kecil sehingga tidak membutuhkan bandwidth yang lebar. Dengan kata lain akan mengefisiensikan waktu pentransmisian.
Dengan Masalah yang akan diangkat dalam Proyek Akhir ini yaitu pembuatan sebuah aplikasi kompresi dan dekompresi data teks menggunakan metoda Arithmetic Coding dan akan disimulasikan menggunakan pemrograman Matlab.
Metoda Arithmetic Coding ini menggunakan interval data yang lebih sempit dibandingkan dengan metoda lainnya. Karena metoda ini menggunakan peluang dari masing-masing symbol. Sehingga rasio kompresi yang dihasilkan lebih rendah dibanding metoda lainnya.
Perumusan Masalah
Permasalahan yang akan dibahas dan dijadikan objek penelitian pada proyek akhir ini mencakup:
Bagaimana membuat algoritma pemrograman untuk kompresi data teks menggunakan metoda Arithmetic Coding yang?
Bagaimana mencari interval dan peluang dari karakter/symbol yang diubah menjadi bilangan quarterner?
Bagaimana mensimulasikan kompresi dan dekompresi pesan teks menggunakan pemrograman Matlab dan membuat interface yang memudahkan user melakukan proses kompresi?
Bagaimana menganalisa hasil kompresi dan dekompresi?
Keaslian Proyek Akhir
Implementasi kompresi data teks menggunakan algoritma Arithmetic Coding sudah pernah dilakukan sebelumnya, namun pada tugas akhir ini akan dimunculkan beberapa perbedaan yang sedemikian rupa sehingga tidak sama dengan yang sebelumnya. Perbedaan tersebut antara lain:
Pengkodean tidak dilakukan secara biner tapi quarterner.
Peluang dan interval dicari berdasarkan frekuensi kemunculan bit-bit quarterner.
Pemrograman menggunakan software Matlab.
Manfaat Proyek Akhir
Pada proyek akhir ini akan diimpementasikan kompresi data teks menggunakan algoritma Arithmetic Coding. Diharapkan hasil dari tugas akhir ini dapat memperkecil ukuran data sehingga ketika terjadi pengiriman data tidak memerlukan bandwidth yang lebar dan proses pengiriman akan menjadi lebih cepat.
Tujuan Proyek Akhir
Proyek akhir ini bertujuan untuk mengimplementasikan kompresi data dengan menggunakan metoda Arithmetic Coding dengan harapan data yang ditransmisikan akan bergerak dengan waktu yang seefisien mungkin untuk sampai ke penerima.
Tinjauan Pustaka
Di bawah ini merupakan realisasi kompresi dekompresi yang penulis temukan dalam literature (Tugas/Proyek Akhir):
"Kompresi Dekompresi Dan Enkripsi Dekripsi Teks Menggunakan Algoritma Arithmetic Code Dan Enkripsi A5/2" oleh Rio Tirabosa Kartaatmadja (Agustus 2010, Institut Teknologi Telkom Bandung). Pada perancangan proyek akhir di atas dibuat sebuah kompresi dekompresi dan enkripsi dekripsi yang menggunakan pemrograman Visual Basic. Pada sistemnya, kompresi dekompresi yang dibuat menghasilkan interval dan peluang dari frekuensi symbol-symbol tanpa merubahnya menjadi bilangan bit bit. Penulis akan membuat kompresi dekompresi menggunakan teknik Arithmetic Coding dengan pemrograman Matlab. Dan interval dan peluang didapat dari frekuensi bilangan quarterner yang muncul.
Algoritma kompresi dekompresi dengan teknik Arithmetic Coding yang ingin penulis sampaikan bisa dilihat dari blok diagram di bawah ini:
Gambar 1 Blok Diagram Proses Kompresi Dekompresi
Berikut adalah urutan proses kompresi dan dekompresi:
Pertama-tama data yang akan dikompres diinputkan
Data yang diinputkan dilihat kode ASCII nya dan diubah menjadi kode bilangan quarterner.
Kemudian hasil bilangan quarterner tersebut dideretkan dan dihitung frekuensi dari setiap angka yang sama.
Selanjutnya cari peluang dan interval dari tiap bit.
Tentukan batas atas dan batas bawah berdasarkan urutan data bilangn quarterner. Lakukan berulang sampai bit terakhir.
Hasil batas atas dan batas bawah paling terakhir merupakan data ouput encoding.
Proses dekompresi dimulai saat output encoding telah didapat,
Dapatkan symbol bilangan quarterner dimana nilai encoded nya berada dalam intervalnya.
Setelah itu lakukan pengkodean kembali menjadi karakter.
Landasan Teori
Pengkodean aritmatika adalah metode pengkodean yang dimulai dengan jarak yang tertentu dan membaca tiap-tiap simbol satu persatu dengan nilai peluang pada tiap-tiap simbol untuk menghasilkan jarak atau interval yang lebih kecil. Menspesifikasikan interval yang lebih sempit membutuhkan bit yang lebih kecil, sehingga sebuah nilai tercipta dari perkembangan algoritma yang continue.
Jarak atau interval pada sebuah pengkodean dispesifikasikan oleh batas atas dan bawah, dan output dari pengkodean aritmatika di presentasikan dengan sebuah nilai dengan range antara "0" dan "1".
Langkah pertama dari algoritma ini adalah menghitung, dan memperkirakan di akhirnya pada frekuensi keterdapatan tiap simbol. Berikut adalah langkah-langkah dari algoritma ini :
Menentukan interval-interval pada batas "0" dan "1".
Ulangi 2 langkah berikut ini untuk tiap simbol pada aliran input data [
Membagi batas-batas pada interval tersebut menjadi beberapa subinterval dimana ukuran-ukurannya sebanding dengan peluang tiap simbol
Pilih subinterval untuk tiap simbol yang ditentukan dan mendefinisikannya menjadi interval yang baru.
Ketika aliran input telah di proses dengan langkah seperti di atas, output akan berupa sebuah nilai yang unik yang mengidentifikasikan nilai sebuah interval.
Seperti contoh:
Diketahui serangkaian simbol memiliki nilai peluang dan ditentukan interval-nya sebagai berikut:
Tabel 2.1. nilai peluang karakter
Karakter
Frekuensi
Peluang
Jarak
Jumlah Frekuensi
Total Jumlah Frekuensi = 10
S
5
5/10 = 0,5
[0,5-1,0]
5
W
1
1/10 = 0,1
[0,4-0,5]
4
I
2
2/10 = 0,2
[0,2-0,4]
2
M
1
1/10 = 0,1
[0,1-0,2]
1
(SPASI)
1
1/10 = 0,1
[0,0-0,1]
0
Setelah ditentukan nilai peluang dan interval-nya, lalu dihitung nilai peluangnya sebagai berikut:
Tabel 2.2. Perhitungan nilai peluang suatu karakter
Karakter
Batas atas dan bawah
Perhitungan menentukan batas atas dan bawah
S
L
0,0 + (1,0-0,0) x 0,5 = 0,5
H
0,0 + (1,0-0,0) x 1,0 = 1,0
W
L
0,5 + (1,0 - 0,5) x 0,4 = 0,70
H
0,5 + (1,0 - 0,5) x 0,5 = 0,75
I
L
0,7 + (0,75 - 0,70) x 0,2 = 0,71
H
0,7 + (0,75 - 0,70) x 0,4 = 0,72
S
L
0,71 + (0,72 - 0,71) x 0,5 = 0,715
H
0,71 + (0,72 - 0,71) x 1,0 = 0,72
S
L
0,715 + (0,72 - 0,715) x 0,5 = 0,7175
H
0,715 + (0,72 - 0,715) x 1,0 = 0,72
(SPASI)
L
0,7175 + (0,72 - 0,7175) x 0,0 = 0,7175
H
0,7175 + (0,72 - 0,7175) x 0,1 = 0,71775
M
L
0,7175 + (0,71775 - 0,7175) x 0,1 = 0,717525
H
0,7175 + (0,71775 - 0,7175) x 0,2 = 0,717550
I
L
0,717525 + (0,71755 - 0,717525) x 0,2 = 0,717530
H
0,717525 + (0,71755 - 0,717525) x 0,4 = 0,717535
S
L
0,717530 + (0,717535 - 0,717530) x 0,5 = 0,7175325
H
0,717530 + (0,717535 - 0,717530) x 1,0 = 0,717535
S
L
0,7175325+ (0,717535 - 0,7175325) x 0,5 = 0,71753375
H
0,7175325 + (0,717535 - 0,7175325) x 1,0 = 0,717535
Pada aliran input data terdapat "10" karakter yaitu S,W,I,S,S,spasi,M,I,S, dan S, dan outputnya adalah range antara 0.71753375 sampai 0.717535, dimana kita dapat menentukan peluangnya dari range tersebut. Lalu mencari nilai rasio kompresi, faktor kompresi, dan lain-lain.
Metodologi (Pola Penyelesaian Masalah)
Studi Literatur
Pada tahap ini penulis mengumpulkan dan mempelajari bahan-bahan referensi tentang teori algoritma kompresi dari berbagai sumber,seperti buku maupun situs-situs internet.
Perancangan
Pada tahap ini penulis mernganalisa dan merancang desain algoritma dan struktur program kompresi dan dekompresi serta user interfacenya.
Realisasi
Setelah melakukan perancangan, penulis merealisasikannya pada program. Dalam hal ini adalah pemrograman Matlab.
Pengujian
Saat aplikasi sudah terimplementasikan maka saatnya pengujian, apakah sudah sesuai dengan tujuan yang diinginkan.
Analisa
Hasil dari pengujian aplikasi yang dibuat akan dianalisa terkait performa yang dihasilkan butuh untuk perbaikan dan penyempurnaan atau tidak.
Perbaikan
Apabila pada aplikasi masih terdapat kesalahan, akan dilakukan perbaikan. Dan jika aplikasi sudah sesuai dengan tujuan yang diinginkan, akan dilakukan penyempurnaan.
Dokumentasi
Setelah aplikasi kompresi sudah terimplementasikan dengan baik, lalu dilakukan dokumentasi yaitu dengan cara mengambil beberapa sample data yang akan dikompresikan untuk dilihat apakah kualitas dan performa sudah seperti yang diinginkan atau belum.
Jadwal
Kegiatan
Jadwal Pelaksanaan Tugas akhir
Bulan 1
Bulan 2
Bulan 3
Bulan 4
Bulan 5
Bulan 6
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
Studi Literatur
2
Perancangan
4
Pengujian
5
Analisa
5
Perbaikan
6
Dokumentasi
Biaya
No.
Keperluan
Biaya
Keterangan
1
Komponen utama
Rp. 4.000.000
-Komputer*
-CD Software Matlab
2
Laporan
Rp. 500.000
-Fotokopi
-Tinta printer
-Kertas
-Lain-lain
Total
Rp. 4.500.000
*Komponen utama dalam proyek akhir ini sudah dimiliki penulis sebelumnya dikarenakan tuntutan perkuliahan
Daftar Pustaka
[1] ----, Landasan Teori, http://thesis.binus.ac.id/Asli/Bab2/2010-1-00497-MTIF%20Bab%202.pdf [diakses: 14 Januari 2014]
[2] Kartaatmadja, Rio Tirabosa. Kompresi Dekompresi dan Enkripsi Dekripsi Teks Menggunakan Algoritma Arithmetic Code Dan Enkripsi A5/2, Laporan Proyek Akhir, Institut Teknologi Telkom, Agustus 2010.
[3] Lusiana, Anita. Implementasi Teknik Kompresi Data Teks Dengan Menggunakan Algoritma Deflate Yang Dimodifikasi. Proposal Proyek Akhir, Politeknik Negeri Bandung. Desember 2012.