15 June 2011

sistem pakar

          REPRESENTASI PENGETAHUAN
          LOGIKA
Logika adalah bentuk representasi pengetahuan yang paling tua. Proses logika adalah proses membentuk kesimpulan atau menarik suatu inferensi berdasarkan fakta yang telah ada. Input dari proses logika berupa premis atau fakta-fakta yang diakui kebenarannya sehingga dengan melakukan penalaran pada proses logika dapat dibentuk suatu inferensi atau kesimpulan yang benar juga.
          Ada 2 penalaran yang dapat dilakukan untuk mendapat konklusi :
1. Penalaran deduktif : dimulai dari prinsip umum untuk mendapatkan konklusi yang lebih khusus.
Contoh :
Premis mayor : Jika hujan turun saya tidak akan berangkat kuliah
Premis minor : Hari ini hujan turun
Konklusi : Hari ini saya tidak akan berangkat kuliah
2. Penalaran induktif : dimulai dari fakta-fakta khusus untuk mendapatkan kesimpulan umum.
Contoh :
Premis -1 : Aljabar adalah pelajaran yang sulit
Premis -2 : Geometri adalah pelajaran yang sulit
Premis -3 : Kalkulus adalah pelajaran yang sulit
Konklusi : Matematika adalah pelajaran yang sulit
Munculnya premis baru bisa mengakibatkan gugurnya konklusi yang sudah diperoleh, misal :
Premis -4 : Kinematika adalah pelajaran yang sulit
         
          Premis tersebut menyebabkan konklusi : “Matematika adalah pelajaran yang sulit”, menjadi salah, karena Kinematika bukan merupakan bagian dari Matematika, sehingga bila menggunakan penalaran induktif sangat dimungkinkan adanya ketidakpastian.
          LOGIKA PROPOSISI
          Proposisi adalah suatu pernyataan yang dapat bernilai Benar atau Salah. Simbol-simbol seperti P dan Q menunjukkan proposisi. Dua atau lebih proposisi dapat digabungkan dengan menggunakan operator logika :
         a. Konjungsi : (and)
         b. Disjungsi : (or)
         c. Negasi : ¬ (not)
         d. Implikasi : 􀃆à (if then)
         e. Ekuivalensi : (if and only if)
          Untuk melakukan inferensi pada logika proposisi dapat dilakukan dengan menggunakan resolusi.
          Resolusi adalah suatu aturan untuk melakukan inferensi yang dapat berjalan secara efisien dalam suatu bentuk khusus yaitu conjunctive normal form (CNF), ciri – cirinya :
         setiap kalimat merupakan disjungsi literal
         semua kalimat terkonjungsi secara implisit
          Langkah-langkah untuk mengubah suatu kalimat (konversi) ke bentuk CNF :
         Hilangkan implikasi dan ekuivalensi
          x à y menjadi ¬ x y
           x y menjadi (¬ x y) (¬ y x)
          Kurangi lingkup semua negasi menjadi satu negasi saja
           ¬ (¬ x) menjadi x
           ¬ (x y) menjadi (¬ x ¬ y)
           ¬ (x y) menjadi (¬ x ¬ y)
          Gunakan aturan assosiatif dan distributif untuk mengkonversi menjadi conjuction of disjunction
           Assosiatif : (A B) C menjadi A (B C)
           Distributif : (A B) C menjadi (A C) (B C)
          Buat satu kalimat terpisah untuk tiap-tiap konjungsi
          Algoritma penyelesaian :
          Konversikan semua proposisi F ke bentuk CNF
          Negasikan P, dan konversikan hasil negasi tsb ke bentuk klausa. Tambahkan ke himp klausa pada langkah 1.
          kerjakan hingga terjadi kontradiksi
         Seleksi 2 klausa sebagai kalusa parent
         Bandingkan secara bersama-sama. Jika ada pasangan L dan L, maka eliminir
         Jika pembandingan kosong, maka ditemukan kontradiksi.
          Contoh :
Diketahui basis pengetahuan (fakta-fakta yang bernilai benar) sebagai berikut :
1. P
2. (P Q) 􀃆 R
3. (S T) 􀃆 Q
4. T
Tentukan kebenaran R.
Untuk membuktikan kebenaran R dengan menggunakan resolusi,maka ubah dulu menjadi bentuk CNF.
          UBAH KE BENTUK CNF
Kemudian kita tambahkan kontradiksi pada tujuannya, R menjadi ¬ R sehingga fakta-fakta (dalam bentuk CNF) dapat disusun menjadi :
1. P
2. ¬ P ¬ Q R
3. ¬ S Q
4. ¬ T Q
5. T
6. ¬ R
Sehingga resolusi dapat dilakukan untuk membuktikan kebenaran R, sebagai berikut :
Contoh bila diterapkan dalam kalimat :
          P : Ani anak yang cerdas
          Q : Ani rajin belajar
          R : Ani akan menjadi juara kelas
          S : Ani makannya banyak
          T : Ani istirahatnya cukup
Kalimat yang terbentuk :
 Ani anak yang cerdas
 Jika ani anak yang cerdas dan ani rajin belajar, maka ani akan menjadi juara kelas
 Jika ani makannya banyak atau ani istirahatnya cukup, maka ani rajin belajar
 Ani istirahatnya cukup
Setelah dilakukan konversi ke bentuk CNF, didapat :
Fakta ke-2 : Ani tidak cerdas atau ani tidak rajin belajar atau ani akan menjadi juara kelas
Fakta ke-3 : Ani tidak makan banyak atau ani rajin belajar
Fakta ke-4 : Ani tidak cukup istirahat atau ani rajin belajar
          LOGIKA PREDIKAT
Representasi Fakta sederhana
Misal diketahui fakta-fakta sebagai berikut :
Andi adalah seorang laki-laki : A
Ali adalah seorang laki-laki : B
Amir adalah seorang laki-laki : C
Anto adalah seorang laki-laki : D
Agus adalah seorang laki-laki : E
Jika kelima fakta tersebut dinyatakan dengan menggunakan proposisi, maka akan terjadi pemborosan, dimana beberapa pernyataan dengan predikat yang sama akan dibuat dalam proposisi yang berbeda.
Logika predikat digunakan untuk merepresentasikan hal-hal yang tidak dapat direpresentasikan dengan menggunakan logika proposisi. Pada logika predikat kita dapat merepresentasikan fakta-fakta sebagai suatu pernyataan yang disebut dengan wff (well – formed formula).
Pada contoh diatas, dapat dituliskan :
                   laki-laki(x)
dimana x adalah variabel yang disubstitusikan dengan Andi, Ali, Amir, Anto, Agus, dan laki-laki yang lain.
Dalam logika predikat, suatu proposisi atau premis dibagi menjadi 2 bagian, yaitu argumen (objek) dan predikat (keterangan). Argumen adalah individu atau objek yang membuat keterangan. Predikat adalah keterangan yang membuat argumen dan predikat.
Contoh :
1. Jika besok tidak hujan, Tommy pergi ke gunung
          ¬ cuaca(hujan,besok) àpergi(tommy, gunung)
2. Diana adalah nenek dari ibu Amir
          nenek(Diana,ibu(Amir))
3. Mahasiswa berada di dalam kelas
          didalam(mahasiswa,kelas)
Dari contoh diatas dapat dijabarkan sebagai berikut :
di dalam = predikat (keterangan)
mahasiswa = argumen (objek)
kelas = argumen (objek)
4. Johan suka Maria
                   suka(johan,maria)
5. Pintu terbuka
                   Buka(pintu)
6. Johan suka Maria
          Ramon suka Maria
Misal : Johan = x, Maria = y, Ramon = z
Maka : suka(x,y) suka(z,y) à tidak suka(x,z)
Dibaca : Jika Johan suka Maria dan Ramon suka Maria, maka Johan tidak suka Ramon
Misal terdapat pernyataan sebagai berikut :
1. Andi adalah seorang mahasiswa
2. Andi masuk jurusan Elektro
3. Setiap mahasiswa elektro pasti mahasiswa teknik
4. Kalkulus adalah matakuliah yang sulit
5. Setiap mahasiswa teknik pasti akan suka kalkulus atau akan membencinya
6. Setiap mahasiswa pasti akan suka terhadap suatu matakuliah
7. Mahasiswa yang tidak pernah hadir pada kuliah matakuliah sulit, maka mereka pastitidak suka terhadap matakuliah tersebut.
8. Andi tidak pernah hadir kuliah matakuliah kalkulus
Kedelapan pernyataan diatas dapat dibawa ke bentuk logika predikat dengan menggunakan operator-operator : 􀃆à , ¬ , , , (untuk setiap), (terdapat), sebagai berikut :
1. mahasiswa(Andi)
2. elektro(Andi)
3. x : elektro(x)àteknik(x)
4. sulit(kalkulus)
5. x : teknik(x) àsuka(x,kalkulus) benci(x,kalkulus)
6. x : y : suka(x,y)
7. x : y : mahasiswa(x) sulit(y) ¬hadir(x,y) à ¬suka(x,y)
8. ¬hadir(Andi,kalkulus)
Andaikan kita akan menjawab pertanyaan :
“Apakah Andi suka matakuliah kalkulus?”
Maka dari pernyataan ke-7 kita akan membuktikan bahwa Andi tidak suka dengan matakuliah kalkulus. Dengan menggunakan penalaran backward, bisa dibuktikan bahwa :
¬ suka(Andi,kalkulus) 
Terima kasih 
salam smartblogkoe[at]gmail[dot]com

No comments: