Pendahuluan

Pada tugas ini dilakukan pembangunan model Decision Tree menggunakan dataset cuaca dan angin untuk menentukan keputusan bermain atau tidak bermain. Analisis dilakukan menggunakan perhitungan entropy dan information gain.

library(rpart)
## Warning: package 'rpart' was built under R version 4.4.3
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.4.3
# Membuat 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

Mengubah Data Menjadi Faktor

data$Cuaca <- as.factor(data$Cuaca)
data$Angin <- as.factor(data$Angin)
data$Bermain <- as.factor(data$Bermain)

str(data)
## 'data.frame':    8 obs. of  3 variables:
##  $ Cuaca  : Factor w/ 3 levels "Cerah","Hujan",..: 1 1 3 2 2 3 1 2
##  $ Angin  : Factor w/ 2 levels "Kuat","Lemah": 2 1 2 2 1 1 2 2
##  $ Bermain: Factor w/ 2 levels "Tidak","Ya": 2 1 2 2 1 2 2 2

Membuat Model Decision Tree

# Model Decision Tree
model <- rpart(
  Bermain ~ Cuaca + Angin,
  data = data,
  method = "class",
  control = rpart.control(
    cp = 0,
    minsplit = 1,
    minbucket = 1,
    maxdepth = 5
  )
)
# Tampilkan model
print(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 = 2,
  extra = 104,
  fallen.leaves = TRUE
)

Berdasarkan hasil visualisasi Decision Tree menggunakan software R, diperoleh bahwa atribut Angin menjadi root node atau akar pohon keputusan karena memiliki nilai information gain terbesar. Hal ini menunjukkan bahwa atribut Angin merupakan faktor paling berpengaruh dalam menentukan keputusan bermain. Pada cabang pertama, jika kondisi angin adalah Lemah, maka model langsung memprediksi hasil Bermain = Ya. Sementara itu, jika kondisi angin adalah Kuat, maka proses keputusan dilanjutkan dengan melihat atribut Cuaca. Pada kondisi cuaca Cerah atau Hujan, model menghasilkan prediksi Bermain = Tidak, sedangkan pada kondisi cuaca Mendung, model memprediksi Bermain = Ya.

Hasil prediksi untuk data baru dengan kondisi Cuaca = Hujan dan Angin = Kuat adalah Bermain = Tidak. Proses pengambilan keputusan dilakukan dengan mengikuti cabang pada pohon keputusan, dimulai dari root node Angin. Karena nilai Angin adalah Kuat, maka model melanjutkan pemeriksaan ke atribut Cuaca. Nilai Cuaca = Hujan termasuk pada cabang yang menghasilkan keputusan Tidak, sehingga diperoleh prediksi akhir bahwa aktivitas bermain tidak dilakukan.

Secara umum, hasil Decision Tree menggunakan software menunjukkan hasil yang sesuai dengan perhitungan manual, yaitu atribut Angin menjadi root node dan hasil prediksi data baru adalah Bermain = Tidak. Perbedaan struktur cabang yang muncul pada software dapat terjadi karena proses split tambahan dan parameter bawaan algoritma yang digunakan oleh software. # Kesimpulan

Berdasarkan hasil analisis Decision Tree, diperoleh bahwa atribut Angin menjadi root node karena memiliki nilai information gain terbesar dibandingkan atribut lainnya. Struktur pohon keputusan yang terbentuk dapat digambarkan sebagai berikut:

            Angin
           /     \
      Lemah      Kuat
        |           \
       Ya         Cuaca
                  /    \
          Cerah,Hujan  Mendung
               |           |
             Tidak        Ya

Struktur tersebut menunjukkan bahwa jika Angin = Lemah, maka hasil keputusan adalah Bermain = Ya. Namun, jika Angin = Kuat, maka keputusan dilanjutkan dengan melihat atribut Cuaca. Pada kondisi Cuaca = Cerah atau Hujan, hasil prediksi adalah Bermain = Tidak, sedangkan pada kondisi Cuaca = Mendung, hasil prediksi adalah Bermain = Ya.

Hasil prediksi untuk data baru dengan kondisi Cuaca = Hujan dan Angin = Kuat menunjukkan keputusan Bermain = Tidak. Selain itu, hasil perhitungan manual dan hasil menggunakan software memberikan hasil yang sama, sehingga menunjukkan bahwa proses perhitungan entropy dan information gain telah dilakukan dengan benar serta sesuai dengan pembentukan model Decision Tree pada software. # Prediksi Data Baru

Data baru yang akan diprediksi:

Cuaca Angin
Hujan Kuat
data_baru <- data.frame(
  Cuaca = "Hujan",
  Angin = "Kuat"
)

prediksi <- predict(
  model,
  data_baru,
  type = "class"
)

prediksi
##     1 
## Tidak 
## Levels: Tidak Ya

Hasil dan Pembahasan

Berdasarkan hasil perhitungan manual dan software R, diperoleh hasil bahwa atribut dengan information gain terbesar adalah Angin, sehingga atribut tersebut menjadi root node pada Decision Tree.

Hasil prediksi data baru dengan kondisi:

adalah:

\[ Bermain = Tidak \]

Hasil software dan perhitungan manual menunjukkan hasil yang sama. Hal ini karena dataset yang digunakan sederhana dan proses perhitungan entropy serta information gain pada software sesuai dengan perhitungan manual.

Jika terdapat perbedaan hasil pada kasus lain, kemungkinan penyebabnya adalah: pembulatan angka, parameter bawaan software, pruning otomatis, atau metode pemilihan split yang berbeda.

Kesimpulan

Berdasarkan hasil analisis Decision Tree, diperoleh bahwa atribut Angin menjadi root node karena memiliki nilai information gain terbesar dibandingkan atribut lainnya. Hasil prediksi untuk data baru dengan kondisi Cuaca = Hujan dan Angin = Kuat menunjukkan keputusan Bermain = Tidak. Selain itu, hasil perhitungan manual dan hasil menggunakan software memberikan hasil yang sama, sehingga menunjukkan bahwa proses perhitungan entropy dan information gain telah dilakukan dengan benar serta sesuai dengan pembentukan model Decision Tree pada software.