Jumat, 04 Juli 2014

artifial neural network

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.
image: 0C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_mc.eps
(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.
image: 1C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_per.eps
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
2.2.1 Pengertian Dasar
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.
image: 2C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_n.eps
(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.
image: 3C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_b.eps
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.
2.2.2 Definisi
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.
2.2.3 Karakteristik
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.
image: 4C__Users_Tomo_Desktop_New_folder_Artificial_Ne___strasi-fungsi-sigmoid-biner-dengan-range-01.eps

§  Fungsi Sigmoid Bipolar

Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara 1 sampai -1.
image: 5C__Users_Tomo_Desktop_New_folder_Artificial_Ne___asi-fungsi-sigmoid-bipolar-dengan-range-111.eps
2.3 Arsitektur Artificial Neural Network
image: 6C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_11.eps

§  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
image: 7C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_3.eps
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
image: 8C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_4.eps

§  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.
image: 9C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_2.eps
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).
image: 10C__Users_Tomo_Desktop_New_folder_Artificial_N___-Jaringan-Syaraf-Tiruan-Feedforward-300x198.eps
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.
image: 11C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_222.eps
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
image: 13C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_matlab.eps
3.1.1 Pengertian 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

3.1.4 Fungsi Pada Matlab
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
image: 14C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_x.eps
2. Fungsi yang mempunyai parameter tapi tidak mempunyai nilai balik
function nama_fungsi(parameter) kumpulan_perintah; end
image: 15C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_xx.eps
3. Fungsi yang tidak mempunyai parameter dan nilai balik
function nama_fungsi() kumpulan_perintah; end
image: 16C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_xxx.eps
4. Fungsi yang tidak mempunyai parameter tapi mempunyai nilai balik
function nilai_balik = nama_fungsi() kumpulan_perintah; end
image: 17C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_xxxx.eps
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
image: 18C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_matlab_icon_by_ggmeza6.eps
Selanjutnya kita akan mendapatkan tampilan seperti pada Gambar berikut ini.
image: 19C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_ssa.eps
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.
image: 20C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_ssw.eps
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];
image: 21C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_ha.eps
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:
image: 22C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_sq.eps
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.
image: 23C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_6s.eps
Selanjutnya kita akan mendapatkan sebuah tampilan Matlab Editor yang masih kosong seperti ini. Selanjutnya kita buat program seperti pada contoh sebelumnya
image: 24C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_7s.eps
Tampilan Matlab Editor tempat membuat program.
image: 25C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_8a.eps
Contoh penulisan program pada Matlab Editor
image: 26C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_91.eps
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

image: 27C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_10.eps
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
image: 28C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_index.eps
3.2.1 Pengertian 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”.
image: 29C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_k.eps
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”.
image: 30C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_j.eps
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 :
image: 31C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_JST1.eps
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’);
image: 32C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_JST3.eps
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 :
image: 33C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_JST6.eps
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:
image: 34C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_JST8.eps
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.
image: 35C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_paste1.eps
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 :
image: 36C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_gg.eps

§  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:

image: 37C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_kk.eps
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).

image: 38C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_tb.epsimage: 39C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_tb1.eps

§  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

image: 40C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_sd.eps
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.
image: 41C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted5.eps
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.
image: 42C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted7.eps
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
image: 43C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted8.eps
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.
image: 44C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted9.eps
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:
image: 45C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted10.eps
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’)
image: 46C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted11.eps
–>//
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’)
image: 47C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted12.eps
–>//
–>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))
image: 48C__Users_Tomo_Desktop_New_folder_Artificial_Neural_Network_Gambar_pasted13.eps
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
[1]Wikipedia.2013.”Jaringan Saraf Tiruan”.http://id.wikipedia.org/wiki/Jaringan_saraf_tiruan.4 juli 2014.
[2]Hermawan, A. (2006). Jaringan Syaraf Tiruan Teori dan Aplikasi. Yogyakarta: Penerbit Andi
[3]Nanang.2013.”Jaringan Saraf Tiruan”.http://jalanwaktu.wordpress.com/jaringan-syaraf-tiruan/.4 juli 2014.
[5]Wikipedia.2014.”Artificial neural network”.http://en.wikipedia.org/wiki/Artificial_neural_network.4 juli2014.
[6]Wikipedia.2014.”Neural Network Software”.http://en.wikipedia.org/wiki/Neural_network_software.4 juli 2014
[7]Wikipedia.2014.”Artificial_intelligence”.http://en.wikipedia.org/wiki/Artificial_intelligence.4juli 2014.
[8]University of Wisconsin.2007.”A Basic Introduction To Neural Networks”.http://pages.cs.wisc.edu/~bolo/shipyard/neural/local.html.4 juli 2014.
[9]Wikipedia.2014.”MATLAB”.http://id.wikipedia.org/wiki/MATLAB.2014.
[10]Rafdy.2009.”Melakukan Training Jaringan Syaraf Tiruan “.http://rafdi.wordpress.com/2009/06/19/melakukan-training-jaringan-syaraf-tiruan-backpropagation-pada-matlab/.4 juli 20014.
[11]Wikipedia.2014.”Scilab”.http://id.wikipedia.org/wiki/Scilab.2014.

1 komentar: