tomi_hartanto_TIFNJK_E41221088/dc.md

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

  1. Sistem mengambil semua branch level-1 dari root.branches
  2. Untuk setiap branch, dicek apakah symptom_id branch termasuk dalam gejala yang dipilih user
  3. Jika ya, branch dicatat sebagai matched dan sistem menelusuri children
  4. Sistem mengumpulkan semua possible_penyakit_ids dari branch dan children yang cocok
  5. 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