• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Alternate Reverse Unary Codes dan Algoritma Run-Length Encoding(RLE) pada Kompresi Citra.JPG

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Alternate Reverse Unary Codes dan Algoritma Run-Length Encoding(RLE) pada Kompresi Citra.JPG"

Copied!
79
0
0

Teks penuh

(1)

A - 2 for Windows Forms designer support.

//

void KOMPRESIToolStripMenuItemClick(object sender, E ventArgs e)

(2)

A - 2 for Windows Forms designer support.

(3)

A - 2

(4)

A - 2

" + width.ToString() + Environment.NewLine; label1.Text += "Ukuran Asli :

(5)

A - 2 " + Siz.ToString() + " bytes"+Environment.NewLine; double CR = (Siz/(fileLength*1.0))*100; double RC = (fileLength/Siz);

double RD = 100-CR; label1.Text += "CR :

" + Math.Round(CR,2).ToString()+" %"+Environment.NewLine; label1.Text += "RC :

" + Math.Round(RC,2).ToString()+" %"+Environment.NewLine; label1.Text += "RD :

" + Math.Round(RD,2).ToString()+" %"+Environment.NewLine; label1.Text += "Waktu :

" + Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/ 1000,4).ToString()+" ms";

}

double siz = ukuran() * 1.0;

label2.Text += "Ukuran Kompresi : " + siz.ToString() + " bytes"+Environment.NewLine; double CR = (siz/(fileLength*1.0))*100; label2.Text += "CR :

" + Math.Round(CR,2).ToString() + "%" +Environment.NewLine; double RC = (fileLength/siz);

label2.Text += "RC :

" + Math.Round(RC,2).ToString()+" %" + Environment.NewLine; double RD = 100-CR;

label2.Text += "RD :

" + Math.Round(RD,2).ToString()+" %" + Environment.NewLine; label2.Text += "Waktu :

" + Math.Round(Convert.ToDecimal(watch.Elapsed.TotalMillisec onds)/1000,4).ToString()+"

ms" + Environment.NewLine; }

(6)

A - 2

= new StreamWriter(fstream);

SeekOrigin seekorigin

void DEKOMPRESIToolStripMenuItemClick(object sender, Eve ntArgs e)

void MENUToolStripMenuItemClick(object sender, Event Args e) required for Windows Forms designer support. //

(7)

A - 2

= new FileStream(nama, FileMode.Open,FileAccess.ReadWrit e);

StreamReader sreader = new StreamReader(fstream);

(8)

A - 2

void Decompress_ARUC(String stbr, String stbg, String stbb) = new List<string>(aruc1);

if (list.Contains(bit.ToString())) {

int x = list.IndexOf(bit.ToString());

picr.Add(ch1[x]);

bit = new StringBuilder(); }

}

(9)

A - 2

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 KompresiCitra 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 DataCompression 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.

(10)

BAB 3

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

(11)

Cause-and-EffectAnalysis SystemImprovementObjective

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.

(12)

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 dikompresi berformat *.jpg.

b. Proses implementasi pada sistem ini dilakukan dengan melakukan kompresi dan dekompresi menggunakan metode Alternate Reverse Unary Codedan Run Length Encoding.

c. Sistem akan menampilkan citra yang telah berhasil dikompresi dan berusaha mengembalikan citra kembali dengan proses dekompresi.

(13)

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.

(14)

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

(15)

Gambar 3.2 Flowchart Proses Kompresi Citra Kompresi dengan

Algoritma Alternate Reverse

Unary Code

Kompresi dengan Algoritma Run-Length Encoding MULAI

SELESAI

Input File.JPG

Pilih Algoritma Kompresi

Run Length Encoding?

Ya Tidak

(16)

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.

Gambar 3.3 Flowchart Proses Dekompresi Citra Dekompresi

dengan Algoritma Alternate Reverse

Unary Code

Dekompresi dengan Algoritma

Run-Length Encoding MULAI

SELESAI Input

File.JPG yang telah terkompresi

Pilih Algoritma Dekompresi

Run Length Encoding?

Ya Tidak

(17)

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

(18)

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.

(19)

Kompresi.

2. Pengguna mengeksekusi ButtonOpen File Citra. 3. Pengguna mengeksekusi ButtonPilih Algoritma. 4. Pengguna mengeksekusi ButtonSave FileCitra. 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.

(20)

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 ButtonOpen File Terkompresi. 3. Pengguna mengeksekusi ButtonPilih Algoritma.

4. Pengguna mengeksekusi ButtonSave FileCitra. 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.

(21)

Success Scenario 1. Pengguna mengeksekusi tombol Save File Citra. 2. Sistem menampilkan window untuk mencari direktori penyimpanan File.

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.

(22)

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.6Sequence Diagram Pada Proses Kompresi

Sedangkan Diagram Sequence pada proses dekompresi untuk sistem yang dirancang pada penelitian ini dapat dilihat pada gambar 3.7.

(23)

38

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)

(24)

38

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

(25)

38

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

(26)

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

Home Menu About

1 2 3

4

5

6

7

(27)

3.3.2 Rancangan Form Menu Kompresi dan Dekompresi

3.3.2.1Rancangan Form Kompresi

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

3.3.2.2

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.

6. Radio Button berguna sebagai inputan dalam memilih metode yang akan digunakan.

7. Button Compress berguna untuk mengeksekusi data yang ada sehingga terkompresi

Home Menu Kompresi About

1 2 3

Open

o RLE

o ARUC

KOMPRESI

SAVE

4

5 9

6

7

(28)

8. Button Save berguna untuk menyimpan hasil dari kompresi yang diinginkan

9. Label1 berguna untuk menampilkan informasi berdasarkan hasil kompresi metode RLE.

10.Label2 berguna untuk menampilkan informasi berdasarkan hasil kompresi metode ARUC.

3.3.2.2 Rancangan Form 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. Radio Button berguna sebagai inputan dalam memilih metode yang akan

digunakan.

8. Label1 berguna untuk menampilkan hasil dari dekompresi yang dilakukan.

Home Menu Dekompresi About

1 2 3

Open

DEKOMPRESI 4

8

5 6

o RLE

o ARUC

7

(29)

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

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 formCompress 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

Home Menu Kompresi About

1 2 3

(30)

A - 2

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 3form dalam bahasa C#, di antaranya yaitu form home untuk halaman utama, form menuuntuk menu kompresi dan dekompresi, dan form untuk profil penulis tentang aplikasi.

4.1.1. Form Home

(31)

A - 2

Gambar 4.1 Form Home

4.1.2. Tab Menu

4.1.2.1 Menu Kompresi

(32)

A - 2

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

(33)

A - 2

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.

(34)

A - 2

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-langkahberikut ini untuk melakukan proses kompresi.

(35)

A - 2

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.

(36)

A - 2

Gambar 4.8 Run Length Encoding Code Hasil Kompresi

Gambar 4.5File Run Length Encoding Hasil Kompresi

Gambar 4.8 File Alternate Reverse Unary Code Hasil Kompresi

(37)

A - 2

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 OpenFile, 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

(38)

A - 2

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 denganRun Length Encoding

Hasil Pengujiaan Kompresi File Citra Dengan Alternate Reverse Unary Code dan Run Length Encoding(RLE)

(39)

A - 2

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 bendera.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 berdasarkanvariable Compression Ratio (CR) seperti yg terlihat pada gambar 4.8 berikut.

Gambar 4.8 Grafik Perbandingan Compression Ratio Algoritma

Alternate Reverse Unary CodedenganRun Length Encoding

0 2 4 6

8

10 12 14 16 18 20

Square Liris Bendera

Compression Ratio

ARUC

(40)

A - 2

Berdasarkan hasil pengujian yang dilakukan pada tiga citra uji seperti diperoleh pada tabel 4.1 maka dapat disimpulkan pada nilai rata-rata Compression Ratio terhadap tiga citra uji, maka dapat dilihat bahwa algoritma Alternate Reverse Unary Code lebih baik daripada algoritma Run Length Encoding, di mana file citra dengan menggunakan algoritma Alternate Reverse Unary Code dapat dikompresi sebesar 8,51 % dari file citra aslinya, sedangkan nilai rata-rata untuk rasio kompresi citra dengan algoritma Run Length Encodinghanya dapat mengkompresi citra sebesar 14,53% dari file aslinya.

Dari Tabel 4.1juga 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.

Gambar 4.9 Grafik Perbandingan Ratio of Compression Algoritma

Alternate Reverse Unary CodedenganRun Length Encoding

0 2 4 6 8 10 12 14 16

Square Liris Bendera

Ratio of Compression

ARUC

(41)

A - 2

Gambar 4.10 Grafik Perbandingan Waktu Kompresi AlgoritmaAlternate

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 Encodinglebih baik (0,03ms) daripada kecepatan Alternate Reverse Unary Code (0.05ms). 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 prosesuntuk 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.

(42)

A - 2

Tabel 4.2 Hasil Perbandingan Dekompresi File Citra Menggunakan AlgoritmaAlternate Reverse Unary Code dengan Run Length Encoding

Nama File Citra

Gambar 4.11 Grafik Perbandingan Waktu Dekompresi AlgoritmaAlternate Reverse Unary Code dan Run Length Encoding

(43)

A - 2

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.

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

(aruc[index(pixel)])

C5 n C5n

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

(44)

A - 2

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+C1n +C7

= 4 C1 + C1n + C2n2+ C3n2+ 2 C4n + C5 + 2 C5n + C6 + C7 = 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

Step Pseudocode T(n)

1 void RLECode(){ C # C*#

2 sss = 0; C1 1 C1

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

4 for i to width do C2 n C2n

5 first=true C1 n C1n

6 m=0 C2 n2 C2n2

7 for j to height do C3 n2 C3n2

8 P=bmp.GetPixel(i,j) C4 n2 C4n2

9 If(first) C1 n2 C1n2

10 cur=p

first=false

k=1

C1 n2 C1n2

(45)

A - 2

12 If(cur==p)

k++

C4 n2 C4n2

13 else

sss=cur().Length+

k().sss=length+

m=m+2

C1 n2 C1n2

14 Sb=sb+cur()+” ”+k()+” ”

cur=p

1=k

C1 n2 C1n2

15 Sb=sb+cur()+” “+k()+” “ C1 n C1n

16 Charset.Add(sb ()) C5 n C5n

17 Hhasil.Add9m+2) C5 n C5n

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 + 3C1n + 5 C1n2 + C2n + C2n2 +C3n2 +2C4n2+ 2C5n = 2 C1 + (3 C1+ C2 + 2C5) n + (5C1+C2+ C3 + 2C4) n2

(46)

A - 2

BAB 5

KESIMPULAN DAN SARAN

Berdasarkan pembahasan dan pengujian dari bab-bab sebelumterhadap 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.jpg

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 7,47%

(47)

A - 2

5.2. Saran

Saran yang dapat diberikan pada penulis untuk pengembangan dan perbaikan sistemlebih 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.

(48)

BAB 2

LANDASAN TEORI

Pada bab ini akan membahas landasan atas teori-teori ilmiah untuk mendukung penelitian ini. Teori-teori yang dibahas mengenai pengertian citra, kompresi citra, algoritma dan jenisnya, serta beberapa subpokok pembahasan lainnya yang menjadi landasan dalam penelitian ini.

2.1 Defenisi Citra

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada media penyimpanan (Sutoyo, et al. 2009).

Secara harfiah citra (image) adalah gambar pada bidang dwimatra atau dua dimensi. Citra juga dapat diartikan sebagai kumpulan titik-titik dengan intesitas warna tertentu yang membentuk suatu kesatuan dan mempunyai pengertian artistik. Citra sebagai salah satu komponen multimedia yang memegang peranan sangat penting sebagai salah satu bentuk informasi visual.

2.2 Citra Digital

Citra digital adalah citra yang dapat diolah oleh komputer. Citra digital disebut juga citra diskrit di mana citra tersebut dihasilkan melalui proses digitalisasi terhadap citra kontinu. Citra tersebut dikatakan sebagai citra digital karena bentuk representasinya yang berupa bilangan (numbers). Oleh komputer akan dikenal dalam urutan ‘0’ dan ‘1’.

(49)

tetangganyamemiliki intensitas yang sama, sehingga penyimpanan setiap pixel memboroskan tempat. Kedua, citra banyak mengandung bagian (region) yang sama, sehingga bagian yang sama ini tidak perlu dikodekan berulang kali karena redundan.

Citra tidak sama dengan teks yang hanya memberikan informasi secara jelas dengan kata-kata yang dipaparkan, sedangkan citra memberikan informasi yang jelas dengan memberikan gambaran visual dan terkadang informasi yang diberikan dapat memacu imajinasi dari orang yang melihat citra untuk menyimpulkan informasi dari citra tersebut.

Ada beberapa format citra digital, antara lain: BMP, PNG, JPG, GIF dan sebagainya. Masing-masing format mempunyai perbedaan satu dengan yang lain terutama pada header file. Namun ada beberapa yang mempunyai kesamaan, yaitu penggunaan palette untuk penentuan warna piksel. Sebagai studi kasus dalam tugas akhir ini akan digunakan format citra *.jpg yang dikeluarkan oleh Microsoft.

2.3 Citra Warna (True Color)

Pada citra warna (true color) setiap pixel-nya merupakan kombinasi dari tiga warna dasar merah, hijau, dan biru, sehingga citra warna ini disebut juga citra RGB (Red Green Blue). Setiap komponen warna memiliki intensitas sendiri dengan nilai minimum 0 dan nilai maksimum 255 (8-bit). Hal ini menyebabkan setiap pixel pada citra RGB membutuhkan media penyimpanan 3 byte. Jumlah kemungkinan kombinasi warna citra RGB adalah 224 = lebih dari 16 juta warna. (Novitasari, 2011). Contoh citra warna (true color)dapat dilihat pada gambar 2.1

(50)

Gambar 2.2 Palet warna kuning (255 255 0)

2.4 Joint Photograpic Expert Group (JPEG)

JPEG didirikan oleh komite Joint Photographic Expert Group yang mengeluarkan standart pada tahun 1992. JPEG menetapkan standart yaitu codec. Codec menjelaskan tentang bagaimana sebuah gambar dikompresi menjadi aliran byte dan dikompres kembali menjadi sebuah gambar serta digunakan sebagai streaming sebuah file. Citra Joint Photograpic Expert Group (JPEG)merupakan yang terbaik untuk foto-foto dan lukisan pemandangan yang realistis dengan variasi warna yang halus dan senada.

Kompresi yang umum pada JPEG adalah Lossy, yaitu beberapa kualitas visual akan hilang dalam proses dan tidak dapat dikembalikan. Metode kompresi Lossy data dari encoding ketika diterapkan untuk input yang memiliki 24 bit per pixel (masing-masing delapan untuk merah, hijau dan biru). Metode pertama dari metode kompresi Lossy data adalah transformasi warna, adapun langkah pertama adalah langkahnya adalah mengubah gambar dari RGB menjadi berbagai warna ruang (YCbCr). Y (kecerahan dan pixel), Cb dan Cr (Chrominance/biru dan merah komponen).

Ruang warna YCbCr konversi memungkinkan kompresi lebih besar tanpa perceptual signifikan terhadap kualitas gambar (atau lebih besar perceptual kualitas gambar yang sama untuk kompresi). Langkah selanjutnya adalah untuk mengurangi resolusi spasial dari komponen Cb dan Cr disebut dengan downsampling atau subsampling chroma. Gambar berikut adalah gambaran algoritma kompresi JPEG: (W.Y. Yang, 2009).

2.5 Kompresi Citra

(51)

Pemampatan citra atau kompresi bertujuan untuk meminimalkan kebutuhan memori dalam merepresentasikan citra digital dengan mengurangi duplikasi data di dalam citra sehingga memori yang dibutuhkan menjadi lebih sedikit daripada representasi citra semula.

2.5.1 Teknik Kompresi Citra

Ada dua teknik yang dapat dilakukan dalam melakukan kompresi citra yaitu: 1. Lossless Compression

Metode Lossless merupakan kompresi citra dimana hasil dekompresi dari citra yang terkompresi sama dengan citra aslinya, tidak ada informasi yang hilang. Sayangnya, untuk ratio kompresi citra metode ini sangat rendah. secara umum teknik lossless digunakan untuk penerapan aplikasi yang memerlukan kompresi tanpa cacat, seperti pada aplikasi radiografi, kompresi citra hasil diagnose medis atau gambar satelit, di mana kehilangan gambar sekeil apa pun akan menyebabkan hasil yang tidak diharapkan. Contoh metode ini adalah Shannon-Fano Coding, Huffman Coding, Arithmetic Coding, Run-Length Encodingdan lain sebagainya(Sutoyo, 2009)

2. Lossy Compression

Metode Lossy merupakan kompresi citra dimana hasil dekompresi dari citra yang terkompresi tidak sama dengan citra aslinya, artinya bahwa ada informasi yang hilang, tetapi masih bisa ditolerir oleh persepsi mata. Metode ini menghasilkan ratio kompresi yang lebih tinggi dari pada metode lossless. Contohnya adalah color reduction, chroma subsampling, dan transform coding, seperti transformasi Fourier, Wavelet dll. (Sutoyo, 2009)

2.5.2 Kriteria Kompresi Citra

Dalam kompresi citra biasanya kriteria yang digunakan untuk mengukur pemampatan citra adalah:

1. Waktu kompresi dan waktu dekompresi

(52)

proses untuk menguraikan citra yang dimampatkan untuk dikembalikan lagi (decoding) menjadi citra yang tidak mampat (mengembalikan ke bentuk semula). Algoritma pemampatan yang baik adalah algoritma yang membutuhkan waktu untuk kompresi dan dekompresi paling sedikit (paling cepat). Gambar 2 merupakan gambar mengenai proses kompresi dan dekompresi citra (Sutoyo, et al. 2009).

2. Kebutuhan memori

Suatu metode kompresi yang mampu mengompresi file citra menjadi file yang berukuran paling minimal adalah metode kompresi yang baik. Dimana memori yang dibutuhkan untuk menyimpan hasil kompresi berkurang secara berarti. Akan tetapi biasanya semakin besar persentase pemampatan, semakin kecil memori yang diperlukan sehingga kualitas citra makin berkurang. Sebaliknya semakin kecil persentase yang dimampatkan, semakin bagus kualitas hasil pemampatan tersebut (Sutoyo, et al. 2009).

3. Kualitas pemampatan

Metode kompresi yang baik adalah metode yang dapat mengembalikan citra hasil kompresi menjadi citra semula tanpa kehilangan informasi apapun. Walaupun ada informasi yang hilang akibat pemampatan, sebaiknya hal tersebut ditekan seminimal mungkin. Semakin berkualitas hasil pemampatan, semakin besar memori yang dibutuhkan, sebaliknya semakin jelek kualitas pemampatan, semakin kecil kebutuhan memori yang harus disediakan (Sutoyo, et al. 2009).

2.5.3 Parameter Perbandingan 1. Compression Ratio (Cr)

Compression Ratio (Cr) adalah persentase besar data terkompresi, hasil

(53)

Cr = ���� �� ��� � ℎ���� � �� � X 100% (1)

2. Ratio of Compression (Rc)

Ratio of Compression (Rc) adalah hasil perbandingan antara data yang belum dikompresi dengan data yang sudah dikompresi (Salomon, 2007).

Rc = ����� �� ��� � ℎ���� � �� � X 100%(2)

3. Redundancy Data (Rd)

Redundancy Data adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi setelah data dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil selisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi. (Salomon & Motta, 2010).

Rd= 100% – Cr(3)

4. Waktu Kompresi

Waktu kompresi merupakan waktu yang dibutuhkan oleh sebuah sistem untuk menginput file teks yang akan dikompresi sampai dengan selesainya proses kompresi. Semakin sedikit waktu yang dibutuhkan oleh sebuah sistem untuk melakukan sebuah kompresi, maka metode kompresi yang digunakan semakin efektif.

2.6 Kompleksitas Algoritma

(54)

Adanya algoritma yang baik mbaka komputer bisa menyelesaikan perhitungan dengan cepat dan benar. Sebaliknya jika algoritma kurang baik maka penyelesaian lambat dan bahkan tidak didapat solusi yang diharapkan. Baik buruknya sebuah algoritma dapat dibuktikan dari kompleksitas waktu yang digunakan.

Dua hal penting untuk mengukur efektivitas suatu algoritma yaitu kompleksitas ruang (keadaan) dan kompleksitas waktu. Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan dalam eksekusi program. Kompleksitas waktu dari algoritma berisi ekspresi bilangan dan jumlah langkah yang dibutuhkan sebagai fungsi dari ukuran permasalahan. Analisa asimtotik menghasilkan notasi Ο (Big O) dan dua notasi untuk komputer sain yaitu ϴ(Big Theta) dan Ω (Big Omega) .

Kinerja algoritma dibuktikan dengan menjumlahkan bilangan bulat dari masing-masing operasi ketika algoritma di jalankan. Kinerja sebuah algoritma dievaluasi sebagai fungsi ukuran masukan n dan konstanta modulo pengali yang digunakan. Pada penelitian ini kompleksitas yang digunakan adalah Big(ϴ).

2.6.1 Big-O (O)

Secara informal, O(g(n)) adalah himpunan semua fungsi yang lebih kecil atau dengan urutan yang sama dengan g(n) (hingga beberapa konstanta, sampai n ke tak terhingga). Sebuah fungsi t(n) dikatakan bagian dari Ο((g(n)) yang dilambangkan dengan t(n) Є Ο(g(n)), jika t(n) batas atasnya adalah beberapa konstanta g(n) untuk semua n besar, jika terdapat konstanta c positif dan beberapa bilangan bulat non-negatif n0 seperti t(n) ≤ cg(n) untuk semua n≥n0 . (Levitin A, 2011)

2.6.2 Big Omega (Ω)

Ω(g(n)) merupakan himpunan semua fungsi dengan tingkat pertumbuhan lebih besar atau sama dengan g(n) (hingga beberapa konstanta, sampai n ke tak terhingga). Sebuah fungsi t(n) dikatakan bagian dari Ω(g(n)), dilambangkan dengan t(n) Є Ω(g(n)), jika t(n) batas bawahnya adalah beberapa konstanta positif dari g(n) untuk semua n besar. Terdapat konstanta c positif dan beberapa bilangan bulat non-negatif n0 seperti t(n) ≥ cg(n), (untuk setiap n ≥ n0). (Levitin A, 2011)

2.6.3 Big Theta (θ)

(55)

fungsi t(n) dikatakan bagian dari θ (g(n)), dilambangkan dengan t(n) Є θ (g(n)), jika t(n) batas atas dan bawahnya adalah beberapa konstanta positif g(n) untuk semua n yang besar, yaitu jika ada beberapa konstanta positif c1 dan c2 serta beberapa bilangan

bulat non-negatif n0 seperti c2g(n) ≤ t(n) ≤ c1g(n) untuk semua n ≥ n0. (Levitin A,

2011)

2.7 Dekompresi Citra

Sebuah citra yang sudah terkompresi tentunya harus dapat dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi. Untuk dapat merubah citra yang terkompresi diperlukan cara yang berbeda seperti pada waktu proses kompresi dilaksanakan. Jadi pada saat dekompresi catatan header yang berupa byte-byte tersebut terdapat catatan isi mengenai isi dari file tersebut. (Alkhudri, 2015)

Catatan header akan menuliskan kembali mengenai isi dari file tersebut, jadi isi dari file sudah tertulis oleh catatan header sehingga hanya tinggal menuliskan kembali pada saat proses dekompresi. Proses dekompresi sempurna dan kembali ke bentuk aslinya.

Parameter perbandingan dalam dekompresi adalah waktu dekompresi. Waktu dekompresi adalah waktu yang dibutuhkan oleh sebuah sistem untuk melakukan proses dekompresi dari mulai pembacaan data hingga proses decoding pada data tersebut. Semakin kecil waktu yang diperoleh maka semakin efisien metode yang digunakan dalam proses kompresi dan dekompresi itu. Alur proses kompresi dan dekompresi pada citra dapat dilihat pada gambar 2.3 berikut.

Gambar 2.3Alur kompresi-dekompresi citra (Alkhudri, 2015)

2.8Algoritma Alternate Reverse Unary Code

Metode ini sudah umum digunakan dalam kompresi data dan banyak digunakan dengan gabungan beberapa teknik modifikasi. Unary Coding direpresentasikan

Citra Asli Citra

Hasil Kompresi Kompresi

(56)

dalamsebuah string dari n bit 1 diikuti dengan satu bit 0 yang mengakhiri yang didefenisikan sebagai n-1 bit 1diikuti satu bit 0. Atau sebaliknya sebagai alternatif dapat juga secara ekuivalen dimulai dari n bit 0 diikuti dengan bit 1 yang mengakhiriyang didefenisikan sebagai n-1 bit 0 diikuti dengan satu bit 1.

Pada metode UnaryCoding tidak terdapat pembagian frekuensi simbol-simbol yang ada pada sebuah string. (Salomon, 2008). Data sebelum dikompresi Algoritma Alternate Reverse Unary Code dapat dilihat pada tabel 2.1

Tabel 2.1 Data Sebelum Dikompresi ARUC

Simbol Frekuensi 8 bit Bit Bit x Frek

2 3 00000010 8 24

3 5 00000011 8 40

8 1 00001000 8 8

50 1 00110010 8 8

51 2 00110011 8 16

Bit x Frekuensi 96

Pada Tabel 2.2 berikut ini akan ditunjukkan data setelah dikompresi menggunakan algoritma Alternate Reverse Unary Code sesuai dengan data pada tabel 2.1.

Tabel 2.2 Data Sesudah DikompresiARUC

Simbol Frekuensi ARUC Bit Bit x Frek

3 5 1 1 5

2 3 01 2 6

51 2 001 3 6

8 2 0001 4 4

50 1 00001 5 5

Bit x Frekuensi 26

2.9Algoritma Run-Length Encoding (RLE)

(57)

digunakan untuk mengompresi citra yang memiliki kelompok-kelompok pixel yang berderajat keabuan yang sama. Pada metode ini dilakukan pembuatan rangkaian pasangan nilai (P,Q) untuk setiap baris pixel, dimana nilai P menyatakan nilai derajat keabuan, sedangkan nilai Q menyatakan jumlah pixel berurutan yang memiliki derajat keabuan tersebut. (Lubis, 2014)

Berbeda dengan teknik-teknik sebelumnya yang bekerja berdasarkan karakter per karakter, teknik run length ini bekerja berdasarkan sederetan karakter yang berurutan. Run Length Encoding adalah suatu algoritma kompresi data yang bersifat Lossless. Algoritma ini mungkin merupakan algoritma yang paling mudah untuk dipahami dan diterapkan.

Algoritma RLE ini cocok digunakan untuk mengkompres citra yang memiliki kelompok-kelompok pixel berderajat keabuan yang sama. Kompresi citra dengan algoritma RLE dilakukan dengan membuat rangkaian pasangan nilai (p,q) untuk setiap baris pixel, nilai pertama (p) menyatakan derajat keabuan, sedangkan nilai kedua (q) menyatakan jumlah pixel berurutan yang memiliki derajat keabuan tersebut (dinamakan Run-Length Encoding).

Langkah-langkah yang dibutuhkan untuk melakukan kompresi Run-Length Encoding adalah sebagai berikut:

1. Periksa nilai saat ini dengan nilai tetangga, apabila nilai saat ini sama dengan nilai tetangga maka gabungkan nilai tersebut menjadi satu dan tambahkan nilai counter untuk nilai tersebut.

2. Apabila nilai saat ini dengan nilai tetangganya tidak sama maka simpan nilai saat ini dan lanjut pemeriksaan seperti pada nomor 1.

3. Setelah proses 1 dan 2 telah dilakukan kemudian simpan hasil proses kompresi tersebut.

Untuk melakukan proses dekompresi terhadap file yang telah mengalami proses kompresi Run Length Encoding (RLE) dapat dilihat pada langkah-langkah berikut ini.

(58)

2. Apabila nilai tidak berulang maka nilai saat ini simpan dan lanjutkan ke nilai selanjutnya.

2.10 Penelitian Terkait

Berikut ini beberapa penelitian yang terkait dengan algoritma Alternate Reverse Unary Codes dan Run Length Encoding. Penelitian terkait untuk kedua algoritma tersebut dapat dilihat pada tabel 2.3.

Tabel 2.3 Tabel Penelitian Terkait

No Judul Peneliti disimpulkan bahwa hasil perbandingan rata-rata Shannon Fano merupakan yang paling cepat

(59)

piksel tidak merata memiliki tingkat efisiensi lebih besar dibandingkan dengan citra dengan nilai piksel yang merata.

3. Perancangan

Perangkat Lunak Pengenkripsian Citra *.BMP, *.GIF, dan *.JPG dengan Metode Hill.

Yuandi, Hendry. 2010.

Metode Hill Hill Cipher sebenarnya merupakan salah satu teknik penyandian teks, tetapi dengan melakukan perubahan perhitungan pada nilai RGB (Red Green Blue) citra maka Hill Cipher juga dapat

dipakai untuk

menyandikan citra. Hasil dari tulisan ini adalah perancangandan

(60)

BAB 1

PENDAHULUAN

Pada bab ini penulis akan menguraikan tentang latar belakang, rumusan masalah, batasan masalah dari penelitian, tujuan dan manfaat dari penelitian, metodologi yang dipakai dalam melakukan penelitian ini serta sistematika penulisannya.

1.1 Latar Belakang

Perkembangan media penyimpan berkapasitas besar mengakibatkan orang tidak lagi menemui masalah jika mempunyai file dengan ukuran yang besar. Lebih-lebih jika file yang digunakan merupakan file citra. Walaupun demikian, adakalanya ukuran file yang besar tersebut terasa mengganggu jika diaplikasikan untuk mengatur media penyimpan yang ada untuk bermacam-macam data. Apalagi jika file tersebut akan dikirim secara elektronik, tentunya kapasitas file menjadi masalah tersendiri.

Kompresi citra (image compression) adalah proses untuk meminimalkan jumlah bit yang merepresentasikan suatu citra sehingga ukuran citra menjadi lebih kecil. Pada dasarnya teknik kompresi citra digunakan untuk proses transmisi data (data transmission) dan penyimpanan data (storage). Kompresi citra banyak diaplikasikan pada penyiaran televisi, penginderaan jarak jauh (remote sensing), komunikasi militer, radar dan lain-lain.Kompresi citra merupakan aplikasi dari teknik kompresi data untuk citra digital dengan tujuan untuk mengurangi redudansi yang ada di dalam citra sehingga lebih efisien dalam proses penyimpanan maupun proses transmisi.

Masalah pada citra adalah besarnya ruang penyimpanan yang diperlukan. Selain itu, data citra berukuran besar jika di kirim melalui jaringan juga membuat waktu pengiriman citra dari suatu tempat ke tempat lain menjadi lambat.

(61)

membutuhkan waktu pengiriman yang lebih singkat dibandingkan dengan citra yang tidak dikompresi.

Hal inilah yang mendasari perlunya suatu usaha untuk mengkompresi citra sehingga citra dapat disimpan dengan ukuran yang berbeda dengan yang asli. Maka itu dirancanglah algoritma kompresi citra yang berfungsi untuk mengkompresi citra sebelum nantinya akan disebarluaskan atau dikirimkan kepada seseorang. Algoritma kompresi citra yang digunakan diantaranya adalah Algoritma Alternate Reverse Unary Code dan Algoritma Run Length Encoding(RLE).

1.2 Rumusan Masalah

Rumusan masalah dalam penelitian ini adalah:

a. Bagaimana mengetahui rasio kompresi yang terbaik antara algoritma Alternate Reverse Unary Code dengan Run Length Encoding (RLE) dalam melakukan kompresi file citra

b. Bagaimana mengetahui waktu yang dibutuhkan untuk pemampatan citra untuk masing-masing algoritma Alternate Reverse Unary Codedan Run Length Encoding (RLE)

1.3 Batasan Masalah

Batasan masalah dalam penelitian ini adalah:

1. Algoritma yang digunakan adalah Algoritma Alternate Reverse Unary Code dan Run Length Encoding(RLE).

2. Citra yang dijadikan objek kompresi adalah True Color (citra berwarna). 3. File yang digunakan berupa file dalam bentuk JPG.

4. Bahasa Pemograman yang digunakan C#.

5. Parameter pembanding yang digunakan adalah parameter rasio (Rc, CR), Rd (Redudancy Data),waktu yang dibutuhkan selama proses kompresi dan dekompresi.

(62)

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah:

1. Untuk mengimplementasikan algoritma Alternate Reverse Unary Codedan RunLength Encoding(RLE) sebagai teknik kompresi citra dengan menggunakan C#.

2. Menunjukkan hasil perbandingan kompleksitas algoritma Alternate Reverse Unary Code dan Run Length Encoding(RLE).

1.5 Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini antara lain:

1. Untuk menghasilkan sebuah aplikasi yang mampu melakukan kompresi dan dekompresi file citra digital dengan algoritma Alternate Reverse Unary Code dan Run LengthEncoding (RLE).

2. Untuk mengetahui tingkat efisiensi kompresi menggunakan metode Alternate Reverse Unary Code dan Run Length Encoding (RLE).

3.Memperluas kapasitas penyimpanan file yang digunakan dengan mengurangi ukuran citra yang akan disimpan.

4. Sebagai bahan referensi mengenai algoritma Alternate Reverse Unary Code dan Run Length Encoding (RLE) pada proses kompresi file.

1.6 Metodologi Penelitian

Metodologi yang digunakan dalam tugas akhir ini adalah: 1. Studi Pustaka

Mempelajari dan mengumpulkan informasi sebagai referensi baik dari buku, paper, jurnal, makalah, dan sumber-sumber lain yang berkaitan dengan Algoritma Alternate Reverse Unary Code dan Run Length Encoding.

2. Analisis system

(63)

3. Perancangan Sistem

Pada tahap ini dilakukan perancangan user interface, Unified Modeling Language (UML), dan struktur program sistem kompresi file.

4. Implementasi Sistem

Sistem diimplementasikan dengan menggunakan Algoritma Alternate Reverse Unary Code dan Run-Length Encoding(RLE).

5. Pengujian Sistem

Pada tahap ini dilakukan pengujian kinerja sistem dan kebenaran hasil kompresi file gambar yang dilakukan dengan dua algoritma yang berbeda.

6. Dokumentasi

Pada tahap ini seluruh kegiatan dalam pembuatan sistem didokumentasikan kedalam bentuk tulisan berupa laporan skripsi.

1.7 Sistematika Penulisan

Setelah uraian di bab satu ini, penyajian selanjutnya disampaikan dengan sistematika berikut :

BAB 1: PENDAHULUAN

Menguraikan Latar Belakang, Rumusan Masalah, Batasan Masalah, Tujuan Penelitian, Manfaat Penelitian, Metodologi Penelitian, dan Sistematika Penulisan Skripsi.

BAB 2: TINJAUAN PUSTAKA

Berisi rangkuman informasi yang dihimpun dari pustaka yang relevan dengan topik yang menjadi objek kajian, untuk memperluas basis informasi dalam melakukan kajian dan/atau akan digunakan sebagai basis argumentasi di dalam mengemukakan pandangan

BAB 3: ANALISIS DAN PERANCANGAN

(64)

BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM

Menguraikan analisis dan hasil yang diperoleh di akhir pelaksanaan Skripsi dan pokok-pokok kesimpulan yang dapat dikemukakan sehubungan dengan pencapaian hasil kajian kompresi Alternate Reverse Unary Codedan Run Length Encoding(RLE).

BAB 5: KESIMPULAN DAN SARAN

(65)

ABSTRAK

Perkembangan teknologi yang menghasilkan citra sebagai data telah berkembang dengan sangat pesat sehingga resolusi citra yang dihasilkan juga semakin tinggi dan ukuran data citra yang dihasilkan juga semakin besar. Hal tersebut membuat muncul permasalahan seperti waktu pertukaran data yang lama dan membutuhkan banyak bandwith. Kompresi citra merupakan salah satu solusi untuk menyelesaikan permasalahan tersebut. Penelitian ini bertujuan untuk merancang sebuah aplikasi komputer yang dapat mengompresi file citra jpg. Pada penelitian ini algoritma yang digunakan untuk mengompresi file citra tersebut adalah algoritma Alternate Reverse Unary Code dan Run Length Encoding (RLE). Rasio pembanding yang digunakan adalah Ratio of Compression (RC), Compression Ratio (CR), Redudancy Data (RD), waktu kompresi (ms) dan waktu dekompresi (ms). Dalam percobaan yang dilakukan didapatkan bahwa kedua metode ini memberikan hasil yang berbeda dimana metode Run Length Encoding memberikan hasil kompresi yang lebih baik, dimana metode ini menghasilkan rasio kompresi rata-rata sebesar 7,48%.dan waktu dekompresi file citra rata-rata 0,03 ms. Sedangkan metode Alternate Reverse Unary Codes menghasilkan rasio kompresi rata-rata sebesar 12,39%.dan waktu dekompresi file citra rata-rata 0,05 ms.

Kata kunci: Kompresi File Citra, Algoritma Alternate Reverse Unary Code, Algoritma Run Length Encoding

(66)

COMPARISON ALGORITHM ALTERNATE REVERSE

UNARY CODE AND RUN LENGTH ALGORITHM

ENCODING (RLE) IN COMPRESSION

IMAGE JPG

ABSTRACT

Development of technology that produces its image as a data have evolved with very rapidly so that resolution resulting image is getting higher and size of image data that is produced also the bigger. It makes appear issues such as time data exchange long and need much bandwith. Compression image is a solution to solve those problems. This study aims to to design a application computers that can compressing file jpg image. In this research the algorithms that used for compressing file that imagery is algorithm alternate reverse unary code and Run Length Encoding (RLE). The ratio comparison used is Ratio of Compression (RC) , Compression Ratio (CR) , Redudancy Data (RD) , Time compression ( ms ) and time decompress ( ms ). In experiments conducted got that second it provides different results where method run length encoding results from compressed better , where this method produce compression ratio an average of 7,48 % and time decompress file image the average 0.03 ms. While method alternate reverse unary codes produce compression ratio an average of 12,39 % and time decompress file image the average 0.05 ms.

Keywords: Image File Compression, Algorithm Reverse Unary Alternate Code, Run Length Encoding Algorithms

(67)

PERBANDINGAN ALGORITMA ALTERNATE REVERSE

UNARY CODES DAN ALGORITMA RUN-LENGTH

ENCODING(RLE) PADA KOMPRESI

CITRA.JPG

SKRIPSI

JUNITA SARI SITUMORANG

141421023

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(68)

i i

PERBANDINGAN ALGORITMA ALTERNATE REVERSE

UNARY CODES DAN ALGORITMA RUN-LENGTH

ENCODING(RLE) PADA KOMPRESI

CITRA.JPG

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

JUNITA SARI SITUMORANG 141421023

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN

(69)

PERSETUJUAN

Judul : PERBANDINGAN ALGORITMA ALTERNATE

REVERSE UNARY CODE DAN ALGORITMA RUN LENGTH ENCODING(RLE) PADA KOMPRESI CITRA .JPG

Kategori : SKRIPSI

Nama : JUNITA SARI SITUMORANG

Nomor Induk Mahasiswa : 141421023

Program Studi : EKSTENSI SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di

Medan, Juni 2016

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Handrizal ,S.Si,M.Comp.Sc Dr. Syahriol Sitorus, S.Si., M.IT.

NIP. - NIP. 19103101997031004

Diketahui/disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom. NIP. 196203171991031001

(70)

PERNYATAAN

PERBANDINGAN ALGORITMA ALTERNATE REVERSE

UNARY CODE DAN ALGORITMA RUN LENGTH

ENCODING(RLE) PADA KOMPRESI

CITRA .JPG

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Januari 2016

Junita Sari Situmorang 141421023

Gambar

Tabel 3.1 Cause-and-Effect Analysis
Gambar 3.1 Diagram Ishikawa Pada Analisis Masalah
Gambar 3.2 Flowchart Proses Kompresi Citra
Gambar 3.3 Flowchart Proses Dekompresi Citra
+7

Referensi

Dokumen terkait

Dalam melakukan proses kompresi pastilah setelah itu dilakukan proses dekompresi ulang, proses dekompresi dilakukan untuk mengembalikan file citra kebentuk aslinya dengan

Kompresi data berarti suatu teknik untuk memampatkan dalam citra sehingga memori yang dibutuhkan menjadi lebih sedikit daripada representasi citra data agar diperoleh data

Rasio kompresi file audio *.mp3 menggunakan Algoritma Huffman memiliki rata-rata 1.426% sedangkan RLE -94.44%, dan rasio kompresi file audio *.wav memiliki rata-rata 28.954

Pengujian sistem adalah pengumpulan data hasil proses kompresi dan dekompresi file audio dengan algoritma Run Length Encoding yang menampilkan waktu dan rsio

memecah citra menjadi region-region kuadran dengan menerapkan segmentasi citra dan dilanjutkan oleh DWT yang memproses region-region tersebut dengan melakukan transformasi

memecah citra menjadi region-region kuadran dengan menerapkan segmentasi citra dan dilanjutkan oleh DWT yang memproses region-region tersebut dengan melakukan transformasi

Dalam periode pengerjaan skripsi yang berjudul Analisis Perbandingan Kompresi Citra Menggunakan Algoritma Transformasi Walsh-Hadamard dengan Run Length Encoding (RLE) ini,

processor pada i7 proses yang lebih cepat waktu kinerjanya adalah yang menggunakan single processor [13] ... Maka dari itu tujuan percobaan real-time rendering and compression