Algoritma Forward Chaining dan Backward Chaining 4


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:



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.


Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

4 pemikiran di “Algoritma Forward Chaining dan Backward Chaining