SlideShare a Scribd company logo
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 ∈ 𝐴.
_ Nilai keanggotaan 3 pada himpunan A, μA[3]=1, karena 3 ∈ 𝐴.
_ Nilai keanggotaan 4 pada himpunan A, μA[4]=0, karena 4 ∉ 𝐴.
_ Nilai keanggotaan 2 pada himpunan B, μB[2]=0, karena 2 ∉ 𝐵.
_ Nilai keanggotaan 3 pada himpunan B, μB[3]=1, karena 3 ∉ 𝐵.
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
Dingin Hangat Panas Sangat
Panas
Sangat
Dingin
Tidak ada
perubahan
Panas Panas Panas Panas
Dingin Dingin Tidak ada
perubahan
Panas Panas Panas
Hangat Dingin Dingin Tidak ada
perubahan
Panas Panas
Panas Dingin Dingin Dingin Tidak ada
perubahan
Panas
Sangat
panas
Dingin Dingin Dingin Dingin Tidak ada
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
target=Warm THEN
Panas
2 IF temperature=(Hot OR Very_Hot) AND
target=Warm THEN
Dingin
3 IF (temperature=Warm) AND (target=Warm)
THEN
Tidak ada perubahan
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
Dingin Hangat Panas Sangat
Panas
Sangat
Dingin
Tidak ada
perubahan
Panas Panas Panas Panas
Dingin Dingin Tidak ada
perubahan
Panas Panas Panas
Hangat Dingin Dingin Tidak ada
perubahan
Panas Panas
Panas Dingin Dingin Dingin Tidak ada
perubahan
Panas
Sangat
panas
Dingin Dingin Dingin Dingin Tidak ada
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
target=Warm THEN
Panas
2 IF temperature=(Hot OR Very_Hot) AND
target=Warm THEN
Dingin
3 IF (temperature=Warm) AND (target=Warm)
THEN
Tidak ada perubahan
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 (o
C)]
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 TENANGand 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 BISINGand 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 NORMALand 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 o
C, 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

More Related Content

DOCX
Makalah Fuzzy Logic Dan Penerapannya
radar radius
 
PPT
Mamdani-Sugeno-Tusakomoto.ppt
TorkisNasution1
 
PPTX
Presentasi fuzzy logic (Logika Fuzzy)
radar radius
 
PPTX
Fuzzy logic
Mahmoud Hussein
 
PPTX
FUZZY LOGIC
VanishriKornu
 
PPTX
Teori Logika Fuzzy-05-FIS Mamdani.pptx
bobi793678
 
PPTX
Fuzzy logic
Aditya Sharma
 
PDF
Fuzzy+logic
Mahesh Todkar
 
Makalah Fuzzy Logic Dan Penerapannya
radar radius
 
Mamdani-Sugeno-Tusakomoto.ppt
TorkisNasution1
 
Presentasi fuzzy logic (Logika Fuzzy)
radar radius
 
Fuzzy logic
Mahmoud Hussein
 
FUZZY LOGIC
VanishriKornu
 
Teori Logika Fuzzy-05-FIS Mamdani.pptx
bobi793678
 
Fuzzy logic
Aditya Sharma
 
Fuzzy+logic
Mahesh Todkar
 

What's hot (20)

PPTX
Pertemuan 6 & 7 ars. gerbang logika
Buhori Muslim
 
PPTX
Bab 5 penyederhanaan fungsi boolean
Cliquerz Javaneze
 
PPTX
Materi 3 Finite State Automata
ahmad haidaroh
 
DOC
Modul teknik-digital
ecko gmc
 
PDF
Praktikum2-teorema boolean dan demorgan
Anarstn
 
PDF
Tabel distribusi peluang binomial
rumahbacazahra
 
PPT
4.matriks dan relasi
Nada Try Pasha Julian
 
PPTX
Sistem Waktu Nyata (Real Time System)
rein sahren
 
DOCX
Contoh Soal Huffman Code
Albertus H.
 
PPT
Deret Fourier
Kelinci Coklat
 
PDF
Analisis Algoritma - Langkah Desain Algoritma
Adam Mukharil Bachtiar
 
DOCX
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
BAIDILAH Baidilah
 
PDF
Contoh peyelesaian logika fuzzy
Zaenal Khayat
 
PDF
ALJABAR LINEAR ELEMENTER
Mella Imelda
 
PPT
Metode pencarian heuristik
Baguss Chandrass
 
PPTX
Bab 4 aljabar boolean
Cliquerz Javaneze
 
PPTX
Ai 6
bayaws
 
PPT
Penyederhanaan Fungsi Boolean
Fahrul Razi
 
PDF
Laporan Praktikum Gerbang logika
FebriTiaAldila
 
PDF
Aturan Inferensi dan Metode Pembuktian
Fahrul Usman
 
Pertemuan 6 & 7 ars. gerbang logika
Buhori Muslim
 
Bab 5 penyederhanaan fungsi boolean
Cliquerz Javaneze
 
Materi 3 Finite State Automata
ahmad haidaroh
 
Modul teknik-digital
ecko gmc
 
Praktikum2-teorema boolean dan demorgan
Anarstn
 
Tabel distribusi peluang binomial
rumahbacazahra
 
4.matriks dan relasi
Nada Try Pasha Julian
 
Sistem Waktu Nyata (Real Time System)
rein sahren
 
Contoh Soal Huffman Code
Albertus H.
 
Deret Fourier
Kelinci Coklat
 
Analisis Algoritma - Langkah Desain Algoritma
Adam Mukharil Bachtiar
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
BAIDILAH Baidilah
 
Contoh peyelesaian logika fuzzy
Zaenal Khayat
 
ALJABAR LINEAR ELEMENTER
Mella Imelda
 
Metode pencarian heuristik
Baguss Chandrass
 
Bab 4 aljabar boolean
Cliquerz Javaneze
 
Ai 6
bayaws
 
Penyederhanaan Fungsi Boolean
Fahrul Razi
 
Laporan Praktikum Gerbang logika
FebriTiaAldila
 
Aturan Inferensi dan Metode Pembuktian
Fahrul Usman
 
Ad

Similar to Fuzzy logic (Logika Fuzzy) (20)

PPTX
Fuzzy Logic-sant
MaikelPaijovka
 
PDF
Fuzzy Logic (Tugas Elektro industri)
Andreas Yudika
 
DOC
1404505075 fuzzy logic mss(b)
Pande Narendra
 
PDF
Logika fuzzy
Much Al-ziqni
 
PDF
LOGIKA FUZZY MATERI KULIAH.pdf
Valentino Selayan
 
PDF
LOGIKA FUZZY MATERI KULIAH-1.pdf
Valentino Selayan
 
DOCX
Sistem pakar fuzzy logic
IKHSAN MAHRURI
 
PPTX
7 Implementasi_Logika_Fuzzy.pptx
Alfredo Morinez
 
PDF
Fuzzi its
Achmad Fauzan
 
PPTX
Pertemuan 9_Kecerdasan Buatan_Fuzzy System.pptx
PAKKODING
 
PDF
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
HendroGunawan8
 
DOCX
Bab iv
Te Utiz
 
PDF
Bab 7-logika-fuzzy
Muhammad Permana
 
PDF
Contohpeyelesaianlogikafuzzy 130409001438-phpapp01
Khoerul Umam
 
PDF
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
HendroGunawan8
 
DOCX
Fuzzy logic
Irfan Aditya Dharma
 
PPT
Pertemuan 7 dan_8
Abrianto Nugraha
 
PPT
pengantar logika fuzzy dan contohnya.ppt
Bernad Bear
 
PDF
FUZZY-Seri-Webinar-Lab-SC-SMmmmmmmmm.pdf
jefrizlkrn
 
PPTX
Pandahuluan sistem fuzzy
LarasWiranti2
 
Fuzzy Logic-sant
MaikelPaijovka
 
Fuzzy Logic (Tugas Elektro industri)
Andreas Yudika
 
1404505075 fuzzy logic mss(b)
Pande Narendra
 
Logika fuzzy
Much Al-ziqni
 
LOGIKA FUZZY MATERI KULIAH.pdf
Valentino Selayan
 
LOGIKA FUZZY MATERI KULIAH-1.pdf
Valentino Selayan
 
Sistem pakar fuzzy logic
IKHSAN MAHRURI
 
7 Implementasi_Logika_Fuzzy.pptx
Alfredo Morinez
 
Fuzzi its
Achmad Fauzan
 
Pertemuan 9_Kecerdasan Buatan_Fuzzy System.pptx
PAKKODING
 
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
HendroGunawan8
 
Bab iv
Te Utiz
 
Bab 7-logika-fuzzy
Muhammad Permana
 
Contohpeyelesaianlogikafuzzy 130409001438-phpapp01
Khoerul Umam
 
Diskusi Modul Sistem Pakar Sesi Ke-5.pdf
HendroGunawan8
 
Fuzzy logic
Irfan Aditya Dharma
 
Pertemuan 7 dan_8
Abrianto Nugraha
 
pengantar logika fuzzy dan contohnya.ppt
Bernad Bear
 
FUZZY-Seri-Webinar-Lab-SC-SMmmmmmmmm.pdf
jefrizlkrn
 
Pandahuluan sistem fuzzy
LarasWiranti2
 
Ad

More from radar radius (20)

DOCX
Gas Air Mata: Zat Kimia, Metode Penyebaran, dan Efek.docx
radar radius
 
PDF
IPA SMP_KK C.pdf
radar radius
 
PDF
IPA SMP_KK B.pdf
radar radius
 
PPT
الإيمان
radar radius
 
PPT
Wahyu
radar radius
 
PPT
Urutan peristiwa kiamat besar
radar radius
 
PPTX
Toleransi
radar radius
 
PPTX
Toleransi (hadis)
radar radius
 
PPTX
Tauhid dalam konsep islam
radar radius
 
PPT
Tajwid (mad)
radar radius
 
PPTX
Qurdis 7 1
radar radius
 
PPT
Qurban
radar radius
 
PPT
Problematika dakwah
radar radius
 
PPT
Melestarikan alam (hadis)
radar radius
 
PPT
Materi qurdis IX 2
radar radius
 
PPT
Materi Quran Hadits VIII 2
radar radius
 
PPT
Fenomena alam kiamat
radar radius
 
PPT
Materi Quran Hadist IX 2
radar radius
 
DOCX
Doa nur buwwah lengkap
radar radius
 
DOCX
Gerak pada Tumbuhan dan Hewan
radar radius
 
Gas Air Mata: Zat Kimia, Metode Penyebaran, dan Efek.docx
radar radius
 
IPA SMP_KK C.pdf
radar radius
 
IPA SMP_KK B.pdf
radar radius
 
الإيمان
radar radius
 
Urutan peristiwa kiamat besar
radar radius
 
Toleransi
radar radius
 
Toleransi (hadis)
radar radius
 
Tauhid dalam konsep islam
radar radius
 
Tajwid (mad)
radar radius
 
Qurdis 7 1
radar radius
 
Qurban
radar radius
 
Problematika dakwah
radar radius
 
Melestarikan alam (hadis)
radar radius
 
Materi qurdis IX 2
radar radius
 
Materi Quran Hadits VIII 2
radar radius
 
Fenomena alam kiamat
radar radius
 
Materi Quran Hadist IX 2
radar radius
 
Doa nur buwwah lengkap
radar radius
 
Gerak pada Tumbuhan dan Hewan
radar radius
 

Recently uploaded (20)

DOCX
Modul Ajar Pembelajaran Mendalam Biologi Kelas 11 Terbaru 2025
fubierabita
 
PPTX
Bagaimana Proses Geografis Memengaruhi Keragaman kelas 8.pptx
anggreaniumi
 
DOCX
Modul Ajar Deep Learning PJOK Kelas 11 Terbaru 2025
wahyurestu63
 
DOCX
Modul Ajar Pembelajaran Mendalam MTK Kelas 11 Terbaru 2025
fubierabita
 
DOCX
Modul Ajar Deep Learning Ekonomi Kelas 10 Terbaru 2025
wahyurestu63
 
DOCX
Modul Ajar Deep Learning Fisika Kelas 10 Terbaru 2025
wahyurestu63
 
PPTX
01. Permendikdasmen No 13 Tahun 2025_KURIKULUM_16 JULI 2025_18052014ss.pptx
ArifWahyudi58
 
PDF
RPP Pembelajaran mendalam mata pelajaran PAI
riefkiardhiansyah46
 
DOCX
Modul Ajar Deep Learning Matematika Kelas 11 Terbaru 2025
wahyurestu63
 
DOCX
Modul Ajar Deep Learning MTK Kelas 12 Terbaru 2025
wahyurestu63
 
PDF
PPT Teknis Diskusi Kelas Doktrin Alkitab Lanjutan (DAL) 2025
SABDA
 
PDF
KELOMPOK 5 Modul 4 PELATIHAN PM KEPALA SEKOLAH
suhendro79
 
PDF
Panduan Tes Seleksi VIERA 2025 Windows 11
Risamasu1
 
DOCX
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 8 SMP Terbaru 2025
wahyurestu63
 
PDF
Perbedaan Capaian Pembelajaran 032 ke CP 046.pdf
evabasuntarti52
 
DOCX
Modul Ajar Pembelajaran Mendalam Biologi Kelas 11 Terbaru 2025
UrayFubie
 
DOCX
Modul Ajar Pembelajaran Mendalam PKWU Kelas 11 Terbaru 2025
fubierabita
 
DOCX
Modul Ajar Deep Learning PKN Kelas 10 Terbaru 2025
wahyurestu63
 
DOCX
Modul Ajar Deep Learning PKN Kelas 12 SMA Terbaru 2025
wahyurestu63
 
PPTX
Konsep pembelajaran mendalam PPT_M2-KP2-Suparmin.pptx
SahruddinSahruddin
 
Modul Ajar Pembelajaran Mendalam Biologi Kelas 11 Terbaru 2025
fubierabita
 
Bagaimana Proses Geografis Memengaruhi Keragaman kelas 8.pptx
anggreaniumi
 
Modul Ajar Deep Learning PJOK Kelas 11 Terbaru 2025
wahyurestu63
 
Modul Ajar Pembelajaran Mendalam MTK Kelas 11 Terbaru 2025
fubierabita
 
Modul Ajar Deep Learning Ekonomi Kelas 10 Terbaru 2025
wahyurestu63
 
Modul Ajar Deep Learning Fisika Kelas 10 Terbaru 2025
wahyurestu63
 
01. Permendikdasmen No 13 Tahun 2025_KURIKULUM_16 JULI 2025_18052014ss.pptx
ArifWahyudi58
 
RPP Pembelajaran mendalam mata pelajaran PAI
riefkiardhiansyah46
 
Modul Ajar Deep Learning Matematika Kelas 11 Terbaru 2025
wahyurestu63
 
Modul Ajar Deep Learning MTK Kelas 12 Terbaru 2025
wahyurestu63
 
PPT Teknis Diskusi Kelas Doktrin Alkitab Lanjutan (DAL) 2025
SABDA
 
KELOMPOK 5 Modul 4 PELATIHAN PM KEPALA SEKOLAH
suhendro79
 
Panduan Tes Seleksi VIERA 2025 Windows 11
Risamasu1
 
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 8 SMP Terbaru 2025
wahyurestu63
 
Perbedaan Capaian Pembelajaran 032 ke CP 046.pdf
evabasuntarti52
 
Modul Ajar Pembelajaran Mendalam Biologi Kelas 11 Terbaru 2025
UrayFubie
 
Modul Ajar Pembelajaran Mendalam PKWU Kelas 11 Terbaru 2025
fubierabita
 
Modul Ajar Deep Learning PKN Kelas 10 Terbaru 2025
wahyurestu63
 
Modul Ajar Deep Learning PKN Kelas 12 SMA Terbaru 2025
wahyurestu63
 
Konsep pembelajaran mendalam PPT_M2-KP2-Suparmin.pptx
SahruddinSahruddin
 

Fuzzy logic (Logika Fuzzy)

  • 1. 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?
  • 2. 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
  • 3. 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
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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 ∈ 𝐴. _ Nilai keanggotaan 3 pada himpunan A, μA[3]=1, karena 3 ∈ 𝐴. _ Nilai keanggotaan 4 pada himpunan A, μA[4]=0, karena 4 ∉ 𝐴. _ Nilai keanggotaan 2 pada himpunan B, μB[2]=0, karena 2 ∉ 𝐵.
  • 11. _ Nilai keanggotaan 3 pada himpunan B, μB[3]=1, karena 3 ∉ 𝐵. 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.
  • 12. 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
  • 13. 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 Dingin Hangat Panas Sangat Panas Sangat Dingin Tidak ada perubahan Panas Panas Panas Panas Dingin Dingin Tidak ada perubahan Panas Panas Panas Hangat Dingin Dingin Tidak ada perubahan Panas Panas Panas Dingin Dingin Dingin Tidak ada perubahan Panas Sangat panas Dingin Dingin Dingin Dingin Tidak ada 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 target=Warm THEN Panas 2 IF temperature=(Hot OR Very_Hot) AND target=Warm THEN Dingin 3 IF (temperature=Warm) AND (target=Warm) THEN Tidak ada perubahan 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.
  • 14. 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
  • 15. 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)
  • 16. 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.
  • 17. 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
  • 18. 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.
  • 19. 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.
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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 :
  • 25. 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
  • 26. 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.
  • 27. 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 Dingin Hangat Panas Sangat Panas Sangat Dingin Tidak ada perubahan Panas Panas Panas Panas
  • 28. Dingin Dingin Tidak ada perubahan Panas Panas Panas Hangat Dingin Dingin Tidak ada perubahan Panas Panas Panas Dingin Dingin Dingin Tidak ada perubahan Panas Sangat panas Dingin Dingin Dingin Dingin Tidak ada 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 target=Warm THEN Panas 2 IF temperature=(Hot OR Very_Hot) AND target=Warm THEN Dingin 3 IF (temperature=Warm) AND (target=Warm) THEN Tidak ada perubahan 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-
  • 29. 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;
  • 30. 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 (o C)] 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;
  • 31. } 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;
  • 32. } 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]
  • 33. [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
  • 34. 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
  • 35. diimplementasikan dalam program sebagai prosedur Apply_rule() dan listing programnya ditunjukkan pada Listing program 6. Aturan: [1] IF Suhu RENDAH and Kebisingan TENANGand 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 BISINGand 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
  • 36. [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);
  • 37. 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];
  • 38. //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 NORMALand 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);
  • 39. 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);
  • 40. 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();
  • 41. } 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 o C, 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
  • 42. 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
  • 43. ; 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 [ ]
  • 44. 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      
  • 45.    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
  • 46. 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