Memanggil Library

library(rpart)
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.5.3
library(data.tree)
## Warning: package 'data.tree' was built under R version 4.5.3

Dataset

Data <- data.frame(
  Cuaca = c("Cerah","Cerah","Mendung","Hujan",
             "Hujan","Mendung","Cerah","Hujan"),
  
  Angin = c("Lemah","Kuat","Lemah","Lemah",
             "Kuat","Kuat","Lemah","Lemah"),
  
  Bermain = c("Ya","Tidak","Ya","Ya",
               "Tidak","Ya","Ya","Ya")
)

Data
##     Cuaca Angin Bermain
## 1   Cerah Lemah      Ya
## 2   Cerah  Kuat   Tidak
## 3 Mendung Lemah      Ya
## 4   Hujan Lemah      Ya
## 5   Hujan  Kuat   Tidak
## 6 Mendung  Kuat      Ya
## 7   Cerah Lemah      Ya
## 8   Hujan Lemah      Ya

Membangun Model Decision Tree

model <- rpart(
  Bermain ~ Cuaca + Angin,
  data = Data,
  method = "class",
  parms = list(split = "information"),
  control = rpart.control(
    minsplit = 1,
    cp = 0
  )
)

model
## n= 8 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
## 1) root 8 2 Ya (0.2500000 0.7500000)  
##   2) Angin=Kuat 3 1 Tidak (0.6666667 0.3333333)  
##     4) Cuaca=Cerah,Hujan 2 0 Tidak (1.0000000 0.0000000) *
##     5) Cuaca=Mendung 1 0 Ya (0.0000000 1.0000000) *
##   3) Angin=Lemah 5 0 Ya (0.0000000 1.0000000) *

Visualisasi Decision Tree

rpart.plot(
  model,
  
  type = 3,
  extra = 104,
  box.palette = "Blues",
  shadow.col = "gray90",
  branch.lty = 1,
  cex = 1.1,
  fallen.leaves = TRUE,
  nn = FALSE,
  faclen = 0,
  
  main = "Visualisasi Decision Tree Prediksi Bermain"
)

Prediksi Data Baru

Lakukan prediksi terhadap data berikut
Cuaca : Hujan
Angin : Kuat
hasil <- predict(
  model,
  data.frame(
    Cuaca = "Hujan",
    Angin = "Kuat"
  ),
  type = "class"
)

cat("Hasil Prediksi:", as.character(hasil))
## Hasil Prediksi: Tidak