Anda di halaman 1dari 39

19

BAB III

ANALISIS DAN PERANCANGAN SISTEM

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:

3.1.1 Analisis Masalah


Analisis masalah sebuah sistem dapat dirancang dengan menggunakan cause-and-
effect analisis.

3.1.1.1 Cause-and-Effect analisis

Cause-and-Effect analisis merupakan teknik di mana masalah yang dipelajari


untuk menentukan sebab dan efek. Dalam prakteknya, efek bisa menjadi gejala
dari masalah yang lebih berakar yang pada gilirannya harus dianalisis sebab dan
akibat sampai tidak menghasilkan gejala masalah lain. Seperti yang terlihat pada
table 3.1.

19
20

Tabel 3.1 Cause-and-Effect Analysis


Cause-and-Effect Analysis System Improvement Objective
Problem or Cause and Effects System System
Opportunit Objective Constraint
Pada umumnya 1. Dibutuhkan Diperlukan perangkat Tidak tersedianya
citra digital media lunak yang dapat perangkat lunak
berformat JPG penyimpanan melakukan kompresi yang dapat
memiliki ukuran yang besar untuk penggabungan menggabungkan
yang besar. menyimpan citra kompresi / antara metode
berformat JPG. dekompresi serta Alternate Reverse
2. Pengiriman file membandingkan Unary Code
citra melalui hasil berupa rasio dengan Run
saluran Kompresi dan Length
komunikasi waktu proses. Encoding.
menjadi lambat.

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

Gambar 3.1 Diagram Ishikawa Pada Analisis Masalah

3.1.2 Analisis Kebutuhan

Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis


kebutuhan sistem. Analisis kebutuhan sistem dapat dikelompokkan menjadi 2
bagian yaitu kebutuhan fungsional dan kebutuhan non-fungsional.

3.1.2.1 Fungsional Sistem


Kebutuhan fungsional sistem merupakan segala sesuatu yang dibutuhkan sistem.
Dalam pengimplementasian sistem kompresi dan dekompresi citra dengan
menggunakan metode Alternate Reverse Unary Code dan Run Length Encoding
ini memiliki kebutuhan fungsional yang harus dipenuhi, antara lain:
a. Citra digital yang akan dikompresi berformat *.jpg.
b. Proses implementasi pada sistem ini dilakukan dengan melakukan kompresi dan
dekompresi menggunakan metode Alternate Reverse Unary Code dan Run
Length Encoding.
c. Sistem akan menampilkan citra yang telah berhasil dikompresi dan berusaha
mengembalikan citra kembali dengan proses dekompresi.
22

3.1.2.2 Non Fungsional Sistem


Non Fungsional Sistem adalah karakteristik atau batasan yang menentukan
kepuasan sebuah sistem seperti performa, kemudahan penggunaan, anggaran,
efisien serta dokumentasi yang mampu bekerja tanpa mengganggu fungsionalitas
perangkat lunak lainnya.
Non Fungsional Sistem dari perangkat lunak yang dibangun dari segi
performa adalah perangkat lunak memiliki kemampuan melakukan kompresi dan
dekompresi file citra dengan baik. Dari segi kemudahan penggunaan adalah
perangkat lunak memiliki tampilan yang user friendly dan simpel sehingga user
tidak mengalami kesulitan dalam mempelejari sistem. Dari segi anggaran adalah
perangkat lunak memiliki kemampuan bekerja dengan baik tanpa menggunakan
tambahan biaya (cost) perangkat keras dan perangkat lunak sehingga
pengunaannya tidak mengeluarkan biaya ekstra.
Dari segi efisien adalah setiap proses pada perangkat lunak tidak
membutuhkan waktu yang cukup lama tergantung dari ukuran berkas yang akan
diolah. Sedangkan dari segi dokumentasi perangkat lunak memiliki kemampuan
untuk merekam semua proses kompresi maupun dekompresi, misalnya nama file
serta ukuran citra setelah kompresi dan setiap saat hasil rekaman dapat
ditampilkan.

3.1.3 Analisis Proses

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.

3.2 Perancangan Sistem

Untuk memudahkan pengoperasian aplikasi ini, maka perlu dibuatkan rancangan


perangkat lunak berupa rancangan Flowchart, Use Case, Activity, Sequence
Diagram, dan pseudocode.

3.2.1 Diagram Flowchart Pada Kompresi Dan Dekompresi Citra

Rancangan diagram Flowchart digunakan untuk menggambarkan aliran data citra


dari User ke sistem kompresi dan dekompresi Alternate Reverse Unary Code
dengan Run Length Encoding secara global. Pada sistem kompresi terdapat
proses-proses pengolahan citra serta proses kompresi dan dekompresi dengan
algoritma Alternate Reverse Unary Code dengan Run Length Encoding.
Selanjutnya citra hasil kompresi akan kembali ke User.

3.2.1.1 Rancangan Flowchart Kompresi


Rancangan diagram aliran data kompresi Alternate Reverse Unary Code dengan
Run Length Encoding dapat dilihat pada gambar 3.2 berikut ini.
24

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

Gambar 3.2 Flowchart Proses Kompresi Citra


25

3.2.2.2 Rancangan Flowchart Dekompresi


Rancangan diagram aliran data dekompresi Alternate Reverse Unary Code dengan
Run Length Encoding dapat dilihat pada gambar 3.3 berikut ini.

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

Gambar 3.3 Flowchart Proses Dekompresi Citra


26

3.2.2. Use case diagram

Use Case Diagram merupakan bentuk pemodelan dari sistem yang


menggambarkan functional requirements dari sebuah sistem. Functional
requirements dibuat berdasarkan informasi dari kebutuhan sistem dan aktor yang
berperan di dalamnya. Use Case Diagram untuk sistem dalam penelitian ini dapat
dilihat pada Gambar 3.4.

Gambar 3.4. Use Case Diagram Pada Sistem

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

Tabel 3.1 Spesifikasi Use Case Kompresi


Name Kompresi
Actors Pengguna
Trigger Pengguna memilih Button Kompresi
Preconditions -
Post Conditions Sistem menampilkan form untuk proses kompresi
Success Scenario Pengguna mengeksekusi Button Kompresi
Alternative Flows -

Tabel 3.2 Spesifikasi Use Case Dekompresi


Name Dekompresi
Actors Pengguna
Trigger Pengguna memilih Button Dekompresi
Preconditions -
Post Conditions Sistem menampilkan form untuk proses dekompresi
Success Scenario Pengguna mengeksekusi Button Dekompresi
Alternative Flows -

Tabel 3.3 Spesifikasi Use Case Buka File Gambar


Name Buka File Citra
Actors Pengguna
Preconditions Pengguna mengakses Button Buka File Citra
Post Conditions Sistem membaca File Input dari File citra (*.jpg).
Success Scenario 1. Pengguna mengeksekusi tombol Buka File Citra.
2. Sistem menampilkan window untuk mencari File Input.
3. Pengguna memilih File Input (*.jpg).
4. Pengguna mengeksekusi tombol Ambil.
Alternative Flows -

Tabel 3.4 Spesifikasi Use Case Kompres


Name Kompres
Actors Pengguna
Trigger Pengguna mengakses Button Kompres.
28

Preconditions 1. Pengguna memilih Button Kompresi dan menuju form


Kompresi.
2. Pengguna mengeksekusi Button Open File Citra.
3. Pengguna mengeksekusi Button Pilih Algoritma.
4. Pengguna mengeksekusi Button Save File Citra.
Post Conditions Sistem melakukan proses kompresi file citra(*.jpg)
Success Scenario 1. Pengguna mengeksekusi tombol Kompresi.
2. Sistem melakukan proses kompresi.
3. Sistem menghasilkan File Output hasil kompresi (*.rle
atau *.aruc).
Alternative Flows -

Tabel 3.5 Spesifikasi Use Case Pilih Algoritma


Name Pilih Algoritma
Actors Pengguna
Trigger Pengguna mengakses Button Pilih Algoritma.
Preconditions Pengguna memilih Button Kompresi.
Post Conditions Sistem memilih kode Alternate Reverse Unary Code atau
Run Length Encoding sebagai metode kompresi.
Success Scenario 1. Pengguna memilih kode melalui radio button kode
Alternate Reverse Unary Code atau Run Length Encoding
Alternative Flows -

Tabel 3.6 Spesifikasi Use Case Simpan File Terkompresi


Name Save File Terkompresi
Actors Pengguna
Trigger Pengguna mengakses Button Simpan File Terkompresi.
Preconditions Pengguna memilih Button Kompresi.
Post Conditions Sistem menentukan direktori untuk menyimpan File hasil
kompresi.
Success Scenario 1. Pengguna mengeksekusi tombol Save File Terkompresi.
2. Sistem menampilkan window untuk mencari direktori
penyimpanan File.
3. Pengguna memilih direktori penyimpanan.
4. Pengguna mengeksekusi tombol Simpan.
Alternative Flows -
29

Tabel 3.7 Spesifikasi Use Case Buka File Terkompresi


Name Buka File Terkompresi
Actors Pengguna
Preconditions Pengguna mengakses Button Buka File Terkompresi
Post Conditions Sistem membaca File Input dari File citra(*.rle atau *.aruc).
Success Scenario 1. Pengguna mengeksekusi tombol Open File Terkompresi.
2. Sistem menampilkan window untuk mencari File Input
hasil kompresi (*.rle atau *.aruc).
3. Pengguna memilih File Input (*.rle atau *.aruc).
4. Pengguna mengeksekusi tombol Ambil.
Alternative Flows -

Tabel 3.8 Spesifikasi Use Case Dekompres


Name Dekompres
Actors Pengguna
Trigger Pengguna mengakses Button Dekompres.
Preconditions 1. Pengguna memilih Button Dekompresi dan menuju form
Dekompresi.
2. Pengguna mengeksekusi Button Open File Terkompresi.
3. Pengguna mengeksekusi Button Pilih Algoritma.
4. Pengguna mengeksekusi Button Save File Citra.
Post Conditions Sistem melakukan proses kompresi file citra (*.jpg).
Success Scenario 1. Pengguna mengeksekusi tombol Decompress.
2. Sistem melakukan proses dekompresi.
3. Sistem menghasilkan File Output hasil dekompresi
(*.jpg).

Tabel 3.9 Spesifikasi Use Case Simpan File Citra


Name Simpan File Citra
Actors Pengguna
Trigger Pengguna mengakses Button Simpan File Citra.
Preconditions Pengguna memilih Button Dekompresi.
Post Conditions Sistem menentukan direktori untuk menyimpan File hasil
dekompresi.
Success Scenario 1. Pengguna mengeksekusi tombol Save File Citra.
2. Sistem menampilkan window untuk mencari direktori
penyimpanan File.
30

3. Pengguna memilih direktori penyimpanan.


4. Pengguna mengeksekusi tombol Simpan.
Alternative Flows -

3.2.3 Diagram Activity

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.

Gambar 3.5 Activity Diagram Proses Kompresi dan Dekompresi


31

3.2.4 Diagram Sequence

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.

Gambar 3.6 Sequence Diagram Pada Proses Kompresi

Sedangkan Diagram Sequence pada proses dekompresi untuk sistem yang


dirancang pada penelitian ini dapat dilihat pada gambar 3.7.

Gambar 3.7 Sequence Diagram Pada Proses Dekompresi


32

3.2.5 Alur Proses Sistem

3.2.5.1 Alur Proses Pembangkitan Run-Length Encoding

Alur proses untuk Encode dengan Run-Length Encoding dapat digambarkan


dengan pseudocode berikut.

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

Untuk melakukan decode dengan Run Length Encoding, dapat digambarkan


dengan pseudocode sebagai berikut.

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
}

3.2.5.2 Alur Proses Pembangkitan Alternate Reverse Unary Codes


Alur proses untuk Encode dengan Alternate Reverse Unary Codes dapat
digambarkan dengan pseudocode berikut.

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

Untuk melakukan decode dengan Alternate Reverse Unary Codes, dapat


digambarkan dengan pseudocode sebagai berikut.

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()
}

3.3 Rancangan User

Rancangan User berfungsi sebagai perantara antara pengguna dengan perangkat


lunak. Agar perangkat lunak dapat digunakan dengan baik oleh pengguna perlu
dibuatkan rancangan menu.

3.3.1 Rancangan Menu Utama

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

1 Home 2 Menu 3 About


1 1

Gambar 3.8 Rancangan Menu Utama

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

3.3.2 Rancangan Form Menu Kompresi dan Dekompresi

3.3.2.1 Rancangan Form Kompresi

Pada form Kompresi terdapat beberapa button dan juga text box yang akan
digunakan dalam melakukan kompresi.

1 Home 2 Menu Kompresi 3 About


1 1
3.3.2.2
4 Open

5 9

7 KOMPRESI
6 o RLE
o ARUC

8 SAVE

Gambar 3.9 Rancangan Form Kompresi

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

6. Button Compress berguna untuk mengeksekusi data yang ada sehingga


terkompresi
7. Button Save berguna untuk menyimpan hasil dari kompresi yang diinginkan
8. Label1 berguna untuk menampilkan informasi berdasarkan hasil kompresi
metode RLE maupun ARUC

3.3.2.2 Rancangan Form Dekompresi

1 Home 2 Menu Dekompresi 3 About


1 1
4 Open

5 6 DEKOMPRESI

Gambar 3.10 Form Dekompresi Pada Sistem

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

3.3.4. Rancangan Form About

Pada halaman About terdapat keterangan mengenai sistem yaitu biodata misalnya
nama, nim, alamat dan foto dapat dilihat pada gambar 3.11

1 Home 2 Menu Kompresi 3 About


1 1

4 5

Gambar 3.11 Rancangan Form About Me

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

IMPLEMENTASI DAN PENGUJIAN SISTEM

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#.

4.1. Implementasi Sistem

Implementasi sistem merupakan proses menerjemahkan hasil analisis dan


perancangan sistem ke dalam sebuah bahasa pemrograman. Implementasi sistem
pada penelitian ini dibangun menggunakan bahasa pemrogaman C# dan untuk
tampilan antarmuka akan ditangani menggunakan bahasa C#. Adapun perangkat
lunak yang digunakan sebagai Integrated Development Environment (IDE) untuk
C# adalah SharpDevelop versi 4.4.1.9729-7196a277. Proses implementasi yang
dirancang pada sistem ini dibagi menjadi 3 form dalam bahasa C#, di antaranya
yaitu form home untuk halaman utama, form menu untuk menu kompresi dan
dekompresi, dan form untuk profil penulis tentang aplikasi.

4.1.1. Form Home

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

Gambar 4.1 Form Home

4.1.2. Tab Menu

4.1.2.1 Menu Kompresi

Menu Kompresi merupakan form yang digunakan untuk melakukan proses


kompresi. Pada tab ini disediakan interface untuk input file citra, picture box
untuk menampilkan isi file citra, menentukan direktori output file hasil kompresi,
group box untuk memilih algoritma proses kompresi dan label yang berisi
beberapa informasi hasil kompresi. Tampilan untuk menu kompresi dapat dilihat
pada Gambar 4.2.
41

Gambar 4.2 Tab Menu Kompresi

4.1.2.2 Menu Dekompresi

Menu Dekompresi merupakan form yang digunakan untuk melakukan proses


dekompresi. Pada form ini disediakan interface untuk input file hasil dekompresi
yaitu

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

Gambar 4.3 Tab Menu Dekompresi

4.1.3. Tab About

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.

Gambar 4.4 Tab About


43

4.2. Pengujian Sistem


Pengujian sistem merupakan tahap mengidentifikasi hasil dari implementasi
sistem apakah sistem telah berjalan sesuai dengan fungsi-fungsi yang sebelumnya
ditentukan pada tahap analisis dan perancangan sistem. Pengujian sistem ini
dilakukan pada File citra yang berekstensi *.jpg. Pengujian sistem yang dilakukan
pada penelitian ini dibagi dalam 2 proses utama yaitu pengujian proses kompresi
dan pengujian proses dekompresi.

4.2.1. Pengujian proses kompresi

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

2. Menekan tombol KOMPRESI untuk melakukan proses kompresi. Setelah


proses kompresi berhasil sistem akan menampilkan informasi hasil kompresi
pada label.

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

Gambar 4.8 Run Length Encoding Code Hasil Kompresi

Gambar 4.5 File Run Length Encoding Hasil Kompresi

Gambar 4.8 File Alternate Reverse Unary Code Hasil Kompresi

Gambar 4.6 File Alternate Reverse Unary Code Hasil Kompresi


46

4.2.2. Pengujian Proses Dekompresi

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.

2. Menekan tombol DEKOMPRESI untuk melakukan proses dekompresi.


Setelah proses dekompresi berhasil sistem akan menampilkan informasi
hasil dekompresi dan waktu dekompresi pada label seperti pada Gambar
4.7.

Gambar 4.7 Informasi Hasil Dekompresi

4.3 Analisis Hasil Pengujian Kompresi Sistem

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.

Pengujian dilakukan pada ukuran file yang berbeda dan membandingkan


ukuran file kompresi, parameter rasio (Rc, CR), Redudancy Data (Rd), waktu
kompresi, dan waktu dekompresi dalam menggunakan metode Alternate Reverse
Unary Code dengan Run Length Encoding, untuk masing-masing proses
kompresi. Hasil pengujian pada beberapa file di atas dapat dirangkum dalam tabel
berikut yang menunjukkan parameter rasio (Rc, CR), Redudancy Data (Rd), waktu
kompresi, dan waktu dekompresi untuk masing-masing file pada tiap proses
kompresi. Hasil proses kompresi beberapa file yang berekstensi *.jpg berbeda
menggunakan metode Alternate Reverse Unary Code dengan Run Length
Encoding, dapat dilihat pada tabel 4.1.

Tabel 4.1 Hasil Perbandingan Kompresi File Citra Menggunakan Algoritma


Alternate Reverse Unary Code dengan Run Length Encoding

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

Gambar 4.8 Grafik Perbandingan Compression Ratio Algoritma


Alternate Reverse Unary Code dengan Run Length Encoding
49

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

Gambar 4.9 Grafik Perbandingan Ratio of Compression Algoritma


Alternate Reverse Unary Code dengan Run Length Encoding
50

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

Gambar 4.10 Grafik Perbandingan Waktu Kompresi Algoritma Alternate


Reverse Unary Code dengan Run Length Encoding

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.

4.4 Analisis Hasil Pengujian Dekompresi Sistem

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

Tabel 4.2 Hasil Perbandingan Dekompresi File Citra Menggunakan


Algoritma Alternate Reverse Unary Code dengan Run Length Encoding

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

Gambar 4.11 Grafik Perbandingan Waktu Dekompresi


AlgoritmaAlternate Reverse Unary Code dan Run Length Encoding

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

4.5 Hasil Perhitungan Kompleksitas Big Theta ()

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

Step Pseudocode T(n)


1 void ARUCCode() { C # C*#
2 Chrgb=getcharset(picture) C1 1 C1
3 frrgb=freqcount(picture) C1 1 C1
4 sorting(chrgb, frrgb) C2 n2 C2n2
5 Kode aruc() C3 n2 C3n2
6 stb=new StringBuilder() C1 1 C1
7 for pixel in picture C4 N C4n
8 Stb.append C5 N C5n
(aruc[index(pixel)])
9 x=stb.length%8 C1 1 C1
10 if(x!=0) C6 1 C6
11 for i=0 to 8-x C4 N C4n
12 stb.append(0) C5 N C5n
13 stb.append(Dectobin(8-x)) C5 1 C5
14 Hasil=encode(stb) C1 N C1n
15 return hasil C7 1 C7

Dari perhitungan running time pada tabel maka didapat:

T(n) = C1 + C1 + C2n2 + C3n2 + C1 + C4n + C5n + C1 + C6 + C4n + C5n + C5 +


C1 n + C7

= 4 C1 + C1n + C2n2+ C3n2 + 2 C4n + C5 + 2 C5n + C6 + C7


53

= 4 C1 + C5 + C6 + C7 + (C1 + 2C4 + 2C5 ) n + (C2 + C3) n2

T(n) = (n)

Tabel 4.4 Perhitungan Big Theta Pada Run Length Encoding

Ste Pseudocode T(n)


p
1 void RLECode(){ C # C*#
2 sss = 0; C 1 C1
1

3 K=0, m, cur=-1 C 1 C1
1

4 for i to width do C N C2n


2

5 first=true C N C1n
1

6 m=0 C n C2n
2 2 2

7 for j to height do C n C3n


3 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

16 Charset.Add(sb ()) C N C5n


5

17 Hasil.Add(m+2) C N C5n
5

Dari perhitungan running time pada tabel maka didapat:

T(n) = C1 + C1 + C2n + C1n + C1n + C2n2 + C3n2 + C4n2 + C1n2 + C1n2 + C1n2 +
C4n2 + C1n2 + C1n2 + C1n2 + C5n + C5n

= 2 C1 + 3 C1n + 5 C1n2 + C2n + C2n2 + C3n2 + 2 C4n2 + 2 C5n

= 2 C1 + ( 3 C1 + C2 + 2C5 ) n + (5C1 + C2+ C3 + 2C4) n2

T(n) = (n2)
55

BAB 5

KESIMPULAN DAN SARAN

Berdasarkan pembahasan dan pengujian dari bab-bab sebelum terhadap citra uji,
maka dapat ditarik kesimpulan dan saran sebagai berikut.

5.1. Kesimpulan

Kesimpulan yang dapat diambil dari penelitian ini adalah:

1. Algoritma Alternate Reverse Unary Code dengan Run Length Encoding


mampu melakukan proses kompresi dan dekompresi file citra.bmp
2. Penelitian ini telah mampu melakukan proses dekompresi file citra hasil
kompresi menjadi file citra semula.
3. Hasil pengujian kompresi file citra berdasarkan parameter Ratio of
Compression (RC), Compression Ratio (CR), Redudancy Data (RD) dan
waktu kompresi menunjukkan bahwa metode Run Length Encoding lebih
baik dibandingkan dengan metode Alternate Reverse Unary Code dengan
rasio kompresi rata-rata sebesar 12,37%
4. Hasil pengujian dekompresi file citra dengan metode Alternate Reverse
Unary Code dengan Run Length Encoding menunjukkan bahwa Run
Length Encoding memerlukan waktu yang lebih sedikit untuk
mengembalikan file citra hasil kompresi ke file citra semula dengan
waktu dekompresi rata-rata 0,074 milisekon.

55
56

5.2. Saran

Saran yang dapat diberikan pada penulis untuk pengembangan dan perbaikan
sistem lebih lanjut adalah:

1. Diharapkan dapat mengkompresi jenis file citra lainnya yang berekstensi


*.bmp , *.gif dan *.png.
2. Diharapkan untuk penelitian selanjutnya agar dapat menampilkan citra
yang telah dikompresi.
3. Diharapkan perbandingan metode ARUC dengan RLE dalam
mengkompresi citra dapat diimplementasikan ke dalam software yang
lebih baik lagi dan userfriendly sehingga user lebih mudah untuk
menggunakannya.
57

DAFTAR PUSTAKA

Ginting, A.M. 2012, Implementasi Algoritma Huffman Pada Kompresi


Citra.BMP.Skripsi.Universitas Sumatera Utara

Levitin, A. 2011. Introduction to the Design and Analysis of Algorithm 3rd


Edition. United States of America. Pearson Education, Inc.

Munir, R. 2007. Pengolahan Citra. Informatika : Bandung.

Napitupulu, H.S. 2012, Analisa Perbandingan Kinerja Teknik Kompresi Citra


Menggunakan Metode Jpeg Dan Wavelet Multi
Variabel.Skripsi,Universitas Indonesia

Purbasari, I. Y. 2007. Desain & Analisis Algoritma. Graha Ilmu: Yogyakarta.

Putra, 2010. Pengolahan Citra Digital. Yogyakarta: Andi.

Putri, E., Henggraini, 2011, Kompresi Citra, Draft Skripsi, Pendidikan Teknik
Elektornika UNP.

Salomon, D. 2007. Run Length Encoding For Data Compression. Springer:


London.

Salomon,D & Motta,G. 2010. Handbook of Data Compression Fifth Edition.


Spinger: London.

Salomon & Giovanni. 2010. Handbook of Data Compression. Fifth Edition.


Computer Science Department. California State University, Northridge,
Springer-Verlag, London

Saputro, N. C., Suwarno, S., Santosa, R. G., 2011, Pengolahan Citra Digital :
Transformasi Citra (Bagian 1 : FT-DCT), Fakultas Ilmu Komputer.
Universitas Indonesia.

Yuandi, Hendry. 2010. Perancangan Perangkat Lunak Pengenkripsian Citra


*.BMP, *.GIF, dan *.JPG dengan Metode Hill. Skripsi. Universitas
Smatera Utara.

Anda mungkin juga menyukai