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



(
(
(




=
15 9 11 3 1 15 7 7
15 7 1 15 2 9 8 13
9 6 12 6 5 9 5 1
A
Kunci dirubah menjadi: -1 -13 -10 -13 13 -5
Disimpan dalam matriks B(mx3)
(
(
(


=
15 5 10
15 13 13
15 13 1
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
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:
(
(
(


=
15 5 10
15 13 13
15 13 1
B
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
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:
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
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 + =
17
PESAN (MESSAGE)
1. Teks
Torang semua bersodara

2. Audio





3. Gambar (image)




4. Video





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 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
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 21
33 23 54 7 8 9 4 12 15
21 3 42 15 66 5 12 9 30
23 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 36
22 4 5 8 55 7 12 15 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.
Encoding
(embeddin)
covertext
hiddentext
key
Decoding
(extraction)
stegotext
key
hiddentext
covertext
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
23
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.
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 10101010 00100110
10010111 11001000 11111001 10001001 10100011

2
6

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


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
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 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 =
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 w
T
adalah transpose matriks w

1. Hitung h*w
T

2. Jika h*w
T
= 0, maka tidak terjadi kesalahan data,
artinya w = u
3. Jika h*w
T
= 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 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
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 1
H * w
T
= 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*w
T
= 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
1 0 1 0 1 0 1
H * w
T
= 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*w
T
= 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 atau x = x + 0y + m
y = y + n y = 0x + y + n

Dalam bentuk matriks:

(

+
(

=
(

n
m
y
x
y
x
1 0
0 1
'
'
A(x,y)
A(x,y)
x
x
Y
y
y
m
n
X
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 = 70
Jawab:

(

+
(

=
(

70 70 70
80 80 80
120 20 20
60 100 20
1 0
0 1
' ' '
' ' '
c b a
c b a
y y y
x x x
(

=
190 90 90
140 180 100
Dengan demikian titik yang dimaksud adalah:
A(100,90), B(180,90), dan C(140,190)
0 50 100 150 200 250 300
0
50
100
150
200
250
300
TRANSLASI (PERGESERAN)
A B
C
C
B A
%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)

Program dalam Matlab
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) + a
y=n(y-b) + b
atau
x=mx + a ma
y=ny + b - nb
P(a,b)
A(x,y)
A(x,y)
b
a x
y
x
y
x-a
y-b
(

+
(

=
(

nb b
ma a
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
m
T
0
0
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
(

=
(

=
(

240 40 40
240 400 80
120 20 20
60 100 20
2 0
0 4
' ' '
' ' '
c b a
c b a
y y y
x x x
Jawab:
Jadi posisi segitiga setelah penskalaan:
A(80,40), B(400,40), dan C(240,240)
-500 -400 -300 -200 -100 0 100 200 300 400 500
-500
-400
-300
-200
-100
0
100
200
300
400
500
PENSKALAAN (PERGESERAN)
Keluaran 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)

Program dalam Matlab
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).
A(x,y)
P(a,b)
A(x,y)
x
y

a
b
x
y
Q
X
Y
Pandang segitiga siku-siku PAQ:

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

=
=

=
| |
| |
R
Pandang segitiga siku-siku PAR:
) 4 ....( .......... ' ) cos(
'
) cos(
) 3 .....( .......... ' ) sin(
'
) sin(
a x r
r
a x
b y r
r
b y
= +

= +
= +

= +
| o | o
| o | o
) 5 .......( ' ) sin( ). cos( ) cos( ). sin( ) sin( b y r r r = + = + | o | o | o
Persamaan (3):
) 6 .....( .......... ) sin( ) cos( ) sin( ) sin( '
) cos( ) cos( ) sin( ) sin( '
' ) cos( ) ( ) sin( ) (
o o o o
o o o o
o o
a b b a x y
b b y a x y
b y b y a x
+ =
+ + =
= +
Masukan persamaan (1) dan (2) ke persamaan (5):
Persamaan (4):
) 7 .......( ' ) sin( ). sin( ) cos( ). cos( ) cos( a x r r r = = + | o | o | o
Masukan persamaan (1) dan (2) ke persamaan (7):
) 8 .....( )......... sin( ) cos( ) sin( ) cos( '
) sin( ) sin( ) cos( ) cos( '
' ) sin( ) ( ) cos( ) (
o o o o
o o o o
o o
b a a y x x
a b y a x x
a x b y a x
+ + =
+ + =
=
Persamaan (6) dan (8) disusun dalam bentuk matriks
(


+
+
(


=
(

o o
o o
o o
o o
sin cos
sin cos
cos sin
sin cos
'
'
a b b
b a a
y
x
y
x
(


=
(

y
x
y
x
o o
o o
cos sin
sin cos
'
'
Bila pusat rotasinya berada pada sumbu koordinat
P(0,0), maka persamaan tersebut menjadi:
(


=
o o
o o
cos sin
sin cos
T
Matriks penyajian untuk rotasi terhadap titik pusat
P(0,0) adalah:
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.
(



=
(

=
(

120 20 20
60 100 20
120 20 20
60 100 20
1 0
0 1
' ' '
' ' '
c b a
c b a
y y y
x x x
A(-20,-20), B(-100,-20), dan C(-60,-120)
Jawab:
Jadi posisi segitiga setelah rotasi:
-300 -200 -100 0 100 200 300
-300
-200
-100
0
100
200
300
ROTASI SEBESAR 180 DERAJAT POSITIP
Keluaran dalam matlab:
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
(

=
(

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
m
T
(

=
(

=
(

300 320 80
300 140 60
120 20 20
60 100 20
1 3
2 1
' ' '
' ' '
c b a
c b a
y y y
x x x
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:
-400 -300 -200 -100 0 100 200 300 400
-400
-300
-200
-100
0
100
200
300
400
SHEARING M = 2 DAN N = 3
Keluaran proses shearing dalam matlab:
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:
(

=
(

1 0
0 1
T
y
x
menjadi
y
x
2. Refleksi terhadap sumbu x:
(

=
(

1 0
0 1
T
y
x
menjadi
y
x
3. Refleksi terhadap sumbu y = x:
(

=
(

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


=
(

=
(

2 8 2
3 10 10
2 8 2
3 10 10
1 0
0 1
' ' '
' ' '
c b a
c b a
y y y
x x x
Jawab:
1. Pencerminan terhadap sumbu x
Jadi posisi segitiga setelah dilakukan pencerminan
terhadap sumbu x:
A(-10,2), B(-10,8), dan C(-3,2)

2. Pencerminan terhadap sumbu y
(


=
(

=
(

2 8 2
3 10 10
2 8 2
3 10 10
1 0
0 1
' ' '
' ' '
c b a
c b a
y y y
x x x
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
(

=
(

=
(

3 10 10
2 8 2
2 8 2
3 10 10
0 1
1 0
' ' '
' ' '
c b a
c b a
y y y
x x x
Jadi posisi segitiga setelah dilakukan pencerminan
terhadap garis y = x:
A(2,10), B(8,10), dan C(2,3)

-15 -10 -5 0 5 10 15
-15
-10
-5
0
5
10
15
Keluaran proses pencerminan terhadap sumbu x
dalam matlab:
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:
(
(
(

(
(
(

=
(
(
(

1
1 0 0
1
'
'
y
x
t d b
t c a
y
x
y
x
Dari persamaan tersebut diatas, masing-masing transformasi
dapat dirumuskan kembali menjadi:
(
(
(

(
(
(

=
(
(
(

==>
(
(
(

=
1 1 0 0
1 0
0 1
1
'
'
1 0 0
1 0
0 1
y
x
n
m
y
x
n
m
T
1. Translasi:
(
(
(

(
(
(

=
(
(
(

==>
(
(
(

=
1 1 0 0
0 0
0 0
1
'
'
1 0 0
0 0
0 0
y
x
n
m
y
x
n
m
T
2. Scalling:
(
(
(

(
(
(


=
(
(
(

==>
(
(
(


=
1 1 0 0
0 cos sin
0 sin cos
1
'
'
1 0 0
0 cos sin
0 sin cos
y
x
a a
a a
y
x
a a
a a
T
3. Rotasi berlawanan arah jarum jam (sudut putar positif):
4. Shearing:
(
(
(

(
(
(

=
(
(
(

==>
(
(
(

=
1 1 0 0
0 1
0 1
1
'
'
1 0 0
0 1
0 1
y
x
n
m
y
x
n
m
T
(
(
(

(
(
(

=
(
(
(

==>
(
(
(

=
1 1 0 0
0 1 0
0 0 1
1
'
'
1 0 0
0 1 0
0 0 1
y
x
y
x
T
5. Refleksi terhadap sumbu x:
6. Refleksi terhadap sumbu y:
(
(
(

(
(
(

=
(
(
(

==>
(
(
(

=
1 1 0 0
0 1 0
0 0 1
1
'
'
1 0 0
0 1 0
0 0 1
y
x
y
x
T
(
(
(

(
(
(

=
(
(
(

==>
(
(
(

=
1 1 0 0
0 0 1
0 1 0
1
'
'
1 0 0
0 0 1
0 1 0
y
x
y
x
T
7. Refleksi terhadap garis y = x:
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 = -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:
(
(
(
(

=
) , ( ... ) 2 , ( ) 1 , (
... ... ... ...
) , 2 ( ... ... ) 1 , 2 (
) , 1 ( ... ) 2 , 1 ( ) 1 , 1 (
) , (
M N f N f N f
M f f
M f f f
y x f
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:

=
=
N
i
i i
x x
N
1
2
) (
1
o

=
=
N
i
X
N
1
1
1

Nilai rata-rata:

=
=
n
i
i i
x P x p e
1
) ( log ) ( Entropi:

= =
=
M
x
N
y
y x
j
P
N x M
j
E
1 1
2
)] , ( [
1
Energi:

+
=
i j
d
j i
j i P
H
1
) , (
Homogeiniti:

=
i j
d
j i P j i C ) , ( ) (
2
Contrast:
Jarak Euclidean:

jika diketahui dua buah vektor:

] .., .......... , , , [
] , .......... , , , [
3 2 1
3 2 1
n
n
b b b b b
dan a a a a a
=
=
Maka jarak Euclidean antara kedua vektor tsb.
2 2
3 3
2
2 2
2
1 1
) .........( ) ( ) ( ) (
n n
b a b a b a b a ab + + + =
Jika n buah citra, masing2 mempunyai ciri2 yang dibentuk oleh
vektor2 sbb:
] [
...... .......... .......... .......... ..........
] [
] [
2 2 2 2 2 2 2
1 1 1 1 1 1 1
n n n n n n n
h c p e C
h c p e C
h c p e C
o
o
o
=
=
=
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).
START
Normalisasi Input
Mencari covariance matriks
Mencari eigen vektor
dan eigen value
Mencari Principle
Component eigenface
STOP
Langkah langkah pembentukan PCA
Mencari Covarian Matriks
Matriks covarian dirumuskan sbb:
1
) (
'
) (
) , cov(

n
n
i
y
i
y x
i
x
y x
(
(
(

=
3 0 4
1 3 2
2 1 1
x
Contoh: hitung covarian matriks dari:
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
1
x
= ) ( x
i
x
-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
=
'
) ( x
i
x
4). Covarian matriks
( ) ( )
1
*
'
) cov(


=
n
x
i
x x
i
x
x
10.3333 -4.1667 3.0000
-4.1667 2.3333 -1.5000
3.0000 -1.5000 1.0000
cov(x) =
2 1 4 3
1 5 2 6
3 7 8 2
9 3 5 4
x =
Latihan, hitung covarian matriks berikut ini
Gunakan 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
%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
R
n
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:
(


=
2 6
1 7
A
(

=
(

=
(


3
1
4
12
4
3
1
2 6
1 7
Eigenvector
Eigenvalue
Dimana = 4 adalah eigen value dari matriks A yg
berhubungan dengan eigen vector
(

=
3
1
x
Kita coba contoh diatas dengan menggunakan
persamaan karakteristik:
|A - I| = 0
(


=
(


2 6
1 7
1 0
0 1
2 6
1 7
I A
5
2
4
1
0 ) 5 ( ) 4 (
20 9
2
6 ) 2 ( ) 7 (
2 6
1 7
=
=
=
+ = + =

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

(

=
2
1
x
(A - I )x = 0
0
2
1
2 6
1 7
=
(


x
x

0
2
1
3 6
1 2
=
(

x
x
(

=
=
2
1
1
2
2
s x
x x
0
2
3
1
6
0
2 1
2
=
=
x x
x x
atau
s adalah skalar bilangan riel sembarang 0
Jadi eigen vektornya adalah:
(

=
2
1
x
(
(
(


=
1 1 2
3 3 2
3 1 0
A
Latihan: Tentukan eigenvalue dan eigenvektor:
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 = [I
1
, I
2
, I
3
, .............I
15
]


(
(
(
(

=
) , ( ... ) 2 , ( ) 1 , (
... ... ... ...
) , 2 ( ... ... ) 1 , 2 (
) , 1 ( ... ) 2 , 1 ( ) 1 , 1 (
) , (
1
N N f N f N f
N f f
N f f f
y x I
I
1
= citra ke-1
I
2
= citra ke-2
dst.
3. Ubah dimensi citra wajah menjadi vektor (matrik baris)
berukuran: 1 x N
2

)] , ( ....... ) 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
N N f f f f f
N N f f f f f
N N f f f f f
N N f f f f f
= I
= I
= I
= I
(
(
(
(
(
(
(
(
(

I
I
I
I
= I
15
....
....
....
3
2
1
15
2
xn
Dari sini diperoleh vektor baru berukuran: 15 x N
2

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

=
I = +
15
1
15
1
i
i
5. Kurangkan setiap vektor citra wajah dengan rata-rata nya
Sehingga diperoleh vektor berukuran 15 x N
2

+ I =
+ I =
+ I =
+ I =
15 15
......... ..........
......... ..........
......... ..........
3 3
3 2
3 1
|
|
|
|
(
(
(
(
(
(
(
(
(

=
15
...
...
...
3
2
1
|
|
|
|
|
Diperoleh vektor :
6. Hitung covarian matriks
1
) (
'
) (
) , cov(

n
n
i
y
i
y x
i
x
y x
2 2
1
15
1
)
'
(
) cov(
2
xN N matriks
n
i
i i
A

=
u u
= u =

dan
15 15
1
15
1
)
'
(
) cov(
1
x matriks
n
i
i i
A

=
u u
= u =

7. 1. Hitung nilai eigenvalue () dan eigenvektor (U
i
) dari A
1

0
1
= I A
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
( ) 0
1
=
i
U I
i
A
Akan diperoleh eigenvektor sbb:
(
(
(
(
(
(
(
(
(
(
(
(

=
1
15
...
...
...
...
1
2
1
1
1
u
u
u
U
(
(
(
(
(
(
(
(
(
(
(
(

=
2
15
...
...
...
...
2
2
2
1
2
u
u
u
U
(
(
(
(
(
(
(
(
(
(
(
(

=
15
15
...
...
...
...
15
2
15
1
15
u
u
u
U
..................
7. 2. Hitung eigenvektor (V
i
) dari A
2

Karena matriks A
2
berukuran besar yaitu N
2
x N
2
, maka
kita dapat menghitung ke 15 eigenvektor dari A
2
dengan
menggunakan:

i
U
i
V
'
u =
(
(
(
(
(
(
(
(
(
(
(
(

=
1
...
...
...
...
1
2
1
1
1
2
N
v
v
v
V
(
(
(
(
(
(
(
(
(
(
(
(

=
2
...
...
...
...
2
2
2
1
2
2
N
v
v
v
V
(
(
(
(
(
(
(
(
(
(
(
(

=
15
...
...
...
...
15
2
15
1
15
2
N
v
v
v
V ..................
Representasi dari Wajah:
Tiap-tiap wajah training dapat direpresentasikan sebagai
kombinasi linier dari 15 vektor V
i
, yaitu:

=
= u
15
1 i
i
v
i
W
j
i
v
j i
w u =
dimana

j
adalah vektor wajah berukuran (1xN
2
) sedangkan
v
i
berukuran (N
2
x 1), maka w
i
berukuran (1 x 1)
v
i
disebut eigenface
Tiap-tiap wajah training dinormalisasi sehingga citra wajah
j

yang belum dinormalisasi menjadi citra wajah
j
yang sudah
dinormalisasi
(
(
(
(
(
(
(
(
(
(
(
(

= O
1
15
...
...
...
...
1
2
1
1
1
w
w
w
Pengenalan wajah dengan menggunakan eigenface
Misal ada citra wajah yang akan dikenali
Langkah langkahnya:
1). Hitung: = ------ (1 x N
2
)
2). Proyeksikan kedalam ruang wajah

=
= u
15
1 i
i
v
i
W
dimana
i
v
i
w u =
3). Representasikan sebagai
(
(
(
(
(
(
(
(
(
(
(
(

= O
15
...
...
...
...
2
1
w
w
w
4). Tentukan distance error d:
k k
d O O = min
5). Jika d<T, maka citra wajah dikenali sebagai wajah ke-k
dari sekumpulan training diatas
Dimana T = Threshold (didapat dari hasil percobaan)
% 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]

Contoh Program dalam Matlab
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)]';