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
sebanyak
kombinasi
warna
. 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 -
2.6.2
) × 100%
(2.3)
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 abuabu. 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 blokblok 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 PrenticeHall 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 (alatalat). 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