Electrical Engineering Department

Menu

bismillah
Hidup itu indah hidup itu bahagia hidup itu bermakna ...ketika semua ditujukan untuk beribadah kepada ALLAH SWT
Tampilkan postingan dengan label Materi Kuliah. Tampilkan semua postingan
Tampilkan postingan dengan label Materi Kuliah. Tampilkan semua postingan

Sabtu, 20 Mei 2017

On 09.46 by adnan in ,    1 comment

Sabtu, 11 Juni 2016

On 06.43 by adnan in ,    No comments
Program Jaringan Syaraf Tiruan (JST) yang telah dibuat pada posting terdahulu dapat digunakan untuk menirukan fungsi Logika.

Tahapan yang dilakukan adalah :

1. Melakukan proses pembelajaran dengan masukan JST adalah input logika dan keluaran JST dibandingkan dengan keluaran logika/target keluaran yang akan ditirukan.

Gambar berikut ini memperlihatkan proses tersebut
tabel kebenaran untuk logika OR, AND dan XOR sebagai berikut:
2. Proses pembelajaran dilakukan untuk semua kemungkinan masukan dan keluaran.

iterasi ke 1 : masukan x1=0, x2=0, dan target sesuai logika yang mau dipelajari

iterasi ke 2 : masukan x1=0,x2=1, dan target sesuai logika yang mau dipelajari

iterasi ke 3 : masukan x1=1,x2=0, dan target sesuai logika yang mau dipelajari

iterasi ke 4 : masukan x1=1,x2=1, dan target sesuai logika yang mau dipelajari

iterasi ke 5 dst : diulang dari iterasi ke 1,2,3,4,

berikut ini listing program untuk proses pembelajran dengan 4 kemungkinan input dan ouput:
ulang
3. Simpan bobot hasil pembelajaran.

4. Uji coba JST.

gambar dibawah ini adalah program untuk uji coba JST hasil belajar.

tes1

tes2

Program berikut ini adalah sebagian program JST unntuk menirukan fungsi logika yang merupakan modifikasi dari program JST yang telah diberikan pada posting terdahulu, pada program ini target keluaran, banyaknya iterasi, nilai learning rate dan banyaknya neuron di hidden layer diinputkan/masukan dari consule scilab.

jst-logika

Program berikut ini adalah sebagian program JST unntuk menirukan fungsi logika yang merupakan modifikasi dari program JST yang telah diberikan pada posting terdahulu, pada program ini target keluaran, banyaknya iterasi, nilai learning rate dan banyaknya neuron di hidden layer diinputkan/masukan dari consule scilab.

jst-logika

Berikut ini hasil compilasi program JST untuk menirukan fungsi logika :

hasil-belajar

perhatikan gambar diatas program JST menirukan fungsi logika XNOR dapat bekerja dengan baik, hal ini dapat dilihat dari keluaran hasil pembelajaran mendekati nilai yang diinginkan.

Jumat, 13 Mei 2016

On 03.27 by adnan in ,    No comments


CODE / SUBJECTS : MTI 02 3001 Artificial Intelligence

CREDITS : 3 ( Three ) credits



DESCRIPTION :

This course equips students to learn concepts , principles and implementation in the field of artificial

intelligence.


THE COMPETENCE WANT TO ACHIEVED :

After passing this course, students are expected to :

Know and understand the concept , principle, methods and implementation , and has a professional

attitude through mastery of artificial intelligence .


HIGHLIGHTS:

1 . Introduction

2 . Representation and Knowledge Problems

3 . Concepts and Methods Tracking ( DFS , a Breadth FS , BFS , Hill Climbing , A * , Minimax )

4 . Concepts and Methods Genetic Algorithm

5 . Concepts and Methods for Planning ( Goal Stack Planning)

6 . Concepts and Methods of Reasoning ( Fuzzy Logic )

7.  Concepts and Methods of Artificial Neural Network


8. Presentation and Discussion of Major Duties

9. Practice : Knowledge Base

10. Practice : Genetic Algorithm

11. Practice : Fuzzy Logic

12. Practice : Artificial Neuro Network

Ujian Akhir Semester 

DOWNLOAD MATERI FOLDER



REFERENCE :

1 ) Russell and Norvig , Artificial Intelligence : A Modern Approach , Prentice Hall , 1995.

2 ) Zbignew M. , Genetic Alg + Data Structure = Evolution Programs , springler - Verlag .

3 ) Frank Puppe . " Systematic Introduction to Expert Systems " , Springer - Verlag , 1994

4 ) Stuart Russell & Peter Norvig J , Artificial Intelligence ; A Modern Approach , Prentice - Hall

International , Inc. , Textbook

5 ) Elaine Rich , Artificial Intelligence , McGraw - Hill , Textbooks

Rabu, 07 Oktober 2015

Pendahuluan 

Adaptif dalam bahasa sehari-hari dapat diartikan sebagai kemampuan mengubah kelakuan mengikuti perubahan lingkungan. Adaptif Kontrol adalah kontroller yang dapat mengubah sifat kendalinya untuk merespon perubahan dinamis dari proses dan lingkungannya. Adaptif Kontrol dapat juga diartikan sebagai sebuah kontroller dimana parameter kontrolnya dapat diubah sesuai dengan kondisi lingkungan atau proses dinamis dari suatu sistem.

Gambar berikut ini menunjukan sistem kendali adaptif :

Gambar: Kendali Adaptif

dari gambar diatas dapat dilihat ada 3 blok utama yaitu :
  • Plant atau proses
  • Kontroller atau pengendali
  • Pengatur parameter
Plant adalah suatu sistem atau proses yang akan dikendalikan secara adaptif. Kontroller adalah pengendali yang akan mengeluarkan sinyal kendali atau sinyal masukan ke plant.proses sehingga keluaran plant sesuai dengan yang diharapkan/setpoint.Pengatur parameter adalah suatu perhitungan atau analisa berdasarkan masukan dari sinyal kendali dan keluaran plant untuk merubah parameter kontroller sehingga dihasilkan kontoller yang tepat.

Selasa, 29 September 2015


Sistem kendali terdiri dari tiga komponen utama yaitu masukan kendali, proses kendali dan keluaran kendali. Kendali adalah sesuatu yang diinginkan atau target yang akan dicapai. Jadi sistem kendali dapat dikatakan sebagai kumpulan komponen yang saling berinteraksi untuk melakukan pengendalian atau dapat juga dikatakan  kumpulan komponen yang saling bekerja sama untuk mencapai tujuan/target tertentu. Masukan sistem kendali adalah target yang diinginkan, proses kendali adalah kegiatan yang dilakukan untuk mencapai target, sedangkan keluaran sistem kendali adalah kenyataan yang terjadi atau hasil dari proses pengendalian.

Berikut ini adalah gambar dari sistem dan sistem kendali:




Pengendalian umumnya dilakukan dengan dua cara yaitu:
  • Pengendali terbuka
  • Pengendali tertutup

Pengendali Terbuka (Open Loop Control)

Pengendali terbuka atau sering disebut sebagai open loop, adalah pengendali dimana hasil keluaran pengendalian tidak memperpengaruhi aksi kendali. Gambar berikut ini menunjukan sistem kendali terbuka:

Gambar : Sistem Kendali Terbuka

Perhatikan gambar diatas proses kendali dapat dibagi dua bagian yaitu kontroller atau alat kendali dan plant atau proses yang akan dikendalikan.

Kontroller atau alat kendali adalah peralatan kendali yang digunakan untuk mengendalikan plant/proses. Contoh alat kendali/kontroller antara lain saklar, potensiometer, kran, dll.

Ditinjau dari cara kerja kontroller dapat dibedakan menjadi :
  • Kendali On/Off
  • Kendali Proposional, Integrator dan Difrensiator atau lebih dikenal dengan (PID) 
Pengendalian terbuka banyak dijumpai dalam kehidupan sehari-hari seperti menghidupkan lampu ruangan, menghidupkan kipas angin, televisi, dll.

Gambar berikut ini contoh kendali terbuka:


Pada contoh tersebut diatas masukan adalah sesuatu yang diinginkan yaitu lampu hidup, kemudian proses kendali adalah menghidupkan (meng-on-kan) saklar hasilnya adalah lampu hidup atau bisa saja lampu tetap mati, oleh karena itu kendali seperti ini disebut kendali terbuka karena keluaran/hasil kendali tidak mempengaruhi aksi kendali/kontrol. 


Pengendali Tertutup (Closed Loop Control)

Pengendali tertututp atau bisa disebut juga closed loop control adalah kendali dimana aksi kendali dipengaruhi oleh keluaran hasil kendali. Gambar berikut ini menunjukan pengendali tertutup:
Gambar : Sistem Kendali Tertutup

Pada pengendali tertutup ada tiga proses utama yaitu :
  • Proses mengukur hasil pengendalian
  • Proses membandingkan hasil pengukuran dengan referensi
  • Proses mengendalikan plant sehingga keluaranya sesuai dengan yang diinginkan/referensi
Proses mengukur hasil keluaran plant dapat dilakukan mengunakan sensor, proses membandingkan dapat dilakukan komparator dan proses mengendalikan dilakukan oleh kontroller. 

Sala satu contoh prngendalian tertutup adalah proses mengatur suhu AC (air conditioner) ,
Berikut ini flowchart proses pengaturan suhu keluaran AC 


Senin, 28 September 2015

On 07.36 by adnan in ,    No comments

Minggu, 27 September 2015

On 03.11 by adnan in ,    No comments
Scilab adalah perangkat lunak aplikasi untuk menyelsaikan masalah komputasi, mirip seperti Matlab,  perangkat lunak ini bersifat gratis dan dapat di download dilink berikut ini  https://www.scilab.org
Pada tulisan kali ini saya akan mencoba menerangkan langkah demi langkah pembuatan program jaringan syaraf tiruan (JST) dengan menggunakan software Scilab 5.4.1
Jalankan software  Scilab, maka akan tampak tampilan seperti gambar berikut ini:
awal

pada menu kiri atas klik pada bagian Scinotes  :
note-klik
akan muncul tampilan Scinotes  seperti ini :
note2
Buat program JST di Scinotes seperti ini :
note3
Catatan : Scinotes adalah editor untuk menuliskan program Scilab
Aturan penulisan program :
tanda " // "  (garis miring dua kali) digunakan untuk menuliskan keterangan, jadi tidak akan diproses dalam program
tanda ";"  (titik koma)  untuk mengakhiri setiap perintah agar tidak muncul dalam editor consule di Scilab
Berikut ini gambar struktur JST yang akan kita buat programnya :
multilayer
Berikut ini listring program JST pada Scinotes,
scinote-jstscinote-jst1scinote-jst2scinote-jst3
Setelah program dibuat jalankan program dengan men-klik run seperti gambar dibawah ini:
note-run
Kemudian simpanlah program yang dibuat di folder yang anda kehendaki.
Untuk melihat hasil run/exsekusi program dapat dilihat di menu editor Scilab pada posisi kanan atas, seperti gambar berikut:
hasil
untuk melihat nilai varibel yang telah dibuat dalam program klik pada bagian varibelnya maka akan muncul seperti ini:
(contoh melihat variabel w / bobot klik variabel w)
hasil-w
atau untuk melihat nilai variabel yang telah dibuat dalam program dapat dituliskan pada editor/consule Scilab, dilanjutkan dengan menekan tombol enter maka akan muncul nilai variabel seperti gambar dibawah ini:
hasil-1
gambar diatas memperlihatkan nilai a dan nilai target yang hampir sama, ini menunjukan program tersebut sudah berjalan dengan baik.
Tahap demi tahap  program JST dapat dijabarkan sebagai berikut:
Inisialisasi awal menentukan struktur JST seperti:
  • Jumlah masukan/input
  • Jumlah neuron di lapisan tersembunyi (hidden layer)
  • Jumlah keluaran/output
  • Kecepatan Pembelajaran (Learing rate)
  • Bobot awal  input ke hidden layer
  • Bobot awal hiden layer ke output layer
  • Nilai masukan
  • Target
Berikut ini listing programnya untuk menentukan nilai masukan, neuron di hidden layer, output layer, kecepatan pembelajaran,
inisialisasi1
Listing program untuk membuat/men-generate bobot awal di layer input ke layer hidden adalah sebagai berikut:
ini-w
perhatikan banyaknya bobot antara masukan ke hidden layer adalah banyaknya input X banyaknya neuron di hidden layer atau jXi
program tersebut diatas dapat menghasilkan bobot sebanyak jXi
perhatikan notasi untuk w dimulai dari tujuan kemudian asal masukan atau ditulis  w(j,i) , j=adalah neuron tujuan dan i=adalah masukan
Berikut ini listing program untuk membuat/men-generate bobot awal di hidden layer ke output layer:
ini-v
program ini identik dengan program men-generate bobot awal w, bedanya hanya tergantung jumlah neuran di hidden layer dengan  di output layer.
Pemberian nilai target dan masukan/input dapat ditulis sebagai berikut:
target
tanda ";"(titik koma) menyatakan bentuk matrix [ix1] kalau menggunakan "," (koma) matrix [1xi]
Perhatikan pada gambar dj, dalam bentuk persamaan matematiknya dapat ditulis :
dj= ∑ (pi.wji)
dalam bentuk  program Scilab dapat ditulis :
dj
perhatikan pada gambar hj:
hj=f1(dj)   keluaran adalah fungsi aktifasi dari dj, jika menggunakan sigmoid fungsi dapat dituliskan
hj
dalam bentuk program Scilab dapat ditulis:
programhj

Nilai keluaran neuron pada hidden layer merupakan masukan bagi neuron pada layer output,
persamaannya dapat ditulis:
qm
dalam bentuk program scilab dapat ditulis:
qm-scilab
dan Keluaran JST (a) tergantung dari aktivasi fungsi yang digunakan, apada contoh ini menggunakan sigmoid fungsi dengan rumusan sebagai berikut:
am
dalam bentuk program scilab dapat ditulis:
am-scilab
Dalam proses pembelajaran maka keluaran JST dibandingkan dengan target yang ingin dicapai, jika terjadi perbedaan ini berarti masih ada error/kesalahan
yang harus diperbaiki,  persamaannya untuk error (e) dapat ditulis:
error = target -  keluaran JST
atau
e = t -a
dalam bentuk program scilab dapat ditulis:
error
perhatikan listring program diatas banyaknya error(e) adalah sebanyak target /keluaran JST.
Setelah didapat error maka proses selanjutnya adalah  "BACKPROPAGATION" yaitu proses meng-update bobot sehingga dihasilkan keluaran sesuai dengan target yang diinginkan, proses ini juga disebut proses belajar JST.
Secara umum update bobot dapat dirumuskan sebagai berikut:
wk1
artinya bobot berikutnya adalah bobot sekarang ditambah perubahan bobot, dimana perubahan bobot dapat ditulis:
deltawk
persamaan diatas menunjukan perubahan bobot  adalah negatif/berawanan dari adanya perubahan E terhadap w, dimana E adalah cost energi dari error (e) :
cost
E=cost energi fungsi, e=error
Proses  up-date bobot dilihat dari sisi kanan ke kiri atau dari sisi keluaran ke masukan JST,
error (e) bergerak ke belakang, untuk gambar JST diatas maka up-date bobot v (bobot antara hidden layer ke output layer)  dilakukan terlebih dahulu,  baru update bobot w (bobot antara masukan ke hidden layer).
perubahan  bobot di hidden layer dapat dijabarkan sebagi berikut:
dve
f'(q) dapat dicari sebagai berikut,  jika mengunakan fungsi sigmoid :
fq
maka :
   f'q
jadi :
aa1
dalam bentuk program scilab dapat ditulis:
dv-scilab
untuk perubahan  w  dapat dijabarkan sebagai berikut:
dw
dalam bentuk scilab dapat ditulis:
dw-scilab
Untuk meng-update bobot w dan v dapat dijabarkan sebagai berikut:
deltav
dan
wk1
dalam bentuk program scilab dapat dituliskan :
update-bobot
dan yang terakhir adalah untuk memyimpan data error :
data-e
Semua program mulai baris 31 s/d 104 berulang sampai k=iterasi, dimana banyaknya iterasi sdh di masukan pada inisilisasi awal.
Berikut ini ket program looping pada baris ke 30 dan diakhiri baris ke 105
looping