komputasi terapan lanjutan

110
BAB 3 APLIKASI DI BIDANG KOMPUTER KRIPTOGRAFI STEGANOGRAFI KOMUNIKASI DATA KOMPUTER GRAFIK PENGOLAHAN CITRA DIGITAL JARAK EUCLIDEAN UNTUK POLA PENGENALAN POLA WAJAH

description

komputas iterapan lanjutan

Transcript of komputasi terapan lanjutan

Page 1: komputasi terapan lanjutan

BAB 3

APLIKASI DI BIDANG KOMPUTER

KRIPTOGRAFI STEGANOGRAFI KOMUNIKASI DATA KOMPUTER GRAFIK PENGOLAHAN CITRA DIGITAL JARAK EUCLIDEAN UNTUK POLA PENGENALAN POLA WAJAH

Page 2: komputasi terapan lanjutan

3.1. KRIPTOGRAFI

Kriptografi adalah seni untuk mempelajari teknik2 encoding dan decoding dari pesan rahasia. Pesan-pesan yang belum di kodekan disebut plainteks, dan pesan-pesan yang telah dikodekan disebut chiperteks.

Proses konversi dari plainteks menjadi chiperteks disebut encoding dan sebaliknya disebut decoding

Page 3: komputasi terapan lanjutan

Ada beberapa cara peng-coding-an antara lain:

Substitusi Pada sistem ini mengkodekan antara huruf dengan huruf yang lain, misal: hurf a dengan m, huruf b dengan k, dst. Coding cara ini sangat sederhana, dengan teknik frekwensi kemungkinan huruf yg sering muncul dapat dipecahkan. Poligrafi Teknik dengan cara membagi plain text menjadi himpunan n-huruf, dan menggantinya dengan n-angka. Dengan menggunakan operasi perkalian matriks invers, hasilnya akan lebih baik dengan substitusi

Page 4: komputasi terapan lanjutan

Contoh, dengan menggunakan tabel konversi sbb:

A = 1 N = 14B = 2 O = 15C = 3 P = 16D = 4 Q = 17E = 5 R = 18F = 6 S = 19G = 7 T = 20H = 8 U = 21I = 9 V = 22J =10 W = 23K =11 X = 24L=12 Y = 25M=13 Z = 26

Page 5: komputasi terapan lanjutan

Contoh: Seseorang ingin mengirim pesan rahasia kepada temannya dengan menggunakan teknik perkalian matriks sistem poligrafi.

Misalkan matriks : C = B * A

Untuk mendapatkan matriks A, maka:B*A = C A = B-1 * C

Konsep ini digunakan untuk membuat kriptografi, yaitu pesan rahasia disimpan dalam matriks A, kemudian di-encode dengan menggunakan kunci B, dan pesan yang dikirimkan adalah matriks C. Dengan catatan kunci matriks B diketahui oleh si penerima.

Page 6: komputasi terapan lanjutan

Langkah pertama setiap huruf misal kita buat kode sbb:

A = -13 N = 13B = -12 O = 12C = -11 P = 11D = -10 Q = 10E = -9 R = 9F = -8 S = 8G = -7 T = 7H = -6 U = 6I = -5 V = 5J = -4 W = 4K = -3 X = 3L= -2 Y = 2M= -1 Z = 1

Spasi =15

Page 7: komputasi terapan lanjutan

Pesan yang dikirim adalah: MAGISTER ILMU KOMPUTERKunci : MADANI

Proses ENCODE

Pesan dirubah menjadi kode angka sbb:

-1 -13 -7 -5 8 7 -9 9 15 -5 -2 -1 6 15 -3 12 -1 11 6 7 -9 9

Pesan tsb dipotong-potong disimpan dalam matriks A (3xn)

15911311577

15711529813

961265951

A

Page 8: komputasi terapan lanjutan

Kunci dirubah menjadi: -1 -13 -10 -13 13 -5Disimpan dalam matriks B(mx3)

15510

151313

15131

B

C =

240 -169 -258 41 -171 -109 -7 -354 -121 134 159 44 132 -224 58 3 -315 150 225 -120 270 330 60 585

Matriks C = B * A

Page 9: komputasi terapan lanjutan

Matriks disusun kembali menjadi deret angka, yang merupakan pesan yang dikirimkan

isi pesan yang dikirim:

240 -121 -315 -169 134 150 -258 159 225 41 44 -120 -171 132 270 -109 -224 330 -7 58 60 -354 3 585

Page 10: komputasi terapan lanjutan

Proses DECODE

Si penerima pesan menerima pesan sederetan angka yang dikirim oleh temannya seperti deretan angka diatas. Pesan tersebut dipotong-potong dan dibuat dalam bentuk matrik yaitu matriks C

C =

240 -169 -258 41 -171 -109 -7 -354 -121 134 159 44 132 -224 58 3 -315 150 225 -120 270 330 60 585

Kunci matrik adalah:

15510

151313

15131

B

Page 11: komputasi terapan lanjutan

Penerima pesan menghitung invers dari B

0.1304 0.0217 0.0942 B-1 = 0.0580 0.0652 0.0604 -0.1884 -0.0870 -0.0879

Isi pesan rahasia nya didapat dari:

A = B-1 * C

Hasilnya: A =

-1.0000 -5.0000 -9.0000 -5.0000 6.0000 12.0000 6.0000 9.0000 -13.0000 8.0000 9.0000 -2.0000 15.0000 -1.0000 7.0000 15.0000 -7.0000 7.0000 15.0000 -1.0000 -3.0000 11.0000 -9.0000 15.0000

Page 12: komputasi terapan lanjutan

Matriks disusun kembali dan merupakan deretan angka sbb;

KODE_ISI_PESAN =

-1.0000 -13.0000 -7.0000 -5.0000 8.0000 7.0000 -9.0000 9.0000 15.0000 -5.0000 -2.0000 -1.0000 6.0000 15.0000 -3.0000 12.0000 -1.0000 11.0000 6.0000 7.0000 -9.0000 9.0000 15.0000 15.0000

MAGISTER ILMU KOMPUTER

Isi pesan dalam huruf:

Page 13: komputasi terapan lanjutan

TUGAS LATIHAN:

Si Ali menerima pesan dari sahabatnya Udin berupa pesan rahasia sbb;

Kunci : KOMPUTER

Apakah bunyi pesan yang ditulis oleh Udin ? Dengan kode huruf dan angka seperti contoh diatas

-105 24 -101 145 -279 -189 261 57 -97 -32 -21 -278 -11 282 131 -59 -252 -171 -96 27 -234 24 -45 -246 -61 48 -73

Page 14: komputasi terapan lanjutan

3.2. STEGANOGRAFI

Steganografi merupakan seni untuk menyembunyikan pesan di dalam media digital sedemikian rupa sehingga orang lain tidak menyadari ada pesan didalam media tersebut.

Dalam bidang keamanan komputer, steganografi digunakan untuk menyembunyikan data rahasia.

Pada steganografi walaupun enkripsi berhasil dipecahkan pesan atau rahasia tetap tidak terlihat, pada kriptografi pesan disembunyikan secara “acak” sehingga pada kasus2 tertentu dapat mengundang kecurigaan.

Page 15: komputasi terapan lanjutan

APA STEGANOGRAFI ITU?

“steganos” (B.Yunani) tulisan tersembunyi(covered writing)

Steganography: ilmu dan seni menyembunyikan (embedded) informasi dengan cara menyisipkan pesan di dalam pesan lain.

Steganografi digital: steganografi pada data digital dengan menggunakan komputer digital

Page 16: komputasi terapan lanjutan

Steganografi membutuhkan dua properti: wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya pesan: teks, citra, audio dan video.

Wadahpenampung Data rahasia Stego+ =

Page 17: komputasi terapan lanjutan

17

PESAN (MESSAGE)

1. Teks “Torang semua

bersodara”

2. Audio

3. Gambar (image)

4. Video

Page 18: komputasi terapan lanjutan

Sebagai contoh sederhana kita akan menggunakan matriks sebagai wadah penampung dan data rahasia disisipkan pada matriks tersebut.Misalkan data rahasia yang akan dikirim: BUDILUHURYang panjangnya 9 karakter.

Proses Encode:Tabel huruf:

A B C D E F G H I J K L M N O

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

P Q R S T U V W X Y Z

16 17 18 19 20 21 22 23 24 25 26

Page 19: komputasi terapan lanjutan

Konversi: BUDILUHUR menjadi 2 21 4 9 12 21 8 21 18

Selanjutnya dibuat matrik berukuran 9 x 9, sesuai dengan panjang data rahasia 9 karakter, data disimpan dengan kunci posisi 6, 9 artinya data rahasia diletakkan pada hitungan ke-6, dengan panjang karakter 9.

5 10 8 12 8 2 8 9 6 4 8 46 3 1 6 21 9 2133 23 54 7 8 9 4 12 15 21 3 42 15 66 5 12 9 3023 24 21 26 31 8 15 16 50 3 31 21 30 0 8 5 15 18 9 8 7 6 5 4 32 3 15 10 18 20 30 22 50 6 8 3622 4 5 8 55 7 12 15 32

Matriks yang sudah disisipi data rahasia diatas diatas disebut matriks stego

Page 20: komputasi terapan lanjutan

PROPERTI STEGANOGRAFI

1. Embedded message (hiddentext): pesan yangdisembunyikan.

2. Cover-object (covertext): pesan yang digunakan untuk menyembunyikan embedded message.

3. Stego-object (stegotext): pesan yang sudah berisi pesan embedded message.

4. Stego-key: kunci yang digunakan untuk menyisipan pesan dan mengekstraksi pesan dari stegotext.

Page 21: komputasi terapan lanjutan

Encoding(embeddin)

covertext

h iddentext

key

Decoding(extraction)

stegotext

key

hiddentext

covertext

Page 22: komputasi terapan lanjutan

CONTOH

Lupakan asal rumor itu, jaga aga matamu sehat atau turunkan ubanmu

Covertext: upakan sal umor tu aga aga atamu ehat tau turunkan banmu

Hiddentext: Lari jam satu

Stegotext: Lupakan asal rumor itu, jaga aga matamu sehat atau turunkan ubanmu

Page 23: komputasi terapan lanjutan

23

METODE LSB (SPATIAL DOMAIN)

Mengganti bit LSB dengan bit data.

11010010

MSB LSB

LSB = Least Significant BitMSB = Most Siginificant Bit

Mengubah bit LSB hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya tidak berpengaruh terhadap persepsi visual/auditori.

Page 24: komputasi terapan lanjutan

Misalkan penyisipan pada citra 24-bit. Setiap pixel panjangnya 24 bit (3 x 3 byte, masing-masing

komponen R (1 byte), G (1 byte), dan B (1 byte))

00110011 10100010 11100010(misal pixel berwarna merah)

Misalkan embedded message: 010

Encoding:

00110010 10100011 11100010(pixel berwarna “merah berubah sedikit”, tidak dapatdibedakan secara visual dengan citra aslinya)

Page 25: komputasi terapan lanjutan

Jika pesan = 10 bit, maka jumlah byte yang digunakan = 10 byte

Contoh susunan byte yang lebih panjang:

00110011 10100010 11100010 10101011 00100110

10010110 11001001 11111001 10001000 10100011

Pesan: 1110010111

Hasil penyisipan pada bit LSB:

00110011 10100011 11100011 10101010 00100110

10010111 11001000 11111001 10001001 10100011

Page 26: komputasi terapan lanjutan

26

METODE LSB Ukuran data yang akan disembunyikan

bergantung pada ukuran cover-object.

Citra 24-bit ukuran 256 256 pixel = 65536 pixel.

Setiap pixel berukuran 3 byte (komponen RGB), berarti ada 65536 3 = 196608 byte.

Setiap 1 byte menyembunyikan satu bit di LSB-nya, maka ukuran data yang dapat disembunyikan:

196608/8 = 24576 byte

Page 27: komputasi terapan lanjutan

Istilah keilmuan serumpun terasa memberikan distorsi persepsi pada maksud sebenarnya. Persepsi yang segera terbentuk dengan istilah tesrebut adalah eprtumbuhan dari akar-akar ilmu membentuk suatu rumpun, yang berarti bahwa nuansa historis organisasi/kelompok/unit yang mewadahinya.

Hiddentext Covertext Stegotext

Page 28: komputasi terapan lanjutan

3.3. KOMUNIKASI DATA

Sebuah pesan yang ditransmisikan ( seperti data lewat satelit) akan mengalami perubahan akibat gangguan dari luar, karena petir, atau cuaca yang tidak menguntungkan. Proses pengiriman data yang telah di-encode akan dikembalikan semula sesuai dengan data aslinya yaitu decode.

Proses pengiriman data yang berulang-ulang untuk memastikan data mengalami perubahan atau tidak sudah tidak efisien lagi dan memerlukan banyak memori.

Aplikasi ini akan menguji cara2 men-decode pesan setelah pesan tersebut mengalami distorsi (perubahan) yang diakibatkan oleh sebuah gangguan (noise).

Page 29: komputasi terapan lanjutan

Teknik dasar pengkodean

Pesan dikirim dalam bentuk deretan bilangan biner 0 dan 1, misalnya 10011, 01101, dstApabila data tersebut dikirim maka karena ada gangguan maka data pesan yang diterima akan mengalami perubahan.

Misal data yang dikirim T = 1011010, Maka data yang diterima menjadi R = 1001010Berarti terjadi kesalahan pada posisi ke-3Kalau pengirimana data dilakukan berulang-ulang akan banyak membutuhkan memori dan tidak efisien

Page 30: komputasi terapan lanjutan

Kode Hamming

Salah satu metode yang dipakai untuk deteksi kesalahan (error detecting) dan mengkoreksi data dengan menggunakan kode Hamming. Kode ini menggunakan matriks dengan data biner sbb;

1 0 1 0 1 0 1H = 0 1 1 0 0 1 1 0 0 0 1 1 1 1

Dan

1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1

G =

Page 31: komputasi terapan lanjutan

Matrik H dan G adalah matriks dengan elemen data biner, operasi penjumlahan dan perkalian sesuai dengan aturan biner, seperti: 0+0 = 0, 1+0=1, 0+1=1, 1+1=0 dan 0.0=0, 1.0=0, 0.1=0, 1.1=1

Proses Encode

Untuk encode, kita bentuk kombinasi linier v dari setiap elemen kolom matriks G, dengan 4 digit dari u = (u1 u2 u3 u4) sebagai koefisiennya. Dengan kata lain v diperoleh dengan cara sbb: v = [u1 u2 u3 u4] * G

Data v inilah yang nantinya akan dikirim

Page 32: komputasi terapan lanjutan

Proses Decode

Misalkan pesan yang diterima adalah w = (w1 w2 w3 w4), dan wT adalah transpose matriks w

1.Hitung h*wT 2.Jika h*wT = 0, maka tidak terjadi kesalahan data, artinya w = u3.Jika h*wT = ki, maka terjadi kesalahan data pada kolom ke i (ki = kolom ke-i dari matriks H)

Page 33: komputasi terapan lanjutan

Contoh:Misalkan data yang dikirim u = (1 0 1 1), data ini harus di-encode dahulu.Prosen Encode v = (u1 u2 u3 u4) * G

1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1

v = (1 0 1 1)

v = (1 0 1 1 0 1 0)

Data inilah yang dikirimkan

Page 34: komputasi terapan lanjutan

a. Misalkan data yang diterima adalah w = (1 0 1 1 0 1) Data ini harus di-decode dahulu

Proses Decode

1 0 1 0 1 0 1H * wT = 0 1 1 0 0 1 1 0 0 0 1 1 1 1

1011010

0= 0 0

Karena h*wT = 0, maka tidak terjadi kesalahan, artinyau = (1 0 1 1)

Page 35: komputasi terapan lanjutan

b. Misalkan data yang diterima adalah w = (1 0 0 1 0 1) Data ini harus di-decode dahulu

Proses Decode

1 0 1 0 1 0 1H * wT = 0 1 1 0 0 1 1 0 0 0 1 1 1 1

1001010

1= 1 0

Karena h*wT = kolom ke-3 dari matriks H, maka terjadi kesalahan data pada posisi ke-3, artinyaw = (1 0 1 1 0 1 0) dan u = (1 0 1 1)

Page 36: komputasi terapan lanjutan

3.4. KOMPUTER GRAFIK

Transformasi GeometriSalah satu contoh transformasi linier adalah transformasi geometri.Transformasi geometri adalah mengubah kedudukan setiap titik yang disebabkan karena: Pergeseran (translasi) Penskalaan (scaling) Pemutaran (rotation) Pencerminan (reflection) dan shearing

Page 37: komputasi terapan lanjutan

Misalkan sebuah titi A(x,y) mengalami transformasi sehingga menjadi A’(x’,y’), menggunakan persamaan atau algoritma tertentu. Terdapat suatu fungsi T yang memetakan koordinat A menjadi koordinat A’ dan ditulis sebagai:

A’=T(A)

Page 38: komputasi terapan lanjutan

3.4.1. Translasi (pergeseran)

Sembarang titik pada bidang xy dapat digeser ke sembarang tempat dengan menambahkan besaran pada absis x dan ordinat y. Misalkan titik A(x,y) digeser searah sumbu x sejauh m dan searah sumbu y sejauh n, maka titik setelah pergeseran:

x’ = x + m atau x’ = x + 0y + my’ = y + n y’ = 0x + y + n

Dalam bentuk matriks:

n

m

y

x

y

x

10

01

'

'

Page 39: komputasi terapan lanjutan

A(x,y)

A’(x’,y’)

x x’

Y

y

y’

m

n

X

Page 40: komputasi terapan lanjutan

Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik: A(20,20), B(100,20) dan C(60,120), jika dilakukan translasi pada searah sumbu x, sejauh m = 80 dan searah sumbu y, sejauh n = 70Jawab:

707070

808080

1202020

6010020

10

01

'''

'''

cba

cba

yyy

xxx

1909090

140180100

Dengan demikian titik yang dimaksud adalah:A’(100,90), B’(180,90), dan C’(140,190)

Page 41: komputasi terapan lanjutan

0 50 100 150 200 250 3000

50

100

150

200

250

300TRANSLASI (PERGESERAN)

A B

C

C’

B’A’

Page 42: komputasi terapan lanjutan

%TRANSLASI (PERGESERAN)x=[20, 100, 60, 20];y=[20, 20, 120, 20];x2=x+80y2=y+70 plot(x,y,x2,y2)axis([0, 300, 0, 300])title('TRANSLASI (PERGESERAN)','FontSize',10)

Program dalam Matlab

Page 43: komputasi terapan lanjutan

3.4.2. Penskalaan (scalling)

Penskalaan adalah proses untuk memperbesar atau memperkecil suatu obyek atau gambar.Misal: titik A(x,y) diskalakan terhadap titik P(a,b) dengan faktor skala sebesar m searah sumbu x dan sebesar n searah sumbu y.

x’=m(x-a) + ay’=n(y-b) + bataux’=mx + a – may’=ny + b - nb

P(a,b)

A(x,y)

A’(x’,y’)

b

a x

y

x’

y’

x-a

y-b

Page 44: komputasi terapan lanjutan

nbb

maa

y

x

n

m

y

x

0

0

'

'

Atau dalam bentuk matriks:

Jika penskalaan pada sumbu koordinat P(0,0), maka a = 0 dan b =0, sehingga persamaannya menjadi:

y

x

n

m

y

x

0

0

'

'

Matrikas penyajian untuk penskalaan terhadap titik P(0,0) adalah:

n

mT

0

0

Page 45: komputasi terapan lanjutan

Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(20,20), B(100,20), C(60,120), jika dilakukan penskalaan dengan faktor skala : terhadap titik pusat P(0,0)

2

4

2404040

24040080

1202020

6010020

20

04

'''

'''

cba

cba

yyy

xxx

Jawab:

Jadi posisi segitiga setelah penskalaan:

A’(80,40), B’(400,40), dan C’(240,240)

Page 46: komputasi terapan lanjutan

-500 -400 -300 -200 -100 0 100 200 300 400 500-500

-400

-300

-200

-100

0

100

200

300

400

500PENSKALAAN (PERGESERAN)

Keluaran dalam matlab

Page 47: komputasi terapan lanjutan

%PENSKALAAN (SCALLING)x=[20, 100, 60, 20];y=[20, 20, 120, 20];x2=4*xy2=2*y plot(x,y,x2,y2)axis([-500, 500, -500, 500])title(‘PENSKALAAN (PERGESERAN)','FontSize',10)

Program dalam Matlab

Page 48: komputasi terapan lanjutan

3.4.3. Rotasi (Pemutaran)

Pemutaran adalah proses yang dilakukan untuk memutar suatu obyek atau gambar dengan pemutaran setiap titik ujung garis.

Pemutaran searah jarum jam akan dinyatakan dengan sudut negatif.

Pemutaran berlawanan arah jarum jam akan dinyatakan dengan sudut positif.

Misal: titik A(x,y) diputar dengan sudut putar α, dengan pusat putar P(a,b) akan dihasilkan titik A’(x’,y’).

Page 49: komputasi terapan lanjutan

A(x,y)

P(a,b)

A’(x’,y’)

x’

y’

α

a

b

x

y

Q

X

Y

Pandang segitiga siku-siku PAQ:

β

)2.......(..........coscos

)1........(..........sinsin

axrr

ax

byrr

by

R

Page 50: komputasi terapan lanjutan

Pandang segitiga siku-siku PA’R:

)4....(..........')cos('

)cos(

)3.....(..........')sin('

)sin(

axrr

ax

byrr

by

)5.......(')sin().cos()cos().sin()sin( byrrr

Persamaan (3):

)6.....(..........)sin()cos()sin()sin('

)cos()cos()sin()sin('

')cos()()sin()(

abbaxy

bbyaxy

bybyax

Masukan persamaan (1) dan (2) ke persamaan (5):

Page 51: komputasi terapan lanjutan

Persamaan (4):

)7.......(')sin().sin()cos().cos()cos( axrrr

Masukan persamaan (1) dan (2) ke persamaan (7):

)8.....().........sin()cos()sin()cos('

)sin()sin()cos()cos('

')sin()()cos()(

baayxx

abyaxx

axbyax

Persamaan (6) dan (8) disusun dalam bentuk matriks

sincos

sincos

cossin

sincos

'

'

abb

baa

y

x

y

x

Page 52: komputasi terapan lanjutan

y

x

y

x

cossin

sincos

'

'

Bila pusat rotasinya berada pada sumbu koordinat P(0,0), maka persamaan tersebut menjadi:

cossin

sincosT

Matriks penyajian untuk rotasi terhadap titik pusat P(0,0) adalah:

Page 53: komputasi terapan lanjutan

Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(20,20), B(100,20), C(60,120), jika dilakukan pemutaran dengan pusat sumbu koordinat dan rotasi putaran 180° berlawanan arah dengan arah jarum jam.

1202020

6010020

1202020

6010020

10

01

'''

'''

cba

cba

yyy

xxx

A’(-20,-20), B’(-100,-20), dan C’(-60,-120)

Jawab:

Jadi posisi segitiga setelah rotasi:

Page 54: komputasi terapan lanjutan

-300 -200 -100 0 100 200 300-300

-200

-100

0

100

200

300ROTASI SEBESAR 180 DERAJAT POSITIP

Keluaran dalam matlab:

Page 55: komputasi terapan lanjutan

Tugas dan Latihan:Buatlah script dalam matlab keluaran pada contoh diatas dan lakukan untuk rotasi putaran 45°, searah dan berlawanan arah jarum jam

Page 56: komputasi terapan lanjutan

3.4.4. Shearing

Shearing adalah suatu proses untuk mentransformasikan obyek dengan cara membebani obyek tersebut pada arah tertentu. Misalnya pembentukan huruf italic (miring) dari sembarang huruf.Proses shearing dari suatu titik A(x,y) menjadi titik A’(x’,y’) ke arah sumbu x sebesar m dan sumbu y sebesar n dinyatakan dalam persamaan:

m’ = x + myy’ = nx + y

Page 57: komputasi terapan lanjutan

y

x

n

m

y

x

1

1

'

'

Ditulis dalam bentuk matriks jadi:

Matriks penyajian untuk shearing terhadap titik pusat P(0,0) adalah:

1

1

n

mT

Page 58: komputasi terapan lanjutan

30032080

30014060

1202020

6010020

13

21

'''

'''

cba

cba

yyy

xxx

Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(20,20), B(100,20), C(60,120), jika dilakukan shearing dengan bobot kearah sumbu x adalah m = 2 dan bobot kearah sumbu y adalah n = 3 yang pusatnya terletak disumbu pusat koordinat.

Jadi posisi segitiga setelah dilakukan shearing:

A’(60,80), B’(140,320), dan C’(300,300)

Jawab:

Page 59: komputasi terapan lanjutan

-400 -300 -200 -100 0 100 200 300 400-400

-300

-200

-100

0

100

200

300

400SHEARING M = 2 DAN N = 3

Keluaran proses shearing dalam matlab:

Page 60: komputasi terapan lanjutan

Tugas dan Latihan:Buatlah script dalam matlab keluaran pada contoh shearing diatas dan lakukan untuk m dan n yang berbeda.

Page 61: komputasi terapan lanjutan

3.4.5. Pencerminan (Refleksi)

Refleksi sebuah garis g adalah transformasi yang memetahkan masing2 titik pada bidang ke dalam bayangan cerminnya terhadap g.Matriks penyajian untuk:

1. Refleksi terhadap sumbu y:

10

01T

y

xmenjadi

y

x

2. Refleksi terhadap sumbu x:

10

01T

y

xmenjadi

y

x

Page 62: komputasi terapan lanjutan

3. Refleksi terhadap sumbu y = x:

01

10T

x

ymenjadi

y

x

Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(10,2), B(10,8), C(3,2), jika dilakukan pencerminan terhadap sumbu x, sumbu y, dan garis y = x

282

31010

282

31010

10

01

'''

'''

cba

cba

yyy

xxx

Jawab:1. Pencerminan terhadap sumbu x

Page 63: komputasi terapan lanjutan

Jadi posisi segitiga setelah dilakukan pencerminan terhadap sumbu x:

A’(-10,2), B’(-10,8), dan C’(-3,2)

2. Pencerminan terhadap sumbu y

282

31010

282

31010

10

01

'''

'''

cba

cba

yyy

xxx

Jadi posisi segitiga setelah dilakukan pencerminan terhadap sumbu y:

A’(10,-2), B’(10,-8), dan C’(3,-2)

Page 64: komputasi terapan lanjutan

3. Pencerminan terhadap garis y = x

31010

282

282

31010

01

10

'''

'''

cba

cba

yyy

xxx

Jadi posisi segitiga setelah dilakukan pencerminan terhadap garis y = x:

A’(2,10), B’(8,10), dan C’(2,3)

Page 65: komputasi terapan lanjutan

-15 -10 -5 0 5 10 15-15

-10

-5

0

5

10

15

Keluaran proses pencerminan terhadap sumbu x dalam matlab:

Page 66: komputasi terapan lanjutan

Tugas dan Latihan:Buatlah script dalam matlab keluaran pada contoh pencerminan diatas dan lakukan untuk pencerminan terhadap sumbu y dan pencerminan terhadap y = x.

Page 67: komputasi terapan lanjutan

3.4.6. Sistem Koordinat Homogem

Dari bentuk matriks penyajian, terlihat bahwa hanya proses translasi yang memerlukan operasi perkalian dan penjumlahan, sedangkan pada jenis transformasi yang lain cukup diperlukan operasi perkalian matriks.

Sistem koordinat homogen adalah sistem koordinat yang mempunyai dimensi lebih tinggi dari sistem koordinat yang ditinjau.

Misal, sistem koordinat homogen dari sistem koordinat 2 dimensi adalah sistem koordinat 3 dimensi dengan cara menentukan salah satu sumbunya sebagai suatu konstanta

Page 68: komputasi terapan lanjutan

Dengan menggunakan sistem koordinat homogenPersamaan umum transformasi titik A(x,y) menjadi A’(x’,y’)Dapat ditulis sebagai:

11001

'

'

y

x

tdb

tca

y

x

y

x

Page 69: komputasi terapan lanjutan

Dari persamaan tersebut diatas, masing-masing transformasi dapat dirumuskan kembali menjadi:

1100

10

01

1

'

'

100

10

01

y

x

n

m

y

x

n

m

T

1. Translasi:

1100

00

00

1

'

'

100

00

00

y

x

n

m

y

x

n

m

T

2. Scalling:

Page 70: komputasi terapan lanjutan

1100

0cossin

0sincos

1

'

'

100

0cossin

0sincos

y

x

aa

aa

y

x

aa

aa

T

3. Rotasi berlawanan arah jarum jam (sudut putar positif):

4. Shearing:

1100

01

01

1

'

'

100

01

01

y

x

n

m

y

x

n

m

T

1100

010

001

1

'

'

100

010

001

y

x

y

x

T

5. Refleksi terhadap sumbu x:

Page 71: komputasi terapan lanjutan

6. Refleksi terhadap sumbu y:

1100

010

001

1

'

'

100

010

001

y

x

y

x

T

1100

001

010

1

'

'

100

001

010

y

x

y

x

T

7. Refleksi terhadap garis y = x:

Page 72: komputasi terapan lanjutan

TUGAS DAN LATIHAN:

Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(10,2), B(10,8), dan C(3,2) jika dilakukan transformasi sebagai berikut:1.Translasi kearah sumbu x = 4, sumbu y = -22.Scalling dengan skala kearah sumbu x = 2, kearah sumbu y = -23.Diputar 90° berlawanan jarum jam4.Shearing kearah sumbu x = -2, ke arah sumbu y = 35.Refleksi terhadap sumbu x6.Refleksi terhadap sumbu y7.Refleksi terhadap garis y = x8.Buatlah script dalam matlab untuk masing2 soal diatas dan bentuk gambarnya.

Page 73: komputasi terapan lanjutan

3.5. Pengenalan Citra Digital

Sebuah citra gambar digital dapat mewakili sebuah matriks yang berukuran M kolom dan N baris

Perpotongan antara kolom dan baris disebut piksel, elemen terkecil dari sebuah citra.

Piksel mempunyai dua parameter:- koordinat- intensitas (warna)

Nilai yang terdapat pada koordinat (x,y) adalah f(x,y) yaitu besar intensitas (warna) dari piksel dititik tersebut.

Page 74: komputasi terapan lanjutan

Sebuah citra digital dapat dinyatakan dalam bentuk matriks sbb:

),(...)2,()1,(

............

),2(......)1,2(

),1(...)2,1()1,1(

),(

MNfNfNf

Mff

Mfff

yxf

Page 75: komputasi terapan lanjutan

Pengenalan Pola Citra Digital dengan Metode jarak Euclidean

------------------------------------------------------

Sebuah citra mempunyai beberapa ciri yang digunakan untuk mengenali citra tersebut, antara lain: Intensitas warna (σ) Nilai rata-rata (μ) Entropi (e) Energi (E) Homogeiniti (H) Contrast (C) dan lain lain

Page 76: komputasi terapan lanjutan

Standard deviasi Intensitas warna:

N

iii xx

N 1

2)(1

N

iX

N 11

1Nilai rata-rata:

n

iii xPxpe

1)(log)(Entropi:

M

x

N

yyxjP

NxMjE1 1

2)],([1Energi:

i j

dji

jiPH

1

),(Homogeiniti:

i j

d jiPjiC ),()( 2Contrast:

Page 77: komputasi terapan lanjutan

Jarak Euclidean:

jika diketahui dua buah vektor:

]..,..........,,,[

],..........,,,[

321

321

n

n

bbbbb

danaaaaa

Maka jarak Euclidean antara kedua vektor tsb.

2233

222

211 ).........()()()( nn babababaab

Page 78: komputasi terapan lanjutan

Jika n buah citra, masing2 mempunyai ciri2 yang dibentuk oleh vektor2 sbb:

][

..............................................

][

][

2222222

1111111

nnnnnnn hcpeC

hcpeC

hcpeC

Misal sebuah citra x yang akan diuji, citra mana yang paling mirip dengan citra x, dengan metode Euclidean dapat ditentukan besarnya jarak antar citra tsb.Citra yang paling mirip adalah citra yang mempunyai nilai jarak Euclidean paling kecil.

Page 79: komputasi terapan lanjutan

Contoh:4 buah citra tekstur sebagai berikut

spot_1 spot_2 spot_3 spot_line

Citra ke empat akan diuji, citra mana yang paling mirip terhadap citra ke empat (spot_line) tersebut dengan metode jarak Eucludean berdasarkan ciri:Intensitas warna (σ) Nilai rata-rata (μ) Entropi (e)

Page 80: komputasi terapan lanjutan

Pengenalan Citra dengan Metode Principal Component Analysis (PCA)

PCA merupakan salah satu metode ekstraksi fitur secara statistik. PCA merupakan sebuah cara untuk mengidentifikasi pola dalam kumpulan data untuk mencari persamaan dan perbedaannya. PCA sangat cocok untuk menemukan pola dalam data berdimensi tinggi .

Dalam konteks pengenalan wajah, PCA mencari eigenface yang merupakan kumpulan dari eigenvector. Eigenface adalah principal component (ciri-ciri penting) dari distribusi citra wajah yang didapatkan dari eigenvector dengan eigenvalue terbesar. Untuk mendapatkan eigenface, PCA melakukan perhitungan matrik kovarian dari kumpulan citra wajah latih setelah dilakukan normalisasi.

Page 81: komputasi terapan lanjutan

Eigenface tersebut akan menjadi dasar perhitungan face space yang merepresentasikan nilai bobot individu yang mewakili satu atau lebih citra wajah. Nilai bobot inilah yang digunakan untuk mengenali citra wajah uji dengan mencari jarak nilai bobot citra wajah uji dengan nilai bobot citra wajah latih.

Perhitungan jarak nilai bobot dapat dilakukan dengan perhitungan jarak Euclidian (Euclidian Distance).

Page 82: komputasi terapan lanjutan

START

Normalisasi Input

Mencari covariance matriks

Mencari eigen vektor dan eigen value

Mencari Principle Component eigenface

STOP

Langkah langkah pembentukan PCA

Page 83: komputasi terapan lanjutan

Mencari Covarian Matriks

Matriks covarian dirumuskan sbb:

1

)(')(

),cov(

n

n

iyiyxix

yx

304

132

211

x

Contoh: hitung covarian matriks dari:

Page 84: komputasi terapan lanjutan

Langkah langkah menghitung matriks kovarian

1). Hitung rata-rata kolom 1 sampai 3, didapat

2). Kurangkan kolom 1 sampai 3 matriks x ke masing2 rata-ratanya

3). Hitung matriks transpose dari langkah 2 diatas:

3

6

3

4

3

1x

)( xix -1.3333 -0.3333 0 -2.3333 1.6667 -1.0000 3.6667 -1.3333 1.0000

-1.3333 -2.3333 3.6667 -0.3333 1.6667 -1.3333 0 -1.0000 1.0000

')( xix

Page 85: komputasi terapan lanjutan

4). Covarian matriks

1

*'

)cov(

n

xixxixx

10.3333 -4.1667 3.0000 -4.1667 2.3333 -1.5000 3.0000 -1.5000 1.0000

cov(x) =

Page 86: komputasi terapan lanjutan

2 1 4 3 1 5 2 6 3 7 8 2 9 3 5 4

x =

Latihan, hitung covarian matriks berikut iniGunakan Matlab untuk menghitung langkah demi langkah

ans =

12.9167 -1.6667 2.5833 -0.7500 -1.6667 6.6667 3.0000 -0.3333 2.5833 3.0000 6.2500 -3.7500 -0.7500 -0.3333 -3.7500 2.9167

Page 87: komputasi terapan lanjutan

%COVARIAN MATRIKx=[2 1 4 3; 1 5 2 6; 3 7 8 2; 9 3 5 4]; %Langkah 1 (hitung rata2 kolom)a=mean(x(1:4,1)); b=mean(x(1:4,2)); c=mean(x(1:4,3)); d=mean(x(1:4,4)); %Langkah ke-2 (kurangkan masing2 kolom sampai n dengan masing2 rata2nya)x1=x(1:4,1)-a; x2=x(1:4,2)-b; x3=x(1:4,3)-c; x4=x(1:4,4)-d; %Langkah ke-3m=[x1 x2 x3 x4];n=m'; %Langkah ke-4 (Covarian matiks)C1=n*m/3C2=m*n/3

Page 88: komputasi terapan lanjutan

Mencari Eigen vektor dan Eigen value

Jika A adalah suatu matriks n x n, maka vektor tak nol x pada Rn disebut suatu vektor eigen dari A, jika Ax adalah suatu kelipatan skalar dari x, yaitu :

Ax = λxUntuk suatu skalar λ, skalar λ disebut nilai eigen (eigen value) dari A dan x dikatakan sebuah vektor eigen yang bersesuaian (berpadanan) dengan λ.Dari teorema di atas dapat dinyatakan, untuk mencari nilai eigen (nilai pribadi) dari sebuah matriks,

Ax =λ I xAtau ekivalen dengan :

(A - λ I )x = 0 Persamaan karakteristik A:

|A - λ I| = 0

Page 89: komputasi terapan lanjutan

Contoh diberikan matriks sbb:

26

17A

3

14

12

4

3

1

26

17

Eigenvector

Eigenvalue

Dimana λ = 4 adalah eigen value dari matriks A yg berhubungan dengan eigen vector

3

1x

Page 90: komputasi terapan lanjutan

Kita coba contoh diatas dengan menggunakan persamaan karakteristik:

|A - λ I| = 0

26

17

10

01

26

17IA

52

41

0)5()4(

20926)2()7(26

17

IA

Dengan demikian nilai eigenvalue ada 2 yaitu 4 dan 5Untuk λ = 5 eigenvektornya:

2

1x

Page 91: komputasi terapan lanjutan

(A - λ I )x = 0

02

126

17

x

x

02

136

12

x

x

2

1122

sx

xx

02316

0212

xx

xx

atau

s adalah skalar bilangan riel sembarang ≠ 0Jadi eigen vektornya adalah:

2

1x

Page 92: komputasi terapan lanjutan

112

332

310

A

Latihan: Tentukan eigenvalue dan eigenvektor:

Page 93: komputasi terapan lanjutan

Pengenalan Citra Wajah dengan PCA

Page 94: komputasi terapan lanjutan

Langkah2 Pengenalan Wajah dengan PCA

1. Buat citra gambar wajah berukuran sama (n x n) dan center, simpan citra tsb. kedalam data base

2. Baca tiap-tiap citra wajah tersebut, I = [I1 , I2 , I3 , .............I15]

),(...)2,()1,(

............

),2(......)1,2(

),1(...)2,1()1,1(

),(1

NNfNfNf

Nff

Nfff

yxI

I1 = citra ke-1I2 = citra ke-2dst.

Page 95: komputasi terapan lanjutan

3. Ubah dimensi citra wajah menjadi vektor (matrik baris) berukuran: 1 x N2

)],(.......)1,4()1,3()1,2()1,1([15

................................................................................

................................................................................

................................................................................

)],(.......)1,4()1,3()1,2()1,1([3

)],(.......)1,4()1,3()1,2()1,1([2

)],(.......)1,4()1,3()1,2()1,1([1

NNfffff

NNfffff

NNfffff

NNfffff

Page 96: komputasi terapan lanjutan

15

....

....

....3

2

1

15 2xn

Dari sini diperoleh vektor baru berukuran: 15 x N2

4. Hitung rata-rata vektor diatas, diperoleh vektor berukuran 1 x N2

15

115

1

ii

Page 97: komputasi terapan lanjutan

5. Kurangkan setiap vektor citra wajah dengan rata-rata nyaSehingga diperoleh vektor Φ berukuran 15 x N2

1515

...................

...................

...................33

32

31

15

...

...

...3

2

1

Diperoleh vektor :

Page 98: komputasi terapan lanjutan

6. Hitung covarian matriks

1

)(')(

),cov(

n

n

iyiyxix

yx

221

15

1)'(

)cov(2 xNNmatriksn

iii

A

dan

15151

15

1)'(

)cov(1 xmatriksn

iii

A

Page 99: komputasi terapan lanjutan

7. 1. Hitung nilai eigenvalue (λ) dan eigenvektor (Ui) dari A1

01 IA

Persamaan determinan diatas diselesaikan akan diperoleh 15 eigenvalue (λ), yang merupakan bilangan skalar:

15........,..........,3,2,1

Hitung eigenvektor untuk masing2 nilai λ, diurutkan dimulai dari nilai λ yang terbesar sampai yang terkecil

01 iUIiA

Page 100: komputasi terapan lanjutan

Akan diperoleh eigenvektor sbb:

115

...

...

...

...

12

11

1

u

u

u

U

215

...

...

...

...

22

21

2

u

u

u

U

1515

...

...

...

...

152

151

15

u

u

u

U..................

Page 101: komputasi terapan lanjutan

7. 2. Hitung eigenvektor (Vi) dari A2 Karena matriks A2 berukuran besar yaitu N2 x N2 , maka kita dapat menghitung ke 15 eigenvektor dari A2 dengan menggunakan:

iUiV '

1

...

...

...

...

12

11

1

2Nv

v

v

V

2

...

...

...

...

22

21

2

2Nv

v

v

V

15

...

...

...

...

152

151

15

2Nv

v

v

V..................

Page 102: komputasi terapan lanjutan

Representasi dari Wajah:Tiap-tiap wajah training dapat direpresentasikan sebagai kombinasi linier dari 15 vektor Vi , yaitu:

15

1iiviWj

ivjiw dimana

Φj adalah vektor wajah berukuran (1xN2 ) sedangkanvi berukuran (N2 x 1), maka wi berukuran (1 x 1)vi disebut eigenface

Page 103: komputasi terapan lanjutan

Tiap-tiap wajah training dinormalisasi sehingga citra wajah Φj yang belum dinormalisasi menjadi citra wajah Ωj yang sudah dinormalisasi

115

...

...

...

...

12

11

1

w

w

w

Page 104: komputasi terapan lanjutan

Pengenalan wajah dengan menggunakan eigenfaceMisal ada citra wajah yang akan dikenali ГLangkah langkahnya:1). Hitung: Φ = Г – ѱ ------ (1 x N2)2). Proyeksikan kedalam ruang wajah

15

1iiviW

dimanaiviw

3). Representasikan Φ sebagai Ω

Page 105: komputasi terapan lanjutan

15

...

...

...

...2

1

w

w

w

4). Tentukan distance error d:

kkd min

5). Jika d<T, maka citra wajah Гdikenali sebagai wajah ke-k dari sekumpulan training diatas

Dimana T = Threshold (didapat dari hasil percobaan)

Page 106: komputasi terapan lanjutan
Page 107: komputasi terapan lanjutan

% PENGENALAN POLA CITRA TEKSTUR METODE EUCLUDEAN clear, close allI1=imread('C:\Users\DELL\Documents\image\spot_1.jpg');I2=imread('C:\Users\DELL\Documents\image\spot_2.jpg');I3=imread('C:\Users\DELL\Documents\image\spot_3.jpg');I4=imread('C:\Users\DELL\Documents\image\spot_line.jpg'); av_1 = mean2(I1);ent_1 = entropy(I1);std_1 = std2(I1);C1=[std_1, av_1, ent_1]' av_2 = mean2(I2);ent_2 = entropy(I2);std_2 = std2(I2);C2=[std_2, av_2, ent_2]’

Contoh Program dalam Matlab

Page 108: komputasi terapan lanjutan

av_3 = mean2(I3);ent_3 = entropy(I3);std_3 = std2(I3);C3=[std_3, av_3, ent_3]' av_4 = mean2(I4);ent_4 = entropy(I4);std_4 = std2(I4);C4=[std_4, av_4, ent_4]' % MENCARI CITRA YANG PALING MIRIP TERHADAP CITRA 4 dist_14=sqrt((C1(1,1)-C4(1,1))^2+(C1(2,1)-C4(2,1))^2+(C1(3,1)-C4(3,1))^2)dist_24=sqrt((C2(1,1)-C4(1,1))^2+(C2(2,1)-C4(2,1))^2+(C2(3,1)-C4(3,1))^2)dist_34=sqrt((C3(1,1)-C4(1,1))^2+(C3(2,1)-C4(2,1))^2+(C3(3,1)-C4(3,1))^2)dist_44=sqrt((C4(1,1)-C4(1,1))^2+(C4(2,1)-C4(2,1))^2+(C4(3,1)-C4(3,1))^2)

Page 109: komputasi terapan lanjutan

clear allclc %PESAN YANG DIKIRIM: MAGISTER ILMU KOMPUTER%KATA KUNCI: MADANI%KODE HURUF DIBUAT:% A B C D E F G H I J K L M % -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 % N O P Q R S T U V W X Y Z% 13 12 11 10 9 8 7 6 5 4 3 2 1 %Proses ENCODEA=[ -1 -5 -9 -5 6 12 6 9; -13 8 9 -2 15 -1 7 15; -7 7 15 -1 -3 11 -9 15]; B=[ -1 -13 15; -13 13 15; -10 -5 15];

Page 110: komputasi terapan lanjutan

%Pesan yg dikirimC=B*A; %Proses DECODEinvers_B=inv(B); %ISI PESANA_r=invers_B*C;E=A_r; %ISI PESANPesan=[E(1:3,1); E(1:3,2); E(1:3,3); E(1:3,4); E(1:3,5); E(1:3,6); E(1:3,7); E(1:3,8)]';