BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan teknologi informasi mendorong penggunaan metode pembelajaran mesin (machine learning) untuk mengolah data dan menghasilkan prediksi secara lebih akurat. Salah satu metode yang dapat digunakan adalah Artificial Neural Network (ANN), yaitu metode komputasi yang meniru cara kerja jaringan saraf manusia dalam mengenali pola dan hubungan antarvariabel. ANN memiliki kemampuan untuk menyelesaikan berbagai permasalahan, baik dalam bentuk regresi maupun klasifikasi (Putri et al., 2023).

Dalam penerapannya, ANN untuk regresi digunakan untuk memprediksi nilai numerik, sedangkan ANN untuk klasifikasi digunakan untuk mengelompokkan data ke dalam kategori tertentu. Implementasi ANN dapat dilakukan menggunakan bahasa pemrograman R dengan tahapan meliputi persiapan data, pembentukan arsitektur jaringan, pelatihan model, dan pengujian model. Penggunaan ANN dalam kedua jenis permasalahan tersebut memungkinkan proses analisis data dilakukan secara sistematis dan terukur (Huda & Handayani, 2023).

Untuk mengetahui kemampuan model dalam menghasilkan prediksi, diperlukan evaluasi menggunakan metrik yang sesuai dengan jenis permasalahan. Pada regresi, performa model dapat diukur menggunakan Mean Squared Error (MSE) dan Mean Absolute Percentage Error (MAPE), sedangkan pada klasifikasi dapat dievaluasi menggunakan akurasi dan presisi. Oleh karena itu, pemahaman mengenai konsep, implementasi, dan evaluasi ANN diperlukan agar model yang dibangun dapat menghasilkan prediksi dan klasifikasi yang baik (Septasari & Aziz, 2024).

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, masalah yang dapat disimpulkan adalah:

  1. Apa yang dimaksud dengan konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R?

  2. Bagaimana mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi?

1.3 Tujuan

Berdasarkan rumusan masalah pada penelitian ini, tujuan yang dapat disimpulkan adalah:

  1. Mahasiswa dapat memahami konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R.

  2. Mahasiswa dapat mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.

BAB II TINJAUAN PUSTAKA

2.1 Random Forest

Artificial Neural Network (ANN) atau Jaringan Saraf Tiruan merupakan metode komputasi yang meniru cara kerja jaringan saraf manusia dalam mengolah informasi. ANN memiliki beberapa lapisan, yaitu input layer, hidden layer, dan output layer yang saling terhubung melalui bobot (weight) dan bias. Metode ini mampu mengenali pola data yang kompleks serta diterapkan untuk permasalahan regresi dan klasifikasi (Huda & Handayani, 2023).

Dalam penerapannya, ANN untuk regresi digunakan untuk memprediksi nilai numerik, sedangkan klasifikasi digunakan untuk mengelompokkan data ke dalam kategori tertentu. Proses pembelajaran dilakukan menggunakan algoritma backpropagation dengan memperbarui bobot untuk meminimalkan kesalahan prediksi. Secara umum, keluaran neuron dirumuskan sebagai berikut (Putri et al., 2023).

\[ y=f\left(\sum_{i=1}^{n}w_ix_i+b\right) \] Arsitektur ANN dapat dibedakan menjadi dua jenis yaitu (Fransiska, 2026):

  1. Single Layer Perceptron (SLP): Jaringan tanpa lapisan tersembunyi yang digunakan untuk mempelajari hubungan linier dan menyelesaikan klasifikasi yang dapat dipisahkan secara linier

  2. Multi-Layer Perceptron (MLP): Jaringan dengan satu atau lebih lapisan tersembunyi yang mampu mempelajari hubungan nonlinier untuk pemodelan regresi dan klasifikasi.

2.2 ANN Regresi

Artificial Neural Network (ANN) untuk regresi merupakan metode jaringan saraf tiruan yang digunakan untuk memprediksi nilai numerik berdasarkan hubungan antara variabel input dan output. Model ini memiliki lapisan input layer, hidden layer, dan output layer yang memproses data melalui bobot, bias, serta fungsi aktivasi untuk menghasilkan prediksi. Proses pembelajaran dilakukan dengan algoritma backpropagation untuk memperbarui bobot sehingga kesalahan prediksi semakin kecil (Putri et al., 2023).

2.3 Evaluasi Model Regresi

Evaluasi model dilakukan dengan membandingkan nilai aktual dan nilai prediksi. Ukuran evaluasi yang digunakan adalah:

  1. Mean Squared Error (MSE)

Mean Squared Error (MSE) merupakan metrik evaluasi yang digunakan untuk mengukur rata-rata kuadrat selisih antara nilai aktual dan nilai prediksi. MSE memberikan penalti lebih besar terhadap kesalahan prediksi yang bernilai besar. Semakin kecil nilai MSE, semakin baik kemampuan model dalam menghasilkan prediksi (Putri et al., 2023).

\[ MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \]

  1. Mean Absolute Percentage Error (MAPE)

Mean Absolute Percentage Error (MAPE) merupakan metrik evaluasi yang mengukur rata-rata persentase kesalahan absolut antara nilai aktual dan nilai prediksi. MAPE menunjukkan seberapa besar rata-rata kesalahan prediksi dalam bentuk persentase sehingga lebih mudah diinterpretasikan. Semakin kecil nilai MAPE, semakin akurat hasil prediksi model (Huda & Handayani, 2023).

\[ MAPE=\frac{100\%}{n}\sum_{i=1}^{n} \left|\frac{y_i-\hat{y}_i}{y_i}\right| \]

BAB III METODE PENELITIAN

3.1 Sumber Data

Jenis data pada penelitian ini adalah data kuantitatif dan data kualitatif. Data kuantitatif merupakan data atau informasi yang didapatkan dalam bentuk angka atau numerik. Data kuantitatif dapat diproses menggunakan rumus matematika atau dapat juga dianalisis dengan sistem statistik. Data kualitatif adalah suatu data yang tidak bisa diukur dengan angka. Data kualitatif adalah data yang dinyatakan dalam bentuk deskriptif atau naratif, bukan dalam bentuk angka.

Sumber data yang digunakan oleh penulis merupakan data sekunder. Data sekunder adalah sumber data yang diperoleh secara tidak langsung atau melalui media perantara. Data yang digunakan pada batasan masalah laporan ini merupakan data BreastCancer yang diperoleh langsung dari program R.

3.2 Variabel Penelitian

Variabel penelitian adalah karakter atau segala sesuatu yang menjadi perhatian dalam suatu penelitian. Pada laporan ini terdapat 9 variabel yang digunakan pada data. Variabel tersebut, yaitu Cl.thickness, Cell.size, Cell.shape, Marg.adhesion, Epith.c.size, Bl,cromatin, Normal.nucleoli, Mitoses sebagai variabel prediktor, dan Bare.nuclei sebagai variabel respon. Variabel ID dihapus karena hanya berfungsi sebagai identitas observasi, sedangkan Class tidak digunakan karena merupakan variabel kategorik.

3.3 Rancangan Percobaan

Percobaan dilakukan menggunakan enam model ANN regresi yang berasal dari kombinasi tiga jumlah hidden neuron dan dua nilai maxit. Pembagian data dilakukan dengan proporsi 80% training dan 20% testing.

Model Hidden Neuron Maxit Training Testing
Model 1 10 250 80% 20%
Model 2 10 500 80% 20%
Model 3 20 250 80% 20%
Model 4 20 500 80% 20%
Model 5 30 250 80% 20%
Model 6 30 500 80% 20%

3.4 Langkah-langkah Analisis

  1. Input data.

  2. Preprocessing data.

  3. Pembagian data training dan data testing.

  4. Melakukan standardisasi pada variabel prediktor dan respon berdasarkan data training.

  5. Membentuk enam model ANN berdasarkan kombinasi hidden neuron dan maxit.

  6. Melakukan prediksi menggunakan data testing.

  7. Menghitung metrik evaluasi.

  8. Membandingkan performa model dan menentukan model terbaik.

  9. Output dan interpretasi.

BAB IV HASIL DAN PEMBAHASAN

4.1 Input Package dan Dataset

Langkah pertama yang dilakukan adalah memanggil library dan meng-import data

packages <- c("mlbench", "nnet", "caret", "dplyr",
              "ggplot2", "knitr", "tidyr")

for (p in packages) {
  if (!requireNamespace(p, quietly = TRUE)) {
    install.packages(p, repos = "https://cloud.r-project.org")
  }
}

library(mlbench)
library(nnet)
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
library(dplyr)
## 
## 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(ggplot2)
library(knitr)
library(tidyr)

data("BreastCancer", package = "mlbench")

bc <- BreastCancer

# Menghapus variabel identitas dan target kategorik
bc$Id <- NULL
bc$Class <- NULL

# Mengubah seluruh variabel menjadi numerik
bc[] <- lapply(bc, function(x) {
  as.numeric(as.character(x))
})

# Menghapus nilai hilang
bc <- na.omit(bc)

# Menentukan variabel target dan prediktor
target <- "Bare.nuclei"

prediktor <- setdiff(names(bc), target)

ringkasan_data <- data.frame(
  Keterangan = c(
    "Jumlah observasi setelah pembersihan",
    "Jumlah variabel prediktor",
    "Jumlah variabel respon",
    "Jumlah nilai hilang"
  ),
  Nilai = c(
    nrow(bc),
    length(prediktor),
    1,
    sum(is.na(bc))
  )
)

kable(ringkasan_data,
      caption = "Ringkasan Dataset untuk ANN Regresi")
Ringkasan Dataset untuk ANN Regresi
Keterangan Nilai
Jumlah observasi setelah pembersihan 683
Jumlah variabel prediktor 8
Jumlah variabel respon 1
Jumlah nilai hilang 0

Berdasarkan hasil statistik deskriptif pada dataset BreastCancer, diperoleh sebanyak 683 observasi dengan 9 variabel awal yang terdiri atas 8 variabel prediktor dan 1 variabel respon, yaitu Bare.nuclei. Variabel ID dan Class dihapus karena tidak digunakan dalam pemodelan ANN regresi. Kemudian seluruh variabel diubah menjadi numerik dan dilakukan penghapusan observasi yang memiliki missing value, sehingga tidak terdapat nilai yang hilang pada data akhir.

4.2 Membagi Data Training dan Testing

set.seed(234)

indeks_train <- sample(
  seq_len(nrow(bc)),
  size = floor(0.80 * nrow(bc))
)

train <- bc[indeks_train, , drop = FALSE]
test  <- bc[-indeks_train, , drop = FALSE]

tabel_split <- data.frame(
  Data = c("Training", "Testing"),
  Jumlah = c(nrow(train), nrow(test)),
  Persentase = c("80%", "20%")
)

kable(tabel_split,
      caption = "Pembagian Data Training dan Testing")
Pembagian Data Training dan Testing
Data Jumlah Persentase
Training 546 80%
Testing 137 20%

Berdasarkan hasil pembagian data BreastCancer, diperoleh sebanyak 546 observasi sebagai data training (80%) dan 137 observasi sebagai data testing (20%) dari total 683 observasi. Data training ini digunakan untuk membangun model Artificial Neural Network (ANN) regresi, sedangkan data testing digunakan untuk mengevaluasi kinerja model. Penggunaan satu pembagian data yang sama pada seluruh model bertujuan agar perbandingan kinerja berdasarkan jumlah hidden neuron dan maxit dapat dilakukan secara konsisten.

4.3 Standardisasi Data dan Pembentukan Model ANN

# ------------------------------------------------
# A. STANDARDISASI DATA
# ------------------------------------------------

x_train <- train[, prediktor, drop = FALSE]
x_test  <- test[, prediktor, drop = FALSE]

y_train <- train[[target]]
y_test  <- test[[target]]

# Parameter standardisasi X dari data training
mean_x <- sapply(x_train, mean)
sd_x <- sapply(x_train, sd)

sd_x[is.na(sd_x) | sd_x == 0] <- 1

x_train_sc <- scale(
  x_train,
  center = mean_x,
  scale = sd_x
)

x_test_sc <- scale(
  x_test,
  center = mean_x,
  scale = sd_x
)

# Standardisasi Y berdasarkan data training
mean_y <- mean(y_train)
sd_y <- sd(y_train)

if (is.na(sd_y) || sd_y == 0) {
  sd_y <- 1
}

y_train_sc <- (y_train - mean_y) / sd_y

# ------------------------------------------------
# B. KOMBINASI HIDDEN NEURON DAN MAXIT
# ------------------------------------------------

hidden_neuron <- c(10, 20, 30)
maxit_values <- c(250, 500)

kombinasi <- expand.grid(
  Hidden_Neuron = hidden_neuron,
  Maxit = maxit_values
)

# Tempat menyimpan model dan hasil prediksi
model_ann <- list()
hasil_prediksi <- list()
hasil_evaluasi <- list()

# ------------------------------------------------
# C. FUNGSI EVALUASI REGRESI
# ------------------------------------------------

evaluasi_regresi <- function(aktual, prediksi) {

  mse <- mean((aktual - prediksi)^2)

  mape <- mean(
    abs((aktual - prediksi) / aktual)
  ) * 100

  data.frame(
    MSE = mse,
    MAPE = mape
  )
}

# ------------------------------------------------
# D. PEMBENTUKAN ENAM MODEL ANN
# ------------------------------------------------

set.seed(234)

for (i in seq_len(nrow(kombinasi))) {

  h <- kombinasi$Hidden_Neuron[i]
  m <- kombinasi$Maxit[i]

  nama_model <- paste0(
    "ANN_Hidden", h,
    "_Maxit", m
  )

  model <- nnet::nnet(
    x = as.matrix(x_train_sc),
    y = y_train_sc,
    size = h,
    linout = TRUE,
    maxit = m,
    decay = 0.01,
    rang = 0.1,
    MaxNWts = 20000,
    trace = FALSE
  )

  # Prediksi pada data testing
  prediksi_sc <- predict(
    model,
    newdata = as.matrix(x_test_sc)
  )

  # Mengembalikan prediksi ke skala asli
  prediksi <- as.numeric(prediksi_sc) * sd_y + mean_y

  # Evaluasi model
  evaluasi <- evaluasi_regresi(
    aktual = y_test,
    prediksi = prediksi
  )

  model_ann[[nama_model]] <- model

  hasil_prediksi[[nama_model]] <- data.frame(
    Aktual = y_test,
    Prediksi = prediksi
  )

  hasil_evaluasi[[nama_model]] <- data.frame(
    Model = nama_model,
    Hidden_Neuron = h,
    Maxit = m,
    evaluasi,
    Konvergensi = model$convergence
  )
}

# Menggabungkan seluruh hasil
tabel_hasil <- bind_rows(hasil_evaluasi)

kable(
  tabel_hasil,
  digits = 4,
  caption = "Hasil Evaluasi Enam Model ANN Regresi"
)
Hasil Evaluasi Enam Model ANN Regresi
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden10_Maxit250 10 250 7.0147 58.3884 1
ANN_Hidden20_Maxit250 20 250 9.6053 72.2299 1
ANN_Hidden30_Maxit250 30 250 11.7000 65.5713 1
ANN_Hidden10_Maxit500 10 500 8.2978 49.3228 0
ANN_Hidden20_Maxit500 20 500 10.8589 76.4082 1
ANN_Hidden30_Maxit500 30 500 11.3735 65.8518 1

Standardisasi dilakukan agar variabel prediktor memiliki skala yang seragam sehingga proses pembelajaran jaringan lebih stabil, dengan parameter standardisasi dihitung berdasarkan data training dan diterapkan pada data testing. Variabel respon juga distandardisasi selama proses pelatihan, kemudian hasil prediksi dikembalikan ke skala asli sebelum dievaluasi. Pembentukan model ANN regresi dilakukan menggunakan enam kombinasi hidden neuron sebanyak 10, 20, dan 30 serta maxit sebesar 250 dan 500.

4.4 Hasil Prediksi Masing-Masing Model ANN

for (nm in names(hasil_prediksi)) {

  cat("\n\n### Model ", nm, "\n\n", sep = "")

  # Menampilkan hasil prediksi
  data_pred <- hasil_prediksi[[nm]]

  print(
    knitr::kable(
      head(data_pred, 10),
      digits = 4,
      caption = paste("Sepuluh Hasil Prediksi", nm)
    )
  )

  # Menampilkan evaluasi
  met <- tabel_hasil %>%
    filter(Model == nm)

  print(
    knitr::kable(
      met,
      digits = 4,
      caption = paste("Evaluasi Model", nm)
    )
  )

  cat(
    "\nModel ", nm,
    " menghasilkan nilai MSE sebesar ",
    sprintf("%.4f", met$MSE),
    " dan MAPE sebesar ",
    sprintf("%.4f", met$MAPE),
    "%. Semakin kecil nilai MSE dan MAPE, semakin dekat hasil prediksi terhadap nilai aktual.\n\n",
    sep = ""
  )
}

Model ANN_Hidden10_Maxit250

Sepuluh Hasil Prediksi ANN_Hidden10_Maxit250
Aktual Prediksi
1 1.4306
10 1.1909
1 0.6188
1 1.3450
1 0.9354
1 5.1234
10 6.3142
9 7.0830
2 8.5648
1 0.0004
Evaluasi Model ANN_Hidden10_Maxit250
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden10_Maxit250 10 250 7.0147 58.3884 1

Model ANN_Hidden10_Maxit250 menghasilkan nilai MSE sebesar 7.0147 dan MAPE sebesar 58.3884%. Semakin kecil nilai MSE dan MAPE, semakin dekat hasil prediksi terhadap nilai aktual.

Model ANN_Hidden20_Maxit250

Sepuluh Hasil Prediksi ANN_Hidden20_Maxit250
Aktual Prediksi
1 2.1597
10 1.0535
1 0.8647
1 0.7383
1 0.9349
1 -6.9791
10 9.3011
9 5.0140
2 8.3731
1 -0.0763
Evaluasi Model ANN_Hidden20_Maxit250
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden20_Maxit250 20 250 9.6053 72.2299 1

Model ANN_Hidden20_Maxit250 menghasilkan nilai MSE sebesar 9.6053 dan MAPE sebesar 72.2299%. Semakin kecil nilai MSE dan MAPE, semakin dekat hasil prediksi terhadap nilai aktual.

Model ANN_Hidden30_Maxit250

Sepuluh Hasil Prediksi ANN_Hidden30_Maxit250
Aktual Prediksi
1 0.4579
10 1.0344
1 1.0869
1 0.7171
1 1.0663
1 2.7482
10 4.7878
9 6.1769
2 4.2913
1 1.0986
Evaluasi Model ANN_Hidden30_Maxit250
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden30_Maxit250 30 250 11.7 65.5713 1

Model ANN_Hidden30_Maxit250 menghasilkan nilai MSE sebesar 11.7000 dan MAPE sebesar 65.5713%. Semakin kecil nilai MSE dan MAPE, semakin dekat hasil prediksi terhadap nilai aktual.

Model ANN_Hidden10_Maxit500

Sepuluh Hasil Prediksi ANN_Hidden10_Maxit500
Aktual Prediksi
1 1.2171
10 1.1738
1 0.6981
1 1.0657
1 1.0786
1 8.0337
10 8.4137
9 5.9555
2 8.1263
1 1.0615
Evaluasi Model ANN_Hidden10_Maxit500
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden10_Maxit500 10 500 8.2978 49.3228 0

Model ANN_Hidden10_Maxit500 menghasilkan nilai MSE sebesar 8.2978 dan MAPE sebesar 49.3228%. Semakin kecil nilai MSE dan MAPE, semakin dekat hasil prediksi terhadap nilai aktual.

Model ANN_Hidden20_Maxit500

Sepuluh Hasil Prediksi ANN_Hidden20_Maxit500
Aktual Prediksi
1 1.4876
10 1.2423
1 1.0814
1 0.8505
1 1.0483
1 -2.2321
10 10.3893
9 6.0256
2 6.2386
1 0.7531
Evaluasi Model ANN_Hidden20_Maxit500
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden20_Maxit500 20 500 10.8589 76.4082 1

Model ANN_Hidden20_Maxit500 menghasilkan nilai MSE sebesar 10.8589 dan MAPE sebesar 76.4082%. Semakin kecil nilai MSE dan MAPE, semakin dekat hasil prediksi terhadap nilai aktual.

Model ANN_Hidden30_Maxit500

Sepuluh Hasil Prediksi ANN_Hidden30_Maxit500
Aktual Prediksi
1 1.0496
10 1.1738
1 0.5841
1 1.2255
1 0.9153
1 5.8680
10 6.3592
9 10.5489
2 6.6151
1 1.2030
Evaluasi Model ANN_Hidden30_Maxit500
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden30_Maxit500 30 500 11.3735 65.8518 1

Model ANN_Hidden30_Maxit500 menghasilkan nilai MSE sebesar 11.3735 dan MAPE sebesar 65.8518%. Semakin kecil nilai MSE dan MAPE, semakin dekat hasil prediksi terhadap nilai aktual.

Hasil prediksi pada setiap model menunjukkan perbedaan kemampuan ANN dalam memperkirakan nilai Bare.nuclei. Perbedaan tersebut dapat dilihat melalui nilai aktual dan prediksi yang dihasilkan pada data testing. Model dengan nilai kesalahan yang lebih kecil menunjukkan bahwa hasil prediksinya relatif lebih dekat dengan nilai aktual. Perbandingan ini digunakan untuk mengetahui pengaruh perubahan jumlah hidden neuron dan maxit terhadap ketepatan prediksi.

4.5 Perbandingan Seluruh Model ANN Regresi

# Mengubah data ke format long
tabel_long <- tabel_hasil %>%
  pivot_longer(
    cols = c(MSE, MAPE),
    names_to = "Metrik",
    values_to = "Nilai"
  )

# Menampilkan tabel perbandingan
kable(
  tabel_hasil,
  digits = 4,
  caption = "Perbandingan Kinerja Enam Model ANN Regresi"
)
Perbandingan Kinerja Enam Model ANN Regresi
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden10_Maxit250 10 250 7.0147 58.3884 1
ANN_Hidden20_Maxit250 20 250 9.6053 72.2299 1
ANN_Hidden30_Maxit250 30 250 11.7000 65.5713 1
ANN_Hidden10_Maxit500 10 500 8.2978 49.3228 0
ANN_Hidden20_Maxit500 20 500 10.8589 76.4082 1
ANN_Hidden30_Maxit500 30 500 11.3735 65.8518 1
# Membuat grafik perbandingan
ggplot(
  tabel_long,
  aes(
    x = factor(Hidden_Neuron),
    y = Nilai,
    group = factor(Maxit),
    linetype = factor(Maxit)
  )
) +
  geom_point(size = 2.5) +
  geom_line() +
  facet_wrap(~ Metrik, scales = "free_y") +
  labs(
    title = "Perbandingan Kinerja ANN Regresi",
    x = "Jumlah Hidden Neuron",
    y = "Nilai Evaluasi",
    linetype = "Maxit"
  ) +
  theme_minimal()

Berdasarkan tabel dan grafik perbandingan, kinerja enam model ANN dapat diamati melalui nilai MSE dan MAPE. Kedua metrik tersebut digunakan untuk mengetahui seberapa besar kesalahan prediksi yang dihasilkan oleh masing-masing konfigurasi. Perubahan jumlah hidden neuron dan nilai maxit dapat menghasilkan perbedaan nilai kesalahan karena setiap konfigurasi memiliki kemampuan pembelajaran yang berbeda. Model dengan nilai kesalahan paling rendah menunjukkan hasil prediksi yang lebih mendekati nilai aktual.

4.6 Menentukan Model Terbaik

# Mengurutkan model berdasarkan MSE dan MAPE
peringkat_model <- tabel_hasil %>%
  arrange(MSE, MAPE)

# Menampilkan peringkat model
kable(
  peringkat_model,
  digits = 4,
  caption = "Peringkat Model ANN Regresi"
)
Peringkat Model ANN Regresi
Model Hidden_Neuron Maxit MSE MAPE Konvergensi
ANN_Hidden10_Maxit250 10 250 7.0147 58.3884 1
ANN_Hidden10_Maxit500 10 500 8.2978 49.3228 0
ANN_Hidden20_Maxit250 20 250 9.6053 72.2299 1
ANN_Hidden20_Maxit500 20 500 10.8589 76.4082 1
ANN_Hidden30_Maxit500 30 500 11.3735 65.8518 1
ANN_Hidden30_Maxit250 30 250 11.7000 65.5713 1
# Menentukan model terbaik
model_terbaik <- peringkat_model[1, ]

nama_terbaik <- as.character(model_terbaik$Model)

# Menampilkan informasi model terbaik
cat(
  "\nModel ANN regresi terbaik adalah ",
  nama_terbaik,
  " dengan hidden neuron sebanyak ",
  model_terbaik$Hidden_Neuron,
  " dan maxit sebesar ",
  model_terbaik$Maxit,
  ". Model tersebut menghasilkan MSE sebesar ",
  sprintf("%.4f", model_terbaik$MSE),
  " dan MAPE sebesar ",
  sprintf("%.4f", model_terbaik$MAPE),
  "%. Model dipilih berdasarkan nilai MSE terkecil dengan MAPE sebagai pertimbangan berikutnya.",
  sep = ""
)
## 
## Model ANN regresi terbaik adalah ANN_Hidden10_Maxit250 dengan hidden neuron sebanyak 10 dan maxit sebesar 250. Model tersebut menghasilkan MSE sebesar 7.0147 dan MAPE sebesar 58.3884%. Model dipilih berdasarkan nilai MSE terkecil dengan MAPE sebagai pertimbangan berikutnya.

Berdasarkan hasil pemodelan Artificial Neural Network (ANN) regresi, diperoleh enam kombinasi model dengan variasi hidden neuron sebanyak 10, 20, dan 30 serta maxit sebesar 250 dan 500. Hasil evaluasi menunjukkan bahwa model dengan 10 hidden neuron dan maxit 250 menghasilkan nilai MSE terendah sebesar 7,0147, sedangkan nilai MAPE terendah sebesar 49,3228% diperoleh pada model dengan 10 hidden neuron dan maxit 500. Dengan demikian, model 10 hidden neuron dan maxit 250 memiliki kinerja terbaik berdasarkan nilai MSE dan MAPE sebagai pertimbangan berikutnya.

4.7 Visualisasi Prediksi Model Terbaik

# Mengambil hasil prediksi model terbaik
prediksi_terbaik <- hasil_prediksi[[nama_terbaik]]

# Membuat grafik aktual dan prediksi
ggplot(
  prediksi_terbaik,
  aes(x = Aktual, y = Prediksi)
) +
  geom_point(alpha = 0.7) +
  geom_abline(
    intercept = 0,
    slope = 1,
    linetype = "dashed"
  ) +
  labs(
    title = paste("Aktual dan Prediksi Model", nama_terbaik),
    x = "Nilai Aktual",
    y = "Nilai Prediksi"
  ) +
  theme_minimal()

Berdasarkan grafik, terlihat bahwa pada model 10 hidden neuron dan maxit 250 nilai prediksi model ANN cenderung mengikuti pola peningkatan nilai aktual, tetapi masih terdapat beberapa titik prediksi yang menyimpang cukup jauh dari garis diagonal. Hal ini menunjukkan bahwa model sudah mampu menangkap pola hubungan antara nilai aktual dan prediksi, tetapi ketepatan prediksi pada beberapa pengamatan masih belum optimal. Penyimpangan tersebut menunjukkan bahwa model masih perlu ditingkatkan agar dapat menghasilkan prediksi yang lebih mendekati nilai aktual.

BAB V KESIMPULAN

5.1 Kesimpulan

metode Artificial Neural Network (ANN) dapat digunakan untuk menyelesaikan permasalahan regresi dan klasifikasi dengan memanfaatkan jaringan neuron yang saling terhubung. Implementasi ANN menggunakan bahasa pemrograman R dilakukan melalui tahapan persiapan data, pembentukan model, pelatihan, dan prediksi. Penggunaan ANN memungkinkan pemodelan hubungan antara variabel prediktor dan variabel respon, baik untuk data numerik maupun kategorik.

Evaluasi performa model ANN dilakukan menggunakan metrik yang disesuaikan dengan jenis permasalahan yang dianalisis. Pada regresi, MSE dan MAPE digunakan untuk mengukur tingkat kesalahan prediksi, sedangkan pada klasifikasi digunakan akurasi dan presisi untuk mengukur ketepatan hasil pengelompokan. Hasil evaluasi tersebut dapat digunakan untuk mengetahui kemampuan model dalam menghasilkan prediksi yang baik.

Berdasarkan hasil analisis dapat disimpulkan bahwa variasi jumlah hidden neuron dan maxit menghasilkan kinerja prediksi yang berbeda. Model terbaik berdasarkan nilai MSE adalah model dengan 10 hidden neuron dan maxit 250, yaitu sebesar 7,0147 dengan MAPE 58,3884%. Secara keseluruhan, model mampu mengikuti pola nilai aktual, meskipun masih terdapat beberapa hasil prediksi yang menyimpang sehingga ketepatan model belum optimal.

DAFTAR PUSTAKA

Fransiska, H. (2026). Modul Praktikum Machine Learning dan Modern Prediction. Laboratorium Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Bengkulu.

Putri, A. D., Fitria, D., Amalita, N., & Zilrahmi. (2023). Implementation of Backpropagation Artificial Neural Network on Forecasting Export of Palm Oil in Indonesia. UNP Journal of Statistics and Data Science, 1(5), 473–479. https://doi.org/10.24036/ujsds/vol1-iss5/123

Huda, D. N., & Handayani, S. (2023). Prediksi Nilai Ujian dengan Artificial Neural Network. Remik, 7(1), 157–165. https://doi.org/10.33395/remik.v7i1.11983

Septasari, D., & Aziz, RZ. A. (2024). Perbandingan Metode Artificial Neural Network (ANN) dan Classification And Regression Tree (CART) Dalam Menentukan Penerima Bantuan Program Keluarga Harapan (PKH). Jurnal Algoritma, 21(2), 437–448. https://doi.org/10.33364/algoritma/v.21-2.1794