# 1. Memuat library yang diperlukan
library(readr)
## Warning: package 'readr' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(e1071)
## Warning: package 'e1071' was built under R version 4.4.3
library(randomForest)
## Warning: package 'randomForest' was built under R version 4.4.3
## randomForest 4.7-1.2
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:dplyr':
## 
##     combine
library(rpart)
## Warning: package 'rpart' was built under R version 4.4.3
library(caret) 
## Warning: package 'caret' was built under R version 4.4.3
## Loading required package: ggplot2
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:randomForest':
## 
##     margin
## Loading required package: lattice
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(openxlsx)
## Warning: package 'openxlsx' was built under R version 4.4.3
# 2. Load dataset
data_train<- read_excel("C:/Yulia/semester 6/Data mining/datatraining.xlsx")
data_test<- read_excel("C:/Yulia/semester 6/Data mining/datatesting.xlsx")
# 3. Preprocessing
data_train <- data_train %>%
  mutate(
    jenis_kelamin = as.factor(jenis_kelamin),
    dukungan_orang_tua = as.factor(dukungan_orang_tua),
    fasilitas_belajar = as.factor(fasilitas_belajar),
    minat_pada_pelajaran = as.factor(minat_pada_pelajaran),
    kesulitan_ekonomi = as.factor(kesulitan_ekonomi),
    motivasi_belajar = as.factor(motivasi_belajar)
  )
# Pastikan data_test punya faktor yang sama (tanpa motivasi_belajar)
data_test <- data_test %>%
  mutate(
    jenis_kelamin = as.factor(jenis_kelamin),
    dukungan_orang_tua = as.factor(dukungan_orang_tua),
    fasilitas_belajar = as.factor(fasilitas_belajar),
    minat_pada_pelajaran = as.factor(minat_pada_pelajaran),
    kesulitan_ekonomi = as.factor(kesulitan_ekonomi)
  )
# 4. Train model
## A. Decision Tree
tree_model <- rpart(motivasi_belajar ~ ., data = data_train, method = "class")
## B. Random Forest
rf_model <- randomForest(motivasi_belajar ~ ., data = data_train)
## C. SVM
svm_model <- svm(motivasi_belajar ~ ., data = data_train)
# 5. Predict
tree_pred <- predict(tree_model, data_test, type = "class")
rf_pred <- predict(rf_model, data_test)
svm_pred <- predict(svm_model, data_test)
# 6. Lihat hasil prediksi
hasil_prediksi <- data.frame(
  ID = 1:nrow(data_test),
  Decision_Tree = tree_pred,
  Random_Forest = rf_pred,
  SVM = svm_pred
)

print(hasil_prediksi)
##    ID Decision_Tree Random_Forest SVM
## 1   1             2             2   2
## 2   2             2             2   2
## 3   3             1             1   1
## 4   4             2             2   2
## 5   5             1             1   1
## 6   6             2             2   2
## 7   7             2             2   2
## 8   8             3             2   2
## 9   9             1             2   2
## 10 10             2             2   2
## 11 11             2             1   1
## 12 12             1             1   1
## 13 13             1             2   2
## 14 14             2             2   1
## 15 15             1             1   1