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

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 Lempel-Ziv-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

Alur proses sistem secara umum dibagi menjadi dua yaitu proses kompresi file citra menjadi file kompresi dan proses dekompresi file kompresi menjadi file citra. Proses sistem secara umum untuk kompresi file citra menjadi file kompresi dijelaskan melalui flowchart seperti pada Gambar 3.6. dan Gambar 3.7. Gambar 3.6. Flowchart Kompresi File Citra Menggunakan LZMA Gambar 3.7. Flowchart Kompresi File Citra Menggunakan RLE File BMP || PNG Mulai 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 RLE Proses sistem secara umum untuk dekompresi file kompresi menjadi file citra dijelaskan melalui flowchart seperti 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 Selesai

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 potongan array bytes yang 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 satu byte 2. Jumlah = 20 Bytes Proses Kompresi menggunakan LZMA mengubah potongan array bytes diatas 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 bytes dari potongan array bytes diatas telah dimampatkan menggunakan metode LZMA. Semua array bytes yang ada pada sebuah file gambar akan dikompresi menjadi file kompresi baru berformat erl. Proses dekompresi berfungsi untuk mengembalikan file kompresi berformat erl menjadi citra berformat bmp maupun png.

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 potongan array bytes yang 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 satu byte 4. Jumlah = 20 Bytes Proses Kompresi menggunakan Run Length Encoding mengubah potongan array bytes diatas 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 bytes dari potongan array bytes diatas telah dimampatkan menggunakan metode run length encoding. Semua array bytes yang ada pada sebuah file gambar akan dikompresi menjadi file kompresi baru berformat erl. Proses dekompresi berfungsi untuk mengembalikan file kompresi berformat erl menjadi citra berformat bmp maupun png.

3.5. Pembuatan Rancangan Tampilan Aplikasi