Selasa, 13 Desember 2016

Backward Chaining (Mesin Inferensi)

            Runut balik (Backward chaining) merupakan metode penalaran kebalikan dari metode runut maju (forward chaining). Dalam runut balik penalaran dimulai dengan tujjuan kemudian merunut balik ke jalur yang akan mengarahkan ke tujuan tersebut (Giarattano dan Riley, 1994). Runut balik bisa juga disebut sebagai goal-driven reasoning, yaitu cara yang efisien untuk memecahkan masalah-masalah yang dimodelkan sebagai masalah pemilihan terstruktur.

            Proses yang dilakukan pada metode runut mundur yaitu ingin mendapatkan salah satu konklusi dari konklusi yang ada, jika pada runut maju menggunakan beberapa premis, pada metode ini yang ingin didapatkan juga sama , hanya saja digunakan salah satu konklusi dari banyak konklusi atau tidak dari konklusi yang ada.

            Penelusuran metode ini didasarkan bahwa ada kemungkinan dari konklusi-konklusi yang ada merupakan salah satu tujuan terpilih dari fakta yang diberikan oleh pemakai. Sistemdengan urutan tertentu akan mengambil sebuah konklusi menjadi calon konklusinya. Misal urutannya sesuai dengan sebuah konklusi  1 dan diambil konklusi 1 sebagai hipotesisnya, maka untuk membuktikan hipotesisnya sistem akan mencari premis-premis yang mengandung konklusi 1. Setelah itu sistem akan memberikan umpan balik kepada pemakai berupa premis-premis yang ada misalnya ada premis 1, premis 2 dan premis 3, maka sistem akan mencari tahu apakah pemakai memilih premis-premis tersebut.

            Cara untuk mengambil umpan balik yaitu dengan mencari daftar premis yang dipilih oleh user atau dengan cara menanyakan satu-persatu premis yang seharusnya dipilih. Jika ada premis yang tidak  dipilih oleh user maka hipotesis atas konklusi tersebut gugurn artinya fakta yang dimasukan oleh user konklusinya bukan pada konklusi 1. Setelah itu sistem akan melanjutkan hipotesis ke konklusi selanjutnya, dan seterusnya dilakukan seperti itu sampai ditentukan konklusi yang semua premis dalam aturannya dipilih.

            Jika sampai tahap terakhir tidak ada premis yang terpenuhi maka sistem akan mengambil kesimpulan bahwa konklusinya berada diluar pengetahuannya, yang berarti sistem tidak menemukan solusi untuk premis-premis pilihan user.

Karakteristik Backward Chaining:
  •         Diagnosis
  •          Disajikan untuk masa lalu
  •          Konsekuen ke antecedent
  •          Tujuan memandu, penalaran dari atas ke bawah
  •          Bekerja ke belakang untuk mendapatkan fakta yang mendukung hipotesis
  •          Depth first search dimudahkan
  •          Konsekuen menentukan pencarian
  •          Penjelasan difasilitasi


Contoh  : 
R1 : IF suku bunga turun THEN harga obligasi naik
R2 : IF suku bunga naik THEN harga obligasi turun
R3 : IF suku bunga tidak berubah TH
EN harga obligasi tidak berubah
R4 : IF dolar naik THEN suku bunga turun
R5 : IF dolar turun THEN suku bunga naik
R6 : IF harga obligasi turun THEN beli obligasi

Apabila  diketahui  bahwa  dolar  turun,  maka  untuk  memutuskan  apakah  akan  membeli  obligasi  atau tidak dapat ditunjukkan sebagai berikut :

Jika digunakan Backward Chaining maka solusinya adalah sebagai berikut:
            Dari  solusi  yaitu  membeli  obligasi,  dengan  menggunakan  Rule  6  diperoleh  anteseden  harga  obligasi turun. Dari Rule 2 dibuktikan harga obligasi turun bernilai benar jika suku bunga naik bernilai  benar  .  Dari  Rule  5  suku  bunga  naik  bernilai  memang  bernilai  benar  karena  diketahui  fakta dolar turun. 

Sumber:
Kusrini. 2008. Aplikasi Sistem Pakar: Menentukan Faktor Kepastian Pengguna dengan Metode Kuantifikasi Pertanyaan. Yogyakarta: Andi.

Senin, 12 Desember 2016

Forward Chaining (Inference Engine)

Dalam tulisan sebelumnya saya sudah membahas sekilas tentang apa itu mesin inferensi (inference engine), selanjutnya kita akan membahas salah satu metode yang biasanya dipakai pada mesin inferensi yaitu Forward Chaining. Disini saya akan menjelaskan apa itu teknik forward chaining dan contoh sederhana pengerjaan forward chaining.
Forward Chaining adalah teknik pencarain yang dimulai dengan fakta yang diketahui, kemudian mencocokan fakta-fakta tersebut dengan bagian IF dari rules IF-THEN. Bila ada fakta yang cocok dengan bagian IF, maka rule tersebut dieksekusi. Bila sebuah rule dieksekusi, maka sebuah fakta baru (bagian THEN) ditambahkan ke dalam database. Setiap rule hanya boleh dieksekusi sekali saja. T.Sutojo, c.t, 2010. Jadi bisa dikatakan forward chaining adlah penalaran yang dilakukan dari fakta menuju kesimpulan yang dihasilkan fakta tersebut.
Karakteristik Forward Chaining:
  •          Perencanaan, monitoring, kontrol
  •          Disajkan untuk masa depan
  •          Antecedent ke konsekuen
  •          Data memandu, penalaran dari bawah ke atas
  •          Bekerja ke depan untuk mendapatkan solusi apa yang mengikuti fakta
  •          Breadth first search dimudahkan
  •          Antecedent menentukan pencarian
  •          Penjelasan tidak difasilitasi

Contoh Kasus:
R1 : IF suku bunga turun THEN harga obligasi naik
R2 : IF suku bunga naik THEN harga obligasi turun
R3 : IF suku bunga tidak berubah THEN harga obligasi tidak berubah
R4 : IF dolar naik THEN suku bunga turun
R5 : IF dolar turun THEN suku bunga naik
R6 : IF harga obligasi turun THEN beli obligasi
Apabila diketahui bahwa dolar turun, maka untuk memutuskan apakah akan membeli obligasi atau tidak, dalam forward chaining dapat ditunjukkan sebagai berikut :
Dari fakta dolar turun, berdasarkan Rule 5, diperoleh konklusi suku bunga naik. Dari Rule 2 suku bunga naik menyebabkan harga obligasi turun. Dengan Rule 6, jika harga obligasi turun, maka kesimpulan yang diambil adalah membeli obligasi.

            Sekian tulisan tentang forward chaining, untuk backward chaining akan saya bahas pada tulisan yang berikutnya.
Sumber:
Hayadi, B.Herawan, 2016. Sistem Pakar: Penyelesaian Kasus Menentukan Minat Baca, Kecenderungan, dan Karakter Siswa dengan Metode Forward Chaining. Yogyakarta: Deepublish.
Rosnelly, Rika. 2012. Sistem Pakar: Konsep dan Teori. Yogyakarta: Andi.

Mesin Inferensi

Inferensi merupakan proses untuk menghasilkan informasi dari fakta yang diketahui atau diasumsikan. Inferensi adalah konklusi logis (logical conclusion) yang merupakan imlikasi berdasarkan informasi yang tersedia. Pada sistem pakar proses inferensi dilakukan olehsuatu modul yang dinamakan mesin inferensi (inference engine). Pada komponen ini terkandung suatu mekanisme pola pikir yang digunakan oleh seorang pakar dalam memecahkan masalah.
Mesin inferensi adalah modul yang merangkaikan basis data untuk menjadi sebuah kesimpulan. Mesin inferensi ini yang akan digunakan untuk menyelesaikan masalah yang diberikan kepada komputer. Data yang diambil dari basis pengetahuan diambil berdasarkan masalah apa yang akan diselesaikan oleh komputer, dan metode yang akan digunakan untuk menyelesaikan masalah itu pun akan berbeda-beda sesuai dengan pokok masalah. Jika masalah yang diberikan tidak dapat diselesaikan maka masalah tersebut akan disimpan ke dalam data.
Hasil pemrosesan yang dilakukan oleh mesin inferensi dari sudut pandang pengguna yang bukan pakar berupa konklusi yang di rekomendasikan oleh sistem pakar atau dapat juga berupa penjelasan jika memang dibutuhkan oleh pengguna. Untuk meningkatkan kemampuan sistem  pakar,  pada  sistem  tersebut  harus  dapat  dilakukan  proses  pembaharuan  pada  basis pengetahuan (knowledge base)  dan penyempurnaan pada mesin inferensi (inference engine) sehingga solusi yang dihasilkan lebih baik daripada sebelumnya [Hartati dan Iswanti dalam Kamsyakawuni].
Ada dua metode inferensi yang digunakan dalam sistem pakar yaitu Forward Chaining (runut maju), dan Backward Chaining (runut mundur) yang akan dibahas pada tulisan selanjutnya.

Sumber:
            Kamsyakawuni Ahmad. 2012. Aplikasi Sistem Pakar Untuk Diagnosa Penyakit Hipertiroid dengan Metode Inferensi fuzzy Mamdani (Tesis), Semarang: Universitas Diponegoro.
Kusrini. 2006. Sistem Pakar: Teori dan Aplikasi. Yogyakarta: Andi.