Oleh: Dr. Ir. Prabowo Pudjo Widodo, MS. & Rahmadya Trias H., ST., MKom.
Studi Kasus:
Buatlah rancangan Adaptive Neuro Fuzzy Inference System untuk kasus penentuan bonus pegawai restoran berdasarkan pelayanan dan masakan yang disajikan. Gunakan rule yang dibentuk dengan proses learning.
Penyelesaian:
-
Langkah pertama adalah buka Matlab Anda. Arahkan Current Directory pada posisi folder yang tepat.
-
Berikutnya kita akan membuat proses learning pada ANFIS. Kembali ke command window, ketik “anfisedit“.
-
Yang perlu diperhatikan adalah kita diminta untuk me-load data. Data yang akan dijadikan sarana training ANFIS adalah gabungan antara masukan dengan keluaran. Dari kombinasi-kombinasi yang mungkin dapat kita bentuk menjadi matrik dengan jumlah kolom sebanyak tiga kolom yang menggambarkan dua masukan dan satu keluaran. Matriks tersebut terdiri dari komposisi beberapa kemungkinan, misalnya jika pelayanan nol dan masakan nol harapannya bonusnya juga nol. Buat matriks pada command window sebagai berikut (sekedar ilustrasi):
train_data =
0 0 0
1 0 1
0 1 1
2 1 3
2 2 4
1 2 3
3 0 3
3 1 4
3 2 5
4 1 5
1 4 5
5 1 6
5 2 7
5 3 8
5 4 9
5 5 10
Anda dapat membentuk training data ini selengkap mungkin. Kembali ke ANFIS editor, pada isian load data, klik tombol radio worksp, yang artinya kita akan mengambil data dari workspace command window. Klik Load data, maka kita akan diminta mengisikan variabelnya, ketik: train_data, lalu OK.
-
Pada isian generate FIS, pilih tombol radio Load from file, karena kita akan memanggil FIS hasil kreasi kita sebelumnya. Klik Load, dan arahkan ke file bonus.fis. Berikutnya pada isian Train FIS, klik Train now. Gunakan Epoch secukupnya, misalnya 10.
-
Kemudian kita akan membuat FIS secara otomatis. Pada isian Generate FIS, pilih Grid partition, dilanjutkan dengan mengklik Generate FIS.
-
Akan muncul jendela isian tentang tipe fungsi keanggotaannya. Pilih misalnya gbellmf dengan masing-masing 3 fungsi yang pada isian number of MFs berisi 3 3. Klik OK. Pada ANFIS info jika kita klik Structure, maka akan muncul informasi neuron pada ANFIS yang baru kita generate tadi.
-
Selamat, Anda telah berhasil membuat satu engine FIS dengan cara Training ANFIS. Untuk menyimpan dapat kita lakukan dengan mengklik: file – export. Ada dua pilihan yang tersedia, yaitu to Workspace dan to File. Bila kita pilih to workspace maka hanya akan muncul pada Matlab saat aktif sekarang saja. Bila di-shutdown, data akan hilang. Sebaiknya kita pilih to file agar lebih permanen. Setelah diklik to file, beri nama misalnya bonis. File fuzzy akan tersimpan dengan ekstensi “fis”.
-
Untuk memperjelas FIS hasil training ANFIS, buka FIS tersebut dengan mengetik pada command window:
>> fuzzy bonus
-
Ganti nama input1 menjadi pelayanan, input2 menjadi masakan dan output menjadi bonus, pada isian Name di Current Variable.
-
Dobel klik pada pelayanan, maka akan memunculkan membership function editor, ganti nama yang sesuai misalnya buruk, rata-rata dan baik seperti pada gambar di bawah ini. Lakukan hal yang sama untuk masakan.
-
Setelah kita edit nama input beserta fungsi keanggotannya, maka secara otomatis, rule akan berubah mengikuti nama tersebut. Dobel klik pada bagian rule, sehingga memunculkan logika sebagai berikut:
-
Berikutnya kita akan menguji fuzzy yang telah kita buat. Kembali ke command window, ketik: fis=readfis(‘bonus’) lalu enter maka Matlab akan meload engine FIS yang kita miliki yaitu bonus.fis. Berarti variabelnya diberi nama “fis”.
fis=readfis(‘bonus’)
fis =
name: ‘bonus’
type: ‘sugeno’
andMethod: ‘prod’
orMethod: ‘probor’
defuzzMethod: ‘wtaver’
impMethod: ‘prod’
aggMethod: ‘sum’
input: [1×2 struct]
output: [1×1 struct]
rule: [1×9 struct]
-
Berikutnya kita uji misalnya pelayanan buruk, yaitu 1 sedangkan masakannya pun tidak enak. Instruksi yang diperlukan adalah evalfis.
>> out = evalfis([1 1],fis)
out =
1.6195
Hasil defuzzifikasi, dengan variabel out, adalah 3,2863 yang jika dibandingkan dengan skala 10 masih dibilang buruk.
>> out = evalfis([5 5],fis)
out =
9.9078
Engine FIS hasil training ANFIS yang telah kita bentuk ini dapat kita aplikasikan dengan GUI yang tersedia pada Matlab agar interaksi dengan user lebih baik.