Download - Bahan Ajar Matematika Komputasi.pdf
BAHAN AJAR
Mata Kuliah: MATEMATIKA KOMPUTASI
MTK 466
Disusun Oleh: Zaenal Abidin, S.Si., M.Cs.
JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI SEMARANG
BAB 1
PENGANTAR PEMODELAN DAN SIMULASI
Definisi Pemodelan
Model adalah penyajian dari masalah nyata.
Pemodelan adalah representasi masalah dalam bentuk rumus matematika.
Definisi Simulasi
Simulasi adalah tiruan dari sebuah sistem dinamis dengan menggunakan
model komputer yang digunakan untuk melakukan evaluasi dan
meningkatkan kinerja sistem.
Simulasi adalah cara untuk mereproduksi kondisi situasi, dengan
menggunakan model, untuk mempelajari, menguji, pelatihan, dll. (Oxford
American Dictionary, 1980).
Simulasi adalah pemodelan dari sebuah proses atau sistem dimana model
meniru respon dari sistem nyata untuk setiap kejadian yang terjadi setiap saat
(Schriber, 1987).
Piranti Lunak Simulasi
Menyediakan animasi grafis dan realistik dari sistem yang dimodelkannya.
Pengguna dapat melakukan analisa “jika-maka”.
Beberapa diantaranya menyediakan kapabilitas optimisasi.
Keuntungan menggunakan model
Hemat Biaya
Hemat waktu
Fokus pada karakteristik yang penting, simplifikasi sesuatu yang terlalu detil dan
rumit.
Mudah melakukan perubahan, update, revisi, ataupun penambahan
fitur/fungsi/peranan.
Klasifikasi Dikotomi Model
Prescriptive or Descriptive
Discrete or Continuous
Probabilistic or Deterministic
Static or Dynamic
Open loop or Closed loop
Mengapa melakukan simulasi
Adanya ketidakpastian (Monte Carlo simulation)
Ada beberapa parameter kehidupan yang tidak dapat dijasikan satu atau tidak
dimungkinkannya kita mempunyai penyelesaian analitis atau dengan
perkataan lain model matematikanya terlalu kompleks.
Pendekatan trial-and-error mahal, menghabiskan waktu, dan mengganggu.
Menyediakan metoda analisis: meramalkan kinerja sistem, bahkan untuk
sistem yang paling rumit sekalipun.
Mendukung pengambilan keputusan: manajer dapat memperkirakan hasil
dengan lebih akurat.
Terhindar dari resiko
Menggunakan cara try-it-and-see it
Menganjurkan pemikiran “outside the box”
Menghilangkan faktor emosi dari proses pengambilan keputusan dengan
menyediakan bukti obyektif
Memperkuat keputusan pada rincian-rincian kritis
Contoh-contoh:
Dalam Fisika:
◦ Apa hubungan antara kecepatan dan percepatan
◦ dv/dt = a model pers. Differensial
◦ Dalam banyak hal, model-model matematika seperti PD mempunyai
parameter yang harus diuji kestabilannya.
Sistem Antrian
◦ Pola kedatangan pelanggan warnet berdistribusi Poisson
Karakteristik Simulasi
Karakteristik simulasi sebagai alat perencanaan dan pengambilan keputusan
yang tangguh:
– Mencakup saling ketergantungan sistem (sistem independencies)
– Memperhitungkan variabilitias sistem
– Sanggup membuat model untuk sistem apapun
– Memperlihatkan perilaku sistem setiap saat.
– Lebih murah dan cepat.
– Menarik perhatian
– Hasil mudah dimengerti
Keuntungan Simulasi
Compress Time ( menghemat Waktu)
Expand Time (dapat melebar luaskan waktu)
Control sources of variation (dapat mengawasi sumber-sumber yang bervariasi)
Error in meansurment correction (mengoreksi kesalahan-kesalahan perhitungan)
Stop simulation and restart (dapat dihentikan dan dijalankan kembali)
Easy to replicate (mudah diperbanyak)
Penggunaan Simulasi
Mempelajari interaksi dalam sistem yang komplek.
Untuk visualisasi.
Sebagai verifikasi model yang dikembangkan.
Sebagai alat untuk melakukan percobaan, sensivity analysis, prediksi dari
model yang dikembangkan.
Tidak perlu dengan simulasi
Jika masalah mudah diselesaikan dengan metode sederhana.
Diselesaikan dengan analitik.
Eksperimen langsung lebih murah, mudah, dan dimungkinkan.
Data tidak tersedia.
BAB 2
SIMULASI MONTE CARLO
• Menggunakan bilangan random
• Simulasi terhadap sampling untuk mengestimasi distribusi dari variabel output
yang bergantung pada beberapa variabel input yang probabilistik.
• Sering digunakan untuk evaluasi dampak perubahan policy dan risiko dalam
pembuatan keputusan.
Contoh:
Sebuah perusahaan permen coklat memberikan penawaran khusus pada event-event
spesial seperti hari valentine. Untuk keperluan tsb. Perusahaan memesan paket
spesial dari supplier berupa coklat massacre. Coklat jenis ini dibeli dengan harga
$7.5/unit dan dijual $12/unit. Jika tidak terjual pada tanggal 14 februari, maka
produk ini akan dijual dengan harga 50% dari harga semula. Perusahaan ini
mengalami dilema dalam menentukan berapa kotak yang harus dipesan supaya
menghasilkan keuntungan (profit) maksimum. Jika diasumsikan demand berfluktuasi
antara 40, 50, 60, 70, 80, 90 unit dan perusahan memutuskan untuk memesan
sebayak 60 unit, maka tentukan profit yang akan didapat perusahaan.
Penyelesaian:
1. Tentukan komponen sistem yg signifikan.
demand D (uncontrollable variable).
pesanan Q (decision variable/variabel yang harus diputuskan).
profit dependent variable.
2. Tentukan hubungan antar komponen.
a) Jika demand ≤ pesanan (D ≤ Q)
profit = 12D – 7,5Q + 6(Q-D)
b) Jika demand > pesanan (D > Q)
profit = 12Q – 7,5Q
3. Tentukan jumlah testing yang diinginkan.
4. Buat kemungkinan demand untuk tiap testing.
5. Hitung profit untuk tiap testing.
Contoh: D = 40 unit, dan Q = 60 unit.
Profit = 12D -7.5Q + 6(Q-D) = 12(40) -7.5(60) + 6(60-40)= $150.
Hasil perhitungan profit (lengkap) untuk 10 testing:
Testing Demand Profit($)
1 80 270
2 60 270
3 50 210
4 70 270
5 40 150
6 60 270
7 80 270
8 90 270
9 50 210
10 60 270
Average 246
6. Dari tabel profit, dibuat distribusi frekuensi:
Profit ($) Probabilistas Frekuensi
150 0.1 1
210 0.2 2
270 0.7 7
BAB 3
PENGANTAR UNTUK PEMROGRAMAN MATLAB
Pendahuluan
MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi
numerik dan merupakan suatu bahasa pemrograman matematika lanjutan yang dibentuk
dengan dasar pemikiran menggunkan sifat dan bentuk matriks. Pada awalnya, program ini
merupakan interface untuk koleksi rutin-rutin numerik dari proyek INPACK dan EISPACK,
dan dikembangkan menggunkan bahasa FORTRAN namun sekarang merupakan produk
komersial dari perusahaan Mathworks, Inc. yang dalam perkembangan selanjutnya
dikembangkan menggunakan bahasa C++ dan assembler (utamanya untuk fungsi-fungsi
dasar MATLAB).
MATLAB telah berkembang menjadi sebuah environment pemrograman yang canggih
yang berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier,
dan kalkulasi matematis lainnya. MATLAB juga berisi toolbox yang berisi fungsi- fungsi
tambahan untuk aplikasi khusus . MATLAB bersifat extensible, dalam arti bahwa seorang
pengguna dapat menulis fungsi baru untuk ditambahkan pada library ketika fungsi-fungsi
built-in yang tersedia tidak dapat melakukan tugas tertentu. Kemampuan pemrograman
yang dibutuhkan tidak terlalu sulit bila Anda telah memiliki pengalaman dalam
pemrograman bahasa lain seperti C, PASCAL, atau FORTRAN.
MATLAB merupakan merk software yang dikembangkan oleh Mathworks.Inc.(lihat
http://www.mathworks.com) merupakan software yang paling efisien untuk perhitungan
numeric berbasis matriks. Dengan demikian jika di dalam perhitungan kita dapat
memformulasikan masalah ke dalam format matriks maka MATLAB merupakan
software terbaik untuk penyelesaian numeriknya.
MATLAB (MATrix LABoratory) yang merupakan bahasa pemrograman tingkat tinggi
berbasis pada matriks sering digunakan untuk teknik komputasi numerik, yang
digunakan untuk menyelesaikan masalah-masalah yang melibatkan operasi matematika
elemen, matrik, optimasi, aproksimasi dll. Sehingga Matlab banyak digunakan pada :
Matematika dan Komputansi
Pengembangan dan Algoritma
Pemrograman modeling, simulasi, dan pembuatan prototipe
Analisa Data , eksplorasi dan visualisasi
Analisis numerik dan statistik
Pengembangan aplikasi teknik
Window-window pada MATLAB
Ada beberapa macam window yang tersedia dalam MATLAB, yang dapat dijelaskan
sebagai berikut:
a. MATLAB Command window/editor
MATLAB Command window/editor merupakan window yang dibuka pertama kali
setiap kali MATLAB dijalankan
pada window di atas dapat dilakukan akses-akses ke command-command MATLAB
dengan cara mengetikkan barisan-barisan ekpresi MATLAB, seperti mengakses help
window dan lain-lainnya.
Jika perintah-perintah yang sudah diketikkan dan hasil yang ditampilkan pada layar
command window akan disimpan maka dapat dilakukan dengan menggunkan command
diary. Sebagai contoh jika ingin disimpan output m =
1 2 3
5 2 1
direktori c:\backup dengan nama file mydata.txt, maka dapat dilakukan dengan
mengetikan :
» m=[1 2 3;5 2 1]
m =
1 2 3
5 2 1
» diary 'c:\backup\mydata.txt'
dan jika ingin menutup file ini maka ketikkan » diary off
Command windows juga digunakan untuk memanggil tool Matlab seperti editor,
debugger atau fungsi. Ciri dari window ini adalah adanya prompt (>>) yang
menyatakan matlab siap menerima perintah. Perintah dapat berupa fungsi-fungsi
pengaturan file (seperti perintah DOS/UNIX) maupun fungsi- fungsi bawaan/toolbox
MATLAB sendiri. Berikut ini beberapa fungsi pengaturan file dalam MATLAB:
dir / ls : Digunakan untuk melihat isi dari sebuah direktori aktif.
cd : Digunakan untuk melakukan perpindahan dari direktori aktif.
pwd : Digunakan untuk melihat direktori yang sedang aktif
mkdir : Digunakan untuk membuat sebuah direktori
what : Digunakan untuk melihat nama file m dalam direktori aktif
who : Digunakan untuk melihat variabel yang sedang aktif
whos : Digunakan untuk menampilkan nama setiap variabel
delete : Digunakan untuk menghapus file
clear : Digunakan untuk menghapus variabel
clc : Digunakan untuk membersihkan layar
doc : Digunakan untuk melihat dokumentasi The MathWorks, Inc. dalam format
html secara online.
demo : Digunakan untuk mencoba beberapa tampilan demo yang disediakan oleh
Matlab
b. MATLAB Editor/Debugger (Editor M-File/Pencarian Kesalahan)
Window ini merupakan tool yang disediakan oleh Matlab 5 keatas. Berfungsi sebagai
editor script Matlab (M-file). Walaupun sebenarnya script ini untuk pemrograman
Matlab dapat saja menggunakan editor yang lain seperi notepad, wordpad bahkan
word. Untuk mengakses window m-file ini dapat dilakukan dengan cara :
1. Memilih File kemudian pilih New
2. Pilih m-file, maka MATLAB akan menampilkan editor window :
selain dengan cara di atas untuk menampilkan editor M- File ini dapat juga dilakukan
dengan : >> edit
Bahasan tentang m-file akan dibahas pada bab selanjutnya.
c. Figure Windows
Window ini adalah hasil visualisasi dari script Matlab. Namun Matlab memberi
kemudahan bagi programer untuk mengedit window ini sekaligus memberikan
program khusus untuk itu. Sehingga window iniselain berfungsi sebagai visualisasi
output dapat juga sekaligus menjadi media input yang interaktif.
Contoh: » x=0:2:360;
» y=sin(x*pi/180);
» plot(x,y)
hasil yang diperoleh adalah :
d. MATLAB help window
MATLAB menyediakan sistem help yang dapat diakses dengan perintah help. Misalnya,
untuk memperoleh informasi mengenai fungsi elfun yaitu fungsi untuk trigonometri,
eksponensial, complex dan lain-lain, maka hanya perlu mengetikkan perintah berikut : » help elfun
dan kemudian menekan enter maka di layar akan muncul informasi dalam bentuk teks
pada layar MATLAB yaitu :
Elementary math functions. Trigonometric.
sin - Sine.
sinh - Hyperbolic sine.
asin - Inverse sine.
asinh - Inverse hyperbolic sine.
Cos - Cosine.
cosh - Hyperbolic cosine.
acos - Inverse cosine.
acosh - Inverse hyperbolic cosine.
tan - Tangent.
tanh - Hyperbolic tangent.
atan - Inverse tangent.
atan2 - Four quadrant inverse tangent.
atanh - Inverse hyperbolic tangent.
sec - Secant.
sech - Hyperbolic secant.
asec - Inverse secant.
asech - Inverse hyperbolic secant.
csc - Cosecant.
csch - Hyperbolic cosecant.
acsc - Inverse cosecant.
acsch - Inverse hyperbolic cosecant.
cot - Cotangent.
coth - Hyperbolic cotangent.
acot - Inverse cotangent.
acoth - Inverse hyperbolic cotangent.
Exponential.
exp - Exponential.
log - Natural logarithm.
log10 - Common (base 10) logarithm.
log2 - Base 2 logarithm and dissect floating point number.
pow2 - Base 2 power and scale floating point number.
sqrt - Square root.
nextpow2 - Next higher power of 2.
Complex.
abs - Absolute value.
angle - Phase angle.
complex - Construct complex data from real and imaginary parts.
conj - Complex conjugate.
imag - Complex imaginary part.
real - Complex real part.
unwrap - Unwrap phase angle.
isreal - True for real array.
cplxpair - Sort numbers into complex conjugate pairs.
Rounding and remainder.
fix - Round towards zero.
floor - Round towards minus infinity.
ceil - Round towards plus infinity.
round - Round towards nearest integer.
mod - Modulus (signed remainder after division).
Rem - Remainder after division.
Sign - Signum.
Selain help untuk informasi di atas dapat juga dilihat informasi lainnya misalnya
perintah yang sangat berguna untuk mempelajari pemrograman MATLAB adalah
intro, yang membahas konsep-konsep dasar tentang bahasa MATLAB. Selain itu, juga
terdapat banyak program demonstrasi yang mengilustrasikan berbagai kapabilitas
MATLAB, yang dapat dimulai dengan perintah demo. Atau untuk lebih lengkapnya
dapat dilihat di tampilan MATLAB dengan cara memilih menu Window kemudian
pilih help window, dan untuk mengetahui informasi yang ada maka dapat dilakukan
dengan mengklikkan dua kali info yang ada di MATLAB Help Window atau dengan
mengetikkan informasi yang ingin didapatkan pada sudut sebelah kiri MATLAB Help
Window. Sebagai contoh tampilan Help window tersebut adalah sebagai berikut :
Sebelum melihat lebih jauh tentang kemampuan MATLAB untuk programming
ataupun penyelesaian masalah-masalah numerik maka dapat dilakukan beberapa
percobaan sederhana seperti berikut ini :
Ketikkan : » x=12
» x=6
» x*y
ans =
72
dan perhatikan perbedaannya dengan : » p=12;
» q=6;
» r=p*q;
dapat dilihat bahwa tanpa “;” MATLAB akan mengassign hasil output ke variabel ans
(answer).
Untuk contoh penggunaan fasilitas grafik dari MATLAB, maka dapat dilihat berikut ini
dengan mengetikkan : » x=[5 10 15 20 25];
» y=cos(x);
» plot(x,y);
dapat dijelaskan bahwa x diassign ke suatu array [5 10 15 20 25], kemudian y =cos(x)
akan mengassign y ke array [cos(5) cos(10) cos(15) cos(20) cos(25)]. Dan hasilnya dapat
dilihat pada gambar berikut ini :
untuk contoh sederhana lainnya dapat dicoba beberapa perintah berikut ini :
1. >> a = [ 1 2; 3 4 ] >> a * a
>> b = [ 1 2; 0 1 ]
>> a*b
>> b*a
>> a + b
>> s = a + b
>> inv(s)
>> s * inv(s)
>> s/s
>> s\s
>> inv(s) * s
>> a/b
>> a\b
>> c = [ 1 1; 1 1 ]
>> inv(c);
2. Untuk membuat grafik y = sin(t) pada interval t = 0 to t = 10 >> t = 0:.3:10;
>> y = sin(t);
>> plot(t,y)
3. Untuk menggambarkan grafik :z(x,y) = x exp( - x^2 - y^2): >> [x,y] = meshdom(-2:.2:2, -2:.2:2);
>> z = x .* exp(-x.^2 - y.^2);
>> mesh(z)
Keterangan:
Untuk setiap perintah di atas sebelum ke perintah selanjutnya maka tekan enter agar
dapat ditampilkan outputnya.
Bilangan dan Operator Matematika di Matlab
Ada tiga tipe bilangan di dalam Matlab yaitu :
Bilangan bulat ( integer )
Bilangan real
Bilangan kompleks
Contoh bilangan bulat x=10
x =
10
Contoh bilangan real x=10.01
x =
10.0100
Untuk bilangan kompleks yang bentuk umumnya adalah z= a+bi , salah satu kehebatan
MATLAB adalah tidak memerlukan penanganan khusus untuk bilangan kompleks dan
untuk bilangan ini diberi tanda i atau j, contohnya : y=sqrt(-2) % akar negatif 2
y =
0 + 1.4142i
real(y)
ans =
0
imag(y)
ans =
1.4142 abs(y) ans =
1.4142 angle(y) ans =
1.5708
Daftar operasi aritmatika dasar dalam Matlab
MATLAB dapat melakukan operasi-operasi aritmatika dasar berikut :
Operasi Simbol Penambahan, a + b + Pengurangan a-b - Perkalian a x b * Pembagian a : b / atau \ Pemangkatan ab ^
Urutan operasi tersebut yang dikerjakan dalam suatu ekspresi yang mengikuti aturan
prioritas yang biasa (hirarki). Aturan tersebut dapat diringkas sebagai berikut :
Ekspresi dikerjakan dari kiri ke kanan dengan pemangkatan mempunyai prioritas
tertinggi, diikuti dengan perkalian atau pembagian yang mempunyai prioritas yang
sama, diikuti dengan penambahan dan pengurangan yang juga memiliki prioritas yang
sama. Tanda kurung dapat digunakan untuk merubah urutan pengerjaan yang biasa
dimana bagian yang dikerjakan terlebih dahulu adalah bagian yang yang ada di bagian
kurung paling dalam kemudian keluar.
Contoh :
Misalnya anda mengambil kuliah sebanyak 12 SKS, yang terdiri dari seismologi 4 sks,
Analisis sinyal 3 sks, Tomografi 2 sks dan Gravitasi 3 sks. Lalu pada akhir semester anda
mendapat nilai sebagai berikut seismologi A, Analisis sinyal B, Tomografi C dan gravitasi A.
Dengan point nilai A=4 , B=3 , C=2 Berapa nilai IP anda ?
Untuk memyelesaikan ini kita menggunakan pendekatan seperti perhitungan di
kalkulator : ip=(4*4+3*3+2*2+3*4)/(4+3+2+3)
ip =
3.4167
Sebagai alternatif kita bisa menyelesaikan masalah di atas dengan terlebih dahulu
menyimpan informasi yang kita punya pada variabel. seismologi=4 tomografi=2 analisis_sinyal=3 gravitasi=4 seismologi =
4
tomografi =
2
analisis_sinyal =
3
gravitasi =
4 total_sks=12 total_sks =
12
ip=(seismologi*4+tomografi*2+analisis_sinyal*3+gravitasi*
3)/total_sks
ip =
3.4167
Komentar dan Tanda Baca
Semua teks sesudah tanda % dianggap sebagai statemen komentar, contoh: semester=8 % jumlah semester S 1
semester =
8
Variabel semester diisi dengan nilai 8 dan statemen sesudah tanda % di anggap sebuah
komentar. Statemen ini berguna untuk mendokumentasikan apa yang sudah anda
kerjakan. Tanda titik koma ( ; ) dalam Matlab berguna untuk mencegah menampilkan
hasil, contoh :
semester=8;
Fungsi-Fungsi Matematika Dasar
MATLAB mempunyai berbagai fungsi matematika umum yang biasa di gunakan dalam
matematik . Sebagian besar fungsi tersebut hampir sama dengan bila anda menuliskannya
secara matematis. Sebagai contoh : pi
ans =
3.1416 y=sin(pi/6) y =
0.5000
y=asin(0.5)
y =
0.5236
Contoh Penyelesaian Masalah
Contoh 1: Persamaan fungsi
M=4x2+3y+10
N=e(2*x)+x
O=sqrt((1/(x+y))+(1/(t+z))) P=4*(e(-x/2))*sin(pi*x)
Tentukan nilai fungsi tersebut dengan nilai-nilai t=25, x=43, y=15.25, z=8.2 !
Untuk penyelesaian di atas adalah sbb:
Pertama, dibuat dulu variabel nya t=25;x=43;y=15.25;z=8.2;
Kedua, masukkan nilai tersebut ke masing-masing fungsinya M=4*x^2+3*y+10
M =
7.4518e+003
N=exp(2*x)+x
N =
2.2352e+037
O=sqrt((1/(x+y))+(1/(t+z)))
O =
0.2175
P=4*(exp(-x/2))*sin(pi*x)
P =
1.6223e-023
Contoh 2 : Penentuan volume silinder berlubang
Sebuah silinder mempunyai diameter luar 6.3125 dan diameter dalam 5.762 , tentukan
volumenya bila diketahui rumus untuk mencari volumenya :
Dimana RE adalah diameter luar dan RI adalah diameter dalam
Penyelesaian :
re=6.3125;ri=5.762; v=4/3*pi*(re^3-ri^3);
disp(['Volume = ',num2str(v)])
Volume = 252.3169
Menyimpan dan Memanggil Data
Untuk Menyimpan dan memenggil data dari file pilih File Save Workspace As … . Untuk
memanggil data digunakan pilihan Load WorkSpace As atau Open pada menu file.
Sedangkan untuk mengimport data , untuk Matlab versi 6 keatas pilih file Import Data
... Matlab juga menyediakan dua perintah ---- save dan load ---- yang jauh lebih
fleksibel. Perintah save untuk menyimpan satu atau lebih variabel dalam file format Yang
sesuai dengan pilihan anda.
contoh : clear all
x=1:10;y=10:10:10:100; % membuat array baru save
Saving to: Matlab.mat
menyimpan semua variabel Matlab dalam format biner di file Matlab.mat save data
menyimpan semua variabel Matlab dalam format biner di file data.mat save data_x x
menyimpan variabel x dalam format biner di file data_x.mat save data_xy x y /ascii
menyimpan variabel x dan y dalam format biner di file data_xy dalam format ascii
untuk membuka data digunakan perintah load, contoh; load data_x.mat
Operator Logika dan Relasional
MATLAB menyediakan operasi logika dan relasional, hal ini diperlukan untuk
menjawab pertanyaan benar atau salah dan salah satu manfaat yang penting dari
kemampuan ini adalah untuk mengontrol urutan eksekusi sederetan perintah
MATLAB (biasanya dalam M-File) berdasarkan pada hasil pertanyaan benar/salah.
Sebagai masukan pada semua ekpresi relasi dan logika , MATLAB menganggap semua
angka tidak nol sebagai benar, nol sebagi salah. Hasil dari semua ekspresi logika
relasi dan logika adalah satu untuk benar dan nol untuk salah dengan tipe array logika
yaitu hasilnya memuat bilangan 1 dan 0 yang tidak saja dapat digunakan untuk
statemen matematika akan tetapi dapat juga untuk pengalamatan
Operator relasi MATLAB terdiri dari semua pembandingan :
Operator Relasi Deskripsi < Kurang dari > Lebih dari <= Kurang dari atau sama dengan >= Lebih dari atau sama dengan = Sama dengan ~= Tidak sama dengan
Operator relasi MATLAB dapat digunakan untuk membandingkan dua array berukuran
sama atau untuk membandingkan array dengan skalar.
Operator logika menyediakancara untuk menggabung atau menegasikan ekspresi relasi.
Selanjutnya Operator-operator logika dalam MATLAB yaitu :
Operator Logika Deskripsi & AND | OR ~ NOT
Sumber-sumber MATLAB yang ada di Internet
Jika anda ingin lebih mendalami lagi tentang MATLAB dan mendownloadnya maka di
bawah ini beberapa informasi yang berkenaan dengan MATLAB, dan informasinya
bisa didapatkan dibeberapa situs berikut ini :
1. Web site MathWorks : http://www.mathworks.com/ disitus ini bisa di
dapatkan informasi tentang produk baru MATLAB seperti buku dan lain-
lainnya.
2. Newsgroup MATLAB: news://saluki news.siu.edu/comp.soft-sys.matlab/
3. http://dir.yahoo.com/science/mathematics/software/matlab/ penggunaan
source informasi tentang MATLAB dan merupakan langkah awal untuk
memperoleh web site MATLAB lainnya.
4. http://www.cse.uiuc.edu/cse301/matlab.html, web site ini merupakan
websitenya University of Illinois di Champaign-Urbana, yang menyediakan
beberapa link untuk MATLAB di internet.
5. Mastering Matlab Web site: http://www.eece.maine.edu/mm
BAB 4
TEORI DAN SISTEM INVENTORY
Pengantar Sistem Pendukung Keputusan Inventory
Program ini berisi tiga model dasar inventori : model EOQ, model quantity
discount analysis, dan model single period stochastic demand problem. EOQ
menganalisa dalam menemukan kuantitas order yang optimal yang mempunyai biaya
terkecil yang meliputi biaya shortage dan biaya hilangnya penjualan. Analisa quantity
discount menyelesaikan biaya terkecil dari kuantitas order dengan menggunakan
semua unit atau metode peningkatan discount. Anda mungkin juga membagi dalam
kuantitas orer dan membiarkan program melakukan analisa biaya, analisa grafik juga
digunakan untuk kedua tipe permasalahan.
Single-period stochastic demand problem juga disebut sebagai permasalahan
newsboy. Distribusi permintaan mengikuti distribusi Normal, Uniform, Exponential,
Triangular, Poison, Geometric, Discrete, dan distribusi Laplace. Program
menyelesaikan kuantitaas order tebaik untuk mengoptimalkan keuntungan yang
diperkirakan dalam periode tunggal. Anda juga dapat membagi kuantitas order atau
tingkat pelayanan dan membiarkan program menghitung keutnungan yang
diperkirakan.
Spreadsheet digunakan dalam memasukkan data. Program mempunyai
pilihann untuk menyimpan, membaca, memodifikasi, dan mengeprint data masukan.
Setelah solusi dicapai, anda dapat menampilkan, mengeprint, atau menyimpan solusi
tersebut.
Catatan Teknis Program Inventori (Invt)
1. Untuk model EOQ (economic-order quantity), program akan menyelesaikan
dengan EOQ, menampilkan, atau mengeplot biaya inventori yang berhubungan,
yang meliputi biaya penyimpanan, atau shortage (kekurangan persediaan), dan
biaya kehilangan penjualan. Anda juga dapat membagi dalam kuantitas order dan
membiarkan program INVT menghitung biaya inventori yang brhubungan. Data
untuk permasalahan EOQ meliputi data permintaan per periode, biaya order atau
setup per order, biaya penyimpanan per unit per periode, biaya kekurangan
persediaan per unit per periode, biaya kehilangan penjualan per unit, tingkat
produksi per periode, lead time untuk order baru dalam satu periode, dan biaya
unit. Abaikan shortage, biaya kehilangan penjualan adalah nol, tingkat
replenisment tidak terbatas, dan waktu lead time adalah nol.
2. Untuk analisa discount, semua unit discount menggambarkan bahwa semua unit
order mempunyai harga dengan beberapa tingkat diskon, dimana peningkatan
diskon menggambarkan bahwa unit order mempunyai peningkatan harga dengan
perbedaan tingkat diskon yang didasarkan pada pemenuhan jumlah (break
quantities). Anda juga dapat menspesifikasikan penyimpanan, kekurangan
persediaan, biaya kehilangan penujalan konstan, atau diskon. Data yang diminta
meliputi permintaan per periode, biaya order atau setup per order, biaya
penyimpanan per unit per periode, biaya shortage per unit per periode, biaya
hilangnya penjualan per unit, tingkat produksi per periode, lead time untuk order
baru dalam satu periode, biaya unit, tingkat diskon, dan persentase diskon. Nilai
yang lain biarkan sama dengan nilai untuk data EOQ.
3. Untuk single-period stochastic demand problem (permasalahan newaboy), data
yang dimasukkan meliputi biaya acquisition, unit selling price (harga penjualan
per unit), unit shortage cost (biaya kekurangan persediaan per unit), unit salvage
value (nilai pembayaran), biaya order atau setup, inisial inventori, distribusi
permintaan, dan parameter-parameter. Permintaan merupakan proses stokastik
dan tidak pasti dan kemungkinan mengikuti beberapa distribusi yang telah
disebutkan dimuka. Ketika menentukan distribusi permintaan dalam
memasukkan data, tiga lembar pertama diperlukan. Didasarkan pada distribusi
permintaan yang ditentukan dan data operasional, program menyelesaikan
kuantitas order untuk memaksimalkan keuntungan yang diperkirakan untuk
periode tunggal.
Cara Penyelesaian Permasalahan (Solving Problem)
Dalam seksi ini, akan diberikan contoh kasus untuk menunjukkan bagaimana
cara dalam memasukkan dan menyelesaikan masalah.
Contoh kasus EOQ
TV Shack merupakan retailer televisi lokal. Dari pengalaman, perusahana
mengetahui bahwa permintaan untuk televisi dapat dikatakan tetap, dengan rata-rata
permintaan 600 sets per tahun, dan biaya order adalah $50 per order. Biaya
penyimpanan tahunan, meliputi biaya capital (modal) dan biaya gudang, adalah 20%
dari harga pembelian. Pemborong menawarkan harga $300 per set. Berapakah
jumlah yang seharusnya retailer pesan tiap waktu sehingga biaya inventori dapat
diminalkan?
Enter the Problem (Masukkan Permasalahan)
1. Pilih atau klik new problem pada menu file.
2. Gambar 1 menunjukkan problem spesification. Klik “Uniform Demand EOQ
Problem” untuk tipe perrmasalahan karena permintaan tetap.
3. Gambar 2 menunjukkan masukkan data EOQ. Catat bahwa biaya penyimpanan
unit adalah sama dengan $60, yang merupakan 20% dari $300.
Solve Problem (Penyelesaian Masalah)
1. Pilih “Solve the problem” dari menu “Solve and Analyze” untuk menyelesaikan
permasalahan. Program akan menampilkan penyelesaian untuk periode jangka
pendek.
2. Setelah permasalahan diselesaikan, pilih “Solution summary” dari menu “Result”
untuk menampilkan analisa EOQ. Gambar 3 menunjukkan hasil analisa biaya per
tahun untuk permasalahan EOQ.
3. Anda dapat memilih “Graphic cost analysis” dari menu “Result” untuk
menampilkan kurva biaya inventori. Gambar 4 menunjukkan spesification dari
skala gambar. Asumsikan bahwa spesifikasi sudah ada (defaulta). Gambar 5
menunjukkan hasil. Catat bahwa gambar 5 tiap slot dari dimensi horisontal
menggambarkan dua unit. Anda dapat menekan tombol “P” untuk mengeprint
gambar atau grafik.
Gambar 4.1. Problem Spesification
Gambar 4.2. Entry Data untuk Permasalahan EOQ
Gambar 4.3. Hasil Analisa Biaya per Tahun
Gambar 4.4. Lanjutan Hasil Analisa Biaya per Tahun
Gambar 4.5. Spesifikasi dari Skala Gambar
Gambar 4.6. Kurva Analisa Biaya Inventory
Contoh kasus Quantity Discounts
Jika pemborong menawarkan 2% dan 5% diskon ketika TV Shack memesan
lebih dari atau sama dengan 50 set dan 80 set, berapakah strategi pemesanan terbaik
untuk TV Shack?
Enter the Problem (Masukkan Permasalahan)
1. Pilih atau klik new problem pada menu file.
2. Gambar 7 menunjukkan problem spesification. Klik “Uniform Demand Quantity
Discount Analysis” untuk tipe permasalahan.
3. Gambar 8 menunjukkan dasar memasukkan data. Catat bahwa biaya
penyimpanan unit sama dengan $60, yang merupakan 20% dari $300, tipe diskon
untuk semua unit, dan biaya penyimpanan, kekurangan persediaan, dan
hilangnya penjualan, adalah constan.
4. Klik “Discount break” dari menu “ Edit” untuk menampilkan data quantity break
dan persentase diskon. Gambar 9 menunjukkan pemasukkan dari quantity
breaks dan discounts percentages.
Solve Problem (Penyelesaian Masalah)
1. Pilih “Solve the problem” dari menu “Solve and Analyze” untuk menyelesaikan
permasalahan.
2. Setelah permasalahan terselesaikan, pilih “Solution summary” daari menu
“Result” untuk menampilkan analisa diskon. Gambar 10 menunjukkan hasil yang
diperoleh.
3. Anda mungkin memilih “Graphic cost analysis” dari menu “Result” untuk
menampilkan kurva biaya inventori. Gambar 11 menunjukkan spesifikasi dari
skala gambar. Asumsikan bahwa spesifikasi mengikuti default. Gambar 12
menunjukkan kurva biaya inventori.
Gambar 4.7. Problem Spesification
Gambar 4.8. Entri Data
Gambar 4.9. Discount Break
Gambar 4.10 Analisa Diskon untuk TV Shack
Gambar 4.11 Biaya Inventory untuk TV Shack-Discount
Gambaar 4.12 Spesifikasi Kurva Biaya Inventori untuk TV Shack
Gambaar 4.13 Kurva Biaya Inventori untuk TV Shack
BAB 5
SOLUSI PERSAMAAN TAKLINEAR (KOMPUTASI METODE NUMERIK)
Pada bagian ini akan dibahas metode-metode untuk mencari akar persamaan
taklinear f(x)=0, serta mencari akar polinom. Terdapat dua buah metode yang akan
dibahas yaitu metode tertutup dan metode terbuka
a) Metode Tertutup (bracketing method)
Mencari akar persamaan taklinear f(x)=0 yang memenuhi fungsi f kontinu
pada selang [a,b] dan f(a).f(b)<0 atau f(a).f(b)>0.
Keuntungan: selalu konvergen (berhasil menemukan akar),.
Hal ini dijamin oleh teorema: Jika f(a).f(b)<0 dan f kontinu pada selang [a,b]
maka paling sedikit terdapat satu buah akar pers f(x)=0 di dalam selang [a,b]
Kerugian: relatif lambat konvergen
Metode tertutup meliputi: Metode Biseksi/bagidua (Bisection Method) dan
Metode Regula Falsi (False Position Method)
Metode Bagidua (Bisection Method)
Asumsi: Fungsi f(x) kontinu dalam interval
untuk n = 0,1,…
Jika maka
Jika tidak
Jika atau maka proses berhenti
00 ,ba
2/)( nn bam
,0)()( mfaf n ,1 nn aa mbn 1
,1 man nn bb 1
11 nn ab 0)( mf
Metode Regula Falsi (False Position Method)
untuk n = 0,1,…
Jika maka
Jika tidak
Jika atau maka proses berhenti
b) Metode Terbuka
Tidak memerlukan selang [a,b] yang memuat akar
Digunakan nilai awal, kemudian dengan proses iterasi digunakan untuk
mendapatkan hampiran akar yang baru
Keuntungan: cepat konvergen
Kerugian: tidak selalu konvergen (bisa divergen)
Metode Iterasi Titik Tetap
Langkah:
• Susun persamaan f(x)=0 menjadi x = g(x)
• Prosedur iterasi x(r+1) = g(x(r))
• Dengan nilai awal x0 hitung x1,x2,x3……
• Iterasi berhenti jika |xr+1-xr|<
Contoh:
1. Tentukan akar x2-2x-3=0, dengan x0=4 dan =10-5
2. Tentukan akar x5 –x-0,2=0, dg x0=0 dan =10-5
)]()(/[])()([ nnnnnn afbfbafabfw
,0)()( wfaf n
11 nn ab 0)( wf
,1 nn aa wbn 1
,1 wan nn bb 1
Kriteria Konvergensi
Diberikan persamaan f(x)=0 dan prosedur iterasi x(r+1) = g(x(r)). Misal g(x) dan g’(x)
kontinu di dalam [a,b]=[s-h,s+h] yang memuat titik tetap s dan nilai awal x0 diambil
dalam selang tsb.
Jika g’(x) <1 utk setiap x[a,b] maka iterasi konvergen ke s
Jika g’(x) >1 utk setiap x[a,b] maka iterasi divergen
Metode Newton Raphson
Prosedur iterasi xr+1 = xr-[f(xr)/f’(xr)]
• Dengan nilai awal x0 hitung x1,x2,x3……
• Iterasi berhenti jika |xr+1-xr|<
Metode Secant
• Digunakan dua nilai awal x0 dan x1
• Prosedur iterasi xr+1 = xr-[f(xr)(xr-xr-1) / (f(xr)-f(xr-1)]
• Iterasi berhenti jika |xr+1-xr|<
Latihan
1. Tentukan akar ex-4x = 0 pada selang [0,1] dengan metode bagidua dan regula
falsi dengan = 10-5
Jawab: dengan metode bagidua
a c b f(a) f© f(b)
0 0.5 1 1 -0.35128 -1.281718172
0 0.25 0.5 1 0.284025 -0.351278729
0.25 0.375 0.5 0.284025 -0.04501 -0.351278729
0.25 0.3125 0.375 0.284025 0.116838 -0.045008585
0.3125 0.34375 0.375 0.116838 0.035226 -0.045008585
0.34375 0.359375 0.375 0.035226 -0.00507 -0.045008585
0.34375 0.3515625 0.359375 0.035226 0.015037 -0.005066136
0.3515625 0.35546875 0.359375 0.015037 0.004974 -0.005066136
0.35546875 0.35742188 0.359375 0.004974 -4.9E-05 -0.005066136
0.35546875 0.35644531 0.35742188 0.004974 0.002462 -4.86285E-05
0.35644531 0.35693359 0.35742188 0.002462 0.001207 -4.86285E-05
0.35693359 0.35717773 0.35742188 0.001207 0.000579 -4.86285E-05
0.35717773 0.3572998 0.35742188 0.000579 0.000265 -4.86285E-05
0.3572998 0.35736084 0.35742188 0.000265 0.000108 -4.86285E-05
0.35736084 0.35739136 0.35742188 0.000108 2.98E-05 -4.86285E-05
0.35739136 0.35740662 0.35742188 2.98E-05 -9.4E-06 -4.86285E-05
0.35739136 0.35739899 0.35740662 2.98E-05 1.02E-05 -9.40769E-06
0.35739899 0.3574028 0.35740662 1.02E-05 3.98E-07 -9.40769E-06
0.3574028 0.35740471 0.35740662 3.98E-07 -4.5E-06 -9.40769E-06
0.3574028 0.35740376 0.35740471 3.98E-07 -2.1E-06 -4.50507E-06
0.3574028 0.35740328 0.35740376 3.98E-07 -8.3E-07 -2.05376E-06
0.3574028 0.35740304 0.35740328 3.98E-07 -2.2E-07 -8.281E-07
Hampiran akarnya 0.357403
2. Tentukan akar ex-4x = 0, dengan x0=0 , = 10-5 menggunakan metode
a. iterasi titik tetap
b. Newton Raphson
c. Secant, dengan x1=1
Jawab:
b. Dengan metode Newton Raphson
x(n) x(n+1)
0 0.33333333
0.333333333 0.35724648
0.357246476 0.35740295
0.357402949 0.35740296
0.357402956 0.35740296
0.357402956 0.35740296
Hampiran akarnya 0.357403
c. Dengan metode Secant
x(n-1) x(n) x(n+1) f(xn-1) f(xn)
0 1 0.43826622 1 -1.28172
1 0.43826622 0.33252629 -1.28172 -0.20305
0.43826622 0.33252629 0.35798236 -0.20305 0.064381
0.33252629 0.35798236 0.35740691 0.064381 -0.00149
0.35798236 0.35740691 0.35740296 -0.00149 -1E-05
0.35740691 0.35740296 0.35740296 -1E-05 1.64E-09
0.35740296 0.35740296 0.35740296 1.64E-09 -1.8E-15
Hampiran akarnya 0.357403
Soal Latihan
1. Apa yang terjadi jika persamaan x2 = 2 diatur sebagai xr+1 = 2/xr dan metode
iterasi titik tetap digunakan untuk menemukan akar kuadrat dari 2?
2. Diberikan persamaan 02033 xx . Akar dari persamaan tersebut akan dicari
dengan metode iterasi titik tetap melalui beberapa prosedur berikut ini:
a). 31
)203( xx
b). 3
203
xx
c). 21
203
xx
i. Jika digunakan nilai awal x0 = 5, maka tentukan prosedur mana yang tidak
dapat menghasilkan hampiran akar (tidak konvergen).
ii. Dengan prosedur yang anda pilih pada soal i) tentukan hampiran akarnya.
3. Diketahui persamaan x - 2sinx = 0. Akan dicari akar dari persamaan tak linear
tersebut dengan metode Newton-Rhapson.
a. Dapatkah digunakan tebakan awal 80
x ? Jelaskan.
b. Bagaimana jika 40
x ? Jelaskan.
c. Dengan memilih salah satu nilai awal pada soal a), hampiri akar dari
persamaan tersebut dengan 610 .
4. Diberikan persamaan f(x) = sin(x) – x + ½.
a. Dengan menggunakan metode regula falsi, tentukan hampiran akar dari f(x) =
0 pada interval (0, /2) sampai dengan iterasi ke 3
b. Tentukan hampiran akar dari f(x) = 0 dengan metode iterasi titik tetap,
menggunakan nilai awal x0=0 dan 510
BAB 6
INTERPOLASI (KOMPUTASI METODE NUMERIK)
Interpolasi Lagrange Merupakan teknik yang popular, karena menggunakan fungsi
dalam bentuk polinom.
Jika fungsi yang dicari adalah f(x) dan cacah data n maka :
Dengan
Contoh Penyelesaian untuk tiga titik diketahui. 3 titik tersebut adalah (1, -1), (3, ½),
(4,0)
Penyelesaian akhir didapat sebagai berikut:
Contoh penyelesaian untuk empat titik diketahui.
Empat titik tersebut adalah (0, 1), (1, 2), (3, 4), (6, -1).
Penyelesaian akhir didapat sebagai berikut.
BAB 7
JARINGAN SYARAF TIRUAN
(ARTIFICIAL NEURAL NETWORK)
Pendahuluan
Jaringan Syaraf Tiruan dibuat pertama kali pada tahun 1943 oleh neurophysiologist
Waren McCulloch dan logician Walter Pits, namun teknologi yang tersedia pada saat
itu belum memungkinkan mereka berbuat lebih jauh.
Jaringan Syaraf Tiruan adalah paradigma pemrosesan suatu informasi yang
terinspirasi oleh sistim sel syaraf biologi, sama seperti otak yang memproses suatu
informasi. Elemen mendasar dari paradigma tersebut adalah struktur yang baru dari
sistim pemrosesan informasi. Jaringan Syaraf Tiruan, seperti manusia, belajar dari
suatu contoh. Jaringan Syaraf Tiruan dibentuk untuk memecahkan suatu masalah
tertentu seperti pengenalan pola atau klasifikasi karena proses pembelajaran.
Jaringan Syaraf Tiruan berkembang secara pesat pada beberapa tahun terakhir.
Jaringan Syaraf Tiruan telah dikembangkan sebelum adanya suatu computer
konvensional yang canggih dan terus berkembang walaupun pernah mengalami masa
vakum selama beberapa tahun.
Jaringan Syaraf Tiruan keluar dari penelitian kecerdasan buatan, terutama percobaan
untuk menirukan fault-tolerence dan kemampuan untuk belajar dari sistem syaraf
biologi dengan model struktur low-level dari otak. Otak terdiri dari sekitar
(10.000.000.000) sel syaraf yang saling berhubungan. Sel syaraf mempunyai cabang
struktur input (dendrites), sebuah inti sel dan percabangan struktur output (axon).
Axon dari sebuah sel terhubung dengan dendrites yang lain melalui sebuah synapse.
Ketika sebuah sel syaraf aktif, kemudian menimbulkan suatu signal electrochemical
pada axon. Signal ini melewati synapses menuju ke sel syaraf yang lain. Sebuah sel
syaraf lain akan mendapatkan signal jika memenuhi batasan tertentu yang sering
disebut dengan nilai ambang atau (threshold).
Gambar 7.1. Susunan Syaraf Manusia
Jaringan Syaraf Tiruan memiliki pendekatan yang berbeda untuk memecahkan
masalah bila dibandingkan dengan sebuah komputer konvensional. Umumnya
komputer konvensional menggunakan pendekatan algoritma (komputer
konvensional menjalankan sekumpulan perintah untuk memecahkan masalah). Jika
suatu perintah tidak diketahui oleh komputer konvensional maka komputer
konvensional tidak dapat memecahkan masalah yang ada.
Sangat penting mengetahui bagaimana memecahkan suatu masalah pada komputer
konvensional dimana komputer konvensional akan sangat bermanfaat jika dapat
melakukan sesuatu dimana pengguna belum mengatahui bagaimana melakukannya.
Jaringan Syaraf Tiruan dan suatu algoritma komputer konvensional tidak saling
bersaing namun saling melengkapi satu sama lain. Pada suatu kegiatan yang besar,
sistim yang diperlukan biasanya menggunakan kombinasi antara keduanya (biasanya
sebuah komputer konvensional digunakan untuk mengontrol Jaringan Syaraf Tiruan
untuk menghasilkan efisiensi yang maksimal. Jaringan Syaraf Tiruan tidak
memberikan suatu keajaiban tetapi jika digunakan secara tepat akan menghasilkan
sesuatu hasil yang luarbiasa.
Gambar 7.2. Sebuah Sel Syaraf Sederhana
JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi,
dengan asumsi bahwa:
Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron).
Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung.
Penghubung antar neuron memiliki bobot yang akan memperkuat atau
memperlemah sinyal.
Sejarah JST
Jaringan syaraf tiruan sederhana pertama kali diperkenalkan oleh McCulloch dan
Pitts di tahun 1943. McCulloch dan Pitts menyimpulkan bahwa kombinasi beberapa
neuron sederhana menjadi sebuah sistem neural akan meningkatkan kemampuan
komputasinya. Bobot dalam jaringan yang diusulkan oleh McCulloch dan Pitts diatur
untuk melakukan fungsi logika sederhana. Fungsi aktivasi yang dipakai adalah fungsi
threshold. Tahun 1958, Rosenblatt memperkenalkan dan mulai
mengembangkan model jaringan yang disebut Perceptron. Metode pelatihan
diperkenalkan untuk mengoptimalkan hasil iterasinya.
Widrow dan Hoff (1960) mengembangkan perceptron dengan memperkenalkan
aturan pelatihan jaringan, yang dikenal sebagai aturan delta (atau sering disebut
kuadrat rata-rata terkecil). Aturan ini akan mengubah bobot perceptron apabila
keluaran yang dihasilkan tidak sesuai dengan target yang diinginkan.
Selain itu, beberapa model jaringan syaraf tiruan lain juga dikembangkan oleh
Kohonen (1972), Hopfield (1982), dll. Pengembangan yang ramai dibicarakan sejak
tahun 1990an adalah aplikasi model-model jaringan syaraf tiruan untuk
menyelesaikan berbagai masalah di dunia nyata.
Jaringan Syaraf Tiruan ditentukan oleh tiga hal :
Pola hubungan antar neuron (disebut arsitektur jaringan)
Metode untuk menentukan bobot penghubung (disebut metode
learning/training)
Fungsi aktivasi
Arsitektur Jaringan
Beberapa arsitektur jaringan yang sering dipakai dalam jaringan syaraf tiruan antara
lain :
1. Jaringan Lapisan Tunggal (single layer network)
Dalam jaringan ini, sekumpulan input neuron dihubungkan langsung dengan
sekumpulan outputnya. Dalam beberapa model (misal perceptron), hanya ada
sebuah unit neuron output.
2. Jaringan Lapisan Jamak (multi layer network)
Jaringan layar jamak merupakan perluasan dari layar tunggal. Dalam jaringan ini,
selain unit input dan output, ada unit-unit lain (sering disebut layar tersembunyi
/ hidden layer). Dimungkinkan pula ada beberapa layar tersembunyi. Sama
seperti pada unit input dan output, unit-unit dalam satu layar tidak saling
berhubungan.
3. Jaringan Recurrent
Model jaringan reccurent mirip dengan jaringan layar tunggal ataupun ganda.
Hanya saja, ada neuron output yang memberikan sinyal pada unit input (sering
disebut feedback loop).
Paradigma Pembelajaran dalam JST
Berdasarkan cara memodifikasi bobotnya, ada 2 macam pelatihan yang dikenal yaitu
dengan supervisi dan tanpa supervisi. Dalam pelatihan dengan supervisi,
terdapat sejumlah pasangan data (masukan - target keluaran) yang dipakai untuk
melatih jaringan hingga diperoleh bobot yang diinginkan. Pasangan data tersebut
berfungsi sebagai "guru" untuk melatih jaringan hingga diperoleh bentuk yang
terbaik. "Guru" akan memberikan informasi yang jelas tentang bagaimana sistem
harus mengubah dirinya untuk meningkatkan unjuk kerjanya. Pada setiap kali
pelatihan, suatu input diberikan ke jaringan. Jaringan akan memproses dan
mengeluarkan keluaran. Selisih antara keluaran jaringan dengan target (keluaran
yang diinginkan) merupakan kesalahan yang terjadi.
Jaringan akan memodifikasi bobot sesuai dengan kesalahan tersebut. Jaringan
perceptron, Adaline dan backpropagation merupakan model-model yang
menggunakan pelatihan dengan supervisi. Sebaliknya, dalam pelatihan tanpa
supervisi tidak ada "guru" yang akan mengarahkan proses pelatihan. Dalam
pelatihannya, perubahan bobot jaringan dilakukan berdasarkan parameter tertentu
dan jaringan dimodifikasi menurut ukuran parameter tersebut.
Sebagai contoh, dalam model jaringan kompetitif, jaringan terdiri dari 2 layar, yaitu
layar input dan layar kompetisi. Layar input menerima data eksternal. Layar
kompetitif berisi neuron-neuron yang saling berkompetisi agar memperoleh
kesempatan untuk merespon sifat-sifat yang ada dalam data masukan. Neuron yang
memenangkan kompetisi akan memperoleh sinyal yang berikutnya ia teruskan.
Bobot neuron pemenang akan dimodifikasi sehingga lebih menyerupai data masukan.
Sebagai ilustrasi, pelatihan dengan supervisi dapat diandaikan sebagai skripsi yang
dibimbing oleh seorang dosen. Pada setiap kali pengumpulan berkas skripsi, dosen
akan mengkritik, mengarahkan dan meminta perbaikan agar kualitas skripsi
meningkat. Sebaliknya, Dalam pelatihan tanpa supervisi dapat dibayangkan sebagai
skripsi tanpa dosen pembimbing. Mahasiswa mengerjakan skripsi sebaik-baiknya
berdasarkan ukuran tertentu (misal dibandingkan dengan skripsi yang sudah
ada sebelumnya atau dibandingkan dengan hasil skripsi temannya). Berdasarkan
hasil yang pernah dilaporkan, model pelatihan dengan supervisi lebih banyak
digunakan dan terbukti cocok dipakai dalam berbagai aplikasi. Akan tetapi
kelemahan utama pelatihan dengan supervisi adalah dalam hal pertumbuhan waktu
komputasinya yang berorde eksponensial. Ini berarti untuk data pelatihan yang
cukup banyak, prosesnya menjadi sangat lambat.
1. Pelatihan dengan Supervisi
Jaringan memberikan tanggapan dengan mendapatkan target tertentu. Sebelum
jaringan mengubah sendiri bobotnya untuk mencapai target, bobot interkoneksi
diinisialisasi. Proses belajar JST dengan pengawasan adalah proses belajar dengan
memberikan latihan untuk mencapai suatu target keluaran yang ditentukan. JST
mendapatkan latihan untuk mengenal pola-pola tertentu. Dengan memberikan target
keluaran, perubahan masukan akan diadaptasi oleh keluaran dengan mengubah
bobot interkoneksinya mengikuti algoritma belajar yang ditentukan.Set pelatihan
dipilih dari fungsi keluaran maksimum setiap keadaan parameter yang diubah.
Dengan menginisialisasi bobot tiap sel, JST akan mencari error terkecil, sehingga
bentuk fungsi keluaran mendekati target yang diinginkan. Berdasarkan proses belajar
yang dilakukan.
Kita perlu memperhatikan beberapa hal dalam menyusun set pelatihan, yaitu :
a. Pemberian urutan pola yang akan diajarkan
b. Kriteria perhitungan error
c. Kriteria proses belajar
d. Jumlah iterasi yang harus dilalui
e. Inisialisasi bobot dan parameter awal
Pelatihan dilakukan dengan memberikan pasangan pola-pola masukan dan keluaran.
Untuk keperluan pengendalian, pasangan pola tidak mengikuti rumusan tertentu. JST
harus dapat mengadaptasi masukan yang acak supaya keluaran tetap mengikuti
target. Lebih lanjut, proses pelatihan dilakukan dengan memberikan pola yang
menggunakan masukan acak dan bobot interkoneksi yang besar. Dengan pemberian
bobot yang besar, perbedaan target dan keluaran berkurang lebih cepat, sehingga
proses adaptasi akan lebih cepat pula. Salah satu proses belajar dengan pengawasan
adalah proses belajar menggunakan algoritma propagasi balik. Proses belajar
jaringan umpan balik dituliskan dalam bentuk algoritma propagasi balik yang dikenal
sebagai JPB. Jaringan Propagasi Balik (JPB) kadang-kadang dikenal sebagai Multilayer
Perceptron (MLP). Anda dapat menggunakan algoritma propagasi balik untuk melatih
jaringan lapis banyak.
2. Pelatihan Tanpa Supervisi
Pada pelatihan tanpa supervisi jaringan tidak mendapatkan target, sehingga JST
mengatur bobot interkoneksi sendiri. Belajar tanpa pengawasan kadang-kadang
diacu sebagai self-organizing learning, yakni belajar mengklasifikasikan tanpa dilatih.
Pada proses belajar tanpa pengawasan, JST akan mengklasifikasikan contoh pola-pola
masukan yang tersedia ke dalam kelompok yang berbeda-beda.
Fungsi aktivasi
Hampir semua unit dalam neural network mentransofrmasi net inputnya dengan
menggunakan suatu dungsi skalar ke skalar yang disebut fungsi aktivasi,
menghasilkan suatu nilai yang disebut aktivasi unit. Kecuali untuk keluaran unit, nilai
aktivasi diberikan kepada satu atau lebih unit lainnya. Fungsi aktivasi dengan suatu
selang terbatas sering disebut squashing functions. Berikut ini adalah beberapa fungsi
aktivasi yang sering digunakan (Fausett, 1994):
1. Fungsi linear (identitas)
푔(푥) = 푥
Kadang-kadang net input dikalikan dengan suatu nilai konstan untuk membentuk
suatu fungsi linear.
Gambar 7.3. Fungsi identitas
2. Fungsi undak biner
Fungsi undak biner dengan menggunakan nilai ambang sering juga disebut
dengan fungsi nilai ambang (threshold) atau fungsi Heaviside. Fungsi undak biner
(dengan nilai ambang ) dirumuskan sebagai berikut:
푔(푥) = 1 푗푖푘푎 푥 ≥ 휃0 푗푖푘푎 푥 < 휃
Fungsi jenis ini sering digunakan pada network ber-layer tunggal.
Gambar 7.4. Fungsi undak biner dengan = 2
3. Fungsi sigmoid biner
Fungsi ini digunakan untuk jaringan syaraf yang pelatihannya dengan
menggunakan metode backpropagation, karena fungsi ini mudah
dideferensiasikan, dan oleh karena itu dapat secara dramatis mengurangi beban
komputasi pada saat proses training. Fungsi sigmoid biner memiliki nilai pada
range 0 sampai 1. Oleh karena itu, fungsi ini sering diaplikasikan untuk jaringan
syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1.
Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0
atau 1.
Fungsi sigmoid biner dirumuskan sebagai:
푔(푥) =
dengan 푔 (푥) = 휎푔(푥)[1− 푔(푥)].
Gambar 7.5. Fungsi sigmoid biner
4. Fungsi sigmoid bipolar
Fungsi ini memiliki properti yang sama dengan fungsi sigmoid, hanya saja output
dari fungsi ini berada pada interval [-1,1].
푔(푥) =
dengan 푔 (푥) = [1 + 푔(푥)][1− 푔(푥)].
Gambar 7.6. Fungsi sigmoid bipolar
Fungsi aktivasi untuk lapisan tersembunyi diperlukan untuk memperkenalkan
bentuk nonlinier kepada jaringan. Alasannya adalah bahwa komposisi dari fungsi-
fungsi linier juga. Bagaimanapun juga, non linearitas yaitu kemampuan untuk
merepresentasikan fungsi nonlinier yang menjadikan jaringan dengan banyak lapisan
(multi layer) sangat handal. Hampir semua fungsi nonlinier manapun melakukan
tugas dengan baik, meskipun untuk fungsi pelatihan backpropagation harus
diturunkan dan ini akan mudah jika fungsi tersebut dibatasi pada interval tertentu.
Komponen-komponen jaringan syaraf
Jaringan syaraf terdiri dari beberapa neuron, dan di antara neuron-neuron
tersebut saling berhubungan. Neuron-neuron tersebut akan mentransformasikan
informasi yang diterima melalui sambungan outputnya menuju ke neuron-neuron
yang lain. Pada jaringan syaraf, hubungan ini dikenal dengan nama bobot. Informasi
tersebut disimpan pada suatu nilai tertentu pada bobot tersebut. Gambar 7.7
menunjukkan struktur neuron pada jaringan syaraf.
Gambar 7.7 Struktur neuron jaringan syaraf
Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer)
yang disebut dengan lapisan neuron (neuron layers). Biasanya neuron-neuron pada
satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya
(kecuali lapisan input dan lapisan output). Informasi yang diberikan pada jaringan
syaraf akan dirambatkan lapisan ke lapisan, mulai dari lapisan input sampai ke
lapisan output melalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan
tersembunyi (hidden layer). Tergantung dari algoritma pembelajarannya, bisa jadi
informasi tersebut akan dirambatkan secara mundur pada jaringan. Berikut ini
adalah gambar jaringan syaraf dengan fungsi aktivasi F (lihat gambar 7.8).
Gambar 7.8. Jaringan syaraf sederhana
F y_in y w2
w1
wN
x1
x2
xn
.
.
output
Fungsi aktivasi bobot Output ke neuron-neuron yang lain
Input dari neuron-neuron
yang lain
bobot
Pada gambar 7.8 tersebut sebuah neuron akan mengolah N input (x1, x2, …,xN) yang
masing-masing memiliki bobot w1, w2, …, wN, dengan rumus:
푦_푖푛 = ∑ 푥 푤
Kemudian fungsi aktivasi F akan mengaktifkan y_in menjadi output jaringan y. Untuk
jaringan syaraf dengan jumlah neuron pada lapisan output sebanyak m buah, maka
proses pengolahan data pada neuron ke-j adalah:
푦_푖푛 = ∑ 푥 푤 ; 푗 = 1, … ,푚
dengan wij adalah bobot yang menghubungkan input ke-i menuju ke neuron ke-j.
Adakalanya jaringan syaraf tidak mampu mengakomodasi informasi yang ada melalui
data-data input maupun melalui bobot-bobotnya. Untuk mengakomodasi hal
tersebut, maka biasanya pada jaringan syaraf juga ditambahkan bias yang senantiasa
bernilai 1. Pengaruh bias terhadap neuron ditunjukkan dengan bobot bias, b. Apabila
pada jaringan syaraf dilengkapi dengan bias, maka proses komputasi pada neuron
menjadi:
푦 = ∑ 푥 푤 + 푏
Untuk jaringan syaraf dengan jumlah neuron pada lapisan output sebanyak m buah,
maka proses pengolahan data pada neuron ke-j adalah:
푦_푖푛 = ∑ 푥 푤 + 푏 ; 푗 = 1, … ,푚
dengan wij adalah bobot yang menghubungkan input ke-i menuju ke neuron ke-j.
gambar 7.8 adalah gambar jaringan syaraf sederhana dengan bias.
Gambar 7.9 Jaringan syaraf sederhana dengan bias
Arsitektur jaringan syaraf
Berdasarkan arsitekturnya, jaringan syaraf tiruan dibagi menjadi 3 kelompok yaitu:
jaringan syaraf tiruan lapis tunggal (single layer net), jaringan syaraf tiruan multilapis
(multilayer net), dan jaringan syaraf tiruan kompetitif (Fausett, 1994). Jaringan lapis
F y_in y w2
w1
wN
x1
x2
xn
.
. 1
b
tunggal hanya memiliki satu buah lapisan bobot koneksi, yang terdiri atas unit-unit
input yang menerima sinyal dari luar, dan unit-unit output yang merupakan respons
dari jaringan syaraf tiruan. Jaringan syaraf multilapis memiliki satu buah atau lebih
lapisan tersembunyi dan memiliki kemampuan lebih dalam memecahkan masalah
dibandingkan dengan jaringan lapis tunggal tetapi pelatihannya mungkin sedikit
lebih rumit. Berbeda dengan kedua macam arsitektur sebelumnya, pada jaringan
syaraf tiruan kompetitif sekumpulan neuron akan saling bersaing mendapatkan hak
untuk menjadi aktif.
BAB 8
ALGORITMA PEMBELAJARAN DALAM JARINGAN SYARAF TIRUAN
Dalam bab ini hanya akan dipaparkan 3 algoritma yang banyak digunakan dalam
Jaringan Syaraf Tiruan, yaitu Algoritma Perceptron, Algoritma Backpropagasi dan
Algoritma Kohonen. Algoritma perceptron dan Backpropagasi merupakan contoh
algoritma dengan jenis pembelajaran yang terawasi (supervising) dan algoritma
kohonen merupakan contoh algoritma yang tidak terawasi (unsupervising)
Algoritma Perceptron
Model jaringan perceptron ditemukan oleh Rosenblatt (1962) dan Minsky – Papert
(1969). Model tersebut merupakan model yang memiliki aplikasi dan pelatihan yang
paling baik pada era tersebut.
1. Arsitektur Jaringan
Arsitektur jaringan perceptron mirip dengan arsitektur jaringan Hebb.
Gambar 8.1. Arsitektur Jaringan Perceptron
Jaringan terdiri dari beberapa unit masukan (ditambah sebuah bias), dan memiliki
sebuah unit keluaran. Hanya saja fungsi aktivasi merupakan fungsi biner (atau
bipolar), tetapi memiliki kemungkinan nilai -1, 0 atau 1.
Untuk suatu harga threshold θ yang ditentukan :
Secara geometris fungsi aktivasi membentuk 2 garis sekaligus, masing – masing
dengan persamaan :
W1X1 + W2X2 + …+ WnXn + b = θ dan W1X1 + W2X2 + …+ WnXn + b = -θ
2. Pelatihan Perceptron
Misalkan
S adalah vektor masukan dan t adalah target keluaran
α adalah laju pemahaman (learning rate) yang ditentukan
θ adalah threshold yang ditentukan.
Algoritma pelatihan perceptron adalah sebagai berikut :
a. Inisialisasi semua bobot dan bias (umumnya wi = b 0)
Tentukan laju pemahaman (=α). Untuk penyederhanaan biasanya α diberi nilai =
1
b. Selama ada elemen vector masukan yang respon unit keluarannya tidak sama
dengan target, lakukan :
1) Set aktivasi unit masukan xi = si (i = 1,…n)
2) Hitung respon unit keluaran : net = ∑ xiwi + b
3) Perbaiki bobot pola yang mengandung kesalahan (y ≠ t) menurut persamaan :
Wi (baru) = wi (lama) + ∆ w (i=1,…n) dengan ∆ w = α t xi
b (baru) = b (lama) + ∆ b dengan ∆ b = α t
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 dimasukan seperti yang terjadi pada model Hebb.
b) Perubahan bobot hanya dilakukan pada pola yang mengandung kesalahan
(keluaran jaringan ≠ target). Perubahan tersebut merupakan hasil kali unit
masukan dengan target laju pemahaman. Perubahan bobot hanya akan terjadi
kalau unit masukan ≠ 0.
Algoritma Backpropagasi Umpan Balik (Feed Forward Back Propagation)
Propagasi umpan balik berbasis jaringan syaraf tiruan merupakan algoritma
pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak
lapisan untuk mengubah bobot- bobot yang terhubung dengan neuron – neuron yang
ada pada lapisan tersembunyinya. Propagasi umpan balik berbasis jaringan syaraf
tiruan menggunakan error output untuk mengubah nilai bobot – bobotnya dalam
arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju
(forward propagation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju,
neuron – neuron diaktifkan dengan menggunakan fungsi aktivasi yang dapat
dideferensiasi.
Propagasi umpan balik berbasis jaringan syaraf tiruan memiliki beberapa unit yang
ada dalam satu atau lebih layer tersembunyi. Gambar 2.3 adalah arsitektur propagasi
umpan balik berbasis jaringan syaraf tiruan dengan n buah masukan (ditambah
sebuah bias), sebuah layar tersembunyi yang terdiri dari p unit (ditambah sebuah
bias), serta m buah unit keluaran (Jek, 2005:98).
Gambar 8.2. Arsitektur Propagasi Umpan Balik Berbasis Jaringan Syaraf Tiruan
vji merupakan bobot garis dari unit masukan xi ke unit layar tersembunyi zj (vjo
merupakan bobot garis yang menghubungkan bias di unit masukan ke unit layer
tersembunyi zj).
wkj merupakan bobot dari unit layar tersembunyi zj ke unit keluaran yk (wko
merupakan bobot dari bias di layar tersembunyi ke unit keluaran zk) (Jek, 2005:98).
1. Pelatihan Propagasi Umpan Balik Berbasis Jaringan Syaraf Tiruan
Pelatihan propagasi umpan balik berbasis jaringan syaraf tiruan meliputi 3 fase.
Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari layar
masukan hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan.
Fase kedua adalah fase mundur. Selisih antara keluaran jaringan dengan target
yang diinginkan merupakan kesalahan yang terjadi. Kesalahan tersebut
dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan
unit-unit di layar keluaran. Fase ketiga adalah modifikasi bobot untuk
menurunkan kesalahan yang terjadi (Jek, 2005:100).
Fase I: Propagasi Maju
Selama propagasi maju, sinyal masukan (= xi) dipropagasikan ke layer
tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari
setiap unit layar tersembunyi (= zj) tersebut selanjutnya dipropagasikan maju
lagi ke layer 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 dari tk terhadap yk yaitu (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.
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 mengubah bobot garis
yang berhubungan langsung dengan unit keluaran.
Dengan cara yang sama, dihitung faktor j (j = 1,2,…, p) di setiap unit di layar
tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari
unit tersembunyi di layar di bawahnya. Demikian seterusnya hingga semua
faktor di unit tersembunyi yang berhubungan langsung dengan unit
masukan dihitung.
Fase III: Perubahan Bobot
Setelah semua faktor dihitung, bobot semua garis dimodifikasi bersamaan.
Perubahan bobot suatu garis didasarkan atas faktor neuron di layar atasnya.
Sebagai contoh, perubahan bobot garis yang menuju ke layar keluaran
didasarkan atas k yang ada di unit keluaran.
Ketiga fase terebut diulang-ulang terus hingga kondisi penghentian dipenuhi.
Umumnya kondisi penghentian yang sering dipakai adalah jumlah iterasi atau
kesalahan. Iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah melebihi
jumlah maksimum iterasi yang ditetapkan, atau jika kesalahan yang terjadi sudah
lebih kecil dari batas toleransi yang diijinkan.
Algoritma pelatihan untuk jaringan dengan satu layer tersembunyi (dengan fungsi
aktivasi sigmoid biner) adalah sebagai berikut :
Langkah 0 : Inisialisasi semua bobot dengan bilangan acak kecil.
Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan langkah 2 – 9.
Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3 – 8.
Fase I : Propagasi maju
Langkah 3 : Tiap unit masukan menerima sinyal dan meneruskannya ke unit
tersembunyi di atasnya.
Langkah 4 : Hitung semua keluaran di unit tersembunyi zj (j = 1,2,…, p).
Langkah 5 : Hitung semua keluaran jaringan di unit yk (k = 1,2,…, m).
Fase II : Propagasi mundur
Langkah 6 : Hitung faktor unit keluaran berdasarkan kesalahan di setiap unit
keluaran yk (k = 1,2,…, m).
δk merupakan unit kesalahan yang akan dipakai dalam perubahan bobot layer
dibawahnya (langkah 7).
Hitung suku perubahan bobot wkj (yang akan dipakai nanti untuk merubah bobot
wkj) dengan laju perceptron α
Langkah 7 : Hitung faktor unit tersembunyi berdasarkan kesalahan di setiap unit
tersembunyi zj (j = 1,2,…, p).
Faktor δ unit tersembunyi :
δj = δ_netj f ’(z_netj) = δ_netj Zj (1– Zj)
Hitung suku perubahan bobot Vji (yang akan dipakai nanti untuk merubah bobot Vji).
Δvji = α δj xi ; j = 1,2,…,p ; i = 0,1,…,n
Fase III : Perubahan bobot
Langkah 8 : Hitung semua perubahan bobot. Perubahan bobot garis yang menuju
ke unit keluaran :
Wkj (baru) = Wkj (lama) + ΔWkj (k = 1,2,…,m ; j = 0,1,…,p)
Perubahan bobot garis yang menuju ke unit tersembunyi :
Vji (baru) = Vji (lama) + Δvji (j = 1,2…,p ; I = 0,1,…,n)
Setelah selesai dilakukan, jaringan dapat dipakai untuk pengenalan pola. Dalam hal
ini, hanya propagasi maju (langkah 4 dan 5) saja yang dipakai untuk menentukan
keluaran jaringan.
Apabila fungsi aktivasi yang dipakai bukan sigmoid biner, maka langkah 4 dan 5
harus disesuaikan. Demikian juga turunannya pada langkah 6 dan 7.
56
2. Jaringan Propagasi Umpan Balik Pada MATLAB
Membangun Jaringan Propagasi Umpan Balik
Arsitektur jaringan yang sering digunakan oleh algoritma propagasi umpan balik
adalah jaringan feedforward dengan banyak lapisan. Untuk membangun suatu
jaringan feedforward digunakan instruksi newff.
Fungsi : net = newff (PR,[S1 S2 . . . SN1],{TF1 TF2 . . . TFN1},BTF,BLF,PF)
Keterangan :
PR : matriks berukuran Rx2 yang berisi nilai minimum dan maksimum, dengan R
adalah jumlah variable input .
Si : jumlah neuron pada lapisan ke-i, dengan i = 1,2,..,N1.
TFi : fungsi aktivasi pada lapisan ke- i, dengan i = 1,2,..,N1; (default : tansig)
BTF : fungsi pelatihan jaringan (default : trainlm)
BLF : fungsi pelatihan untuk bobot (default : learngdm) PF : fungsi kinerja
(default : mse)
Inisialisasi Bobot
Setiap kali membentuk jaringan propagasi umpan balik, MATLAB akan memberi nilai
bobot dan bias awal dengan bilangan acak kecil. Bobot dan bias ini akan berubah
setiap kali kita membentuk jaringan. Akan tetapi jika diinginkan memberi bobot
tertentu, bisa dilakukan dengan memberi nilai pada net.IW, net.LW dan net.b.
Perbedaan antara net.IW dan net.LW. net.IW{j,i} digunakan sebagai variabel untuk
menyimpan bobot dari unit masukan layar i ke unit tersembunyi (atau unit keluaran)
layar j.
Karena dalam propagasi umpan balik, unit masukan hanya terhubung dengan layar
tersembunyi paling bawah, maka bobotnya disimpan dalam net.IW {1,1}. Sebaliknya,
net.LW{k,j} dipakai untuk menyimpan bobot dari unit di layar tersembunyi ke- j ke
unit di layar tersembunyi ke- k. Sebagai contoh, net.LW {2,1} adalah penyimpan bobot
dari layar tersembunyi paling bawah (layar tersembunyi ke- 1) ke layar tersembunyi
diatasnya (layar tersembunyi ke- 2).
Metode Penurunan Gradien Dengan Momentum (Traingdm)
57
Modifikasi metode penurunan tercepat dilakukan dengan menambah momentum.
Dengan momentum, perubahan bobot tidak hanya didasarkan atas error yang terjadi
pada epoch pada waktu itu. Perubahan bobot saat ini dilakukan dengan
memperhitungkan juga perubahan bobot pada epoch sebelumnya. Dengan demikian
kemungkinan terperangkap ke titik minimum lokal dapat dihindari.
Dalam MATLAB, pelatihan propagasi umpan balik dengan menggunakan metode
penurunan gradient dengan momentum dilakukan dengan mendefinisikan fungsi
pelatihan ‘ traingdm’ dalam pembentukan jaringannya.
Ada beberapa parameter yang harus diset untuk pelatihan ini, yaitu :
Maksimum epoh
Maksimum epoh adalah jumlah epoh maksimum yang boleh dilakukan selama
proses pelatihan. Iterasi akan dihentikan apabila nilai epoh melebihi maksimum
epoh.
Instruksi : net.trainParam.epochs = MaxEpoh (default = 10).
Kinerja tujuan
Kinerja tujuan adalah target nilai fungsi kinerja. Iterasi akan dihentikan apabila
nilai fungsi kinerja kurang dari atau sama dengan kinerja tujuan.
Instruksi : net.trainParam.goal = Targeterror (default = 0).
Learning rate
Learning rate adalah laju pembelajaran. Semakin besar nilai learning rate akan
berimplikasi pada semakin besarnya langkah pembelajaran. Jika learning rate
diset terlalu besar, maka algoritma akan menjadi tidak stabil. Sebaliknya, jika
learning rate diset terlalu kecil, maka algoritma akan konvergen dalam jangka
waktu yang sangat lama.
Instruksi : net.trainParam.lr = LearningRate(default = 0.01).
Faktor laju momentum
Instruksi : net.trainParam.mc = Momentum (default = 0.9).
Jumlah epoh yang akan ditunjukkan kemajuannya
Menunjukkan berapa jumlah epoh berselang yang akan ditunjukkan
kemajuannya. Instruksi : net.trainParam.show = EpohShow (default = 25).
Pelatihan Propagasi Umpan Balik
58
Untuk menggunakan pelatihan propagasi umpan balik digunakan fungsi train. Fungsi: [net,tr] = train (net,P,T)
Keterangan :
net : jaringan syaraf
tr : informasi pelatihan (epoh dan fungsi kinerja)
P : matriks data input
T : matriks data target (default = 0)
Algoritma Kohonen Map
Kohonen Map atau bisa disebut Self Organizing Map diperkenalkan pertama kali oleh
Prof. Teuvo Kohonen dari Finlandia pada tahun 1982. Kohonen map merupakan salah
satu algoritma jaringan syaraf tiruan terbaik, metoda ini cukup unik karena
membangun sebuah topology preserving map dari ruang berdimensi tinggi ke dalam
neuron-neuron sebagai representasi dari datapoint-datapoint yang ada.
Kohonen map merupakan salah satu metoda jaringan syaraf tiruan unsupervised
(tidak terawasi), jaringan ini tidak mendapatkan target, sehingga JST mengatur bobot
interkoneksi sendiri. Belajar tanpa pengawasan kadang-kadang diacu sebagai Self
Organizing learning, yakni belajar mengklasifikasikan tanpa dilatih. Pada proses
belajar tanpa pengawasan, JST akan mengklasifikasikan contoh pola-pola masukan
yang tersedia ke dalam kelompok yang berbeda- beda. Ketika data diberikan ke
dalam jaringan syaraf, data akan mengatur struktur dirinya sendiri untuk
merefleksikan dari pola yang diberikan. Pada kebanyakan model ini, batasan
mengacu pada determinasi kekuatan antar neuron.
1. Topologi Jaringan Kohonen Map
J. J. Siang (2004:292); Dalam jaringan kohonen, neuron target tidak diletakan dalam
sebuah baris, tetapi neuron target diletakan dalam 2 dimensi yang topologinya dapat
diatur. Untuk mendefinisikan topologi jaringan terdapat 3 macam topologi yang
dapat dibuat yaitu gridtop, hextop, dan randtop.
a. Gridtop (Grid Topology)
Topologi dengan posisi neuron membentuk pola menyerupai segi empat.
Ditentukan dengan membuat koordinat neuron dalam n baris dan n kolom.
59
Gambar 8.3. Grid Topology
b. Hextop (Hexagonal Topology)
Topologi dengan posisi neuron membentuk pola menyerupai segi enam.
Ditentukan dengan membuat koordinat neuron dalam n baris dan n kolom.
Gambar 8.4. Hexagonal Topology
c. Randtop (Random Topology)
Topologi dengan posisi neuron membentuk pola secara acak. Ditentukan
dengan membuat koordinat neuron dalam n baris dan n kolom.
60
Gambar 8.5. Random Topology
2. Jarak Antar Neuron Jaringan Kohonen Map
J. J. Siang (2004:297); Dalam jaringan kohonen, perubahan bobot tidak hanya
dilakukan pada garis yang terhubung ke neuron pemenang saja, tetapi juga pada
bobot garis neuron-neuron sekitarnya. Neuron sekitar neuron pemenang ditentukan
berdasarkan jaraknya dari neuron pemenang (default jarak = 1). Ada 4 macam
definisi jarak antar 2 neuron, yaitu jarak Euclidist, Boxdist, linkdist, dan mandist.
Jarak Euclidist adalah jarak yang antara 2 titik dalam posisi berbeda yang kita kenal
sehari-hari. Misal (x1, y1) dan (x2, y2) adalah koordinat 2 buah neuron. Jarak neuron
didefinisikan sebagai berikut:
Jarak persegi (boxdist) sebuah neuron adalah neuron-neuron disekitarnya secara
langsung. Apabila topologi neuron adalah gridtop, maka paling banyak terdapat 8
buah neuron dengan boxdist = 1, 16 buah neuron dengan boxdist = 2 (lihat Gambar
8.6). jika neuron pemenang berada di pinggir (seperti titik q pada Gambar 8.6), maka
hanya ada 5 neuron disekitarnya.
61
Gambar 8.6. Box Distance
Jarak link (linkdist) dari sebuah neuron adalah jumlah langkah yang dibutuhkan
untuk menuju neuron tersebut. Jika dalam jaringan kohonen menggunakan topologi
gridtop dengan linkdist = 1 (lihat Gambar 8.7), berarti hanya neuron-neuron yang
berhubungan langsung dengan neuron pemenang saja yang diubah bobotnya.
Gambar 8.7. Link Distance
Jarak Manhattan (mandist) antar vektor x = (x1, x2, ..... xn) dan vektor y = (y1, y2, .....
yn)
didefinisikan sebagai:
Jika x = (x1, x2) dan y = (y1, y2) menyatakan koordinat neuron yang dibentuk melalui
topologi tertentu, maka jarak manhattan antara neuron x dan y adalah:
62
Juha Vesanto (1999:1) Kohonen dapat berfikir sebagai jaringan yang meyebar dari
data masukan. Algoritma pelatihan kohonen memindahkan bobot vektor sehingga
jaringan hasil pembelajaran dapat menyerupai pola masukan dan oleh karena itu
jaringan dapat terorganisir, neuron yang berdekatan pada jaringan dapat menyrupai
bobot vektor. Pada contoh pelatihan sederhana, pola masukan dihubungka satu
persatu, dan algoritma hasil pelatihan secara berturut – turut memindahkan bobot
vektor ke arah jaringan hasil pelatihan, ditunjukan pada gambar 8.9. Pada proses
pelatihan, seperangkat data dipelajari oleh kohonen secara keseluruhan, dan vektor
bobot baru menimbang dari rata-rata vektor masukan. Keduanya adalah algoritma
iteratif dengan kumpulan yang banyak, sejak operasi matrix dapat menggunakan
matlab membuatnya jadi lebih efisien.
Gambar 8.9. Bobot Baru Jaringan Kohonen
Bobot baru mencocokan pada bobot masukan, dan tetangga dari vektor masukan di
tandai dengan x. Garis padat dan garis putus-putus sesuai dengan situasi sebelum dan
setelah pembelajaran pada masing – masing neuron.