BAB II LANDASAN TEORI
2.1. Barcode Salah satu obyek pengenalan pola yang bisa dipelajari dan akhirnya dapat dikenali yaitu PIN barcode. PIN barcode yang merupakan kode batang yang berfungsi sebagai personal identification number atau nomor identitas personal yang berguna untuk memudahkan proses identifikasi suatu barang atau obyek. QRCode merupakan jenis pengembangan baru dari barcode (kode batang). Barcode yang pada awal perkembangnya dimulai sejak tahun 1932 yang mana ketika itu seseorang bernama Wallace Flint membuat sistem pemeriksaan barang di perusahaan retail.. lalu pada tahun 1928, pemilik toko makanan lokal meminta Drexel Institute of Technology di Philadelphia untuk membuat sistem pembacaan informasi produk selama checkout secara otomatis. Kemudian Bernard Silver dan Norman Joseph Woodland bergabung untuk mencari solusi. Dan hingga akhirnya untuk pertama kalinya barcode (kode batang) dipakai secara komersial adalah pada tahun 1970 ketika Logicon Inc membuat Universal Grocery Indentification Standart (UGPIC)[10]. Sebuah barcode (kode batang) memiliki pengertian yaitu suatu kumpulan data optik yang dibaca mesin. Kode batang ini mengumpulkan data dalam lebar (garis) dan spasi garis paralel dan dapat disebut sebagai kode batang atau simbologi linear atau 1D (1 dimensi). Tetapi juga memiliki bentuk persegi, titik, heksagon dan bentuk geometri lainnya di dalam gambar yang disebut kode matriks atau simbologi 2D (2 dimensi). Selain tak ada garis, sistem 2D sering juga disebut sebagai kode batang. Walaupun ad beragam simbol dan penggunaan tetapi semua tujuan yang sama yaitu mengencode string karakter sebagai garis batang atau spasi[10].Barcode dengan jenis QR-Code dapat dilihat pada gambar 2.1.
Universitas Sumatera Utara
6
Gambar 2.1 : PIN Barcode (QR-Code)
2.2. Pengolahan Citra 2.2.1. Citra Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dan suatu obyek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan[9]. Dalam dunia sehari-hari dapat banyak dijumpai berbagai macam bentuk citra, baik itu citra analog ataupun citra digital. Citra analog yaitu seperti foto yang tercetak di kertas foto, gambar sebuah lukisan di kanvas atau ketas, dan lain sebagainya. sedangkan citra digital yaitu seperti citra yang dapat diolah atau diproses oleh komputer dimana citra digital dapat dilihat ketika citra itu berada didalam layar monitor komputer.
2.2.2. Proses Threshold Proses threshold atau pengambangan merupakan proses dimana citra akan dirubah menjadi citra biner. Citra biner merupakan citra yang hanya memiliki dua nilai yaitu hitam dan putih atau dalam bentuk nilai yaitu 0 dan 1. Pada gambar 2.2 dapat dilihat proses threshold pada suatu citra.
Universitas Sumatera Utara
7
Gambar 2.2 : Proses Threshold 2.3. Jaringan Saraf Tiruan Jaringan saraf tiruan merupakan suatu jenis pengelolaan informasi yang terispirasi dari sistem kerja saraf manusia yaitu otak manusia. Jaringan Saraf tiruan (Neural Network) menjadi salah satu pilihan ketika rumusan persoalan-persoalan yang dihadapi tidak bisa diselesaikan secara analitik. Dengan mengasumsikan suatu black box yang kita tidak tahu isinya, neural network akan menemukan pola hubungan antara input dan output melalui fase pelatihan. Dalam kategori ini, kita perlu melatih suatu jaringan untuk menemukan parameter model yaitu w dan b yang terbaik. Selanjutnya dengan menggunakan model yang ditemukan kita perlu untuk melakukan tugas prediksi. Nilai parameter w dan b biasanya bukanlah nilai global optimal tetapi lokal optimal. Karena fungsi ongkos dalam neural network yang nonlinear akhirnya menghasilkan solusi yang tidak global setiap kali neural network akan dilakukan training. Ini adalah kelemahan neural network. Tetapi pada prakteknya, walaupun yang dihasilkan adalah solusi yang lokal optimal, neural network memberi solusi prediksi yang cukup akurat [4]. Arsitektur jaringan saraf tiruan dapat dilihat pada gambar 2.3.
Universitas Sumatera Utara
8
y1
y2
y3
w11
w02 w13
w32
w\12 w21
w03
1
w33
w22 w31
w23
z1
z2
z3
v11
v32
v22
v01 v02
v33
v21
v12
v23 v13
v03
1
x1
x2
v31
x3
Gambar 2.3 : Arsitektur Jaringan Saraf Tiruan
2.3.1. Komponen Dalam Jaringan Saraf Tiruan Jaringan saraf tiruan memiliki komponen yang digunakan dalam membangun suatu arsitektur-arsitektur jaringan. Komponen itu seperti neuron-neuron, dimana neuron ini dikelompokkan ke dalam beberapa lapisan yang mana saling memiliki hubungan satu dengan yang lainnya yang disebut dengan lapisan (layer). Lapisanlapisan itu antara lain : 1. Lapisan Masukan (Input Layer) Lapisan masukan merupakan neuron yang menjadi tempat untuk bobot awal yang nantinya akan dimasukkan dan selanjutnya diproses dan nantinya dikirim ke lapisan di atasnya. 2. Lapisan Tersembunyi (Hidden Layer) Lapisan tersembunyi merupakan lapisan yang letaknya berada diantara lapisan masukan dan lapisan keluaran. Pada lapisan ini bobot yang diterima dari lapisan masukan akan diproses yang pada tahap selanjutnya akan dikirim ke lapisan keluaran. Namun, lapisan tersembunyi ini hanya dapat dilihat pada arsitektur jaringan berlapis banyak (Multi Layer Network).
3. Lapisan Keluaran (Output Layer)
Universitas Sumatera Utara
9
Lapisan keluaran merupakan lapisan akhir atau merupakan tujuan akhir dari suatu proses pada suatu arsitektur jaringan dan nantinya akan menghasilkan nilai keluaran.
2.3.2. Arsitektur Jaringan Saraf Tiruan 2.3.2.1.Single Layer Network Single layer network yang dalam bahasa Indonesia berarti jaringan lapis tunggal merupakan jaringan yang mana neuron-neuron tersusun dalam suatu lapisan. Disebut lapisan tunggal oleh karena neuron output dari jaringan ini hanya satu. Jaringan ini hanya memiliki 1 (satu) lapisan dengan bobot-bobot terhubung. Jaringan ini hanya menerima masukan kemudian secara langsung akan mengolahnya menjadi keluaran tanpa harus melalui lapisan tersembunyi [10]. Dapat dilihat dari gambar 2.4 bagaimana arsitektur dari jaringan lapis tunggal dimana pada gambar terdapat 3 neuron input dan 3 neuron output. Input layer
Output layer
Gambar 2.4 : SingleLayer Network 2.3.2.2. Multi Layer Network Multi layer network yang berarti jaringan berlapis banyak merupakan suatu jaringan yang mana memiliki satu atau lebih lapisan tersembunyi (hidden layer).
Universitas Sumatera Utara
10
Dimana lapisan tersembunyi ini letaknya berada di antara lapisan masukan dan lapisan keluaran. Fungsi dari lapisan tersembunyi ini yaitu agar dapat dimungkinkan ekstraksi statistik berorde-tinggi, yang nantinya lapisan ini dapat menyelesaikan permasalahan yang lebih rumit dari permasalahan yang ada pada lapisan tunggal, dengan melakukan pembelajaran yang lebih rumit. Pada jaringan berlapis banyak ini jaringan memiliki perspektif koneksi sinaptik dan interaksi neuron yang lebih banyak. Pada gambar 2.5 dapat dilihat arsitektur dari jaringan berlapis banyak. Layer of hidden
Input layer
Output layer
Input layer
Gambar 2.5 : Multi Layer Network
2.3.2.3.Recurrent Network Elman network berbeda dengan two-layers network konvensional dalam hal lapisan pertama mempunyai koneksi yang bersifat recurrent. Elman network adalah two-layer backpropagation networks, dengan tambahan koneksi umpan balik dari output ke hidden layer ke input. Lintasan umpan balik ini memungkinkan Elman networks untuk mengenali dan membangkitkan pola temporal sebagaimana pola spatial [4]. Dalam recurrent network ini minimal paling sedikit ada satu lintasan umpan balik didalamnya. Lintasan umpan balik mempengaruhi kemampuan belajar dan kinerja jaringan. Adapun arsitektur recurrent dapat dilihat pada gambar 2.6.
Universitas Sumatera Utara
11
Z
z
z
Gambar 2.6 : Recurrent Network
2.4.
Jaringan Saraf Tiruan Backpropagation
Jaringan saraf tiruan memiliki banyak jenis metode yang salah satunya yaitu metode backpropagation. Jaringan saraf tiruan metode backpropagation merupakan solusi ketika jaringan saraf lapisan tunggal mengalami keterbatasan besar yang mana ketika terjadi kegagalan perceptron dalam menangani masalah XOR. Backpropagationyang terdiri dari beberapa lapisan menjadi solusi bagi para ahli yang menyukai bidang jaringan saraf tiruan. Metode
backpropagation
melatih
jaringan
untuk
mendapatkan
keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama pelatihan [6]. Arsitektur backpropagation dapat dilihat pada gambar 2.7.
y2 w10 w31 w11
1
w21
z1
z2
z3
v01 v11
v02
v12
1
v22
v23
v21
v03
v13
x1
x2
Gambar 2.7 : Arsitektur Backpropagation
Universitas Sumatera Utara
12
2.4.1. Fungsi Aktivasi Dalam jaringan saraf tiruan terdapat beberapa fungsi aktivasi yang berguna dalam proses pembelajaran. Berikut beberapa fungsi aktivasinya dalam jaringan saraf tiruan : 1. Fungsi Step (Threshold) a. Memiliki fungsi aktivasi yaitu : 0; x β€ 0 f(x) = οΏ½ ....................................... (1) 1; x > 0
b. Tidak dapat menyelesaikan masalah yang tidak linier . 2. Fungsi Sigmoid
Fungsi aktivasi sigmoid merupakan fungsi aktivasi yang memiliki beberapa syarat yaitu : kontinu, terdiferensial dengan mudah dan merupakan fungsi yang tidak turun sehingga fungsi aktivasi ini sering sekali dipakai. Fungsi sigmoid memiliki 2 jenis yaitu fungsi aktivasi sigmoidbiner yang memiliki range (0,1) dan fungsi aktivasi sigmoid bipolar yang memiliki range (-1,1). Fungsi aktivassi sigmoid dapat dilihat pada gambar 2.8. f(x) =
1
1+ππβπ₯π₯
dengan turunan fβ(x) = f(x) (1-f(x)) ..... (2)
Gambar 2.8 : Fungsi Aktivasi Sigmoid 3. Fungsi Aktivasi Identitas Merupakan fungsi aktivasi yang memiliki nilai keluaran yang sama dengan nilai masukkannya. f(x) = x
.............................................. (3)
Universitas Sumatera Utara
13
2.4.2. Pelatihan Backpropagation Pelatihan backpropagation meliputi 3 fase. Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari lapisan masukan hingga lapisan keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur. Selisih antara keluaran jaringan dengan target yang diinginkan merupakan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan unit-unit di lapisan keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi [6]. Penjelasan mengenai fase-fase pada pelatihan backpropagation seperti pada penjelasan dibawah ini: 1. Fase I : Propagasi maju Selama propagasi maju, sinyal masukan (= xi) dipropagasikan ke lapisan tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari setiap unit lapisan tersembunyi (= Zj) tersebut selanjutnya dipropagasikan
maju
lagi
ke
lapisan
tersembunyi
di
atasnya
menggunakan fungsi aktivasi yang ditentukan. Demikian seterusnya hingga menghasilkan keluaran jaringan (= yk). Berikutnya, keluaran jaringan (= yk) dibandingkan dengan target yang harus dicapai (= tk). Selisih tk - yk adalah kesalahan yang terjadi. Jika kesalahan ini lebih kecil dari batas toleransi yang ditentukan, maka iterasi dihentikan. Akan tetapi apabila kesalahan masih lebih besar dari batas toleransinya, maka bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi [6]. 2. Fase II : Propagasi mundur Berdasarkan kesalahan tk- yk dihitung faktor Ξ΄k (k = 1,2, ..., m) yang dipakai untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang terhubung langsung dengan yk. Ξ΄k juga dipakai untuk
Universitas Sumatera Utara
14
mengubah bobot garis yang berhubungan langsung dengan unit keluaran. Dengan cara yang sama, dihitung faktor Ξ΄j di setiap unit di lapisan tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di lapisan di bawahnya. Demikian seterusnya hingga semua faktor Ξ΄di unit tersembunyi yang berhubungan langsung dengan unit masukan dihitung [6]. 3. Fase III : Perubahan bobot Setelah semua faktor Ξ΄dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan bobot suatu garis didasarkan atas faktor Ξ΄ neuron di lapisan atasnya. Sebagai contoh, perubahan bobot garis yang menuju ke lapisan keluaran didasarkan atas Ξ΄k yang ada di unit keluaran [6].
2.4.3. Algoritma Pelatihan Algoritma pelatihan untuk jaringan backpropagation antara lain sebagai berikut : 1. Langkah 0 Inisialisasi semua bobot dengan bilangan acak kecil 2. Langkah 1 Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-9 3. Langkah 2 Untuk setiap data pelatihan , lakukan langkah 3-8
Fase I : Propagasi maju 4. Langkah 3 Tiap unit masukan menerima sinyal dan meneruskan ke unit tersembunyi di atasnya. 5. Langkah 4 Hitung semua keluaran di unit tersembunyi zj (j= 1,2, ..., p (p = banyak variabel))
Universitas Sumatera Utara
15
z_net j = bjo + βππππ=1 π₯π₯π₯π₯ π£π£π£π£π£π£ ........................................ (4) 1
6. Langkah 5
zj = f(z_netj) =1+ππ βπ§π§_ππππππππ
............................................... (5)
Hitung semua keluaran jaringan di unit yk (k= 1,2, ..., m) ππ
y_net k = bko + βππ =1 1
yk = f(y_netk) = 1+ππ βπ¦π¦ _ππππππ
zj wkj
............................................... (6)
............................................ (7)
Fase II : Propagasi mundur 7. Langkah 6 Hitung faktor πΏπΏ unit keluaran berdasarkan kesalahan di setiap unit keluaran yk (k=1,2, ..., m)
πΏπΏ k = (tk β yk) fβ(y_netk) = (tk β yk) yk (1-yk) ..................... (8)
Hitung suku perubahan bobot wkj (yang akan dipakai nanti untuk merubah bobot wkj) dengan laju percepatan Ξ± Ξwkj = Ξ± πΏπΏ k zj ; k = 1,2, ..., m ; j = 0,1, ..., p ................. (9) 8. Langkah 7 Hitung faktor πΏπΏ unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi zj (j=1,2, ... , p)
πΏπΏ _netj = βππ ππ=1
Faktor πΏπΏ unit tersembunyi :
πΏπΏk wkj............................................ (10)
πΏπΏ j = πΏπΏ_netj fβ(z_netj) = πΏπΏ_netj zj(1-zj) ............................. (11)
Hitung suku perubahan bobot vji : Ξvji = Ξ± πΏπΏ j xi
; j = 1,2, ..., p ; i = 0,1, ..., n ............... (12)
Fase III : Perubahan bobot 9. Langkah 8
Universitas Sumatera Utara
16
Hitung semua perubahan bobot. a. Perubahan bobot garis yang menuju ke unit keluaran : wkj(baru) = wkj(lama) + Ξwkj (k = 1,2, ...,m ; j = 0,1, ..., p) ....... (13) b. Perubahan bobot garis yang menuju ke unit tersembunyi : vji(baru) = vji(lama) + Ξvji(j = 1,2, ..., m ; i = 0,1, ..., n) ........... (14) 10. Langkah 9 Pelatihan selesai dilakukan, jaringan dapat dipakai untuk pengenalan pola. [5]
Keterangan : Z_netj
: sinyal masukan untuk unit tersembunyi Zj
Zj
: unit tersembunyi j
n
: jumlah data pembelajaran
y_netk
: sinyal masukan untuk unit keluaran Yk
Yk
: unit keluaran k
Xi
: unit masukan i
Vij
: bobot antara lapisan tersembunyi Zj dengan lapisan masukan Xi yang sudah disesuaikan
Wkj
: bobot antara lapisan keluaran Yk dengan lapisan masukan Zj yang sudah disesuaikan.
bjo
: bias pada unit tersembunyi
bko
: bias pada unit keluaran
Universitas Sumatera Utara
17
Ξ΄k
: informasi error pada unit keluaran Yk yang dilakukan propagasi balik ke unit tersembunyi
Ξ΄j
: informasi error pada unit tersembunyi Zj
ΞVji
: koreksi bobot antara lapisan tersembunyi Zj dengan lapisan masukan Xi
Ξ΄_net j
: jumlah input pada lapisan tersembunyi dari unit pada lapisan keluaran Yk
Ξwkj
: koreksi bobot antara lapisan keluaran Yk dengan lapisan tersembunyi Zj
Ξ±
: laju pembelajaran
p
: banyaknya variabel
2.5. Jaringan Syaraf Tiruan Perceptron Perceptron termasuk salah satu jaringan saraf yang sederhana. Perceptron biasanya digunakan untuk mengklasifikasikan suatu tipe pola tertentu yang sering dikenal dengan pemisahan secara linear. Pada dasarnya, perceptron pada jaringan saraf dengan satu lapisan memiliki bobot yang bisa diatur. Algoritma yang digunakan oleh aturan perceptron ini akan mengatur parameter-parameter bebasnya melalui proses pembelajaran. Fungsi aktivasi ini dibuat sedemikian rupa sehingga terjadi pembatasan antara daerah positif dan daerah negatif [2]. Arsitektur perceptron dapat dilihat pada gambar 2.9.
Universitas Sumatera Utara
18
1
X1
b
w1
X2
Y
w2 wn
Xn
Gambar 2.9 : Arsitektur Perceptron
2.5.1. Algortima Pelatihan Perceptron Berikut ini merupakan algoritma atau langkah-langkah dalam melakukan pelatihan dengan metode perceptron.[6] 1. Inisialisasi semua bobot dan bias (umumnya wi= b=0) Tentukan laju pembelajaran (=Ξ±), dimana laju pembelajaran biasanya diberi nilai antara 0 hingga 1. Agar memudahkan laju pembelajaran dapat dibuat dengan Ξ± = 1. 2. Selama ada elemen vektor masukan yang respon unit keluaranannya tidak sama dengan target, lakukan : a. Set aktivasi unit masukan xi = si (i = 1,...,n) .................................. (15 b. Hitung respon unit keluaran : net = βππ π₯π₯π₯π₯ π€π€π€π€ + ππ
1 jika net > ππ y = f (net) =οΏ½ 0 jika β ππ β€ net β€ ππ ............................ (16) β1 jika net < βππ
c. Perbaiki bobot pola yang mengandung kesalahanβ (y t) menurut persamaan :
wi (baru) = wi (lama) + Ξw (i = 1, ..., n) dengan Ξw = Ξ± t xi .......... (17) b (baru) = b (lama) + Ξb dengan Ξb = Ξ± t ....................................... (18)
Universitas Sumatera Utara
19
keterangan : xi : masukan atau input w : bobot b : bias y : output t : target ππ :threshold yang ditentukan (dalam Matlab bernilai 0) n : banyaknya variabel masukan. Ξ± : laju pembelajaran
Ada beberapa hal yang perlu diperhatikan dalam algoritma tersebut : a. Iterasi dilakukan terus hingga semua pola memiliki keluaran jaringan yang sama dengan targetnya (jaringan sudah memahami pola). Iterasi tidak berhenti setelah semua pola dimasukkan seperti yang terjadi pada model Hebb. b. Pada langkah 2(c), perubahan bobot hanya dilakukan pada pola yang mengandung kesalahan (keluaran jaringanβ target). Perubahan tersebut merupakan hasil kali unit masukan dengan target dan laju pembelajaran. Perubahaan bobot hanya akan terjadi kalau unit masukan β 0. c. Kecepatan iterasi ditentukan pula oleh laju pembelajaran (=Ξ± dengan 0β€ Ξ± β€ 1) yang dipakai. Semakin besar harga Ξ±, semakin sedikit iterasi ytang diperlukan. Akan tetapi jika Ξ± terlalu besar, maka akan merusak pola yang sudah benar sehingga pembelajaran menjadi lambat.
Universitas Sumatera Utara