Pembangkit Fungsi Keanggotaan Fuzzy Otomatis Menggunakan Neural Network

(1)

PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY

OTOMATIS MENGGUNAKAN NEURAL NETWORK

TESIS

Oleh

ZARA YUNIZAR

107038018/TINF

PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY

OTOMATIS MENGGUNAKAN NEURAL NETWORK

TESIS

Diajukan sebagai salah satu syarat untuk memperoleh gelar

Magister Komputer dalam Program Studi Magister Teknik

Informatika

pada Program Pascasarjana Fakultas Ilmu Komputer dan

Teknologi Informasi Universitas Sumatera Utara

Oleh

ZARA YUNIZAR

107038018/TINF

PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN


(3)

PENGESAHAN

Judul Tesis : PEMBANGKIT FUNGSI

KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK

Nama Mahasiswa : ZARA YUNIZAR

Nomor Induk Mahasiswa : 107038018

Program Studi : MAGISTER TEKNIK INFORMATIKA

Fakultas : FAKULTAS ILMU KOMPUTER DAN

TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

Menyetujui Komisi Pembimbing

Prof. Dr. Opim Salim Sitompul

Anggota Ketua

Prof. Dr. Herman Mawengkang

Ketua Program Studi, Dekan,

Prof. Dr. Muhammad Zarlis

NIP : 19570701 198601 1 003 NIP : 19570701 198601 1 003 Prof. Dr. Muhammad Zarlis


(4)

PERNYATAAN ORISINALITAS

PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK

TESIS

Dengan ini saya nyatakan bahwa saya mengakui semua karya tesis ini adalah hasil kerja saya sendiri kecuali kutipan dan ringkasan yang tiap satunya telah dijelaskan sumbernya dengan benar.

Medan, 18 Juli 2012

NIM. 107038018 Zara Yunizar


(5)

PERNYATAAN PERSETUJUAN PUBLIKASI

KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini :

Nama : Zara Yunizar

NIM : 107038018

Program Studi : Teknik Informatika

Jenis Karya Ilmiah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalty Free Right) atas Tesis saya yang berjudul :

PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY

OTOMATIS MENGGUNAKAN NEURAL NETWORK

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk data-base, merawat dan mempublikasikan Tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan atau sebagai pemilik hak cipta.

Demikan pernyataan ini dibuat dengan sebenarnya.

Medan, 18 Juli 2012

NIM. 107038018 Zara Yunizar


(6)

Telah diuji pada

Tanggal : 30 Juli 2012

PANITIA PENGUJI TESIS

Ketua

: Prof. Dr. Herman Mawengkang

Anggota

: 1. Prof. Dr. Opim Salim Sitompul

2. Prof. Dr. Muhammad Zarlis

3. Prof. Dr. Tulus


(7)

RIWAYAT HIDUP

DATA PRIBADI

Nama lengkap berikut gelar : Zara Yunizar, S.Kom, M.Kom

Tempat dan Tanggal Lahir : Medan, 18 Oktober 1983

Alamat Rumah : Jalan Rel Kereta Api, Dusun Barat

Geulanggang teungoh – Bireuen

Telepon/Faks/HP : +6285289850044

E-mail

Instansi Tempat Bekerja : Universitas Almuslim

Alamat Kantor : Jalan Universitas Almuslim – Bireuen

DATA PENDIDIKAN

SD : Inpress Kutablang – Lhokseumawe Tamat : 1996

SLTP : Negeri 2 Lhokseumawe Tamat : 1999

SLTA : Negeri 1 Lhokseumawe Tamat : 2002

D3 : STMIK AMIKOM Yogyakarta Tamat : 2005

S1 : STMIK AMIKOM Yogyakarta Tamat : 2008


(8)

KATA PENGANTAR

Bismillahirrahmanirahim,

Pertama-tama penulis panjatkan puji syukur kehadirat Allah SWT, atas segala limpahan rahmat dan karunia-Nya karena atas izin-Nya, penulis dapat menyelesaikan tesis ini dengan baik. Tesis penulis yang berjudul “Pembangkit Fungsi Keanggotaan Fuzzy Otomatis Menggunakan Neural Network” merupakan salah satu syarat akademik penulis sebagai mahasiswa S2, program studi Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI), Universitas Sumatra Utara (USU), Medan dalam menyelesaikan jenjang pendidikan S2.

Dengan selesainya tesis ini, perkenanlah saya mengucapkan terima kasih yang sebesar-besarnya kepada :

Rektor Universitas Sumatera Utara, Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc (CTM), Sp. A(K) atas kesempatan yang diberikan kepada saya untuk mengikuti dan menyelesaikan pendidikan Program Magister.

Dekan Fakultas Ilmu Komputer Universitas Sumatera Utara sekaligus Ketua Program Studi Magister (S2) Teknik Informatika, Prof. Dr. Muhammad Zarlis dan sekretaris Program Studi Magister (S2) Teknik Informatika M. Andri Budiman, S.T, M.Comp, M.E.M beserta seluruh staf pengajar pada program Studi Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI) Universitas Sumatera Utara.

Terimakasih yang tak terhingga dan penghargaan setinggi-tingginya saya ucapkan kepada Prof. Dr. Herman Mawengkang, selaku pembimbing utama dan kepada Prof. Dr. Opim Salim Sitompul selaku pembimbing lapangan yang dengan penuh kesabaran membimbing saya hingga selesainya tesis ini dengan baik.

Terimakasih yang tak terhingga dan penghargaan setinggi-tingginya saya ucapkan kepada Prof. Dr. Tulus dan Dr. Erna Budhiarti Nababan, sebagai


(9)

pembanding yang telah memberikan saran dan masukan serta arahan yang baik demi penyelesaian tesis ini.

Staf pegawai dan administrasi pada Program Studi Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI) Universitas Sumatera Utara yang telah memberikan bantuan dan pelayanan terbaik kapada penulis selama mengikuti perkuliahan hingga saat ini.

Kepada Ayahanda Zainal Arifin, Ibunda Zuraidah selaku orang tua, kepada suamiku tersayang Zulfikar, A.Md dan adik-adikku Zola Fitriana, S.Pd, Zalfie Ardian, S.Kom, Zuriana Yulizar, Zulfikar M. Rizki serta kepada seluruh keluarga besar yang tidak dapat saya sebutkan satu persatu, terimakasih atas segala pengorbanannya, baik moril maupun materil budi baik ini tidak dapat dibalas hanya diserahkan kepada Allah SWT.

Rekan mahasiswa/i angkatan kedua tahun 2010 pada Program Pascasarjana Fakultas Ilmu Komputer Universitas Sumatera Utara yang telah banyak membantu penulis baik berupa dorongan semangat dan doa selama mengikuti perkuliahan.

Seluruh pihak yang tidak dapat penulis sebutkan satu persatu dalam tesis ini, terimakasih atas segala bantuan dan doa yang diberikan. Dengan segala kekurangan dan kerendahan hati, sekali lagi penulis mengucapkan terimakasih. Semoga kiranya Allah SWT membalas segala bantuan dan kebaikan yang telah kalian berikan.

Medan, Agustus 2012

Zara Yunizar NIM 107038018


(10)

(11)

PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY

OTOMATIS MENGGUNAKAN NEURAL NETWORK

ABSTRAK

Dalam penelitian ini penulis menggunakan algoritma Backpropagation Neural Network (BPNN) untuk membangkitkan fungsi keanggotaan fuzzy secara otomatis, agar didapatkan fungsi keanggotaan yang lebih tepat sesuai dengan data yang diberikan. Algoritma backpropagation neural network merupakan salah satu algoritma pembelajaran supervised learning, yaitu pembelajaran yang membutuhkan pengawasan dalam proses pembelajarannya. Salah satu faktor penting dalam pembelajaran BPNN adalah jumlah variabel input. Semakin banyak variabel input yang digunakan, maka akan semakin bagus target yang didapatkan. Dalam penelitian ini, variabel input awal yang digunakan hanya satu variabel, sesuai dengan dataset yang digunakan, sehingga untuk mendapatkan hasil target yang lebih baik ditambahkan dua variabel input awal yang baru, yaitu x2 dan x3.

Variabel x2 didapatkan dengan menggunakan algoritma tambahan yaitu algoritma

kohonen (SOM), sedangkan variabel x3 didapatkan dengan menggunakan rumus

x2 – indeks (i). Selain itu algoritma kohonen juga digunakan untuk mendapatkan

nilai output yang akan dijadikan sebagai input proses pelatihan pada algoritma BPNN. Dari hasil penelitian yang penulis lakukan, algoritma BPNN dapat membangkitkan fungsi keanggotaan secara otomatis pada satu variabel awal, dengan menggunakan algoritma kohonen untuk mendapatkan variabel input awal tambahan.


(12)

AUTOMATICALLY GENERATING FUZZY MEMBERSHIP

FUNCTIONS USING NEURAL

NETWORK

In this study the author used an algorithm Backpropagation Neural Network (BPNN) to generate automatically fuzzy membership functions, in order to obtain a more precise membership functions according to the data provided. Backpropagation neural network algorithm is one of the algorithm supervised learning, this learning need supervision in the learning process. One of the important factor in BPNN learning is the number of input variables. To get the better result we have to used more input variables. In this study, only one initial input variables have to be used, according to the dataset used, so as to get the better result added two new initial input variables, namely x

ABSTRACT

2 and x3. Variable x2

be obtained by using the algorithm additional. It’s called Kohonen algorithm (SOM). The variable x3 be obtained by using the formula (x2 - index (i)).

Moreover than, the Kohonen algorithm is also used to get the output value will be used as input process to the algorithm BPNN training. From the results of research by the author, the BPNN algorithm have to automatically generate membership functions at the beginning of one variable, using the Kohonen algorithm to obtain additional initial input variables.


(13)

(14)

DAFTAR ISI

KATA PENGANTAR vii

ABSTRAK ix

ABSTRACT x

DAFTAR ISI xi

DAFTAR TABEL xiii

DAFTAR GAMBAR xv

BAB I PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 4

1.5 Manfaat Penelitian 4

BAB II TINJAUAN PUSTAKA 5

2.1. Logika Fuzzy 5

2.2 Fuzzyfikasi (Fuzzyfication) 7

2.2.1 Linguistic Variable 8

2.2.2 Membership Function 9

2.2.3 Aturan Dasar 15

2.2.4 Defuzzyfication 16

2.3 Neural Networks 17

2.3.1 Backpropagation Neural Network (BPNN) 19

2.3.2 Algoritma Kohonen Map 27

2.4 Normalisasi Data 28

2.5 Smoothing Grafik 29

2.6 Riset Terkait 29

2.7 Perbedaan Dengan Riset Yang Lain 30

2.8 Kontribusi Riset. 31

BAB III METODOLOGI PENELITIAN 32

3.1 Pendahuluan 32


(15)

3.3 Proses Penyelesaian Masalah 33 3.3.1 Perancangan Jaringan Backpropagation

Neural Network 33

3.3.2 Prosedur Kerja Jaringan BPNN 35

3.3.2.1 Pra Prosesing 35

3.3.2.2 Proses Penentuan Target Awal dan

Bobot Pada Algoritma Kohonen 36

3.3.2.3 Proses Pelatihan Data Pada BPNN 42

3.3.2.4 Proses Smoothing Grafik 44

3.3.2.5 Proses Pengujian Data Pada BPNN 44

BAB IV HASIL DAN PEMBAHASAN 46

4.1 Pendahuluan 46

4.2 Hasil Uji Coba 46

4.2.1 Proses Pelatihan 46

4.2.1.1 Set Target Dan Bobot 47

4.2.1.2 Grafik Hasil Proses Pelatihan 65

4.2.1.3 Bobot Hasil Pelatihan 77

4.2.2 Proses Pengujian 77

BAB V KESIMPULAN DAN SARAN 92

5.1 Kesimpulan 92

5.2 Saran 93

DAFTAR PUSTAKA 94

LAMPIRAN A 96

LAMPIRAN B 124


(16)

DAFTAR TABEL

No Tabel Halaman

2.1 Contoh matriks aturan dasar perancangan kontrol

logika fuzzy. 15

2.2 Riset terkait. 29

4.1 Input 1 proses clusterisasi data target awal potongan

grafik mf 1. 48

4.2 Input hasil normalisasi data target awal potongan

grafik mf 1. 49

4.3 Hasil target data target awal potongan grafik mf 1. 50

4.4 Input 2 proses clusterisasi data target awal potongan

grafik mf 2. 51

4.5 Input hasil normalisasi data target awal potongan

grafik mf 2. 52

4.6 Hasil target data target awal potongan grafik mf 2. 54

4.7 Input 3 proses clusterisasi data target awal potongan

grafik mf 3. 54

4.8 Input hasil normalisasi data target awal potongan

grafik mf 3. 56

4.9 Hasil target data target awal potongan grafik mf 3. 57

4.10 Input 4 proses clusterisasi data target awal potongan

grafik mf 4. 58

4.11 Input hasil normalisasi data target awal potongan

grafik mf 4. 59

4.12 Hasil target data target awal potongan grafik mf 4. 60 4.13 Input 5 proses clusterisasi data target awal potongan

grafik mf 5. 61

4.14 Input hasil normalisasi data target awal potongan

grafik mf 5. 62

4.15 Hasil target data target awal potongan grafik mf 5. 63 4.16 Nilai y1 – y100 hasil pelatihan untuk output 1 dataset

nilai. 65

4.17 Nilai y1 – y100 hasil pelatihan untuk output 2 dataset

nilai. 67

4.18 Nilai y1 – y100 hasil pelatihan untuk output 3 dataset

nilai. 69

4.19 Nilai y1 – y100 hasil pelatihan untuk output 4 dataset

nilai. 71

4.20 Nilai y1 – y100 hasil pelatihan untuk output 5 dataset

nilai. 73


(17)

4.22 Input 1 proses clusterisasi data pengujian potongan

grafik mf 1. 77

4.23 Input hasil normalisasi data pengujian potongan grafik

mf 1. 78

4.24 Input 2 proses clusterisasi data pengujian potongan

grafik mf 2. 79

4.25 Input hasil normalisasi data pengujian potongan grafik

mf 2. 79

4.26 Input 3 proses clusterisasi data pengujian potongan

grafik mf 3. 81

4.27 Input hasil normalisasi data pengujian potongan grafik

mf 3. 81

4.28 Input 4 proses clusterisasi data pengujian potongan

grafik mf 4. 83

4.29 Input hasil normalisasi data pengujian potongan grafik

mf 4. 83

4.30 Input 5 proses clusterisasi data pengujian potongan

grafik mf 5. 85

4.31 Input hasil normalisasi data pengujian potongan grafik

mf 5. 85

4.32 Hasil y1 – y100. 87


(18)

DAFTAR GAMBAR

No Gambar Halaman

2.1 Diagram blok pengendali logika fuzzy 6

2.2 Ilustrasi fuzzy dan crisp set 7

2.3 Fungsi keanggotaan suhu 7

2.4 Fungsi keanggotaan kelompok umur 9

2.5 Fungsi keanggotaan linear naik 10

2.6 Fungsi keanggotaan linear turun 11

2.7 Fungsi keanggotaan segitiga (triangle) 12

2.8 Fungsi keanggotaan trapesium (trapezoidal) 12

2.9 Fungsi keanggotaan gaussian σ = standar deviasi,

c = pusat 13

2.10 Fungsi keanggotaan bell 13

2.11 Letak parameter a,b dan c pada fungsi

keanggotaan Bell 14

2.12 Fungsi keanggotaan sigmoid membuka ke kanan 14

2.13 Fungsi keanggotaan sigmoid membuka ke kiri 15

2.14 Proses komunikasi antar neuron 18

2.15 Lapis dan aliran sinyal dalam algoritma BPNN 19

3.1 Arsitektur jaringan BPNN 33

3.2 Diagram alir prosedur kerja jaringan BPNN 34

3.3 Algoritma penentuan nilai batas grafik 35

3.4 Grafik linear turun 36

3.5 Algoritma pembentukan grafik linear turun 36

3.6 Grafik segitiga 36

3.7 Algoritma pembentukan grafik segitiga 37

3.8 Grafik linear naik 37

3.9 Algoritma pembentukan grafik linear naik 38

3.10 Algoritma pembentukan variabel x2 39

3.11 Algoritma penentuan nilai target grafik 1 40

3.12 Algoritma penentuan nilai target grafik 2, grafik 3

dan grafik 4 40

3.13 Algoritma penentuan nilai target grafik 5 41

3.14 Diagram alir proses pelatihan data pada BPNN 42

3.15 Diagram proses smoothing grafik 43

3.16 Diagram proses pengujian data pada BPNN 44


(19)

4.2 Tampilan program pelatihan ke 3 pada maxepoch

100 64

4.3 Tampilan program smoothing pelatihan ke 3 pada

maxepoch 100 64

4.4 Tampilan program pengujian saat data input 76

4.5 Tampilan program pengujian saat input data bobot 77

4.6 Tampilan program pengujian saat proses pengujian


(20)

PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY

OTOMATIS MENGGUNAKAN NEURAL NETWORK

ABSTRAK

Dalam penelitian ini penulis menggunakan algoritma Backpropagation Neural Network (BPNN) untuk membangkitkan fungsi keanggotaan fuzzy secara otomatis, agar didapatkan fungsi keanggotaan yang lebih tepat sesuai dengan data yang diberikan. Algoritma backpropagation neural network merupakan salah satu algoritma pembelajaran supervised learning, yaitu pembelajaran yang membutuhkan pengawasan dalam proses pembelajarannya. Salah satu faktor penting dalam pembelajaran BPNN adalah jumlah variabel input. Semakin banyak variabel input yang digunakan, maka akan semakin bagus target yang didapatkan. Dalam penelitian ini, variabel input awal yang digunakan hanya satu variabel, sesuai dengan dataset yang digunakan, sehingga untuk mendapatkan hasil target yang lebih baik ditambahkan dua variabel input awal yang baru, yaitu x2 dan x3.

Variabel x2 didapatkan dengan menggunakan algoritma tambahan yaitu algoritma

kohonen (SOM), sedangkan variabel x3 didapatkan dengan menggunakan rumus

x2 – indeks (i). Selain itu algoritma kohonen juga digunakan untuk mendapatkan

nilai output yang akan dijadikan sebagai input proses pelatihan pada algoritma BPNN. Dari hasil penelitian yang penulis lakukan, algoritma BPNN dapat membangkitkan fungsi keanggotaan secara otomatis pada satu variabel awal, dengan menggunakan algoritma kohonen untuk mendapatkan variabel input awal tambahan.


(21)

AUTOMATICALLY GENERATING FUZZY MEMBERSHIP

FUNCTIONS USING NEURAL

NETWORK

In this study the author used an algorithm Backpropagation Neural Network (BPNN) to generate automatically fuzzy membership functions, in order to obtain a more precise membership functions according to the data provided. Backpropagation neural network algorithm is one of the algorithm supervised learning, this learning need supervision in the learning process. One of the important factor in BPNN learning is the number of input variables. To get the better result we have to used more input variables. In this study, only one initial input variables have to be used, according to the dataset used, so as to get the better result added two new initial input variables, namely x

ABSTRACT

2 and x3. Variable x2

be obtained by using the algorithm additional. It’s called Kohonen algorithm (SOM). The variable x3 be obtained by using the formula (x2 - index (i)).

Moreover than, the Kohonen algorithm is also used to get the output value will be used as input process to the algorithm BPNN training. From the results of research by the author, the BPNN algorithm have to automatically generate membership functions at the beginning of one variable, using the Kohonen algorithm to obtain additional initial input variables.


(22)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Dalam kehidupan sehari-hari, manusia cenderung mengelompokkan sesuatu berdasarkan kategori secara kasat mata, misalnya kelompok orang tinggi, kelompok orang pandai, dan sebagainya, namun tidak semua himpunan/kelompok yang dijumpai dalam kehidupan sehari-hari dapat terdefinisi secara jelas. Misalnya, pada himpunan/kelompok orang tinggi, tidak dapat ditentukan secara tegas apakah seseorang adalah tinggi atau tidak tinggi. Anggap bahwa definisi “orang tinggi” adalah orang yang tingginya lebih besar atau sama dengan 1.70 meter, maka orang yang tingginya 1.69 meter menurut definisi tersebut termasuk orang yang tidak tinggi. Sulit diterima bahwa orang yang tingginya 1.69 meter itu tidak termasuk orang tinggi. Hal ini menunjukkan bahwa batas antara kelompok orang tinggi dan kelompok orang yang tidak tinggi tidak dapat ditentukan secara tegas.

Untuk mengatasi permasalahan himpunan dengan batas yang tidak tegas itu, L.A. Zadeh mengaitkan himpunan tersebut dengan suatu fungsi yang menyatakan nilai keanggotaan pada suatu himpunan tak kosong sebarang dengan mengaitkan pada interval [0,1] (Zadeh, 1965). Himpunan tersebut disebut himpunan fuzzy dan fungsi ini disebut fungsi keanggotaan (membership function) dan nilai fungsi itu disebut derajat keanggotaan.

Pada awalnya, untuk membangkitkan nilai fungsi keanggotaan pada fuzzy masih menggunakan klasifikasi ataupun clustering. Cara tersebut masih mengandalkan expert untuk menentukan klasifikasi dataset, beberapa masalah yang muncul kemudian adalah jika para ahli tidak tersedia, maka fungsi keanggotaan tidak dapat secara akurat ditentukan, atau sistem fuzzy yang dikembangkan mungkin tidak berfungsi dengan baik (Hong dan Lee, 1996).


(23)

Untuk itu, dilakukan penelitian, bagaimana membangkitkan membership function secara otomatis. Beberapa penelitian telah dilakukan untuk mengatasi hal tersebut, diantaranya, penelitian yang dilakukan oleh beberapa peneliti berikut ini; Yang dan Bose (2006), melakukan penelitian tentang penggunaan algoritma SOFM untuk membangkitkan membership function secara otomatis; Tamaki et al. (1998), melakukan penelitian bagaimana mengidentifikasi fungsi keanggotaan berbasis data observasi fuzzy; Hong dan Lee (1996), dalam penelitiannya menyimpulkan bahwa metode trainning examples dapat digunakan untuk menghasilkan fuzzy rules dan fungsi keanggotaan secara otomatis; Bagis (2003), menggunakan metode tabu-search dalam penelitiannya untuk penentuan optimal dari fungsi keanggotaan dalam aturan fuzzy.

Berdasarkan dari penelitian yang ada tersebut, penulis mencoba untuk melakukan penelitian bagaimana membangkitkan nilai fungsi keanggotaan secara otomatis menggunakan Neural Network (NN), yaitu suatu sistem yang dimodelkan berdasarkan jaringan saraf manusia. Dengan jaringan saraf tiruan maka kita dapat memberikan kecerdasan pada sistem, dimana sistem tersebut akan diberikan waktu untuk ‘belajar’ dan kemudian diharapkan dari proses belajarnya, sistem bisa memberikan solusi dari suatu kasus.

Menurut Hagan (1996), pada prinsipnya ada dua cara untuk melatih neural network yaitu dengan supervised dan unsupervised learning. Pada unsupervised learning, neural network hanya diberi data masukan saja tapi bagaimana outputnya tidak ditentukan. Ketika data yang dimasukkan bertambah, neural network akan mengkategorikan atau mengelompokkan data masukan tersebut. Pada supervised learning, neural network diberi sepasang data latih yang terdiri dari data masukan dan target, jadi ketika data yang dimasukan bertambah neural network akan mengubah karakteristik internalnya agar sebisa mungkin menghasilkan keluaran seperti targetnya. Pada penelitian ini, pelatihan yang digunakan adalah supervised learning, dimana data yang dilatihkan berupa pasangan data input dan target (output yang diharapkan).

Ada banyak variasi metode neural network yang dilatih dengan supervised learning, antara lain: perceptron learning, hamming network, hopfield network, adaptive linear neuron (ADALINE) dan backpropagation (Hagan, 1996). Dalam


(24)

penelitian ini metode yang dipakai adalah backpropagation dengan alasan karena backpropagation merupakan generalisasi dari berbagai metode tersebut di atas, oleh karena itu metode backpropagation lebih fleksibel dan secara umum relatif lebih baik dari jenis-jenis yang tadi disebut (Hagan, 1996).

Penggunaan neural network pada fuzzy diharapkan dapat menghasilkan membership function yang akurat dari hasil pembelajaran yang di berikan. Dari uraian diatas, penulis tertarik untuk mengambil judul “Pembangkit fungsi keanggotaan fuzzy otomatis menggunakan Neural Network”.

1.2 Perumusan Masalah

Didalam fuzzy sistem fungsi keanggotaan memainkan peranan penting untuk merepresentasikan masalah dan menghasilkan keputusan yang akurat. Dalam membentuk fungsi keanggotaan sebuah sistem fuzzy yang baik, diperlukan pengetahuan tentang data yang digunakan, dan akan sangat sulit untuk membuat fungsi keanggotaan dari sistem fuzzy tanpa pengetahuan tentang data yang akan digunakan tersebut. untuk itu, agar sebuah sistem tidak harus selalu bergantung pada expert, maka dibutuhkan sistem yang dapat membangkitkan fungsi keanggotaan secara otomatis. Berdasarkan uraian latar belakang di atas, maka penulis mencoba untuk meneliti bagaimana cara membangkitkan fungsi keanggotaan secara otomatis menggunakan neural network.

1.3 Batasan Masalah

Rumusan masalah diatas, dibatasi dengan beberapa hal sebagai berikut : 1. Banyaknya data yang digunakan adalah 400 sampel data;

2. Data yang digunakan pada proses pelatihan dibangkitkan secara random dengan aturan :

- Terdiri dari 2 dataset (umur dan Suhu); - Setiap dataset terdiri dari 100 data;

- Pembangkitan data secara random dilakukan dengan menggunakan batas awal dan batas akhir sesuai dengan dataset yang digunakan, yaitu; untuk untuk umur adalah 6-80 dan untuk suhu batasannya adalah 0-100;


(25)

3. Untuk pengujian dilakukan dengan menggunakan dataset nilai siswa dan berat badan, dengan batasan untuk nilai siswa adalah 10-100 dan untuk berat badan batasannya adalah 20-90;

4. Algoritma yang digunakan dalam pembentukan membership function adalah algoritma backpropagation neural networks;

5. Aplikasi yang digunakan adalah Visual Basic 6.0.

1.4 Tujuan Penelitian

Adapun tujuan yang ingin dicapai dari penelitian ini adalah membangkitkan kurva

fuzzy membership function secara otomatis dengan menggunakan

backpropagation neural network.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dari hasil penelitian ini adalah sebagai berikut:

1. Dapat mengaplikasikan algoritma neural networks dalam pembangkitan

fungsi keanggotaan himpunan fuzzy yang lebih akurat secara otomatis;

2. Mengetahui lebih dalam penggunaan algoritma backpropagation neural


(26)

BAB II

TINJAUAN PUSTAKA

2.1. Logika Fuzzy

Sebelum munculnya teori logika fuzzy (Fuzzy Logic), dikenal sebuah logika tegas (Crisp Logic) yang memiliki nilai benar atau salah secara tegas. Prinsip ini

dikemukakan oleh Aristoteles sekitar 2000 tahun yang lalu sebagai hukum Excluded Middle dan hukum ini telah mendominasi pemikiran logika sampai saat ini. Namun, pemikiran mengenai logika konvensional dengan nilai kebenaran yang pasti yaitu benar atau salah dalam kehidupan nyata sangatlah tidak cocok. Fuzzy logic (logika samar) merupakan suatu logika yang dapat merepresentasikan keadaan yang ada di dunia nyata. Logika fuzzy merupakan sebuah logika yang memiliki nilai kekaburan atau kesamaran (fuzzy) antara benar dan salah.

Teori tentang himpunan logika fuzzy pertama kali dikemukakan oleh Prof. Lofti Zadeh sekitar tahun 1965 pada sebuah makalah yang berjudul ‘Fuzzy Sets’. Ia berpendapat bahwa logika benar dan salah dari logika boolean/konvensional tidak dapat mengatasi masalah yang ada pada dunia nyata. Tidak seperti logika boolean, logika samar mempunyai nilai yang kontinu. Samar dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang bersamaan. Teori himpunan individu dapat memiliki derajat keanggotaan dengan nilai yang kontinu, bukan hanya 0 dan 1 (Zadeh, 1965).

Dengan teori himpunan logika samar, kita dapat merepresentasikan dan menangani masalah ketidakpastian yang dalam hal ini bisa berarti keraguan, ketidaktepatan, kurang lengkapnya suatu informasi, dan kebenaran yang bersifat sebagian (Altrock, 1997). Di dunia nyata, seringkali kita menghadapi suatu masalah yang informasinya sangat sulit untuk diterjemahkan ke dalam suatu rumus atau


(27)

angka yang tepat karena informasi tersebut bersifat kualitatif (tidak bisa diukur secara kuantitatif). Pada Gambar 2.1 diperlihatkan diagram blok pengendali logika fuzzy.

Crisp Inputs

Fuzzyfikasi

Fuzzy Inputs

Rule Evaluation

Fuzzy Outputs

Defuzzyfication

Crisp Outputs Inputs

Membership Function

Output Membership

Function

Rules Based

Gambar 2.1 Diagram blok pengendali logika fuzzy.

Sumber : Jang et al. (1997)

Himpunan samar (fuzzy sets) adalah sekumpulan objek X di mana masing-masing objek memiliki nilai keanggotaan (membership function), M atau yang disebut juga dengan nilai kebenaran dan nilai ini dipetakan ke dalam daerah hasil range (0,1). Jika X merupakan sekumpulan objek dengan anggotanya dinyatakan dengan X maka himpunan samar dari A di dalam X adalah himpunan dengan sepasang anggota (Zadeh, 1968).

Teori himpunan samar merupakan suatu teori tentang konsep penilaian dan segala sesuatu merupakan persoalan derajat atau diibaratkan bahwa segala sesuatu memiliki elastisitas. Pada Gambar 2.2 diperlihatkan ilustrasi fuzzy dan crisp set himpunan umur.


(28)

N il a i k e a n g g o ta a

n Crisp Set

Fuzzy Set Umur 1 0 10 0.5 20

Gambar 2.2: Ilustrasi fuzzy dan crisp set.

Sumber : Hagan (1996)

Pada Gambar 2.2 diilustrasikan representasi dengan crisp set yang

menyatakan bahwa jika seseorang berumur dibawah 10 tahun maka ia merupakan himpunan orang muda, jika tidak maka ia tergolong tua. Sebaliknya dengan menggunakan fuzzy set, himpunan orang muda ditentukan oleh derajat keanggotaannya. Secara khusus kurva semacam ini disebut sebagai fungsi keanggotaan (membership function).

2.2 Fuzzyfikasi (Fuzzyfication)

Fuzzyfikasi adalah suatu proses pengubahan nilai tegas/real yang ada kedalam fungsi keanggotaan (Hagan, 1996). Pada gambar 2.3 diperlihatkan contoh fungsi keanggotaan suhu. Dari Gambar 2.3 akan dihitung fuzzyfikasi dari suhu 35o C.

Gambar 2.3 : Fungsi keanggotaan suhu

Sumber : Hagan (1996)

Dengan menggunakan fungsi keanggotaan segitiga, maka crisp input suhu 35o 15 30 45 60

Panas Dingin A2 A1

µ

µ

Suhu (oC) C dikonversi ke nilai fuzzy dengan cara :


(29)

Suhu 35o C berada pada nilai linguistik dingin dan panas. Semantik atau derajat keanggotaan untuk dingin dihitung dengan menggunakan rumus:

(2.1) Dimana b=30 dan c=45, sehingga derajat keanggotaan dingin adalah :

Sedangkan semantik atau derajat keanggotaan untuk panas dihitung dengan menggunakan rumus:

(2.2) Dimana a=30 dan b=45, sehingga derajat keanggotaan panas adalah :

Dari hasil perhitungan diatas, maka, proses fuzzyfikasi menghasilkan 2 fuzzy input, yaitu suhu dingin (2/3) dan suhu panas (1/3)

2.2.1 Linguistic Variable

Dalam teori logika fuzzy dikenal himpunan fuzzy (fuzzy set) yang merupakan pengelompokan sesuatu berdasarkan variabel bahasa (variabel linguistic) yang dinyatakan dalam fungsi keanggotaan. Variabel linguistik adalah variabel yang berupa kata/kalimat, bukan berupa angka. Sebagai alasan menggunakan kata/kalimat dari pada angka karena peranan linguistik kurang spesifik

dibandingkan angka, namun informasi yang disampaikan lebih informatif. Variabel linguistik ini merupakan konsep penting dalam logika samar dan memegang peranan penting dalam beberapa aplikasi (Zadeh, 1968).

Konsep tentang variabel linguistik ini diperkenalkan oleh Lofti Zadeh. Menurut Zadeh variabel linguistik ini dikarakteristikkan dengan (X, T(x), U, G, M), dimana: (Zadeh, 1968)

X = nama variabel (variabel linguistik)

T(x) = semesta pembicaraan untuk x atau disebut juga nilai linguistik dari x


(30)

U = jangkauan dari setiap nilai samar untuk x yang dihubungkan dengan variabel dasar U

G = aturan sintaksis untuk memberikan nama (x) pada setiap nilai X M = aturan semantik yang menghubungkan setiap X dengan artinya.

Sebagai contoh, jika :

X = ”umur” dengan U [10,80] dan T (umur) = {remaja, muda, tua}

Maka M untuk setiap X, M (x) adalah M (remaja), M (muda), M (tua), dimana : M (remaja) = himpunan samarnya ”umur dibawah 20 tahun” dengan

fungsi keanggotaan m remaja.

M (muda) = himpunan samarnya ”umur mendekati 40 tahun” dengan

fungsi keanggotaan m muda

M (tua) = himpunan samarnya ”umur diatas 50 tahun” dengan fungsi keanggotaan m tua.

Maka nilai dari M dapat dilihat dari Gambar 2.4 berikut ini :

Degree of

Membeship Remaja Muda Tua

1

0 20 40 50

Gambar 2.4 : Fungsi keanggotaan kelompok umur

Sumber : Russel (2002)

2.2.2 Membership Function

Di dalam fuzzy systems, fungsi keanggotaan memainkan peranan yang sangat penting untuk merepresentasikan masalah dan menghasilkan keputusan yang akurat. Menurut Jang et al. (1997), Membership Function (MF) adalah kurva yang memetakan setiap titik pada input-an (universe of discourse) ke sebuah nilai keanggotaan (derajat keanggotaan) yang memiliki nilai antara 0 dan 1 yang didefinisikan secara matematis oleh persamaan:


(31)

μA(x) : X → [0, 1] (2.3) Setiap elemen x dipetakan pada sebuah nilai keanggotaan oleh MF. Nilai ini merupakan derajat keanggotaan dari x pada himpunan fuzzy A.

μA(x) = Degree (x A) (2.4)

Dimana nilai keangotaan dari x dibatasi oleh:

0 ≤ μA(x) ≤ 1 (2.5)

Fungsi keanggotaan yang umum digunakan adalah: fungsi segitiga, fungsi trapesium, fungsi gaussian, fungsi bell dan fungsi sigmoid. Bentuk dari masing-masing fungsi keanggotaan adalah sebagai berikut (Jang et al. 1997) :

1. Fungsi linear

Pada representasi linear, pemetaan input ke dejarat keanggotaannya digambarkan sebagai suatu garis lurus. Ada dua keadaan himpunan fuzzy linear, yaitu :

a. Kenaikan himpunan dimulai pada nilai domain yang memiliki derajat keanggotaan nol (0) bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi, seperti pada Gambar 2.5 :

1 0.8 0.6 0.4 0.2 0

1 0.8 0.6

0.4 0.2 0

Derajat Keanggotaan

Gambar 2.5 : Fungsi keanggotaan linear naik


(32)

Fungsi keanggotaan :

(2.6)

b. Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian bergerak turun ke nilai domain yang memiliki derajat keanggotaan lebih rendah, seperti pada Gambar 2.6 :

1 0.8 0.6 0.4 0.2 0

1 0.8 0.6

0.4 0.2 0

Derajat Keanggotaan

Gambar 2.6 : Fungsi keanggotaan linear turun

Sumber : Jang et al. (1997) Fungsi keanggotaan :

(2.7)

2. Fungsi segitiga.

Fungsi keanggotaan berbentuk segitiga didefinisikan oleh 3 parameter a, b, c dengan persamaan:

(2.8) Fungsi segitiga dengan parameter: segitiga (x;0.2,0.6,0.8) ditunjukkan dalam Gambar 2.7 :


(33)

1 0.8 0.6 0.4 0.2 0

1 0.8 0.6 0.4 0.2 0

mf1

Derajat Keanggotaan

Gambar 2.7 : Fungsi keanggotaan segitiga (triangle).

Sumber : Yan et al. (1994)

3. Fungsi Trapesium.

Fungsi keanggotaan berbentuk trapesium didefinisikan oleh 4 parameter a, b, c, d dengan persamaan :

(2.9) Fungsi Trapesium dengan parameter: trapesium (x;0.1,0.2,0.6,0.95) ditunjukkan dalam Gambar 2.8:

1 0.8 0.6 0.4 0.2 0

1 0.8 0.6 0.4 0.2 0

mf1

Derajat Keanggotaan

X

Gambar 2.8 : Fungsi keanggotaan trapesium (trapezoidal).

Sumber : Yan et al. (1994)

4. Fungsi Gaussian.

Fungsi keanggotaan berbentuk Gaussian didefinisikan oleh 2 parameter

σ, dan c dengan persamaan:


(34)

Fungsi Gaussian dengan parameter: Gaussian (x;0.15,0.5) ditunjukkan dalam Gambar 2.9 berikut ini:

1 0.8 0.6 0.4 0.2 0

1 0.8 0.6 0.4 0.2 0

mf1

Derajat Keanggotaan

X

Gambar 2.9 : Fungsi keanggotaan gaussian. σ = standar deviasi, c = pusat.

Sumber : Jang et al. (1997)

5. Fungsi Bell.

Fungsi keanggotaan berbentuk bell didefinisikan oleh 3 parameter a, b dan c dengan persamaan:

(2.11)

Fungsi Bell dengan parameter: bell (x;0.25,2.5,0.5) ditunjukkan dalam Gambar 2.10:

1 0.8 0.6 0.4 0.2 0

1 0.8 0.6 0.4 0.2 0

mf1

Derajat Keanggotaan

X

Gambar 2.10 : Fungsi keanggotaan Bell.


(35)

Parameter a, b dan c yang menspesifikasikan fungsi Bell ditunjukkan dalam Gambar 2.11 berikut ini:

1 0.8 0.6 0.4 0.2 0

1 0.8 0.6

0.4 0.2

0

mf1

Derajat Keanggotaan

X

c-a c c+a

slope= -b/2a

Gambar 2.11 : Letak parameter a,b dan c pada fungsi keanggotaan bell.

Sumber : Yan et al. (1994)

6. Fungsi Sigmoid.

Fungsi keanggotaan Sigmoid didefinisikan oleh 2 parameter a dan c dengan persamaan:

(2.12) Jika nilai a > 0, maka fungsi sigmoid akan membuka ke kanan, sedang jika a < 0 maka fungsi sigmoid akan membuka ke kiri. Fungsi Sigmoid membuka ke kanan dengan parameter: sigmoid (x;12,0.25) ditunjukkan dalam Gambar 2.12:


(36)

Sumber : Yan et al. (1994)

Sedangkan fungsi Sigmoid membuka ke kiri dengan parameter: sigmoid (x;-12,0.75) ditunjukkan dalam Gambar 2.13 berikut ini:

Gambar 2.13 : Fungsi keanggotaan sigmoid membuka ke kiri.

Sumber : Jang et al. (1997)

2.2.3 Aturan Dasar

Aturan dasar pada kontrol logika fuzzy merupakan suatu bentuk aturan relasi/implikasi “Jika-maka” atau “If-Then” seperti pada pernyataan berikut (Haykin, 1999):

“Jika” X=A dan “jika” Y=B “Maka” Z=C

Jadi aturan dasar pada control logika fuzzy (fuzzy logic control)

ditentukan dengan bantuan seorang pakar yang mengetahui karakteristik objek yang akan dikendalikan. Aturan dasar tersebut dapat dinyatakan dalam bentuk matriks aturan dasar kontrol logika fuzzy. Contoh aturan dasar dari rancangan pengaturan suhu ruangan dapat dilihat pada tabel 2.1.

Tabel 2.1 Contoh matriks aturan dasar perancangan kontrol logika fuzzy

Y

X B S K

B K K B

Z

S K S K

K B K B

Dimana :


(37)

B : Besar, S : Sedang, K : kecil 2.2.4 Defuzzyfication

Defuzzyfication merupakan proses pemetaan himpunan fuzzy kehimpunan tegas (crisp) (Haykin, 1999). Proses ini merupakan kebalikan dari proses fuzzyfikasi. Proses defuzzyfikasi diekspresikan sebagai berikut :

Z* = defuzzifier (Z) (2.13)

Dimana :

Z = Hasil penalaran fuzzy

Z* = Keluaran kontrol fuzzy logic

Defuzzifier = Operasi defuzzier

Metode dalam melakukan defuzzifikasi antara lain :

1. Metode Max (Maximum)

Metode ini juga dikenal dengan metode puncak dimana nilai keluaran dibatasi oleh fungsi :

(2.14)

2. Metode Titik Tengah (Center of Area)

Metode ini juga disebut pusat area. Metode ini lazim dipakai dalam proses defuzzyfikasi. Metode ini diekspresikan dengan persamaan :

(2.15)

3. Metode Rata-Rata (Average)

Metode ini digunakan untuk fungsi keanggotaan keluaran yang simetris. Persamaan dari metode ini adalah :

(2.16)

4. Metode penjumlahan Titik Tengah (Summing of center area) Metode ini dinyatakan dengan persamaan :


(38)

(2.17)

5. Metode Titik Tengah Area Terbesar.

Dalam metode ini keluaran dipilih berdasarkan titik pusat area terbesar yang ada. Metode ini dinyatakan dalam bentuk :

(2.18)

Selanjutnya keluaran dari defuzzyfikasi tersebut akan digunakan sebagai keluaran kontrol logika fuzzy.

2.3 Neural Networks

Neural Networks (NN) atau Jaringan Syaraf Tiruan (JST) adalah prosesor yang terdistribusi paralel, terbuat dari unit-unit yang sederhana, dan memiliki kemampuan untuk menyimpan pengetahuan yang diperoleh secara eksperimental dan siap pakai untuk berbagai tujuan (Rajasekaran, 2005). JST merupakan sistem adaptif yang dapat mengubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut. Secara sederhana, JST adalah sebuah alat pemodel linier. JST dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output untuk menemukan pola-pola pada data.

Jaringan syaraf tiruan merupakan algoritma pembelajaran yang meniru cara kerja sel syaraf. Selama proses pembelajaran, bobot-bobot dan bias selalu diperbaharui menggunakan algoritma belajar, jika ada error pada keluaran. Untuk proses identifikasi, bobot-bobot yang secara langsung memboboti masukan inilah yang dinamakan sebagai parameter yang dicari, seperti terlihat pada Gambar 2.14, parameter yang dicari adalah harga W1, W2, W3 dan Wn. Dalam identifikasi secara

on-line, neuron ataupun jaringan neuron akan selalu ‘belajar’ setiap ada data masukan dan keluaran.


(39)

X1

Xn

X3

X2

Y

W1

W2

W3

Wn

Gambar 2.14: Proses komunikasi antar neuron

Sumber : Rajasekaran (2005)

Gambar 2.14 memperlihatkan bahwa NN terdiri atas satuan-satuan pemroses berupa neuron. Y sebagai output menerima input dari neuron X1, X2, X3,

…, Xn dengan bobot W1, W2, W3, …, Wn

Konsep jaringan saraf tiruan bermula pada makala

. Hasil penjumlahan seluruh impuls neuron dibandingkan dengan nilai ambang tertentu melalui fungsi aktivasi f setiap neuron. Fungsi aktivasi digunakan sebagai penentu keluaran suatu neuron.

da memformulasikan model matemati berdasarkan sistem industri komputer.

Suatu jaringan saraf tiruan memproses sejumlah besar informasi secara paralel dan terdistribusi, hal ini terinspirasi oleh model kerja otak biologis. saraf tiruan atau jaringan saraf tiruan adalah sistem selular fisik yang dapat memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan dari

pengalaman”.

“Sebuah jaringan saraf adalah sebua mempunyai 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.


(40)

2.3.1 Backpropagation Neural Network (BPNN)

Salah satu metode pelatihan dalam NN adalah pelatihan terbimbing (supervised learning). BPNN merupakan salah satu metode yang menggunakan supervised learning. Pada pelatihan terbimbing diperlukan sejumlah masukan dan target yang berfungsi untuk melatih jaringan hingga diperoleh bobot yang diinginkan. Pada setiap kali pelatihan, suatu input diberikan ke jaringan, kemudian jaringan akan memproses dan mengeluarkan keluaran. Selisih antara keluaran jaringan dengan target merupakan kesalahan yang terjadi, dimana jaringan akan memodifikasi bobot sesuai dengan kesalahan tersebut.

Algoritma pelatihan Backpropagation Neural Network (BPNN) pertama kali dirumuskan oleh Werbos dan dipopulerkan oleh Rumelhart dan Mc.Clelland (Hagan, 1996). Pada supervised learning terdapat pasangan data input dan output yang dipakai untuk melatih JST hingga diperoleh bobot penimbang (weight) yang diinginkan. Penimbang itu sendiri adalah sambungan antar lapis dalam JST. Algoritma ini memiliki proses pelatihan yang didasarkan pada interkoneksi yang sederhana, yaitu apabila keluaran memberikan hasil yang salah, maka penimbang dikoreksi agar galat dapat diperkecil dan tanggapan JST selanjutnya diharapkan dapat mendekati nilai yang benar. BPNN juga berkemampuan untuk memperbaiki penimbang pada lapis tersembunyi (hidden layer).

Wij W’jk U’k

Uj

Input Layer Hidden Layer

Output Layer

Xi Yj Zk Ok Target

Gambar 2.15 : Lapis dan aliran sinyal dalam algoritma BPNN


(41)

Secara garis besar BPNN terdiri atas tiga lapis (layer) yaitu lapis masukan (input layer) xi, lapis tersembunyi (hidden layer) yj, dan lapis keluaran (output

layer) zk. Lapis masukan dan lapis tersembunyi dihubungkan dengan penimbang wij

dan antara lapis tersembunyi dan lapis keluaran dihubungkan oleh penimbang w’jk

Pada dasarnya, metode pelatihan backpropagation terdiri dari tiga langkah, yaitu : .

1) Data dimasukkan kedalam input node atau jaringan (feedforward); 2) Perhitungan dan propagasi balik dari error yang bersangkutan; 3) Pembaharuan (adjustment) bobot dan bias.

Pada pelatihan BPNN, ketika JST diberi pola masukan sebagai pola pelatihan maka pola tersebut akan menuju ke unit pada lapis tersembunyi untuk diteruskan pada unit yang berada pada lapis keluaran. Keluaran sementara pada lapis tersembunyi uj akan diteruskan pada lapis keluaran dan lapis keluaran akan

memberikan tanggapan yang disebut sebagai keluaran sementara u’k. Ketika u’k

ok dimana ok adalah target yang diharapkan, maka selisih (error) keluaran

sementara u’k

Untuk mempercepat proses pelatihan digunakan parameter laju pelatihan (learning rate) yang nilainya berada pada kisaran 0-1. Selain parameter laju pelatihan, untuk mempercepat proses pelatihan dapat digunakan parameter tambahan berupa momentum yang nilainya dijaga antara 0.5 - 0.9. Ketika proses pelatihan selesai dan JST dapat digunakan untuk menyelesaikan masalah, tahap tersebut disebut sebagai tahap penggunaan yang disebut mapping atau pemetaan.

akan disebarkan mundur (backward) pada lapis tersembunyi dan diteruskan ke unit pada lapis masukan. Oleh karena itu proses tersebut disebut propagasi balik (backpropagation) dimana tahap pelatihan dilakukan dengan merubah penimbang yang menghubungkan unit dalam lapis JST ketika diberi umpan maju dan umpan balik.

Algoritma pelatihan BPNN terdiri dari dua tahap, yaitu feedforward propagation dan feed backward propagation. Untuk selengkapnya, notasi-notasi yang akan digunakan pada algoritma BPNN adalah :


(42)

x Data trainning untuk input x = ( x1,…,xi,…,xn

t

)

Data trainning untuk output (target/desired output) t = ( t1,…,tk,…,tm )

α

Learning rate, yaitu parameter yang mengontrol perubahan bobot selama pelatihan. Jika learning rate besar, jaringan semakin cepat belajar, tetapi hasilnya kurang akurat. Learning rate biasanya dipilih antara 0 dan 1 Unit input ke-i. untuk unit input, sinyal yang masuk dan keluar pada suatu unit dilambangkan dengan variabel yang sama, yaitu

Hidden unit ke-j. sinyal input pada dilambangkan dengan

.

Sinyal output (aktivasi) untuk dilambangkan dengan

Bias untuk hidden unit ke-j

Bobot antara unit input ke-i dan hidden unit ke-j

Unit output ke-k. sinyal input ke dilambangkan

.

Sinyal output (aktivasi) untuk dilambangkan dengan

Bias untuk unit output ke-k

Bobot antara hidden unit ke-j dan unit output ke-k Faktor koreksi error untuk bobot

Faktor koreksi error untuk bobot

Langkah-langkah Algoritma Backpropagation Neural Network (BPNN). a. Algoritma Pelatihan

Pelatihan suatu jaringan dengan algoritma backpropagation meliputi dua tahap : 1. Feedforward propagation.

2. Feed backward propagation.

Selama proses feedforward propagation, tiap unit masukan (xi) menerima

sebuah masukan sinyal ini ke tiap-tiap lapisan tersembunyi z1,…..,zp. Tiap unit


(43)

ke tiap unit keluaran. Tiap unit keluaran menghitung aktivasinya untuk membentuk respon pada jaringan untuk memberikan pola masukan. Selama pelatihan, tiap unit keluaran membandingkan perhitungan aktivasinya dengan nilai targetnya untuk menentukan kesalahan pola tersebut dengan unit itu.

Berdasarkan kesalahan ini, faktor (k = 1,..,m) dihitung. digunakan untuk menyebarkan kesalahan pada unit keluaran yk kembali ke semua unit pada

lapisan sebelumnya (unit-unit tersembunyi yang dihubungkan ke ), selain itu juga digunakan (nantinya) untuk meng-update bobot-bobot antara keluaran dan lapisan tersembunyi. Dengan cara yang sama, faktor (j = 1,…,p) dihitung untuk tiap unit tersembunyi , tanpa perlu untuk menyebarkan kesalahan kembali ke lapisan masukan, tetapi δj

Setelah seluruh faktor δ ditentukan, bobot untuk semua lapisan diatur secara serentak. Pengaturan bobot w

digunakan untuk meng-update bobot-bobot antara lapisan tersembunyi dan lapisan masukan.

jk (dari unit tersembunyi ke unit keluaran

) didasarkan pada faktor dan aktivasi dari unit tersembunyi didasarkan pada faktor dan aktivasi unit masukan. Untuk langkah selengkapnya adalah (Laurence, 1994) :

b. Prosedur Pelatihan

Berikut adalah langkah-langkah pelatihan backpropagation secara lebih detail. Langkah 0 : Inisialisasi bobot dan bias. (sebaiknya diatur pada nilai acak

yang kecil, disekitar 0 dan 1 atau -1 (bias positif atau negatif));

Langkah 1 : Jika kondisi berhenti belum tercapai, lakukan langkah 2-9; Langkah 2 : Untuk setiap data trainning, lakukan langkah 3-8.

Umpan Maju (Feedforward Propagation):

Langkah 3 : Tiap unit input (xi, i = 1,…, n) menerima sinyal xi dan

menyebarkan sinyal ini ke seluruh unit lapisan di atasnya (hidden unit). Input xi yang dipakai adalah input trainning


(44)

data yang sudah diskalakan. Pertama, input yang mungkin dipakai dalam sistem dicari nilai terendah dan tertingginya, kemudian, skala yang digunakan tergantung dari fungsi aktivasinya;

Langkah 4 : Setiap hidden unit ( , j = 1,…, p) akan menjumlahkan bobot

sinyal masukannya, termasuk biasnya;

(2.19)

Dimana voj = bias pada unit tersembunyi j, kemudian

aplikasikan fungsi aktivasi yang telah ditentukan untuk

menghitung sinyal output dari hidden unit yang

bersangkutan;

= f ( ) (2.20)

lalu kirimkan sinyal output ini keseluruh unit pada lapisan diatasnya (output unit).

Langkah 5 : Tiap unit ouput ( , k = 1,…, m) akan menjumlahkan

bobot sinyal masukannya, termasuk biasnya;

(2.21)

Dimana wok = bias pada unit keluaran k, kemudian

aplikasikan fungsi aktivasi yang telah ditentukan untuk menghitung sinyal output dari unit output yang bersangkutan;

= f ( ) (2.22)

lalu kirimkan sinyal output ini keseluruh unit pada lapisan diatasnya (output unit).


(45)

Propagasi error (Feed backward propagation).

Langkah 6 : Tiap unit ouput ( , k = 1,…, m) menerima pola target (desired output) yang sesuai dengan pola input (input trainning pattern) untuk menghitung kesalahan (error) antara target dengan output yang dihasilkan jaringan;

(2.23) Dimana : δk = error pada node ke-k

= target ke-k f’(x) = f(x) [1-f(x)] Output trainning data tk

Gunakan faktor

telah diskalakan menurut fungsi aktivasi yang dipakai.

untuk menghitung koreksi bobotnya (digunakan untuk memperbaharui wjk nantinya);

(2.24)

Hitung koreksi biasnya (digunakan untuk memperbaharui wok

nantinya)

(2.25)

Kirimkan faktor δk ini ke unit-unit pada lapisan dibawahnya

(layer pada langkah 7);

Langkah 7 : Setiap hidden unit ( , j = 1,…, p) menjumlahkan input delta

dari unit-unit lapisan diatasnya (yang dikirim dari layer pada langkah 6) yang sudah berbobot;

(2.26)


(46)

digunakan untuk menghasilkan faktor koreksi error dimana :

(2.27)

Faktor ini digunakan untuk menghitung koreksi error ( ) (digunakan untuk memperbaharui vij nanti), dimana;

(2.28)

Selain itu juga dihitung koreksi bias (digunakan untuk memperbaharui voj nanti), dimana;

(2.29)

Pembaharuan bobot (adjustment) dan bias.

Langkah 8 : Tiap unit output ( , k = 1,…, m) akan mengupdate bias dan bobotnya dari setiap hidden unit (j = 0,…, p) ;

(baru) = (lama) + Δ

(2.30)

Tiap unit hidden unit ( , j = 1,…, p) akan mengupdate bias dan bobotnya dari setiap unit input (i = 0,…,n) :

(baru) = (lama) + Δ (2.31)

Langkah 9 : Test kondisi berhenti.

Jika stop condition (kondisi berhenti) telah terpenuhi, maka proses pelatihan dapat dihentikan. Ada dua cara yang dapat dilakukan untuk menentukan stopping condition (test kondisi berhenti), yaitu :

Cara 1 : Membatasi jumlah iterasi yang ingin dilakukan (satu iterasi merupakan perulangan langkah 3


(47)

sampai dengan langkah 8 untuk semua trainning data yang ada). Jika jumlah iterasi telah terpenuhi, maka proses pelatihan akan berhenti.

Cara 2 : Membatasi error. Untuk metode BPNN, metode yang digunakan adalah Mean Square Error, untuk menghitung rata-rata error antara output yang dikehendaki pada trainning data dengan output yang dihasilkan oleh jaringan. Besarnya persen error ini tergantung kepresisian yang dibutuhkan oleh sistem yang bersangkutan.

c. Prosedur Pengujian :

Setelah pelatihan, jaringan saraf backpropagation diaplikasikan dengan hanya menggunakan tahap perambatan maju dari algoritma pelatihan. Prosedur aplikasinya adalah sebagai berikut :

Langkah 0 : Inisialisasi bobot (dari algoritma pelatihan).

Langkah 1 : Untuk tiap vektor masukan, lakukan langkah 2 - langkah 4. Langkah 2 : for i = 1,…, n : atur aktivasi unit masukan xi

Langkah 3

. : for j = 1,…, p :

(2.32)

zj = f ( ) (2.33)

for k = 1,…, m : Langkah 4 :

(2.34)

yk = f ( ) (2.35)

Langkah 5 : Jika yk≥ 0,5 maka yk = 1, else yk


(48)

2.3.2 Algoritma Kohonen Map

Kohonen Map atau bisa disebut Self Organizing Map diperkenalkan pertama kali oleh Prof. Teuvo Kohonen dari Finlandia pada tahun 1982 (Kohonen, 1982). Kohonen map merupakan salah satu algoritma jaringan syaraf tiruan yang cukup unik karena membangun sebuah topology preserving map dari ruang berdimensi tinggi ke dalam neuron-neuron sebagai representasi dari datapoint yang ada.

Kohonen map merupakan salah satu metode jaringan syaraf tiruan unsupervised learning (tidak terawasi). Jaringan ini tidak mendapatkan target, sehingga JST mengatur bobot interkoneksi sendiri. Belajar tanpa pengawasan (Self Organizing Learning) adalah belajar mengklasifikasikan tanpa dilatih. Pada proses belajar tanpa pengawasan, JST akan mengklasifikasikan contoh pola-pola masukan yang tersedia ke dalam kelompok yang berbeda-beda. Ketika data diberikan ke dalam jaringan syaraf, data akan mengatur struktur dirinya sendiri untuk merefleksikan dari pola yang diberikan. Pada kebanyakan model ini, batasan mengacu pada determinasi kekuatan antar neuron.

Pada jaringan kohonen, suatu lapisan yang berisi neuron-neuron akan menyusun dirinya sendiri berdasarkan input nilai tertentu dalam suatu kelompok yang dikenal dengan istilah cluster. Selama proses penyusunan diri, cluster yang memiliki vektor bobot paling cocok dengan pola input (memiliki jarak yang paling dekat) akan terpilih sebagai pemenang. Neuron yang menjadi pemenang beserta neuron-neuron tetangganya akan memperbaiki bobot-bobotnya.

Langkah-langkah Algoritma Kohonen

Berikut merupakan langkah-langkah algoritma kohonen : Langkah 0 : Inisialisasi bobot :

Set parameter-parameter tetangga Set parameter learning rate


(49)

Langkah 1 : Kerjakan jika kondisi berhenti bernilai FALSE a. Untuk setiap vektor input x, kerjakan :

Untuk setiap j, hitung :

boboti =

Bandingkan boboti

Untuk bobot

untuk mencari bobot terkecil

i terkecil, ambil (lama)

untuk mendapatkan :

(baru)= (lama) + α (xi – (lama))

(2.36)

(2.37)

b. Perbaiki learning rate

α (baru) =0,5 * α (2.38)

c. Kurangi radius ketetanggaan pada waktu-waktu

tertentu, dengan cara meng-update nilai boboti

d. Tes kondisi berhenti (min error atau maxepoch

terpenuhi)

2.4 Normalisasi Data

Dalam proses pembelajaran (trainning), jaringan membutuhkan data trainning yaitu data yang di-input-kan. Pada proses yang menggunakan derajat keanggotaan yang berada pada interval 0 dan 1 maka transformasi data hendaknya dilakukan pada interval yang lebih kecil yaitu [0.1 , 0.9], untuk itu perlu dilakukan normalisasi data, agar terbentuk data yang berada diantara 0 dan 1. Salah satu rumus yang dapat digunakan dalam proses normalisasi data tersebut adalah persamaan berikut :


(50)

(2.39)

Dimana :

: data actual yang telah dinormalisasi : nilai maksimum data actual

: nilai minimum data actual

a : data terkecil

b : data terbesar

2.5 Smoothing Grafik

Proses smoothing grafik dilakukan untuk mendapatkan hasil grafik yang lebih baik. Proses ini dilakukan dengan mengambil titik puncak dari grafik hasil trainning yang telah terbentuk dari titik puncak grafik tersebut, kemudian akan ditarik garis linear dari titik awal dan titik akhir sehingga dapat menghasilkan grafik yang lebih baik.

2.6 Riset Terkait

Dalam melakukan penelitian, penulis menggunakan beberapa riset terakait yang dijadikan acuan yang membuat penelitian berjalan lancar. Adapun riset-riset terkait tersebut adalah :

Tabel 2.2. Riset terkait

No Judul Riset Nama Peneliti

Dan Tahun

Metode Yang Digunakan

Hasil Penelitian

1. Induction of fuzzy

rules and membership

functions from trainning examples

Hong, Tzung-Pei. dan Lee, Chai-Ying. 1996

Trainning examples

Metode Trainning

Examples untuk

menghasilkan fuzzy

rules dan fungsi

keanggotaan secara otomatis

2. Identification of

membership

functions based on fuzzy observation data

Tamaki, Futoshi. Kanagawa,

Akihiro. dan

Ohta, Hiroshi. Fuzzy observation model Metode identifikasi fungsi keanggotaan berdasarkan frekuensi dari fuzzy set yang dipilih.


(51)

1998

Tabel 2.2. Riset terkait (Lanjutan)

3. Neural Networks in

Materials Science.

Bagis, Aytekin. 2003.

Tabu search.

Optimasi membership

functions untuk

kontroler logika fuzzy menggunakan

algoritma tabu search.

4. Fuzzy Membership

Function Elicitation using Plausible Neural Network.

Li, Kuo-chen Li. dan Chang, Dar-jen. 2005

Plausible Neural Network.

Pembangkit fungsi keanggotaan otomatis

dengan atau tanpa

label class berdasarkan similarity

dan pengukuran

likelihood sampel

data.

5. Generating fuzzy

membership function with self-organizing feature map

Yang,

Chih-Chung. dan

Bose, N.K. 2006 Self-organizing feature map

Pembangkit fungsi

keanggotaan fuzzy

otomatis

menggunakan

self-organizing feature map

2.7 Perbedaan Dengan Riset Yang Lain

Berdasarkan riset yang telah dilakukan, peneliti membuat beberapa perbedaan dalam penelitian ini, yaitu;

1) Algoritma yang digunakan adalah Neural Network;

2) Metode yang digunakan pada pembentukan membership function adalah metode Backpropagation Neural Network;

3) Jumlah variabel input awal adalah satu variabel, yang dibangkitkan secara random sesuai dengan dataset yang digunakan;

4) Dataset yang digunakan dalam penelitian ini terbagi dua, yaitu dataset yang digunakan untuk setiap proses trainning yang terdiri dari dataset umur dan suhu, serta dataset untuk proses testing yaitu dataset data nilai siswa dan berat;

5) Algoritma yang digunakan untuk penentuan target awal pada proses trainning adalah algoritma kohonen;


(52)

yang terdiri dari Sangat Rendah (SR), Rendah (R), Sedang (S), Tinggi (T) dan Sangat Tinggi (ST).

2.8 Kontribusi Riset

Dalam penelitian ini, algoritma yang akan digunakan dalam membangkitkan membership function adalah metode Backpropagation Neural Network, diharapkan dari penelitian ini akan didapatkan metode yang lebih efektif dalam menentukan nilai membership function secara otomatis.


(53)

BAB III

METODOLOGI PENELITIAN

3.1 Pendahuluan

Pada logika fuzzy, penentuan fungsi keanggotaan merupakan hal yang sangat penting, karena fungsi keanggotaan akan menentukan hasil yang diberikan. Pembangkitan nilai fungsi keanggotaan secara otomatis menggunakan Backpropagation Neural Network diharapkan dapat memberikan output yang lebih akurat tanpa bergantung sepenuhnya pada pakar. Berdasarkan uraian diatas, maka tujuan dari penelitian ini adalah pembangkitan fungsi keanggotaan fuzzy otomatis menggunakan algoritma Backpropagation Neural Network.

3.2 Data Yang Digunakan

Dalam melakukan penelitian ini, penulis membutuhkan data input dalam proses backpropagation neural network. Data tersebut akan digunakan sebagai data pelatihan dan juga data pengujian. Data yang digunakan dalam proses ini adalah sebagai berikut :

6. Banyaknya data yang digunakan 400 sampel data;

7. Data yang digunakan dibangkitkan secara random dengan aturan : a.Untuk pelatihan:

- Terdiri dari 2 dataset (umur dan suhu); - Setiap dataset terdiri dari 100 data;

- Pembangkitan data secara random dilakukan dengan menggunakan batas awal dan batas akhir sesuai dengan dataset yang digunakan, yaitu; untuk umur batasannya adalah 6-80 dan untuk suhu batasannya adalah 0 - 100;


(54)

b. Untuk pengujian:

- Digunakan dataset nilai siswa, dengan batasan 10 – 100 dan dataset berat dengan batasan 20 – 90;

3.3Proses Penyelesaian Masalah

3.3.1 Perancangan Jaringan BackPropagation Neural Network (BPNN)

Jaringan Syaraf Backpropagation tersusun atas beberapa lapisan, dimana masing-masinng lapisan terdiri dari beberapa unit pengolah data. Pada penelitian ini, arsitektur jaringan yang digunakan terdiri dari tiga lapisan, yaitu satu lapisan masukan (input), satu lapisan tersembunyi (hidden) dan satu lapisan keluaran (ouput).

Lapisan input terdiri dari tiga variabel (X1, X2, X3) yang masing-masingnya terdiri

dari 100 data. X1 merupakan nilai masukan yang didapat secara random,

tergantung dari dataset yang digunakan, yaitu dataset umur (6-80) dan dataset suhu (0-100) untuk proses pelatihan serta dataset Nilai (10-100) dan dataset berat badan (20-90) pada saat proses pengujian. Data pada variabel X2 merupakan data

yang didapat melalui proses clustering dengan menggunakan algoritma kohonen. Data pada variabel X3 didapat dari rumus X2

Jumlah lapisan tersembunyi yang digunakan adalah satu, dengan jumlah neuron yang digunakan empat. Fungsi aktivasi yang digunakan adalah fungsi sigmoid dengan ukuran rentang nilai antara 0 dan 1. Proses pembentukan grafik fungsi keanggotaan menggunakan fungsi linear turun untuk grafik 1, fungsi segitiga untuk grafik 2, grafik 3 dan grafik 4 serta fungsi linear naik untuk grafik 5.

– indeks (i).

Pada lapisan keluaran, ditentukan target yang akan dicapai, yaitu lima target yang terdiri dari kurva dengan skala Sangat Rendah (SR), Rendah (R), Sedang (S), Tinggi (T) dan Sangat Tinggi (ST).

Gambar 3.1 merupakan arsitektur jaringan BPNN yang digunakan pada penelitian ini :


(55)

X1 X3 X2 Z1 Z4 Z2 Y1 Y3 Y5 Y2 Y4 Sangat Rendah Rendah Sedang Tinggi Sangat Tinggi Input Layer Hidden Layer Output Layer 1 1 Bias Hidden Bias Output V11 V1-4 V12 V21 V2-4 V22 V3-1 V3-4 V3-2 W11 W15 W12 W21 W25 W22 W4-1 W4-5 W4-2

Gambar 3.1 Arsitektur jaringan BPNN

Keterangan gambar 3.1 :

Dataset : Dataset yang digunakan :

1. Umur (6-80) ; 2. Suhu (0-100) ; 3. Nilai (10-100) ; 4. Berat badan (20-90),

X : Masukkan data Input (1-100 data)

Z : Jumlah neuron pada hidden layer

V : Bobot pada lapisan tersembunyi

W : Bobot pada lapisan keluaran

Y : Keluaran hasil

100 data pada setiap dataset yang akan dilatihkan disusun menjadi suatu matrik dengan ukuran 3 x 100, baik pada saat pelatihan maupun pada saat pengujian. Keluaran atau target yang diinginkan adalah Membership function dengan skala Sangat Rendah (SR), Rendah (R), Sedang (S), Tinggi (T) dan Sangat Tinggi (ST).


(56)

Adapun prosedur kerja jaringan BPNN secara keseluruhan dapat dilihat pada gambar 3.2.

Variabel X1 (Umur (6-80)), (Suhu (0-100)), (Nila siswa (10-100)),

(Berat (20-90))

INPUT

Tahap Pelatihan

PROSES

Tahap Pengujian

Membership Function (MF)

OUTPUT

Sorting Data

PRA PROSESING

Normalisasi Data

Set Target Dan Bobot

Gambar 3.2 Diagram alir prosedur kerja jaringan BPNN

3.3.2.1Pra Prosesing

Proses pembelajarn pada jaringan syaraf backpropagation terdiri dari dua tahap, yaitu tahap pelatihan dan pengujian data, selain itu juga terdapat proses pra prosesing. Proses pra prosesing dilakukan dalam beberapa tahap, tahap awal merupakan proses sorting data. Proses sorting data dilakukan untuk mengurutkan data input yang dimasukkan secara random sebelum proses normalisasi, data ini


(57)

nantinya akan digunakan untuk proses mendapatkan target dan bobot awal. Data yang telah di-sorting kemudian akan dinormalisasi. Normalisasi dilakukan untuk mengubah data input-an asli menjadi data dalam range antara 0 dan 1. Hal ini dilakukan karena dalam penelitian ini menggunakan fungsi aktivasi sigmoid yang memiliki rentang nilai antara 0 dan 1. Dalam proses ini digunakan persamaan 2.39. Setelah dilakukan normalisasi, maka langkah selanjutnya adalah mendapatkan target awal dan bobot.

3.3.2.2Proses Penentuan Target Awal Dan Bobot Pada Algoritma Kohonen

Terdapat 5 tahapan yang dilakukan pada proses penentuan target awal dan bobot, yaitu :

1. Proses penentuan nilai batas grafik menggunakan algoritma kohonen.

Nilai batas grafik yang didapatkan juga digunakan untuk menentukan batas target dan batas input di setiap grafiknya. Gambar 3.3 merupakan algoritma untuk menentukan nilai batas grafik.

Gambar 3.3 Algoritma penentuan nilai batas grafik.

2. Proses pembentukan grafik target awal, menggunakan fungsi linear turun, fungsi segitiga dan juga fungsi linear naik.

2.a Pembentukan grafik 1 (fungsi linear turun)

Grafik 1 merupakan grafik linear turun, grafik ini memiliki nilai target (sumbu x) yang bergerak turun, mulai dari nilai tertinggi sampai nilai terendah. Gambar 3.4 merupakan grafik linear turun.

For bobot = 1 to 3 jbi = ( boboti + Xi )

2

if jbi > jb ( i + 1 )

bobot ( i + 1 ) = bobot ( i + 1 ) + alpha * Xi – bobot ( i + 1 )

else

boboti = boboti + alpha * Xi – boboti


(58)

0.9

0

1 0

Derajat Keanggotaan

Gambar 3.4 Grafik linear turun.

Pada grafik 1, yang menjadi titik acuan pembentukan grafik adalah nilai a dan b, nilai a merupakan nilai minimum dari data yang di-input-kan, nilai ini menjadi nilai awal grafik sekaligus juga nilai puncak, sedangkan nilai b merupakan nilai batas akhir grafik. Gambar 3.5 memperlihatkan algoritma pembentukan grafik linear turun, dimana nilai b didapatkan dari proses 1.

Gambar 3.5 Algoritma pembentukan grafik linear turun.

2.b Pembentuk grafik 2, grafik 3 dan grafik 4 (fungsi segitiga)

Grafik 2, 3 dan 4 merupakan grafik segitiga, grafik ini memiliki nilai target (sumbu x) yang pada awalnya bergerak naik sampai titik puncak untuk kemudian bergerak turun sampai pada nilai batas akhir. Gambar 3.6 merupakan grafik segitiga.

0.9

0

1 0

Derajat Keanggotaan

.

Gambar 3.6 Grafik segitiga.

a = nilai_minimum (nilai awal = nilai puncak) b = nilai_akhir

For i = 1 To jumlah_data If X1_grafik1 (i, 1) >= b Then

X1_grafik1 (i, 1) = 0; X2_grafik1 (i, 2) = 0; X3_grafik1 (i, 3) = 0

Else

X2_grafik1 (i, 2) = b; X1_grafik1 (i, 3) = b - i


(59)

Pada grafik 2, yang menjadi titik acuan pembentukan grafik adalah nilai a b dan c, nilai a merupakan nilai minimum dari data yang diinputkan, nilai ini menjadi nilai awal grafik, nilai b merupakan nilai puncak, sedangkan nilai c merupakan nilai batas akhir grafik. Gambar 3.7 memperlihatkan algoritma pembentukan grafik segitiga.

Gambar 3.7 Algoritma pembentukan grafik segitiga.

2.c Pembentukan grafik 5 (fungsi linear naik)

Grafik 5 merupakan grafik linear naik, grafik ini memiliki nilai target (sumbu x) yang bergerak naik, mulai dari nilai terendah sampai nilai tertinggi. Gambar 3.8 merupakan grafik linear naik.

0.9

0

1 0

Derajat Keanggotaan

Gambar 3.8 Grafik linear naik.

a = nilai awal b = nilai_puncak c = nilai_akhir

grafik_n = grafik_2, grafik_3, grafik_4 For i = 1 To jumlah_data

If (X1_grafik_n (i, 1) <= a) Or (X1_grafik_n (i, 1) >= c) Then X1_grafik_n (i, 1) = 0

X2_grafik_n (i, 2) = 0

X3_grafik_n (i, 3) = 0

Else

If (X1_grafik_n (i, 1) >= b) And (X1_grafik_n (i, 1) <= c) Then

X2_grafik_n (i, 2) = c

X3_grafik_n (i, 3) = c - i

End If

If (X1_grafik_n (i, 1) >= a) And (X1_grafik_n (i, 1) <= b) Then

X2_grafik_n (i, 2) = c

X3_grafik_n (i, 3) = b + i

End If End If


(1)

v(i, k) = Round(v(i, k), 5) Next k

'Text1.Text = Text1.Text & vbCrLf Next i

For i = 1 To 4

w(i) = w(i) + delta_W(i) w(i) = Round(w(i), 4) Next i

For i = 1 To 4

v0(i) = v0(i) + delta_v0(i) v0(i) = Round(v0(i), 4) Next i

w0 = w0 + delta_w0 w0 = Round(w0, 5) End Sub

Sub smooting1() Dim a, b, c As Integer

Dim tempsem, tempsem1 As Double tempsem = ch(1, 1)

For i = 1 To 200

If tempsem <= ch(i, 1) Then tempsem = ch(i, 1) tempsem1 = i End If Next i a = 0 b = tempsem1 c = temp3 For i = 1 To 200

If (i <= a) Or (i >= c) Then ch(i, 1) = 0

Else

If (i >= b) And (i <= c) Then ch(i, 1) = (c - i) / (c - b) End If

If (i >= a) And (i <= b) Then ch(i, 1) = 1

End If End If Next i

MSChart2.ChartData = ch MSChart2.chartType = 3 End Sub

Sub smooting2() Dim a, b, c As Integer

Dim tempsem, tempsem1 As Double tempsem = ch(1, 2)

For i = 1 To 200

If tempsem < ch(i, 2) Then tempsem = ch(i, 2) tempsem1 = i End If Next i a = mini b = tempsem1 c = temp2 For i = 1 To 200

If (i <= a) Or (i >= c) Then ch(i, 2) = 0


(2)

Else

If (i >= b) And (i <= c) Then ch(i, 2) = (c - i) / (c - b) End If

If (i >= a) And (i <= b) Then ch(i, 2) = (i - a) / (b - a) End If

End If Next i

MSChart2.ChartData = ch MSChart2.chartType = 3 End Sub

Sub smooting3() Dim a, b, c As Integer

Dim tempsem, tempsem1 As Double tempsem = ch(1, 3)

For i = 1 To 200

If tempsem < ch(i, 3) Then tempsem = ch(i, 3) tempsem1 = i End If Next i a = temp3 b = tempsem1 c = temp1 For i = 1 To 200

If (i <= a) Or (i >= c) Then ch(i, 3) = 0

Else

If (i >= b) And (i <= c) Then ch(i, 3) = (c - i) / (c - b) End If

If (i >= a) And (i <= b) Then ch(i, 3) = (i - a) / (b - a) End If

End If Next i

MSChart2.ChartData = ch MSChart2.chartType = 3 End Sub

Sub smooting4() Dim a, b, c As Integer

Dim tempsem, tempsem1 As Double tempsem = ch(1, 4)

For i = 1 To 200

If tempsem < ch(i, 4) Then tempsem = ch(i, 4) tempsem1 = i End If Next i a = temp2 b = tempsem1 c = maxi For i = 1 To 200

If (i <= a) Or (i >= c) Then ch(i, 4) = 0

Else

If (i >= b) And (i <= c) Then ch(i, 4) = (c - i) / (c - b) End If


(3)

If (i >= a) And (i <= b) Then ch(i, 4) = (i - a) / (b - a) End If

End If Next i

MSChart2.ChartData = ch MSChart2.chartType = 3 End Sub

Sub smooting5() Dim a, b, c As Integer

Dim tempsem, tempsem1 As Double tempsem = ch(1, 5)

For i = 1 To 200

If tempsem < ch(i, 5) Then tempsem = ch(i, 5) tempsem1 = i End If Next i a = temp1 b = tempsem1 c = maxi For i = 1 To 200 If (i <= a) Then ch(i, 5) = 0 Else

If (i >= a) And (i <= b) Then ch(i, 5) = (i - a) / (b - a) End If

If (i >= c) Then ch(i, 5) = 1 End If End If Next i

MSChart2.ChartData = ch MSChart2.chartType = 3 End Sub

Private Sub Command5_Click() smooting1

smooting2 smooting3 smooting4 smooting5 End Sub

Private Sub mnexit_Click() Unload Me

End Sub

Private Sub mnrecognition_Click() Form2.Show

Unload Me End Sub


(4)

PROSES PELATIHAN

Dim X(100, 2), Xs(100, 3), Xs1(100, 3), alfa, palfa, bobot(3), jb1, jb2, jb3, maxi, mini, temp1, temp2, temp3 As Double Dim Xs2(100, 3), Xs3(100, 3), Xs4(100, 3), Xs5(100, 3) As Double

Dim target1(100), target2(100), target3(100), target4(100), target5(100) As Double Dim v1(3, 4), v_11(3, 4), v01(4), w_11(4), w1(4), w01 As Variant

Dim v2(3, 4), v_12(3, 4), v02(4), w_12(4), w2(4), w02 As Variant Dim v3(3, 4), v_13(3, 4), v03(4), w_13(4), w3(4), w03 As Variant Dim v4(3, 4), v_14(3, 4), v04(4), w_14(4), w4(4), w04 As Variant Dim v5(3, 4), v_15(3, 4), v05(4), w_15(4), w5(4), w05 As Variant Dim i, n, j, maxepoh, k As Integer

Dim d_input As String Dim strCode As String

Dim data_bobot(150, 2) As String Dim ch(1 To 200, 1 To 5) As Variant

Dim v(3, 4), v_1(3, 4), v0(4), w_1(4), w(4), w0, kuadrat_error_rerata As Variant Dim Z_in(4), Z(4), Y_in, Y_akt, Y_h(100), per_error, kuadrat_error, delta_error As Variant Dim delta_W(4), delta_w0, alfa_bpnn, delta_Inp(4), Delta(4), delta_v0(4) As Variant Dim Target(100), delta_v(2, 4) As Variant

Private Sub Command1_Click() For i = 1 To Val(Text2.Text) X(i, 1) = X(i, 1) / 100 X(i, 1) = Round(X(i, 1), 3)

Text1.Text = Text1.Text & "x" & i & "= " & X(i, 1) & vbCrLf Next i

Text1.Text = Text1.Text & vbCrLf & vbCrLf alfa = 0.6

palfa = 0.5 maxepoh = 10 bobot(1) = 0.5 bobot(2) = 0.5 bobot(3) = 0.5 n = 0 Do n = n + 1

Text1.Text = Text1.Text & "epoh ke " & n & vbCrLf For i = 1 To 12

Text1.Text = Text1.Text & " data ke " & i & vbCrLf jb1 = ((bobot(1) - X(i, 1)) ^ 2)

jb2 = ((bobot(2) - X(i, 1)) ^ 2) jb3 = ((bobot(3) - X(i, 1)) ^ 2) jb1 = Round(jb1, 4) jb2 = Round(jb2, 4) jb3 = Round(jb3, 4)

Text1.Text = Text1.Text & " jb1= " & jb1 & " jb2= " & jb2 & " jb3= " & jb3 & vbCrLf If (jb1 < jb2) Or (jb1 = jb2) Then

If (jb1 < jb3) Or (jb1 = jb3) Then

bobot(1) = bobot(1) + alfa * (X(i, 1) - bobot(1)) bobot(1) = Round(bobot(1), 4)

Else

bobot(3) = bobot(3) + alfa * (X(i, 1) - bobot(3)) bobot(3) = Round(bobot(3), 4)

End If Else

If (jb2 < jb3) Or (jb2 = jb3) Then

bobot(2) = bobot(2) + alfa * (X(i, 1) - bobot(2)) bobot(2) = Round(bobot(2), 4)

Else

bobot(3) = bobot(3) + alfa * (X(i, 1) - bobot(3)) bobot(3) = Round(bobot(3), 4)


(5)

End If

Text1.Text = Text1.Text & " w1= " & bobot(1) & "w2= " & bobot(2) Text1.Text = Text1.Text & " w3= " & bobot(3) & vbCrLf

Next i

alfa = alfa * palfa

Text1.Text = Text1.Text & vbCrLf & vbCrLf Loop Until n = maxepoh

bobot(1) = bobot(1) * 100 bobot(2) = bobot(2) * 100 bobot(3) = bobot(3) * 100 bobot(1) = Round(bobot(1), 0) bobot(2) = Round(bobot(2), 0) bobot(3) = Round(bobot(3), 0)

Text1.Text = Text1.Text & "Hasil Bobot terakhir adalah" & vbCrLf Text1.Text = Text1.Text & "w1= " & bobot(1) & " w2= " & bobot(2) Text1.Text = Text1.Text & " w3= " & bobot(3) & vbCrLf

maxi = X(1, 1)

For i = 1 To Val(Text2.Text) If maxi < X(i, 1) Then maxi = X(i, 1) End If Next i

maxi = maxi * 100 mini = X(1, 1)

For i = 1 To Val(Text2.Text) If mini > X(i, 1) Then mini = X(i, 1) End If Next i

mini = mini * 100 temp1 = bobot(1) For i = 1 To 3

If temp1 < bobot(i) Then temp1 = bobot(i) End If

Next i

temp3 = bobot(1) For i = 1 To 3

If temp3 > bobot(i) Then temp3 = bobot(i) End If

Next i

If (bobot(1) <> temp1) And (bobot(1) <> temp3) Then temp2 = bobot(1)

End If

If (bobot(2) <> temp1) And (bobot(2) <> temp3) Then temp2 = bobot(2)

End If

If (bobot(3) <> temp1) And (bobot(3) <> temp3) Then temp2 = bobot(3)

End If

Text1.Text = Text1.Text & " maxi= " & maxi & vbCrLf Text1.Text = Text1.Text & " temp1= " & temp1 & vbCrLf Text1.Text = Text1.Text & " temp2= " & temp2 & vbCrLf Text1.Text = Text1.Text & " temp3= " & temp3 & vbCrLf Text1.Text = Text1.Text & " mini= " & mini & vbCrLf


(6)

Dim a, b, c, op As Integer a = mini

b = temp3 For i = 1 To 200 If i >= b Then ch(i, 1) = 0 Else

ch(i, 1) = (b - i) / (b - a) End If

Next i For i = 1 To 100 If Xs1(i, 1) >= b Then Xs1(i, 1) = 0 Xs1(i, 2) = 0 Xs1(i, 3) = 0 Else Xs1(i, 2) = b Xs1(i, 3) = b - i End If

Next i a = mini b = temp3 c = temp2 For i = 1 To 200

If (i <= a) Or (i >= c) Then ch(i, 2) = 0

Else

If (i >= b) And (i <= c) Then ch(i, 2) = (c - i) / (c - b) End If

If (i >= a) And (i <= b) Then ch(i, 2) = (i - a) / (b - a) End If

End If Next i For i = 1 To 100

If (Xs2(i, 1) <= a) Or (Xs2(i, 1) >= c) Then Xs2(i, 1) = 0

Xs2(i, 2) = 0 Xs2(i, 3) = 0 Else

If (Xs2(i, 1) >= b) And (Xs2(i, 1) <= c) Then Xs2(i, 2) = c

Xs2(i, 3) = c - i End If

If (Xs2(i, 1) >= a) And (Xs2(i, 1) <= b) Then Xs2(i, 2) = c

Xs2(i, 3) = b + i End If

End If Next i End Sub