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)
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.
Leave a Reply