library(caret)
## Warning: package 'caret' was built under R version 4.2.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.2.3
## Loading required package: lattice
# Memuat dataset iris
data(iris)

# Memisahkan data menjadi variabel independen (x) dan variabel dependen (y)
x <- iris[, 1:4]
y <- iris[, 5]

# Mengubah variabel dependen menjadi faktor
y <- as.factor(y)

# Membagi data menjadi data latih dan data uji
set.seed(123)
trainIndex <- createDataPartition(y, p = 0.8, list = FALSE)
trainData <- x[trainIndex, ]
trainLabels <- y[trainIndex]
testData <- x[-trainIndex, ]
testLabels <- y[-trainIndex]
library(randomForest)
## Warning: package 'randomForest' was built under R version 4.2.3
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
## 
##     margin
# Membuat model Random Forest
model <- randomForest(trainData, trainLabels)

# Melihat ringkasan model
print(model)
## 
## Call:
##  randomForest(x = trainData, y = trainLabels) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 2
## 
##         OOB estimate of  error rate: 5%
## Confusion matrix:
##            setosa versicolor virginica class.error
## setosa         40          0         0       0.000
## versicolor      0         37         3       0.075
## virginica       0          3        37       0.075
# Memprediksi label menggunakan data uji
predictions <- predict(model, testData)

# Menghitung akurasi
accuracy <- sum(predictions == testLabels) / length(predictions)
print(paste("Akurasi:", accuracy))
## [1] "Akurasi: 0.933333333333333"