• Tidak ada hasil yang ditemukan

Pemampatan Citra Dengan Metode Singular Value Decomposition (SVD)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pemampatan Citra Dengan Metode Singular Value Decomposition (SVD)"

Copied!
51
0
0

Teks penuh

(1)

ABSTRAK

TB. MOCH. YULIA RAHMAN. Pemampatan Citra dengan Metode Singular Value Decomposition

(SVD). Dibimbing oleh FAHREN BUKHARI dan YENI HERDIYENI.

Citra digital semakin banyak dibutuhkan sebagai pembawa informasi. Namun data citra membutuhkan jumlah bit yang cukup besar. Pemampatan citra dilakukan agar biaya penyimpanan dan biaya transmisi citra digital bisa dikurangi, dengan cara mengurangi data yang dibutuhkan untuk merepresentasikan citra. Metode pemampatan citra yang banyak dikembangkan yaitu berbasis

Transform Coding. Pada penelitian ini dilakukan implementasi metode pemampatan citra berbasis

Transform Coding yang menggunakan transformasi SVD. Bahasa Pemrograman yang dipakai adalah

MATLAB 7.0.

Proses pertama dalam menghasilkan file citra termampatkan adalah transformasi SVD, yang akan menghasilkan data penting dan data tidak penting berupa vektor-vektor dan nilai-nilai singular berdasarkan skema energi. Dalam penelitian ini digunakan dua nilai presentase energi citra yang dipertahankan, yaitu 95% dan 99%. Hanya data yang dianggap penting yang akan disimpan dalam file

citra termampatkan. Namun sebelumnya data-data berupa nilai singular dan vektor singular ini dikuantisasi terlebih dahulu dengan kuantisasi skalar ataupun kuantisasi vektor (VQ), agar jumlah bit

yang dibutuhkan untuk penyimpanan data penting ini menjadi kecil. File citra asli yang dimampatkan pada penelitian ini adalah file citra Grayscale dengan format BMP atau Bitmap.

Pengujian dilakukan pada enam citra uji dengan parameter pengujian β, presentase energi citra yang dipertahankan yaitu 95% atau 0.95 dan 99% atau 0.99. Hasil percobaan yang dicatat berupa nilai

Bit Per Pixel (BPP) yang menunjukkan efisiensi pemampatan, nilai kualitas citra berupa Peak

Signal-to-Noise Ratio (PSNR) dan waktu pemampatan citra. Hasil pemampatan citra SVD juga dibandingkan

dengan hasil pemampatan citra JPEG pada BPP yang mendekati. Pemampatan citra JPEG disini dihasilkan oleh fungsi MATLAB imwrite.

Sistem dibangun dengan graphical user interface (GUI) agar lebih mudah digunakan. Hasil penelitian menunjukkan bahwa SVD telah berhasil digunakan dalam upaya memampatkan citra secara

lossy, dengan β adalah parameter yang digunakan untuk menentukan kualitas citra dan efisiensi

pemampatan. Nilai β yang rendah menyebabkan efisiensi pemampatan semakin baik, sedangkan nilai

β yang tinggi menghasilkan citra hasil pemampatan yang lebih baik dari sisi kualitas. Perbandingan dengan metode pemampatan citra JPEG menunjukkan bahwa JPEG masih lebih baik. Pada BPP yang mendekati, kualitas citra hasil pemampatan JPEG selalu lebih baik dibandingkan dengan kualitas citra hasil pemampatan SVD. Ini disebabkan JPEG menerapkan pemampatan data lebih lanjut untuk mengkodekan data hasil transformasi dan kuantisasi dengan menggunakan pemampatan data lossless.

(2)

PEMAMPATAN CITRA DENGAN METODE

SINGULAR VALUE DECOMPOSITION

(SVD)

Oleh :

TB. MOCH. YULIA RAHMAN

G06400036

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(3)

1

PENDAHULUAN

Latar Belakang

Pada saat ini penampilan informasi dalam bentuk citra semakin banyak dibutuhkan. Hal ini tidak lepas dari karakteristik citra yang cenderung mudah dipahami. Surat kabar, televisi, dan situs web di internet adalah sebagian contoh media yang banyak menampilkan informasi dalam bentuk citra.

Dibandingkan dengan citra dalam media konvensional seperti kertas, citra digital lebih mudah untuk diproses sesuai kebutuhan. Selain itu citra digital lebih mudah dalam hal transmisinya ke tempat lain. Namun demikian, jumlah bit yang dibutuhkan oleh data citra cukup besar, dan akibatnya waktu yang dibutuhkan dalam transmisinya ke tempat lain melalui saluran komunikasi juga cukup lama. Oleh karena itu upaya untuk memperkecil kebutuhan ruang penyimpanan dari citra digital menjadi sangat penting, agar dalam transmisinya melalui saluran komunikasi juga menjadi lebih cepat.

Pemampatan citra bertujuan meminimalkan kebutuhan ruang penyimpanan untuk merepresentasikan citra digital. Prinsip umum yang digunakan pada proses pemampatan citra adalah mengurangi redundansi data di dalam citra sehingga ruang penyimpanan yang dibutuhkan untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra semula (Munir, 2004).

Salah satu metode pemampatan citra yang banyak diterapkan adalah Transform Coding.

Pada pemampatan citra berbasis Transform

Coding, matriks citra didekomposisi dengan

tujuan untuk memadatkan sebanyak mungkin informasi citra ke dalam sejumlah kecil koefisien transformasi. Dengan demikian koefisien-koefisien transformasi lain yang kurang penting yaitu koefisien transformasi yang memuat sedikit informasi citra dapat dikuantisasi secara kasar atau bahkan diabaikan, sehingga efisiensi pemampatan bisa lebih baik.

Singular Value Decomposition (SVD)

merupakan suatu teknik transformasi yang penting dalam pemampatan citra, karena transformasi ini memungkinkan efisiensi pemadatan informasi yang optimal untuk sembarang citra (Jain, 1989). Namun selain koefisien transformasi yang berupa nilai singular, proses transformasi citra dengan SVD juga menghasilkan vektor-vektor singular yang juga perlu disimpan bersama dengan koefisien transformasi. Vector Quantization (VQ) adalah teknik kuantisasi yang bekerja pada vektor. Pada VQ, pemampatan data vektor didapat

dengan hanya menyimpan indeks dari vektor tersebut, dimana dalam pengkodean dan pendekodeannya mengacu pada sejenis tabel yang disebut codebook .

Pemampatan citra SVD yang Hybrid

dengan DCT dikembangkan oleh Wongsawat et al (2004), menggunakan Adaptive Multistage

Vector Quantization (AMVQ) dalam

pengkodean vektor-vektor singular SVD. Karya ilmiah ini akan membahas dan mendemonstrasikan kerja pemampatan citra SVD berdasarkan skema yang diperkenalkan oleh Wongsawat et al. (2004).

Tujuan

Adapun tujuan dilakukannya penelitian ini adalah :

1. Mempelajari dan mengimplementasikan metode pemampatan citra berbasiskan transformasi Singular Value Decomposition

(SVD).

2. Menganalisa kinerja metode pemampatan citra SVD yang diukur dari kualitas citra hasil pemampatan (Peak Signal To Noise

Ratio) dan efisiensi pemampatan (Bit Per

Pixel), serta membandingkannya dengan

kinerja metode pemampatan citra Joint

Photographic Experts Group (JPEG).

Ruang Lingkup

Dalam penelitian ini dibuat suatu sistem yang dapat memampatkan citra dan merekonstruksi citra hasil pemampatan dengan metode SVD, dimana citra asli yang akan dimampatkan adalah citra dengan format bitmap

(BMP) 8-bit per pixel skala keabuan

(grayscale). Pemampatan citra terutama

difokuskan pada citra digital fotografi.

Manfaat

Hasil penelitian ini diharapkan dapat memberikan alternatif dalam pemilihan metode pemampatan citra yang terbaik.

TINJAUAN PUSTAKA

Citra Digital

Sebuah citra dapat didefinisikan sebagai sebuah fungsi dua dimensi f(x,y), dimana x dan y menunjukkan koordinat spasial, dan nilai f pada sembarang koordinat (x,y) disebut intensitas atau kecerahan citra pada titik tersebut. Ketika x, y, dan nilai f berbentuk diskret berhingga, maka citra itu disebut sebuah citra digital (Gonzales & Woods, 2002).

Sebuah citra digital dapat ditampilkan dalam bentuk matriks berdimensi m

×

n, dengan m
(4)

PENDAHULUAN

Latar Belakang

Pada saat ini penampilan informasi dalam bentuk citra semakin banyak dibutuhkan. Hal ini tidak lepas dari karakteristik citra yang cenderung mudah dipahami. Surat kabar, televisi, dan situs web di internet adalah sebagian contoh media yang banyak menampilkan informasi dalam bentuk citra.

Dibandingkan dengan citra dalam media konvensional seperti kertas, citra digital lebih mudah untuk diproses sesuai kebutuhan. Selain itu citra digital lebih mudah dalam hal transmisinya ke tempat lain. Namun demikian, jumlah bit yang dibutuhkan oleh data citra cukup besar, dan akibatnya waktu yang dibutuhkan dalam transmisinya ke tempat lain melalui saluran komunikasi juga cukup lama. Oleh karena itu upaya untuk memperkecil kebutuhan ruang penyimpanan dari citra digital menjadi sangat penting, agar dalam transmisinya melalui saluran komunikasi juga menjadi lebih cepat.

Pemampatan citra bertujuan meminimalkan kebutuhan ruang penyimpanan untuk merepresentasikan citra digital. Prinsip umum yang digunakan pada proses pemampatan citra adalah mengurangi redundansi data di dalam citra sehingga ruang penyimpanan yang dibutuhkan untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra semula (Munir, 2004).

Salah satu metode pemampatan citra yang banyak diterapkan adalah Transform Coding.

Pada pemampatan citra berbasis Transform

Coding, matriks citra didekomposisi dengan

tujuan untuk memadatkan sebanyak mungkin informasi citra ke dalam sejumlah kecil koefisien transformasi. Dengan demikian koefisien-koefisien transformasi lain yang kurang penting yaitu koefisien transformasi yang memuat sedikit informasi citra dapat dikuantisasi secara kasar atau bahkan diabaikan, sehingga efisiensi pemampatan bisa lebih baik.

Singular Value Decomposition (SVD)

merupakan suatu teknik transformasi yang penting dalam pemampatan citra, karena transformasi ini memungkinkan efisiensi pemadatan informasi yang optimal untuk sembarang citra (Jain, 1989). Namun selain koefisien transformasi yang berupa nilai singular, proses transformasi citra dengan SVD juga menghasilkan vektor-vektor singular yang juga perlu disimpan bersama dengan koefisien transformasi. Vector Quantization (VQ) adalah teknik kuantisasi yang bekerja pada vektor. Pada VQ, pemampatan data vektor didapat

dengan hanya menyimpan indeks dari vektor tersebut, dimana dalam pengkodean dan pendekodeannya mengacu pada sejenis tabel yang disebut codebook .

Pemampatan citra SVD yang Hybrid

dengan DCT dikembangkan oleh Wongsawat et al (2004), menggunakan Adaptive Multistage

Vector Quantization (AMVQ) dalam

pengkodean vektor-vektor singular SVD. Karya ilmiah ini akan membahas dan mendemonstrasikan kerja pemampatan citra SVD berdasarkan skema yang diperkenalkan oleh Wongsawat et al. (2004).

Tujuan

Adapun tujuan dilakukannya penelitian ini adalah :

1. Mempelajari dan mengimplementasikan metode pemampatan citra berbasiskan transformasi Singular Value Decomposition

(SVD).

2. Menganalisa kinerja metode pemampatan citra SVD yang diukur dari kualitas citra hasil pemampatan (Peak Signal To Noise

Ratio) dan efisiensi pemampatan (Bit Per

Pixel), serta membandingkannya dengan

kinerja metode pemampatan citra Joint

Photographic Experts Group (JPEG).

Ruang Lingkup

Dalam penelitian ini dibuat suatu sistem yang dapat memampatkan citra dan merekonstruksi citra hasil pemampatan dengan metode SVD, dimana citra asli yang akan dimampatkan adalah citra dengan format bitmap

(BMP) 8-bit per pixel skala keabuan

(grayscale). Pemampatan citra terutama

difokuskan pada citra digital fotografi.

Manfaat

Hasil penelitian ini diharapkan dapat memberikan alternatif dalam pemilihan metode pemampatan citra yang terbaik.

TINJAUAN PUSTAKA

Citra Digital

Sebuah citra dapat didefinisikan sebagai sebuah fungsi dua dimensi f(x,y), dimana x dan y menunjukkan koordinat spasial, dan nilai f pada sembarang koordinat (x,y) disebut intensitas atau kecerahan citra pada titik tersebut. Ketika x, y, dan nilai f berbentuk diskret berhingga, maka citra itu disebut sebuah citra digital (Gonzales & Woods, 2002).

Sebuah citra digital dapat ditampilkan dalam bentuk matriks berdimensi m

×

n, dengan m
(5)

2

baris dan kolom matriks tersebut seperti

diilustrasikan pada Gambar 1.

y

f(x1,y1) f(x1,y2) . . . f(x1,yn)

f(x2,y1) . . . . . .

f(xm,y1) . . . f(xm,yn)

x 1 pixel

Gambar 1. Representasi citra m×n

Setiap elemen matriks tersebut menunjukkan nilai elemen citra (pixel). Suatu citra dengan format 8 bit memiliki 256 intesitas warna pada setiap elemen citranya, nilai 0 untuk tingkat paling gelap dan 255 untuk tingkat yang paling terang (Gonzales & Woods 2002).

Pemampatan Citra

Pada umumnya representasi citra digital membutuhkan ruang penyimpanan yang cukup besar. Sebagai contoh sebuah citra bitmap 1024

×

768 pixel dengan format 8-bit membutuhkan 768 KB ruang penyimpanan. Besarnya jumlah data yang berkaitan dengan informasi citra digital merupakan sebuah masalah yang bisa mengakibatkan mahalnya biaya penyimpanan, misalnya space dalam harddisk, dan biaya transmisi.

Pemampatan citra dapat mengatasi masalah besarnya kebutuhan ruang penyimpanan citra dan lamanya waktu transmisi. Hal utama dalam proses pengurangan jumlah data citra adalah penghilangan redundansi data (Gonzales & Woods, 2002).

Dua buah citra digital dengan jumlah data yang berbeda dapat merepresentasikan satu informasi yang sama. Ini artinya salah satu citra mengandung redundansi data, yaitu memuat data yang tidak memiliki informasi yang relevan atau data yang hanya mengulang sesuatu yang telah diketahui sebelumnya. Pemampatan citra dicapai dengan mengurangi ataupun menghilangkan satu atau lebih diantara ketiga jenis redundansi data sebagai berikut (Gonzales & Woods, 2002) :

1. Coding Redundancy, adalah redundansi

yang terjadi karena jumlah bit yang

digunakan untuk merepresentasikan sebuah kode terlalu banyak.

2. Interpixel Redundancy, adalah redundansi

yang terjadi karena tingginya korelasi antara satu pixel dengan pixel lainnya, artinya nilai intensitas warna pixel yang saling bersebelahan seringkali sama. Sehingga sebenarnya nilai intensitas warna pixel dapat diprediksi dari intensitas warna pixel

tetangganya.

3. Psychovisual Redundancy, adalah

redundansi yang terjadi karena mata manusia tidak merespon dengan kepekaan yang sama terhadap semua informasi visual. Beberapa informasi memiliki tingkat kepentingan yang lebih rendah dibandingkan dengan informasi lain. Sehingga bisa dihilangkan tanpa berpengaruh signifikan terhadap pemahaman atas citra secara keseluruhan.

Metode pemampatan citra dapat diklasifikasikan ke dalam dua kelompok besar yaitu (Munir, 2004) :

1. Metode lossless, adalah metode pemampatan citra yang merekonstruksi citra hasil pemampatan identik pixel demi pixel

dengan citra semula yang belum dimampatkan. Tidak ada informasi yang hilang akibat pemampatan. Metode ini cocok untuk memampatkan citra yang mengandung informasi penting yang tidak boleh rusak akibat pemampatan. Misalnya memampatkan gambar hasil diagnosa medis. 2. Metode lossy, adalah metode pemampatan citra yang merekonstruksi citra hasil pemampatan hampir sama dengan citra semula. Biasanya ada sedikit informasi yang hilang akibat pemampatan, tetapi dapat ditolerir oleh persepsi mata. Dengan menggunakan metode ini, efisiensi pemampatan bisa lebih baik.

Singular Value Decomposition (SVD)

SVD adalah suatu teknik untuk mentransformasi matriks. Pada pemampatan citra berbasiskan Transform Coding, transformasi matriks citra dilakukan untuk memetakan sinyal citra menjadi representasi lain yang lebih cocok untuk pemampatan. Dalam hal ini matriks citra ditransformasi sehingga sebagian besar dari informasi citra terkonsentrasi ke dalam koefisien-koefisien transformasi yang jumlahnya relatif kecil, untuk kemudian dikuantisasi dan dikodekan (Jain, 1989).

(6)

2

1 1 1

( , )

'( , )

m n r

i

i j i k

A i j

A i j

λ

= = = +

=

∑∑

1

,

k k i i

ε

λ

=

=

informasi kedalam sejumlah kecil koefisien transformasi. Proses kuantisasi kemudian secara selektif mengeliminasi atau mengkuantisasi secara lebih kasar koefisien yang membawa informasi paling sedikit. Koefisien-koefisien ini memiliki pengaruh yang paling kecil terhadap kualitas citra yang akan direkonstruksi (Gonzales & Woods, 2002).

Transformasi SVD memungkinkan sebagian besar informasi citra termuat dalam sedikit koefisien transformasi, sedangkan sebagian besar koefisien lain menjadi tidak penting. Jika A adalah sebuah matriks dengan dimensi m

×

n, maka SVD dari A adalah (Wongsawat et al, 2004):

T

A U

= ∑

V

dimana U dan V adalah matriks orthogonal yang masing-masing berdimensi m

×

m dan n

×

n, dan Σ adalah matriks koefisien transformasi m

×

n yang semua elemen selain diagonalnya bernilai 0.

11 1 1

1

k n

m mk mn

a

a

a

A

a

a

a

= ⎜

K

K

M

O

M

L

L

(

1 2

...

k

...

m

)

U

=

u u

u

u

(

1

... ...

2

)

T T

k n

V

=

v v

v

v

Σ = diag (σ1, ... ,σmin(m,n))

Dimana σi adalah nilai singular ke-i. ui

adalah vektor kolom ke-i dari U dan vi adalah

vektor kolom ke-i dari V. Vektor ui disebut vektor singular kiri dari σi, sedangkan vektor vi

disebut vektor singular kanan dari σi.

Vektor-vektor singular kiri tidak lain adalah vektor ciri-vektor ciri dari AAT,, sedangkan vektor-vektor singular kanan adalah vektor ciri-vektor ciri dari ATA. Akar ciri-akar ciri dari AAT atau ATA adalah kuadrat dari nilai-nilai singular untuk matriks A. Nilai-nilai singular σi ini tidak lain adalah elemen-elemen diagonal dari matriks Σ dan tersusun dalam urutan dari besar ke kecil. Oleh karena itu kita bisa mendapatkan aproksimasi A dengan menggunakan SVD sebagian:

'

T

k k k

A

=

U

V

Dalam hal ini A’ adalah matriks aproksimasi

rank-k untuk matriks A. Uk dan Vk adalah

matriks yang diambil dari k kolom pertama U

dan V dan Σk = diag (σ1, ... ,σk) dengan k<r.

Seringkali aproksimasi matriks yang sangat baik

bisa didapatkan hanya dengan menggunakan sebagian kecil nilai singular, atau dengan k yang jauh lebih kecil dari r. Besarnya energi atau informasi yang dikandung oleh matriks aproksimasi dapat dihitung (Wongsawat et al, 2004) :

dimana

T T

2

akar ciri dari AA atau A A

i i

λ σ

=

=

Sedangkan Square Error antara matriks A

dengan matriks aproksimasi A’ adalah hasil penjumlahan dari akar ciri yang diabaikan,yaitu (Dapena & Ahalt,2004) :

dimana

λ σ

i

=

i2

.

Kuantisasi Skalar Seragam

Nilai singular-nilai singular hasil transformasi SVD yang akan disimpan nilainya bersifat kontinu dan intervalnya cukup besar. Ini mengakibatkan besarnya jumlah bit yang dibutuhkan dalam penyimpanan. Oleh karena itu perlu dilakukan kuantisasi. Kuantisasi skalar merupakan proses pemetaan sebuah nilai skalar terhadap nilai tertentu yang dianggap mewakilinya, dimana nilai yang mungkin mewakili menjadi terbatasi banyaknya. Nilai-nilai ini disebut level rekonstruksi. Selanjutnya nilai ini diperkecil menjadi suatu nilai indeks sehingga bit yang diperlukan untuk menyimpannya menjadi berkurang. Indeks inilah yang dapat digunakan pada proses dekuantisasi untuk mengetahui level rekonstruksi mana yang mewakili skalar awal tadi.

Sebuah pengkuantisasi skalar seragam

l-level memiliki l+1 level keputusan d0, d1, ... , dl, dan l level rekonstruksi r0, r1, ... , rl-1. di membagi range data ke dalam l interval [d0, d1) [d1, d2) ... [dl-1, dl), dengan panjang interval yang sama yaitu (Spielman, 1996):

0 l

d

d

l

∆ =

dimana dl dan d0 masing-masing adalah nilai maksimum dan nilai minimum dari data yang dikuantisasi.

Kuantisasi terhadap sebuah nilai a artinya menemukan interval [di, di+1) yang memuat a dan mengganti a dengan indeks i.

0

a d

i

= ⎢

(7)

4

Sedangkan proses dekuantisasi

menerjemahkan nilai indeks i ke dalam level rekonstruksi ri yang merupakan rataan dari interval yang relevan, menggunakan rumus :

1

2

i i

i

d

d

r

=

+

+

,

0

i

d

=

d

+ ∆

i

Vector Quantization (VQ)

Selain nilai singular, pemampatan citra SVD juga mensyaratkan pengkodean vektor-vektor singular yang bersesuaian. Vektor-vektor ini dikodekan dengan sebuah teknik kuantisasi yang disebut Vector Quantization (VQ). VQ merupakan teknik kuantisasi yang dilakukan pada sebuah blok, atau sebuah vektor, dari nilai-nilai dalam satu waktu. VQ memetakan vektor-vektor berdimensi u pada ruang vektor Ru ke dalam sebuah himpunan terhingga vektor-vektor Y = {yi : i = 1, 2,...,N} dalam Ru. Setiap vektor yi disebut codevector atau codeword, dan himpunan dari semua codeword disebut

codebook. VQ terdiri dari dua operasi, yaitu

encoder dan decoder. Encoder menerima vektor

input dan menghasilkan output berupa indeks dari codeword yang memberikan distorsi paling minimum. Distorsi paling minimum ini ditentukan berdasarkan jarak euclid antara vektor input dengan setiap codeword dalam

codebook. Jarak euclid antara vektor input x

dengan codeword yi didefinisikan sebagai :

2

1

( , ) ( )

u

i j ij

j

d x y x y

=

=

dimana xj adalah elemen ke-j dari vektor input x,

yijadalah elemen ke-j dari codeword yi, dan u

adalah dimensi vektor. Setelah codeword

terdekat ditemukan, indeks dari codeword inilah

yang akan disimpan dalam media penyimpanan data digital atau dikirimkan melalui saluran komunikasi (Qasem, 2005). Indeks yang menunjukkan codeword membutuhkan ruang penyimpanan yang lebih kecil, sehingga terjadilah pemampatan data.

Ketika decoder menerima indeks ini,

decoder akan mengubahnya kembali menjadi

codeword yang bersesuaian dengan

menggunakan codebook yang identik dengan

codebook pada encoder. Sebagai contoh,

encoder dan decoder VQ dapat dilihat pada

Gambar 2.

Algoritma Linde-Buzo-Gray (LBG)

Codebook yang akan diacu dalam proses VQ dibentuk berdasarkan algoritma LBG. Algoritma ini diperkenalkan oleh Linde, Buzo, dan Gray pada tahun 1980. LBG merupakan salah satu algoritma iteratif dalam pembentukan

codebook dari sebuah himpunan vektor

training. Adapun langkah-langkahnya adalah

sebagai berikut (Qasem, 2005):

1. Tentukan jumlah codeword N atau ukuran

codebook yang akan dibuat.

2. Bentuk codebook awal dengan cara memilih

N codeword secara acak dari training

vector.

3. Dengan menggunakan jarak euclid, kelompokkan vektor input pada codeword. Vektor input menjadi satu kelompok dengan

codeword yang memiliki jarak euclid

minimum.

Rata–rata dari jarak euclid setiap vektor terhadap codewordnya disebut dengan distorsi rata–rata dari codebook tersebut. Variabel inilah yang akan digunakan untuk menentukan tingkat kecocokan dari sebuah

codebook.

(8)

4. Hitung himpunan codeword yang baru berdasarkan kelompok–kelompok yang sudah terbentuk. Codeword baru dibentuk dengan mencari rata–rata dari tiap elemen dari seluruh vektor yang merupakan anggota dari kelompok tersebut.

=

=

m j ij i

x

m

y

1

1

dimana i merupakan indeks komponen dari tiap–tiap vektor, dan m adalah banyaknya vektor yang berada pada kelompok tersebut.

5. Ulangi langkah 3 dan 4 sampai codebok

tidak berubah atau perubahannya kecil. Perubahan codebook dilihat dari rataan distorsi antara training vector dengan codebook. Jika selisih distorsi ternormalisasi dari sebuah iterasi dengan iterasi selanjutnya lebih kecil dari suatu nilai batas, maka algoritma dihentikan (Khan & Smith, 2000).

Seringkali dalam pengelompokkan vektor input menghasilkan satu atau lebih codeword

tidak memiliki anggota. Keadaan ini dapat diatasi dengan beberapa cara, diantaranya dengan memecah codeword yang memiliki anggota paling banyak menjadi dua untuk menggantikan codeword yang tidak memiliki anggota (Khan & Smith, 2000).

Multistage VQ

Ide dasar Multistage VQ adalah untuk membagi tugas pengkodean VQ menjadi beberapa tingkat berurutan. Tingkat pertama melakukan aproksimasi level pertama dari vektor input. Aproksimasi kemudian diperbaiki oleh aproksimasi level kedua yang muncul pada tingkat kedua, untuk kemudian diperbaiki lagi pada tingkat ketiga, dan seterusnya (Khan & Smith, 2000). Pembentukan codebook adalah sebagai berikut: sebuah himpunan vektor

training digunakan untuk membentuk codebook

pertama. Dengan menggunakan codebook ini, sebuah himpunan vektor error dihitung dari

aproksimasi vektor training oleh codebook.

Himpunan vektor error ini kemudian digunakan untuk membentuk codebook untuk tingkat 2, dan seterusnya. Prosedur pengkodeannya dijelaskan dalam gambar 3. Dalam algoritma encoder, pada awalnya vektor input x akan diaproksimasi dengan menggunakan codebook pertama C1.

Selanjutnya vektor error r1 dihitung dan

codebook tingkat kedua C2 digunakan untuk

mengaproksimasi vektor error tingkat pertama r1, dan seterusnya. Algoritma decoder

merekonstruksi vektor aproksimasi xˆsecara sederhana dengan penjumlahan vektor.

Penerapan SVD dalamPemampatan Citra Sebuah citra digital dapat direpresentasikan dengan sebuah matriks m

×

npixel. Oleh karena itu maka matriks citra dapat pula ditransformasi SVD dan diaproksimasi rank-k oleh sebuah matriks baru yang dibangun dengan memakai hanya sebagian kecil nilai singular (yaitu sebanyak k) dan vektor singular yang bersesuaian.

Aproksimasi ini adalah pemampatan selama jumlah bit yang dibutuhkan untuk menyimpan nilai-nilai singular dan vektor-vektor singular yang relevan lebih kecil dibandingkan dengan jumlah bit yang dibutuhkan oleh citra aslinya. Konsep dasar pemampatan citra dengan SVD adalah penggunaan rank-k sekecil mungkin dalam membangun matriks aproksimasi dan pengkodean vektor singular dengan ukuran

codebook yang tidak terlalu besar dalam VQ,

sehingga diharapkan efisiensi pemampatan yang baik bisa dicapai. Namun demikian dalam penerapannya harus diperhitungkan secara bijak agar kualitas citra hasil pemampatan masih cukup baik.

Metode Pemampatan Citra JPEG

JPEG adalah metode pemampatan citra standar yang umum digunakan pada citra fotografi. Nama JPEG merupakan singkatan dari Joint Photographic Experts Group, nama dari komite yang melakukan standarisasi terhadap metode ini (Wikipedia, 2007).

Struktur Encoder JPEG adalah sebagai berikut (Bovik, 2000):

1. Unit transformasi sinyal DCT.

Pada bagian ini dilakukan penghitungan matriks koefisien DCT dari setiap blok 8

×

8

pixel, sehingga informasi citra dipadatkan

kedalam sejumlah kecil koefisien DCT. 2. Pengkuantisasi.

Pengkuantisasi memetakan setiap koefisien DCT ke dalam sebuah level dari bilangan berhingga. Ini dilakukan dengan membagi

a)

b)

Gambar 3. Multistage VQ. a) encoder,

(9)

6

ukuran file termampatkan

bpp = =

banyaknya pada citra

C

pixel N

setiap elemen dari matriks koefisien DCT dengan sebuah elemen yang bersesuaian dari sebuah matriks kuantisasi 8

×

8 yang ditentukan dengan sebuah faktor kualitas. Semakin kecil faktor kualitas maka nilai-nilai elemen matriks kuantisasi semakin besar, sehingga nilai koefisien DCT yang berubah menjadi 0 akan semakin banyak. 3. Unit pemetaan koefisien-ke-simbol.

Koefisien yang telah dikuantisasi dipetakan ke simbol agar pengkodeannya efektif. Matriks koefisien DCT yang telah di kuantisasi dibaca secara zigzag scan, sehingga menghasilkan rangkaian nilai 0 yang bisa dikodekan secara efisien dengan menggunakan Run Length Coding.

4. Unit pengkodean entropy.

Bagian ini menentukan codeword yang tepat bagi simbol input, dan menghasilkan aliran bit yang harus disimpan. Prinsipnya adalah simbol yang sering muncul diwakili oleh

codeword yang lebih pendek, agar bit yang

dibutuhkan bisa lebih kecil. Pengkodean yang dilakukan yaitu menggunakan

Huffman Coding.

Agar dapat menampilkan citra hasil pemampatan JPEG, decoder JPEG melakukan fungsi-fungsi kebalikan dari fungsi-fungsi pada

Encoder.

Kriteria Pengukuran Hasil Pemampatan Parameter yang akan diamati untuk mengukur efisiensi algoritma pemampatan adalah:

• Kualitas pemampatan.

Kualitas sebuah citra bersifat subyektif dan relatif, bergantung pada pengamatan orang yang menilainya. Kualitas hasil pemampatan citra dapat diukur secara kuantitatif dengan menggunakan besaran PSNR (Peak Signal

To Noise Ratio) dalam satuan decibles (dB).

PSNR dihitung untuk mengukur perbedaan antara citra asli dengan citra hasil pemampatan, dengan rumus (Munir, 2004):

10

255

20 log

PSNR

rms

=

×

dengan nilai 255 menunjukkan nilai sinyal terbesar pada citra digital dan rms adalah akar pangkat dua dari selisih antara citra asli dengan citra hasil pemampatan. Nilai rms

dihitung dengan rumus (Munir, 2004):

(

)

2

1 1 ' = m n ij ij i j a a rms m n = = − ×

∑∑

yang dalam hal ini a dan a’ masing-masing menyatakan nilai pixel citra asli dan nilai

pixel citra hasil pemampatan, sedangkan m

dan n masing-masing adalah dimensi baris dan dimensi kolom dari matriks citra. Semakin besar nilai PSNR, semakin bagus kualitas pemampatannya. Nilai PSNR yang umum dalam pemampatan citra berkisar antara 30-40 dB (Wikipedia, 2007).

• Efisiensi Pemampatan.

Keefisienan pemampatan dapat dilihat dari jumlah rata-rata bit per pixel (BPP) pada sebuah citra hasil pemampatan.

Ukuran file termampatkan C yaitu dalam satuan bit.

METODE PENELITIAN

Tahapan pemrosesan yang dilakukan dalam pemampatan citra adalah pengkodean

(encoding), yang memiliki fungsi untuk

memetakan citra menjadi kode, dan pendekodean (decoding) dengan fungsi memetakan kembali kode menjadi citra. Adapun skema penelitian yang dilakukan dapat dilihat pada Gambar 4.

Encoder SVD

Encoder SVD memilah citra asli ke dalam

blok-blok subbagian citra berukuran 8

×

8 pixel.

Selain karena lebih umum, ukuran blok ini juga dipilih dengan pertimbangan langkah VQ akan bekerja pada vektor 1

×

8. Ukuran lebih kecil dari ini mengurangi efisiensi pemampatan vektor, sementara jika lebih besar sangat memberatkan proses pembentukan codebook.

Langkah selanjutnya akan menentukan kualitas citra hasil pemampatan dan BPP yang dibutuhkan. Ini dilakukan dengan cara memilih nilai singular mana saja yang perlu disimpan dan nilai singular mana yang dapat diabaikan (selanjutnya dianggap nol). Pemilihan nilai singular yang dianggap penting adalah berdasarkan presentase informasi. Tingkat kepentingan nilai singular dihitung mulai dari nilai singular pertama dengan acuan nilai batas. Jika kuadrat dari nilai nilai singular pertama melebihi nilai batas, maka hanya nilai singular pertama yangdipertahankan. Namun jika tidak,

(10)

8

2 2

1 1

dimana 1,...,8 dan 0.95 atau 0.99

k

k i i

i i k

ε

σ

β σ

β

= = = ≥ = =

energi atau informasi. Seperti yang terlihat pada rumus :

Proses ini menghasilkan berapa banyak nilai singular yang signifikan agar blok aproksimasi memiliki 95% atau 99% informasi. Banyaknya nilai singular signifikan menunjukkan rank k yang akan dipakai dalam aproksimasi matriks blok citra. Langkah selanjutnya adalah menyimpan k dengan menggunakan 3 bit. Nilai-nilai singular yang bersesuaian dikodekan dengan menggunakan kuantisasi skalar seragam, masing-masing 8, 7, 7, 6, 4, 4, 4 bit. Dalam penelitian ini besarnya ukuran

codebook untuk pengkodean vektor-vektor

singular hasil transformasi SVDmengacu pada ukuran codebook yang dipakai oleh Wongsawat

et al (2004). Vektor singular kiri dan vektor

singular kanan dikodekan dengan menggunakan

codebook yang sama yang ditraining dengan

menggunakan algoritma LBG. Adapun alokasi ukuran codebook dapat dilihat pada Tabel 1. Khusus untuk vektor-vektor singular pertama dan kedua dipakai adaptive multistage VQ. Pada pengkodean vektor singular pertama, jika MSE antara vektor input dengan vektor yang akan mewakilinya lebih dari 0.01, maka VQ tidak jadi digunakan. Selanjutnya elemen-elemen vektor akan dikodekan dengan kuantisasi skalar 8 bit. Untuk vektor singular kedua, jika MSE pengkodean vektor dengan VQ melebihi 0.1, maka elemen-elemen vektor akan dikodekan dengan kuantisasi skalar 7 bit.

Percobaan dilakukan pada enam file citra uji bitmap 8-bitgrayscale. Pada percobaan tadi, akan dicatat hasil-hasil berupa nilai-nilai PSNR dan BPP. Dari hasil-hasil yang didapat ini diharapkan dapat ditarik kesimpulan mengenai keefektifan metode pemampatan citra menggunakan SVD.

Tabel 1. Ukuran codebook

Vektor Singular

I (u1&v1)

Vektor Singular

II (u2&v2)

Vektor Singular

III (u3&v3)

Vektor Singular

I V (u4&v4)

Vektor Singular

V (u5&v5)

Vektor Singular

VI (u6&v6)

Vektor Singular

VI I (u7&v7)

Alokasi ukuran codebook Adaptive Multistage 256,64,32 Adaptive Multistage 128,64 Multistage 128,64

32 32 16 4 Nilai Singular Vektor Singular Citra Asli Multistage VQ Transformasi SVD dan pemilihan rank dari blok

8x8 SQ Nilai Singular Vektor Singular Rekonstruksi Citra Hasil Pemampatan Multistage VQ-1 Rekonstruksi Blok 8x8 SQ-1 Codebook ENCODER DECODER Hitung MSE dari Vektor Singular output Codebook SQ-1 SQ Vektor Singular

(11)

8

Decoder SVD

Decoder menerjemahkan data citra

termampatkan dan bekerja merekonstruksi satu demi satu blok citra 8

×

8 pixel dari informasi yang didapatkan. Untuk masing-masing blok, pada awalnya decoder membaca nilai yang menunjukkan banyaknya nilai singular penting. Bit selanjutnya adalah indeks dari VQ untuk vektor singularpertama. Selanjutnya indeks ini dipakai untuk merekonstruksi aproksimasi dari vektor singular pertama. Untuk nilai singular, proses rekonstruksinya menggunakan invers dari kuantisasi skalar. Proses seperti ini berulang untuk masing-masing vektor singular dan nilai singularnya sampai matriks Uk,Σkdan

VkT direkonstruksi. Perkalian Uk

×

Σk

×

VkT menghasilkan rekonstruksi blok 8

×

8 pixel.

Pada akhirnya citra hasil pemampatan yang direkonstruksi tidak sama persis dengan citra asli.

Pembentukan Codebook

Semua codebook yang dipakai dalam penelitian ini dibentuk dari vektor-vektor

training yang berasal dari empat buah citra,

yaitu couple.bmp, boat.bmp, goldhill.bmp, dan mountain.bmp. Keempat citra tersebut dapat dilihat pada Lampiran 1. Prosedur training

dijelaskan sebagai berikut :

1. Vektor-vektor singular u dan v dari keempat citra training dihitung pada ukuran blok

8

×

8 pixel. Vektor-vektor singular ini

kemudian dikelompokkan berdasarkan nomor vektornya. Dalam hal ini u dan v

tidak dipisahkan, sehingga didapat 8 kelompok vektor singular.

2. Lakukan training VQ terhadap masing-masing kelompok vektor training, bentuk

codebook dengan ukuran tertentu sesuai

nomor vektor dengan menggunakan algoritma LBG.

Implementasi

Untuk mengimplementasikan metode pemampatan citra ini, akan digunakan perangkat lunak Matlab 7.0 sebagai lingkungan pemrogramannya. Alasan digunakannya perangkat lunak ini karena Matlab merupakan bahasa pemrograman yang dirancang untuk memudahkan operasi dengan data-data numerik dan matriks.

Dalam penelitian ini, akan dicoba untuk dibuat fungsi dan aplikasi yang mencoba memampatkan ukuran data citra dari input file citra asli yang diberikan menggunakan metode yang telah dijelaskan di atas.

Implementasi dari metode ini dilakukan pada komputer dengan spesifikasi sebagai berikut:

1. Perangkat keras:

• Prosesor Intel Celeron 1.8 GHz • Memori DDR 256 MB • Harddisk 80 GB 7200 rpm 2. Perangkat lunak:

• Sistem Operasi Windows XP • Matlab 7.0

Matlab digunakan sebagai lingkungan pemrograman untuk penelitian ini karena Matlab dilengkapi dengan berbagai fungsi-fungsi yang diperlukan untuk mengimplementasikan metode pada penelitian ini. Fungsi-fungsi Matlab yang penting dalam penelitian ini antara lain:

• Fungsi imread, digunakan untuk membaca file citra input yang akan dimampatkan, berformat BMP menjadi sebuah data matriks.

• Fungi imshow yang dipakai untuk menampilkan citra hasil pemampatan. • Fungsi svd, untuk penghitungan

matriks-matriks svd.

• Fungsi-fungsi yang berkaitan dengan pembacaan dan penulisan file data biner yang merupakan data citra termampatkan, seperti: fungsi fopen,

fclose, fwrite, fread, dan ftell. Fungsi pembentukan codebook

menggunakan progam buatan Roger Jang yang menerapkan algoritma LBG. Program ini

didownload dari alamat http://neural.cs.nthu.edu.tw/jang/matlab/toolbox

/DCPR/vqLBG.m.

Adapun tampilan antar muka program pemampatan citra ini dapat dilihat pada Lampiran 1.

HASIL DAN PEMBAHASAN

Pembentukan Codebook

Dari keempat citra training didapatkan 8 kelompok vektor singular yang masing-masing sebanyak 34992 buah. Waktu total yang dibutuhkan dalam pembentukan codebook

adalah + 21 menit. Codebook disimpan dalam format .mat dan dipandang sebagai satu kesatuan dengan program encoder-decoder

pemampatan citra SVD.

PSNR dan BPP

(12)

Decoder SVD

Decoder menerjemahkan data citra

termampatkan dan bekerja merekonstruksi satu demi satu blok citra 8

×

8 pixel dari informasi yang didapatkan. Untuk masing-masing blok, pada awalnya decoder membaca nilai yang menunjukkan banyaknya nilai singular penting. Bit selanjutnya adalah indeks dari VQ untuk vektor singularpertama. Selanjutnya indeks ini dipakai untuk merekonstruksi aproksimasi dari vektor singular pertama. Untuk nilai singular, proses rekonstruksinya menggunakan invers dari kuantisasi skalar. Proses seperti ini berulang untuk masing-masing vektor singular dan nilai singularnya sampai matriks Uk,Σkdan

VkT direkonstruksi. Perkalian Uk

×

Σk

×

VkT menghasilkan rekonstruksi blok 8

×

8 pixel.

Pada akhirnya citra hasil pemampatan yang direkonstruksi tidak sama persis dengan citra asli.

Pembentukan Codebook

Semua codebook yang dipakai dalam penelitian ini dibentuk dari vektor-vektor

training yang berasal dari empat buah citra,

yaitu couple.bmp, boat.bmp, goldhill.bmp, dan mountain.bmp. Keempat citra tersebut dapat dilihat pada Lampiran 1. Prosedur training

dijelaskan sebagai berikut :

1. Vektor-vektor singular u dan v dari keempat citra training dihitung pada ukuran blok

8

×

8 pixel. Vektor-vektor singular ini

kemudian dikelompokkan berdasarkan nomor vektornya. Dalam hal ini u dan v

tidak dipisahkan, sehingga didapat 8 kelompok vektor singular.

2. Lakukan training VQ terhadap masing-masing kelompok vektor training, bentuk

codebook dengan ukuran tertentu sesuai

nomor vektor dengan menggunakan algoritma LBG.

Implementasi

Untuk mengimplementasikan metode pemampatan citra ini, akan digunakan perangkat lunak Matlab 7.0 sebagai lingkungan pemrogramannya. Alasan digunakannya perangkat lunak ini karena Matlab merupakan bahasa pemrograman yang dirancang untuk memudahkan operasi dengan data-data numerik dan matriks.

Dalam penelitian ini, akan dicoba untuk dibuat fungsi dan aplikasi yang mencoba memampatkan ukuran data citra dari input file citra asli yang diberikan menggunakan metode yang telah dijelaskan di atas.

Implementasi dari metode ini dilakukan pada komputer dengan spesifikasi sebagai berikut:

1. Perangkat keras:

• Prosesor Intel Celeron 1.8 GHz • Memori DDR 256 MB • Harddisk 80 GB 7200 rpm 2. Perangkat lunak:

• Sistem Operasi Windows XP • Matlab 7.0

Matlab digunakan sebagai lingkungan pemrograman untuk penelitian ini karena Matlab dilengkapi dengan berbagai fungsi-fungsi yang diperlukan untuk mengimplementasikan metode pada penelitian ini. Fungsi-fungsi Matlab yang penting dalam penelitian ini antara lain:

• Fungsi imread, digunakan untuk membaca file citra input yang akan dimampatkan, berformat BMP menjadi sebuah data matriks.

• Fungi imshow yang dipakai untuk menampilkan citra hasil pemampatan. • Fungsi svd, untuk penghitungan

matriks-matriks svd.

• Fungsi-fungsi yang berkaitan dengan pembacaan dan penulisan file data biner yang merupakan data citra termampatkan, seperti: fungsi fopen,

fclose, fwrite, fread, dan ftell. Fungsi pembentukan codebook

menggunakan progam buatan Roger Jang yang menerapkan algoritma LBG. Program ini

didownload dari alamat http://neural.cs.nthu.edu.tw/jang/matlab/toolbox

/DCPR/vqLBG.m.

Adapun tampilan antar muka program pemampatan citra ini dapat dilihat pada Lampiran 1.

HASIL DAN PEMBAHASAN

Pembentukan Codebook

Dari keempat citra training didapatkan 8 kelompok vektor singular yang masing-masing sebanyak 34992 buah. Waktu total yang dibutuhkan dalam pembentukan codebook

adalah + 21 menit. Codebook disimpan dalam format .mat dan dipandang sebagai satu kesatuan dengan program encoder-decoder

pemampatan citra SVD.

PSNR dan BPP

(13)

9

grayscale. Untuk setiap citra uji, digunakan 2

nilai β yang berbeda yaitu 0.95 dan 0.99, seperti yang terlihat pada Tabel 2. Hasil percobaan disajikan pula dalam bentuk grafik. Hubungan Beta dan BPP dapat dilihat pada Gambar 5. Sedangkan grafik pengaruh Beta terhadap PSNR disajikan pada Gambar 6.

Dari kedua grafik tersebut terlihat bahwa nilai β yang semakin tinggi mengakibatkan kualitas citra hasil pemampatan semakin baik, namun bit yang dibutuhkan citra semakin banyak. Sebaliknya untuk nilai β yang semakin rendah, maka jumlah bit pada setiap pixel citra semakin sedikit namun nilai PSNR sebagai indikator kualitas citra semakin rendah. Hasil percobaan juga menunjukkan bahwa

pemampatan citra SVD dengan 95% informasi (β = 0.95) menghasilkan citra yang kualitasnya sangat berkurang. Sedangkan pada pemampatan citra SVD 99% informasi (β = 0.99), kualitas citra hasil pemampatan masih cukup baik karena nilai PSNR yang dihasilkan rata-rata sebesar 30dB.

Waktu pemampatan citra

Waktu yang dibutuhkan oleh pemampatan citra SVD dapat dilihat pada Tabel 3. Dalam bentuk grafik disajikan pada Gambar 7 dan Gambar 8. Terlihat bahwa waktu yang dibutuhkan untuk proses pengkodean citra relatif lebih lama dibandingkan dengan waktu pendekodeannya.

Jika kita hubungkan dengan grafik Beta terhadap PSNR, secara umum untuk menghasilkan nilai PSNR yang lebih tinggi dalam proses pemampatan sebuah citra, dibutuhkan waktu pengkodean dan pendekodean yang semakin lama.

Tabel 2. PSNR dan BPP hasil pemampatan citra

SVD JPEG

β Citra

BPP PSNR BPP PSNR

Airplane 0.879 28.882 0.881 37.467 Barbara 0.916 25.919 0.909 32.967 Bridge 0.919 24.989 0.908 27.245 Camera 0.960 27.055 0.959 32.340 Lena 0.935 29.860 0.938 35.336 0.95

Peppers 0.912 30.700 0.908 35.965 Airplane 0.942 31.300 0.941 37.843 Barbara 1.159 29.658 1.141 34.937 Bridge 1.339 27.610 1.321 28.899 Camera 1.124 29.306 1.116 33.436 Lena 1.147 32.349 1.141 36.176 0.99

Peppers 1.059 32.848 1.043 36.453

0.8 0.9 1 1.1 1.2 1.3 1.4

Airplane Barbara Bridge Camera Lena Peppers

BP

P

Beta=0,95 Beta=0,99

Gambar 5. Grafik Beta terhadap BPP.

24 26 28 30 32 34

Airplane Barbara Bridge Camera Lena Peppers

P S NR ( d B ) Beta=0,95 Beta=0,99

Gambar 6. Grafik Beta terhadap PSNR.

Tabel 3 Waktu pemampatan dan pengembalian citra

β = 0.95 β = 0.99 Citra Enc.(s) Dec.(s) Enc.(s) Dec.(s) Airplane 17.6 6.0 18.8 6.5

Barbara 18.1 6.2 22.3 7.8 Bridge 4.9 1.5 6.8 2.3 Camera 5.0 1.6 5.7 1.9 Lena 19.3 6.7 22.0 7.7 Peppers 18.1 6.2 21.3 7.2

0 5 10 15 20 25

Airplane Barbara Bridge Camera Lena Peppers

Wakt u P en g ko d ean (d et ik) Beta=0,95 Beta=0,99

Gambar 7. Grafik Beta terhadap Waktu Pengkodean.

0 1 2 3 4 5 6 7 8 9

Airplane Barbara Bridge Camera Lena Peppers

Wa kt u P en d eko d e an ( d et ik) Beta=0,95 Beta=0,99

(14)

Dimensi citra juga mempengaruhi waktu proses, semakin besar dimensi cira maka semakin lama waktu proses pemampatan citra

Perbandingan Pemampatan Citra SVD dengan JPEG

Hasil-hasil pemampatan citra SVD dibandingkan dengan hasil-hasil pemampatan citra JPEG yang ukuran file-nya mendekati, seperti disajikan pada Tabel 2. Citra JPEG disini dihasilkan oleh fungsi MATLAB imwrite.

Jika dibandingkan dengan hasil pemampatan citra SVD, terlihat jelas bahwa JPEG masih lebih baik dibandingkan dengan SVD. Pada BPP yang sama, PSNR citra hasil pemampatan JPEG selalu lebih tinggi untuk semua citra uji, yang berarti kualitasnya selalu diatas kualitas citra hasil pemampatan SVD. Secara visual

dapat pula diamati bahwa citra hasil pemampatan SVD menunjukkan kesan terkotak-kotak di beberapa blok citra, akibat dari rendahnya nilai PSNR di blok tersebut, sedangkan pada JPEG masih dapat dipertahankan bentuk alaminya. Pengamatan secara visual pada citra Lena disajikan pada gambar 9, sedangkan untuk citra yang lain terdapat pada Lampiran 3 sampai dengan lampiran 7.

KESIMPULAN DAN SARAN

Kesimpulan

Dari hasil penelitian yang telah dilakukan dapat diambil beberapa kesimpulan mengenai pemampatan citra dengan metode SVD, yaitu: Gambar 9. Citra hasil pemampatan Lena. a) SVD 95% energi, b) SVD 99% energi

(15)

PEMAMPATAN CITRA DENGAN METODE

SINGULAR VALUE DECOMPOSITION

(SVD)

Oleh :

TB. MOCH. YULIA RAHMAN

G06400036

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(16)

PEMAMPATAN CITRA DENGAN METODE

SINGULAR VALUE DECOMPOSITION

(SVD)

Skripsi

sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer

pada Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Oleh :

TB. MOCH. YULIA RAHMAN

G06400036

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(17)

ABSTRAK

TB. MOCH. YULIA RAHMAN. Pemampatan Citra dengan Metode Singular Value Decomposition

(SVD). Dibimbing oleh FAHREN BUKHARI dan YENI HERDIYENI.

Citra digital semakin banyak dibutuhkan sebagai pembawa informasi. Namun data citra membutuhkan jumlah bit yang cukup besar. Pemampatan citra dilakukan agar biaya penyimpanan dan biaya transmisi citra digital bisa dikurangi, dengan cara mengurangi data yang dibutuhkan untuk merepresentasikan citra. Metode pemampatan citra yang banyak dikembangkan yaitu berbasis

Transform Coding. Pada penelitian ini dilakukan implementasi metode pemampatan citra berbasis

Transform Coding yang menggunakan transformasi SVD. Bahasa Pemrograman yang dipakai adalah

MATLAB 7.0.

Proses pertama dalam menghasilkan file citra termampatkan adalah transformasi SVD, yang akan menghasilkan data penting dan data tidak penting berupa vektor-vektor dan nilai-nilai singular berdasarkan skema energi. Dalam penelitian ini digunakan dua nilai presentase energi citra yang dipertahankan, yaitu 95% dan 99%. Hanya data yang dianggap penting yang akan disimpan dalam file

citra termampatkan. Namun sebelumnya data-data berupa nilai singular dan vektor singular ini dikuantisasi terlebih dahulu dengan kuantisasi skalar ataupun kuantisasi vektor (VQ), agar jumlah bit

yang dibutuhkan untuk penyimpanan data penting ini menjadi kecil. File citra asli yang dimampatkan pada penelitian ini adalah file citra Grayscale dengan format BMP atau Bitmap.

Pengujian dilakukan pada enam citra uji dengan parameter pengujian β, presentase energi citra yang dipertahankan yaitu 95% atau 0.95 dan 99% atau 0.99. Hasil percobaan yang dicatat berupa nilai

Bit Per Pixel (BPP) yang menunjukkan efisiensi pemampatan, nilai kualitas citra berupa Peak

Signal-to-Noise Ratio (PSNR) dan waktu pemampatan citra. Hasil pemampatan citra SVD juga dibandingkan

dengan hasil pemampatan citra JPEG pada BPP yang mendekati. Pemampatan citra JPEG disini dihasilkan oleh fungsi MATLAB imwrite.

Sistem dibangun dengan graphical user interface (GUI) agar lebih mudah digunakan. Hasil penelitian menunjukkan bahwa SVD telah berhasil digunakan dalam upaya memampatkan citra secara

lossy, dengan β adalah parameter yang digunakan untuk menentukan kualitas citra dan efisiensi

pemampatan. Nilai β yang rendah menyebabkan efisiensi pemampatan semakin baik, sedangkan nilai

β yang tinggi menghasilkan citra hasil pemampatan yang lebih baik dari sisi kualitas. Perbandingan dengan metode pemampatan citra JPEG menunjukkan bahwa JPEG masih lebih baik. Pada BPP yang mendekati, kualitas citra hasil pemampatan JPEG selalu lebih baik dibandingkan dengan kualitas citra hasil pemampatan SVD. Ini disebabkan JPEG menerapkan pemampatan data lebih lanjut untuk mengkodekan data hasil transformasi dan kuantisasi dengan menggunakan pemampatan data lossless.

(18)

Judul Skripsi : PEMAMPATAN CITRA DENGAN METODE

SINGULAR VALUE DECOMPOSITION

(SVD)

Nama :

Tb.

Moch.

Yulia

Rahman

NIM :

G06400036

Menyetujui,

Pembimbing I

Ir. Fahren Bukhari, M.Sc.

NIP 131430803

Pembimbing II

Yeni Herdiyeni, S.Si., M.Kom.

NIP 132282665

Mengetahui,

Dekan Fakultas Matematika Dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Prof. Dr. Ir. Yonny Koesmaryono, M.S.

NIP 131473999

(19)

RIWAYAT HIDUP

Penulis dilahirkan di Pandeglang pada tanggal 26 Juli 1982 dari pasangan Tb. Husein Amin dan Rt. Chadidjah. Penulis merupakan anak kelima dari enam bersaudara.

Penulis menyelesaikan pendidikan Sekolah Dasar pada tahun 1994 di SDN Saruni 1, Pandeglang, kemudian melanjutkan pendidikan ke SLTP Negeri 2 Pandeglang yang diselesaikan pada tahun 1997, dilanjutkan dengan pendidikan di SMU Negeri 1 Pandeglang dan lulus pada tahun 2000. Di tahun yang sama diterima masuk IPB melalui jalur Undangan Seleksi Masuk IPB (USMI). Penulis memilih Program Studi Ilmu Komputer, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam.

(20)

KATA PENGANTAR

Alhamdulillah, puji dan syukur penulis panjatkan kehadirat Allah SWT, karena hanya dengan

izin dan kehendak-Nya penulis dapat menyelesaikan skripsi yang berjudul Pemampatan Citra Dengan Metode Singular Value Decomposition (SVD) ini.

Penulis menyadari bahwa selesainya tugas akhir ini tidak terlepas dari pihak-pihak yang telah banyak membantu. Oleh karena itu penulis ingin mengucapkan terima kasih kepada :

1. Bapak Ir. Fahren Bukhari, M.Sc., Ibu Yeni Herdiyeni S.Si., M.Kom., dan Ibu Shelvie Nidya Neyman S.Kom., M.Si. sebagai dosen pembimbing dan dosen penguji yang telah memberikan bimbingan, motivasi dan saran dalam pengerjaan tugas akhir ini.

2. Seluruh staf pengajar dan pegawai Departemen Ilmu Komputer.

3. Yudi, Adit, Yuyun, Dini, Sony, Mushtofa, Yufit, Asep, Galih, HR, Wanto, dan semua rekan Ilkomerz atas segala bantuan dan kebersamaan yang telah terjalin.

4. Fajar, Uus, Ipul, Mas Yoqi, Wisnu, Wiken, Darmawan, Restu, Tabah, Ibu Safni, Yusuf, Edwin, Anwar, Mas dimas, Nandar, Edo, dan teman-teman ex Villma, Riverside, SBR, Jagorawi 42, C-14, Elbios, dan Pondok Sengked.

5. Ibu, kakak-kakak dan adik penulis, yang memberikan dorongan dan doa demi terselesaikannya tugas akhir ini.

6. Teguh, Endin, Lili, Iid, Gunawan, Haris, juga semua sahabat di Banten.

Semoga tugas akhir ini dapat bermanfaat dan semoga Allah SWT membalas budi baik semua pihak yang telah membantu penulis. Amin.

Bogor, Juli 2007

(21)

vii

DAFTAR ISI

Halaman

DAFTAR GAMBAR ... viii

DAFTAR LAMPIRAN... viii

PENDAHULUAN...1

Latar Belakang ...1

Tujuan ...1

Ruang Lingkup ...1

Manfaat ...1

TINJAUAN PUSTAKA ...1

Citra Digital ...1

Pemampatan Citra...2

Singular Value Decomposition (SVD) ...2

Kuantisasi Skalar Seragam ...3

Vector Quantization (VQ) ...4

Algoritma Linde-Buzo-Gray (LBG)...4

Multistage VQ...5

Penerapan SVD dalam Pemampatan Citra...5

Metode Pemampatan Citra JPEG ...5

Kriteria Pengukuran Hasil Pemampatan ...6

METODE PENELITIAN...6

Encoder SVD ...7

Decoder SVD...7

Pembentukan Codebook...8

Implementasi...8

HASIL DAN PEMBAHASAN...8

Pembentukan Codebook...8

PSNR dan BPP...8

Waktu Pemampatan Citra...9

Perbandingan Pemampatan Citra SVD dengan JPEG ...9

KESIMPULAN DAN SARAN... 10

Kesimpulan ...10

Saran...10

(22)

DAFTAR GAMBAR

Halaman

1 Representasi citra mxn ...2 2 Encoder dan decoder dalamVQ ...4 3 Multistage VQ...5 4 Skema Penelitian ...7 5 Grafik Beta terhadap BPP ...9 6 Grafik Beta terhadap PSNR ...9 7 Grafik Beta terhadap waktu pengkodean ...9 8 Grafik Beta terhadap waktu pendekodean ...9 9 Citra hasil pemampatan Lena ...10

DAFTAR LAMPIRAN

Halaman

1 Citra yang digunakan dalam pembentukan codebook...13 2 Gambar antar muka program pemampatan citra SVD. (a) Menu pemampatan citra

(23)

1

PENDAHULUAN

Latar Belakang

Pada saat ini penampilan informasi dalam bentuk citra semakin banyak dibutuhkan. Hal ini tidak lepas dari karakteristik citra yang cenderung mudah dipahami. Surat kabar, televisi, dan situs web di internet adalah sebagian contoh media yang banyak menampilkan informasi dalam bentuk citra.

Dibandingkan dengan citra dalam media konvensional seperti kertas, citra digital lebih mudah untuk diproses sesuai kebutuhan. Selain itu citra digital lebih mudah dalam hal transmisinya ke tempat lain. Namun demikian, jumlah bit yang dibutuhkan oleh data citra cukup besar, dan akibatnya waktu yang dibutuhkan dalam transmisinya ke tempat lain melalui saluran komunikasi juga cukup lama. Oleh karena itu upaya untuk memperkecil kebutuhan ruang penyimpanan dari citra digital menjadi sangat penting, agar dalam transmisinya melalui saluran komunikasi juga menjadi lebih cepat.

Pemampatan citra bertujuan meminimalkan kebutuhan ruang penyimpanan untuk merepresentasikan citra digital. Prinsip umum yang digunakan pada proses pemampatan citra adalah mengurangi redundansi data di dalam citra sehingga ruang penyimpanan yang dibutuhkan untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra semula (Munir, 2004).

Salah satu metode pemampatan citra yang banyak diterapkan adalah Transform Coding.

Pada pemampatan citra berbasis Transform

Coding, matriks citra didekomposisi dengan

tujuan untuk memadatkan sebanyak mungkin informasi citra ke dalam sejumlah kecil koefisien transformasi. Dengan demikian koefisien-koefisien transformasi lain yang kurang penting yaitu koefisien transformasi yang memuat sedikit informasi citra dapat dikuantisasi secara kasar atau bahkan diabaikan, sehingga efisiensi pemampatan bisa lebih baik.

Singular Value Decomposition (SVD)

merupakan suatu teknik transformasi yang penting dalam pemampatan citra, karena transformasi ini memungkinkan efisiensi pemadatan informasi yang optimal untuk sembarang citra (Jain, 1989). Namun selain koefisien transformasi yang berupa nilai singular, proses transformasi citra dengan SVD juga menghasilkan vektor-vektor singular yang juga perlu disimpan bersama dengan koefisien transformasi. Vector Quantization (VQ) adalah teknik kuantisasi yang bekerja pada vektor. Pada VQ, pemampatan data vektor didapat

dengan hanya menyimpan indeks dari vektor tersebut, dimana dalam pengkodean dan pendekodeannya mengacu pada sejenis tabel yang disebut codebook .

Pemampatan citra SVD yang Hybrid

dengan DCT dikembangkan oleh Wongsawat et al (2004), menggunakan Adaptive Multistage

Vector Quantization (AMVQ) dalam

pengkodean vektor-vektor singular SVD. Karya ilmiah ini akan membahas dan mendemonstrasikan kerja pemampatan citra SVD berdasarkan skema yang diperkenalkan oleh Wongsawat et al. (2004).

Tujuan

Adapun tujuan dilakukannya penelitian ini adalah :

1. Mempelajari dan mengimplementasikan metode pemampatan citra berbasiskan transformasi Singular Value Decomposition

(SVD).

2. Menganalisa kinerja metode pemampatan citra SVD yang diukur dari kualitas citra hasil pemampatan (Peak Signal To Noise

Ratio) dan efisiensi pemampatan (Bit Per

Pixel), serta membandingkannya dengan

kinerja metode pemampatan citra Joint

Photographic Experts Group (JPEG).

Ruang Lingkup

Dalam penelitian ini dibuat suatu sistem yang dapat memampatkan citra dan merekonstruksi citra hasil pemampatan dengan metode SVD, dimana citra asli yang akan dimampatkan adalah citra dengan format bitmap

(BMP) 8-bit per pixel skala keabuan

(grayscale). Pemampatan citra terutama

difokuskan pada citra digital fotografi.

Manfaat

Hasil penelitian ini diharapkan dapat memberikan alternatif dalam pemilihan metode pemampatan citra yang terbaik.

TINJAUAN PUSTAKA

Citra Digital

Sebuah citra dapat didefinisikan sebagai sebuah fungsi dua dimensi f(x,y), dimana x dan y menunjukkan koordinat spasial, dan nilai f pada sembarang koordinat (x,y) disebut intensitas atau kecerahan citra pada titik tersebut. Ketika x, y, dan nilai f berbentuk diskret berhingga, maka citra itu disebut sebuah citra digital (Gonzales & Woods, 2002).

Sebuah citra digital dapat ditampilkan dalam bentuk matriks berdimensi m

×

n, dengan m
(24)

baris dan kolom matriks tersebut seperti diilustrasikan pada Gambar 1.

y

f(x1,y1) f(x1,y2) . . . f(x1,yn)

f(x2,y1) . . . . . .

f(xm,y1) . . . f(xm,yn)

x 1 pixel

Gambar 1. Representasi citra m×n

Setiap elemen matriks tersebut menunjukkan nilai elemen citra (pixel). Suatu citra dengan format 8 bit memiliki 256 intesitas warna pada setiap elemen citranya, nilai 0 untuk tingkat paling gelap dan 255 untuk tingkat yang paling terang (Gonzales & Woods 2002).

Pemampatan Citra

Pada umumnya representasi citra digital membutuhkan ruang penyimpanan yang cukup besar. Sebagai contoh sebuah citra bitmap 1024

×

768 pixel dengan format 8-bit membutuhkan 768 KB ruang penyimpanan. Besarnya jumlah data yang berkaitan dengan informasi citra digital merupakan sebuah masalah yang bisa mengakibatkan mahalnya biaya penyimpanan, misalnya space dalam harddisk, dan biaya transmisi.

Pemampatan citra dapat mengatasi masalah besarnya kebutuhan ruang penyimpanan citra dan lamanya waktu transmisi. Hal utama dalam proses pengurangan jumlah data citra adalah penghilangan redundansi data (Gonzales & Woods, 2002).

Dua buah citra digital dengan jumlah data yang berbeda dapat merepresentasikan satu informasi yang sama. Ini artinya salah satu citra mengandung redundansi data, yaitu memuat data yang tidak memiliki informasi yang relevan atau data yang hanya mengulang sesuatu yang telah diketahui sebelumnya. Pemampatan citra dicapai dengan mengurangi ataupun menghilangkan satu atau lebih diantara ketiga jenis redundansi data sebagai berikut (Gonzales & Woods, 2002) :

1. Coding Redundancy, adalah redundansi

yang terjadi karena jumlah bit yang

digunakan untuk merepresentasikan sebuah kode terlalu banyak.

2. Interpixel Redundancy, adalah redundansi

yang terjadi karena tingginya korelasi antara satu pixel dengan pixel lainnya, artinya nilai intensitas warna pixel yang saling bersebelahan seringkali sama. Sehingga sebenarnya nilai intensitas warna pixel dapat diprediksi dari intensitas warna pixel

tetangganya.

3. Psychovisual Redundancy, adalah

redundansi yang terjadi karena mata manusia tidak merespon dengan kepekaan yang sama terhadap semua informasi visual. Beberapa informasi memiliki tingkat kepentingan yang lebih rendah dibandingkan dengan informasi lain. Sehingga bisa dihilangkan tanpa berpengaruh signifikan terhadap pemahaman atas citra secara keseluruhan.

Metode pemampatan citra dapat diklasifikasikan ke dalam dua kelompok besar yaitu (Munir, 2004) :

1. Metode lossless, adalah metode pemampatan citra yang merekonstruksi citra hasil pemampatan identik pixel demi pixel

dengan citra semula yang belum dimampatkan. Tidak ada informasi yang hilang akibat pemampatan. Metode ini cocok untuk memampatkan citra yang mengandung informasi penting yang tidak boleh rusak akibat pemampatan. Misalnya memampatkan gambar hasil diagnosa medis. 2. Metode lossy, adalah metode pemampatan citra yang merekonstruksi citra hasil pemampatan hampir sama dengan citra semula. Biasanya ada sedikit informasi yang hilang akibat pemampatan, tetapi dapat ditolerir oleh persepsi mata. Dengan menggunakan metode ini, efisiensi pemampatan bisa lebih baik.

Singular Value Decomposition (SVD)

SVD adalah suatu teknik untuk mentransformasi matriks. Pada pemampatan citra berbasiskan Transform Coding, transformasi matriks citra dilakukan untuk memetakan sinyal citra menjadi representasi lain yang lebih cocok untuk pemampatan. Dalam hal ini matriks citra ditransformasi sehingga sebagian besar dari informasi citra terkonsentrasi ke dalam koefisien-koefisien transformasi yang jumlahnya relatif kecil, untuk kemudian dikuantisasi dan dikodekan (Jain, 1989).

(25)

3

2

1 1 1

( , )

'( , )

m n r

i

i j i k

A i j

A i j

λ

= = = +

=

∑∑

1

,

k k i i

ε

λ

=

=

informasi kedalam sejumlah kecil koefisien transformasi. Proses kuantisasi kemudian secara selektif mengeliminasi atau mengkuantisasi secara lebih kasar koefisien yang membawa informasi paling sedikit. Koefisien-koefisien ini memiliki pengaruh yang paling kecil terhadap kualitas citra yang akan direkonstruksi (Gonzales & Woods, 2002).

Transformasi SVD memungkinkan sebagian besar informasi citra termuat dalam sedikit koefisien transformasi, sedangkan sebagian besar koefisien lain menjadi tidak penting. Jika A adalah sebuah matriks dengan dimensi m

×

n, maka SVD dari A adalah (Wongsawat et al, 2004):

T

A U

= ∑

V

dimana U dan V adalah matriks orthogonal yang masing-masing berdimensi m

×

m dan n

×

n, dan Σ adalah matriks koefisien transformasi m

×

n yang semua elemen selain diagonalnya bernilai 0.

11 1 1

1

k n

m mk mn

a

a

a

A

a

a

a

= ⎜

K

K

M

O

M

L

L

(

1 2

...

k

...

m

)

U

=

u u

u

u

(

1

... ...

2

)

T T

k n

V

=

v v

v

v

Σ = diag (σ1, ... ,σmin(m,n))

Dimana σi adalah nilai singular ke-i. ui

adalah vektor kolom ke-i dari U dan vi adalah

vektor kolom ke-i dari V. Vektor ui disebut vektor singular kiri dari σi, sedangkan vektor vi

disebut vektor singular kanan dari σi.

Vektor-vektor singular kiri tidak lain adalah vektor ciri-vektor ciri dari AAT,, sedangkan vektor-vektor singular kanan adalah vektor ciri-vektor ciri dari ATA. Akar ciri-akar ciri dari AAT atau ATA adalah kuadrat dari nilai-nilai singular untuk matriks A. Nilai-nilai singular σi ini tidak lain adalah elemen-elemen diagonal dari matriks Σ dan tersusun dalam urutan dari besar ke kecil. Oleh karena itu kita bisa mendapatkan aproksimasi A dengan menggunakan SVD sebagian:

'

T

k k k

A

=

U

V

Dalam hal ini A’ adalah matriks aproksimasi

rank-k untuk matriks A. Uk dan Vk adalah

matriks yang diambil dari k kolom pertama U

dan V dan Σk = diag (σ1, ... ,σk) dengan k<r.

Seringkali aproksimasi matriks yang sangat baik

bisa didapatkan hanya dengan menggunakan sebagian kecil nilai singular, atau dengan k yang jauh lebih kecil dari r. Besarnya energi atau informasi yang dikandung oleh matriks aproksimasi dapat dihitung (Wongsawat et al, 2004) :

dimana

T T

2

akar ciri dari AA atau A A

i i

λ σ

=

=

Sedangkan Square Error antara matriks A

dengan matriks aproksimasi A’ adalah hasil penjumlahan dari akar ciri yang diabaikan,yaitu (Dapena & Ahalt,2004) :

dimana

λ σ

i

=

i2

.

Kuantisasi Skalar Seragam

Nilai singular-nilai singular hasil transformasi SVD yang akan disimpan nilainya bersifat kontinu dan intervalnya cukup besar. Ini mengakibatkan besarnya jumlah bit yang dibutuhkan dalam penyimpanan. Oleh karena itu perlu dilakukan kuantisasi. Kuantisasi skalar merupakan proses pemetaan sebuah nilai skalar terhadap nilai tertentu yang dianggap mewakilinya, dimana nilai yang mungkin mewakili menjadi terbatasi banyaknya. Nilai-nilai ini disebut level rekonstruksi. Selanjutnya nilai ini diperkecil menjadi suatu nilai indeks sehingga bit yang diperlukan untuk menyimpannya menjadi berkurang. Indeks inilah yang dapat digunakan pada proses dekuantisasi untuk mengetahui level rekonstruksi mana yang mewakili skalar awal tadi.

Sebuah pengkuantisasi skalar seragam

l-level memiliki l+1 level keputusan d0, d1, ... , dl, dan l level rekonstruksi r0, r1, ... , rl-1. di membagi range data ke dalam l interval [d0, d1) [d1, d2) ... [dl-1, dl), dengan panjang interval yang sama yaitu (Spielman, 1996):

0 l

d

d

l

∆ =

dimana dl dan d0 masing-masing adalah nilai maksimum dan nilai minimum dari data yang dikuantisasi.

Kuantisasi terhadap sebuah nilai a artinya menemukan interval [di, di+1) yang memuat a dan mengganti a dengan indeks i.

0

a d

i

= ⎢

(26)

Sedangkan proses dekuantisasi menerjemahkan nilai indeks i ke dalam level rekonstruksi ri yang

Gambar

Gambar 1. Representasi citra m× n
Gambar 2. Encoder dan Decoder dalam VQ
Gambar 3 . Multistage VQ. a) encoder,
Gambar 4. Skema penelitian
+7

Referensi

Dokumen terkait

[r]

lembaga kesejahteraan sosial anak yang memberikan pelayanan terhadap balita terlantar dari usia. 2 s/d

Temuan data dilapangan pasangan ayah dan anak pertama dalam menjaga hubungan komunikasi interpersonal mereka, pasangan Aris dan Andi melakukan membuat interaksi yang

Yang menjadi permasalahan penelitian ini adalah bagaimana peran orang tua dalam pendidikan karakter anak, materi apa saja yang harus diberikan dalam pendidikan karakter

Artinya, semakin tinggi kepemilikan institusional maka ke- bijakan perusahaan dalam membagikan laba kepada pemegang saham perusahaan akan semakin besar dan

“KLAUSULA KONTRIBUSI TETAP DAN UPAYA HUKUM APABILA TERJADI WANPRESTASI DALAM KONTRAK BUILD OPERATE TRANSFER (BOT) YANG MELIBATKAN PEMERINTAH” yang disusun guna

Dalam penelitian ini akan dibuat web suplemen berupa blogspot berbasis proprofs yang kegunaannya membantu mahasiswa dalam memahami materi , latihan soal dan mengetahui

Berdasarkan kepada skop kajian ini, populasi kajian yang digunakan oleh penyelidik adalah terdiri daripada pelajar tahun akhir (Perdana) Program Kemahiran Hidup (SPH), dari