Anda di halaman 1dari 46

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Logika Fuzzy merupakan suatu logika yang memiliki nilai kekaburan atau kesamaran
(fuzzyness) antara benar atau salah. Dalam logika klasik dinyatakan bahwa segala hal dapat
diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak), sedangkan
logika fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga
hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti "sedikit", "lumayan"
dan "sangat". Logika ini berhubungan dengan himpunan fuzzy dan teori kemungkinan.
Logika fuzzy ini diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California, Berkeley
pada 1965. Logika fuzzy dapat digunakan dalam bidang teori kontrol, teori keputusan, dan
beberapa bagian dalam managemen sains. Selain itu, kelebihan dari logika fuzzy adalah
kemampuan dalam proses penalaran secara bahasa (linguistic reasoning), sehingga dalam
perancangannya tidak memerlukan persamaan matematik dari objek yang dikendalikan. Adapun
salah satu contoh aplikasi logika fuzzy dalam kehidupan sehari-hari adalah Pada tahun 1990
pertama kali dibuat mesin cuci dengan logika fuzzy di Jepang (Matsushita Electric Industrial
Company). Sistem fuzzy digunakan untuk menentukan putaran yang tepat secara otomatis
berdasarkan jenis dan banyaknya kotoran serta jumlah yang akan dicuci. Input yang digunakan
adalah: seberapa kotor, jenis kotoran, dan banyaknya yang dicuci. Mesin ini menggunakan sensor
optik , mengeluarkan cahaya ke air dan mengukur bagaimana cahaya tersebut sampai ke ujung
lainnya. Makin kotor, maka sinar yang sampai makin redup. Disamping itu, sistem juga dapat
menentukan jenis kotoran (daki atau minyak).

1.2 Rumusan Masalah

1. Apa Pengertian Dari Fuzzy Logic?


2. Bagaimana Sejarah Fuzzy Logic?
3. Apa Perbedaan Fuzzy Logic dengan Crisp Logic?
4. Apakah Himpunan Fuzzy Logic?
5. Apa Fuzzyfikasi dan Defuzzyfikasi itu?
6. Apa Kelebihan Dan Kekurangan Menggunakan Fuzzy Logic?
1.3 Pembatasan Masalah

Adapun pembatasan masalah dalam penulisan tugas ini adalah hanya pada variabel,
keterbatasan dan kekonvekan pada himpunan fuzzy dimensi satu.
1.4 Tujuan Penulisan

a. Memahami Tentang Fuzzy Logic dan penerapannya


b. Memahami Derajat Kebenaran dan Variabel linguistik Fuzzy logic
c. Memahami atribut Fuzzy logic dan Himpunan fuzzy
d. Memahami pengertian Fuzzyfikasi dan Defuzzyfikasi

BAB II

PEMBAHASAN

2.1 Pengertian Fuzzy Logic dan Sejarahnya

Sebelumnya munculnya Teori logika fuzzy (fuzzy logic) dikenal sebuah logika tegas
(crisp Logic) yang memiliki nilai benar atau salah secara tegas. Saat logika klasik
menyatakan bahwa segala hal dapat diekspresikan dalam istilah biner (0 atau 1, hitam atau
putih, ya atau tidak), Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat
keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti
"sedikit", "lumayan", dan "sangat". Logika ini berhubungan dengan set fuzzy dan teori
kemungkinan. Logika fuzzy diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California,
Berkeley pada 1965 atas usulan dalam papernya yang monumental Fuzzy Set. Dalam paper
tersebut dipaparkan ide dasar fuzzy set yang meliputi inclusion, union, intersection,
complement, relation dan convexity. Lotfi Zadeh mengatakan Integrasi Logika Fuzzy
kedalam sistem informasi dan rekayasa proses adalah menghasilkan aplikasi seperti sistem
kontrol, alat alat rumah tangga, dan sistem pengambil keputusan yang lebih fleksibel, mantap,
dan canggih dibandingkan dengan sistem konvensional. Dalam hal ini kami dapat
mengatakan bahwa logika fuzzy memimpin dalam pengembangan kecerdasan mesin yang
lebih tinggi ( machine Intelligency Quotient / MIQ ) Produk produk berikut telah
menggunakan logika fuzzy dalam alat alat rumah tangga seperti mesin cuci, video dan
kamera refleksi lensa tunggal, pendingin ruangan, oven microwave, dan banyak sistem
diagnosa mandiri.. Logika fuzzy telah diterapkan pada berbagai bidang, dari teori kontrol
untuk kecerdasan buatan. Logika fuzzy telah diteliti sejak tahun 1920-an, sebagai nilai yang
tak terbatas terutama logika oleh Lukasiewicz dan Tarski.

Jepang adalah negara pertama yang memanfaatkan logika fuzzy untuk aplikasi praktis.
Aplikasi penting pertama adalah di kereta kecepatan tinggi di Sendai, di mana logika fuzzy
mampu meningkatkan ekonomi, kenyamanan, dan ketepatan perjalanan. Hal ini juga telah
digunakan dalam pengakuan simbol tertulis di komputer mini sony; bantuan pesawat
helikopter; mengendalikan sistem kereta bawah tanah dalam rangka meningkatkan
kenyamanan berkendara, ketepatan menghentikan, dan ekonomi kekuasaan; konsumsi hemat
energi untuk ponsel otomatis; kontrol tunggal tombol untuk mesin cuci; kontrol motor
otomatis untuk pembersih vakum dengan pengakuan kondisi permukaan dan tingkat
kekotoran; dan sistem prediksi untuk pengakuan awal dari gempa bumi melalui Institut
Seismologi Biro Metrologi, Jepang

2.2 Derajat kebenaran Dan Variabel Linguistik

Logika fuzzy dan logika probabilitas secara matematis sama - keduanya mempunyai nilai
kebenaran yang berkisar antara 0 dan 1 - namun secara konsep berbeda. Logika fuzzy
berbicara mengenai "derajat kebenaran", sedangkan logika probabilitas mengenai
"probabilitas, kecenderungan". Karena kedua hal itu berbeda, logika fuzzy dan logika
probabilitas mempunyai contoh penerapan dalam dunia nyata yang berbeda. Logika klasik
hanya mengizinkan proposisi memiliki nilai kebenaran atau kesalahan. Gagasan 1 + 1 = 2
adalah kebenaran mutlak, kekal dan matematika. Namun, terdapat proposisi tertentu dengan
jawaban variabel, seperti meminta sebagian orang untuk mengidentifikasi warna. Gagasan
kebenaran tidak jatuh di tengah jalan, tapi lebih pada sarana yang mewakili dan penalaran
lebih pengetahuan parsial ketika diberikan, dengan menggabungkan semua hasil yang
mungkin menjadi spektrum dimensi.

Dua derajat kebenaran dan probabilitas berkisar antara 0 dan 1 dan karenanya mungkin
tampak serupa pada awalnya. Sebagai contoh, satu segelas 100 ml mengandung 30 ml air.
Kemudian dapat mempertimbangkan dua konsep: kosong dan penuh. Arti dari masing-
masing dapat direpresentasikan oleh himpunan fuzzy tertentu. Maka salah satu mungkin
mendefinisikan kaca sebagai 0,7 kosong dan 0,3 penuh. Perhatikan bahwa konsep
kekosongan akan subjektif dengan demikian akan tergantung pada pengamat atau desainer.
Desainer lain mungkin, sama baiknya, merancang fungsi keanggotaan set di mana kaca akan
dianggap penuh untuk semua nilai 50 ml. Sangat penting untuk menyadari bahwa logika
fuzzy menggunakan derajat kebenaran sebagai model matematika dari fenomena
ketidakjelasan sementara probabilitas adalah model matematika dari ketidaktahuan.

Sebuah dasar aplikasi mungkin memiliki berbagai ciri sub-rentang variabel kontinu.
Misalnya, pengukuran suhu untuk rem anti-lock mungkin memiliki beberapa fungsi
keanggotaan terpisah, rentang suhu tertentu yang diperlukan untuk mengendalikan rem benar.
Setiap fungsi nilai suhu yang sama untuk nilai kebenaran dalam jangkauan 0-1. Nilai
kebenaran ini kemudian dapat digunakan untuk menentukan bagaimana rem harus dikontrol.

Dalam gambar ini, arti dari ekspresi dingin, hangat, dan panas yang diwakili oleh fungsi
pemetaan skala suhu. Sebuah titik pada skala yang memiliki tiga "nilai kebenaran" - satu
untuk masing-masing dari tiga fungsi. Garis vertikal pada gambar mewakili suhu tertentu
bahwa tiga anak panah (nilai kebenaran) gauge. Karena panah merah poin ke nol, suhu ini
dapat ditafsirkan sebagai "tidak panas". Panah orange (menunjukkan 0.2) dapat
menggambarkannya sebagai "sedikit hangat" dan panah biru (menunjukkan 0,8) "cukup
dingin". Dalam logika matematika, ada beberapa sistem formal "fuzzy logic"; kebanyakan
disebut t-norma logika fuzzy.

Variabel dalam matematika biasanya mengambil nilai-nilai numerik, dalam aplikasi


logika fuzzy, non-numerik sering digunakan untuk memfasilitasi aturan dan fakta.
Sebuah variabel linguistik seperti usia mungkin memiliki nilai seperti muda atau tua. Namun,
kegunaan besar variabel linguistik bahwa dapat dimodifikasi dengan membatasi linguistik
yang diterapkan untuk hal utama. pembatas nilai linguistik dapat dikaitkan dengan fungsi-
fungsi tertentu. Untuk memperluas Fuzzy logic dengan menambahkan kuantitas universal dan
eksistensial dengan cara serupa yaitu logika predikat dibuat dari logika proposisional.

Contoh:

1. 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.
2. Pelayan restoran memberikan pelayanan terhadap tamu, kemudian tamu akan
memberikan tip yang sesuai atas baik tidaknya pelayanan yang diberikan.
3. Penumpang taksi berkata pada sopir seberapa cepat laju kendaraan yang diinginkan,
sopir taksi akan mengatur pijakan gas taksinya.
4. Anda mengatakan pada saya seberapa sejuk ruangan yang anda inginkan,saya akan
mengatur putaran kipas yang ada pada ruangan ini.

2.3 Alasan Digunakannya Fuzzy Logic

Ada beberapa alasan mengapa orang menggunakan logika fuzzy, antara lain:

1. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran
fuzzy sangat sederhana dan mudah dimengerti.
2. Logika fuzzy sangat fleksibel.
3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat.
4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.
5. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman para pakar secara
langsung tanpa harus melalui proses pelatihan.
6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.
7. Logika fuzzy didasarkan pada bahasa alami.

Sementara itu, dalam pengaplikasiannya, logika fuzzy juga memiliki beberapa kelebihan,
antara lain sebagai berikut.
1. Daya gunanya dianggap lebih baik daripada teknik kendali yang pernah ada.
2. Pengendali fuzzy terkenal karena keandalannya.
3. Mudah diperbaiki.
4. Pengendali fuzzy memberikan pengendalian yang sangat baik dibandingkan teknik
lain
5. Usaha dan dana yang dibutuhkan kecil.
Selain itu, logika fuzzy juga memiliki kekurangan, terutama dalam penerapannya.
Kekurangan kekurangan tersebut antara lain:
1. Para enjiner dan ilmuwan generasi sebelumnya dan sekarang banyak yang tidak
mengenal teori kendali fuzzy, meskipun secara teknik praktis mereka memiliki
pengalaman untuk menggunakan teknologi dan perkakas kontrol yang sudah ada.
2. Belum banyak terdapat kursus/balai pendidikan dan buku-buku teks yang menjangkau
setiap tingkat pendidikan (undergraduate, postgraduate, dan on site training)
3. Hingga kini belum ada pengetahuan sistematik yang baku dan seragam tentang
metodologi pemecahan problema kendali menggunakan pengendali fuzzy.
4. Belum adanya metode umum untuk mengembangkan dan implementasi pengendali
fuzzy.

2.4 Aplikasi fuzzy Logic

Beberapa aplikasi Fuzzy Logic, antara lain:

1. Pada tahun 1990 pertama kali dibuat mesin cuci dengan logika fuzzy di Jepang
(Matsushita Electric Industrial Company). Sistem fuzzy digunakan untuk menentukan
putaran yang tepat secara otomatis berdasarkan jenis dan banyaknya kotoran serta jumlah
yang akan dicuci. Input yang digunakan adalah: seberapa kotor, jenis kotoran, dan
banyaknya yang dicuci. Mesin ini menggunakan sensor optik , mengeluarkan cahaya ke
air dan mengukur bagaimana cahaya tersebut sampai ke ujung lainnya. Makin kotor,
maka sinar yang sampai makin redup. Disamping itu, sistem juga dapat menentukan jenis
kotoran (daki atau minyak).
2. Transmisi otomatis pada mobil. Mobil Nissan telah menggunakan sistem fuzzy pada
transmisi otomatis, dan mampu menghemat bensin 12 17%.
3. Kereta bawah tanah Sendai mengontrol pemberhentian otomatis pada area tertentu.
4. Ilmu kedokteran dan biologi, seperti sistem diagnosis yang didasarkan pada logika fuzzy,
penelitian kanker, manipulasi peralatan prostetik yang didasarkan pada logika fuzzy, dll.
5. Manajemen dan pengambilan keputusan, seperti manajemen basis data yang didasarkan
pada logika fuzzy, tata letak pabrik yang didasarkan pada logika fuzzy, sistem pembuat
keputusan di militer yang didasarkan pada logika fuzzy, pembuatan games yang
didasarkan pada logika fuzzy, dll.
6. Ekonomi, seperti pemodelan fuzzy pada sistem pemasaran yang kompleks,dll.
7. Klasifikasi dan pencocokan pola.
8. Psikologi, seperti logika fuzzy untuk menganalisis kelakuan masyarakat, pencegahan dan
investigasi kriminal, dll.
9. Ilmu-ilmu sosial, terutam untuk pemodelan informasi yang tidak pasti.
10. Ilmu lingkungan, seperti kendali kualitas air, prediksi cuaca, dll.
11. Teknik, seperti perancangan jaringan komputer, prediksi adanya gempa bumi, dll.
12. Riset operasi, seperti penjadwalan dan pemodelan, pengalokasian, dll.
13. Peningkatan kepercayaan, seperti kegagalan diagnosis, inspeksi dan monitoring
produksi.
14. sebagai alat bantu pengambil keputusan seperti proses pembuatan program fuzzy logic
dalam bahasa pemrograman Java yang diaplikasikan untuk menentukan Jumlah Produk
yang dihasilkan berdasarkan kondisi Suhu, Kebisingan dan Pencahayaan.

2.5 Perbedaan Fuzzy Logic (logika Fuzzy) dengan Crisp Logic (Logika Tegas)

logika tegas memiliki nilai tidak = 0.0 dan ya = 1.0, sedangkan logika fuzzy memiliki
nilai antara 0.0 hingga 1.0. Secara grafik perbedaan antara logika tegas dan logika fuzzy
ditunjukkan oleh gambar di bawah ini :

Gambar 1: Logika Tegas (Crisp Logic)


Gambar 2: Logika Fuzzy (Fuzzy Logic)

Didalam Gambar 1 Crisp Logic, apabila X lebih dari atau sama dengan 10 baru
dikatakan benar yaitu bernilai Y=1 , sebaliknya nilai X yang kurang dari 10 adalah salah
yaitu Y=0, maka angka 9 atau 8 atau 7 dan seterusnya dalah dikatakan salah.

Didalam Gambar 2 Fuzzy Logic, apabila nilai X=9, atau 8 atau 7 atau antara nilai 0 dan
10 adalah dikatakan ada benarnya dan ada juga salahnya.

2.6 Atribut Dan Himpunan Fuzzy Logic

Linguistik : nama suatu kelompok yang mewakili suatu keadaan tertentu dengan
menggunakan bahasa alami, misalnya DINGIN, SEJUK, PANAS, dsb.

Numeris : suatu nilai yang menunjukkan ukuran dari suatu variabel, misalnya 10, 35, 40
dsb.

Contoh :

a. Variabel umur, terbagi menjadi 3 himpunan fuzzy, yaitu: MUDA, PAROBAYA, dan
TUA.
b. Variabel temperatur, terbagi menjadi 5 himpunan fuzzy, yaitu: DINGIN, SEJUK,
NORMAL, HANGAT, dan PANAS.
Gambar 3. Himpunan Fuzzy Untuk variabel Umur

Dalam fuzzy logic variabel yang bersifat kabur tersebut direpresentasikan sebagai sebuah
himpunan yang anggotanya adalah suatu nilai crisp dan derajat keanggotaannya (membership
function) dalam himpunan tersebut

Proses-proses dalam fuzzy logic adalah fuzzifikasi, penalaran (reasoning), dan


defuzzifikasi:

Fuzzifikasi: merupakan proses untuk mendapatkan derajat keanggotaan dari sebuah nilai
numerik masukan (crisp)

Penalaran: proses untuk mendapatkan aksi keluaran dari suatu kondisi input dengan
mengikuti aturan-aturan (IF-THEN Rules) yang telah ditetapkan yang disebut sebagai
inference/reasoning.

Defuzzifikasi: proses untuk merubah hasil penalaran yang berupa derajat keanggotaan
keluaran menjadi variabel numerik kembali.

Blok diagram proses fuzzy logic ditunjukkan pada Gambar 4.

Gambar 4: Blok diagram proses dalam fuzzy logic

Himpunan fuzzy adalah pengelompokan sesuatu berdasarkan variabel bahasa (linguistik


variable), yang dinyatakan dengan fungsi keanggotaan, dalam semesta U. Keanggotaan suatu
nilai pada himpunan dinyatakan dengan derajat keanggotaan yang nilainya antara 0.0 sampai
1.0.
Himpunan fuzzy didasarkan pada gagasan untuk memperluas jangkauan fungsi
karakteristik sedemikian hingga fungsi tersebut akan mencakup bilangan real pada interval
[0,1]. Nilai keanggotaannya menunjukkan bahwa suatu item tidak hanya bernilai benar atau
salah. Nilai 0 menunjukkan salah, nilai 1 menunjukkan benar, dan masih ada nilai-nilai yang
terletak antara benar dan salah. Pada himpunan fuzzy, sebuah objek dapat berada pada sebuah
himpunan secara parsial. Derajat keanggotaan dalam himpunan fuzzy diukur dengan fungsi
yang merupakan generalisasi dari fungsi karakteristik yang disebut fungsi keanggotaan atau
fungsi kompatibilitas. Fungsi keanggotaan dari himpunan fuzzy didefinisikan sebagai : x
[0,1].

Contoh: Jika diketahui:


S = [1, 2, 3, 4, 5, 6] adalah semesta pembicaraan
A = [1, 2, 3], B = [3, 4, 5]
Maka dapat dikatakan:

_ Nilai keanggotaan 2 pada himpunan A, A[2]=1, karena 2 A .

_ Nilai keanggotaan 3 pada himpunan A, A[3]=1, karena 3 A .

_ Nilai keanggotaan 4 pada himpunan A, A[4]=0, karena 4 A .

_ Nilai keanggotaan 2 pada himpunan B, B[2]=0, karena 2 B .

_ Nilai keanggotaan 3 pada himpunan B, B[3]=1, karena 3 B .

Hal hal yang terdapat pada sistem fuzzy :


a. Variabel Fuzzy, merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy,
seperti umur, temperatur, dsb
b. Himpunan Fuzzy, merupakan suatu grup yang mewakili suatu kondisi atau keadaan
tertentu dalam suatu variabel fuzzy.
c. Semesta Pembicaraan, adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan
dalam suatu variabel fuzzy. Contoh:
Semesta pembicaraan untuk variabel umur: [0 +)
Semesta pembicaraan untuk variabel temperatur: [0 40]
d. Domain, adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh
dioperasikan dalam suatu himpunan fuzzy. Contoh domain himpunan fuzzy: MUDA = [0
45], TUA = [45 +), DINGIN = [0 20], SEJUK = [15 25], NORMAL = [20 30],
HANGAT = [25 35], PANAS = [30 40]

2.7 Database Fuzzy

Setelah relationship fuzzy ditentukan, untuk mengembangkan database relasional fuzzy.


Pertama database relasional fuzzy, FRDB (fuzzy relational database) dipaparkan dalam tesis
Maria Zemankova ini. Kemudian, beberapa model lain muncul seperti model Buckles-Petry,
Model Prade-Testemale, model umano-Fukami atau model GEFRED oleh JM Medina, MA
Vila dkk. Dalam konteks database fuzzy, beberapa bahasa query fuzzy sudah ditentukan,
dipaparkan SQLf oleh P. Bosc dkk. dan FSQL oleh J. Galindo dkk. Bahasa-bahasa ini
menentukan beberapa struktur dengan tujuan untuk menyertakan aspek fuzzy dalam laporan
SQL, seperti ketentuan fuzzy, pembanding fuzzy, konstanta fuzzy, kendala fuzzy, ambang
batas fuzzy, label linguistik dan sebagainya.

2.8 Contoh Sistem Fuzzy Logic

Mari kita mempertimbangkan sistem pendingin udara dengan 5-level sistem logika
fuzzy. Sistem ini menyesuaikan suhu AC dengan membandingkan suhu kamar dan nilai suhu
target.

Algoritma:

Mendefinisikan variabel linguistik dan istilah.


Merekonstruksi fungsi keanggotaan
Merekonstruksi aturan dasar basis pengetahuan.
Mengkonversi Crisp data menjadi data set fuzzy menggunakan fungsi keanggotaan.
(fuzzifikasi)
Mengevaluasi aturan dalam aturan basis. (mesin antarmuka)
Menggabungkan hasil dari setiap aturan. (mesin antarmuka)
Mengkonversi data output ke nilai-nilai non-fuzzy. (defuzzifikasi)
Langkah 1: Mendefinisikan variabel linguistik dan istilah.
Variabel linguistik yang input dan output dalam bentuk kata-kata sederhana atau kalimat.
Untuk suhu kamar, dingin, hangat, panas, dll, adalah istilah linguistik.
Suhu (t) = {sangat dingin, dingin, hangat, sangat-hangat, panas}
Setiap anggota dari himpunan ini adalah istilah linguistik dan dapat menutupi beberapa
bagian dari nilai suhu keseluruhan.
Langkah 2: Merekonstruksi fungsi keanggotaan
Fungsi keanggotaan variabel suhu seperti yang ditunjukkan

Langkah 3: Merekonstruksi aturan dasar basis pengetahuan.


Membuat matriks nilai-nilai suhu kamar terhadap nilai-nilai suhu target itu sistem pendingin
udara ini diharapkan dapat memberikan:
Target Sangat Dingin Hangat Panas Sangat
Dingin Panas
Sangat Tidak ada Panas Panas Panas Panas
Dingin perubahan
Dingin Dingin Tidak ada Panas Panas Panas
perubahan
Hangat Dingin Dingin Tidak ada Panas Panas
perubahan
Panas Dingin Dingin Dingin Tidak ada Panas
perubahan
Sangat Dingin Dingin Dingin Dingin Tidak ada
panas perubahan

Membuat satu set aturan dalam basis pengetahuan dalam bentuk struktur IF-THEN-ELSE
Sr No Kondisi Tindakan
1 IF temperature=(Cold OR Very_Cold) AND Panas
target=Warm THEN
2 IF temperature=(Hot OR Very_Hot) AND Dingin
target=Warm THEN
3 IF (temperature=Warm) AND (target=Warm) Tidak ada perubahan
THEN

Langkah 4: Mendapatkan nilai fuzzy


Operasi himpunan fuzzy melakukan mengevaluasi aturan. Operasi digunakan untuk OR dan
AND adalah masing masing Max dan Min. gabungkan semua hasil evaluasi untuk
membentuk hasil akhir. Hasil ini adalah nilai fuzzy.
Langkah 5: Lakukan defuzzifikasi
Defuzzifikasi dilakukan sesuai dengan fungsi keanggotaan untuk variabel output.

2.9 Fuzzyfikazi Dan Defuzzyfikasi

a. Fuzzyfikasi adalah pemetaan nilai input yang merupakan nilai tegas ke dalam fungsi
keanggotaan himpunan fuzzy, untuk kemudian diolah di dalam mesin penalaran.
fuzzyfikasi : x (x)
b. Defuzzyfikasi merupakan kebalikan dari fuzzyfikasi, yaitu pemetaan dari himpunan fuzzy
ke himpunan tegas.Input dari proses defuzzyfikasi adalah suatu himpunan fuzzy yang
diperoleh dari komposisi aturan-aturan fuzzy. Hasil dari defuzzyfikasi ini merupakan
output dari sistem kendali logika fuzzy.
Defuzzyfikasi dideskripsikan sebagai
Z* = defuzzyfier (Z)
dengan
Z = hasil penalaran fuzzy
Z* = keluaran kendali logika fuzzy
deffuzyfier = fungsi defuzzyfikasi
Metode defuzzyfikasi antara lain:
1. Metode Maximum
Metode ini juga dikenal dengan metode puncak, yang nilai keluarannya dibatasi oleh fungsi
c(z*)>c 1 (z).
2. Metode titik tengah
Metode titik tengah juga disebut metode pusat area. Metode ini lazim dipakai dalam proses
defuzzyfikasi. Keluaran dari metode ini adalah titik tengah dari hasil proses penalaran.
3. Metode rata-rata
Metode ini digunakan untuk fungsi keanggotaan keluaran yang simetris. Keluaran dari
metode ini adalah nilai rata-rata dari hasil proses penalaran.
4. Metode penjumlahan titik tengah
Keluaran dari metode ini adalah penjumlahan titik tengah dari hasil proses penalaran.
5. Metode titik tengah area terbesar
Dalam metode ini, keluarannya adalah titik pusat dari area terbesar yang ada.

2.10 Pemrograman dengan bahasa Assembly

Setelah kita menemukan rumus untuk normalisasi dan denormalisasi, maka program
assembly dapat dibuat. Jika kita ingin membuat suatu fuzzy system untuk aplikasi yang lain,
tidak perlu harus sama dengan program yang telah ada, tetapi yang perlu diketahui sebelum
membuat suatu fuzzy sistem adalah bagaimana cara untuk menormalisasikan input dan
mendenormalisasikan output-nya sebelum data dapat diolah. Hal ini dilakukan agar nilai-nilai
tersebut dapat diterima oleh DT-51 PetraFuz.
Routine fuzzify dari PetraFuz terletak di alamat 0900h, untuk menjalankannya kitaa
harus menggunakan perintah LCALL 0900h. Berikut ini adalah contoh format yang
digunakan dalam menggunakan DT-51 PetraFuz.

Fuzzify EQU 0900H


Current_ins EQU 0BH
Cog_Outs EQU 0DH
Keterangan:
- Fuzzify : Routine PetraFuz
- Current_ins : Crisp Input PetraFuz
- Cog_Outs : Crisp Output PetraFuz

Jika kita mau memakai internal RAM maka kita harus memakai dengan alamat minimal
063H. Karena 08H 62H digunakan oleh routine PetraFuz Engine.
Contoh program perhitungan error:
MOV A, SP ; memasukkan nilai SP (kecepatan yang diminta)
MOV R0, PV ; memasukkan nilai PV (kecepatan sekarang)
SUBB A, R0
MOV ERROR, A
Contoh program perhitungan dError:
MOV A, ERROR ; Error(n)
MOV R0, ERROR-1 ; Error(n-1)
SUBB A, R0
MOV DERROR, A
Di dalam aplikasi ini yang dinormalisasikan adalah hasil dari Error dan dErrror (bukan
Error dan dError), setelah itu baru dimasukkan sebagai input ke DT-51 PetraFuz. Nilai Error
yang sesungguhnya harus disimpan ke dalam suatu register, karena Error yang belum
dinormalisasi akan digunakan dalam perhitungan denormalisasi yaitu untuk nilai Error (n-1).
Contoh program untuk memasukkan data Error dan dError ke dalam DT-51 PetraFuz,
setelah itu memanggil prosedur Fuzzify dan melihat hasilnya di register accumulator.
MOV CURRENT_INS,ERROR
MOV CURRENT_INS+1,DERROR
LCALL FUZIFY
MOV A,COG_OUTS
Hasil dari register accumulator di atas adalah nilai crisp output dan nilai tersebut harus
didenormalisasikan. Contoh di atas bukanlah contoh program secara khusus melainkan
contoh program secara garis besar. Hal ini dikarenakan tidak adanya program untuk
normalisasi dan denormalisasi. Sebelum nilai crisp input dimasukkan ke dalam DT-51
PetraFuz, nilainya harus dinormalisasikan terlebih dahulu. Nilai crisp output yang telah
diperoleh di register accumulator pada contoh di atas juga belum didenormalisasikan.
Di dalam pembuatan suatu program assembly, kalau bisa hindari pembuatan program
aritmatika yang cukup kompleks, misalnya perkalian atau pembagian 16 x 16 bit. Hal ini
dilakukan agar proses fuzzifikasi tidak memakan banyak waktu.
Ini adalah contoh pemrograman aplikasi pengaturan kecepatan motor DC dengan sistem
Fuzzy.

Proses kerjanya adalah sebagai berikut:


1. Pertama kali dilakukan proses inisialisasi de KITS SPC DC Motor dan komunikasi serial.
2. Terima data serial dari PC dan tunggu sampai karakter J dikirimkan. Lalu ambil nilai SP
Low Byte.
3. Terima data serial lagi dari PC dan tunggu sampai karakter K dikirimkan, lalu ambil nilai
SP High Byte.
4. Setelah itu baca nilai RPM sekarang dan kirimkan ke PC.
5. Hitung nilai Error dan dError, tetapi jangan lupa untuk menormalisasikan nilai tersebut.
6. Setelah normalisasi dilakukan maka masukkan kedua nilai yaitu Error dan dError ke
dalam DT-51 PetraFuz.
7. Panggil prosedur fuzzify, lalu ambil hasilnya.
8. Setelah hasil didapatkan, maka hasil itu harus didenormalisasi sehingga akan muncul nilai
crisp output yang sebenarnya.
9. Nilai crisp output kita masukkan sebagai nilai PWM untuk mengatur putaran motor DC
tersebut. Ulangi langkah 4 - 9 sampai nilai RPM yang dinginkan tercapai.

BAB III

PENUTUP
3.1 Kesimpulan

Kesimpulan-kesimpulan tersebut antara lain:


1. Logika fuzzy adalah logika yang mengandung unsur ketidakpastian.
2. Keanggotaan dalam himpunan fuzzy dinyatakan dengan derajat keanggotaan. Suatu nilai
dapat menjadi anggota dua himpunan sekaligus dengan derajat yang berbeda.
3. Kendali logika fuzzy dilakukan dengan proses fuzzyfikasi, penalaran sesuai dengan aturan
dan defuzzyfikasi.
4. Sistem kendali logika fuzzy cukup praktis diaplikasikan dalam berbagai bidang.
5. Program fuzzy yang telah diimplementasikan dalam bahasa pemrograman Java dapat
digunakan sebagai alat bantu untuk menentukan jumlah produk yang dihasilkan
berdasarkan kondisi Suhu, Kebisingan dan Pencahayaan tertentu.

3.1 Saran

Dapat menerapkan Himpunan Fuzzy, proses Fuzzyfikasi dan Defuzzyfikasi dalam


berbagai aplikasi.

DAFTAR PUSTAKA

[1] Rinaldi Munir, Matematika Diskrit Dalam Fuzzy Logic, Penerbit Informatika, 2005
[2] Jannus Maurits Nainggolan, Logika Fuzzy (Fuzzy Logic) : Teori dan Penerapan Pada
Sistem Daya (Kajian Pengaruh Induksi Medan Magnet)
[3] Kusumadewi,Sri.Purnomo,Hari.,Aplikasi Logika Fuzzy untuk Pendukung
Keputusan.Yogyakarta: GRAHA ILMU,2004
[4] Kusumadewi, Sri., Hartati, S., Harjoko, A., dan Wardoyo, R. Fuzzy Multi-Attribute
Decision Making (FUZZY MADM). Yogyakarta: Graha Ilmu, 2006.
Pengertian Kecerdasan Buatan

Pengertian Fuzzy Logic Dan Sejarahnya

Derajat Kebenaran

Variabel Linguistik

Alasan digunakannya Fuzzy Logic

aplikasi Fuzzy Logic

Perbedaan fuzzylogic dan crisp logic

Atribut Fuzzy logic

Database Fuzzy logic

Contoh sistem fuzzy Logic

Implementasi Pemrograman Fuzzy logic


Pengertian Kecerdasan Buatan

Kecerdasan buatan atau kecerdasan yang ditambahkan kepada suatu sistem yang bisa diatur
dalam konteks ilmiah atau Intelegensi Artifisial (bahasa Inggris: Artificial Intelligence atau
hanya disingkat AI) didefinisikan sebagai kecerdasan entitas ilmiah. Sistem seperti ini
umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin
(komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa
macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan
komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.

Pengertian Fuzzy Logic dan Sejarahnya


Sebelumnya munculnya Teori logika fuzzy (fuzzy logic) dikenal sebuah logika tegas (crisp
Logic) yang memiliki nilai benar atau salah secara tegas. Fuzzy Logic adalah peningkatan
dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Saat logika klasik
menyatakan bahwa segala hal dapat diekspresikan dalam istilah biner (0 atau 1, hitam atau
putih, ya atau tidak), Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat
keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti
"sedikit", "lumayan", dan "sangat". Logika ini berhubungan dengan set fuzzy dan teori
kemungkinan. Logika fuzzy diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California,
Berkeley pada 1965 atas usulan teori himpunan fuzzy. Logika fuzzy telah diterapkan pada
berbagai bidang, dari teori kontrol untuk kecerdasan buatan. Logika fuzzy telah diteliti sejak
tahun 1920-an, sebagai nilai yang tak terbatas terutama logika oleh Lukasiewicz dan Tarski.

Jepang adalah negara pertama yang memanfaatkan logika fuzzy untuk aplikasi praktis.
Aplikasi penting pertama adalah di kereta kecepatan tinggi di Sendai, di mana logika fuzzy
mampu meningkatkan ekonomi, kenyamanan, dan ketepatan perjalanan. Hal ini juga telah
digunakan dalam pengakuan simbol tertulis di komputer mini sony; bantuan pesawat
helikopter; mengendalikan sistem kereta bawah tanah dalam rangka meningkatkan
kenyamanan berkendara, ketepatan menghentikan, dan ekonomi kekuasaan; konsumsi hemat
energi untuk ponsel otomatis; kontrol tunggal tombol untuk mesin cuci; kontrol motor
otomatis untuk pembersih vakum dengan pengakuan kondisi permukaan dan tingkat
kekotoran; dan sistem prediksi untuk pengakuan awal dari gempa bumi melalui Institut
Seismologi Biro Metrologi, Jepang

Derajat kebenaran
Logika fuzzy dan logika probabilitas secara matematis sama - keduanya mempunyai nilai
kebenaran yang berkisar antara 0 dan 1 - namun secara konsep berbeda. Logika fuzzy
berbicara mengenai "derajat kebenaran", sedangkan logika probabilitas mengenai
"probabilitas, kecenderungan". Karena kedua hal itu berbeda, logika fuzzy dan logika
probabilitas mempunyai contoh penerapan dalam dunia nyata yang berbeda.
Logika klasik hanya mengizinkan proposisi memiliki nilai kebenaran atau kesalahan.
Gagasan 1 + 1 = 2 adalah kebenaran mutlak, kekal dan matematika. Namun, terdapat
proposisi tertentu dengan jawaban variabel, seperti meminta sebagian orang untuk
mengidentifikasi warna. Gagasan kebenaran tidak jatuh di tengah jalan, tapi lebih pada sarana
yang mewakili dan penalaran lebih pengetahuan parsial ketika diberikan, dengan
menggabungkan semua hasil yang mungkin menjadi spektrum dimensi.

dua derajat kebenaran dan probabilitas berkisar antara 0 dan 1 dan karenanya mungkin
tampak serupa pada awalnya. Sebagai contoh, satu segelas 100 ml mengandung 30 ml air.
Kemudian dapat mempertimbangkan dua konsep: kosong dan penuh. Arti dari masing-
masing dapat direpresentasikan oleh himpunan fuzzy tertentu. Maka salah satu mungkin
mendefinisikan kaca sebagai 0,7 kosong dan 0,3 penuh. Perhatikan bahwa konsep
kekosongan akan subjektif dengan demikian akan tergantung pada pengamat atau desainer.
Desainer lain mungkin, sama baiknya, merancang fungsi keanggotaan set di mana kaca akan
dianggap penuh untuk semua nilai 50 ml. Sangat penting untuk menyadari bahwa logika
fuzzy menggunakan derajat kebenaran sebagai model matematika dari fenomena
ketidakjelasan sementara probabilitas adalah model matematika dari ketidaktahuan.

Sebuah dasar aplikasi mungkin memiliki berbagai ciri sub-rentang variabel kontinu.
Misalnya, pengukuran suhu untuk rem anti-lock mungkin memiliki beberapa fungsi
keanggotaan terpisah, rentang suhu tertentu yang diperlukan untuk mengendalikan rem benar.
Setiap fungsi nilai suhu yang sama untuk nilai kebenaran dalam jangkauan 0-1. Nilai
kebenaran ini kemudian dapat digunakan untuk menentukan bagaimana rem harus dikontrol.

Dalam gambar ini, arti dari ekspresi dingin, hangat, dan panas yang diwakili oleh fungsi
pemetaan skala suhu. Sebuah titik pada skala yang memiliki tiga "nilai kebenaran" - satu
untuk masing-masing dari tiga fungsi. Garis vertikal pada gambar mewakili suhu tertentu
bahwa tiga anak panah (nilai kebenaran) gauge. Karena panah merah poin ke nol, suhu ini
dapat ditafsirkan sebagai "tidak panas". Panah orange (menunjukkan 0.2) dapat
menggambarkannya sebagai "sedikit hangat" dan panah biru (menunjukkan 0,8) "cukup
dingin". Dalam logika matematika, ada beberapa sistem formal "fuzzy logic"; kebanyakan
disebut t-norma logika fuzzy.

variabel linguistik
variabel dalam matematika biasanya mengambil nilai-nilai numerik, dalam aplikasi logika
fuzzy, non-numerik sering digunakan untuk memfasilitasi aturan dan fakta.
Sebuah variabel linguistik seperti usia mungkin memiliki nilai seperti muda atau tua. Namun,
kegunaan besar variabel linguistik bahwa dapat dimodifikasi dengan membatasi linguistik
yang diterapkan untuk hal utama. pembatas nilai linguistik dapat dikaitkan dengan fungsi-
fungsi tertentu. Untuk memperluas Fuzzy logic dengan menambahkan kuantitas universal dan
eksistensial dengan cara serupa yaitu logika predikat dibuat dari logika proposisional.

Contoh:

5. 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.
6. Pelayan restoran memberikan pelayanan terhadap tamu, kemudian tamu akan
memberikan tip yang sesuai atas baik tidaknya pelayanan yang diberikan.
7. Penumpang taksi berkata pada sopir seberapa cepat laju kendaraan yang diinginkan,
sopir taksi akan mengatur pijakan gas taksinya.
8. Anda mengatakan pada saya seberapa sejuk ruangan yang anda inginkan,saya akan
mengatur putaran kipas yang ada pada ruangan ini.

Alasan Digunakannya Fuzzy Logic

Ada beberapa alasan mengapa orang menggunakan logika fuzzy, antara lain:

8. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran
fuzzy sangat sederhana dan mudah dimengerti.
9. Logika fuzzy sangat fleksibel.
10. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat.
11. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.
12. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman para pakar secara
langsung tanpa harus melalui proses pelatihan.
13. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.
14. Logika fuzzy didasarkan pada bahasa alami.

Aplikasi fuzzy Logic

Beberapa aplikasi Fuzzy Logic, antara lain:

15. Pada tahun 1990 pertama kali dibuat mesin cuci dengan logika fuzzy di Jepang
(Matsushita Electric Industrial Company). Sistem fuzzy digunakan untuk menentukan
putaran yang tepat secara otomatis berdasarkan jenis dan banyaknya kotoran serta jumlah
yang akan dicuci. Input yang digunakan adalah: seberapa kotor, jenis kotoran, dan
banyaknya yang dicuci. Mesin ini menggunakan sensor optik , mengeluarkan cahaya ke
air dan mengukur bagaimana cahaya tersebut sampai ke ujung lainnya. Makin kotor,
maka sinar yang sampai makin redup. Disamping itu, sistem juga dapat menentukan jenis
kotoran (daki atau minyak).
16. Transmisi otomatis pada mobil. Mobil Nissan telah menggunakan sistem fuzzy pada
transmisi otomatis, dan mampu menghemat bensin 12 17%.
17. Kereta bawah tanah Sendai mengontrol pemberhentian otomatis pada area tertentu.
18. Ilmu kedokteran dan biologi, seperti sistem diagnosis yang didasarkan pada logika fuzzy,
penelitian kanker, manipulasi peralatan prostetik yang didasarkan pada logika fuzzy, dll.
19. Manajemen dan pengambilan keputusan, seperti manajemen basis data yang didasarkan
pada logika fuzzy, tata letak pabrik yang didasarkan pada logika fuzzy, sistem pembuat
keputusan di militer yang didasarkan pada logika fuzzy, pembuatan games yang
didasarkan pada logika fuzzy, dll.
20. Ekonomi, seperti pemodelan fuzzy pada sistem pemasaran yang kompleks,dll.
21. Klasifikasi dan pencocokan pola.
22. Psikologi, seperti logika fuzzy untuk menganalisis kelakuan masyarakat, pencegahan dan
investigasi kriminal, dll.
23. Ilmu-ilmu sosial, terutam untuk pemodelan informasi yang tidak pasti.
24. Ilmu lingkungan, seperti kendali kualitas air, prediksi cuaca, dll.
25. Teknik, seperti perancangan jaringan komputer, prediksi adanya gempa bumi, dll.
26. Riset operasi, seperti penjadwalan dan pemodelan, pengalokasian, dll.
27. Peningkatan kepercayaan, seperti kegagalan diagnosis, inspeksi dan monitoring
produksi.
28. sebagai alat bantu pengambil keputusan seperti proses pembuatan program fuzzy logic
dalam bahasa pemrograman Java yang diaplikasikan untuk menentukan Jumlah Produk
yang dihasilkan berdasarkan kondisi Suhu, Kebisingan dan Pencahayaan. Implementasi
bahasa pemrograman Java untuk pembentukan fungsi keanggotaan, proses penalaran
fuzzy metode Sugeno, proses fuzzifikasi dan defuzzifikasi. Program diuji terhadap suatu
kondisi Suhu, Kebisingan dan Pencahayaan tertentu untuk mengetahui hasilnya.

Perbedaan Fuzzy Logic (logika Fuzzy) dengan Crisp Logic (Logika Tegas)

logika tegas memiliki nilai tidak = 0.0 dan ya = 1.0, sedangkan logika fuzzy memiliki nilai
antara 0.0 hingga 1.0. Secara grafik perbedaan antara logika tegas dan logika fuzzy
ditunjukkan oleh gambar di bawah ini :

Gambar 1: Logika Tegas (Crisp Logic)


Gambar 2: Logika Fuzzy (Fuzzy Logic)

Didalam Gambar 1 Crisp Logic, apabila X lebih dari atau sama dengan 10 baru dikatakan
benar yaitu bernilai Y=1 , sebaliknya nilai X yang kurang dari 10 adalah salah yaitu Y=0,
maka angka 9 atau 8 atau 7 dan seterusnya dalah dikatakan salah.

Didalam Gambar 2 Fuzzy Logic, apabila nilai X=9, atau 8 atau 7 atau antara nilai 0 dan 10
adalah dikatakan ada benarnya dan ada juga salahnya.

Atribut Fuzzy Logic

Linguistik : yaitu nama suatu kelompok yang mewakili suatu keadaan tertentu dengan
menggunakan bahasa alami, misalnya DINGIN, SEJUK, PANAS, dsb.

Numeris : yaitu suatu nilai yang menunjukkan ukuran dari suatu variabel, misalnya 10, 35,
40 dsb.
Contoh :

a. Variabel umur, terbagi menjadi 3 himpunan fuzzy, yaitu: MUDA, PAROBAYA, dan TUA.

b. Variabel temperatur, terbagi menjadi 5 himpunan fuzzy, yaitu: DINGIN, SEJUK,


NORMAL, HANGAT, dan PANAS.

Gambar 3. Himpunan Fuzzy Untuk variabel Umur

Dalam fuzzy logic variabel yang bersifat kabur tersebut direpresentasikan sebagai sebuah
himpunan yang anggotanya adalah suatu nilai crisp dan derajat keanggotaannya (membership
function) dalam himpunan tersebut
Proses-proses dalam fuzzy logic adalah fuzzifikasi, penalaran (reasoning), dan defuzzifikasi:

Fuzzifikasi: merupakan proses untuk mendapatkan derajat keanggotaan dari sebuah nilai
numerik masukan (crisp)

Penalaran: proses untuk mendapatkan aksi keluaran dari suatu kondisi input dengan
mengikuti aturan-aturan (IF-THEN Rules) yang telah ditetapkan yang disebut sebagai
inference/reasoning.

Defuzzifikasi: proses untuk merubah hasil penalaran yang berupa derajat keanggotaan
keluaran menjadi variabel numerik kembali.

Blok diagram proses fuzzy logic ditunjukkan pada Gambar 4.

Gambar 4: Blok diagram proses dalam fuzzy logic

Database Fuzzy

Setelah relationship fuzzy ditentukan, untuk mengembangkan database relasional fuzzy.


Pertama database relasional fuzzy, FRDB(fuzzy relational database) dipaparkan dalam tesis
Maria Zemankova ini. Kemudian, beberapa model lain muncul seperti model Buckles-Petry,
Model Prade-Testemale, model umano-Fukami atau model GEFRED oleh JM Medina, MA
Vila dkk. Dalam konteks database fuzzy, beberapa bahasa query fuzzy sudah ditentukan,
dipaparkan SQLf oleh P. Bosc dkk. dan FSQL oleh J. Galindo dkk. Bahasa-bahasa ini
menentukan beberapa struktur dengan tujuan untuk menyertakan aspek fuzzy dalam laporan
SQL, seperti ketentuan fuzzy, pembanding fuzzy, konstanta fuzzy, kendala fuzzy, ambang
batas fuzzy, label linguistik dan sebagainya.

Contoh Sistem Fuzzy Logic

Mari kita mempertimbangkan sistem pendingin udara dengan 5-level sistem logika fuzzy.
Sistem ini menyesuaikan suhu AC dengan membandingkan suhu kamar dan nilai suhu target.
Algoritma:

Mendefinisikan variabel linguistik dan istilah.


Merekonstruksi fungsi keanggotaan
Merekonstruksi aturan dasar basis pengetahuan.
Mengkonversi Crisp data menjadi data set fuzzy menggunakan fungsi keanggotaan.
(fuzzifikasi)
Mengevaluasi aturan dalam aturan basis. (mesin antarmuka)
Menggabungkan hasil dari setiap aturan. (mesin antarmuka)
Mengkonversi data output ke nilai-nilai non-fuzzy. (defuzzifikasi)
Langkah 1: Mendefinisikan variabel linguistik dan istilah.
Variabel linguistik yang input dan output dalam bentuk kata-kata sederhana atau kalimat.
Untuk suhu kamar, dingin, hangat, panas, dll, adalah istilah linguistik.
Suhu (t) = {sangat dingin, dingin, hangat, sangat-hangat, panas}
Setiap anggota dari himpunan ini adalah istilah linguistik dan dapat menutupi beberapa
bagian dari nilai suhu keseluruhan.
Langkah 2: Merekonstruksi fungsi keanggotaan
Fungsi keanggotaan variabel suhu seperti yang ditunjukkan

Langkah 3: Merekonstruksi aturan dasar basis pengetahuan.


Membuat matriks nilai-nilai suhu kamar terhadap nilai-nilai suhu target itu sistem pendingin
udara ini diharapkan dapat memberikan:
Target Sangat Dingin Hangat Panas Sangat
Dingin Panas
Sangat Tidak ada Panas Panas Panas Panas
Dingin perubahan
Dingin Dingin Tidak ada Panas Panas Panas
perubahan
Hangat Dingin Dingin Tidak ada Panas Panas
perubahan
Panas Dingin Dingin Dingin Tidak ada Panas
perubahan
Sangat Dingin Dingin Dingin Dingin Tidak ada
panas perubahan

Membuat satu set aturan dalam basis pengetahuan dalam bentuk struktur IF-THEN-ELSE
Sr No Kondisi Tindakan
1 IF temperature=(Cold OR Very_Cold) AND Panas
target=Warm THEN
2 IF temperature=(Hot OR Very_Hot) AND Dingin
target=Warm THEN
3 IF (temperature=Warm) AND (target=Warm) Tidak ada perubahan
THEN

Langkah 4: Mendapatkan nilai fuzzy


Operasi himpunan fuzzy melakukan mengevaluasi aturan. Operasi digunakan untuk OR dan
AND adalah masing masing Max dan Min. gabungkan semua hasil evaluasi untuk
membentuk hasil akhir. Hasil ini adalah nilai fuzzy.
Langkah 5: Lakukan defuzzifikasi
Defuzzifikasi dilakukan sesuai dengan fungsi keanggotaan untuk variabel output.

Implementasi Pemrograman Fuzzy Logic


Salah satu aplikasi fuzzy logic adalah sebagai alat bantu dalam pengambil keputusan. Berikut
adalah contoh Aplikasi Logika Fuzzy untuk Pendukung Keputusan Suatu penelitian
dilakukan untuk mencari jumlah produksi berdasarkan pengaruh faktor suhu, kebisingan dan
pencahayaan. Dalam penelitian ini ada 30 pekerja yang masing-masing melakukan 27 kali
percobaan dengan kombinasi suhu (oC), kebisingan (dB) dan pencahayaan (lux) yang berbeda
untuk menghasilkan sejumlah produk. Banyaknya data yang diperoleh sejumlah 30x27 data =
810 data. Dari ketigapuluh data untuk setiap kombinasi diambil nilai rata-ratanya, sehingga
data yang akan diolah tinggal 27 data. Fuzzy logic dipergunakan untuk menentukan rata-
rata jumlah produk yang dihasilkan untuk kondisi Suhu, Kebisingan dan Pencahayaan
tertentu.
Untuk menyimpan data rata-rata produk, dibuat class yang bernama Produk yang propertinya
adalah sebuah array yang bernama rata_rata_produk dan constructor untuk mengisi array
dengan data.
class Produk{

double [] rata_rata_product;

Produk(){
rata_rata_product = new double[27];

rata_rata_product[0] = 148.00;

rata_rata_product[1] = 150.90;

rata_rata_product[2] = 146.50;

rata_rata_product[3] = 143.10;

rata_rata_product[4] = 146.53;

rata_rata_product[5] = 142.73;

rata_rata_product[6] = 136.73;

rata_rata_product[7] = 140.77;

rata_rata_product[8] = 135.97;

rata_rata_product[9] = 149.73;

rata_rata_product[10] = 153.27;

rata_rata_product[11] = 152.13;

rata_rata_product[12] = 148.00;

rata_rata_product[13] = 150.63;

rata_rata_product[14] = 147.63;

rata_rata_product[15] = 141.47;

rata_rata_product[16] = 145.67;

rata_rata_product[17] = 140.20;

rata_rata_product[18] = 142.10;

rata_rata_product[19] = 146.53;

rata_rata_product[20] = 142.17;

rata_rata_product[21] = 138.70;

rata_rata_product[22] = 141.40;

rata_rata_product[23] = 138.30;

rata_rata_product[24] = 133.33;
rata_rata_product[25] = 138.53;

rata_rata_product[26] = 133.77;
}
}

Listing program 1. Implementasi class Produk

Seperti yang telah dijelaskan sebelumnya bahwa ada 3 variabel yang berpengaruh yaitu Suhu,
Kebisingan dan Pencahayaan. Fungsi keanggotaan yang digunakan adalah segitiga. Yang
pertama adalah variabel Suhu yang fungsi keanggotaannya ditunjukkan pada Gambar 2 dan
implementasi programnya adalah class Suhu yang ditunjukkan pada Listing program 2. Ada 3
kondisi Suhu yaitu Rendah, Normal, dan Tinggi.

[SUHU]
[SUHU (oC)]
Gambar 2. Fungsi keanggotaan variabel Suhu

Fungsi keangootaan variabel Suhu adalah sebagai berikut:


l class Suhu{
public double data_suhu;
private double rendah(){
if((data_suhu>=18)&&(data_suhu<=22)){
return (data_suhu - 18.0) / 4.0;
}
else if((data_suhu>=22)&&(data_suhu<=26)){
return (26.0 - data_suhu) / 4.0;
}
else{
return 0;
}
}
private double normal(){
if((data_suhu>=22)&&(data_suhu<=26)){
return (data_suhu - 22.0) / 4.0;
}
else if((data_suhu>=26)&&(data_suhu<=32)){
return (32.0 - data_suhu) / 6.0;
}
else{
return 0;
}
}
private double tinggi(){
if((data_suhu>=26)&&(data_suhu<=32)){
return (data_suhu - 26.0) / 6.0;
}
else if((data_suhu>=32)&&(data_suhu<=38)){
return (38.0 - data_suhu) / 6.0;
}
else{
return 0;
}
}
}

Listing program 2. Implementasi class Suhu

Fungsi keanggotaan Kebisingan dan implementasi programnya di class Kebisingan ditunjukkan


pada Gambar 3 dan Listing program 3.

[KEBISINGAN]
[KEBISINGAN (dB)]
Gambar 3. Fungsi keanggotaan variabel Kebisingan

Persamaan fungsi keanggotaan dari gambar diatas adalah sebagai berikut:

class Kebisingan{
public double data_kebisingan;
private double tenang(){
if((data_kebisingan>=35)&&(data_kebisingan<=55)){
return (data_kebisingan - 35.0) / 20.0;
}
else if((data_kebisingan>=55)&&(data_kebisingan<=75)){
return (75.0 - data_kebisingan) / 20.0;
}
else{
return 0;
}
}
private double agakbising(){
if((data_kebisingan>=55)&&(data_kebisingan<=75)){
return (data_kebisingan - 55.0) / 20.0;
}
else if((data_kebisingan>=75)&&(data_kebisingan<=90)){
return (90.0 - data_kebisingan) / 15.0;
}
else{
return 0;
}
}
private double bising(){
if((data_kebisingan>=75)&&(data_kebisingan<=90)){
return (data_kebisingan - 75.0) / 15.0;
}
else if((data_kebisingan>=90)&&(data_kebisingan<=105)){
return (105.0 - data_kebisingan) / 15.0;
}
else{
return 0;
}
}
}

Listing program 3. Implementasi class Kebisingan

Fungsi keanggotaan Pencahayaan dan implementasi programnya di class Pencahayaan ditunjukkan


pada Gambar 4 dan Listing program 4.
[PENCAHAYAAN]
[PENCAHAYAAN (lux)]
Gambar 4. Fungsi keanggotaan variabel Pencahayaan

Persamaan fungsi keanggotaan dari gambar diatas adalah sebagai berikut:

class Pencahayaan{
public double data_pencahayaan;
private double redup(){
if((data_pencahayaan>=0)&&(data_pencahayaan<=150)){
return (data_pencahayaan / 15.0);
}
else if((data_pencahayaan>=150)&&(data_pencahayaan<=300)){
return (300.0 - data_pencahayaan) / 150.0;
}
else{
return 0;
}
}
private double agakterang(){
if((data_pencahayaan>=150)&&(data_pencahayaan<=300)){
return ((data_pencahayaan - 150.0) / 150.0);
}
else if((data_pencahayaan>=300)&&(data_pencahayaan<=500)){
return (500.0 - data_pencahayaan) / 200.0;
}
else{
return 0;
}
}
private double terang(){
if((data_pencahayaan>=300)&&(data_pencahayaan<=500)){
return ((data_pencahayaan - 300.0) / 200.0);
}
else if((data_pencahayaan>=500)&&(data_pencahayaan<=700)){
return (700.0 - data_pencahayaan) / 200.0;
}
else{
return 0;
}
}
}

Listing program 4. Implementasi class Pencahayaan

Untuk menghitung derajat keanggotaan dari suatu nilai crisp Suhu, Kebisingan dan Pencahayaan yang
disimpan dalam variabel yang bernama kondisi_suhu, kondisi_kebisingan,
kondisi_pencahayaan dibuatlah fungsi untuk memanggil kelas Suhu, Kebisingan dan
Pencahayaan dan memanggil prosedur untuk menghitung derajat keanggotaan dalam kelas tersebut,
yang diimplemetasikan dalam program sebagai prosedur Compute_membership() yang ditunjukkan
pada Listing program 5.
private void Compute_Membership(){

suhu = new Suhu();

kebisingan = new Kebisingan();

pencahayaan = new Pencahayaan();

suhu.data_suhu = kondisi_suhu;

u_suhu_rendah = suhu.rendah();

u_suhu_normal = suhu.normal();

u_suhu_tinggi = suhu.tinggi();

kebisingan.data_kebisingan = kondisi_kebisingan;

u_kebisingan_tenang = kebisingan.tenang();

u_kebisingan_agakbising = kebisingan.agakbising();

u_kebisingan_bising = kebisingan.bising();

pencahayaan.data_pencahayaan = kondisi_pencahayaan;

u_pencahayaan_redup = pencahayaan.redup();

u_pencahayaan_agakterang = pencahayaan.agakterang();

u_pencahayaan_terang = pencahayaan.terang();

}
Listing program 5. Implementasi fungsi untuk menghitung nilai derajat keanggotaan
dari suatu nilai crisp

Model fuzzy yang digunakan dalam bahasan ini adalah metode Sugeno, oleh karena itu output sistem
adalah berupa konstanta yaitu Rata-rata jumlah produk. Ada 27 aturan yang telah dibuat yang
diimplementasikan dalam program sebagai prosedur Apply_rule() dan listing programnya
ditunjukkan pada Listing program 6.
Aturan:
[1] IF Suhu RENDAH and Kebisingan TENANG and Pencahayaan REDUP THEN Rata-rata Jumlah
Produk = 148.0
[2] IF Suhu RENDAH and Kebisingan TENANG and Pencahayaan AGAK TERANG THEN Rata-
rata Jumlah Produk = 150.9
[3] IF Suhu RENDAH and Kebisingan TENANG and Pencahayaan TERANG THEN Rata-rata
Jumlah Produk = 146.5
[4] IF Suhu RENDAH and Kebisingan AGAK BISING and Pencahayaan REDUP THEN Rata-rata
Jumlah Produk = 143.1
[5] IF Suhu RENDAH and Kebisingan AGAK BISING and Pencahayaan AGAK TERANG THEN
Rata-rata Jumlah Produk = 146.53
[6] IF Suhu RENDAH and Kebisingan AGAK BISING and Pencahayaan TERANG THEN Rata-rata
Jumlah Produk = 142.73
[7] IF Suhu RENDAH and Kebisingan BISING and Pencahayaan REDUP THEN Rata-rata Jumlah
Produk = 136.73
[8] IF Suhu RENDAH and Kebisingan BISING and Pencahayaan AGAK TERANG THEN Rata-rata
Jumlah Produk = 140.77
[9] IF Suhu RENDAH and Kebisingan BISING and Pencahayaan TERANG THEN Rata-rata Jumlah
Produk = 135.97
[10] IF Suhu NORMAL and Kebisingan TENANG and Pencahayaan REDUP THEN Rata-rata
Jumlah Produk = 149.73
[11] IF Suhu NORMAL and Kebisingan TENANG and Pencahayaan AGAK TERANG THEN Rata-
rata Jumlah Produk = 153.27
[12] IF Suhu NORMAL and Kebisingan TENANG and Pencahayaan TERANG THEN Rata-rata
Jumlah Produk = 152.13
[13] IF Suhu NORMAL and Kebisingan AGAK BISING and Pencahayaan REDUP THEN Rata-rata
Jumlah Produk = 148
[14] IF Suhu NORMAL and Kebisingan AGAK BISING and Pencahayaan AGAK TERANG THEN
Rata-rata Jumlah Produk = 150.63
[15] IF Suhu NORMAL and Kebisingan AGAK BISING and Pencahayaan TERANG THEN Rata-
rata Jumlah Produk = 147.63
[16] IF Suhu NORMAL and Kebisingan BISING and Pencahayaan REDUP THEN Rata-rata Jumlah
Produk = 141.47
[17] IF Suhu NORMAL and Kebisingan BISING and Pencahayaan AGAK TERANG THEN Rata-
rata Jumlah Produk = 145.67
[18] IF Suhu NORMAL and Kebisingan BISING and Pencahayaan AGAK TERANG THEN Rata-
rata Jumlah Produk = 140.2
[19] IF Suhu TINGGI and Kebisingan TENANG and Pencahayaan REDUP THEN Rata-rata Jumlah
Produk = 142.10
[20] IF Suhu TINGGI and Kebisingan TENANG and Pencahayaan AGAK TERANG THEN Rata-rata
Jumlah Produk = 146.53

[21] IF Suhu TINGGI and Kebisingan TENANG and Pencahayaan TERANG THEN Rata-rata
Jumlah Produk = 142.17
[22] IF Suhu TINGGI and Kebisingan AGAK BISING and Pencahayaan REDUP THEN Rata-rata
Jumlah Produk = 138.7
[23] IF Suhu TINGGI and Kebisingan AGAK BISING and Pencahayaan AGAK TERANG THEN
Rata-rata Jumlah Produk = 141.4
[24] IF Suhu TINGGI and Kebisingan AGAK BISING and Pencahayaan TERANG THEN Rata-rata
Jumlah Produk = 138.3
[25] IF Suhu TINGGI and Kebisingan BISING and Pencahayaan REDUP THEN Rata-rata Jumlah
Produk = 133.33
[26] IF Suhu TINGGI and Kebisingan BISING and Pencahayaan AGAK TERANG THEN Rata-rata
Jumlah Produk = 138.33
[27] IF Suhu TINGGI and Kebisingan BISING and Pencahayaan TERANG THEN Rata-rata Jumlah
Produk = 133.77

private void Apply_Rule(){


output_rule = new double[27];
u_output = new double[27];
produk = new Produk();

//IF Suhu RENDAH and Kebisingan TENANG and Pencahayaan REDUP THEN Rata-rata product = 148.00;
output_rule[0] = Find_Min(u_suhu_rendah, u_kebisingan_tenang, u_pencahayaan_redup);
u_output[0] = produk.rata_rata_product[0];
//IF Suhu RENDAH and Kebisingan TENANG and Pencahayaan AGAKTERANG THEN Rata-rata product = 150.90;
output_rule[1]=Find_Min(u_suhu_rendah,u_kebisingan_tenang,u_pencahayaan_agakterang)
;
u_output[1] = produk.rata_rata_product[1];

//IF Suhu RENDAH and Kebisingan TENANG and Pencahayaan TERANG THEN Rata-rata product = 146.50;
output_rule[2] = Find_Min(u_suhu_rendah, u_kebisingan_tenang,
u_pencahayaan_terang);
u_output[2] = produk.rata_rata_product[2];

//IF Suhu RENDAH and Kebisingan AGAKBISING and Pencahayaan REDUP THEN Rata-rata product = 143.10;
output_rule[3]=Find_Min(u_suhu_rendah, u_kebisingan_agakbising,
u_pencahayaan_redup);
u_output[3] = produk.rata_rata_product[3];

//IF Suhu RENDAH and Kebisingan AGAKBISING and Pencahayaan AGAKTERANG THEN Rata-rata product = 146.53;
output_rule[4]=Find_Min(u_suhu_rendah,u_kebisingan_agakbising,u_pencahayaan_agakter
ang);
u_output[4] = produk.rata_rata_product[4];

//IF Suhu RENDAH and Kebisingan AGAKBISING and Pencahayaan TERANG THEN Rata-rata product = 142.73;
output_rule[5] = Find_Min(u_suhu_rendah, u_kebisingan_agakbising,
u_pencahayaan_terang);
u_output[5] = produk.rata_rata_product[5];

//IF Suhu RENDAH and Kebisingan BISING and Pencahayaan REDUP THEN Rata-rata product = 136.73;
output_rule[6] = Find_Min(u_suhu_rendah, u_kebisingan_bising, u_pencahayaan_redup);
u_output[6] = produk.rata_rata_product[6];

//IF Suhu RENDAH and Kebisingan BISING and Pencahayaan AGAKTERANG THEN Rata-rata product = 140.77;
output_rule[7] = Find_Min(u_suhu_rendah, u_kebisingan_bising,
u_pencahayaan_agakterang);
u_output[7] = produk.rata_rata_product[7];

//IF Suhu RENDAH and Kebisingan BISING and Pencahayaan TERANG THEN Rata-rata product = 135.97;
output_rule[8] = Find_Min(u_suhu_rendah, u_kebisingan_bising,
u_pencahayaan_terang);
u_output[8] = produk.rata_rata_product[8];

//IF Suhu NORMAL and Kebisingan TENANG and Pencahayaan REDUP THEN Rata-rata product = 149.73;
output_rule[9] = Find_Min(u_suhu_normal, u_kebisingan_tenang, u_pencahayaan_redup);
u_output[9] = produk.rata_rata_product[9];

//IF Suhu NORMAL and Kebisingan TENANG and Pencahayaan AGAKTERANG THEN Rata-rata product = 153.27;
output_rule[10]=Find_Min(u_suhu_normal,
u_kebisingan_tenang,u_pencahayaan_agakterang);
u_output[10] = produk.rata_rata_product[10];

//IF Suhu NORMAL and Kebisingan TENANG and Pencahayaan TERANG THEN Rata-rata product = 152.13;
output_rule[11] = Find_Min(u_suhu_normal, u_kebisingan_tenang,
u_pencahayaan_terang);
u_output[11] = produk.rata_rata_product[11];

//IF Suhu NORMAL and Kebisingan AGAKBISING and Pencahayaan REDUP THEN Rata-rata product = 148.00;
output_rule[12]=Find_Min(u_suhu_normal, u_kebisingan_agakbising,
u_pencahayaan_redup);
u_output[12] = produk.rata_rata_product[12];

//IF Suhu NORMAL and Kebisingan AGAKBISING and Pencahayaan AGAKTERANG THEN Rata-rata product = 150.63;
output_rule[13] = Find_Min(u_suhu_normal, u_kebisingan_agakbising,
u_pencahayaan_agakterang);
u_output[13] = produk.rata_rata_product[13];

//IF Suhu NORMAL and Kebisingan AGAKBISING and Pencahayaan TERANG THEN Rata-rata product = 147.63;
output_rule[14]=Find_Min(u_suhu_normal,u_kebisingan_agakbising,
u_pencahayaan_terang);
u_output[14] = produk.rata_rata_product[14];

//IF Suhu NORMAL and Kebisingan BISING and Pencahayaan REDUP THEN Rata-rata product = 141.47;
output_rule[15] = Find_Min(u_suhu_normal, u_kebisingan_bising,
u_pencahayaan_redup);
u_output[15] = produk.rata_rata_product[15];

//IF Suhu NORMAL and Kebisingan BISING and Pencahayaan AGAKTERANG THEN Rata-rata product = 145.67;
output_rule[16]=Find_Min(u_suhu_normal,u_kebisingan_bising,
u_pencahayaan_agakterang);
u_output[16] = produk.rata_rata_product[16];

//IF Suhu NORMAL and Kebisingan BISING and Pencahayaan TERANG THEN Rata-rata product = 140.20;
output_rule[17] = Find_Min(u_suhu_normal, u_kebisingan_bising,
u_pencahayaan_terang);
u_output[17] = produk.rata_rata_product[17];

//IF Suhu TINGGI and Kebisingan TENANG and Pencahayaan REDUP THEN Rata-rata product = 142.10;
output_rule[18] = Find_Min(u_suhu_tinggi, u_kebisingan_tenang,
u_pencahayaan_redup);
u_output[18] = produk.rata_rata_product[18];
//IF Suhu TINGGI and Kebisingan TENANG and Pencahayaan AGAKTERANG THEN Rata-rata product = 146.53;
output_rule[19]=Find_Min(u_suhu_tinggi, u_kebisingan_tenang,
u_pencahayaan_agakterang);
u_output[19] = produk.rata_rata_product[19];

//IF Suhu TINGGI and Kebisingan TENANG and Pencahayaan TERANG THEN Rata-rata product = 142.17;
output_rule[20] = Find_Min(u_suhu_tinggi, u_kebisingan_tenang,
u_pencahayaan_terang);
u_output[20] = produk.rata_rata_product[20];

//IF Suhu TINGGI and Kebisingan AGAKBISING and Pencahayaan REDUP THEN Rata-rata product = 138.70;
output_rule[21]= Find_Min(u_suhu_tinggi, u_kebisingan_agakbising,
u_pencahayaan_redup);
u_output[21] = produk.rata_rata_product[21];

//IF Suhu TINGGI and Kebisingan AGAKBISING and Pencahayaan AGAKTERANG THEN Rata-rata product = 141.40;
output_rule[22] = Find_Min(u_suhu_tinggi, u_kebisingan_agakbising,
u_pencahayaan_agakterang);
u_output[22] = produk.rata_rata_product[22];

//IF Suhu TINGGI and Kebisingan AGAKBISING and Pencahayaan TERANG THEN Rata-rata product = 138.30;
output_rule[23]=Find_Min(u_suhu_tinggi, u_kebisingan_agakbising,
u_pencahayaan_terang);
u_output[23] = produk.rata_rata_product[23];

//IF Suhu TINGGI and Kebisingan BISING and Pencahayaan REDUP THEN Rata-rata product = 133.33;
output_rule[24] = Find_Min(u_suhu_tinggi, u_kebisingan_bising,
u_pencahayaan_redup);
u_output[24] = produk.rata_rata_product[24];

//IF Suhu TINGGI and Kebisingan BISING and Pencahayaan AGAKTERANG THEN Rata-rata product = 138.33;
output_rule[25]=Find_Min(u_suhu_tinggi, u_kebisingan_bising,
u_pencahayaan_agakterang);
u_output[25] = produk.rata_rata_product[25];

/IF Suhu TINGGI and Kebisingan BISING and Pencahayaan TERANG THEN Rata-rata product = 133.77;
output_rule[26] = Find_Min(u_suhu_tinggi, u_kebisingan_bising,
u_pencahayaan_terang);
u_output[26] = produk.rata_rata_product[26];

Listing kode 6. Implementasi penalaran fuzzy

Implementasi aturan AND dalam program adalah dengan mendapatkan nilai minimum dari derajat
keanggotaan Suhu, Kebisingan dan Pencahayaan. Untuk itu dibuatlah prosedur Find_Min() yang
fungsinya untuk mendapatkan nilai minimum dalam suatu array seperti ditunjukkan pada Listing
program 7.
private double Find_Min(double a, double b, double c){

double result;

List<Double> list = new ArrayList<Double>(3);

list.add(a);

list.add(b);

list.add(c);

result = Collections.min(list);

return result;

Listing program 7. Implementasi prosedur Find_Min()

Untuk mendapatkan nilai keluaran atau keputusan dari fuzzy digunakan metode weighted average
yang persamaannya adalah sebagai berikut:

Dimana nilai n adalah sama dengan jumlah aturan yaitu 27. Persamaan tersebut diatas dalam program
diimplementasikan dalam prosedur Compute_Output() yang ditunjukkan pada Listing program 8.
private void Compute_Output(){

double z = 0;

double temp1 = 0;

double temp2 = 0;

for(int i=0;i<27;i++){

temp1 += output_rule[i] * u_output[i];

temp2 += output_rule[i];

z = temp1 / temp2;

System.out.println("Fuzzy Out:" + z);

Listing program 8. Implementasi prosedur Compute_Output()


Selanjutnya dibuat prosedur Run_Fuzzy() untuk memanggil prosedur-prosedur fuzzy yang telah
dibuat sebelumnya sesuai dengan langkah-langkah dalam fuzzy logic seperti yang telah ditunjukkan
pada Gambar 1, yang implementasi programnya ditunjukkan pada Listing program 9.
public void RunFuzzy(){

Compute_Membership();

Apply_Rule();

Compute_Output();

Listing program 9. Implementasi prosedur Run_Fuzzy()

Untuk mengetahui hasil program fuzzy yang telah dibuat maka diuji dengan suatu nilai crisp tertentu.
Sebagai contoh dalam kasus ini kondisi suhu = 25 oC, kebisingan = 86 dB dan tingkat pencahayaan =
350 lux, maka akan didapatkan hasil output program fuzzy adalah jumlah produk sama dengan 148.
Prosedur untuk memasukkan nilai crisp dan memanggil program fuzzy ditunjukkan pada Listing 10.
public static void main(String[] args){

ProjectFuzzy projectfuzzy = new ProjectFuzzy();

projectfuzzy.kondisi_suhu = 22;

System.out.println("Suhu:" + projectfuzzy.kondisi_suhu);

projectfuzzy.kondisi_kebisingan = 55;

System.out.println("Kebisingan:" + projectfuzzy.kondisi_kebisingan);

projectfuzzy.kondisi_pencahayaan = 150;

System.out.println("Pencahayaan:" + projectfuzzy.kondisi_pencahayaan);

projectfuzzy.RunFuzzy();

Listing 10. Contoh penerapan program fuzzy dengan suatu nilai crisp
Kesimpulan
Program fuzzy yang telah diimplementasikan dalam bahasa pemrograman Java dapat digunakan
sebagai alat bantu untuk menentukan jumlah produk yang dihasilkan berdasarkan kondisi Suhu,
Kebisingan dan Pencahayaan tertentu.
BASIS DATA FUZZY
Sebagian besar basis data standar diklasifikasikan berdasarkan bagaimana data
tersebut dipandang oleh user. Misalkan kita memiliki data karyawan yang
tersimpan pada tabel DT_KARYAWAN dengan field NIP, nama, tgl lahir, th masuk,
dan gaji per bulan seperti pada Tabel 1.
Tabel 7.1 Data mentah karyawan.
NIP Nama Tgl Lahir Th. Masuk Gaji/bl (Rp)
01 Lia 03-06-1972 1996 750.000
02 Iwan 23-09-1954 1985 1.500.000
03 Sari 12-12-1966 1988 1.255.000
04 Andi 06-03-1965 1998 1.040.000
05 Budi 04-12-1960 1990 950.000
06 Amir 18-11-1963 1989 1.600.000
07 Rian 28-05-1965 1997 1.250.000
08 Kiki 09-07-1971 2001 550.000
09 Alda 14-08-1967 1999 735.000
10 Yoga 17-09-1977 2000 860.000

Kemudian dari tabel DT_KARYAWAN, kita oleh menjadi suatu tabel temporer
untuk menghitung umur karyawan dan masa kerjanya. Tabel tersebut kita beri
nama dengan tabel KARYAWAN (Tabel 7.2)
Tabel 7.2 Data karywan setelah diolah.
NIP Nama Umur (th) Masa Kerja (th)* Gaji/bl
01 Lia 30 6 750.000
02 Iwan 48 17 1.500.000
03 Sari 36 14 1.255.000
04 Andi 37 4 1.040.000
05 Budi 42 12 950.000
06 Amir 39 13 1.600.000
*Misal sekarang tahun 2002
Dengan menggunakan basisdata standar, kita dapat mencari data-data karyawan
dengan spesifikasi tertentu dengan menggunakan query. Misal kita ingin
mendapatkan informasi tentang nama-nama karyawan yang usianya kurang dari
35 tahun, maka kita bisa ciptakan suatu query:
SELECT NAMA
FROM KARYAWAN
WHERE (Umur < 35)
sehingga muncul nama-nama Lia, Kiki, dan Yoga. Apabila kita ingin mendapatkan
informasi tentang nama-nama karyawan yang gajinya lebih dari 1 juta rupiah,
maka kita bisa ciptakan suatu query:
SELECT NAMA
FROM KARYAWAN
WHERE (Gaji > 1000000)
sehingga muncul nama-nama Iwan, Sari, Andi, Amir, dan Rian. Apabila kita ingin
mendapatkan unformasi tentang nama-nama karyawan yang yang masa kerjanya
kurang dari atau sama dengan 5 tahun tetapi gajinya sudah lebih dari 1 juta
rupiah, maka kita bisa ciptakan suatu query:
SELECT NAMA
FROM KARYAWAN
WHERE (MasaKerja <= 5) and (Gaji > 1000000)
sehingga muncul nama-nama Andi dan Rian.
Pada kenyataannya, seseorang kadang membutuhkan informasi dari data-data
yang bersifat ambiguous. Apabila hal ini terjadi, maka kita menggunakan
basisdata fuzzy. Selama ini, sudah ada beberapa penelitian tentang basisdata
fuzzy. Salah satu diantaranya adalah model Tahani. Basisdata fuzzy model Tahani
masih tetap menggunakan relasi standar, hanya saja model ini menggunakan
teori himpunan fuzzy untuk mendapatkan informasi pada query-nya.
Misalkan kita mengkategorikan usia karyawan diatas ke dalam himpunan: MUDA,
PAROBAYA, dan TUA (Gambar 7.43)
Fungsi keanggotaan:

0; 40
; 30 40
10
40
1; 30
[]
x
x
x
x
x MUDA

; 45 50
5
50
; 35 45
10
35
0; 35 50
[]
x
x
x
x
x atau x
x PAROBAYA

1; 50
; 40 50
10
40
0; 40
[]
x
x
x
x
x TUA
Tabel 7.3 menunjukkan tabel karyawan berdasarkan umur dengan derajat
keanggotannya pada setiap himpunan.
NIP Nama Umur
MUDA PAROBAYA TUA
01 Lia 30 1 0 0
02 Iwan 48 0 0,4 0,8
03 Sari 36 0,4 0,1 0
04 Andi 37 0,3 0,2 0
05 Budi 42 0 0,7 0,2
06 Amir 39 0,1 0,4 0
07 Rian 37 0,3 0,2 0
08 Kiki 32 0,8 0 0
09 Alda 35 0,5 0 0
10 Yoga 25 1 0 0

Variabel Masa Kerja bisa dikategorikan dalam himpunan: BARU dan LAMA
(Gambar 7.44)

Fungsi keanggotaan:

0; 15
; 5 15
10
15
1; 5
[]
y
y
y
y
y BARU

1; 25
; 10 25
15
10
0; 10
[]
y
y
y
y
y LAMA
Tabel 7.4 menunjukkan tabel karyawan berdasarkan umur dengan derajat
keanggotannya pada setiap himpunan.
Tabel 7.4 KARYAWAN berdasarkan Masa Kerja.
Derajat Keanggotaan ( [y])
NIP Nama Masa Kerja
BARU LAMA
01 Lia 6 0,9 0
02 Iwan 17 0 0,467
03 Sari 14 0,1 0,267
04 Andi 4 1 0
05 Budi 12 0,3 0,133
06 Amir 13 0,2 0,200
07 Rian 5 1 0
08 Kiki 1 1 0
09 Alda 3 1 0
10 Yoga 2 1 0

Variabel Gaji bisa dikategorikan dalam himpunan: RENDAH, SEDANG, dan TINGGI
(Gambar 7.45).

Fungsi Keanggotaan:

0; 800
; 300 800
500
800
1; 300
[]
z
z
z
z
z RENDAH

1; 2000
; 1000 2000
1000
1000
0; 1000
[]
z
z
z
z
z TINGGI
Tabel 7.5 menunjukkan tabel karyawan berdasarkan umur dengan derajat
keanggotannya pada setiap himpunan.
Tabel 7.5 Karyawan berdasar gaji.
Derajat Keanggotaan ( [z])
NIP Nama Gaji / bl
RENDAH SEDANG TINGGI
01 Lia 750.000 0,1 0,50 0
02 Iwan 1.255.000 0 0,49 0,255
03 Sari 1.500.000 0 0 0,500
04 Andi 1.040.000 0 0,92 0,040
05 Budi 950.000 0 0,90 0
06 Amir 1.600.000 0 0 0,600
07 Rian 1.250.000 0 0,50 0,250
08 Kiki 550.000 0,5 0 0
09 Alda 735.000 0,13 0 0
10 Yoga 860.000 0 0 0

Anda mungkin juga menyukai