3.1.3.4.2 Flowchart Kompresi Run Length Encoding
Flowchart Kompresi Run Length Encoding dapat dilihat pada Gambar 3.7 sebagai berikut.
START
Citra Grayscale
Baca nilai piksel A
Baca nilai piksel B
Piksel B = Piksel akhir?
Nilai piksel A ==
nilai piksel B
Tulis Jumlah_piksel
Tulis nilai piksel A
Nilai piksel A =
Nilai piksel B
Jumlah_piksel = 1 tidak
tidak Tulis nilai piksel A
Tulis Jumlah_piksel
Citra Terkompresi
ya
END Jumlah_piksel
= Jumlah_piksel+1
Nilai piksel A =
Nilai piksel B ya
Jumlah_piksel = 1 A = 1
B = A+1
Gambar 3.7 Flowchart Kompresi Run Length Encoding
3.1.3.4.3 Flowchart Dekompresi Run Length Encoding
Flowchart Dekompresi Run Length Encoding dapat dilihat pada Gambar 3.8 sebagai berikut.
START Citra
Terkompresi Baca nilai piksel A
Baca nilai piksel B
Piksel B =
Piksel Akhir? Tulis nilai piksel A
Tulis nilai piksel A
Piksel B = 1 ? Piksel B = 1 ?
Nilai piksel B =
nilai piksel B-1 Nilai piksel B
= nilai piksel B-1
Nilai piksel A =
nilai piksel B+1 tidak
ya
ya tidak
tidak
Citra dekompresi
END ya
A = 1 B = A+1
Gambar 3.8 Flowchart Dekompresi Run Length Encoding
3.1.3.4.4 Flowchart Kompresi Transformasi Wavelet Daubechies
Flowchart Kompresi Transformasi Wavelet Daubechies dapat dilihat pada Gambar 3.9 sebagai berikut.
START Citra
Grayscale
Baca nilai piksel A Baca nilai piksel B
Piksel B = Piksel akhir?
Nilai piksel A ==
nilai piksel B
Tulis Jumlah_piksel
Tulis nilai piksel A
Nilai piksel A =
Nilai piksel B Jumlah_piksel = 1
tidak
tidak Tulis nilai piksel A
Tulis Jumlah_piksel
Citra Terkompresi
ya
END Jumlah_piksel
= Jumlah_piksel+1
Nilai piksel A =
Nilai piksel B Kuantisasi
Transformasi Wavelet
Daubechies
Jumlah_piksel = 1
A = 1 B = A+1
Gambar 3.9 Flowchart Kompresi Transformasi Wavelet Daubechies
3.1.3.4.5 Flowchart Dekompresi Transformasi Wavelet Daubechies
Flowchart Dekompresi Transformasi Wavelet Daubechies dapat dilihat pada Gambar
3.10 sebagai berikut.
START Citra
Terkompresi Baca nilai piksel A
Baca nilai piksel B
Piksel B =
Piksel Akhir? Tulis nilai piksel A
Tulis nilai piksel A
Piksel B = 1? Piksel B = 1?
Nilai piksel B =
nilai piksel B-1 Nilai piksel B
= nilai piksel B-1
Nilai piksel A =
nilai piksel B+1 tidak
ya
ya tidak
tidak
END ya
Dekuantisasi
Invers Transformasi
Wavelet Daubechies
A = 1 B = A+1
Gambar 3.10 Flowchart Dekompresi Transformasi Wavelet Daubechies
3.2 Perancangan Sistem
Pada tahapan ini akan dijelaskan tentang pseudocode dari program, perancangan perangkat lunak, hingga perancangan antamuka untuk pengguna user interface.
3.2.1 Pseudocode Program
Pseudocode atau kode palsu merupakan penulisan ringkas dari algoritma pemrograman komputer dari suatu bahasa pemrograman, yang ditujukan untuk dibaca
oleh manusia. Tujuannya adalah untuk memudahkan manusia dalam pemahaman dibandingkan menggunakan bahasa pemrograman yang umumnya digunakan. Adapun
pseudocode yang akan dijelaskan dalam skripsi ini adalah pseudocode dari kompresi maupun dekompresi metode Run Length Encoding RLE dan kompresi maupun
dekompresi Transformasi Wavelet Daubechies.
3.2.1.1 Pseudocode Kompresi Run Length Encoding
Adapun pseudocode dari kompresi Run Length Encoding terlihat pada Gambar 3.11 sebagai berikut.
Gambar 3.11 Pseudocode Kompresi Run Length Encoding
citra citraawal citrahasil1:2 sizecitra
a citra1,1 b 0
c 2 for i=1:sizecitra
for j=1:sizecitra if citrai,j==a
b b+1 else
citrahasil2c-1 a citrahasil2c b
a citrai,j b 1
c c+1 end
end end
3.2.1.2 Pseudocode Dekompresi Run Length Encoding
Adapun pseudocode dari dekompresi Run Length Encoding terlihat pada Gambar 3.12 sebagai berikut.
Gambar 3.12 Pseudocode Dekompresi Run Length Encoding
citra citraawal citrahasil citra1:2
a 1 b 0
for i=2:lengthcitra2 for j=1:citra2i
b b+1 citrahasila,b=citra2i-1
if b==citra2 a a+1
b 0 end
end end
3.2.1.3 Pseudocode Kompresi dengan Transformasi Wavelet Daubechies
3.2.1.3.1 Pseudocode Transformasi Wavelet Daubechies
Adapun pseudocode dari Transformasi Wavelet Daubechies terlihat pada Gambar 3.13 sebagai berikut.
Gambar 3.13 Pseudocode Transformasi Wavelet Daubechies
citra citra_awal [a,b] sizecitra
count 0 citra_hasil citra
level 1 while count level,
k 1 j 1
index 1 whilek = b,
for j = 1:a, citra_hasil1j,index citraj,k+citraj,k+12
citra_hasil1j,b2+index citraj,k-citraj,k+12 end
index index + 1 k k + 2
end whilej = a,
for k = 1:b, citra_hasilindex,kcitra_hasil1j,k+citra_hasil1j+1,k2
citra_hasila2+index,kcitra_hasil1j,k- citra_hasil1j+1,k2
end index index + 1
j j + 2 end
a a2 b b2
count count+1 citra citra_hasil
end citra_hasil roundcitra_hasil
3.2.1.3.2 Pseudocode Kuantisasi