BAB 2 TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
BAB 2 TINJAUAN PUSTAKA

Kompresi. Definisi Kompresi

BAB 2 TINJAUAN PUSTAKA

BAB 2 Tinjauan Teoritis

KOMPRESI DATA DAN TEKS. By : Nurul Adhayanti

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN Latar Belakang

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

>>> Kompresi Data dan Teks <<<

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA. Kompresi. Oky Dwi Nurhayati, ST, MT

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA SHANNON- FANO UNTUK KOMPRESI FILE TEXT

BAB 2 LANDASAN TEORI. 2.1 Kompresi Data

Kompresi. Pengertian dan Jenis-Jenis Kompresi

BAB 2 LANDASAN TEORI

MULTIMEDIA system. Roni Andarsyah, ST., M.Kom Lecture Series

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

PEMAMPATAN CITRA (IMA

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode

BAB II DASAR TEORI. 2.1 Pendahuluan

Kata kunci: pohon biner, metode Huffman, metode Kanonik Huffman, encoding, decoding.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET KOMUNIKASI DATA

TEKNIK KOMPRESI LOSSLESS TEXT

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT.

Kompresi Data dengan Kode Huffman dan Variasinya

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KONSEP. Tujuan Kompresi:

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

KOMPRESI DAN TEKS. By Aullya Rachmawati,

BAB 1 PENDAHULUAN. Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara apa

Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480 : 640 x 480 = 4800 karakter 8 x 8

KOMPRESI DATA. Multimedia Jurusan Teknik Informatika. Riki Ruli S -

Bab 6. Kompresi Data dan Teks. Pokok Bahasan : Tujuan Belajar : Sekilas Kompresi Data

BAB 2 TINJAUAN PUSTAKA

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011

KOMPRESI DAN TEKS. = 4800 karakter. 8 x 8 Kebutuhan tempat penyimpanan per halaman = byte = byte = Kbyte

SISTEM ANALISA PERBANDINGAN UKURAN HASIL KOMPRESI WINZIP DENGAN 7-ZIP MENGGUNAKAN METODE TEMPLATE MATCHING

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip

Penerapan Pengkodean Huffman dalam Pemampatan Data

BAB 2 LANDASAN TEORI

Penerapan Algoritma Huffman dalam Kompresi Gambar Digital

BAB 2 TINJAUAN PUSTAKA

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

~ By : Aprilia Sulistyohati, S.Kom ~

Penerapan Pohon Biner Huffman Pada Kompresi Citra

Teknik Kompresi Citra Menggunakan Metode Huffman

KOMPRESI DAN TEKS M U L T I M E D I A KOMPRESI DATA

BAB 2 LANDASAN TEORI

BAB IV HASIL DAN UJI COBA

BAB II LANDASAN TEORI. Kompresi data atau pemampatan data adalah suatu proses pengubahan

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE BERBASIS ANDROID DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

BAB I PENDAHULUAN. Dalam bidang teknologi informasi, komunikasi data sangat sering

BAB 2 LANDASAN TEORI

KOMPRESI DAN TEKS. Pemrograman Multimedia KOMPRESI DATA. Diktat Kuliah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

DATA COMPRESSION CODING USING STATIC AND DYNAMIC METHOD OF SHANNON-FANO ALGORITHM

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

Analisa Perbandingan Rasio Kecepatan Kompresi Algoritma Dynamic Markov Compression Dan Huffman

RINGKASAN MATERI MULTIMEDIA

BAB 2 LANDASAN TEORI

PERBANDINGAN ALGORITMA HUFFMAN DAN ALGORITMA SHANNON-FANO PADA PROSES KOMPRESI BERBAGAI TIPE FILE. Irwan Munandar

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

SKRIPSI KOMPRESI DATA TEKS MENGGUNAKAN ALGORITMA PPM (PREDICTION BY PARTIAL MATCHING)

1. PENDAHULUAN 1.1. Latar Belakang Masalah

ANALISA DAN PERBANDINGAN ALGORITMA RUN LENGTH ENCODING DAN ALGORITMA LZW ( LEMPEL ZIV WECH ) DALAM PEMAMPATAN TEKS

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

BAB 1 PENDAHULUAN Latar Belakang

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA. 2.1 Definisi Kompresi Data dan Klasifikasi Algoritma Kompresi Data

BAB I PENDAHULUAN. halaman khusus untuk pengaksesan dari handphone. Semakin baik informasi akan

PENGANTAR KOMPRESI DATA

BAB 2 LANDASAN TEORI

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA ARIHTMETIC CODING DAN SHANNON-FANO PADA KOMPRESI CITRA BMP

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. Saat ini perkembangan teknologi berkembang sangat cepat. Penyimpanan

BAB II DASAR TEORI Teknik Kompresi Data

BAB I PENDAHULUAN. Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu

Penggunaan Pohon Huffman pada Algoritma Deflate

Semester Ganjil 2012/2013 Program Studi Multimedia - Politeknik Negeri Media Kreatif KOMPRESI DAN TEKS

BAB I PENDAHULUAN. Meningkatnya penggunaan komputer dalam kegiatan sehari hari, secara

Kode Huffman dan Penggunaannya dalam Kompresi SMS

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

PEMAMPATAN DATA DIGITAL MENGGUNAKAN METODA RUN-LENGTH

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

TEKNIK PENGOLAHAN CITRA. Kuliah 13 Kompresi Citra. Indah Susilawati, S.T., M.Eng.

Algoritma Huffman dan Kompresi Data

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL. foto, bersifat analog berupa sinyal sinyal video seperti gambar pada monitor

Transkripsi:

BAB 2 TINJAUAN PUSTAKA 2.1. Kompresi Data Kompresi data adalah proses mengkodekan informasi menggunakan bit atau information-bearing unit yang lain yang lebih rendah daripada representasi data yang tidak terkodekan dengan suatu sistem enkoding tertentu. Contoh kompresi sederhana yang biasa kita lakukan misalnya adalah menyingkat kata-kata yang sering digunakan tapi sudah memiliki konvensi umum. Misalnya: kata yang dikompres menjadi kata yg. [12] Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim/yang melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam hal kompresi data. Pihak pengirim harus menggunakan algoritma kompresi data yang sudah baku dan pihak penerima juga menggunakan teknik dekompresi data yang sama dengan pengirim sehingga data yang diterima dapat dibaca di-decode kembali dengan benar. [12] Proses kompresi data didasarkan pada kenyataan bahwa pada hampir semua jenis data selalu terdapat pengulangan pada komponen data yang dimilikinya, misalnya didalam suatu teks kalimat akan terdapat pengulangan penggunaan huruf alphabet dari huruf a sampai dengan huruf z. [13] Kompresi data melalui proses encoding berusaha untuk menghilangkan unsur pengulangan ini dengan mengubahnya sedemikian rupa sehingga ukuran data menjadi lebih kecil. Kompresi data menjadi sangat penting karena memperkecil kebutuhan penyimpanan data, mempercepat pengiriman data, memperkecil kebutuhan bandwidth. Teknik kompresi bisa dilakukan

terhadap data teks/biner, gambar (JPEG, PNG, TIFF), audio (MP3, AAC, RMA, WMA), dan video (MPEG, H261, H263). Proses kompresi dan dekompresi data dapat ditunjukan melalui diagram blok seperti pada Gambar 2.1. Data Input Proses kompresi menggunakan algoritma kompresi Data Terkompresi Proses dekompresi data terkompresi menjadi data input menggunakan aturan-aturan dekompresi dari algoritma kompresi Gambar 2.1. Diagram Blok Proses Kompresi dan Dekompresi Data Kompresi data dibagi menjadi dua kategori yaitu: 1. Kompresi data bersifat loseless Algoritma kompresi tergolong lossless jika memungkinkan data yang sudah dikompres dapat direkonstruksi kembali persis sesuai dengan data original. Teknik ini menjamin tidak ada kehilangan sedikitpun detil atau kerusakan pada data. [12] Lossless compression disebut juga dengan reversible compression karena data asli bisa dikembalikan dengan sempurna. Akan tetapi rasio kompresinya sangat rendah, misalnya pada gambar seperti GIF dan PNG. [13] Contoh data yang cocok adalah gambar medis, teks, program, spreadsheet dan lain-lain. Beberapa algoritma yang tergolong dalam jenis ini adalah algoritma Shannon-Fano, algoritma Deflate, algoritma Run Length Coding, algoritma Huffman, algoritma LZW, dan algoritma Arithmetic Coding. [12]

2. Kompresi data bersifat lossy Algoritma kompresi tergolong lossy jika tidak memungkinkan data yang sudah dikompres dapat direkonstuksi kembali persis sesuai dengan data asli. Kehilangan detil-detil yang tidak berarti dapat diterima pada waktu proses kompresi. Hal ini memanfaatkan keterbatasan panca indera manusia. Maka, sebuah perkiraan yang mendekati keadaan original dalam membangun kembali data merupakan hal yang diperlukan untuk mencapai keefektifan kompresi. Contoh data yang cocok adalah gambar, suara dan video. Adapun beberapa algoritma yang tergolong dalam jenis ini adalah algoritma Wavelet Compression, CELP, JPEG, MPEG-1 dan WMA. [12] 2.2. File Teks File teks (disebut juga dengan flat file) adalah salah satu jenis file komputer yang tersusun dalam suatu urutan baris data teks biasanya diwakili oleh 8 bit kode ASCII (atau EBCDIC) [7]. ASCII (American Standard Code for Information Interchange) dan EBCDIC (Extended Binary Coded Decimal Interchange Code) merupakan cikal bakal dari set karakter lainnya. ASCII merupakan set karakter yang paling umum digunakan hingga sekarang. Set karakter ASCII terdiri dari 128 buah karakter yang masing-masing memiliki lebar 7-bit atau tujuh angka 0 dan 1, dari 0000000 sampai dengan 1111111. Alasan mengapa lebar set karakter ASCII sebesar 7 bit adalah karena komputer pada awalnya memiliki ukuran memori yang sangat terbatas, dan 128 karakter dianggap memadai untuk menampung semua huruf Latin dengan tanda bacanya, dan beberapa karakter kontrol. ASCII terdiri dari huruf-huruf, angka-angka, dan tanda-tanda baca sebagai berikut:! " # $ % & ' ( ) * +, -. / 0 1 2 3 4 5 6 7 8 9 : ; < = >? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ [16]

EBCDIC merupakan set karakter yang merupakan ciptaan dari IBM. Salah satu penyebab IBM menggunakan set karakter di luar ASCII sebagai standar pada komputer ciptaan IBM adalah karena EBCDIC lebih mudah dikodekan pada punch card yang pada tahun 1960-an masih banyak digunakan. Penggunaan EBCDIC pada mainframe IBM masih ada hingga saat ini, walaupun punch card sudah tidak digunakan lagi. Seperti halnya ASCII, EBCDIC juga terdiri dari 128 karakter yang masing-masing berukuran 7-bit. Hampir semua karakter pada ASCII juga terdapat pada set karakter EBCDIC. [16] Akhir dari sebuah file teks sering ditandai dengan penempatan satu atau lebih karakter karakter khusus yang dikenal dengan tanda end-of-file setelah baris terakhir di suatu file teks. File teks biasanya mempunyai jenis MIME (Multipurpose Internet Mail Extension) "text/plain", biasanya sebagai informasi tambahan yang menandakan suatu pengkodean. pada sistem operasi Windows, suatu file dikenal sebagai suatu file teks jika memiliki extention misalnya txt, rtf, doc, docx dan lain - lain. [4] Contoh file teks sederhana dapat dilihat pada Gambar 2.2. Gambar 2.2. File Teks Sederhana

2.3. Fibonacci Encoding Kode Fibonacci adalah variable length code, dimana bilangan bulat yang lebih kecil mendapatkan kode pendek. Kode berakhir dengan dua buah bit satu, dan nilai yang didapatkan adalah jumlah dari nilai-nilai Fibonacci yang sesuai untuk bit yang ditetapkan (kecuali bit terakhir, yang merupakan akhir dari kode). [3] Langkah-langkah pembentukan sebuah kode Fibonacci adalah sebagai berikut: 1. Tentukan sebuah bilangan bulat positif n yang lebih besar atau sama dengan 2. 2. Temukan bilangan Fibonacci f terbesar yang lebih kecil atau sama dengan n, kurangkan nilai n dengan f dan catat sisa pengurangan nilai n dengan f. 3. Jika bilangan yang dikurangkan adalah bilangan yang terdapat dalam deret Fibonacci F(i), tambahkan angka 1 pada i-2 dalam kode Fibonacci yang akan dibentuk. 4. Ulangi langkah 2, tukar nilai n dengan sisa pengurangan nilai n dengan f sampai sisa pengurangan nilai n dengan f adalah 0. 5. Tambahkan angka 1 pada posisi paling kanan kode Fibonacci yang akan dibentuk. Untuk melakukan decode sebuah kode Fibonacci, hilangkan angka 1 paling kanan, kemudian substitusi dan jumlahkan kode Fibonacci yang tersisa dengan menggunakan deret Fibonacci. Contoh proses encoding dan decoding sebuah bilangan menjadi kode Fibonacci dapat dilihat sebagai berikut: Nilai n = 65. Deret Fibonacci yang paling mendekati nilai n adalah: 0 1 1 2 3 5 8 13 21 34 55 Proses pengurangan nilai n dengan setiap bilangan Fibonacci: (1) 65 55 = 10 (2) 10 8 = 2 (3) 2 2 = 0

Sehingga pembentukan kode Fibonacci akan terlihat seperti Tabel 2.1. Urutan Bilangan Fibonacci Dalam Deret Fibonacci Bilangan Fibonacci Kode Fibonacci Sementara Tabel 2.1. Proses Pembentukan Kode Fibonacci F(0) F(1) F(2) F(3) F(4) F(5) F(6) F(7) F(8) F(9) F(10) 0 1 1 2 3 5 8 13 21 34 55 - - 0 1 0 0 1 0 0 0 1 Proses akhir pembentukan kode Fibonacci adalah menambahkan angka 1 pada posisi paling kanan dari kode Fibonacci sementara sehingga kode Fibonacci untuk angka 65 adalah 0100100011. Sedangkan untuk proses decoding, hilangkan angka 1 paling kanan dalam kode Fibonacci, kemudian substitusi angka 1 dengan bilangan Fibonacci sesuai urutan dari kiri ke kanan dan jumlahkan seluruh hasil substitusi tersebut. Sehingga proses decode untuk kode Fibonacci 0100100011 adalah sebagai berikut: Proses decode setelah angka 1 paling kanan dihilangkan: 0 x F(2) + 1 x F (3) + 0 x F(4) + 0 x F(5) + 1 x F(6) + 0 x F(7) + 0 x F(8) + 0 x F(9) + 1 x F(10) = 0 + 2 + 0 + 0 + 8 + 0 + 0 + 0 + 55 = 65. Terbukti bahwa angka 65 diubah menjadi kode Fibonacci menjadi 0100100011, dan kode Fibonacci 0100100011 setelah didecode tetap menjadi angka 65. Kode Fibonacci, sebagaimana namanya, sangat erat berhubungan dengan representasi bilangan bulat Fibonacci. Kode Fibonacci dari sebuah bilangan bulat

positif n adalah representasi Fibonacci dari n dengan sebuah penambahan 1 diujung kanannya. Sehingga kode Fibonacci dari 5 adalah 0001 1 dan untuk 33 adalah 1010101 1. Sangat jelas bahwa kode-kode tersebut berakhir dengan sepasang angka 11 dalam kodenya. [10] Karena kode yang dihasilkan tidak memiliki dua buah bit 1 yang berurutan, maka kepadatan akan terlihat jelas dibandingkan yang lain, apabila sebagian nilai yang dicari adalah nilai-nilai kecil. Namun disisi lain, ini juga membuat kode Fibonacci ini tahan terhadap kesalahan decode. [3] 2.4. Algoritma Shannon-Fano Algoritma Shannon-Fano ditemukan oleh Claude Shannon dan Robert Fano pada tahun 1949. Merupakan algoritma pertama untuk merancang sebuah set dari variablelength code terbaik. [11] Pada saat itu metode ini merupakan metode yang paling baik tetapi hampir tidak pernah digunakan dan dikembangkan lagi setelah kemunculan algoritma Huffman. [18] Kode Shannon-Fano adalah sebuah teknik pengkodean yang dikembangkan pada awal tahun 1950-an yang bertujuan untuk memperkecil jumlah bit yang digunakan dalam sebuah pesan ketika probabilitas dari simbol dalam pesan telah sebelumnya diketahui. [6] Dalam pendekatan algoritma Shannon-Fano, sebuah pohon biner dirancang secara top-down. [7] Algoritma Shannon-Fano merupakan algoritma kompresi data yang mengkodekan tiap karakter dengan menggunakan beberapa rangkaian bit. Pembentukan bit yang mewakili masing-masing karakter dibuat berdasarkan frekuensi kemunculan tiap karakter. [10]

2.5 Algoritma Deflate Deflate adalah algoritma kompresi dengan teknik lossless compression. Hal ini menjawab kebutuhan dalam memperkecil ukuran suatu data untuk penyimpanan atau pengiriman tanpa merusak isinya. Spesifikasi yang diuraikan pada dokumen RFC 1951 DEFLATE Compressed Data Format Spesification Version 1.3 menjelaskan bahwa algoritma deflate mengkombinasikan algoritma LZ77 dan Huffman, mengambil konsep sliding-window dan prefix-tree. [8] Setelah dilakukan pengujian didapati bahwa algoritma Deflate ini efektif digunakan pada data teks dan data gambar bitmap. [14] Deflate adalah sebuah metode kompresi yang populer yang aslinya digunakan untuk software Zip dan Gzip yang sudah terkenal dan telah diadopsi ke dalam berbagai aplikasi penting, seperti: 1. Protokol HTTP ([RFC1945 96] dan [RFC2616 99]) 2. Protokol kontrol kompresi PPP compression control protocol ([RFC1962 96] dan [RFC1979 96]) 3. Format file citra PNG (Portable Network Graphics) dan MNG (Multiple- Image Network Graphics) 4. PDF (Portable Document File) Adobe [9] Dalam proses kompresinya, algoritma Deflate ini terlebih dahulu melakukan proses pengelompokan karakter dengan menggunakan algoritma LZ77. Kemudian hasil dari pengelompokan, karakter tersebut dikompresi lagi dengan menggunakan algoritma Huffman (Huffman Tree). [11] Algoritma Deflate ini bersifat loseless compression. Hal ini karena algoritma Deflate ini menggabungkan dua algoritma kompresi yang bersifat loseless. [2] Penggunaan kompresi LZ77 sebelumnya melihat teks sebagai sebuah kamus. Kompresi ini menggantikan frasa variable-length dalam teks input dengan pointer

dengan nilai tetap kedalam kamus untuk mencapai kompresi. Jumlah yang dikompresi tergantung dari seberapa panjang frasa yang ada dalam kamus, seberapa besar window dalam teks yang terlihat, dan entropi dari teks asal sesuai dengan model LZ77. Struktur data utama dalam LZ77 adalah sebuah window teks, dipisahkan ke dalam dua bagian. Bagian pertama berisikan sebuah blok dari teks yang baru dikodekan. Bagian yang kedua biasanya yang lebih kecil adalah look-ahead buffer. Look-ahead buffer berisi karakter-karakter yang dibaca dari stream input namun belum dikodekan. Ukuran normal dari window teks adalah beberapa ribu karakter. Look-ahead buffer umumnya lebih kecil, mungkin sepuluh sampai seratus karakter saja. Algoritma ini mencoba untuk mencocokan isi dari look-ahead buffer menjadi sebuah String di dalam kamus. [6] Algoritma dekompresi untuk LZ77 bahkan lebih sederhana, karena tidak perlu melakukan perbandingan. Algoritma ini membaca sebuah token, output dari frasa yang bersangkutan, output dari karakter itu, kemudian geser dan ulangi. Algoritma ini tetap menjaga window-nya, tapi tidak bekerja dengan pembandingan String. [6] Kode Huffman, dinamai atas penemunya yaitu D. A. Huffman, menghasilkan jumlah minimum dari kemungkinan kerangkapan dari sebuat set variable-length code dengan ukuran yang tetap. Ini tidak berarti bahwa algoritma Huffman adalah sebuah metode pengkodean yang optimal, namun dapat diartikan bahwa algoritma ini menghasilkan pendekatan terbaik untuk simbol-simbol kode ketika menggunakan kode dengan besar yang tetap. [6]