Algoritma Forward Chaining dan Backward Chaining

Algoritma Forward Chaining dan Backward Chaining adalah salah satu algoritma untuk mendapatkan kesimpulan berdasarkan data-data yang ada. Biasanya digunakan dalam aplikasi yang menggunakan sistem pengambilan keputusan (SPK). Contoh kasus yang akan dibahas kali ini adalah penentuan jenis penyakit berdasarkan gejala-gejala yang ditimbulkan.

Ada 2 algoritma yang akan dibahas kali ini, yaitu algoritma Forward Chaining dan algortima Backward Chaining. Penjelasan lebih lanjut ada pada penjelasan script dibawah.

Langkah pertama adalah memasukkan data-data yang digunakan
Diasumsikan ada beberapa aturan jenis penyakit, yaitu:
1. Apabila suhu badan naik maka demam.
2. Apabila batuk dan sering bersin maka flu.
3. Apabila badan lemas maka suhu badan naik.
4. Apabila tenggorokan gatal / sakit maka batuk.
5. Apabila sering bersin maka sering bersin.

Contoh data adalah sebagai berikut

Dim aturan(4, 1) As String
aturan(0, 0) = "suhu badan naik"
aturan(0, 1) = "demam"
aturan(1, 0) = "batuk dan sering bersin"
aturan(1, 1) = "flu"
aturan(2, 0) = "badan lemas"
aturan(2, 1) = "suhu badan naik"
aturan(3, 0) = "tenggorokan gatal / sakit"
aturan(3, 1) = "batuk"
aturan(4, 0) = "sering bersin"
aturan(4, 1) = "sering bersin"

Buat Kuisioner dengan jawaban y/n
Data-data ini nantinya akan diolah oleh kedua algoritma diatas.

Dim input As String = "", input2 As String = "", input3 As String = ""

Console.WriteLine("Apakah badan lemas? (y/n)")
input = Console.ReadLine
If input = "y" Then
	Console.WriteLine("Apakah suhu badan naik? (y/n)")
	input2 = Console.ReadLine
	If input2 = "n" Then
		Console.WriteLine("Solusi Tidak Ditemukan")
		Console.ReadLine()
		Return
	End If

ElseIf input = "n" Then
	Console.WriteLine("Apakah tenggorokan gatal / sakit? (y/n)")
	input2 = Console.ReadLine
	If input2 = "n" Then
		Console.WriteLine("Solusi Tidak Ditemukan")
		Console.ReadLine()
		Return
	End If

	Console.WriteLine("Apakah sering bersin? (y/n)")
	input3 = Console.ReadLine
	If input3 = "n" Then
		Console.WriteLine("Solusi Tidak Ditemukan")
		Console.ReadLine()
		Return
	End If
End If


A. Algoritma Forward Chaining

Membuat tujuan / kesimpulan berdasarkan dari inputan data yang sudah diketahui.
Hasil tujuan akan menjadi data baru dan diproses lagi sampai kepada tujuan akhir atau akhir dari permasalahan.

'Aturan 3
If input = "y" Then jawaban = aturan(2, 1)
'Aturan 1
If input2 = "y" And jawaban = "suhu badan naik" Then jawaban = aturan(0, 1)
'Aturan 4
If input = "n" And input2 = "y" Then jawaban = aturan(3, 1)
'Aturan 5
If input3 = "y" And jawaban = "batuk" Then jawaban = aturan(4, 1)
'Aturan 2
If jawaban = "sering bersin" Then jawaban = aturan(1, 1)

If jawaban = "demam" Or jawaban = "flu" Then
	Console.WriteLine("Penyakit yang diderita adalah " & jawaban)
End If


B. Algoritma Backward Chaining

Mencari data-data berdasarkan tujuan akhir yang sudah diketahui.
Data tersebut nantinya akan menjadi tujuan baru yang akan dicari data-data nya, sampai kepada data paling awal.
Jika data paling awal sudah sesuai dengan kriteria inputan, maka tujuan akhir tersebut memang benar.

jawaban = aturan(0, 1)
'Aturan 1
If input2 = "y" And jawaban = "demam" Then jawaban = aturan(0, 0)
'Aturan 3
If input = "y" And jawaban = "suhu badan naik" Then jawaban = aturan(2, 0)

If jawaban = aturan(2, 0) Then
	Console.WriteLine("Penyakit yang diderita adalah " & aturan(0, 1))
	Console.ReadLine()
	Return
End If

jawaban = aturan(1, 1)
'Aturan 2
If input = "n" Then jawaban = aturan(1, 0)

Dim klausajawaban(1) As String
If jawaban = aturan(1, 0) Then
	klausajawaban(0) = aturan(3, 1)
	klausajawaban(1) = aturan(4, 1)
End If

'Aturan 4
If input2 = "y" And klausajawaban(0) = "batuk" Then klausajawaban(0) = aturan(3, 0)
'Aturan 5
If input3 = "y" And klausajawaban(1) = "sering bersin" Then klausajawaban(1) = aturan(4, 0)

If klausajawaban(0) = aturan(3, 0) And klausajawaban(1) = aturan(4, 0) Then
	Console.WriteLine("Penyakit yang diderita adalah " & aturan(1, 1))
	Console.ReadLine()
	Return
End If


Hasil akhir adalah: (klik untuk perbesar gambar)

cmd7


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:

[sdm_download id=”254″ fancy=”0″]



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.

Comments

4 responses to “Algoritma Forward Chaining dan Backward Chaining”

  1. Rossi Avatar
    Rossi

    Kbtulan skripsi sy mirip gan judulnya, sm2 bahas forwrd chaining utk diagnosa penyakit tapi buat diabetes. untung ada contoh programnya, sgt membantu gan. nanti klo ada masalah sy tanya2 disini.

    1. pip Avatar
      pip

      Terima kasih sudah berkunjung di website saya. Silahkan ditanyakan apabila ada yang kurang jelas.

  2. Zikril Avatar

    sangat bermanfaat.
    trimakash ngeshare artikel ini..

    1. pip Avatar
      pip

      Sama sama

Leave a Reply

Your email address will not be published. Required fields are marked *