Contoh Program Logika Fuzzy dengan Metode Tsukamoto

Logika Fuzzy Metode Tsukamoto
Logika Fuzzy
Logika fuzzy adalah salah satu komponen pembentu k soft computing. Logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A. Zadeh pd
tahun 1965. Dasar logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy, peranan derajat keanggotaan sbg penentu
keberadaan elemen dalam suatu himpunan sangatlah penting. Nilai keanggotaan / derajat keanggotaan / memb ersh ip function mjd ciri utama
dalam penalaran dengan logika fuzzy tsb (Kusuma Dewi, 2003).

Logika fuzzy dapat dianggap sbg kotak hitam yg berhubungan antara ruang input menuju ruang output (Kusuma Dewi, 2003). Kotak hitam tsb
berisi cara / metode yg dapat digunakan untuk mengolah data input mjd output dalam bentuk informas i yg baik.

Alasan Digunakannya Logika Fuzzy
Adapun bbrp alasan dipakainya logika fuzzy (Kusuma Dewi, 2003), adalah:
1.) Konsep logika fuzzy mudah dimengert i. krn logika fuzzy memakai dasar teori himpunan , maka konsep matemat is yg mendasari penalaran
fuzzy tsb cukup mudah untuk dimengerti.
2.) Logika fuzzy sangat fleksisbel, artinya dapat beradaptasi dengan perubahan -p eru bahan, & ketidakpast ian yg menyertai permasalahan.
3.) Logika fuzzy memiliki toleransi terhadap data yg cukup homogeny,
& kemud ian ada bbrp data “eksklusif”, maka logika fuzzy memiliki kedapatan untuk menangani data eksklusif tersebut.
4.) Logika fuzzy dapat membang un & mengaplikas ikan pengalaman-p en galaman para pakar scr langsung tanpa harus melalu i proses
pelatihan . Dalam hal ini, sering dikenal dengan istilah fuzzy expert sistem mjd bagian terpenting.
5.) Logika fuzzy dapat bekerjasama dengan teknik-t ekn ik kendali scr konvensional. Hal ini umumn ya terjadi pd aplikasi di bidang teknik
mesin maupu teknik elektro.

6.) Logika fuzzy didasari pd bahasa alami. Logika fuzzy memakai bahasa sehari-hari sehingga mudah dimengerti.

Himpunan Fuzzy
Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpu nan A, yg sering ditulis dengan (X), memiliki dua

kemung kinan, yaitu:
Satu (1), yg berarti bahwa suatu item mjd anggota dalam suatu himpunan, atau
Nol (0), yg berarti bahwa suatu item tidak mjd anggota dalam suatu himpunan.
Contoh:

Misalkan variabel umur dibagi mjd tiga kategori, yaitu:

MUDA
umur < 35 tahun
PAROBAYA
35 ≤ umur ≤ 55 tahun
TUA
umur > 55 tahun
Dari kategori diatas dapat dijelas kan bahwa:
Apabila seseorang berusia 34 tahun, maka ia dikatakan MUDA ( (34)=1) Apabila seseorang berusia 35 tahun, maka ia dikatakan TIDAK MUDA

( (35)=0)
Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan
TIDAK MUDA ( (35-1 hari)=1)
Apabila seseorang berusia 35 tahun, maka ia dikatakan PAROBAYA ( (34)=1)
Apabila seseorang berusia 34 tahun, maka ia dikatakan TIDAK PAROBAYA ( (34)=0)
Apabila seseorang berusia 55 tahun, maka ia dikatakan PAROBAYA ( (55)=1)
Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan
TIDAK PAROBAYA ( (35-1 hari)=0)

Dari sini dapat dikatakan bahwa pemakaian himpunan crisp untuk menyatakan umur sangat tidak adil. Adanya perubahan kecil saja pd suatu
nilai mengakibat kan perbedaan kategori yg cukup signifikan.

Himpun an fuzzy digunakan untuk mengantis ip asi hal tersebut. Seseorang dapat masuk dalam dua himpunan yg berbeda, MUDA &
PAROBAYA, PAROBAYA & TUA, & sebagainya. Seberapa besar eksistensinya dalam himpunan tsb dapat dilihat pd nilai keanggotaanya.
Gambar berikut menunjukkan himpunan fuzzy untuk variabel umur.

Contoh Program Logika Fuzzy

Pada gambar diatas, dapat dilihat bahwa:


1.) Seseorang yg berumur 40 tahun, termasu k dalam himpunan MUDA dengan ( (40) = 0,25); namun dia juga termasuk dalam himpunan
PAROBAYA ( (40) = 0,5).
2.) Seseorang yg berumur 50 tahun, termasu k dalam himpunan TUA dengan ( (50) = 0,25); namun dia juga termasuk dalam himpunan
PAROBAYA ( (50)=0,5).

Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas menimbu lkan kerancuan. Keduanya memiliki nilai interval [0,1], namun
interpretas i nilainya sangat berbeda antara kedua kasus tersebut. Keanggotaan fuzzy memb erikan suatu ukuran terhadap pendapat /
keputusan, sedangkan probabilitas mengindikas ikan proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang. Misalnya,
jika nilai keanggotaan bernilai suatu himpunan fuzzy USIA adalah 0,9; maka tidak perlu dipermasalah kan berapa seringnya nilai itu diulang
scr individual untuk mengharap kan suatu hasil yg hampir pasti muda.
Dilain pihak, nilai probilitas 0,9 usia berarti 10% dari himpunan tsb diharapkan tidak muda (Kusuma Dewi, 2003).

Himpunan Fuzzy memiliki 2 atribut (Kusuma Dewi,
2003), yaitu:
1.) Linguistik, yaitu penamaan suatu grup yg mewakili suatu keadaan / kondisi tertentu dengan memakai bahasa alami, speerti: MUDA,
PAROBAYA, TUA.

2.) Numeris, yaitu suatu nilai (angka) yg menunjukkan ukuran dari suatu variabel seperti: 40, 25, 50, dsb.

Ada bbrp hal yg perlu diketahui dalam memahami sistem fuzzy (Kusuma

Dewi, 2003), yaitu:

1.) Variabel fuzzy yaitu variabel yg hendak dibahas dalam suatu sistem fuzzy. Contohnya: umur, temperatu re, permintaan, dsb.

2.) Himpun an fuzzy yaitu suatu grup yg mewakili suatu kondisi / keadaan tertentu dalam suatu variabel fuzzy. Contohnya: variabel
temperat u r, terbagi mjd 5 himpuan fuzzy, yaitu: DINGIN, SEJUK, NORMAL, HANGAT, & PANAS.

3.) Semesta Pembicaraan yaitu keseluruhan nilai yg diperoleh untuk dioperasikan dalam suatu variabel fuzzy, semesta pembicaraan
merupakan himpunan bilangan real yg senantiasa naik (bertambah ) scr monoton dari kiri kekanan. Nilai semesta pembicaraan dapat berupa
bilangan positif maupun negatif. Adakalanya nilai

semesta pembicaraan ini tidak dibatasi batas atasnya. Contohnya semesta pembicaraan

untuk variabel umur: [0 +∞].

Domain Himpunan Fuzzy yaitu keseluruhan nilai yg diijinkan & boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya semesta
pembicaraan, domain merupakan himpunan bilangan real yg senantiasa naik (bertambah ) scr monoton dari kiri ke kanan. Nilai domain dapat
berupa bilangan positif maupun negatif. Contoh domain himpuanan fuzzy: DINGIN = [0,20], SEJUK = [15,20], NORMAL = [20,30], HANGAT =
[25,35] & PANAS = [30,40].


Contoh Program Logika Fuzzy Metode Tsukamoto
Contoh Program Logika Fuzzy Metode Tsukamoto dengan Visual Studio
2012, saya akan membag ikan contoh program kendali logika fuzzy / Fuzzy Logic Controll dengan memakai metode Tsukamoto.

Penjelasan Program:
dengan memakai prinsip fuzzy logic controll metode Tsukamoto, program ini bertujuan mencari daya motor berdasarkan dua masukan, yaitu

jumlah orang & berat barang bawaan.

program ini dibuat dengan memakai software Microsoft Visual Studio
2012 Ultimate dengan bahasa C# (baca : C Sharp)

Contoh Program Logika Fuzzy

Rule Base
1. IF Barang Bawaan RINGAN && Jumlah Orang SEDIKIT THEN Daya Motor BERKURANG
1. IF Barang Bawaan RINGAN && Jumlah Orang BANYAK THEN Daya Motor BERKURANG
1. IF Barang Bawaan BERAT && Jumlah Orang SEDIKIT THEN Daya Motor BERTAMBAH
1. IF Barang Bawaan BERAT && Jumlah Orang BANYAK THEN Daya Motor BERTAMBAH


Algoritma program:
1. Start
2. Masukkan batas bawah &/ batas atas masing2 himpunan (Ringan, Berat, Sedikit, Banyak, Berkurang, Bertamb ah)
3. masukkan input >> berat barang bawaan (input X) & jumlah orang
(input Y)
4. hitung derajat keanggotaan untuk masing 2 himpunan masukan
(uRingan, uBerat, uSedikit, uBanyak)
5. hitung a-predikat 1-4 dengan memakai fungsi MIN
6. hitung z1-z4
7. hitung rerata terbobot (Z) >> hasil akhir

source code program:

namespace p rogram1
{
public part ial cla ss Form1 : For m
{
public Form 1()
{
InitializeC omponen t();

}
private voi d hitun g_Click( object s ender, EventAr gs e)
{
double inpu t, BB, BA;
double uRin gan, uB erat;
{
input = dou ble.Pars e(inputX .Text);
BB = double. Parse(R ingan.Te xt);
BA = double. Parse(B erat.Tex t);
uRingan = rumus.t urun(BB, BA, i nput);
uBerat = r umus.na ik(BB, BA, inp ut);
textBox1.Te xt = u Ringan.T oString ();
textBox2.Te xt = u Berat.To String( );
}
double uSed ikit, u Banyak;
{
input = dou ble.Pars e(inputY .Text);
BB = double. Parse(s edikit.T ext);
BA = double. Parse(b anyak.Te xt);
uSedikit = rumus. turun(BB , BA, input);


uBanyak = rumus.n aik(BB, BA, in put);
textBox3.Te xt = u Sedikit. ToStrin g();
textBox4.Te xt = u Banyak.T oString ();
}
double kura ng, tam bah;
kurang = do uble.Par se(berku rang.Te xt);
tambah = do uble.Par se(berta mbah.Te xt);
double p1, p2, p3 , p4, z 1, z2, z3, z4 , z;
p1 = Math. Min(uRi ngan, u Banyak);
z1 = tamba h ‐ (( tambah ‐ kuran g) * p1 );
z_1.Text = z1.ToS tring();
p2 = Math. Min(uRi ngan, u Sedikit) ;
z2 = tamba h ‐ (( tambah ‐ kuran g) * p2 );
z_2.Text = z2.ToS tring();
p3 = Math. Min(uBe rat, uB anyak);
z3 = ((tam bah ‐ kurang) * p3) + kuran g;
z_3.Text = z3.ToS tring();
p4 = Math. Min(uBe rat, uS edikit);
z4 = ((tam bah ‐ kurang) * p4) + kuran g;

z_4.Text = z4.ToS tring();
z = ((p1 * z1) + (p2 * z2) + (p3 * z3) + (p4 * z4)) / (p1 + p2 + p3
hasil.Text = z.To String() ;
}
private voi d clear _Click(o bject se nder, E ventArg s e)
{
Ringan.Clea r();Ber at.Clear ();inpu tX.Clear ();
textBox1.Cl ear();t extBox2. Clear() ;
sedikit.Cle ar();ba nyak.Cle ar();in putY.Cle ar();
textBox3.Cl ear();t extBox4. Clear() ;
berkurang.C lear(); bertam bah.Clea r();
z_1.Clear() ; z_2.C lear(); z_3.Cl ear(); z_4.Clea r(); h asil.Cle ar();
}
private voi d Reset Input_Cl ick_1(ob ject sen der, E ventArgs e)
{
inputX.Clea r(); in putY.Cl ear();
}
}
}
public part ial cla ss rumus

{
//BB:Batas Bawah , BA:Ba tas Ata s
public stat ic doub le turun (double BB, dou ble BA, double input)
{
double u;
if (input = BA) { u = 0; }
else { u = (BA ‐ input) / (BA ‐ BB); }
return u;
}
public stat ic doub le naik( double B B, doub le BA, double i nput)
{
double u;
if (input = BA) { u = 1; }
else { u = (input ‐ BB) / (BA ‐ BB); }

return u;
}
}