Fuzzy logic 1 PENDAHULUAN 1.1 Sejarah Fuzzy Logic Logika yang hanya berdasarkan atas 2 nilai kebenaran yaitu TRUE (1) dan FALSE (0) kadang-kadang dirasakan kurang lengkap untuk menyatakan logika berpikir manusia. Sehingga dikembangkan logika yang tidak hanya bernilai 0 atau 1 tapi menggunakan logika yang punya interval nilai antara [0,1] yang disebut dengan logika samar (Fuzzy logic). Fuzzy Logic (FL) diperkenalkan pada tahun 1965 oleh Lotfi A. Zadeh, seorang Profesor di bidang ilmu komputer, Universitas California, Berkeley. FL dipakai untuk menyatakan data atau informasi yang bersifat tidak pasti atau samar. Tapi sebenarnya sejarah FL dimulai jauh sebelumnya yaitu ketika jaman Yunani Kuno. Aristotle dan beberapa filsuf lainnya, dalam rangka menemukan teori logika dia mengemukakan hukum-hukum yang disebut “Laws of Thought”. Salah satu diantaranya adalah “Law of excluded Middle” yang menyatakan bahwa setiap pernyataan (propotition) harus bernilai TRUE (T) atau FALSE (F). Bahkan ketika Parminedes mengusulkan versi pertama dari hukum tersebut (400 BC) langsung mendapat pertentangan dari Heraclitus yang menyatakan bahwa setiap pernyataan hanya bernilai TRUE dan NOT TRUE. Pada saat itu Plato yang meletakkan pondasi bagi Fuzzy Logic, menyatakan bahwa ada daerah ketiga (selain TRUE dan FALSE). Salah satu pernyataan alternatif yang berbeda dengan logika dengan 2 nilai kebenaran (Aristotle) pertama kali dikemukakan oleh Lucasiewicz (1920). Dia mengemukan logika dengan 3 nilai kebenararan beserta dengan penjelasan matematiknya. Nilai ke-3 dia sebut dengan istilah “mungkin” (possible). Dan diberikan nilai numerik yaitu antara TRUE (1) dan FALSE (0). Selanjutnya Lucasiewicz mengemukakan tentang logika dengan 4 nilai kebenaran, 5 nilai kebenaran, dan kemudian menyatakan bahwa logika memiliki nilai tak berhingga (infinite). Logika dengan 3 nilai dan logika dengan nilai tak berhingga yang paling menarik. Tapi selanjutnya dia lebih memilih logika dengan 4 nilai kebenaran karena paling mudah disesuaikan dengan logika Aristotle ( 2 nilai kebenaran). Juga perlu dicatat Knuth, juga menyatakan logika dengan 3 nilai kebenaran hampir sama seperti Lucasiewicz. Knuth berspekulasi bahwa matematik akan menjadi lebih nyaman jika dibandingkan secara tradisional dengan hanya 2 nilai kebenaran. Ide dari logika dengan nilai tak berhingga sudah diperkenalkan oleh Lotfi A. Zadeh dalam tulisannya yang berjudul tentang “ Fuzzy sets” (himpunan fuzzy) disertai © Avid-06 1 Fuzzy logic dengan penjelasan matematik teori Himpunan Fuzzy dan juga tentang Logika Fuzzy. Dalam teori ini juga dijelaskan tentang pembentukan Fungsi Keaggotaan (membership function) yang beroperasi pada range nilai antara [0,1]. Disamping itu juga diusulkan tentang operasi – operasi matematika logika yang pada prinsipnya merupakan pengembangan dari logika klasik. Fuzzy logic sudah memberikan perubahan dalam pengambilan keputusan dimana kemampuan berpikir manusia yang tidak pasti dapat dipakai dalam sistem berbasis pengetahuan. Teori FL sudah menyediakan teori matematika untuk menampung ketidakpastian proses berpikir manusia. Beberapa ciri dari FL (Zadeh, 1992) adalah : - Dalam FL, logika pasti (exact) dianggap sebagai kasus terbatas dari logika tidak pasti (approximate) - Dalam FL, segala sesuatu (pernyataan) ditentukan berdasarkan tingkatan (degree) - Dalam FL, pengetahuan merupakan kumpulan dari batasan-batasan yang elastis atau tidak pasti (fuzzy) - Pengambilan keputusan adalah proses peralihan dari batasan-batasan elastis atau tidak pasti - Semua sistem logika dapat dibuat menjadi samar (fuzzy) Ada 2 ciri utama dari Sistem Fuzzy sehingga sistem ini dapat diterapkan dengan baik pada beberapa aplikasi tertentu : - Sistem fuzzy sangat cocok untuk logika berfikir yang tidak pasti, khususnya untuk sistem yang sulit dimodelkan secara matematika. - FL membolehkan pengambilan keputusan dengan nilai perkiraan atau berdasarkan informasi yang tidak lengkap atau tidak pasti. 1.2 Aplikasi Fuzzy Logic dalam industri Beberapa aplikasi dari Fuzzy logic dalam bidang industri sudah dapat kita rasakan manfaatnya. Misalnya dalam sistem kontrol suhu pada Air Conditioner (AC). Pada sistem ini, sistem Fuzzy secara otomatis akan mengatur aliran udara menurut keadaan temperatur udara di sekitarnya. Sehingga temperatur ruangan akan selalu berada pada keadaan stabil berdasarkan keinginan. Televisi cerdas (smart TV), sistem fuzzy berfungsi untuk mengatur kontras dan warna pada TV sehingga tetap berada pada mode tertentu untuk setiap frame baru (channel baru). Mesin cuci cerdas (Smart Washing Machine), sistem fuzzy akan mengatur pemberian detergen ke dalam mesin cuci. Semakin kotor cucian maka semakin banyak detergen yang perlu ditambahkan. Demikian sebaliknya. Disamping itu sistem Fuzzy juga dapat dipakai sebagai sistem kontrol pada pabrik semen. © Avid-06 2 Fuzzy logic Dalam hal ini sistem kontrol Fuzzy dipakai untuk mengatur pemasukan campuran semen sehingga alirannya menjadi konstan. Dari beberapa aplikasi diatas semua sistem berjalan secara otomatis hanya dengan menekan sebuah tombol. Sangat hebat dan ajaib. Bagaimana hal ini terjadi? Bagaimana rumitnya perhitungan matematika di dalamnya? © Avid-06 3 Fuzzy logic 2 HIMPUNAN FUZZY Himpunan Fuzzy (Fuzzy Set) adalah pengembangan lebih jauh dari konsep matematika tentang himpunan. Awalnya himpunan ditemukan oleh ahli matematika Jerman yang bernama George Cantor (1845 – 1918). Teori himpunan yang dikemukakan oleh Cantor banyak mengalami hambatan semasa hidupnya, tapi pada saat ini hampir semua ahli matematika percaya bahwa sangat mungkin untuk menyatakan hampir semua masalah matematik ke dalam teori himpunan. Banyak peneliti sedang mencari konsekuensi dari mem-Fuzzy-kan teori himpunan klasik (Cantor). Sebagai akibatnya adalah banyak buku-buku yang dihasilkan yang membahas tentang Himpunan Fuzzy. Dalam kontrol fuzzy, pengetahuan tentang logika Fuzzy dan Relasi Fuzzy sangat penting untuk memahami bagaimana aturan-aturan Fuzzy (Fuzzy Rules) bekerja. Himpunan (konvensional) Himpunan adalah kumpulan dari obyek-obyek yang dapat diperlakukan sebagai satu kesatuan. Cantor menyatakan himpunan dengan anggota-anggotanya, sehingga suatu item dari suatu Semesta (Universe) dapat merupakan anggota atau bukan dari suatu himpunan. Contoh 1 : Berikut ini adalah kumpulan dari obyek yang didefinisikan dengan jelas sehingga disebut dengan Himpunan : (a) Himpunan bilangan bulat positif yang lebih kecil dari 4. Ini adalah contoh himpunan berhingga dengan 4 anggota yaitu : 0, 1, 2, dan 3. (b) Himpunan dinosaurus yang hidup pada basement Museum di Inggris. Himpunan ini tidak punya anggota dan disebut himpunan kosong (empty set) (c) Himpunan bilangan real yang lebih besar dari 10. Himpunan ini mempunyai jumlah anggota tak berhingga. Suatu himpunan dapat ditentukan dengan anggota-anggotanya. Anggota ini menunjukkan ciri himpunan secara keseluruhan. Daftar anggota himpunan A = {0,1,2,3} menunjukkan sebuah himpunan berhingga. Tak seorangpun dapat mendaftar semua elemen dari himpunan tak berhingga. Sebagai gantinya kita harus menyatakan beberapa property yang menyatakan ciri elemen dari himpunan tersebut misalnya dengan memakai predikat : x > 10. Jadi elemen dari himpunan tersebut adalah elemen yang memenuhi predikat yang ditentukan. Jadi ada 2 cara untuk menyatakan himpunan yaitu : secara eksplisit dengan daftar atau secara implisit dengan predikat. © Avid-06 4 Fuzzy logic Himpunan Fuzzy (Fuzzy Set) Setelah Zadeh, maka banyak himpunan memiliki lebih dari hanya satu kriteria (apakah anggota atau bukan (either member or not)) untuk menyatakan keanggotaan himpunan. Misalnya himpunan orang ”Muda” (young people). Bayi dengan umur 1 tahun jelas merupakan anggota dari himpunan tersebut. Sedangkan orang dengan umur 100 tahun juga jelas bukan merupakan anggota himpunan itu.Tapi bagaimana dengan orang yang memiliki umur 20, 30, atau 40 tahun? Contoh lainnya misalnya laporan cuaca yang menyatakan : temperatur Tinggi, angin Kencang, dan hari Cerah. Zadeh mengusulkan tingkat keanggotaan sedemikian hingga peralihan dari anggota ke bukan anggota terjadi secara bertahap (gradual). Atau tidak terjadi secara mendadak (abrupt). Dalam gambar (2.1) diperlihatkan keanggotaan dalam himpunan Fuzzy dan Non Fuzzy. Dalam himpunan Fuzzy (garis putus – putus) tingkat keanggotaan beralih secara bertahap dalam interval [0,1]. Sedangkan dalam himpunan Non Fuzzy (garis tebal) tingkat keanggotaan berubah secara mendadak dari 0 langsung menjadi 1. Gambar 2.1 Tingkat Keanggotaan Himpunan Fuzzy dan Non Fuzzy Tingkat keanggotaan untuk setiap anggota atau elemen menggambarkan suatu himpunan Fuzzy. Tingkat keanggotaan suatu item atau elemen biasanya dinyatakan dengan bilangan real antara 0 dan 1, dan sering dilambangkan dengan huruf Yunani µ. Semakin besar nilai µ maka semakin besar tingkat keanggotaan dari elemen tersebut dalam himpunan Fuzzy. Zadeh menganggap himpunan konvensional (Cantor) sebagai kasus khusus dimana elemen-elemen himpunan mempunyai tingkat keanggotaan penuh (full membership) dalam himpunan Fuzzy (atau µ = 1). Namun Zadeh menyebut himpunan konvensional (Cantor) sebagai himpunan non Fuzzy. Atau sekarang disebut dengan Himpunan Tegas (Crisp Set). © Avid-06 5 Fuzzy logic Perlu diingat bahwa Zadeh secara resmi tidak memberikan landasan untuk menentukan tingkat keanggotaan suatu elemen dalam himpunan Fuzzy. Keanggotaan umur 50 tahun dalam himpunan fuzzy ”Muda” tergantung pada pendapat pribadi masingmasing orang. Tingkat keanggotaan adalah bersifat subyektif yang sangat bergantung pada konteks. Seperti diperlihatkan dalam gambar (2.2.a) dan (2.2.b) yang menyatakan himpunan fuzzy “Cepat” pada kecepatan (speed) mobil. Seorang pengemudi bisa saja mendefinisikan “Cepat” seperti gambar (2.2.a.) Tapi pengemudi yang lain mungkin mendefinisikan “Cepat” seperti gambar (2.2.b). (a) (b) cepat cepat Gambar 2.2 Himpunan Fuzzy “Cepat” bersifat subyektif Fungsi Keanggotaan Fuzzy (Fuzzy membership function) berbeda dengan distribusi probabilitas dalam statistik. Perbedaan ini dapat dilihat dalam contoh berikut : Contoh 2 : Andaikan sebuah pernyataan : Joni makan X telur saat sarapan pagi, dimana X U = {1,2,3,...8}. Maka kita dapat menyatakan distribusi probabilitas p dengan mengamati Joni sarapan pagi selama 100 hari. U = {1 2 3 4 5 6 7 8} p = {0.1 0.8 0.1 0 0 0 0 0} Sedangkan himpunan fuzzy menyatakan tingkat keanggotaan dimana Joni makan X telur yang dinyatakan dengan distribusi yaitu : U = {1 2 3 4 = {1 1 1 1 5 6 7 0.8 0.6 0.4 8 } 0.2} Jadi tingkat keanggotaan X = 3 adalah 1, sedangkan probabilitasnya hanya 0.1 Contoh ini menunjukkan bahwa tingkat keanggotaan tidak menunjukkan suatu probabilitas. Kita dapat memandang fungsi keanggotaan sebagai distribusi pribadi (subyektif), yang berbeda dengan distribusi statistik yang berdasarkan pada pengamatan. © Avid-06 6 Fuzzy logic 2.1 Semesta (Universe) Elemen – elemen dari himpunan fuzzy diambil dari Semesta Pembicaraan (Universe of Discourse) atau disingkat Universe (Semesta). Semesta berisi semua elemen yang mungkin. Bahkan Semesta bergantung pada konteks, seperti contoh berikut. Contoh 3 : (a) Himpunan orang ”Muda” bisa terdiri dari semua umur kehidupan manusia di dunia sebagai Semesta. Atau elemen-elemen semesta dapat dinyatakan dengan bilangan antara 0 dan 100. (b) Himpunan x » 10 ( x jauh lebih besar dari 10). Semesta dari himpunan ini adalah semua bilangan positif . Dalam kasus yang berhubungan dengan kuantitas non numerik ( bukan angka), misalnya : rasa (taste), yang tidak dapat diukur dengan skala berupa angka maka kita tidak dapat memakai Semesta yang elemennya berupa angka. Tapi elemen – elemennya dapat diambil dari satuan psikologi. Contoh Semesta untuk mengakomodasi hal seperti itu misalnya adalah : {pahit, manis, asam, asin, pedas,...} 2.2 Fungsi Keanggotaan Setiap elemen dalam Semesta Pembicaraan adalah anggota dari himpunan fuzzy dengan tingkat-tingkat tertentu, bahkan nol. Himpunan elemen-elemen dengan tingkat keanggotaan tidak nol disebut dengan support ( penunjang) dari himpunan Fuzzy. Fungsi yang mengkaitkan suatu bilangan dengan setiap elemen x dalam Semesta disebut sebagai Fungsi Keanggotaan µ(x). Fungsi keanggotaan menentukan tingkat atau derajat keanggotaan dari setiap elemen dalam Semesta Pembicaraan dalam himpunan. Fungsi Keanggotaan memetakan elemen – elemen Semesta pada nilai numerik dalam interval [0,1]. Ada 2 cara untuk menyatakan fungsi keanggotaan himpunan Fuzzy yaitu secara : kontinu dan diskret. Secara kontinu maka fungsi keanggotaan akan berbentuk fungsi matematika. Contoh fungsi keanggotaan yang kontinu misalnya : -kurva berbentuk lonceng ( disebut kurva ) -kurva berbentuk s (disebut kurva s) -kurva berbentuk kebalikan S (disebut kurva z) -kurva berbentuk segitiga -kurva berbentuk trapesium © Avid-06 7 Fuzzy logic Sedangkan secara diskret maka fungsi keanggotaan dan semesta dari himpunan fuzzy akan dinyatakan dengan titik-titik diskret dalam sebuah daftar atau vektor. Contoh 4 (fungsi kontinu) : Fungsi cosinus dapat dipakai untuk membuat bermacam – macam fungsi keanggotaan. Misalnya untuk membuat kurva s dengan fungsi cosinus yaitu : 0 , x xl 1 1 x xr s ( xl , x r , x) cos , xl x x r ..........................................(2.1) x r xl , x x 2 2 r 1 Dimana xl adalah batas kiri dan xr adalah batas kanan. Gambar (2.3) memperlihatkan bentuk kurva s(10,90,x). Dimana x diambil dari 0 sampai 100. Gambar 2.3 Kurva s(10,90,x) Kurva z adalah merupakan kebalikan (inverse) dari kurva s sehingga fungsinya dapat dinyatakan sebagai berikut : 1 , x xl 1 1 x xl z ( xl , x r , x) cos , xl x x r ..........................................(2.2) x r xl , x x 2 2 r 0 Gambar (2.4) memperlihatkan kurva z (10,90,x). Tampak bahwa kurva z merupakan kebalikan dari kurva s (gambar (2.3)) Gambar 2.4 Kurva z(10,90,x) Sementara itu kurva merupakan perpaduan antara kurva s dan kurva z sehingga puncaknya akan mendatar pada interval [x2,x3], seperti dinyatakan fungsi berikut ini : © Avid-06 8 Fuzzy logic ( x1 , x2 , x3 , x4 , x) min( s( x1 , x2 , x), z( x3 , x4 , x)) ........................................ ......(2.3) Gambar (2.5.a) menggambarkan kurva (10,90,100,100,x). Tampak bahwa kurva yang dihasilkan hampir sama dengan kurva s (gambar 2.3). Karena kurva tersebut merupakan perpaduan dari kurva s(10,90,x) dengan kurva z(100,100,x). Dimana range nilai x = [0,100]. (a) (b) Gambar 2.5 (a) Kurva (10,90,100,100,x) dan (b) Kurva (10,40,60,90,x) Sedangkan pada gambar (2.5.b) menggambarkan Kurva (10,40,60,90,x) yang merupakan kombinasi antara kurva s (10,40,x) dengan kurva z (60,90,x). Kurva Segitiga (trianguler) dinyatakan dengan fungsi seperti berikut : x a b a c x t (a, b, c, x) c b 0 ,a x b ,b x c , otherwise Bentuk kurva dari fungsi segitiga adalah seperti diperlihatkan dalam gambar (2.6). Gambar 2.6 Kurva segitiga t(a,b,c,x) Kurva Trapesium (trapezoidal) dinyatakan dengan fungsi seperti berikut : xa b a 1 t (a, b, c, d , x) dx d c 0 © Avid-06 ,a x b ,b x c ,c x d , otherwise 9 Fuzzy logic Bentuk kurva dari fungsi Trapesium diperlihatkan dalam gambar (2.7). Gambar 2.7 Kurva Trapesium t(a,b,c,d,x) Contoh 5 (fungsi Diskret) : Jika kurva (10,90,100,100,x) seperti diperlihatkan gambar (2.5.a) dinyatakan dalam bentuk diskret, dimana semesta u diwakili oleh beberapa nilai misalnya : u = [0 20 40 60 80 100] Dari kurva (gambar 2.3) didapatkan nilai keanggotaan dari elemen – elemen semesta tersebut adalah : (10,90,100,100,u1) = 0 (10,90,100,100,u2) = 0.04 (10,90,100,100,u3) = 0.31 (10,90,100,100,u4) = 0.69 (10,90,100,100,u5) = 0.96 (10,90,100,100,u6) = 1 Atau secara ringkas bisa ditulis : (10,90,100,100,u) = [0 0.04 0.31 0.69 0.96 1] Gambar 2.8 Kurva (10,90,100,100,u) diskret Bentuk kurva diskret dapat dilihat dalam gambar (2.8). Himpunan Fuzzy normal Suatu himpunan fuzzy dikatakan normal jika nilai keanggotaan tertinggi sama dengan 1. Kita dapat menormalisasi himpunan fuzzy dengan jalan membagi tiap – tiap © Avid-06 10 Fuzzy logic nilai keanggotaan dengan nilai keanggotaan tertinggi dalam himpunan tersebut atau bisa ditulis : a / max(a). 2.3 Fuzzy Singleton Suatu himpunan fuzzy A adalah kumpulan dari pasangan berurutan antara x (elemen dalam semesta ) dan nilai keanggotaan µ(x) : A ( x, ( x))........................................................................................(2.4) item x adalah elemen-elemen dalam Semesta dan µ(x) adalah tingkat keanggotaan item x dalam himpunan fuzzy A. Pasangan tunggal ( x, ( x)) disebut dengan Fuzzy Singleton. Jadi sebuah himpunan fuzzy merupakan kumpulan dari singleton – singleton. Seringkali suatu himpunan fuzzy A dinyatakan dengan vektor : a ( ( x1 ), ( x2 ),...., ( xn )) ..................................................................(2.5) Dimana tiap-tiap posisi i(1,2,...,n) bersesuaian dengan sebuah elemen dalam Semesta yang terdiri dari n elemen. 2.4 Variabel Linguistik Jika dalam aljabar setiap variabel diberi nilai berupa bilangan maka dalam himpunan fuzzy setiap variabel diberi nilai berupa kata-kata (words) atau kalimat (sentences). Variabel seperti ini disebut variabel linguistik. Himpunan dari nilai – nilai yang dapat diambil disebut dengan kumpulan istilah (term set) dari himpunan tersebut. Setiap nilai dalam kumpulan istilah adalah variabel fuzzy yang didefinisikan pada variabel dasar (base variable). Variabel dasar menyatakan Semesta Pembicaraan untuk semua variabel fuzzy dalam kumpulan istilah. Secara ringkas dapat dinyatakan dalam bentuk diagram berikut ini : Variabel Linguistik Variabel Fuzzy Variabel Dasar Gambar 2.9. Diagram Variabel Linguistik Contoh 6 (kumpulan istilah) : Jika x adalah variabel linguistik dengan nama ”Umur”. Maka istilah-istilah dalam variabel linguistik yang merupakan himpunan fuzzy antara lain : “Tua”, “Muda”, “sangat Tua”, yang diambil dari kumpulan istilah T : T={Tua, sangat Tua, tidak terlalu Tua, muda, agak muda, sangat Muda} © Avid-06 11 Fuzzy logic Setiap istilah adalah merupakan variabel Fuzzy yang didefinisikan pada variabel dasar yang mana nilainya dari 0 sampai 100 tahun. Istilah Utama (Primary Term) dan Istilah Termodifikasi (Modified Term) Istilah Utama adalah sebuah istilah atau sebuah himpunan yang harus didefenisikan terlebih dahulu. Misalnya himpunan fuzzy : ”Tua” (Old) dan ”Muda” (young). Sedangkan Istilah Termodifikasi adalah himpunan atau istilah yang diturunkan dari Istilah Utama. Misalnya : ”Sangat Muda” (Very Young) dan ”Tidak Sangat Muda” (Not Very Young). Gambar 2.10. Istilah Utama (old, young) dan Istilah Termodifikasi ( very young, not very young, more or less old) 2.5 Contoh Kasus : Pengontrol Level Tangki Sebuah Kontrol Fuzzy yang diterapkan pada Tangki (pada pabrik semen) seperti diperlihatkan dalam gambar (2.11). Sistem kontrol disini bertujuan untuk mengatur pemasukan semen sehingga aliran menjadi konstan. Dalam diagram terlihat rancangan terdiri dari : sebuah tangki, 2 buah sensor (LL dan LH), dan sebuah kran atau valve (v1). Sensor LL dan LH berfungsi untuk mengamati ketinggian (level) material (semen) dalam tangki. Jika ketinggian material dalam tangki setinggi LL maka sistem akan membuka kran v1( v1 = 1). Dan material akan mengalir masuk ke dalam tangki. Dan jika ketinggian material sudah mencapai level LH maka sistem akan menutup kran v1 (v1= 0). Sehingga material berhenti masuk ke tangki. Sensor LL akan bernilai 1 jika di atas tanda LL dan bernilai 0 jika di bawah tanda LL. Jika dinyatakan dengan logika biner maka kondisi diatas dapat dinyatakan : 1, jika LL bernilai 0 v1 .................................................................(2.6) 0, jika LH bernilai 1 Seorang operator yang bertanggung jawab untuk membuka dan menutup kran v1 mungkin akan menyatakan cara untuk mengontrol kran itu dengan pernyataan - pernyataan berikut : © Avid-06 12 Fuzzy logic -Jika level rendah maka buka v1 -Jika level tinggi maka tutup v1 .....................................................(2.7) Cara 1 ( persamaan 2.6) merupakan cara lama yang cocok dengan PLC (Programmable Logic Controller) dengan memakai logika Boole. Sedangkan cara 2 ( persamaan 2.7) adalah cara pengaturan yang sesuai dengan Pengontrol Fuzzy dengan memakai Logika Fuzzy. Tangki Gambar 2.11. Diagram Proses Pengontrol Level Tangki Pernyataan – pernyataan dalam persamaan (2.7) disebut dengan Aturan Fuzzy (Fuzzy Rule). Kita akan membahas lebih dalam tentang Aturan Fuzzy pada bab selanjutnya. Dalam pernyataan : Jika level Rendah, terdapat variabel Fuzzy yaitu : “Rendah”, yang merupakan sebuah nilai dari variabel linguistik “Level”. Variabel “Rendah” dapat dinyatakan dalam komputer dengan vektor Rendah. Semesta dari vektor Rendah dinyatakan dalam range dari nilai – nilai yang mungkin dari variabel linguistik Level. Range nilai untuk level diambil antara [0,100]. Range nilai ini untuk menyatakan prosentase material dalam tangki (percent full) . Nilai 0 berarti tangki belum berisi material (0 %) sedangkan nilai 100 berarti tangki terisi penuh (100 %). Pernyataan Level Rendah memperlihatkan nilai keanggotaan rendah (i), dimana Level dibulatkan ke elemen terdekat dalam Semesta untuk mendapatkan index yang tepat untuk i. Hasilnya adalah bilangan µ = [0,1] yang menyatakan seberapa besar pernyataan Level Rendah terpenuhi. Gambar 2.12 memperlihatkan definisi yang mungkin dari variabel fuzzy : Rendah dan Tinggi pada kasus level tangki. Tinggi dan Rendah secara berurutan dinyatakan dengan fungsi keanggotaan kurva s (10,90,x) dan kurva z (10,90,x). © Avid-06 13 Fuzzy logic Gambar 2.12. Variabel Fuzzy Rendah dan Tinggi pada kasus level tangki Contoh : 1. Gambarkan kurva dari himpunan fuzzy A dan B yang dinyatakan dengan : A = {(0,0),(1,0),(2,0),(3,0.1),(4,0.3),(5,0.5),(6,0.7),(7,0.8),(8,0.9), (9,1),(10,1)} B = {(0,1),(1,1),(2,1),(3,1),(4,0.8),(5,0.6),(6,0.4) ,(7,0.2),(8,0), (9,0),(10,0)} Dimana Semesta U = {0,1,2,...,10} Jawab : 2. Gambarkan kurva dari himpunan fuzzy yang menyatakan Temperatur ruang sejuk(cool) , Sedang (good) , dan Hangat (warm) yang dinyatakan fungsi keanggotaan sebagai berikut : x 17 20 17 ,17 x 20 23 x sedang (17,20,23, x) ,20 x 23 23 20 , otherwise 0 x 11 14 11 1 sejuk (11,14,17,20, x) 20 x 20 17 0 © Avid-06 ,11 x 14 ,14 x 17 ,17 x 20 , otherwise 14 Fuzzy logic x 20 23 20 ,20 x 23 1 ,23 x 26 Hangat (20,23,26,29, x) 29 x ,26 x 29 29 26 0 , otherwise Dimana Semesta U = {8,9,10,...,32} Jawab : Soal – soal latihan : 1. Nilai pelayanan (service) yang diberikan seorang pelayan hotel kepada tamu yang berkunjung di hotel biasanya dikelompokkan dalam tiga variabel yang bersifat fuzzy yaitu : poor (jelek), good (bagus), excellent (sangat bagus). Dimana fungsi keanggotaan dari masing –masing variabel tersebut dinyatakan dengan : ;0 x 2 1 poor ( x) (5 - x)/3 ;2 x 5 0 ;x 5 ;x 5 0 excellent ( x) (x - 5)/3 ;5 x 8 1 ;x 8 ;0 x 2 dan 8 x 10 0 good ( x) (x - 2)/3 ;2 x 5 (8 x) / 3 ;5 x 8 Jika semesta dari himpunan fuzzy tersebut adalah U = {0,1,...10}. Gambarkanlah grafik setiap variabel fuzzy tersebut. 2. Rasa masakan dalam sebuah restoran biasanya dapat dinyatakan dengan variabel yang bersifat fuzzy yaitu : rancid ( anyir) dan delicious (enak) Dimana fungsi keanggotaan dari variabel tersebut adalah : ;0 x 2 1 rancid ( x) (5 - x)/3 ;2 x 5 0 ;x 5 ;x 5 0 delicious ( x) (x - 5)/3 ;5 x 8 1 ;x 8 Jika semesta U = {0,1,2,...,10}. Gambarkan kurva dari variabel fuzzy tersebut! © Avid-06 15 Fuzzy logic 3. Harga sebuah mobil di sebuah show room dinyatakan dengan variabel yang bersifat fuzzy yaitu : cheap (murah), average (sedang), dan expensive (mahal). Dimana fungsi keanggotaan dari variabel tersebut adalah : ; 4 x 10 0 cheap ( x) x/2 ;0 x 2 (4 x) / 2 ;2 x 4 ;0 x 6 0 generous( x) (x - 6)/2 ; 6 x 8 (10 x) / 2 ;8 x 10 ;0 x 2 dan 8 x 10 0 average( x) (x - 2)/3 ;2 x 5 (8 x) / 3 ;5 x 8 Jika semesta U = {0,1,2,...,10}. Gambarkan kurva dari variabel fuzzy tersebut! 4. Diketahui himpunan semesta U=[0,100] menyatakan kecepatan sepeda motor dalam meter/detik. Himpunan A menyatakan himpunan fuzzy dalam U yang menyajikan sepeda motor yang berjalan ”cepat”. B menyatakan sepeda motor yang berjalan ”sedang”. Sedangkan C adalah himpunan fuzzy untuk kecepatan sepeda motor “lambat”. a) Tuliskan fungsi keanggotaan himpunan fuzzy A, B, dan C b) Gambarkan kurva dari masing – masing fungsi keanggotaan tersebut. Ingat : penentuan fungsi keanggotaan himpunan fuzzy bersifat subyektif dan bergantung pada konteks. 5. Diketahui himpunan semesta U=[0,100] menyatakan umur manusia dalam tahun. Himpunan A menyatakan himpunan fuzzy dalam U yang menyatakan umur “anakanak”. B menyatakan umur ”muda”. Sedangkan C adalah himpunan fuzzy untuk menyatakan umur “tua”. a) Tuliskan fungsi keanggotaan himpunan fuzzy A, B, dan C b) Gambarkan kurva dari masing – masing fungsi keanggotaan tersebut. © Avid-06 16 Fuzzy logic 3 OPERASI HIMPUNAN FUZZY Fungsi keanggotaan adalah hal yang sangat krusial dalam himpunan fuzzy. Sehingga kita dapat mendefinisikan operasi – operasi pada himpunan fuzzy dengan menggunakan fungsi keanggotaan dari masing – masing himpunan tersebut. 3.1 Operasi - operasi pada Himpunan Fuzzy Operasi pada himpunan fuzzy akan menghasilkan himpunan baru yang elemen – elemennya berasal dari satu atau beberapa himpunan yang dioperasikan tersebut. Ada 3 operasi dasar pada himpunan Fuzzy yaitu : I r i s a n (intersection), g a b u n g a n (union), dan ko m p l e m e n . (a) Irisan ( Intersection) Jika A dan B adalah himpunan fuzzy yang berasal dari Semesta yang sama maka irisan dari A dan B didefinisikan dengan : A B a min b Atau bisa ditulis A B min(a, b ) .................................................................................(3.1) Operator min adalah operator untuk mencari nilai minimum dari perbandingan setiap item atau elemen dalam himpunan fuzzy. Contoh : Jika A dan B adalah himpunan fuzzy pada Semesta U = {0,1, 2,..., 10} yang dinyatakan dengan : A = {(0,0),(1,0),(2,0),(3,0.1),(4,0.3),(5,0.5),(6,0.7),(7,0.8),(8,0.9), (9,1),(10,1)} B = {(0,1),(1,1),(2,1),(3,1),(4,0.8),(5,0.6),(6,0.4) ,(7,0.2),(8,0), (9,0),(10,0)} maka A B min(a, b ) ={(0,0),(1,0),(2,0),(3,0.1),(4,0.3),(5,0.5),(6,0.4),(7,0.2),(8,0),(9,0),(10,0)} (b) Gabungan ( Union) Jika A dan B adalah himpunan fuzzy yang berasal dari Semesta yang sama maka gabungan dari A dan B didefinisikan dengan : © Avid-06 17 Fuzzy logic A B a max b Atau sering ditulis A B max( a, b) .................................................................................(3.2) Operator max adalah operator untuk mencari nilai maksimum dari perbandingan setiap item atau elemen dalam himpunan fuzzy. Contoh : Jika A dan B adalah himpunan fuzzy pada Semesta U = {0, 1, 2,...,10} yang dinyatakan dengan : A = {(0,0),(1,0),(2,0),(3,0.1),(4,0.3),(5,0.5),(6,0.7),(7,0.8),(8,0.9), (9,1),(10,1)} B = {(0,1),(1,1),(2,1),(3,1),(4,0.8),(5,0.6),(6,0.4) ,(7,0.2),(8,0), (9,0),(10,0)} maka A B max( a, b) = {(0,1),(1,1),(2,1),(3,1),(4,0.8),(5,0.6),(6,0.7),(7,0.8),(8,0.9),(9,1),(10,1)} (c) Komplemen Jika A adalah himpunan fuzzy yang berasal dari Semesta U maka komplemen dari A didefinisikan dengan : A c 1 a ..............................................................................................(3.3) Contoh : Jika A dan B adalah himpunan fuzzy pada Semesta U = {0, 1, 2, ...,10} yang dinyatakan dengan : A = {(0,0),(1,0),(2,0),(3,0.1),(4,0.3),(5,0.5),(6,0.7),(7,0.8),(8,0.9), (9,1),(10,1)} maka komplemen A : A c = {(0,1),(1,1),(2,1),(3,0.9),(4,0.7),(5,0.5),(6,0.3),(7,0.2),(8,0.1), (9,0),(10,0)} © Avid-06 18 Fuzzy logic Contoh 3.1 : Sebuah keluarga yang beranggotakan 4 orang ingin membeli sebuah rumah baru. Pertimbangan yang dipakai dalam membeli rumah adalah kenyamanan (comfortable) rumah. Disamping kenyamanan maka yang menjadi pertimbangan adalah besarnya (large) rumah . Misalkan semesta U = {1,2,3,4,5,6,7,8} dimana elemen – elemennya menyatakan jumlah kamar tidur dari rumah – rumah yang tersedia. Himpunan fuzzy C yang menyatakan rumah “nyaman” dinyatakan dengan : C = {(1,0.2), (2,0.5), (3,0.8), (4,1), (5,0.7), (6,0.3), (7,0), (8,0), (9,0), (10,0)} Dan himpunan fuzzy L untuk menyatakan rumah “besar” dinyatakan dengan : L = {(1,0), (2,0), (3,0.2), (4,0.4), (5,0.6), (6,0.8), (7,1), (8,1), (9,1), (10,1)} Irisan (intersection) dari himpunan fuzzy C (nyaman) dengan himpunan fuzzy L (besar) adalah : C L {(1,0), (2,0), (3,0.2), (4,0.4), (5,0.6), (6,0.3), (7,0), (8,0), (9,0), (10,0)} Hasil irisan ini menunjukkan rumah dengan 5 kamar tidur paling optimal (µ = 0.6), kemudian selanjutnya di urutan ke dua adalah rumah dengan 4 kamar tidur (µ = 0.4),. Dari hasil perhitungan tersebut menunjukkan rumah dengan 5 kamar tidur adalah yang paling memenuhi himpunan fuzzy untuk menyatakan rumah “nyaman” dan “besar”. Sementara itu gabungan (union) antara himpunan fuzzy C (nyaman) dan L (besar) yaitu : C L {(1,0.2), (2,0.5), (3,0.8), (4,1), (5,0.7), (6,0.8), (7,1), (8,1), (9,1), (10,1)} Hasil gabungan (union) menunjukkan rumah dengan 4 kamar tidur yang memenuhi (µ = 1) karena rumah ini nyaman bagi keluarga yang terdiri dari 4 anggota keluarga. Disamping itu hasil gabungan (union) juga menunjukkan rumah dengan 5, 6, 7, atau 8 kamar juga memenuhi karena menyatakan rumah “besar”. Jadi dapat dikatakan hasil gabungan C L menyatakan himpunan fuzzy yaitu : rumah “nyaman” atau “besar”. Komplemen dari himpunan fuzzy rumah “besar” dinyatakan dengan : Lc {(1,1), (2,1), (3,0.8), (4,0.6), (5,0.4), (6,0.2), (7,0), (8,0), (9,0), (10,0)} Hasil komplemen Lc menyatakan kebalikan himpunan fuzzy rumah “besar”, mungkin tepatnya rumah “kecil”. Operasi irisan dan gabungan bersifat asosiatif, komutatif, dan beberapa sifat lainnya seperti dicantumkan dalam tabel 3.1. Sifat – sifat ini sangat penting untuk membantu meramalkan hasil operasinya (output). 3.2 Pemodifikasi (Modifiers) Modifier adalah suatu operasi untuk mengubah arti dari suatu variabel fuzzy. Beberapa buku menyebut modifier dengan peruncingan atau penajaman (hedge). © Avid-06 19 Fuzzy logic Misalnya sebuah pernyataan : “sangat dekat dengan nol”. Kata “sangat” akan mengubah arti dari kata “dekat dengan nol”. Dalam hal ini untuk mengeraskan arti kata “dekat”. O Oppeerraassii SSiiffaatt AB BA Komutatif AB BA Komutatif (A B) C A (B C) Asosiatif (A B) C A (B C) Asosiatif A (B C) (A B) (A C) Distributif A (B C) (A B) (A C) Distributif AB AB De Morgan AB AB De Morgan (A B) A A Absorsif (A B) A A Absorsif AA A Idempotensif AA A Idempotensif AA 1 Ekslusif tidak terpenuhi AA 0 Ekslusif tidak terpenuhi Tabel 3.1 Sifat – sifat Operasi Himpunan Fuzzy Contoh lain dari Modifier adalah : “agak” (more or less), sangat – sangat (very – very). Meskipun secara pasti sulit untuk mengatakan pengaruh yang diakibatkan oleh modifier seperti “sangat”, tapi paling tidak dia akan mengeraskan arti variabel fuzzy yang mengikutinya. Modifier “agak” memiliki pengaruh yang bertolak belakang dengan “sangat”. Modifier – modifier tersebut dapat didekati dengan operasi berikut : sangat a a 2 1 agak a a 2 Contoh 3.2 : Andaikan kita punya himpunan fuzzy “muda” pada semesta U = {0,20,40,60,80} yaitu : muda = {(0,1),(20,0.6),(40,0.1),(60,0),(80,0)} © Avid-06 20 Fuzzy logic maka kita dapat menurunkan fungsi keanggotaan untuk himpunan fuzzy “sangat muda” yaitu : sangat muda = muda 2 ={(0,1),(20,0.36),(40,0.01),(60,0),(80,0)} Dan kita dapat juga menurunkan himpunan fuzzy “sangat sangat muda” (very very young) yaitu : Sangat sangat muda = muda 4 ={(0,1),(20,0.13),(40,0),(60,0),(80,0)} Gambar 3.1 memperlihatkan beberapa contoh modifier yang diturunkan dari himpunan fuzzy primer (“tua” , “muda”). Gambar 3.1 Modifier Himpunan Fuzzy Semua modifier dapat dinyatakan dengan : ap , dimana p adalah pangkat yang nilainya antara 0 dan tak berhingga. 3.3 Relasi Himpunan Fuzzy Dalam kontroler fuzzy, relasi antara obyek – obyek atau elemen memegang peranan yang sangat penting. Beberapa relasi menyangkut elemen – elemen dalam semesta yang sama misalnya : -sebuah ukuran lebih besar dari yang lain -suatu kejadian terjadi lebih dulu dari kejadian lainnya -sebuah elemen mirip atau menyerupai elemen lainnya -dll Disamping itu ada relasi yang menyangkut elemen – elemen dari semesta yang berbeda (terpisah) misalnya : -sebuah ukuran besar dan kecepatan perubahannya adalah positif -koordinat x besar dan koordinat y kecil Relasi - relasi tersebut diatas adalah contoh relasi dua obyek. Kita bisa membuat relasi yang dapat menghubungkan lebih dari 2 obyek. Secara formal, relasi biner atau disingkat relasi R dari himpunan A dan B menyatakan pasangan berurutan : © Avid-06 21 Fuzzy logic (a, b) A X B yang menandakan salah satu dari pernyataan berikut : (i) a berrelasi dengan b (ii) a tidak berrelasi dengan b Hasil kali (Cartesian Product) A X B adalah himpunan dari semua kombinasi yang mungkin dari elemen – elemen A dan B. Sementara itu Relasi Fuzzy dari himpunan A dan B adalah himpunan bagian fuzzy dari hasil kali Cartesian Product antara semesta himpunan A dan B yaitu U dan V atau dinyatakan dengan U X V Sebagai contoh misalnya keponakan Donald Duck yang bernama Huey menyerupai Dewey dengan tingkat keanggotaan 0.8. Dan Huey menyerupai Louie dengan tingkat keanggotaan 0.9. Sehingga kita dapat membuat sebuah relasi antara himpunan bagian dari keponakan dalam keluarga. Hal ini lebih mudah kalau dinyatakan dalam bentuk matrik ( terdiri dari 1 baris) yaitu : Dewey Louie R1 = Huey 0.8 0.9 Untuk menunjukkan cara untuk menggabungkan 2 relasi maka kita memisalkan sebuah relasi lain antara Dewey dan Louie dengan Donald Duck yaitu : Dewey mirip dengan Donald Duck dengan tingkat keanggotaan 0.5 dan Louie mirip dengan Donald Duck dengan tingkat keanggotaan 0.6. Jika dinyatakan dalam bentuk matrik maka : Donald R2 = Dewey 0.5 Louie 0.6 Adalah menarik untuk mencoba mencari berapa besar (tingkat keanggotaan) Huey menyerupai Donald Duck dengan mengkombinasikan informasi – informasi dalam 2 matrik tersebut. : (i) Huey menyerupai Dewey (0.8), dan Dewey menyerupai Donald (0.5) atau (ii)Huey menyerupai Louie (0.9), dan Louie menyerupai Donald (0.6) © Avid-06 22 Fuzzy logic Pada pernyataan (i) berisi satu rantai relasi dan sangat masuk akal untuk mengkombinasikan relasi – relasi tersebut dengan operasi irisan. Berdasarkan definisi, operasi irisan adalah operasi untuk mencari nilai keanggotaan terlemah (terkecil) sehingga hasilnya adalah 0.5. Dengan cara yang sama untuk pernyataan (ii) akan didapatkan hasil yaitu : 0.6. Sehingga dari operasi ini kita mendapatkan hasil berupa : (iii) Huey menyerupai Donald (0.5) atau (iv) Huey menyerupai Donald (0.6) Pernyataan (iii) dan (iv) keduanya sama – sama tampak valid. Oleh karena itu kita dapat memakai operasi gabungan pada kedua pernyataan itu ((iii) dan (iv)). Berdasarkan definisi, operasi gabungan adalah mencari nilai keanggotaan terkuat sehingga hasilnya adalah : (v)Huey menyerupai Donald (0.6) Jadi Aturan umum jika mengkombinasikan (sering disebut komposisi relasi) beberapa relasi fuzzy adalah mencari nilai minimum dari “hubungan seri” dan nilai maksimum dari “hubungan paralel”. Hal ini dapat dilakukan dengan mudah lewat perkalian dalam (inner product). Perkalian dalam (inner product) adalah sama dengan perkalian titik (dot product) dalam matrik, dimana operasi perkalian diganti dengan operasi irisan ( ) dan operasi penjumlahan diganti dengan operasi gabungan ( ). Andaikan R adalah matrik berukuran m x p dan S matrik berukuran p x n maka hasil kali matrik R dengan S adalah matrik T yang berukuran m x n. Dimana elemen ke – ij dari matrik T atau tij didapatkan dengan mengkombinasikan baris ke-i dari matrik R dengan kolom ke-j dari matrik S, sehingga p t ij (ri1 s1 j ) (ri 2 s 2 j ) ... (rip s pj ) rik s kj ..................................(3.4) k 1 Dari definisi operasi himpunan maka komposisi menurunkan yang disebut dengan Komposisi max – min (max – min composition) Jika R adalah relasi dari a ke b dan S adalah relasi dari b ke c, maka komposisi dari R dan S adalah relasi dari a ke c ( hukum transitif). Contoh 3.3 (inner product): Dari tabel relasi R1 dan R2 diatas maka kita bisa menghitung kombinasi relasi R1 dan R2 dengan inner product yaitu : R1 . R2 © Avid-06 0.8 0.9 . 0.5 0.6 = 0.5 0.6 = 0.6 23 Fuzzy logic Atau kalau diuraikan dengan lebih rinci : R1 . R2 (0.8 0.5) (0.9 0.6) 0.5 0.6 0.6 Dapat dilihat hasilnya sama dengan hasil yang didapatkan dari hasil sebelumnya. Komposisi max – min bersifat distributif terhadap operasi gabungan (union) : ( R T ) . S ( R . S ) (T . S ) tapi tidak terhadap operasi irisan (intersection). Operasi min pada komposisi max-min dapat diganti dengan operasi perkalian (dilambangkan dengan *). Sehingga disebut dengan Komposisi max – star. Sehingga hasil perhitungan contoh diatas akan menjadi : R1 . R2 (0.8 * 0.5) (0.9 * 0.6) 0.40 0.54 0.54 © Avid-06 24 Fuzzy logic 4 LOGIKA FUZZY Logika diawali dengan studi tentang bahasa yang dipakai dalam menyatakan pendapat. Logika juga dapat dipakai untuk menilai kebenaran dari sederetan pertimbangan atau pemikiran seperti pembuktian sebuah rumus atau teorema dalam matematika. Di dalam logika dengan dua nilai kebenaran (two-valued logic), sebuah pernyataan (proposition) bisa bernilai True atau False tapi tidak bisa bernilai keduanya. Kebenaran dan kesalahan yang diberikan pada sebuah pernyataan dinyatakan dengan nilai kebenaran (truth – value). Logika yang hanya punya 2 nilai kebenaran ini sering juga disebut dengan logika tegas (crisp). Sementara itu dalam logika Fuzzy sebuah pernyataan bisa bernilai benar atau salah atau bisa bernilai diantara benar dan salah, misalnya “mungkin benar”. Pernyataan “level adalah tinggi” adalah sebuah contoh pernyataan fuzzy. Rasanya akan lebih baik untuk membatasi nilai kebenaran yang mungkin dari nilai – nilai logika fuzzy salah, mungkin benar , dan benar dengan nilai : {0, 0.5, 1}. 4.1 Kata Sambung (connective) Dalam percakapan sehari – hari (bahasa Inggris) dan matematika, pernyataan atau kalimat dihubungkan dengan dengan kata seperti : and , or, if – then, dan if and only if. Kata – kata tersebut disebut dengan kata sambung (connective) . Sementara itu sebuah pernyataan yang dimodifikasi dengan kata “not” akan menghasilkan negasi (negation) dari kalimat itu sendiri. Kata “and” dipakai untuk menggabungkan dua pernyataan sehingga membentuk konjungsi (conjuntion) dari dua kalimat tersebut. Begitu juga sebuah pernyataan yang dibentuk dengan menggabungkan dua pernyataan dengan kata “or” akan menghasilkan disjungsi (disjunction) dari dua kalimat tersebut. Dari 2 buah pernyataan kita dapat membentuk sebuah pernyataan : if ... then ... yang disebut dengan pernyataan bersyarat (conditional sentence). Pernyataan yang mengikuti if disebut “sebab” (antecedent) sedangkan pernyataan yang mengikuti then disebut “akibat”. Pernyataan – pernyataan lain yang mempunyai arti yang sama dengan pernyataan bersyarat “if p then q” ( dimana p dan q adalah pernyataan) adalah : -p menyatakan (secara tidak langsung) q -p hanya jika q -q jika p Simbol – simbol yang dipakai untuk menyatakan kata sambung dapat dilihat dalam tabel (4.1). © Avid-06 25 Fuzzy logic K Kaattaa SSaam mbbuunngg SSiim mbbooll not and or if – then if and only if Tabel 4.1 Simbol kata sambung Contoh 4.1 (baseball) : Misalkan dalam sebuah permainan baseball ada suatu kondisi yang dinyatakan dengan : “If Pirates atau Cubs kalah and Giants menang then Dodgers akan keluar dari posisi pertama and kita kalah dalam taruhan” Pernyataan diatas adalah pernyataan bersyarat, yang dapat dinyatakan dengan r s. r s r s .....................................................................................(4.1) dimana Pada bagian sebab (antecedent) disusun dari 3 pernyataan yaitu : - Pirates kalah (p) -Cubs kalah (c) -Giants menang (g) Sedangkan pada bagian akibat (consequent) terdiri dari 2 pernyataan yaitu : -Dodgers keluar dari posisi pertama (d) -Kita kalah dalam taruhan (k) Sehingga pernyataan bersyarat diatas dapat disimbolkan dengan : ((p c) g) (d k) Nilai kebenaran yang mungkin dari suatu pernyataan dapat dinyatakan dengan tabel kebenaran (truth-table). Misalnya sebagai contoh, tabel kebenaran dari pernyataan dengan 2 nilai kebenaran p q seperti diperlihatkan dalam tabel (4.2.). pp qq ppq q 0 0 0 0 1 1 1 0 1 1 1 1 Tabel 4.2 Tabel Kebenaran p © Avid-06 q 26 Fuzzy logic Cara lain untuk menyatakan tabel kebenaran adalah dengan menggunakan tabel 2 dimensi yang disebut tabel Cayley seperti tabel 4.3. pp qq 0 1 0 0 1 atau 1 1 1 ditulis qq 0 0 1 1 qq pp 1 1 Tabel 4.3 Tabel Kebenaran Cayley Dalam tabel Cayley, sumbu vertikal menyatakan nilai kemungkinan dari p dan sumbu horisontal menyatakan nilai kemungkinan dari q. Pertemuan antara baris ke-i dan kolom ke-j adalah nilai dari pi qj. Sangat mungkin untuk mengevaluasi suatu pernyataan logika dengan jalan mengetes semua kombinasi nilai kebenaran dari variabel. Hasil pengujian tersebut akan dinyatakan dalam bentuk array. Contoh 4.2 : Dalam contoh 4.1 (permainan baseball) kita memiliki pernyataan yang disimbulkan dengan : ((p c) g) (d k). Pernyataan tersebut berisi 5 variabel dan tiap variabel hanya punya 2 nilai kemungikan ( 0 atau 1). Ini menandakan bahwa ada 25 = 32 kombinasi yang mungkin seperti diperlihatkan dalam tabel (4.4). © Avid-06 nnoo pp cc gg dd kk nnoo pp cc gg dd kk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 27 Fuzzy logic Tabel 4.4 Kemungkinan Kombinasi nilai variabel pernyataan ((p c) g) (d k) Dari 32 kombinasi yang mungkin, maka ada 23 kombinasi yang memenuhi syarat (valid) atau yang menghasilkan nilai true (1) pada persamaan (4.1) nnoo pp cc gg dd kk nnoo pp cc gg dd kk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 17 18 19 20 21 22 23 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 Tabel 4.5 Pernyataan ((p c) g) (d k) dengan nilai true (1) ada 32 – 23 = 9 kombinasi yang tidak valid atau menghasilkan nilai false (0) pada persamaan (4.1). nnoo pp cc gg dd kk 1 2 3 4 5 6 7 8 9 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 Tabel 4.6 Pernyataan ((p c) g) (d k) dengan nilai false (0) Jika kita hanya berminat untuk melihat pernyataan : “Kita tidak kalah taruhan” atau “kita menang taruhan” (k = 0) dari pernyataan yang valid (tabel 4.5) maka akan didapatkan pernyataan seperti tercantum dalam tabel 4.7 : © Avid-06 28 Fuzzy logic nnoo pp cc gg dd kk 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 Tabel 4.7 Pernyataan ((p c) g) (d k) dengan nilai true (1) dan k = 0 Jadi dari tabel (4.7) dapat dilihat bahwa ada 10 pernyataan yang memenuhi syarat pada pernyataan : “kita menang taruhan” (k = 0) diantara 32 kemungkinan yang ada. Kita bisa membuat tabel kebenaran yang sama dalam logika fuzzy. Misalnya kita mulai dengan mendefinisikan negasi (negation) dan disjungsi, maka kita dapat menurunkan tabel kebenaran yang lainnya. Jika negasi dinyatakan dengan komplemen maka ini berarti : not p 1 - p dan jika disjungsi dinyatakan dengan gabungan (union) maka : p q max (p,q) selanjutnya kita juga dapat menurunkan tabel kebenaran untuk : or, nor, and, dan nand. or nor p q (p q) 0 0.5 1 1 0.5 0 0.5 0.5 1 0.5 0.5 0 1 0.5 1 0 0 0 nand and ( p) ( q) (( p) ( q)) 1 1 1 0 0 0 1 0.5 1 0 0.5 0.5 1 0.5 0 0 0.5 1 Tabel 4.8 Tabel Kebenaran logika © Avid-06 fuzzy 29 Fuzzy logic Dalam tabel (4.8) dapat dilihat tabel kebenaran dalam logika fuzzy dengan 3 nilai kebenaran {0, 0.5, 1}. Dua tabel sebelah kanan menyatakan negasi dari 2 tabel sebelah kiri, dan 2 tabel sebelah bawah merupakan pencerminan dari 2 tabel sebelah atas. Operator implikasi selalu bermasalah dengan teorema fuzzy. Jika kita mendefinisikan implikasi dengan persamaan yang biasa dipakai (persamaan 4.1) : r s r s maka kita akan mendapatkan tabel kebenaran yang bertentangan dengan logika sebab beberapa hukum logika gagal atau tidak terpenuhi. Banyak peneliti telah mencoba mengemukakan definisi lain tentang implikasi seperti : Kiszka, Konchanska, dan Sliwinska (1985). Hasilnya adalah 72 buah definisi implikasi. 3 contoh dari definisi implikasi tersebut adalah : -Simplification : q p (p q) q ...........................................................................(4.2) -Modus ponens : p q [p (p q)] q ...................................................................(4.3) -Hypothetical syllogism : p q [(p q) (q r)] (p r) .................................................(4.4) Sementara itu ada juga implikasi yang dinyatakan oleh Gödel yaitu: -Gödel : p q (p q) q ...........................................................................(4.5) atau 1 pq 0 jika p q ........................................................................(4.6) jika p q Contoh tabel kebenaran dari implikasi Gödel adalah seperti ditunjukkan dalam tabel (4.9). Implikasi Godel (p q) q 1 1 1 0 1 1 0 0.5 1 Tabel 4.9 Tabel kebenaran Implikasi Gödel Atau jika dinyatakan dalam bentuk larik (array) maka implikasi Gödel akan menjadi bentuk seperti yang ditunjukkan dalam tabel (4.10). © Avid-06 30 Fuzzy logic pp qq ((pp qq)) ((pp qq)) qq 0 0 0 0.5 0.5 0.5 1 1 1 0 0.5 1 0 0.5 1 0 0.5 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0.5 1 Tabel 4.10 Tabel kebenaran Implikasi Gödel dalam array Dari tabel 4.10 terlihat bahwa ada 6 kombinasi yang terpenuhi ( menghasilkan nilai implikasi 1) dan ada 3 kombinasi tidak terpenuhi (menghasilkan nilai tidak 1 (0 atau 0.5)). Ekivalensi (equivalence) dapat ditentukan dari implikasi dan konjungsi. Ekivalensi dinyatakan dengan simbol . Jadi jika p ekivalen dengan q maka dapat dinyatakan dengan : p q (p q) (q p) .............................................................................(4.6) Tabel (4.11) berikut ini adalah tabel kebenaran dari ekivalensi p dan q dimana implikasinya dinyatakan dengan implikasi Gödel. Implikasi Gödel Implikasi Gödel (p q) (q p) (p q) q (q p) p Ekivalensi (p q) (q p) 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0.5 0 1 0.5 0 0.5 1 1 1 1 0 0.5 1 Tabel 4.11 Tabel Kebenaran Ekivalensi Perlu diperhatikan dalam tabel (4.11), sumbu vertikal menyatakan p sedangkan sumbu horisontal menyatakan q. Dimana p dan q mempunyai 3 nilai kebenaran yaitu : {0, 0.5, 1}. Logika fuzzy yang dinyatakan dengan array dapat dipakai untuk membuktikan sebuah teorema atau definisi tentang implikasi. Berikut ini adalah contoh pembuktian implikasi modus ponens. Contoh 4.3 : © Avid-06 31 Fuzzy logic Untuk membuktikan teorema implikasi Modus Ponens adalah dengan jalan pengujian dari semua kombinasi nilai kebenaran dari variabel – variabel dalam logika fuzzy. Implikasi Modus Ponens dinyatakan dengan : p q [p (p q)] q Pernyataan tersebut terdiri dari dua variabel. Dan jika kita menganggap bahwa tiap variabel mempunyai 3 nilai kebenaran maka ada 32 = 9 kombinasi yang mungkin. Semua kemungkinan yang ada tersebut ditampilkan dalam array logika seperti tabel (4.12) pp qq pp qq [[pp ((pp qq))]] 0 0 0 0.5 0.5 0.5 1 1 1 0 0.5 1 0 0.5 1 0 0.5 1 1 1 1 0 1 1 0 0.5 1 0 0 0 0 0.5 0.5 0 0.5 1 [[pp ((pp qq))]] q q 1 1 1 1 1 1 1 1 1 Tabel 4.12 Tabel kebenaran Implikasi Modus Ponens Karena kolom yang paling kanan semuanya bernilai 1 maka implikasi Modus Ponens adalah valid atau terpenuhi dalam logika fuzzy. Cakupan validitas dari implikasi Modus Ponens terbatas pada domain nilai kebenaran (0, 0.5, 1). Domain nilai kebenaran ini dapat diperluas sehingga akibatnya pengujian yang dilakukan juga semakin bertambah. Contoh 4.4 : Dalam contoh ini kita akan memodifikasi kasus baseball (contoh 4.1). Jika dalam contoh 4.1 setiap variabel hanya punya 2 nilai kebenaran (0,1) maka di sini kita mengubah bahwa setiap variabel punya 3 nilai kebenaran (0, 0.5, 1). Oleh karena pernyataan dalam contoh 4.1 berisi 5 variabel (p, c, g, d, k) dan setiap variabel memiliki 3 nilai kebenaran maka ada 35 = 248 kombinasi yang mungkin. Dari 248 kemungkinan hanya 148 yang valid atau menghasilkan nilai kebenaran 1. Dan ada kasus lain dimana ada kemungkinan 0.5 untuk memenangkan taruhan yang bergantung pada menang dan kalahnya Dodger, Pirate,dll. Jika kita hanya mementingkan pada kemungkinan : “Kita menang taruhan” ( k 0, 0.5) maka ada 88 kombinasi yang mungkin. Daripada kita menyebutkan semua kemungkinan maka kita hanya menunjukkan salah satu saja sebagai ilustrasi yaitu : (p,c,g,d,k) = [0 0.5 0.5 1 0.5] © Avid-06 32 Fuzzy logic Contoh tersebut menunjukkan logika fuzzy menghasilkan lebih banyak solusi dan hal ini membutuhkan lebih banyak perhitungan dibandingkan dengan memakai logika tegas (crisp). Inilah harga yang harus dibayar bagi pemakaian logika fuzzy yang memiliki nilai kebenaran “antara” (intermediate) yang menyatakan ketidakpastian (uncertainty). 4.2 Implikasi Aturan if level rendah then buka v1 disebut dengan implikasi, sebab nilai level menentukan nilai dari v1 dalam kontroler. Dalam pengontrol fuzzy biasanya tidak menggunakan implikasi Godel (persamaan (4.5)). Dalam pengontrol fuzzy biasanya sering digunakan implikasi Mamdani (1977) yang didefinisikan dengan : p q p .min q.......................................................... .....................(4.7) dimana simbol : .min menyatakan outer product, dengan memakai min untuk tiap elemen hasil kali (cartesian product) dari p dan q. Jika p adalah vektor kolom dan q adalah vektor baris maka outer product dari p dan q adalah : .min b1 b2 ... bm p1 p1 p1 q2 ... p1 qm ... ...1 q ... ... ... pn pn pn q2 ... pn qm q1 atau .min b1 b2 ... bm p1 min(p1,q1) min(p1,q2) ... min(p1,qm) ... ... ... ... ... pn min(pn,q1) min(pn,q2) ... min(pn,qm) Tabel 4.13 Outer product : .min Contoh 4.5 : Untuk implikasi if level rendah then buka v1 , dimana rendah dan buka didefinisikan dengan : rendah = (1, 0.75, 0.5, 0.25, 0) buka = (0, 0.5, 1) Maka implikasi dapat ditentukan dengan outer product : © Avid-06 .min 0 0.5 1 1 0 0.5 1 0.75 0 0.5 0.75 v1 33 Fuzzy logic 0.5 0.25 0 level 0 0.5 0.5 0 0.25 0.25 0 0 0 Tabel 4.13 Outer product : rendah – buka Ini adalah cara yang sangat penting dalam membuat tabel implikasi dari sebuah aturan (rule). Outer product yang dikemukakan oleh Mamdani (1977) adalah menggunakan operator min untuk operasi perkalian cartesian product. Operator min ini dapat diganti dengan operator * pada operasi perkalian tersebut (Holmblad dan Ostergaard). Hal ini merupakan landasan dasar bagi kebanyakan pengontrol fuzzy. 4.3 Kesimpulan (inference) Untuk menggambarkan proses pengambilan kesimpulan dari sekumpulan aturan (rule base) maka kita memerlukan suatu cara untuk menghasilkan sebuah output dari sekumpulan aturan if – then. Proses pengambilan kesimpulan dilakukan dengan melakukan komposisi aturan pengambilan kesimpulan (Compositional Rule Of Inference (CROI)). Untuk memahami konsep pengambilan kesimpulan maka kita dapat membayangkan sebuah fungsi y = f(x), dimana f adalah sebuah fungsi tertentu, x adalah variabel bebas, dan y adalah hasil fungsi. Jika x = x 0 maka y bernilai f(x0) seperti diperlihatkan dalam gambar (4.1). y y=f(x) y=f(x0) x = x0 x Gambar 4.1 Pengambilan kesimpulan dalam logika tegas (crisp) Jadi dapat dibuat pernyataan : Alasan (premise) y = f(x) Fakta x = x0 Akibat y = f(x0) Di dalam logika fuzzy, alasan (premise) dinyatakan dengan implikasi atau rule R yaitu : R: If x = x1 then y = y1 Fakta : x = x0 © Avid-06 (Aturan) (Input) 34 Fuzzy logic Akibat : y = y0 (Kesimpulan) Jadi masalahnya adalah bagaimana kita menentukan akibat (y) jika kita mempunyai fakta (x) yang diberikan pada sebuah aturan atau rule (R). Atau bagaimana kita mengambil kesimpulan y jika sebuah aturan R diberi input atau fakta x. Aturan pengambilan kesimpulan yang terkenal adalah Modus Ponens : p (p q) q ......................................................................................(4.8) atau dapat dinyatakan : jika diketahui sebuah pernyataan p q bernilai true dan juga diketahui suatu pernyataan p bernilai true maka kita dapat menyimpulkan bahwa pernyataan q juga bernilai true. Di dalam logika fuzzy hal ini dinyatakan secara umum dengan : Generalized Modus Ponens (GMP) yaitu : p’ (p q) q ’.....................................................................................(4.9) dimana nilai p’ dan q’ sedikit agak berbeda dengan p dan q. Persamaan (4.9) dapat dinyatakan dengan : : if p then q atau p q R Fakta : p’ q’ Akibat : Akibat atau kesimpulan q’ ditentukan dengan : q’ = p’ . R = max min (p’,R) .....................................................................(4.10) contoh 4.6 : Dari contoh (4.5), kita mempunyai rule R : if level rendah then buka v1. Andaikan kita punya input atau fakta level yaitu : level = (0.75, 1, 0.75, 0.5, 0.25) Maka kesimpulan v1 menjadi : v1 = level . R = max min(level,R) R level = = © Avid-06 0.75 0 1 0.5 0.75 0.5 0.25 . 0 0.5 1 0 0.5 0.75 0 0.5 0.5 0 0.25 0.25 0 0 0 0.75 35 Fuzzy logic Input atau fakta level adalah himpunan fuzzy yang menyatakan suatu level yang sedikit lebih tinggi dari rendah (1, 0.75, 0.5, 0.25,0). Hasil atau kesimpulannya adalah v1 yang nilainya sedikit lebih kecil dari buka (0, 0.5, 1). Jika kita mencoba input atau fakta level = rendah (1, 0.75, 0.5, 0.25, 0) maka kita akan mendapatkan v1 yang sama dengan buka (0, 0.5, 1) setelah dikomposisikan dengan rule R. 4.4 Basis Aturan Fuzzy (Fuzzy Rule Base) Jika sebelumnya kita membahas tentang pengambilan kesimpulan hanya terhadap satu aturan maka dalam basis aturan kita mengambil kesimpulan dari sekumpulan aturan (rule base). Basis aturan biasanya terdiri dari beberapa aturan (R1...Rn). R1 : If x = x1 then y = y1 R2 : If x = x2 then y = y2 ... Rn : (Basis aturan) ... If x = xn then y = yn Fakta : x = x0 (Input) Akibat : y = y0 (Kesimpulan) Masalahnya adalah bagaimana kita mengambil kesimpulan y jika basis aturan (R 1...Rn) diberikan input atau fakta x. Dalam hal ini kita menganggap antara satu aturan dengan aturan lainnya dihubungkan oleh kata sambung “atau” atau logika “or”. R1 : If x = x1 then y = y1 or R2 : If x = x2 then y = y2 or ... ... or Rn : If x = xn then y = yn Sehinggga hubungan diantara aturan – aturan tersebut dinyatakan dengan aturan total R : R = R1 R2 ... Rn Atau secara umum dinyatakan : R = Ri = max (Ri) ..........................................................................................(4.11) dimana i = 1, 2,...n Selanjutnya kesimpulan diambil dari aturan total R tersebut. Contoh 4.7 : Andaikan kita punya 2 aturan R1 dan R2 yaitu : © Avid-06 36 Fuzzy logic R1 : if level rendah then buka v1 R2 : if level tinggi then tutup v1 Jika kita punya fakta atau input : level = (0.75, 1, 0.75, 0.5, 0.25) berapakah kesimpulan v1. Dimana didefinisikan himpunan fuzzy : rendah = (1, 0.75, 0.5, 0.25, 0) tinggi = (0, 0.25, 0.5, 0.75, 1) buka = (0, 0.5, 1) tutup = (1, 0.5, 0) Dari contoh 4.5 didapatkan R1 : if level rendah then buka v1 adalah : R1 0 0.5 1 0 0.5 0.75 0 0.5 0.5 0 0.25 0.25 0 0 0 Sedangkan R2 : if level tinggi then tutup v1 ditentukan dengan : .min 1 0.5 0 0 0 0 0 0.25 0.25 0 0.5 0.5 0 0.75 0.5 0 1 0.5 0 0.25 0.5 0.75 1 level Sehingga aturan total R : v1 R = R1 R2 = max (R1, R2) R1 = = © Avid-06 R2 0 0.5 1 0 0 0 0 0.5 0.75 0.25 0.25 0 0 0.5 0.5 0.5 0.5 0 0 0.25 0.25 0.75 0.5 0 0 0 0 1 0.5 0 0 0.5 1 0.25 0.5 0.75 0.5 0.5 0.5 0.75 0.5 0.25 1 0.5 0 37 Fuzzy logic Sehingga kesimpulan v1 dapat ditentukan dari aturan total R ini : v1 = level . R = max min(level,R) R level = 0.75 1 0.75 max (0,0.25,0.5,0.5,0.25) = © Avid-06 0.5 0.5 0.5 0.25 . max (0.5,0.5,0.5,0.5,0.25) 0 0.5 1 0.25 0.5 0.75 0.5 0.5 0.5 0.75 0.5 0.25 1 0.5 0 max (0.75,0.75,0.5,0.25,0) 0.75 38 Fuzzy logic 5 SISTEM KONTROL FUZZY LOGIC Sistem kontrol fuzzy logic adalah sistem kontrol yang berdasarkan fuzzy logic. Input dari sistem ini adalah berupa variabel logika yang bernilai kontinu antara : [0,1]. Berbeda dengan logika klasik atau logika digital yang hanya mempunyai nilai 0 atau 1 (True atau False). Logika fuzzy banyak digunakan dalam mesin kontrol. Fuzzy logic memiliki kelebihan dimana solusi dari suatu masalah dapat dinyatakan dengan istilah atau pernyataan yang dapat dimengerti oleh operator manusia, sehingga pengalamannya dapat dipakai dalam perancangan sistem kontrol. Hal ini lebih memudahkan untuk memekanisasi-kan pekerjaan yang telah berhasil dilakukan oleh manusia. Berikut ini akan diberikan beberapa contoh tentang sistem kontrol yang menggunakan fuzzy logic. Sebagai contoh pertama adalah sistem kontrol untuk sistem pengereman (braking sistem). Sistem ini digerakkan oleh sebuah chip mikrokontroler. Mikrokontroler bekerja berdasarkan temperatur rem, kecepatan, dan variabel-variabel lain dalam sistem. Variabel ”temperatur” dalam sistem dapat dibagi dalam beberapa bagian keadaan : “cold”, “cool”, “moderate”, “warm”, “hot”. Dimana transisi dari suatu keadaan ke keadaan lainnya sulit untuk didefinisikan. Suatu nilai pembatas (threshold) dapat dibuat untuk membedakan ”warm” dengan “hot”. Seperti pada saat temperatur tepat 900 maka “warm” berakhir dan “hot” mulai. Hal ini akan menghasilkan perubahan tidak kontinu jika nilai input melebihi nilai pembatas (threshold). Transisi tidak akan berlangsung secara halus seperti yang diperlukan dalam sistem kontrol pada rem. Cara untuk mengatasi masalah ini adalah dengan pernyataan fuzzy. Yaitu membiarkan sistem untuk berubah secara bertahap dari satu keadaan menuju keadaan lainnya. Untuk melakukan hal ini harus ada hubungan yanq dinamis antara faktor-faktor dalam sistem. Temperatur yang merupakan variabel input dari sistem dinyatakan dengan fungsi keanggotaan (membership functions) yaitu : Gambar 5.1 Himpunan keanggotaan variabel input : Temperatur © Avid-06 39 Fuzzy logic Dari gambar 5.1 dapat dilihat bahwa variabel-variabel input tidak ada yang berubah secara tiba-tiba dari satu keadaan ke keadaan lainnya. Jika terjadi perubahan temperatur maka suatu variabel nilainya berkurang pada satu fungsi keanggotaan tetapi bertambah pada fungsi yang lainnya. Misalnya pada temperatur tertentu nilai keanggotaan pada variabel “cold” berkurang sedangkan pada variabel ”cool” akan bertambah. Jadi nilai kebenaran dari temperatur rem hampir akan selalu berada dalam tingkat keanggotaan dari dua fungsi keanggotaan. Misalnya : 0.6 nominal dan 0.4 warm, atau 0.7 nominal dan 0.3 cool, dan seterusnya. Contoh diatas memperlihatkan aplikasi sederhana dengan menggunakan abstraksi nilai dari data temperatur. Kita bisa menambahkan tingkat kemampuan dari sistem Pengereman dengan jalan menambahkan faktor-faktor atau variabel lainnya seperti : speed, inersia, daya tarik yang disusun dalam fungsi dinamik berdasarkan rancangan sistem fuzzy. 5.1 Fuzzifikasi Variabel – variabel input dalam sistem kontrol fuzzy umumnya dipetakan ke dalam himpunan fuzzy. Proses untuk mengkonversikan nilai input tegas (crisp) menjadi nilai fuzzy disebut dengan fuzzifikasi. Sebuah sistem kontrol fuzzy juga memiliki beberapa tipe switch atau ON – OFF, input yang menyatakan nilai input analog dan input switch tersebut selalu memiliki nilai kebenaran 1 atau 0. Skema yang cocok dengan hal tersebut adalah fungsi fuzzy sederhana yang dapat memiliki suatu nilai atau nilai yang lainnya. Pemetaan variabel-variabel input ke dalam fungsi keanggotaan dan nilai kebenaran, kemudian mikrokontroler membuat keputusan untuk mengambil tindakan berdasarkan sekumpulan aturan (rule base). Dimana masing-masing aturan mempunyai bentuk : IF temperatur rem ”warm” AND speed “not very fast” THEN tekanan rem berkurang sedikit Dalam contoh tersebut dua variabel input adalah “temperatur” dan “speed” dimana nilainya didefinisikan sebagai himpunan fuzzy. Sedangkan variabel output adalah “tekanan” juga didefinisikan dengan himpunan fuzzy yang nilainya misalnya adalah : -tidak berubah (static) -sedikit bertambah (slightly increased) -sedikit berkurang (slightly decreased) Dari satu rule tersebut tampaknya sangat samar karena seolah-olah hanya satu rule itu saja dapat dipakai tanpa menghiraukan logika fuzzy, tapi perlu diingat bahwa dalam pengambilan keputusan berdasarkan pada sekumpulan aturan : © Avid-06 40 Fuzzy logic - semua rule yang dipakai diperlukan untuk menentukan hasil dari rule. Dengan menggunakan fungsi keanggotaan dan nilai kebenaran dari input - hasil tersebut akan dipetakan ke dalam fungsi keanggotaan dan nilai kebenaran pengontrol variabel output - hasil-hasil tersebut semuanya akan digabungkan untuk menentukan nilai (jawaban) tegas (crisp). Nilai ini merupakan tekanan rem aktual. Proses untuk menentukan nilai tegas ini disebut : defuzzifikasi. Penggabungan dari operasi fuzzy dan Pengambilan keputusan yang berdasarkan aturan disebut dengan Sistem Pakar Fuzzy. Sistem kontrol tradisional berdasarkan pada model matematika, dimana sistem kontrol dinyatakan dengan satu atau lebih persamaan diferensial yang mendifinisikan respon sistem terhadap input yang diberikan. Sistem seperti ini sering diimplementasikan dengan pengendali PID (proportional – integral – derivative). Sistem tersebut merupakan hasil selama bertahun – tahun dari analisis teori dan pengembangan. Dan biasanya sistem ini sangat efektif. Lebih jauh logika fuzzy sangat cocok untuk implementasi murah dengan menggunakan sensor murah, dan converter analog to digital resolusi rendah, dan chip mikrokontroler 4 bit atau 8 bit yang murah. Dalam banyak kasus sistem kontrol fuzzy dapat dipakai untuk memperbaiki sistem kontrol tradisional yang sudah ada dengan menambahkan kecerdasan pada metode pengaturan arus. Konsep sistem kontrol fuzzy sangat sederhana. Sistem ini terdiri dari bagian input, bagian proses dan bagian output. Bagian input bertugas untuk memetakan sensor atau atau alat input lainnya menuju fungsi keanggotaan dan nilai kebenaran yang tepat. Bagian proses mengarahkan masing – masing aturan yang tepat dan menghasilkan hasil untuk tiap – tiap aturan, kemudian menggabungkan hasil dari tiap – tiap aturan. Akhirnya, bagian output mengkonversi hasilnya ke dalam nilai output kontrol tertentu. Bentuk fungsi keanggotaan yang biasanya dipakai adalah bentuk segitiga, meskipun bentuk trapesium dan bell juga digunakan. Umumnya bentuk kurva kurang penting dibandingkan dengan jumlah kurva dan penempatannya dalam suatu fungsi keanggotaan. Biasanya dipakai antara 3 sampai 5 kurva untuk mencakup range nilai input yang diperlukan atau semesta pembicaraan (universe of discourse). Seperti sudah disebutkan sebelumnya bahwa bagian proses didasarkan pada sekumpulan aturan logika dalam bentuk pernyataan : IF – THEN. Dimana bagian IF disebut dengan alasan (antecedent) dan bagian THEN disebut dengan akibat © Avid-06 41 Fuzzy logic (consequenct). Suatu sistem kontrol fuzzy dapat memiliki puluhan aturan. Andaikan sebuah aturan pada alat pengatur panas (thermostat) : IF temperatur ”sangat dingin” THEN heater “tinggi” Pada aturan tersebut menggunakan nilai kebenaran input “temperatur” yang mana beberapa nilai kebenaran dari ”sangat dingin”, untuk menghasilkan himpunan fuzzy bagi output ”heater” yang mana beberapa nilai dari “tinggi”. Hasil dari aturan ini digabungkan dengan aturan – aturan lainnya digunakan untuk menghasilkan output gabungan tegas (crisp). Tepatnya, semakin besar nilai kebenaran “sangat dingin” maka semakin besar juga nila kebenaran dari “tinggi”. Walaupun ini bukan berarti bahwa output itu sendiri akan berupa himpunan “tinggi” karena ini hanyalah sebuah aturan diantara sekian banyak aturan. Dalam beberapa hal fungsi keanggotaan dapat dimodifikasi dengan pemodifikasi (modifier) yang berupa kata sifat seperti : sangat, agak, hampir, terlalu, sedikit dan lain – lain. Dalam kenyataannya, himpunan aturan fuzzy biasanya memiliki beberapa alasan (antecedent) yang digabungkan dengan operator fuzzy seperti : AND, OR, dan NOT. Definisi dari operator fuzzy cenderung bervariasi, salah satu yang populer seperti operator AND biasanya menggunakan nilai minimum dari semua alasan, sementara operator OR menggunakan nilai maksimum. Sedangkan operator NOT merupakan pengurangan suatu fungsi keanggotaan dari 1 untuk menghasilkan fungsi komplemen. Ada beberapa cara untuk mendefinisikan hasil dari sebuah aturan, tetapi yang paling sederhana dan biasa dipakai adalah metode pengambilan keputusan ”Max – Min”, dimana fungsi keanggotaan output yang diberikan oleh nilai kebenaran yang dihasilkan oleh alasan – alasan (premise). Aturan-aturan dapat diselesaikan secara paralel dalam hardware atau secara sekuensial dalam software. Hasil dari semua aturan yang diaktivasi kemudian didefuzzifikasi menjadi nilai tegas (crisp) dengan menggunakan suatu metode. Ada banyak metode yang dapat dipakai untuk melakukan proses defuzzifikasi. Metode yang paling populer adalah metode Center of Mass (COM) atau Center of Gravity (COG). Disamping itu ada juga metode Tinggi (height) yaitu mencari nilai tertinggi. Metode COG akan cenderung memilih aturan dengan output luasan terbesar, sedangkan metode Tinggi akan cenderung memilih aturan dengan nilai output terbesar. Gambar 5.2 berikut ini memperlihatkan pengambilan keputusan Max-Min dan defuzzifikasi COG pada sebuah sistem dengan variabel input ”x”, ”y”, dan ”z”, dan variabel output ”n”. Dimana (x), © Avid-06 42 Fuzzy logic (y), (z), dan (n) adalah nilai kebenaran atau tingkat keanggotaan variabel – variabel x, y, z, dan n pada masing – masing himpunan fuzzy (A,B,C, D,E,F). (x) (y) (z) Gambar 5.2 Pengambilan Keputusan Max – Min dan Defuzzifikasi COG Perlu diperhatikan bagaimana masing-masing aturan menghasilkan nilai kebenaran atau tingkat keanggotaan bagi variabel output. Dalam defuzzifikasi dengan metode COG, nilainilai ini didapatkan dengan jalan melakukan operasi OR atau mengambil nilai maksimum dari variabel output yang dihasilkan masing-masing aturan. Kemudian dilanjutkan dengan proses perhitungan dengan metode COG. Perancangan sistem kontrol fuzzy dilakukan berdasarkan metode empiris (percobaan), yaitu dengan metode coba – coba (trial and error). Langkah – langkah umum dari proses perancangan ini adalah : -mencatat spesifikasi operasi sistem, serta input dan output sistem -menentukan himpunan fuzzy untuk input dan output -menentukan aturan – aturan (rule set) -menentukan metode defuzzifikasi -melakukan tes untuk validasi sistem, serta lakukan pengaturan atau perubahan pada detil sistem bila diperlukan -sistem siap untuk diaplikasikan dan diproduksi Sebagai contoh andaikan sebuah sistem fuzzy kontrol yang diterapkan pada turbin uap (steam turbine). Diagram blok dari sistem kontrol ini diperlihatkan dalam gambar 5.3. © Avid-06 43 Fuzzy logic Gambar 5.3 Sistem Kontrol Fuzzy pada Turbin Uap Dimana variabel input dan output dinyatakan dengan himpunan fuzzy berikut ini : Keterangan : N3 : Large Negatif N2 : Medium Negatif N1 : Small Negatif Z : Zero P1 : Small Positif P2 : Medium Positif P3 : Large Positif Gambar 5.4 Himpunan fuzzy variabel input (temperatur,tekanan)dan output (katup seting) Beberapa aturan yang dipakai dalam sistem kontrol ini adalah : Rule 1 : IF temperatur cool AND tekanan weak THEN katup P3 Rule 2 : IF temperatur cool AND tekanan low THEN katup P2 Rule 3 : IF temperatur cool AND tekanan ok THEN katup z © Avid-06 44 Fuzzy logic Rule 4 : IF temperatur cool AND tekanan strong THEN katup N2 Dalam prakteknya sistem kontrol akan menerima input dan memetakan input tersebut ke dalam tingkat keanggotaan dan fungsi keanggotaan masing – masing input. Hasil pemetaan ini selanjutnya akan dimasukkan ke dalam aturan – aturan yang berlaku dalam sistem. Jika aturan menyatakan relasi AND untuk kedua variabel input maka tingkat keanggotaan gabungan dinyatakan dengan mengambil nilai minimum dari kedua input tersebut. Demikian juga jika dalam aturan menyatakan relasi OR maka tingkat keanggotaan gabungan dari input didapat dengan mengambil nilai maksimum dari kedua variabel input itu. Nilai variabel output dipilih dan diberi nilai berupa tingkat keanggotaan gabungan variabel input. Hasil atau output dari masing – masing aturan kemudian digabungkan dengan operasi penggabungan (Max) yaitu dengan mencari nilai maksimum. Hasil operasi penggabungan ini kemudian akan di defuzzifikasi. Sebagai contoh misalkan saja temperatur dalam keadaan “cool” dan tekanan dalam keadaan “low” dan “ok”. Nilai tekanan akan menjamin bahwa hanya rule 2 dan rule 3 yang akan diaktifkan (fired) : Gambar 5.5 Hasil aktivasi dari rule 2 Gambar 5.6 Hasil aktivasi dari rule 3 © Avid-06 45 Fuzzy logic Jika output dari rule 2 dan rule 3 digabungkan dengan operasi OR (maximum) maka didapatkan hasil seperti gambar 5.7 : Gambar 5.7 Penggabungan (OR) dari output rule 2 dan rule 3 Hasil penggabungan dari output rule 2 dan rule 3 ini kemudian akan di-defuzzifikasi dengan metode COG. Hasil defuzzifikasi inilah yang akan mengatur katup / klep. Setelah itu siklus kontrol akan kembali berulang untuk menghasilkan nilai variabel input dan output selanjutnya. 5.2 Membangun Sistem Kontrol Fuzzy Andaikan kita akan membangun sistem kontrol fuzzy dengan chip mikrokontroler dan gambaran dari sistem kontrol tersebut seperti diagram di bawah ini : Gambar 5.8 Diagram Sistem Kontrol fuzzy Ada 2 variabel input yaitu : error “e” dan perubahan error “delta”. Himpunan fuzzy untuk variabel input dan output didefinisikan sebagai berikut : LP : large positif SP : small positif ZE : zero SN : small negatif LN : large negatif Jika variabel error memiliki range nilai -1 sampai +1, maka dengan menggunakan Analog to Digital Converter (ADC) yang memiliki resolusi 0.25, maka himpunan fuzzy dari variabel input ( juga variabel output) dapat dinyatakan seperti tabel 5.1 berikut ini. Dimana nilai error, delta, maupun output berada pada baris atas dan tingkat keanggotaan untuk tiap-tiap fungsi keanggotaan disusun pada baris di bawahnya : © Avid-06 46 Fuzzy logic Tabel 5.1 Himpunan fuzzy dari variabel input (error, delta) dan output atau kalau dinyatakan dengan grafik maka akan tampak seperti gambar 5.9. (dimana setiap ”x” bernilai 0.1). Gambar 5.9 Grafik Himpunan fuzzy dari variabel input (error, delta) dan output Misalkan sistem fuzzy ini memiliki aturan – aturan (rule) : Rule 1 : IF e = ZE AND delta = ZE THEN output = ZE Rule 2 : IF e = ZE AND delta = SP THEN output = SN Rule 3 : IF e = SN AND delta = SN THEN output = LP Rule 4 : IF e = LP OR delta = LP THEN output = LN © Avid-06 47 Fuzzy logic Aturan – aturan biasanya sangat khas bagi aplikasi pengaturan atau kontrol dimana pada bagian ”alasan” (antecedent) yang terdiri dari sinyal error(e) dan delta, sementara pada bagian ”akibat” (consequent) merupakan perintah/pengaturan output. Output dari aturan dapat di- defuzzifikasi dengan metode misalnya : COG. Andaikan pada waktu tertentu input sistem adalah : e = 0.25 delta = 0.5 maka tingkat keanggotaan dari variabel input tersebut adalah : Jika nilai – nilai ini dimasukkan dalam rule 1 maka akan menghasilkan : Rule 1 : IF e = ZE AND delta = ZE THEN output = ZE (1) = min (0.7,0.3) = 0.3 Output(1) = 0 ( nilai ini diperoleh dari metode “Tinggi” , nilai keanggotaan tertinggi dalam himpunan fuzzy ZE) Hasil dari rule – rule yang lainnya adalah : Rule 2 : IF e = ZE AND delta = SP THEN output = SN (2) = min (0.7,1) = 0.7 Output(2) = -0.5 ( nilai ini diperoleh dari metode “Tinggi” , nilai keanggotaan tertinggi dalam himpunan fuzzy SN) Rule 3 : IF e = SN AND delta = SN THEN output = LP (3) = min (0.0, 0.0) = 0 Output(3) = 1.0 Rule 4 : IF e = LP OR delta = LP THEN output = LN (4) = max (0.0, 0.3) = 0.3 Output(4) = -1.0 Selanjutnya dilanjutkan dengan proses defuzzifikasi dengan metode COG maka akan menghasilkan : COG © Avid-06 (1).output (1) (2).output (2) (3).output (3) (4).output (4) (1) (2) (3) (4) 48 Fuzzy logic (0.3 * 0) (0.7 * 0.5) (0 *1) (0.3 * 1) 0.3 0.7 0 0.3 0.5 Jadi didapatkan nilai akhir output adalah -0.5. Selanjutnya jika dimisalkan set point pada sistem bernilai 0.25 maka nilai output yang dihasilkan sistem (-0.5) akan dibandingkan dengan nilai set point ini. Selisihnya adalah merupakan nilai error (e) yaitu : e = output - set point = -0.5 - 0.25 = -0.75 Sedangkan nilai delta dapat ditentukan dengan : delta = -0.75 - 0.25 = -1.00 (selisih antara 2 error yang berturutan) Tingkat keanggotaan dari variabel input tersebut adalah : e delta (LP) 0 0 (SP) 0 0 (ZE) 0 0 (SN) 0.7 0.3 (LN) 0.7 1 Jika nilai – nilai ini dimasukkan dalam rule maka : Rule 1 : IF e = ZE AND delta = ZE THEN output = ZE (1) = min (0, 0) = 0 Output(1) = 0 Rule 2 : IF e = ZE AND delta = SP THEN output = SN (2) = min (0, 0) = 0 Output(2) = -0.5 Rule 3 : IF e = SN AND delta = SN THEN output = LP (3) = min (0.7, 0.3) = 0.3 Output(3) = 1.0 Rule 4 : IF e = LP OR delta = LP THEN output = LN (4) = max (0 , 0) = 0 Output(4) = -1.0 Selanjutnya dilanjutkan dengan proses defuzzifikasi dengan metode COG maka akan menghasilkan : COG © Avid-06 (1).output (1) (2).output (2) (3).output (3) (4).output (4) (1) (2) (3) (4) 49 Fuzzy logic (0 * 0) (0 * 0.5) (0.3 *1) (0 * 1) 0 0 0.3 0 1 Jadi didapatkan nilai akhir output adalah 1. Demikian seterusnya sampai didapatkan nilai output yang mendekati nilai set point. Jika kita menemui kesulitan dalam menggambarkan proses defuzzifikasi dengan metode COG maka perlu diingat bahwa centroid didefinisikan sebagai penjumlahan seluruh momen (lokasi kali massa) di sekitar pusat grafitasi dan menyamakan hasil penjumlahan tersebut dengan nol. Jadi jika pusat grafitasi dimisalkan pada titik x 0, lokasi dari tiap – tiap massa adalah xi, dan massa dari tiap – tiap massa adalah Mi , maka 0 ( x1 x0 ) * M 1 ( x2 x0 ) * M 2 ... ( xn x0 ) * M n 0 ( x1 * M 1 x2 * M 2 ... xn * M n ) x0 * (M 1 M 2 ... M n ) x0 * (M 1 M 2 ... M n ) x1 * M 1 x2 * M 2 ... xn * M n x0 x1 * M 1 x2 * M 2 ... xn * M n ( M 1 M 2 ... M n ) Dalam kenyataannya bagian yang paling berat adalah membuat rule yang benarbebar dapat dipakai dalam praktek atau aplikasi nyata. 5.3 Aplikasi Sistem Kontrol Fuzzy Untuk memberikan gambaran lebih mendalam tentang konsep logika Fuzzy, berikut ini akan diberikan contoh aplikasi sederhana kontrol fuzzy pada sebuah Termostat. Dimana kontroler Fuzzy dipakai untuk mengatur kipas Pemanas (heater fan) pada Termostat. Adapun diagram dari sistem kontrol Fuzzy dalam Termostat adalah seperti ditunjukkan dalam gambar 5.10. Room Kontroler Fuzzy fan speed Fan sensor temperatur Gambar 5.10 Kontroler Temperatur pada Termostat Dari gambar 5.10 tampak bahwa Kontroler Fuzzy dipakai untuk mengatur kecepatan kipas (fan speed). Adapun input dari Kontroler Fuzzy adalah temperatur ruang yang ditangkap oleh sensor. Jika kita menggunakan Kontroler konvensional pada termostat © Avid-06 50 Fuzzy logic maka proses pengaturan temperatur adalah seperti switch ON-OFF. Misalnya kita menginginkan untuk mengatur temperatur (setting point) pada 780 F maka kontroler akan diaktifkan (ON) saat temperatur berada di bawah 750 F dan kontroler akan dinonaktifkan (OFF) ketika temperatur mencapai 810 F. Himpunan variabel input Temperatur baik yang bersifat Fuzzy maupun Non Fuzzy diperlihatkan dalam gambar 5.11 berikut ini : 1 cold 0 cool warm hot 0 20 40 60 80 100 Temperatur ( F) (a) 1 cold 0 cool warm hot 0 20 40 60 80 100 Temperatur ( F) (b) Gambar 5.11 Himpunan variabel input “Temperatur” (a) Non Fuzzy (b) Fuzzy Sementara itu variabel Fuzzy output ”Fan_speed” digambarkan dalam gambar 5.12 di bawah ini : zero 1 0 0 10 low medium high 20 30 40 fan speed (RPM) Gambar 5.12 Himpunan variabel output “Fan Speed” Aturan-aturan (rules) yang dipakai pada sistem kontroler fuzzy tersebut adalah : 1. IF temperatur is cold THEN fan speed is high 2. IF temperatur is cool THEN fan speed is medium 3. IF temperatur is warm THEN fan speed is low 4. IF temperatur is hot THEN fan speed is zero © Avid-06 51 Fuzzy logic Ada 3 proses utama dalam sistem kontroler Fuzzy tersebut yaitu : Fuzzifikasi nilai input, aktivasi aturan, dan defuzzifikasi output. Andaikan pada sistem tersebut diberikan input Temperatur sebesar 780 F maka dalam proses Fuzzifikasi maka nilai 78 ini akan diubah menjadi nilai fuzzy menjadi 0.6 (warm) dan 0.2(hot). Sedangkan pada cold dan cool nilainya adalah : 0.0(cold) dan 0.0(cool). 1 78 0.6 cold cool warm hot 0.2 0 20 40 60 80 100 Gambar 5.13 Fuzzifikasi input ”Temperatur” Temperatur (cold) 0.0 (cool) 0.0 (warm) 0.6 (hot) 0.2 Sedangkan pada proses Aktivasi aturan jika digunakan metode Pengambilan Keputusan Mamdani (Max-Min) maka terjadi proses sebagai berikut : Rule 1 : IF temperatur is cold THEN fan speed is high (1) = (cold) =0.0 Output (1) = min ((cold),fan speed) = min ((cold),high) = min (0.0, high) high 1 0 0 10 20 30 40 fan speed (RPM) Rule 2 : IF temperatur is cool THEN fan speed is medium (2) = (cool) =0.0 Output (2) = min ((cool),fan speed) = min (0.0,medium) © Avid-06 52 Fuzzy logic medium 1 0 0 10 20 30 40 fan speed (RPM) Rule 3 : IF temperatur is warm THEN fan speed is low (3) = (warm) =0.6 Output (3) = min ((warm),fan speed) = min (0.6,low) low 1 0.6 0 0 10 20 30 40 fan speed (RPM) Rule 4 : IF temperatur is hot THEN fan speed is zero (4) = (hot) =0.2 Output (4) = min ((hot),fan speed) = min (0.2,zero) 1 zero 0.2 0 0 10 20 30 40 fan speed (RPM) Setelah nilai output dari masing-masing rule didapatkan maka selanjutnya adalah proses penggabungan dengan operator Max sehingga didapatkan output total yaitu : 1 zero low medium high 10 20 30 40 0.6 0.2 0 0 fan speed (RPM) Sebagai proses akhir yaitu proses Defuzzifikasi dengan metode COG. © Avid-06 53 Fuzzy logic COG 10 * 0.2 20 * 0.6 30 * 0.0 40 * 0.0 17.5 0.2 0.6 0.0 0.0 Jadi Nilai Output Fan Speed dari sistem tersebut adalah 17.5 RPM. © Avid-06 54