BAB III
Pada bab ini penulis memaparkan analisis permasalahan yang diangkat yang
disajikan dengan diagram dan flowchart serta dipaparkan juga perancangan sistem
yang akan dibangun, baik yang berupa perangkat keras ataupun perangkat lunak,
cara melakukan
pengujian dan bentuk topologi.
3.1 Analisis
Analisis sistem adalah tahap awal dalam sebuah penelitian yang bertujuan
mengetahui
masalah terkait dalam pembuatan sebuah sistem dan menggambarkan proses-
proses yang ada di dalam sistem untuk menghasilkan keluaran yang sesuai dengan
kebutuhan
pemakai (user). Untuk menganalisis sebuah sistem ada beberapa hal yang biasa
dilakukan, yaitu sebagai berikut:
19
20
Diagram Ishikawa (fishbone diagram) biasanya disebut juga diagram sebab akibat
yang biasanya digunakan untuk mengidentifikasi masalah yang ada pada sistem
yang akan dirancang. Dengan diagram ini kita dapat mengidentifikasi,
mengeksplorasi dan menggambarkan suatu masalah dengan mengikutsertakan
sebab dan akibat dari permasalahan dalam visual grafis. Dengan demikian proses
pencapaian sistem akan sangat dibantu dengan adanya Diagram Ishikawa ini.
Diagram Ishikawa pada analisis masalah dapat dilihat pada gambar 3.1 berikut ini.
21
Material Metode
Belum adanya
Umumnya file citra JPG
perbandingan
yg berukuran besar
metode ARUC
dengan RLE
Mengurangi
ukuran
file dengan
Penyimpanan Media Butuh penyimpanan media teknik kompresi
yang terbatas yang besar
Proses pertukaran
Lamanya waktu
informasi lama pengiriman
Mesin Manusia
Tujuan dari tahap analisis proses adalah mengetahui tahapan dan cara kerja dari
system yang digunakan secara spesifik. Analisis proses dilakukan pada tahapan
pemodelan sistem. Hal ini dilakukan guna mengetahui apa saja yang harus
dilakukan oleh system sehingga dengan mudah melakukan pemrograman pada
sistem yang akan dibangun.
Dalam sistem ini terdapat dua proses utama yaitu proses kompresi dan
dekompresi dengan menggunakan metode Alternate Reverse Unary Code dan Run
Length Encoding. Secara umum, proses kompresi maupun dekompresi dari kedua
metode ini serupa, hanya saja nilai dari pixel yang akan digunakan yang akan
berbeda menurut perhitungan masing-masing metode. Pada proses kompresi,
sistem awalnya membaca gambar yang terdapat pada file. Setelah itu sistem
23
membangkitkan kode Alternate Reverse Unary Code atau Run Length Encoding
berdasarkan banyaknya pixel pada tabel pixel yang telah dibuat. Kemudian sistem
melakukan proses kompresi berdasarkan tabel pixel dan tabel kode yang telah
dibangkitkan itu. Pada proses dekompresi, awalnya sistem membaca file hasil
kompresi. Setelah mendapatkan bit-bit string hasil kompresi dan tabel pixel dan
kodenya.
MULAI
Input
File.JPG
Pilih Algoritma
Kompresi
Kompresi dengan
Kompresi dengan Tidak Run Length Ya
Algoritma Run-
Algoritma
Encoding? Length Encoding
Alternate Reverse
Unary Code
Output:
Waktu dan Hasil
Kompresi,Rc, dan Rd
SELESAI
MULAI
Input
File.JPG yang telah
terkompresi
Pilih Algoritma
Dekompresi
Dekompresi Dekompresi
Tidak Run Length Ya dengan Algoritma
dengan Algoritma
Alternate Reverse Encoding? Run-Length
Unary Code Encoding
Output:
Waktu dan Hasil
Dekompresi, Rc, dan
Rd
SELESAI
Use Case pada Gambar 3.4 menjelaskan bahwa user dapat melakukan
proses kompresi dan dekompresi. Pada proses kompresi user membuka file citra,
kemudian menentukan direktori untuk menyimpan file hasil kompresi, user dapat
memilih metode yang digunakan yaitu Alternate Reverse Unary Code dengan Run
Length Encoding, dan user dapat melakukan kompresi. Setelah user melakukan
kompresi maka akan ditampilkan informasi hasil kompresi dan user dapat
menghapus informasi tersebut. Pada proses dekompresi, user membuka file hasil
kompresi kemudian menentukan direktori untuk file hasil dekompresi, dan user
dapat melakukan dekompresi. Spesifikasi setiap Use Case dapat diuraikan pada
tabel-tabel sebagai berikut.
27
Activity Diagram adalah diagram aktivitas dari sistem kompresi yang dilakukan
user atau pengguna dalam melakukan kompresi dan dekompresi file citra. Activity
Diagram Kompresi dan Dekompresi dapat dilihat seperti pada Gambar 3.5
berikut ini.
Squence diagram adalah berfungsi menunjukkan hubungan statis antara actor dan
lifeline. Hubungan tersebut pada proses kompresi citra terdiri dari proses
pemanggilan file citra dan pemilihan proses metode.
Diagram Sequence pada proses kompresi untuk sistem yang dirancang pada
penelitian ini dapat dilihat pada gambar 3.6.
void RLECode() {
sss=0
k=0, m, cur=-1
for i to width do
first=true
m=0
for j to height do
p=bmp.GetPixel(i,j)
if(first)
cur=p
first=false
k=1
else
if(cur==p)
k++
else
sss=cur().Length +
k().sss=length +
m=m+2
sb=sb + cur() + " " + k ()+" "
cur=p
1=k
sb=sb + cur () + " " + k () + " "
charset.Add(sb ())
hasil.Add(m + 2)
}
33
void RLEDecode(String)
{
get_hasil()
for j=0 to hasil
for k=0 to k < hasil[j+1]
pic.add(hasil[j])
j+=2
return pic
}
void ARUCEncode() {
chrgb=getcharset(picture)
frrgb=freqcount(picture)
sorting(chrgb,frrgb)
kode aruc()
stb=new StringBuilder()
for pixel in picture
stb.append(aruc[index(pixel)])
x=stb.length%8
if(x!=0)
for i=0 to 8-x
stb.append(0)
stb.append(dectobin(8-x))
Hasil=encode(stb)
return Hasil
}
34
void ARUCDecode(String)
{
getcharset()
getaruc()
getHasil()
sb=new StringBuilder()
for i=0 to Hasil.length
sb.append(dectobin(hasil([i]))
pic=new Picture
for i=0 to sb.length
if(aruc.contains(sb[i])
pic.add(chrgb[i])
sb.clear()
}
Pada perancangan sistem terdapat pembuatan Graphic User Interface (GUI) yang
akan mempermudah user dalam menggunakan sistem yang ada. Pada sistem,
terdapat 4 buah Form yang akan ditampilkan antara lain Form Home, Form Menu
Kompresi dan Dekompresi, dan Form About.
35
Keterangan:
1. Tab Home berguna untuk menampilkan tampilan Home dari sistem yang ada.
2. Tab Menu berguna untuk memilih dan menampilkan form Kompresi dan
Dekompresi.
3. Tab About berguna untuk menampilkan menu About mengenai sistem yang
dibangun.
4. Label Text berisi keterangan mengenai judul sistem.
5. Label Text berisi keterangan mengenai skripsi
6. Label Text berisi keterangan mengenai identitas diri
7. Picture Box berisi gambar logo berformat .jpeg
8. Label Text berisi keterangan mengenai fakultas
36
Pada form Kompresi terdapat beberapa button dan juga text box yang akan
digunakan dalam melakukan kompresi.
5 9
7 KOMPRESI
6 o RLE
o ARUC
8 SAVE
1. Tab Home berguna untuk menampilkan tampilan Home dari sistem yang ada.
2. Tab menu Compress berguna untuk menampilkan form Compress pada sistem
3. Tab About berguna untuk menampilkan menu About mengenai sistem yang
dibangun.
4. Button Open berguna untuk membuka file yang akan digunakan untuk
kompresi
5. Picture Box berguna untuk menampilkan gambar yang akan di kompresi.
5. Radio Button berguna sebagai inputan dalam memilih metode yang akan
digunakan.
37
5 6 DEKOMPRESI
1. Tab Home berguna untuk menampilkan tampilan Home dari sistem yang ada.
2. Tab menu Compress berguna untuk menampilkan form Compress pada sistem
3. Tab About berguna untuk menampilkan menu About mengenai sistem yang
dibangun.
4. Button Open berguna untuk membuka file yang akan digunakan untuk
dekompresi
5. Picture Box berisi gambar yang telah didekompres.
6. Button Decompress berguna untuk mengembalikan data yang telah terkompresi
7. Label1 berguna untuk menampilkan hasil dari dekompresi yang dilakukan.
38
Pada halaman About terdapat keterangan mengenai sistem yaitu biodata misalnya
nama, nim, alamat dan foto dapat dilihat pada gambar 3.11
4 5
Keterangan :
1. Tab Home berguna untuk menampilkan tampilan Home dari sistem yang ada.
2. Tab menu Compress berguna untuk menampilkan form Compress pada sistem
3. Tab About berguna untuk menampilkan menu About mengenai sistem yang
dibangun.
4. Label Text berisi keterangan mengenai sistem
5. Picture Box berisi gambar logo berformat .jpeg sebagai keterangan dari sistem
39
BAB 4
Pada bab 4 ini penulis memaparkan bagaimana implementasi dari sistem dan juga
hasil pengujian aplikasi yang dilakukan pada metode Alternate Reverse Unary
Code dan Run Length Encoding(RLE) yang sudah dibangun menggunakan C#.
Form Home merupakan form yang pertama kali muncul pada saat aplikasi
dijalankan. Form ini terdiri dari 3, yaitu Tab Home, Tab Menu, dan Tab About.
Halaman utama pada aplikasi dapat dilihat pada Gambar 4.1.
39
40
untuk file *.aruc dan *.rle, menentukan direktori file hasil dekompresi, label untuk
menampilkan waktu yang diperlukan untuk dekompresi, dan text area untuk
menampilkan isi file hasil dekompresi. Tampilan untuk Menu Dekompresi dapat
dilihat pada Gambar 4.3.
42
Tab About merupakan form yang digunakan hanya untuk menampilkan informasi
tentang sistem atau aplikasi yang dibuat dan informasi tentang penulis. Tampilan
untuk Tab About dapat dilihat pada Gambar 4.5.
Untuk melakukan proses kompresi tahap awal yang dilakukan adalah memilih
Tab Menu Kompresi. Setelah tampilan form Kompresi muncul maka lakukan
langkah-langkah berikut ini untuk melakukan proses kompresi.
1. Menekan tombol pada Open File untuk membuka Open File Dialog, dan pilih
File citra *.jpg sebagai Input File.
44
3. Memilih algoritma Run Length Encoding atau Alternate Reverse Unary Code
yang akan digunakan untuk proses menyimpan file hasil kompresi *.jpg pada
radio button yang telah disediakan.
4. Menekan tombol pada Save File untuk membuka Save File Dialog dan
tentukan direktori untuk menyimpan file hasil kompresi *.jpg.
Proses kompresi menghasilkan sebuah File Output yaitu file dengan ekstensi
*.rle (Run Length Encoding) atau *.aruc (Alternate Reverse Unary Code) sebagai
file yang menyimpan informasi karakter dan string bit hasil kompresi. File-file
hasil kompresi ini dapat dilihat menggunakan nilai piksel editor seperti pada
Gambar 4.5dan 4.6.
45
Untuk melakukan proses dompresi tahap awal yang dilakukan adalah memilih
Menu Dekompresi. Setelah tampilan Form Dekompresi muncul maka lakukan
langkah langkah berikut ini untuk melakukan proses dekompresi.
1. Menekan tombol pada Open File untuk membuka Open File Dialog Open
File, dan pilih file hasil kompresi *.jpg sebagai Input File.
Pada pengujian ini, akan terlihat secara terperinci mengenai citra uji yang akan
dilakukan pada aplikasi untuk kompresi file citra *.jpg menggunakan metode
Alternate Reverse Unary Code dengan Run Length Encoding. Setelah proses
kompresi selesai dilakukan akan dilihat hasilnya kemudian dilakukan pengujian
47
apakah file citra *.jpg tersebut bisa dikembalikan seperti semula. Pengujian
dilakukan pada beberapa file citra *.jpg dengan ekstensi yang sama, yaitu
ekstensi-ekstensi file yang didukung oleh aplikasi ini kemudian akan dilihat
perubahan dari setiap ekstensi serta hasil kompresi dari masing-masing file citra
*.jpg.
Hasil Pengujiaan Kompresi File Citra Dengan Alternate Reverse Unary Code dan Run
Length Encoding(RLE)
Nama Ukuran Alternate Reverse Unary Code Run Length Encoding
File Citra File Size CR % RC % RD % Time Size CR% RC % RD % Time
Asli Kompresi (ms) Kompresi (ms)
(bytes) (bytes) (bytes)
Square 733 57 12,86 7,78% 92,22% 0,024 71 1032 0,1 % 708,45 0,003
.jpg bytes bytes % ms bytes ,39% % ms
Liris.jpg 696 45 15,47 6,47% 93,53% 0,024 99 703, 0,14 % 157,58 0,008
bytes bytes % ms bytes 03% % ms
Kuning 691 78 8,86 11,29% 88,71% 0,003 136 508, 0,2% 346,32 0,001
Putih.jp bytes bytes % ms bytes 09% % ms
g
Rata- 706,7 60 12,37 8,51% 91,48% 0,017 102 747, 0,14% 404,12 0,004
Rata bytes bytes % ms bytes 8% % ms
48
Dari hasil di atas dapat dilihat bahwa besarnya ukuran file mempengaruhi waktu
atau lamanya proses kompresi. Dari ketiga file citra *.jpg yang dapat diproses oleh
aplikasi ini dan dilakukan percobaan pada sebuah file citra *.jpg yang mewakili
masing-masing ekstensi, terlihat bahwa semakin besar ukuran file citra *.jpg,
maka semakin banyak waktu yang diperlukan untuk proses tersebut. Untuk rasio
kompresi yang dihasilkan pada setiap citra tergantung dari metode yang
digunakan dan banyaknya variasi warna yang berdekatan yang terdapat dalam
sebuah citra, contohnya saja pada citra square.jpg dan liris.jpg menggunakan
warna yang bervariasi dan berdekatan sehingga rasio kompresi yang dihasilkan
lebih kecil dengan menggunakan metode RLE. Sedangkan pada citra
kuningputih.jpg, menggunakan warna yang tidak terlalu variasi dan renggang
sehingga citra ini dapat dikompresi lebih baik menggunakan metode ARUC.
Dari Tabel 4.1 dapat dibuat grafik perbandingan hasil pengujian String antara
Alternate Reverse Unary Code dengan Run Length Encoding berdasarkan
variable Compression Ratio (CR) seperti yg terlihat pada gambar 4.8 berikut.
Compression Ratio
1200
1000
800
600 ARUC
RLE
400
200
0
Square Liris Kuning putih
Berdasarkan hasil pengujian yang dilakukan pada tiga citra uji seperti diperoleh
pada tabel 4.1 maka dapat disimpulkan bahwa pada nilai rata-rata Compression
Ratio terhadap tiga citra uji, maka dapat dilihat bahwa algoritma Altrrnate
Reverse Unary Code lebih baik daripada algoritma Run Length Encoding, di mana
file citra dengan menggunakan algoritma Alternate Reverse Unary Code dapat
dikompresi sebesar 12,7 % dari file citra aslinya, sedangkan rasio kompresi citra
dengan algoritma Run Length Encoding hanya dapat mengkompresi citra sebesar
747,8 % dari file aslinya. Dengan demikian dapat disimpulkan bahwa dari segi
rasio kompresi algoritma Alternate Reverse Unary Code sama dengan algoritma
Run Length Encoding.
Dari Tabel 4.1 juga dapat dibuat grafik perbandingan hasil pengujian String antara
Alternate Reverse Unary Code dengan Run Length Encoding berdasarkan
variable Ratio of Compression (RC) seperti yg terlihat pada gambar 4.9 berikut.
Ratio Of Compression
12
10
6 ARUC
RLE
4
0
Square Liris Kuning Putih
Waktu Kompresi
0.18
0.16
0.14
0.12 ARUC
Axis Title
0.1
RLE
0.08
0.06
0.04
0.02
0
Square Liris Putih Kuning
Berdasarkan hasil pengujian yang dilakukan pada tiga citra seperti dapat dilihat
pada tabel 4.1 kecepatan rata rata proses kompresi dengan metode Run Length
Encoding lebih baik (0,04ms) daripada kecepatan Alternate Reverse Unary Code
(0.017ms). Dengan demikian Run Length Encoding lebih baik dibanding metode
Alternate Reverse Unary Code dari segi kecepatan waktu kompresi.
Pengujian dekompresi juga dilakukan pada ukuran file yang berbeda dan
membandingkan waktu proses, ukuran size untuk masing-masing proses
dekompresi. Hasil pengujian pada beberapa file di atas dapat dirangkum dalam
tabel berikut yang menunjukkan waktu proses untuk masing-masing file pada
dekompresi. Hasil proses dekompresi beberapa file yang berekstensi *.jpg
berbeda menggunakan metode metode Alternate Reverse Unary Code dan Run
Length Encoding dapat dilihat pada tabel 4.11.
51
ARUC RLE
Nama File Citra
Time Dekompresi Time Dekompresi
(detik) (detik)
Square 0,024 ms 0,168 ms
Liris 0,001 ms 0,024 ms
Kuning Putih 0,002 ms 0,001 ms
Rata-rata 0,184 ms 0,074 ms
Waktu Dekompresi
0.15
waktu dekompresi
0.1 ARUC
(ms)
RLE
0.05
0
Square Liris Putih Kuning
Dari hasil di atas dapat dilihat bahwa besarnya ukuran file mempengaruhi
waktu atau lamanya proses dekompresi. Dari ketiga file *.jpg yang dapat diproses
oleh aplikasi ini dan dilakukan percobaan pada sebuah file *.jpg yang mewakili
masing-masing ekstensi menggunakan metode metode Alternate Reverse Unary
Code dan Run Length Encoding. Perbedaan ukuran antara file *.jpg ini
mengakibatkan waktu proses yang diperlukan untuk dekompresi sedikit lebih
besar dibandingkan untuk proses kompresi. Penambahan jumlah byte dalam file
*.jpg diakibatkan penambahan beberapa byte untuk proses kompresi. Tetapi ketika
dekompresi kembali, ukuran file juga kembali.
52
Untuk mengetahui algoritma mana yang lebih efektif pada kompresi maka
dibutuhkan perhitungan kompleksitas waktu. Kompleksitas waktu algoritma
Alternate Reverse Unary Code dapat dilihat pada tabel 4.2 dan kompleksitas
waktu algoritma Run Length Encoding dapat dilihat seperti pada tabel 4.3.
Tabel 4.3 Perhitungan Big Theta Pada Alternate Reverse Unary Code
T(n) = (n)
3 K=0, m, cur=-1 C 1 C1
1
5 first=true C N C1n
1
6 m=0 C n C2n
2 2 2
8 P=bmp.GetPixel(i,j) C n C4n
4 2 2
9 If(first) C n C1n
1 2 2
10 cur=p C n C1n
first=false 1 2 2
k=1
11 Else C n C1n
1 2 2
12 If(cur==p) C n C4n
k++ 4 2 2
54
13 else C n C1n
1 2 2
sss=cur().Length+
k().sss=length+
m=m+2
14 Sb=sb+cur()+ +k()+ C n C1n
cur=p 1 2 2
1=k
15 Sb=sb+cur()+ +k()+ C N C1n
1
17 Hasil.Add(m+2) C N C5n
5
T(n) = C1 + C1 + C2n + C1n + C1n + C2n2 + C3n2 + C4n2 + C1n2 + C1n2 + C1n2 +
C4n2 + C1n2 + C1n2 + C1n2 + C5n + C5n
T(n) = (n2)
55
BAB 5
Berdasarkan pembahasan dan pengujian dari bab-bab sebelum terhadap citra uji,
maka dapat ditarik kesimpulan dan saran sebagai berikut.
5.1. Kesimpulan
55
56
5.2. Saran
Saran yang dapat diberikan pada penulis untuk pengembangan dan perbaikan
sistem lebih lanjut adalah:
DAFTAR PUSTAKA
Putri, E., Henggraini, 2011, Kompresi Citra, Draft Skripsi, Pendidikan Teknik
Elektornika UNP.
Saputro, N. C., Suwarno, S., Santosa, R. G., 2011, Pengolahan Citra Digital :
Transformasi Citra (Bagian 1 : FT-DCT), Fakultas Ilmu Komputer.
Universitas Indonesia.