PROGRAMMING)
Disusun Oleh :
(STMIK) BANJARBARU
2019
A. Logika Fuzzy
Gaji/bl
NIP Nama Tgl Lahir Th. Masuk
(Rp)
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
07 Rian 37 5 1.250.000
08 Kiki 32 1 550.000
09 Alda 35 3 735.000
10 Yoga 25 2 860.000
SELECT NAMA
FROM KARYAWAN
SELECT NAMA
FROM KARYAWAN
Apabila kita ingin mendapatkan informasi 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
Apabila hal ini terjadi, maka kita bisa mengatasinya dengan menggunakan basisdata
fuzzy.
Basisdata fuzzy model Tahani masih tetap menggunakan relasi standar, hanya saja
model ini menggunakan teori himpunan fuzzy untuk mendapatkan informasi pada
query-nya.
MUDA,
PAROBAYA, dan
TUA
MUDA PAROBAYA TUA
1
[x]
0
30 35 40 45 50
Umur (tahun)
1; x 30
40 x
MUDA[ x] ; 30 x 40
10
0; x 40
0; x 35 atau x 50
x 35
PAROBAYA[ x] ; 35 x 45
10
50 x ; 45 x 50
5
0; x 40
x 40
TUA [ x] ; 40 x 50
10
1; x 50
Tabel karyawan berdasarkan umur dengan derajat keanggotannya pada setiap
himpunan.
Derajat Keanggotaan
NIP Nama Umur
MUDA PAROBAYA TUA
01 Lia 30 1 0 0
08 Kiki 32 0,8 0 0
09 Alda 35 0,5 0 0
10 Yoga 25 1 0 0
BARU
LAMA
BARU LAMA
1
[y]
0
5 10 15 25
Masa Kerja
(tahun)
1; y5
15 y
BARU [ y ] ; 5 y 15
10
0; y 15
0; y 10
y 10
LAMA [ y ] ; 10 y 25
15
1; y 25
Derajat Keanggotaan
NIP Nama Masa Kerja
BARU LAMA
01 Lia 6 0,9 0
02 Iwan 17 0 0,467
04 Andi 4 1 0
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
TINGGI
1 RENDAH SEDANG
[z]
0
300 500 800 1000 1500 2000
Gaji (x1000 Rp/bl)
1; z 300
800 z
RENDAH [ z ] ; 300 z 800
500
0; z 800
0; z 500 atau z 1500
z 500
SEDANG [ z ] ; 500 z 1000
500
1500 z ; 1000 z 1500
500
0; z 1000
z 1000
TINGGI [ z ] ; 1000 z 2000
1000
1; z 2000
Tabel karyawan berdasarkan umur dengan derajat keanggotannya pada setiap
himpunan.
Derajat Keanggotaan
NIP Nama Gaji / bl
RENDAH SEDANG TINGGI
10 Yoga 860.000 0 0 0
Query1:
Siapa saja-kah karyawan yang masih muda tapi memiliki gaji tinggi?
SELECT NAMA
FROM KARYAWAN
01 Lia 30 750.000 1 0 0
05 Budi 42 950.000 0 0 0
10 Yoga 25 860.000 1 0 0
Query2:
Siapa saja-kah karyawan yang masih muda atau karyawan yang memiliki gaji
tinggi?
SELECT NAMA
FROM KARYAWAN
01 Lia 30 750.000 1 0 1
10 Yoga 25 860.000 1 0 1
05 Budi 42 950.000 0 0 0
Query3:
Siapa saja-kah karyawan yang masih muda tapi masa kerjanya sudah lama?
SELECT NAMA
FROM KARYAWAN
(MasaKerja = “LAMA”)
Derajat Keanggotaan
01 Lia 30 6 1 0 0
02 Iwan 48 17 0 0,467 0
04 Andi 37 4 0,3 0 0
05 Budi 42 12 0 0,133 0
07 Rian 37 5 0,3 0 0
08 Kiki 32 1 0,8 0 0
09 Alda 35 3 0,5 0 0
10 Yoga 25 2 1 0 0
Query4:
Siapa saja-kah karyawan yang parobaya dan gajinya sedang, atau karyawan yang
parobaya tapi masa kerjanya sudah lama?
SELECT NAMA
FROM KARYAWAN
[(Gaji = “SEDANG”) or
(MasaKerja = “LAMA”)]
Derajat Keanggotaan
08 Kiki 0 0 0 0 0
09 Alda 0 0 0 0 0
10 Yoga 0 0 0 0 0
Ani 35 th Fitri
Lia 33 th -
Pada record pertama tidak ada data yang ambiguous, Ani berusia 35 th dan memiliki
seorang anak yang bernama Fitri.
Pada record kedua, juga tidak ada data yang ambiguous, Lia berusia 33 th dan belum
mempunyai anak.
Pada record ketiga, Doni tidak diketahui berapa umurnya, tapi dia masih muda.
Umur Doni diekspresikan dengan distribusi posibilitas MUDA, misalkan MUDA
merupakan himpunan dengan distribusi posibilitas sebagai berikut :
Doni memiliki anak, tapi kita tidak tahu siapa nama anaknya. Nama anak dari Doni
diekspresikan dengan distribusi posibilitas tidak tahu, yang berarti siapapun
mungkin (nilai posibilitas = 1).
Pada record keempat, kita tidak mengetahui berapa umur Sandra. Umur Sandra
diekspresikan dengan distribusi posibilitas tidak tahu, yang berarti berapapun
mungkin (nilai posibilitas = 1).
{0,8/Nia; 0,5/Ana}
yang berarti bahwa anak Riko bernama Ana dengan posibilitas 0,8; atau bernama
Ana dengan posibilitas 0,5. Nilai posibilitas Nia lebih besar dibanding dengan nilai
posibilitas Ana.
Pada record keenam, umur Dian diketahui 50 tahun atau 51 tahun. Umur Dian
diekspresikan dengan distribusi posibilitas {50,51}P, yang berarti umurnya 50 atau
51, misalkan distribusi posibilitas yang diberikan adalah:
{0,8/50; 0,4/51}
yang berarti bahwa nilai posibilitas Dian berumur 50 tahun adalah 0,8; dan nilai
posibilitas Dian berumur 51 tahun adalah 0,4 tahun. Nilai posibilitas 50 th lebih
besar dibanding dengan nilai posibilitas 51 tahun. Kita tidak tahu apakah Dian
memiliki anak atau tidak.
Nama anak Dian diekspresikan dengan distribusi posibilitas undefined, tidak jelas
punya anak atau tidak (nilai posibilitas = 0).
Apabila ada suatu query: “Siapa sajakah karyawan yang usianya lebih dari 36
tahun?”
Maka yang masuk dalam kategori ini adalah: Doni, Sandra, Riko, dan Dian.
Doni termasuk dalam kategori ini, karena Doni masuk dalam kategori
MUDA dimana usia 40 tahun (> 36 th) menjadi anggota himpunan MUDA
meskipun nilai posibilitasnya Cuma 0,2.
Sandra termasuk dalam kategori ini, sebab kita tidak tahu umur Sandra, jadi
berapapun umur yang diminta Sandra tetap masuk (nilai posibilitas = 1).
Riko jelas masuk dalam kategori ini, sebab umurnya 56 th (> 36 th). Doni
juga masuk dalam kategori ini, sebab 50 th maupun 51 th keduanya lebih
dari 36 th.
C. Logika Fuzzy Mathematical Programming
1. Himpunan Fuzzy
Himpunan fuzzy adalah suatu himpunan yang sifatnya samar. Himpunan ini
mengembangkan logika banyak nilai (many-valued logic) yang titik utamanya
bukan hanya nilai benar atau salah, tetapi masih memiliki nilai ketiga yang bersifat
netral. Di pihak lain, ada yang diekspresikan seperti pada nilai probabilitas yang
memiliki nilai antara 0 dan 1.
µA : X → [0,1]
Cara ini hanya dapat digunakan apabila anggota himpunan fuzzy bernilai diskrit.
Untuk anggota himpunan fuzzy yang bernilai riil, tidak dapat menggunakan cara
ini.
Contoh:
Misalkan
X = {becak, sepeda motor, mobil kodok (VW), mobil kijang, mobil carry}
Didefinisikan bahwa,
x1 = becak, µA(x1) = 0
A = { (becak, 0), (sepeda motor, 0,1), (mobil kodok, 0.5), (mobil carry, 0.8), (mobil
kijang, 1.0) }
Cara ini digunakan apabila anggota himpunan fuzzy bernilai menerus (riil).
Contoh:
Misalkan,
A = ∫𝑥 µ𝐴(𝑥)/ 𝑥
Untuk X menerus (continue) , lambang ∫ bukan integral seperti di dalam
kalkulus.
Contoh:
(a) Diskrit
(b) Menerus
X = himpunan riil positif
A = bilangan riil yang dekat 10 = ∫ 1/(1 + 𝑥 − 10)2 / x
Ada dua keadaan himpunan fuzzy linear, yaitu linear naik dan linear turun.
a. Linear Naik
Keterangan:
Keterangan:
a = nilai domain terkecil yang mempunyai derajat keanggotaan nol
b = nilai domain yang mempunyai derajat keanggotaan satu
c = nilai domain terbesar yang mempunyai derajat keanggotaan nol
A = { (0, 0.1), (1, 0.3), (2, 0.7), (3, 1), (4, 0.7), (5, 0.3), (
6, 0.1) }
B = { (x, μB(x)) | x ∈ X }
dimana
Dari contoh sebelumnya, jelas bahwa konstruksi himpunan fuzzy bergantung
pada dua hal:
1. Identifikasi wacana alam semesta yang sesuai Spesifikasi fungsi keanggotaan
yang tepat.
2. Spesifikasi derajat keanggotaan bersifat subjektif, yang berarti bahwa derajat
keanggotaan ditentukan untuk konsep yang sama (katakanlah, "jumlah anak
yang masuk akal dalam keluarga") oleh orang yang berbeda mungkin sangat
bervariasi. Subjektivitas ini berasal dari perbedaan individu dalam memahami
atau mengekspresikan konsep abstrak dan tidak ada hubungannya dengan
keacakan. Oleh karena itu, subjektivitas dan nonrandomness rangkaian fuzzy
adalah perbedaan utama antara studi tentang himpunan fuzzy dan teori
probabilitas, yang berhubungan dengan perlakuan objektif terhadap fenomena
acak.
1) Gabungan (U)
Contoh:
Jawab:
Jadi, A U B = {0.5 Anton, 0.5 Enny, 0.75 Rito, 0.75 Setyo, 1.0 Bambang}
yang menyatakan kelulusan matakuliah matematika diskrit atau logika
matematika.
2) Irisan (∩)
A ∩ B → µA∩B = µA(x) ꓥ µB(x) = min(µA(x), µB(x))
A ∩ B diartikan sebagai “x dekat A dan x dekat B”
Contoh:
Jawab:
Jadi, A ∩ B = {0.25 Anton, 0.25 Enny, 0.0 Rito, 0.75 Setyo, 0.5 Bambang}
yang menyatakan kelulusan matakuliah matematika diskrit dan logika
matematika.
3) Komplemen
Ā → µĀ = 1 - µĀ(x)
Contoh:
T = {0.6 Dadi, 0.9 Dani, 0.4 Dina, 0.1 Dida, 0.5 Didi}
Jawab:
TC = {0.4 Dadi, 0.1 Dani, 0.6 Dina, 0.9 Dida, 0.5 Didi}