Tree Rule-Based

 Tree Rule-Based adalah metode pembuatan aturan (rules) yang bentuknya seperti pohon keputusan (decision tree).

Pada dasarnya, sistem akan mengambil keputusan berdasarkan serangkaian aturan IF–THEN yang bercabang seperti pohon.

pada kesempatan kali ini, kita akan melakukan pembahasan dan praktek mengenai Tree Ruled-Based dengan menggunaakan bahasa pemograman Python, Studi Kasus yang kita pakai yaitu 
Penentuan Resiko Cuaca

Kita akan menggunakan konsep OOP dasar untuk programnya.

Pertama - tama kita buat dulu untuk design rule nya, Disini kita sudah menyiapkan treenya.





Setelah kita dapat gambar apa yang kita buat, selanjutnya kita mulai untuk pemrogramnya

1. Buat file Tree1.py


2. Kita tulis file Tree1.py dengan code berikut

class Node:
    def __init__(self, question=None, ya_node=None, tidak_node=None, hasil=None):
        self.question = question
        self.ya_node = ya_node
        self.tidak_node = tidak_node
        self.hasil = hasil         

* question

Tipe: string

Fungsi: Menyimpan pertanyaan pada node decision.

Contoh: "hujan", "angin_kencang"

* ya_node

Tipe: Node

Fungsi: Menunjuk ke node berikutnya jika jawaban = "Ya".

* tidak_node

Tipe: Node

Fungsi: Menunjuk ke node berikutnya jika jawaban = "Tidak".

* hasil

Tipe: string

Fungsi: Menyimpan hasil akhir (kesimpulan).

Hanya digunakan jika node adalah leaf.

Contoh: "Bahaya", "Waspada", "Aman"

* kesimpulan

Tipe: boolean

Fungsi: Penanda apakah node ini adalah akhir pohon (leaf).

Jika True, node dianggap end node, traversal berhenti.  

3. Kita bat Class Treenya tepat di bawah Class Node

class Tree:
    def __init__(self, root=None):
        self.root = root

    def evaluate(self, jawaban):
        current = self.root

        while not current.is_leaf():
            pertanyaan = current.question
            jawab = jawaban[pertanyaan]

            if jawab == "Ya":
                current = current.ya_node
            else:
                current = current.tidak_node

        return current.hasil

    def print_tree(self, node=None, indent=""):
        if node is None:
            node = self.root

        if node.is_leaf():
            print(indent + f"➡ Hasil Akhir: {node.hasil}")
        else:
            print(indent + f"[Q] {node.question}?")
            print(indent + " ├── Ya →")
            self.print_tree(node.ya_node, indent + " │    ")
            print(indent + " └── Tidak →")
            self.print_tree(node.tidak_node, indent + "      ")

node_bahaya = Node(hasil="Bahaya", kesimpulan=True)
node_waspada = Node(hasil="Waspada", kesimpulan=True)
node_aman = Node(hasil="Aman", kesimpulan=True)

L4_A = Node(question="angin_ke_darat", ya_node=node_bahaya, tidak_node=node_waspada)
L4_B = Node(question="angin_ke_darat", ya_node=node_waspada, tidak_node=node_waspada)
L4_C = Node(question="angin_ke_darat", ya_node=node_waspada, tidak_node=node_aman)

L3_A = Node(question="lembab_tinggi", ya_node=L4_A, tidak_node=L4_B)
L3_B = Node(question="lembab_tinggi", ya_node=node_waspada, tidak_node=node_aman)

L2_A = Node(question="suhu_panas", ya_node=L3_A, tidak_node=node_waspada)
L2_B = Node(question="suhu_panas", ya_node=L3_B, tidak_node=node_aman)

root = Node(
    question="hujan",
    ya_node=Node(question="angin_kencang", ya_node=L2_A, tidak_node=node_waspada),
    tidak_node=Node(question="angin_kencang", ya_node=node_waspada, tidak_node=L2_B)
)

decision_tree = Tree(root=root)

jawaban1 = {
    "hujan": "Ya",
    "angin_kencang": "Ya",
    "suhu_panas": "Ya",
    "lembab_tinggi": "Ya",
    "angin_ke_darat": "Ya"
}

jawaban2 = {
    "hujan": "Tidak",
    "angin_kencang": "Tidak",
    "suhu_panas": "Ya",
    "lembab_tinggi": "Tidak",
    "angin_ke_darat": "Tidak"
}

print("Hasil 1:", decision_tree.evaluate(jawaban1))
print("Hasil 2:", decision_tree.evaluate(jawaban2))

print("\n--- Struktur Tree ---")
decision_tree.print_tree()

Dari Kode Diatas, Ada banyak jenis node dan variabelnya,

Jika sudah sampai kesimpulan maka program akan berhenti dan menampilkan hasil dari Tree rule based

4. Hasil Output nya





Berikut adalah hasil dari program yang telah kita buat.

Komentar

Postingan populer dari blog ini

K-Means clustering python