TUGAS AKHIR Implementasi Metode Run Length Encoding Dalam Kompresi Citra Dengan Citra Hitam Putih.

TUGAS AKHIR

IMPLEMENTASI METODE RUN LENGTH ENCODING DALAM KOMPRESI CITRA
DENGAN CITRA HITAM PUTIH

Diajukan Untuk Memenuhi Tugas dan Syarat-syarat Guna Memperoleh Gelar
Sarjana Teknik pada Fakultas Teknik Jurusan Teknik Elektro
Universitas Muhammadiyah Surakarta

Disusun oleh :

AGUS SRIWIYANTO
D 400 080 007

FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO
UNIVERSITAS MUHAMMADIYAH SURAKARTA
2012

IMPLEMENTASI METODE RUN LENGTH ENCODING
DALAM KOMPRESI CITRA DENGAN CITRA HITAM PUTIH


Agus Sriwiyanto
FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO
UNIVERSITAS MUHAMMADIYAH SURAKARTA
E-mail : agus.kopral@yahoo.co.d
ABSTRAKSI
Pada era informasi seperti sekarang ini, dunia berkembang diikuti dengan pengembangan ilmu
pengetahuan dan teknologi yang begitu pesat. Hal ini terlihat dengan beragamnya inovasi- inovasi yang mampu
tercipta dengan pengembangan dalam bidang ilmu pengetahuan dan teknologi. Salah satunya adalah
pengembangan dalam bidang kompresi citra (Image Compression). Dengan tunjuan memanpatkan citra sehingga
mengurangi kebutuhan ruang memori dalam storage lebih sedikit.
Penelitian ini membahas tentang bagaimana cara mengimplementasikan metode Run Length Encoding
dalam program kompresi citra, yang bertujuan untuk melakukan kompresi ukuran memori suatu citra menjadi lebih
kecil, sehingga keterbatasan memori pada media penyimpanan dapat diatasi. Metode Run Length Encoding yaitu,
teknik mengkompresi citra yang berisi karakter-karakter berulang, jadi pada saat karakter yang diterima lebih dari
tiga karakter berderet, maka penggunaan metode ini sangat efektif. Selain itu digunakannya bahasa pemrograman
Matlab, karena selain andal untuk menampilkan data-data vector atau matriks dapat juga digunakan untuk
menampilkan data-data citra. Hal ini disebabkan data citra pada dasarnya berupa matiks warna dengan derajat
keabuan (Gray Scale) tertentu.
Dari hasil penelitian ini, dapat disimpulkan bahwa program kompresi ini melalui dua tahab yaitu encode
dan decode. Encode adalah mengcodekan intensitas citra sehingga didapatkan hasil citra yang lebih kecil dari citra

aslaiya sedangkan decode yaitu mengembalikan atau menyusun kembali intensitas yang dicodekan menjadi citra
yang semula sesuai dengan citra aslinya. Hasil citra yang terkompresi memiliki ukuran lebih kecil dari ukuran citra
asli . mampu mengkompesi dengan nilai rata rata mencapai 7.287 Kb.
Kata kunci : Image Compression, Run Length Encoding, Matlab

1. PENDAHULUAN
Pada era informasi seperti sekarang ini,
siapa yang tidak kenal yang namanya tempat
penyimpanan data atau yang sering disebut
memori. Merupakan media penyimpan
berbagai macam data seperti bentuk teks,
gambar, audio, dan video atau yang sering
disebut dengan multimedia. Akan tetapi data
yang begitu besar sangat mempengaruhi
kebutuhan ruang memori dalam storage lebih
sedikit. Dalam hal ini dirasakan sangat penting
keberadaan suatu metode kompresi dengan

performa tinggi, yang bertujuan untuk
mengurangi penggunaan memori.

Diperlukan kompresi pada data untuk
menghasilkan ukuran data yang lebih kecil,
merupakan alternatif pemecahan masalah yang
mungkin dapat dilakukan. Run Length
Encoding merupakan salah satu teknik
kompresi data yang umumnya digunakan pada
pengolahan citra (Image Compressing) di
mana data berjalan (yaitu, urutan di mana nilai
data yang sama terjadi pada banyak elemen
data yang berturut-turut) disimpan sebagai

nilai data tunggal dan dihitung panjangnya.
Teknik kompresi bersifat lossless sehingga
mampu merekonstruksi file hasil kompresi
kebentuk asalnya.
Dalam Tugas Akhir ini mencoba
mengimplementasikan metode Run Length
Encoding. Karena metode ini pada dasarnya
memampatkan data yang berisi karakterkarakter berulang, di mana data yang akan
dikompresi berupa citra hitam putih dan

apabila citra bukan berupa citra hitam putih
maka harus diubah terlebih dahulu . Oleh
sebab itu kompresi Run Length Encoding ini
mempunyai daya kompresi yang sangat besar
sehingga efisiensinya juga sangat besar.
a. Format Pixel 1 Bit (Citra Biner
Monocrom)
Citra biner diperoleh melalui proses
pemisahan pixel – pixel berdasarkan derajat
keabuan yang dimilikinya. Pada citra biner,
setiap titik bernilai 0 dan 1, masing – masing
merepresentasikan warna tertentu. Nilai 0
diberikan untuk pixel yang memiliki derajat
keabuan lebih kecil dari nilai batas yang
ditentukan, sementara pixel yang memiliki
derajat keabuan yang lebih besar dari batas
akan di ubah menjadi nilai 1. Pada standar
citra untuk ditampilkan di layer computer,
nilai biner ini berhubungan dengan ada
tidaknya cahaya yang ditembakkan oleh

electron gun yang terdapat di dalam monitor
komputer. Angka 0 menyatakan tidak ada
cahaya, dengan demikian warna yang
direpresentasikan adalah hitam. Untuk angka
1, terdapat cahaya, sehingga warna yang
direpresentasikan adalah putih. Standar
tersebut disebut sebagai standar citra cahaya,
sedangkan standar citra tinta / cat adalah
berkebalikan,
karena
biner
tersebut
menyatakan ada tidaknya tinta. Setiap titik
pada citra hanya membutuhkan 1 bit, sehingga
setiap byte dapat menampung informasi 8 bit.
Ilustrasi dari citra biner bisa dilihat pada
gambar 1 :

Gambar 1. Ilustrasi Citra Biner Monokrom.
b. Format Pixel 8 bit (Citra Gray Scale)

Citra
skala
keabuan
memberi
kemungkinan warna yang lebih banyak
daripada citra biner, karena ada nilai – nilai
diantara nilai minimum (biasanya = 0) dan
nilai maksimum. Banyaknya kemungkinan
nilai minimum dan nilai maksimumnya
bergantung pada jumlah bit yang digunakan.
Mata manusia pada umumnya hanya
mempunyai kemampuan untuk membedakan
maksimal 40 tingkat skala keabuan. Untuk
citra tampak / visible image dipilih skala
keabuan lebih dari 40. Pada umumnya, citra
skala keabuan menggunakan jumlah bit 8,
sesuai dengan satuan memori komputer.
Contohnya untuk skala keabuan 4 bit, maka
jumlah kemungkinan nilainya adalah 16, dan
nilai maksimumnya adalah 24 – 1 = 23.

Sedangkan untuk skala keabuan 8 bit, maka
jumlah kemungkinan nilainya adalah 256, dan
nilai maksimumnya adalah 256 – 1 = 255.
Format citra ini disebut skala keabuan, karena
pada umumnya warna yang dipakai adalah
antara warna hitam sebagai warna minimal dan
warna putih sebagai warna maksimalnya,
sehingga warna diantara hitam dan putih
adalah warna abu – abu. Namun pada
prakteknya, warna yang dipakai tidak terbatas
pada warna abu – abu. Sebagai contoh, dipilih
warna minimalnya adalah putih dan warna
maksimalnya adalah merah, maka semakin
besar nilainya semakin besar pula intensitas
warna merahnya. Format citra ini kadang
disebut sebagai citra intensitas. Ilustrasi dari
citra Gray Scale dapat dilihat pada gambar 2:

Gambar 2. Ilustrasi Citra Grey Scale.
c. Format Pixel 24 Bit (Citra Warna/True

Color)
Pada citra warna, setiap titik mempunyai
warna yang paling spesifik yang merupakan
kombinasi dari 3 warna dasar, yaitu merah
(red), hijau (green) dan biru (blue). Ada
perbedaan warna dasar untuk dasar cahaya.
(misalnya display di monitor komputer) dan
untuk cat (misalnya cetakan di atas kertas).
Untuk cahaya, warna dasarnya adalah red
green dan blue (RGB), sedangkan untuk cat
warna dasarnya adalah sian, magenta, kuning
(cyan, magenta, yellow) CMY. Keduanya
saling berkomponen. Format citra ini sering
disebut sebagai citra RGB (Red-Green-Blue).
Setiap warna dasar mempunyai intensitas
sendiri dengan nilai maksimum 255 (8bit),
misalnya warna kuning merupakan kombinasi
warna merah dan hijau sehingga nilai RGB
nya adalah 255 255 0. Sedangkan warna ungu
muda, nilai RGB nya adalah 150 0 150,

dengan demikian setiap titik pada citra warna
membutuhkan data 3 byte. Jumlah kombinasi
warna yang mungkin untuk format citra ini
adalah 224 atau lebih dari 16 juta warna.
Dengan demikian, bisa di anggap mencakup
semua warna yang ada, inilah sebabnya format
ini dinamakan true color. Ilustrasi dari citra ini
dapat dilihat pada gambar 3 :

Gambar 3. Ilustrasi Citra True
Color.
Teknik Kompresi Citra
Teknik kompresi pada citra dapat dibagi
menjadi dua kategori besar, yaitu
a. Lossy Compression
Lossy compression menyebabkan adanya
perubahan data dibandingkan sebelum
dilakukan proses kompresi. Sebagai gantinya
lossy compression memberikan derajat
kompresi lebih tinggi. Tipe ini cocok untuk

kompresi file suara digital dan gambar digital.
File suara dan gambar secara alamiah masih
bisa digunakan walaupun tidak berada pada
kondisi yang sama sebelum dilakukan
kompresi.
Ciri-ciri lossy compression:
1. Ukuran file citra menjadi lebih kecil
dngan menghilangkan beberapa informasi
dalam citra asli.
2. Teknik ini mengubah detail dan warna
pada file citra menjadi lebih sederhana
tanpa terlihat perbedaan yang mencolok
dalam pandangan manusia, sehingga
ukuranya menjadi lebih kecil.
3. Biasanya digunakan pada citra foto atau
image lain yang tidak terlalu memerlukan
detail citra, dimana kehilangan bit rate
foto tidak berpengaruh pada citra.
b. Lossless Compression
Sebaliknya

Lossless
Compression
memiliki derajat kompresi yang lebih rendah
tetapi dengan akurasi data yang terjaga antara
sebelum dan sesudah proses kompresi.
Kompresi ini cocok untuk basis data, dokumen
atau spreadsheet. Pada lossless compression

Gambar 4. Contoh Dari Chroma
Subsampling.
ini tidak diijinkan ada bit yang hilang dari data
pada proses kompresi.
Beberapa teknik lossless:
1. Color reduction: untuk warna-warna
tertentu yang mayoritas dimana informasi
warna disimpan dalam color palette.
2. Chroma subsampling: teknik yang
memanfaatkan fakta bahwa mata manusia
merasa brightness (luminance) lebih
berpengaruh
daripada
warna
(chrominance) itu sendiri, maka dilakukan
pengurangan resolusi warna dengan
disampling ulang. Biasanya digunakan
pada sinyal YUV.
3. Chroma Subsampling terdiri dari 3
komponen: Y (luminance) : U (CBlue) : V
(CRed) seperti dilihat pada gambar 4.

Run Length Encoding (RLE)
Algoritma kompresi ini merupakan
algoritma kompresi dasar, yang sering kali
dipakai sebagai satu prakomputasi untuk
mengurangi penyimpanan. Ide dasar algoritma
Run Length Encoding adalah mengubah suatu
blok huruf yang sama menjadi bentuk
(dikodekan) blok huruf yang lain, tetapi
informasi tentang huruf tersebut dan
jumlahnya dalam blok tetap sama. Algoritma
Run Length Encoding sering digunakan untuk
memampatkan data yang berisi karakter –
karakter berulang. Saat kaarakter yang sama
diterima secara berderetan lebih dari tiga
karakter berderetan maka algoritma Run
Length Encoding dirasa efektif trehadap file –
file grafis dimana berisi deretan karakter yang
sama tersebut.
Teknik yang digunakan pada algoritma ini
adalah dengan mencari karakter yang berulang
lebih dari 3 kali pada suatu file untuk

kemudian diubah menjadi sebuah bit penanda
(marker bit) diikuti oleh sebuah bit yang
memberikan informasi jumlah karakter yang
berulang dan kemudian ditutup dengan
karakter yang dikompres. Yang dimaksud
dengan bit penanda di sini adalah deretan 8 bit
yang membentuk suatu karakter ASCII
(American Standard Code For Information
Intercharg). Jadi jika suatu file mengandung
karakter
yang
berulang,
misalnya
AAAAAAAA atau dalam biner 01000001
sebanyak 8 kali, maka data tersebut dikompres
menjadi 11111110 00001000 01000001.
Dengan demikian kita dapat menghemat
sebanyak 5 bytes. Agar lebih jelas algoritma
Run-Length dapat dilihat pada gambar 5.
Deretan data sebelah kiri merupakan
deretan data pada file asli, sedangkan deretan
data sebelah kanan merupakan deretan data
hasil pemampatan dengan algoritma Run
Length Encoding.
Dengan
menggunakan
metoda
pengambilan probabilitas seperti diatas maka
teknik
Run
Length
Encoding
tidak
membutuhkan waktu komputasi yang lama
seperti halnya metode yang digunakan pada
teknik arithmetic coding. Metode tersebut akan
sangat efektif bila file yang dikompres
merupakan deretan karakter yang sama seperti
halnya pada file - file gambar.
Namun hal tersebut tidak berlaku pada
file-file dokumen umum dimana kemungkinan
penggunaan karakter sangat heterogen.
Dengan kata lain, jika file yang ingin
dikompres tidak memiliki deretan lebih dari 3
karakter maka file hasil kompresi akan sama
dengan file aslinya.

Gambar 5. Contoh dari penggunaan
algoritma Run Length Eencoding.

Gambar 6. Flowchar Penelitian
2. METODE PENELITIAN
Urutan secara keseluruhan penelitian seperti
terlihat pada gambar 6. Flowchart penelitian
Proses yang dilakukan pada program
kompresi citra ini terdapat dua proses, yaitu
proses kompresi dan dekompresi. Proses
kompresi merupakan proses dimana program
kompresi citra melakukan proses encoding,
yaitu dengan terlebih dahulu memanggil citra
yang akan di-encode dan citra tersebut
merupakan citra hitam putih. Kemudian citra
tersebut diberikan nilainya pada setiap
barisnya dimana putih dilambangkan dengan
1 dan hitam dilambangkan dengan 0.
Rentetan 0 dan 1 tersebut kemudian diencode sehingga diperoleh jumlah masingmasing dari 0 dan 1 tersebut. Value (0 dan 1)
kemudian dimasukkan kedalam table beserta
berapa jumlahnya pada GUI Matlab.
Sedangkan untuk proses dekompresi, pada
GUI Matlab akan membaca data dari table
hasil kompresi untuk kemudian disusun
kembali sesuai dengan urutannya dan
membentuk kembali citra yang sesuai dengan
aslinya.
Untuk lebih jelasnya seperti terlihat pada
Flowchart dibaeah ini:

Gambar 7. Flowchart Run Length Encoding

3. PENGUJIAN PROGRAM DAN
ANALISA HASIL
Berikut merupakan screenshot pengujian
program dengan metode Run Length Encoding
yamg melalui 2 tahap yaitu kompresi dan
dekompresi yang ditunjukkan gambar 8, 9 10.

Analisa hasil merupakan analisa dari
perbandingan ukuran citra asli dengan ukuran
citra hasil kompresi. Berikut beberapa tahap
dalam menganalisa hasil.
1. Data Citra Asli
Tabel 1. Tabel Spesifikasi Citra Asli (Citra
Hitam Putih)
Spesifikasi Citra Asli (Citra Hitam Putih)

.Gambar 8. Pengujian Program
Kompresi.

Gambar 9. Hasil Kompresi Citra RLE.

No

Nama Citra

1

Mbah_Maridjan

Ukuran
Citra (KB)
10.53

2

Soekarno

6.016

JPG

3

Alexander Graham Bell

5.662

BMP

4

UMS

5.662

BMP

5

Baboon

3.484

PNG

6

Lena

1.937

PNG

7

H. Agus Salim

1.562

TIF

8

Ki Hajar Dewantoro

1.75

TIF

9

Ahmad Yani

1.811

GIF

10

Lionel Messi

1.538

GIF

2. Data Citra Terkompresi
Tabel 2. Spesifikasi Citra
Dengan Format JPG.

Format
Citra
JPG

Terkompresi

Spesifikasi Citra Terkompresi Dengan Format JPG
No

Nama Citra
Mbah_Maridjan

Ukuran
Citra (KB)
34.974

Format
Citra
JPG

1
2

Soekarno

16.656

JPG

Tabel
3. Spesifikasi Citra Terkompresi
Dengan Format BMP.
Spesifikasi Citra Terkompresi Dengan Format BMP

Gambar 10. Pengujian Program
Dekompresi.

No

Nama Citra
Alexander Graham Bell

Ukuran
Citra (KB)
2.794

Format
Citra
BMP

1
2

UMS

8.05

BMP

Tabel
4. Spesifikasi Citra Terkompresi
Dengan Format PNG.
Spesifikasi Citra Terkompresi Dengan Format PNG
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
Baboon
0.115
PNG
2
Lena
0.109
PNG

No

Tabel
5. Spesifikasi Citra Terkompresi
Dengan Format TIF.
Spesifikasi Citra Terkompresi Dengan Format TIF
No
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
H. Agus Salim
2.196
TIF
2
Ki Hajar Dewantoro
2.798
TIF

Tabel
6. Spesifikasi Citra Terkompresi
Dengan Format GIF.
Spesifikasi Citra Terkompresi Dengan Format GIF
No
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
Ahmad Yani
2.777
GIF
2
Lionel Messi
2.338
GIF

3. Data Citra Dekompresi
Tabel
7. Spesifikasi Citra Dekompresi
Dengan Format JPG.
Spesifikasi Citra Dekompresi Dengan Format JPG
No
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
Mbah_Maridjan
11.384
JPG
2
Soekarno
6.431
JPG

Tabel
8. Spesifikasi Citra Dekompresi
Dengan Format BMP.
Spesifikasi Citra Dekompresi Dengan Format BMP
No
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
Alexander Graham Bell
5.662
BMP
2
UMS
5.662
BMP

Tabel
9. Spesifikasi Citra Dekompresi
Dengan Format PNG.
Spesifikasi Citra Dekompresi Dengan Format PNG
No
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
Baboon
3.484
PNG
2
Lena
1.937
PNG

Tabel 10. Spesifikasi
Dengan Format TIF.

Citra

Dekompresi

Spesifikasi Citra Dekompresi Dengan Format TIF
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
H. Agus Salim
1.562
TIF
2
Ki Hajar Dewantoro
1.75
TIF

No

Tabel 11. Spesifikasi
Dengan Format GIF.

Citra

Dekompresi

Spesifikasi Citra Dekompresi Dengan Format GIF
No
Nama Citra
Ukuran
Format
Citra (KB)
Citra
1
Ahmad Yani
1.811
GIF
2
Lionel Messi
1.538
GIF

4. KESIMPULAN
a. Melakukan kompresi citra dengan
menggunakan
metode
Run-length
encoding yaitu, menggunakan gambar
hitam putih, apabila citra bukan hitam
putih maka akan dirubah terlebih dahulu.
Penggunan citra hitam putih dikarenakan
citra hitam putih memiliki banyak
karakter-karakter berulang.
b. Ada 2 proses yang digunakan dalam
metode Run-length encoding yaitu prose
kompresi dan prose dekompresi. Proses
kompresi yaitu proses merupakan proses
dimana
program
kompresi
citra
melakukan proses encoding. Sedangkan
proses dekompresi yaitu proses mendecoding citra yang telah di-encoding
diperlukan proses tersebut karena metode
Run-length encoding bersifat lossles

DAFTAR PUSTAKA
_____.
“Run-length
encoding”.
http://en.wikipedia.org/wiki/Runlength_encoding. Diakses pada tanggal 13
Desember 2011. pukul 23.00 WIB
_____.
“Image
Compression
RLE”.
http://www.mathworks.com. Diakses pada
tanggal 13 Desember 2011. pukul 22.00 WIB
Amir, Said. 2004. Comparative Analysis of
Arithmetic Coding Computational
Complexity. HP Laboratories Palo
Alto California USA : Imaging
Systems Laboratory.
Angga,
2009,
Kompresi
Citra.
http://angga212.wordpress.com.
Diakses pada tanggal 13 Desember
2011. pukul 23.00 WIB.

Blelloch, Guy E. 2001. Introduction to Data
Compression, Computer Science
Department,
Carnegie
Mellon
University Diakses 27 Maret 2005
6:25:12 AM.
Hauck, S. dan Wilson, William D. 1999. Run
length Compression Techniques for
FPGA Configurations, Dept. of ECE,
Northwestern University, Evanston,
IL
60208-3118
USA,
IEEE
Symposium on FPGAs for Custom
Computing Machines,.
Iqbal, Muhammad. Dasar Pengolahan Citra
Menggunakan Matlab. www.creative
instrument.com/dokumen/image.pdf,
Diakses pada tanggal 13 Desember
2011. pukul 23.00 WIB.
Nelson, Mark. 1991. The Data Compression
Book. U.S.A. : M&T Books, , hal
32-47.
Ririanti, Santi. 2010. Perancangan Perangkat
lunak Kompresi File Citra Dengan
Menggunakan Algoritma Run Length
Encoding
(RLE).
Universitas
Sumatera Utara.
Sulistyanto, Hernawan dan Nur Rohman,
Ratnasari. 2007. Uji Implementasi
Pemampat Data Tak – Hilang
Dengan Metode RLE dan Static –
Adaptive Huffman. Fakultas Teknik
Universitas
Muhammadiyah
Surakarta.