• Tidak ada hasil yang ditemukan

Analisis Perbandingan Kompresi Citra Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Run Length Encoding

N/A
N/A
Protected

Academic year: 2016

Membagikan "Analisis Perbandingan Kompresi Citra Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Run Length Encoding"

Copied!
110
0
0

Teks penuh

(1)

SKRIPSI

ERICK RICARDO LUBIS

111421074

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

ERICK RICARDO LUBIS 111421074

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN

(3)

Judul : ANALISIS PERBANDINGAN KOMPRESI CITRA MENGGUNAKAN LEMPEL-ZIV-MARKOV CHAIN ALGORITHM (LZMA) DAN RUN LENGTH ENCODING

Kategori : SKRIPSI

Nama : ERICK RICARDO LUBIS

Nomor Induk Mahasiswa : 111421074

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dian Rachmawati, S.Si, M.Kom Dr. Poltak Sihombing, M.Kom NIP. 19830723 200912 2 004 NIP. 19620217 199103 1 001

Diketahui/disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

CHAIN ALGORITHM (LZMA) DAN RUN LENGTH ENCODING

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Februari 2014

(5)

Segala dan puji syukur penulis panjatkan hanya kepada Tuhan Yesus Kristus oleh karena kasihNya, penulis mampu menyelesaikan Skripsi ini.

Skripsi ini dikerjakan sebagai salah satu syarat guna memperoleh gelar Sarjana Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Penulis menyadari bahwa terselesaikannya skripsi ini tentunya tak lepas dari dorongan dan bantuan berbagai pihak. Oleh karena itu, dengan segala kerendahan hati penulis mengungkapkan rasa terima kasih dan penghargaan kepada :

1. Bapak Dr. Poltak Sihombing, M, Kom, selaku Ketua Program Studi Ilmu Komputer sekaligus sebagai Dosen Pembimbing I yang telah memberikan banyak sekali arahan, masukan, bimbingan, saran, serta motivasi yang membangun untuk penulis sehingga penulis dapat menyelesaikan skripsi ini dengan baik.

2. Ibu Dian Rachmawati, S.Si, M,Kom, selaku Dosen pembimbing II yang telah memberikan masukan, bimbingan, saran dan motivasi kepada penulis, serta sabar memberikan bantuan sehingga penulis dapat menyelesaikan skripsi ini dengan baik.

3. Bapak Ade Candra, ST, M.Kom, selaku Dosen Pembanding I, yang telah memberikan kritik dan saran yang membangun bagi penulis

4. Bapak Amer Sharif, S.Si, M.Kom, selaku Dosen Pembanding II yang telah memberikan kritik dan saran yang membangun bagi penulis.

5. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara berserta para pegawai yang bertugas di Program Studi Ilmu Komputer FASILKOM-TI USU.

(6)

atas ide, saran, dan kerja samanya selama ini.

Semoga Tuhan Yang Maha Esa membalas kebaikan yang telah kalian berikan.

Penulis,

(7)

Penelitian ini bertujuan untuk merancang sebuah aplikasi komputer yang dapat mengkompresi citra bmp maupun png. Citra bmp maupun png dapat dikompresi menggunakan Lempel-Ziv-Markov ChainAlgorithm (LZMA) dan menggunakan Run Length Encoding. Keluaran dari aplikasi ini adalah sebuah file kompresi baru dengan ekstensi ERL. Rasio kompresi rata-rata antara fileinputdengan file outputuntuk citra bmp menggunakan Lempel-Ziv-Markov Chain Algorithm adalah 81,763% dengan waktu rata-rata 3315,3 milisecond , sedangkan rasio kompresi rata-rata antara file inputdengan file output untuk citra bmp menggunakan Run Length Encoding adalah 34,670% dengan waktu rata-rata 5434,8 milisecond. Rasio kompresi rata-rata antara fileinputdengan fileoutputuntuk citra png menggunakan Lempel-Ziv-Markov Chain Algorithm adalah 26,900% dengan waktu rata-rata 1169,3 milisecond, sedangkan rasio kompresi rata-rata antara file input dengan file output untuk citra png menggunakan Run Length Encoding adalah -0,446% dengan waktu rata-rata 1057,3 milisecond.

(8)

ENCODING

ABSTRACT

This study aims to design a computer application that can compress bmp or png image. Bmp or png image can be compressed using the Lempel-Ziv-Markov chain algorithm (LZMA) and using Run Length Encoding . The output of this application is a new compressed file with the extension ERL. Average compression ratio between the input file with the output file to bmp image using the Lempel-Ziv-Markov chain Algorithm is 81.763% with an average time of 3315.3 milliseconds , while the average compression ratio between the input file with the output file to bmp image using Run Length Encoding is 34.670% with an average time of 5434.8 milliseconds . Average compression ratio between the input file with the output file to png image using the Lempel-Ziv-Markov chain Algorithm is 26.900% with an average time of 1169.3 milliseconds, while the average compression ratio between the input file with the output file to png image using Run Length Encoding is -0.446% with an average time of 1057.3 milliseconds.

(9)

Hal.

PERSETUJUAN ii

PERNYATAAAN iii

PENGHARGAAN iv

ABSTRAK vi

ABSTRACT vii

DAFTAR ISI viii

DAFTAR TABEL xi

DAFTAR GAMBAR xiii

BAB 1 PENDAHULUAN

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

BAB 2 TINJAUAN PUSTAKA

2.1 Citra Digital 6

2.2 Citra Bitmap (BMP) 6

2.3 Citra Portable Network Graphics 8

2.4 Kompresi Data 9

2.5 Dekompresi Data 10

2.6 Lempel-Ziv-Markov Chain Algorithm (LZMA) 12

(10)

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Masalah 18

3.2 Analisis Kebutuhan Sistem 19

3.3 Pemodelan Aplikasi 20

3.3.1 Use-Case Diagram 21

3.3.2 Pseudocode Kompresi Run Length Encoding 23

3.3.3 Activity Diagram 24

3.3.4 Class Diagram 26

3.3.5 Sequence Diagram 27

3.4 Perancangan Sistem 28

3.4.1 Pembuatan Algoritma Program 28 3.4.2 Alur Proses Sistem Secara Umum 28 3.4.3 Alur Proses Kompresi dan Dekompresi Menggunakan LZMA 31 3.4.4 Alur Proses Kompresi dan Dekompresi Menggunakan Run

Length Encoding 32

3.5 Pembuatan Rancangan Tampilan Aplikasi 33

BAB 4 IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem 35

4.1.1 Implementasi Kompresi Dan Dekompresi Menggunakan

Lempel-Ziv-Markov Chain Algorithm (LZMA) 38 4.1.2 Implementasi Kompresi Dan Dekompresi Menggunakan Run

Length Encoding 39

4.2 Pengujian Aplikasi 42

4.2.1 Pengujian Kompresi Dalam Aplikasi 42 4.2.2 Proses Dekompresi Dalam Aplikasi 46

(11)

5.2 Saran 74

DAFTAR PUSTAKA 75

LAMPIRAN

Lampiran A : Source Code Program A-1

(12)

DAFTAR TABEL

Hal.

2.1 Hubungan bit per piksel dengan maksimum warna pada bitmap 7

2.2 Kompresi dengan RLE 17

2.3 Dekompresi dengan RLE 17

3.1 Dokumentasi NaratifUse CaseKompresi 21 3.2 PseudocodeKompresi Run Length Encoding (RLE) 23 4.1 Potongan kode program untuk mendapatkan byte array dari citra 36 4.2 Potongan kode program untuk melakukan kompresi dengan LZMA 38 4.3 Potongan kode program untuk melakukan kompresi dengan RLE 39 4.4 Hasil Pengujian Kompresi Citra BMP Menggunakan LZMA 49 4.5 Hasil Pengujian Kompresi Citra BMP Menggunakan RLE 51 4.6 Hasil Pengujian Kompresi Citra PNG Menggunakan LZMA 52 4.7 Hasil Pengujian Kompresi Citra PNG Menggunakan RLE 53 4.8 Hasil Pengujian Dekompresi Citra BMP Menggunakan LZMA 55 4.9 Hasil Pengujian Dekompresi Citra BMP Menggunakan RLE 56 4.10 Hasil Pengujian Dekompresi Citra PNG Menggunakan LZMA 57 4.11 Hasil Pengujian Dekompresi Citra PNG Menggunakan RLE 59 4.12 Hasil Pengujian Rasio Persentase Kompresi Citra BMP

Menggunakan LZMA dan RLE 60

4.13 Hasil Pengujian Rasio Persentase Kompresi Citra PNG

(13)

4.15 Hasil Pengujian Rasio Persentase Dekompresi Citra PNG

Menggunakan LZMA dan RLE 65

4.16 Hasil Pengujian Perbandingan Waktu Kompresi Citra BMP

Menggunakan LZMA dan RLE 66

4.17 Hasil Pengujian Perbandingan Waktu Kompresi Citra PNG

Menggunakan LZMA dan RLE 68

4.18 Hasil Pengujian Perbandingan Waktu Dekompresi Citra BMP

Menggunakan LZMA dan RLE 69

4.19 Hasil Pengujian Perbandingan Waktu Dekompresi Citra PNG

(14)

Hal.

2.1 Contoh Gambar BMP 8

2.2 Contoh Gambar PNG 9

2.3 Alur Kompresi Dekompresi Lossless 10

2.4 Citra 3 bit 10 X 10 Piksel 16

3.1 Diagram Ishikawa 18

3.2 Use-Case Diagram Pada Sistem 21

3.3 Activity Diagram Pada Sistem 25

3.4 Class Diagram Pada Sistem 26

3.5 Sequence Diagram Pada Sistem 27

3.6 Flowchart Kompresi File Citra Menggunakan LZMA 29 3.7 Flowchart Kompresi File Citra Menggunakan RLE 29 3.8 Flowchart Dekompresi File Citra Menggunakan LZMA 30 3.9 Flowchart Dekompresi File Citra Menggunakan RLE 30

3.10 Rancangan Form Menu 33

4.1 Citra Berformat BMP 36

4.2 File Hasil Kompresi Citra BMP Menggunakan LZMA 39 4.3 File Hasil Kompresi Citra BMP Menggunakan RLE 41

4.4 Menu Aplikasi 42

4.5 Save File Dialog Untuk File Input Kompresi 43 4.6 Save File Dialog Untuk File Tujuan Output Kompresi 43

4.7 Memilih Algoritma LZMA 44

4.8 Memilih Tindakan Kompresi 44

4.9 Message Box Menunjukkan Proses Selesai 45

4.10 Ringkasan Hasil Kompresi 45

(15)

4.15 Ringkasan Hasil Dekompresi 49 4.16 Grafik Perbandingan Input Output Citra BMP Menggunakan LZMA 50 4.17 Grafik Perbandingan Input Output Citra BMP Menggunakan RLE 51 4.18 Grafik Perbandingan Input Output Citra PNG Menggunakan LZMA 53 4.19 Grafik Perbandingan Input Output Citra PNG Menggunakan RLE 54 4.20 Grafik Perbandingan Input Output File Kompresi Citra BMP

Menggunakan LZMA 55

4.21 Grafik Perbandingan Input Output File Kompresi Citra BMP

Menggunakan RLE 57

4.22 Grafik Perbandingan Input Output File Kompresi Citra PNG

Menggunakan LZMA 58

4.23 Grafik Perbandingan Input Output File Kompresi Citra PNG

Menggunakan RLE 59

(16)

Penelitian ini bertujuan untuk merancang sebuah aplikasi komputer yang dapat mengkompresi citra bmp maupun png. Citra bmp maupun png dapat dikompresi menggunakan Lempel-Ziv-Markov ChainAlgorithm (LZMA) dan menggunakan Run Length Encoding. Keluaran dari aplikasi ini adalah sebuah file kompresi baru dengan ekstensi ERL. Rasio kompresi rata-rata antara fileinputdengan file outputuntuk citra bmp menggunakan Lempel-Ziv-Markov Chain Algorithm adalah 81,763% dengan waktu rata-rata 3315,3 milisecond , sedangkan rasio kompresi rata-rata antara file inputdengan file output untuk citra bmp menggunakan Run Length Encoding adalah 34,670% dengan waktu rata-rata 5434,8 milisecond. Rasio kompresi rata-rata antara fileinputdengan fileoutputuntuk citra png menggunakan Lempel-Ziv-Markov Chain Algorithm adalah 26,900% dengan waktu rata-rata 1169,3 milisecond, sedangkan rasio kompresi rata-rata antara file input dengan file output untuk citra png menggunakan Run Length Encoding adalah -0,446% dengan waktu rata-rata 1057,3 milisecond.

(17)

ENCODING

ABSTRACT

This study aims to design a computer application that can compress bmp or png image. Bmp or png image can be compressed using the Lempel-Ziv-Markov chain algorithm (LZMA) and using Run Length Encoding . The output of this application is a new compressed file with the extension ERL. Average compression ratio between the input file with the output file to bmp image using the Lempel-Ziv-Markov chain Algorithm is 81.763% with an average time of 3315.3 milliseconds , while the average compression ratio between the input file with the output file to bmp image using Run Length Encoding is 34.670% with an average time of 5434.8 milliseconds . Average compression ratio between the input file with the output file to png image using the Lempel-Ziv-Markov chain Algorithm is 26.900% with an average time of 1169.3 milliseconds, while the average compression ratio between the input file with the output file to png image using Run Length Encoding is -0.446% with an average time of 1057.3 milliseconds.

(18)

1.1. Latar Belakang

Di era komputerisasi ini sudah banyak dikembangkan aplikasi perangkat lunak maupun perangkat keras untuk menghasilkan citra dalam bentuk data. Sebut saja kamera digital, kamera DSLR maupunwebcamdanscannersebagai contoh perangkat keras untuk menghasilkan citra dalam bentuk data. Sebagai contoh perangkat lunak penghasil citra dalam bentuk data adalah Adobe Photoshop dan program Paint pada Windows Operating System

Permasalahan yang sering muncul dalam menghasilkan citra dalam bentuk data adalah ukuran data file citra yang menghabiskan banyak tempat dalamharddisk. Untuk mengatasi masalah tersebut perlu dilakukan sebuah tindakan pencegahan. Salah satu cara mengatasinya adalah dengan mengkompresi ukuran data file citra yang disimpan.

(19)

kali dan byte / karakter ’b’ tidak mengalami perulangan sehingga kata tersebut akan

dikompresimenjadi ”a3b”.[6]

Dari beberapa penjabaran di atas, penulis telah mengumpulkan beberapa jurnal dari berbagai sumber yang berkaitan dengan permasalahan yang sedang penulis bahas. Oleh sebab itu, penulis mengajukan skripsi untuk untuk memecahkan permasalahan yang telah disebutkan di atas. Judul skripsi tersebut adalah ANALISIS PERBANDINGAN KOMPRESI CITRA MENGGUNAKAN LEMPEL-ZIV-MARKOV CHAIN ALGORITHM (LZMA) DAN RUN LENGTH ENCODING

1.2. Rumusan Masalah

Rumusan masalah pada penelitian ini adalah bagaimana mengkompresi dan dekompresi citra gambar tersebut menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan Run Length Encoding, bagaimana manfaat kompresi citra dalam memampatkan data sehingga menghemat memori harddisk serta efisiensi waktu dalam pengiriman data.

1.3. Batasan Masalah

Agar pembahasan masalah tidak menyimpang dari tujuan penelitian, berikut ini adalah beberapa batasan yang perlu dibuat, yaitu :

1. Parameter penelitian yang diperbandingkan dalam penelitian adalah ukuran file hasil kompresi, rasio kompresi dan dekompresi serta waktu yang dibutuhkan selama proses kompresi dan dekompresi berlangsung.

2. Bahasa pemrograman yang digunakan adalah bahasa pemrograman Java dengan Java Development Kit (JDK) versi 1.7 dan beberapa pustaka pemrograman tambahan yang didapat atau diunduh dari sumber lain.

(20)

5. Khusus untuk LZMA, penulis akan mengimplementasikannya melalui fungsi-fungsi danclassyang dapat diunduh dari 7zip.

1.4. Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk menciptakan sebuah aplikasi komputer yang dapat mengkompresi ukuran data gambar berformat BMP dan PNG. Penggunaan aplikasi ini diharapkan dapat digunakan untuk kompresi tanpa kehilangan kualitas gambarnya.

1.5. Manfaat Penelitian

Manfaat penelitian ini diharapkan dapat memberikan kemudahan kepada orang-orang yang ingin mengkompresi file citra BMP maupun PNG dan sebagai bahan referensi untuk penelitian yang berhubungan dengan LZMA dan Run Length Encoding serta kompresi data.

1.6. Metodologi Penelitian

Penelitian ini akan dilaksanakan dengan mengikuti beberapa langkah yang akan digunakan penulis, yaitu:

1. Studi Kepustakaan

(21)

2. Analisis dan Perancangan Sistem

Tahap ini digunakan untuk mengolah data dari hasil studi kepustakaan kemudian melakukan analisis sehingga menjadi suatu informasi. Proses ini meliputi pembuatan algoritma program, flowchart sistem, rancangan aplikasi, dan pembuatanuser interfaceaplikasi.

3. Implementasi Sistem

Menerapkan Lempel-Ziv-MarkovChain Algorithm ( LZMA ) dan Run Length Encoding ke dalam aplikasi komputer yang sedang dirancang.

4. Pengujian aplikasi

Melakukan pengujian aplikasi yang dibuat apakah telah berhasil berjalan sesuai keinginan dan melakukan perbaikan kesalahan jika masih terdapaterror pada aplikasi.

5. Dokumentasi

Tahap akhir dari penelitian yang dilakukan, yaitu membuat laporan tentang penelitian yang telah dilakukan.

1.7. Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri dari beberapa bagian, yaitu:

BAB 1: PENDAHULUAN

Bab ini berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan skripsi.

BAB 2: LANDASAN TEORI

(22)

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi proses pembuatan algoritma program, UML (Unified Modelling Language), flowchart sistem, rancangan aplikasi, dan pembuatan user interface aplikasi.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi ulasan dan pengujian terhadap program yang telah diimplementasikan dengan menggunakan bahasa Java.

BAB 5: KESIMPULAN DAN SARAN

(23)

2.1. Citra Digital

Citra digital adalah citra yang terdiri dari sinyal-sinyal frekuensi elektromagnetis yang sudah di-sampling sehingga dapat ditentukan ukuran titik gambar tersebut yang pada umumnya disebut pixel.[6] Pengolahan citra digital adalah sebuah disiplin ilmu yang mempelajari hal-hal yang berkaitan dengan perbaikan kualitas gambar (peningkatan kontras, transformasi warna, restorasi citra), transformasi gambar (rotasi, translasi, skala, transformasi geometrik), melakukan pemilihan citra ciri (feature images) yang optimal untuk tujuan analisis, melakukan proses penarikan informasi atau deskripsi objek atau pengenalan objek yang terkandung pada citra, melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data. Input dari pengolahan citra adalah citra, sedangkan output-nya adalah citra hasil pengolahan.[9]

2.2. Citra Bitmap (BMP)

(24)

Citra dalam format BMP ada tiga macam : citra biner, citra berwarna, dan citra hitam-putih (grayscale). Citra biner hanya memiliki dua kemungkinan nilai piksel yaitu hitam dan putih. Citra ini hanya membutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra biner. Citra berwarna adalah citra yang lebih umum. Dimana setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar (RGB = Red Green Blue). Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi sebanyak 255 warna. Setiap komponen warna RGB-nya disimpan di dalam tabel RGB yang disebut palet. Setiap komponen panjangnya 8 bit, jadi ada 256 nilai keabuan untuk warna merah, 256 nilai keabuan untuk warna hijau dan 256 nilai keabuan untuk warna biru. Nilai setiap piksel tidak menyatakan derajat keabuan secara langsung, tetapi nilai piksel menyatakan indeks tabel RGB yang memuat nilai keabuan merah (R), nilai keabuan hijau (G), nilai keabuan biru (B) untuk masing-masing piksel bersangkutan. Sedangkan citra hitam putih hanya memiliki satu kanal pada setiap pikselnya, dengan kata lain nilai bagian RED = GREEN = BLUE yang digunakan untuk menunjukkan tingkat intensitas. Format citra ini mendukung citra dengan jumlah bit per piksel sebanyak 1, 4, 8, 16, dan 24 bit per piksel. Berikut ini tabel yang menunjukkan hubungan antara banyaknya bit per piksel dengan jumlah warna maksimum yang dapat disimpan dalam bitmapseperti pada tabel 2.1.[2]

Tabel 2.1. Hubungan bit per piksel dengan maksimum warna pada bitmap Jumlah Bit Per Piksel Maksimum Warna

1 2

4 16

8 256

16 65536

(25)

Contoh gambar BMP dapat dilihat seperti pada gambar 2.1.

Gambar 2.1. Contoh Gambar BMP

2.3. CitraPortable Network Graphics( PNG )

(26)

2.4. Kompresi Data

Kompresi data merupaka Teori informasi sendiri ini mendefenisikan jum yang dibutuhkan yang berbagai metode tenta berguna) pada suatu pe pula ukuran pesan, upa subjek ilmu tentang kom yang bertujuan untuk digunakan untuk mere citra semula.[7]

Salomon Dan Mot

converting an input dat another data stream (t smaller size. A stream communications channe

Kompresi data m dari data aslinya. Kom yang berukuran sanga

Gambar 2.2. Contoh Gambar PNG

upakan cabang ilmu komputer yang bersumber d ndiri dipelopori oleh Claude Shannon sekitar tahun

jumlah informasi di dalam pesan sebagai jum ng dikenal sebagai entropy. Teori ini juga m ntang informasi termasuk tentang redundanc u pesan dimana semakin banyak redundancy m

upaya mengurangi redundancy inilah yang akhi kompresi data.[10] Kompresi citra adalah proses uk mengurangi duplikasi data pada citra sehin

erepresentasikan citra menjadi lebih sedikit da

n Motta (2010) menyatakan “Data compression nput data stream (the source stream or the original

(the output, the bitstream, or the compressed am can be a file, a buffer in memory, or individual hannel.”[5]

ta merupakan suatu teknik untuk memperkecil j ompresi data sangat menguntungkan apabila gat besar dan di dalamnya banyak mengandun

r dari teori informasi. tahun 1940-an. Teori jumlah minimum bit memfokuskan pada dundancy (informasi tak maka semakin besar akhirnya melahirkan oses pemampatan citra hingga memory yang daripada representasi

ssion is the process of original raw data) into ed stream) that has a ndividual bits sent on a

(27)

karakter. Kompresi data umumnya diterapkan pada komputer, karena setiap simbol yang muncul pada komputer memiliki nilai bit-bit yang berbeda. Misal pada ASCII setiap simbol yang dimunculkan memiliki panjang 8 bit, misal kode A pada ASCII mempunyai nilai desimal = 65, jika diubah dalam bilangan biner menjadi 010000001. Kompresi data digunakan untuk mengurangkan jumlah bit- bit yang dihasilkan dari setiap simbol yang muncul.[3]

Jika data hasil kompresi tersebut akan ditransmisikan maka pihak pengirim dan pihak penerima harus memiliki teknik algoritma kompresi yang sama. Sehingga data tersebut dapat dibaca oleh pihak penerima. Kompresi dalam hal ini sangat membantu, karena selain memperkecil ukuran data, dengan kompresi maka kebutuhan bandwidth akan lebih kecil dan data yang dikirimkan lebih cepat sampai pada penerima.[3]

2.5. Dekompresi Data

Sebuah data yang sudah dikompres tentunya harus dapat dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi. Untuk dapat merubah data yang terkompresi diperlukan cara yang berbeda seperti pada waktu proses kompresi dilaksanakan. Jadi pada saat dekompresi catatan header yang berupa byte-byte tersebut terdapat catatan isi mengenai isi dari file tersebut . Catatan header akan menuliskan kembali mengenai isi darifiletersebut, jadi isi dari filesudah tertulis oleh catatan header sehingga hanya tinggal menuliskan kembali pada saat proses dekompres. Proses dekompresi sempurna (kembali kebentuk aslinya). Secara umum proses kompresi dan dekompresi dapat dilihat seperti pada Gambar 3.[4]

Kompresi

Dekompresi

Gambar 2.3. Alur Kompresi DekompresiLossless

FileInput

(.bmp/.png)

FileOutput

(28)

Metode kompresi data dapat dikelompokkan dalam dua kelompok besar yaitu metode losslessdan metodelossyyaitu:

1. MetodeLossless

Pada teknik ini tidak ada kehilangan data atau informasi. Jika data dikompres secara lossless, data asli dapat direkonstruksi kembali sama persis dari data yang telah dikompresi, dengan kata lain data asli tetap sama sebelum dan sesudah kompresi. Secara umum tekniklosslessdigunakan untuk penerapan yang tidak bisa mentoleransi setiap perbedaan antara data asli dan data yang telah direkonstruksi. Data berbentuk tulisan misalnya file teks, harus dikompresi menggunakan teknik lossless, karena kehilangan sebuah karakter saja dapat mengakibatkan kesalahpahaman. Lossless compression disebut juga dengan reversible compression karena data asli bisa dikembalikan dengan sempurna. Akan tetapi rasio kompresinya sangat rendah, misalnya pada data teks, gambar seperti GIF dan PNG. Contoh metode ini adalah Shannon-Fano Coding, Run Length Encoding, Arithmetic Coding dan lain sebagainya.[4]

2. MetodeLossy

(29)

compression disebut juga irreversible compression karena data asli mustahil untuk dikembalikan seperti semula. Kelebihan teknik ini adalah rasio kompresi yang tinggi dibanding metode lossless. Keuntungan dari metode lossy atas lossless adalah dalam beberapa kasus metode lossy menghasilkan file kompresi yang lebih kecil dibandingkan dengan metode lossless. Metode lossy sering digunakan untuk mengkompresi suara, gambar dan video karena data tersebut dimaksudkan kepada human interpretation dimana pikiran dapat dengan mudah “mengisi bagian-bagian yang kosong” atau melihat kesalahan yang sangat kecil atau inkonsistensi. Sedangkan

lossless digunakan untuk mengkompresi data untuk diterima ditujuan dalam kondisi asli seperti dokumen teks.Lossyakan mengalamigeneration losspada data sedangkan padalosslesstidak terjadi karena data yang hasil dekompresi sama dengan data asli.[4]

2.6. Lempel-Ziv-MarkovChain Algorithm(LZMA)

LZMA merupakan algoritma yang telah dikembangkan sejak 1998. Pertama kali diperkenalkan dan digunakan oleh software kompresi terpopuler yaitu 7z atau 7-zip yang diciptakan oleh Igor Pavlov. Prinsip dasar dari algoritma LZMA sama dengan LZ77, hanya saja LZMA telah mengalami perkembangan pada beberapa fitur, diantaranya adalah ditingkatkannya rasio kompresi, semakin besarnya ukuran dari dictionaryyang digunakan pada proses kompresi. LZMA juga dikembangkan kedalam bentuk modul berbasis Python. Modul tersebut bernama pylzma. Pylzma dapat dijalankan pada OS Windows, Linux, dan OSX.[3]

(30)

Contoh ProsesEncodingdanDecodingmenggunakan LZMA adalah sebagai berikut:

Misal kita memiliki string:

ABAABAAABBBAABBABBBBAB

Kita mulai dari string paling kiri yaitu A

A | BAABAAABBBAABBABBBBAB

Selanjutnya kita melihat frasa berikutnya yang belum ditemukan. Sebelumnya A. Maka selanjutnya B

A | B | AABAAABBBAABBABBBBAB

Frasa selanjutnya yang belum ditemukan adalah AA maka string yang kita miliki menjadi :

A | B | AA | BAAABBBAABBABBBBAB

Frasa selanjutnya yang belum ditemukan adalah BA maka string yang kita miliki menjadi :

A | B | AA | BA | AABBBAABBABBBBAB

Frasa selanjutnya yang belum ditemukan adalah AAB maka string yang kita miliki menjadi :

A | B | AA | BA | AAB | BBAABBABBBBAB

Frasa selanjutnya yang belum ditemukan adalah BB maka string yang kita miliki menjadi :

A | B | AA | BA | AAB | BB | AABBABBBBAB

(31)

A | B | AA | BA | AAB | BB | AABB | ABBBBAB

Frasa selanjutnya yang belum ditemukan adalah AB maka string yang kita miliki menjadi :

A | B | AA | BA | AAB | BB | AABB | AB | BBBAB

Frasa selanjutnya yang belum ditemukan adalah BBB maka string yang kita miliki menjadi :

A | B | AA | BA | AAB | BB | AABB | AB | BBB | AB Frasa terakhir dan telah berulang adalah AB maka string yang kita miliki menjadi :

A | B | AA | BA | AAB | BB | AABB | AB | BBB | AB

Karena semua huruf sudah habis maka frasa terakhir akan berulang, yaitu AB yang sebelumnya kita sudah temukan dan tidak menjadi masalah.

ProsesEncodingLZMA adalah sebagai berikut:

Untuk melakukanencodingterhadapstringdiatas, setiapfrase yang kita temukan kita jadikan dictionary. Jadi untuk frasa selanjutnya kita tidak perlu menuliskan semua frasa tapi cukup dengan menuliskan nomor daridictionary-nya.

Seperti berikut ini :

1 2 3 4 5 6 7 8 9 10 NomorDictionary A B AA BA AAB BB AABB AB BBB AB ProsesDecoding 0A 0B 1A 2A 3B 2B 5B 1B 6B 8 HasilEncoding

(32)

Ukuran Sebelum Kompresi = 22 String Ukuran Setelah Kompresi = 10 String

Rasio Pemampatan = 100% x 100% = 100% - 45,455% = 54,545%, artinya

54,455% dari string semula telah dimampatkan.

2.7. Run Length Encoding

Algoritma Run Length Encoding adalah melakukan kompresi dengan memindahkan pengulangan byte yang sama berturut-turut atau secara terus menerus. Algoritma ini digunakan untuk mengompresi citra yang memiliki kelompok-kelompok piksel yang berderajat keabuan yang sama. Pada metode ini dilakukan pembuatan rangkaian pasangan nilai (P,Q) untuk setiap baris piksel, dimana nilai P menyatakan nilai derajat keabuan, sedangkan nilai Q menyatakan jumlah piksel berurutan yang memiliki derajat keabuan tersebut.[4]

Berbeda dengan teknik-teknik sebelumnya yang bekerja berdasarkan karakter per karakter, teknik run length ini bekerja berdasarkan sederetan karakter yang berurutan. Run Length Encoding adalah suatu algoritma kompresi data yang bersifat lossless. Algoritma ini mungkin merupakan algoritma yang paling mudah untuk dipahami dan diterapkan.[6]

Sebagai contoh sebuah citra dengan nilai piksel ”120, 120, 120, 120, 150, 200,

200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150”, nilai piksel pertama 120,

kedua 120, karakter ketiga 120, karakter keempat 120, dan karakter kelima 150, dikarenakan pada nilai piksel kelima tidak sama dengan sebelumnya, sehingga 4 nilai piksel pertama yang mengalami perulangan akan dijumlahkan semuanya dan nilai yang dijumlahkan adalah banyaknya nilai piksel yang akan diulang, sehingga output keempat nilai piksel yang pertama setelah dikompresi adalah hanya sebuah nilai piksel dan diikuti dengan nilai perulangan yaitu ”120,4”, setelah dilakukan kompresi 4 piksel

(33)

mengalami perulangan akan ditambahkan kepada nilai piksel ”120,4”, sehingga

menjadi ”120,4150”, dan seterusnya sehingga nilai piksel citra ” 120, 120, 120, 120,

150, 200, 200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150” setelah

dikompresi akan menjadi ”(120,4) (150,1) (200,4) (150,4) (120,1) (150,4)”. Dapat

diperhatikan bahwa nilai piksel ” 120, 120, 120, 120, 150, 200, 200, 200, 200, 150,

150, 150, 150, 120, 150, 150, 150, 150” yang berukuran 18byte/ nilai piksel.[4]

Contoh:

Citra Grayscale 3 bit berukuran 10 x 10 piksel akan di-encodedengan algoritma RLE

(34)

Hasil Pengkodean:

3 3 5 5 2 2 5 2 6 3 2 3 1 2 7 3 5 7 4 3 5 4 6 3 0 8 1 2 1 4 2 3 5 3 1 2 2 5 3 3 3 5 4 2 1 3 2 2 0 2 3 2 0 4 1 3 0 3 2 4

Semuanya = 60 Piksel

Ukuran citra sebelum dikompres = 10 x 10 x 3 bit = 300 bit Ukuran citra setelah dikompres = 60 x 3 bit = 180 bit

Rasio pemampatan = 100% x 100% = 40%, artinya 40% dari citra semula

telah dimampatkan.

Contoh Proses Kompresi dengan RLE dapat dilihat seperti pada tabel:

Tabel 2.2. Kompresi dengan RLE

No. Input Output Total

1 Aaaaaaaa a 8

2 Bbbbbbbb b 8

3 C c 1

4 Dddd d 4

Contoh Proses Dekompresi dengan RLE dapat dilihat seperti pada tabel:

Tabel 2.3. Dekompresi dengan RLE

No. Input Total Output

1 a 8 aaaaaaaa

2 b 8 bbbbbbbb

3 c 1 C

(35)

3.1. Analisis Masalah

Kompresi sangat dibutuhkan untuk mengurangi beban harddisk sebagai penyimpan data berbentuk citra, sehingga jumlah data bisa ditekan tanpa mengurangi kualitas citra tersebut (lossless). Untuk itu data yang dikompresi harus dapat dikembalikan ke bentuk semula, baik itu citra berformat bmp maupun png.

Analisis masalah pada sistem yang dirancang dapat digambarkan dalam diagram Ishikawa seperti pada Gambar 3.1.

(36)

3.2. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem dikelompokkan menjadi 2 bagian sebagai berikut:

1. Kebutuhan fungsional adalah fungsi-fungsi yang harus dipenuhi pada aplikasi yang dirancang. Kebutuhan fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut:

a. Sistem harus mampu melakukan kompresi data menggunakan Lempel-Ziv-Markov chain Algorithm (LZMA) dan melakukan dekompresi hasil kompresi dengan Lempel-Ziv-Markov chain Algorithm secara sempurna. b. Sistem harus mampu melakukan kompresi data menggunakan Run Length

Encoding dan melakukan dekompresi hasil kompresi dengan Run Length Encoding secara sempurna.

2. Kebutuhan non-fungsional adalah kebutuhan yang harus dipenuhi agar aplikasi yang dirancang mendapat umpan-balik yang baik dari pengguna aplikasi. Kebutuhan non-fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut:

a. Performa

Sistem harus mampu melaksanakan setiap tugas secara utuh dalam selang waktu yang tidak terlalu lama sesuai dengan ukuran data input yang diberikan.

b. Informasi

Sistem harus mampu menyediakan informasi tentang data-data yang akan digunakan pada sistem.

c. Ekonomi

(37)

d. Kontrol

Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem tetap terjaga dan dapat memberikan hasil yang sesuai dengan keinginan pengguna.

e. Efisiensi

Sistem harus dirancang sesederhana mungkin agar memudahkan pengguna dalam menggunakan atau menjalankan aplikasi tersebut.

f. Pelayanan

Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut.

3.3. Pemodelan Aplikasi

(38)

3.3.1.Use-CaseDiagram

Untuk menganalisa komponen-komponen yang berperan dalam sistem yang dirancang, penulis menggunakan use-case diagram agar proses penganalisaan komponen dapat dilakukan dengan mudah. Use-case diagram sistem pada aplikasi yang dirancang dapat dilihat pada Gambar 3.2.

Gambar 3.2.Use-CaseDiagram Pada Sistem

Tabel 3.1. Dokumentasi NaratifUse-CaseKompresi NamaUse

Case

Kontrol Proses Kompresi

Aktor User

(39)

Pre-condition Algoritma yang digunakan terdapat pada tampilan dan dapat dipilih sesuai dengan kebutuhan.

Typical Course Of Event

AksiActor ResponSystem

Langkah 1: User memanggil file citra yang berformat BMP atau PNG

Langkah 3: User memilih salah satu file citra dan menekan tombolOpen

Langkah 5: User memilih targettempat penyimpanan file citra terkompresi

Langkah 7:Usermemilih salah satu algoritma yang digunakan. Langkah 8: User memilih proses kompresi

Langkah 9: User memilih tombol Mulai untuk melakukan proses kompresi.

Langkah 11: User menekan tombol selesai.

Langkah 2: Sistem merespon dengan menampilkan Dialog Box yang berisi daftar file citra yang berformat BMP atau PNG. Langkah 4: Sistem menampilkan sourcecitra yang di-input

Langkah 6: Sistem merespon dengan menampilkan Dialog Box untuk menentukan tempat penyimpanan citra terkompresi. Langkah 10: Sistem merespon dengan menampilkan Dialog Box yang berarti proses kompresi selesai.

Langkah 12: Sistem menampilkan dataInput,Output, Rasio Kompresi dan Waktu Kompresi serta menyimpan Citra Terkompresi ke tempat penyimpanan yang dipilih. Alternate

Course

Aksi Aktor ResponSystem

(40)

3.3.2.PseudocodeKompresi Run Length Encoding (RLE)

Tabel 3.2.PseudocodeKompresi Run Length Encoding

Baris Pseudocode

ALGORITMARun Length Encoding

(algoritma untuk kompresi file citra menggunakan RLE)

DEKLARASI

masuk : FileOutputStream file_input, file_output : String c, count, last : int

DESKRIPSI

masuk <- untuk membaca byte dari file input file_input <- nama file input

file_output <- nama file output c <- nilai byte

count <- jumlah byte yang dihitung last <- byte terakhir yang dibaca

c <- masuk.read(); While Not EOF do Write c;

last := c;

(41)

Keterangan:

Baris 1-2 : Sebagai Judul Pseudocode

Baris 4-7 : Deklarasi Variabel Yang Digunakan

Baris 9-15 : Untuk menandai variabel yang digunakan dalam proses kompresi Run Length Encoding (RLE).

Baris 17 : Untuk membaca satu byte dari file input dan masukkan nilainya ke C Baris 18 : Sebelum End Of File maka lakukan perintah dibawahnya

Baris 19 : Untuk menuliskan nilai C pada file output Baris 20 : Untuk memberikan nilai C pada last

Baris 21 : Sebelum End Of File dan nilai count masih <=255 lakukan perintah dibawahnya

Baris 22 : Untuk membaca satu byte dari file input dan masukkan nilainya ke C Baris 23 : Jika nilai C sama dengan nilai last maka lakukan perintah dibawahnya Baris 24 : Untuk membaca nilai Count + 1

Baris 25 : Untuk kondisi lainnya

Baris 26 : Untuk menulis nilai Count pada file output Baris 27 : Untuk mengubah nilai count menjadi 0 Baris 28 : Untuk keluar dari perulangan

Baris 29 : Akhir dari if Baris 30-31 : Akhir dari while

3.3.3.ActivityDiagram

(42)

G

(43)

3.3.4.ClassDiagram

Class diagramuntuk si m

uk sistem yang dirancang dapat dilihat seperti pada

Gambar 3.4.ClassDiagram Pada Sistem

(44)

3.3.5. Sequence Diagram

Sequence diagramuntuk sistem yang dirancang dapat dilihat seperti pada Gambar 3.5.

(45)

3.4. Perancangan Sistem

3.4.1. Pembuatan Algoritma Program

Pembuatan algoritma program adalah proses penerjemahan langkah-langkah Lempel-Ziv-Markov Chain Algorithm (LZMA) dan Run Length Encoding ke dalam sebuah bahasa pemograman. Tahap-tahap pembuatan algoritma pemrograman sebagai berikut:

1. Pembuatan alur proses sistem secara umum.

2. Pembuatan alur proses kompresi dan dekompresi dengan menggunakan Markov Chain Algorithm (LZMA) dan penerapan Lempel-Ziv-Markov Chain Algorithm (LZMA) ke dalam bahasa pemrograman Java.

3. Pembuatan alur proses kompresi dan dekompresi dengan menggunakan Run Length Encoding dan penerapan Run Length Encoding ke dalam bahasa pemrograman Java.

3.4.2. Alur Proses Sistem Secara Umum

(46)

Gambar 3.6. Flowchart Kompresi File Citra Menggunakan LZMA

Gambar 3.7. Flowchart Kompresi File Citra Menggunakan RLE File BMP || PNG

Kompresi Dengan LZMA Byte Array File Citra

File Hasil Kompresi LZMA

Selesai

File Hasil Kompresi LZMA

File BMP || PNG Mulai

Kompresi Dengan RLE Byte Array File Citra

File Hasil Kompresi RLE

Selesai File Hasil Kompresi

(47)

Proses sistem secara umum untuk dekompresi file kompresi menjadi file citra dijelaskan melaluiflowchartseperti pada Gambar 3.8. dan Gambar 3.9.

Gambar 3.8.Flowchart Dekompresi File Citra Menggunakan LZMA

Gambar 3.9. Flowchart Dekompresi File Citra Menggunakan RLE Mulai

Dekompresi Dari LZMA

File BMP || PNG

File BMP || PNG File Hasil Kompresi LZMA

Selesai

Mulai

Dekompresi Dari RLE

File BMP || PNG

File BMP || PNG File Hasil Kompresi RLE

(48)

3.4.3. Alur Proses Kompresi dan Dekompresi Menggunakan LZMA

Proses kompresi dimulai dengan mengambil array bytes dari sebuah gambar berformat bmp maupun png. Sebagai contoh misalkan kita mengambil sampel potonganarray bytesyang ada pada gambar yang telah kita impor sebagai berikut:

95 96 96 67 97 45 46 46 47 77 77 77 77 11 55 55 23 14 55 95

Keterangan:

1. Setiap angka mewakili satubyte 2. Jumlah = 20Bytes

Proses Kompresi menggunakan LZMA mengubah potonganarray bytesdiatas menjadi berikut:

95 | 96 | 96 67 | 97 | 45 | 46 | 46 47 | 77 | 77 77 | 77 11 | 55 | 55 23 | 14 | 55 95 |

Setelah proses kompresi, potongan array bytes menjadi 14 bytes. Rasio pemampatan = 100% x 100% = 30 %, artinya 30%bytesdari potongan array

bytesdiatas telah dimampatkan menggunakan metode LZMA.

(49)

3.4.4. Alur Proses Kompresi dan Dekompresi Menggunakan Run Length Encoding

Proses kompresi dimulai dengan mengambil array bytes dari sebuah gambar berformat bmp maupun png. Sebagai contoh misalkan kita mengambil sampel potonganarray bytesyang ada pada gambar yang telah kita impor sebagai berikut:

95 96 96 67 97 45 46 46 47 77 77 77 77 11 55 55 23 14 55 95

Keterangan:

3. Setiap angka mewakili satubyte 4. Jumlah = 20Bytes

Proses Kompresi menggunakan Run Length Encoding mengubah potongan array bytesdiatas menjadi berikut:

(95) (96,2) (67) (97) (45) (46,2) (47) (77,4) (11) (55,2) (23) (14) (55) (95)

Setelah proses kompresi, potongan array bytes menjadi 18 bytes. Rasio pemampatan = 100% x 100% = 10 %, artinya 10%bytesdari potongan array

bytesdiatas telah dimampatkan menggunakan metode run length encoding.

(50)

3.5. Pembuatan Rancangan Tampilan Aplikasi

Form Menu adalah satu-satunya form yang muncul saat aplikasi dijalankan. RancanganMenudapat dilihat seperti pada Gambar 3.10.

Gambar 3.10 Rancangan Form Menu

Keterangan:

1. Label yang berisi logo aplikasi 2. Label untuk memilih sumber file

3. Tombol untuk menampilkan dialog pilih fileinput. 4. Label untuk memilih target file

5. Tombol untuk menampilkan dialog pilih fileoutput. 6. Label untuk memilih sumber file

7. Radiobutton untuk memilih metode LZMA

Input(3)

Output(5) Source(2)

Target(4)

Tindakan(9)

Algoritma(6) LZMA(7 )

RLE(8)

Kompresi(10) Dekompresi(11)

Mulai(12) Reset(13) Keluar(14)

(15)

(51)

8. Radiobutton untuk memilih metode Run Length Encoding 9. Label untuk memilih tindakan

10. Radiobutton untuk memilih tindakan kompresi 11. Radiobutton untuk memilih tindakan dekompresi 12. Tombol untuk memulai proses kompresi.

13. Tombol untuk reset sumber dan target file 14. Tombol untuk keluar dari program

(52)

4.1. Implementasi Sistem

Implementasi dari aplikasi dirancang dengan menggunakan bahasa pemrograman Java dengan JDK versi 1.7. Penggunaan bahasa pemrograman Java bertujuan untuk memberikan kemudahan kepada penulis dalam pembuatan source code dan tampilan aplikasi. Bahasa pemrograman Java dipilih oleh penulis karena bahasa pemrograman Java merupakan bahasa yang bersifatopensource.

Proses implementasi sistem yang terjadi di dalam aplikasi yang dirancang dibagi menjadi dua, yaitu:

1. Implementasi LZMA untuk melakukan kompresi dan dekompresi terhadap citra bmp / citra png.

2. Implementasi RLE untuk melakukan kompresi dan dekompresi terhadap citra

bmp/ citra png.

(53)

Gambar 4.1. Citra Berformat BMP

Proses yang dilakukan pertama kali adalah mendapatkan byte array dari file citra input dengan menggunakan potongan kode program yang dapat dilihat pada tabel 4.1.

Tabel 4.1. Potongan kode program untuk mendapatkanbyte arraydari citra

No Kode Program Keterangan

1 public static byte[] getBytes(String name) throws Exception{

Deklarasi nama fungsi

2 FileInputStream fis = new FileInputStream(name);

Deklarasi variabel objek dari class FileInputStream

3 ByteArrayOutputStream baos = new ByteArrayOutputStream();

Deklarasi variabel objek dari class ByteArrayOutputStream

4 byte[] bytes = new byte[1]; Deklarasi array byte sebanyak 1 array yang akan digunakan sebagai buffer

5 long file = new File(name).length(); Deklarasi variabel dengan tipe data long yang nilainya sebesar ukuran file citra

6 for(int a=0; a<file;a++){ Deklarasi looping dari a=0 sampai dengan a< ukuran file citra

7 fis.read(bytes); Proses membaca bytes yang ada pada file 8 baos.write(a);

baos.flush();

Proses penulisan nilai byte yang telah dibaca kedalam objek dari class ByteArrayOutputStream

(54)

Berdasarkan potongan kode program pada tabel 4.1. maka potonganbyte array darifilecitra input adalah sebagai berikut:

(55)

4.1.1. Implementasi Kompresi Dan Dekompresi Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA)

untuk melakukan kompresi file citra dengan LZMA, penulis menerapkannya dengan menggunakan library tambahan sebagaimana telah dijelaskan pada sub-bab 1.3. Potongan kode program untuk menjalankan proses kompresi dengan LZMA menggunakanlibrarytambahan dapat dilihat pada Tabel 4.2.

Tabel 4.2. Potongan kode program untuk melakukan kompresi dengan LZMA

No. Kode Program Keterangan

1. String[] args = new String[]{"e",jTextField1.getText(), jTextField2.getText()};

Deklarasi nama variabel yang

berisi informasi nama file

input dan nama file output

kompresi.

2. Date start = new Date(); Deklarasi nama variabel untuk

mencatat waktu mulai

kompresi.

3. try {

LzmaAlone.main(args); } catch (Exception ex) { ex.printStackTrace(); }

Perintah untuk memulai

kompresi dengan LZMA.

(56)

Gambar 4.2. File Hasil Kompresi Citra BMP Menggunakan LZMA

4.1.2. Implementasi Kompresi Dan Dekompresi Menggunakan Run Length Encoding

Sedangkan potongan kode program untuk melakukan kompresi dengan Run Length Encoding dapat dilihat seperti pada Tabel 4.3.

Tabel 4.3. Potongan kode program untuk melakukan kompresi dengan RLE

No Kode Program Keterangan

1 public void compress(String input_file,String output_file) throws IOException{

Deklarasi nama fungsi

2 long start_time=0; Deklarasi nama variabel 3 if(report_filenames){

System.out.println("original file:"+input_file); System.out.println("Compressed

file:"+output_file);}

Jika laporan file hasil ingin ditampilkan

4 if(report_times){

start_time=System.currentTimeMillis();}

Jika waktu mulai kompresi ingin ditampilkan

5 int zerf=0; int onef=0;

(57)

6 try{

Deklarasi nama variabel dalam blok try

7 while((c=getc())!=-1) {

System.out.println("error while processing file");

e.printStackTrace();}

Proses kompresi dengan Run Length Encoding

Proses penghitungan waktu yang dihabiskan selama kompresi

System.out.println("original file size :"+f11+"bytes");

System.out.println("compressed file size :"+f21+"bytes");

(58)

10 if(f11>f21){

System.out.println("compressed by :"+(f11-f21)+"bytes");}

else{

System.out.println("***file gained in size by " +(f21-f11)+"bytes***");}

Jika ukuran file setelah proses kompresi lebih besar dari sebelum dilakukan kompresi

11 if(f11==0L){ f11=1L;}

Jika ukuran file setelah kompresi sama dengan nol.

12 System.out.println("compression ratio :"+((((f11-f21)*10000)/f11)/100F)+"%");} System.out.println("");}

Proses penghitungan rasio ukuran file setelah kompresi dan sebelum kompresi

Potongan kode program pada Tabel 4.3. akan melakukan kompresi pada byte array yang diberikan sebagai input. Apabila kode program pada Tabel 4.3. dijalankan menggunakan byte array dari file citra input akan menghasilkan sebuah file output yang isinya dapat dilihat seperti pada Gambar 4.3.

Gambar 4.3. File Hasil Kompresi Citra BMP Menggunakan RLE

(59)

4.2. Pengujian Aplikasi

Saat aplikasi ini pertama kali dijalankan, akan munculMenu.Menupada aplikasi yang dirancang dapat dilihat seperti pada Gambar 4.4.

Gambar 4.4. TampilanMenuAplikasi

4.2.1. Pengujian Kompresi Dalam Aplikasi

Untuk melakukan kompresi citra melalui aplikasi yang dirancang, pertama-tama yang harus dilakukan adalah memulai aplikasi kemudian ketika tampilan aplikasi telah muncul seperti Gambar 4.4., lakukan langkah-langkah sebagai berikut:

(60)

Gambar 4.5. TampilanSave File DialogUntuk FileInputKompresi

2. Menekan tombolOutput untuk memunculkan save file dialogfile tujuan, dan masukan atau pilih sebuah nama file melalui save file dialog tersebut yang akan dijadikan fileoutput. tampilan save file dialog dapat dilihat seperti pada Gambar 4.6.

(61)

3. Apabila file input dan output telah ditentukan, maka kita dapat memilih algoritma kompresi LZMA atau Run Length Encoding seperti pada gambar 4.7.

Gambar 4.7. Tampilan Memilih Algoritma LZMA

4. Kemudian pilih tindakan kompresi untuk mengkompresi file citra seperti pada gambar 4.8.

(62)

5. Menekan tombol Mulai untuk memulai proses kompresi. Apabila proses kompresi selesai, maka akan muncul message box yang menyatakan proses telah selesai dilaksanakan. dan tampilan message box dapat dilihat pada gambar 4.9.

Gambar 4.9. TampilanMessage BoxMenunjukkan Proses Selesai

6. Kemudian pada teks area akan muncul informasi tentang proses kompresi yang telah berlangsung. teks area dapat dilihat seperti pada gambar 4.10.

(63)

4.2.2. Proses Dekompresi Dalam Aplikasi

Untuk melakukan dekompresi citra melalui aplikasi yang dirancang, pertama-tama yang harus dilakukan adalah memulai aplikasi kemudian ketika tampilan aplikasi telah muncul seperti Gambar 4.4.

Untuk melakukan proses dekompresi melalui aplikasi yang dirancang, lakukan langkah-langkah sebagai berikut:

1. Menekan tombol input untuk memunculkan open file dialog pilih file, dan pilih file kompresi berformat erl melalui open file dialog tersebut yang akan dijadikan file input. tampilan open file dialog dapat dilihat seperti pada Gambar 4.11.

Gambar 4.11. TampilanSave File DialogUntuk File Input Dekompresi

(64)

Gambar 4.12. TampilanSave File DialogUntuk File Tujuan Output Dekompresi

3. Apabila file input dan output telah ditentukan, maka kita dapat memilih algoritma dekompresi LZMA atau Run Length Encoding seperti pada gambar 4.13.

(65)

4. Kemudian pilih tindakan dekompresi untuk mengembalikan file kompresi menjadi citra seperti pada Gambar 4.14.

Gambar 4.14. Tampilan Memilih Tindakan Dekompresi

5. Menekan tombol Mulai untuk memulai proses kompresi. Apabila proses kompresi selesai, maka akan muncul message box yang menyatakan proses telah selesai dilaksanakan. Dan tampilan message box dapat dilihat pada gambar 4.9.

(66)

Gambar 4.15. Tampilan Ringkasan Hasil Dekompresi

4.3 Hasil Pengujian

4.3.1. Hasil Pengujian Kompresi Citra BMP Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA)

Hasil pengujian untuk kompresi file citra berekstensi *.bmp dengan menggunakan Lempel-Ziv-Markov Chain Algorithm dapat dilihat seperti pada Tabel 4.4.

Tabel 4.4. Hasil Pengujian Kompresi Citra BMP Menggunakan LZMA

No. Nama File I O R T

(67)

Keterangan:

1. I = Ukuranfilecitrainput(Input).

2. O = Ukuranfilesetelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

Grafik perbandinganinputdanoutputkompresi citra BMP menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) seperti pada gambar 4.16

Gambar 4.16. Grafik Perbandingan Input Output Citra BMP Menggunakan LZMA

Keterangan:

Garis Biru : Ukuran Sebelum Kompresi (Bytes) Garis Merah : Ukuran Setelah Kompresi (Bytes)

4.3.2. Hasil Pengujian Kompresi Citra BMP Menggunakan Run Length Encoding

(68)

Tabel 4.5. Hasil Pengujian Kompresi Citra BMP Menggunakan RLE

No. Nama File I O R T

1. FLAG_B24.BMP 46182 bytes 45187 bytes 2.15 % 1656 ms 2. BLK.BMP 86454 bytes 377 bytes 99.56 % 890 ms 3. WHT.BMP 86454 bytes 760 bytes 99.12 % 1156 ms 4. LAND.BMP 787510 bytes 780264 bytes 0.92 % 4688 ms 5. RAY.BMP 1440054 bytes 1411362 bytes 1.99 % 7453 ms 6. MARBLES.BMP 4264316 bytes 4081405 bytes 4.28 % 16766 ms

Rata Rata 34.670 % 5434.834 ms

Keterangan:

1. I = Ukuranfilecitrainput(Input).

2. O = Ukuranfilesetelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

Grafik perbandinganinputdanoutput kompresi citra BMP menggunakan Run Length Encoding seperti pada gambar 4.17.

Gambar 4.17. Grafik Perbandingan Input Output Citra BMP Menggunakan RLE

Keterangan:

(69)

4.3.3. Hasil Pengujian Kompresi Citra PNG Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA)

Hasil pengujian untuk kompresi file citra berekstensi *.png dengan menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dapat dilihat seperti pada Tabel 4.6.

Tabel 4.6. Hasil Pengujian Kompresi Citra PNG Menggunakan LZMA

No. Nama File I O R T

1. Solid_black.png 619 bytes 123 bytes 80.12 % 1172 ms 2. Solid_white.png 1145 bytes 250 bytes 78.16 % 922 ms 3. Awesome.png 14827 bytes 14801 bytes 0.17 % 969 ms 4. star-6.png 17764 bytes 17852 bytes -0.49 % 1188 ms 5. YinYang.png 22088 bytes 21103 bytes 4.45 % 1047 ms 6. Basketball.png 157426 bytes 159020 bytes -1.01 % 1718 ms Rata Rata 26.900 % 1169.34 ms

Keterangan:

1. I = Ukuran file citrainput(Input).

2. O = Ukuran file setelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

(70)

Gambar 4.18. Grafik Perbandingan Input Output Citra PNG Menggunakan LZMA

Keterangan:

Garis Biru : Ukuran Sebelum Kompresi (Bytes) Garis Merah : Ukuran Setelah Kompresi (Bytes)

4.3.4. Hasil Pengujian Kompresi Citra PNG Menggunakan Run Length Encoding

Hasil pengujian untuk kompresi file citra berekstensi *.png dengan menggunakan Run Length Encoding dapat dilihat seperti pada Tabel 4.7.

Tabel 4.7. Hasil Pengujian Kompresi Citra PNG Menggunakan RLE

No. Nama File I O R T

1. Solid_black.png 619 bytes 624 bytes -0.8 % 969 ms 2. Solid_white.png 1145 bytes 1150 bytes -0.43 % 812 ms 3. Awesome.png 14827 bytes 14804 bytes 0.15 % 890 ms 4. star-6.png 17764 bytes 17769 bytes -0.02 % 1250 ms 5. YinYang.png 22088 bytes 22436 bytes -1.57 % 907 ms 6. Basketball.png 157426 bytes 157443 bytes -0.01 % 1516 ms

(71)

Keterangan:

1. I = Ukuranfilecitrainput(Input).

2. O = Ukuranfilesetelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

Grafik perbandinganinput danoutput kompresi citra PNG menggunakan Run Length Encoding seperti pada gambar 4.18.

Gambar 4.19. Grafik Perbandingan Input Output Citra PNG Menggunakan RLE

Keterangan:

Garis Biru : Ukuran Sebelum Kompresi (Bytes) Garis Merah : Ukuran Setelah Kompresi (Bytes)

4.3.5. Hasil Pengujian Dekompresi Citra BMP Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA)

(72)

Tabel 4.8. Hasil Pengujian Dekompresi Citra BMP Menggunakan LZMA

No. Nama File I O R T

1. BLK.BMP.erl 117 bytes 86454 bytes -73792.3 % 797 ms 2. WHT.BMP.erl 139 bytes 86454 bytes -62097.12 % 1328 ms 3. FLAG_B24.BMP.erl 522 bytes 46182 bytes -8747.12 % 844 ms 4. RAY.BMP.erl 180618 bytes 1440054 bytes -697.29 % 1328 ms 5. LAND.BMP.erl 413754 bytes 787510 bytes -90.33 % 1250 ms 6. MARBLES.BMP.erl 1828408 bytes 4264316 bytes -133.22 % 1687 ms Rata Rata 24259.563 % 1205.67 ms

Keterangan:

1. I = Ukuranfilehasil kompresiinput(Input). 2. O = Ukuranfilesetelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

Grafik perbandingan input dan output dekompresi citra BMP menggunakan Lempe-Ziv-Markov Chain Algorithm (LZMA) seperti pada gambar 4.19

Gambar 4.20. Grafik Perbandingan Input Output File Kompresi Citra BMP Menggunakan LZMA

Keterangan:

(73)

4.3.6. Hasil Pengujian Dekompresi Citra BMP Menggunakan Run Length Encoding

Hasil pengujian untuk dekompresi file input *.erl dengan menggunakan Run Length Encoding dapat dilihat seperti pada Tabel 4.9.

Tabel 4.9. Hasil Pengujian Dekompresi Citra BMP Menggunakan RLE

No. Nama File I O R T

1. BLK.BMP.erl 377 bytes 86454 bytes -22832.09 % 1031 ms 2. WHT.BMP.erl 760 bytes 86454 bytes -11275.52 % 1047 ms 3. FLAG_B24.BMP.erl 45187 bytes 46182 bytes -2.2 % 969 ms 4. LAND.BMP.erl 780264 bytes 787510 bytes -0.92 % 4062 ms 5. RAY.BMP.erl 1411362 bytes 1440054 bytes -2.03 % 6672 ms 6. MARBLES.BMP.erl 4081405 bytes 4264316 bytes -4.48 % 17219 ms

Rata Rata 5686.206 % 5166.67 ms

Keterangan:

1. I = Ukuranfilehasil kompresiinput(Input). 2. O = Ukuranfilesetelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

(74)

Gambar 4.21. Grafik Perbandingan Input Output File Kompresi Citra BMP Menggunakan RLE

Keterangan:

Garis Biru : Ukuran Sebelum Dekompresi (Bytes) Garis Merah : Ukuran Setelah Dekompresi (Bytes)

4.3.7. Hasil Pengujian Dekompresi Citra PNG Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA)

Hasil pengujian untuk dekompresi file input *.erl dengan menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dapat dilihat seperti pada Tabel 4.10.

Tabel 4.10. Hasil Pengujian Dekompresi Citra PNG Menggunakan LZMA

No. Nama File I O R T

1. Solid_black.png.erl 123 bytes 619 bytes -403.25 % 1453 ms 2. Solid_white.png.erl 250 bytes 1145 bytes -358.0 % 984 ms 3. Awesome.png.erl 14801 bytes 14827 bytes -0.17 % 1015 ms 4. star-6.png.erl 17852 bytes 17764 bytes 0.49 % 906 ms 5. YinYang.png.erl 21103 bytes 22088 bytes -4.66 % 1063 ms 6. Basketball.png.erl 159020 bytes 157426 bytes 1.0 % 859 ms

(75)

Keterangan:

1. I = Ukuranfilehasil kompresiinput(Input). 2. O = Ukuranfilesetelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

Grafik perbandingan input dan output dekompresi citra PNG menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) seperti pada gambar 4.21.

Gambar 4.22. Grafik Perbandingan Input Output File Kompresi Citra PNG Menggunakan LZMA

Keterangan:

Garis Biru : Ukuran Sebelum Dekompresi (Bytes) Garis Merah : Ukuran Setelah Dekompresi (Bytes)

4.3.8. Hasil Pengujian Dekompresi Citra PNG Menggunakan Run Length Encoding

(76)

Tabel 4.11. Hasil Pengujian Dekompresi Citra PNG Menggunakan RLE

No. Nama File I O R T

1. Solid_black.png.erl 624 bytes 619 bytes 0.8 % 1016 ms 2. Solid_white.png.erl 1150 bytes 1145 bytes 0.43 % 828 ms 3. Awesome.png.erl 14804 bytes 14827 bytes -0.15 % 984 ms 4. star-6.png.erl 17769 bytes 17764 bytes 0.02 % 859 ms 5. YinYang.png.erl 22436 bytes 22088 bytes 1.55 % 750 ms 6. Basketball.png.erl 157443 bytes 157426 bytes 0.01 % 2438 ms

Rata Rata 0.443 % 1145.83 ms

Keterangan:

1. I = Ukuranfilehasil kompresiinput(Input). 2. O = Ukuranfilesetelah kompresi (Output).

3. R = PerbandinganInputdenganOutputkompresi (Rasio). 4. T = Waktu yang dibutuhkan untuk proses kompresi (Waktu).

Grafik perbandingan input dan output dekompresi citra PNG menggunakan Run Length Encoding seperti pada gambar 4.22.

Gambar 4.23. Perbandingan Input Output File Kompresi Citra PNG Menggunakan RLE

Keterangan:

(77)

4.3.9. Hasil Pengujian Rasio Perbandingan Persentase Kompresi Citra BMP Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Menggunakan Run Length Encoding

Hasil pengujian untuk rasio perbandingan persentase kompresi citra BMP menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan menggunakan Run Length Encoding dapat dilihat seperti pada Tabel 4.12.

Tabel 4.12. Hasil Pengujian Rasio Persentase Kompresi Citra BMP Menggunakan LZMA dan RLE

Nama File RA RB

FLAG_B24.BMP 98.86 % 2.15 %

BLK.BMP 99.86 % 99.56 %

WHT.BMP 99.83 % 99.12 %

LAND.BMP 47.46 % 0.92 %

RAY.BMP 87.45 % 1.99 %

MARBLES.BMP 57.12 % 4.28 %

Rata Rata 81.76 % 34.67

Keterangan:

1. RA = Rasio Persentase Kompresi Citra BMP Menggunakan LZMA (Rasio LZMA).

2. RB = Rasio Persentase Kompresi Citra BMP Menggunakan RLE (Rasio RLE).

(78)

Gambar 4.24. Grafik Perbandingan Rasio Persentase Kompresi Citra BMP Menggunakan LZMA dan RLE

Keterangan:

Kolom Biru : Rasio Persentase Kompresi BMP Menggunakan LZMA (%) Kolom Merah : Rasio Persentase Kompresi BMP Menggunakan RLE (%)

4.3.10 .Hasil Pengujian Rasio Perbandingan Persentase Kompresi Citra PNG Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Menggunakan Run Length Encoding

(79)

Tabel 4.13. Hasil Pengujian Rasio Persentase Kompresi Citra PNG Menggunakan LZMA dan RLE

Nama File RA RB

Solid_black.png 80.12 % -0.80 %

Solid_white.png 78.16 % -0.43 %

Awesome.png 0.17 % 0.15 %

star-6.png -0.49 % -0.02 %

YinYang.png 4.45 % -1.57 %

Basketball.png -1.01 % -0.01 %

Rata Rata 26.90 % -0.45 %

Keterangan:

1. RA = Rasio Persentase Kompresi Citra PNG Menggunakan LZMA (Rasio LZMA).

2. RB = Rasio Persentase Kompresi Citra PNG Menggunakan RLE (Rasio RLE).

Grafik perbandingan rasio persentase kompresi citra PNG menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan menggunakan Run Length Encoding seperti pada gambar 4.24.

(80)

Keterangan:

Kolom Biru : Rasio Persentase Kompresi PNG Menggunakan LZMA (%) Kolom Merah : Rasio Persentase Kompresi PNG Menggunakan RLE (%)

4.3.11. Hasil Pengujian Rasio Perbandingan Persentase Dekompresi Citra BMP Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Menggunakan Run Length Encoding

Hasil pengujian untuk rasio perbandingan persentase dekompresi citra BMP menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan menggunakan Run Length Encoding dapat dilihat seperti pada Tabel 4.14.

Tabel 4.14. Hasil Pengujian Rasio Persentase Dekompresi Citra BMP Menggunakan LZMA dan RLE

Nama File RA RB

BLK.BMP.erl -73792.30 % -22832.09 %

WHT.BMP.erl -62097.12 % -11275.52 %

FLAG_B24.BMP.erl -8747.12 % -2.20 %

RAY.BMP.erl -697.29 % -2.03 %

LAND.BMP.erl -90.33 % -0.92 %

MARBLES.BMP.erl -133.22 % -4.48 %

Rata Rata 24259.56 % -5686.20 %

Keterangan:

1. RA = Rasio Persentase Dekompresi Citra BMP Menggunakan LZMA (Rasio LZMA).

(81)

Grafik perbandingan rasio persentase dekompresi citra BMP menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan menggunakan Run Length Encoding seperti pada gambar 4.25.

Gambar 4.26. Grafik Perbandingan Rasio Persentase Dekompresi Citra BMP Menggunakan LZMA dan RLE

Keterangan:

Kolom Biru : Rasio Persentase Dekompresi BMP Menggunakan LZMA (%) Kolom Merah : Rasio Persentase Dekompresi BMP Menggunakan RLE (%)

4.3.12. Hasil Pengujian Rasio Perbandingan Persentase Dekompresi Citra PNG Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Menggunakan Run Length Encoding

(82)

Tabel 4.15. Hasil Pengujian Rasio Persentase Dekompresi Citra PNG Menggunakan LZMA dan RLE

Nama File RA RB

Solid_black.png.erl -403.25 % 0.80 %

Solid_white.png.erl -358.00 % 0.43 %

Awesome.png.erl -0.17 % -0.15 %

star-6.png.erl 0.49 % 0.02 %

YinYang.png.erl -4.66 % 1.55 %

Basketball.png.erl 1.00 % 0.01 %

Rata Rata -127.43 % 0.44 %

Keterangan:

1. RA = Rasio Persentase Dekompresi Citra PNG Menggunakan LZMA (Rasio LZMA).

2. RB = Rasio Persentase Dekompresi Citra PNG Menggunakan RLE (Rasio RLE).

Grafik perbandingan rasio persentase dekompresi citra PNG menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan menggunakan Run Length Encoding seperti pada gambar 4.26.

(83)

Keterangan:

Kolom Biru : Rasio Persentase Dekompresi PNG Menggunakan LZMA (%) Kolom Merah : Rasio Persentase Dekompresi PNG Menggunakan RLE (%)

4.3.13. Hasil Pengujian Rasio Perbandingan Waktu Kompresi Citra BMP Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Menggunakan Run Length Encoding

Hasil pengujian untuk perbandingan waktu kompresi citra BMP menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan menggunakan Run Length Encoding dapat dilihat seperti pada Tabel 4.16.

Tabel 4.16. Hasil Pengujian Perbandingan Waktu Kompresi Citra BMP Menggunakan LZMA dan RLE

Nama File TA TB

FLAG_B24.BMP 1282 ms 1656 ms

BLK.BMP 1125 ms 890 ms

WHT.BMP 4219 ms 1156 ms

LAND.BMP 1906 ms 4688 ms

RAY.BMP 3735 ms 7453 ms

MARBLES.BMP 7625 ms 16766 ms

Rata Rata 3315.33 ms 5434.83 ms

Keterangan:

1. TA = Perbandingan Waktu Kompresi Citra BMP Menggunakan LZMA (Waktu LZMA).

(84)

Grafik perbandingan waktu kompresi citra BMP menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan menggunakan Run Length Encoding seperti pada gambar 4.27.

Gambar 4.28. Grafik Perbandingan Waktu Kompresi Citra BMP Menggunakan LZMA dan RLE

Keterangan:

Garis Biru : Waktu Kompresi BMP Menggunakan LZMA (ms) Garis Merah : Waktu Kompresi BMP Menggunakan RLE (ms)

4.3.14.Hasil Pengujian Rasio Perbandingan Waktu Kompresi Citra PNG Menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) Dan Menggunakan Run Length Encoding

Gambar

Gambar 2.4. Citra 3 bit 10 X 10 Piksel
Gambar 3.1. Diagram Ishikawa
Tabel 3.1. Dokumentasi Naratif Use-Case Kompresi
Gambar 3.4. Class Diagram Pada Sistem
+7

Referensi

Dokumen terkait

2009 Novel: Tegar Bengawan Pemenang I Sayembara Penulisan Buku Pengayaan PUSBUK KEMENDIKBUD 2009 2009 Prophetic Learning Pro-U Media (Cetakan ke-2 pd 2010) 2008 Novel:

KELIMA  Dengan berlakunya Keputusan Bupati ini maka Keputusan Bupati Bantul Nomor 194 Tahun 2007 tentang Pembentukan Tim Regulatory Impact Assesment

[r]

bahwa berdasarkan pertimbangan sebagaimana dimaksud huruf a, perlu menetapkan Keputusan Bupati Bantul tentang Pembentukan Majelis dan Sekretariat Tuntutan

[r]

U dolje navedenom primjeru (slika 11) prikazuje se stvaranje liste pomoću navedene funkcije, gdje rezultat (lista) sadrži 6 elemenata od kojih svaki predstavlja jedan

Pendekatan ATI dalam penelitian ini dilakukan dalam empat tahap, yaitu (1) Perlakuan ( treatment ) awal, pemberian perlakuan awal terhadap siswa dengan menggunakan

Palestina, Israel , dan Timur Tengah adalah merupakan masalah yang setiap hari menjadi bahan berita di seluruh dunia.. Tampaknya, ini masalah rumit yang tidak akan pernah