BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM :

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

Kode Huffman dan Penggunaannya dalam Kompresi SMS

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

BAB 2 LANDASAN TEORI

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

BAB 2 LANDASAN TEORI

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Algoritma Huffman dan Kompresi Data

Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding

Teknik Pembangkitan Kode Huffman

BAB IV HASIL DAN UJI COBA

Penerapan Pengkodean Huffman dalam Pemampatan Data

BAB 2 TINJAUAN PUSTAKA

PENINGKATAN EFISIENSI KODE HUFFMAN (HUFFMAN CODE) DENGAN MENGGUNAKAN KODE HUFFMAN KANONIK (CANONICAL HUFFMAN CODE)

BAB 2 LANDASAN TEORI

PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO

BAB 2 TINJAUAN PUSTAKA

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS ABSTRAK

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Aplikasi Penggambar Pohon Biner Huffman Untuk Data Teks

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

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

Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana

BAB 2 TINJAUAN PUSTAKA

Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC

KOMPRESI CITRA. Pertemuan 12 Mata Pengolahan Citra

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding

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

BAB 2 TINJAUAN PUSTAKA

JURNAL IT STMIK HANDAYANI

Penerapan Pohon Biner Huffman Pada Kompresi Citra

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

Pemampatan Citra. Esther Wibowo Erick Kurniawan

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

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

BAB II TINJAUAN PUSTAKA

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

BAB 2 TINJAUAN PUSTAKA

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

N, 1 q N-1. A mn cos 2M , 2N. cos. 0 p M-1, 0 q N-1 Dengan: 1 M, p=0 2 M, 1 p M-1. 1 N, q=0 2. α p =

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL

Pemampatan Citra Pemampatan Citra versus Pengkodean Citra

BAB 1 PENDAHULUAN 1-1

BAB 3 METODOLOGI PENELITIAN. kepustakaan dan studi laboratorium, di mana penulis mempelajari teori-teori teknik

BAB I PENDAHULUAN I-1

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

PENGANTAR KOMPRESI DATA

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

Kode Huffman. Arya Tri Prabawa Program Studi Teknik Informatika ITB, Bandung 40116,

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 2 LANDASAN TEORI

Analisa Perbandingan Rasio Kecepatan Kompresi Algoritma Dynamic Markov Compression Dan Huffman

Perbandingan Kompresi Data Dengan Algoritma Huffman Statik dan Adaptif

1. PENDAHULUAN 1.1. Latar Belakang Masalah

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

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

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

UNIVERSITAS BINA NUSANTARA

Implementasi Metode HUFFMAN Sebagai Teknik Kompresi Citra

KOMPRESI DATA MENGGUNAKAN METODE HUFFMAN Ari Wibowo Jurusan Teknik Informatika, Politeknik Negeri Batam

Teknik Kompresi Citra Menggunakan Metode Huffman

KINERJA DAN PERFORMA ALGORITMA KOMPRESSI LOSSLESS TERHADAP OBJEK CITRA DIGITAL

PENGENALAN BINARY INDEXED TREE DAN APLIKASINYA

Analisis Algoritma Huffman Statis Dalam Kompresi Teks Pada Short Message Service (SMS)

BAB 2 LANDASAN TEORI

PENDAHULUAN 1.1. Latar belakang

BAB III PERANCANGAN SISTEM

BAB II TINJAUAN PUSTAKA

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

BAB 1 PENDAHULUAN 1-1

BAB 2 LANDASAN TEORI

Kompresi Data dengan Kode Huffman dan Variasinya

BAB III METODOLOGI PENELITIAN

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

PEMAMPATAN DATA DENGAN KODE HUFFMAN (APLIKASI POHON BINER)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Pemampatan Data Sebagai Bagian Dari Kriptografi

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

RANCANG BANGUN SISTEM KOMPRESI DAN DEKOMPRESI DATA TEKS PADA SISTEM TELEPON SELULER BERBASIS HUFFMAN CODING

KOMPRESI FILE.TXT DENGAN ALGORITMA HUFFMAN PADA FILE DENGAN MENGGUNAKAN PENGKODEAN BASE-64 SKRIPSI. Oleh : LINGGA ADI FIRMANTO ( )

BAB II DASAR TEORI. 2.1 Pendahuluan

IMPLEMENTASI KOMPRESI DATA TEXT MENGGUNAKAN HUFFMAN CODING

SATUAN ACARA PERKULIAHAN ( SAP )

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

PEMAMPATAN CITRA (IMA

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

BAB 2 TINJAUAN PUSTAKA

Transkripsi:

6 BAB 2 LANDASAN TEORI 2.1. Kompresi Data Kompresi adalah mengecilkan/ memampatkan ukuran. Kompresi Data adalah teknik untuk mengecilkan data sehingga dapat diperoleh file dengan ukuran yang lebih kecil daripada ukuran file aslinya. Kompresi dibutuhkan untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi/pertukaran data [1]. Terdapat dua teknik dalam kompresi data yaitu losseles compression dan lossy compression. Losseles artinya tidak ada data yang hilang, menggunakan algortima tertentu untuk mengompres data (compress) dan mengembalikan ke ukuran semula (decompress) sehingga cocok untuk mengkompresi data berupa teks. Losseles Compression adalah teknik kompresi yang tidak mengurangi ukuran aslinya. Sedangkan Lossy artinya ada data yang hilang, bertujuan untuk mengefisienkan data. Ketika proses dekompresi dilakukan, maka output yang dihasilkan tidak sama dengan data aslinya. Lossy Compression adalah teknik kompresi yang mengurangi ukuran aslinya. Lossy Compression biasanya dipakai untuk mengompres data multimedia. Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim atau yang melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam hal kompresi data sehingga data yang diterima dapat dibaca/di-decode kembali dengan benar. 2.2. Parameter Analisis Kompresi Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa faktor yang biasa digunakan untuk menganalisa kualitas dari suatu teknik kompresi data [2] yaitu :

7 1. Ratio of Compression Ratio of Compression (RC) adalah nilai perbandingan antara ukuran bit data sebelum dikompresi dengan ukuran bit data yang telah dikompresi. Secara matematis dapat dituliskan sebagai berikut : R C = ukuran bit data sebelum dikompresi ukuran bit data setelah dikompresi... (1) 2. Compression Ratio Compression Ratio (CR) adalah persentase perbandingan antara data yang sudah dikompresi dengan data yang belum dikompresi. Secara matematis dapat dituliskan sebagai berikut : C R = ukuran bit data setelah dikompresi ukuran bit data sebelum dikompresi 100%... (2) 3. Redundancy Redundancy (RD) adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi setelah dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil seleisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi. R D = 100% CR 4. Time Process (Waktu Kompresi dan Dekompresi) Time Process (waktu kompresi dan dekompresi) adalah waktu yang dibutuhkan untuk melakukan proses kompresi dan dekompresi. Semakin kecil waktu yang diperoleh maka semakin efisien metode yang digunakan dalam proses kompresi dan dekompresi itu. 2.3. Algoritma Untuk membuat suatu data menjadi lebih kecil ukurannya daripada data asli, diperlukan tahapan-tahapan (algoritma) untuk mengolah data tersebut. Secara informal, algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai, atau seperangkat nilai sebagai input dan menghasilkan

8 nilai, atau seperangkat nilai sebagai output Algoritma juga merupakan kumpulan instruksi/perintah/langkah yang berhingga jumlahnya, dituliskan secara sistematis, dan digunakan untuk menyelesaikan masalah/persoalan logika dan matematika dengan bantuan komputer [3]. Berdasarkan pengertian algoritma tersebut, dapat disimpulkan bahwa algoritma merupakan suatu istilah yang luas, yang tidak hanya berkaitan dengan dunia komputer. Dalam algoritma kompresi data, tidak ada algoritma yang cocok untuk semua jenis data. Hal ini disebabkan karena data yang akan dimampatkan harus dianalisis terlebih dahulu, dan berharap menemukan pola tertentu yang dapat digunakan untuk memperoleh data dalam ukuran yang lebih kecil. Karena itu, muncul banyak algoritma-algoritma kompresi data [4]. 2.4. Algoritma Huffman Algoritma Huffman adalah salah satu algoritma kompresi tertua yang disusun oleh David Huffman pada tahun 1952. Algoritma tersebut digunakan untuk membuat kompresi jenis lossless compression, yaitu pemampatan data dimana tidak satu byte pun hilang sehingga data tersebut utuh dan disimpan sesuai dengan aslinya. Algoritma menggunakan prinsip pengkodean yang mirip dengan kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakter yang sering muncul dikodekan dengan rangkaian bit yang pendek dan karakter yang jarang muncul dikodekan dengan rangkaian bit yang lebih panjang [5]. Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi data yang dimasukkan) menjadi sekumpulan code-word, algoritma Huffman termasuk ke dalam kelas algoritma yang menggunakan metode statik, yaitu metode yang selalu menggunakan peta kode yang sama. Metode ini membutuhkan dua fase (two-phase), yaitu fase pertama untuk menghitung probabilitas kemunculan tiap simbol dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan [6].

9 2.4.1. Pembentukan Pohon Huffman ( Huffman Tree ) Kode pada dasarnya merupakan kode prefiks (prefix code), yaitu himpunan yang berisi sekumpulan kode biner, dimana pada kode prefiks ini tidak ada kode biner yang menjadi awalan bagi kode biner yang lain. Kode prefiks biasanya direpresentasikan sebagai pohon biner yang diberikan nilai atau label. Untuk cabang kiri pada pohon biner diberi label 0, sedangkan pada cabang kanan pada pohon biner diberi label 1. Rangkaian bit yang terbentuk pada setiap lintasan dari akar ke daun merupakan kode prefiks untuk karakter yang berpadanan. Pohon biner ini biasa disebut pohon. Langkah-langkah pembentukan pohon adalah sebagai berikut : 1. Baca semua karakter didalam teks dan hitung banyaknya kemunculan jenis karakter. 2. Gabungkan dua pohon yang mempunyai frekuensi terkecil pada sebuah akar. Ulangi langkah tesebut sampai bertemu daun. 3. Kodekan rangkaian bit yang telah dibaca dengan karakter di daun. Kode ini biasanya identik dengan pohon biner yang diberi label 0 untuk cabang kiri dan 1 untuk cabang kanan. 4. Ganti data yang ada dengan kode bit berdasarkan pohon biner. 5. Simpan jumlah bit untuk kode bit yang terbesar, jenis karakter yang diurutkan dari frekuensi keluarnya terbesar ke terkecil beserta data yang sudah berubah menjadi kode bit sebagai data hasil kompresi. 2.4.2. Proses Encoding Encoding adalah cara menyusun string biner dari teks yang ada. Encoding adalah cara nebyusun string biner dari teks yang ada. Proses encoding untuk satu karakter dimulai dengan membuat pohon terlebih dahulu. Setelah itu, kode untuk satu karakter dibuat dengan menyusun nama string biner yang dibaca dari akar sampai ke daun pohon.

10 Langkah-langkah untuk men-encoding suatu string biner adalah sebagai berikut : 1. Tentukan karakter yang akan di-encoding 2. Mulai dari akar, baca setiap bit yang ada pada cabang yang bersesuaian sampai ketemu daun dimana karakter itu berada 3. Ulangi langkah 2 sampai seluruh karakter di-encoding 2.4.3. Proses Decoding Decoding merupakan kebalikan dari encoding. Decoding berarti menyusun kembali data dari string biner menjadi sebuah karakter kembali. Decoding dapat dilakukan dengan dua cara, yang pertama dengan menggunakan tabel kode dan yang kedua dengan menggunakan pohon. Langkah-langkah men-decoding suatu string biner dengan menggunakan pohon adalah sebagai berikut : 1. Baca sebuah bit dari string biner. 2. Mulai dari akar 3. Untuk setiap bit pada langkah 1, lakukan traversal pada cabang yang bersesuaian. 4. Ulangi langkah 1, 2 dan 3 sampai bertemu daun. Kodekan rangkaian bit yang telah dibaca dengan karakter di daun. 5. Ulangi dari langkah 1 sampai semua bit di dalam string habis. 2.5. Algoritma Sequitur Algoritma Sequitur merupakan sebuah algoritma yang menyimpulkan tata bahasa bebas konteks (context-free grammar) ke dalam suatu pemampatan untuk mengurangi masukan yang berulang. Pada algoritma ini dikenal simbol nonterminal. Simbol tersebut merupakan unsur dari production rules (aturan-aturan yang digunakan untuk membangun sebuah kalimat) [7]. Susunan produksi dalam penulisan ulang terhadap simbol nonterminal terletak disebelah kiri produksi. Operasi sequitur terdiri dari pemastian sifat yang berlaku yaitu algoritma beroperasi menjalankan batasan didalam sebuah tata bahasa yang ketika diagram keunikan (digram uniqueness) dilanggar maka sebuah aturan baru dibentuk.

11 2.5.1. Digram Keunikan (Digram Uniqueness) Digram uniqueness mempunyai arti bahwa tidak ada pasangan dari simbol/ digram muncul lebih dari sekali dalam sebuah tata bahasa. Jika hal ini terjadi maka akan melanggar aturan batasan pertama (digram uniqueness) sehingga akan membentuk aturan baru (simbol non-terminal) yang akan menggantikan simbol/digram yang muncul lebih dari sekali. 2.6. Kompleksitas Algoritma Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang digunakan tidak saja harus benar, namun juga harus efesien. Efesiensi suatu algoritma dapat diukur dari waktu eksekusi algoritma dan kebutuhan ruang memori. Algoritma yang efesien adalah algoritma yang meminimumkan kebutuhan waktu dan ruang. Dengan menganalisis beberapa algoritma untuk suatu masalah, dapat diidentifikasi satu algoritma yang paling efesien. Besaran yang digunkan menjelaskan model pengukuran waktu dan ruang ini adalah kompleksitas algoritma. Kompleksitas algoritma terdiri dari dua macam, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu dinyatakan dengan T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n, dimana ukuran masukan (n) merupakan jumlah data yang diproses oleh sebuah algoritma. Sedangkan kompleksitas ruang S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari masukan n. Dengan menggunakan kompleksitas waktu dan ruang, dapat ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring dengan meningkatnya masukan (n). Terdapat beberapa jenis kelas efisiensi umum yang dijumpai dalam Big-O, yaitu dapat kita lihat pada tabel 3.1. berikut :

12 Tabel 3.1 Kompleksitas Algoritma Fungsi Big-O Nama O(1) Konstan O(log n) Logaritmik O(n) Linear O(n log n) n log n O(n 2 ) Kuadratik O(n 3 ) Kubik O(n m ) Polinomiale O(n!) Faktorial Keterangan Tabel : 1. Konstan O(1): Disebut konstan, karena program hanya dieksekusi dengan suatu nilai yang konstan. 2. Logaritmik O(log n): Disebut algoritma logaritmik, karena peningkatan waktu eksekusi sebanding dengan peningkatan logaritma dari jumlah data. 3. Linear O(n): Disebut linear, karena peningkatan waktu eksekusi sebanding dengan peningkatan data, dan merupakan kondisi optimal dalam membuat algoritma. 4. Linearitmik O(n log n): Disebut linearitmik, karena merupakan gabungan dari linear dan logaritmik. Algortima ini merupakan algoritma log n yang dijalankan sebanyak n kali. Biasanya digunakan untuk memecahkan masalah besar menjadi masalah yang kecil. 5. Kuadratik O(n 2 ): Disebut kuadratik, karena peningkatan waktu eksekusi program akan sebanding dengan peningatan kuadrat jumlah data. 6. Kubik O(n 3 ): Disebut kubik, karena peningkatan waktu eksekusi program akan sebanding dengan peningkatan pangkat tiga jumlah data. 7. Polinomiale O(n m ): Algoritma yang tidak efisien, karena memerlukan jumlah langkah penyelesaian yang jauh lebih besar daripada jumlah data.

13 8. Faktorial O(n!): Merupakan algoritma yang paling tidak efisien, karena waktu eksekusi program akan sebanding dengan peningkatan faktorial jumlah data. 2.7. Pengertian Data Teks Teks adalah kumpulan dari karakter karakter atau string yang menjadi satu kesatuan. Teks yang memuat banyak karakter didalamnya selalu menimbulkan masalah pada media penyimpanan dan kecepatan waktu pada saat transmisi data. Data teks merupakan file yang berisi informasi-informasi dalam bentuk teks. Data yang berasal dari dokumen pengolah kata, angka yang digunakan dalam perhitungan, merupakan contoh masukan data teks yang terdiri dari karakter, angka dan tanda baca. Masukan dan keluaran data teks direpresentasikan sebagai set karakter atau sistem kode yang dikenal oleh sistem komputer. Salah satu set karakter yang umum digunakan untuk masukan dan keluaran pada komputer yaitu ASCII (American Standard Code for Information Interchange). ASCII digunakan oleh untuk menunjukkan teks. Kode ASCII memiliki komposisi bilangan biner sebanyak 8 bit, dimulai dari 00000000 dan 11111111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan desimal.