Artificial
Neural Network
KATA
PENGANTAR
Dengan mengucapkan segala puji dan syukur kepada Allah SWT,
karena hanya dengan rahmat dan hidayah-Nya sehingga kami dapat menyelesaikan
penulisan dengan judul “Artificial Neural Network”. Adapun penulisan ini
disusun untuk menyelesaikan tugas mata kuliah softskill Pengantar Komputasi
Modern kelas 4IA08 jurusan Teknik Informatika, Fakultas Teknologi Industri
Universitas Gunadarma dengan dosen Pak I Made Wiryana. Kami mengucapkan terima
kasih kepada pihak-pihak yang telah berkontribusi dalam menyusun penulisan ini,
terutama kepada :
§ Sosro Hartomo
§ Rajimar Suhal Hasibuan
§ Abram Hotma Immanuel
§ Mega Marcella
§ Tito Rachmat Muchlisin
Kami menyadari bahwa penulisan ilmiah ini jauh dari kata
sempurna, oleh karena itu kami menerima segala kritik dan saran yang membangun
baik untuk penulisan ini atau pun untuk penulis sendiri. Akhir kata, semoga
penulisan ini dapat bermanfaat untuk masyarakat luas.
Depok, 4 Juli 2014
Penulis
Bab 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Artificial Neural Network atau jaringan saraf tiruan merupakan
jaringan dari unit pemroses kecil yang saling terhubung, yang dimodelkan
berdasar jaringan saraf (neuron) jaringan saraf. Teknologi jaringan saraf
tiruan kian marak digunakan di berbagai bidang. Mulai dari bidang kedokteran,
militer, ekonomi dan bidang lain banyak menggunakan penerapan konsep teknologi
jaringan saraf tiruan. Penerapan konsep jaringan saraf tiruan pertama-tama
dengan mengadakan studi mengenai teori dasar mekanisme proses terjadinya
intelegensi. Dari teori dasar ini dibuatlah suatu model untuk disimulasikan
pada komputer, dan dalam perkembangannya yang lebih lanjut dikenal berbagai
sistem kecerdasan buatan yang salah satunya adalah jaringan saraf tiruan.
Dibandingkan dengan bidang ilmu yang lain, jaringan saraf tiruan relatif masih
baru, namun sepertinya belum banyak masyarakat mengetahui mengenai teknologi
jaringan saraf tiruan.
1.2 Batasan Masalah
Pada penulisan ini kami akan membahas mengenai teknologi
jaringan saraf tiruan mulai dari sejarah, pengertian konsep, penggunaan
perangkat lunak pendukung seperti Matlab dan Scilab serta membahas penerapan
berbagai teknologi yang menggunakan konsep jaringan saraf tiruan.
1.3 Tujuan Penulisan
Tujuan penulisan mengenai jaringan saraf tiruan adalah untuk
menambah media pemahaman tentang teknologi jaringan saraf tiruan. Mengingat
belum banyaknya sumber-sumber yang mengangkat tema konsep tersebut. Hal ini
menyebabkan belum banyaknya masyarakat mengetahui tentang konsep jaringan saraf
tiruan. Dengan semakin banyak sumber referensi pembelajaran serta masyarakat
yang mengetahui tentang jaringan saraf tiruan diharapkan dapat membuat
teknologi tersebut lebih berkembang.
1.4 Metode Penelitian
Metode penelitian yang kami gunakan adalah metode deskriptif dan
pengumpulan data melalui berbagai sumber buku dan website internet.
Bab 2
ARTIFICIAL
NEURAL NETWORK
2.1 Sejarah
Jaringan Syaraf Tiruan sederhana pertama kali diperkenalkan oleh
McCulloch dan Pitts pada 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 thresold. Tahun 1958, Rosenbaltt
memperkenalkan dan mulai mengembangkan model jaringan yang disebut perceptron.
Metode pelatihan yang diperkenalkan untuk mengoptimalkan hasil iterasinya.
(McCulloch & Pitts, penemu pertama Neural Network)
Selanjutnya, pada tahun 1960, Widrow dan Hoff mengembangkan
perceptron dengan memperkenalkan aturan pelatihan jaringan, yang dikenal
sebagai aturan delta, atau sering disebut juga kuadrat rata-rata terkecil.
Aturan ini akan mengubah bobot perceptron apabila keluaran yang dihasilkan
tidak sesuai dengan target yang diinginkan. Apa yang dilakukan peneliti
terdahulu hanya menggunakan jaringan dengan layer tunggal (single layer).
Kemudian pada tahun 1986, Rumelhart mengembangkan perceptron menjadi
backpropagation, yang memungkinkan jaringan diproses melalui beberapa layer.
Selain itu, beberapa model jaringan syaraf tiruan lain juga dikembangkan oleh
Kohonen (1972), Hopfield (1982), dan lain-lain.
1943 : Waffen McCulloch dan Walter Pitts Merancang model formal
yang pertama kali sebagai perhitungan dasar neuron pada jaringan syaraf
1949 : Donald O. Hebb Memperkenalkan teori yang menjelaskan
mengenai pembelajaran yang dilakukan oleh neuron yang kini dikenal dengan
konsep Hebbian Learning
1954 : Farley dan Clark Mensetup model-model untuk relasi
adaptif stimulus-respon dalam jaringan random.
1958 : Rosenblatt Mengembangkan konsep dasar tentang perceptron
untuk klasifikasi pola
1960 : Widrow dan Hoff Mengembangkan ADALINE untuk kendali
adaptif dan pencocokan pola yang dilatih dengan aturan pembelajaran Least Mean
Square
1969 : Minsky dan Papert Mengemukakan keterbatasan yang dimiliki
perceptron, hanya mampu memproses 14 dari 16 fungsi logika, terutama mereka
tidak dapat memproses fungsi exclusive-OR
1974 : Werbos Memperkenalkan algoritma backpropagation untuk
melatih perceptron dengan banyak lapisan
1975 : Little dan Shaw Menggambarkan jaringan syaraf menggunakan
model probalistik
1982 : Kohonen Mengembangkan metode pembelajaran jaringan syaraf
yang tidak terawasi (unsupervised learning) untuk pemetaan
1982 : Grosberg Mengembangkan teori jaringan yang terinspirasi
oleh perkembangan psikologi. Bersama Carpenter mereka mengenalkan sejumlah
arsitektur jaringan, Adaptive Resonance Theory 1 dan 2
1982 : Hopfield Mengembangkan jaringan syaraf recurrent yang
dapat digunakan untuk menyimpan informasi dan optimasi
1985 : Algoritma pembelajaran dengan menggunakan mesin Boltzmann
yang menggunakan model jaringan syaraf probabilistik mulai dikembangkan
1987 : Kosko Mengembangkan jaringan Adaptive Bidirectional
Associative Memory (BAM)
Jika dikaitkan dengan sejarah kecerdasan buatan, berikut ini
tahap-tahap sejarah perkembangannya :
Era Komputer Elektronik (1941) Ditemukannya pertama kali alat
penyim-panan dan pemprosesan informasi yang disebut komputer elektronik.
Penemuan ini menjadi dasar pengembangan program yang mengarah ke
KB.
B. Masa Persiapan KB (1943 – 1956) Tahun 1943, Warren McCulloch
dan Walter Pitts mengemukakan tiga hal, yaitu :
a. pengetahuan fisiologi dasar dan fungsi sel syaraf dalam otak.
b. analisis formal tentang logika proposisi (propositional
logic).
c.teori komputasi Turing.
Tahun 1950, Norbert Wiener membuat penelitian mengenai
prinsip-prinsip teori feedback. Contoh yang terkenal adalah thermostat.
Penemuan ini juga merupakan awal dari perkembangan KB. Tahun 1956, John
McCarthy meyakinkan Minsky, Claude Shannon dan Nathaniel Rochester untuk
membantunya melakukan penelitian dalam bidang Automata, Jaringan Syaraf dan
pembelajaran intelijensia. Mereka kerjakan projek ini selama dua tahun di
Dartmouth. Hasilnya adalah program yang mampu berpikir non-numerik dan
menyelesaikan masalah pemikiran yang dinamakan Principia Mathematica. Hal
menjadikan McCarthy disebut sebagai ”Bapak Kecerdasan Buatan”.
Awal Perkembangan Kecerdasan Buatan (1956 – 1969) diawali dengan
kesuksesan Newell dan Simon dengan sebuah program yang disebut ”General Prbolem
Solver”. Program ini dirancang untuk memulai penyelesaian masalah secara
manusiawi. tahun 1958, McCarthy mendefenisikan bahasa pemrograman tingkat
tinggi, yaitu LISP, yang sekarang mendominasi pembuatan program-program kecerdasan
buatan. McCarthy membuat program yang dinamakan programs with Common Sense. Di
dalam program tersebut, dibuat rancangan untuk menggunakan pengetahu-an dalam
mencari solusi. Tahun 1959, Nathaniel Rochester dari IBM dan
mahasiswa-mahasiswanya mengeluarkan program, kecerdasan buatan, yaitu geometry
Theorm Prover. Program ini dapat membuktikan suatu teorema menggunakan
axioma-axioma yang ada. Tahun 1963, program yang dibuat James Slagle mampu
menyelesaikan masalah integral untuk mata kuliah kalkulus. Tahun 1968, program
analogi buatan Tom Evan menyelesaikan masalah analogi geometris yang ada pada
tes IQ.
Sistem Berbasis Pengetahuan (1969 – 1979) Pengetahuan adalah
kekuatan pendukungKecerdasan Buatan( KB). Hal ini dibuktikan dengan program
yang dibuat oleh Ed Feigenbaum, Bruce Buchanan dan Joshua Lederberg yang
membuat program untuk memecahkan masalah struktur molekul dari informasi yang
didapatkan dari spectometer massa. Program ini dinamakan Dendral Programs yang
berfokus pada segi pengetahuan kimia. Dari segi diagnosa medis juga sudah ada
yang menemukannya, yaitu Saul Amarel dalam proyek Computer in Biomedicine.
Proyek ini diawali dengan keinginan untuk mendapatkan diagnosa penyakit
berdasarkan pengetahuan yang ada pada mekanisme penyebab proses penyakit.
Kecerdasan buatan(KB) menjadi sebuah industri (1980 – 1988)
Industrialisasi KB diawali dengan ditemukannya ”sistem pakar” (expert system)
yang dinamakan R1 yang mampu mengonfigurasi sistem-sistem komputer baru.
Program tersebut mulai dioperasikan di Digital Equipment Corporation (DEC),
McDermot tahun 1982. Tahun 1986, program tersebut mampu menghemat biaya US$ 40
juta /tahun. Tahun 1988, Kelompok KB di DEC menjalankan 40 sistem pakar.
Booming KB ini juga melibatkan perusahaan-perusahaan besar seperti Carnegie
Group, Inference, Intellicorp dan Technoledge yang menawarkan software tools
untuk membangun sistem pakar. Perusahaan Hardware seperti LISP Machines Inc,
Texas Instruments, Symbolics dan Xerox juga turut berperan dalam membangun
workstation yang dioptimasi untuk pembangunan LISP.
Era Kembalinya Jaringan Syaraf Tiruan (1986 – Sekarang) Para
ahli fisika seperti Hopfield (1982) menggunakan teknik-teknik mekanika
statistika untuk menganalisa sifat-sifat penyimpanan dan optimasi pada jaringan
syaraf. Para ahli psikologi, David Rumelhart dan Geoff Hinton, melanjutkan
penelitian mengenai model jaringan syaraf pada memori. Pada tahun 1985-an,
sedikitnya empat kelompok riset menemukan kembali algoritma belajar propagasi
balik (Back-Propagation learning). Algoritma ini berhasil diimplementasikan ke
dalam ilmu komputer dan psikologi.
2.2 Pengertian Konsep Artificial Neural Network
Ide dasar Neural Network dimulai dari otak manusia, dimana otak
memuat sekitar 1011 neuron. Neuron ini berfungsi memproses setiap informasi
yang masuk. Satu neuron memiliki 1 akson, dan minimal 1 dendrit. Setiap sel
syaraf terhubung dengan syaraf lain, jumlahnya mencapai sekitar 104 sinapsis.
Masing-masing sel itu saling berinteraksi satu sama lain yang menghasilkan
kemampuan tertentu pada kerja otak manusia.
(Struktur Neuron pada otak manusia)Dari gambar di atas, bisa
dilihat ada beberapa bagian dari otak manusia, yaitu:
§ Dendrit (Dendrites)
berfungsi untuk mengirimkan impuls yang diterima ke badan sel syaraf.
§ Akson (Axon) berfungsi
untuk mengirimkan impuls dari badan sel ke jaringan lain Sinapsis berfungsi
sebagai unit fungsional di antara dua sel syaraf.
Proses yang terjadi pada otak manusia adalah:
Sebuah neuron menerima impuls dari neuron lain melalui dendrit
dan mengirimkan sinyal yang dihasilkan oleh badan sel melalui akson. Akson dari
sel syaraf ini bercabang-cabang dan berhubungan dengan dendrit dari sel syaraf
lain dengan cara mengirimkan impuls melalui sinapsis. Sinapsis adalah unit
fungsional antara 2 buah sel syaraf, misal A dan B, dimana yang satu adalah
serabut akson dari neuron A dan satunya lagi adalah dendrit dari neuron B.
Kekuatan sinapsis bisa menurun/meningkat tergantung seberapa besar tingkat
propagasi (penyiaran) sinyal yang diterimanya. Impuls-impuls sinyal (informasi)
akan diterima oleh neuron lain jika memenuhi batasan tertentu, yang sering
disebut dengan nilai ambang (threshold).
Tidak ada dua otak manusia yang sama, setiap otak selalu
berbeda. Beda dalam ketajaman, ukuran dan pengorganisasiannya. Salah satu cara
untuk memahami bagaimana otak bekerja adalah dengan mengumpulkan informasi dari
sebanyak mungkin scan otak manusia dan memetakannya. Hal tersebut merupakan
upaya untuk menemukan cara kerja rata-rata otak manusia itu. Peta otak manusia
diharapkan dapat menjelaskan misteri mengenai bagaimana otak mengendalikan
setiap tindak tanduk manusia, mulai dari penggunaan bahasa hingga gerakan.
Walaupun demikian kepastian cara kerja otak manusia masih
merupakan suatu misteri. Meski beberapa aspek dari prosesor yang menakjubkan
ini telah diketahui tetapi itu tidaklah banyak. Beberapa aspek-aspek tersebut,
yaitu :
§ Tiap bagian pada otak
manusia memiliki alamat, dalam bentuk formula kimia, dan sistem saraf manusia
berusaha untuk mendapatkan alamat yang cocok untuk setiap akson (saraf
penghubung) yang dibentuk.
§ Melalui pembelajaran,
pengalaman dan interaksi antara sistem maka struktur dari otak itu sendiri akan
mengatur fungsi-fungsi dari setiap bagiannya.
§ Axon-axon pada daerah
yang berdekatan akan berkembang dan mempunyai bentuk fisik mirip, sehingga
terkelompok dengan arsitektur tertentu pada otak.
§ Axon berdasarkan
arsitekturnya bertumbuh dalam urutan waktu, dan terhubung pada struktur otak
yang berkembang dengan urutan waktu yang sama.
Berdasarkan keempat aspek tersebut di atas dapat ditarik suatu
kesimpulan bahwa otak tidak seluruhnya terbentuk oleh proses genetis. Terdapat
proses lain yang ikut membentuk fungsi dari bagian-bagian otak, yang pada
akhirnya menentukan bagaimana suatu informasi diproses oleh otak.
Elemen yang paling mendasar dari jaringan saraf adalah sel
saraf. Sel-sel saraf inilah membentuk bagian kesadaran manusia yang meliputi
beberapa kemampuan umum. Pada dasarnya sel saraf biologi menerima masukan dari
sumber yang lain dan mengkombinasikannya dengan beberapa cara, melaksanakan
suatu operasi yang non-linear untuk mendapatkan hasil dan kemudian mengeluarkan
hasil akhir tersebut. Dalam tubuh manusia terdapat banyak variasi tipe dasar
sel saraf, sehingga proses berpikir manusia menjadi sulit untuk direplikasi
secara elektrik. Sekalipun demikian, semua sel saraf alami mempunyai empat
komponen dasar yang sama. Keempat komponen dasar ini diketahui berdasarkan nama
biologinya yaitu, dendrit, soma, akson, dan sinapsis. Dendrit merupakan suatu
perluasan dari soma yang menyerupai rambut dan bertindak sebagai saluran
masukan. Saluran masukan ini menerima masukan dari sel saraf lainnya melalui
sinapsis. Soma dalam hal ini kemudian memproses nilai masukan menjadi sebuah
output yang kemudian dikirim ke sel saraf lainnya melalui akson dan sinapsis.
Penelitian terbaru memberikan bukti lebih lanjut bahwa sel saraf
biologi mempunyai struktur yang lebih kompleks dan lebih canggih daripada sel
saraf buatan yang kemudian dibentuk menjadi jaringan saraf buatan yang ada
sekarang ini. Ilmu biologi menyediakan suatu pemahaman yang lebih baik tentang
sel saraf sehingga memberikan keuntungan kepada para perancang jaringan untuk
dapat terus meningkatkan sistem jaringan saraf buatan yang ada berdasarkan pada
pemahaman terhadap otak biologi. Sel saraf-sel saraf ini terhubung satu dengan
yang lainnya melalui sinapsis. Sel saraf dapat menerima rangsangan berupa
sinyal elektrokimiawi dari sel saraf-sel saraf yang lain. Berdasarkan
rangsangan tersebut, sel saraf akan mengirimkan sinyal atau tidak berdasarkan
kondisi tertentu. Konsep dasar semacam inilah yang ingin dicoba para ahli dalam
menciptakan sel tiruan.
Karakteristik dari Artificial Neural Network atau ANN dilihat
dari pola hubungan antar neuron, metode penentuan bobot dari tiap koneksi, dan
fungsi aktivasinya. Gambar di atas menjelaskan struktur ANN secara mendasar,
yang dalam kenyataannya tidak hanya sederhana seperti itu.
§ Input, berfungsi seperti
dendrite
§ Output, berfungsi seperti
akson
§ Fungsi, aktivasi,
berfungsi seperti sinapsis
Neural network dibangun dari banyak node/unit yang dihubungkan
oleh link secara langsung. Link dari unit yang satu ke unit yang lainnya
digunakan untuk melakukan propagasi aktivasi dari unit pertama ke unit
selanjutnya. Setiap link memiliki bobot numerik. Bobot ini menentukan kekuatan
serta penanda dari sebuah konektivitas.
Proses pada ANN dimulai dari input yang diterima oleh neuron
beserta dengan nilai bobot dari tiap-tiap input yang ada. Setelah masuk ke
dalam neuron, nilai input yang ada akan dijumlahkan oleh suatu fungsi
perambatan (summing function), yang bisa dilihat seperti pada di gambar dengan
lambang sigma (∑). Hasil penjumlahan akan diproses oleh fungsi aktivasi setiap
neuron, disini akan dibandingkan hasil penjumlahan dengan threshold (nilai ambang)
tertentu. Jika nilai melebihi threshold, maka aktivasi neuron akan dibatalkan,
sebaliknya, jika masih dibawah nilai threshold, neuron akan diaktifkan. Setelah
aktif, neuron akan mengirimkan nilai output melalui bobot-bobot outputnya ke
semua neuron yang berhubungan dengannya. Proses ini akan terus berulang pada
input-input selanjutnya.
ANN terdiri dari banyak neuron di dalamnya. Neuron-neuron ini
akan dikelompokkan ke dalam beberapa layer. Neuron yang terdapat pada tiap
layer dihubungkan dengan neuron pada layer lainnya. Hal ini tentunya tidak
berlaku pada layer input dan output, tapi hanya layer yang berada di antaranya.
Informasi yang diterima di layer input dilanjutkan ke layer-layer dalam ANN
secara satu persatu hingga mencapai layer terakhir/layer output. Layer yang
terletak di antara input dan output disebut sebagai hidden layer. Namun, tidak
semua ANN memiliki hidden layer, ada juga yang hanya terdapat layer input dan
output saja.
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 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 (Neural Network) 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 (Neural Network) untuk
menghasilkan efisiensi yang maksimal. Jaringan Syaraf Tiruan (Neural Network)
tidak memberikan suatu keajiban tetapi jika digunakan secara tepat akan
menghasilkan sasuatu hasil yang luarbiasa. Berikut ini beberapa istilah jaringan
saraf tiruan yang sering ditemui:
§ Neuron atau Node atau
Unit: Sel saraf tiruan yang merupakan elemen pengolahan jaringan saraf tiruan.
Setiap neuron menerima data input, memroses input tersebut (melakukan sejumlah
perkalian dengan melibatkan summation function dan fungsi aktivasi), dan
mengirim-kan hasilnya berupa sebuah output.
§ Jaringan: Kumpulan neuron
yang saling terhubung dan membentuk lapisan.
§ Input atau Masukan:
Berkorespon dengan sebuah atribut tunggal dari sebuah pola atau data lain dari
dunia luar. Sinyal-sinyal input ini kemudian diteruskan ke lapisan selanjutnya.
§ Output atau Keluaran:
Solusi atau hasil pemahaman jaringan terhadap data input.Tujuan pembangunan
jaringan saraf tiruan sendiri adalah untuk mengetahui nilai output.
§ Lapisan Tersembunyi
(hidden layer): Lapisan yang tidak secara langsung berinteraksidengan dunia
luar. Lapisan inimrmemperluas kemampuan jaringan saraf tiruan dalam menghadapi
masalah-masalh yang kompleks.
§ Bobot: Bobot dalam
jaringan saraf tiruan merupakan nilai matematis dari koneksi, yangmentransfer
data dari satu lapisan ke lapisan lainnya. Bobot ini digunakan untuk mengatur
jaringan sehingga jaringan saraf tiruan bias menghasilkan output yang
diinginkan sekaligus bertujuan membuat jaringan tersebut belajar.
§ Summation Function:
Fungsi yang digunakan untuk mencari rata-rata bobot dari semuaelemen input.
Yang sederhana adalah dengan mengalikan setiap nilai input (Xj) denganbobotnya
(Wij) dan menjumlahkannya (disebut penjumlahan berbobot, atau Si).
§ Fungsi Aktivasi atau Fungsi
Tranfer: Fungsi yang menggambarkan hubungan antara tingkat aktivasi internal
(summation function) yang mungkin berbentuk linier atau nonlinier. Beberapa
fungsi aktivasi jaringan saraf tiruan diantaranya: hard limit, purelin,dan
sigmoid. Yang popular digunakan adalah fungsi sigmoid yang memiliki beberapa
varian: sigmoid logaritma, sigmoid biner, sigmoid bipolar, dan sigmoid tangent.
§ Paradigma Pembelajaran:
Cara berlangsungnya pembelajaran atau pelatihan jaringan saraf tiruan, apakah
terawasi (supervisod learning), tidak terawasi (unsupervised learning), atau
merupakan gabungan keduanya (hybrid).
Pada pembelajaran terawasi, kumpulan input yang digunakan,
output-outputnya telah diketahui.Perbedaan antara output-output actual dengan
output-output yang diinginkan digunakan untuk mengoreksi bobot jaringan saraf
tiruan agar jaringan saraf tiruan dapat menghasilkan jawaban sedekat (semirip)
mungkin dengan jawaban yang benar yang telah diketahui oleh jaringan saraf
tiruan. Pada pembelajaran tak terawasi, atau pembelajaran tanpa guru, jaringan
saraf tiruan mengorganisasi dirinya sendiri untuk membentuk vector-vektor input
yang serupa, tanpa menggunakan data atau contoh-contoh pelatihan. Struktur
menggunakana dasar data atau korelasi antara pola-pola data yang diekplorasi.
Paradigma pembelajaran ini mengorganisasipola-pola ke dalam kategori-kategori
berdasarkan korelasi yang ada.
Aturan kerja secara umum dari teknik/ algoritma jaringan saraf
tiruan. Ada 4 tipe dasar aturan pembelajaran, yaitu aturan pengoreksian kesalahan
(error correcting), aturan Boltzmann, aturan Hebbian, dan aturan
pembelajarankompetitif (competitive learning).
§ Aturan Pengoreksian Error
Prinsip dasar dari aturan pembelajaran pengoreksian error adalah memodifikasi
bobot-bobot koneksi dengan menggunakan sinyal kesalahan (output target – output
actual)untuk mengurangi besarnya kesalahan secara bertahap.
§ Aturan Pembelajaran
Boltzmann Mesin Bolztmann merupakan jaringan saraf tiruan balik yang simetris,
terdiri dari nit-unit biner (+1 dan -1, masing – masing untuk on dan off).
Dengan kesimetrisannya, bobot pada koneksi dari unit I ke unit j sama dengan
bobot koneksi dari unit j ke unit I (Wij = Wji). Setiap neuron pada
§ Aturan Hebbian Kekuatan
koneksi antara 2 buah neuron akan meningkat jika kedua neuron memiliki tingkah
laku yang sama (keduanya memiliki aktivasi positif atau keduanya memiliki
aktivasi negative).
§ Aturan Pembelajaran
Kompetitif Unit –unit output pada aturan pembelajaran kompetititf ini hanya
harus saling bersaing untuk beraktivasi. Jadi hanya satu unit output yang aktif
pada satu waktu. Fenomena ini dikenal sebagai winner-take-all. Bobot-bobotnya
diatur setelah satu node pemenang terpilih.
Bidang-bidang penelitian yang memanfaatkan jaringan saraf tiruan
diantaranya:
Aeorospace:Autopilot pesawat terbang, simulasi jalur
penerbangan, system kendali pesawat, perbaikan autopilot dan simulasi komponen
pesawat.Otomotif:Sistem kendali otomatis mobil.Keuangandan
Perbankan:Pendeteksian uang palsu, evaluator aplikasi kredit,
pengidentifikasian pola-pola data pasar saham.Pertahanan(Militer):Pengendali
senjata, pendeteksi bom, penelusuran target, pembedaan objek, pengendali
sensor, sonar, radar, dan pengolahan sinyal citra yang meliputi kompresi data,
ektrasksi bagian istimewa dan penghilangan derau, pengenalan sinyal atau
citra.Elektronik:Pembuatan perangkat keras yang bias mengimplementasikan
jaringan saraf tiruan secara efisien (pendesainan VLSI), machine vision,
pengontrol gerakan dan penglihatan robot, sintesis suara.Broadcast:Pencarian
klip berita melalui pengenalan wajah.
Suatu jaringan saraf tiruan memproses sejumlah besar informasi
secara paralel dan terdistribusi, hal ini terinspirasi oleh model kerja otak
biologis. Beberapa definisi tentang jaringan saraf tiruan adalah sebagai
berikut di bawah ini. Hecht-Nielsend (1988) mendefinisikan sistem saraf buatan
sebagai berikut: “Suatu neural network (NN), adalah suatu struktur pemroses
informasi yang terdistribusi dan bekerja secara paralel, yang terdiri atas
elemen pemroses (yang memiliki memori lokal dan beroperasi dengan informasi
lokal) yang diinterkoneksi bersama dengan alur sinyal searah yang disebut
koneksi. Setiap elemen pemroses memiliki koneksi keluaran tunggal yang
bercabang (fan out) ke sejumlah koneksi kolateral yang diinginkan (setiap
koneksi membawa sinyal yang sama dari keluaran elemen pemroses tersebut).
Keluaran dari elemen pemroses tersebut dapat merupakan sebarang jenis persamaan
matematis yang diinginkan. Seluruh proses yang berlangsung pada setiap elemen
pemroses harus benar-benar dilakukan secara lokal, yaitu keluaran hanya
bergantung pada nilai masukan pada saat itu yang diperoleh melalui koneksi dan
nilai yang tersimpan dalam memori lokal”. Menurut Haykin, S. (1994), Neural
Networks: A Comprehensive Foundation, NY, Macmillan, mendefinisikan jaringan
saraf sebagai berikut: “Sebuah jaringan saraf adalah sebuah prosesor yang
terdistribusi paralel dan mempuyai kecenderungan untuk menyimpan pengetahuan
yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk
digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu: 1. Pengetahuan
diperoleh oleh jaringan melalui suatu proses belajar. 2. Kekuatan hubungan
antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan
pengetahuan. Dan menurut Zurada, J.M. (1992), Introduction To Artificial Neural
Systems, Boston: PWS Publishing Company, mendefinisikan sebagai berikut:
“Sistem saraf tiruan atau jaringan saraf tiruan adalah sistem selular fisik
yang dapat memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan
dari pengalaman”. DARPA Neural Network Study (1988, AFCEA International Press,
p. 60) mendefinisikan jaringan syaraf buatan sebagai berikut : Sebuah jaringan
syaraf adalah sebuah sistem yang dibentuk dari sejumlah elemen pemroses
sederhana yang bekerja secara paralel dimana fungsinya ditentukan oleh stuktur
jaringan, kekuatan hubungan, dan pegolahan dilakukan pada komputasi elemen atau
nodes.
Jaringan syaraf tiruan menyelesaikan masalah melalui proses
belajar dari contoh-contoh pelatihan yang diberikan. Biasanya pada jaringan
syaraf tiruan diberikan sebuah himpunan pola pelatihan yang terdiri dari
sekumpulan contoh pola. Proses belajar jaringan syaraf tiruan berasal dari
serangkaian contoh-contoh pola yang diberikan.metode pelatihan yang sering
dipakai adalah metode belajar terbimbing. Selama proses belajar itu pola
masukan disajikan bersama-sama dengan pola keluaran yang diinginkan. Jaringan
akan menyesuaikan nilai bobotnya sebagai tanggapan atas pola masukan dan
sasaran yang disajikan tersebut. (Hermawan, 2006)
2.2.3.1 FAKTOR BOBOT
Bobot merupakan suatu nilai yang mendefinisikan tingkat atau
kepentingan hubungan antara suatu node dengan node yang lain. Semakin besar
bobot suatu hubungan menandakan semakin pentingnya hubungan kedua node
tersebut. Bobot merupakan suatu hubungan berupa bilangan real maupun integer,
tergantung dari jenis permasalahan dan model yang digunakan. Bobot-bobot
tersebut bisa ditentukan untuk berada didalam interval tertentu. selama proses
pelatihan, bobot tersebut dapat menyesuaikan dengan pola-pola input. Jaringan
dengan sendirinya akan memperbaiki diri terus-menerus karena adanya kemampuan
untuk belajar. Setiap ada suatu masalah baru, jaringan dapat belajar dari
masalah baru tersebut, yaitu dengan mengatur kembali nilai bobot untuk menyesuaikan
karakter nilai. (Puspaningrum, 2006)
2.2.3.2 FUNGSI AKTIVASI
Setiap neuron mempunyai keadaan internal yang disebut level
aktivasi atau level aktivitas yang merupakan fungsi input yang diterima. Secara
tipikal suatu neuron mengirimkan aktivitasnya kebeberapa neuron lain sebagai
sinyal. Yang perlu diperhatikan adalah bahwa neuron hanya dapat mengirimkan
satu sinyal sesaat, walaupun sinyal tersebut dapat dipancarkan ke beberapa
neuron yang lain. Ada beberapa pilihan fungsi aktivasi yang digunakan dalam
metode backpropagation, seperti fungsi sigmoid biner, dan sigmoid bipolar.
Karakteristik yang harus dimiliki fungsi fungsi aktivasi tersebut adalah
kontinue, diferensiabel, dan tidak menurun secara monoton. Fungsi aktivasi
diharapkan dapat mendekati nilai-nilai maksimum dan minimum secara baik.
Berikut ini adalah fungsi aktivasi yang sering digunakan yaitu: (Puspaningrum,
2006)
§ Fungsi Sigmoid Biner
Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan
menggunakan metodebackpropagation. Fungsi sigmoid biner memiliki nilai pada
range 0 sampai 1. Fungsi ini sering digunakan untuk jaringan syaraf yang
membutuhkan nilai output yang terletak pada interval 0 sampai 1.
§ Fungsi Sigmoid Bipolar
Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner,
hanya saja output dari fungsi ini memiliki range antara 1 sampai -1.
2.3 Arsitektur Artificial Neural Network
§ Lapisan input (Input
Layer)
Berfungsi sebagai penghubung jaringan ke dunia luar (sumber
data). Neuron – neuron ini tidak melakukan apapun pada data, hanya meneruskan
data ini kelapisan berikutnya.
§ Lapisan Tersembunyi
(Hidden Layer)
Suatu jaringan dapat memiliki lebih dari satu hidden layer atau
bahkan tidak bisa punya sama sekali. Jika jaringan memiliki beberapa lapisan
tersembunyi, maka lapisan tersembunyi paling bawah yang menerima dari input
dari input layer. Besar nilai masukan (net) neuron ke-J pada lapisan
tersembunyi ini tergantung pada akumulasi jumlah perkalian antar nilai bobot
(W, adalah kekuatan hubungan antar neuron, dengan nilai keluaran U) neuron ke-I
pada lapisan sebelumnya (neuron input) ditambahkan dengan nilai bias (W, neuron
ke-J atau
Nilai bias ini merupakan nilai konstan yang dimiliki setiap
neuron (kecuali neuron pada lapisan input) yang digunakan untuk memperbaiki
keluaran jaringan agar dapat menyamai atau mendekati nilai keluaran yang
diinginkan. Bobot W(ji) bernilai 0 (nol) menunjukkan bahwa antara neuron ke-J
dan ke-I tidak berhubungan nilai keluaran neuron pada lapisan tersembunyi ini
merupakan fungsi dari nilai masukannya pada eksperimen ini digunakan F C
net(ji) fungsi signoid
§ Output Layer
Prinsip kerja pada lapisan ini sama dengan prinsip kerja pada
hidden layer dan ini juga digunakan fungsi sigmoid. Tetapi keluaran dari
lapisan ini sudah dianggap dari keluaran proses.
Selain itu, jaringan syaraf tiruan dapat dapat dibedakan dalam
beberapa kategori sesuai sudut pandang yang digunakan. Berdasarkan arsitektur
atau pola koneksi yang digunakan dalam pada jaringan syaraf tiruan, maka
jaringan syaraf tiruan tersebut dapat dibedakan dalam 2 (dua) kategori. Yaitu
Struktur Feedforward dan Struktur Recurrent (Feedback) yang dapat diuraikan
sebagai berikut.
Struktur Feedforward Sebuah jaringan yang sederhana mempunyai
struktur feedforward dimana signal bergerak dari input kemudian melewati
lapisan tersembunyi dan akhirnya mencapai unit output (mempunyai struktur
perilaku yang stabil). Tipe jaringan feedforward mempunyai sel syaraf yang
tersusun dari beberapa lapisan. Lapisan input bukan merupakan sel syaraf.
Lapisan ini hanya memberi pelayanan dengan mengenalkan suatu nilai dari suatu
variabel. Lapisan tersembunyi dan lapisan output sel syaraf terhubung satu sama
lain dengan lapisan sebelumnya. Kemungkinan yang timbul adalah adanya hubungan
dengan beberapa unit dari lapisan sebelumnya atau terhubung semuanya (lebih
baik).
Gambar Jaringan Syaraf Tiruan Feedforward
Yang termasuk dalam struktur feedforward :
§ Single-layer perceptron
§ Multilayer perceptron
§ Radial-basis function
networks
§ Higher-order networks
§ Polynomial learning
networks
Jika suatu jaringan berulang (mempunyai koneksi kembali dari
output ke input) akan menimbulkan ketidakstabilan dan akan menghasilkan
dinamika yang sangat kompleks. Jaringan yang berulang sangat menarik untuk
diteliti dalam Jaringan Syaraf Tiruan, namun sejauh ini structure feedforward
sangat berguna untuk memecahkan masalah. Yang termasuk dalam stuktur recurrent
(feedback) : Competitive networks Self-organizing maps Hopfield networks
Adaptive-resonanse theory models.
Gambar Jaringan Syaraf Tiruan FeedBack
Ketika sebuah Jaringan Syaraf digunakan. Input dari nilai suatu
variabel ditempatkan dalam suatu input unit dan kemudian unit lapisan
tersembunyi dan lapisan output menjalankannya. Setiap lapisan tersebut
menghitung nilai aktivasi dengan mengambil jumlah bobot output dari setiap unit
dari lapisan sebelumnya dan kemudian dikurangi dengan nilai ambang. Nilai aktifasi
kemudian melalui fungsi aktifasi untuk menghasilakan output dari sel syaraf.
Ketika semua unit pada Jaringan Syaraf telah dijalankan maka aksi dari lapisan
output merupakan output dari seluruh jaringan syaraf.
2.4 Jaringan Syaraf Tiruan Back-Propagation
Jaringan Syaraf Tiruan Back-Propagation merupakan salah satu
model jaringan yang populer pada jaringan syaraf tiruan. Model jaringan ini
banyak digunakan untuk diaplikasikan pada penyelesaian suatu masalah berkaitan
dengan identifikasi, prediksi, pengenalan pola dan sebagainya. Pada latihan
yang berulang–ulang, algoritma ini akan menghasilkan unjuk kerja yang lebih
baik. Hal ini berarti bahwa “bobot interkoneksi” JST semakin mendekati bobot
yang seharusnya.(Penelitian Jaringan Syaraf Tiruan,1993). Kelebihan lain yang
dimiliki JST ini adalah kemampuannya untuk belajar (bersifat adaptif) dan kebal
terhadap adanya kesalahan (Fault Tolerance) dengan kelebihan tersebut JST dapat
mewujudkan sistem yang tahan akan kerusakan (robust) dan konsisten bekerja
dengan baik.
Metode Backpropagation ini pertama kali diperkenalkan oleh Paul
Werbos pada tahun 1974, kemudian dikemukakan kembali oleh David Parker di tahun
1982 dan kemudian dipopulerkan oleh Rumelhart dan McCelland pada tahun 1986.
Pada Algoritma BackPropagation ini, arsitektur jaringan menggunakan jaringan
banyak lapis. Secara garis besar proses pelatihan pada jaringan saraf tiruan
dikenal beberapa tipe pelatihan, yaitu Supervised Training, Unsupervised
Training, Fixed-Weight Nets.
Metode pelatihan BackPropagation atau dikenal dengan Generalize
Delta Rule (GDR) ini merupakan supervised training dimana untuk tiap pola input
terdapat pasangan target output untuk masing-masing pola input. Sebenarnya
adalah metode gradient descent untuk meminimasi total square error pada
keluaran hasil perhitungan jaringan. Ide dasarnya dapat dideskripsikan dengan
pola hubungan yang sederhana yaitu : jika output memberikan hasil yang tidak
sesuai dengan target yang tidak diinginkan, maka pembobot akan dikoreksi agar
errornya dapat diperkecil dan selanjutnya respon jaringan diharapkan akan lebih
mendekati harga yang sesuai. Pada umumnya tujuan jaringan syaraf tiruan
melakukan proses pelatihan adalah untuk mendapatkan balancing antara kemampuan
jaringan untuk menanggapi secara benar pola-pola input pada saat pelatihan
(dapat dikatakan kemampuan mengingat) dan kemampuan untuk memberikan penilaian
yang layak dari suatu pola masukkan lain yang serupa. Sehingga dari proses
pelatihan tersebut akan dibentuk suatu harga pembobot yang akan digunakan
sebagai faktor penggali dari pola masukkan yang lain.
Pada metode ini, terdapat tiga tahapan dalam proses pelatihan,
yaitu: proses umpan maju dari pola input pelatihan, perhitungan dan propagasi
balik dari error yang terjadi dan penyesuaian nilai bobot.
Pada tahap pelatihan ini merupakan langkah bagaimana suatu
jaringan syaraf itu berlatih, yaitu: proses umpan maju dari pola input
pelatihan, perhitungan, dan propagasi balik dari error yang terjadi dari
penyesuaian nilai pembobot.
Pada tahap pelatihan ini merupakan langkah bagaimana suatu
jaringan syaraf itu berlatih, yaitu dengan cara melakukan perubahan bobot
sambungan, baik bobot sambungan antar input layer dan hidden layer maupun
antara hidden layer dan output layer, bila terdapat lebih dari satu hidden
layer maka juga terdapat pembobot antar hidden layer itu sendiri. Sedangkan
penyelesaian masalah baru akan dilakukan jika proses pelatihan tersebut
selesai, fase tersebut adalah proses pemakaian/testing tentunya dengan
menggunakan pembobot yang telah dihasilkan dari proses pelatihan yang telah
dilakukan.
2.4.1 Fase pelatihan umpan mundur (backpropagation)
Jaringan BackPropagation terdiri atas beberapa layer yang
masing-masing unit pada satu layer terhubung penuh dengan masing-masing unit
pada lapisan diatasnya atau dibawahnya, kecuali pada bias hanya terkoneksi
penuh dengan unit layer diatasnya yang ditunjukkan pada gambar 7.
Pada gambar 7 tersebut menunjukkan jaringan yang memiliki satu
hidden layer dengan input layer X, hidden layer Z dan output layer Y, serta
pemberian nilai bias, yaitu suatu masukkan dengan nilai tetap sama yaitu 1.
Algoritma belajar BackPropagation terdiri dari dua proses, feed
foward dan back propagation dari errornya. Selama feed foward masing-masing
unit masukkan menerima (X) atau sinyal masukkan dari luar, kemudian sinyal
tersebut disebarkan masing-masing unit pada hidden layer (Z), masing-masing
hidden unit menghitung sesuai dengan fungsi aktifasinya. Dan kemudian mengirim
sinyal itu kemasing-masing unit pada output layer akan menghitung sesuai dengan
fungsi aktifasinya juga, yang akan menghasilkan sinyal keluaran sebagai respon
jaringan dengan adanya pemberian pola input tersebut.
Pada propagasi baliknya, masing-masing output unit dibandingkan
dengan hasil perhitungan aktivasi Y dengan nilai target t untuk mendapatkan
error, berdasarkan error inilah akan dihitung nilai δk, selanjutnya harga error
pada output unit akan disebarkan mundur ke masing-masing uni pada hidden layer.
Selanjutnya error tersebut digunakan untuk memperbaiki faktor pembobot antara
unit output dengan unit hidden demikian selanjutnya dicari error dari keluaran
hidden untuk memperbaiki faktor pembobot antara unit input. Untuk jelasnya
dapat dijelaskan sebagai berikut :
§ Langkah 1 : Pemberian
inisialisasi faktor penimbang (diberi nilai kecil secara random)
§ Langkah 2 : Ulangi step 2
hingga 9 hingga kondisi stop terpenuhi
§ Langkah 3 : Untuk
masing-masing pasangan pelatihan lakukan langkah 3 hingga 8 Feedforward
§ Langkah 3 : Masing-masing
unit input (Xi, i =1,…n) menerima sinal input Xi dan sinyal tersebut disebarkan
ke unit bagian atas lapisan tersembunyi (hidden units)
§ Langkah 4 : Masing –
masing hidden menjumlahkan fakor penimbang .
2.4.2 Fase Pemakaian Neural Network
Pada fase pelatihan akan didapatkan harga pembobot pada
masing-asing layer. Pada fase pemakaian ini, pembobot yang dipakai adalah
pembobot yang dibentuk pada saat pelatihan saat mencapai harga terbaik tentunya
dengan pola jaringan yang sama seperti pada fase pelatihan, jika pola jaringan
tidak sama, maka dapat dipastikan jaringan akan memberikan output yang tidak
diinginkan. Algoritma yang dipakai pada fase ini hanya menggunakan bagian
feedfoward dari pelatihan. Secara lengkap dapat dijelaskan sebagai berikut :
§ Langkah 0 : Pemberian
inisialisasi faktor penimbang (diambilkan dari pembobot yang dibentuk pada saat
pelatihan)
§ Langkah 1 : untuk
masing-masing pola input, dilakukan langkah 2- 4.
§ Langkah 2 : masing –
masing unit input (Xi, i =1 ,….n) menerima sinyal input Xi dan sinyal tersebut
disebarkan ke unit bagian atas lapisan tersembunyi (unit hidden)
§ Langkah 3 : Masing-masing
hidden unit menjumlahkan faktor penimbang .
Bab 3
PERANGKAT
LUNAK PENDUKUNG ARTIFICIAL NEURAL NETWORK
3.1 Matlab
Matlab adalah singkatan dari MATrix LABoratory, merupakan bahasa
pemrograman yang dikembangkan oleh The Mathwork Inc. yang hadir dengan fungsi
dan karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada
lebih dahulu seperti Delphi, Basic maupun C++. Matlab merupakan bahasa
pemrograman level tinggi yang dikhususkan untuk kebutuhan komputasi teknis,
visualisasi dan pemrograman seperti komputasi matematik, analisis data,
pengembangan algoritma, simulasi dan pemodelan dan grafik-grafik perhitungan
Pada awalnya Matlab dibuat untuk memberikan kemudahan mengakses data matrik
pada proyek LINPACK dan EISPACK. Saat ini matlab memiliki ratusan fungsi yang
dapat digunakan sebagai problem solver baik permasalahan yang mudah maupun
masalah-masalah yang kompleks dari berbagai disiplin ilmu. Beberapa kelebihan
Matlab jika dibandingkan dengan program lain seperti Fortran, dan Basic adalah
:
§ Mudah dalam memanipulasi
struktur matriks dan perhitungan berbagai operasi matriks yang meliputi
penjumlahan, pengurangan, perkalian, invers dan fungsi matriks lainnya.
§ Menyediakan fasilitas
untuk memplot struktur gambar (kekuatan fasilitas grafik tiga dimensi yang
sangat memadai).
§ Script program yang dapat
diubah sesuai dengan keinginan user.
§ Jumlah routine-routine
powerful yang berlimpah dan terus berkembang.
§ Kemampuan interface
(misal dengan bahasa C, word dan mathematica).
§ Dilengkapi dengan
toolbox, simulink, stateflow dan sebagainya, serta mulai melimpahnya source
code di internet yang dibuat dalam matlab ( contoh toolbox misalnya : signal
processing, control system, neural networks dan sebagainya).
Penggunaan MATLAB meliputi bidang-bidang :
§ Matematika dan Komputasi
§ Pembentukan Algorithm
§ Akuisisi Data
§ Pemodelan, simulasi dan
Pembuatan Prototype
§ Analisis Data, Explorasi,
dan Visualisasi
§ Grafik Keilmuan dan
Bidang Rekayasa Lingkungan kerja.
Dalam lingkungan perguruan tinggi teknik, Matlab merupakan
perangkat standar untuk memperkenalkan dan mengembangkan penyajian materi
matematika, rekayasa dan keilmuan. Di industri, Matlab merupakan perangkat
pilihan untuk penelitian dengan produkifitasyang tinggi, pengembangan dan
analiasanya. Fitur – fitur Matlab sudah banyak dikembangkan, dan lebih kita
kenal dengan nama toolbox. Sangat penting bagi seorang pengguna Matlab untuk
mengetahui toolbox mana yang mendukung untuk learn dan apply technology yang
sedang dipelajarinya. Toolbox – toolbox ini merupakan kumpulan dari fungsi –
fungsi Matlab (MFiles) yang telah dikembangkan ke suatu lingkungan kerja Matlab
untuk memecahkan masalah dalam kelas particular. Area – area yang sudah bisa
dipecahkan dengan toolbox saat ini meliputi pengolahan sinyal, system kontrol,
neural networks, fuzzy logic, wavelets, dan lain – lain.
3.1.2 Lingkungan Kerja Matlab
§ Current Directory: Window
ini menampilkan isi dari direktori kerja saat menggunakan matlab. Kita dapat
mengganti direktori ini sesuai dengan tempat direktori kerja yang
diinginkan.Default dari alamat direktori berada dalam folder works tempat
program files Matlab berada.
§ Command History: Window
ini berfungsi untuk menyimpan perintah-perintah apa saja yang sebelumnya
dilakukan oleh pengguna terhadap matlab.
§ Command Window : Window
ini adalah window utama dari Matlab. Disini adalah tempat untuk menjalankan
fungsi, mendeklarasikan variable, menjalankan proses-proses , serta melihat isi
variable.
Matlab juga menyediakan fungsi help yang tidak berisikan
tutorial lengkap mengenai Matlab dan segala keunggulannya. User dapat
menjalankan fungsi ini dengan menekan tombol pada toolbar atau menulis perintah
‘helpwin’ pada command window. Matlab juga menyediakan fungsi demos yang
berisikan video tutorial matlab serta contoh-contoh program yang bisa dibuat
dengan matlab. Untuk menghentikan proses yang sedang berjalan pada matlab dapat
dilakukan dengan menekan tombol Ctrl-C. Sedangkan untuk keluar dari matlab
dapat dilakukan dengan menuliskan perintah exit atau quit pada comamnd window
atau dengan menekan menu exit pada bagian menu file dari menu bar.
3.1.3 Variabel Pada Matlab
Matlab hanya memiliki dua jenis tipe data yaitu Numeric dan
String. Dalam matlab setiap variabel akan disimpan dalam bentuk matrik. User
dapat langsung menuliskan variabel baru tanpa harus mendeklarasikannya terlebih
dahulu pada command window Penamaan variabel pada matlab bersifat caseSensitif
karena itu perlu diperhatikan penggunaan huruf besar dan kecil pada penamaan
variabel. Apabila terdapat variabel lama dengan nama yang sama maka matlab
secara otomatis akan me-replace variabel lama tersebut dengan variabel baru
yang dibuat user.
Matriks Dapat diasumsikan bahwa didalam matlab setiap data akan
disimpan dalam bentuk matriks. Dalam membuat suatu data matriks pada matlab,
setiap isi data harus dimulai dari kurung siku ‘[‘ dan diakhiri dengan kurung
siku tutup ‘]’. Untuk membuat variabel dengan data yang terdiri beberapa baris,
gunakan tanda ‘titik koma’ (;) untuk memisahkan data tiap barisnya. Matlab
menyediakan beberapa fungsi yang dapat kita gunakan untuk menghasilkan
bentuk-bentuk matriks yang diinginkan. Fungsi-fungsi tersebut antara lain:
§ zeros : untuk membuat
matriks yang semua datanya bernilai 0
§ ones : matriks yang semua
datanya bernilai 1
§ rand : matriks dengan
data random dengan menggunakan distribusi uniform
§ randn : matris dengan
data random dengan menggunakan distribusi normal
§ eye : untuk menghasilkan
matriks identitas
Fungsi merupakan kumpulan pernyataan/perintah yang dikemas dalam
satu nama dan nama tersebut dapat dipanggil beberapa kali di beberapa tempat
dalam program. Fungsi merupakan bagian program (sub program) yang berfungsi
mengerjakan suatu tugas tertentu. Fungsi merupakan konsep dasar dari paradigma
pemrograman terstruktur yang membagi-bagi tugas program ke dalam bagian-bagian
kecil (fungsi). Manfaat adanya fungsi:
§ Memudahkan dalam
mengembangkan program.
§ Menghemat ukuran program.
Aturan penamaan fungsi sama dengan aturan penamaan variabel.
Pemanggilan fungsi dapat dilakukan di beberapa tempat sesuai dengan kebutuhan.
Pemanggilan fungsi dilakukan dengan menuliskan nama_fungsi dan parameter-nya
(jika ada). Parameter merupakan variabel yang hanya dikenali dalam fungsi
diamana dia berada. Parameter berfungsi untuk memudahkan pertukaran
informasi/data antara fungsi dengan program yang memanggilnya. Penggunaan
parameter bersifat opsional, boleh ada boleh tidak sesuai dengan kebutuhan.
Jumlah parameter tidak terbatas disesuaikan dengan kebutuhan. Penulisan
parameter lebih dari satu dipisahkan dengan tanda koma. Terdapat dua jenis
parameter:
§ Parameter formal
merupakan variabel yang menjadi parameter dalam definisi fungsi dan berfungsi
menerima nilai dari parameter aktual. Parameter aktual merupakan variabel yang
menjadi parameter dalam pemanggilan fungsi dan berfungsi mengirim nilai ke
parameter formal.
§ Parameter formal dan
aktual saling berpasangan dan jumlahnya harus sama.
Nilai Balik (return value) merupakan nilai yang dikembalikan
oleh fungsi pada saat pemanggilan fungsi. Kelebihan Matlab dibandingkan bahasa
pemrograman lain adalah Matlab dapat mengembalikan nilai lebih dari 1 variabel.
Fungsi dalam Matlab dibuat menggunakan keyword function dan diakhiri dengan
keyword end. Ada 4 cara mendefinisikan fungsi yang dapat dipilih:
1. Fungsi yang mempunyai parameter dan nilai balik
function nilai_balik = nama_fungsi(parameter) kumpulan_perintah;
end
2. Fungsi yang mempunyai parameter tapi tidak mempunyai nilai
balik
function nama_fungsi(parameter) kumpulan_perintah; end
3. Fungsi yang tidak mempunyai parameter dan nilai balik
function nama_fungsi() kumpulan_perintah; end
4. Fungsi yang tidak mempunyai parameter tapi mempunyai nilai
balik
function nilai_balik = nama_fungsi() kumpulan_perintah; end
3.1.5 Dasar Penggunaan Matlab
3.1.5.1 MEMULAI MATLAB
Perhatikan Dekstop pada layar monitor PC, kita mulai MATLAB
dengan melakukan double-click pada shortcut icon MATLAB
Selanjutnya kita akan mendapatkan tampilan seperti pada Gambar
berikut ini.
Sedangkan untuk mengakhiri sebuah sesi MATLAB, kita bisa
melakukan dengan dua cara, pertama pilih File -> Exit MATLAB dalam window
utama MATLAB yang sedang aktif, atau cara kedua lebih mudah yaitu cukup
ketikkan type quit dalam Command Window.
3.1.5.2 MENENTUKAN DIREKTORI TEMPAT
BEKERJA
Kita dapat bekerja dengan MATLAb secara default pada directory
Work ada di dalam Folder MATLAB. Tetapi akan lebih bagus dan rapi jika kita
membuat satu directory khusus dengan nama yang sudah kita khususkan, semisal
“Erva_manis” atau nama yang lain yang mudah untuk diingat. Hal ini akan lebih
baik bagi kita untuk membiasakan bekerja secara rapi dan tidak mencampur
program yang kita buat dengan program orang lain. Untuk itu, arahkan pointer
mouse pada kotak bertanda … yang ada disebelah kanan tanda panah kebawah (yang
menunjukkan folder yang sedang aktif). Pilih new directory, selanjutnya
ketikkan “dargombes”, dan diikuti dengan click Ok.
3.1.5.3 MEMULAI PERINTAH SEDERHANA
Langkah kita yang pertama adalah dengan menentukan variable
skalar dengan cara melakukan pengetikan seperti berikut:
» x = 2 (selanjutnya tekan “Enter”) x = 2
» y = 3 y = 3
» z = x + y z = 5
2. Kita mulai dengan mendefinisikan dua buah vektor, yaitu
vektor x dan vektor y:
» x = [1 2 3] x = 1 2 3
» y = [4 5 6] y = 4 5 6
3. Selajutnya ketik:
>> y(1) ans = 4
4. Ulangi untuk y(2) and y(3). MATLAB menggunakan integer
positif untuk index array. Elemen pertama adalah y(1), elemen kedua adalah
y(2), dan seterusnya.
Nol atau bilangan negatif tidak diperbolehkan untuk indek array.
Sekarang kita jumlahkan keduanya:
» x+y ans = 5 7 9
5. Dan sekarang hitung inner product:
» x*y’ ans = 32
Jawabannya adalah 1*4 + 2*5 + 3*6 = 32! Catat, bahwa y’ adalah
transpose pada y dan merupakan suatu vektor kolom.
6. Untuk memeriksanya, ketikkan perintah berikut:
>> y’ ans = 4 5 6
7. Cara lain pada pengkombinasian dua vector adalah diakukan
melalui perkalian element demi element:
>> x.*y ans = 4 10 18
8. Catat periode sebelum perkalian simbol. Sekarang kita dapat
mendefinisikan suatu matriks:
» A = [1 2 3 4 5 6 7 8 9];
9. Catat bahwa matrik tidak diulang kalau kita menggunakan semi
colon. Kita sekarang kalikan A dengan transpose dari x:
» A*x’ ans = 14 32 50
10.Sekarang kita harus mentranspose x untuk memenuhi perkalian
suatu matrik dan suatu vector kolom. Matrik-matrik ini dapat juga dikalikan
satu sama lain diantara mereka:
» B = [1 2 3 4 5 6 7 8 7 6 5 4];
» A*B ans = 32 32 32 32 71 74 77 80 110 116 122 128
11. Sekarang coba kita lakukan penjumlahan antara A dan B:
» A+B ??? Error using ==> + Matrix dimensions must agree.
12. Baiklah, kita tidak dapat menambah suatu matrik 3 kali 3
dengan matrix 3 kali 4 , dan Matlab akan mendeteksi dimensi yang mismatch dan
selanjutnya memberikan pesan error.
Sekarang kita cari cara lain untuk mendefinisikan matrik dan
vektor. Sebagai contoh suatu matrik nol dengan dimensi 3 baris dan 6 kolom
dapat dinyatakan sebagai:
>> zeros(3,6) ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
13. Tentu saja jika anda tambahkan suatu “;” setelah zeros(3,6),
jawabannya tidak akan ditampilkan di layar monitor kita.
14. Angka pertama, 3 menunjukkan jumah baris, sedangkan angka
kedua, 6, adalah jumlah kolom. Kita dapat pula melakukan hal yang sama untuk
menampilkan angka satu seperti berikut:
>> ones(3,6) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
# Pendefinisian Vektor-vektor Besar
Suatu vektor 1 kali 100 yang menyusun sample pada sinyal cosinus
dapat dibangkitkan dengan
>> x = cos(0.1*pi*(0:99));
Untuk membangkitkan suatu “ramp” dari 1 sampai 50 coba:
>> x = [1:1:50];
Bilangan kedua mengindikasikan step kenaikan dari dari 1 sampai
50. Untuk membangkitkan suatu fungsi “ramp” dari 1 sampai 50 coba berikut ini:
>> x = [1:1:50];
Ketika akita tidak memasukkan angka kedua pada perintah diatas,
maka secara otomatis (default) step kenaikan ditetapkan bernilai “1”: >>
x = [1:50];
Kita bisa juga secara khusus mendefinisikan suatu rentang nilai
pada x sebagai berikut:: >> x(51:100) = [50:-1:1]
Ini merupakan metode yang sangat bermanfaat untuk mensepsifikasi
nilai “waktu” untuk penggambaran. Sebagai contoh, ditetapkan interval sampling
dalam contoh diatas adalah 1 detik. Selanjutnya kita dapat mendefisnisikan
seperti berikut: >> time = [0:0.001:0.099];
3.1.5.4 PENGGAMBARAN GRAFIK
Salah satu kelebihan dari Matlab adalah kemudahan dalam mengolah
grafik. Sehingga kita tidak perlu kesulitan untuk melihat suatu respon system,
misalnya pada kasus melihat bentuk sinyal dalam domain waktu anda cukup
mengikuti langkah berikut. Sekarang ketikkan:
>> time = [0:0.001:0.099]; >> x =
cos(0.1*pi*(0:99)); >> plot(time,x) >> xlabel(‘time (msec)’)
>> ylabel(‘x(t)’)
ini akan menghasilkan gambar seperti berikut:
Sedangkan cara untuk menampilkan sederetan nilai fungsi waktu
diskrit adalah dengan menggunakan perintah “stem”. Dari contoh deretan perintah
coba anda rubah beberapa bagian dengan perintah berikut
>> stem(time,x) >> xlabel(‘time (msec)’) >>
ylabel(‘x(t)’)
3.1.5.5 MENYUSUN PROGAM SEDERHANA
Kita dapat mengedit suatu file text yang tersusun dari beberapa
perintah Matlab. Ini dapat dilakukan dengan menekan double-click pada icon “New
M-File” icon in the Matlab toolbar.
Selanjutnya kita akan mendapatkan sebuah tampilan Matlab Editor
yang masih kosong seperti ini. Selanjutnya kita buat program seperti pada
contoh sebelumnya
Tampilan Matlab Editor tempat membuat program.
Contoh penulisan program pada Matlab Editor
Lanjutkan dengan menekan toolbar Debug, dan jangan lupa pilih
Save anda Run. Disitu kita harus menuliskan nama program. kita tuliskan coba_1,
secara otomatis akan menjadi file coba_1.m dan akan kita lihat tampilan
hasilnya. Seperti apa ya?
§ Program kedua anda
Cobalah untuk membuat program seperti berikut ini pada Matlab
editor, dan jangan lupa kita simpan dengan nama coba_2
x(1:52) = [0 0 1:1:50];
x(53:102) = [50:-1:1];
h = [1 2];
for n = 3:101,
y(n) = 0;
for m = 1:2,
y(n) = y(n) + h(m)*x(n-m);
end
end
plot(y)
Hasil apa yang kita dapatkan ? Dalam hal ini kita harus memahami
arti setiap perintah yang kita tuliskan dalam MATLAB, tidak ada salahnya anda
bertanya kepada instruktur apa arti perintah-perintah tersebut.
# Program ketiga anda
Satu contoh lain program untuk for adalah pembangkitan gambar
seperti berikut.
%File Name:coba_3.m n=201; delx=10/(n-1); for k=1:n
x(k)=(k-1)*delx; y(k)=sin(x(k))*exp(-0.4*x(k)); end %plot(x,y) plot(x,y,’linewidth’,4)
title(‘Grafik yang pertama’) xlabel(‘x’);ylabel(‘y’);
Bagiamana hasilnya?
Fungsi dalam Matlab
Matlab juga mampu untuk menuliskan fungsi yang didefinisikan
oleh pemakainya. Buat sebuah fungsi dengan menuliskan program berikut ini:
function y = x2(t) y = t^2;
kita simpan dengan nama “x2.m” selanjutnya anda dapat
memanfaatkan fungsi tersebut melalui Matlab line command dengan cara berikut:
>>t=0:1:10; >> y_2=x2(t)
Hasilnya adalah seperti berikut: y_2 = 0 1 4 9 16 25 36 49 64 81
100
Kita bisa juga memanggil fungsi tersebut melalui program pada
panggil_1.m file yang kita buat seperti berikut:
t=0:1:10; y_2=x2(t)
3.2 Scilab
Scilab adalah bahasa pemprograman tingkat tinggi, sebagian besar
kegunaannya didasarkan pada seputar kemampuan menspesifikasi banyak komputasi
dengan sedikit baris kode. Scilab melakukan hal ini dengan mengabstraksi tipe
data primitif kepada matriks ekuivalen menurut fungsinya. Scilab memiliki
kesamaan fungsionalitas dengan MATLAB, tetapi tersedia untuk diunduh tanpa
biaya lisensi. Program ini memungkinkan pengguna untuk melakukan komputasi pada
cakupan luas operasi-operasi matematika dari operasi yang relatif sederhana
seperti perkalian hingga kepada operasi tingkat tinggi seperti korelasi dan
aritmetika kompleks. Perangkat ini sering dipakai untuk pemprosesan sinyal,
analisis statistika, perbaikan gambar, simulasi dinamika fluida, dan lain-lain.
Scilab telah digunakan secara luas di beberapa industri dan projek penelitian,
dan banyak kontribusi telah dibuat oleh para pengguna. Sintaksnya sama dengan
MATLAB, tetapi yang kedua tidak sepenuhnya kompatibel, meskipun terdapat
konverter yang disertakan di dalam Scilab untuk konversi kode sumber dari
MATLAB ke Scilab. Scilab memiliki lebih sedikit bantuan daripada MATLAB. Scilab
famili 5 didistribusi di bawah lisensi CeCILL yang kompatibel dengan GPL.
Scilab versi-versi terdahulu merupakan perangkat lunak semi-bebas
menurut nomenklatur Yayasan Perangkat Lunak Bebas. Alasan untuk hal ini adalah
bahwa lisensi Scilab yang lama melarang distribusi secara komersial atau
penggunaan versi Scilab yang dimodifikasi bertentangan dengan klausa 6 dari
definisi sumber terbuka.
§ Penggunaan Scilab
meliputi bidang–bidang:
§ Matematika dan Komputasi
§ Pembentukan Algorithm
§ Akusisi Data
§ Pemodelan, simulasi, dan
pembuatan prototipe
§ Analisa data, explorasi,
dan visualisasi
§ Grafik Keilmuan dan
bidang Rekayasa
Pada awalnya Scilab dikembangkan oleh INRIA dan ENPC, Perancis,
dan sekarang pengembangan dan pemeliharaan Scilab dilakukan oleh konsorsium
Scilab. Alamat website Scilab adalah http://www.scilab.org. Kelebihan utama dari
Scilab yaitu gratis (freeware) dan tersedia untuk berbagai sistem operasi
seperti Windows, Mac OS/X, Unix dan Linux.
Kelengkapan pada Sistem Scilab Sebagai sebuah system, Scilab
tersusun dari 5 bagian utama:
§ Development Environment.
Merupakan sekumpulan perangkat dan fasilitas yang membantu anda untuk
menggunakan fungsi-fungsi dan file-file Scilab. Beberapa perangkat ini
merupakan sebuah graphical user interfaces (GUI). Termasuk didalamnya adalah
Scilab console, scipad sebagai sebuah editor dan debugger,juga terdapat
aplication untuk mengkonversi bahasa matlab menjadi scilab dan bantuan berupa
scilab help dan scilab demonstrations.
§ Scilab Mathematical
Function Library. Merupakan sekumpulan algoritma komputasi mulai dari
fungsi-fungsi dasar sepertri: sum, sin, cos, dan complex arithmetic, sampai
dengan fungsi – fungsi yang lebih kompek seperti matrix inverse, matrix
eigenvalues, dan fast Fourier transforms.
§ Scilab Language.
Merupakan suatu high-level matrix/array language dengan control flow
statements, functions, data structures, input/output, dan fitur-fitur
object-oriented programming. Ini memungkinkan bagi kita untuk melakukan kedua
hal baik “pemrograman dalam lingkup sederhana ” untuk mendapatkan hasil yang
cepat, dan “pemrograman dalam lingkup yang lebih besar” untuk memperoleh
hasil-hasil dan aplikasi yang komplek.
§ Graphics. Scilab memiliki
fasilitas untuk menampilkan vector dan matrices sebagai suatu grafik.
Didalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk
visualisasi data dua dimensi dan data tiga dimensi, image processing,
animation, dan presentation graphics.Ini juga melibatkan fungsi level
rendah yang memungkinkan bagi anda untuk membiasakan diri untuk memunculkan
grafik mulai dari benutk yang sederhana sampai dengan tingkatan graphical user
interfaces pada aplikasi scilab anda.
§ Scilab Application
Program Interface (API). Merupakan suatu library yang memungkinkan program yang
telah anda tulis dalam bahasa C dan Fortran mampu berinterakasi dengan Scilab.
Ini melibatkan fasilitas untuk pemanggilan routines dari Scilab (dynamic linking),
pemanggilan Scilab sebagai sebuah computational engine, dan untuk membaca dan
menuliskannya . Ini melibatkan fasilitas untuk pemanggilan routines dari Scilab
(dynamic linking), pemanggilan Scilab sebagai sebuah computational engine, dan
untuk membaca dan menuliskannya .
Scilab memiliki kesamaan fungsionalitas dengan MATLAB, tetapi
tersedia untuk diunduh tanpa biaya lisensi. Program ini memungkinkan pengguna
untuk melakukan komputasi pada cakupan luas operasi-operasi matematika dari
operasi yang relatif sederhana seperti perkalian hingga kepada operasi tingkat
tinggi seperti korelasi dan aritmetika kompleks. Perangkat ini sering dipakai
untuk pemprosesan sinyal, analisis statistika, perbaikan gambar, simulasi
dinamika fluida, dan lain-lain. Scilab telah digunakan secara luas di beberapa
industri dan projek penelitian, dan banyak kontribusi telah dibuat oleh para
pengguna. Sintaksnya sama dengan MATLAB, tetapi yang kedua tidak sepenuhnya
kompatibel, meskipun terdapat konverter yang disertakan di dalam Scilab untuk
konversi kode sumber dari MATLAB ke Scilab. Scilab memiliki lebih sedikit
bantuan daripada MATLAB. Scilab dapat digunakan didalam berbagai sistem operasi
seperti Windows, Mac OS/X, Unix dan Linux. Sintax Scilab tidak jauh dengan,
malahan sintaksnya didasarkan dari bahasa pemrograman MATLAB. Cara paling
sederhana untuk menjalankan kode Scilab adalah dengan mengetiknya pada prompt,
–>, di dalam jendela perintah grafis. Dengan cara ini, Scilab dapat dipakai
sebagai shell matematika interaktif. Jadi secara singkat Scilab tidak jauh
berbeda dengan MATLAB, sintaks pada MATLAB bisa juga kita gunakan pada SCILAB,
karena sintaks Scilab didasarkan dari MATLAB.
3.2.2 Dasar-Dasar Penggunaan Scilab
Scilab menyediakan bagi pengguna dengan jumlah bentuk pemrograman
yang banyak memiliki kesamaan dengan FORTRAN dan bahasa pemrograman tingkat
tinggi lainnya. Kita menyajikan beberapa bentuknya di bawah ini :
Perbandingan dan operator logika Operator perbandingan di dalam
Scilab == sama dengan < kurang dari > lebih dari <= kurang dari sama
dengan >= lebih dari sama dengan <> atau ~= tidak sama dengan
Operator logika di dalam Scilab : & dan | atau ~ tidak
Contoh : Coba untuk menjalankan perintah di bawah ini di Scilab
–>3 <> 2 ans = T –>3 == 3 ans = T –>(2>1)
& (3>1) ans = T –>(2>1) & (3>5) ans = F –>(2<1) &
(3>1) ans = F –>(2<1) & (3>5) ans = F –>(2>1) | (3>1)
ans = T –>(2>1) | (3>5) ans = T –>(2<1)
| (3>1) ans = T –>(2<1) | (3>5) ans = F
–>~(2<1) ans = T –>~(2>1) ans = F –>~(2>1)|(3>5) ans = F
Loop (Perulangan) dalam Scilab Perulangan dalam Scilab dapat
menggunakan perintah perulangan for dan while. Format Perulangan FOR perulangan
for sebagai berikut :
for indeks = nilai_awal : kenaikan : nilai_akhir, …ekspresi…,
end for indeks = nilai_awal : nilai_akhir, …ekspresi…, end
Jika kenaikan (increment) tidak disertakan berarti kenaikannya
dianggap nilainya 1. Contohnya, ketikkan perintah – perintah berikut di dalam
Scilab :
–>r = 1; for k = 1:0.5:4, r = r+k, end r = 2. r = 3.5 r = 5.5
r = 8. r = 11. r = 14.5 r = 18.5
–>xs = -1; dx = 0.25; n = 20; for j = 1:n, x = xs +
(j-1)*dx,end x = – 1. x = – 0.75 x = – 0.5 x = – 0.25 x = 0. x = 0.25 x = 0.5 x
= 0.75 x = 1. x = 1.25 x = 1.5 x = 1.75 x = 2. x = 2.25 x = 2.5 x = 2.75 x =
3. x = 3.25 x = 3.5 x = 3.75
–>for m = 1:10, a = m^2, end a = 1. a = 4. a = 9. a = 16. a =
25. a = 36. a = 49. a = 64. a = 81. a = 100.
Perulangan WHILE format :
while kondisi, … ekspresi… , end
contoh :
–>s = 100; while s>50, disp(s^2), s = s – 10, end 10000. s
= 90. 8100. s = 80. 6400. s = 70. 4900. s = 60. 3600. s = 50.
Perulangan for dan while dapat dihentikan dengan perintah break
tanpa harus menunggu berakhir, contoh :
–>for i = 1 : 10, disp(i), if i>5 then break, end, end 1.
2. 3. 4. 5. 6.
Bentuk kondisi / syarat di dalam Scilab Pada contoh di atas kita
sudah menggunakan ekspresi kondisi yaitu pemakaian if…then…end. Ada dua tipe
pemakaian ekspresi kondisi di Scilab yaitu :
bentuk if-then-else-end dan bentuk select-case.
Bentuk if-then-else-end format : if kondisi then ekspresi, end
if kondisi then ekspresi, else ekspresi, end if kondisi then ekspresi, elseif
ekspresi, end
contoh :
–>x = 10; y = 5; if x > 5 then disp(y),end
5. –>x = 3; y = 5; if x > 5 then disp(y), else disp(x),end
3.
–>x = 3; y = 5; z=4; if x > 5 then disp(y), elseif x>6
then disp(y), else disp(z),end 4.
Bentuk select-case format :
select variabel, case n1, ekspresi, case n2, ekspresi,…., end
contoh :
–>x = -1; select x, case 1, y = x + 5, case -1, y = sqrt(x),
end y = i –>r = 7; select r, case 1, disp(r), case 2, disp(r^2), case 7,
disp(r^3), end 343.
Skrip Kita dapat menulis suatu program dalam skrip sehingga akan
memudahkan kita jika program yang kita buat sudah tidak sederhana lagi.
Skrip ini dapat kita tulis lewat skrip yang sudah disediakan
oleh scilab atau dari penulis skrip lain (text editor, notepad, dll) contoh :
kita buka Scinotes (launch scinotes), kemudian tuliskan program berikut :
clear // menghapus semua variabel
clear // menghapus semua variabel
x = [10 -1 3 5 -7 4 2]; suma = 0; [n,m] = size(x); for j = 1:m
suma = suma + x(j); end xbar = suma/m; xbar
simpan program dengan nama program1.sce, atau program1.txt
kemudian kembali ke jendela kerja scilab lalu ketik perintah berikut :
exec(‘program1.sce’) atau exec(‘program1.txt’)
ctt : direktori yang bekerja harus diatur sesuai dengan
direktori file yang disimpan.
–>exec(‘program1.sce’); xbar = 2.2857143
Karena x adalah vektor baris (natriks dengan n = 1 baris dan m =
7 kolom ), fungsi size menyediakan sebuah arrai dengan dua nilai dengan
pernyataan [n,m] = size(x). Kemudian m digunakan untuk pengulangan for dan di
dalam perhitungan untuk xbar . Ada alternatif selain menggunakan vektor baris
atau kolom yaitu dengan menggunakan list. List adalah sebuah kumpulan objek
data yang tidak harus dengan tipe yang sama. Pada contoh berikut kita membatasi
untuk menggunakan list. Untuk mendefinisikan sebuah list kita menggunakan
perintah list, sebagai contoh coba perintah berikut
–>y = list(0,1,2,3,4,5,6) y = y(1) 0. y(2) 1. y(3) 2. y(4) 3.
y(5) 4. y(6) 5. y(7) 6.
–>size(y) ans = 7.
Pada kasus ini ukuran (size) dari suatu list hanya menghasilkan
satu angka, tidak seperti size pada vektor atau matrik. Kita dapat memodifikasi
program1 di awal menjadi :
clear // menghapus semua variabel x = list (10, -1, 3, 5, -7, 4,
2); suma = 0; n = size(x); for j = 1:n suma = suma + x(j); end xbar = suma/n;
xbar
kemudian program tersebut kita beri nama program2.sce, running
program dengan perintah
exec(‘program2.sce’)
bandingkan dengan program pertama tadi
–>exec(‘program2.sce’); xbar =
2.2857143
Fungsi di Scilab Fungsi adalah prosedur yang boleh memasukkan
ekspresi / argumen dan mengembalikan nol, satu atau lebih nilai. Fungsi
didefinisikan baik menggunakan online, dengan menggunakan perintah deff atau
dari file yang terpisah yang diperlukan untuk diload dengan menggunakan
perintah getf. Coba kita ikuti beberapa contoh fungsi online berikut :
–>deff(‘[z]=euler(r,theta)’,’z=r*exp(%i*theta)’)
–>euler(1,-%pi/2) ans =
6.123D-17 – i
Kita coba membuat program untuk mengkonversi dari kartesian ke
polar
–>deff(‘[r,theta]=cart_pol(x,y)’,['r=sqrt(x^2+y^2)';'theta=atan(y,x)'])
–>[r,sudut] = cart_pol(3,4) sudut =
0.9272952 r =
5.
Fungsi Perintah function dapat diakses dari file yang berbeda
artinya kita dapat menuliskan fungsi – fungsi dan menyimpannya di file yang
berbeda dengan program utama. Format penulisan perintahnya :
function [y1,....,yn] = nama_fungsi {x1,…,xn}
dimana [y1,....,yn] = arrai nilai keluaran {x1,…,xn} = nilai masukan
nama_fungsi = nama fungsi
contoh : Tuliskan perintah – perintah berikut dalam skrip
function [x, y, z]=sphecart(r, theta, rho) // konversi dari
koordinat spherical ke kartesian x = r*cos(rho)*cos(theta) y =
r*cos(rho)*sin(theta) z = r*sin(rho)
kemudian simpan dengan nama file sphecart.sce, kemudian
jalankan di Scilab dengan –>exec(‘sphecart.sce’);
–>[X,Y,Z] = sphecart(10, %pi/3,%pi/6) Z =
5. Y =
7.5 X =
4.330127
Variabel Global Variabel Global adalah variabel yang dapat
diakses untuk semua fungsi Variabel Lokal Variabel Lokal adalah variabel yang
penggunannya terbatas atau hanya berlaku di fungsi tertentu yang
mendefinisikannya.
3.2.2.1 METODE NUMERIK MENGGUNAKAN
SCILAB
1. METODE BAGI DUA:
function y=f(x) y=x^3 + 2*x^2 + 10*x – 20; endfunction
function c=metodebagidua(f, x0, x1, aprox) i=1; er(1)=100; if
f(x0)*f(x1) < 0 a(1)=x0; b(1)=x1; c(1)=(a(1)+b(1))/2; printf(‘r.\t\t a\t\t
b\t\t c\t\t f(c)\t Error \n’); printf(‘%2d \t %11.6f \t %11.6f \t %11.6f \t
%11.6f \n’,i,a(i),b(i),c(i),f(c(i))); while abs(er(i)) >= aprox if
f(a(i))*f(c(i))< 0 a(i+1)=a(i); b(i+1)=c(i); end if f(a(i))*f(c(i))> 0
a(i+1)=c(i); b(i+1)=b(i); end c(i+1)=(a(i+1)+b(i+1))/2;
er(i+1)=abs((c(i+1)-c(i))/(c(i+1))); printf(‘%2d \t %11.6f \t %11.6f \t %11.6f
\t %11.6f \t %7.6f \n’,i+1,a(i+1),b(i+1),c(i+1),f(c(i+1)),er(i+1)); i=i+1; end
else printf(‘ ‘); end endfunction _____________________________________
caranya: -execute -ketik: metodebagidua(f, 1, 1.5, 0.000001)
*ket: 1 ama 1.5 itu selangnya, 0.000001 itu epsilon.
2. METODE REGULA-FALSI:
function y=f(x) y=x^3 + 2*x^2 + 10*x – 20; endfunction
function xn=regulafalsi(f, a1, b1, aprox) i=1; ea(1)=100; if
f(a1)*f(b1) < 0 x0(1)=a1; x1(1)=b1;
xn(1)=x0(1)-f(x0(1))*(x1(1)-x0(1))/(f(x1(1))-f(x0(1))); printf(‘r.\t\t x0\t\t
xn\t\t x1\t Error \n’); printf(‘%2d \t %11.7f \t %11.7f \t %11.7f
\n’,i,x0(i),xn(i),x1(i)); while abs(ea(i))>=aprox, if f(x0(i))*f(xn(i))<
0 x0(i+1)=x0(i); x1(i+1)=xn(i); end if f(x0(i))*f(xn(i))> 0 x0(i+1)=xn(i);
x1(i+1)=x1(i); end xn(i+1)=x0(i+1)-f(x0(i+1))*(x1(i+1)-x0(i+1))/(f(x1(i+1))-f(x0(i+1)));
ea(i+1)=abs((xn(i+1)-xn(i))/(xn(i+1))); printf(‘%2d \t %11.7f \t %11.7f \t
%11.7f \t %7.7f \n’, i+1,x0(i+1),xn(i+1),x1(i+1),ea(i+1)); i=i+1; end else
printf(‘ ‘); end endfunction _____________________________________ caranya: -execute
-ketik: regulafalsi(f, 1, 1.5, 0.000001)
*ket: 1 ama 1.5 itu selangnya, 0.000001 itu epsilon.
3. METODE NEWTON-RAPHSON:
function y=f(x) y=x^3 + 2*x^2 + 10*x – 20; endfunction
function y=df(x) y=3*x^2 + 4*x + 10; endfunction
function xr=newtonraphson(f, x0, aprox); i=1; er(1)=1; xr(1)=x0;
while abs(er(i))>=aprox; xr(i+1)=xr(i)-f(xr(i))/df(xr(i));
er(i+1)=abs((xr(i+1)-xr(i))/xr(i+1)); i=i+1; end printf(‘ i \t xn(i) Error
aprox (i) \n’); for j=1:i; printf(‘%2d \t %11.7f \t %7.6f \n’,j-1,xr(j),er(j));
end endfunction _____________________________________ caranya: -execute -ketik:
newtonraphson(f, 1, 0.000001)
*ket: 1 = x0, 0.000001 = epsilon.
4. METODE SECANT:
function y=g(x) y=x^3 + 2*x^2 + 10*x – 20; endfunction
function pn=metodesecant(x0, x1, aprox) j=2; i=1; pn(1)=x0;
pn(2)=x1; er(i)=1; while abs(er(i))>=aprox
pn(j+1)=(pn(j-1)*f(pn(j))-pn(j)*f(pn(j-1)))/(f(pn(j))-f(pn(j-1)));
er(i+1)=abs((pn(j+1)-pn(j))/pn(j+1)); j=j+1; i=i+1; end
printf(‘ i \t\t pn(i) \t\t Error aprox (i) \n’); printf(‘%2d \t
%11.7f \t\t \n’,0,pn(1));
for k=2:j; printf(‘%2d \t %11.7f \t %7.8f \n’,k,pn(k),er(k-1));
end endfunction _____________________________________ caranya: -execute -ketik:
metodesecant(1, 1.5, 0.000001)
*ket: 1 = x0, 1.5 = x1, 0.000001= epsilon.
Bab 4
CONTOH
PENGGUNAAN MATLAB DAN SCILAB
4.1 Contoh Pembuatan Jaringan Saraf Tiruan dengan Matlab
Beberapa literatur banyak kita jumpai baik terbitan lokal maupun
internasional yang membahas mengenai JST. Teknik yang merupakan salah satu dari
sekian banyak teknik dalam Soft Computing. Ada baiknya kita membaca landasan
teori mengenai JST pada salah satu buku itu, bila perlu buat ulang dari
algoritma yang tersedia dengan bahasa pemrograman yang Anda kuasai seperti C++,
Pascal atau Java. Matlab menyediakan toolbox yang dapat kita lihat struktur
programnya. Misal kita ingin tahu bagaimana Matlab membuat JST. Ketik saja di
command window: >> edit newff. Maka kita dapat melihat alur program
M-File yang merupakan fungsi untuk merakit JST.
Misalnya kita memiliki tiga buah masukan dan satu keluaran.
Keluaran yang dihasilkan akan kita arahkan ke sasaran tertentu. Teknik ini
sering dikenal dengan nama Supervised Learning. Misal kita memiliki tiga buah
sampel yang masing-masing menyatakan kurang, baik, dan cukup. Katakanlah sampel
itu A, B, dan C. A=[0; 0; 1], B=[1; 0; 1] dan C=[1; 1; 1]. Perhatikan, di
Matlab vektor kita nyatakan dengan matriks kolom. Berikutnya, karena bertipe
pembelajaran terpandu, kita harus membuat target, T=[1 5 10]. Perhatikan, untuk
target matriks dibuat dengan vektor baris. Artinya jika ada masukan seperti A,
keluarannya harus mendekati target=1, jika masukan B, keluaran harus mendekati
5, dan begitu pula untuk masukan C. Untuk pembelajarannya, JST melakukan secara
simultan A, B dan C. Jadi input untuk pembelajarannya: Input = [A B C] yang
sama dengan, Input =[0 1 1; 0 0 1; 1 1 1] yang merupakan matriks tiga baris dan
tiga kolom. Jika seluruh matriks sudah diinput pada command window, maka kita
sudah siap untuk merakit JST. Ketik “nntool” pada Comand Window.
Klik Import, pilih variabel input pada workspace untuk input dan
T pada workspace untuk target. Klik OK saat Anda diminta konfirmasinya. Jika
sudah berarti kita telah memberikan masukan dan target pembelajaran. Tinggal
kita merakit JST, klik “New” dilanjutkan dengan melakukan setting di Toolbox.
Pilih masukan dan targetnya (Input dan T). Secara default, jumlah neuron per
layer adalah 10 (layer tersembunyi). Di sinilah letak kelemahan JST. Jika Anda
gunakan neuron terlalu banyak, jangan heran jika ada pesan kesalahan “Out of
Memory”.
Jika sudah OK, pada nntool, dobel klik network1. Tentu saja Anda
boleh merubah nama network1 menjadi nama lain sesuai selera. Lakukan proses
pembelajaran dengan mengklik “Train”. Kembali kita diminta memilih Input dan
Target. Jika sudah klik “Train Network”.
Selamat, Anda telah berhasil membuat JST sekaligus melakukan
pembelajaran terhadap JST tersebut dengan tiga masukan tersebut. Kembali ke
nntool, langkah terakhir yang tidak kalah pentingnya adalah mengeksport JST itu
ke workspace dengan mengklik tombol “Export”. Pilih salah satu saja yaitu
network1, karena akan kita gunakan untuk menguji masukan tertentu apakah masuk
kategori kurang(1), cukup(5) atau baik(10).
4.1.1 Jaringan Saraf Tiruan Menggunakan Neural Network Toolbox™ Matlab
Kasus :
Bayangkan jika kita mempunyai sekumpulan angka yang kita berikan
nama matriks P, sebagai berikut: P = [1 2 3 4 5 6 7 8 9 10] Dan kita juga punya
matriks lain, sebut matriks T : T = [6 12 14 21 27 29 36 41 44 51]
Matriks P adalah input untuk JST kita dan T adalah targetnya.
Dengan kata lain, kita akan mengajari P agar mencapai hasil seperti T.
Ada berbagai jenis algoritma dalam JST. Nah, untuk kasus ini
saya akan menggunakan Backpropagation.
Neural Network Toolbox Sekarang mari kita bermain-main
menggunakan Neural Network Toolbox.
§ Mari kita bangun
arsitektur jaringannya. Syntax:
net = newff(P,T,[S1 S2...S(N-l)],{TF1
TF2…TFNl},BTF,BLF,PF,IPF,OPF,DDF)
Penjelasan: Untuk kesempatan kali ini, kita akan mengurangi
input dan hanya menggunakan beberapa saja. Parameter input yang lain kita
biarkan pada nilai default-nya. Nah, kita reduksi menjadi seperti ini :
net = newff(P,T,[S1 S2...S(N-l)])
P dan T masing-masing adalah input dan Target JST kita,
sedangkan S1 S2…S(N-l) adalah jumlah neuron dalam layer JST. Asumsi kita
membentuk arsitektur sebagai berikut :
Kita mempunya 2 layer tersembunyi (hidden layer), dan kita namai
HL 1 dan HL2. HL 1 dan 2 masing-masing memiliki jumlah neuron 3 dan 2.
Nah, sampai saat ini, kita dapat memprogram JST kita sebagai
berikut:
% input P = [1 2 3 4 5 6 7 8 9 10]; % target T = [6 12 14 21 27
29 36 41 44 51]; % bangun JST JST = newff(P,T,[3 2]);
§ Kita bisa mensimulasikan
JST kita, karena pada saat ini Matlab sudah membangkitkan nilai-nilai bias dan
bobot awal pada tiap-tiap konelsi dan neron.
Sintax:
Y = sim(JST,P);
Hasilnya dapat kita plot dengan perintah berikut:
plot(P,T,’*’,P,Y,’o’);
Target yang ingin kita capai adalah lambang bintang (*), dan
hasil simulasi diperlihatkan dengan tanda lingkaran (o).
* Jangan khawatir kalau hasilnya akan berbeda, karena Matlab
akan membangkinkan bilangan acak. Dengan kata lain, bobot dan bias yang
dihasilkan akan berbeda, sehingga hasil akhirnya akan berbeda pula.
Sampai saat ini kita telah menulis sintak berikut:
% input P = [1 2 3 4 5 6 7 8 9 10]; % target T = [6 12 14 21 27
29 36 41 44 51]; % bangun JST JST = newff(P,T,[3 2]); % simulasikan JST Y =
sim(JST,P); %plot hasilnya plot(P,T,’*’,P,Y,’o’);
Well……. Dengan kata lain, JST kita belum pintar… kita harus
melatihnya agar pintar.
§ Sekarang kita akan
melatih JST kita agar pintar dan mencapai target yang diinginkan :) Sintak
yang kita gunakan sebagai berikut:
JST.trainParam.epochs = 5; JST = train(JST,P,T); Maksud sintak
ini adalah kita akan melatih JST sebanyak 5 iterasi (epoch) maju-mundur
(backpropagation). Kemudian akan muncul jendela nntraintool.
Untuk saat ini, mari kita abaikan dulu jendela ini. Kita lanjut
ke langkah berikutnya.
§ Sekarang kita simulasikan
dan plot hasil pelatihan tadi. Sintak : Y = sim(JST,P); plot(P,T,’*’,P,Y,’o’);
Diperoleh hasil seperti berikut :
Wah.. sepertinya JST kita sudah semakin cerdas. Tanda lingkaran
sudah mendekati tanda bintang. Namun belum sepenuhnya mencapai target yang
diinginkan. Sampai saat ini, sintak yang sudah kita buat adalah sebagai
berikut:
% input P = [1 2 3 4 5 6 7 8 9 10]; % target T = [6 12 14 21 27
29 36 41 44 51]; % bangun JST JST = newff(P,T,[3 2]); % simulasikan JST Y =
sim(JST,P); %plot hasilnya plot(P,T,’*’,P,Y,’o’); %latih JST sebanyak 5 epoch
JST.trainParam.epochs = 5; JST = train(JST,P,T); %simulasikan JST setelah pelatihan
Y = sim(JST,P); plot(P,T,’*’,P,Y,’o’);
§ Agar JST kita lebih
pintar, kita harus melatihnya lebih banyak lagi. Sekarang kita naikkan epoch
menjadi 30 dan selanjutnya kita latih dan simulasikan lagi.
Syntax : JST.trainParam.epochs = 30; JST = train(JST,P,T); Y =
sim(JST,P); plot(P,T,’*’,P,Y,’o’);
Hasil akhir yang diperoleh sebagai berikut:
Sintak lengkapnya sebagai berikut :
% input P = [1 2 3 4 5 6 7 8 9 10]; % target T = [6 12 14 21 27
29 36 41 44 51]; % bangun JST JST = newff(P,T,[3 2]); % simulasikan JST Y =
sim(JST,P); %plot hasilnya plot(P,T,’*’,P,Y,’o’); %latih JST sebanyak 5 epoch
JST.trainParam.epochs = 5; JST = train(JST,P,T); %simulasikan JST setelah
pelatihan Y = sim(JST,P); plot(P,T,’*’,P,Y,’o’); %naikkan epoch
JST.trainParam.epochs = 30; JST = train(JST,P,T); Y = sim(JST,P);
plot(P,T,’*’,P,Y,’o’);
Apa yang saya tulis adalah pengetahuan yang sangat dasar
mengenai JST. Begitu pula dari sisi pemrograman. Untuk menghasilkan performance
yang lebih baik, teman-teman dituntut untuk belajar lebih lanjut lagi dengan
mengatur berbagai parameter dari JST tersebut, baik melalui pengaturan
arsitektur JST, pengaturan bobot dan bias awal, momentum, metode pelatihan dan
lain-lain.
4.1.2 Contoh Aplikasi Pengenalan Sidik jari dengan Matlab
Teknik identifikasi konvensional untuk mengenali identitas
seseorang dengan menggunakan password atau kartu tidak cukup handal, karena
sistem keamanan dapat ditembus ketika password dan kartu tersebut digunakan
oleh pengguna yang tidak berwenang. Sistem autentifikasi data menggunakan pola
sidik jari telah terbukti keakuratannya sebagai identifikasi bila dibandingkan
dengan sistem biometric lainnya seperti retina mata atau DNA.
Dengan berkembangnya ilmu biometrik, akhirnya berkembang pula
suatu sistem keamanan akses yang menggunakan karakteristik dari sidik jari
sebagai password atau kunci untuk membuka akses keamanan tersebut. Berdasarkan
hasil riset dari internasional biometric group, bahwa 48% industri biometrik
lebih suka menggunakan aplikasi sidik jari untuk produk mereka daripada
menggunakan identifikasi biometrik lainya. Gambar dibawah ini memperlihatkan
tahapan pengolahan data sistem pengenalan pola sidik jari untuk sistem keamanan
akses.
Sistem pengenalan identitas dengan sidik jari seperti yang
dijelaskan pada gambar di atas merupakan teknologi pengenalan pola yang banyak
dipakai oleh industri biometrik pada saat ini. Sistem tersebut masih mempunyai
kelemahan, dimana user harus menempelkan jari pada bidang sensor secara lurus,
sehingga seringkali dijumpai user berulang kali mengalami kegagalan akses.
Untuk menangani permasalahan tersebut kita akan mencoba merancang suatu sistem
pengenalan pola yang lebih cerdas, yaitu sistem tersebut dapat mengenali pola
sidik jari meskipun user menempatkan posisi jarinya secara sembarang pada
bidang sensor. Perkembangan algoritma kecerdasan buatan (artificial inteligent)
yang semakin handal akan dicoba untuk studi ini yaitu dengan menggunakan
algoritma feed forward backpropagation.
Secara umum, pengenalan pola terdiri dari 4 langkah, yaitu :
§ Tahap ke-1 (Image
Acquisition) : adalah proses mendapatkan data image. Pengambilan data dilakukan
dengan metode ink rolled (tinta diteteskan pada permukaan stam pad kemudian
jari yang telah dikenai tinta dicapkan ke kertas dari ujung bawah kuku sampai
pangkal jari). Setelah itu kertas di scan menggunakan scanner canon. Karena
pengambilan image diambil secara langsung maka sering terjadi trial and error.
§ Tahap ke-2 (Image
Preprocessing) : Pada tahap ini image diberi proses lain seperti penghilangan
noise/derau, penajaman image, pemotongan image, dll. Program yang dipergunakan
untuk memfilter image yaitu Program Adobe Photoshop dan Microsoft Office Picture
Manager. Keluaran dari tahap ini adalah image tersegmentasi yang akan digunakan
untuk proses selanjutnya dalam penelitian. Image tersegmentasi adalah image
yang sudah dipisahkan dari image awal.
§ Tahap ke-3 (Feature
Extraction) : Di tahap ini, image akan diekstrak untuk mendapatkan nilai-nilai
yang merepresentasikan ciri spesifik dari image tersebut. Image dari tahap ke-2
akan diperkecil ukuran pixelnya karena jumlah datanya yang terlalu besar untuk
dijadikan input, sehingga image diperkecil menjadi 8×8 pixel. Image ini dipilih
karena masih dapat mewakili ciri citra asli, sesuai dengan rumus level maksimum
dekomposisi yang dibatasi oleh persamaan yang berkorelasi (Kanata, 2008:7).
Image ini akan diubah menjadi citra biner yang disimpan dalam matriks dengan
nilai 0 (hitam) dan 1 (putih). Proses perubahan citra menggunakan MATLAB
ver.7.1. dengan menggunakan perintah :
Imdat =imread(‘sampel1(input).jpg’); imgray=rgb2gray(imdat);
imbw =im2bw(imgray)
Data yang dihasilkan (imbw) disimpan dalam file .dat
§ Tahap ke-4 (Image
Recognition) : Di tahap ini, vektor ciri image akan diklasifikasikan. Keluaran
dari tahap ini adalah klasifikasi image, yang kemudian dapat secara langsung
untuk mengenali suatu image. Metode yang digunakan adalah propagasi umpan balik
berbasis jaringan syaraf tiruan. Diagram alir (flowchart) pengenalan pola sidik
umpan balik berbasis jaringan syaraf tiruan dapat dijelaskan pada gambar
dibawah:
Proses Pelatihan (Training)
§ Sebelum melakukan
simulasi (running) pada command window matlab, terlebih dahulu dibuat
instruksi-instruksi (syntax) dalam M-file editor. Dan untuk menghapus semua
data dan syntax pada command window dituliskan instruksi clear, yang diakhiri
dengan tanda titik koma (seperti:clear).
§ Masukan data input dan
target. Pada penelitian ini, JST didesain dan dilatih untuk mengenali 4 pola
sidik jari. Masing – masing pola diwakili oleh nilai Boolean kisi 12×64. Yang
terdiri dari 768 vektor input dan 12 vektor target. Masing-masing vektor output
mewakili karakteristik sebuah sampel.. Sebagai contoh, sampel 1 diwakili oleh
target 1 (untuk alasan kemudahan, karena sampel 1 adalah sampel yang diambil
pertama kali).
§ Data-data yang diperoleh
disimpan dalam file .dat lalu dimuat ke M-File.% Data input & target P =
load (‘sampel semua.dat’); T = load (‘target.dat’);
§ Proses awal sebelum
dilakukan pelatihan, data input dan target harus dinormalisasi. Proses
normalisasi dapat dilakukan dengan bantuan mean dan deviasi standar. Fungsi
prestd akan membawa data ke bentuk normal dengan mean = 0 dan deviasi standar =
1. 1% Preprocessing [pn,meanp,stdp,tn,meant,stdt] = prestd(P,T);
§ Membangun jaringan dengan
algoritma propagasi umpan balik berbasis jaringan syaraf tiruan, instruksi yang
digunakan newff. 1% Membangun jaringan dengan propagasi umpan balik berbasis
jaringan syaraf tiruan net = newff(minmax(pn),[10 5 1],{‘tansig’ ‘logsig’
‘purelin’},’traingdm’)
§ Melihat bobot awal input,
lapisan dan bias. 1% Melihat bobot-bobot awal input, lapisan,dan bias
BobotAwal_Input = net.IW{1,1} BobotAwal_Bias_Input = net.b{1,1}
BobotAwal_Lapisan1 = net.LW{2,1} BobotAwal_Bias_Lapisan1 = net.b{2,1}
BobotAwal_Lapisan2 = net.LW{3,2} BobotAwal_Bias_Lapisan2 = net.b{3,1} 7.
Seting maksimum epoh, target error, learning rate, momentum dan epoh show. %
Set max epoh, target error, learning rate,momentum dan epoh show
net.trainParam.epochs = 30000; net.trainParam.goal = 1e-3; net.trainParam.lr =
0.5;net.trainParam.mc = 0.7; net.trainParam.show = 250;
§ Melakukan
pembelajaran/pelatihan terhadap data input dan target.% Melakukan
pembelajaran[net,tr] = train(net,pn,tn); pause
§ Melihat bobot akhir
input, lapisan.% Melihat bobot akhir input, lapisan, dan bias BobotAkhir_Input
= net.IW{1,1} BobotAkhir_Bias_Input = net.b{1,1} BobotAkhir_Lapisan1 = net.LW{2,1}
BobotAkhir_Bias_Lapisan1 = net.b{2,1} BobotAkhir_Lapisan2 = net.LW{3,2}
BobotAkhir_Bias_Lapisan2 = net.b{3,1}
§ Melakukan simulasi dan
hasilnya didenormalisasi pada data aslinya. % Melakukan simulasi an = sim(net,pn)a
= poststd(an,meant,stdt) H = [(1:size(P,2))' a'] sprintf(‘%2d %5.2f\n’,H’)
§ Melakukan evaluasi
terhadap output jaringan, yaitu data hasil pelatihan dengan target.%Melakukan
evaluasi terhadap output jaringan [m1,a1,r1]=postreg(a,T)
§ Menampilkan hasil
pelatihan dalam bentuk grafik. %Menampilkan hasil pelatihan dalam bentuk
grafik. plot([1:size(P,2)]‘,T,’bo’,[1:size(P,2)]‘,a’,’r*’) title(‘Pengujian
dengan data training: Target(o), output (*)’) xlabel(‘data
ke-’);ylabel(‘Target’);pause
Proses Tes (Testing )
1. Masukan data input dan target. Data-data yang diperoleh
disimpan dalam file .dat lalu dimuat ke M-File.
% Data input & target
P = load (‘sampel1(input).dat’); T = load
(‘sampel1(target).dat’);
2. Melakukan simulasi jaringan.
% Simulasi jaringan
Qn = trastd(Q,meanp,stdp) bn = sim(net,Qn)
b = poststd(bn,meant,stdt)
3. Menampilkan hasil perbandingan antara target yang didapat
melalui metode propagasi umpan balik dengan target yang diinginkan dalam bentuk
grafik
%grafik [b' TQ'];
plot(b,’b-*’) hold plot(TQ,’r-o’)
§ Proses Pengenalan Pola
Sidik Jari
4.2 Contoh Pembuatan Jaringan Saraf Tiruan dengan Scilab
Dalam jendela Scilab terdapat simbol –> merupakan tanda bahwa
Scilab siap untuk untuk menerima suatu perintah yang akan kita berikan.
Misalkan kita akan melakukan suatu perhitungan yaitu 1.28+2.56 maka kita harus
menuliskan ekspresi matematika tersebut setelah simbol –> kemudian tekan
tombol ENTER untuk melakukan eksekusi terhadap ekpresi matematika yang telah
kita ketikkan kemudian akan muncul hasilnya pada baris berikutnya. Gambar 1
merupakan ilustrasi mengenai contoh perhitungan yang telah kita lakukan.
Setelah selesai melakukan suatu perhitungan atau mengerjakan
suatu perintah yang kita berikan maka Scilab akan menampilkan kembali simbol
–>. Hal ini sebagai tanda bahwa Scilab telah siap untuk mengerjakan perintah
yang lain. Scilab juga dilengkapi dengan sistem bantuan (help) yang cukup baik,
untuk melihat sistem bantuan (help), gunakan menu ? Scilab Help. Pada jendela
bantuan, kita dapat memperoleh penjelasan yang detail mengenai suatu fungsi
atau operator tertentu.
Scilab juga memberikan demonstrasi sebagai pengenalan mengenai
Scilab serta beberapa contoh aplikasi penggunaannya. Untuk melihat demonstrasi
Scilab, klik menu ? Scilab demos. Apabila perintah tersebut kita jalankan maka
akan muncul sebuah form seperti yang terdapat pada gambar dibawah ini
Dalam scilab demos kita dapat memanggil fortran subrountine dan
fungsi-fungsi dalam bahasa C. Pada fortran subrountine terdapat Scilab objects
berupa Matrices(Perhitungan Matrix), Lists, Scalars (Didalamnya terdapat tipe
data diantaranya berupa real,boolean,character string,polynomial dan
relational), Operation dan fungsi-fungsi lainnya.
Perintah Sederhana
- Langkah kita yang pertama adalah dengan menentukan variable
scalar dengan cara melakukan pengetikan seperti berikut: –>panjang=5 //Tekan
Enter
panjang = 5.
–>lebar=10
lebar = 10.
–>luas=panjang*lebar luas = 50.
Pendefinisian suatu variable scilab memiliki case sensitive jadi
variabel “luas” dan “Luas” adalah dua variabel yang berbeda walaupun secara
tulisan sama.
- Mendefinisikan dua buah vector, yaitu vector x dan vector y:
–>x = [1 2 3]
x = 1. 2. 3.
–>y = [4 5 6]
y = 4. 5. 6.
–>y(1) //elemen array pertama
ans = 4.
–>x+y
ans = 5. 7. 9.
–>y’ //transpose pada y
ans =
4.
5.
6.
–>x*y’
ans = 32.
- Contoh Matrix :
–>X = [1 2 3; 4 5 6; 7 8 9]
X = 1. 2. 3. 4. 5. 6. 7. 8. 9.
–>A = [1 2 3 // cara lain
–> 4 5 6
–> 7 8 9]
–> A*x’
ans =
14
32
50
- Vektor besar:
–>v=[1:20]
v = column 1 to 13
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
column 14 to 20
14. 15. 16. 17. 18. 19. 20.
Variabel-variabel yang telah kita buat akan disimpan oleh Scilab
dalam ruang kerja. Untuk melihat nama-nama variabel yang telah dibuat, gunakan
perintah who.
Terlihat bahwa perintah who, selain menampilkan
variabel-variabel yang telah kita buat, juga menampilkan variabel-variabel yang
telah terpasang pada Scilab. Untuk menghapus suatu variabel, gunakan perintah
clear.
–>clear luas tinggi // menghapus variabel luas dan tinggi
–>clear // menghapus semua variabel yang telah kita buat
Contoh-contoh pembuatan matrik dan vektor adalah sebagai
berikut:
Visualisasi Data
Scilab dapat digunakan untuk melakukan visualisasi data, baik
secara dua dimensi maupun tiga dimensi. Untuk membuat grafik dua dimensi kita
dapat menggunakan perintah plot2d, kemudian untuk grafik tiga dimensi kita
dapat menggunakan perintah plot3d, seperti yang diperlihatkan pada
contoh-contoh di bawah ini. Penjelasan detail mengenai pembuatan grafik dapat
dilihat pada sistem bantuan yang terdapat pada program Scilab. –>//
–>x = linspace(-1,1,61)’;
–>y1 = x.^2; y2 = 1 – y1; y3 = 2*y1;
–>plot2d(x,[y1 y2 y3])
–>xtitle(‘Kurva Berganda’,’x’,’y’)
–>//
x = -3:0.1:3; y = -3:0.1:3; [X,Y] = meshgrid(x,y);
Z = (X*2- Y*2).*(-X*2 – Y*2);
xset(‘colormap’,hotcolormap(100))
clf, grayplot(x,y,Z), xtitle(”,’x’,’y’)
–>//
–>x = linspace(0,2*%pi,50);
y = x;
–>z = cos(x’)*cos(y);
–>clf, plot3d1(x,y,z)
–>xtitle(‘z = cos(x)*cos(y)’),
xset(‘colormap’,jetcolormap(50))
Bab 5
PENUTUP
5.1 Saran
Penulisan ini hanya menjelaskan dasar-dasar pengetahuan mengenai
teknologi jaringan saraf tiruan dan masih belum cukup untuk menjadi patokan
dalam pengembangan teknologi tersebut. Jika pembaca ingin memahami lebih
mendalam, penulis menyarankan mencari sumber-sumber tertulis lainnya untuk
referensi. Sehingga pembaca dapat melakukan pengembangan lebih lanjut tentang
teknologi jaringan saraf tiruan.
5.2 Kesimpulan
Jaringan Saraf Tiruan (JST) atau Artificial Neural Network
merupakan suatu pendekatan yang berbeda dari metode AI lainnya. JST merupakan
suatu model kecerdasan yang diilhami dari struktur otak manusia dan kemudian
diimplementasikan menggunakan program computer yang mampu menyelesaikan
sejumlah proses perhitungan selamaproses pembelajaran berlangsung. Dalam NN,
neuron dikelompokan dalam layer, yang disebut neuron layer. Biasanyasetiap
neuron dari sebuah layer dihubungkan ke semua neuron yang ada di layer
belakangmaupun depannya (kecuali input dan output). Informasi yang dikirim
dalam sebuah NN, dipropagasi layer – per – layer mulai dari input hingga output
tanpa atau melalui satu ataulebih hidden layers. Multi-Layer Perceptron adalah
jaringan syaraf tiruan feed-forward yang terdiri dari sejumlah neuron yang
dihubungkan oleh bobot-bobot penghubung. Tujuan padapembelajaran supervised
learning adalah untuk menentukan nilai bobot-bobot koneksi didalam jaringan
sehingga jaringan dapat melakukan pemetaan (mapping) dari input keoutput sesuai
dengan yang diinginkan. Pemetaan ini ditentukan melalui satu set polacontoh
atau data pelatihan (training data set). Tujuan pada pembelajaran supervised
learning adalah untuk menentukan nilaibobot-bobot koneksi di dalam jaringan
sehingga jaringan dapat melakukan pemetaan(mapping) dari input ke output sesuai
dengan yang diinginkan. Pemetaan ini ditentukan melalui satu set pola contoh
atau data pelatihan (training data set).
References
[2]Hermawan, A. (2006). Jaringan Syaraf Tiruan Teori dan
Aplikasi. Yogyakarta: Penerbit Andi