selalu belajar menjadi lebih bijaksana*
lagi dan lagi..

Pertemuan 9 - Logika Fuzzy

Logika Fuzzy dengan Matlab

1. Ketik fuzzy [enter]
2. Edit --> Add variabel --> Input (untuk memasukkan inputan menjadi 2)
3. Ganti nama input dan outputnya sesuai kebutuhan.
4. File --> Export to workspace
5. Edit --> Memberfunction (di sini ganti nama dan range-nya, parameter jangan diganti)
6. Edit --> Rules (buat kondisinya di sini, disesuaikan dengan kebutuhan) --> Add Rule
7. Masih di jendela Rule Editor, View --> Rules (nah di sini nanti kelihatan jadinya)

Maaf kemarin bikin note nya ga lengkap, alhasil upload ilmu nya ga lengkap juga, hehehe, cuma langkah-langkahnya doang..








Sumber : slide Kak Dine

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

Pertemuan 10 - Fuzzy Database

Contohnya ..


Tabel karyawan











Kemudian diperoleh data temporer dari tabel karyawan











Pembentukan himpunan fuzzy untuk variabel USIA KARYAWAN
Usia karyawan dibagi menjadi 3 himpunan: MUDA, PAROBAYA, TUA








Fungsi Keanggotaan








Pembentukan himpunan fuzzy untuk variabel MASA KERJA
Masa kerja dibagi menjadi 2 himpunan : BARU dan LAMA

Pembentukan himpunan fuzzy untuk variabel GAJI
Gaji dibagi menjadi 3 himpunan: RENDAH, SEDANG, dan TINGGI



HASIL FUZZY DATABASE TAHANI



Query 1
Karyawan yang masih muda tapi mempunyai gaji tinggi.
select NAMA from KARYAWAN where (umur = "MUDA") and (gaji = "TINGGI")












Query 2
Karyawan yang masih muda atau yang mempunyai gaji tinggi.
select NAMA from KARYAWAN where (umur = "MUDA") or (gaji = "TINGGI")













Query 3
Karyawan yang masih muda tapi masa kerjanya sudah lama.
select NAMA from KARYAWAN where (umur = "MUDA") and (masa kerja = "LAMA")















Query 4
Karyawan yang parobaya dan gajinya sedang, atau karyawan yang parobaya tapi masa kerjanya sudah lama.
select NAMA from KARYAWAN where (umur = "PAROBAYA") and [(gaji = "SEDANG") and (masa kerja = "LAMA")]














Sumber : slide Kak Dine

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

Presentasi kelompok 2

Slide presentasi kelompok 2 bisa di-download di http://www.4shared.com/file/oEvSmBhQce/pbd.html

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

Pertemuan 8 - Tugas Membuat Aplikasi

Tema : Persediaan barang di perusahaan
Judul : Aplikasi Persediaan Barang PT Nexus

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

Pertemuan 7 - Penerapan Fuzzy pada Database


Materi penerapan fuzzy pada database dapat diambil disini..

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

Pertemuan 6 - Kuis Menjelang UTS

Pertemuan 6

Soal :)



Jawaban Kuis 16 April 2014


1

2





3






4  Query
    Select nim, nama_mhs, jurusan, nama_dosen
    From mahasiswa, dosen_pa, matakuliah, registrasi
    Where mahasiswa.nim = registrasi.nim and matakuliah.kd_mk = registrasi.kd_mk and         matakuliah.nip = dosen_pa.nip and matakuliah.sks=3

    naturalisasi
    ᴨ nim, nama_mhs, jurusan, nama_dosen (σ mahasiswa.nim=registrasi.nim ˄ matakuliah.kd_mk =                 registrasi.kd_mk ˄ matakuliah.nip = dosen_pa.nip ˄ matakuliah.sks=3 (mahasiswa x dosen_pa x matakuliah x registrasi))


5  Query graph
     

     Query tree
     


6   select nama_barang
    from barang
    where harga = 3.000.000
    or (not (nama_barang = “televisi”)
    and (nama_barang = “televisi” or nama_barang = “kulkas”)
    and not (nama_barang = “kulkas”))
  
    select nama_barang
    from barang
    where harga = 3.000.000  -----  P
    or (not (nama_barang = “televisi”)  ------  ¬Q
    and (nama_barang = “televisi” or nama_barang = “kulkas”)  ------  Q ᴠ R
    and not (nama_barang = “kulkas”))   ------  ¬R

    Maka :
    P ᴠ (¬Q ˄ (Q ᴠ R) ˄ ¬R)
    P ᴠ (¬Q ˄ Q ᴠ ¬Q ˄ R ˄ ¬R)
    P ᴠ (False ᴠ ¬Q ˄ False)
    P ᴠ (False ˄ False)
     P (False) P


7  ERD
    

   Class Diagram 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

Pertemuan 5 - Menyederhanakan Query dan Query Tree

Sebelum masuk materi, Ibu Dine kasih kuis dulu nih..
Cekidot :)

Perhatikan tabel di bawah untuk menjawab pertanyaan !!












Kuis Pertemuan 5
1.         Buat query ‘tampilkan idpel, nmpel, yang tarifnya <=100
Select idpel, nmpel
From pelanggan, harga, daya_terpasang
Where pelanggan.idpel = daya_terpasang.idpel and harga.gol = daya_terpasang.gol and tarif <= 100

2.         Cari ap yang tarifnya <> 100
Select ap
From pelanggan, harga, daya_terpasang
Where pelanggan.idpel = daya_terpasang.idpel and harga.gol = daya_terpasang.gol and tarif <> 100

3.         Dari soal no. 1, buat aljabar relational-nya
π idpel, nmpel (σ pelanggan.idpel = daya_terpasang.idpel ˄ daya_terpasang.gol = harga.gol ˄ tarif <=100 (pelanggan х daya_terpasang x harga))

4.         Dari soal no. 2, buat aljabar relational-nya
π ap (σ pelanggan.idpel = daya_terpasang.idpel ˄ daya_terpasang.gol = harga.gol ˄ tarif <>100 (pelanggan х daya_terpasang x harga))

5.         Buat query graph dari soal no. 1

6.         Buat query graph dari soal no. 2

ANALISIS
Jika Graph tidak terkoneksi, berarti query salah, contohnya ...
SELECT nmpel, tarif
FROM pelanggan, harga
WHERE ap = “lenteng agung" AND tarif =110

Menyederhanakan Query dengan Aturan Transformasi
Untuk apa query perlu di sederhanakan? Coba perhatikan query berikut..
SELECT ap
FROM pelanggan
WHERE nmpel = “sely”
OR (NOT (ap = “semplak”)
AND (ap= “semplak”
OR ap = “bintaro.”)
AND NOT (ap = “bintaro”))

Bingung bukan, melihatnya ?? Makanya query tersebut perlu disederhanakan dulu dengan aturan transformasi di bawah ini..
( pernah di upload pada Pertemuan 4 )
Sehingga query di atas menjadi :
SELECT ap
FROM pelanggan
WHERE nmpel = “sely”  ------------------- nmpel = "sely"  dinotasikan  P
OR (NOT (ap = “semplak”)  --------------- ap = "semplak" dinotasikan Q
AND (ap= “semplak”
OR ap = “bintaro.”)   ----------------------- ap = "bintaro" dinotasikan R
AND NOT (ap = “bintaro”))

Maka dapat ditulis :
P ᴠ (¬Q ˄ Q ᴠ R) ˄ ¬R
P ᴠ (False ᴠ R) ˄ ¬R
P ᴠ ( R ) ˄ ¬R
P ᴠ False <=> P

Sehingga, sederhananya :
SELECT ap
FROM pelanggan
WHERE nmpel = “sely”

Query Tree
Adalah suatu diagram yang menggambarkan Operasional Aljabar Relasional dalam melakukan sebuah proses, pada tabel dengan atribut yang ada.

Contoh :
Cari nama pelanggan yang tidak dilayani oleh ap lenteng agung yang mempunyai daya > 1300 dan merupakan golongan rumah dengan tarif 85

SELECT p.nmpel
FROM pelanggan p ,daya_terpasang d, harga h
WHERE p.idpel = d.idpel
AND d.gol = h.gol
AND p.Ap <>'lenteng agung'
AND d.daya >1300
AND h.gol = “rumah”
AND h.tarif=85

select nmpel from
(select *
from pelanggan
natural join daya_terpasang
natural join harga
where ap<> 'lenteng agung' and daya>1300 and gol=‘rumah’ and tarif=85)



Latihan ..
Perhatikan tabel di bawah ini untuk menjawab soal !!


1.        Buat query untuk menampilkan nama mahasiswa dan alamatnya yang sekarang berada di semester 6.
Select nama_mhs, alamat
From mahasiswa M, nilai N, mata_kuliah MK
Where M.nim = N.nim and N.kd_mk = MK.kd_mk and semester=”6”

2.        Buatlah :
ü  Aljabar relasional
ü  Query graph
ü  Query tree
Dari query yang telah dibuat pada soal no. 1.
π nama_mhs, alamat (σ mahasiswa.nim = nilai.nim ˄ nilai.kd_mk = mata_kuliah.kd_mk ˄ semester = “6” (mahasiswa х nilai x mata_kuliah))




3.        Gunakan aturan operasi logika normalisasi untuk menyederhanakan query berikut :
Select nim
From mahasiswa, nilai
Where (alamat <> “Depok”  or nilai=”B”)
And (not (nilai=”B”) or jns_kelamin = “Laki-laki”)
And alamat = “Depok”
And jns_kelamin = “Perempuan”

(¬P ᴠ Q ) ˄ (¬Q ᴠ R) ˄ P ˄ ¬R
¬P ˄ ¬Q ᴠ Q ˄ R ˄ P ˄ ¬R
¬P ˄ True ˄ R ˄ P ˄ ¬R
False ˄ R ˄ ¬R ˄ P
False ˄ False ˄ P
False ˄ P <=> False


Sumber :
- slide Bu Dine
www.mdp.ac.id/materi/2013-2014-1/.../SP346-071045-743-18.ppt

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

Pertemuan 4 - Aljabar Relasional dan Optimasi Query

ALJABAR RELATIONAL

Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.



Logika Penghubung


Berikut ini adalah contoh dari suatu desain database sebuah universitas yang terdiri dari 3 table yaitu: tabel mhs, tabel mhs2, dan tabel nilai.


OPERASI DENGAN 1 TABEL

Select (σ)Operasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi predikat yang diberikan dari sebuah tabel relasi. Simbol sigma “σ” digunakan untuk menunjukkan operasi select. Predikat muncul sebagai subscript dari σ dan kondisi yang diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda kurung yang mengikuti σ dan berisi tabel relasi yang dimaksud.Ex. Dari tabel mhs kita pilih mahasiswa yang kurang dari semester 8σ semester < 8 (mhs)Select * from MHS where semester < 8


Project (p)
Operasi project berfungsi untuk memilih nilai atribut-atribut tertentu saja dari sebuah tabel relasi. Simbol phi “p” digunakan untuk menunjukkan operasi project. Predikat muncul sebagai subscript dari p dan hanya nama atribut yang diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda kurung yang mengikuti p dan berisi tabel relasi yang dimaksud.Ex. Dari tabel mhs kita akan menampilkan mahasiswa yang ipknya lebih dari 2,50 dan semesternya kurang dari 10.p nama (σ ipk > 2,50 ᴠ semester < 10 (mhs))
Select nama from mhs where ipk > 2,50 or semester < 10


Nah, terlihat kan perbedaan antara select dan project ?? Yupp, kalo select menampilkan semua atribut dari satu atau beberapa baris yang memenuhi kondisi. Sedangkan project, hanya menampilkan satu kolom atau atribut saja yang sesuai kondisi.

OPERASI DENGAN 2 TABEL

Union ()
Operasi union berfungsi untuk mendapatkan gabungan nilai atribut dari sebuah tabel relasi dengan nilai atribut dari tabel relasi lainnya, namun jika terdapat dua nilai yang sama makan diambil salah satunya saja. Simbol “” digunakan untuk menunjukkan operasi union. Operasi union bernilai benar bila terpenuhi 2 kondisi, yaitu : Derajat dari 2 tabel relasi yang dioperasikan harus sama dan domain dari atribut yang dioperasikan juga harus sama.
Ex. Tabel mhs union dengan tabel mhs2
mhs  mhs2
Select * from mhs union select * from mhs2









Intersection ()
Operasi set intersection berfungsi untuk mendapatkan nilai yang sama yang ada dalam sebuah tabel relasi dan juga ada dalam tabel relasi lainnya. Simbol “∩“ digunakan untuk menunjukkan operasi set intersection.
Ex. Tabel mhs intersection dengan tabel mhs2
mhs  mhs2
Select * from mhs intersection select * from mhs2


Set Difference (-)
Operasi set difference berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya. Simbol “-“ digunakan untuk menunjukkan operasi set difference.
Ex. Tabel mhs difference dengan  tabel mhs2
mhs – mhs2
Select * from mhs minus select * from mhs2


Cross Join ( X )
Operasi cross join berfungsi untuk mengkombinasikan informasi yang ada dalam 2 tabel relasi dan menghasilkan sebuah tabel relasi yang baru. Simbol “X“ digunakan untuk menunjukkan operasi set difference.
Ex. Tabel mhs cross join dengan tabel nilai
mhs X nilai
Select * from mhs cross join nilai


Natural Join ()
Operasi natural join memungkinkan kita untuk menggabungkan operasi select dan cross join menjadi hanya 1 operasi saja. Simbol ““ digunakan untuk menunjukkan operasi natural join. Operasi natural join hanya menghasilkan tupel yang mempunyai nilai yang sama pada 2 atribut yang bernama sama pada 2 tabel relasi yang berbeda.
Ex. Tabel mhs natural join dengan tabel nilai
mhs nilai
Select * from mhs natural join nilai


OPTIMASI QUERY

Optimasi query adalah suatu proses untuk menganalisa query dan untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output.
Dilakukan dengan mengetahui bagaimana rencana eksekusi query yang baik.
Rencana dari optimasi query dapat dilakukan dengan mengoptimalkan Ekspresi Aljabar Relasional seperti : selection, projection, cross join, union, set difference.


SELECT nmpel
FROM pelanggan,daya_terpasang
WHERE pelanggan.idpel = daya_terpasang.idpel
AND daya > 1300
Π nmpel(σdaya >1300 Λ pelanggan.idpel=daya_terpasang.idpel(pelanggan X daya_terpasang))

Query Dekomposision
Pada Lapis Pertama ini input adalah query
diubah menjadi Aljabar query.
Query Decomposition dibagi menjadi 4 bagian :
_Normalisasi yaitu manipulasi query
_Analisa semantik yaitu mendeteksi query yang salah
_Memperbaiki Query (sederhanakan) yaitu mengeliminasi predicate yang berulang
_Menata ulang struktur dari query (restruktured) yaitu menggunakan aturan transformasi

Aturan untuk operasi logika


CONTOH 1
Mencari nama pelanggan dengan ap ‘lenteng agung ‘
dengan daya 1300 atau 900 watt
SQL :
Select nmpel
From pelanggan p , daya_terpasang d
Where p.idpel = d.idpel
And ap = “lenteng agung”
And (daya = 1300 Or daya = 900)
Normalisasi
p.idpel = d.idpel ap=“lenteng agung” (daya = 1300 V Daya =900)

ANALISA
Menemukan queri yang salah
Tipe yang tidak benar:
1. Jika ada atribut atau nama relasi tidak
didefenisi dalam skema global
2. Ada operasi yang diaplikasikan ke atribut
dengan tipe yang salah

CONTOH 2
Select alamat
From pelanggan
Where ap > 1900

Query tidak benar :
Atribut alamat tidak dideklarasikan dalam
struktur tabel
Operator > 1900 tidak compatible dengan type text dari ap

KESALAHAN SEMANTIK
1. Ada komponen yang tidak memberikan konstribusi
dalam hasil akhir
2. Hanya sebagian dari relational queris yang dapat di
tes untuk koreksi
3. Untuk mendektesi : query graph dan Join Graph

CONTOH 3:
Cari nama pelanggan dan daya dengan tarif
kurang dari 1100

SELECT nmpel, daya
FROM pelanggan p,
daya_terpasang d, harga h
WHERE p.idpel = d.idpel
AND d.gol = h.gol
AND tarif <1100

Query Graph




Sumber :
- slide dari bu dine
http://rizarulham.wordpress.com/2009/10/16/aljabar-relasional-bahasa-pada-model-data-relasional/
http://awhnymous.blogspot.com/2013/10/sql-aljabar-relasi.html
http://andrekomputer.blogspot.com/2013/01/optimasi-query.html

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments