A - 2 for Windows Forms designer support.
//
void KOMPRESIToolStripMenuItemClick(object sender, E ventArgs e)
A - 2 for Windows Forms designer support.
A - 2
A - 2
" + width.ToString() + Environment.NewLine; label1.Text += "Ukuran Asli :
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; }
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. //
A - 2
= new FileStream(nama, FileMode.Open,FileAccess.ReadWrit e);
StreamReader sreader = new StreamReader(fstream);
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(); }
}
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.
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
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.
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.
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.
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
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
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
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
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.
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.
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.
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.
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.
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)
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
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
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
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
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
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
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
A - 2
Gambar 4.1 Form Home
4.1.2. Tab Menu
4.1.2.1 Menu Kompresi
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
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.
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.
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.
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
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
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)
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
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
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.
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
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
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
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
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%
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.
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’.
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
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
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
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
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
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 (θ)
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
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)
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.
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
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
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.
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.
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
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
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
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
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
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
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
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
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