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