Membuat Fuzzy dgn Toolbox Matlab

Hari/Tgl/Mt Kuliah/Dosen/Kampus: Sabtu/16-10-2010/Metode Riset/Dr. Prabowo – Rahmadya, M.Kom./S2 STMIK Nusa Mandiri

 

Studi Kasus:

Buatlah rancangan Fuzzy Inference System untuk kasus penentuan bonus pegawai restoran berdasarkan pelayanan dan masakan yang disajikan. Gunakan rule Mamdani dengan logika yang tepat.

 

Penyelesaian:

  1. Langkah pertama adalah buka Matlab Anda. Arahkan Current Directory pada posisi folder yang tepat.

 


 

  1. Pada Command Window ketik “fuzzy”, maka akan muncul jendela berikut ini.

     


 

  1. Secara default Matlab menyediakan satu masukan, satu kelauaran dan satu rule bertipe Mamdani. Karena kita diminta untuk membuat dua masukan yaitu pelayanan dan masakan, klik: edit – Add Variable – Klik “input”. Tambahkan pelayanan dan masakan sebagai variabel masukan. Beri nama yang sesuai untuk output, misalnya “bonus”.

 


 

  1. Langkah berikutnya adalah kita membuat fungsi keanggotaan (membership function) untuk input. Misal pelayanan terlebih dahulu, dobel klik pada masukan pelayanan, maka akan muncul jendela baru untuk mengatur fungsi keanggotaan. Yang perlu kita atur adalah nama fungsi keanggotaan, range dan tipe-nya. Nama fungsi keanggotaan pada FIS berupa ciri verbal seperti baik, rata-rata atau buruk. Range menyatakan jangkauan angka misalnya lima menyatakan paling baik, nol menyatakan paling buruk, berarti antara dua dan tiga adalah rata-rata. Coba sendiri membuat fungsi keanggotaan seperti pada gambar di bawah ini. Agar lebih cepat, coba gunakan tipe z, gauss dan s untuk berturut-turut pada fungsi buruk, rata-rata dan baik.

 


 

  1. Dengan cara yang sama dengan langkah keempat, buat untuk masukan masakan. Untuk mudahnya gunakan nama fungsi masakan tidak enak, rata-rata dan enak. Range gunakan jangkauan yang sama untuk pelayanan.

 


 

  1. Berikutnya kita merancang fungsi keanggotaan pada variabel keluaran yaitu bonus. Misalnya kita akan mengkategorikan bonus menjadi banyak, rata-rata dan sedikit. Untuk memudahkan, gunakan range penjumlahan dua masukan yaitu sepuluh. Gunakan fungsi sederhana yaitu fungsi segitiga. Atur nama fungsi serta tipenya sehingga menghasilkan gambar sebagai berikut.

 


 

  1. Jika telah selesai, maka terakhir kita akan membuat logika pada rule. Close terlebih dahulu Membership Function Editor. Dobel klik pada bagian tengah FIS editor. Isikan logika yang sesuai, coba skenario terbaik, terburuk dan rata-rata.

 


 

  1. Untuk melihat apakah sesuai dengan yang diharapkan, klik: view – surface, perhatikan apakah sudah sesuai dengan keinginan.

 


 

  1. Untuk mengatur kecenderungan kita apakah memberi bonus baik atau tidak, dapat kita lakukan dengan mengklik: view – rules. Untuk mengatur kecenderungannya dapat kita lakukan dengan menggeser garis tengah berwarna merah untuk tiap fungsi keanggotaan.

 


 

  1. Selamat, Anda telah berhasil membuat satu engine FIS. 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”.
  2. 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’)

 

  1. Berikutnya kita uji misalnya pelayanan buruk, yaitu 1 sedangkan masakannya pun tidak enak. Instruksi yang diperlukan adalah evalfis.

    >> out = evalfis([1 1],fis)

     

    out =

     

    3.2863

     

    Hasil defuzzifikasi, dengan variabel out, adalah 3,2863 yang jika dibandingkan dengan skala 10 masih dibilang buruk.

    >> out = evalfis([5 5],fis)

     

    out =

     

    7.3379

     

    Selamat Mencoba.

 

 

 

 

 

 


 

Iklan

75 respons untuk ‘Membuat Fuzzy dgn Toolbox Matlab

  1. apakah fuzzy logic toolbox dapat digunakan untuk masukan yang berjumlah banyak?
    sy sedang membuat program pengolahan citra dengan fuzzy logic memanfaatkan matlab, dengan input 4 dan output 1, bagaimanakah sy bisa menyisir gambar/matriknya dengan mask 2×2(input 4) dan output 1 untuk menghasilkan gambar hasil kembali…
    saya memiliki kesulitan dengan mengatur masukan dan keluarannya..
    need some help..

    • sepertinya cukup menarik .. tetapi kami ingin dijelaskan lebih detil kasusnya, misal lewat pendahuluan/abstraknya mas .. mengingat riset soft computing sedang giat-giatnya.

      • ini wat tugas akhir saya…
        intinya seh untuk fuzzy image processing , spesifiknya deteksi tepi dengan aturan fuzzy…
        ternyata pas sy coba, agak lambat..karena harus menyisir matriks gambarnya satu-persatu…

  2. Assalamu’alaikum? Bapak saya sangat tertarik dengan tulisan anda di blog ini sangat membantu buat saya dalam memahami ANFIS..Saat ini saya sedang melaksanakan tugas akhir mengenai ” Perancangan Software Fault locator untuk Mendeteksi,klasifikasi,serta estimasi lokasi gangguan pada saluran 20 Kv dengan ANFIS” besar harapan saya tuk bisa sharing kepada bapak dalam memahami ANFIS.
    dan Saran sarannya…

    Terima kasih

    • ya bener, memang fuzzy tipe I banyak dikritik, apanya yg fuzzy kalo mf-nya bisa dianalisa dengan matematika konvensional? akhirnya muncul tipe II yang saat ini sedang saya pelajari, ada informasi tambahan gan?

  3. Assalam..,mas, mau tanya tentang simulasi menggunakan matlab dengan metode logika fuzzy?bagaimana ya?
    bisa ga mas share materi ato contoh programnya.,trma kasih..

  4. Pak… saya masih pemula dan mau bertanya bagaimana cara menentukan type mf dari membership functionnya? terima kasih…

  5. pak boleh tanya g???saya bingung waktu mau menambah fungsi keanggotaanya itu pada Add mf hanya ada maksimal 9 padahal saya butuh lebih dari 9 bagaimana caranya???
    thanks be4

    • ada siswa saya yang memperkirakan kebutuhan batubara (PLTU) berdasarkan data yang lalu dengan ANFIS. optimasi apanya ya?

      • Optimasinya untuk PLTA. input ada 2 yaitu : 1. Debit inflow air yang masuk waduk
        2. Ketinggian Muka Air Waduk | Outputnya berupa : Release atau air yang keluar dari waduk. Rulenya seperti contoh anda restoran. Misalnya : jika debit kecil dan Ketinggian kecil maka Release kecil. dst.
        Masalah muncul ketika pembimbing meminta saya untuk membuat simulasi operasional waduk selama 10 tahun!. Jadi saya harus memasukkan inflow dan elevasi untuk setiap bulan selama waktu tersebut. Apakah saya harus memasukkan input satu-satu, untuk kemudian saya catat outputnya? Bagaimana caranya jika semua input selama 10 th mengambil data dari file dat atau xls kemudian output diproses dengan matlab?
        BULAN TAHUN INPUT ELEVASI OUTPUT
        januari 2000 30 200 ?
        februari 2000 50 160 ?
        dst s.d desember th 2010 ….. %^&(*^&^%%$# :=((
        Sedangkan untuk memperoleh output dengan
        >> out = evalfis([5 5],fis)
        juga amat lama khan????
        terima kasih.
        email : faqihn@yahoo.co.id

      • Waktu itu ada yang datang ke saya ketika mau sidang terbuka ternyata dosen pembimbing meminta hal yang sama dengan kasus bapak, kasusnya tentang kontroler fuzzy pada kandang ayam selama beberapa bulan.
        Akhirnya diputuskan menggunakan SIMULINK pada Matlab. Hanya saja karena simulasi membutuhkan waktu lama jika diset sesungguhnya, akhirnya diskala agar lebih cepat. Keluarannya pada SCOPE ternyata bisa dikonversi ke tabel yang nantinya bisa dipindah ke excel atau diplot ulang.

  6. salam..
    pak mau bertanya,
    apakah dalam setiap params membership function yg ada pada logika fuzzy itu perhitungan atau bagaimana untuk menghasilkan outputan yg baik?
    dan apakah tau bagaimana cara mengoptimasi Membership function pada logika fuzzy pada kasus gabungan Membership Function (trimf dan trapmf)?
    terima kasih sebelumnya,

    • Itulah gunanya penelitian, banyak hal yang harus diteliti. Hasilnya bermunculan di jurnal-jurnal. Ada yang membutuhkan bantuan algoritma genetik untuk optimasi rule, dan sebagainya. Makanya tidak ada pakem yang tepat, sebelum kita sendiri meneliti. Kebanyakan saat ini tidak ada metode yang terbaik, karena antar metode bisa dikombinasi (hybrid) untuk menghasilkan output yang optimal.

  7. salam,
    Saya mau tanya apakah penyelesaian kasus dengan menggunakan metode tsukamoto bisa dilakukan dengan matlab? jika bisa mohon bantuan tutorialnya dikirim via email saya

    terima kasih

    • Bisa, malah lebih mudah, makanya tidak dimasukkan dalam paket toolboxnya karena terlalu mudah. Saya pernah download fuzzy tsukamoto dengan bahasa Java. Hanya saja lupa link-nya. Coba cari di google. Tinggal dikonversi aja ke Matlab. Siapa tahu sudah ada yang membuatnya dengan bahasa Matlab.

  8. Selamat sore mas Rahmad

    saya membuat model fuzzy mamdani dan sugeno dengan 5 input 1 output, bahkan sudah dibuat GUI-nya..
    ada permasalahan sedikit, cuma tidak membuat gagal running..
    ketika GUI di running pertama kali, tanpa mengubah input, saya langsung pilih proses tombol mamdani/sugeno, pasti program tidak bisa jalan..
    tetapi setelah klik tombol dan rubah inputan, program bisa jalan..
    (inputan memakai drop down)

    pesan error yg muncul :

    ??? Reference to non-existent field ‘soi’.

    Error in ==> prediksi>push_mamdani_Callback at 83
    out=evalfis([handles.soi handles.suhu handles.mjo handles.lift handles.rh],fis_mam)

    Error in ==> gui_mainfcn at 75
    feval(varargin{:});

    Error in ==> prediksi at 42
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uicontrol Callback.

    mohon pencerahannya, thanks..

    • misal data nilai siswa,
      data=[9 8 10] (ada tiga nilai: 9,8 dan 10).
      out=evalfis(data,fis) atau
      out=evalfis([9 8 10],fis) dengan fis variabel fuzzy yang dibaca:
      fis=readfis(‘namafuzzy.fis’)

  9. Salam pak, saya mau tanya..
    Sekarang saya lagi tugas akhir Menggunakan Fuzzy Mamdani untuk penerimaan karyawan baru..
    Yang mau saya tanyakan kira-kira input dan outputnya apa saja pak…?
    Terima kasih banyak sebelumnya pak..

    • inputnya kriteria apa saja yg menentukan diterima atau tidaknya, sedangkan keluarannya diterima/tidak, atau bisa ditambah “dipertimbangkan”. Tentu saja tinggal diatur range inputnya

  10. assalammualaikum pa, saya sedang mengambil Tugas Akhir dengan judul “Analisa Jumlah Produksi PT.X menggunakan metode ANFIS”. Faktor2 untk penentuan jumlah produksi sy mengambil data order, data penjualan, data stock, dan data biaya produksi. yg saya ingin cara untuk memasukkan data tersebut melalui anfis bagaimana caranya pa? lalu apakah bisa ANFIS untuk penentuan jumlah produksi? karena selama yang saya cari jurnal ANFIS belum ada untuk penentuan jumlah produksi. jika ada rferensi mengenai penentuan jumlah produksi melalui ANFIS mohon sharenya pa .. makasih
    dpt balas mail : mira_febrina91@yahoo.com

    • ya sudah, data yang lama (order,penjualan,stok, dan biaya produksi, serta jumlah produksinya) dilatih saja. prinsipnya kayak membuat persamaan untuk menentukan jumlah produksi dengan mempelajari data-data yang lama. Makin banyak data yang lampau, hasil makin baik (asal datanya konsisten)

    • misal jika data order, data penjualan, data stock, dan data biaya produksi berturut-turut a,b,c,d total produksinya z, maka jika ada data lain yang seperti itu tetapi memiliki total produksi yang berbeda drastis atau malah berlawanan, maka hasil training sistem biasanya kacau. Kalau di statistik ada istilah data yang menyimpang itu dieliminasi/dibuang, atau diganti dengan yang baru yang tidak terlalu jauh menyimpang.

  11. assalamu’alaikum…met malam,,,pak saya mau nanya gmn cara menampilkan semua output fuzzy ke matlab??? cara di atas itukn outputnya satu2,kasus sy ini ada 6 inputan satu output,,tetapi yg sy perlukan ada 76 output,,kalau satu2 kn repot,mohon bantuannya,

  12. ok sip,,,terus sya mau nanya lagi gman cara nampilkan output matlab k excel begitu sebaliknya.mhon bantuannya.Maksih…

  13. Pagi pak, sya dari UPNVJ sya sedangambil TA tentang Fuzzy DB tahini, sya liat jurnal ilmiah yg lain pada gunakan software Delphi tp sya gunakan software MATLAB, apa bsa sya slesaikan pak???
    mohon referensi bapak bila bsa gunakan MATLAB untuk fuzzy DB tahani

      • tepat sekali pak. awal2 sya bandingkan software umum yg mana mmiliki fasilitas terbaru ssuai kebutuhan org IT. sya temukan ialah matlab pak……untuk skarang ini TA sya ttg logika fuzzy tahani. sya masih bingung awal penggunaan pd MATLAB pak, sya tahu bru logika fuzzy mamdani yg digunakan di MATLAB. jd untuk awal penggunaan tahani bagaimana pak???

      • Nanti saya cari dulu informasinya. Kalau sudah ketemu akan saya upload di blog. Sementara ini di Matlab, pilihannya baru Mamadani dan Sugeno. Atau ada referensi yg bisa saya baca. Ternyata banyak pertanyaan-pertanyaan baru yang menarik yg belum pernah saya dengar sebelumnya, seperti minggu lalu ada yg datang dari UI tentang Neural Network yg dikombinasikan dengan Algoritma Genetika untuk pabrik kimia.

  14. maff pak bukan sya ga sopan tp mumpung sya masih mahasiswa jd sya pnasaran untuk cari2 hal baru yg bguna bagi manusia.
    ilmu dari bapak sya tunggu!!!

    • coba cari di help-nya: Building Fuzzy Inference Systems Using Custom Functions, disitu dibahas teknik buat mf, fuzzifikasi, dan defuzzifikasi, dengan m-file.

  15. Selamat sore pak Rahmadya, ada beberapa hal yg mau saya tanyakan, saya sudah mengirimkan email ke email pak Rahmadya.

  16. maaf pak,, saya msh pemula jd mohon maklumi,,, saya mau tanya kalau mau gabungin kurva pada tahap komposisi antara buat nyari momen dan luasan daerah, itu caranya gmn kalau di matlab?

  17. Mau tanya, bagaimana kalau membuat 1 input dengan 2 output?
    Tolong brikan contoh program yang di pushbutton nya
    misal, input : level air, rendah, sedang, tinggi
    output, keran a dan keran b
    level rendah, a dan b nyala
    sedang a nyala b mati
    tinggi a dan b mati
    trims..

  18. Assalam, bapak saya mau bertanya. Saya sedang mengerjakan tugas akhir menggunakan fuzzy metode sugeno dengan orde nol untuk kontrol kecepatan roda pada mobil robot. Saya melakukan pengujian fuzzy menggunakan matlab, tapi hasil yang saya peroleh pada program saya berdeda dengan pada matlab, padahal kalau saya hitung secara manual hasilnya sama. Apakah ada pengaruh dengan orde yang di gunakan pada matlab? Karena saat saya baca matlab menggunakan orde 1, saat dia orde nol konstanta di berikan nilai 0, apakah matlab membedakan orde secara otomatis? Atau ada cara setting orde pada matlab? Terimakasih.

  19. salam sejahtera
    saya mau bertanya. untuk fuzzy model perangkingan seperti AHP apakah bisa digunakan dalam matlab? dan kalau bisa bagaimana cara pengoperasiannya? saya butuh bantuan bapak untuk skripsi saya. terima kasih

  20. Pak mau bertanya, mengapa hasil perhitungan manual berbeda dengan hasil perhitungan menggunakan toolbox fuzzy logic pada matlab?

  21. Pak , saya mau bertanya.
    kalau saya mau view surface dari file yang sudah saya simpan dengan nama ‘bonus1’ gmna ya pak?
    kalau hanya fis=readfis(‘bonus1’) hanya keluar keterangan saja pak.

    kemudian saya mau bertanya kalau saya mau memasukan data pada masukan/input dengan jumlah lebih dari 20 dan tipe number , apa bisa berjalan pak ? karena saya mau buat prediksi inflasi dengan anfis pak . terima kasih pak ,

    • Jangan pake readfis kalo mau lihat surface, pake
      >>fuzzy bonus1
      Dobel klik rule trus lihat surface
      20 masukan bisa aja (banyak banget variabelnya)

  22. pak saya mau nanya klo evalfis data lebih dari 10 bagaimana pak ?
    maksudnya evalfis itu pak ya pak ?
    source code pada akurasi data menggunakan anfis, itu menggunakan source code ga pak ?
    makasih sebelumnya pak.

  23. Assalam’alaikum Pak,.. sy ingin bertanya. sy menggunakan FIS mamdani di matlab dengan 5 input dan 1 output, bagaimana cara membuat urutan rule-rulenya? apakah ada aturan-aturan tertentu dalam pengurutannya?
    saya masih bingung karena yg sy perhatikkan pada kasus yg ada dengan 4 input dan 1 output itu hasil seluruh rulenya ada 81.
    mohon penjelasannya, Terima Kasih.

    • Urutan rule tidak berpengaruh, hanya untuk keteraturan saja. Tidak ada aturan jumla rulenya. Rule memang makin banyak makin halus. Jika target output (misal data pelamar yg diterima dan tidak diterima) sudah dimiliki lebih mudah dgn anfis yg membentuk sendiri rule2nya

  24. Salaam. Pak, saya mau tanya. Saya punya data berjumlah 600 dan dibagi 80% data training dan 20% data uji. Tapi semua data saya bentuknya kategorik. Ada 3 input: frekuensi, usia, dan riwayat penyakit. Ketiganya adalah data kategorik. Jadi, inputnya hanya terdiri dari angka 0, 1, 2, atau 3 saja. Yang mau saya tanyakan adalah apakah output hasil anfis itu akan berupa data kategorik juga atau tidak ya pak? Target yang sudah saya buat juga berupa kategorik, 0 dan 1. Terima kasih pak.

    • anfis dan jst tidak kategorik. bisa saja nanti hasilnya dikategorikan (dibulatkan). kalau clustering baru kategorik hasil outputnya.

      • Baik pak. Saya mau tanya lagi pak, apakah anfis model sugeno pasti hanya menghasilkan 1 output? Dan adakah link untuk bisa membaca model struktur anfis pak? Terutama tentang pemetaannya. Terima kasih pak

      • jika target pelatihan lebih dari satu, keluaran anfis juga lebih dari satu (berbentuk vektor). struktur anfis lebih rumit dari jst. saya ada tapi lupa dimana nyimpennya, saya cari dulu.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s