Pencitraan Digital

Embed Size (px)

Citation preview

  • 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