Selasa, 18 Oktober 2011

Sistem Pakar Pertemuan 6

Nama: Juliana Poernomo Putri
Nim: 08410100197
Tugas: Resum Sispak Pertemuan 6
Dosen: Titik Lusiani


Semantic Network
Semantic network adalah representasi yang mengekspresikan solusi permasalahan dengan menggunakan network (graph berarah). Di dalamnya menggunakan node(simpul) untuk merepretasikan suatu kondisi, dan arc(link) untuk merepretasikan relasi antar simpul. Semantic network ini adalah representasi yang bersifat:

  • Lexically, di dalamnya terdapat node(simpul), link dan batasan-batasan khusus dari permasalahan
  • Structurally, masing-masing link akan terkoneksi dari simpul yang paling depan(head node) sampai simpul yang paling belakang (tail node).
  • Semantically, semua simpul dan link merepretasikan permasalahan tetao berada dalam batasannya.
contoh:
       Permasalahan pertani, serigala, angsa dan padi. Seorang petani ingin memindahkan dirinya sendiri, seekor serigala, seekor angsa gemuk, dan seikat padi yang berisi menyeberangi sungai. Sayangnya, perahunya sangat terbatas; dia hanya dapat membawa 1object dalam 1 penyeberangan. Dan lagi, dia tidak bisa meninggalkan angsa dan serigala dalam satu tempat, karena serigala akan memangsa angsa. Demikian pula dia tidak bisa meninggalkan angsa dan padi dalam satu tempat.
      Mendeskripsikan permasalahan di atas dengan menggunakan bahasa natural bukanlah cara yang tepat. Dalam hal ini, kita dapa menggunakan Semantic Network untuk merepretasikannya.
Untuk membuat graph-nya, maka kita harus membangun node(simpul) untuk setiap kondisi yang memungkinkan bagi petani tersebut. Dengan memperhatikan petani dan tiga barangnya yang kemungkinan berada pada 2 seberang sungai, maka kita dapat menghitung jumlah simpul secara keseluruhan adalah 2^1+3= 2^4=16, dimana 10 simpul adalah kondisi yang aman (tidak ada satu barangpun yang termakan).
       Langkah kedua dan merupakan langkah terakhir adalah membentuk link dari masing-masing perjalanan perahu. Pasangan dari dua buah node(simpul) dapat digabungkan dengan menggunakan link jika dan hanya jika bertemu pada 2 kondisi, yaitu: petama, petani berubah tempat, salah satu barang dari petani berubah tempat. Karena terdapat 10 buah simpul yang masuk dalam batasan (aman), dimungkinkan adanya 10 x 9 = 90 pasangan, akan tetapi hanya 20 link yang dapat terbentuk karena batasan sepertu yang disebut di atas.
Dari gambar 4.1 dapat kita lihat hasil node dan link dari graph yang dibentuk untuk permasalahan petani dan 3 barang miliknya. Dari gambar ini nampak pada saat awal (simpul A) petani dan barang bawaanya masih berada pada salah satu seberang(seberang 1). Selanjutnya pada simpul B petani membawa angsa menuju seberang 2. Selanjutnya pada simpul C petani kembali lagi keseberang 1. Dari simpul C petani dapat memilih apakah menuju simpul D yang membawa seigala ke seberang 2 atau simpul F yaitu membawa padi ke seberang 2. Pada simpul E dan G petani membawa angsa ke seberang 1. Dari kedua simpul ini menuju ke simpul H dimana petani membawa serigala ke seberang 2. Pada simpul I petani kembali ke seberang 1. Simpul J petani membawa angsa ke seberang 2.

FRAME
Frame ditemukan oleh marvin Minsky pada tahun 1974 merupakan kumpulan pengetahuan tentang suatu object tertentu, peristiwa, lokasi, situasi, dll.
Frame memiliki slot yang menggambarkan rincian (atribut) dan karakteristik obyek. Frame biasanya digunakan untuk merepretasikan pengetahuan yang didasarkan pada karakteristik yang sudah dikenal, yang merupakan pengalaman-pengalaman. Dengan menggunakan frame, sangat mudah membuat inferensi tentang obyek, peristiwa atau situasi baru, karena frame menyediakan basis pengetahuan yang ditarik dari pengalaman. Ide hirariki dari frame sama dengan ide hirarki class yang terdapat pada pemrograman berorientasi obyek.

Bagaimana mengorganisir sebuah frame
Sebuah sistem frame merupakan hirarki dari frame-frame yang lain. Masing-masing frame memiliki:
  • Sebuah nama
  • Slot(tempat): yaitu komponen dari entiti yang mempunyai nama, dan mempunyai nilai. Nilai yang dimungkinkan adalah:
  1. Identifikasi frame
  2. Relasi dengan frame lain (slotnya: isa, instance)
  3. Batasan nilai
  4. Nilai: Default nilai (dapat berubah)
  5. Prosedur untuk mendapatkan nilai
  6. Prosedur yang dibangkitkan data (data driven): prosedur yang harus dilakukan jika nilai diubah, misal: periksa konsistensi kosong: untuk ditelusuri pada subclassnya.

Contoh:

Dalam frame tersebut, frame Adam memiliki 3 buah slot yaitu, sex,teman-hidup dan anak. 
Sedangkan slot anak memiliki tiga nilai,yaitu: Jeremy, Jordan dan Ellen. 
Seperti terlihat dalam gambar,kita juga dapat membuat frame lain yang merupakan sub-class dari Frame Adam. 
Setidaknya ada 7 frame sub-class yang menjelaskan masing-masing individu, yaitu: Adam, Ana, Jeremy, Jordan, Ellen,Laki-laki, and Perempuan.

Frame Adam dapat dikonversi ke dalam bentuk Predikat Calculus menjadi:
  • Sex (Adam, Laki-laki)
  • Teman Hidup(Adam, Ana)
  • Anak (Adam, Jeremy)
  • Anak (Adam, Jordan)
  • Anak (Adam, Ellen)

Sebuah slot merupakan relasi ke frame yang lain atau ke sebuah nilai.

Sumber:
Irawan. Jusak. 2007. Buku Pegangan Kuliah Sistem Pakar Sekolah Tinggi Manajemen Informatika & Teknik Komputer Surabaya. Surabaya: STIKOM
http://lecturer.eepis-its.edu/~entin/Kecerdasan%20Buatan/Buku/Bab%203%20Reasoning,%20Semantic%20Network,%20Frame.pdf 

Jumat, 07 Oktober 2011

Sistem Pakar Pertemuan 5

Nama: Juliana Poernomo Putri
Nim: 08410100197
Tugas: Resum Sispak Pertemuan 5
Dosen: Titik Lusiani

Dependency Diagram
Perancangan dependency diagram adalah langkah pertama yang dilakukan dalam merancang sebuah  knowledge base  dan  rule-rule. Dari  dependency diagram  yang ada, dapat dilihat hubungan antar rule  dan hal apa saja yang perlu ditanyakan ke user untuk memperoleh kesimpulan final.

Dependency diagram didalam sebuah sistem pakar berfungsi untuk menunjukkan hubungan atau ketergantungan antara inputan pertanyaan, rule-rule, nilai-nilai dan rekomendasi yang dibuat oleh prototype sistem berbasis pengetahuan. Dengan depedensi diagram, maka pembuatan sistem pakar menjadi lebih gampang karena menggunakan mode visual. Dan hubungan antar rule dapat dengan jelas terlihat. Dari depedensi diagram didapatkan Decision table yang menjadi acuan dalam pembuatan rule.

Langkah-Langkah membangun Knowledge Based System dari Dependency Diagram:
Langkah 1: Isolasi area bagi KBS
Langkah 2: Target Keputusan
Langkah 3:Membuat Dependency Diagram
Langkah 4: Membaut Table Keputusan
Langkah 5: Menulis IF-THEN rule

Contoh Dependency Diagram:
Permasalahan : Setelah lulus SMA, Julaikah memiliki keinginan untuk melanjutkan studi di bidang komputer. Namun karena bidang komputer memiliki beberapa disiplin ilmu, maka Julaikah harus berkonsultasi dg sistem pakar untuk menentukan pilihan yg tepat bagi dia.
Buatlah sebuah sistem pakar untuk membantu Julaikah menentukan pilihan dg kreteria sebagai berikut :
Disiplin ilmu yg direkomendasikan meliputi : Programmer komputer, ilmu komputer (computer science), teknisi komputer atau bidang lain selain komputer. Tiga hal utama sebagai penentu keputusan adalah :
·     Tes Atitude(ok, not-ok) yg meliputi : test kemampuan matematika (ya,tdk) dan test kemampuan programming (ya, tdk)
·         Test minat (bagus, sedang, rendah) yg meliputi:minat pd komputer(ya,tdk), minat pada kemampuan reparasi (ya,tdk) dan minat pada pemecahan masalah (ya,tdk)
·         Kemampuan finansial (ya,tdk)
Tugas :
1.    Tentukan Dependency Diagram untuk kasus tersebut
2.    Tentukan Tabel Keputusan untuk kasus tersebut
3.    Tentukan Rule-rule untuk menyelesaikan kasus tersebut

Blok Diagram Tabel Keputusan

Dependency Diagram

Tabel Keputusan


Penyederhanaan Tabel Keputusan

Rule






Sumber:

Sistem Pakar Pertemuan 4

Nama: Juliana Poernomo Putri
Nim: 08410100197
Tugas: Resum Sispak Pertemuan 4
Dosen: Titik Lusiani

Backward Chaining
Sekarang mari kita membahas dari topik sebelumnya yaitu Forward Chaining. Apakah ada yang masih ingat tentang Forward Chaining??
Sebelum membahas tentang Forward Chaining mari kita ulas sebentar tentang definisi Forward Chaining.

Forward chaining merupakan metode inferensi yang melakukan penalaran dari suatu masalah kepada solusinya. Jika klausa premis sesuai (bernilai TRUE) maka proses akan menyatakan konklusi.
Forward chaining adalah data-driven karena inferensi dimulai dengan informasi yang tersedia dan baru diperoleh konklusi. Jika suatu aplikasi menghasilkan tree yang lebar dan tidak dalam, maka gunakan forward chaining.
Intinya adalah forward chaining adalah dari Data ke Tujuan/goal.

Contoh:
A1 = suhu tubuh >= 38 0 C
A2 = batuk
A3 = pilek
A4 = batuk yang terus menerus
A5 = nafas berbunyi
P1 = demam biasa
P2 = batuk biasa
P3 = influensa / infeksi virus
P4 = batuk rejan
P5 = infeksi saluran nafas
Kaidah – kaidah pada basis pengetahuan meliputi :
R1 = IF A1 THEN P1
R2 = IF A2 THEN P2
R3 = IF P1 AND (P1 OR A3) THEN P3
R4 = IF P3 AND A4 THEN P4
R5 = IF P3 And A5 THEN P5
Fakta – fakta yang diperoleh dari unsur adalah demam, batuk, dan batuk tersebut lebih sering di malam hari (A1, A2,A4)
Jelaskan bagaimana sisitem pakar memperoleh kesimpulan jika tehnik inferensi yang digunakan adalah :
Pelacakan yang berawal dari data (forward chaining)
Pelacakan yang berawal dari kesimpulan (backward chaining)

Langkah- langkan forward chaining :
Langkah1 :
A1 , A2 , A4 adalah fakta
Cari fakta baru yang memiliki A1 dan A2 pada sisi JIKA
R1 = IF A1 THEN P1
R2 = IF A2 THEN P2
Fakta baru yang ada P1, P2, A4
Langkah 2 :
Cari fakta baru yang memiliki P1, P2, A4 pada sisi JIKA
R3 = IF P1 AND (P2 OR A3) THEN P4
Fakta A3 tidak ditemukan, jadi :
R3 = IF P1 AND P2 THEN P3
Fakta baru yang ada P3 dan A4
Langkah 3 :
Cari fakta baru yang memiliki P3 dan A4 pada sisi JIKA
R4 = IF P3 AND A4 THEN P4
Kesimpulannya P4 atau Batuk Rejan


Nah setelah tahu definisi dan contoh dari Forward Chaining, sekarang beralih ke Backward Chaining yang merupakan topik kita hari ini: 

Backward Chaining 
Menggunakan pendekatan goal-driven, dimulai dari harapan apa yang akan terjadi (hipotesis) dan kemudian mencari bukti yang mendukung (atau berlawanan) dengan harapan kita. Sering hal ini memerlukan perumusan dan pengujian hipotesis sementara. Jika suatu aplikasi menghasilkan tree yang sempit dan cukup dalam, maka gunakan backward chaining.
Intinya adalah dari Goal lalu dicari data-datanya.

contohnya kita ambil dari sebelumnya yang sudah saya jelaskan kembali dari pertemuan sebelumnya..^^
namun sekarang penyelesaiannya menggunakan Backward Chaining.

Langkah- langkan backward chaining :

Langkah1 :
Cari fakta baru yang memiliki P1 dan P2 pada sisi MAKA
R1 = IF A1 THEN P1
R2 = IF A2 THEN P2
Fakta baru yang ada A1 , A2 , A4
Langkah 2 :
Cari fakta baru yang memiliki P3 pada sisi MAKA
R3 = IF P1 AND (P2 OR A3) THEN P4
Fakta A3 tidak ditemukan, jadi :
R3 = IF P1 AND P2 THEN P3
Fakta baru yang ada P1 dan P2
Langkah 1 :
Kesimpulannya P4 atau Batuk Rejan
Cari fakta baru yang memiliki P4 pada sisi MAKA
R4 = IF P3 AND A4 THEN P4
Fakta baru yang ditemukan P3 dan A4


Sumber:
Irawan. Jusak. 2007. Buku Pegangan Kuliah Sistem Pakar Sekolah Tinggi Manajemen Informatika & Tejnik Komputer Surabaya. Surabaya: STIKOM