Pengantar Sistem Kendali Cerdas
Teks penuh
(2) PRAKATA Alhamdulillah, puji syukur penulis panjatkan kepada Allah SWT sebab atas karunia-Nya penulisan buku ini dapat diselesaikan. Kendali cerdas menjadi bidang ilmu yang sangat penting untuk dikuasai pada era industri 4.0 saat ini. Penerapan sistem kendali cerdas terbukti mampu meningkatkan performa sistem menjadi lebih baik. Melihat perkembangan dan penerapan sistem kendali cerdas yang semakin pesat, maka dirasa perlu membekali mahasiswa tentang kendali cerdas. Pada rancangan buku ini, kami mengusulkan materi-materi dasar kendali cerdas diantaranya adalah jaringan syaraf tiruan atau fuzzy logic. Dengan adanya buku ini, diharapkan pembaca dapat mengenal, memahami dan menggunakan teknologi kendali cerdas untuk berbagai macam aplikasi. Penulis mengucapkan terimakasih yang sebesar-besarnya kepada Politeknik Negeri Batam yang telah mendanai penyusunan buku ini melalui Program Hibah Buku ISBN tahun 2021.. Batam, April 2021 Penulis. i.
(3) DAFTAR ISI. PRAKATA ........................................................................................... i DAFTAR ISI ........................................................................................ ii 1. KENDALI CERDAS....................................................................... 4 2. PENGENALAN LABVIEW .......................................................... 10 3. LOGIKA FUZZY ......................................................................... 21 4. DESAIN SISTEM FUZZY ............................................................ 48 5. METODE DEFUZZIFIKASI ......................................................... 62 6. DASAR ARTIFICIAL NEURAL NETWORK ................................... 77 7. SINGLE NEURON ARCHITECTURE ............................................ 88 8. MULTILAYER NEURAL NETWORK ............................................ 97 9. BACKPROPAGATION ............................................................. 118 DAFTAR PUSTAKA ........................................................................ 144. ii.
(4) 1. Kendali Cerdas. Bab ini membahas tentang pengantar kendali cerdas, penerapan kendali cerdas di industri dan LabVIEW PID and Fuzzy Toolkit.. Pokok Bahasan Pengantar Kendali Cerdas Penerapan Kendali Cerdas di Industri LabVIEW PIDand Fuzzy LogicToolkit. iii.
(5) 1. KENDALI CERDAS Tujuan:. Mengetahui deskripsi kendali cerdas, penerapannya di industri serta tool yang bisa digunakan untuk membangun sistem kendali cerdas.. 1.1. Pengantar Kendali Cerdas Intelligence atau kecerdasan adalah kemampuan untuk belajar dari pengalaman, beradaptasi dengan situasi yang baru dan menggunakan pengetahuan untuk menyelesaikan permasalahan. Kendali cerdas dibuat dengan meniru karakteristik dan cara kerja sistem biologis dengan tujuan dapat menghasilkan sistem kontrol dengan kemampuan untuk menyelesaikan permasalahan seperti yang dilakukan manusia. Beberapa metode yang digunakan pada sistem kendali cerdas adalah sebagai berikut: Fuzzy logic system, dibangun berdasarkan pengalaman manusia yang diekspresikan dalam bahasa linguistik (biasanya berbentuk aturan IF-THEN). Artificial neural network, meniru proses belajar jaringan syaraf manusia, dimana sistem jaringan dapat mempelajari pola-pola yang berbeda menggunakan metode pembelajaran tertuntun (supervised) atau unsupervised. Evolutionary methode, bekerja berdasarkan proses yang berevolusi untuk mencari prosedur yang lebih optimal. 4.
(6) Predictive methode, adalah metode matematis yang dapat menghasilkan sifat atau perilaku sistem dimasa depan. Setiap metode pasti memiliki kelebihan dan kekurangan, namun beberapa kekurangan bisa diperbaiki dengan menggabungkan beberapa metode. Misalnya fuzzy logic dapat digabung dengan neural network , sistem ini dikenal dengan nama Adaptive Neuralbased Fuzzy logic Inference System (ANFIS). Dengan metode ini memungkinkan sistem fuzzy menjadi adaptif. Kendali cerdas adalah solusi yang bagus untuk proses dimana model matematis yang menggambarkan sistem hanya diketahui secara parsial. Misalnya pada sistem konvensional Proporsional Integral Differential (PID), sistem dimodelkan scara analitik dengan cara mengatur persamaan differensial dimana parameter tersebut harus disesuaikan setiap kali ada perubahan sifat atau karakter sistem.Pada fuzzy logic controller, hal ini bisa dilakukan oleh fuzzy rule-based expert system, yaitu sebuah model logika proses berfikir seperti halnya manusia. Kendali cerdas yang dibangun saat ini diarahkan seperti black box yang dengan mudah dapat dipasang pada sebuah plant, kemudian kontroler akan mengatur semuanya. 1.2. Penerapan Kendali Cerdas di Industri Penggunaan kendali cerdas di industri semakin hari semakin luas. Perusahaan-perusahaan Jepang seperti Matsushita, Sanyo, Hitachi dan Sharp, telah menggunakan teknologi neural network pada produknya yang dikenal dengan nama kerosene fan heater. Heater milik Sanyo misalnya, menggunakan neural network untuk mempelajari pola penggunaan harian konsumen yang kemudian 5.
(7) digunakan untuk menyalakan heater secara otomatis pada fase pre-heat. Gambar 1-1 memperlihatkan posisi kendali cerdas yang menggabungkan sistem konvensional dan sistem biologis. Hasilnya adalah suatu sistem kendali modern yang dibangun dengan kemampuan belajar untuk meningkatkan unjuk kerja secara terus menerus seperti yang dilakukan manusia.. Gambar 1-1 Posisi Kendali Cerdas Terhadap Sistem Konvensional dan Sistem Biologis. 1.3. LabVIEW PID and Fuzzy Logic Toolkit Salah satu tool yang bisa digunakan untuk membangun sistem kendali cerdas adalah PID and Fuzzy Logic Toolkit dari National Instruments. Dengan toolkit ini, kita dapat membuat sistem kendali PID maupun fuzzy logic menggunakan software LabVIEW. Gambar 1-2 memperlihatkan function pallete Control & Simulation yang didalamnya terdapat Fuzzy Logic Toolkit. Gambar 1-3. 6.
(8) menunjukkan sejumlah VI yang bisa digunakan untuk membangun sistem kendali fuzzy logic. Gambar 1-4 dan 1-5 memperlihatkan sistem pengenalan pola (pattern matching) menggunakan fuzzy logic yang dibuat di LabVIEW. Sistem ini akan dapat mengenali bentuk part yang dibaca oleh scanner.. Gambar 1-2 PID and Fuzzy Logic Toolkit. Gambar 1-3 Fuzzy VI pada Fuzzy Logic Toolkit. 7.
(9) Gambar 1-4 Pattern Matching Fuzzy Logic Controller. Gambar 1-5 Diagram Blok Pattern Matching Fuzzy Logic Controller. 8.
(10) 2. Pengenalan. LabVIEW Bab ini Anda akan belajar tentang komponen dan penggunaan LabVIEW agar dapat membuat project dan VI.. Pokok Bahasan . Apa itu LabVIEW? Project Explorer Komponen VI Front Panel Block Diagram Wire Latihan 1. Membuat Project dan VI. 9.
(11) 2. PENGENALAN LABVIEW Tujuan:. Mengetahui cara membuat project pada LabVIEW.. 2.1 Apa itu LabVIEW? Laboratory Virtual Instrumentation Engineering Workbench (LabVIEW) adalah software untuk membuat aplikasi dalam bidang test, control dan instrumentasi. 2.2 Project Explorer Project pada LabVIEW terdiri dari VI, file yang diperlukan untuk mendukung VI tersebut bekerja secara benar dan file tambahan seperti dokumentasi atau link. Gunakan Project Explorer window untuk mengelola project LabVIEW. Sebuah project LabVIEW disimpan dalam bentuk file project (.lvproj). Dalam satu project bisa terdapat file Virtual Instrument (VI) (.vi) dan Custom Control (.ctl) seperti tampak pada Gambar 2-1.. Gambar 2-1 Project Explorer Window 10.
(12) 2.3 Komponen VI LabVIEW VI terdiri dari tiga komponen utama yaitu front panel, block diagram dan icon/connector pane. Tabel 2-1 menunjukkan fungsi ketiga kompenen VI. Tabel 2-1 Komponen VI Front Panel Merupakan user interface. Block Diagram Berisi graphical source code. Memiliki control (input) dan indicator (output). Berisi terminal untuk control dan indicator pada front panel. Icon/Connector Pane Merepresentasikan VI dan memungkinkan menggunakan VI menjadi subVI Memetakan input dan output VI. 2.4 Front Panel Gunakan front panel window toolbar untuk menjalankan VI.. Gambar 2-2 Front Panel 11.
(13) 2.5 Control and Indicator Tabel 2-2 Fungsi Control dan Indicator Control Input interaktif Knob, push button, dial dan input lainnya Mensimulasikan perangkat instrumentasi input dan memberikan data ke block diagram. Indicator Output interaktif Graph, LED dan display lainnya Mensimulasikan perangkat instrumentasi output dan menampilkan data yang diambil atau dihasilkan block diagram. Gambar 2-3 Control dan Indicator. 2.6 Tipe Data String, Boolean dan Numerik Tabel 2-3 menunjukkan control dan indicator dengan tipe data string, boolean dan numerik.. 12.
(14) Tabel 2-3 Tipe Data Control / Indicator. Keterangan Tipe data string adalah kumpulan karakter ASCII Gunakan string control untuk menerima teks dari user seperti password atau user name. Gunakan string indicator untuk menampilkan teks ke user. Tipe data Boolean memiliki dua kondisi, TRUE dan FALSE atau ON dan OFF. Gunakan Boolean control dan indicator untuk memasukkan dan menampilkan nilai Boolean. Tipe data numeric dapat merepresentasikan angka dengan tipe yang berbeda seperti integer atau riil. Dua objek numerik yang umum adalah numeric control dan numeric indicator.. 2.7 Block Diagram Objek block diagram terdiri dari terminal, subVI, function, constant, structure dan wire, yang akan menyalurkan data ke objek block diagram lain. Gunakan block diagram toolbar untuk menjalankan dan melakukan debuging VI.. 13.
(15) Gambar 2-4 Block Diagram 2.8 Wire Wire menyalurkan data antar objek block diagram. Broken wire muncul dengan simbol garis hitam putus-putus dengan tanda X warna merah ditengah.. VI tidak bisa jalan jika ada broken wire. Broken wire bisa muncul jika kita menghubungkan dua objek yang berbeda tipe datanya. Tabel 2-4 menunjukkan tipe-tipe wire yang umum.. 14.
(16) Tabel 2-4 Tipe Wire Tipe Wire Numeric. Tipe Wire Yang Umum Scalar 1D Array 2D Array. Warna Oranye (floatingpoint) Biru (integer) Hijau. Boolean String. Merah muda. Latihan 1. Membuat Project dan VI Tujuan : Mengetahui cara membuat project dan vi pada LabVIEW. Pada latihan ini, Anda akan membuat project dan vi yang mensimulasikan sistem pengaturan tekanan udara (pressure) pada sebuah mesin. Berikut adalah langkah-langkahnya: 1.. Buka software LabVIEW, kemudian pilih Create Project.. Gambar 2-5 Tampilan Utama LabVIEW 15.
(17) 2.. Pilih Blank Project kemudian klik Finish.. Gambar 2-6 Tampilan Create New Project. Gambar 2-7 Tampilan Project Explorer 3.. Pilih File>>Save All, kemudian beri nama Pressure.lvproj. 16.
(18) 4.. Klik kanan pada My Computer kemudian New>>VI.. Gambar 2-8 Tampilan Create New VI 5. 6.. Pada front panel, tambahkan object seperti terlihat pada Gambar 2-9. Pada block diagram, tambahkan object seperti terlihat pada Gambar 2-10.. Gambar 2-8 Front Panel Pressure VI 17.
(19) 1. Numeric Control. 2. Knob, klik angka batas tertinggi (10), ganti dengan 100. 3. Meter, klik angka batas tertinggi (angka 10), ganti dengan 100. 4. Klik kanan pada Meter, pilih Visible Items>>Digital Display. 5. Chart. 6. Numeric Indicator. 7. LED. 8. Stop. 9. String Indicator.. Gambar 2-9Block Diagram Pressure VI 1. 2. 3. 4. 5. 6. 7.. While Loop. Random Number (0-1). Multiply. Greater or Equal?. Wait (ms), klik kanan pada inputnya kemudian create constant 100. String Constant. Select.. 18.
(20) 7.. Klik File>>Save, kemudian simpan dengan nama Pressure.vi pada folder yang sama dengan Pressure.lvprj. 8. Jalankan VI, setting Pressure Maximum (Bar) pada nilai 20. 9. Putar knob hingga mencapai nilai 30. 10. Perhatikan yang terjadi pada indikator Warning dan Warning Message. 11. Klik tombol Stop untuk mematikan VI. Tugas Modifikasi Pressure.vi sehingga waktu pada Wait (ms) bisa dikendalikan nilainya dari front panel dengan rentang nilai 0 s.d 1000 ms!. 19.
(21) 3. LOGIKA FUZZY. Bab ini membahas tentang fuzzy set serta tahapan proses pada sistem fuzzy.. Pokok Bahasan . Fuzzy Set Fungsi keanggotaan (Membership Function) Aturan (Rule) Fuzzifikasi Defuzzifikasi. 20.
(22) 3. LOGIKA FUZZY Tujuan : Menjelaskan logika fuzzy serta tahapan proses sistem fuzzy logic. 3.1 Fuzzy Set Prof. Lotfi A. Zadeh mengenalkan fuzzy set pada tahun 1965, yang memiliki derajat keanggotaan yang banyak antara nilai 0 dan1 yang disebut membership function (fungsi keanggotaan) dan dinotasikan dengan μA(x). Pada teori himpunan konvensional (Conventional set) sebuah elemen akan dinyatakan dengan dua kondisi kemungkinan yaitu anggota himpunan atau bukan anggota himpunan. Pada teori himpunan fuzzy, sebuah elemen dapat dinyatakan menjadi sebagian dari anggota himpunan dengan derajat keanggotaan tertentu. Gambar 3-1 menunjukkan perbedaan antara himpunan konvensional dan fuzzy. Gambar 3-2 menunjukkan himpunan orang tinggi, dimana seseorang disebut tinggi jika melampaui batas tinggi tertentu. Jika batas fungsi keanggotaan (membership function) adalah bentuk tegas seperti pada Gambar 3-3, maka orang yang berwarna MERAH disebut TINGGI, sementara orang ABU-ABU disebut TIDAK TINGGI. Bandingkan dengan Gambar 3-4 yang menggunakan bentuk kontinyu, maka orang MERAH akan disebut TINGGI, sedangkan orang ABU-ABU disebut CUKUP TINGGI. Tentunya ini lebih bisa diterima secara logika karena perbedaan tinggi antara kedua orang ini tidak terlalu jauh, sehingga menyebutnya lebih tepat jika TINGGI dan CUKUP TINGGI bukan TINGGI dan TIDAK TINGGI.. 21.
(23) Gambar 3-1 Conventional vs Fuzzy Set. Gambar 3-2 Himpunan Orang Tinggi. 22.
(24) Gambar 3-3 Sharp edge Membership Function. Gambar 3-4 Continuous Membership Function 3.2 Sistem Fuzzy Sistem Fuzzy adalah sebuah sistem yang terdiri dari variabelvariabel yang saling dikaitkan menggunakan logika fuzzy. Kontroler Fuzzy menggunakan aturan-aturan (rules) untuk mengendalikan sistem fuzzy berdasarkan nilai variabel input saat ini. Gambar 3-5 menunjukkan diagram sistem fuzzy. 23.
(25) Gambar 3-5 Diagram Sistem Fuzzy Sebuah Fuzzy Logic Controller (FLC) dapat digunakan untuk mengendalikan sistem pengereman pada mobil dengan memperhitungkan jarak terhadap mobil lain dan kecepatannya sendiri. Gambar 3-6 menunjukkan ilustrasi sistem pengereman otomatis yang memiliki 2 input yaitu jarak dan kecepatan.. 24.
(26) Gambar 3-6 Sistem Pengereman Otomatis. 3.3 Crisp Input Crisp input adalah input sistem fuzzy yang masih dalam bentuk engineering unit, misalnya jarak dengan satuan meter, kecepatan dengan satuan m/s dst. 3.4 Fuzzy input Fuzzy input adalah hasil konversi crisp input melalui proses fuzzifikasi. Sebuah nilai crisp input akan dihubungkan dengan input membership function dan akan diperoleh suatu nilai degree of membership function (μ) untuk nilai crisp input tersebut. Nilai fuzzy input memiliki rentang antara 0 s.d 1. 3.5 Fuzzy output Fuzzy output adalah sebuah nilai hasil dari evaluasi rule.. 25.
(27) 3.6 Crisp Output Crisp output adalah hasil konversi nilai fuzzy output melalui proses defuzzifikasi. Crisp output akan berbentuk engineering unit, misalnya level pengereman dalam satuan %. 3.7 Membership Function Membership function adalah gambaran secara grafis seberapa besar pengaruh setiap input. Membership function berhubungan dengan pembobotan setiap input yang diproses, menentukan fungsi overlap antar input dan menentukan respon output. Gambar 3-7 menunjukkan bentuk standar membership function yaitu triangular, trapezoidal, singleton, gaussian dan sigmoid. Gambar 3-8 menunjukkan bentuk membership function dan parameternya. Sumbu X menunjukkan engineering unit dari input atau output, misalnya untuk suhu maka engineering unitnya adalah derajat Celcius. Sumbu Y menunjukkan derajat keanggotaan dengan nilai 0 s.d 1.. Gambar 3-7 Bentuk Standar Membership Function 26.
(28) Gambar 3-8 Membership Function Sebuah sistem pengereman otomatis, memiliki membership function seperti pada Gambar 3-9, yaituInput Membership Function (IMF) distance, IMF speed dan Output Membership Function (OMF) braking. Pada IMF distance, terdapat 3 kategori jarak yaitu Small, Medium dan Large. Sumbu X menunjukkan jarak dalam satuan meter, sumbu Y menunjukkan derajat keanggotaan dengan nilai antara 0 s.d 1.. 27.
(29) Gambar 3-9Membership Function Sistem Pengereman Otomatis. 28.
(30) Gambar 3-10 menunjukkan sebuah sistem koordinat garis lurus yang menghubungkan titik A( , ) dengan titik B( , ). Persamaan garis lurus tersebut dapat ditentukan menggunakan persamaan 3-1.. Gambar 3-10 Koordinat Garis Lurus. − −. =. − −. (3-1). Misalnya, sebuah garis dengan titik A(6,1) dan B(10,0), maka persamaan garisnya adalah: −1 −6 = 0 − 1 10 − 6. 29.
(31) −1 = −1. −6 4. ( − 1)4 = ( − 6)(−1) 4 − 4 = (− ) + 6 4 = (− ) + 10 =. 10 − 4. Dengan menggunakan persamaan 3-1, maka dapat ditentukan persamaan garis untuk setiap membership function sebagai berikut : IMF of distance :. Gambar 3-11 IMF Distance 30.
(32) . Small. ( )=. . 1,. ⎧ ⎪. ⎨10 − ⎪ , ⎩ 4. 6≤. ≤ 10. −6 , 4. 6≤. < 10. Medium ⎧ ⎪ ( )=. . <6. ⎨ ⎪15 − ⎩ 5 ,. 10 ≤. ≤ 15. Large. ( )=. ⎧ ⎪. − 10 , 5. ⎨ ⎪ ⎩. 1,. 31. 10 ≤. > 15. < 15.
(33) IMF of speed :. Gambar 3-12 IMF Speed. . Low. ( )=. . 1,. ⎧ ⎪. < 10. ⎨40 − ⎪ , ⎩ 30. 10 ≤. < 40. − 10 , ⎧ ⎪ 30. 10 <. ≤ 40. ⎨ ⎪65 − ⎩ 25 ,. 40 <. ≤ 65. Medium. ( )=. 32.
(34) . High. ( )=. − 40 , ⎧ ⎪ 25 ⎨ ⎪ ⎩. 40 <. 1,. ≤ 65. > 65. OMF of braking :. Gambar 3-13 OMF Braking. . No Brake ( )=. 10 − 10. 33. ,. 0 £ z £ 10.
(35) . Soft ⎧ ⎪ ( )=. . ⎨ ⎪45 − ⎩ 15. ,. 5 <. ≤ 30. 30 <. ≤ 45. Medium. ( )=. . − 5 , 25. − 30 , ⎧ ⎪ 15. 30 < z £45. ⎨ ⎪60 − ⎩ 15 ,. 45 <. − 45 ⎧ , ⎪ 15. 45 ≤ z < 60. ≤ 60. Hard. ( )=. ⎨ ⎪ ⎩. 1,. z ≥ 60. 3.8 Rule Rule atau aturan yang digunakan pada sistem fuzzy berbentuk pernyataan IF THEN ELSE sebagai berikut: IF antecedent1 AND antecedent2 THEN consequent. 34.
(36) Antecedent adalah pernyataan kondisi atau level suatu input, misalnya untuk input distance, maka antecedent bisa berbunyi Distance is SmallatauDistance is MediumatauDistance is Large. Demikian pula untuk input Speed antecedent adalah Speed is Low, Speed is Medium atau Rule disusun untuk semua kombinasi input, sehingga untuk memudahkan penyusunan rule bisa digunakan tabel atau matriks rule. Misalnya untuk sistem pengereman otomatis maka dapat disusun matriks seperti pada Gambar 3-14.. Speed (km/h). Distance (m) Small. Medium. Large. Low. Medium. Soft. No Brake. Medium. Hard. Soft. No Brake. High. Hard. Medium. Soft. Gambar 3-14 Matriks Rule Sistem Pengereman Otomatis Dari matriks tersebut maka dapat disusun 9 kombinasi rule sbb: 1. 2. 3. 4. 5. 6. 7. 8.. IF Distance is Small AND Speed is Low THEN Braking is Medium IF Distance is Small ANDSpeed is Medium THEN Braking is Hard IF Distance is Small AND Speed is High THEN Braking is Hard IF Distance is Medium AND Speed is Low THEN Braking is Soft IF Distance is Medium AND Speed is Medium THEN Braking is Soft IF Distance is Medium AND Speed is High THEN Braking is Medium IF Distance is Large AND Speed is Low THEN Braking is No Brake IF Distance is Large AND Speed is Medium THEN Braking is No Brake 9. IF Distance is Large AND Speed is High THEN Braking is Soft. 35.
(37) 3.9 Fuzzifikasi Proses fuzzifikasi adalah mengubah crisp input menjadi input fuzzy.Misalnya, crisp input adalah distance = 9.5 m dan speed = 44 km/h. Maka jika dilihat pada Gambar 3-15, input Distance = 9.5 m masuk kedalam IMF of distance sebagai anggota Small dan Medium dimana : 10 − 10 − 9.5 = = 0.125 4 4 − 6 9.5 − 6 ( )= = = 0.875 4 4. ( )=. Gambar 3-15 Fuzzifikasi Distance 9.5 meter Sedangkan jika dilihat pada Gambar 3-16, Speed = 44 km/h masuk kedalam IMF of speed sebagai anggota medium dan high dimana : 65 − 65 − 44 = = 0.84 25 25 − 40 44 − 40 ( )= = = 0.16 25 25. ( )=. 36.
(38) Gambar 3-16 Fuzzifikasi Speed 44 km/h. 3.10 Evaluasi Rule Evaluasi rule adalah proses menghitung fuzzy output. Pada contoh sistem pengereman otomatis, jika input distance Distance = 9.5 m, maka akan masuk kedalam IMF of distance sebagai anggota small dan medium. Sedangkan input Speed = 44 km/h akan masuk kedalam IMF of speed sebagai anggota medium dan high. Maka rule yang dipengaruhioleh input (aktif/firing) adalah: . IF distance is Small AND speed is Medium THEN braking level is Hard.. . IF distance is Small AND speed is High THEN braking level is Hard.. . IF distance is Medium AND speed is Medium THEN braking level is Soft.. 37.
(39) . IF distance is Medium AND speed is High THEN braking level is Medium.. Gambar 3-17 Rule Yang Aktif (Firing). Pada desain ini evaluasi rule menggunakan metoda Mamdani (max of min implication method) dimana dicari dahulu nilai minimum dari kedua input μ (x) dan μ (y) yaitu: ( )=. [. ( ),. ( )]. (3.2). Pada contoh input distance= 9.5 m dan speed= 44 km/h diperoleh: μ μ μ μ. (x) = 0,125 (x) = 0,875 (y) = 0,84 (y) = 0,16. Maka dengan menggunakan persamaan (3.2) akan diperoleh : 38.
(40) ( )= ( )= ( )= ( )=. [0,125; 0,84] = 0,125 [0,125; 0,16] = 0,125 [0,875; 0,84] = 0,84 [0,875; 0,16] = 0,16. Gambar 3-7 menunjukkan ilustrasi operasi minimum pada rule.. Gambar 3-17 Operasi Minimum Pada Rule. Pada metode max of min, setelah nilai minimum diketahui, maka selanjutnya dicari nilai maksimum dari output membership function, hasilnya adalah gabungan dari OMF yang membentuk luasan seperti terlihat pada Gambar 3-18.. 39.
(41) Gambar 3-18 Luasan Pada OMF Hasil Evaluasi Rule 3.11 Defuzzifikasi Defuzzifikasi adalah proses untuk mengubah fuzzy output menjadi crisp output. Pada sistem pengereman otomatis, crisp output berupa level pengereman dan dapat dihitung menggunakanmetoda Center of Area (COA), yaitu mencari pusat dari suatu luasan yang terbentuk pada proses evaluasi rule. Persamaan 3-3 adalah cara mencari COA. z∗ =. ∫ μ (z)zdz ∫ μ (z)dz. (3-3). Atau dalam bentuk lain persamaan 3-3 dapat diubah menjadi persamaan 3-4. z∗ =. ∑ ∑. μ Z μ. (3-4). Dimana μ adalah derajat keanggotaan OMF hasil evaluasi rule.. 40.
(42) Pada sistem pengereman otomatis, maka level pengereman dapat dihitung sbb: ∑ μ Z z∗ = ∑ μ ( )= ( )= ( )= ( )=. [0,125; 0,84] = 0,125 [0,125; 0,16] = 0,125 [0,875; 0,84] = 0,84 [0,875; 0,16] = 0,16. Gambar 3-19 Proses Defuzzifikasi. 3.12 Latihan 2. Membuat Fuzzy Logic Menggunakan Microsoft Visual C# Pada latihan ini akan dibuat program Fuzzy Logic untuk sistem pengereman otomatis menggunakan Microsoft Visual C# dengan langkah-langkah sebagai berikut: 1. Jalankan software Microsoft Visual C#. 2. Buat project baru dan beri nama ABS. 41.
(43) 3. Buat Form dengan tampilan sbb:. 4. Pada Form editor, tambahkan global variable sebagai berikut: double distance, speed; double Small, Low; double Med, Medium; double Large, High; double noBrake, Soft, medium, Hard; double[] min; double[] sum; double Total;. 42.
(44) privatedouble outFuzzify, outMinimal; privatedouble brakeLevel;. 5. Double klik tombolRun FLC kemudian buatlah program sbb: distance = double.Parse(textBox1.Text); speed = double.Parse(textBox2.Text); brakeLevel = fuzzyABS(distance, speed); textBox3.Text = brakeLevel.ToString();. 6. Tambahkan fungsi berikut ini: double fuzzyABS(double input1, double input2) { min = newdouble[9]; sum = newdouble[3]; //Input Membership Function of distance Small = Fuzzify(0, 0, 6, 10, input1); Med = Fuzzify(6, 10, 10, 15, input1); Large = Fuzzify(10, 15, 10000, 10000, input1); //Input Membership Function of speed Low = Fuzzify(0, 0, 10, 40, input2); Medium = Fuzzify(10, 40, 40, 65, input2); High = Fuzzify(40, 65, 10000, 10000, input2); //Output Membership Function of Braking Level noBrake = 0; Soft = 30; medium = 45; Hard = 60;. 43.
(45) //Minimum Operations min[0] = minimal(Small, Low); min[1] = minimal(Small, Medium); min[2] = minimal(Small, High); min[3] = minimal(Med, Low); min[4] = minimal(Med, Medium); min[5] = minimal(Med, High); min[6] = minimal(Large, Low); min[7] = minimal(Large, Medium); min[8] = minimal(Large, High);. //Rules sum[0] = (min[0] * medium) + (min[1] * Hard) + (min[2] * Hard); sum[1] = (min[3] * Soft) + (min[4] * Soft) + (min[5] * medium); sum[2] = (min[6] * noBrake) + (min[7] * noBrake) + (min[8] * Soft); //Defuzzifikasi Total = 0; for (int i = 0; i <= 8; i++) { Total = Total + min[i]; } brakeLevel = (sum[0] + sum[1] + sum[2]) / Total; return brakeLevel; } //Fuzzifikasi untuk mendapatkan miu dari Crisp Input : Output: //outFuzzify double Fuzzify(double a, double b, double c, double d, double x) { if (x < a) { outFuzzify = 0; }. 44.
(46) elseif = (x elseif = 1; } elseif = (d elseif return. ((x >= a) && (x < b)) { outFuzzify a) / (b - a); } ((x >= b) && (x < c)) { outFuzzify ((x >= c) && (x < d)) { outFuzzify x) / (d - c); } (x > d) { outFuzzify = 0; } outFuzzify;. } // Operator minimal. Input: a, b. outMinimal double minimal(double a, double b) { if (a < b) { outMinimal = a; } else { outMinimal = b; } return outMinimal; }. Output:. 7. Jalankan program, masukkan nilai distance = 9 dan speed = 15, kemudian klik tombol Run FLC.. 45.
(47) 3.13 Tugas Ubahlah nilai distance dan speed seperti pada tabel 3-1, kemudian perhatikan nilai braking levelnya. Catat pada Tabel 3-1. Tabel 3-1 No 1 2 3 4 5 6 7 8 9 10 11 12. Distance (m) 9.00 20.00 4.50 16.00 10.00 11.60 13.00 9.00 14.00 20.00 12.00 9.50. Speed (Km/h) 15.00 65.00 10.00 40.00 10.00 40.00 35.00 50.00 48.50 25.80 22.50 44.00. 46. Braking Level (%).
(48) 4. DESAIN SISTEM FUZZY. Bab ini membahas tentang cara membuat variabel linguistik, fungsi keanggotaan, aturan, evaluasi aturan, defuzzifikasi. Pokok Bahasan . Studi kasus: Parkir Kendaraan Otomatis Membuat variable linguistik Membuat fungsi keanggotaan Membuat aturan Evaluasi aturan Defuzzifikasi. 47.
(49) 4. DESAIN SISTEM FUZZY Tujuan : Membuat variabel linguistik, fungsi keanggotaan, aturan, evaluasi aturan. 4.1 Sistem Fuzzy Pada LabVIEW Sistem fuzzy pada LabVIEW terdiri dari 3 bagian utama yaitu variabel linguistik, fungsi keanggotaan dan aturan-aturan. 4.1.1 Variabel Linguistik (Linguistic Variable) Variabel lingusitik direpresentasikan dengan kata-kata, merupakan variabel input dan variabel output dari sistem yang akan dikendalikan. Pada sistem pemanas misalnya, terdapat dua input variabel linguistik yaitu Suhu Sekarang dan Suhu Target, dan satu output variable yaitu Pengaturan Pemanas. Setiap variabel linguistik memilik batasan nilai. Misalnya, Suhu Sekarang bisa antara 0 s.d 100 derajat. Suhu Target antara 50 s.d 80 derajat. Sebuah kontroler fuzzy setidaknya harus memiliki satu input variabel linguistik dan satu output variabel linguistik. 4.1.2 Istilah Linguistik dan Fungsi Keanggotaan (Linguistic Term and Membership Function) Lingusitik term direpresentasikan dengan kata-kata, merupakan kategori nilai variabel linguistik. Untuk Suhu Sekarang dan Suhu Target dapat memiliki liguistik term dingin, hangat dan panas. Linguistik term untuk Pengaturan Pemanas adalah mati, rendah dan tinggi. Fungsi keanggotaan adalah fungsi numerik yang berhubungan dengan linguistik term. Fungsi keanggotaan merepresentasikan derajat keanggotaan variabel linguistik pada lingusitik term. 48.
(50) Derajat keanggotaan bernilai 0 s.d 1 dimana 0 artinya 0% keanggotaan, dan 1 adalah 100% keanggotaan. 4.1.3 Aturan-aturan (Rules) Aturan-aturan adalah hubungan antara input dan aoutput linguistik variabel berdasarkan linguistik term-nya. Berikut adalah contoh aturan-aturan: IF Suhu Sekarang is Dingin AND Suhu Target is Hangat, THEN Pengaturan Pemanas Rendah. 4.2. Latihan 3. Sistem Parkir Kendaraan Otomatis. 4.2.1 Membuat Input Variabel Lingusitik Pada sistem parkir kendaraan otomatis, terdapat dua input variabel linguistik yaitu Posisi Kendaraan X dan Arah Hadap Kendaraan β dan satu output linguistik variabel, Sudut Kemudi φ.. Gambar 4-1 Parkir Kendaraan Otomatis. 49.
(51) Gambar 4-2 Input Membership Function Posisi Kendaraan. Gambar 4-2 Input Membership Function Arah Hadap Kendaraan. 50.
(52) Gambar 4-3 Output Membership Function Sudut Kemudi 1. Jalankan Fuzzy System Designer dengan cara klik Tools, Control and Simulation, Fuzzy System Designer.. 51.
(53) 2. Klik Add Input Variable 3. Pada text box Name, masukkan Posisi Kendaraan 4. Pilih Range dengan memasukkan 0 pada minimum dan 10 pada maximum. Ini menunjukkan bahwa posisi kendaraan terhadap target tujuan berjarak antara 0 s.d 10 meter.. 5. 6. 7. 8. 9.. Klik Add Membership Function. Pada text box Name, masukkan Kiri. Pilih tipe Trapezoid pada menu Shape. Klik Color untuk memilih warna Membership function graph. Pada array Points, masukkan nilai 0, 0, 1, 4.. 10. Ulangi langkah 5 sampai 9 untuk membership function Posisi Kendaraan X menggunakan shape dan point sesuai Tabel 2-1.. 52.
(54) Tabel 2-1 Membership Function Kiri Kiri-Tengah Tengah Kanan-Tengah Kanan. Shape Trapezoid Triangle Triangle Triangle Trapezoid. 11. Klik OK, maka akan ada tampilan sbb:. 53. Points 0, 0, 1, 4 3, 4, 5 4.5, 5, 5.5 5, 6, 7 6, 9, 10, 10.
(55) 12. Ulangi langkah 2 sampai 11 untuk membuat input variabel linguistik Arah Hadap Kendaraan dengan rentang nilai minimum -90 dan maximum 270. Lakukan setting Shape dan points membership function sesuai Tabel 2-2. Tabel 2-2 Membership Function Kiri-Bawah Kiri Kiri-Atas Atas Kanan-Atas Kanan Kanan-Bawah. Shape Trapezoid Triangle Triangle Triangle Triangle Triangle Trapezoid. 54. Points -90, -90, -45, 20 -20, 20, 70 45, 70, 90 75, 90, 105 90, 110, 135 110, 160, 200 160, 225, 270, 270.
(56) 4.2.2 Membuat Output Variabel Linguistik 1. Klik Add Output Variabel 2. Masukkan Sudut Kemudi pada text box Name 3. Masukkan nilai minimum -30 dan maximum 30. Rentang ini menunjukkan roda kemudi dapat berbelok antara -30 sampai 30 derajat. 4. Klik Add Membership Function. 5. Masukkan neg-besar pada text box Name. 6. Pilih Triangle dari menu Shape. 7. Pilih warna untuk menampilkan grafik membership function. 8. Masukkan nilai -30, -30 dan -15 pada input Points. 9. Ulangi langkah 4 sampai 8 dengan membership function shape dan points seperti Tabel 2-3.. 55.
(57) Tabel 2-3 Membership Function Negatif-Besar Negatif-Sedang Negatif-Kecil Nol Positif-Kecil Positif-Sedang Positif-Besar. Shape Triangle Triangle Triangle Triangle Triangle Triangle Triangle. Points -30, -30, -15 -30, -15, -5 -15, -5, 0 -5, 0, 5 0, 5, 15 5, 15, 30 15, 30, 30. 10. Klik OK 11. Pilih File>>Save As untuk menyimpan sistem fuzzy dengan nama manuver_kendaraan.fs.. 4.2.3 Membuat Aturan-Aturan (Rules) 1. Klik tab Rules pada Fuzzy System Designer. 2. Pilih Operate>>Pre-Generate Rules.. 3. Pilih AND (Minimum) dari menu Antecedent connective. 4. Masukkan 1 pada Degree of support. 56.
(58) 5. Pilih Minimum pada menu Consequent implication.. 6. Klik OK. 4.2.4 Modifikasi Pre-Generated Rules 1. Pilih aturan yang pertama. 2. Pada kolom THEN, pilih Negatif-Kecil.. 57.
(59) 3. Ulangi langkah diatas untuk kombinasi seperti pada Tabel 2-4. Tabel 2-4. Arah Hadap Kendaraan β (derajat). AND KiriBawah Kiri KiriAtas Atas KananAtas Kanan KananBawah. Kiri NegatifKecil PositifKecil PositifSedang PositifSedang PositifBesar PositifBesar PositifBesar. Posisi Kendaraan x (m) KiriKananTengah Tengah Tengah Negatif- Negatif- NegatifSedang Sedang Besar Negatif- Negatif- NegatifKecil Sedang Besar PositifNegatif- NegatifKecil Kecil Sedang PositifNol NegatifSedang Sedang PositifPositifNegatifSedang Kecil Kecil PositifPositifPositifBesar Sedang Kecil PositifPositifPositifBesar Sedang Sedang. Kanan NegatifBesar NegatifBesar NegatifBesar NegatifSedang NegatifSedang NegatifKecil NegatifKecil. 4. Klik Save. 4.2.5 Menentukan Metode Defuzzifikasi 1. Klik tab Rules pada Fuzzy System Designer. 2. Pilih metode defuzzifikasi yang akan digunakan, misalnya Center of Area. 3. Pilih File>>Save.. 58.
(60) 4.2.6 Testing 1. Klik tab Test System pada Fuzzy System Designer. 2. Pada menu Input variable 1, pilih Posisi Kendaraan, kemudian masukkan angka 5 pada menu Input Value(s). 3. Pada menu Input variable 2, pilih Arah Hadap Kendaraan, kemudian masukkan angka 90 pada menu Input Value(s). 4. Perhatikan Output Value(s) akan bernilai -0.00816327. Artinya kendaraan akan mundur lurus.. 59.
(61) 4.3 Tugas Ubahlah nilai Posisi Kendaraan dan Arah Hadap Kendaraan, kemudian perhatikan hasil nilai Sudut Kemudi. Apakah hasilnya sesuai dengan tabel aturan yang tersaji pada Tabel 2-4? Berikan penjelasan atau analisa Anda!. 60.
(62) 5. METODE DEFUZZIFIKASI. Bab ini membahas tentang perbedaan beberapa metode defuzzifikasi serta pemilihannya.. Pokok Bahasan . Defuzzifikasi Center of Area Modified Center of Area Center of Sums Center of Maximum Mean of Maximum Pemilihan metode defuzifikasi. 61.
(63) 5. METODE DEFUZZIFIKASI Tujuan : Menjelaskan proses defuzzifikasi menggunakan metode Center of Area, Modified Center of Area, Center of Sums, Center of Maximum dan Mean of Maximum. Menjelaskan cara memilih metode defuzzifikasi.. 5.1 Defuzzifikasi Defuzzifikasi adalah sebuah proses mengubah derajat keanggotaan dari output variabel linguistik menjadi nilai numerik crisp output. Pada kasus sistem parkir otomatis seperti dibahas pada Bab sebelumnya, misalnya dari evaluasi aturan diperoleh hasil sebagai berikut: (1) IF Posisi Kendaraan is Tengah AND Arah Hadap is Kiri-Atas (derajat keanggotaan = 0.8) (Minimum) (derajat keanggotaan = 1.0) THEN Sudut Kemudi is Negatif Kecil (min[0.8,1.0] = 0.8) (2) IF Posisi Kendaraan is Kanan-Tengah AND Arah Hadap is KiriAtas (derajat keanggotaan = 0.1) (Minimum)(derajat keanggotaan = 1.0) THEN Sudut Kemudi is Negatif Sedang (min[0.1,1.0] = 0.1) Kedua aturan diatas akan menghasilkan output variabel linguistik untuk Sudut Kemudi yaitu: 62.
(64) . Negatif Sedang dengan derajat 0.1 Negatif Kecil dengan derajat 0.8. Proses defuzzifikasi akan melakukan evaluasi dua nilai variabel linguistik tersebut dan mengubahnya menjadi sebuah nilai output numerik. Beberapa metode matematis yang bisa digubakan dalam proses defuzzifikasi antara lain: Center of Area (CoA), modified Centor of Area, Center of Sums (CoS), Center of Maximum (CoM) atau Mean of Maximum (MoM). 5.1.1 Center of Area Pada metode defuzzifikasi Center of Area (CoA), atau disebut juga metode Center of Gravity (CoG), kontroler fuzzy akan menghitung luasan area output membership function dan mencari pusat dari luasan tersebut menggunakan persamaan 5-1. =. ( )∙. ∫ ∫. (5-1). ( ). Dimana CoA adalah pusat luasan, adalah nilai variabel linguistik, dan adalah rentang nilai variabel linguistik. Gambar 5-1 menunjukkan metode defuzzifikasi Center of Area untuk output variabel linguistik Sudut Kemudi. Bagian grafik yang berwarna abuabu adalah luasan yang terbentuk dari proses evaluasi aturan.. 63.
(65) Gambar 5-1 Metode Defuzzifikasi Center of Area (CoA) 5.1.2 Modified Center of Area Pada metode defuzzifikasi CoA, crisp output yang dihasilkan tidak akan dapat mencapai nilai tertinggi dari output membership function. Hal ini disebabkan titik pusat luasan tidak mungkin berada pada posisi paling ujung kanan output membership function. Untuk mengatasi permasalahan ini maka digunakan metode defuzzifikasi modified Center of Area. Persamaan 5-2 digunakan untuk menghitung pusat luasan output membership function dimana luasan tersebut bisa melewati batasan variabel output. =. ( )∙. ∫ ∫. (5-2). ( ). Dimana mCoA adalah modified Center of Area. Rentang integrasi adalah antara nilai terkecil dan terbesar membership function. 64.
(66) Perlu diingat bahwa rentang ini bisa dilebihkan dari rentang variabel output.. Gambar 5-2 Perbandingan Metode CoA dan Modified CoA 5.1.3 Center of Sums Pada metode defuzzifikasi Center of Sums (CoS), fuzzy logic controller pertamakali akan menghitung pusat luasan setiap output membership function seperti ilustrasi pada Gambar 5-3.. 65.
(67) Gambar 5-3 Perhitungan Pusat Luasan Sebuah Membership Function Fuzzy logic controller kemudian menggunakan persamaan 5-3 untuk menghitung rata-rata terboboti (weighted average) pusat luasan untuk seluruh membership function.. =. (. Dimana dan. + (. +. + ⋯+ + ⋯+. ). (5-3). ). adalah pusat luasan membership function ke-n, adalah luasan membership function ke-n.. 5.1.4 Center of Maximum Pada metode defuzzifikasi Center of Maximum (CoM), fuzzy logic controller pertamakali akan menentukan sebuah nilai tengah (typical value) setiap membership function yang terpotong 66.
(68) (tersakala). Nilai tengah tersebut adalah nilai rata-rata yang berhubungan dengan degree of membership function ditempat dimana membership function terpotong (terskala). Fuzzy logic controller menggunakan persamaan 5-4 untuk menghitung sebuah nilai rata-rata terboboti.. =. Dimana. (. + ( +. + ⋯+ +⋯+ ). ). (5-4). adalah nilai tengah untuk membership function ke-n. yang terpotong (terskala), dan adalah degree of membership function dimana membership function ke-n terpotong (terskala). Gambar 5-4 menunjukkan ilustrasi metode CoM pada sistem parkir kendaraan otomatis.. Gambar 5-4 Metode Defuzzifikasi Center of Maximum (CoM). 67.
(69) Nilai -15o dan -5o adalah nilai tengah dari Negative Medium dan Negative Small. Derajat kebenaran dari variabel linguistik tersebut secara berurutan adalah 0.1 dan 0.8. Sehingga crisp output hasil defuzzifikasi dapat dihitung dengan persamaan berikut: =. ((−15 )(0.1) + (−5 )(0.8)) = −6.1 (0.1 + 0.8). Metode defuzzifikai CoM mirip dengan metode CoA dengan singleton membership function. 5.1.5 Mean of Maximum Gunakan metode defuzzifikasi Mean of Maximum (MoM) untuk aplikasi pengenalan pola (pattern recognition). Metode ini menghitung hasil yang paling masuk akal. Metode defuzzifikasi MoM memilih nilai tengah dari output linguistik yang paling valid. Gambar 5-5 menunjukkan ilustrasi metode defuzzifikasi MoM.. Gambar 5-5 Metode Defuzzifikasi Mean of Maximum (MoM) 68.
(70) 5.2 Pemilihan metode defuzifikasi Dalam sistem penunjang keputusan (decision support system), pilihan metode defuzzifikasi bergantung pada hubungan keputusan yang Anda ingin hitung dengan fuzzy logic controller. Untuk keputusan kuantitatif, maka gunakan metode CoM. Untuk keputusan kualitatif, maka gunakan metode MoM. Aspek penting dari metode defuzzifikasi adalah kontinuitas dari sinyal output. Dengan anggapan sebuah sistem fuzzy memiliki basis aturan yang lengkap dan fungsi keanggotaan yang saling beririsan, maka sebuah metode defuzzifikasi akan kontinyu jika sebuah perubahan kecil nilai input yang terjadi secara acak tidak pernah mengakibatkan sebuah perubahan kasar/tiba-tiba pada sinyal output. Pada aspek ini, metode defuzzifikasi CoM dan CoA adalah kontinyu sebab dengan asumsi saling beririsannya fungsi keanggotaan, maka sisi terbaiknya adalah tidak akan lompat ke nilai yang berbeda ketika terdapat perubahan kecil pada input. Metode defuzzifikasi MoM adalah tidak kontinyu, karena perubahan kecil secara acak pada sinyal input akan menyebabkan perubahan nilai output secara tiba-tiba. Tabel 5-1 menunjukkan perbandingan antara metode defuzzifikasi berdasarkan kriteria uji yang berbeda-beda.. 69.
(71) Tabel 5-1 Perbandingan Metode Defuzzifikasi Yang Berbeda-beda Metode Center of Area (CoA) No Kriteria Uji dan Modified Center of Area (mCoA) 1 Karakterisitik Baik linguistik 2. Kesesuaian dengan intuisi. 3 4. Kontinyuitas Kemampuan komputasi Bidang terapan. 5. Tidak masuk akal dengan variasi bentuk membership function dan kuat dalam hal irisan membership function Ya Sangat Tinggi Closed-Loop Control, Decision Support, Analisis Data. Center of Sums (CoS). Baik. Center of Maximum (CoM). Mean of Maximum (MoM). Baik. Hasilnya kurang masuk akal Baik. Tidak masuk Baik akal dengan variasi bentuk membership function dan kuat dalam hal irisan membership function Ya Ya Sedang Rendah Closed-Loop Control, Decision Support, Analisis Data. 70. ClosedLoop Control, Decision Support, Analisis Data. Tidak Sangat Rendah Pengenalan Pola, Decision Support, Analisis Data.
(72) 5.3 Latihan Pada kasus Sistem Pengereman Otomatis, dimana input Fuzzy Logic Controller adalah Distance dan Speed, serta output Braking Level, maka dapat dicoba beberapa metode defuzzifikasi untuk melihat pengaruhnya terhadap output. Berikut adalah langkahlangkahnya: 1. Jalankan LabVIEW kemudian klik Tools, Control and Simulation, Fuzzy System Designer. 2. Buatlah input Distance dengan rentang 0 s.d 20 meter dan membership function seperti gambar berikut:. 3. Buatlah input Speed dengan rentang 0 s.d 100 km/h dan membership function seperti gambar berikut:. 71.
(73) 4. Buatlah output Braking Level dengan rentang 0 s.d 100 % dan membership function seperti gambar berikut:. 5. Klik menu Operate, klik Pre-Generate Rules. 6. Sesuaikan rule, dengan Gambar 5-6.. Speed (km/h). Distance (m) Small. Medium. Large. Low. Medium. Soft. No Brake. Medium. Hard. Soft. No Brake. High. Hard. Medium. Soft. Gambar 5-6 Matriks Rule Sistem Pengereman Otomatis 7. Pada Defuzzification method, pilih Center of Area.. 72.
(74) 8. Pada menu Test System, masukkan input Distance = 9.5 m dan input Speed = 55 km/h, kemudian perhatikan output Braking Level.. 73.
(75) 9. Dengan input distance = 9.5m dan speed 44.0 km/h, maka dengan metode defuzzifikasi yang berbeda diperoleh braking level yang berbeda sesuai dengan Tabel 5-2.. Tabel 5-2 Perbandingan Output Fuzzy Dengan Metode Defuzzifikasi Yang Berbeda Metode Defuzzifikasi Modified Center Center of Mean of Input/Output Center of Maximum Maximum of Area Sums (CoM) (MoM) (mCoA) (CoS) Distance (m) 9.5 9.5 9.5 9.5 9.5 Speed (km/h) 44.0 44.0 44.0 44.0 44.0 Braking Level 39.4646 36.3624 29.2 38.8038 38.8038 (%) Center of Area (CoA). 74.
(76) 5.4 Tugas Cobalah memasukkan kombinasi nilai Distance dan Speed seperti pada Tabel 5-3 dengan metode defuzzifikasi yang berbeda, kemudian catat hasilnya pada Tabel 5-3.. Tabel 5-3 Braking Level Dengan Metode Defuzzifikasi Yang Berbeda No. Distance (m). Speed (km/h). 1 2 3 4 5 6 7 8 9 10 11. 9.00 20.00 4.50 16.00 10.00 11.60 13.00 9.00 14.00 20.00 12.00. 15.00 65.00 10.00 40.00 10.00 40.00 35.00 50.00 48.50 25.80 22.50. Braking Level dengan Metode Defuzzifikasi CoA mCoA CoS CoM MoM. 75.
(77) 6. DASAR ANN. Bab ini membahas tentangmodel dasar neuron untuk mengetahui bagaimana cara kerja Jaringan Syaraf Tiruan / Artificial Neural Network (ANN). Selain itu akan dibahas juga klasifikasi ANN.. Pokok Bahasan Pengantar Artificial Neural Network Klasifikasi ANN. 76.
(78) 6. DASAR ARTIFICIAL NEURAL NETWORK Tujuan : Menjelaskan cara kerja Artificial Neural Network (ANN) Menjelaskan klasifikasi ANN 6.1 Artificial Neural Network (ANN) Otak manusia adalah inspirasi dari pengembangan ANN. Otak manusia terdiri dari 100 s.d 500 juta neuron. Neuron-neuron tersebut membentuk klaster dan jaringan. Sesuai dengan target dan tujuan masing-masing, neuron-neuron tersebut dapat dikelompokkan secara hirarki atau berlapis-lapis. Secara biologis, terdapat dua grup sel pada sistem syaraf yaitu sel glial dan nervous. Sel nervous atau disebut neuron, tersusun dalam sebuah fungsi syncytium. Neuron dapat dibayangkan seperti sistem jaringan telpon atau sistem jaringan komputer yang kompleks. Neuron berkomunikasi melalui synapse. Bagian ini merupakan titik hubung antara dua neuron. Komponen utama neuron adalah axon dan dendrite. Setiap neuron hanya memiliki satu axon. Jumlah dendrite bervariasi dan setiap dendrite adalah perpanjangan dari tubuh neuron, jumlahnya mempengaruhi jumlah informasi yang dikumpulkan. Axon adalah satu-satunya titik keluar neuron dan panjangnya bisa mencapai 120mm. Gambar 6-1 menunjukkan diagram skema neuron biologis.. 77.
(79) Gambar 6-1 Diagram Skema Neuron Biologis. Gambar 6-2 Cara Kerja Neuron. 78.
(80) Secara sederhana cara kerja neuron diperlihatkan pada Gambar 62. Neuron menerima satu atau lebih impuls elektrik melalui dendrite dari axon neuron lain. Impuls elektrik tersebut ditambahkan sehingga akan menghasilkan beda potensial tertentu. Beda potensial ini harus melewati batas tertentu agar neuron menghasilkan sebuah impuls elektrik pada axon-nya. Jika level yang dibutuhkan tidak sesuai maka axon pada neuron tersebut tidak akan menghasilkan impuls elektrik. Secara lengkap, neuron dapat digambarkan seperti pada Gambar 6-3. Pertukaran informasi antara satu neuron dengan lainnya terjadi pada Synapse. Synapse merupakan terminal axon dimana senyawa kimia neurotransmitter dilepaskan untuk berkomunikasi dengan neuron lainnya. Neurotransmitter adalah senyawa kimia yang berasal dari organisme yang dihasilkan dari dalam organisme itu sendiri. Beberapa jenis neurotransmitter diklasifikasikan sebagai asam amino, gasotransmitter (karbon monoksida, hidrogen sulfida), monoamines (adrenalin, dopamin), peptides (somatostatin, substance P, cocaine, amphetamine) dan purines (adenosine triphosphate, adenosine). Neurotransmitter tersimpan di dalam sebuah synapse pada bagian synaptic vesicles. Neurotransmitter dilepaskan dan terdifusi melewati synaptic cleft, kemudian melekat pada receptor tertentu di dalam membran pada sisi postsynaptic dari synapse.. 79.
(81) Gambar 6-3 3 Diagram Neuron Secara Lengkap Lengka Otak manusia mengolah informasi dan dapat bereaksi dengan stimulasi yang jelas. Lebih dari itu, otak dapat menyamaratakan informasi tersebut untuk melakukan aksi ketika situasi tertentu terjadi. Jika kita melihat kedalam neuron, maka kita akan berfikir bagaimana agaimana cara otak manusia belajar dan menyamaratakan informasi. Pada titik ini, maka neuron dapat dimodelkan sebagai berikut: . . Dendrite terhubung ke beberapa axon dari neuron lain, namun beberapa sambungannyaakan akan dikuatkan ketika aksi tertentu terjadi. Sambungan-sambungan sambungan dendrite bisa tidak cukup kuat jika tidak digunakan, oleh karena itu sinyal input diboboti dengan penguatan (secara positif atau negatif). 80.
(82) . Semua sinyal tersebut kemudian dijumlahkan dan inti sel memproses informasi.. Proses ini dimodelkan secara matematis dengan sebuah fungsi aktivasi (activation function). Hasil akhirnya akan dikirimkan oleh axon dan sinyal output neuron mengalir ke sel lain. Gambar 6-4 memperlihatkan model neuron. Fungsi aktivasi adalah sifat aktivitas neuron ketika sinyal input menstimulasinya. Sifat fungsi aktivasi bermacam-macam, namun umumnya sifat fungsi aktivasi adalah sigmoidal, linier dan tangen hiperbolik. Gambar 6-5 memperlihatkan bentuk secara grafik dari fungsi-fungsi tersebut.. Gambar 6-4 Model Neuron. 81.
(83) Gambar 6-5 Grafik Beberapa Fungsi Aktivasi. (a) Fungsi Sigmoidal, (b) Fungsi Tangen Hiperbolik, (c) Fungsi Linier. Fungsi sigmoidal dapat dibuat dengan persamaan 6-1. ( )=. 2 −1 +1. (6-1). Fungsi tangen hiperbolikdapat dibuat dengan persamaan 6-2. ( ) = tanh ( ). (6-2). Fungsi Linier dapat dibuat dengan persamaan 6-3. ( )=. 82. (6-3).
(84) 6.2 Klasifikasi Artificial Neural Network Model neural digunakan pada banyak permasalahan, namun secara umum terdapat 5 permasalahan yang bisa diselesaikan oleh ANN, seperti tersaji pada Tabel 6-1. Tabel 6-1 Tugas Utama Yang Bisa Dikerjakan oleh ANN Tugas. Deskripsi. Pendekatan fungsi. Fungsi linier dan non-linier dapat didekati dengan neural network. Oleh karena itu dapat digunakan sebagai sebuah fungsi untuk mencari kesesuaian. Klasifikasi 1. Klasifikasi data. Neural network membagi data menjadi kelaskelas tertentu. Sangat baik digunakan untuk mencari pola. 2. Klasifikasi sinyal. Data yang berurutan secara waktu (time series), dikelompokkan menjadi sub kelompok atau kelas-kelas. Berguna untuk identifikasi objek. Pengelompokan Tidak Membuat kelompok-kelompok data Tertuntun (Unsupervised pada kelas yang tidak diketahui. clustering) Melakukan prediksi Neural network digunakan untuk (forecasting) memprediksi nilai berikutnya dari sebuah data time series. Sistem kendali Pendekatan fungsi, klasifikasi, unsupervised clustering dan forecasting adalah karakteristik yang digunakan pada sistem kendali. Oleh karena itu ANN digunakan pada pemodelan dan analisa sistem kendali.. 83.
(85) Neural network dapat diklasifikasikan berdasarkan struktur yang digunakan untuk menyelesaikan tugas atau permasalahan. Struktur model neural berbeda tergantung dari tugas yang dijalankan, namun secara umum terdapat dua kategori struktur neural network yaitu: 1. Feed-forward network, pada jenis ini sinyal input mengalir hanya satu arah menjadi sinyal output. Contoh struktur ini adalah single dan multi-layer neural network. 2. Feed-back network, pada jenis ini beberapa neuron memeliki sinyal loop, dimana sinyal output kembali ke neuron yang sama atau ke neuron sebelumnya. Neural network juga dapat diklasifikasikan berdasarkan prosedur pembelajaran yang digunakan. Berikut adalah tiga tipe dasar prosedur pembelajaran pada neural network: 1. Supervised network, jenis ini digunakan ketika kita memiliki data yang benar-benar sudah diketahui, kemudian neural network akan dilatih berdasarkan data tersebut. Sinyal input dan output dimasukkan/dijalankan ke dalam struktur neural network dan bobot (weight) struktur dapat ditemukan. 2. Unsupervised network, jenis ini digunakan ketika kita tidak memiliki informasi apapun. Neural network jenis ini digunakan untuk menemukan pola yang ada pada input sebagai tujuan pembelajarannya. Contoh neural network jenis ini adalah Hebbian network. 3. Competitive atau self-organizing network, jenis ini adalah pengembangan dari unsupervised network, dimana tidak 84.
(86) ada informasi yang digunakan dalam pembelajaran network. Namun pada kasus ini setiap neuron akan berusaha menghasilkan respon yang diinginkan berdasarkan data input tertentu yang masuk ke input neural network. Contoh neural network jenis ini adalah Kohonen Maps. Gambar 6-6 memperlihatkan klasifikasi neural network berdasarkan stuktur maupun prosedur pembelajarannya.. Gambar 6-6 Klasifikasi Neural Network (a) Feed-forward, (b) Feed-back, (c) Supervised, (d) Unsupervised, (e) Competitive atau selff-organizing. 85.
(87) 6.3 Artificial Neural Network Neuron otak manusia beradaptasi agar dapat menyelesaikan permasalahan yang sedang dihadapinya. Artinya bentuk neural network memiliki arsitektur yang berbeda atau susunan neuronnya yang berbeda. 6.4 Perseptron Perseptron atau threshold neuron adalah pemodelan neuron dalam bentuk paling sederhana. Neuron ini memiliki sinyal input dan sinyal tersebut diberi bobot. Kemudian fungsi aktivasi memutuskan sebuah sinyal output. Hal terpenting dari neuron jenis ini adalah fungsi aktivasi dimodelkan sebagai fungsi threshold seperti persamaan 6-4. Perseptron sangat berguna untuk melakukan pengelompokan data. ( )=. =. 0 1. <0 ≥0. (6-4). Contoh, kita ingin mengelompokkan vektor input = { , }, seperti pada Tabel 6-2 dengan target . Contoh ini mensimulasikan operator AND. Tabel 6-2 Data Untuk Contoh Perseptron. 0.2 0.2 0.8 0.8. 0.2 0.8 0.2 0.8. 86. 0 0 0 1.
(88) 7. SINGLE NEURON. Bab ini membahas tentang single neuron McCulloh-Pit yang digunakan pada fungsi logika AND, OR dan XOR. Pokok Bahasan McCulloh-Pit Neuron McCulloh-Pit Neuron Untuk Fungsi Logika. 87.
(89) 7. SINGLE NEURON ARCHITECTURE Tujuan : Menjelaskan cara kerja McCulloh-Pit Neuron 7.1 McCulloh-Pit Neuron Pada tahun 1943 Warren S. McCulloch dan Walter Pitts mengembangkan sebuah konsep neuron yang merupakan awal perkembangan jaringan syaraf tiruan modern. Model neuron McCulloch-Pitts hanya memiliki dua kondisi yaitu on dan off. Input neuron terdiri dari dua jenis yaitu excitatory input dan inhibitory input. Neuron akan on (firing) atau off (quite) tergantung dari threshold dari neuron. McCulloch dan Pitts membuat asumsi dari model neuron yang mereka buat yaitu : 1. Aktivitas neuron adalah proses yang “nyala semua atau mati semua”, oleh karena aktivasi neuron adalah biner. Pada suatu step waktu diskrit tertentu dimana neuron “fire”, aktivasinya adalah 1 dan saat neuron “quite”, aktivasinya adalah 0. Inilah dua kondisi yang mungkin ada pada neuron. 2. Sejumlah synapse dengan bobot tertentu harus tereksitasi selama dalam step waktu diskrit untuk mengeksitasi neuron, dan jumlahnya tidak tergantung dari aktivitas sebelumnya. 3. Hanya ada satu delay yang signifikan yaitu synaptic delay yang merupakan waktu yang dibutuhkan untuk mengirimkan informasi pada synapse.. 88.
(90) 4. Aktivitas nonzero inhibitory synapse akan mencegah eksitasi neuron pada step waktu diskritnya. 5. Struktur jaringan tidak berubah terhadap waktu.. Gambar 7-1 Arsitektur Neuron y McCulloch-Pitts Dengan Threshold θ Koneksi dari x1 ke xn adalah input excitatory karena bobot w bernilai positif. Sedangkan koneksi Xn+1 hingga Xn+m merupakan input inhibitory sebab bobot (-c) bertanda negatif. Pada step waktu ke-k, sinyal akan masuk ke input neuron dan akan mempengaruhi kondisi output neuron pada step waktu selanjutnya (k+1). Dengan kata lain output neuron saat sekarang ditentukan oleh sinyal input sebelumnya.. 89.
(91) Total sinyal input disimbolkan dengan μ, dimanajika μ maka output neuron y = 1, jika μ< maka output neuron y = 0.. 1 untuk u y(k 1) 0 untuk u dimana : ( + 1). : Output neuron y pada step waktu k+1. : Total sinyal input. : Threshold pada neuron y.. Total sinyal input yang diterima( )adalah jumlah hasil perkalian input dan bobot masing-masing synapse pada sebuah neuron dengan persamaan sebagai berikut : =. ( ). dimana :. ( ). : Total sinyal input. : Bobot (weight) pada synapse ke-i. : Sinyal pada input ke-i saat step waktu ke-k. : Indeks synapse, dimana i=1, 2, ..n+m. 7.2 McCulloh-Pit Neuron Untuk Fungsi Logika Model McCulloh-Pit Neuron dapat diterapkan untuk menyelesaikan fungsi logika AND, OR dan XOR. Tabel 7-1, Tabel 72 dan Tabel 7-3 secara berurutan menunjukkan tabel kebenaran 90.
(92) dari fungsi logika AND, OR dan XOR. Struktur neuron McCulloh-Pit untuk ketiga fungsi logika tersebut diperlihatkan pada Gambar 72. Tabel 7-1 Tabel Kebenaran Logika AND 0 0 1 1. 0 1 0 1. 0 0 0 1. Tabel 7-2 Tabel Kebenaran Logika OR 0 0 1 1. 0 1 0 1. 0 1 1 1. Tabel 7-3 Tabel Kebenaran Logika XOR 0 0 1 1. 0 1 0 1. 91. 0 1 1 0.
(93) Gambar 7-2 Struktur Neuron McCulloh-Pit untuk Fungsi Logika 7.3 Latihan Neuron McCulloh-Pit Menggunakan Microsoft Visual C# Pada latihan ini akan dibuat program Neuron McCulloh-Pit menggunakan Microsoft Visual C# dengan langkah-langkah sebagai berikut: 1. Jalankan software Microsoft Visual C#. 2. Buat project baru dan beri nama McCullohPit. 3. Buat Form dengan tampilan sbb:. 92.
(94) 4. Pada Form editor, tambahkan global variable sebagai berikut: int x1, x2, y, w1, w2, theta, u;. 5. Double klik tombol Run, kemudian tambahkan program sbb: x1 = int.Parse(textBox1.Text); x2 = int.Parse(textBox2.Text); theta = int.Parse(textBox4.Text); w1 = int.Parse(textBox5.Text); w2 = int.Parse(textBox6.Text); u = x1 * w1 + x2 * w2; if (u >= theta) { y = 1; } else { y = 0; } textBox3.Text = y.ToString();. 6. Jalankan program, masukkan nilai seperti pada Tabel 7-4.. 93.
(95) Tabel 7-4 Tabel Kebenaran Neuron McCulloh-Pit Fungsi Logika AND dan OR Fungsi Logika AND 0 0 1 1. 0 1 0 1. 0 0 1 1. 0 1 0 1. 1 1 1 1 1 1 1 1 Fungsi Logika OR 2 2 2 2. 2 2 2 2. 2 2 2 2. 2 2 2 2. 7.4 Tugas Buatlah program neuron McCulloh-Pit untuk fungsi logika XOR dengan tampilan form sbb:. 94.
(96) Jalankan program kemudian masukkan nilai seperti pada Tabel 7-5 dan catat nilai y! Tabel 7-4 Tabel Kebenaran Neuron McCulloh-Pit Fungsi Logika XOR Fungsi Logika XOR 0 0 1 1. 0 1 0 1. 2 2 2 2. -1 -1 -1 -1. -1 -1 -1 -1. 95. 2 2 2 2. 2 2 2 2. 2 2 2 2. 2 2 2 2.
(97) 8. MULTILAYER NEURAL NETWORK. Bab ini membahas tentang struktur multilayer neural network. Pokok Bahasan Fungsi Aktifasi LMS Algorithm. 96.
(98) 8. MULTILAYER NEURAL NETWORK Tujuan : Menjelaskan jenis-jenis fungsi aktifasi Menjelaskan simple Adaltive Linera Elements (ADLINE) Menjelaskan cara kerja LMS Algorithm 8.1 Fungsi aktivasi Fungsi aktivasi seperti terlihat pada Gambar 8-1 dapat berupa fungsi linier atau non-linier. Pemilihan fungsi aktivasi tergantung dari permasalahan yang akan diselesaikan oleh neuron.. (a). (b). (c). (d). 97.
(99) (e). (f). (g). (h). Gambar 8-1 Fungsi Aktivasi. (a) Linier, (b) Hard Limiter, (c) Symmetrical Hard Limiter, (d) Saturating Linear, (e) Symmetric Saturating Linear, (f) Binary Sigmoid, (g) Derivative of Binary Sigmoid, (h) Hyperbolic Tangen Sigmoid Persamaan fungsi aktivasi ditunjukkan oleh persamaan sebagai berikut: . Fungsi aktivasi Linier: =. . =. Fungsi aktivasi Hard Limiter:. 98. (8-1).
(100) =. . −1 = 0 1. =. <0 =0 >0. 0. =. ⎨ ⎪ ⎩. +. <−. 1 2. −. 1. 1 ≤ 2 >. =. −1≤. = 1. 1 2 ≤. 1 2. 1 2. (8-4). < −1 ≤1 >1. (8-5). Fungsi aktivasi Binary Sigmoid: =. . (8-3). Fungsi aktivasi Symmetric Saturating Linear: −1. . (8-2). Fungsi aktivasi Saturating Linear: ⎧ ⎪. . <0 ≥0. Fungsi aktivasi Symmetical Hard Limiter: =. . 0 1. =. =. 1 1+. Turunan (Derivative) Binary sigmoid:. 99. (8-6).
(101) ( ). =. =. =. . ). (8-6) ( ). Fungsi aktivasi Hyperbolic Tangen Sigmoid: =. . (1 + ( ) 1−. = tanh α. =. − +. =. 1− 1+. (8-7). Turunan (Derivative) Hyperbolic Tangen Sigmoid: =. ( ). =. 1+. ( ) 1−. ( ). (8-8). 8.2 Simple Adaptive Linear Combiner Adaptive Linear Element (ADLINE) adalah single neuron dengan synaptic weight yang di-update berdasarkan algoritma Least Mean Square (LMS). Gambar 8-2 memperlihatkan struktur ADLINE.. Gambar 8-2 Struktur ADLINE 100.
(102) Pada Gambar 8-2 terdapat input ( ), output ( ) dan target/desired response ( ). Dimana output ( ) dapat dihitung dengan persamaan 8-9. ( )=. ( ) ( ). (8-9). Error diperoleh dengan mengurangi target dengan output, sehingga diperoleh persamaan 8-10. ( )= ( )−. ( ) ( ). (8-10). Algoritma LMS bertujuan meng-update weight hingga diperoleh nilai weight paling optimal yaitu kondisi dimana nilai Mean Square Error (MSE) telah mencapai nilai paling minimum sesuai yang diinginkan. Nilai MSE dapat dihitung dengan persamaan 8-11. ( )=. {. ( )} =. {[ ( ) −. ( ) ( )] }. (8-11). 8.3 LMS Algorithm Pada LMS algorithm, weight di-update berdasarkan error yang dihitung dengan persamaan 8-12. ( )= ( )−∑. ( ) ( ). (8-12). dan weight yang di-update dihitung dengan persamaan 8-13. ( + 1) =. ( )+. ( ) ( ). 101. (8-13).
(103) dimana μ adalah konstanta pembelajaran (learning constant). Nilai μ dapat diatur menggunakan persamaan 8-14. ( )= dengan nilai. >0. (8-13). ≫ 1.. Secara garis besar, langkah-langkah LMS algorithm ditunjukkan oleh Tabel 8-1. Tabel 8-1 Langkah-Langkah LMS Algorithm Langkah 1 Langkah 2. Set k=1, inisiasi weight dan pilih nilai dan Hitung parameter learning rate ( ) =. Langkah 3. Hitung error, ( ) = ( ) − ∑. Langkah 4. Update weight ( + 1) =. Langkah 5. Jika konvergen, maka stop, jika tidak maka k menjadai k+1 dan ulangi langkah 2.. ( )+. ( ) ( ) ( ) ( ). 8.4 Latihan Menggunakan Single Neuron Dengan LMS Algorithm Sebuah neuron dengan LMS algorithm seperti pada Gambar 8-3 akan difungsikan sebagai gerbang AND dan OR dengan jumlah input sebanyak 7. Dari Gambar 8-3 tersebut maka terlebih dahulu harus dihitung : 1. Persamaan Potensial Aktivasi Dengan menggunakan persamaan (8-9), maka besarnya potensial aktivasi dapat dicari dengan persamaan 8-14. =∑. (8-14). 102.
(104) dimana : : Potensial aktivasi. : Weight dari input synapse ke-j ke neuron q. : Input synapse ke-j. : Jumlah input.. Gambar 8-3 Arsitektur Neuron Dengan LMS Algorithm Karena x = -1(threshold), maka w = θ Sehingga persamaan potensial aktivasi menjadi : =. (−1) + +. + +. 103. +. +. +.
(105) =. +. + +. +. +. +. −. = ∑. −. (8-16). dimana : v : Potensial aktivasi w : Weight dari input ke-j ke neuron q. x : Input x ke-j. θ : Threshold neuron q. 2. Persamaan Update Weight dan Threshold a. Mencari Persamaan Update Weight ( ) w (k + 1) = w (k) + μ(k)e(k) x (k). (8-17). dimana learning rate μ(k) adalah : μ(k) =. μ. (8-18). 1+. dan error e(k) adalah :. e(k) = d(k) −. w (k)x (k) − θ = d(k) − v (k). (8-19). sehingga persamaan (8-17) menjadi :. w (k + 1) = w (k) +. μ 1+. d(k) − v (k) x (k). 104. (8-20).
(106) Dimana : w (k + 1) : Weight dari input ke-j ke neuron q pada time step k+1 w (k) : Weight dari input ke-j ke neuron q pada time step k. μ : learning rate awal, μ > 0 τ : Time constant, τ ≫ 1, biasanya 100 ≤ τ ≤ 500 k : Time step. d(k) : Desired response pada time step k. v (k) : Activation potential. x (k) : Input x ke-j dari neuron q pada time step k. b. Mencari Persamaan Update Threshold (θ ) Karena w = θ , untuk mencari persamaan update θ maka nilai w = θ dapat dimasukkan ke persamaan (819) sehingga menjadi :. θ (k + 1) = θ (k) +. μ 1+. d(k) − v (k) x (k). (8-21). karena x = -1 (tetap) maka :. θ (k + 1) = θ (k) +. μ 1+. d(k) − v (k) (−1). (8-22). Sehingga: (8-23). 105.
(107) θ (k + 1) = θ (k) −. dimana : θ (k + 1) k+1. μ 1+. d(k) − v (k). : Threshold dari neuron q pada time step. 3. Implementasi Algoritma LMS Menggunakan C# Berikut adalah langkah-langkah pembuatan Algoritma LMS yang dapat difungsikan untuk menyelesaikan fungsi gerbang AND dan OR 7 input: 1. Jalankan software Microsoft Visual C#. 2. Buat project baru dan beri nama LMS Algorithm. 3. Buat Form dengan tampilan sbb:. 4. Pada Form editor, tambahkan global variable sebagai berikut: int temp; int [] Yd; int[,] X; float Miu, Miu_nol, Tau, LMSE; int k_max; float[] initWx, Wx, Wf;. 106.
(108) float[] Vq, Yo; float initTetha, TethaFinal; float Vqi, Tetha, Activation; float Y, Err_i, MSE, SSE; Boolean learningStatus;. 5. Double klik Form, kemudian tambahkan program sebagai berikut: privatevoid Form1_Load(object sender, EventArgs e) { label5.Text = "Process: Idle"; button1.Enabled = true; button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; }. 6. Double klik tombol Generate Data Input, kemudian tambahkan program sebagai berikut: privatevoid button1_Click(object sender, EventArgs e) { clearListbox(); generateDataInput(); if (radioButton1.Checked == true) { ANDfunction(); } if (radioButton2.Checked == true) { ORfunction(); } button2.Enabled = true; }. 7. Tambahkan fungsi clearListbox() seperti berikut: privatevoid clearListbox() { listBox1.Items.Clear(); listBox2.Items.Clear();. 107.
(109) listBox3.Items.Clear(); listBox4.Items.Clear(); listBox5.Items.Clear(); listBox6.Items.Clear(); listBox7.Items.Clear(); listBox8.Items.Clear(); }. 8. Tambahkan fungsi generateDataInput() seperti berikut: privatevoid generateDataInput() { X = newint[200, 200]; int k,j; for (k = 0; k <= 127; k++) { temp = k; for ( j=1; j<=7;j++) { X[k, j] = temp % 2; temp= temp / 2; } listBox7.Items.Add("X[" "]:" + X[k, 1]); listBox6.Items.Add("X[" "]:" + X[k, 2]); listBox5.Items.Add("X[" "]:" + X[k, 3]); listBox4.Items.Add("X[" "]:" + X[k, 4]); listBox3.Items.Add("X[" "]:" + X[k, 5]); listBox2.Items.Add("X[" "]:" + X[k, 6]); listBox1.Items.Add("X[" "]:" + X[k, 7]); } }. 108. + (k) + "," + 1 + + (k) + "," + 2 + + (k) + "," + 3 + + (k) + "," + 4 + + (k) + "," + 5 + + (k) + "," + 6 + + (k) + "," + 7 +.
(110) 9. Tambahkan fungsi ANDfunction() seperti berikut: privatevoid ANDfunction() { Yd = newint[200]; int k,j; for (k = 0; k <= 127; k++) { Yd[k] = X[k, 1]; for (j = 1; j <= 7; j++) { Yd[k] = Yd[k] & X[k, j]; } listBox8.Items.Add("Yd[" + (k) + "]:" + Yd[k]); } }. 10. Tambahkan fungsi ORfunction() seperti berikut: privatevoid ORfunction() { Yd = newint[200]; int k, j; for (k = 0; k <= 127; k++) { Yd[k] = X[k, 1]; for (j = 1; j <= 7; j++) { Yd[k] = Yd[k] | X[k, j]; } listBox8.Items.Add("Yd[" + (k) + "]:" + Yd[k]); } }. 11. Double klik tombol Learning, kemudian tambahkan programsebagai berikut: privatevoid button2_Click(object sender, EventArgs. 109.
(111) e) { button2.Enabled = false; learningStatus = true; Miu_nol = float.Parse(textBox1.Text); Tau = float.Parse(textBox2.Text); LMSE = float.Parse(textBox3.Text); k_max = int.Parse(textBox4.Text); Miu = Miu_nol; initWx = newfloat[200]; X = newint[200, 200]; Wx = newfloat[200]; Wf = newfloat[200]; int i, j, k, n; if (learningStatus == true) { // Step 1: Initialize weight Random rnd = newRandom(); for (j = 1; j <= 7; j++) { float randomNumber = rnd.Next(0, 10); initWx[j] = randomNumber / 100; listBox9.Items.Add("[" + j + "]:" + initWx[j]); } float randomNumber1 = rnd.Next(0, 10); initTetha = randomNumber1 / 100; listBox9.Items.Add("initTetha:" + initTetha); for (j = 1; j <= 7; j++) { Wx[j] = initWx[j]; } Tetha = initTetha; k = 1; n = 1; Miu = Miu_nol; do { // Step 2: Calculate Learning Rate label5.Text = "Process: Learning..."; Miu = Miu_nol / (1 + (k / Tau));. 110.
(112) listBox10.Items.Add("[" + k + "]:" + Miu); // Step 3: Calculate Error SSE = 0; for (i = 1; i <= 128; i++) { Vqi = 0; for (j = 1; j <= 7; j++) { Vqi = Vqi + Wx[j] * (float)X[i, j]; } Vqi = Vqi - Tetha; listBox14.Items.Add("[" + i + "]:" + Vqi); Err_i = (float)Yd[i] - Vqi; listBox13.Items.Add("[" + n + "]:" + Err_i); // Step 4: Update Weight for (j = 1; j <= 7; j++) { Wx[j] = Wx[j] + (Miu * (Err_i) * (float)X[i, j]); listBox12.Items.Add("[" + i + "," + j + "]:" + Wx[j]); } Tetha = Tetha - (Miu * Err_i); SSE = SSE + (Err_i * Err_i); listBox11.Items.Add("[" + n + "]:" + SSE); n = n + 1; } MSE = (float) Math.Sqrt(0.5 * SSE); textBox9.Text = MSE.ToString(); chart1.Series["MSE"].Points.AddXY(k, MSE); k = k + 1; textBox7.Text = k.ToString(); if (k > k_max) {. 111.
(113) notKonvergen(); } PauseForMilliSeconds(1); } while (LMSE <= MSE); Konvergen(); } }. 12. Tambahkan fungsi Konvergen() seperti berikut: privatevoid Konvergen() { // Konvergen learningStatus = false; for (int j = 1; j <= 7; j++) { Wf[j] = Wx[j]; listBox15.Items.Add("[" + j + "]:" + Wf[j]); } TethaFinal = Tetha; listBox16.Items.Add(TethaFinal); label5.Text = "KONVERGEN"; button2.Enabled = false; button3.Enabled = true; }. 13. Tambahkan fungsi notKonvergen() seperti berikut: privatevoid notKonvergen() { learningStatus = false; for (int j = 1; j <= 7; j++) { Wf[j] = Wx[j]; listBox15.Items.Add("[" + j + "]:" + Wf[j]); } TethaFinal = Tetha; listBox16.Items.Add(TethaFinal); label5.Text = "NOT KONVERGEN";. 112.
(114) button2.Enabled = false; button3.Enabled = true; }. 14. Double klik tombol Simulate, kemudian tambahkan program sebagai berikut: privatevoid button3_Click(object sender, EventArgs e) { button3.Enabled = false; listBox14.Items.Clear(); generateDataInput(); Vq = newfloat[200]; for (int i = 0; i <= 127; i++) { for (int j = 1; j <= 7; j++) { Vq[i] = Vq[i] + Wf[j] * (float)X[i, j]; } Vq[i] = Vq[i] - TethaFinal; listBox14.Items.Add("["+i+"]:"+ Vq[i]); } button4.Enabled = true; }. 15. Double klik tombol Activation Function, kemudian tambahkan program sebagai berikut: privatevoid button4_Click(object sender, EventArgs e) { Yo = newfloat[200]; listBox17.Items.Clear(); listBox14.Items.Clear(); for (int i = 0; i <= 127; i++) { Vq[i] = 0;. 113.
(115) for (int j = 1; j <= 7; j++) { Vq[i] = Vq[i] + Wf[j] * (float) X[i, j]; } Vq[i] = Vq[i] - TethaFinal; listBox14.Items.Add("[" + i + "]:" + Vq[i]); if (radioButton4.Checked == true) { Activation = float.Parse(textBox5.Text); if (Vq[i] > Activation) { Yo[i] = 1; } else { Yo[i] = 0; } } if (radioButton5.Checked == true) { Yo[i] = (1 / (1 + (float)Math.Exp(-1.0 * Vqi))); } listBox17.Items.Add("[" + i + "]:" + Yo[i]); } }. 16. Tambahkan fungsi PauseForMilliSeconds () seperti berikut: publicstaticDateTime PauseForMilliSeconds(int MilliSecondsToPauseFor) { System.DateTime ThisMoment = System.DateTime.Now; System.TimeSpan duration = new System.TimeSpan(0, 0, 0, 0, MilliSecondsToPauseFor); System.DateTime AfterWards = ThisMoment.Add(duration); while (AfterWards >= ThisMoment) { System.Windows.Forms.Application.DoEvents(); ThisMoment = System.DateTime.Now; } return System.DateTime.Now; }. 114.
(116) 17. Tekan tombol Start Debugging, maka akan muncul form sebagai berikut:. 18. Pada menu Logic Function, pilih fungsi OR, kemudian tekan tombol Generate Data Input. 19. Pada menu Learning Parameter, masukkan nilai sebagai berikut: Initial Learning Rate: 0.3, Tau: 200, Least MSE: 0.75, Max. Iteration: 10000. 20. Klik tombol Learning dan tunggu hingga selesai. Saat learning selesai, maka listbox Wf(j) dan Tetha Final akan muncul nilai. 21. Klik tombol Simulate, perhatikan perubahan pada listbox Vq.. 115.
(117) 22. Pada menu Activation Function, pilih fungsi aktivasi Hard Limiter, dan pada textbox sebelah kanannya masukkan nilai sedikit diatas nilai Vq[0], misalnya 0.78.. 23. Klik tombol Activation Function, maka akan muncul nilai pada listbox Y. Ini adalah nilai output neuron untuk fungsi gerbang OR 7 input dengan kombinasi input seperti nilai pada listbox X7 s.d X1.. 8.5 Tugas 1. Jalankan program diatas untuk fungsi gerbang AND, tentukan berapakah nilai threshold Hard Limiter pada menu Activation Function! 2. Coba gunakan fungsi aktivasi binary sigmoid, kemudian perhatikan hasilnya! 3. Buatlah kesimpulan dari percobaan ini!. 116.
(118) 9. BACKPROPAGATION. Bab ini membahas tentang feed forward multilayer perseptron yang menggunakan metode pembelajaran propagasi balik (backpropagation) serta cara mempercepat waktu pembelajaran dengan metoda updating momentum dan search and convergence.. Pokok Bahasan Feed Forward Multilayer Perseptron Standard Backpropagation. 117.
(119) 9. BACKPROPAGATION Tujuan : Menjelaskan cara kerja standard backpropagation 9.1 Feed Forward Multilayer Perseptron Gambar 9-1 memperlihatkan arsitektur feed forward multilayer perseptron. Neural network jenis ini memiliki sejumlah lapisan atau layer yaitu input layer, hidden layer dan output layer. Pada setiap layer dapat terdiri dari sejumlah neuron. Banyaknya layer dan neuron tiap layer tergantung dari problem yang akan diselesaikan.. Gambar 9-1 Arsitektur Feed Forward Multilayer Perseptron 118.
(120) Output layer ke-1 dihitung menggunakan persamaan (9-1). x. ( ). =. ( ). =. ( ). [. ( ). x]. (9-1). Output layer ke-2 dihitung menggunakan persamaan (9-2). x. ( ). ( ). =. ( ). =. ( ). [. x. ]. (9-2). Output layer ke-3 dihitung menggunakan persamaan (9-3). y=x. =. ( ). ( ). =. ( ). [. ( ). x. ]. (9-3). Jika persamaan (9-2) disubstitusi ke persamaan (9-3) maka akan menghasilkan persamaan (9-4). y=. ( ). ( ) ( ). [. ( ). ( ). ]. (9-4). Dimana : ( ) adalah fungsi aktivasi non-linier pada layer ke-1. ( ) adalah fungsi aktivasi non-linier pada layer ke-2. ( ) adalah fungsi aktivasi non-linier pada layer ke-3. 9.2 Standard Backpropagation Secara garis besar, langkah-langkah pembelajaran standar backpropagation ditunjukkan oleh Tabel 9-1. Tabel 9-1 Langkah-Langkah Pembelajaran Standard Backpropagation Langkah 1 Langkah 2. Inisiasi weight dengan nilai random yang kecil. Susun kumpulan pasangan input/output yang akan. 119.
(121) dipelajarkan, masukkan pola input dan hitung respon jaringan. Respon target jaringan dibandingkan dengan output aktual jaringan, dan dengan persamaan (9-6) dan (9-7) hitung semua local error. Update weight menggunakan persamaan (9-5). Hingga jaringan mencapai tingkat akurasi yang telah ditentukan sehingga dihasilkan respon yang baik untuk semua pola input yang dipelajarkan, lanjutkan ke langkah 2 sampai 4.. Langkah 3. Langkah 4 Langkah 5. Persamaan (9-5) digunakan untuk meng-update bobot (weight) jaringan. w. ( ). (k + 1) = w ( ) (k) + μ(. ) ( ) (. ) ,. (9-5). Dimana: ( ). ( ). = ∑. =( (. −. ( ). ). (. ,. ( ). ) ( ). (. ) untuk output layer. ( ). ) untuk non-output layer. (9-6) (9-7). Langkah ke-5 pembelajaran standard backpropagation pada Tabel 9-1, disebutkan bahwa jaringan mencapai tingkat akurasi yang telah ditentukan sehingga dihasilkan respon yang baik. Respon yang baik ini dievaluasi menggunakan persamaan (9-8). E =. −. =. 1 2. ( ). −. −. (9-8). ( ). 120. ( ). ,.
(122) 9.3 Momentum Updating Pada algoritma momentum updating,. weight di-update. menggunakan persamaan (9-9). ( ). ( + 1) =. ( ). ( ). ( )+ 9-5). 121. ( ). ( ). (. ) ,. ( )+. (9-5).
(123) 9.4 Search and Convergence Pada algoritma search and convergence, learning rate di-update menggunakan persamaan (9-10).. ( )=. 1+. 1. ( )=. 1+. 1+. (9-10). +. 9.5 LatihanMenggunakan Algoritma Backpropagation Gambar 9-2 memperlihatkan sebuah struktur neural network yang digunakan untuk menyelesaikan persamaan (9-11) dan (9-12). Gambar 9-3 memperlihatkan diagram alir algoritma standard backpropagation.. Gambar 9-2 Struktur Neural Network Persamaan output network adalah sebagai berikut : ( , ( ,. ) = 1/2( )=(. ). + +. 122. ). (9-11) (9-12).
(124) Dimana : –1 £ £ 1 dan –1 £ £ 1. Gambar 9-3 Diagram Alir Algoritma Standar Backpropagation Berikut adalah langkah-langkah pembuatan program untuk membentuk neural network untuk menyelesaikan persamaan (911) dan (9-12: 1. Jalankan software Microsoft Visual C#. 2. Buat project baru dan beri nama Backpropagation. 3. Buat Form dengan tampilan sbb:. 123.
Dokumen terkait
Setelah mengikuti kuliah ini, diharapkan mahasiswa memahami tentang intelligent control (kendali cerdas), khususnya Pengendali Logika Fuzzy dan Jaringan Saraf Tiruan. Mata kuliah
Sistem kendali yang dibangun menggunakan fuzzy logic controller yang dirancang dengan menggunakan Metode Mamdani sistem perancangan pengendalian suhu dan
Mahasiswa mengerti konsep sistem instrumentasi cerdas dengan berdasar pada teknologi.. soft computing : fuzzy logic dan
Penelitian ini bertujuan untuk membangun Kendali Cerdas berbasis Fuzzy Logic (Logika Samar) untuk menentukan posisi robot dan Behavior Based Control (kendali berbasis
Sistem kendali yang dibangun menggunakan fuzzy logic controller yang dirancang dengan menggunakan Metode Mamdani sistem perancangan pengendalian suhu dan
Sistem kendali cerdas ini berfungsi berdasarkan inputan dari Modul GPS dan Modul relay yang terhubung ke mikrokontroler yang dapat dimonitor oleh aplikasi android, apabila
Abstrak : Prototype alat kendali intensitas cahaya lampu LED dengan pengenalan suara manusia berbasis Easy VR menggunakan fuzzy logic adalah suatu prototype yang
KESIMPULAN Hasil analisis Sistem kendali Closed Loop pada mesin extruder Straw menggunakan metode Fuzzy dapat disimpulkan sebagai berikut: Prototype kendali Close loop berhasil