Pemugaran Citra Digital Dengan Algoritma Exemplar-Based Image Inpainting dan Metode Sintesis Tekstur

(1)

Pemugaran Citra Digital Dengan Algoritma Exemplar-Based Image Inpainting dan Metode Sintesis Tekstur

Oleh

CINDY TRIAS PUSPITA

Pemugaran citra digital bertujuan untuk merekonstruksi citra digital yang mengalami degradasi yang membuat citra digital berubah tidak sesuai dengan aslinya. Degradasi yang mungkin terjadi pada citra digital dapat berupa noda pada citra tua, serta hasil scan yang kurang baik. Tujuan penelitian ini adalah merancang perangkat lunak pemugaran citra digital dengan menggunakan algoritma exemplar-based image inpainting dan metode sintesis tekstur. Piksel yang terdegrasi akan digantikan dengan piksel baru dengan cara mendapatkan informasi piksel tetanga yang menyerupai dengan piksel yang terdagradasi. Perangkat lunak ini dapat memperbaiki citra RGB atau citra warna dengan format

file JPEG, PNG dan TIFF. Pengembangan perangkat lunak inpainting dilakukan menggunakan MATLAB 7.6.0. Berdasarkan pengujian pada beberapa sampel citra uji, hasil observasi menunjukan bahwa perangkat lunak dapat digunakan untuk memperbaiki citra tua atau menghilangkan objek yang tidak diinginkan seperti menghilangkan objek seperti noda, logo, dan teks.


(2)

Digital Image Restoration With Exemplar-Based Image Inpainting Algorithm and Texture Synthesis Method

By

CINDY TRIAS PUSPITA

Digital image restoration aims to reconstruct a digital image that experienced degradation, which changes this digital image from its original. Degradation that may occur in the digital image can be a dirt on the old image or a image result of a less good quality scanner. This research is intended to overcome such problems. The outcome of this research is a software of the digital image restoration by applying exemplar-based image inpainting algorithm and texture synthesis method. Pixels which are degradated are replaced by a new pixel from its neighbor pixel information that resembles to the degradated pixels. The software could restore an RGB image or a color image in the format of JPEG, PNG and TIFF. Inpainting software development was done using MATLAB 7.6.0. Based on several sample test images, the observation results show that the software can be used to restore the old image or eliminate unwanted objects like a spot, a logo and a text.


(3)

1.1 Latar Belakang

Teknologi komputer kini berkembang pesat. Pada bidang multimedia

khususnya berhubungan dengan gambar (citra). Sekarang ini citra digital

banyak digunakan untuk menggantikan citra analog, bahkan tidak sedikit yang mengubah citra analog menjadi citra digital agar mudah disimpan. Pada awalnya data atau informasi tidak hanya disajikan dalam bentuk teks, tetapi juga dapat berupa gambar (citra), audio (bunyi, suara, dan musik), dan video. Era teknologi informasi saat ini tidak dapat dipisahkan dari multimedia.

Pemrosesan citra digital juga berkembang semakin baik, dikarenakan bertambahnya ilmu dan penemuan baru pada bidang pengolahan citra digital. Seperti diketahui, elemen sistem pemrosesan citra meliputi pengambilan, penyimpanan, pemrosesan, komunikasi, dan penampilan (Gonzales, 1993). Dengan demikian citra yang didapatkan mungkin seringkali tidak sesuai keinginan sehingga citra perlu diproses untuk didapatkan hasil yang orisinil (keadaan ideal) menurut persepsi mata manusia.

Citra sebagai salah satu komponen multimedia memegang peranan penting dalam informasi visual. Sebagai bentuk informasi visual, citra


(4)

mempunyai karakteristik yang tidak dimiliki oleh data teks, yaitu citra kaya dengan informasi (Rinaldi Munir, 2004).

Citra foto dan film yang sudah tua, biasanya mengalami kerusakan atau degradasi pada permukaannya. Kerusakan pada citra digital disebabkan oleh banyak faktor. Citra tua kadangkala mengalami kerusakan karena jamur ataupun tergores. Bahkan untuk citra yang masih baru dapat tanpa sengaja tergores ataupun terdapat derau lainnya. Kerusakan pada citra dapat diperbaiki dengan melakukan pemugaran (restoration) terhadap citra.

Pemugaran adalah proses merekonstruksi atau mendapatkan kembali citra asli dari citra yang cacat atau terdegradasi agar dapat menyerupai citra aslinya. Pemugaran citra berbeda dengan peningkatan kualitas citra (image enhancement), meskipun kedua-duanya bertujuan untuk memperbaiki kualitas citra.

Pemugaran citra digital yang dibahas dalam penelitian ini menggunakan algoritma inpainting. Algoritma ini merupakan suatu teknik untuk memodifikasi citra dalam bentuk yang tidak terdeteksi. Dengan kata lain inpainting adalah teknik pengisian satu daerah dan satu citra berlandaskan informasi piksel tetangga.

Algoritma exemplar-based image inpainting digabungkan dengan metode sintesis tekstur (Texture Synthesis). Sintesis tekstur berusaha untuk membangun region tekstur besar yang berasal dari contoh citra kecil. Dengan contoh tersebut dibangun model probabilitas tekstur untuk menentukan tekstur citra.


(5)

1.2 Rumusan Masalah

Berdasarkan latar belakang permasalahan yang telah diuraikan, dapat dirumuskan permasalahan yaitu bagaimana mengembalikan informasi dari citra digital yang telah mengalami kerusakan (degradasi), baik sengaja ataupun tidak dan/atau menghilangkan informasi berupa objek pada citra

digital yang tidak diinginkan dengan menggunakan algoritma exemplar-based imageinpainting dan metode sintesis tekstur.

1.3 Batasan Masalah

Dalam penelitian ini, pengembangan aplikasi pemugaran citra dibatasi pada hal-hal berikut:

1. Bahasa Pemrogaman yang digunakan adalah bahasa pemrograman MATLAB 7.6.0.

2. Derau yang diteliti berupa citra yang hilang atau tidak sesuai dengan citra aslinya.

3. Jenis file citra yang dipugar adalah Portable Network Graphics (.png), Tagged Image File Format (.tiff) dan Joint photographic expertes group (.jpeg).

1.4 Tujuan Penelitian

Tujuan dilakukan penelitian ini adalah membuat aplikasi pemugaran citra digital dengan menggunakan algoritma exemplar-basedimageinpainting


(6)

1. Memperbaiki derau yang disebabkan oleh citra tua, berupa jamur ataupun hasil scan yang kurang sempurna.

2. Menghilangkan derau berupa logo dan teks. 3. Menghilangkan objek yang tidak diinginkan.

4. Mengisi piksel yang hilang dengan piksel yang baru.

1.5 Manfaat Penelitian

Manfaat dalam penelitian aplikasi pemugaran citra, diharapkan agar memperoleh manfaat sebagai berikut :

1. Menambah pengetahuan pengolahan citra digital.

2. Membantu pengembangan teknologi fotografi, terutama pada bidang perbaikan citra tekstur.

3. Menghilangkan atau meminimumkan cacat pada citra digital.

4. Menambah pengetahuan dalam hal memanipulasi citra digital.

5. Perbaikan citra tua yang mengalami kerusakan atau degragasi pada permukaan citra digital.

6. Rekonstruksi citra penting dari suatu derau yang disengaja maupun tidak.


(7)

2.1 Citra

Citra adalah kumpulan elemen gambar yang secara keseluruhan merekam suatu adegan melalui media indra visual. Citra dapat dideskripsikan sebagai data dalam dua dimensi dalam bentuk matriks M x N. Citra digital

adalah citra dua dimensi yang dapat direpresentasikan dengan fungsi intensitas cahaya yang mana X dan Y menyatakan koordinat spasial. Elemen terkecil dari citra digital disebut dengan image element yaitu piksel. Citra dapat digolongkan menjadi dua macam yaitu:

1. Citra continue, dihasilkan dari sistem optik yang menerima sinyal

analog. Contoh: mata manusia dan kamera analog.

2. Citra diskrit/digital, dihasilkan melalui proses digitalisasi terhadap citra continue. Contoh: kamera digital dan scanner.

Citra adalah fungsi dua dimensi dari intensitas cahaya. Intensitas ini disebut juga dengan brightness (tingkat kecerahan). Fungsi citra F(x,y) ditentukan oleh dua komponen yaitu iluminasi dan refleksi sehingga:


(8)

F(x,y) = I (x,y) r (x,y)

yang mana I (x,y) adalah iluminasi yang datang dari sumber cahaya dan r (x,y) adalah koefisien refleksi atau transmisi objek.

Pengertian citra secara harfiah merupakan gambar pada bidang dwimatra (dua dimensi). Citra merupakan fungsi continue dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini dapat ditangkap oleh alat-alat optik sehingga bayangan objek yang diterima disebut citra terekam (Rinaldi Munir, 2004). Citra sebagai keluaran dari suatu sistem perekam data dapat bersifat:

1. Optik berupa citra gambar atau foto.

2. Analog berupa sinyal video seperti gambar pada monitor televisi.

Citra bergerak adalah rangkaian citra diam yang ditampilkan secara beruntun (sekuensial) sehingga memberikan kesan pada mata sebagai gambar yang bergerak. Setiap citra dalam rangkaian tersebut disebut frame. Gambar-gambar yang tampak pada film layar lebar atau televisi pada hakekatnya terdiri atas ratusan atau ribuan gambar. Citra yang dimaksudkan dalam penelitian ini adalah citra diam (still image). Citra diam adalah citra tunggal yang tidak bergerak.

Citra digital dapat diperoleh secara automatis dari sistem penangkapan citra digital yang memerlukan proses pencuplikan terhadap suatu objek tiga dimensi dan membentuk matriks yang mana elemen-elemennya menyatakan


(9)

nilai intensitas cahaya. Citra digital merupakan citra yang disimpan dalam format digital dan hanya citra digital yang dapat diolah menggunakan komputer. Jenis citra lain jika diolah dengan komputer harus diubah dahulu menjadi citra digital.

2.2 Pengolahan Citra Digital

Pengolahan citra digital merupakan pengolahan dan analisis yang banyak melibatkan persepsi visual. Citra digital dapat diperoleh secara otomatik dari sistem penangkapan citra membentuk matrik yang elemen-elemennya menyatakan nilai intensitas cahaya atau tingkat keabuan suatu piksel (Fadliansyah, 2007). Pengolahan citra adalah salah satu aplikasi yang dapat mengubah gambar menjadi suatu informasi (Marvin Wijaya, 2004).

Meskipun citra kaya informasi, namun seringkali citra yang dimiliki mengalami penurunan mutu (degradasi). Seperti mengandung cacat atau derau (noise), warnanya terlalu kontras, kurang tajam, kabur (blurring) dan sebagainya. Agar citra yang mengalami gangguan mulai diinterpretasi (baik manusia maupun mesin) maka citra tersebut perlu dimanipulasi menjadi citra lain yang kualitasnya lebih baik. Operasi-operasi pada pengolahan citra diterapkan pada citra bila:

1. Perbaikan atau modifikasi citra perlu dilakukan untuk meningkatkan kualitas penampakan atau untuk menonjolkan beberapa aspek informasi yang terkandung dalam citra.


(10)

2. Elemen di dalam citra perlu dikelompokan dan diukur.

3. Sebagian citra perlu digabung dengan bagian citra yang lain.

Pengolahan citra bertujuan untuk memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra yang lain. Jadi masukannya adalah citra dan keluarannya juga citra. Namun citra keluaran mempunyai kualitas lebih baik dari pada citra masukan (Rinaldi Munir, 2004).

2.2.1 Operasi Pengolahan Citra Digital

Operasi-operasi yang dilakukan di dalam pengolahan citra banyak ragamnya. Namun, secara umum operasi pengolahan citra dapat diklasifikasikan dalam beberapa jenis sebagai berikut:

1. Perbaikan kualitas citra (image enhancement)

Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter-parameter citra. Dengan operasi ini, ciri-ciri khusus yang terdapat di dalam citra lebih ditonjolkan. Contoh-contoh operasi perbaikan citra:

a. Perbaikan kontra gelap/terang.

b. Perbaikan tepian objek (edge enhancement).


(11)

d. Pemberian warna semu (pseudocoloring).

e. Noise filtering.

Gambar 2.1 Contoh Penajaman Citra (Rinaldi Munir, 2004).

2. Pemugaran citra (image restoration)

Pemugaran citra merupakan proses merekonstruksi atau mendapatkan kembali citra asli dari citra yang cacat atau terdegradasi agar dapat menyerupai citra aslinya. Pemugaran citra berkaitan dengan penghilang atau pengurangan degradasi pada citra yang terjadi karena proses akusisi. Citra degradasi yang dimaksud termasuk derau (yang merupakan error dalam nilai piksel) atau efek optik misalnya blur (citra kabur) akibat kamera yang tidak fokus atau karena gerakan kamera (Marvin Wijaya, 2005).

Operasi pemugaran citra bertujuan untuk menghilangkan atau meminimumkan cacat pada citra. Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra. Bedanya, pada pemugaran citra penyebab degradasi gambar dapat diketahui. Contoh-contoh operasi pemugaran citra:


(12)

a. Penghilangan kesamaran (deblurring). b. Penghilau derau (noise).

Gambar 2.2 Contoh Penghilang Derau(Rinaldi Munir, 2004).

3. Pemampatan citra (image compression)

Jenis operasi ini dilakukan agar citra dapat dipresentasikan dalam bentuk yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting yang harus diperhatikan dalam pemampatan adalah citra yang telah dimampatkan harus tetap mempunyai kualitas gambar yang bagus. Contoh metode pemampatan citra adalah metode JPEG.

4. Segmentasi citra (image segmentation)

Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan pengenalan pola. Proses segmentasi kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya.


(13)

5. Analisis citra (image analysis)

Jenis operasi ini bertujuan menghitung besaran kuantitatif dari citra masuk untuk menghasilkan informasi citra. Teknik pengolahan citra mengekstraksi ciri-ciri tertentu yang membantu dalam identifikasi objek. Contoh-contoh operasi analisis citra:

a. Pendeteksian tepi objek (edge detection). b. Ektraksi batas (boundary).

c. Representasi daerah (region).

Gambar 2.3 Contoh Pendeteksian Tepi (Rinaldi Munir, 2004).

6. Rekonstruksi citra

Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis. Misalnya beberapa foto rontgen

dengan sinar X digunakan untuk membentuk ulang gambar organ tubuh.


(14)

2.2.2 Elemen Sistem Pemrosesan Citra Digital

Citra digital mengandung sejumlah elemen-elemen dasar. Elemen-elemen dasar tersebut dimanipulasi dalam pengolahan citra dan dieksploitasi lebih lanjut dalam computer vision. Elemen-elemen dasar yang penting diantarannya adalah:

1. Kecerahan (brightness)

Kecerahan adalah kata lain untuk intensitas cahaya. Kecerahan pada titik (pixel) di dalam citra bukanlah intensitas yang riil. Tetapi sebenarnya adalah intensitas rata-rata dari suatu area yang melingkupinya. Sistem visual manusia mampu menyesuaikan dirinya dengan tingkat kecerahan mulai dari yang paling rendah sampai yang paling tinggi.

2. Kontras (contrast)

Kontras menyatakan sebaran terang (lightness) dan gelap

(darkness) di dalam gambar. Citra dengan kontras rendah dicirikan oleh komposisi citranya adalah sebagian besar terang atau gelap. Pada citra dengan kontras yang baik, komposisi gelap dan terang tersebar secara merata.


(15)

3. Kontur (contour)

Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada piksel-piksel yang bertetangga. Karena adanya perubahan intensitas ini, mata mampu mendeteksi tepi-tepi (edge) objek di dalam citra.

4. Warna (color)

Warna adalah persepsi yang dirasakan oleh sistem visual manusia terhadap panjang gelombang cahaya yang dipantulkan oleh objek. Setiap warna mempunyai panjang gelombang yang berbeda. Warna-warna yang diterima oleh mata (sistem visual manusia) merupakan hasil kombinasi cahaya dengan panjang gelombang berbeda.

5. Bentuk (shape)

Shape adalah properti intrinstik dari objek tiga dimensi, dengan pengertian bahwa shape merupakan proses intrinstik utama untuk sistem visual manusia. Manusia lebih sering mengasosiasikan objek dengan bentuknya ketimbang elemen lainnya.

6. Tekstur (texture)

Tekstur dicirikan oleh distribusi spasial dari derajat keabuan di dalam sekumpuan piksel-piksel yang bertetangga. Jadi, tekstur tidak dapat didefinisikan untuk piksel.


(16)

Secara umum elemen yang terlibat dapat dibagi menjadi empat komponen, seperti pada gambar 2.4.

Gambar 2.4 Elemen Pemrosesan Citra.

Operasi dari sistem pemrosesan citra pada gambar di atas dapat dibagi menjadi empat kategori prinsip: digitalisasi, pemrosesan, penayangan, dan penyimpanan. Digitizer (digital image acquisition system) merupakan sistem penangkap citra digital yang melakukan penjelajahan citra dan konversinya ke representasi numeric sebagai masukan bagi computer digital. Hasil dari digitizer adalah matriks yang elemen-elemennya menyatakan nilai intensitas cahaya pada suatu titik. Contoh digitizer adalah kamera digital dan scanner.

Digitizer terdiri dari tiga komponen dasar: sensor citra yang bekerja sebagai pengukur intensitas cahaya, perangkat penjelajah yang berfungsi merekam hasil pengukuran intensitas pada seluruh bagian citra, dan pengubah analog-ke-digital yang berfungsi melakukan analisis dan


(17)

kuantisasi. Komputer digital yang digunakan pada sistem pemrosesan citra dapat bervariasi dari komputer micro sampai komputer besar yang mampu melakukan bermacam-macam fungsi pada citra digital resolusi tinggi.

Piranti tampilan peraga berfungsi mengkonversi matriks intensitas yang mempresentasikan citra ke tampilan yang dapat diinterpretasi oleh mata manusia. Contoh piranti tampilan adalah monitor

peraga dan pencetak (printer). Media penyimpanan adalah piranti yang mempunyai kapasitas memori besar sehingga gambar dapat disimpan secara permanen agar dapat diproses lagi pada waktu yang lain.

2.3 Derau (Noise)

Derau adalah gambar atau piksel yang menggangu kualitas citra. Derau perlu dihilangkan karena menghalangi pengambilan informasi pada citra tersebut. Seringkali citra yang dihasilkan atau didapatkan memiliki kualitas yang kurang baik. Hal ini dapatdisebabkan oleh gangguan teknis, peralatan yang digunakan atau juga dikarenakan kurang baiknya suatu pencahayaan. Solusi masalah tersebut adalah melakukan pemrosesan citra agar dapat mendapatkan citra yang inginkan.

Beberapa gangguan mungkin saja terjadi saat pengambilan gambar, seperti kamera tidak fokus atau munculnya bintik-bintik yang bisa terjadi karena proses pengambilan gambar yang tidak sempurna. Setiap gangguan


(18)

pada citra dinamakan derau, yang tidak hanya terjadi karena ketidak-sempurnaan dalam proses pengambilan gambar, tetapi dapat disebabkan juga oleh noda kotoran yang terjadi pada citra setelah pengambilan citra. Berdasarkan bentuk dan karakteristiknya, derau pada citra dibedakan menjadi beberapa macam yaitu:

1. Derau salt and papper

Derau ini disebut juga dengan derau impulse (impulse noise), shout noise atau derau biner (binary noise). Degradasi derau ini disebabkan oleh gangguan yang tajam atau tiba-tiba (sharp and sudden) pada sinyal citra. Kenampakan pada citra berupa titik-titik (piksel) hitam atau putih yang tersebar pada citra.

2. Derau Gaussian

Derau Gaussian merupakan bentuk ideal dari derau putih, Derau

Gaussian dikatakan derau putih karena mempunyai distribusi normal.

3. Derau Speckle

Derau Speckle dapat disebut juga dengan derau multiplikatif (multiplicative noise). Derau speckle sering dijumpai pada aplikasi radar.


(19)

4. Derau Periodik

Derau Periodik sifatnya periodik (bukan acak) menghasilkan derau periodik. Citra yang terkorupsi oleh derau periodik secara visual

tampak terdapat garis-garis pada citra.

2.4 Tekstur Sintesis

Tekstur (Textures) adalah sifat-sifat atau karakteristik yang dimiliki oleh suatu daerah yang cukup besar sehingga secara alami sifat tersebut dapat berulang dalam daerah tersebut. Pengertian dari tekstur dalam hal ini adalah keteraturan pola-pola tertentu yang terbentuk dari susunan piksel-piksel dalam citra. Suatu permukaan dikatakan mempunyai informasi tekstur, jika sifat-sifat permukaan hasil perluasan mempunyai sifat kemiripan dengan permukaan asalnya saat luasannya diperbesar tanpa mengubah skala.

Gambar 2.5 Contoh Tekstur Sintesis (Grossauer, 2003).

Proses tekstur sintesis digunakan untuk mendapatkan atau menghasilkan citra bertekstur dengan pengolahan tepi antar tekstur. Sehingga citra tidak terlihat berasal dari penataran tekstur.


(20)

Tekstur merupakan salah satu metode yang banyak digunakan, karena dapat mendeskripsikan keanekaragaman karakteristik dari suatu bidang, tumbuhan, kulit, dan lain sebagainya. Sintesis tekstur adalah salah satu alternatif cara untuk menciptakan tekstur, karena sintesis tekstur dapat dibuat dengan segala ukuran tanpa pengulangan visual (Grossauer, 2003)

Tekstur adalah pola visual yang dapat dilihat dimana-mana dan dapat mendeskripsikan keanekaragaman dari karakteristik permukaan secara luas. Tekstur diklasifikasikan menjadi dua kategori, yaitu deterministik dan stokastik. Tekstur deterministik merupakan tekstur yang memiliki karakteristik yang diatur oleh bermacam-macam kondisi dan aturan penempatan. Sebaliknya, tekstur stokastik tidak memiliki kondisi-kondisi atau aturan penempatan yang khusus.

Pada tekstur sintesis pola-pola yang teratur muncul secara berulang-ulang dengan interval jarak dan arah yang tertentu. Suatu permukaan tidak berwarna dalam suatu citra dapat mengandung informasi tekstur. Permukaan itu mempunyai pola-pola tertentu seperti permukaan kayu bekas digergaji, permukaan batu, hamparan pasir, kumpulan biji-bijian, dan sebagainya. Informasi tekstur dapat digunakan untuk membedakan sifat permukaan suatu benda dalam citra yang berhubungan dengan kasar dan halus, sifat-sifat spesifik dari kekasaran dan kehalusan permukaan tersebut, yang sama sekali lepas dari warna permukaan tersebut. Berikut syarat terbentuknya tekstur:

1. Adanya pola-pola primitive yang terdiri dari satu atau lebih piksel. Bentuk-bentuk pola primitive ini dapat berupa titik, garis, luasan dan


(21)

sebagainya yang merupakan elemen dasar dari suatu bentuk. Ini artinya bahwa tekstur harus mempunyai elemen tekstur di dalamnya (disebut texel atau texton), meskipun elemen tekstur tersebut hanya terdiri dari piksel.

2. Pola-pola primitive tadi muncul berulang-ulang dengan interval jarak dan arah tertentu sehingga dapat diprediksi karakteristik pengulangannya. Ini berarti bahwa harus ada seperangkat aturan yang dapat menjelaskan bagaimana elemen-elemen tekstur ini muncul secara berulang-ulang.

Dengan adanya dua syarat di atas dapat dikatakan bahwa tekstur suatu permukaan dapat dibentuk melalui aturan-aturan yang berlaku atau sebaliknya, yaitu suatu permukaan dapat dianalisis teksturnya dengan aturan yang sama untuk diperbandingkan satu sama lain, atau untuk keperluan interpretasi citra digital. Beberapa kegunaan dari tekstur:

1. Pemeriksaan permukaan.

2. Pengelompokkan objek pemandangan. 3. Orientasi permukaan.

4. Penentuan bentuk Objek.

2.5 Inpainting

Image inpainting adalah salah satu algoritma yang digunakan untuk melakukan pemugaran citra yang cacat atau terkena derau dengan cara


(22)

mengisi atau mengganti derau dengan piksel aslinya atau dengan piksel baru yang sesuai (Bertalmio, 2001).

Gambar 2.6 Proses Dasar Inpainting.

Proses dasar inpainting adalah mengisi area yang tidak diketauhi pada citra dengan mempergunakan informasi-informasi yang disekelilingnya. Informasi dapat berupa piksel-piksel tetangga yang menyerupai. Informasi piksel-piksel yang menyerupai membentuk suatu pola tekstur. Proses selanjutnya adalah menghasilkan lebih banyak tekstur untuk mengisi area yang tidak diketahui. Berikut merupakan contoh dari imageinpainting.

Gmbar 2.7 Contoh ImageInpainting (Randi Holm, 2005).

Inpainting merupakan merekonstruksi bidang gambar yang dipilih dari piksel-piksel dekat dengan daerah perbatasan. Inpainting adalah salah satu teknik untuk memodifikasi citra dalam bentuk yang tidak terdeteksi oleh mata manusia. Tujuan dari aplikasi kebanyakan inpainting mulai dari


(23)

pemugaran citra atau menghilangkan objek yang tidak diinginkan. Rekonstruksi atau pemugaran bagian citra yang hilang pada foto image digital, merupakan salah satu bidang penting mempergunakan secara ekstensif pada pemugaran citra (Bowen, 2001). Berikut contoh inpainting

untuk mengisi daerah yang hilang:

Gambar 2.8 Contoh Pengisian Daerah Hilang dengan Image Inpainting

(Randi Holm, 2005).

Image inpainting merupakan terobosan baru sebagai pemugaran citra pada satu dasawarsa ini, dalam mengupayakan optimasi penggunaan pemugaran citra. Karena ilmu yang terus berkembang, image inpainting tidak hanya digunakan pada citra digital namun dapat digunakan pada video. Banyak cara dari algoritma inpainting yang digunakan untuk mengaplikasi pemugaran citra. Inpainting juga banyak digunakan oleh para fotografer dan dari industri film.

Digital inpainting merupakan bagian mekanisme interpolasi citra. Yang secara otomatis melakukan pemugaran pada bagian citra yang cacat ataupun hilang pada citra. Kebanyakan dari mekanisme inpainting


(24)

perhitungan (Extrapolation) ataupun sisipan (interpolation) piksel. Algoritma inpainting yang digunakan pada penelitian ini adalah algoritma

exemplar-based image inpainting. Berikut merupakan gambaran struktur peramabatan exemplar-based imageinpainting.

Gambar 2.9 Struktur Perambatan Exemplar-based ImageInpainting

(Criminisi et al, 2003).

Pada gambar 2.9 dapat diperoleh keterangan:

a) Merupakan citra asli, dengan daerah target region Ω, kontor Ωδ, dan daerah sumber φ.

b) Daerah yang disintesis ditandai dengan ψp titik tengah P €

δΩ.

c) Kemiripan data paling banyak ψp sepanjang tepian antara dua tekstur pada satu daerah sumber.


(25)

d) Kandidat data yang paling menyerupai disalin lalu dengan struktur sintesis mengisi bagian target.

Struktur perambatan exemplar-based image inpainting di atas digambarkan untuk memudahkaan perbandingan, dengan mengadoptasi notasi kemiripan inpainting literature. Daerah yang diisi yaitu daerah yang ditandai dengan simbol Ω. Daerah sumber digunakan untuk memperbaiki daerah pengisian dengan menggunakan algoritma inpainting. Dengan contoh-contoh tekstur disekitarnya yang digunakan untuk mengisi bagian pemugaran. Satu iterasi algoritma exemplar-based image inpainting digunakan untuk menangani struktur dan tekstur citra digital yang dipugar. Berikut algoritma dengan menggunakan tiga langkah sampai semua bagaian piksel terisi.

1. Menghitung patch prioritas, menjalankan perintah sintesis untuk mengisi bagian yang ditandai dengan symbol Ω.

P (P) = C (P) D (P) (1)

Yang mana C(P) tingkat kepercayaan dan D (P) data, dan didefenisikan dengan:


(26)

C(P) =        

q p ( )C(q)

dan D(P)=

p p .n

  

(2)

yang mana:

ψp = merupakan area dari yang akan disintesis

α = merupakan normalisasi faktor, α = 255 untuk tipe citra keabuan.

2. Menyebarkan keterangan tekstur dan struktur. Jika patch ψp dengan prioritas tinggi ditemukan, langkah selanjutnya mengisi bagian pemugaran dengan mengekstrak data dari daerah sumber.

P

pargmax (3)

3. Update nilai kepercayaan. Setelah daerah ψp diisi menggunakan piksel baru, nilai kepercayaan C (P) akan diperbarui dengan area yang dibatasi oleh ψp:


(27)

Pada bab ini diuraikan metode penelitian yang digunakan penulisan dalam pengembangan sistem pemugaran citra digital dengan algoritma exemplar-based imageinpainting dan metode sistesis tekstur, diantarannya adalah:

3.1 Peralatan Pendukung

Peralatan pendukung yang digunakan dalam penelitian aplikasi pemugaran citra digital adalah sebagai berikut:

1. Perangkat keras (hardware), dengan spesifikasi: a. Processor Intel Core 2 Duo.

b. RAM 3 GB. c. Harddisk 160 GB. d. Monitor dan VGA.

e. Mouse dan Keyboard.

2. Perangkat lunak (software) :

a. Sistem operasi : Windows XP SP 2. b. Pemrogram MATLAB 7.6.0. c. Adobe Photoshop CS 2.


(28)

3.2 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan pada penelitian ini adalah penelitian kepustakaan. Penelitian kepustakaan dilakukan dengan mengumpulkan data dan informasi yang diperoleh dari buku-buku perancangan sistem, buku pemrograman, buku studi pengolahan citra, artikel dari internet maupun informasi lainnya yang berkaitan dengan pembahasan pada penelitian ini. Seperti teknik dasar pengolahan citra, pemugaran sebuah citra dengan algoritma inpainting dibutuhkan beberapa proses, mulai dari membaca file citra, inpainting menggunakan teknik tekstur sisntesis, dan proses penyimpanan dalam bentuk file citra yang sudah diolah. Berikut langkah-langkah operasi dasar pengolahan citra seperti pada gambar 3.1.

Gambar 3.1 Operasi Dasar Pengolahan Citra.

3.3 Metode Pengembangan Sistem

Metode pengembangan sistem yang digunakan pada aplikasi pemugaran citra digital dengan algoritma exemplar-based image inpainting


(29)

Berikut merupakan fase-fase dalam pengembangan perangkat lunak pada gambar 3.2.

Gambar 3.2 Fase-fase Pengembang.

Untuk mengimplementasikan proses pengolahan citra pemugaran citra

digital dengan algoritma inpainting dan sintesis tekstur digunakan bahasa pemrograman MATLAB 7.6.0 Berikut tahapan yang dilakukan sesuai dengan fase-fase pengembangan;

1. Planning

Pada fase ini, merencanakan segala sesuatu yang berhubungan dengan perancangan aplikasi pemugaran citra digital dengan menggunakan algoritma exemplar-based image inpainting dan sintesis tekstur. Pertimbangan hambatan dan resiko dalam pembuatan aplikasi turut pula dianalisis agar mendapatkan hasil yang diharapkan. Pada tahap ini. Hambatan yang mungkin terjadi pada pengembangan aplikasi ini adalah pada penguasaan bahasa pemrograman yang digunakan. Selain itu kepustakaan yang masih sangat sedikit juga dapat menghambat pengembangan aplikasi pemugaran citra digital. Resiko yang mungkin dihadapi adalah hasil yang diharapkan tidak sesuai.


(30)

2. Design

halaman utama terdiri beberapa tombol yang digunakan untuk input

citra dan mask. Selain itu, pada halaman ini juga terdapat tombol proses, penyimpanan citra hasil dan informasi lama pemrosesan. Gambar 3.4 memperlihatkan desain untuk menampilkan citra sebelum dan setelah dipugar. Interface bagian kiri ditempatkan area untuk citra asli dan bagian kanan untuk citra hasil yang selesai dipugar.


(31)

Gambar 3.4 Design Interface Figure 2.

3. Coding

Tahapan ini merupakan tahap pembentukan aplikasi dengan mentransformasikan desain dalam bentuk sintaks bahasa pemrograman MATLAB.

4. Observation

Observasi aplikasi pada penelitian ini menggunakan metode black box, yaitu observasi yang dilakukan dengan mengeksekusi aplikasi dengan stimulus tertentu dan mengamati hasil respon dari aplikasi. Bentuk observasinya adalah:

a. Observasi menghilangkan derau yang diakibatkan citra tua. b. Observasi menghilangkan derau berupa teks ataupun logo.

c. Observasi menghilangkan objek yang tidak dikehendaki. d. Observasi berupa perbandingan border size yang digunakan


(32)

Ilustrasi metodologi penelitian yang dilakukan dengan pengembangan aplikasi pemugaran citra digital dengan menggunakan algoritma inpainting

dan sintesis tekstur ini dapat dilihat pada gambar 3.5.


(33)

4.1 Perancangan Aplikasi

Secara umum aplikasi pemugaran citra digital terbagi menjadi dua proses, yaitu proses akusisi data dan algoritma exemplar-based image inpainting. Alur kerja dapat dilihat pada Gambar 4.1.


(34)

4.1.1 Akusisi Data

Tahap pertama untuk menjalankan sistem penghilang noise yaitu akuisisi data. Akuisisi data adalah proses mengubah data analog menjadi data digital agar mampu dianalisis menggunakan komputer. Dengan berkembangnya ilmu pengetahuan dan teknologi, citra analog dapat dikonversi menjadi data digital dengan menggunakan alat bantu berupa

scanner. Selain itu data digital juga didapatkan dari kamera digital. Data objek yang digunakan dapat berupa filetype JPG, PNG, dan TIFF. Citra

digital yang diproses berupa citra RGB, jika citra yang diinputkan berupa citra grayscale, citra tersebut harus dikonversi terlebih dahulu menjadi citra RGB.

Setelah citra digital diinputkan, proses selanjutnya adalah mengindentifikasi derau secara manual. Derau yang dihilangkan dapat berupa derau yang disengaja ataupun tidak. Pada proses ini juga terdapat indentifikasi objek yang dihilangkan dan mengganti dengan piksel yang baru. Identifikasi ini dilakukan secara manual, yaitu dengan membuat

maskindex yang ditandai dengan warna merah [255 0 0].

Nilai border size digunakan sebagai identifikasi source region, Informasi source region digunakan untuk mengisi atau menggantikan piksel citra yang dipugar. Setelah data diakusisi dan disimpan dalam media penyimpanan, data dibuka untuk diubah menjadi matrik piksel dengan ukuran yang sama dengan ukuran gambar.


(35)

4.1.2 Algoritma Exemplar-Based Image Inpainting

Setelah citra yang dipugar dan citra mask diinputkan proses selanjutnya adalah masuk pada tahap pemugaran citra dengan menggunakan algoritma exemplar-based image inpainting. Tahap algoritma ini pertama adalah evaluasi jarak dan gradient citra dengan menggunakan perkalian konvolusi dua dimensi antar citra dengan

kernelnya. Berikut merupakan implementasi program dari algoritma yang dibahas pada bab sebelumnya.

Gambar 4.2 Source Code Evaluasi Jarak dan Gradient.

Code diatas merupakan implementasi program dalam bahasa

MATLAB untuk:

    ~ ) ( ) ( ) ( * ) (  a x g x f x g x f

Perintah convn pada code merupakan bagian dari toolbox image processing pada MATLAB. Convn digunakan untuk menghitung nilai konvolusi gambar dengan nilai matriks yang sama. Selanjutnya nilai itu digunakan untuk menentukan jarak transform dan gradient citra. Langkah selanjutnya adalah menentukan batas paling tinggi patch yang digunakan. Code di bawah ini adalah implementasi program untuk rumus:

% evaluasi jarak transform dan gradient citra D = bwdist(M);

Nx = convn(convn(I.gray,GI.g','same'),GI.gp,'same'); Ny = convn(convn(I.gray,GI.gp','same'),GI.g,'same'); Nm = Nx.^2 + Ny.^2;


(36)

C(P) =        

q p ( )C(q)

dan D(P)=

p p .n

  

Gambar 4.3 Source Code Penentuan Batas Prioritas Paling Tinggi Patch.

Pada tahap penentuan batas prioritas patch paling tinggi, terdapat beberapa proses di bawahnya yaitu dengan mengevaluasi penggunaan batas normal jarak yang ditansformasikan. Dilanjutkan mengekstrak

ishopote menggunakan maksimum gradient di antara window. Proses terakhir dari penentuan batas prioritas patch adalah mengevaluasi % menentukan batas prioritas paling tinggi patch

B.normal = zeros(B.length,2); B.isophote = zeros(B.length,2); B.confidence = zeros(B.length,1); B.data = zeros(B.length,1); B.priority = zeros(B.length,1); for i = 1:B.length

% Mengevaluasi penggunaan normal batas jarak transformasikan Mp = ~M(B.boundary(i,1)+pIndex,B.boundary(i,2)+pIndex);

Dp = D(B.boundary(i,1)+pIndex,B.boundary(i,2)+pIndex); B.normal(i,:) = [GN.x(Mp) GN.y(Mp)]'*Dp(Mp);

if norm(B.normal(i,:)) ~= 0

B.normal(i,:) = B.normal(i,:)/norm(B.normal(i,:)); end

% Ekstrak isophote mempergunakan maksimum gradien diantara window Nxp = Nx(B.boundary(i,1)+pIndex,B.boundary(i,2)+pIndex);

Nyp = Ny(B.boundary(i,1)+pIndex,B.boundary(i,2)+pIndex); Nmp = Nm(B.boundary(i,1)+pIndex,B.boundary(i,2)+pIndex); [maxValue,maxIndex] = max(Nmp(:));

B.isophote(i,:) = [-Nyp(maxIndex) Nxp(maxIndex)]; % Evaluasi prioritas patch

Cp = C(B.boundary(i,1)+pIndex,B.boundary(i,2)+pIndex); B.confidence(i) = sum(sum(Cp(Mp)))/(2*pSize+1)^2;

B.data(i) = abs(sum(B.normal(i,:).*B.isophote(i,:)))/dataAlpha; if useIsophote

B.priority(i) = B.confidence(i)*B.data(i); else

B.priority(i) = B.confidence(i); end

end


(37)

prioritas patch dengan menggunakan ishopote. Langkah selanjutnya adalah menentukan indeks dari patch untuk diupdate.

Gambar 4.4 Source Code Penentuan Indeks Patch.

Code di atas merupakan implementasi dari algoritma:

P pargmax

Setelah patch diupdate proses selanjutnya menemukan patch yang menyerupai source region. Code di bawah mneyatakan proses pada algoritma:

C(P) = C(P’) p ψp Ω

Gambar 4.5 Source Code Menemukan Patch Menyerupai Source Region.

Pada proses di atas, terdapat pemanggilan fungsi findmatch. Langkah yang terakhir adalah meletakan patch pilihan pada daerah pemugaran dan proses inpainting akan berhenti setelah semua daerah pemugaran terisi.

[maxPriority,blockIndex] = max(B.priority);

block = I.rgb(B.boundary(blockIndex,1)+pIndex,... B.boundary(blockIndex,2)+pIndex,:); mask = M(B.boundary(blockIndex,1)+pIndex,... B.boundary(blockIndex,2)+pIndex); frame = F(B.boundary(blockIndex,1)+pIndex,... B.boundary(blockIndex,2)+pIndex); match = findmatch(I.rgb,S,block,mask,frame);


(38)

4.1.3 Hasil Akhir Aplikasi

Setelah proses pemugaran citra digital, sistem menghasilkan keluaran berupa perbandingan citra sebelum dipugar dengan citra hasil. Citra hasil dapat disimpan dalam bentuk filetype JPG, PNG, dan TIFF. Selain itu hasil akhir aplikasi ini dilengkapi juga dengan lama waktu pemrosesan.

4.2 Tampilan Sistem

Aplikasi pemugaran citra digital dengan menggunakan algoritma

exemplar-based image inpainting dan metode sintesis tekstur ini dibuat serta dikembangkan berdasarkan pengetahuan yang diperoleh dan ditambah dengan berbagai referensi. Secara umum aplikasi ini memiliki tiga menu utama yaitu

File, Toolbox, dan Help and About yang tergabung dalam satu file bernama pemugaran.m.


(39)

Aplikasi ini sendiri memiliki beberapa modul yang terintegrasi dengan sistem, antara lain open citra, open mask, menyimpan citra hasil, keluar, toolbox citra input, toolbox citra output, manual book, about, input citra, input mask ,process , reset, save citra, dan waktu proses.

4.2.1 MenuFile Toolbar

Gambar 4.7 Menu File Toolbar.

Menu file terdiri dari: 1. Open Citra

Menu ini berfungsi memanggil data gambar dengan format JPEG, PNG, dan TIFF yang telah diakuisisi dan ditampilkan di

Axes 1 yang berada pada bagian kiri atas. Setiap gambar yang dipanggil secara otomatis mengikuti ukuran axes 1 tersebut

(auto scaling). 2. OpenMask

Menu ini berfungsi memanggil data gambar Mask dengan format JPEG, PNG, dan TIFF yang telah diakuisisi dan ditampilkan di axes 2 yang disediakan. Seperti halnya data


(40)

gambar, pada tahap ini juga secara otomatis gambar yang dipanggil disesuaikan dengan ukuran axes 2 tersebut (auto scaling).

3. Menyimpan Hasil Citra

Menu ini memiliki fungsi menyimpan gambar yang telah berhasil diperbaiki ke dalam media penyimpanan. Format penyimpanan file dapt berupa berbagai tipe data yaitu JPEG, PNG, dan TIFF. File hasil proses dapat disimpan sebagai file baru atau dioverwrite pada file yang sama.

4. Keluar

Menu keluar seperti namanya, berfungsi menutup aplikasi setelah digunakan. Untuk menutup aplikasi juga dapat dilakukan dengan mengclick tombol silang di pojok kanan atas aplikasi.

4.2.2 Menu Toolbox


(41)

Menu ini berfungsi untuk menampilkan rincian data pada citra.

Submenu yang terdapat pada menu ini adalah:

1. Toolbox Citra Input

Menu ini memiliki fungsi menampilkan toolbox citra input, yang digunakan untuk meneliti lebih jauh tentang derau pada citra.

Menu ini akan aktif jika gambar pada axes 1 tampil. 2. Toolbox Citra Output

Menu ini memiliki fungsi menampilkan toolbox citra output, yang digunakan untuk memeriks proses penghilangan derau pada citra. Menu ini baru aktif setelah gambar pada axes 3 tampil atau setelah pemrosesan inpainting selesai.

Menu toolbox memiliki beberapa fungsi pendukung seperti:

1. Image properties. 2. Pixel region. 3. Zoom in / zoom out


(42)

4.2.3 Menu Help and About

Gambar 4.10 MenuHelp and About

Menu ini berfungsi untuk penjelasan penggunaan aplikasi pemugaran citra digital. Submenu yang terdapat pada menu ini adalah:

1. ManualBook

Menu ini berfungsi untuk membuka buku panduan penggunaan aplikasi pemugaran citra digital ini. Manual book pada aplikasi ini berupa file bertipe .doc, .ppt, dan .pdf.

2. About

Menu about merupakan menu yang menampilkan informasi yang berkaitan dengan aplikasi yang dibuat, seperti nama aplikasi, pembuat, informasi pembuat, dan referensi dalam membangun aplikasi.


(43)

4.2.4 Direct Menu

Gambar 4.11 Direct Menu.

Menu ini bertujuan untuk memudahkan penggunaan aplikasi pemugaran citra digital. Submenu yang terdapat pada menu ini adalah:

1. Input Citra

Menu ini merupakan tombol yang memiliki fungsi sama dengan

menu Open Citra, yaitu membuka data gambar yang diproses. Pembuatan tombol ini bertujuan agar user yang tidak terbiasa menggunakan fasilitas menu dapat langsung mengakses data masukan yang diinginkan dengan lebih mudah. Tombol dengan nama pushbutton1 memanggil proses yang sama dengan menu Open Citra Sehingga menggunakan fasilitas menu Open Citra maupun tombol Input Citra menghasilkan output yang sama.


(44)

2. InputMask

Menu ini merupakan tombol yang memiliki fungsi sama dengan

menu Open mask, yaitu membuka data gambar mask yang diproses. Tombol dengan nama pushbutton2 memanggil proses yang sama dengan menu Open Mask sehingga menggunakan fasilitas menu Open Mask maupun tombol Input Mask menghasilkan output yang sama.

3. Process

Tombol Process dalam aplikasi ini adalah tombol utama yang mengaktifkan fungsi pemugaran citra digital pada gambar masukan. Tombol dengan nama pushbutton3 ini memanggil fungsi inpaint pada file inpaint.m yang berfungsi melakukan pemugaran citra digital.

4. Reset

Tombol reset merupakan tombol yang digunakan untuk mengembalikan aplikasi ke kondisi awal. Tombol ini mengakibatkan axes1, axes2, axes3, axes4, dan timel menjadi kosong.

5. Save Citra

Tombol Save citra seperti halnya dengan menu menyimpan citra hasil memiliki fungsi yang sama yaitu menyimpan gambar yang telah diperbaiki ke dalam media penyimpanan.


(45)

6. Waktu Process

Menu ini menampilkan berapa lama waktu yang digunakan pada saat pemugaran citra digital. Waktu dihitung dari awal setelah tombol Process ditekan dan berhenti setelah citra selesai dipugar.

4.3 Pembahasan

4.3.1 Alur Proses Aplikasi

Aplikasi pemugaran citra digital dimulai dengan membuka data masukan berupa file gambar dengan tipe JPEG, PNG, dan TIFF. Cara pemanggilan gambar dapat dilakukan dengan dua cara, melalui menu Open Citra dan tombol Input citra dengan code:

Gambar 4.12 SourceCode Membuka Citra dengan Tombol Input Citra.

Gambar 4.13 SourceCode Membuka Citra dengan MenuOpen Citra. function pushbutton1_Callback(hObject, eventdata, handles) I = uigetfile('*.jpg;*.tiff;*.ppm;*.pgm;*.png','pick a jpge

file');

axes(handles.axes1) imshow(I);

function mOCitra_Callback(hObject, eventdata, handles)

I = uigetfile('*.jpg;*.tiff;*.ppm;*.pgm;*.png','pick a jpge

file');

axes(handles.axes1) imshow(I);


(46)

Pada gambar source code sebelumnya terdapat beberapa perintah dari pemrograman MATLAB seperti perintah:

1. Uigetfile

Perintah ini digunakan untuk mendapatkan file citra yang akan dipugar.

2. Imshow

Perintah Imshow berfungsi untuk menampilkan citra.

Setelah perintah buka file dipanggil, file gambar yang diperbaiki diletakkan pada axes1, tampilan aplikasi setelah gambar dipanggil menjadi:

Gambar 4.14. Input Citra.

Setelah gambar diinputkan langkah selanjutnya adalah menginputkan mask citra yang dimulai dengan membuka data masukan berupa file gambar citra dengan tipe JPEG, PNG, dan TIFF. Cara


(47)

pemanggilan gambar dapat dilakukan dengan dua cara, melalui menu Open mask dan tombol Inputmask dengan code:

Gambar 4.15 SourceCode Membuka Gambar dengan Tombol InputMask.

Gambar 4.16 SourceCode Membuka Gambar dengan MenuOpenMask.

Setelah perintah buka file dipanggil, file gambar yang diperbaiki diletakkan pada axes2, tampilan aplikasi setelah gambar dipanggil menjadi:

Gambar 4.17 Citra Mask

function pushbutton2_Callback(hObject, eventdata, handles) M = uigetfile('*.jpg;*.tiff;*.ppm;*.pgm;*.png','pick a png

file');

axes(handles.axes2) imshow(M);

function mOMask_Callback(hObject, eventdata, handles)

M = uigetfile('*.jpg;*.tiff;*.ppm;*.pgm;*.png','pick a png

file');

axes(handles.axes2) imshow(M);


(48)

Setelah citra dan mask diinputkan, tahap selanjutnya adalah menekan tombol Process untuk memproses pemugara citra. Berikut adalah source code pada tombol Process.

myusaha = guidata(gcbo);

Fungsi guidata ini khusus digunakan untuk pemrograman menggunakan

GUIDE. guidata digunakan untuk mendapatkan object handle (tag) dari komponen form yang aktif.

tic % Starting Stopwatch Timer

set(handles.timel,'string','proses'); set(handles.timel,'string',toc)

Fungsi tic digunakan untuk mengatur stopwatch yang digunakan untuk menghitung waktu proses pemugaran citra. Sebaliknya, fungsi toc

berguna untuk menghentikan pencatatan waktu proses pemugaran pada saat proses selesai.

I = im2double(getimage(myusaha.axes1)); nrows = size(I,1);

ncols = size(I,2); x = 1:ncols;

y = 1:nrows;

[X,Y] = meshgrid(x,y);

Fungsi di atas digunakan untuk mengubah citra input menjadi citra berganda dan mengindentifikasi piksel dengan (x,y). Perintah im2double

pada code di atas digunakan untuk mengkonversi gambar menjadi citra berganda dengan dua presisi.


(49)

M = getimage(myusaha.axes2); [fillImg,fillRegion] =

loadimgs(getimage(myusaha.axes2),[255 0 0]); M =fillRegion;

function [fillImg,fillRegion] = loadimgs(getimage,fillColor)

fillImg =getimage;fillRegion = fillImg(:,:,1)==fillColor(1) & ...

fillImg(:,:,2)==fillColor(2) & fillImg(:,:,3)==fillColor(3);

Fungsi di atas digunakan untuk memproses mask, yang mana pada citra

mask diidentifikasikan dengan nilai RGB [255 0 0]. Artinya daerah yang dipugar ditandai akan bernilai ff0000 atau berwarna merah. Perintah

getimage digunakan untuk mendapatkan citra mask yang sebelumnya telah diinputkan.

borderSize = 10;

S = bwdist(M) < borderSize;

S(M) = 0;

Fungsi di atas digunakan menandakan border size yang digunakan serta, pengenalan source region yang digunakan sebagai sumber area untuk mengisi daerah yang dipugar. Border size berfungsi untuk menandai daerah sumber.

if size(I,3) == 1

I = repmat(I,[1 1 3]);

end

[J,C] = inpaint(I,M,S);

Fungsi sebelumnya digunakan untuk mengindentifikasi citra, jika citra itu merupakan citra grayscale maka akan dijadikan citra RGB. Perintah


(50)

repmat berfungsi untuk mengkonversi citra menjadi citra RGB. Tahap berikutnya adalah memanggil fungsi inpaint.

figure(2); clf;

set(gcf,'Name','Hasil Perbandingan Sebelum Dan Sesudah'); set(gcf,'NumberTitle','off','DoubleBuffer','on');

subplot(1,2,1); imagesc(I); axis image;

set(gca,'YDir','reverse','XTick',[],'YTick',[]); subplot(1,2,2); imagesc(J.rgb);

axis image;

set(gca,'YDir','reverse','XTick',[],'YTick',[]);

Fungsi di atas digunakan untuk menampilkan figur dua yang berisikan perbandingan citra sebelum dipugar dan hasil citra yang sudah dipugar. Gambar-gambar berikut adalah tampilan aplikasi saat pemrosesan pemugaran citra digital.


(51)

Gambar 4.19 Hasil Pemrosesan Pemugaran Citra Digital.

Pemrosesan citra digital berhenti jika semua piksel yang terdapat dalam

mask selesai diproses. Hasil proses ditunjukan dengan tampilnya waktu

process serta hasil citra yang sudah diproses pada axes 3. Setelah semua tahap selesai tampil figur dua yang berisikan perbandingan citra sebelum dan sesudah.


(52)

Output yang diperoleh kemudian disimpan ke dalam media penyimpanan yang tersedia dengan format JPEG, PNG, dan TIF. Gambar yang telah disimpan tersebut dapat digunakan baik untuk langsung dicetak ataupun untuk data masukan kembali jika hasil yang diperoleh kurang memuaskan.

4.3.2 Observasi

Observasi aplikasi dilakukan dengan sample yang berbeda-beda. Hasil yang ditunjukkan dalam pengujian ini adalah gambar yang diujicobakan pada aplikasi sehingga dapat dilihat secara langsung perbedaan sebelum dan sesudah proses pereduksian.

1. Observasi menghilangkan noise berupa jamur pada citra tua

Gambar 4.21 Hasil Pemugaran pada Citra Tua.

Pada citra tersebut dapat dilihat bahwa proses pemugaran citra berjalan dengan baik. Derau yang terjadi akibat noda jamur pada citra tua secara berangsur-angsur hilang dan diganti dengan piksel-piksel baru.


(53)

2. Observasi menghilangkan objek yang tidak diinginkan

Gambar 4.22 Hasil Pemugaran Citra Mengilangkan Objek.

Percobaan dilakukan pada citra untuk mengilangkan objek yang tidak diinginkan. Hasil proses dapat memperlihatkan bahwa pemugaran citra berjalan dengan baik.

3. Observasi menghilangkan objek berupa teks

Gambar 4.23 Hasil Pemugaran Citra Mengilangkan Objek Berupa Teks.

Percobaan dilakukan pada citra yang terdapat tanggal pembuatan yang merupkan default dari kamera yang digunakan. Berdasarkan hasil proses pengamatan pemugaran citra berjalan dengan baik.


(54)

Tanggal yang tertera pada citra dapat dihilangkan dan digantikan dengan piksel-piksel baru.

4. Observasi citra pada citra grayscale

Gambar 4.24 Hasil Pemugaran Citra Grayscale.

Percobaan dilakukan pada citra grayscales Berdasarkan perbandingan gambar di atas dapat dilihat bahwa proses perbaikan berjalan dengan kurang baik. Karena tidak semua daerah yang mask tersisi dengan sempurna. Hal ini dikarenakan letak derau terdapat pada tepian sehingga daerah sumber yang tidak sempurna.

5. Observasi berdasarkan border size yang digunakan dan lama pemrosesan.


(55)

Gambar 4.25 Observasi Berdasarkan Perbedaan Border Size Border size 10 Border size 15 Border size 20 Citra asli

WP = 169.637 detik WP = 204.693 detik WP = 239.299 detik

WP = 86.2377 detik WP = 98.3002 detik WP = 105.549 detik

WP = 155.441 detik WP = 180.433 detik WP = 185.843 detik

WP = 305.703 detik WP = 396.172 detik WP = 404.253 detik


(56)

Observasi ini dimulai dengan mengatur border size masing-masing bernilai 10, 15, dan 20. Berdasarkan hasil yang didapatkan perbedaan border size mempengaruhi lama waktu pemrosesan. Minimum nilai border size menjadi minimum waktu proses, sebaliknya maksimum border size menjadikan waktu proses maksimum. Hal ini dikarenakan nilai border size mempengaruhi diameter daerah sumber.

Berdasarkan hasil yang didapatkan perbedaan border size

juga mempengaruhi kualitas citra hasil, yaitu citra yang dihasilkan

border size minimum menghasilkan citra hasil yang kualitasnya kurang baik jika dibandingkan dengan hasil dari citra dengan nilai

border size di atasnya atau maksimum.


(57)

5.1. Kesimpulan

Berdasarkan penelitian yang telah dilakukan dapat disimpulkan sebagai berikut:

1. Aplikasi pemugaran citra digital dengan menggunakan algoritma

exemplar-based image inpainting berhasil memperbaiki citra yang disebabkan noda jamur. Dengan luas kerusakan piksel yang tidak terlalu besar maka pemugaran berhasil untuk menggantikan piksel yang rusak. Selain derau yang disebabkan jamur aplikasi ini juga dapat memperbaiki citra yang terdapat derau berupa teks ataupun

logo.

2. Aplikasi pemugaran citra digital dengan menggunakan algoritma

exemplar-based imageinpainting mampu menghilangkan objek yang tidak diinginkan dan menggantikan dengan piksel lainnya. Apilkasi ini juga berhasil mengisi piksel pada citra yang hilang dan menggantikannya dengan piksel yang lain.

3. Berdasarkan data observasi maka dapat disimpulkan perbedaan


(58)

size minimum, didapatkan waktu pemrosesan minimum begitupula sebaliknya. Selain itu perbedaan border size juga menghasilkan kualitas citra yang berbeda. Dengan border size maksimum, didapatkan kualitas citra yang baik jika dibandingkan dengan border size minimum.

5.2. Saran

Berdasarkan penelitian yang telah dilakukan, saran yang diberikan adalah sebagai berikut:

1. Dalam pembuatan aplikasi ini masih terdapat beberapa kekurangan dan kelemahan, sehingga dibutuhkan masukan-masukan yang sangat mendukung bagi perkembangan dan kemajuan aplikasi ini.

2. Mencoba metode image inpainting lainnya agar kinerja masing-masing metode dapat dibandingkan.

3. Menggabungkan dengan metode-metode pemugaran citra digital

lainya seperti : image enhancement, image compression, image segmentation dan metode lainnya.


(59)

PEMUGARAN CITRA DIGITAL DENGAN ALGORITMA

EXEMPLAR-BASED IMAGE INPAINTING DAN METODE

SINTESIS TEKSTUR

(Skripsi)

Oleh

Cindy Trias Puspita

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM JURUSAN MATEMATIKA PROGRAM STUDI ILMU KOMPUTER

UNIVERSITAS LAMPUNG BANDAR LAMPUNG


(60)

Halaman

SANWACANA ... i

DAFTAR ISI ... iii

DAFTAR GAMBAR ... iv

DAFTAR LAMPIRAN ... vi

I. PENDAHULUAN 1.1 Latar Belakang dan Masalah ... 1

1.2 Rumusan Masalah ... 3

1.3 Batasan Masalah... 3

1.3 Tujuan Penelitian ... 3

1.4 Manfaat Penelitian ... 4

II. TINJAUAN PUSTAKA 2.1 Citra ... 5

2.2 Pengolahan Citra Digital ... 7

2.2.1 Operasi Pengolahan Citra Digital ... 8

2.2.2 Elemen-Sistem Pemrosesan Citra Digital ... 12


(61)

2.4 Tekstur Sintesis ... 17

2.5 Inpainting ... 19

III. METODOLOGI PENELITIAN 3.1 Peralatan Pendukung ... 25

3.2 Metode Pengumpulan Data ... 26

3.3 Metode Pengembangan Sistem ... 26

IV. PEMBAHASAN 4.1 Perancangan Aplikasi ... 31

4.1.1 Akusisi Data ... 32

4.1.2 Algoritma Exemplar-Based Image Inpainting ... 33

4.1.3 Hasil Akhir Aplikasi ... 36

4.2 Tampilan Sistem ... 36

4.2.1 Menu File Toolbar ... 37

4.2.2 Menu Toolbox ... 38

4.2.3 Menu Help and About ... 40

4.2.4 Direct Menu ... 41

4.3 Pembahasan ... 43

4.3.1 Alur Proses Aplikasi ... 47

4.3.2 Observasi ... 50

V. KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 55

5.2 Saran ... 56 DAFTAR PUSTAKA


(62)

Gambar Halaman

2.1 Contoh Penajaman Citra ... 9

2.2 Contoh Penghilangan Derau ... 10

2.3 Contoh Pendeteksian Tepi... 11

2.4 Elemen Pemrosesan Citra ... 14

2.5 Contoh Tekstur Sintesis ... 17

2.6 Proses Dasar Inpainting ... 20

2.7 Contoh Image Inpainting ... 20

2.8 Contoh Pengisian Daerah Hilang dengan Image Inpainting ... 21

2.9 Struktur Perambatan Exemplar-based... 22

2.10 Notasi Diagram ... 23

3.1 Operasi Dasar Pengolahan Citra ... 26

3.2 Fase-fase Pengembangan ... 27

3.3 Design Interface Figure 1 ... 28

3.4 Design Interface Figure 2 ... 29

3.5 Ilustrasi Metodologi Penelitian ... 30

4.1 Diagram Alir ... 31

4.2 Source Code Evaluasi Jarak dan Gradient ... 33

4.3 Source Code Penentuan Batas Prioritas Paling Tinggi Patch ... 34

4.4 SourceCode Penetuan Indeks Patch ... 35

4.5 Source Code Menemukan Patch Menyerupai Source Region ... 35

4.6 Tampilan Utama Aplikasi ... 36

4.7 Menu File Toolbar ... 37

4.8 Menu Toolbox ... 38


(63)

4.10 Menu Help and About ... 40

4.11 Direct Menu ... 41

4.12 Source Code Membuka Citra dengan Tombol Input Citra ... 43

4.13 Source Code Membuka Citra dengan Menu Open Citra ... 43

4.14 Input Citra ... 44

4.15 Source Code Membuka Gambar dengan Tombol Input Mask ... 45

4.16 Source Code Membuka Gambar dengan Menu Open Mas ... 45

4.17 Citra Mask ... 45

4.18 Pemrosesan Pemugaran Citra Digital ... 48

4.19 Hasil Pemrosesan Pemugaran Citra Digital ... 49

4.20 Hasil Pemugaran Citra Digital Pada Figure 2 ... 49

4.21 Hasil Pemugaran Citra Tua ... 50

4.22 Hasil Pemugaran Citra Menghilangkan Objek ... 51

4.23 Hasil Pemugaran Citra Menghilangkan Objek Berupa Teks ... 51

4.24 Hasil Pemugaran Citra Grayscale ... 52


(64)

Bertalmio, M., Sapiro, G., Caselles, V., Ballester, C., 2000, “Image Inpainting”, Computer Graphics (SIGGRAPH), pp.417-424, New Orleans, July 2000.

Bowen, Brian. 2001. “Fast Digital Image Inpainting” Diakses 26 Februari 2010, 09.41 WIB.

http://www.cs.huji.ac.il/~yweiss/inpainting.pdf

Criminisi, A., Perez , P. and Toyama , K, 2003, “Object Removal by Exemplar

-Based Inpainting”, Proceedings of the 2003 IEEE Computer Society Conference

on Computer Vision and Pattern Recognition (CVPR „03).

Fadliansyah. 2007. Computer Vision dan Pengolahan Citra. Andi: Yogyakarta.

Gonzales , RC. dan Woods, RE., Digital Image Processing, Addison-Wesley publishing Company, 1993.

Grossauer, H, A Combine PDE and Texture Synthesis Approach to Inpainting, Diakses 23 Mei 2010, 16.22 WIB


(65)

Holm, Randi. 2005. “Image Inpainting Using Nonlinear Partiak Differential

Equations”. Diakses 1Februari 2010, 14.49 WIB

http://folk.uib.no/nmaxt/thesis/randi.pdf

Munir, Rinaldi. 2004. Pengolahan Citra Digital dengan Pendekatan Algoritmik. Infotmatika: Bandung.

Wijaya. Marvin Ch. 2007. Pengolahan Citra Digital Menggunakan MATLAB


(66)

Nama : CINDY TRIAS PUSPITA

Tempat lahir : JAKARTA

Tanggal lahir : 5 MEI 1988

Agama : ISLAM

NPM : 0617032046

Fakultas : MIPA

Jurusan/Program Studi : MATEMATIKA/ILMU KOMPUTER

IPK : 3, 23

Tgl lulus ujian skripsi : 9 AGUSTUS 2010

Alamat : KOMP DPR RI II BLOK E.4 RT 10/02

MERUYA SELATAN, JAKARTA BARAT

Asal SMA : SMA NEGERI 85 JAKARTA

Nama Orang Tua : EDDY MURANTORO

Pembimbing Skripsi : 1. AKMAL JUNAIDI, M.Sc. 2. RANGGA FIRDAUS, M.Kom. Penguji Skripsi : DWI SAKETHI, M.Kom.

Test Kemampuan B. Inggris : 1. Nomor : 5014/H26/14/DT/2010 2. Tanggal : 8 JULY 2010

3. Nilai : 407

Judul Skripsi :

PEMUGARAN CITRA DIGITAL

DENGAN ALGORITMA

EXEMPLAR-BASED IMAGE INPAINTING DAN

METODE SINTESIS TEKSTUR


(67)

Penulis dilahirkan di Jakarta, pada tanggal 5 Mei 1988, sebagai anak ketiga dari tiga bersaudara dari Bapak Eddy Murwantoro dan Ibu Asmalela Arief.

Pendidikan Taman Kanan-kanak (TK) Risanti IV, Kembangan Jakarta Barat, diselesaikan tahun 1994. Sekolah Dasar (SD) selama 6 tahun di SD Negeri 1 Meruya Selatan, Kembangan Jakarta Barat dan menyelesaikan pada tahun 2000. Menyelesaikan Sekolah Lanjutan Tingkat Pertama (SLTP) di SLTP Negeri 206 Jakarta, Kembangan Jakarta Barat pada tahun 2003. Selanjutnya Sekolah Menengah Atas (SMA) pada SMA Negeri 85 Jakarta, Kebun Jeruk Jakarta Barat pada tahun 2006.

Tahun 2006, penulis terdaftar sebagai mahasiswa Jurusan Matematika Program Studi Ilmu Komputer FMIPA Unila. Pada tahun 2009, penulis melakukan Kerja Praktek (KP) di PT. TELKOM divisi Multimedia Jakarta.


(68)

(69)

seluruh kehidupan, berkat rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini.

Skripsi dengan judul “ Pemugaran Citra Digital Dengan Algoritma Exemplar-Based Image Inpainting dan Metode Sintesis Tekstur” adalah salah satu syarat untuk memperoleh Gelar Sarjana Komputer di Universitas Lampung.

Dalam kesempatan ini penulis mengucapkan terima kasih kepada:

1. Bapak Akmal Junaidi, M.Sc., selaku Pembimbing Utama dan juga Ketua Program Studi Ilmu Komputer atas kesediaanya untuk memberikan bimbingan, saran dan kritik dalam proses penyelesaian skripsi ini.

2. Bapak Rangga Firdaus, M.Kom., selaku Pembimbing Kedua atas kesediaanya untuk memberikan bimbingan, saran dan kritik dalam proses penyelesaian skripsi ini,

3. Bapak Dwi Sakethi, M.Kom., Selaku Penguji Utama pada ujian skripsi. Terimakasih untuk masukan dan saran-saran yang diberikan.

4. Bapak Dr.Eng.Admi Syarif Selaku Pembimbing Akademik, yang telah membantu dalam proses perkuliahan selama ini.

5. Bapak Tiryono Ruby, M.Sc., Ph.D. Selaku Ketua Jurusan Matematika 6. Bapak Dr. Suyarso, M.S., Selaku Dekan FMIPA Unila.

7. Seluruh Dosen Ilmu Komputer Universitas Lampung.


(70)

lelah memberiku semangat Love You Dan n MoM.

10.Kedua Kakakku Tercinta Mas Andrie dan Mas Hendra yang selalu memberikan doa dan dukungannya.

11.Sahabat-sahabat Terbaikku Sherly Amelia, Cempaka Putri, Yunda Heningtyas, dan Annisa Sofyanti. Terima kasih buat dukunganya Udangs. 12. Sahabat-sahabat Kosan. Reni, erni, ima, juni thanks yagh

13.Sahabat-sahabat ”Friends Forever” Chintya, Indry Juan, Dilla Debriani, Rya Julian, Rasyid Ridla, Kristieaji n Agra Maetirtara. Rizka Pertiwi serta

Sahabat ”D-Ceps”. Pandu Andrean, Ba’diah, Elly, dan Safira. Makasih semuannya 

14.Sahabat-sahabatku Ilmu Komputer 2006 isah, adit, ruli, OoM (adi), QQ, Pabian, rudi, yusuf, Mery, astri, restu, mayang, Ajeng, Tahta, Muiz, Bayu, Erwin, rico, TB, dika, rika, mada, dwi, rere, sani, rika, icha, joy, putra, dan seluruh Ilmu komputer 2006

15.Kakak – kakak Ilmu Komputer angkatan 2005, mba fasih, ma ratih, mba maria, mba uya, mba selva, mba JJ, kak ryan, kak wawan, kak Nuril, kak anggie, mba rika, mba septi dll..

16.Adik – adik Ilmu Komputer angkatan 2007 – 2009 yang tidak dapat disebutkan satu persatu, terimakasih atas kebersamaannya dan kenangannya selama ini.


(71)

skripsi ini.

Akhir kata, penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, akan tetapi sedikit harapan semoga skripsi yang sederhana ini dapat berguna dan bermanfaat bagi kita semua. Amin.

Bandar Lampung, Agustus 2010 Penulis


(1)

DATA LULUSAN

Nama : CINDY TRIAS PUSPITA

Tempat lahir : JAKARTA

Tanggal lahir : 5 MEI 1988

Agama : ISLAM

NPM : 0617032046

Fakultas : MIPA

Jurusan/Program Studi : MATEMATIKA/ILMU KOMPUTER

IPK : 3, 23

Tgl lulus ujian skripsi : 9 AGUSTUS 2010

Alamat : KOMP DPR RI II BLOK E.4 RT 10/02

MERUYA SELATAN, JAKARTA BARAT

Asal SMA : SMA NEGERI 85 JAKARTA

Nama Orang Tua : EDDY MURANTORO

Pembimbing Skripsi : 1. AKMAL JUNAIDI, M.Sc. 2. RANGGA FIRDAUS, M.Kom. Penguji Skripsi : DWI SAKETHI, M.Kom.

Test Kemampuan B. Inggris : 1. Nomor : 5014/H26/14/DT/2010 2. Tanggal : 8 JULY 2010

3. Nilai : 407

Judul Skripsi :

PEMUGARAN CITRA DIGITAL

DENGAN ALGORITMA

EXEMPLAR-BASED IMAGE INPAINTING DAN

METODE SINTESIS TEKSTUR


(2)

RIWAYAT HIDUP

Penulis dilahirkan di Jakarta, pada tanggal 5 Mei 1988, sebagai anak ketiga dari tiga bersaudara dari Bapak Eddy Murwantoro dan Ibu Asmalela Arief.

Pendidikan Taman Kanan-kanak (TK) Risanti IV, Kembangan Jakarta Barat, diselesaikan tahun 1994. Sekolah Dasar (SD) selama 6 tahun di SD Negeri 1 Meruya Selatan, Kembangan Jakarta Barat dan menyelesaikan pada tahun 2000. Menyelesaikan Sekolah Lanjutan Tingkat Pertama (SLTP) di SLTP Negeri 206 Jakarta, Kembangan Jakarta Barat pada tahun 2003. Selanjutnya Sekolah Menengah Atas (SMA) pada SMA Negeri 85 Jakarta, Kebun Jeruk Jakarta Barat pada tahun 2006.

Tahun 2006, penulis terdaftar sebagai mahasiswa Jurusan Matematika Program Studi Ilmu Komputer FMIPA Unila. Pada tahun 2009, penulis melakukan Kerja Praktek (KP) di PT. TELKOM divisi Multimedia Jakarta.


(3)

(4)

SANWACANA

Puji syukur penulis panjatkan kehadirat Allah SWT Dzat yang menciptakan seluruh kehidupan, berkat rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini.

Skripsi dengan judul “ Pemugaran Citra Digital Dengan Algoritma Exemplar-Based Image Inpainting dan Metode Sintesis Tekstur” adalah salah satu syarat untuk memperoleh Gelar Sarjana Komputer di Universitas Lampung.

Dalam kesempatan ini penulis mengucapkan terima kasih kepada:

1. Bapak Akmal Junaidi, M.Sc., selaku Pembimbing Utama dan juga Ketua Program Studi Ilmu Komputer atas kesediaanya untuk memberikan bimbingan, saran dan kritik dalam proses penyelesaian skripsi ini.

2. Bapak Rangga Firdaus, M.Kom., selaku Pembimbing Kedua atas kesediaanya untuk memberikan bimbingan, saran dan kritik dalam proses penyelesaian skripsi ini,

3. Bapak Dwi Sakethi, M.Kom., Selaku Penguji Utama pada ujian skripsi. Terimakasih untuk masukan dan saran-saran yang diberikan.

4. Bapak Dr.Eng.Admi Syarif Selaku Pembimbing Akademik, yang telah membantu dalam proses perkuliahan selama ini.

5. Bapak Tiryono Ruby, M.Sc., Ph.D. Selaku Ketua Jurusan Matematika 6. Bapak Dr. Suyarso, M.S., Selaku Dekan FMIPA Unila.

7. Seluruh Dosen Ilmu Komputer Universitas Lampung.


(5)

9. Kedua orangtuaku tercinta yang selalu memberikan doa dan dukungan kepadaku ketika aku sangat membutuhkan itu semua. Yang tak pernah lelah memberiku semangat Love You Dan n MoM.

10.Kedua Kakakku Tercinta Mas Andrie dan Mas Hendra yang selalu memberikan doa dan dukungannya.

11.Sahabat-sahabat Terbaikku Sherly Amelia, Cempaka Putri, Yunda Heningtyas, dan Annisa Sofyanti. Terima kasih buat dukunganya Udangs. 12. Sahabat-sahabat Kosan. Reni, erni, ima, juni thanks yagh

13.Sahabat-sahabat ”Friends Forever” Chintya, Indry Juan, Dilla Debriani, Rya Julian, Rasyid Ridla, Kristieaji n Agra Maetirtara. Rizka Pertiwi serta Sahabat ”D-Ceps”. Pandu Andrean, Ba’diah, Elly, dan Safira. Makasih semuannya 

14.Sahabat-sahabatku Ilmu Komputer 2006 isah, adit, ruli, OoM (adi), QQ, Pabian, rudi, yusuf, Mery, astri, restu, mayang, Ajeng, Tahta, Muiz, Bayu, Erwin, rico, TB, dika, rika, mada, dwi, rere, sani, rika, icha, joy, putra, dan seluruh Ilmu komputer 2006

15.Kakak – kakak Ilmu Komputer angkatan 2005, mba fasih, ma ratih, mba maria, mba uya, mba selva, mba JJ, kak ryan, kak wawan, kak Nuril, kak anggie, mba rika, mba septi dll..

16.Adik – adik Ilmu Komputer angkatan 2007 – 2009 yang tidak dapat disebutkan satu persatu, terimakasih atas kebersamaannya dan kenangannya selama ini.


(6)

17.Seluruh pihak yang telah telah membantu penulis yang tidak dapat disebutkan satu persatu, atas peran dan dukungannya dalam penyelesaian skripsi ini.

Akhir kata, penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, akan tetapi sedikit harapan semoga skripsi yang sederhana ini dapat berguna dan bermanfaat bagi kita semua. Amin.

Bandar Lampung, Agustus 2010 Penulis