Pages - Menu

Tuesday, September 27, 2016

Fuzzy Logic - Tugas Softskill 1


LOGIKA FUZZY
PENGERTIAN
Fuzzy mungkin merupakan suatu kata yang agak asing bagi kita. Dalam terjemahan menurut kosa katanya fuzzy berari kabur. Logika berarti penalaran. Jika digabungkan menjadi satu kalimat berarti Penalaran Yang Kabur. Benarkah demikian? Mengapa penalaran yang kabur justru perlu untuk dipelajari?

Logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input ke dalam suatu ruang output. Skema logika fuzzy adalah sebagai berikut:


Pada gambar dapat diketahui bahwa antara input dan output terdapat sebuah kotak hitam yang sesuai. Berikut ini adalah beberapa contoh konsep logika fuzzy yang dapat diterapkan dalam berbagai kasus:
·         Manajer pergudangan mengatakan pada manajer produksi seberapa banyak persediaan barang pada akhir minggu ini, kemudian manajer produksi akan menetapkan jumlah barang yang harus diproduksi esok hari
·         Pelayan restoran memberikan pelayanan terhadap tamu, kemudian tamu akan memberikan tip yang sesuai atas baik tidaknya pelayanan yang diberikan
·         Penumpang taksi berkata pada sopir taksi seberapa cepat laju kendaraan yang diinginkan, sopir taksi akan mengatur pijakan gas taksinya

Ada beberapa cara atau metode yang mampu bekerja di kotak hitam tersebut, seperti sistem fuzzy, jaringan syaraf tiruan, sistem linier, sistem pakar, persamaan diferensial, dan sebagainya. Namun menurut Prof. Lotfi A. Zadeh seorang profesor dari Universitas California, Berkeley, yang adalah penemu Logika fuzzy pada tahun 1960-an menyatakan bahwa setiap kasus dapat saja diselesaikan tanpa menggunakan logika fuzzy, tetapi pemanfaatan logika fuzzy akan mempercepat dan mempermudah hasil dalam setiap kasus. Berikut adalah gambar dari Prof. Lotfi A. Zadeh.




PEMANFAATAN LOGIKA FUZZY
Mengapa kita perlu menggunakan logika fuzzy? Berikut ini adalah beberapa alasan mengapa logika fuzzy banyak digunakan saat ini diberbagai kasus. Alasan pemanfaatan logika fuzzy adalah sudah menjadi sifatnya yang kuat selama tidak membutuhkan ketepatan, input yang bebas derau, dan dapat diprogram untuk gagal dengan aman jika sensor arus balik dimatikan atau rusak. Control output adalah fungsi control halus meskipun jarak variasi input yang cukup besar. 

Selama fuzzy logic controller memproses aturan – aturan yang dibuat user yang memerintah system control target, ia dapat dimodifikasi dengan mudah untuk meningkatkan atau mengubah secara drastis performa system. Sensor yang baru dapat dengan mudah digabungkan kedalam system secara sederhana dengan menghasilkan aturan memerintah yang sesuai. 

Fuzzy logic tidak terbatas pada sedikit masukan umpan-balik dan satu atau dua output control, tidak juga penting untuk menilai atau menghitung parameter rata - rata perubahan dengan tujuan agar ia diimplementasikan. Sensor data yang menyediakan beberapa indikasi untuk aksi dan reaksi system sudah cukup. Hal ini memungkinkan sensor menjadi murah dan tidak tepat sehingga menghemat biaya system keseluruhan dan kompleksitas rendah. 

Karena operasi – operasi yang berbasiskan aturan, jumlah input yang masuk akal dapat diproses ( 1 sampai 8 atau lebih ) dan banyak output ( 1 sampai 4 atau lebih ) dihasilkan, walaupun pendefinisian rulebase secara cepat menjadi rumit jika terlalu banyak input dan output dipilih untuk implementasi tunggal selama pendefinisian rules(aturan), hubungan timbal baliknya juga harus didefinisikan. Akan lebih baik jika memecah system kedalam potongan – potongan yang lebih kecil dan menggunakan fuzzy logic controllers yang lebih kecil untuk didistribusikan pada system, masing – masing dengan tanggung jawab yang lebih terbatas. Fuzzy Logic dapat mengontrol system nonlinier yang akan sulit atau tidak mungkin untuk dimodelkan secara matematis. Hal ini membuka pintu bagi system control yang secara normal dianggap tidak mungkin untuk otomatisasi.

Konsep logika fuzzy mudah dimengerti.
Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti
Logika fuzzy sangat fleksibel
Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat
Logika fuzzy dapat bekerja sama dengan teknik-teknik kendali secara konvensional
Logika fuzzy didasarkan pada bahasa alamiah

Sedangkan karakteristik utama dari fuzzy logic yang ditemukan oleh Prof. Lotfi A. Zadeh adalah sebagai berikut:
·         Dalam fuzzy logic, penalaran tepat dipandang sebagai suatu kasus terbatas dari penalaran kira –kira.
·         Dalam fuzzy logic segala sesuatunya adalah masalah derajat.
·         System logis manapun dapat difuzzifikasi.Dalam fuzzy logic, pengetahuan diinterpretasikan sebagai koleksi dari fuzzy yang dipaksakan pada sekumpulan variable.
·         Kesimpulan dipandang sebagai sebuah proses dari perkembangan pembatas elastis.

BAGAIMANA LOGIKA FUZZY DIGUNAKAN
Adapun langkah – langkah penggunaan fuzzy logic adalah sebagai berikut:

a. Definisikan obyektif dan criteria control:
1) Apa yang kita coba control ?
2) Apa yang harus kita lakukan untuk mengontrol system ?
3) Respon seperti apa yang kita butuhkan ?
4) Apa mode kegagalan system yang mungkin ?
b. Tentukan hubungan antara input dan output serta memilih jumlah minimum variable input pada mesin fuzzy logic(secara khusus error dan rata – rata perubahan error)

1) Dengan menggunakan struktur berbasis aturan dari fuzzy logic, jabarkan permasalahan control ke dalam aturan IF X AND Y THEN Z yang mendefinisikan respon output system yang diinginkan untuk kondisi input system yang diberikan. Jumlah dan kompleksitas dari rules bergantung pada jumlah parameter input yang diproses dan jumlah variable fuzzy yang bekerjasama dengan tiap – tiap parameter. Jika mungkin, gunakan setidaknya satu variable dan turunan waktunya. Walaupun mungkin untuk menggunakan sebuah parameter tunggal yang error saat itu juga tanpa mengetahui rata – rata perubahannya, hal ini melumpuhkan kemampuan system untuk meminamalisasi keterlampauan untuk sebuah tingkat input.

2) Buat fungsi keanggotaan yang menjelaskan nilai input atau output yang digunakan didalam rules.

3) Buat rutinitas proses awal dan akhir yang penting jika diimplementasikan dalam software, sebaliknya program rules kedalam mesin hardware fuzzy logic
DASAR-DASAR LOGIKA FUZZY
A. HIMPUNAN TEGAS / CRIPS
Sangat penting sekali bagi kita untuk terlebih dahulu mengetahui apa itu crisp set atau yang dikenal juga dengan conventional set, sebelum kita mengarah pada bagaimana himpunan fuzzy dibuat untuk kekurangan pada crisp set. Dalam kebanyakan jenis pemikiran setiap harinya, dan refleksi bahasa darinya, orang – orang menggunakan crisp set untuk mengelompokan sesuatu. Menjadi anggota dari crisp set adalah seluruhnya berhubungan atau tidak sama sekali. Seorang wanita dikatakan hamil ataupun tidak, ia tidak pernah “hamil sebagian” atau “sedikit hamil”.

Berpikir dengan crisp set menjadikan segala sesuatunya lebih sederhana, karena sesuatu bisa merupakan anggota dari suatu crisp set atau tidak. Crisp set dapat digunakan untuk merepresentasikan gambaran pengertian hitam dan putih. Seringkali juga, saat sesuatu itu merupakan anggota dari sebuah crisp set maka ia kemudian (pada waktu yang sama) bukan merupakan anggota dari crisp set manapun. Kembali hal ini menyederhanakan penggunaan logika dengan proses pemikiran semacam ini. Konstruksi linguistik yang menggambarkan jenis pemikiran ini dapat benar – benar berguna, terutama saat kategori crisp digunakan. Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan µA[x], memiliki 2 kemungkinan, yaitu (Kusumadewi, 2004 : p3) :
Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau
Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.

MACAM MACAM LOGIKA FUZZY
1.    Logical Connection dan Implication
P adalah suatu fuzzy logic proposition, yaitu suatu pernyataan mengenai suatu konsep yang batasannya tidak terdefinisi dengan jelas. Dalam fuzzy Logical connectives dan implication logic, nilai kebenaran yang dapat diberikan kepada P adalah nilai – nilai yang berada dalam interval [ 0,1 ]. Nilai 0 menyatakan bahwa P adalah salah dan nilai 1 menyatakan bahwa P  adalah benar. Pemberian nilai kebenaran untuk P dituliskan sebagai:
                   T : P →  [ 0,1 ]

Di mana T adalah fungsi kebenaran yang memetakan P ke suatu nilai dalam interval [ 0,1 ]. Selanjutnya, 3 buah logical connectives  dapat didefinisikan sebagai berikut:
                   Negation T(-P) = 1 – T(P)
                   Disjunction T(P ˅ Q) = max{T(P), T(Q)}
                   Conjunction T(P ˄ Q) = min{T(P), T(Q)}

Sedangkan untuk implication, terdapat banyak definisi yang bisa digunakan bergantung pada penerjemahan semantiknya atau pada konteks penggunaannya. Pada first-order logic, implication didefinisikan sebagai berikut:
                   P => Q ≡ -P ˅ Q

Jika kita mengkonversi implication tersebut ke dalam fuzzy logic, sebagai berikut:
                   T(P => Q) = max{1 – T(P), T(Q)}

2.    Approximate Reasoning
Sebagian besar penalaran yang dilakukan manusia bersifat perkiraan (approximate) dan hanya sedikit manusia yang berfikir secara pasti dalam hal – hal yang bersifat kuantitatif dan logis. Ketika dua orang sedang melakukan percakapan, terdapat banyak kalimat yang mengandung kata – kata yang tidak pasti. Contohnya:
       A : ‘Apakah dia anak pintar?’
       B : ‘Sepertinya begitu.
       A : ‘Apakah indeks Prestasi dan hasil tes psikologinya bagus?’
       B : ‘Ya, keduanya sangat bagus.
       A : ‘Apakah dia layak mendapatkan beasiswa?’
       B : ‘Ya, sepertinya itu adalah keputusan yang baik.

Pada dialog diatas, kedua orang tersebut sedang melakukan penalaran yang bersifat perkiraan atau approximate reasoning, yaitu reasoning terhadap proposisi yang tidak pasti. Contoh approximate reasoning adalah sebagai berikut:
       P1 : Sebagian besar anak kecil suka permen
       P2 : Andi adalah anak kecil


 
       P3 : Sepertinya Andi suka permen

3.    Sistem Berbasis Aturan Fuzzy
Variabel linguistik
Adalah suatu interval numerik dan mempunyai nilai – nilai linguistik, yang semantiknya didefinisikan oleh fungsi keanggotaannya. Misalnya, Suhu adalah suatu variabel linguistik yang bisa didefinisikan pada interval. Variabel tersebut bisa memiliki nilai – nilai linguistik seperti ‘Dingin’, ‘Hangat’, ‘Panas’ yang semantiknya didefinisikan oleh fungsi – fungsi keanggotaan tertentu.

Suatu sistem berbasis aturan fuzzy yang lengkap terdiri dari 3 komponen utama:
1.      Fuzzification , mengubah masukan – masukan yang nilai kebenarannya bersifat pasti (crisp input) ke dalam bentuk fuzzy input, yang berupa nilai linguistik yang semantiknya ditentukan berdasarkan fungsi keanggotaan tertentu.
2.      Inference , melakukan penalaran menggunakan fuzzy input dan fuzzy rules yang telah ditentukan sehingga menghasilkan fuzzy output.
3.      Defuzzification , mengubah fuzzy output menjadi crisp value berdasarkan fungsi keanggotaan yang telah ditentukan.



 
1.      CONTOH PENERAPAN FUZZY LOGIC :

·      Penerapan Logika Fuzzy Pada Penilaian Mutu Teh Hitam Oorthodox

    Masalah yang dihadapi : Bagaimana menentukan mutu teh hitam tanpa menggunakan tester dan ketidakpastian batas antara satu kriteria dengan kriteria lainnya?
    Tujuan Penelitian : Membuat model penilaian mutu teh dengan menggunakan program komputer berbasis logika fuzzy.
    Manfaat Penelitian : Diharapkan dapat bermanfaat dalam menentukan mutu teh hitam yang baik.
    Pengguna Aplikasi dan Sistem pakarnya adalah Konsumen Teh Hitam dan Dra. ThongTjie
    Menentukan himpunan fuzzy

Contoh Penerapan Fuzzy Logic - Metode Mamdani menggunakan Matlab

 

Bagi anda yang mempelajari tentang Artificial Intelligence pada pokok bahasan Fuzzy Logic, ada tiga metode yang sering digunakan dalam menyelesaikan masalah dengan menggunakan konsep fuzzy logic, yaitu: (1) Metode Tsukamoto; (2) Metode Mamdani; (3) Metode Sugeno. Pada kesempatan ini, saya akan menerapkan metode Mamdani untuk menyelesaikan sebuah contoh masalah sederhana menggunakan aplikasi Matlab. Metode Mamdani adalah metode yang lebih mudah digunakan dari kedua pada metode lainnya. Sebagaimana kita ketahui bahwa Matlab menyediakan metode ini (Mamdani) pada toolbox fuzzy, namun saya akan mencobanya dengan koding.

Prosedur Fuzzy Logic:

1.      Fuzzifikasi;
2.      Pembentukan Rule
3.      Mesin Inferensi
4.      Defuzzifikasi

Contoh Kasus

Perhatikan komentar pada script berikut ini:
a = newfis('MAMDANI IDEAL BADAN');

%Tinggi Badan (Input 1)
a = addvar(a,'input','Tinggi Badan',[0 200]);
a = addmf(a,'input',1,'Pendek','trapmf',[0 0 100 140]);
a = addmf(a,'input',1,'Sedang','trimf',[125 150 175]);
a = addmf(a,'input',1,'Tinggi','trimf',[160 200 200]);

%Berat Badan (Input 2)
a = addvar(a,'input','Berat Badan',[0 100]);
a = addmf(a,'input',2,'Ringan','gaussmf',[15 0]);
a = addmf(a,'input',2,'Normal','gaussmf',[15 50]);
a = addmf(a,'input',2,'Berat','gaussmf',[15 100]);

%Ideal Badan (Output 1)
a = addvar(a,'output','Ideal Badan',[0 10]);
a = addmf(a,'output',1,'Sedikit','trimf',[0 1.5 3]);
a = addmf(a,'output',1,'Sedang','trimf',[3 5 7]);
a = addmf(a,'output',1,'Banyak','trimf',[7 8.5 10]);

% Rule #1 : IF TinggiBadan is Tinggi AND BeratBadan is Ringan THEN IdealBadan is Kurus
%      #2 : IF TinggiBadan is Tinggi AND BeratBadan is Normal THEN IdealBadan is Kurus
%      #3 : IF TinggiBadan is Sedang AND BeratBadan is Ringan THEN IdealBadan is Kurus
%      #4 : IF TinggiBadan is Pendek AND BeratBadan is Ringan THEN IdealBadan is Ideal
%      #5 : IF TinggiBadan is Sedang AND BeratBadan is Normal THEN IdealBadan is Ideal
%      #6 : IF TinggiBadan is Tinggi AND BeratBadan is Berat THEN IdealBadan is Ideal
%      #7 : IF TinggiBadan is Pendek AND BeratBadan is Berat THEN IdealBadan is Gemuk
     #8 : IF TinggiBadan is Pendek AND BeratBadan is Normal THEN IdealBadan is Gemuk
%      #9 : IF TinggiBadan is Sedang AND BeratBadan is Berat THEN IdealBadan is Gemuk

% masing-masing kolom adl input1|input2|output1|weight|OR=2; AND=1
ruleList=[...
    3 1 1 1 1
    3 2 1 1 1
    2 1 1 1 1
    1 1 2 1 1
    2 2 2 1 1
    3 3 2 1 1
    1 3 3 1 1
    1 2 3 1 1
    2 3 3 1 1];
a = addrule(a,ruleList);

out = evalfis([165 55],a); % 165 = Tinggi Badan; 55 = Berat Badan

writefis(a,'Mamdani_UseCoding_gaussmf'); % Simpan ke File dng nama "Mamdani_UserCoding.fis"

% fismat = readfis('BuildManualFuzzy'); %Membaca file --> getfis(fismat); %Membaca file

Untuk menjalankan file ini pada toolbox Fuzzy, silahkan ketik: fuzzy('namaFile'); pada Commmad Window Matlab lalu tampilkanlah outputnya dengan memilih menu View - Rules atau Surface pada tollbox fuzzy (Fis Editor).















Sumber :
Suyanto, ST, MSc. (2011). Artificial Intelligence Searching, Reasoning, Planning dan Learning. Bandung: Informatika.
http://pustaka.unpad.ac.id/wp-content/uploads/2010/07/dasar_dasar_fuzzy_logic.pdf
perkuliahan sistem fuzzy STMIK WP
http://joinsucess.blogspot.co.id/2011/05/pengertian-dan-dasar-logika-fuzzy.html
Jannus Maurits Nainggolan, “Logika Fuzzy (Fuzzy Logic) : Teori dan Penerapan Pada Sistem Daya (Kajian Pengaruh Induksi Medan Magnet)” 


KESIMPULAN

Fuzzy logic didefinisikan sebagai suatu jenis logic yang bernilai ganda dan berhubungan dengan ketidakpastian dan kebenaran parsial. Pemanfaatan logika fuzzy adalah pada operasi-operasi yang dapat fungsi control halus meskipun jarak variasi input yang cukup besar. Langkah – langkah penggunaan fuzzy logic, antara lain; definisikan obyektif dan criteria control, tentukan hubungan antara input dan output serta memilih jumlah minimum variable input pada mesin fuzzy logic(secara khusus error dan rata – rata perubahan error). Dasar yang digunakan dalam fuzzy logic yaitu himpunan tegas atau crips dengam membandingkan suatu variabel dengan variabel lainnya. Terdapat beberapa macam logika fuzzy yaitu Logical Connection dan Implication dan Approximate Reasoning, Sistem Berbasis Aturan Fuzzy. Dengan input, proses dan output logika fuzzy tersebut maka pemanfaatan Fuzzy Logic dalam teknologi informasi akan lebih maksimal sesuai dengan kebutuhan setiap pengguna.

















 




















No comments:

Post a Comment