Apa itu Forward Chaining?
Forward Chaining adalah metode inferensi yang bekerja dari fakta menuju kesimpulan. Metode ini cocok untuk sistem diagnosis dimana pengguna memasukkan gejala/fakta, lalu sistem mencari kesimpulan yang sesuai.
Cara Kerja Forward Chaining
- Pengguna memasukkan fakta-fakta (gejala yang dialami).
- Sistem mencocokkan fakta dengan kondisi (IF) pada setiap aturan.
- Jika kondisi aturan terpenuhi, sistem menambahkan kesimpulan (THEN) ke working memory.
- Proses berlanjut hingga tidak ada aturan baru yang dapat dieksekusi.
Struktur Database
-- Tabel Gejala CREATE TABLE gejala ( id INT PRIMARY KEY AUTO_INCREMENT, kode VARCHAR(10) UNIQUE, nama VARCHAR(200) ); -- Tabel Penyakit CREATE TABLE penyakit ( id INT PRIMARY KEY AUTO_INCREMENT, kode VARCHAR(10) UNIQUE, nama VARCHAR(200), deskripsi TEXT, solusi TEXT ); -- Tabel Aturan (Relasi Gejala-Penyakit) CREATE TABLE aturan ( id INT PRIMARY KEY AUTO_INCREMENT, penyakit_id INT, gejala_id INT, FOREIGN KEY (penyakit_id) REFERENCES penyakit(id), FOREIGN KEY (gejala_id) REFERENCES gejala(id) );
Implementasi PHP
<?php function diagnosa($gejala_terpilih) { $pdo = new PDO("mysql:host=localhost;dbname=sistem_pakar", "root", ""); // Ambil semua penyakit $penyakit_all = $pdo->query("SELECT * FROM penyakit")->fetchAll(); $hasil = []; foreach ($penyakit_all as $p) { // Ambil gejala untuk penyakit ini $stmt = $pdo->prepare("SELECT gejala_id FROM aturan WHERE penyakit_id = ?"); $stmt->execute([$p['id']]); $gejala_penyakit = $stmt->fetchAll(PDO::FETCH_COLUMN); // Hitung kecocokan $match = count(array_intersect($gejala_terpilih, $gejala_penyakit)); $total = count($gejala_penyakit); if ($total > 0 && $match > 0) { $persentase = ($match / $total) * 100; $hasil[] = [ 'penyakit' => $p['nama'], 'persentase' => $persentase, 'solusi' => $p['solusi'] ]; } } // Urutkan berdasarkan persentase tertinggi usort($hasil, fn($a, $b) => $b['persentase'] <=> $a['persentase']); return $hasil; } ?>
Tips untuk Skripsi
Pastikan knowledge base divalidasi oleh pakar asli (misalnya dokter untuk diagnosis penyakit). Sertakan surat validasi sebagai lampiran skripsi.