Anda di halaman 1dari 21

BAB 2

LANDASAN TEORI

2.1 Pengertian Citra Digital

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek.
Citra terbagi 2 yaitu ada citra yang bersifat analog dan ada citra yang bersifat digital.
Citra analog adalah citra yang bersifat kontinu seperti gambar pada monitor televisi,
foto sinar X, hasil CT Scan dll. Sedangkan pada citra digital adalah citra yang dapat
diolah oleh komputer( T,Sutoyo et al. 2009: 9).

Sebuah citra digital dapat mewakili oleh sebuah matriks yang terdiri dari M
kolom N baris, dimana perpotongan antara kolom dan baris disebut piksel ( piksel =
picture element), yaitu elemen terkecil dari sebuah citra. Piksel mempunyai dua
parameter, yaitu koordinat dan intensitas atau warna. Nilai yang terdapat pada
koordinat (x,y) adalah f(x,y), yaitu besar intensitas atau warna dari piksel di titik
itu.Oleh sebab itu, sebuah citra digital dapat ditulis dalam bentuk matriks berikut.

(2.1)

Berdasarkan gambaran tersebut, secara matematis citra digital dapat dituliskan


sebagai fungsi intensitas f (x,y), dimana harga x (baris) dan y (kolom) merupakan
koordinat posisi dan f(x,y) adalah nilai fungsi pada setiap titik (x,y) yang menyatakan
besar intensitas citra atau tingkat keabuan atau warna dari piksel di titik tersebut. Pada
proses digitalisasi (sampling dan kuantitas) diperoleh besar baris M dan kolom N
hingga citra membentuk matriks M x N dan jumlah tingkat keabuan piksel G (T,
Sutoyo et al.2009: 20).

Pengolahan citra digital adalah sebuah disiplin ilmu yang mempelajari hal-hal
yang berkaitan dengan perbaikan kualitas gambar (peningkatan kontras, transformasi
warna, restorasi citra), transformasi gambar (rotasi, translasi, skala, transformasi

Universitas Sumatera Utara


7

geometrik), melakukan pemilihan citra ciri (feature images) yang optimal untuk
tujuan analisis, melakukan proses penarikan informasi atau deskripsi objek atau
pengenalan objek yang terkandung pada citra, melakukan kompresi atau reduksi data
untuk tujuan penyimpanan data, transmisi data, dan waktu proses data. Input dari
pengoalahan citra adalah citra, sedangkan outputnya adalah citra hasil pengolahan (T,
Sutoyo et al.2009: 5).

2.1.1 Matriks

Matriks adalah kumpulan bilangan- bilangan yang disusun dalam larik baris dan
kolom. Umumnya matriks diberi notasi huruf kapital A,B, ...
Jika matriks A terdiri dari m baris dan n kolom (sering disebut ordo mxn), maka dapat
ditulis sebagai :

A= (2.2)

Perhatikan bahwa matriks yang terdiri dari 1 kolom sama dengan vektor (Siang, J,J.
2005: 16).

2.2 Resolusi Citra

Resolusi citra merupakan tingkat detailnya suatu citra. Semakin tinggi resolusinya
semakin tinggi pula tingkat detail dari citra tersebut (D, Putra. 2010 : 38). Menurut
T,Sutoyo et al (2009 : hal 18) ada dua jenis resolusi yang perlu diketahui, yaitu :
1. Resolusi Spasial
Resolusi spasial ini merupakan ukuran halus atau kasarnya pembagian kisi-kisi
baris dan kolom pada saat sampling.Resolusi ini dipakai untuk menentukan jumlah
pixel per satuan panjang. Biasanya satuan resolusi ini adalah dpi (dot per inchi).
Resolusi ini sangat berpengaruh pada detail dan perhitungan gambar.
2. Resolusi kecemerlangan

Universitas Sumatera Utara


8

Resolusi kecemerlangan (intensitas/ brightness) atau biasanya disebut dengan


kedalaman bit/ kedalaman warna (Bit Depth) adalah ukuran halus kasarnya pembagian
tingkat gradasi warna saat dilakukan kuantisasi. Bit Depth menentukan berapa banyak
informasi warna yang tersedia untuk ditampilkan dalam setiap piksel. Semakin besar
nilanya, semakin bagus kualitas gambar yang dihasilkan dan tentu ukuran juga
semakin besar.

2.3 Citra warna (True Colour)

Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari tiga
warna dasar (RGB = Red Green Blue). Setiap warna dasar menggunakan
penyimpanan 8 bit = 1 byte, yang berarti mempunyai gradasi sebanyak 255 warna
berarti setiap piksel mempunyai kombinasi warna
sebanyak . Penyimpanan citra true color
didalam memori berbeda dengan citra grayscale. Setiap piksel dari citra grayscale 256
gradasi warna diwakili oleh 1 byte. Sedangkan 1 piksel citra true color diwakili oleh 3
byte yang masing- masing byte merepresentasikan warna merah (Red), hijau (Green),
biru (Blue) (T, Sutoyo et al.2009: 22).

2.3.1 Citra warna (24 bit)

Setiap pixel dari citra warna 24 bit diwakili dengan 24 bit sehingga total 16.777.216
variasi warna. Variasi ini sudah lebih dari cukup untuk memvisualisasikan seluruh
warna yang dapat dilihat penglihatan manusia. Penglihatan manusia dipercaya hanya
dapat membedakan hingga 10 juta warna saja.
Setiap poin informasi pixel (RGB) disimpan kedalam 1 byte data. 8 bit
pertama menyimpan nilai biru, kemudian diikuti dengan nilai hijau pada 8 bit kedua
dan 8 bit terakhir merupakan warna merah.

2.4 Format File Citra

Sebuah format file citra harus dapat menyatukan kualitas citra, ukuran file dan
kompabilitas dengan berbagai aplikasi. Format file citra standar yang digunakan saat

Universitas Sumatera Utara


9

ini terdiri dari beberapa jenis. Format- format ini digunakan untuk menyimpan citra
dalam sebuah file. Setiap format memiliki karakteristik masing- masing. Ini adalah
contoh format umum, yaitu : Bitmap (.bmp), tagged image format (.tif, .tiff), Portable
Network Graphics (.png), JPEG (.jpg), dll (D, Putra. 2010 : 58).
Bahkan menurut Sutoyo,T.Mulyanto,E.et al (2009 : 25), ada dua jenis format
file citra yang sering digunakan dalam pengolahan citra, yaitu citra bitmap dan citra
vektor. Pada citra bitmap ini sering disebut juga citra raster. Citra bitmap ini
menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah
per piksel). Citra bitmap ini dipresentasikan dalam bentuk matriks atau dipetakan
dengan menggunakan bilangan biner atau sistem bilangan yang lain. Citra ini
memiliki kelebihan untuk memanipulasi warna, tetapi untuk mengubah objek lebih
sulit. Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna
dari sebuah gambar. Tetapi bila tampilan diperbesar maka tampilan di monitor akan
tampak pecah-pecah (kualitas citra menurun). Contoh format file citra antara lain
adalah BMP, GIFF, TIF, WPG, IMG, dll. Sedangkan pada format file citra vektor
merupakan citra vektor yang dihasilkan dari perhitungan matematis dan tidak terdapat
piksel, yaitu data yang tersimpan dalam bentuk vektor posisi, dimana yang tersimpan
hanya informasi vektor posisi dengan bentuk sebuah fungsi. Pada citra vektor,
mengubah warna lebih sulit dilakukan, tetapi membentuk objek dengan cara
mengubah nilai lebih mudah. Oleh karena itu, bila citra diperbesar atau diperkecil,
kualitas citra relatif tetap baik dan tidak berubah. Citra vektor biasanya dibuat
menggunakan aplikasi- aplikasi citra vektor seperti CorelDRAW, Adobe Illustrator,
Macromedia Freehand, Autocad, dll.

2.4.1 Format File Bitmap

File format BMP bisa disebut juga bitmap atau format file DIB (untuk perangkat
independen bitmap), adalah sebuah file gambar format yang digunakan untuk
menyimpan gambar digital bitmap, terutama pada Microsoft Windows dan OS / 2
sistem operasi. Banyak pengguna antarmuka grafis menggunakan bitmap dalam
membangun subsistem grafis, misalnya Microsoft Windows dan OS / 2 platforms’
GDI subsistem, dimana format tertentu yang digunakan adalah Windows dan OS / 2

Universitas Sumatera Utara


10

format file bitmap, biasanya ekstensi file .BMP atau .DIB. Adapun struktur file .BMP
adalah sebagai berikut :

Tabel 2.1 BMP File Header

Offset didefinisikan byte ke (yang dimulai dari angka 0), sedangkan size
merupakan ukuran dari panjang byte. Dimana dengan byte ke – 0 ukuran panjang 2
byte dispesifikasikan dengan nama tipe file yang diindikasikan berupa kode ASCII
“BM”. Pada byte ke- 2 dengan ukuran panjang 4 byte, nama spesifikasinya bitmap file
size yang berupa ukuran dari file dalam bentuk bytes.Untuk byte ke – 6 dan 8 yang
ukurannya 2 byte berupa field cadangan di set 0. Pada byte ke – 10 ukurannya 4 byte
yang merupakan spesifikasi dari struktur bitmap file header ke bit bitmap, dimana file
gambar dimulai pada tahap ini. Byte ke – 14, panjangnya 4 byte dengan spesifikasi
nama bitmap size yang mempunyai ukuran header 40 bytes. Byte ke – 18 dengan
panjang 4 bytes merupakan lebar gambar dalam satuan pixel, serta byte ke 22 dengan
panjang 4 bytes merupakan tinggi gambar dalam satuan pixel. Untuk byte ke – 26
dengan panjang 2 bytes merupakan bitmap planes dengan sejumlah planes (umumnya
1). Pada byte ke – 28 dengan panjang 2 byte merupakan jumlah bit per pixel : 1, 4, 8,
atau 24. Dan untuk byte ke – 30 dengan panjang 4 byte yang merupakan tipe
kompresi.

Universitas Sumatera Utara


11

Gambar 2.1 Sturuktur File BMP

Pada 1 – 14 bytes pertama disebut File header yang merupakan tempat


penyimpanan informasi umum tentang file gambar bitmap. Untuk 15 – 54 bytes
berikutnya disebut info header, dimana pada blok ini berisi tentang informasi secara
detail tentang gmabar bitmapnya. Dan pada 55 byte seterusnya berupa data / pixel dan
padding yang merupakan isi dari gambar bitmap.

2.5 Kompresi Citra

Kompresi citra adalah proses pemampatan citra yang bertujuan untuk mengurangi
duplikasi data pada citra sehingga memory yang digunakan untuk merepresentasikan
citra menjadi lebih sedikit daripada representasi citra semula.

Menurut Sutoyo,T.Mulyanto,E.et al (2009 : 166) secara garis besar terdapat 2


penggolongan teknik yang dapat dilakukan dalam melakukan kompresi citra, yaitu :

1. Lossless Compression merupakan kompresi citra dimana hasil dekompresi dari


citra yang terkompresi sama dengan citra aslinya, tidak ada informasi yang
hilang. Untuk ratio kompresi citra metode ini sangat rendah.
2. Lossy Compression merupakan kompresi citra dimana hasil dekompresi dari
citra yang terkompresi tidak sama dengan citra aslinya, artinya bahwa ada

Universitas Sumatera Utara


12

informasi yang hilang, tetapi masih bisa ditolerir oleh persepsi mata. Metode
ini menghasilkan ratio kompresi yang lebih tinggi dari pada metode lossless.

Ada faktor mengapa citra sangat tepat dilakukan proses kompresi agar tidak
terjadi korelasi yang signifikan antara pixel dengan pixel tetangga. Dan biasanya
korelasi ini disebut dengan korelasi spasial. Dari faktor inilah muncul data berlebihan
(Redudancy).
Kompresi data dicapai dengan mengurangi redudancy (kelebihan data) tapi ini
juga membuat data kurang dapat diandalkan, lebih rentan terhadap kesalahan.
Membuat data yang lebih handal, disisi lain dilakukan dengan menambahkan bit cek
dan bit paritas, sebuah proses yang meningkatkan ukuran kode (D, Salomon, 2004).
Menurut D, Putra (2010 :269) proses kompresi bisa dapat mengakibatkan
terjadinya kehilangan informasi pada citra hasil. Oleh karena itu dibutuhkan suatu
kriteria untuk mengukur kebenaran hasil kompresi yang sering disebut fidelity
criteria. Ada dua jenis kriteria yang digunakan untuk mengukur kebenaran hasil
kompresi yaitu :
1. Kriteria Kebenaran Subjektif
Kriteria ini dilakukan dengan melakukan penilaian terhadap citra hasil
kompresi dengan menanyakan secara langsung kepada orang- orang tentang
kualitas hasil kompresi.Biasanya penilaian dilakukan dengan membandingkan
citra hasil dengan citra asli, kemudian dibuat skala penilaian dimana setiap
skala berkaitan dengan kualitas sesuai pada tabel dibawah ini :
Skala Kebaikan Nilai
Sangat baik 5
Baik 4
Sedang 3
Buruk 2
Sangat Buruk 1

Universitas Sumatera Utara


13

2. Kriteria Kebenaran objektif


Pengukuran hasil proses kompresi dilakukan secara pendekatan matematika.
Pendekatan yang digunakan adalah dengan menggunakan program aplikasi
MD5SUM dan DIFF yang berguna untuk mencari perbedaan dua buah file.
MD5SUM adalah program komputer yang menghitung dan memverifikasi 128
bit Hash MD5. Hash MD5 (checksum) berfungsi sebagai sidik jari digital
kompak dari sebuah file. DIFF adalah program komputer yang berfungsi untuk
menemukan perbedaan antara dua buah file. DIFF membandingkan isi dari dua
buah file dari file ke file.

2.6 Parameter analisis perbandingan

Untuk memperkecil ukuran citra tetapi dengan kualitas yang sama menggunakan
metode RLE dengan perhitungan by repetitions, maka diperlukan beberapa parameter
untuk meminimalisasikan ukuran dari gambar yang akan dikompresi diantaranya ada
rasio kompresi citra serta waktu kompresi dan dekompresi.

2.6.1 Rasio Kompresi Citra

Rasio citra kompresi adalah ukuran persentase citra yang telah berhasil dimampatkan.
Secara matematis rasio pemampatan citra dituliskan sebagai berikut

Compression ratio =( 1 - ) × 100% (2.3)

2.6.2 Kriteria Kompresi

Kriteria yang umum digunakan untuk kompresi adalah

2.6.2.1 Waktu Kompresi dan Dekompresi

Kompresi adalah proses mengkodekan citra (encode) sehingga diperoleh citra dengan
representasi kebutuhan memori yang minimum. Sedangkan proses dekompresi adalah

Universitas Sumatera Utara


14

proses untuk menguraikan citra yang dimampatkan untuk dikembalikan lagi


(decoding) menjadi citra yang tidak mampat. Algoritma pemampatan yang baik
adalah algoritma yang membutuhkan waktu untuk kompresi dan dekompresi paling
sedikit (paling cepat) (T, Sutoyo et al.2009: 166).

2.6.2.2 Kebutuhan Memori

Metode kompresi yang baik adalah metode kompresi yang mampu mengompresi file
menjadi ukuran yang paling minimal. Algoritma pemampatan yang baik akan
menghasilkan memori yang dibutuhkan untuk menyimpan hasil kompresi yang
berkurang secara berarti. Biasanya semakin besar persentase pemampatan makin kecil
kebutuhan memori yang diperlukan sehingga kualitas citra makin kurang. Dan
sebaliknya, makin kecil persentasenya citra yang dimampatkan makin bagus kualitas
hasil pemampatan tersebut.

2.6.2.3 Kualitas Pemampatan

Metode kompresi yang baik adalah metode kompresi yang mampu mengembalikan
citra hasil kompresi menjadi citra semula tanpa kehilangan informasi apapun.
Kalaupun ada informasi yang hilang akibat pemampatan, sebaiknya hal itu ditekan
seminimal mungkin. Semakin berkualitas hasil pemampatan, semakin besar memori
yang dibutuhkan. Sebaliknya, semakin jelek kualitas citra hasil pemampatan makin
kecil kebutuhan memori yang harus disediakan.
Kualitas citra hasil pemampatan dapat diukur secara kuantitatif menggunakan
besaran PSNR (Peak Signal to Noise Ratio). Semakin besar nilai PSNR maka citra
hasil pemampatan semakin mendekati citra aslinya, dengan kata lain semakin bagus
kualitas citra hasil pemampatan tersebut. Sebaliknya, semakin kecil nilai PSNR
semakin jelek kualitas citra hasil pemampatan. Rumus untuk menghitung PSNR
adalah sebagai berikut :

(2.4)

Universitas Sumatera Utara


15

Dimana MAX adalah nilai intensitas terbesar. Nilai MSE dihitung dengan
persamaan berikut :

Dalam hal ini, m dan n masing – masing adalah lebar dan tinggi citra, I dan K
masing – masing adalah nilai intensitas baris ke – i dan kolom ke – j dari citra hasil
pemampatan dan citra sebelum dimampatkan.PSNR mempunyai satuan decibel (dB).
Namun, ketika 2 (dua) buah citra identic, maka MSE akan bernilai 0, sehingga nilai
dari PSNR tidak dapat didefenisikan.

2.6.2.4 Format Keluaran

Format citra hasil kompresi yang baik adalah format citra yang cocok dengan
kebutuhan pengiriman dan penyimpanan.

2.7 Pendekatan Pada Proses Kompresi

Ada beberapa pendekatan pada proses kompresi diantaranya adalah


1. Pendekatan statistik
Pendekatan statistik yaitu pendekatan dengan menggunakan kompresi citra
yang didasarkan pada frekuensi kemunculan derajat keabuan pixel di dalam
seluruh bagian citra.Contoh metode yang menggunakan pendekatan statistic
yaitu Huffman Coding, Aritmatik dll.
2. Pendekatan Ruang
Pendekatan ruang yaitu pendekatan dengan menggunakan kompresi citra yang
didasarkan pada hubungan special antara pixel – pixel didalam suatu kelompok
yang memiliki derajat keabuan yang sama didalam suatu daerah di dalam citra.
Contoh yang menggunakan pendekatan ruang yaitu Run Length Encoding.
3. Pendekatan Kuantisasi

Universitas Sumatera Utara


16

Pendekatan kuantisasi yaitu pendekatan dengan menggunakan kompresi citra


yang didasarkan dengan mengurangi jumlah derajat keabuan yang tersedia.
Contoh metode yang menggunakan pendekatan kuantisasi yaitu metoe
kompresi kuantisasi.
4. Pendekatan Fraktal
Pendekatan fractal yaitu pendekatan dengan menggunakan kompresi citra yang
didasarkan pada kenyataan bahwa kemiripan bagian – bagian didalam citra
dapat di eksploitasi dengan suatu matriks transformasi. Contoh metode yang
menggunakan pendekatan fractal adalah Fractal Image Compression.

2.8 Run Length Encoding (RLE)

RLE (Run Length Encoding) adalah kompresi umum yang digunakan untuk data
grafis (citra). Kompresi citra ini menggunakan RLE berdasarkan pada pengamatan
bahwa suatu pixel dalam suatu citra akan memiliki nilai yang cenderung sama dengan
nilai pixel tetangganya. Gambar digital terdiri dari titik-titik kecil yang disebut
pixel.setiap pixel dapat berupa satu bit, menunjukkan bahwa sebuah titik hitam atau
putih, atau beberapa bit, serta menunjukkan salah satu dari beberapa warna atau abu-
abu.
kita asumsikan bahwa pixel disimpan dalam sebuah array yang disebut bitmap
dalam memori, sehingga bitmap adalah input stream untuk foto tersebut. Pixel
biasanya diatur dalam bitmap yang berada didalam scan lines, sehingga pixel bitmap
pertama adalah titik di sudut kiri atas gambar, dan pixel terakhir adalah salah satu di
sudut kanan bawah. Mengompresi gambar menggunakan RLE didasarkan pada
pengamatan bahwa jika kita memilih pixel dalam gambar secara acak, ada kesempatan
baik bahwa tetangga akan memiliki warna yang sama. Sehingga compressor scan baris
demi baris bitmap, mencari warna yang sama. ukuran aliran dikompresi tergantung
pada kompleksitas gambar. Secara lebih detail, semakin buruk kompresi (D, Salomon,
2004).
Metode yang disebut RLE memberikan hasil terbaiknya apabila data yang
dikompresi tersusun atas rangkaian – rangkaian panjang bit dengan nilai yang sama.
Memang, run length encoding adalah suatu proses mengganti rangkaian bit semacam
itu dengan suatu kode yang mengindikasikan nilai apa yang berulang dan berapa kali

Universitas Sumatera Utara


17

pengulangan itu terjadi. Sebagai contoh, lebih sedikit ruang yang dibutuhkan untuk
menginformasikan bahwa suatu pola bit tersusun atas 253 bit 1, diikuti 118 bit 0,
diikuti 87 bit 1 dari pada yang dibutuhkan untuk menguraikan satu persatu seluruh
458 bit tersebut. Dalam beberapa kasus informasi yang akan diolah tersusun atas blok-
blok data, dimana masing- masing blok hanya sedikit berbeda dari blok yang muncul
sebelumnya (Brookshear, J,G, 2003).
RLE juga dapat digunakan untuk melakukan kompresi pada citra grayscale.
Setiap deret pixel dengan intensitas yang sama akan dikompres menjadi sepasang nilai
yang masing- masing mewakili banyaknya nilai pixel yang sama dan kemudian diikuti
dengan nilai pixelnya. Berikut diberikan suatu citra grayscale 8 bit dengan nilai
sebagai berikut.
12,12,12,12,12,12,12,12,12,12,35,76,112,87,87,87,87,5,5,5,5,5,5,1,...
Hasil kompresinya menjadi :
10, 12, 35, 76, 112, 4, 87, 6, 5, 1,...
Catatan : nomor dengan garis bawah menyatakan banyaknya pixel dengan nilai
ditunjukkan oleh nomor berikutnya.
Tentu resolusi dari citra bitmap yang akan dikompresi harus disimpan dan
biasanya dilakukan pada awal output. Ukuran dari hasil kompresi tergantung dari
kompleksitas citra. Semakin heterogen (detail) citra yang akan dikompresi maka
makin jelek hasil kompresinya, demikian pula bila semakin homogen citra yang
dikompresi maka hasil kompresi akan lebih baik.
Permasalahan dari RLE adalah untuk membedakan angka yang menyatakan
banyaknya nilai suatu pixel dengan nilai itu sendiri.Beberapa langkah yang sering
ditempuh untuk menyelesaikan masalah diatas sebagai berikut.
1. Jika citra grayscale memiliki nilai maksimum 128 bit maka 1 bit pada setiap
byte dapat digunakan untuk membedakan byte nilai grayscale atau nilai yang
menyatakan jumlah.
2. Jika citra grayscale dengan nilai maksimum 256, maka nilai tersebut dapat
dikurangi menjadi 255 dengan 1 nilai disiapkan sebagai penanda. Misalkan
saja nilai penanda tersebut adalah 255, maka deret diatas menjadi :
255, 10, 12, 35, 76, 112, 255, 4, 87, 255, 6, 5, 1,...
3. Solusi ketiga adalah 1 bit dari setiap byte disiapkan sebagai penunjuk byte
tersebut merupakan nilai intensitas atau banyaknya pixel. Namun pada solusi

Universitas Sumatera Utara


18

ini 1 bit ekstra tersebut disisipkan kedalam deret 8 bit. Deret bit ekstra tersebut
kemudian diikuti atau didahului oleh nilai- nilai yang menyatakan intensitas
dan banyaknya pixel. Contoh :
[10], 12, 35, 76, 112, [4], 87, [6], 5, 1,...

[10000101], 10, 12, 35, 76, 112, 4, 87, 6, [100...], 5, 1,...

Ukuran total dari bit ekstra adalah 1/8 dari total output. Sehingga terjadi
peningkatan dari hasil kompresi sebelumnya sejumlah 12,5%.
4. Solusi keempat adalah menggunakan nilai negatif dari selisih antara nilai
intensitas dan banyaknya pixel yang ditempatkan setelah deretan intensitas dan
banyaknya pixel.
Contoh :
[10], 12,35, 76,...
[10], 12, -2, 35, 76, ...

Pada citra berwarna Red Green Blue (RGB), teknik kompresi RLE diatas dapat
dilakukan secara terpisah pada masing- masing komponen ruang warna (R, G, dan B)
(D, Putra. 2010 : 285).
Run Length Encoding adalah algoritma kompresi yang didukung oleh format
file bitmap, seperti TIFF, BMP, dan PCX. RLE cocok untuk mengkompresi semua
jenis data, tetapi isi data akan mempengaruhi rasio kompresi yang dicapai oleh RLE.
Meskipun algoritma RLE tidak dapat mencapai rasio kompresi yang tinggi dari
metode yang lebih maju, RLE sangat mudah dan baik untuk menerapkan dengan cepat
untuk mengeksekusi, membuatnya menjadi alternatif yang baik untuk menggunakan
algoritma kompresi yang kompleks. RLE bekerja dengan mengurangi ukuran fisik
dari string karakter yang berulang. String ini berulang, biasanya dikodekan menjadi
dua byte. Byte pertama merupakan jumlah karakter dalam menjalankan dan disebut
run count. Dalam praktek,suatu kode dijalankan dapat berisi 1 -128 atau 256 karakter,
hitungan berjalan biasanya berisi sebagai jumlah karakter minus satu (nilai dikisarkan
dari 0 sampai 127 atau 255). Byte kedua adalah nilai dari karakter dalam jangka, yang
dikisarkan dari 0 sampai 255 dan disebut run value.

Universitas Sumatera Utara


19

Terkompresi, karakter menjalankan 15 sebuah karakter biasanya membutuhkan 15


byte untuk menyimpan :

AAAAAAAAAAAAAAA
String yang sama setelah pengkodean RLE hanya memerlukan dua byte :
15A
Kode 15A dihasilkan untuk mewakili karakter string yang disebut paket
RLE.Disini, byte pertama 15 adalah run count dan berisi jumlah pengulangan. Byte
kedua A, adalah run value dan berisi nilai berulang yang dijalankan. Sebuah paket
baru dihasilkan setiap kali perubahan karakter berjalan, atau setiap kali jumlah
karakter dalam menjalankan hitungan maksimum. Asumsikan bahwa 15 karakter
string kita sekarang berisi empat karakter yang berbeda sedang berjalan.
AAAAAAbbbXXXXXt
Menggunakan RLE ini dapat dikompresi menjadi empat 2-byte paket :
6A3b5X1t
Jadi setelah RLE, string 15 –byte akan membutuhkan hanya delapan byte data
untuk mewakili string, yang bertentangan dengan 15 byte asli. Dalam hal ini, RLE
menghasilkan rasio kompresi hampir 2 sampai 1.
Yang merupakan juga salah satu algoritma kompresi data yang memanfaatkan
karakter- karakter berulang secara berurutan pada data yaitu dengan mengkodekan
sebuah string yang terdiri dari jumlah perulangan karakter yang terjadi, diikuti dengan
sebuah karakter yang berulang tersebut. Dengan demikian, keberhasilan algoritma
RLE ini ditentukan oleh banyaknya karakter yang berulang.
1. By Repititions
Pilihan lain untuk mengurangi effort coding karakter kontrol pada data asli
ialah menterjemahkan dua simbol identic yang diikuti oleh symbol lainnya
sebagai indentificator ketika dijalankan.
Uncoded Code
cde cde
cdde cdd0e
cddde cdd1e
cdddde cdd2e
cddddde cdd3e

Universitas Sumatera Utara


20

Menurut metode ini kompresi akan selalu memburuk setiap kali


pasangan dua simbol yang identik muncul. Hal ini sering terjadi dalam
kasus data asli (tt, ss, nn, dll) atau jenis tertentu dalam data grafis (pola).
Jadi masalah ini akan menjadi kekurangan dari pemilihan yang harus
dihindari secara efektif.

2.9 Varian dari RLE

Ada sejumlah varian run-length encoding. Data citra biasanya run-length encoded
dalam proses sekuensial yang memperlakukan data gambar sebagai aliran 1D, bukan
sebagai peta 2D data. Dalam pengolahan sekuensial, bitmap dikodekan mulai di sudut
kiri atas dan melanjutkan dari kiri ke kanan di setiap garis pindai (sumbu X) ke sudut
kanan bawah bitmap (ditunjukkan dalam Gambar 9-2, a). Tapi skema RLE alternatif
juga dapat ditulis untuk menyandikan data di sepanjang bitmap (sumbu Y) sepanjang
kolom (ditunjukkan dalam Gambar 9-2, b), untuk menyandikan bitmap menjadi
keramik 2D (ditunjukkan dalam Gambar 9-2 , c), atau bahkan untuk mengkodekan
piksel pada diagonal secara zig-zag (ditunjukkan dalam Gambar 9-2, d). RLE varian
aneh seperti yang terakhir ini mungkin digunakan dalam aplikasi yang sangat khusus
namun biasanya cukup langka.

Universitas Sumatera Utara


21

Gbr. Varian A Gbr. Varian B

Gbr. Varian C Gbr. Varian D

Gambar 2.2Varian RLE

2.10 Bahasa Pemrograman C

Akar dari bahasa C adalah dari bahasa BCPL yang dikembangkan oleh Martin
Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang
kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970.
Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar
tahun 1970-an di Bell Telephone Laboratories Inc (sekarang adalah AT&T Bell
Laboratories). Bahasa C pertama kali digunakan di komputer Digital Equipment
Corporation PDP-11 yang menggunakan sistem operasi UNIX.

Universitas Sumatera Utara


22

C adalah bahasa yang standar, artinya suatu program yang ditulis dengan versi
bahasa C tertentu akan dapat dikompilasi dengan versi bahasa C yang lain dengan
sedikit modifikasi. Standar bahasa C yang asli adalah standar dari UNIX. Patokan dari
standar UNIX ini diambilkan dari buku yang ditulis oleh Brian Kerninghan dan
Dennis Ritchie berjudul “ The C Programming Language”, diterbitkan oleh Prentice-
Hall tahun 1978. Deskripsi C dari Kerninghan dan Ritchie ini kemudian dikenal
secara umum sebagai “K & R C “.
Kepopuleran bahasa C membuat versi- versi dari bahasa ini banyak dibuat
untuk komputer mikro. Untuk membuat versi- versi tersebut standar ANSI (American
National Standar Institute) membentuk suatu komite (ANSI committe X3J11) pada
tahun 1983 yang kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI
ini didasarkan dari standar UNIX yang diperluas. Standar ANSI menetapkan sebanyak
32 buah kata- kata kunci (keywords) standar. Versi- versi bahasa C yang menyediakan
paling tidak 32 kata- kata kunci ini dengan syntak yang sesuai dengan yang ditentukan
oleh standar, maka dapat dikatakan mengikuti standar ANSI. Ke 32 kata- kata kunci
ini adalah auto, break, case, char, const, continue, default, do, double, else,enum,
extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct,
switch, typedef, union, unsigned, void, volatile, dan while.
Contoh versi bahasa C yang mengikuti standar ANSI adalah bahasa Turbo C
oleh Borland International.Turbo C menyediakan 39 kata kunci, diantaranya 32 buah
mengikuti standar ANSI. Selain Turbo C, versi bahasa C lainnya yang populer di
komputer mikro adalah Microsoft C, Microsoft Quick C dan Watcom C.
Ada beberapa alasan mengapa menggunakan bahasa C diantaranya adalah
1. Bahasa C tersedia hampir di semua jenis komputer
Bahasa C merupakan bahasa komputer yang tersedia baik di komputer mikro,
mini maupun komputer besar (mainframe computer).
2. Kode bahasa C sifatnya adalah portable.
Aplikasi yang ditulis dengan bahasa C untuk suatu komputer tertentu dapat
digunakan di komputer lain hanya dengan modifikasi yang sedikit saja.
3. Bahasa C menyediakan sedikit kata- kata kuci
Telah disebutkan bahwa bahasa C standar ANSI hanya menyaratkan sebanyak
32 kata- kata kunci saja dan Turbo C hanya menyediakan 39 kata kunci.
Bandingkanlah dengan bahasa- bahasa yang lain yang menyediakan ratusan

Universitas Sumatera Utara


23

kata- kata kunci. Semakin sedikit kata- kata kunci yang digunakan di suatu
bahasa, semakin mudah bagi pemakai untuk mempelajari dan menggunakan
bahasa tersebut. Dengan menyediakan sedikit kata- kata kunci ini, bukan
berarti bahasa C menjadi kurang handal dibandingkan dengan bahasa- bahasa
lainnya yang menyediakan lebih banyak kata- kata kunci. Kehandalan dari
bahasa C dicapai dengan cara yang lain, yaitu dengan fungsi- funsi pustaka.
4. Proses executable program bahasa C lebih cepat.
Karena philosopi dari bahasa C yang menyediakan sedikit kata- kata kunci,
maka konsekuensinya program hasil dari kompilasi bahasa C relatif akan lebih
cepat prosesnya dibandingkan dengan bahasa lain.
5. Dukungan pustaka yang banyak
Telah disebutkan bahwa kehandalan bahasa C dicapai dengan fungsi- fungsi
pustakanya. Fungsi- fungsi pustaka ini disediakan oleh versi- versi bahasa C
masing- masing atau dapat dibeli dari sumber yang lain. Ribuan fungsi- fungsi
pustaka C telah tersedia di pasaran sampai sekarang, mulai dari fungsi- fungsi
pustaka yang sederhana sampai dengan yang rumit, misalnya fungsi pustaka
untuk membuat indeks dari file database menggunakan metode B+ tree seperti
yang digunakan di dBASE. Dengan demikian, seorang programmer bahasa C
tidak perlu membuat fungsi- fungsi yang rumit, tetapi seorang pemrograman C
dapat membeli fungsi- fungsi pustaka dan menggabungkannya kedalam
program yang dibuat. Seringkali fungsi- fungsi pustaka ini disebut tools (alat-
alat). Fungsi- fungsi pustaka atau tools ini kemudian dapat disimpan disuatu
file tertentu sebagai suatu pustaka (library) yang kemudian sering disebut juga
dengan istilah kotak alat (tool-box).
6. C adalah bahasa yang terstruktur
Bahasa C mempunyai struktur yang baik sehingga mudah untuk dipahami.C
disebut dengan bahasa yang terstruktur karena menggunakan fungsi- fungsi
sebagai program- program bagiannya. Struktur bahasa yang baik, selain mudah
dipelajari juga memudahkan dalam pembuatan program, memudahkan
pelacakan kesalahan program dan akan menghasilkan dokumentasi program
yang baik.
7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat
menengah

Universitas Sumatera Utara


24

Pada awalnya, bahasa C sudah digunakan untuk membuat program- program


perangkat lunak sistem.Yang termasuk program- program perangkat lunak
sistem diantaranya adalah sistem operasi, interpreter, kompiler, bahasa perakit,
bahasa pemrograman dan DBMS (Database Management System). Sistem
operasi UNIX ditulis dengan bahasa C. DBMS dbase juga ditulis dengan
bahasa C. Untuk mempunyai kemampuan seperti ini, bahasa C
menggabungkan kemampuan bahasa tingkat tinggi (high level language)
dengan bahasa tingkat rendah (low level language) dengan hasilnya adalah
bahasa tingkat menengah. Sebagai bahasa tingkat menengah, C menyediakan
kemampuan seperti yang disediakan oleh perkait untuk operasi- operasi bit,
byte, alamat- alamat memory, register, BIOS (Basic Input Output System),
DOS (Disk Operating System), dan lain sebagainya.
8. Bahasa C adalah kompiler
Karena bahasa C sifatnya adalah kompiler, maka akan menghasilkan
executable program yang banyak dibutuhkan oleh program- program
komersial. Program- program yang akan dijual dipasar, biasanya dalam bentuk
executable program supaya prosesnya dapat lebih cepat dan program sudah
dalam bentuk bahasa mesin yang tidak dapat dilihat kode program sumbernya
(Hartono,J. 2003 : hal 1).

Untuk membuat suatu data menjadi lebih kecil dibanding aslinya perlu adanya
tahapan (algoritma) untuk mengolah data tersebut. Menurut Thomas H. Cormen (2001
:2) algoritma adalah suatu prosedur komputasi yang didefinisikan secara baik,
membutuhkan sebuah atau sekumpulan nilai sebagai input, dan menghasilkan sebuah
atau sekumpulan output.

2.11 UML (Unified Modeling Language)

UML adalah sebuah bahasa yang telah menjadi standar dalam industry untuk
visualisasi, merancang dan mendokumentasikan sistem piranti lunak.Abstraksi konsep
dasar UML yang terdiri dari structural classification, dynamic behavior, dan model
management. Ada beberapa diagram yang akan dipakai pada sistem yang dibuat, yaitu
usecase diagram dan activity diagram.

Universitas Sumatera Utara


25

2.11.1 Use case Diagram

Diagram yang menggambarkan interaksi antara sistem dengan sistem eksternal dan
pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan
menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi
dengan sistem. Pemodelan ini mengidentifikasi dan menggambarkan fungsi- fungsi
sistem dengan menggunakan alat yang disebut use case. Use case merupakan suatu
scenario dimana didalamnya terdapat symbol use case , actor dan relationship.
Use case diawali atau dipicu oleh pengguna eksternal yang dinamakan
actor/pelaku.Pelaku menginisiasi kegiatan sistem,yakni sebuah use case. Dengan kata
lain actor bertugas melakukan segala sesuatu untuk berinteraksi dengan sistem sebagai
pertukaran informasi. Untuk symbol use case sebagai urutan langkah – langkah yang
secara tindakan saling terkait, baik terotomatisasi maupun secara manual sebagai
pelengkap. Dan untuk relationship uses atau include biasanya satu atau lebih use case
yang melakukan berbagai langkah fungsionalitas yang identic.

2.11.2 Activity Diagram

Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing –masing alir berawal, decision yang mungkin terjadi,
dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses
parallel yang mungkin terjadi pada beberapa eksekusi.
Activity diagram merupakan state khusus, dimana sebagian besar state adalah
action dan sebagian besar transisi di-trigger oleh state sebelumnya (internal
processing). Oleh karena itu activity diagram tidak menggambarkan behavior internal
sebuah sistem (dan internal antar subsistem) secara eksak, tetapi lebih
menggambarkan proses – proses dan jalur – jalur aktivitas dari level atas secara
umum.

Universitas Sumatera Utara


26

2.12 Teknik Pengambilan Sample

Untuk kebutuhan penelitian ini, peneliti akan mengambil sample gambar berformat
.BMP dan .RLE dari beberapa orang dengan menggunakan metode Simple Random
Sampling. Berdasarkan Roscoe (1975) dikatakan bahwa ukuran sample yang layak
dan baik digunakan dalam penelitian ini adalah antara 30 sampai dengan 500. Untuk
itu, jumlah sample yang digunakan pada penelitian ini berjumlah 30 orang.

Universitas Sumatera Utara

Anda mungkin juga menyukai