BAB 1
PENDAHULUAN
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 maupun webcam dan scanner sebagai 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 dalam harddisk. Untuk mengatasi masalah tersebut perlu dilakukan sebuah tindakan pencegahan. Salah satu cara mengatasinya adalah dengan mengkompresi ukuran data file citra yang disimpan. Banyak pengkodean data yang dapat diterapkan dalam kompresi data berbentuk citra. Dua diantaranya dengan menggunakan Lempel-Ziv-Markov Chain Algorithm (LZMA) dan Run Length Encoding. Lempel-Ziv-Markov Chain Algorithm (LZMA) merupakan sebuah algoritma yang digunakan untuk kompresi data dengan menggunakan sebuah skema dictionary compression, yang hampir sama dengan LZ77, dan mampu menghasilkan rasio kompresi yang sangat baik.[1] Sedangkan kompresi metode RLE adalah menjumlahkan pengulangan byte / karakter yang sama berturut-turut dan menampilkan hanya sebuah karakter yang mengalami pengulangan disertai dengan nilai jumlah pengulangan byte / karakter, sedangkan untuk byte / karakter yang tidak terjadi pengulangan maka karakter tersebut tidak akan dikompresi, misalkan pada kata ”aaab” yang terjadi pengulangan byte / karakter ’a’ sebanyak 3
2
kali dan byte / karakter ’b’ tidak mengalami perulangan sehingga kata tersebut akan dikompresi menjadi ”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 PERBANDINGAN
KOMPRESI
CITRA
MENGGUNAKAN
ANALISIS
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. 3. Input aplikasi ini adalah file citra berformat BMP atau PNG. 4. Output aplikasi ini adalah file dengan ekstensi *.erl
3
5. Khusus untuk LZMA, penulis akan mengimplementasikannya melalui fungsifungsi dan class yang 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 Pengumpulan referensi dalam penelitian yang penulis lakukan dengan mencari jurnal, buku, tulisan ilmiah, electronic book, maupun artikel lain yang berhubungan dengan kompresi data, Lempel-Ziv-Markov Chain Algorithm (LZMA), Run Length Encoding serta Bahasa Pemrograman Java.
4
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 pembuatan user interface aplikasi. 3. Implementasi Sistem Menerapkan Lempel-Ziv-Markov Chain 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 terdapat error 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 Bab ini berisi teori-teori yang berkaitan dengan kompresi data, dekompresi data, Lempel-Ziv-Markov Chain Algorithm ( LZMA ), dan Run Length Encoding.
5
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 Bab ini berisi kesimpulan yang didapat dalam menjalani penelitian ini dan saran yang yang berguna dalam usaha untuk melakukan perbaikan dan pengembangan penelitian ini.