bab 2 landasan teori -...

25
8 BAB 2 LANDASAN TEORI Dalam bab ini akan dijelaskan teori-teori yang akan dipakai untuk merancang program aplikasi ini. Metode yang dipakai adalah arithmetic coding. Dalam bab ini juga diuraikan tentang definisi yang mencakup citra digital, kompresi, encoding dan decoding, teori-teori umum kompresi data, serta algoritma arithmetic coding. Setiap isi dari setiap sub-bab memiliki hubungan satu sama lain, maka itu untuk lebih jelaskan dapat dilihat di bawah ini : 2.1 Citra Digital Citra digital adalah hasil penangkapan suatu objek fisik menggunakan peralatan pencitraan digital, dimana setiap bagian dari gambar tersebut direpresentasikan dalam bentuk pixel (picture elements). Suatu citra digital dapat diedit, dimanipulasi, dikirim, dihapus, di-copy atau dimasukkan ke berkas komputer lainnya atau ke halaman web. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan dalam pita magnetik. Komputer hanya dapat bekerja dengan bilangan numerik yang berhingga, sehingga gambar harus diubah ke dalam bentuk bilangan numerik berhingga (gambar digital) sebelum diproses dalam suatu komputer. Untuk mengubah gambar yang bersifat kontinu menjadi gambar digital diperlukan proses pembuatan kisi-kisi arah horizontal

Upload: letram

Post on 05-Aug-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

8

BAB 2

LANDASAN TEORI

Dalam bab ini akan dijelaskan teori-teori yang akan dipakai untuk merancang

program aplikasi ini. Metode yang dipakai adalah arithmetic coding. Dalam bab ini juga

diuraikan tentang definisi yang mencakup citra digital, kompresi, encoding dan

decoding, teori-teori umum kompresi data, serta algoritma arithmetic coding.

Setiap isi dari setiap sub-bab memiliki hubungan satu sama lain, maka itu untuk

lebih jelaskan dapat dilihat di bawah ini :

2.1 Citra Digital

Citra digital adalah hasil penangkapan suatu objek fisik menggunakan peralatan

pencitraan digital, dimana setiap bagian dari gambar tersebut direpresentasikan dalam

bentuk pixel (picture elements). Suatu citra digital dapat diedit, dimanipulasi, dikirim,

dihapus, di-copy atau dimasukkan ke berkas komputer lainnya atau ke halaman web.

Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa

foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi,

atau bersifat digital yang dapat langsung disimpan dalam pita magnetik.

Komputer hanya dapat bekerja dengan bilangan numerik yang berhingga,

sehingga gambar harus diubah ke dalam bentuk bilangan numerik berhingga (gambar

digital) sebelum diproses dalam suatu komputer. Untuk mengubah gambar yang bersifat

kontinu menjadi gambar digital diperlukan proses pembuatan kisi-kisi arah horizontal

Page 2: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

9

dan vertikal, sehingga diperoleh gambar dalam bentuk array dua dimensi. Proses

tersebut dikenal sebagai proses digitalisasi atau sampling.

Gambar dapat direpresentasikan dengan array dua dimensi, dimana setiap elemen

array dikenal sebagai elemen gambar (pixel). Pembagian suatu gambar menjadi sejumlah

pixel dengan ukuran tertentu ini akan menentukan resolusi spatial (derajat kehalusan)

yang diperoleh. Semakin kecil ukuran pixelnya, maka akan semakin halus gambar yang

diperoleh, karena informasi yang hilang akibat pengelompokan tingkat keabuan pada

proses pembuatan kisi-kisi akan semakin kecil. Angka pada gambar digital

menggambarkan bagaimana setiap pixel menggambarkan kecerahan (brightness) gambar

tersebut pada titik yang bersangkutan.

Proses lain yang dilakukan dalam suatui gambar digital adalah proses kuantisasi

(quantization). Dalam proses ini tingkat keabuan setiap pixel dinyatakan sebagai suatu

harga integer. Batas-batas harga integer atau besarnya daerah tingkat keabuan yang

digunakan yang digunakan untuk menyatakan tingkat keabuan pixel akan menentukan

resolusi kecerahan dari gambar yang diperoleh. Kalau digunakan 3 bit untuk menyimpan

harga integer tersebut, maka akan diperoleh sebanyak 8 tingkat keabuan.

Seluruh tahapan konversi di atas dikenal sebagai konversi analog ke digital, yang

biasanya akan menyimpan hasil suatu proses pada memori gambar. Sebaliknya, sebagai

hasil suatu proses pengolahan gambar digital, kadang-kadang perlu mengeluarkan

gambar dari memori gambar ke bentuk peragaan pada monitor televisi atau ke bentuk

cetakan foto. Proses konversi balikan ini dikenal sebagai konversi digital ke analog.

Page 3: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

10

2.1.1 Format File

Citra-citra digital sebaiknya disimpan dalam tiga jenis format utama, dengan tipe

format dan level resolusi yang berbeda-beda. Berikut ini beberapa jenis format yang

dipergunakan:

a. TIFF (Tagged Image File Format), merupakan format penyimpanan yang tidak

mengkompresi citra digital dan oleh karenanya tidak menanggalkan atau kehilangan

informasi dari penangkapan digital asli. Biasanya digunakan untuk citra-citra digital

master. TIFF merupakan format file yang disukai karena dirancang untuk semua

platform dan dapat ditempatkan di berbagai tempat. Program pengeditan citra digital

yang dibuat pada sepuluh tahun terakhir dapat membuka TIFF sehingga format ini

dapat bertahan dalam jangka waktu yang lama.

b. BMP (Windows Bitmap), biasanya digunakan oleh aplikasi dan sistem operasi

Microsoft Windows.

c. JPEG (Joint Photographic Experts Group), merupakan format yang dikompresi

dan menanggalkan beberapa informasi pixel sehingga citra digital dapat disimpan

dalam ukuran simpan yang lebih sedikit. Seringkali digunakan untuk citra-citra

digital akses dan thumbnail yang akan dipresentasikan melalui web.

d. GIF (Graphic Image File Format) merupakan format yang dikompresi dan

menanggalkan beberapa informasi piksel sehingga citra digital dapat disimpan dalam

ukuran simpan yang lebih sedikit. Seringkali digunakan untuk citra-citra digital

akses dan thumbnail yang akan dipresentasikan melalui web. Sangat tepat untuk

citra-citra digital dengan bidang yang besar dengan satu atau beberapa warna.

e. PNG (Portable Network Graphic), merupakan format penyimpanan yang

dikompresi namun tidak menanggalkan beberapa informasi pixel. Memiliki warna

Page 4: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

11

24-bit namun tidak memungkinkan untuk menyimpan metadata seperti yang

dilakukan pada TIFF dan JPEG. Format ini masih relatif baru dan masih belum

didukung oleh semua peranti pemandang citra (image viewers).

f. JPEG 2000, merupakan format yang tidak berkaitan dengan JPEG umumnya.

Menggunakan alogaritma kompresi dengan suatu pilihan untuk tidak menghilangkan

informasi pixel. Format ini masih dalam proses pengkajian dan belum banyak

tersedia.

2.2 Kompresi

Kompresi gambar merupakan proses untuk mengurangi jumlah bit-bit data yang

merepresentasikan suatu gambar. Ada dua jenis kompresi gambar yang memberikan

hasil yang merupakan replica dari gambar awal (lossless compression) dan kompresi

yang merupakan pendekatan terhadap gambar awal (loosy compression). Format yang

umum digunakan saat ini adalah JPEG yang umumnya digunakan untuk gambar hasil

fotografi dan GIF yang digunakan untuk gambar dengan bentuk geometri yang

sederhana.

Gambar yang merupakan hasil fotografi memiliki ukuran yang cukup besar

karena memiliki gradient warna yang tinggi dan sudut-sudut kompleks dan bersifat

loosy. Kompresi gambar memanfaatkan kelebihan atau persepsi manusia terhadap

gambar visual. Persepsi manusia tidak terlalu sensitif terhadap gangguan frekuensi tinggi

dengan intensitas rendah, namun peka terhadap perubahan warna. Hal ini menyebabkan

bit-bit data yang tidak berguna dapat dihilangkan untuk mengurangi ukurannya.

Page 5: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

12

2.2.1 Kompresi Lossless dan Lossy

Teknik kompresi pada citra ada 2, yaitu lossless dan lossy. Kompresi lossless dan

lossy merupakan istilah yang mendeskripsikan apakah seluruh informasi data dari suatu

file asli dapat dikembalikan ke seperti semula atau tidak pada proses dekompresi.

a. Lossy Compression

Kompresi loosy mengurangi suatu file secara permanen dengan

menghilangkan informasi tertentum, terutama informasi yang berlebih. Ketika file

tersebut didekompres, hanya sebagian informasi dari file asli yang masih ada. Teknik

ini mengubah detail dan warna pada file citra menjadi lebih sederhana tanpa terlihat

perbedaan yang mencolok dalam pandangan manusia, sehingga ukurannya menjadi

lebih kecil. Biasanya digunakan pada citra foto atau image lain yang tidak terlalu

memerlukan detail citra, dimana kehilangan bit rate foto tidak berpengaruh pada

citra.

b. Loseless Compression

Dengan kompresi lossless, setiap bit data pada file asli akan tetap setelah file

didekompres. Semua informasi dikembalikan secara lengkap, tidak ada satupun

informasi citra yang dihilangkan. Biasa digunakan pada citra medis. Metode

loseless: Run Length Encoding, Entropy Encoding (Huffman, Arithmetic), dan

Adaptive Dictionary Based (LZW).

Page 6: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

13

Gambar 2.1 Pembagian Metode Kompresi Data

2.3 Encoding dan Decoding

Pada umumnya pengompresan data terdiri dari dua proses yang digunakan dalam

program atau peralatan, yaitu :

a. Encoding

Encoding adalah suatu proses pada software atau hardware dimana program

atau peralatan melakukan pengkodean dalam format tertentu. Program atau peralatan

yang melakukan proses encoding disebut encoder atau coder. Dalam kompresi data,

file-file data yang akan diproses menggunakan program encoding. Bit-bit dalam file

aslinya akan di-encode dengan menggunakan algoritma pengompresan yang

diinginkan, sehingga ukuran hasil kompresi akan lebih kecil dari ukuran aslinya.

b. Decoding

Decoding adalah suatu proses pada software atau hardware dimana program

atau peralatan melakukan penguraian kode dari file hasil encoding. Program atau

peralatan yang melakukan proses decoding disebut decoder. Peralatan yang dapat

Page 7: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

14

melakukan proses encoding dan decoding disebut codec. Dalam proses decoding, file

hasil dari proses encoding akan dikembalikan ke bentuk aslinya dengan

menggunakan algoritma pengompresan.

2.4 Rasio Kompresi

Rasio kompresi digunakan untuk menjelaskan perbedaan antara sebuah file dan

file hasil kompresinya. Rasio tersebut memberikan indikasi seberapa besar kompresi itu

berhasil dicapai untuk suatu file tertentu. Salah satu cara pengekspresian angka rasio

kompresi yang digunakan yaitu rasio antara ukuran file dan output, contoh : “rasio

kompresi 4:1”. Cara pengeksspresian lain yang lebih banyak digunakan adalah dengan

menuliskannya dengan presentase dari 0% sampai 100%, dimana 100% digunakan

sebagai rasio kompresi yang terbaik.

⎟⎟⎠

⎞⎜⎜⎝

⎛×−= %100

_____%100

semulacitraukurankompresihasilcitraukuranRK

2.5 Teori-Teori Umum Kompresi Data

Beberapa teknik pengompresan data secara lossless yang dapat digunakan pada

berbagai tipe data yaitu :

a. Huffman Coding

Huffman Coding merupakan salah satu teknik pengompresan yang banyak

digunakan dan sangat popular. Teori pengkodean ini diciptakan oleh David A.

Huffman pada tahun 1952. Huffman Coding yaitu teknik pengompresian data yang

menempatkan Variable Length Codes (VLC) ke dalam simbol-simbol, sehingga

simbol-simbol yang sering muncul memiliki kode yang paling singkat. Pada

Page 8: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

15

pendekompresian simbol-simbol tersebut akan dikembalikan ukuran kode aslinya.

Ketika digunakan untuk mengompres text, contohnya, variable lengths codes

digunakan sebagai ganti kode-kode ASCII, dan karakter-karakter yang sering

muncul, biasanya spasi, e, dan t digunakan sebagai kode-kode terpendek. Dengan

cara ini jumlah total bit yang diperlukan untuk mentransmisikan data dapat

dipertimbangkan lebih sedikit dibandingkan dengan jumlah bit yang diperlukan jika

representasi ukuiran aslinya digunakan. Huffman Coding secara khusus lebih efektif

jika data didominasi oleh simbol-simbol yang kecil.

b. Lempel-Ziv Coding

Lempel-Ziv Coding menggunakan sebuah kamus simbol-simbol yang

berurutan. Ketika sebuah urutan tersebut diulang maka akan diganti dengan suatu

referensi ke posisinya dalam kamus tersebut. Ada beberapa variasi dari teknik

Lempel-Ziv Coding ini dan masing-masing berbeda terutama dalam pengaturan

kamus. Teknik kompresi data dari Lempel-Ziv yang paling terkenal yaitu Lempel-

Ziv-Welch.

c. Run Length Encoding

Run Length Encoding adalah suatu teknik kompresi yang menggantikan

simbol-simbol yang berurutan tersebut dengan simbol itu sendiri diikuti dengan

jumlah perulangan yang terjadi. Sebagai contoh, string 111110000003355 dapat

direpresentasikan dengan 15063252. Sudah jelas bahwa teknik kompresi ini sangat

berguna untuk simbol-simbol yang berurutan dan berulang, dan dengan demikian

kadang-kadang dapat berguna untuk file-file gambar dimana pixel-pixel gambar

tersebut mempunyai nilai yang sama, contohnya gambar kartun.

Page 9: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

16

d. Relative Encoding

Relative Encoding adalah suatu teknik transmisi yang mencoba untuk

membuktikan efisiensi dengan mentransmisikan perbedaan antara masing-masing

nilai dan predecessor-nya, ke tempat nilai itu sendiri. Dengan demikian, nilai-nilai

15106433003 akan ditransmisikan sebagai 1+4-4-1+6-2-1+0-3+0+3. Akibatnya

transmitter memprediksikan bahwa masing-masing nilai sama seperti predecessor-

nya dan data yang ditransmisikan merupakan perbedaan antara nilai hasil prediksi

dan nilai sebenarnya. Differential Pulse Code Modulation (DPCM) adalah contoh

dari relative encoding ini. Signal tersebut dapat mempunyai satu kemungkina dari

tujuh nilai (-3 sampai +3) dan dengan begitu akan membutuhkan 3 bit per sample.

Hanya 2 bit yang diperlukan untuk memperlihatkan hubungan antara sample-sample.

Pengkodean signal dengan cara ini menghasilkan reduksi 1/3 dalam jumlah bit.

e. Arithmetic Coding

Walaupun Huffman coding sangat efisien, teknik tersebut hanya optimal jika

kemungkinan simbol-simbol adalah 2n. Arithmetic coding tidak tergantung pada

kondisi tersebut dan biasanya lebih baik dibandingkan dengan teknik Huffman

coding yang lebih popular. Walaupun demikian arithmetic coding lebih kompleks.

Page 10: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

17

Tabel 2.1 Perbandingan Huffman Coding dengan Arithmetic Coding

Metode kompresi Arithmetic Huffman

Rasio kompresi Rendah (sangat bagus) Tinggi (buruk)

Kecepatan kompresi Lambat Cepat

Kecepatan dekompresi Lambat Cepat

Penyimpanan memori Sangat lambat Lambat

Penyusunan pola terkompresi Tidak Ya

Mengizinkan akses secara random Tidak Ta

2.6 Algoritma Arithmetic Coding

Pada umumnya, algoritma kompresi data melakukan penggantian satu atau lebih

simbol input dengan kode tertentu. Berbeda dengan cara tersebut, arithmetic coding

menggantikan satu deretan simbol input dengan sebuah bilangan floating point. Semakin

panjang dan semakin kompleks pesan yang dikodekan, semakin banyak bit yang

diperlukan untuk keperluan tersebut. Output dari arithmetic coding ini adalah satu angka

yang lebih kecil dari 1 dan lebih besar atau sama dengan 0. Angka ini secara unik dapat

di-decode sehingga menghasilkan deretan simbol yang dipakai untuk menghasilkan

angka tersebut. Untuk menghasilkan angka output tersebut, tiap simbol yang akan di-

encode diberi satu set nilai probabilitas.

Gagasan utama pada arithmetic coding adalah memberikan setiap simbol sebuah

range atau interval. Dimulai dengan range [0..1), setiap range dibagi dalam beberapa

subrange, dimana ukurannya sebanding dengan probabilitas (kemungkinan yang muncul

dari simbol-simbol yang sama). Semakin tinggi probabilitas yang dimiliki oleh suatu

Page 11: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

18

simbol, semakin tinggi pula range yang diberikan terhadap simbol tersebut. Tanda”[..)“

berarti bahwa angka yang didalamnya diikutsertakan kecuali angka terakhir.

Setelah menentukan range dan probabilitasnya, mulai dapat melakukan proses

encoding simbol-simbol, setiap simbol menentukan dimana output angka floating point

itu berada. Sebagai contoh, jika terdapat suatu message “tawa”, maka distribusi

probabilitasnya yaitu :

Tabel 2.2 Contoh Arithmetic Coding dengan Message “tawa”

Simbol Probability Range

a 2 [0.0,0.5)

t 1 [0.5,0.75)

w 1 [0.75,1.0)

Bagian yang paling penting pada proses encoding yaitu simbol pertama. Ketika

melakukan encoding dari message baca, simbol yang pertama adalah “t”. Agar simbol

pertama dapat di-decode dengan tepat, hasil dari encode message harus sebuah angka

lebih besar atau sama dengan 0.5 dan kurang dari 0.75. Apa yang dilakukan untuk

encoding angka ini yaitu tetap menjaga agar angka ini jatuh diantara range tersebut. Jadi

setelah simbol pertama di-encode, range terendah adalah 0.5 dan range tertinggi adalah

0.75.

Setelah simbol pertama di-encode, sudah dapat diketahui range untuk output

number yang dibatasi oleh low number dan high number. Apa yang terjadi selama proses

encoding yaitu bahwa setiap simbol baru untuk di-encode lebih lanjut akan membatasi

range dari output angka. Simbol selanjutnya untuk di-encode yaitu “a”, memiliki range

0.0 hingga 0.5. Jika itu merupakan angka pertama dalam message, maka akan diset low

Page 12: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

19

number dan high number langsung pada nilainya. Tetapi “a” adalah simbol kedua. Jadi

simbol “a” memiliki range yang sama dengan 0.0-0.5 dalam subrange yang baru 0.5-

0.75. Ini berarti angka hasil encode yang baru akan jatuh pada bagian yang ke-0 hingga

yang ke-50 dari range sebelumnya. Dengan logika ini didapatkan angka range 0.5

hingga 0.625.

a. Algoritma Encoding

Algoritma untuk menyelesaikan penghitungan output angka dari message tersebut

adalah:

1). Set Low number pada angka 0

2). Set High number pada angka 1

3). Lakukan perulangan hingga semua simbol terproses

Range = High – Low

High = Low + Range * Angka range tertinggi dari simbol yang sedang diproses

Low = Low + Range * Angka range terendah dari simbol yang sedang diproses

Dari hasil encoding keseluruhan untuk message “tawa” didapatkan:

Tabel 2.3 Hasil Encoding untuk Message “tawa”

Simbol Range Low number High number

0 1

t 1 0.5 0.75

a 0.25 0.5 0.625

w 0.125 0.59375 0.625

a 0.3125 0.59375 0.609375

Page 13: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

20

Jadi angka terakhir dari low number yaitu 0.59375 merupakan hasil output angka proses

encoding dari message “tawa”.

Setelah mengetahui pola encoding tersebut, maka dengan mudah dapat dilihat

bagaimana proses decoding bekerja. Dalam proses decoding ini pertama-tama temukan

simbol pertama yaitu dengan melihat output angka dari proses encoding itu jatuh pada

range simbol mana. Karena output angka 0.59375 jatuh pada range 0.5-0.75, dapat

diketahui bahwa simbol pertama adalah “t”. Kemudian yang harus dilakukan yaitu

mengeluarkan “t” yang telah ter-encode dengan cara membalikkan proses yang

menempatkannya. Pertama, dengan mengurangi high number dan low number yang

dimiliki simbol “t” untuk mendapatkan angka rangenya dan angka yang didapat yaitu

0.25. Selanjutnya mengurangi output angka encoding dengan angka range terendah

simbol “t” dan didapatkan angka 0.9375 untuk kemudian membagi angka tersebut

dengan range yang sebelumnya pernah didapat. Hasil yang didapat adalah 0.375.

langkah selanjutnya dengan memperhitungkan angka tersebut jatuh pada range simbol

mana, dan didapatkan simbol berikutnya yaitu “a”.

b. Algoritma Decoding

Algoritma untuk proses decoding yaitu :

1). Dapatkan angka encoded (pada variabel “Number”)

2). Dapatkan simbol dimana angka encoded (“Number”) berada dalam range-nya

3). Lakukan perulangan hingga semua simbol terproses.

Range = angka range tertinggi simbol – angka range terendah simbol

Number = Number - angka range terendah simbol

Number = Number / Range

Dari hasil proses decoding untuk message “tawa” dapat dilihat pada tabel berikut :

Page 14: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

21

Tabel 2.4 Hasil Decoding untuk Message “tawa”

Simbol Low Range High Range Range Number

t 0.5 0.75 0.25 0.59375

a 0 0.5 0.5 0.375

w 0.75 1 0.25 0.75

a 0 0.5 0.5 0

Ketika tidak ada lagi simbol yang tersisa untuk di-decode, untuk

menghentikannya yaitu dapat dengan menyediakan range kecil khusus untuk simbol

EOF (End of File). Tetapi dalam hal pengukuran encoding tidak dibutuhkan dan juga

sebagian besar kompresor tahu kapan harus berhenti.

Proses encoding pada metode arithmetic ini merupakan cara penyempitan range

angka suatu simbol dengan simbol yang baru. Range baru tersebut sebanding dengan

probabilitas yang diberikan pada simbol tersebut. Proses decoding adalah prosedur

kebalikannya, dimana range dikembangkan dalam perbandingan terhadap probabilitas

dari setiap simbol ketika diekstrak.

2.7 Dasar Perancangan Perangkat Lunak

Menurut Mahyuzir, perancangan merupakan proses penerapan bermacam-macam

teknik dan prinsip dengan tujuan mendefinisikan peralatan, proses atau sistem secara

rinci. Perancangan dilakukan pada tahap awal. Tujuan perancangan adalah menghasilkan

model yang akan dibuat. Perancangan perangkat lunak mengalami perubahan jika

didapatkan metode yang baru, analisis yang lebih baik dan penyusunan pengertian yang

lebih luas (Licyana Suryani, 2006).

Page 15: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

22

2.7.1 Fase Pengembangan dan Perancangan Perangkat Lunak

Menurut Mahyuzir, fase pengembangan perangkat lunak terdiri dari tiga langkah

yang jelas, yaitu (Licyana Suryani, 2006):

a. Perancangan

Metodologi perancangan terdiri dari:

1). Perancangan data yang terfokus pada pendefinisian struktur data.

2). Perancangan arsitektur yang mendefinisikan hubungan antara elemen yang

utama dari struktur program.

3). Perancangan prosedural yang merupakan transformasi elemen dari struktur

program ke dalam deskripsi prosedural perangkat lunak.

b. Membuat source code

c. Uji coba

Setelah melalui tiga langkah di atas, maka dilakukan perpaduan perangkat lunak

dan validasi.

Rekayasa piranti lunak menurut Fritz Bauer adalah penetapan dan pemakaian

prinsip-prinsip rekayasa dalam rangka mendapatkan piranti lunak yang ekonomis yaitu

terpercaya dan bekerja efisien pada mesin (komputer) (Hendra Prasetyo, 2009).

Rekayasa piranti lunak menurut Pressman adalah suatu pembentukan dan

penggunaan prinsip-prinsip rekayasa dengan tujuan menghasilkan suatu perangkat lunak

yang ekonomis dan dapat diandalkan serta dapat bekerja secara efisien pada mesin yang

sesungguhnya. Pada dasarnya rekayasa piranti lunak meliputi tiga elemen kunci yaitu

(Eka Janitra, 2009):

Page 16: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

23

a. Methods (metode)

Mengenai bagaimana membangun suatu perangkat lunak, di mana metode

terdiri dari beberapa tugas yaitu perencanaan proyek dan estimasi, analisis kebutuhan

perangkat lunak, perancangan struktur data, arsitektur program, prosedur algoritma,

pengkodean, testing dan pemeliharaan.

b. Tools (alat bantu)

Tools menyediakan dukungan baik secara otomatis maupun semi otomatis

untuk metode. Tools diintegrasikan dengan tujuan informasi yang dihasilkan oleh

suatu tools dapat digunakan oleh tools lainnya.

c. Procedures (prosedur)

Procedures merupakan perekat antara metode. Tools dan procedures juga

memungkinkan pembangunan perangkat lunak secara rasional dan berkala.

2.7.2 Classic Life Cycle

Dalam membuat suatu program aplikasi terdapat beberapa paradigma atau model

proses, satu di antaranya adalah classic life cycle atau yang biasa dikenal dengan

waterfall model. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun

1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak

dipakai di dalam pembuatan program. Model ini disebut dengan waterfall karena tahap

demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan

berurutan (Yolanda, 2009).

Terdapat 6 tahapan dalam model waterfall. Berikut adalah penjelasan dari tahap-

tahap yang dilakukan di dalam model ini (Yolanda, 2009):

Page 17: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

24

a. Analisis dan perancangan sistem

Pemodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem

yang akan diaplikasikan ke dalam program aplikasi. Hal ini sangat penting,

mengingat program aplikasi harus dapat berinteraksi dengan elemen-elemen yang

lain seperti hardware, database, dsb. Tahap ini sering disebut dengan project

definition.

b. Analisis kebutuhan

Proses pengumpulan elemen sistem ditingkatkan dan dipusatkan secara

khusus untuk mengerti karakteristik dari program yang akan dibuat. Kebutuhan

maupun sistem harus dibicarakan bersama dengan pelanggan.

c. Perancangan

Proses perancangan menerjemahkan kebutuhan elemen sistem yang

direpresentasikan ke dalam sebuah blueprint yang dapat diperkirakan kualitasnya

sebelum dilakukan pengkodean.

d. Pengkodean

Untuk dapat dimengerti oleh komputer, maka desain tadi harus diubah

bentuknya menjadi bentuk yang dapat dimengerti oleh komputer, yaitu ke dalam

bahasa pemrograman melalui proses pengkodean. Tahap ini merupakan

implementasi dari tahap desain yang secara teknis nantinya dikerjakan oleh

programmer.

e. Pengujian

Pengujian dilakukan untuk memastikan hasilnya sesuai dengan kebutuhan

yang sudah didefinisikan sebelumnya.

Page 18: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

25

f. Pemeliharaan

Pemeliharaan suatu program diperlukan karena program yang dibuat tidak

selamanya hanya seperti itu. Pengembangan merupakan salah satu bagian dari

pemeliharaan. Pengembangan terjadi untuk memperbaiki error kecil yang tidak

ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada

program tersebut.

Gambar 2.2 Life Cycle Model Waterfall

Model ini menjadi terkenal karena pengaplikasian yang mudah, dan ketika semua

kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal proyek,

maka pembuatan program dapat berjalan dengan baik dan tanpa masalah. Tetapi karena

model ini melakukan pendekatan secara berurutan, maka ketika suatu tahap terhambat,

tahap selanjutnya tidak dapat dikerjakan dengan baik dan hal itu menjadi salah satu

kekurangan dari model ini. Kesimpulannya adalah ketika suatu proyek skalanya sedang

mengarah kecil cocok menggunakan model ini, akan tetapi bila mengerjakan proyek

yang besar, tampaknya akan kesulitan jika menggunakan model waterfall ini (Yolanda,

2009).

Page 19: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

26

Fase pengembangan menerapkan 75% atau lebih biaya dalam perekayasaan

perangkat lunak. Keputusan yang diambil akan mempengaruhi keberhasilan penerapan

dan mengurangi pekerjaan pada fase pemeliharaan. Hal yang terpenting dalam

perancangan perangkat lunak adalah kualitas. Perancangan menyediakan gambaran atau

model yang dapat dinilai segi kualitasnya. Perancangan perangkat lunak merupakan

landasan untuk seluruh fase pengembangan dan pemeliharaan. Tanpa perancangan, akan

dihasilkan sistem yang tidak stabil (Licyana Suryani, 2006).

2.7.3 Proses Perancangan

Perancangan perangkat lunak adalah suatu proses di mana informasi-informasi

yang telah diperoleh diterjemahkan ke dalam model perangkat lunak. Model perangkat

lunak memegang peranan penting dalam penulisan program (Licyana Suryani, 2006).

Berdasarkan manajemen proyek, perancangan perangkat lunak dikerjakan dalam

2 langkah, yaitu (Licyana Suryani, 2006)

a. Perancangan awal

Yakni transformasi informasi-informasi ke dalam arsitektur data dan

perangkat lunak.

b. Perancangan rinci

Perancangan ini terfokus pada perbaikan model arsitektur yang memegang

peranan penting dalam pembuatan struktur data dan algoritma secara rinci dari

perangkat lunak.

Page 20: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

27

2.8 Interaksi Manusia dan Komputer

Manusia adalah makhluk yang sering berinteraksi dengan manusia lain. Oleh

karena itulah maka penggunaan komputer dibuat sesederhana mungkin sehingga

manusia dapat berinteraksi dengan komputer semudah berinteraksi dengan manusia lain.

Proses penyederhanaan ini dikenal dengan interactive user interface (Yolanda, 2009).

Menurut Shneiderman, interaksi manusia dan komputer merupakan disiplin ilmu

yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer

interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang

berhubungan dengannya (Ade Arisandi, 2009).

Pada interaksi manusia dan komputer ditekankan pada pembuatan antarmuka

pemakai (user interface). User interface yang dibuat diusahakan sedemikian rupa

sehingga seorang user dapat dengan baik dan nyaman menggunakan aplikasi perangkat

lunak dibuat (Ade Arisandi, 2009).

Antar muka pemakai (user interface) adalah bagian sistem komputer yang

memungkinkan manusia berinteraksi dengan komputer. Tujuan antar muka pemakai

adalah agar sistem komputer dapat digunakan untuk menunjuk pada kemampuan yang

dimiliki oleh piranti lunak atau program aplikasi yang mudah dioperasikan dan dapat

membantu menyelesaikan suatu persoalan dengan hasil yang sesuai dengan keinginan

user, sehingga user merasa nyaman mengoperasikan program tersebut (Ade Arisandi,

2009).

Page 21: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

28

2.8.1 Program Interaktif

Suatu program yang interaktif dan baik harus bersifat user friendly. Ada lima

kriteria yang harus dimiliki oleh suatu program sehingga dapat berinteraksi dengan baik

dan bersifat user friendly. Lima kriteria tersebut adalah (Yolanda, 2009):

a. Memiliki waktu belajar yang relatif singkat.

b. Mampu memberikan informasi yang diperlukan dengan cepat.

c. Mudah untuk dioperasikan oleh user.

d. Kemudahan untuk mengingat program tersebut walaupun telah lama tidak

mengoperasikannya.

e. Kepuasan pribadi.

2.8.2 Pedoman Merancang User Interface

Beberapa pedoman yang dianjurkan dalam merancang suatu program, guna

mendapatkan suatu program yang user friendly adalah sebagai berikut (Ade Arisandi,

2009):

Untuk merancang sistem interaksi manusia dan komputer yang baik, harus

memperhatikan delapan aturan emas (eight golden rules) dalam perancangan antar

muka. Eight golden rules tersebut yaitu (Hendra Prasetyo, 2009):

a. Strive for consistency

Konsistensi dalam perancangan antar muka dan bertahan untuk konsistensi.

b. Enable frequent user to use shortcuts

Memungkinkan/ memperbolehkan user menggunakan shortcuts secara berkala.

c. Over informative feed back

Memberikan umpan balik yang informatif.

Page 22: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

29

d. Design dialogs to yield closure

Pengorganisasian yang baik sehingga user mengetahui kapan awal dan akhir dari

suatu action serta merancang dialog untuk menghasilkan keadaan akhir.

e. Over simple error handling

Memberikan penanganan kesalahan yang sederhana sehingga user mampu

mengetahui dan memperbaiki kesalahan dengan mudah.

f. Permit easy reversal of actions

Mengijinkan pembalikan action dengan mudah.

g. Support internal locus of control

Mendukung user menguasai sistem yang dibuat sehingga user mampu aktif dalam

mengambil langkah selanjutnya bukan hanya merespon pesan yang muncul.

h. Short-term memory load

Mengurangi beban ingatan jangka pendek kepada user sehingga perancangannya

harus sederhana.

Waktu respon dalam sistem komputer menurut Scheiderman adalah jumlah detik

dari saat user program memulai aktivitas sampai menampilkan hasilnya di layar atau

printer. Pemakai lebih menyukai waktu respon yang pendek, waktu respon yang panjang

mengganggu, waktu respon yang pendek menyebabkan waktu user berpikir lebih

pendek. Waktu respon harus sesuai dengan tugasnya, dan pemakai harus diberi tahu

mengenai penundaan yang panjang.

Page 23: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

30

2.9 Perancangan Program Aplikasi

2.9.1 Bentuk Program

Suatu program dapat dibuat dengan dua cara yaitu secara OOP (Object Oriented

Programming) atau secara procedural (Ade Arisandi, 2009).

Object Oriented Programming adalah sebuah paradigma pemrograman yang

menggunakan ”objek” dan interaksinya untuk mendesain aplikasi dan program

komputer. Keunggulan yang membuat OOP semakin banyak digunakan adalah karena

sifatnya yang reusable, sehingga sangat cocok untuk membuat aplikasi atau program

yang besar. Untuk aplikasi dengan struktur yang sederhana, OOP akan mempersulit

pembuatan program karena programmer harus merancang objek satu per satu (Ade

Arisandi, 2009).

Sedangkan procedural programming atau yang dikenal juga dengan imperative

programming adalah pemrograman berdasarkan konsep pemanggilan procedures atau

yang sering dikenal sebagai routines, subroutines, methods, dan functions. Setiap

procedure mengandung sederetan langkah perhitungan yang harus dijalankan.

Procedures dapat dipanggil kapan saja dalam program, termasuk di dalam procedure itu

sendiri. Jika dibandingkan dengan OOP, procedural programming diperuntukkan bagi

pembuatan program dengan struktur yang sederhana dengan algoritma yang juga

sederhana maupun yang rumit (Ade Arisandi, 2009).

2.9.2 Pemrograman Berorientasi Objek

Object-oriented mencakup bidang aplikasi yang sangat luas. Para pengguna

sistem komputer dan sistem lain yang didasarkan atas teknologi komputer merasakan

efek object-oriented dalam bentuk meningkatnya aplikasi software yang mudah

Page 24: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

31

digunakan dan servis yang lebih fleksibel, yang muncul dalam berbagai bidang industri,

seperti dalam perbankan, telekomunikasi, dan sebagainya. Sedangkan bagi software

engineer, object-oriented berpengaruh dalam bahasa pemrograman, metodologi

rekayasa, manajemen proyek, hardware, dan sebagainya (Prins Carl Santoso, 2009).

Analisis dan perancangan berorientasi objek amat sangat perlu dilakukan dalam

pengembangan sistem berorientasi objek. Hanya dengan kemampuan menggunakan

bahasa pemrograman berorientasi objek yang andal, kita dapat membangun suatu sistem

berorientasi objek, namun sistem aplikasi yang dibangun akan menjadi lebih baik lagi

bila langkah awalnya didahului dengan proses analisis dan perancangan berorientasi

objek, terutama untuk membangun sistem yang mudah dipelihara (Prins Carl Santoso,

2009).

Analisis berorientasi objek adalah metode analisis yang memeriksa requirements

(syarat/ keperluan yang harus dipenuhi suatu sistem) dari sudut pandang kelas-kelas dan

objek-objek yang ditemui dalam ruang lingkup permasalahan. Sedangkan perancangan

berorientasi objek adalah metode untuk mengarahkan arsitektur software yang

didasarkan pada manipulasi objek-objek sistem atau subsistem (Prins Carl Santoso,

2009).

Pemrograman berorientasi objek merupakan kelanjutan dari proses analisis dan

desain berorientasi objek. Dalam pemrograman berorientasi objek ini, komponen yang

didesain dalam proses desain kemudian diimplementasikan dengan menggunakan

bahasa pemrograman berorientasi objek. Syarat sebuah bahasa pemrograman

berorientasi objek adalah bila bahasa pemrograman tersebut memiliki fitur untuk

mengimplementasikan keempat konsep berorientasi objek, yaitu abstraksi,

encapsulation, polymorphism, dan inheritance. Dikenal beberapa bahasa pemrograman

Page 25: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2010-1-00497-MTIF Bab 2.pdfdiuraikan tentang definisi yang mencakup citra digital, kompresi, encoding

32

berorientasi objek, seperti C++, Java, Visual Basic, dan sebagainya (Prins Carl Santoso,

2009).