• Tidak ada hasil yang ditemukan

implementasi algoritma kompresi data lzw menggunakan binary search tree based dictionary

N/A
N/A
Protected

Academic year: 2021

Membagikan "implementasi algoritma kompresi data lzw menggunakan binary search tree based dictionary"

Copied!
8
0
0

Teks penuh

(1)

Shandi Dani Kumara¹, Z.k. Abdurahman Baizal², Rimba Widhiana Ciptasari³

¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom

Abstrak

Pengkompresian data adalah melakukan pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data [1], terdapat banyak algoritma kompresi diantaranya LZW(Lemple-Ziv-Welch).

LZW yang pada dasarnya merupakan algoritma untuk mengkompresi filefile teks dan

menggunakan metode array based dictionary ini mempunyai kelemahan dalam hal memasukkan string dan pencarian string di dalam dictionarynya yang bersifat brute force oleh sebab itu dimungkinan untuk mengoptimalkan kinerja LZW dengan menggunakan struktur data lain untuk menangani dictionary nya yakni menggunakan sebuah binary search tree.

Struktur data binary search tree yang mempunyai karakteristik berbeda dengan struktur data array akan mempunyai dampak pada saat diterapkan sebagai dictionary dalam LZW yakni rasio hasil kompresi yang lebih besar dari LZW array based dictionary ini dikarenakan perbedaan cara menyimpan code word dalam dictionary. Struktur data BST membutuhkan lebih banyak informasi yang disimpan seperti anak kanan, akan kiri, parent, dan id dari setiap simpul dimana keadaan ini berbeda dengan array yang cukup menyimpan informasi indek dari setiap code word. Tugas akhir ini bertujuan untuk mengetahui faktor-faktor yang mempengaruhi rasio dan kecepatan kompresi maupun dekompresi algoritma LZW dengan binary search tree sebagai dictionary.

Kata Kunci : Kompresi, dekompresi, brute force, rasio, array based dictionary,

Abstract

Pengkompresian data adalah melakukan pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data [1], terdapat banyak algoritma kompresi diantaranya LZW(Lemple-Ziv-Welch).

LZW yang pada dasarnya merupakan algoritma untuk mengkompresi filefile teks dan

menggunakan metode array based dictionary ini mempunyai kelemahan dalam hal memasukkan string dan pencarian string di dalam dictionarynya yang bersifat brute force oleh sebab itu dimungkinan untuk mengoptimalkan kinerja LZW dengan menggunakan struktur data lain untuk menangani dictionary nya yakni menggunakan sebuah binary search tree.

Struktur data binary search tree yang mempunyai karakteristik berbeda dengan struktur data array akan mempunyai dampak pada saat diterapkan sebagai dictionary dalam LZW yakni rasio hasil kompresi yang lebih besar dari LZW array based dictionary ini dikarenakan perbedaan cara menyimpan code word dalam dictionary. Struktur data BST membutuhkan lebih banyak informasi yang disimpan seperti anak kanan, akan kiri, parent, dan id dari setiap simpul dimana keadaan ini berbeda dengan array yang cukup menyimpan informasi indek dari setiap code word. Tugas akhir ini bertujuan untuk mengetahui faktor-faktor yang mempengaruhi rasio dan kecepatan kompresi maupun dekompresi algoritma LZW dengan binary search tree sebagai dictionary.

(2)

1   

1.Pendahuluan

1.1 Latar Belakang

Media penyimpanan merupakan bagian yang penting bagi setiap perangkat elektronik baik itu personal komputer, laptop, handphone, kamera digital dan lain-lain.

Merupakan hal yang bijak jika kita ingin mengoptimalkan kapasitas media peyimpanan tanpa membeli hardisk, memory card, dan lain-lain dari jenis media

penyimpanan yang ada sekarang tetapi dengan mengkompresi atau memampatkan data-data tersebut agar mempunyai ukuran yang lebih kecil.

Pengkompresian data sendiri adalah melakukan pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data [1].

Terdapat banyak algoritma untuk mengkompresi data dengan berbagai macam metode antara lain metode dictionary dan metode predictive [2]. Sebagai

contoh dari metode dictionary adalah LZW (Lempel-Ziv-Welch) yang merupakan

contoh dari teknik kompresi data losless. LZW menggunakan sebuah dictionary

berbentuk array sebagai penyimpan indek-indek dari berbagai macam kombinasi

karakter dan string hasil dari proses dictionary array dimana metode ini dikenal

dengan array based dictionary [3].

LZW merupakan algoritma untuk mengkompresi file-file teks dan menggunakan struktur data array karena terdapat berbagai macam struktur data

dengan kompleksitas yang berbeda-beda dimungkinan untuk mengoptimalkan kinerja LZW dengan menggunakan struktur data lain untuk menangani

dictionary-nya yakni menggunakan struktur data BST (binary search tree).

Karakteristik struktur data yang berbeda antara BST dan array dalam hal

ini proses searching dan inserting memungkinkan mempunyai pengaruh saat

diterapkan pada algoritma LZW dalam pembahasan ini algorima LZW akan diemplementasikan menggunakan BST sebagai dictionary yang dikenal dengan

metode BST based dictionary [3], untuk mengukur kinerja pengkompresiannya

maka LZW BST akan diujikan dengan beberapa file teks.

1.2 Perumusan Masalah

Beberapa masalah yang dihadapi dalam mengimplementasikan algoritma kompresi data antara lain:

1. Di antara kedua metoda dalam algoritma LZW yakni array based dictionary dan LZW BST based dictionary mana yang lebih baik

dalam hal rasio kompresinnya untuk file-file teks

2. Bagaimana cara kerja algoritma kompresi LZW BST based dictionary.

3. Bagaimana kecepatan dan rasio algortima LZW saat menggunakan BST sebagai dictionary.

(3)

akan dikompresi, dan jumlah code word akan mempengaruhi rasio dan

kecepatan kompresi data LZW binary search tree based dictionary.

Gambar1- 1 Alur kerja Algoritma LZW BST based dictionary

1.3 Tujuan

Dari penelitian ini akan diperoleh:

1Menganalisis kelebihan dan kekurangan algoritma LZW binary search tree based dictionary untuk kompresi file-file teks.

2Menganalisis faktor-faktor yang memperngaruhi rasio dan kecepatan hasil kompresi pada LZW binary search tree based dictionary.

3Mengetahui mana yang lebih baik dalam hal rasio kompresi antara LZW

(4)

3   

1.4 Metode Penyelesaian Masalah

Metode Penyelesaian Masalah yang dilakukan untuk implementasi penelitian tersebut adalalah

1. Tahap studi literatur dan kepustakaan

Pada tahap ini akan dilakukan pencarian referensi, pendalaman konsep dan teori tentang kompresi data, algoritma LZW dan struktur data

Binary search tree.

2. Tahap Analisis Kebutuhan Perangkat Lunak.

Menganalisa dan menentukan kebutuhan perangkat lunak yang akan dibangun antara lain class, method dan interface, serta Membangun perangkat lunak dengan pendekatan pemrograman berorientasi objek. 3. Tahap Pembangunan Perangkat Lunak

Mengimplementasikan perangkat lunak dengan menggunakan bahasa c++.net sesuai dengan mengikuti hasil dari tahap analisa kebutuhan perangkat lunak.

4. Pengujian Perangkat Lunak

Melakukan pengujian terhadap perangkat lunak agar sesuai dengan tujuan penelitian.

5. Tahap Penyusunan Dokumen dan Laporan Analisis

(5)

Struktur Pembahasan Tugas Akhir ini disusun sebagai berikut: BAB 1 Pendahuluan

Berisi latar belakang masalah, perumusan masalah dan batasan masalahnya, metodologi penyelesaian masalah serta sistematika penulisan.

BAB 2 Landasan Teori

Berisi dasar teori tentang pengertian kompresi dan jenis-jenis metode kompresi data, algoritma kompresi data LZW, dan struktur data binary search tree (BST).

BAB 3 Analisa dan Desain Sistem

Berisi tentang gambaran umum sistem, fungsionalitas yang terdapat dalam sistem, alur kerja dari metode array dan BST ketika dipakai sebagi dictionary dalam kompresi LZW, spesifikasi kebutuhan sistem baik perangkat lunak atau perangkat keras.

BAB 4 Pengujian Sistem

Berisi skenario-skenario pengujian, hasil pengujian dari skenario yang dipakai, dan perancangan sistem.

BAB 5 Kesimpulan

Berisi kesimpulan yang dirumuskan dari dasar teori, desain dan perancangan sistem, serta fakta dari hasil pengujian sistem dilengkapi dengan saran dan pengembangan terhadap sistem.

(6)

39   

5. Kesimpulan dan Saran

5.1

Kesimpulan

1. Rasio hasil kompresi LZW array based dictionary lebih kecil dari LZW

BST based dictionary karena perbedaan informasi yang disimpan untuk

mewakili setiap code word, dalam LZW BST based dictionary setiap

simpul harus menyimpan informasi tambahan yang merupakan atribut dari struktur data BST yakni anak kanan, anak kiri, id dari setiap node, dan parent sedangkan LZW array based dictionary setiap code word hanya

menyimpan informasi dari indek yg dihasilkan oleh algoritma LZW.

2. Penerapan BST sebagai dictionary dalam algoritma LZW akan

mempengaruhi rasio hasil kompresi. Rasio hasil kompresi dalam LZW BST based dictionary dipengaruhi oleh faktor besar bit dictionary dan

jumlah code word yang dihasilkan. Besar bit yang dipakai menyatakan

berapa besar bit yang digunakan untuk mewakilkan setiap code word yang

dihasilkan semakin besar bit dictionary semakin besar hasil kompresi

demikian juga semakin banyak code word yang dihasilkan semakin besar

pula besar file hasil kompresi.

3. Kecepatan kompresi dan dekompresi dipengaruhi oleh total code word yang dihasilkan karena setiap code word membutuhkan proses untuk penyelesaiannya maka semakin banyak code word yang dihasilkan semakin lama algoritma kompresi akan memproses. Penggunaan bit ditctionary yang berbeda tidak mempengaruhi kecepatan karena bit dictionary hanya menyatakan total maksimal code word yang dapat

disimpan.

4. Kecepatan kompresi algoritma LZW dengan menggunakan struktrur data

BST sebagai dictionary lebih baik dalam hal kompleksitas algoritmanya

karena perbedaan proses saat melakukan inserting dan searching dimana

BST mempunyai kompleksitas O(Log(N) sedangkan array O(N) dengan N

menyatakan jumlah code word dimana struktur data array akan melakukan

proses searching secara brute force dari indek awal sampai akhir terlebih

dulu sebelum melakukan inserting code word baru ke dictionary.

5. Tipe karakter inputan akan mempengaruhi performansi LZW BST based dictionary karena semakin sering suatu code word muncul akan berakibat

pada semakin pendeknya pohon yang dibentuk sehingga berdampak pada kecepatan searching dan insertng suatu code word dalam dictionary.

(7)

1. Algoritma kompresi LZW akan semakin baik jika dapat menggabungkan rasio yang kecil dan kecepatan kompresi dan dekompresinya. Rasio akan lebih baik ketika menggunakan strutur data array sedangkan kecepatan

akan lebih baik ketika menggunakan strutur data BST.

2. Penggunaan fungsi hash memungkinkan lebih cepat dalam proses searching

3. Kecepatan kompresi akan dapat ditingkatkan ketika mampu membuat struktur BST dalama struktur pohon yang seimbang.

4. Hasil pembandingan kecepatan kompresi dengan melakukan pembandingan dengan LZW array based dictionary akan memiliki nilai

yang lebih tepat jika diimplementasikan juga LZW array based dictionary

(8)

41   

Daftar Pustaka

[1] Howe, D., “Free On-line Dictionary of Computing”,

http://www.foldoc.org/,1993.

[2] Ben Zhao, et al., “Algorithm in the RealWorld - (Compression) Scribe Notes”,http://www-2.cs.cmu.edu/~guyb/realworld/class-notes/all/, 1998, [17 Jan 2002]

[3] Dispertein, Michael, Lempel-Ziv-Welch (LZW) Encoding Discussion and Implementation,http://www.michael.dipperstein.com

[4] Munir, Rinaldi, “Matematika Diskrit”, Informatika, Bandung.

[5] http://corpus.canterbury.ac.nz/ftp/large.zip.

[6] ftp://ftp.cpsc.ucalgary.ca/pub/ projects/text.compression.corpus.

[7] Salomon, David., “Data Compression The Complete Reference Third Edition ”,Springer, 2004.

[8] Yao, Zhen. Rajpoot, Nasir, Less Redundant Codes for Variable Size

Dictionaries.

[9] Hariyanto, Bambang, “Struktur Data-Memuat dasar pengembangan orientasi objek” edisi kedua, Informatika, Bandung, 2003.

[10] McGill University: School of Computer Science, Winter 1997 Class Note For 308-251, Data Struture and Algorithm Topic #9: Binary Search Tree. [11] Rahmat, Antonius C., “Handout Struktur Data-Manipulasi Tree”,

Universitas UKDW. [12] http://www.codeproject.com/KB/recipes/LZW.aspx [13] http://www.data-compression.info/Corpora/CanterburyCorpus/index.htm [14] [15] [16] http://en.wikipedia.org/wiki/Lzw http://69.10.233.10/KB/recipes/LZWCompression.aspx

Tolle, Herman. ST, MT, ‘Teknik kompresi lossless”, Universitas Brawijaya.

Powered by TCPDF (www.tcpdf.org)

Referensi

Dokumen terkait

This was a survey study that used the descriptive data, Customer Response Index (CRI) and independent samples t-test to test the difference in effectiveness between the

Sedangkan  Siswa  emosional  dapat  diartikan  sebagai  siswa  yang  mengalami  emosi  yang  tidak  normal,  keadaan  emosi  yang  dialami  mengakibatkan  gangguan 

Selanjutnya dari wawancara yang dilakukan dengan peneliti, bapak Ahmad selaku WAKA Kurikulum menjelaskan secara rinci penilaian yang dilakukan oleh pihak sekolah

Kelebihan dari teori ini adalah meneliti suatu kejadian kecalakaan secara menyeluruh sampai pada titik manajemen sedangkan kelemahan pada teori ini adalah tidak meneliti

Teguh Praludi, “Desain dan Realisasi Filter Bandpass Mikrostrip dengan Struktur Hairpin”, 13(1): 33 – 37 Yaya Sulaeman, “Desain dan Realisasi Filter Bandpass Mikrostrip

Paritas terbanyak pada pasien sectio caesarea adalah yang telah melahirkan lebih dari sekali, yaitu sebanyak 206 orang (69,4%).. Mayoritas pasien sectio caesarea adalah

Perkembangan manusia pada masa bayi (infancy) yang dimulai pada usia 0-3 tahun merupakan tahap kedua dari perjalanan hidup manusia. Pada masa ini pertumbuhan

Dari penjelasan di atas dapat disimpulkan, bahwa perekonomian Negara Jepang mengalami dinamika yang sangat menarik untuk dicermati di mana Negara Jepang mengalami