programer skripsi tesis tugas akhir
-

Contoh Program Source Code   /

Metode Forward Chaining dengan Java

Posted on 04.21
Join with us

Metode Forward Chaining dengan Java

Forward Chaining (runut maju) 

Forward Chaining (runut maju) berarti menggunakan himpunan aturan kondisi-aksi . Dalam metode ini, data dipakai unt menentukan aturan mana yg akan dijalankan, kemudian aturan tersebut dijalankan. Mungkin proses menambahkan data ke memori kerja. Proses diulang sampai ditemukan suatu hasil (Wilson,1998). Metode Forward Chaining disebut juga penalaran dari bawah ke atas krn penalaran dari fakta pd level  bawah menuju konklusi pd level atas yg didasarkan pd fakta. Dalam hal ini pelacakan dimulai dari informasi masukan, & selanjutnya mencoba menggambarkan kesimpulan.

Dalam sistem pakar ini dipakai metode forward chaining krn unt memudahkan user dalam mendeteksi suatu penyakit ayam. Pengguna dari sistem pakar ini diantaranya penyuluh peternakan, peternak, & orang awam. Proses forward chaining dimulai dg menanyakan gejala-gejala yg ditimbulkan oleh  ayam kepada user, sehingga user dapat mengetahui jawaban yg berupa penyakit yg menyerang ayam tersebut.

Namun jika sistem pakar ini menggunakan metode backward chaining yg mrp pelacakan yg dimulai dari kesimpulan menuju fakta-fakta, jika pengguna dari sistem pakar ini orang awam maka akan sulit bagi user ini unt memasukkan informasi yg berupa sebuah kesimpulan yaitu penyakit ayam krn unt seorang yg awam pengetahuan mereka akan penyakit masih sangat terbatas maka unt lebih memudahkan orang awam dalam memperoleh sebuah keputusan maka proses pelacakan dimulai dg menanyakan gejala-gejala terlebih dahulu sampai mencapai sebuah keputusan. Jika pengguna sistem pakar ini mrp penyuluh peternakan atau peternak ayam maka dg metode forward chaining atau backward chaining tdk terlalu sulit krn pengetahuan mereka akan penyakit ayam lebih banyak dibandingkan dg orang awam.

 Penggunaan sistem pakar yg menggunakan metode forward chaining di universitas UPN ”Veteran” Jawa Timur ini memang sudah ada, namun adapun hal-hal yg membedakan antara sistem pakar ini dg sistem pakar yg sudah ada yaitu sistem pakar dg menggunakan metode forward chaining yg sudah ada pelacakan dimulai dari informasi masukan & selanjutnya memperoleh sebuah keputusan & proses inference engine sudah selesai. Akan tetapi pd proses sistem pakar ini dimulai dari pelacakan informasi masukan user & mencoba mencari sebuah rule yg didasarkan pd informasi masukan user yg selanjutnya mendapatkan suatu konklusi sementara. Sesudah memperoleh konklusi sementara proses inference engine masih berjalan yaitu dg mencari konklusi sementara tersebut yg bertindak sebagai premis di rule lainnya. Maka program akan melanjutkan pertanyaan selanjutnya sesuai dg rule-rule yg memenuhi konklusi sementara sampai ditemukan sebuah konklusi akhir.

Contoh permasalahan menggunakan Forward Chaining, diketahui kaidah tipe IF..THEN..berikut:
IF A THEN B
IF B THEN C
IF C THEN D
Dalam metode ini, data dipakai unt menentukan aturan mana yg akan dijalankan, kemudian aturan tersebut dijalankan. unt langkah-langkahnya sebagai berikut :
  1. Catat fakta pertama yg sudah diinputkan oleh user.
  2. Cari rule yg bagian premisnya sesuai dg fakta yg diinputkan.
  3. Jika rule tdk ada maka cari fakta selanjutnya, kemudian kembali ke langkah no 2.
  4. Jika rule ada maka akan ketemu konklusi sementara
  5. Cari rule yg menggunakan konklusi sementara sebagai premis
  6. Jika rule tdk ada maka penyakit tdk ditemukan.
  7. Namun jika rule terpenuhi cari fakta selanjutnya yg sesuai dg konklusi sementara.
  8. Cari rule yg menggunakan konklusi sementara & fakta selanjutnya sebagai premis.
  9. Jika rule tdk terpenuhi maka penyakit tdk ditemukan, namun jika rule terpenuhi maka penyakit ditemukan.

Contoh Program Metode Forward Chaining dengan Java

Dasar-dasar kecerdasan buatan: Ini adalah implementasi forward chaining yg bekerja dg basis pengetahuan bentuk tanduk. Memiliki beberapa kesulitan menemukan apapun yg sederhana & mudah dimengerti 



import java.util.*;
import java.io.*;
 
// unt menjalankan hanya melakukan: FC baru (bertanya, tahu) & kemudian fc.execute ()
// Tanyakan adalah simbol proposisi
// & memberitahu adalah basis pengetahuan
// Bertanya: r
// Kirim: p => q; q => r; p; q;
 
class FC{

// Membuat variabel
public static String tell;
public static String ask;
public static ArrayList<String> agenda;
 
public static ArrayList<String> facts;
public static ArrayList<String> clauses;
public static ArrayList<Integer> count;
public static ArrayList<String> entailed;
 
 
public FC(String a, String t){

     // Inisialisasi variabel
     agenda  = new ArrayList<String>();
     clauses  = new ArrayList<String>();
     entailed  = new ArrayList<String>();
     facts  = new ArrayList<String>();
     count  = new ArrayList<Integer>();
     tell = t;
     ask = a;
     init(tell);
}
 
// Metode yg menyebut fcentails utama () 
// metode & mengembalikan output kembali ke iengine

public String execute(){
     String output = "";
     if (fcentails()){
     
      // metode kembali benar sehingga memerlukan
      output = "YES: ";
      
      // unt masing-masing memerlukan simbol
      for (int i=0;i<entailed.size();i++){
           output += entailed.get(i)+", ";
      }
      output += ask;     
     }
     else{
      output = "NO";
     }
     return output;     
}
 
// FC algorithm
public boolean fcentails(){

// loop melalui sementara ada fakta yg belum diolah
while(!agenda.isEmpty()){

     // mengambil item pertama & memprosesnya
      String p = agenda.remove(0);
     
     // menambah mensyaratkan
     entailed.add(p);
     
     // unt masing-masing klausa....
     for (int i=0;i<clauses.size();i++){
     
      // .... yg mengandung p di premisnya
      if (premiseContains(clauses.get(i),p)){
      Integer j = count.get(i);
      
      // mengurangi jumlah: elemen yg tdk diketahui di setiap premis
      count.set(i,--j);
      
      // semua elemen dalam premis yg sekarang dikenal
      if (count.get(i)==0){
      
           // kesimpulan sudah terbukti begitu dimasukkan ke dalam agenda
           String head = clauses.get(i).split("=>")[1];
           
           // sudah kami hanya membuktikan 'meminta'?
           if (head.equals(ask))
       return true;
           agenda.add(head);           
      }
      }     
     }
     }
     
     // jika kita tiba di sini kemudian meminta tdk dapat mensyaratkan
     return false;
} 
 
// Metode yg mendirikan nilai awal unt forward chaining 
// mengambil dalam string yg mewakili KB & memisahkannya 
// simbol & klausa, menghitung menghitung dll ..

public static void init(String tell){
   String[] sentences = tell.split(";");
     for (int i=0;i<sentences.length;i++){
 
     if (!sentences[i].contains("=>")) 
     
      // menambahkan fakta unt diproses
      agenda.add(sentences[i]);
     else{
     
      // menambahkan kalimat
      clauses.add(sentences[i]);
      count.add(sentences[i].split("&").length);
      }
     }
}
 
// Metode yg memeriksa jika p muncul dalam premis klausul yg diberikan
// Masukan: klausa, p
// Output: benar jika p adalah premis klausa

public static boolean premiseContains(String clause, String p){
     String premise = clause.split("=>")[0];
     String[] conjuncts = premise.split("&");
     
     // memeriksa apakah p dalam premis
     if (conjuncts.length==1)
     return premise.equals(p);
     else
     return Arrays.asList(conjuncts).contains(p);
}
}



Metode Forward Chaining dengan Java

Forward Chaining (runut maju) 

Forward Chaining (runut maju) berarti menggunakan himpunan aturan kondisi-aksi . Dalam metode ini, data dipakai unt menentukan aturan mana yg akan dijalankan, kemudian aturan tersebut dijalankan. Mungkin proses menambahkan data ke memori kerja. Proses diulang sampai ditemukan suatu hasil (Wilson,1998). Metode Forward Chaining disebut juga penalaran dari bawah ke atas krn penalaran dari fakta pd level  bawah menuju konklusi pd level atas yg didasarkan pd fakta. Dalam hal ini pelacakan dimulai dari informasi masukan, & selanjutnya mencoba menggambarkan kesimpulan.

Dalam sistem pakar ini dipakai metode forward chaining krn unt memudahkan user dalam mendeteksi suatu penyakit ayam. Pengguna dari sistem pakar ini diantaranya penyuluh peternakan, peternak, & orang awam. Proses forward chaining dimulai dg menanyakan gejala-gejala yg ditimbulkan oleh  ayam kepada user, sehingga user dapat mengetahui jawaban yg berupa penyakit yg menyerang ayam tersebut.

Namun jika sistem pakar ini menggunakan metode backward chaining yg mrp pelacakan yg dimulai dari kesimpulan menuju fakta-fakta, jika pengguna dari sistem pakar ini orang awam maka akan sulit bagi user ini unt memasukkan informasi yg berupa sebuah kesimpulan yaitu penyakit ayam krn unt seorang yg awam pengetahuan mereka akan penyakit masih sangat terbatas maka unt lebih memudahkan orang awam dalam memperoleh sebuah keputusan maka proses pelacakan dimulai dg menanyakan gejala-gejala terlebih dahulu sampai mencapai sebuah keputusan. Jika pengguna sistem pakar ini mrp penyuluh peternakan atau peternak ayam maka dg metode forward chaining atau backward chaining tdk terlalu sulit krn pengetahuan mereka akan penyakit ayam lebih banyak dibandingkan dg orang awam.

 Penggunaan sistem pakar yg menggunakan metode forward chaining di universitas UPN ”Veteran” Jawa Timur ini memang sudah ada, namun adapun hal-hal yg membedakan antara sistem pakar ini dg sistem pakar yg sudah ada yaitu sistem pakar dg menggunakan metode forward chaining yg sudah ada pelacakan dimulai dari informasi masukan & selanjutnya memperoleh sebuah keputusan & proses inference engine sudah selesai. Akan tetapi pd proses sistem pakar ini dimulai dari pelacakan informasi masukan user & mencoba mencari sebuah rule yg didasarkan pd informasi masukan user yg selanjutnya mendapatkan suatu konklusi sementara. Sesudah memperoleh konklusi sementara proses inference engine masih berjalan yaitu dg mencari konklusi sementara tersebut yg bertindak sebagai premis di rule lainnya. Maka program akan melanjutkan pertanyaan selanjutnya sesuai dg rule-rule yg memenuhi konklusi sementara sampai ditemukan sebuah konklusi akhir.

Contoh permasalahan menggunakan Forward Chaining, diketahui kaidah tipe IF..THEN..berikut:
IF A THEN B
IF B THEN C
IF C THEN D
Dalam metode ini, data dipakai unt menentukan aturan mana yg akan dijalankan, kemudian aturan tersebut dijalankan. unt langkah-langkahnya sebagai berikut :
  1. Catat fakta pertama yg sudah diinputkan oleh user.
  2. Cari rule yg bagian premisnya sesuai dg fakta yg diinputkan.
  3. Jika rule tdk ada maka cari fakta selanjutnya, kemudian kembali ke langkah no 2.
  4. Jika rule ada maka akan ketemu konklusi sementara
  5. Cari rule yg menggunakan konklusi sementara sebagai premis
  6. Jika rule tdk ada maka penyakit tdk ditemukan.
  7. Namun jika rule terpenuhi cari fakta selanjutnya yg sesuai dg konklusi sementara.
  8. Cari rule yg menggunakan konklusi sementara & fakta selanjutnya sebagai premis.
  9. Jika rule tdk terpenuhi maka penyakit tdk ditemukan, namun jika rule terpenuhi maka penyakit ditemukan.

Contoh Program Metode Forward Chaining dengan Java

Dasar-dasar kecerdasan buatan: Ini adalah implementasi forward chaining yg bekerja dg basis pengetahuan bentuk tanduk. Memiliki beberapa kesulitan menemukan apapun yg sederhana & mudah dimengerti 



import java.util.*;
import java.io.*;
 
// unt menjalankan hanya melakukan: FC baru (bertanya, tahu) & kemudian fc.execute ()
// Tanyakan adalah simbol proposisi
// & memberitahu adalah basis pengetahuan
// Bertanya: r
// Kirim: p => q; q => r; p; q;
 
class FC{

// Membuat variabel
public static String tell;
public static String ask;
public static ArrayList<String> agenda;
 
public static ArrayList<String> facts;
public static ArrayList<String> clauses;
public static ArrayList<Integer> count;
public static ArrayList<String> entailed;
 
 
public FC(String a, String t){

     // Inisialisasi variabel
     agenda  = new ArrayList<String>();
     clauses  = new ArrayList<String>();
     entailed  = new ArrayList<String>();
     facts  = new ArrayList<String>();
     count  = new ArrayList<Integer>();
     tell = t;
     ask = a;
     init(tell);
}
 
// Metode yg menyebut fcentails utama () 
// metode & mengembalikan output kembali ke iengine

public String execute(){
     String output = "";
     if (fcentails()){
     
      // metode kembali benar sehingga memerlukan
      output = "YES: ";
      
      // unt masing-masing memerlukan simbol
      for (int i=0;i<entailed.size();i++){
           output += entailed.get(i)+", ";
      }
      output += ask;     
     }
     else{
      output = "NO";
     }
     return output;     
}
 
// FC algorithm
public boolean fcentails(){

// loop melalui sementara ada fakta yg belum diolah
while(!agenda.isEmpty()){

     // mengambil item pertama & memprosesnya
      String p = agenda.remove(0);
     
     // menambah mensyaratkan
     entailed.add(p);
     
     // unt masing-masing klausa....
     for (int i=0;i<clauses.size();i++){
     
      // .... yg mengandung p di premisnya
      if (premiseContains(clauses.get(i),p)){
      Integer j = count.get(i);
      
      // mengurangi jumlah: elemen yg tdk diketahui di setiap premis
      count.set(i,--j);
      
      // semua elemen dalam premis yg sekarang dikenal
      if (count.get(i)==0){
      
           // kesimpulan sudah terbukti begitu dimasukkan ke dalam agenda
           String head = clauses.get(i).split("=>")[1];
           
           // sudah kami hanya membuktikan 'meminta'?
           if (head.equals(ask))
       return true;
           agenda.add(head);           
      }
      }     
     }
     }
     
     // jika kita tiba di sini kemudian meminta tdk dapat mensyaratkan
     return false;
} 
 
// Metode yg mendirikan nilai awal unt forward chaining 
// mengambil dalam string yg mewakili KB & memisahkannya 
// simbol & klausa, menghitung menghitung dll ..

public static void init(String tell){
   String[] sentences = tell.split(";");
     for (int i=0;i<sentences.length;i++){
 
     if (!sentences[i].contains("=>")) 
     
      // menambahkan fakta unt diproses
      agenda.add(sentences[i]);
     else{
     
      // menambahkan kalimat
      clauses.add(sentences[i]);
      count.add(sentences[i].split("&").length);
      }
     }
}
 
// Metode yg memeriksa jika p muncul dalam premis klausul yg diberikan
// Masukan: klausa, p
// Output: benar jika p adalah premis klausa

public static boolean premiseContains(String clause, String p){
     String premise = clause.split("=>")[0];
     String[] conjuncts = premise.split("&");
     
     // memeriksa apakah p dalam premis
     if (conjuncts.length==1)
     return premise.equals(p);
     else
     return Arrays.asList(conjuncts).contains(p);
}
}


Contoh Program Metode Forward Chaining dengan Java

Source Code Metode Forward Chaining dengan Java

Source Code Tutorial belajar Gratis download Flow Chart PDF ZIP RAR DOC Java C# Visual Basic VB PHP Matlab C++ Penerapan implementasi metode algoritma pemrograman

Tutorial belajar Metode Forward Chaining dengan Java

VB PHP Matlab C++ Penerapan implementasi metode algoritma pemrograman Source Code Tutorial belajar Gratis download Flow Chart PDF ZIP RAR DOC Java C# Visual Basic

Gratis download Metode Forward Chaining dengan Java

Chart PDF ZIP RAR DOC Java C# Visual Basic VB PHP Matlab C++ Penerapan implementasi metode algoritma pemrograman Source Code Tutorial belajar Gratis download Flow

Penerapan implementasi Metode Forward Chaining dengan Java Metode Forward Chaining dengan Java

Posted by: Project-G Contoh Program Metode Forward Chaining dengan Java Updated at : 04.21
Jika Anda perlu source code terkait dengan artikel di atas atau ada yang ingin di tanyakan anda bisa melakukan konsultasi gratis kepada kami, melalui form di bawah. Hasil konsultasi akan di kirimkan ke email Anda. Kami mohon supportnya dengan mengklik beberapa tombol berikut :


Contoh Program Metode Forward Chaining dengan Java

perhatian

Informasi Penting Untuk Mahasiswa !

Kami menawarkan layanan jasa konsultan bimbingan pembuatan program untuk Tesis Skripsi dan Tugas Akhir Informatika, Komputer, Elektro dan Teknik lainnya yang bidang minatnya mengarah ke teknologi informasi. BASED PROJECT :Mobile Development (Java, Adobe, AS3, Android, BB, iOS, WPhone dll), Web & Desktop Development (.Net, C#, MATLAB, PHP, Delphi, Visual Basic dll). BONUS : Di bimbing untuk penguasaan materi dan coding dan revisi.
detail
Label: ,
Konsultasi gratis