Anda di halaman 1dari 110

BAB 3

APLIKASI DI BIDANG KOMPUTER

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

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

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

Contoh, dengan menggunakan tabel konversi sbb:


A= 1
B=2
C=3
D=4
E=5
F=6
G=7
H=8
I= 9
J =10
K =11
L=12
M=13

N = 14
O = 15
P = 16
Q = 17
R = 18
S = 19
T = 20
U = 21
V = 22
W = 23
X = 24
Y = 25
Z = 26

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.

Langkah pertama setiap huruf misal kita buat kode sbb:


A = -13
B = -12
C = -11
D = -10
E = -9
F = -8
G = -7
H = -6
I = -5
J = -4
K = -3
L= -2
M= -1
Spasi =15

N = 13
O = 12
P = 11
Q = 10
R=9
S=8
T=7
U=6
V=5
W=4
X=3
Y=2
Z=1

Pesan yang dikirim adalah: MAGISTER ILMU KOMPUTER


Kunci
: 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)
1
A 13

12

8
7

9
15

2
1

15
3

1
11

7
9

15
15

Kunci dirubah menjadi: -1 -13 -10 -13 13 -5


Disimpan dalam matriks B(mx3)
1
B 13

10

13
13
5

15
15

15

Matriks C = B * A
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 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

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:


1
B 13

10

13
13
5

15
15
15

Penerima pesan menghitung invers dari B


B-1 =

0.1304 0.0217 0.0942


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

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

Isi pesan dalam huruf:


MAGISTER ILMU KOMPUTER

TUGAS LATIHAN:
Si Ali menerima pesan dari sahabatnya Udin berupa pesan
rahasia sbb;
-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

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

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.

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

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.

Wadah
penampung

Data rahasia

Stego

PESAN (MESSAGE)
1. Teks
Torang semua bersodara

3. Gambar (image)

2. Audio
4. Video

17

Sebagai contoh sederhana kita akan menggunakan matriks


sebagai wadah penampung dan data rahasia disisipkan pada
matriks tersebut.
Misalkan data rahasia yang akan dikirim: BUDILUHUR
Yang panjangnya 9 karakter.
Proses Encode:
Tabel huruf:
A B C
1 2

D E F

3 4

5 6

G H I
7

J K L M N O

8 9 10 11 12

P Q R S T U V W X Y Z
16 17 18 19 20 21 22 23 24 25 26

13 14 15

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
4
33
21
23
3
9
10
22

10
8
23
3
24
31
8
18
4

8
46
54
42
21
21
7
20
5

12
3
7
15
26
30
6
30
8

8
2 8
1 6 21
8 9 4
66 5 12
31 8 15
0 8 5
5 4 32
22 50 6
55 7 12

9
9
12
9
16
15
3
8
15

6
21
15
30
50
18
15
36
32

Matriks yang sudah disisipi data rahasia diatas diatas


disebut matriks stego

PROPERTI STEGANOGRAFI
1.

Embedded message (hiddentext): pesan yang


disembunyikan.

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.

c o v e rte x t

h id d e n t e x t

E n c o d in g
( e m b e d d in )

key

c o v e rte x t

s te g o te x t

D e c o d in g
( e x t r a c t io n )

key

h id d e n t e x t

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

METODE LSB (SPATIAL DOMAIN)


Mengganti bit LSB dengan bit data.
11010010
MSB

LSB

LSB = Least Significant Bit


MSB = 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.

23

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 dapat
dibedakan secara visual dengan citra aslinya)

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
10010111 11001000 11111001

10101010 00100110
10001001 10100011

METODE LSB
Ukuran

data yang akan disembunyikan


bergantung pada ukuran cover-object.
26

Citra

pixel.

24-bit ukuran 256 256 pixel = 65536

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

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).

Teknik dasar pengkodean


Pesan dikirim dalam bentuk deretan bilangan biner 0 dan 1,
misalnya 10011, 01101, dst
Apabila 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 = 1001010
Berarti terjadi kesalahan pada posisi ke-3
Kalau pengirimana data dilakukan berulang-ulang akan
banyak membutuhkan memori dan tidak efisien

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 1
H= 0 1 1 0 0 1 1
0 0 0 1 1 1 1
Dan
1
0
G=
0
0

0
1
0
0

0
0
1
0

0
0
0
1

0
1
1
1

1
0
1
1

1
1
0
1

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

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=u
3.Jika h*wT = ki, maka terjadi kesalahan data pada kolom
ke i (ki = kolom ke-i dari matriks H)

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

1
0
v = (1 0 1 1) 0
0

0
1
0
0

0
0
1
0

v = (1 0 1 1 0 1 0)
Data inilah yang dikirimkan

0
0
0
1

0
1
1
1

1
0
1
1

1
1
0
1

a. Misalkan data yang diterima adalah w = (1 0 1 1 0 1)


Data ini harus di-decode dahulu
Proses Decode

H*w =
T

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

1
0
1
1
0
1
0

0
0
0

Karena h*wT = 0, maka tidak terjadi kesalahan, artinya


u = (1 0 1 1)

b. Misalkan data yang diterima adalah w = (1 0 0 1 0 1)


Data ini harus di-decode dahulu
Proses Decode

H*w =
T

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

1
0
0
1
0
1
0

1
1
0

Karena h*wT = kolom ke-3 dari matriks H, maka terjadi


kesalahan data pada posisi ke-3, artinya
w = (1 0 1 1 0 1 0) dan u = (1 0 1 1)

3.4. KOMPUTER GRAFIK


Transformasi Geometri
Salah 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

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)

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
y = y + n

atau

x = x + 0y + m
y = 0x + y + n

Dalam bentuk matriks:


x' 1
y ' 0

0 x m
1 y n

Y
A(x,y)

n
A(x,y)
y

m
x

Contoh:
Tentukan posisi dari segitiga ABC yang dibentuk oleh titiktitik: 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 = 70
Jawab:
xa ' xb ' xc ' 1 0
y ' y ' y ' 0 1

b
c
a

20 100 60 80 80 80
20 20 120 70 70 70

100 180 140

90
90
190

Dengan demikian titik yang dimaksud adalah:


A(100,90), B(180,90), dan C(140,190)

TRANSLASI (PERGESERAN)

300

250

200

150

C
100

50

A
0

B
50

100

150

200

250

300

Program dalam Matlab


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

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.
A(x,y)
y
A(x,y)

y
b

x=m(x-a) + a
y=n(y-b) + b
atau
x=mx + a ma
y=ny + b - nb

y-b

P(a,b)
x-a
a

Atau dalam bentuk matriks:


x' m 0 x a ma
y ' 0 n y b nb

Jika penskalaan pada sumbu koordinat P(0,0), maka a = 0


dan b =0, sehingga persamaannya menjadi:
x ' m 0 x
y ' 0 n y

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


adalah:
m 0
T

0
n

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

Jawab:
xa ' xb ' xc ' 4 0 20 100 60 80 400 240
y ' y ' y ' 0 2 20 20 120 40 40 240

b
c
a

Jadi posisi segitiga setelah penskalaan:


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

PENSKALAAN (PERGESERAN)

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

-400

-300

-200

-100

100

Keluaran dalam matlab

200

300

400

500

Program dalam Matlab


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

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).

Y
A(x,y)

A(x,y)

y
b

P(a,b)

Pandang segitiga siku-siku PAQ:


y b
sin
r sin y b ..................(1)
r
xa
cos
r cos x a .................(2)
r

Pandang segitiga siku-siku PAR:


y 'b
r sin( ) y 'b ...............(3)
r
x'a
cos( )
r cos( ) x'a ..............(4)
r

sin( )

Persamaan (3):
r sin( ) r sin( ). cos( ) r cos( ).sin( ) y 'b .......(5)

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


( x a ) sin( ) ( y b) cos( ) y 'b
y ' x sin( ) a sin( ) y cos( ) b cos( ) b
y ' x sin( ) a sin( ) b b cos( ) a sin( ) ...............(6)

Persamaan (4):
r cos( ) r cos( ). cos( ) r sin( ).sin( ) x'a .......(7)

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


( x a) cos( ) ( y b) sin( ) x'a
x' x cos( ) a cos( ) y sin( ) b sin( ) a
x' x cos( ) y sin( ) a a cos( ) b sin( )..............(8)

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


x' cos
y ' sin

sin
cos

x a a cos b sin
y b b cos a sin

Bila pusat rotasinya berada pada sumbu koordinat


P(0,0), maka persamaan tersebut menjadi:
x' cos
y ' sin

sin
cos

x
y

Matriks penyajian untuk rotasi terhadap titik pusat


P(0,0) adalah:
cos
T
sin

sin
cos

Contoh:
Tentukan posisi dari segitiga ABC yang dibentuk oleh titiktitik 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.
Jawab:
xa ' xb ' xc ' 1 0
y ' y ' y ' 0 1

b
c
a

20 100 60 20 100 60
20 20 120 20 20 120

Jadi posisi segitiga setelah rotasi:


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

Keluaran dalam matlab:


ROTASI SEBESAR 180 DERAJAT POSITIP

300

200

100

-100

-200

-300
-300

-200

-100

100

200

300

Tugas dan Latihan:


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

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 + my
y = nx + y

Ditulis dalam bentuk matriks jadi:


x' 1 m x
y ' n 1 y

Matriks penyajian untuk shearing terhadap titik


pusat P(0,0) adalah:
1 m
T

n
1

Contoh:
Tentukan posisi dari segitiga ABC yang dibentuk oleh titiktitik 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.
Jawab:
xa ' xb ' xc ' 1 2 20 100 60 60 140 300
y ' y ' y ' 3 1 20 20 120 80 320 300

b
c
a

Jadi posisi segitiga setelah dilakukan shearing:


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

Keluaran proses shearing dalam matlab:


SHEARING M = 2 DAN N = 3

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

-300

-200

-100

100

200

300

400

Tugas dan Latihan:


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

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:
x
x
1 0
y menjadi y T 0 1

2. Refleksi terhadap sumbu x:


0
x
x
1
y menjadi y T 0 1

3. Refleksi terhadap sumbu y = x:


x
y
0 1
y menjadi x T 1 0

Contoh:
Tentukan posisi dari segitiga ABC yang dibentuk oleh titiktitik A(10,2), B(10,8), C(3,2), jika dilakukan pencerminan
terhadap sumbu x, sumbu y, dan garis y = x
Jawab:
1. Pencerminan terhadap sumbu x
xa ' xb ' xc ' 1 0 10 10 3 10 10 3
y ' y ' y ' 0 1 2 8 2 2

8
2

b
c
a

Jadi posisi segitiga setelah dilakukan pencerminan


terhadap sumbu x:
A(-10,2), B(-10,8), dan C(-3,2)
2. Pencerminan terhadap sumbu y
0
xa ' xb ' xc ' 1
y ' y ' y ' 0 1

b
c
a

10 10 3 10 10 3
2 8 2 2 8 2

Jadi posisi segitiga setelah dilakukan pencerminan


terhadap sumbu y:
A(10,-2), B(10,-8), dan C(3,-2)

3. Pencerminan terhadap garis y = x


xa ' xb ' xc ' 0 1 10 10 3 2 8 2
y ' y ' y ' 1 0 2 8 2 10 10 3

b
c
a

Jadi posisi segitiga setelah dilakukan pencerminan


terhadap garis y = x:
A(2,10), B(8,10), dan C(2,3)

Keluaran proses pencerminan terhadap sumbu x


dalam matlab:
15

10

-5

-10

-15
-15

-10

-5

10

15

Tugas dan Latihan:


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

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

Dengan menggunakan sistem koordinat homogen


Persamaan umum transformasi titik A(x,y) menjadi A(x,y)
Dapat ditulis sebagai:
x' a c t x
y ' b d t
y

1 0 0 1

x
y

1

Dari persamaan tersebut diatas, masing-masing transformasi


dapat dirumuskan kembali menjadi:
1. Translasi:
1 0 m
x' 1 0 m
T 0 1 n y ' 0 1 n

0 0 1
1 0 0 1

x
y

1

2. Scalling:
m 0 0
x ' m 0 0
T 0 n 0 y ' 0 n 0

0 0 1
1 0 0 1

x
y

1

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


cos a sin a 0
x' cos a sin a
T sin a
cos a 0 y ' sin a
cos a


0
1 0
0
1
0

4. Shearing:
1 m 0
x ' 1 m 0
T n 1 0 y ' n 1 0

0 0 1
1 0 0 1

x
y

1

5. Refleksi terhadap sumbu x:


1 0 0
x ' 1 0 0 x
T 0 1 0 y ' 0 1 0 y



0 0 1
1 0 0 1 1

0
0

x
y

1

6. Refleksi terhadap sumbu y:


1
T 0

0
1
0

0
x' 1
0 y ' 0


1 0
1

0
1
0

0
0

0
0

x
y

1

7. Refleksi terhadap garis y = x:


0
T 1

1
0
0

0
x' 0
0 y ' 1


1 0
1

1
0
0

x
y

1

TUGAS DAN LATIHAN:


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

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.

Sebuah citra digital dapat dinyatakan dalam bentuk matriks


sbb:
f (1,1)
f (2,1)
f ( x, y )
...

f ( N ,1)

...
...

f (1, M )
f (2, M )

...

f ( N ,2) ...

f (N , M )

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

...

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

Standard deviasi Intensitas warna:


1 N
Nilai rata-rata: N X 1
i 1
n

e p ( xi ) log P ( xi )

Entropi:
Energi:

i 1

M N
1
Ej
[ P j ( x, y )]2

M xN
x 1 y 1

Homogeiniti:
Contrast:

Pd (i, j )
i j 1 i j

C (i j ) 2 Pd (i, j )
i

1 N
( xi xi ) 2

N i 1

Jarak Euclidean:
jika diketahui dua buah vektor:
a [a1, a2 , a3 , .........., an ] dan
b [b1 , b2 , b3 , ............, bn ]

Maka jarak Euclidean antara kedua vektor tsb.


ab (a1 b1 ) 2 (a2 b2 ) 2 (a3 b3 ) 2 .........( an bn ) 2

Jika n buah citra, masing2 mempunyai ciri2 yang dibentuk oleh


vektor2 sbb:
C1 [ 1 1 e1 p1 c1 h1 ]
C2 [ 2 2 e2 p2 c2 h2 ]
..............................................
Cn [ n n en pn cn hn ]

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.

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)

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.

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).

Langkah langkah pembentukan PCA


START

Normalisasi Input
Mencari covariance matriks
Mencari eigen vektor
dan eigen value
Mencari Principle
Component eigenface
STOP

Mencari Covarian Matriks


Matriks covarian dirumuskan sbb:
n

( xi x ) ' ( y i y )

cov( x, y ) i

n 1

Contoh: hitung covarian matriks dari:


1
x 2
4

1
3
0

2
1
3

Langkah langkah menghitung matriks kovarian


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

4
3

6
3

2). Kurangkan kolom 1 sampai 3 matriks x ke masing2 rataratanya


-1.3333 -0.3333
0
( xi x) -2.3333 1.6667 -1.0000
3.6667 -1.3333 1.0000
3).

Hitung matriks transpose dari langkah 2 diatas:


-1.3333 -2.3333 3.6667
( xi x) ' -0.3333 1.6667 -1.3333
0
-1.0000 1.0000

4). Covarian matriks


'

xi x * xi x
cov( x)
n 1

10.3333 -4.1667 3.0000


cov(x) = -4.1667 2.3333 -1.5000
3.0000 -1.5000 1.0000

Latihan, hitung covarian matriks berikut ini


Gunakan Matlab untuk menghitung langkah
demi langkah

x=

2
1
3
9

1
5
7
3

4
2
8
5

3
6
2
4

ans =
12.9167
-1.6667
2.5833
-0.7500

-1.6667 2.5833 -0.7500


6.6667 3.0000 -0.3333
3.0000 6.2500 -3.7500
-0.3333 -3.7500 2.9167

%COVARIAN MATRIK
x=[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-3
m=[x1 x2 x3 x4];
n=m';
%Langkah ke-4 (Covarian matiks)
C1=n*m/3
C2=m*n/3

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 = x
Untuk 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 x
Atau ekivalen dengan :
(A - I )x = 0
Persamaan karakteristik A:
|A - I| = 0

Contoh diberikan matriks sbb:


7 1

6
2

Eigenvector

7 1 1 4
1

4
6
3 12
3
2

Eigenvalue
Dimana = 4 adalah eigen value dari matriks A yg
berhubungan dengan eigen vector
1
x
3

Kita coba contoh diatas dengan menggunakan


persamaan karakteristik:
|A - I| = 0
7 1
1 0
7
A I

2
6
0 1
6
A I

7
6

1
2

1
2

(7 ) (2 ) 6 2 9 20

( 4) ( 5) 0

1 4
2 5

Dengan demikian nilai eigenvalue ada 2 yaitu 4 dan 5


Untuk = 5 eigenvektornya:
1
x
2

(A - I )x = 0
7
6

1 x1
0

2 x2

2
6

1 x1
0

3 x2

2 x1 x 2 0
6 x1 3 x2 0

atau x2 2 x1
1
xs
2

s adalah skalar bilangan riel sembarang 0


Jadi eigen vektornya adalah:
1
x
2

Latihan: Tentukan eigenvalue dan eigenvektor:


A

0 1 3
2
3 3
2 1 1

Pengenalan Citra Wajah dengan PCA

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]
f (1,1)
f (2,1)
I1 ( x, y )
...

f ( N ,1)

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

f (1,2)

...

...
...

...
...

f ( N ,2) ...

f (1, N )
f (2, N )
...

f (N , N )

3. Ubah dimensi citra wajah menjadi vektor (matrik baris)


berukuran: 1 x N2
1 [ f (1,1) f (2,1) f (3,1) f (4,1) ....... f ( N , N )]
2 [ f (1,1) f (2,1) f (3,1) f (4,1) ....... f ( N , N )]
3 [ f (1,1) f (2,1) f (3,1) f (4,1) ....... f ( N , N )]
................................................................................
................................................................................
................................................................................
15 [ f (1,1) f (2,1) f (3,1) f (4,1) ....... f ( N , N )]

Dari sini diperoleh vektor baru berukuran: 15 x N2


1

2
3

2
15 xn ....
....

....

15

4. Hitung rata-rata vektor diatas, diperoleh vektor


berukuran 1 x N2
1 15

15
i 1

5. Kurangkan setiap vektor citra wajah dengan rata-rata nya


Sehingga diperoleh vektor berukuran 15 x N2
1
1 3

2 3
2
3
3 3

...................
Diperoleh vektor : ...
...
...................

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

15 15
15

6. Hitung covarian matriks


n

( xi x ) ' ( y i y )

cov( x, y ) i

n 1
15

')
(

i i
A1 cov( ) i 1
n 1

dan

matriks 15 x15

15

' )
(

i i
A2 cov( ) i 1
n 1

matriks N 2 xN 2

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


A1 I 0

Persamaan determinan diatas diselesaikan akan diperoleh


15 eigenvalue (), yang merupakan bilangan skalar:

1, 2 , 3 , .................., 15
Hitung eigenvektor untuk masing2 nilai , diurutkan dimulai
dari nilai yang terbesar sampai yang terkecil

A1 i I U i

Akan diperoleh eigenvektor sbb:


u1
1
1
u2

...

U1 ...

...
...

u1
15

u2
1
2
u2

...

U 2 ...

...
...

u2
15

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

u15
1
15
u2

...

U15 ...

...
...

u15
15

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:
Vi ' U i
v1
1
1
v2

...

V1 ...

...

...

v1
N2

v2
1
2
v2

...

V2 ...

...

...

v2
N2

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

v15
1
15
v2

...

V15 ...

...

...

v15
N2

Representasi dari Wajah:


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

dimana

15

Wi vi

i 1

wi j vi

j adalah vektor wajah berukuran (1xN2 ) sedangkan


vi berukuran (N2 x 1), maka wi berukuran (1 x 1)
vi disebut eigenface

Tiap-tiap wajah training dinormalisasi sehingga citra wajah j


yang belum dinormalisasi menjadi citra wajah j yang sudah
dinormalisasi
1
w
1
1
w2

...

1 ...

...

...

w1
15

Pengenalan wajah dengan menggunakan eigenface


Misal ada citra wajah yang akan dikenali
Langkah langkahnya:
1). Hitung: = ------ (1 x N2)
2). Proyeksikan kedalam ruang wajah

dimana

15

Wi vi

i 1

wi vi

3). Representasikan sebagai

w
1

w2

...
...

...
...

w
15

4). Tentukan distance error d:


d min k k

5). Jika d<T, maka citra wajah dikenali sebagai wajah ke-k
dari sekumpulan training diatas
Dimana T = Threshold (didapat dari hasil percobaan)

Contoh Program dalam Matlab


% PENGENALAN POLA CITRA TEKSTUR METODE EUCLUDEAN
clear, close all
I1=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]

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)

clear all
clc
%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 ENCODE
A=[ -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];

%Pesan yg dikirim
C=B*A;
%Proses DECODE
invers_B=inv(B);
%ISI PESAN
A_r=invers_B*C;
E=A_r;
%ISI PESAN
Pesan=[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)]';

Anda mungkin juga menyukai