4.9 KiB
4.9 KiB
Decision Tree — Sistem Pakar Diagnosis Jamur Tiram
Struktur Pohon Keputusan
Pohon keputusan ini digunakan oleh sistem untuk menelusuri jalur diagnosis berdasarkan gejala utama (primary symptoms). Saat ini pohon memiliki 2 level depth dengan 8 branch.
root: Diagnosis Jamur Tiram
│
├── G11 (Tubuh Buah Pucat) ─────┬── G18 (Ada Lendir) → P01 (Trichoderma spp)
│ └── G23 (Bau Menyengat) → P04 (Penicilium spp)
│
├── G12 (Umbi Membusuk) ─────────└── G06 (Substrat Basah) → P02 (Neurospora spp)
│
├── G10 (Kepala Susu Coklat) ────└── G06 (Substrat Basah) → P03 (Mucor spp)
│
├── G01 (Jamur Putih/Kepala) ────┬── G10 (Busuk Pangkal) → P05 (Pseudomonas tolaasii)
│ └── G02 (Berbau Asam) → P09 (Lalat)
│
├── G23 (Bau Menyengat) ─────────└── G09 (Berlendir) → P06 (Chaetomium spp)
│
├── G15 (Kepala Susu Kerdil) ────└── G24 (Warna Tidak Seragam) → P07 (Coprinus spp)
│
├── G09 (Berlendir) ─────────────└── G20 (Miselium Tidak) → P08 (Tikus)
│
└── G05 (Pertumbuhan Terganggu) ─└── G19 (Kontaminan) → P10 (Tunggu/Gurem)
Flowchart Decision Tree
flowchart TD
Root([Mulai Diagnosis]) --> Pilih{User memilih gejala}
Pilih --> FC[Forward Chaining: cocokkan dengan rule]
FC --> CekG11{G11 - Tubuh Buah Pucat?}
CekG11 -->|Ya| CekG18{G18 - Ada Lendir?}
CekG18 -->|Ya| P01[P01 - Trichoderma spp]
CekG18 -->|Tidak| CekG23_G11{G23 - Bau Menyengat?}
CekG23_G11 -->|Ya| P04[P04 - Penicilium spp]
FC --> CekG12{G12 - Umbi Membusuk?}
CekG12 -->|Ya| CekG06_12{G06 - Substrat Basah?}
CekG06_12 -->|Ya| P02[P02 - Neurospora spp]
FC --> CekG10{G10 - Kepala Susu Coklat?}
CekG10 -->|Ya| CekG06_10{G06 - Substrat Basah?}
CekG06_10 -->|Ya| P03[P03 - Mucor spp]
FC --> CekG01{G01 - Jamur Putih pada Kepala Susu?}
CekG01 -->|Ya| CekG10_01{G10 - Busuk Pangkal?}
CekG10_01 -->|Ya| P05[P05 - Pseudomonas tolaasii]
CekG01 -->|Tidak| CekG02{G02 - Berbau Asam?}
CekG02 -->|Ya| P09[P09 - Lalat]
FC --> CekG23_Bau{G23 - Bau Menyengat?}
CekG23_Bau -->|Ya| CekG09_23{G09 - Kepala Susu Berlendir?}
CekG09_23 -->|Ya| P06[P06 - Chaetomium spp]
FC --> CekG15{G15 - Kepala Susu Kerdil?}
CekG15 -->|Ya| CekG24_15{G24 - Warna Tidak Seragam?}
CekG24_15 -->|Ya| P07[P07 - Coprinus spp]
FC --> CekG09_8{G09 - Baglog Rusak?}
CekG09_8 -->|Ya| CekG20{G20 - Miselium Tidak Berkembang?}
CekG20 -->|Ya| P08[P08 - Tikus]
FC --> CekG05{G05 - Pertumbuhan Terganggu?}
CekG05 -->|Ya| CekG19{G19 - Kontaminan Terlihat?}
CekG19 -->|Ya| P10[P10 - Tunggu/Gurem]
P01 --> CF[Certainty Factor: hitung keyakinan]
P02 --> CF
P03 --> CF
P04 --> CF
P05 --> CF
P06 --> CF
P07 --> CF
P08 --> CF
P09 --> CF
P10 --> CF
CF --> Hasil([Tampilkan Hasil Diagnosis])
Mapping Leaf ke Penyakit
| Leaf Node | Gejala Utama | Gejala Pendukung | Rule | Penyakit |
|---|---|---|---|---|
| Branch 1a | G11 | G18 | R1 | P01 — Trichoderma spp |
| Branch 1b | G11 | G23 | R4 | P04 — Penicilium spp |
| Branch 2 | G12 | G06 | R2 | P02 — Neurospora spp |
| Branch 3 | G10 | G06 | R3 | P03 — Mucor spp |
| Branch 4a | G01 | G10 | R5 | P05 — Pseudomonas tolaasii |
| Branch 4b | G01 | G02 | R9 | P09 — Lalat |
| Branch 5 | G23 | G09 | R6 | P06 — Chaetomium spp |
| Branch 6 | G15 | G24 | R7 | P07 — Coprinus spp |
| Branch 7 | G09 | G20 | R8 | P08 — Tikus |
| Branch 8 | G05 | G19 | R10 | P10 — Tunggu/Gurem |
Primary Symptoms
Gejala utama yang digunakan untuk initial split dalam decision tree:
| ID Gejala | Kode | Nama Gejala |
|---|---|---|
| 1 | G01 | Jamur tiram terlihat membusuk |
| 5 | G06 | Pertumbuhan jamur tiram lambat |
| 8 | G09 | Baglog/media jamur tiram rusak |
| 11 | G12 | Bintik-bintik noda hijau pada baglog |
| 12 | G13 | Tepung warna orange pada baglog |
| 14 | G15 | Warna biru pada ujung jamur tiram |
Cara Kerja Traversal
- Sistem mengambil semua branch level-1 dari
root.branches - Untuk setiap branch, dicek apakah
symptom_idbranch termasuk dalam gejala yang dipilih user - Jika ya, branch dicatat sebagai
matcheddan sistem menelusurichildren - Sistem mengumpulkan semua
possible_penyakit_idsdari branch dan children yang cocok - Hasil traversal digunakan sebagai reasoning path untuk transparansi diagnosis
Catatan
- Decision tree saat ini hardcoded di
app/Services/ForwardChainingService.php - Struktur tree bersifat statis (2 level, 8 branch)
- Traversal hanya memeriksa kecocokan symptom_id, tidak memvalidasi jumlah gejala
- Hasil traversal bersifat informasional untuk menampilkan jalur diagnosis