• Tidak ada hasil yang ditemukan

BAB 3 METODOLOGI PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 METODOLOGI PERANCANGAN"

Copied!
28
0
0

Teks penuh

(1)

BAB 3

METODOLOGI PERANCANGAN

Bab ini berisi penjelasan mengenai langkah-langkah perhitungan serta prosedur-prosedur yang digunakan untuk menemukan solusi atas rumusan masalah pada Bab1. Dalam bab ini juga akan ditampilkan objek-objek yang digunakan dalam penelitian untuk kebutuhan training data.

3.1 Pengenalan Citra Objek

Pada penelitian ini, digunakan 70 citra objek yang terdiri dari 7 model kontur sandal Dhiif’s tampak atas (kanan atau kiri saja, bukan sepasang). Setiap model sandal diambil sampel sebanyak 10 citra dalam posisi yang berbeda-beda, di mana 8 citra digunakan sebagai tahap pelatihan (sample learning) dan 2 citra digunakan sebagai tahap pengujian (sample detection).

Setiap citra menggunakan format bitmap karena format ini menyimpan citra piksel per piksel dan tanpa kompresi data sehingga tidak terjadi kehilangan informasi pada citra yang dapat mengurangi keakuratan pengenalan. Citra yang digunakan rata-rata berukuran 24 x 38 piksel sesuai dengan pertimbangan untuk memperoleh ketelitian dan kecepatan pengenalan yang optimal.

Proses pengambilan citra adalah dengan cara memotret objek menggunakan kamera digital. Citra tersebut kemudian diubah ke dalam bentuk file .bmp berukuran 24 x 38 piksel dengan menggunakan software Adobe Photoshop.

(2)

Berikut ini adalah citra objek yang digunakan dalam penelitian:

Hati

(3)

Lumba-lumba

(4)

Paus

(5)

Stroberi

3.2 Representasi Citra Dengan Fourier Descriptors

Penelitian ini memanfaatkan Fourier Descriptors sebagai praproses untuk menciptakan representasi citra yang akan digunakan sebagai input bagi jaringan syaraf tiruan. Proses representasi citra dengan Fourier Descriptors terdiri dari beberapa tahap, yaitu tahap read picture, tahap mencari centre of gravity, tahap mencari Point M (titik terjauh), tahap mencari titik-titik koordinat, tahap menghitung panjang dan besar sudut dari kontur objek, dan tahap mencari parameter Fourier Descriptors.

3.2.1 Read Picture

Modul ini digunakan untuk mengambil objek dari file grafik PCX 256 warna. Ada lima prosedur yang dipanggil dalam modul ini, yaitu prosedur ReadHeader, ReadPalette, ChangePalette, dan UnpackPCX.

Prosedur ReadHeader berfungsi untuk menbaca record yang berisi header file PCX yang berukuran 128 byte dan berada pada awal file. Header yang sudah terbaca

(6)

ditampung ke dalam satu variabel yang bernama Head. Variabel Head telah dideklarasikan sebagai record. Field-field pada Head berisi informasi header.

Dari field Manufacturer (byte 0) dan Version (byte 1) dapat diketahui apakah file yang sedang dibaca adalah file PCX 256 warna. Jika benar, dimensi image (byte 4) disimpan ke dalam variabel Width dan Depth. Selain itu, yang perlu disimpan adalah field BytePerLine (byte 66) yang dimasukkan ke dalam variabel Bytes. Variabel ini berisi jumlah byte per baris dari data file PCX.

Prosedur ReadPalette untuk membaca palet warna. Palet ini ukurannya 768 byte dan berada pada akhir file. Ukuran 768 byte ini terdiri dari 256 tingkat warna merah (R), hijau (G), dan biru (B). Palet selalu diawali dengan kode 12. Palet yang terbaca disimpan ke dalam variabel Color.

Tampilan mode VGA hanya menyediakan 64 tingkat untuk warna merah, hijau, dan biru, oleh sebab itu 256 tingkat warna ini harus dibagi dengan 4 agar menjadi 64 tingkat warna.

Prosedur ChangePalette merupakan suatu interupsi yang memberitahukan bahwa akan terjadi transfer informasi ke card VGA.

Prosedur UnpackPCX adalah prosedur untuk membuka data file PCX yang ter-compress dengan melakukan encoding. Proses encoding data file PCX disebut run-length encoding dan dilakukan dengan membaca data per baris. Jumlah baris data file PCX diperoleh dari variabel Depth.

Pada setiap baris, pertama-tama dilakukan pembacaan byte pertama dari setiap baris, misalkan byte pertama bernilai j. Dua bit awal diperiksa apakah “1”. Jika bukan, maka byte itu sendiri merupakan suatu nilai data tunggal. Tetapi jika benar, maka ada k byte data yang bernilai j, di mana k adalah nilai dari sisa enam bit terakhir ( k ) dari byte

(7)

pertama tadi. Jika byte pertama adalah 1101 0011, maka k = 13. Proses pembacaan (scanning) ini dilakukan sampai byte terakhir (byte 160) dari setiap baris.

Hasil dari pembacaan citra file PCX ini disimpan ke dalam variabel Image1. Jadi Image1 adalah variabel array yang menyimpan informasi citra dengan ukuran 160 x 100 piksel.

3.2.2 Centre Of Gravity

Setelah citra PCX dibaca, langkah berikutnya adalah menentukan titik berat (centre of gravity) objek.

Untuk mencari titik berat, persamaannya adalah :

(

)

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ =

= = = = N t i N t x N t i N t y t t A M A M y x T 1 1 1 1 , , (3.1)

Untuk memasukkan nilai-nilai ke dalam persamaan ini, yang harus dicari terlebih dahulu adalah chain code. Setelah chain code dicari, baru dapat diperoleh harga momen sumbu x (Mx), momen sumbu y (My), dan luas (A).

Dalam mencari chain code, langkah pertama adalah menemukan titik awal objek. Pencarian titik awal dilakukan dengan prosedur Initial_Search. Pencarian titik awal objek dilakukan dengan scanning per baris dimulai dari piksel paling kiri atas. Setiap piksel memiliki tingkat warna tertentu. Karena Objek berwarna dengan latar belakang putih, maka pencarian akan berhenti jika sudah menemukan piksel yang berwarna. Arah atau chain pada chain code dicari mulai dari titik awal dan berakhir pada titik yang sama. Pencarian dilakukan dengan prosedur SearchCode.

(8)

chain = 0

chain = 7 chain = 1

chain = 2 chain = 3 chain = 4

chain = 5 chain = 6 0 7 1 2 3 4 5 6 chain direction starting chain

Gambar 3.1 Pencarian arah pada Freeman Code

Karena scanning dilakukan dari atas, maka arah mula-mula dianggap 0. Hasil pencarian arah ini disimpan ke dalam daftar berkait (link-list) dengan chain code sebagai penunjuk/pointer awal daftar berkait. Prosedur untuk menyimpan arah-arah chain code adalah prosedur SaveCode_To_Buffer. Selain mendapatkan arah-arah chain code, dari prosedur ChainCode disimpan juga koordinat-koordinat titik yang membentuk keliling

(9)

objek. Koordinat-koordinat ini disimpan ke dalam daftar berkait juga, di mana kontur sebagai penunjuk awal.

Proses penyimpanan koordinat ini dilakukan dengan prosedur SaveCoord_To_Buffer. Dari titik-titik yang membentuk keliling objek diperoleh image-image, jumlah titik disimpan dalam variabel SumOfPoint. Setelah diperoleh arah-arah chain code, nilai Mx, My, dan A dapat dicari dengan melihat tabel 1.

Tabel 3.1 Tabel Rumus mencari luas (A) dan momen

Vektor A Mx My 0 y 2 2 y 0 1 2 1 + y 6 1 2 2 2 + + y y 6 1 2 2 2 + + x x 2 0 0 2 2 x 3 ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ + − 2 1 y 6 1 2 2 2 − − − y y 6 1 2 2 2 + − x x 4 −y 2 2 y − 0 5 ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − − 2 1 y 6 1 2 2 2 − + − y y 6 1 2 2 2 − + − x x 6 0 0 2 2 x − 7 2 1 − y 6 1 2 2 2 + − y y 6 1 2 2 2 − − − x x

Dengan diperoleh nilai Mx, My dan A, maka titik berat (titik T) dapat dicari, koordinat

(10)

Pada akhir prosedur chain code, isi dari daftar berkait dipindahkan ke dalam array dengan prosedur MoveCoordToArray. Variabel array yang digunakan adalah ArContour. Pemindahan ini dilakukan karena isi daftar berkait ini akan berubah setelah objek mengalami transformasi. Setelah isi daftar berkait dipindahkan, memori yang digunakan untuk daftar berkait dibebaskan dengan prosedur DisposeContour.

3.2.3 Point M

Prosedur Point_M untuk mencari titik terjauh (titik M) dari titik berat. Cara pencarian titik M dengan mengukur jarak antara titik M dengan titik-titik yang membentuk keliling objek (kontur). Hasil pengukuran jarak dibandingkan, titik yang menghasilkan jarak terjauh dengan titik T dinyatakan sebagai titik M.

Rumus untuk mengukur jarak dapat dihitung dengan persamaan:

(

) (

2

)

2

xp xt yp yt

d = − + − (3.2)

Jarak d dapat dicari karena koordinat titik T dan titik-titik lainnya sudah diketahui. Jarak maksimum disimpan ke dalam variabel dMax, sedangkan koordinat titik terjauh dinyatakan dengan (Xmax,Ymax).

3.2.4 Cari Titik Koordinat

Titik terjauh (titik M) merupakan koordinat dari titik pertama, dilanjutkan dengan koordinat titik ke dua dan seterusnya hingga mencapai koordinat titik ke sembilan. Pada kontur objek yang diteliti penulis hanya menentukan 9 titik koordinat.

(11)

3.2.5 Hitung panjang dan sudut (Menghitung Panjang dan Besar Sudut dari Kontur Objek)

Dengan mengetahui titik-titik koordinat kontur objek, maka dapat dihitung panjang setiap edge dari objek yang bersangkutan (lihat Gambar 3.2).

Suatu edge dinyatakan oleh dua buah verteks yang berdampingan.

(

xm,yi

)

(

xm,ym

)

(

xi,yi

)

m l i l l Δ

Gambar 3.2 Gambar sebuah edge E yang dibentuk dari dua buah verteks yang berdampingan Vi dan Vm

Untuk menghitung panjang edge dari verteks Vi sampai dengan verteks Vm dapat

digunakan rumus Pythagoras. Di mana egde E merupakan sisi miringnya, sehingga panjang dari edge E adalah:

2 2 1 l lm l = + Δ (3.3) di mana: li = xixm dan m i m y l = y − (3.4)

Sehingga rumusnya secara lengkap menjadi seperti di bawah ini :

(

) (

2

)

2

xi xm yi ym

l = − + −

(12)

Sedangkan untuk mencari besarnya sudut dari sebuah verteks ke verteks lainnya digunakan cara vektor. ΔΦi merupakan perubahan sudut pada verteks Vi (lihat Gambar

3.3). Terdapat dua edge yang bertemu pada verteks Vi, yaitu edge (Vi-1,Vi) dan edge

(Vi,Vi+1). i ΔΦ 1 i V i V 1 i V+ i ΔΦ 1 i V i V 1 i V+

Gambar 3.3 Gambar dua buah edge yang bertemu pada verteks Vi dengan sudut

sebesar ΔΦi

Untuk mencari besar sudut ΔΦi digunakan cara vektor dot product, yakni :

1 1 1 1 cos + − + − ⋅ • = ΔΦ i i i i i i i i i V V V V V V V V (3.6)

Atau dapat juga dituliskan sebagai berikut:

(

)(

) (

)(

)

(

) (

)

(

) (

)

2 1 2 1 2 1 2 1 1 1 1 1 cos i i i i i i i i i i i i i i i i i y y x x y y x x y y y y x x x x − + − ⋅ − + − − − + − − = ΔΦ + + − − + − + − (3.7)

Karena untuk bahasa pemrograman C# memberikan nilai arccos (-1 ≤ Φ ≤ 1) di antara 0 – π, jadi untuk menentukan tanda (positif atau negatif) dari ΔΦi ini digunakan teori

(13)

1 i V β α α β 1 i V+ i V i ΔΦ

Gambar 3.4 Gambar dua buah edge dengan gadien m1 dan m2

Dengan menentukan:

(

)

α β α β β tg tg 1 tg tg tg ⋅ + − = − a (3.8) di mana: 1 1 1 tg − − − − = = i i i i x x y y m α i i i i x x y y m − − = = + + 1 1 2 tgβ (3.9)

dan memeriksa apakah tg(βα) ini bernilai positif atau negatif, maka dapat ditentukan: 1. Perubahan sudut = + ΔΦi ,

jika 0 < ΔΦi < 1 dan tg(β - α) positif atau ½ π < ΔΦi < π dan tg(βα)

negatif.

2. Perubahan sudut = - ΔΦi ,

jika 0 < ΔΦi < 1 dan tg(βα) negatif atau ½ π < ΔΦi < π dan tg(β - α) positif.

Dengan menggunakan cara-cara seperti di atas, maka dapat dihitung besarnya perubahan sudut dari suatu verteks ke verteks lainnya. Akan tetapi akan muncul satu

(14)

kesulitan lagi apabila salah satu edge dari kontur objek tersebut ternyata sejajar dengan sumbu Y atau dengan kata lain Δxi = 0, sehingga gradien untuk edge tersebut adalah:

∞ = − = − 0 yi yi 1 m (3.10)

Komputer tidak dapat menghitung suatu bilangan yang dibagi dengan 0. Oleh karena itu digunakan pendekatan lain, khusus untuk edge yang sejajar dengan sumbu Y atau Δxi = 0, yaitu dengan memperhatikan arah perputarannya. Untuk hal ini ada dua

keadaan yaitu bila xi+1 = xi atau xi-1 = xi . Untuk masing-masing keadaan ada 4

kemungkinan perputaran arah (lihat Gambar 3.5 (a) dan Gambar 3.5 (b)). Untuk keadaan xi+1 = xi (Gambar 3.5 (a))

a. Untuk xi-1 < xi dan yi > yi+1, maka perubahan sudut ΔΦi adalah bertanda positif.

b. Untuk xi-1 < xi dan yi < yi+1, maka perubahan sudut ΔΦi adalah bertanda negatif.

c. Untuk xi-1 > xi dan yi > yi+1, maka perubahan sudut ΔΦi adalah bertanda negatif.

d. Untuk xi-1 > xi dan yi < yi+1, maka perubahan sudut ΔΦi adalah bertanda positif.

Untuk keadaan xi-1 = xi (Gambar 3.5 (b))

a..Untuk xi > xi+1 dan yi-1 < yi , maka perubahan sudut ΔΦi adalah bertanda negatif.

b. Untuk xi > xi+1 dan yi-1 > yi , maka perubahan sudut ΔΦi adalah bertanda positif

c. Untuk xi < xi+1 dan yi-1 < yi , maka perubahan sudut ΔΦi adalah bertanda positif

(15)

1 i V− 1 i V+ 1 i V− 1 i V+ i V a d b c

Gambar 3.5 (a) Berbagai kemungkinan perputaran arah untuk keadaan xi = xi+1.

1 i V 1 i V+ 1 i V 1 i V+ i V a d b c

Gambar 3.5 (b) Berbagai kemungkinan perputaran arah untuk keadaan xi-1 = xi.

Dengan pendekatan-pendekatan seperti inilah dapat dihitung panjang dan besar sudut dari suatu verteks ke verteks lain pada kontur suatu objek.

(16)

3.2.6 Cari parameter

Setelah mendapatkan panjang dan besar sudut dari suatu verteks ke verteks lainnya pada kontur suatu objek, maka dapat dihitung besarnya parameter Fourier Descriptors dari objek tersebut. Untuk menghitung parameter Fourier Descriptors dari suatu objek cukup menggunakan rumus-rumus sebagai berikut:

= ΔΦ − − = m k k k l L 1 0 1 π μ dan

= ΔΦ − = m k k k L l l n n 1 n 2 sin 1 a π π

= ΔΦ = m k k k L l l n n 1 n 2 cos 1 b π π (3.11) di mana:

m : jumlah atau banyaknya titik atau verteks dari suatu kontur objek lk : panjang edge yang ke-k

ΔΦk : besarnya sudut pada verteks atau titik ke-k L : besarnya kellling objek (panjang kontur objek)

Besarnya nilai m = 9 ditentukan oleh penulis, sedangkan besarnya nilai lk dan

ΔΦk (panjang edge dan besar sudut) bisa didapatkan dari Prosedur Hit_pjg_sdt. Sedangkan keliling objek (nilai L) didapatkan dengan menjumlahkan seluruh panjang edge pada kontur objek.

Dengan mengetahui seluruh besarnya nilai-nilai variabel yang diperlukan, maka besarnya parameter Fourier Descriptors dapat dicari atau dihitung. Parameter-parameter Fourier Descriptors dari suatu objek merupakan ciri-ciri dari objek tersebut. Dengan ciri-ciri ini, maka suatu objek dapat dikenali.

(17)

3.3 Klasifikasi Representasi Citra Objek Mengunakan Jaringan Saraf Tiruan 3.3.1 Tahap Pelatihan Jaringan Saraf Tiruan

JST digunakan untuk mengelompokkan citra objek yang telah direpresentasikan sebagai deret Fourier. Proses pengelompokkan terdiri dari dua tahap, yaitu tahap pelatihan dan tahap pengujian. Tahap pelatihan berguna untuk menentukan bobot untuk masing-masing node pada tiap lapisan JST, sedangkan tahap pengujian berguna untuk mengenali citra yang diujikan pada JST.

Model JST yang digunakan adalah model JST Back Propagation dengan topologi 3 layer, yaitu layer masukan (input layer), layer tersembunyi (hidden layer), dan layer keluaran (output layer).

Dalam penelitian ini, citra objek yang diteliti sebanyak 56 sehingga terdapat 56 node pada input layer dan ada 7 tipe model sandal sehingga terdapat 7 node pada output layer. Kemudian output yang dihasilkan pada output layer dibandingkan dengan output yang diharapkan. Jika terdapat selisih, maka nilai selisih yang terjadi dipropagasi balik ke layer sebelumnya untuk dilakukan penyesuaian bobot.

Pada dasarnya untuk membentuk suatu sistem neural, hanya diperlukan 3 tahap, yaitu forward propagation, backward propagation, dan update weight.

3.3.1.1 Forward Propagation

Forward propagation bertujuan untuk menentukan output dari suatu node.

Output yang dimaksud di sini adalah keluaran dari output layer apakah sudah sesuai dengan target output atau belum.

(18)

Weight

Input Layer Output Layer

Gambar 3.6 Representasi Forward Propagation

Weight yang terdapat pada gambar merupakan weight dari output layer. Untuk mencari

output yang terdapat pada output layer dapat dicari dengan rumus sebagai berikut :

Acc e Output + = 1 1 ……… (3.12)

dimana e = bilangan euler = 2,718281828.

Sedangkan Acc merupakan bilangan accumulator, yaitu jumlah perkalian dari weight pada output layer dengan output pada input layer.

(19)

Sebagai contoh penerapannya adalah sebagai berikut : misalkan input layer ada sebanyak 3 node dan output layer ada sebanyak 2 node.

Weight Weight 0,4 -0,3 0,2 0,1 -0,5 -0,6 0,1 0,4 -0,3

-0,1 Hidden Layer Output Layer

Input Layer

Gambar 3.7 Perhitungan Output pada Output Layer

(20)

Input Layer Hidden Layer Output Layer

Output 1 = 0,1 Output 1 = ? Output 1 = ?

Output 2 = 0,3 Output 2 = ? Output 2 = ?

Output 3 = 0,2

Maka langkah pertama yang dilakukan adalah mencari bilangan accumulator pada hidden layer.

Acc = Σ (Weightij × Outi)

Acc Hidden 1 = Σ (Weightij × Outputi pada Input Layer) = (0,4 × 0,1) + (0,1 ×

0,3) + (0,4 × 0,2) = 0,15

Acc Hidden 2 = Σ (Weightij × Outputi pada Input Layer) = (-0,3 × 0,1) + (-0,6 ×

0,3) + (-0,1 × 0,2) = -0,23

Setelah mendapatkan bilangan accumulator-nya, maka bisa dicari output pada hidden layer, dengan rumus :

Acc e Output + = 1 1 Output 1 = 1 1 1 AccHidden e− + = 0,15 1 1 − + e = 0,5374 Output 2 = 2 1 1 AccHidden e− + = 0,23 1 1 e + = 0,4428

Selanjutnya adalah menghitung bilangan accumulator pada output layer. Acc = Σ (Weightij × Outi)

Acc Output 1 = Σ (Weightij × Outputi pada Hidden Layer) = (0,2 × 0,537) + (0,1

(21)

Acc Output 2 = Σ (Weightij × Outputi pada Hidden Layer) = (-0,5 × 0,537) + (-03

× 0,443) = -0,4014

Setelah mendapatkan bilangan accumulator-nya, maka bisa dicari output pada output layer, dengan rumus :

Acc e Output + = 1 1 Output 1 = 1 1 1 AccOutput e− + = 0,1517 1 1 − + e = 0,5379 Output 2 = 2 1 1 AccOutput e− + = 0,4014 1 1 e + = 0,4010 3.3.1.2 Backward Propagation

Inti dari Backward Propagation adalah untuk mencari galat suatu node. Dari

hasil Forward Propagation pastilah akan dihasilkan suatu output dan output tersebut belum tentu sesuai dengan target output, oleh karena itu perbandingan kesalahan dari target output dengan output yang dihasilkan tersebut, kita sebut dengan galat.

Dalam Backward Propagation juga dikenal dengan yang disebut inisialisasi output. Inisialisasi output pada dasarnya adalah menentukan galat di suatu node dengan

(22)

Weight

Weight

Hidden Layer Output Layer

Input Layer Gambar 3.8 Representasi Backward Propagation

Untuk mencari galat di output layer, dapat dihitung dengan rumus :

Galat = Output × (1 - Output) × (Target – Output) ….. (3.14) Galat system dapat dihitung dengan rumus :

Galatsystem =

n error abs( output)

……….. (3.15)

di mana n = jumlah node pada output layer.

Sedangkan untuk mencari galat di tahap selanjutnya, dapat dihitung dengan rumus : Galat = Output × (1 - Output) × Acc ………. (3.16) Di mana bilangan accumulator adalah :

(23)

Acc = Σ (Weightij × Galatj) ……… (3.17)

Sebagai contoh penerapannya, dilanjutkan dari perhitungan Forward Propagation. Galat = Output × (1 - Output) × (Target – Output)

Galat Output 1 = 0,5379 × (1 - 0,5379) × (0,7 - 0,5379) = 0,0403 Galat Output 2 = 0,4010 × (1 - 0,4010) × (0,2 - 0,4010) = -0,0483

Setelah mendapatkan Galat pada output layer, maka bisa dicari Galatsystem dengan

rumus : Galatsystem =

n error abs( output) Galatsystem = 2 0483 , 0 0403 , 0 + = 0,0443

Karena Galatsystem masih lebih besar dari 0,0001, maka harus dihitung galat di

tahap selanjutnya.

Selanjutnya adalah menghitung bilangan accumulator pada hidden layer. Acc = Σ (Weightij × Galatj)

Acc Hidden 1 = Σ (Weightij × Galatj pada Output Layer) = (0,2 × 0,0403) + (-0,5

× (-0,0483)) = 0,0322

Acc Hidden 2 = Σ (Weightij × Galatj pada Output Layer) = (0,1 × 0,0403) + (-0,3

× (-0,0483)) = 0,0185

Setelah mendapatkan bilangan accumulator-nya, maka bisa dicari galat pada hidden layer, dengan rumus :

(24)

Galat Hidden 1 = Output × (1 - Output) × Acc Hidden 1 = 0,537 × (1 – 0,537) × 0,0322 = 0,008

Galat Hidden 2 = Output × (1 - Output) × Acc Hidden 2 = 0,443 × (1 – 0,443) × 0,0185 = 0,0046

Selanjutnya adalah menghitung bilangan accumulator pada input layer. Acc = Σ (Weightij × Galatj)

Acc Input 1 = Σ (Weightij × Galatj pada Hidden Layer) = (0,4 × 0,008) + (-0,3 ×

0,0046 ) = 0,0018

Acc Input 2 = Σ (Weightij × Galatj pada Hidden Layer) = (0,1 × 0,008) + (-0,6 ×

0,0046) = 0,0019

Acc Input 3 = Σ (Weightij × Galatj pada Hidden Layer) = (0,4 × 0,008) + (-0,1 ×

0,0046) = 0,0027

Setelah mendapatkan bilangan accumulator-nya, maka bisa dicari galat pada input layer, dengan rumus :

Galat = Output × (1 - Output) × Acc

Galat Input 1 = Output × (1 - Output) × Acc Input 1 = 0,1 × (1 – 0,1) × 0,0018 = 0,0002

Galat Input 2 = Output × (1 - Output) × Acc Input 2 = 0,3 × (1 – 0,3) × 0,0019 = 0,0004

Galat Input 3 = Output × (1 - Output) × Acc Input 3 = 0,2 × (1 – 0,2) × 0,0027 = 0,0004

(25)

3.3.1.3 Update Weight

Sebenarnya inti dari JST adalah mencari weight yang sesuai dari input yang dimasukkan sehingga menjadi output yang diinginkan. Weight ini nantinya didapat setelah mendapatkan output dan galat dari setiap node.

Rumus untuk mencari weight baru :

Weight = Weight + (Alpha × Outputsebelum × Galatsesudah) … (3.18)

Alpha di atas dapat diartikan sebagai tahap belajar suatu sistem, semakin tinggi nilainya, maka semakin tinggi kecepatan belajarnya, namun dengan demikian akan berdampak kurang baik, karena akan mendapatkan galat yang tidak merata. Sehingga dengan demikian, lebih baik kita menggunakan Alpha yang kecil, walaupun tahap belajarnya lambat, tetapi hasil keakuratannya tinggi.

Sebagai contoh penerapannya, dilanjutkan dari perhitungan Backward Propagation, yaitu mencari weight baru antara input layer dan hidden layer dengan Alpha = 0,0001.

Weight = Weight + (Alpha × Outputsebelum × Galatsesudah)

Weight antara node 1 input layer dan node 1 hidden layer = Weight + (Alpha × Outputsebelum × Galatsesudah) = 0,4 + (0,0001 × 0,1 × 0,008 ) = 0,40000

Weight antara node 1 input layer dan node 2 hidden layer = Weight + (Alpha × Outputsebelum × Galatsesudah) = 0,4 + (0,0001 × 0,1 × 0,0046) = 0,4000

Weight antara node 2 input layer dan node 1 hidden layer = Weight + (Alpha × Outputsebelum × Galatsesudah) = 0,4 + (0,0001 × 0,3 × 0,008) = 0,4000

Weight antara node 2 input layer dan node 2 hidden layer = Weight + (Alpha × Outputsebelum × Galatsesudah) = 0,4 + (0,0001 × 0,3 × 0,0046) = 0,4000

(26)

Weight antara node 3 input layer dan node 1 hidden layer = Weight + (Alpha × Outputsebelum × Galatsesudah) = 0,4 + (0,0001 × 0,2 × 0,008) = 0,4000

Weight antara node 3 input layer dan node 2 hidden layer = Weight + (Alpha × Outputsebelum × Galatsesudah) = 0,4 + (0,0001 × 0,2 × 0,0046) = 0,4000

3.3.1.4 Training

Telah dibahas di atas bahwa proses belajar suatu sistem terdiri dari proses Forward Propagation, Backward Propagation, dan Update Weight. Sekali melewati 3 tahap ini disebut dengan 1 kali training (1 epoch). Semakin banyak training yang dilakukan maka akan semakin kecil pula tingkat galat yang dihasilkan di output layernya, dan dengan demikian semakin kecil juga galat suatu sistem.

Proses training akan berhenti, jika salah satu kondisi di bawah ini dipenuhi :

a. Nilai batas toleransi galat tercapai, dalam arti Galatsystem ≤ target Galatsystem.

b. Nilai epoch yang ditentukan telah tercapai.

c. Nilai output yang dihasilkan pada output layer sesuai dengan target output. Langkah-langkah training :

a. Pilih training pair. Aplikasikan vektor input ke dalam network. b. Hitung output dari network.

c. Hitung galat antara actual output dengan target output. d. Sesuaikan bobot dengan cara meminimumkan galat.

(27)

3.4 Rancangan Layar

3.4.1 Rancangan Layar About

Form About akan digunakan untuk menampilkan keterangan singkat dari program aplikasi yang dibuat seperti judul, mahasiswa yang membuat, dosen yang membimbing, dan sebagainya. Pada form ini terdapat dua button, yaitu Enter, untuk masuk ke form utama pengolah citra, dan button Exit untuk keluar dari program aplikasi.

Gambar 3.9 Rancangan Layar About

3.4.2 Rancangan Layar View

Pada Tab View dalam Form Image Recognition, user dapat mengontrol input yang dibutuhkan dalam proses pengenalan citra hingga seperti parameter Fourier Descriptors dan network yang akan digunakan, melihat hasil pengolahan citra, dan menyimpan output yang dihasilkan.

PERANCANGAN PROGRAM SIMULASI KLASIFIKASI PRODUK SANDAL DHIIF’S DENGAN METODE BACK PROPAGATION DAN FOURIER DESCRIPTORS Dibuat dalam rangka memenuhi tugas akhir (skripsi) jenjang Strata 1 (S1) Binus University

Jakarta Dibuat oleh:

Margaretha Lydia Eka Pratiwi (0900787751) Dibimbing oleh:

Bapak Dr. Ir. Haryono Soeparno, M.Sc. Ngarap Imanuel Manik, Drs., M.Kom.

(28)

Gambar 3.10 Rancangan Layar View

3.4.3 Rancangan Layar Setting

Pada Tab Setting dalam Form Image Recognition, user dapat menentukan parameter-parameter yang digunakan untuk membangun jaringan syaraf tiruan, seperti jumlah layer, maksimum galat, jumlah node pada tiap layer, serta url path tempat image yang akan di-training.

Gambar 3.11 Rancangan Layar Setting

Browse Status Image Save Network Clear Stop Training Recognize Load Network ParameterFD Result Error: Epoch:

Number of Layers: Max galat:

Number of input units: Number of hidden units: Number of output units:

Browse Save Setting

Training Images’ Properties

Gambar

Gambar 3.1   Pencarian arah pada Freeman Code
Tabel 3.1    Tabel Rumus mencari luas (A) dan momen
Gambar 3.3   Gambar  dua buah edge  yang bertemu pada verteks  V i   dengan  sudut  sebesar   ΔΦ i
Gambar 3.4    Gambar dua buah edge dengan gadien m 1  dan m 2
+4

Referensi

Dokumen terkait

Untuk operasional kegiatan peran dan fungsi TKPK provinsi, maka tim teknis TKPK Provinsi telah melakukan fasilitasi, koordinasi dan pengendalian terhadap TKPK Provinsi dan

Berdasarkan hasil penelitian ini didapatkan kesimpulan bahwa terdapat hubungan antara pemakaian tabir surya dengan derajat keparahan melasma (Skor MASI) pada wanita di

• Tentukan nilai rumus bunga (F/P, 5%,5) atau yang berarti sejumlah uang pada saat sekarang (P) yang akan dicari nilainya pada saat yang akan datang (F) dengan suku bunga 5%

Proses komputasi pengurutan data acak dengan metode mergesort yang dijalankan secara paralel dengan menggunakan virtual komputer dari layanan IAAS cloud dapat

Dengan dibuatnya pakaian wanita siap pakai dengan inspirasi motif dari tenun Sumba, kemudian motif Sumba yang dikembangkan dengan teknik cukil kayu, merupakan suatu bentuk

KEPUTUSAN PRESIDEN REPUBLIK INDONESIA NOMOR 6 TAHUN

Hubungan dari perilaku fisik dan mekanis pada jenis tanah bercampuran butiran halus belumlah tepat jika hanya mengindikasikan penggunaan nilai angka pori (e) saja, maka

Guru sebagai salah satu jalur profesi untuk dapat memperoleh pendapatan yang layak, apalagi jika seorang guru sudah menjadi Pegawai Negeri Sipil (PNS) dan sudah