tugas besar sistem multimedia

77
Perbandingan Kompresi Citra menggunakan Algoritma DMC ( Dynamic Marcov Compression ) Dan Algoritma Huffman Diajukan untuk Memenuhi tugas besar Mata kuliah Sistem Multimedia Irawan Afrianto, S.T. Disusun Oleh: Aloysius R.P. / 10107298 Cephi Saepul Rohman / 10107311 Raden Sofian / 10107318 Rahmadsyah / 10107313 Restiana Ayunita / 10107286 Samudra Andalan / 10107283

Upload: khrisnajm

Post on 25-Jun-2015

518 views

Category:

Documents


10 download

TRANSCRIPT

Perbandingan Kompresi Citra menggunakan Algoritma DMC ( Dynamic Marcov Compression ) Dan Algoritma Huffman

Diajukan untuk Memenuhi tugas besar Mata kuliah Sistem Multimedia

Irawan Afrianto, S.T.

Disusun Oleh: Aloysius R.P. / 10107298 Cephi Saepul Rohman / 10107311 Raden Sofian / 10107318 Rahmadsyah / 10107313 Restiana Ayunita / 10107286 Samudra Andalan / 10107283

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA BANDUNG 2009

Kata Pengantar

Puji syukur kehadirat Allah SWT, karena hanya dengan karunia dan rahmat-Nya kami dapat menyelesaikan tugas ini dengan baik. Tugas ini berjudul Perbandingan Kompresi Citra menggunakan Algoritma DMC ( Dynamic Marcov Compression ) dan Algoritma . Makalah ini membahas perbandingan kinerja dua algoritma kompresi yang masing-masing menggunakan teknik pengkodean yang berbeda, yaitu algoritma Huffman, dan DMC (Dynamic Markov Compression). Kedua algoritma tersebut diimplementasikan ke dalam sebuah perangkat lunak lalu kinerjanya diukur berdasarkan rasio ukuran file hasil kompresi terhadap file awal dan kecepatan kompresi. Disimpulkan bahwa dalam hal rasio hasil kompresi, secara rata-rata DMC merupakan yang terbaik dan Huffman merupakan yang terburuk, sedangkan dari sisi kecepatan kompresi, DMC merupakan yang terbaik. Terdapat beberapa jenis file yang tidak tepat untuk dikompresi dengan metode tertentu karena justru menghasilkan file hasil kompresi yang berukuran lebih besar. Penulis menyadari dalam penyusunan Tugas ini masih jauh dari sempurna, mengingat keterbatasan ilmu yang penulis miliki. Meskipun demikian penulis telah berusaha menyelesaikan dengan segenap kemampuan yang penulis punya. Dalam proses penyusunan tugas ini, penulis telah banyak menerima bimbingan, saran dan bantuan dari berbagai pihak baik materil maupun moril. Maka pada kesempatan ini dengan segala kerendahan dan kerendahan hati penulis meminta maaf atas kekurangan pada materi ini.

i

ii

Bandung, 28 Desember 2009

Penulis

Ucapan Terima KasihPenyusunan tugas ini, tidak terlepas dari bantuan dan dukungan dari berbagai pihak. Oleh karena itu, penulis menyampaikan ucapan terima kasih dan penghargaan yang sebesar-besarnya kepada : 1. Orang tua yang selalu mendoakan dan memberikan dukungan yang tiada henti-hentinya kepada penulis. 2. Bapak Irawan Afrianto. S.T., Selaku Dosen Mata kuliah Sistem Multimedia. 3. Rekan-rekan kelas IF-10 serta semua pihak yang tidak dapat disebutkan namanya satu persatu yang telah membantu selama ini. Dengan penuh harapan, semoga tugas ini dapat bermanfaat bagi penulis khususnya dan bagi semua pihak yang membaca tugas ini umumnya.

iii

Daftar IsiKata Pengantar ................................ ................................ ................................ ..... i Ucapan Terima Kasih ................................ ................................ ......................... iii Daftar Isi ................................ ................................ ................................ ............ iv Daftar Gambar ................................ ................................ ................................ .. viii Daftar Tabel ................................ ................................ ................................ ....... ix Daftar Grafik ................................ ................................ ................................ ....... x Bab I................................ ................................ ................................ .................... 1 Pendahuluan ................................ ................................ ................................ ........ 1 1.1 1.2 1.3 1.4 1.5 Latar Belakang ................................ ................................ ............. 1 Maksud dan Tujuan ................................ ................................ ...... 2 Identifikasi Masalah ................................ ................................ ..... 3 Batasan Masalah ................................ ................................ ........... 3 Metodologi Penelitian ................................ ................................ ... 4 1.5.1 Metodologi Pengumpulan Data ................................ ......... 4 1.5.2 Metodologi Pengembangan Perangkat Lunak .................... 4 1.6 Sistematika Penulisan ................................ ................................ ... 6

Bab II ................................ ................................ ................................ .................. 7 Landasan Teori ................................ ................................ ................................ .... 7 2.1 Kompresi Citra ................................ ................................ ............. 7

iv

v

2.2

Teknik kompresi citra ................................ ................................ ... 7 2.2.1 Lossy Compression: ................................ .......................... 7 2.2.2 Loseless Compression: ................................ ...................... 8

2.3

Hal Penting Dalam Kompresi Citra................................ ............... 8 2.3.1 Scalability/Progressive Coding/Embedded Bitstream......... 8 2.3.2 Pengukuran Error Kompresi Citra ................................ ..... 9

2.4 2.5 2.6

Algoritma Kompresi / Dekompresi Citra................................ ..... 10 Algoritma Huffman ................................ ................................ .... 11 Algoritma DMC ................................ ................................ ......... 13

Bab III ................................ ................................ ................................ ............... 16 Analisis dan Perancangan ................................ ................................ .................. 16 3.1 3.2 3.3 Analisis Masalah ................................ ................................ ........ 16 Penyelesaian Masalah ................................ ................................ . 17 Analisis Kebutuhan Sistem ................................ ......................... 18 3.3.1 Perangkat lunak pendukung penelitian ............................. 19 3.3.2 Perangkat keras pendukung penelitian ............................. 19 3.3.3 Analisis Kebutuhan Pengguna (User) .............................. 19 3.4 Perancangan Sistem ................................ ................................ .... 19 3.4.1 Encode ................................ ................................ ............ 20 3.4.1.1 DMC................................ ................................ . 20 3.4.1.2 Huffman ................................ ........................... 23

vi

3.4.2 Decode ................................ ................................ ............ 24 3.4.2.1 DMC................................ ................................ . 24 3.4.2.2 Hufman ................................ ............................. 25 3.5 Perancangan Antar Muka................................ ............................ 28 3.5.1 Perancangan Splash Screen ................................ ............. 28 3.5.2 Perancangan Menu Utama ................................ ............... 29 3.5.3 Perancangan About Program ................................ ........... 31 3.5.4 Perancangan Help................................ ............................ 32 Bab IV ................................ ................................ ................................ ............... 33 Implementasi ................................ ................................ ................................ ..... 33 4.1 4.2 Implementasi Sistem................................ ................................ ... 33 Spesifikasi ................................ ................................ .................. 33 4.2.1 Spesifikasi Perangkat Lunak ................................ ............ 34 4.2.2 Spesifikasi Perangkat Keras................................ ............. 34 4.3 4.4 4.5 Simulasi Program ................................ ................................ ....... 34 Penggunaan Program Kompresi ................................ .................. 35 Pengujian Citra ................................ ................................ ........... 36 4.5.1 Pengujian Kompresi dengan Metode Black Box ............... 36 4.5.2 Pengujian Dekompresi dengan Metode Black Box ........... 38 4.5.3 Pengujian dengan membandingkan hasil kompresi .......... 39 4.5.3.1 DMC................................ ................................ . 39

vii

4.5.3.2 Huffman ................................ ........................... 39 4.5.4 Pengujian dengan membandingkan hasil Dekompresi...... 40 4.5.4.1 DMC................................ ................................ . 40 4.5.4.2 Huffman ................................ ........................... 40 4.6 Analisis Hasil Pengujian ................................ ............................. 41 4.6.1 Grafik Perbandingan Kapasitas Hasil Kompesi................ 41 4.6.2 Grafik Perbandingan Rasio Kompresi.............................. 41 4.6.3 Grafik Perbandingan Persentase Kompresi ...................... 42 Bab V ................................ ................................ ................................ ................ 43 Kesimpulan dan Saran ................................ ................................ ....................... 43 5.1 5.2 Kesimpulan ................................ ................................ ................ 43 Saran ................................ ................................ .......................... 43

Daftar Pustaka ................................ ................................ ................................ ... 44

Daftar GambarGambar 1.5.2.1 Model Waterfall................................ ................................ .......... 4 Gambar 2.6.1 Model awal DMC ................................ ................................ ........ 14 Gambar 2.6.2 Sebuah model yang diciptakan oleh metode DMC ....................... 14 Gambar 3.2.1 Flowchart penyelesaian masalah................................ .................. 17 Gambar 3.4.1.1.1 Sebuah model yang diciptakan oleh metode DMC ................. 20 Gambar 3.4.1.1.2 Flowchart proses pemampatan citra (encode)......................... 22 Gambar 3.4.1.2.1 Flowchart proses encode menggunakan Huffman................... 24 Gambar 3.4.2.1.1 Flowchart proses decode menggunakan DMC ....................... 25 Gambar 3.4.2.2.1 Flowchart proses decode menggunakan Huffman................... 26 Gambar 3.4.2.2.2 Pohon huffman untuk Karakter ABACCDA ....................... 26 Gambar 3.5.1.1 Tampilan Splash Screen ................................ ............................ 28 Gambar 3.5.2.1 Tampilan Menu Utama ................................ ............................. 29 Gambar 3.5.3.1 Tampilan About Program................................ .......................... 31 Gambar 3.5.4.1 Tampilan Help ................................ ................................ .......... 32 Gambar 4.4.1 Splash Screen ................................ ................................ .............. 35 Gambar 4.4.2 Menu Utama ................................ ................................ ................ 36

viii

Daftar TabelTabel 2.5. 1 ................................ ................................ ................................ ........ 12 Tabel 3.4.2.2.1 Kode Huffman untuk Karakter ABCD ................................ .... 27 Tabel 3.5.1.1 Deskripsi antarmuka Splash Screen ................................ .............. 28 Tabel 3.5.2.1 Deskripsi antarmuka Menu Utama................................ ................ 29 Tabel 3.5.3.1 Deskripsi antarmuka About Program ................................ ............ 31 Tabel 3.5.4.1 Deskripsi antarmuka Help ................................ ............................ 32 Tabel 4.5.1.1 Pengujian Kompresi dengan algoritma DMC dan Huffman .......... 36 Tabel 4.5.2.1 Pengujian Dekompresi dengan algoritma DMC dan Huffman ...... 38 Tabel 4.5.3.1.1 Hasil kompresi dengan DMC ................................ ..................... 39 Tabel 4.5.3.2.1 Hasil kompresi dengan Huffman................................ ................ 39 Tabel 4.5.4.1.1 Hasil dekompresi dengan DMC ................................ ................. 40 Tabel 4.5.4.2.1 Hasil dekompresi dengan Huffman ................................ ............ 40

ix

Daftar GrafikGrafik 4.6.1.1 Grafik perbandingan kapasitas hasil kompresi ............................. 41 Grafik 4.6.2.1 Grafik perbandingan rasio hasil kompresi................................ .... 41 Grafik 4.6.3.1 Grafik perbandingan persentase kompresi ................................ ... 42

x

Bab I Pendahuluan1.1 Latar Belakang Dalam dunia komputer dan internet, pemampatan file digunakan dalam berbagai keperluan, jika anda ingin mem-backup data, anda tidak perlu menyalin semua file aslinya, dengan memampatkan (mengecilkan ukurannya) file tersebut terlebih dahulu maka kapasitas tempat penyimpanan yang diperlukan akan menjadi lebih kecil. Jika sewaktu-waktu data tersebut anda perlukan, baru dikembalikan lagi ke file aslinya. Down-load dan Up-load file suatu pekerjaan yang kadang mengesalkan pada dunia internet, setelah menghabiskan beberapa waktu kadang -kadang hubungan terputus dan kita harus melakukannya lagi dari awal, hal ini sering terjadi pada file-file yang berukuran besar. Untunglah file-file tersebut dapat dimampatkan ( dikompres ) terlebih dahulu sehingga waktu yang diperlukan akan menjadi lebih pendek dan kemungkinan pekerjaan down-load dan up-load gagal akan menjadi lebih kecil. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data. 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. Saat ini terdapat beberapa algoritma kompresi. Sebagai contoh Huffman dan Dynamic Markov Compression (DMC). Kedua algoritma ini menggunakan teknik

1

2

lossless yaitu tidak menghilangkan informasi sedikitpun, hanya mewakilkan beberapa informasi yang sama. DMC menggunakan peta kode yang dapat berubah dari waktu ke waktu. Metode ini disebut adaptif karena peta kode mampu beradaptasi terhadap perubahan karakteristik isi file selama proses kompresi berlangsung. Metode ini bersifat onepass, karena hanya diperlukan satu kali pembacaan terhadap isi file. Untuk itu akan dibandingkan antara Algoritma DMC dengan Algoritma Huffman dengan tujuan melihat bagaimana kinerja kedua algoritma. Algoritma Huffman menggunakan teknik yang sama yaitu lossless. prinsip pengkodean yang mirip dengan kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakte yang sering r muncul dikodekan dengan rangkaian bit yang pendek dan karakter yang jarang muncul dikodekan dengan rangkaian bit yang lebih panjang. Berdasarkan uraian tersebut diatas, maka kami membuat sebuah program aplikasi kompresi citra dengan menggunakan metode Dynamic Marcov Compression (DMC) dan Huffman. Oleh karena itu, dalam tugas kali ini kami mengambil judul Perbandingan Kompresi Citra menggunakan Algoritma DMC ( Dynamic Marcov Compression ) dan Algoritma Huffman .

1.2

Maksud dan Tujuan Maksud dari pengerjaan tugas besar ini adalah membuat sebuah aplikasi

kompresi citra, dengan mengimplementasikan algoritma Dynamic Marcov Compression (DMC) dan Huffman untuk mengkompresi citra digital. Sedangkan tujuan yang ingin dicapai dari penelitian ini adalah:

3

a. Membandingkan ukuran file kompresi yang dihasilkan algoritma DMC dengan algoritma Huffman. b. Memperkecil kapasitas citra sehingga dapat mengurangi kebutuhan akan media penyimpanan data dan mempercepat pengiriman data.

1.3

Identifikasi Masalah Semakin berkembangnya perangkat media citra digital membawa

pengaruh besar pada media penyimpanan dan media transmisi yaitu dengan semakin baik kualitas citra, maka semakin besar pula media penyimpanan yang dibutuhkan serta media transmisinya pun harus memiliki bandwidth yang besar pula. Berdasarkan uraian masalah di atas dapat diidentifikasi sebagai berikut: a. Bagaimana melakukan kompresi dengan menggunakan algoritma DMC. b. Bagaimana membuat sebuah perangkat lunak yang menghasilkan file kompresi yang cukup baik.

1.4

Batasan Masalah Karena permasalahan tentang kompresi ini cukup luas, maka dalam tugas

ini kami membatasi ruang lingkup permasalahannya sebagai berikut : 1. Data yang dicoba untuk dimampatkan adalah file berformat bitmap ( berekstensi .bmp 24bpp ). 2. Proses kompresi dan dekompresi menggunakan algoritma yang sama tetapi berlawanan arah. 3. Bahasa pemrograman yang digunakan adalah Borland Delphi 7.

4

4. Al

it

kompresi yang akan digunakan adalah algoritma DMC (

Dynamic Marcov Compression ) dan algoritma Huffman.

1.5

Metodologi eneliti n Metodologi yang digunakan dalam penulisan tugas besar ini adalah

sebagai berikut : 1.5.1 Metodologi Pengumpul n Data Adapun teknik-teknik yang digunakan dalam mengumpulkan data adalah: a. Studi pustaka atau studi literatur, Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan -bacaan yang ada kaitannya dengan judul penelitian.

1.5.2 Metodologi Pengembangan Perangkat Lunak Dalam pengembangan aplikasi ini digunakan metode The Classic Life Cycle (Paradigma Waterfall). Pada metode ini terdapat 5 tahap untuk mengembangkan suatu perangkat lunak. Kelima tahapan itu tersusun dari atas kebawah, diantaranya : Analysis, Design, Coding, Testing, Maintenance. Tahap-tahap pengembangan perangkat lunak metode waterfall dapat dilihat pada gambar :

Gambar 1.5.2.1 Model Waterfall

5

1. Analisis Permasalahan Pada tahap ini, akan dilakukan analisis terhadap masalah jenis file apa saja yang akan dikompres. 2. Desain Pada tahap desain akan dilakukan perancangan antarmuka program. 3. Pembuatan Coding Tahap menterjemahkan perancangan kedalam bentuk bahasa yang dapat dimengerti oleh komputer. 4. Pengujian Tahap pengujian yaitu tahap untuk memastikan bahwa sebuah program aplikasi terbebas dari kesalahan (error), baik itu kesalahan dari sistem maupun dari user yang menggunakannya (Human Error). Pengujian sistem dilakukan mulai dari memasukan data, kemudian

memprosesnya hingga keluaran yang dihasilkannya. Jika terjadi error, maka akan dilakukan perbaikan hingga hasil sesuai dengan yang diharapkan. 5. Pemeliharaan Pada tahap pemeliharaan akan dilakukan penyesuaian apabila perangkat lunak mengalami perubahan seperti perubahan yang diakibatkan kemampuannya kurang maksimal untuk tipe file tertentu. Misalnya perangkat keras yang digunakan berubah ataupun sistem operasi yang berubah.

6

Khusus untuk tahap pemeliharaan, tidak dilakukan karena tahap pembangunan perangkat lunak hanya akan sampai tahap pengujian.

1.6

Sistematika Penulisan Sistematika dari penulisan skripsi ini adalah sebagai berikut: BAB I PENDAHULUAN Bab ini berisi mengenai latar belakang masalah, maksud dan tujuan, identifikasi masalah, batasan masalah, metodologi penelitian, dan sistematika penulisan. Bab II LANDASAN TEORI Pada bagian ini menjelaskan mengenai konsep dasar dan teoriteori dari penelitian yang digunakan. Bab III ANALISIS DAN PERANCANGAN SISTEM Bab ini akan menjelaskan analisis sistem dan rancangan umum dari aplikasi yang akan dibuat serta algoritma-algoritma yang akan diterapkan pada masalah kompresi citra digital. Bab IV IMPLEMENTASI DAN PENGUJIAN SISTEM Bab ini menyajikan penerapan algoritma-algoritma yang digunakan untuk membuat program aplikasi kompresi citra. Serta pengujian program aplikasinya. Bab V KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dari saran yang telah disampaikan dari bab-bab sebelumnya.

Bab II Landasan Teori2.1 Kompresi Citra Kompresi Citra adalah aplikasi kompresi data yang dilakukan terhadap citra digital dengan tujuan untuk mengurangi redundansi dari data-data yang terdapat dalam citra sehingga dapat disimpan atau ditransmisikan secara efisien.

2.2 2.2.1

Teknik kompresi citra Lossy Compression: Ukuran file citra menjadi lebih kecil dengan menghilangkan beberapa

informasi dalam citra asli. Teknik ini mengubah detail dan warna pada file citra menjadi lebih sederhana tanpa terlihat perbedaan yang mencolok dalam pandangan manusia, sehingga ukurannya menjadi lebih kecil. Biasanya digunakan pada citra foto atau image lain yang tidak terlalu memerlukan detail citra, dimana kehilangan bit rate foto tidak berpengaruh pada citra. Beberapa teknik loseless: Color reduction: untuk warna-warna tertentu yang mayoritas dimana informasi warna disimpan dalam color palette. Chroma subsampling: teknik yang memanfaatkan fakta bahwa mata manusia merasa brightness (luminance) lebih berpengaruh daripada warna (chrominance) itu sendiri, maka dilakukan pengurangan 7

8

resolusi warna dengan disampling ulang. Biasanya digunakan pada sinyal YUV. Transform coding: menggunakan Fourier Transform seperti DCT.o Fractal Compression: adalah suatu metode lossy untuk

mengkompresi citra dengan menggunakan kurva fractal. Sangat cocok untuk citra natural seperti pepohonan, pakis,

pegunungan, dan awan.o Fractal Compression bersandar pada fakta bahwa dalam sebuah

image, terdapat bagian-bagian image yang menyerupai bagian bagian image yang lain.o Proses kompresi Fractal lebih lambat daripada JPEG sedangkan

proses dekompresinya sama. 2.2.2 Loseless Compression: Teknik kompresi citra dimana tidak ada satupun informasi citra yang dihilangkan. Biasa digunakan pada citra medis. Metode loseless: Run Length Encoding, Entropy Encoding (Huffman, Aritmatik), dan Adaptive Dictionary Based (LZW). 2.3 Hal Penting Dalam Kompresi Citra

2.3.1 Scalability/Progressive Coding/Embedded Bitstream Scalability adalah kualitas dari hasil proses pengkompresian citra karena manipulasi bitstream tanpa adanya dekompresi atau rekompresi. Biasanya dikenal pada loseless codec. Contohnya pada saat preview image sementara image tersebut didownload. Semakin baik scalability, makin bagus preview image.

9

Tipe scalability: Quality progressive: dimana image dikompres secara perlahanlahan dengan penurunan kualitasnya Resolution progressive: dimana image dikompresi dengan mengenkode resolusi image yang lebih rendah terlebih dahulu baru kemudian ke resolusi yang lebih tinggi. Component progressive: dimana image dikompresi berdasarkan komponennya, pertama mengenkode komponen gray baru

kemudian komponen warnanya. Region of Interest Coding: daerah-daerah tertentu dienkode dengan kualitas yang lebih tinggi daripada yang lain. Meta Information: image yang dikompres juga dapat memiliki meta information seperti statistik warna, tekstur, small preview image, dan author atau copyright information

2.3.2 Pengukuran Error Kompresi Citra Dalam kompresi image terdapat suatu standar pengukuran error (galat) kompresi: MSE (Mean Square Error), yaitu sigma dari jumlah error antara citra hasil kompresi dan citra asli. Peak Signal to Noise Ratio (PSNR), yaitu untuk menghitung peak error. Nilai MSE yang rendah akan lebih baik, sedangkan nilai PSNR yang tinggi akan lebih baik.

10

2.4

Algoritma Kompresi / Dekompresi Citra Algoritma umum untuk kompresi image adalah: Menentukan bitrate dan toleransi distorsi image dari inputan user. Pembagian data image ke dalam bagian-bagian tertentu sesuai dengan tingkat kepentingan yang ada (classifying). Menggunakan salah satu teknik: DWT (Discreate Wavelet Transform) yang akan mencari frekuensi nilai pixel masing-masing,

menggabungkannya menjadi satu dan mengelompokkannya Pembagian bit-bit di dalam masing-masing bagian yang ada (bit allocation). Lakukan kuantisasi (quantization).o Kuantisasi Scalar : data-data dikuantisasi sendiri-sendiri o Kuantisasi Vector : data-data dikuantisasi sebagai suatu

himpunan nilai-nilai vektor yang diperlakukan sebagai suatu kesatuan. Lakukan pengenkodingan untuk masing-masing bagian yang sudah dikuantisasi tadi dengan menggunakan teknik entropy coding (huffman dan aritmatik) dan menuliskannya ke dalam file hasil.

Sedangkan algoritma umum dekompresi image adalah: Baca data hasil kompresi menggunakan entropy dekoder. Dekuantisasi data. Rebuild image.

11

2.5

Algoritma Huffman Algoritma Huffman, yang dibuat oleh seorang mahasiswa MIT bernama

David Huffman, merupakan salah satu metode paling lama dan paling terkenal dalam kompresi teks. Algoritma Huffman 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. Algoritma Huffman secara lengkap diberikan pada Gambar 1. 1. Pass pertama Baca (scan) file input dari awal hingga akhir untuk menghitung frekuensi kemunculan tiap karakter dalam file. n. Jumlah semua karakter dalam file input. T. Daftar semua karakter dan nilai peluang kemunculannya dalam file input. Tiap karakter menjadi node daun pada pohon Huffman. 2. Pass kedua Ulangi sebanyak (n -1) kali : a. Item m1 dan m2 dua subset dalam T dengan nilai peluang yang terkecil.

b. Gantikan m1 dan m2 dengan sebuah item {m1,m2 } dalam T, dimana nilai peluang dari item yang baru ini adalah penjumlahan dari nilai peluang m1 dan m2. c. Buat node baru {m1, m2} sebagai father node dari node m1 dan m2 dalam pohon Huffman. 3. T sekarang tinggal berisi satu item, dan item ini sekaligus menjadi node akar pohon Huffman.

12

Panjang kode untuk suatu simbol adalah jumlah berapa kali simbol tersebut bergabung dengan item lain dalam T. Gambar 1. Algoritma kompresi Huffman Sebagai contoh, dalam kode ASCII string 7 huruf ABACCDA membutuhkan representasi 7 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut: 01000001 01000010 01000001 01000011 01000011 01000100 01000001 ABACCDA Untuk mengurangi jumlah bit yang dibutuhkan, panjang kode untuk tiap karakter dapat dipersingkat, terutama untuk karakter yang frekuensi

kemunculannya besar. Pada string di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, sehingga dengan menggunakan algoritma di atas diperoleh kode Huffman seperti pada Tabel 1.Tabel 2.5. 1

Simbol A B C D

Frekuensi 3 1 2 1

Peluang 3/7 1/7 2/7 1/7

Kode Huffman 0 110 10 111

Dengan

menggunakan

kode

Huffman

ini,

string

ABACCDA

direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 111 0. Jadi, jumlah bit yang dibutuhkan hanya 13 bit. Dari Tabel 1 tampak bahwa kode untuk sebuah

13

simbol/karakter tidak boleh menjadi awalan dari kode simbol yang lain guna menghindari keraguan (ambiguitas) dalam proses dekompresi atau decoding. Karena tiap kode Huffman yang dihasilkan unik, maka proses dekompresi dapat dilakukan dengan mudah. Contoh: saat membaca kode bit pertama dalam rangkaian bit 011001010110, yaitu bit 0, dapat langsung disimpulkan bahwa kode bit 0 merupakan pemetaan dari simbol A. Kemudian baca kode bit selanjutnya, yaitu bit 1. Tidak ada kode Huffman 1, lalu baca kode bit selanjutnya, sehingga menjadi 11. Tidak ada juga kode Huffman 11, lalu baca lagi kode bit berikutnya, sehingga menjadi 110. Rangkaian kode bit 110 adalah pemetaan dari simbol B. Metode Huffman yang diterapkan dalam penelitian ini adalah tipe statik, dimana dilakukan dua kali pembacaan (two-pass) terhadap file yang akan dikompresi; pertama untuk menghitung frekuensi kemunculan karakter dalam pembentukan pohon Huffman, dan kedua untuk mengkodekan simbol dalam kode Huffman.

2.6

Algoritma DMC Algoritma DMC merupakan teknik pemodelan yang didasarkan pada

model finite-state (model Markov). DMC membuat probabilitas dari karakter biner berikutnya dengan menggunakan pemodelan finite-state, dengan model awal berupa mesin FSA dengan transisi 0/1 dan 1/1, seperti ditunjukkan pada Gambar 5. DMC merupakan teknik kompresi yang adaptif, karena struktur mesin finite-

14

state berubah seiring dengan pemrosesan file. Kemampuan kompresinya tergolong amat baik, meskipun waktu komputasi yang dibutuhkan lebih besar dibandingkan metode lain [2].

Gambar 2.6.1 Model awal DMC

Pada DMC, simbol alfabet input diproses per bit, bukan per byte. Setiap output transisi menandakan berapa banyak simbol tersebut muncul. Penghitungan tersebut dipakai untuk memperkirakan probabilitas dari transisi. Contoh: pada Gambar 6, transisi yang keluar dari state 1 diberi label 0/5, artinya bit 0 di state 1 terjadi sebanyak 5 kali.

Gambar 2.6.2 Sebuah model yang diciptakan oleh metode DMC

Secara umum, transisi ditandai dengan 0/p atau 1/q dimana p dan q menunjukkan jumlah transisi dari state dengan input 0 atau 1. Nilai probabilitas bahwa input selanjutnya bernilai 0 adalah p/(p+q) dan input selanjutnya bernilai 1 adalah q/(p+q). Lalu bila bit sesudahnya ternyata bernilai 0, jumlah bit 0 di transisi sekarang ditambah satu menjadi p+1. Begitu pula bila bit sesudahnya ternyata bernilai 1, jumlah bit 1 di transisi sekarang ditambah satu menjadi q+1. Algoritma kompresi DMC diberikan pada Gambar 7.

15

Masalah tidak terdapatnya kemunculan suatu bit pada state dapat diatasi dengan menginisialisasi model awal state dengan satu. Probabilitas dihitung menggunakan frekuensi relatif dari dua transisi yang keluar dari state yang baru.

Bab III Analisis dan Perancangan3.1 Analisis Masalah Kemajuan dibidang teknologi informasi multimedia sangat pesat, salah satunya pada media. Perkembangan tersebut ternyata menyebabkan meningkatnya kebutuhan akan media penyimpanan yang cukup besar pula dan media transmisi yang digunakan pun harus efektif. Data citra digital memilki ukuran yang sangat besar, sehingga menyita tempat yang cukup banyak didalam media penyimpanan dan membutuhkan bandwidth yang besar untuk dapat ditransmisikan dengan baik. Untuk mengatasi hal tersebut, diperlukan adanya teknologi pemampatan atau kompresi yang dapat memperkecil kapasitas data citra digital. Saat ini telah banyak teknik pemampatan yang diimplementasikan dengan berbagai kelebihan dan kekurangannya. Salah satu kendala yang sering muncul adalah pencapaian keseimbangan konsekuensi antara rasio pemampatan dengan kualitas citra saat proses dekompresi. Rasio pemampatan yang tinggi dapat dicapai dengan mengorbankan kualitas citra pada saat rekonstruksi, demikian juga sebaliknya jika kualitas citra rekonstruksi mendekati aslinya maka rasio pemampatan yang dicapai menjadi lebih rendah. Salah satu teknik pemampatan citra yang akan digunakan yaitu menggunakan algoritma Dynamic Markov Compression (DMC). Kemudian hasilnya akan dibandingkan dengan teknik pemampatan menggunakan algoritma Huffman. Algoritma DMC merupakan teknik pemodelan yang didasarkan pada model finite-state (model Markov). DMC membuat probabilitas dari karakter

16

17

biner berikutnya dengan menggunakan pemodelan finite-state, dengan model awal berupa mesin FSA dengan transisi 0/1 dan 1/1. DMC merupakan teknik kompresi yang adaptif, karena struktur mesin finite-state berubah seiring dengan pemrosesan file. Algoritma Huffman 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.

3.2

Penyelesaian Masalah Berikut ini adalah Flowchart yang menggambarkan langkah-langkah

penyelesaian masalah tersebut :

Gambar 3.2.1 Flowchart penyelesaian masalah

18

Berikut ini adalah penjelasan dari flowchart langkah-langkah penyelesaian masalah: 1. Ambil Citra Langkah pertama yang dilakukan adalah mengambil citra dari media penyimpanan. Kemudian citra tersebut akan diperiksa tipe filenya, apakah bertipe BMP atau bukan? Jika ya maka langkah selanjutnya dilakukan proses Encode. Jika tidak maka kembali lagi pada langkah pertama yaitu mengambil citra yang sesuai. 2. Encode Citra yang berekstensi BMP tersebut, kemudian digunakan untuk proses encode (proses pemampatan terjadi). 3. Decode Decode merupakan proses lanjutan dari proses encoding. Tujuan dari proses ini adalah menampilkan citra yang telah dimampatkan dalam . 4. Citra Rekonstruksi Citra ini merupakan hasil keluaran dari proses decode, yaitu citra yang telah dimampatkan.

3.3

Analisis Kebutuhan Sistem Analisis kebutuhan sistem merupakan bagian penting agar program

aplikasi dapat berjalan dengan baik. Program aplikasi pemampatan citra ini membutuhkan spesifikasi perangkat keras dan perangkat lunak pendukung dengan spesifikasi sebagai berikut :

19

3.3.1 Perangkat lunak pendukung penelitian Perangkat lunak yang digunakan pada sistem komputer yang digunakan untuk membuat program kompresi ini adalah sebagai berikut : 1. 2. 3. Sistem Operasi Windows XP SP 3. Borland Delphi 7 untuk penulisan kode program. Adobe Photoshop CS3 untuk mendesain tampilan antarmuka.

3.3.2 Perangkat keras pendukung penelitian Perangkat keras yang digunakan untuk membangun dan menguji sistem ini adalah sebagai berikut : 1. Processor 2. Memory 3. Harddisk 4. VGA : Intel Dual Core 1,7 GHz : 1406 MB DDR : 120 GB : 256 MB

3.3.3 Analisis Kebutuhan Pengguna (User) Pengguna dari aplikasi ini adalah orang yang sudah berpengalaman dalam mengaplikasikan komputer atau yang telah mengikuti training aplikasi ini.

3.4

Perancangan Sistem Perancangan sistem merupakan tindak lanjut dari tahapan analisa.

Perancangan sistem bertujuan untuk memberikan gambaran sistem yang akan dibuat.

20

Untuk mendapatkan hasil kompresi yang baik, maka kita harus mengetahui tahap-tahap dalam proses pemampatan. Algoritma DMC itu sendiri terdiri atas dua macam, yaitu: 1. Proses Encoder 2. Proses Decoder Sekarang kita akan membahas kedua proses tersebut, pertama kita akan membahas proses encoder pada pemampatan citra dengan DMC, setelah itu kita membahas proses decoder-nya.

3.4.1 Encode 3.4.1.1 DMC Pada DMC, simbol alfabet input diproses per bit, bukan per byte. Setiap output transisi menandakan berapa banyak simbol tersebut muncul. Penghitungan tersebut dipakai untuk memperkirakan probabilitas dari transisi. Contoh: pada Gambar 6, transisi yang keluar dari state 1 diberi label 0/5, artinya bit 0 di state 1 terjadi sebanyak 5 kali.

Gambar 3.4.1.1.1 Sebuah model yang diciptakan oleh metode DMC

Secara umum, transisi ditandai dengan 0/p atau 1/q dimana p dan q menunjukkan jumlah transisi dari state dengan input 0 atau 1. Nilai probabilitas

21

bahwa input selanjutnya bernilai 0 adalah p/(p+q) dan input selanjutnya bernilai 1 adalah q/(p+q). Lalu bila bit sesudahnya ternyata bernilai 0, jumlah bit 0 di transisi sekarang ditambah satu menjadi p+1. Begitu pula bila bit sesudahnya ternyata bernilai 1, jumlah bit 1 ditransisi sekarang ditambah satu menjadi q+1. Algoritma yang dihasilkan adalah sebagai berikut: 1. s 2. t 1 ( jumlah state sekarang ) 1 (state sekarang) 1 (model inisialisasi) 1 (inisialisasi untuk menghindari masalah frekuensi

3. T[1][0] = T[1][1] 4. C[1][0] = C[1][1] nol)

5. Untuk setiap input bit e : a. u b. t t T[u][e] /*ikuti transisi*/

c. Kodekan e dengan probabilitas : C[u][e] / (C[u][0] + C[u][1]) d. C[u][e] C[u][e]+1

e. Jika ambang batas cloning tercapai, maka : 1) s s + 1 (state baru t) s ; T[s][0] T[t][0] ; T[s][1] T[t][1]

2) T[u][e]

3) Pindahkan beberapa dari C[t] ke C[s] Proses tersebut dapat digambarkan dengan diagram alir dibawah ini:

22

Gambar 3.4.1.1.2 Flowchart proses pemampatan citra (encode)

Jika frekuensi transisi dari suatu state t ke state sebelumnya, yaitu state u, sangat tinggi, maka state t dapat di-cloning. Ambang batas nilai cloning harus disetujui oleh encoder dan decoder. State yang di-cloning diberi simbol t. Aturan cloning adalah sebagai berikut : 1. Semua transisi dari state u dikirim ke state t. Semua transisi dari state lain ke state t tidak berubah. 2. Jumlah transisi yang keluar dari t harus mempunyai rasio yang sama (antara 0 dan 1) dengan jumlah transisi yang keluar dari t. 3. Jumlah transisi yang keluar dari t dan t diatur supaya mempunyai nilai yang sama dengan jumlah transisi yang masuk.

23

3.4.1.2 Huffman Proses encoding untuk satu karakter dimulai dengan membuat pohon Huffman terlebih dahulu. Setelah itu, kode untuk satu karakter dibuat dengan menyusun nama string biner yang dibaca dari akar sampai ke daun pohon Huffman. Langkah-langkah pembentukan pohon Huffman adalah sebagai berikut: 1. Baca semua karakter di dalam teks untuk menghitung frekuensi kemunculan setiap karakter. Setiap karakter penyusun teks dinyatakan sebagai pohon bersimpul tunggal. Setiap simpul di-assign dengan frekuensi kemunculan karakter tersebut. 2. Terapkan strategi algoritma greedy sebagai berikut : gabungkan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar. Setelah digabungkan akar tersebut akan mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon-pohon penyusunnya. 3. Ulangi langkah 2 sampai hanya tersisa satu buah pohon Huffman. Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka semua yang ada selalu terurut menaik berdasarkan frekuensi. Langkahlangkah 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 diencoding.

24

Gambar 3.4.1.2.1 Flowchart proses encode menggunakan Huffman

3.4.2 Decode 3.4.2.1 DMC Decoding merupakan kebalikan dari encoding. Decoding berarti menyusun kembali data dari string biner menjadi sebuah karakter kembali. Pada metode DMC, Pertama mengambil file yang dimampatkan. kemudian untuk memperoleh ukuran yang file asli sebelum dimampatkan, dilakukan inisialisasi pada model yang akan di-decode sama seperti ketika melakukan pemampatan citra. Sama seperti sebelumnya, perhitungan decode harus diinisialisasi dengan fungsi inisialisasi encode. Model yang sama direkonstruksi dengan menggunakan kode bit. kemudian, teknik perhitungan probabilitas menggunakan arus bit yang telah diturunkan dari model tadi.

25

Gambar 3.4.2.1.1 Flowchart proses decode menggunakan DMC

3.4.2.2 Hufman Decoding pada Huffman dapat dilakukan dengan dua cara, yang pertama dengan menggunakan pohon Huffman dan yang kedua dengan menggunakan tabel kode Huffman. Langkah-langkah mendecoding suatu string biner dengan menggunakan pohon Huffman adalah sebagai berikut : 1. Baca sebuah bit dari string biner Mulai dari akar. 2. Untuk setiap bit pada langkah 1, lakukan traversal pada cabang yang bersesuaian.

26

3. Ulangi langkah 1, 2 dan 3 sampai bertemu daun Kodekan rangkaian bit yang telah dibaca dengan karakter di daun. 4. Ulangi dari langkah 1 sampai semua bit di dalam string habis.

Gambar 3.4.2.2.1 Flowchart proses decode menggunakan Huffman

Sebagai contoh kita akan mendecode string biner yang bernilai 111.

Gambar 3.4.2.2.2 Pohon huffman untuk Karakter ABACCDA

27

Setelah kita telusuri dari akar, maka kita akan menemukan bahwa string yang mempunyai kode Huffman 111 adalah karakter D. Cara yang kedua adalah dengan menggunakan tabel kode Huffman. Sebagai contoh kita akan

menggunakan kode Huffman pada tabel dibawah ini untuk merepresentasikan string ABACCDA.Tabel 3.4.2.2.1 Kode Huffman untuk Karakter ABCD

Karakter A B C D

String Biner Huffman 0 110 10 111

Dengan

menggunakan

tabel

3.4.2.2.1

string

tersebut

akan

direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 1110. Jadi, jumlah bit yang dibutuhkan hanya 13 bit. Dari tabel diatas tampak bahwa kode untuk sebuah simbol/karakter tidak boleh menjadi awalan dari kode simbol yang lain guna menghindari keraguan (ambiguitas) dalam proses dekompresi atau decoding. Karena tiap kode Huffman yang dihasilkan unik, maka proses decoding dapat dilakukan dengan mudah. Contoh: saat membaca kode bit pertama dalam rangkaian bit 011001010110, yaitu bit 0, dapat langsung disimpulkan bahwa kode bit 0 merupakan pemetaan dari simbol A. Kemudian baca kode bit selanjutnya, yaitu bit 1. Tidak ada kode Huffman 1, lalu baca kode bit selanjutnya, sehingga menjadi 11. Tidak ada juga kode Huffman 11, lalu baca lagi kode bit berikutnya, sehingga menjadi 110. Rangkaian kode bit 110 adalah pemetaan dari simbol B.

28

3.5

Perancangan Antar Muka

3.5.1 Perancangan Splash Screen

Image 1

Image 3 Image 2 Image 6 Image 7

Image 4

Image 5

Gambar 3.5.1.1 Tampilan Splash Screen

Tabel 3.5.1.1 Deskripsi antarmuka Splash Screen

Komponen Image 1 Image 2 Image 3 Image 4 Image 5 Image 6 Image 7

Fungsi Judul dan background dari splash screen. Berisi foto Aloysius Rizkan P. Berisi foto Raden Sofian Bahri. Berisi foto Cephi Saepul Rohman. Berisi foto Rahmadsyah. Berisi foto Samudra Andalan. Berisi foto Restiana Ayunita.

29

3.5.2 Perancangan Menu Utama

Panel1 Label1 Panel2 Button1 Button2

Image1

Image2

Panel3 Button3 Button4

Edit1Label2 Label4 Panel4 Button5 Label3 Label5 Button6 Label6 Label7 Button7

Edit2Label8 Label9 Button8 Button9

Gambar 3.5.2.1 Tampilan Menu Utama

Tabel 3.5.2.1 Deskripsi antarmuka Menu Utama

Komponen Panel1 Panel2 Panel3 Panel4 Label1 Label2 Label3 Label4 Label5 Label6 Label7

Fungsi Digunakan untuk menampilkan judul program. Digunakan untuk menampilkan gambar asli. Digunakan untuk menampilkan gambar hasil dekompres. Digunakan untuk menampilkan menu-menu pilihan. Digunakan untuk menampilkan metode yang sedang aktif. Menampilkan ukuran dimensi citra. Menampilkan persentase hasil kompresi. Menampilkan kapasitas citra yang belum terkompres. Menampilkan rasio hasil kompresi Menampilkan kapasitas citra terkompresi. Menampilkan waktu yang diperlukan untuk proses kompres dan dekompres.

30

Komponen Label8 Label9Edit1 Edit2 Button1 Button2 Button3 Button4 Button5 Button6 Button7 Button8 Button9 Image1 Image2

Fungsi Menampilkan nilai MSE. Menampilkan nilai PSNR.Menampilkan alamat direktori citra yang asli. Menampilkan alamat direktori citra hasil dekompresi. Tombol untuk melakukan proses kompresi. Tombol untuk mencari citra yang akan dikompres. Tombol untuk melakukan proses dekompresi. Tombol untuk mencari file yang akan didekompres. Tombol untuk mengaktifkan metode kompres DMC. Tombol untuk mengaktifkan metode kompres Huffman. Tombol untuk menampilkan About Program. Tombol untuk menampilkan bantuan. Tombol untuk menutup aplikasi. Bagian untuk menampilkan gambar asli yang belum dikompres. Bagian untuk menampilkan gambar hasil dekompres.

31

3.5.3 Perancangan About Program

Image 1

Image 3 Image 2 Image 6 Image 7

Image 4

Image 5 Button1

Gambar 3.5.3.1 Tampilan About Program

Tabel 3.5.3.1 Deskripsi antarmuka About Program

Komponen Image 1 Image 2 Image 3 Image 4 Image 5 Image 6 Image 7Button1

Fungsi Judul dan background dari program. Berisi foto Aloysius Rizkan P. Berisi foto Raden Sofian Bahri. Berisi foto Cephi Saepul Rohman. Berisi foto Rahmadsyah. Berisi foto Samudra Andalan. Berisi foto Restiana Ayunita.Tombol untuk kembali ke Menu Utama.

32

3.5.4 Perancangan Help

Image1 Memo1

Button1Gambar 3.5.4.1 Tampilan Help

Tabel 3.5.4.1 Deskripsi antarmuka Help

Komponen Image 1 Memo2 Button1

Fungsi Judul dan background dari program. Berisi bantuan untuk menggunakan program. Tombol untuk kembali ke Menu Utama.

Bab IV ImplementasiBab ini merupakan tahap penerjemahan kebutuhan pembangunan aplikasi ke dalam representasi perangkat lunak sesuai dengan hasil analisis yang telah dilakukan. Setelah implementasi maka dilakukan pengujian sistem yang baru dimana akan dilihat kekurangan-kekurangan pada aplikasi yang baru untuk selanjutnya diadakan pengembangan sistem.

4.1

Implementasi Sistem Setelah tahap analisis dan perancangan sistem, tahap selanjutnya adalah

tahap implementasi. Tujuan dari tahap implementasi ini adalah untuk memastikan perangkat lunak yang dibuat dapat berjalan secara efektif sesuai dengan yang diinginkan. Setelah implementasi maka dilakukan pengujian sistem dimana akan terlihat kekurangan-kekurangan pada perangkat lunak untuk selanjutnya diadakan pengembangan sistem. Berikut ini adalah implementasi sistem untuk pemampatan citra Dynamic Markov Compression dan huffman.

4.2

Spesifikasi Dalam pengujian program, maka diperlukan perangkat pendukung

implementasi yang didukung oleh spesifikasi hardware dan software.

33

34

4.2.1 Spesifikasi Perangkat Lunak Perangkat lunak yang digunakan pada sistem komputer yang digunakan untuk membuat program kompresi ini adalah sebagai berikut : 4. 5. 6. Sistem Operasi Windows XP SP 3. Borland Delphi 7 untuk penulisan kode program. Adobe Photoshop CS3 untuk mendesain tampilan antarmuka.

4.2.2 Spesifikasi Perangkat Keras Spesifikasi terendah dari perangkat keras yang dapat digunakan untuk mengimplementasikan dan pengujian sistem ini adalah sebagai berikut: a. Processor b. Memory c. Harddisk d. VGA on Board : Intel Pentium III 1.6 Ghz : 256 MB DDR : 20 GB : 16 MB

4.3

Simulasi Program Pada bagian ini kita akan membandingkan kedua algoritma Dynamic

Markov Compression dengan algoritma Hufman. Media yang digunakan sebagai pembanding yaitu dengan menggunakan citra. Tetapi tidak semua citra dapat dimampatkan, karena pada batasan masalah telah disebutkan seb elumnya bahwa citra yang akan dimampatkan hanya yang berekstensi .bmp. Sebagai contoh, citra yang akan dimampatkan dengan kedua algoritma tersebut memiliki kriteria sebagai berikut: nama citra Image Abstrak1.bmp yang

35

berukuran 386 x 250 dengan kapasitas 323864 byte. Langkah yang pertama kali dilakukan adalah dengan mengambil citra tersebut kemudian lakukan kompresi citra. Setiap kali melakukan proses kompresi maka program akan meminta hasil kompresinya untuk disimpan. Lakukan hal yang sama pada algoritma kedua. Setelah dilakukan proses kompresi, kita bisa membandingkan hasil akhirnya yaitu dengan melihat dari segi kapasitasnya, Rasio yang diberikan, Persentasi pemampatannya serta waktu yang digunakan untuk melakukan satu kali kompresi citranya. Karena ini menggunakan algoritma osseless maka citra hasil kompresinya tidak bisa langsung kita lihat karena algoritma ini mirip dengan metode WinZip. Untuk melihat kembali citra yang dikompres, kita bisa melakukan proses dekompres.

4.4

Penggunaan Program Kompresi Pengujian program dilakukan dengan : 1. Jalankan Kompresi.exe. Maka splash screen akan muncul.

Gambar 4.4.1 Splash Screen

36

2.

Setelah itu anda akan dibawa ke Menu Utama.

Gambar 4.4.2 Menu Utama

3.

Untuk melakukan proses kompresi, anda dapat memilih menu pada bagian bawah Menu Utama.

4.5

Pengujian Citra Metode pengujian menggunakan metode black box, karena metode ini

merupakan metode pendekatan terhadap pengguna serta pengujiannya diturunkan dari spesifikasi program atau komponen. Pengujian yang akan dilakukan hanya sebatas pada proses kompresi citra, Proses dekompres serta melakukan perbandingan hasil kompresinya.

4.5.1 Pengujian Kompresi dengan Metode Black BoxTabel 4.5.1.1 Pengujian Kompresi dengan algoritma DMC dan Huffman

Kasus dan Hasil Uji Data Normal Data Masukan Gambar Asli Yang diharapkan File terkompresi Pengamatan Ukuran file hasil Kesimpulan Diterima

37

Kasus dan Hasil Uji Data Normal Data Masukan Yang diharapkan dengan baik dengan hasil ukuran file terkompresi lebih kecil dibanding ukuran file asli. Waktu Waktu Pengamatan kompresi lebih kecil dibandingkan dengan ukuran file asli, sesuai yang Kesimpulan

diharapkan. kompresi dari gambar, ukuran Diterima

kompresi Waktu tergantung ukuran apabila

tidak terlalu lama

gambar kecil maka waktu dibutuhkan terlalu dibandingkan dengan yang gambar berukuran yang tidak lama

besar, sesuai yang diharapkan. Rasio Rasio kompresi besar Apabila kompresi rasio lebih Diterima

besar maka ukuran file hasil kompresi lebih kecil, sesuai dengan diharapkan yang

38

4.5.2 Pengujian Dekompresi dengan Metode Black BoxTabel 4.5.2.1 Pengujian Dekompresi dengan algoritma DMC dan Huffman

Kasus dan Hasil Uji Data Normal Data Masukan Gambar hasil kompersi Yang diharapkan File yang telah terkompresi dapat dikembalikan seperti semula sehingga gambar dapat dilihat kembali dengan kapasitas yang sama Pengamatan File terkompresi dapat didekompres dengan baik sehingga gambar dapat dilihat kembali dengan kapasitas seperti semula. Waktu Waktu dekompresi tidak terlalu lama Waktu dekompresi tergantung dari ukuran gambar hasil kompresinya, apabila ukuran gambar kecil maka waktu yang dibutuhkan tidak terlalu lama dibandingkan dengan gambar yang berukuran besar, sesuai yang diharapkan. Kapasitas Kapasitasnya seperti gambar asli Apabila kapasitas gambar hasil Diterima Diterima Kesimpulan Diterima

39

dekompres sama dengan citra asli maka telah berhasil.

4.5.3 Pengujian dengan membandingkan hasil kompresi 4.5.3.1 DMCTabel 4.5.3.1.1 Hasil kompresi dengan DMCKapasitas Nama File Dimensi (Asli) title.bmp 360 x 290 105476 byte leftinst.bm p BlueStrea m.bmp 800 x 600 138 x 318 132342 byte 1440056 byte 822086 byte 57 % 110775 byte 83 % (Terkompresi) 22169 byte 21 % Kapasitas Rasio tase 78,98 % 16,30 % 42,91 % 0,0 0,0 0,0 0,0 E 0,0 0,0 00:00: 781 00:01: 016 00:10: 922 Persen MS PSNR Waktu

4.5.3.2 HuffmanTabel 4.5.3.2.1 Hasil kompresi dengan HuffmanKapasitas Nama File Dimensi (Asli) title.bmp 360 x 290 105476 byte leftinst.bm p 138 x 318 132342 byte 129138 byte 3% 97 % 0,0 0,0 (Terkompresi) 49152 byte 55 % Kapasitas Rasio tase 45 % E 0,0 0,0 00:00: 625 00:00: 906 Persen MS PSNR Waktu

40

Kapasitas Nama File Dimensi (Asli) BlueStrea m.bmp 800 x 600 1440056 byte

Kapasitas Rasio (Terkompresi) 1339406 byte 7%

Persen tase 93 %

MS PSNR E 0,0 0,0 00:08: 328 Waktu

4.5.4 Pengujian dengan membandingkan hasil Dekompresi 4.5.4.1 DMCTabel 4.5.4.1.1 Hasil dekompresi dengan DMCKapasitas Nama File (Terkompresi) title.bmp leftinst.bmp BlueStream.bmp 22169 byte 110775 byte 822086 byte (Dekompres) 138542 byte 288530 byte 1440055 byte 00:00:110 00:00:219 00:00:375 Kapasitas Waktu Dekompres

4.5.4.2 HuffmanTabel 4.5.4.2.1 Hasil dekompresi dengan HuffmanKapasitas Nama File (Terkompresi) title.bmp leftinst.bmp BlueStream.bmp 49152 byte 129138 byte 1339406 byte (Dekompres) 105476 byte 132342 byte 1440056 byte 00:01:844 00:07:344 01:30:672 Kapasitas Waktu Dekompres

41

4.6

Anali i Hasil Pengujian Setelah dilakukan pengujian, langkah selanjutnya adalah membandingkan

hasil yang telah diperoleh dalam bentuk grafik. Grafik tersebut terdiri dari:

4.6.1 Grafik Perbandingan Kapasitas Hasil Kompesi

1400000 1200000 1000000 800000 600000 400000 200000 0 1 2 3

DMCHuffman

Grafik 4.6.1.1 Grafik perbandingan kapasitas hasil kompresi

4.6.2 Grafik Perbandingan Rasio Kompresi

100.00% 80.00%

60.00% DMC 40.00% Huffman 20.00% 0.00% 360 x 290 138 x 318 800 x 600

Grafik 4.6.2.1 Grafik perbandingan rasio hasil kompresi

42

4.6.3 Grafik Perbandingan Persentase Kompresi

00.00%

40.00%

20.00% 0.00%

Grafik 4.6.3.1 Grafik perbandingan persentase kompresi

80.00% 0.00% DMC Huffman

3 0x 290

38 x 3 8

800 x 00

Bab V Kesimpulan dan Saran5.1 Kesimpulan Untuk kompresi file berekstensi BMP, kesimpulan yang kami peroleh adalaha sebagai berikut : 1. Kapasitas hasil kompresi DMC lebih kecil daripada kompresi Huffman. 2. Untuk kecepatan kompresi DMC masih lebih lambat dibandingkan Huffman. 3. Tidak semua gambar berekstensi BMP dapat dikompres dengan metode Huffman. Hal ini dikarenakan semakin banyak jumlah warna yang muncul dalam sebuah citra maka jumlah data semakin besar.

5.2

Saran Setelah dilakukan analisis, pengujian, dan penarikan kesimpulan, ada

beberapa hal yang dapat dilakukan untuk mengembangkan program aplikasi ini, diantaranya : 1. Program ini bisa dikembangkan untuk pengkompresan jenis file yang lain selain BMP saja. 2. Program ini juga bisa dikembangkan lagi untuk mengatasi kelemahan program ini yang tidak dapat mengkompres beberapa file.

43

Daftar Pustaka[1] Linawati, Panggabean, Henry P., Perbandingan Kinerja Algoritma Kompresi Huffman, LZW, dan DMC pada berbagai file, Integral, Vol. 9, No. 1, 2004. [2] Terry A. Welch, A Technique for High Performance Data Compression, IEEE Computer, Vol. 17, No. 6, 1984. [3] Ahmad, Balza, Teknik Pengolahan Citra Digital Menggunakan Delphi, Ardi Publishing, Yogyakarta, 2004. [4] http://bebas.vlsm.org/v14/v01/OnnoWPurbo/contrib/network/bukualgoritma-run-length-half-byte-untuk-pemampatan-file-06-.doc ( Waktu akses November 2009 ) [5] [6] http://maulaku.wordpress.com/2007/08/ ( Waktu akses November 2009 ) http://digilib.petra.ac.id/viewer.php?page=1&submit.x=0&submit.y=0&qu al=high&fname=/jiunkpe/s1/info/2006/jiunkpe-ns-s1-2006-264021207900-kompresi-chapter4.pdf ( Waktu akses November 2009 ) [7] http://home.unpar.ac.id/~integral/Volume%209/Integral%209%20No.%20 1/Perbandingan%20Kinerja%20Algoritma%20Kompresi.pdf akses Desember 2009 ) ( Waktu

44