Program Logika Fuzzy Metode Mamdani Menggunakan Visual Studio 2012 Bahasa C#

Melanjutkan artikel yang lalu yaitu Contoh Program Logika Fuzzy Metode Tsukamoto Menggunakan Visual Studio,
pada artikel kali ini kita masih membahas mengenai Fuzzy Logic Controll, namun pada artikel kali ini kita akan menggunakan METODE MAMDANI...
Secara Prinsip metode Mamdani tidak jauh berbeda dengan metode Tsukamoto, hanya aja dalam metode Mamdani memiliki langkah penyelesaian yang lebih rumit. Dalam Metode Mamdani, terdapat 4 langkah penyelesaian, yaitu:
1. Fuzzyfikasi, pembentukan himpunan fuzzy
2. Aplikasi Fungsi Implikasi, dalam metode Mamdani fungsi implikasi yang digunakan adalah MIN
3. Komposisi Aturan, terdapat 3 metode: yaitu, MAX, SUM, PROBOR, misalnya jika kita menggunakan komposisi aturan MAX dan menggunakan fungsi implikasi MIN, maka komposisi ini disebut MIN-MAX, MAX-MIN, atau MAMDANI
4. Defuzzyfikasi,
jika ingin tahu lebih jauh, silakan googling sendiri ya... :p

Pada program berikut ini, kita akan membuat program mesin cuci fuzzy sederhana untuk menentukan waktu pencucian yang efektif berdasarkan masukan jumlah pakaian dan tingkat kekotoran pakaian. Software yang digunakan untuk membuat program ini adalah Visual Studio 2012 dengan menggunakan bahasa C#.

Algoritma Program:
1. masukkan batas bawah dan batas atas tingkat kekotoran, misalnya bersih = 3, dan kotor = 15,
2. >> input >> masukkan tingkat kekotoran pakaian, misalnya 8. dalam prakteknya masukan tingkat kekotoran dapat menggunakan sensor cahaya.
3. masukkan batas bawah dan batas atas jumlah pakaian, misalnya sedikit = 10, banyak = 30,
4. >> input >> masukkan jumlah pakaian, misalnya 23. dalam praktek dapat menggunakan sensor infrared, atau masukannya adalah berat pakaian dengan menggunakan sensor berat.
5. masukkan batas bawah dan batas atas waktu pencucian, misalnya cepat = 300s, lama=1200s,
6. hitung derajat keanggotaan masing2 inputan terhadap masing2 himpunanannya.
7. lakukan langkah aplikasi fungi implikasi, dengan fungsi MIN untuk mencari a-predikat 1 s/d 4 (sesuai aturan)
8. lakukan komposisi aturan menggunakan metode MAX untuk mencari nilai a1 dan a2
9. lakukan defuzzyfikasi, tentukan fungsi keanggotaan dari hasil komposisi -> hitung momen (M1, M2, M3) -> hitung luas masing2 daerah (A1, A2, A3)
10. hitung z (nilai akhir) kemudian tampilkan hasilnya

screenshootnya:

Langkah membuat programnya :
1. Buka Visual Studio - New Project - pilih template Visual C# - Windows Form Application - pilih file name dan direktori penyimpanan - OK
2. Buat Form Program / Layout Program menggunakan tools yang ada (seperti text box, button, label, check box, combo box, dll) sampai bentuk form sesuai keinginan dan kebutuhan.

3. Sekarang saatnya programing, double-klik pada button Hitung, lalu masukkan source code:
        private void button1_Click(object sender, EventArgs e)
        {
            double bb, ba, i;
            double ubersih, ukotor;
            {
                i = double.Parse(inputx.Text);
                bb = double.Parse(bersih.Text);
                ba = double.Parse(kotor.Text);
                ubersih = rumus.turun(bb, ba, i);
                ukotor = rumus.naik(bb, ba, i);
                uBrsh.Text = ubersih.ToString(); uKtr.Text = ukotor.ToString();
            }
            double usedikit, ubanyak;
            {
                i = double.Parse(inputy.Text);
                bb = double.Parse(sedikit.Text);
                ba = double.Parse(banyak.Text);
                usedikit = rumus.turun(bb, ba, i);
                ubanyak = rumus.naik(bb, ba, i);
                uSdkt.Text = usedikit.ToString(); uByk.Text = ubanyak.ToString();
            }
            double cpt, lma;
            cpt = Convert.ToInt32(cepat.Text);
            lma = Convert.ToInt32(lama.Text);
            double p1, p2, p3, p4, max1, max2, max, Min1, Min2, Min, a1, a2 ;
            double m1, m2, m3, AA1, AA2, AA3, z;
            // Mencari a-predikat 1 - 4
            p1 = Math.Min(ubersih, usedikit);
            p2 = Math.Min(ubersih, ubanyak);
            p3 = Math.Min(ukotor, usedikit);
            p4 = Math.Min(ukotor, ubanyak);
            Min1 = Math.Min(p1, p2); Min2 = Math.Min(p3, p4);
            Min = Math.Min(Min1, Min2); // Mencari Min
            max1 = Math.Max(p1, p2); max2 = Math.Max(p3, p4);
            max = Math.Max(max1, max2); // Mencari Max
            a1 = (lma - cpt)*Min + cpt; // Mencari batas area 1
            a2 = (lma - cpt)*max + cpt; // Mencari batas area 2
            ha1.Text = a1.ToString();
            ha2.Text = a2.ToString();
            // Defuzzyfikasi
            m1 = (Min/2)*(Math.Pow(a1,2));
            m2 = (((1 / (lma - cpt)) / 2) * (Math.Pow(a2, 3))) - (((cpt / (lma - cpt)) / 2) * Math.Pow(a2, 2)) - (((1 / (lma - cpt)) / 3) * (Math.Pow(a1, 3))) - (((cpt / (lma - cpt)) / 2 * (Math.Pow(a1, 2))));
            m3 = ((max * Math.Pow(lma, 2)) / 2) - (max * (lma-cpt) / 2) * (lma-cpt);
            hm1.Text = m1.ToString(); hm2.Text = m2.ToString(); hm3.Text = m3.ToString();
            // Mencari Luas Area A1,A2,A3
            AA1 = a1 * Min;
            AA2 = (Min + max) * (a2 - a1) / 2;
            AA3 = (lma-(lma-cpt)) * max;
            A_1.Text = AA1.ToString();
            A_2.Text = AA2.ToString();
            A_3.Text = AA3.ToString();
            z = (m1 + m2 + m3) / (AA1 + AA2 + AA3); // Titik Pusat
            textBox1.Text = z.ToString();
        }
4. Perhatikan listing program yang bertuliskan: ubersih = rumus.turun(bb, ba, i); ini merupakan function, function diletakkan pada public partial yang berbeda. masukkan list program seperti pada gambar di bawah ini:

5. Sebagai pelengkap, kita akan menggunakan fungsi clear. pada button "Clear Input X-Y" double-klik kemudian masukkan kode : inputx.Clear(); inputy.Clear(); dan pada buton "Clear Semua" masukkan kode berikut : bersih.Clear(); kotor.Clear(); inputx.Clear(); sedikit.Clear(); banyak.Clear(); inputy.Clear(); cepat.Clear(); lama.Clear(); uBrsh.Clear(); uKtr.Clear(); uSdkt.Clear(); uByk.Clear(); ha1.Clear(); ha2.Clear(); hm1.Clear(); hm2.Clear(); hm3.Clear(); A_1.Clear(); A_2.Clear(); A_3.Clear(); textBox1.Clear();
fungsi clear berfungsi untuk menghapus isi dari textbox saat program dijalankan.

6. program selesai dibuat, untuk me-run program = klik start, apabila program ada yang eror, maka akan ada pesan eror pada jendela Error List, dan selamat belajar :D
7. selesai


source code lengkap sudah saya tuliskan diatas, jadi ga perlu minta dikirim email ya :D
~Semoga Bermanfaat~

Recent Post :



51 komentar:

  1. minta file program ini dong ke hanggariawan@gmail.com

    BalasHapus
    Balasan
    1. Brader tolong di share ya programnya biar nambah2 ilmu makasih sebelumnya
      email :reyz_neil@yahoo.com

      Hapus
  2. agan, boleh gak minta file programnya kalau boleh kirim ya ke email ku..vio.luph.amore@gmail
    saya doakan agan pahalanya tambah banyak deh... amienn

    BalasHapus
    Balasan
    1. gan kesini ya shery.ferlita@yahoo.com.. makasih banyak lho gan.. semoga agan tmbah pahala deh..

      Hapus
  3. gan.. boleh minta file program nya? kirim ke aztec49_fikri@yahoo.com thanks :)

    BalasHapus
  4. bisa krim gak sekarang file programnnya lagi butuh anget

    BalasHapus
  5. kak minta file yang ini ya ke boegars_jatie@yahoo.co.id ,,
    terimakasih,,,:)

    BalasHapus
  6. mas minta file programnya ya, buat belajaran. tolong kirim ke email keiei_sh@yahoo.com, makasih :))

    BalasHapus
  7. mas minta file/project programnya ya, buat belajaran. tolong kirim ke email rahmawati.erlinda@yahoo.com, makasih :))

    BalasHapus
  8. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  9. Kak minta file programnya nya dong buat nambah ilmu tentang logika fuzzy, kirim ke feri.movic@yahoo.com . makasih :))

    BalasHapus
  10. mas bro minta file programnya boleh
    krim ke hadhie_susilo@yahoo.co.id
    mkasih byak mas bro :)

    BalasHapus
  11. bro minta fuzzy yg tsukamoto, mamdani sama sugeno sekalian kalo bisa bro. thanks ya broo.. destyawansaputra@gmail.com

    BalasHapus
  12. bro minta tolong bagi filenya sourcenya ya ke wagisol@yahoo.com
    thx ya

    BalasHapus
  13. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  14. gan boleh minta file project prgrammu ini?
    addib.zacky@gmail.com

    terima kasih banyak..blog anda sangat membantu

    BalasHapus
  15. kang minta programnya. thanks ya. nih emailku:AM_Jazz@ymail.com

    BalasHapus
  16. gan, bisa share program y?
    arisbocahtelo@yahoo.com
    thanks sbelumnya :)

    BalasHapus
  17. gan, bisa minta tolong share programnya dong?
    kandaina.shiawase@cyber-wizard.com
    makasih sebelumnya

    BalasHapus
  18. gan tlong share program n sourcenya k rizalstudy@gmail.com.. tks ya gan,,ane mau belajar..

    BalasHapus
  19. kalau boleh kirim ke sini gan >> tugaz.5hufree@gmail.com
    buat belajar :) makasih

    BalasHapus
  20. Maaf ya agan2 sekalian, saya jarang buka blog akhir2 ini, Insya Allah dlm waktu dekat saya akan mengedit postingan agar lebih mudah dipahami...
    Terimakasih

    BalasHapus
    Balasan
    1. saya mw bikin ke javascript, boleh minta projectnya ga, buat belajar sekaligus referensi?
      kirim ke sini ya oxa.5.lez@gmail.com
      trims ^_^

      Hapus
    2. saya mw bikin ke javascript, boleh minta projectnya ga, buat belajar sekaligus referensi?
      kirim ke sini ya oxa.5.lez@gmail.com
      trims ^_^

      Hapus
  21. itu rumusnya udah bener belum ya? yang rumu turun dan rumus naik

    BalasHapus
  22. minta filenya mas buat referensi vintha.emiliah@gmail.com terimaksih sebelumnya

    BalasHapus
  23. minta file program nya donk >>> harrisrmcm@gmail.com ...makasih ya? besok mau final

    BalasHapus
  24. minta tolong file project nya mas, . kirim ke abu.elcantro@live.com
    makasih banyak mas, semoga mas dilancarkan segala urusannya

    BalasHapus
  25. THX GAN...... bermanfaat bgt.
    oya.. yang mau di jadiin program vb.net . email ke ihsan.muchammad@gmail.com ..
    thx... :D

    BalasHapus
  26. mas kalau program C# dipakai di C++ bisa gak ??

    BalasHapus
  27. boleh minta file projectnya gak gan, buat referesi belajar
    yusupmaliki@gmail.com

    BalasHapus
  28. Kak, boleh tanya tidak kalau himpunannya ada 3 (banyak, sedang, sedikit) berarti area nya ada 3 juga tidak ya ? Atau bagaimana kak. Boleh jelasin rumus nya ya kak ke email saya : inna.chica@gmail.com

    BalasHapus
  29. Minta mentahan programnya dong gan. Kirim ke rivaldydwisatria@gmail.com

    BalasHapus
  30. kak mintak programnya lah buat belajar kirim ke mayoriyeni760@gmail.com makasi

    BalasHapus
  31. kak bisa minta filenya untuk keperluan TA makasih atas bantuannya arizal280994@gmail.com

    BalasHapus
  32. kak bisa minta filenya untuk keperluan TA makasih atas bantuannya arizal280994@gmail.com

    BalasHapus
  33. terima kasih kak... sangat membantu :)

    BalasHapus
  34. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  35. Gan boleh minta file nya kirim arief.lukman65@yahoo.com

    BalasHapus
  36. Mas boleh minta programnya kirim ke email saya abdurrohimfajar5@gmail.com

    BalasHapus
  37. Mas boleh minta programnya kirim ke email saya fitriuin22@gmail.com

    BalasHapus
  38. Mas minta file program.nya tolong dikirim ke email saya imamshafii49@gmail.com

    BalasHapus
  39. minta projectnya. ini email saya ariefsetyan@gmail.com

    BalasHapus
  40. gan program nya ini ada filenya gak saya butuh banget kalo ada kirim ke email saya boleh ? wildansyahrp95@gmail.com

    BalasHapus
  41. maaf untuk menentukan rule ada di bagian mn dalam program ini..thx

    BalasHapus
  42. maaf untuk menentukan rule ada di bagian mn dalam program ini..thx

    BalasHapus
  43. kalau pake bahasa visual basic gmn kira2 coding nya?

    BalasHapus
  44. Boleh minta file programmnya gan? Terimakasih sebelumnya, salam sukses!
    Ayyubrizaldy@gmail.com

    BalasHapus
  45. gan boleh minta ga filenya ? :D rico.goh95@gmail.com

    BalasHapus
  46. ada kesalahan pada kode, saya sudah tes dan hasil tidak sesuai dengan screeshot

    BalasHapus