• Tidak ada hasil yang ditemukan

Analisis Perbandingan Algoritma Huffman Dan Algoritma Sequtur Dalam Kompresi Data Text

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis Perbandingan Algoritma Huffman Dan Algoritma Sequtur Dalam Kompresi Data Text"

Copied!
8
0
0

Teks penuh

(1)

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

(2)

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 :

RC =

... (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 :

CR =

× % ... (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.

RD = % − 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

(3)

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].

(4)

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

(5)

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.

(6)

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.

(7)

Fungsi Big-O Nama

O(1) Konstan

O(log n) Logaritmik

O(n) Linear

O(n log n) n log n

O(n2) Kuadratik

O(n3) Kubik

O(nm) 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(n2): Disebut kuadratik, karena peningkatan waktu eksekusi program akan sebanding dengan peningatan kuadrat jumlah data.

6. Kubik O(n3): Disebut kubik, karena peningkatan waktu eksekusi program akan sebanding dengan peningkatan pangkat tiga jumlah data.

(8)

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.

Gambar

Tabel 3.1 Kompleksitas Algoritma

Referensi

Dokumen terkait

Pada algoritma Run-Length metode yang digunakan adalah dengan mencari karakter yang berulang lebih dari 3 (tiga) kali pada suatu file untuk kemudian diubah menjadi

Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.. Dengan menggunakan besaran

Pada algoritma Run-Length metode yang digunakan adalah dengan mencari karakter yang berulang lebih dari 3 (tiga) kali pada suatu file untuk kemudian diubah menjadi

Pada algoritma Run-Length metode yang digunakan adalah dengan mencari karakter yang berulang lebih dari 3 (tiga) kali pada suatu file untuk kemudian diubah

Berdasarkan penelitian terdahulu yang dilakukan oleh Akhmad Pahdi pada tahun 2018 tentang “Algoritma Huffman dalam Pemampatan dan Enkripsi Data” menyatakan bahwa

Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.. Dengan menggunakan

Nama : Elsya Sabrina Asmita Simorangkir. Alamat Rumah

Perkembangan jaman yang semakin pesat membuat komputerisasi pada kehidupan sehari-hari semakin wajar. Data-data yang dahulu hanya disimpan dalam bentuk tercetak,