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:
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.
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.
Terima kasih sudah berkunjung di website saya. Silahkan ditanyakan apabila ada yang kurang jelas.
sangat bermanfaat.
trimakash ngeshare artikel ini..
Sama sama