BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan teknologi informasi dan meningkatnya ketersediaan data mendorong penggunaan metode machine learning untuk menghasilkan prediksi yang akurat. Salah satu metode yang banyak digunakan adalah Artificial Neural Network (ANN) atau jaringan saraf tiruan. ANN merupakan metode pembelajaran mesin yang meniru cara kerja jaringan saraf manusia dalam mengenali pola melalui proses pembelajaran menggunakan bobot dan bias (Saragih & Huda, 2022).

ANN dapat diterapkan untuk menyelesaikan permasalahan regresi dan klasifikasi. Regresi digunakan untuk memprediksi nilai numerik atau kontinu, sedangkan klasifikasi digunakan untuk mengelompokkan data ke dalam kategori tertentu. Dalam proses pembelajarannya, ANN dapat menggunakan algoritma backpropagation untuk memperbarui bobot berdasarkan kesalahan prediksi Atmaja dkk., (2024).

Berdasarkan kemampuannya dalam mengenali pola dan mempelajari hubungan antarvariabel, ANN dapat digunakan sebagai metode untuk menyelesaikan berbagai permasalahan prediksi. Penerapan metode ini memungkinkan proses analisis dilakukan pada data dengan karakteristik yang berbeda, baik untuk memperkirakan nilai numerik maupun menentukan kategori suatu data (Ikhsan, Armansyah, dan Tamba, 2022). Oleh karena itu, praktikum ini dilakukan untuk memahami penerapan Artificial Neural Network pada regresi dan klasifikasi, mulai dari persiapan data, pembentukan arsitektur jaringan, proses pelatihan model, hingga evaluasi hasil prediksi menggunakan ukuran ketepatan yang sesuai.

1.2 Rumusan Masalah

Berdasarkan latar belakang tersebut, rumusan masalah dalam praktikum ini adalah sebagai berikut:

  1. Bagaimana 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

Tujuan yang ingin dicapai dalam praktikum ini adalah sebagai berikut:

  1. Memahami konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R.
  2. Mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.

BAB II TINJAUAN PUSTAKA

2.1 Artificial Neural Network

Artificial Neural Network (ANN) atau jaringan saraf tiruan merupakan metode pembelajaran mesin yang terinspirasi dari sistem saraf biologis manusia. ANN bekerja dengan menghubungkan sejumlah neuron melalui bobot dan bias untuk mempelajari pola serta hubungan antarvariabel dalam data. Menurut Dasuki (2021), kemampuan jaringan saraf tiruan dalam melakukan pembelajaran dapat dimanfaatkan untuk menghasilkan prediksi berdasarkan informasi yang diberikan.

Arsitektur ANN terdiri atas tiga lapisan utama, yaitu input layer, hidden layer, dan output layer. Input layer berfungsi menerima data masukan, hidden layer melakukan pengolahan informasi melalui bobot dan fungsi aktivasi, sedangkan output layer menghasilkan keluaran berupa nilai prediksi atau hasil klasifikasi. Penentuan jumlah lapisan dan neuron menjadi salah satu bagian penting dalam pembentukan model ANN (Supriana dkk., 2025).

Fungsi aktivasi merupakan fungsi yang digunakan untuk menentukan keluaran neuron berdasarkan hasil penjumlahan input yang telah dikalikan dengan bobot dan ditambahkan bias. Fungsi aktivasi membantu jaringan mempelajari pola nonlinier dalam data. Beberapa fungsi aktivasi yang umum digunakan adalah sigmoid, tanh, dan ReLU (Lesmana, 2025).

  1. Sigmoid \[f(x)=\frac{1}{1+e^{-x}}\]
  2. Tanh \[f(x)=\tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}\]
  3. ReLU \[f(x)=\max(0,x)\]

2.2 Algoritma Backpropagation

Backpropagation merupakan algoritma pembelajaran pada ANN yang digunakan untuk menyesuaikan bobot jaringan berdasarkan kesalahan prediksi. Pada ANN regresi, proses pembelajaran bertujuan meminimalkan selisih antara nilai aktual dan nilai prediksi, misalnya menggunakan Mean Squared Error (MSE). Secara umum, proses ppembelajaran terdiri atas tiga tahap berikut (Fransiska, 2026):

  1. Forward Propagation, yaitu menghitung keluaran jaringan berdasarkan masukan, bobot, dan fungsi aktivasi.
  2. Backward Propagation, yaitu menghitung gradien kesalahan terhadap bobot jaringan.
  3. Pembaruan Bobot, yaitu memperbarui bobot berdasarkan gradien untuk mengurangi kesalahan prediksi.

2.3 Artificial Neural Network untuk Regresi

Regresi merupakan metode yang digunakan untuk memprediksi nilai numerik berdasarkan satu atau lebih variabel prediktor. Pada ANN, regresi dilakukan dengan mempelajari pola hubungan antara variabel input dan output melalui proses pelatihan jaringan. Evaluasi model regresi dapat menggunakan beberapa ukuran berikut (Supriana dkk., 2025):

  1. Mean Squared Error (MSE) \[MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2\]
  2. Root Mean Squared Error (RMSE) \[RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}\] Semakin kecil nilai MSE dan RMSE, semakin kecil rata-rata kesalahan prediksi model.

2.4 Artificial Neural Network untuk Klasifikasi

Klasifikasi merupakan metode yang digunakan untuk mengelompokkan data ke dalam kelas tertentu berdasarkan karakteristik variabel prediktor. Pada ANN, proses klasifikasi dilakukan dengan mempelajari pola dari data latih sehingga model mampu menentukan kelas pada data pengujian. Evaluasi model klasifikasi dapat menggunakan confusion matrix yang terdiri atas empat komponen yaitu, True Positive (TP), True Negative (TN), False Positive (FP), dan False Negative (FN). Beberapa ukuran evaluasi klasifikasi adalah sebagai berikut (Putri dan Suwanda, 2023):

  1. Accuracy \[Accuracy=\frac{TP+TN}{TP+TN+FP+FN}\]
  2. Precision \[Precision=\frac{TP}{TP+FP}\]
  3. Recall \[Recall=\frac{TP}{TP+FN}\]
  4. F1-Score \[F1=2\times\frac{Precision\times Recall}{Precision+Recall}\]

BAB III METODE PENELITIAN

3.1 Sumber Data

Jenis data yang digunakan dalam praktikum ini adalah data kategorik. Data kategorik adalah tipe data yang merepresentasikan karakteristik atau atribut dari objek yang diklasifikasikan ke dalam kategori tertentu. Sumber data yang digunakan merupakan data sekunder, yaitu data yang telah tersedia dan diperoleh melalui sumber yang sudah ada. Data yang digunakan adalah dataset iris pada program R.

3.2 Variabel Penelitian

Variabel penelitian adalah segala sesuatu yang menjadi objek pengamatan dalam suatu penelitian. Variabel penelitian yang digunakan berasal dari dataset iris dengan jumlah 150 observasi dan 5 variabel. Variabel Petal.Width digunakan sebagai variabel respons, sedangkan empat variabel prediktor yang digunakan adalah Sepal.Length, Sepal.Width, Petal.Length, dan Species. Variabel Species terdiri dari tiga kategori, yaitu setosa, versicolor, dan virginica.

3.3 Langkah-langkah Analisis

Berikut langkah-langkah analisis data pada penelitian ini:

  1. Menyiapkan dataset iris pada program R.
  2. Melakukan eksplorasi data.
  3. Membagi data menjadi 80% data training dan 20% data testing.
  4. Menentukan variabel respons dan variabel prediktor untuk pemodelan ANN regresi.
  5. Membangun model ANN menggunakan kombinasi hidden neuron sebanyak 10, 20, dan 30 serta maxit sebesar 250 dan 500.
  6. Melakukan prediksi menggunakan masing-masing model pada data testing.
  7. Mengevaluasi hasil prediksi menggunakan Mean Absolute Error (MAE) dan Root Mean Square Error (RMSE).
  8. Menentukan model ANN terbaik.
  9. Memvisualisasikan struktur jaringan saraf, bobot koneksi, dan kepentingan variabel prediktor.
  10. Menarik kesimpulan berdasarkan hasil pemodelan dan evaluasi model ANN regresi.

BAB IV HASIL DAN PEMBAHASAN

4.1 Library

Library yang digunakan pada praktikum ini adalah nnet, dan NeuralNetTools. data yang digunakan adalah menyediakan dataset iris yang digunakan dalam analisis AAN Regresi.

library(nnet)
library(NeuralNetTools)
data(iris)
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Berdasarkan output summary(iris), variabel sepal.length memiliki nilai minimum 4,3, maksimum 7,9, rata-rata 5,843, dan median 5,8. Variabel Sepal.Width memiliki nilai minimum 2,0, maksimum 4,4, rata-rata 3,057, dan median 3,0. Selanjutnya, variabel Petal.Length memiliki nilai minimum 1,0, maksimum 6,9, rata-rata 3,758, dan median 4,35. Variabel petal.width memiliki nilai minimum 0,1, maksimum 2,5, rata-rata 1,199, dan median 1,3. Sementara itu, variabel species terdiri dari tiga jenis bunga, yaitu setosa, versicolor, dan virginica, dengan masing-masing sebanyak 50 observasi.

4.2 Pembagian Data Training dan Testing

set.seed(918)
index <- sample(1:nrow(iris), round(0.8 * nrow(iris)))

# Membentuk data *training* dan *testing*
train <- iris[index, ]
test <- iris[-index, ]
nrow(train)
## [1] 120
nrow(test)
## [1] 30
i <- names(train)
form <- as.formula(
  paste("Petal.Width ~",
        paste(i[!i %in% "Petal.Width"], 
              collapse = " + "))
)
form
## Petal.Width ~ Sepal.Length + Sepal.Width + Petal.Length + Species

Berdasarkan hasil pembagian data menggunakan set.seed(918), diperoleh 120 observasi (80%) sebagai data training dan 30 observasi (20%) sebagai data testing. Data training digunakan untuk membangun dan melatih model ANN, sedangkan data testing digunakan untuk mengevaluasi kemampuan prediksi model. Selanjutnya, formula yang terbentuk menunjukkan bahwa Petal.Width ditetapkan sebagai variabel respons, sedangkan Sepal.Length, Sepal.Width, Petal.Length, dan Species digunakan sebagai variabel prediktor dalam pemodelan ANN regresi.

4.3 Pemodelan ANN Regresi

# Menentukan kombinasi parameter
hidden <- c(10, 20, 30)
max_iter <- c(250, 500)

# Menyiapkan penyimpanan model
hasil_model <- list()

# Melakukan pemodelan berdasarkan kombinasi parameter
for (h in hidden) {
  for (m in max_iter) {
    
    nama <- paste0("Neuron_", h, "_Maxit_", m)
    
    hasil_model[[nama]] <- nnet.formula(
      form,
      size = h,
      data = train,
      linout = TRUE,
      maxit = m,
      trace = FALSE
    )
  }
}

names(hasil_model)
## [1] "Neuron_10_Maxit_250" "Neuron_10_Maxit_500" "Neuron_20_Maxit_250"
## [4] "Neuron_20_Maxit_500" "Neuron_30_Maxit_250" "Neuron_30_Maxit_500"
hasil_model
## $Neuron_10_Maxit_250
## a 5-10-1 network with 71 weights
## inputs: Sepal.Length Sepal.Width Petal.Length Speciesversicolor Speciesvirginica 
## output(s): Petal.Width 
## options were - linear output units 
## 
## $Neuron_10_Maxit_500
## a 5-10-1 network with 71 weights
## inputs: Sepal.Length Sepal.Width Petal.Length Speciesversicolor Speciesvirginica 
## output(s): Petal.Width 
## options were - linear output units 
## 
## $Neuron_20_Maxit_250
## a 5-20-1 network with 141 weights
## inputs: Sepal.Length Sepal.Width Petal.Length Speciesversicolor Speciesvirginica 
## output(s): Petal.Width 
## options were - linear output units 
## 
## $Neuron_20_Maxit_500
## a 5-20-1 network with 141 weights
## inputs: Sepal.Length Sepal.Width Petal.Length Speciesversicolor Speciesvirginica 
## output(s): Petal.Width 
## options were - linear output units 
## 
## $Neuron_30_Maxit_250
## a 5-30-1 network with 211 weights
## inputs: Sepal.Length Sepal.Width Petal.Length Speciesversicolor Speciesvirginica 
## output(s): Petal.Width 
## options were - linear output units 
## 
## $Neuron_30_Maxit_500
## a 5-30-1 network with 211 weights
## inputs: Sepal.Length Sepal.Width Petal.Length Speciesversicolor Speciesvirginica 
## output(s): Petal.Width 
## options were - linear output units

Berdasarkan hasil pemodelan, terbentuk enam model ANN dengan kombinasi 10, 20, dan 30 hidden neuron serta maxit 250 dan 500. Setiap model menggunakan 5 input, yaitu tiga variabel numerik dan dua variabel dummy dari Species, serta satu output, yaitu Petal.Width. Model dengan 10 hidden neuron memiliki 71 bobot, 20 hidden neuron memiliki 141 bobot, dan 30 hidden neuron memiliki 211 bobot. Seluruh model menggunakan output linear karena bertujuan memprediksi nilai numerik kontinu.

4.4 Prediksi Data Testing

# Menyiapkan penyimpanan hasil prediksi
hasil_prediksi <- data.frame(
  Aktual = test$Petal.Width
)

# Melakukan prediksi menggunakan seluruh model
for (nama in names(hasil_model)) {
  
  model <- hasil_model[[nama]]
  
  prediksi <- predict(
    model,
    newdata = test,
    type = "raw"
  )
  
  hasil_prediksi[[nama]] <- as.numeric(prediksi)
}

# Menampilkan hasil prediksi
hasil_prediksi
##    Aktual Neuron_10_Maxit_250 Neuron_10_Maxit_500 Neuron_20_Maxit_250
## 1     0.2           0.2084812           0.2442119           0.2370158
## 2     0.2           0.1653693           0.2160458           0.2130506
## 3     0.2           0.2513020           0.2511167           0.2382813
## 4     0.1           0.1597906           0.1703343           0.2882511
## 5     0.4           0.3043029           0.2229785           0.3243759
## 6     0.3           0.3415432           0.3451777           0.3698021
## 7     0.2           0.2307574           0.2691911           0.2459254
## 8     0.2           0.4235147           0.2543505           0.3422264
## 9     0.1           0.3214676           0.2459772           0.2794592
## 10    0.3           0.4097277          -0.5088021           0.4207246
## 11    1.5           1.8068383           1.7960057           1.8919110
## 12    1.4           1.6817579           1.6066902           1.5244260
## 13    1.5           1.4076033           1.3612699           1.3570103
## 14    1.4           1.4405313           1.3995727           1.4661363
## 15    1.2           1.1714711           1.1442030           1.0990959
## 16    1.3           1.2795289           1.2622887           1.3110630
## 17    1.3           1.3320399           1.2020958           1.2286234
## 18    1.3           1.2949772           1.2947969           1.2527122
## 19    1.7           4.6661697           1.4861221           1.3624089
## 20    1.8           1.8431765           2.0066935           1.9774713
## 21    1.8           1.5509005           1.7848771           1.7976944
## 22    2.2           2.1184661           1.9293971           3.1905414
## 23    1.5           1.6945055           1.6734067           1.2718416
## 24    1.9           2.0014782           2.0958036           2.1629547
## 25    2.0           2.0518531           1.8826946           2.5193225
## 26    2.4           2.3654191           2.1988832           2.7303157
## 27    1.8           1.8744896           1.8137210           1.7020830
## 28    2.3           2.2979926           2.2653317           2.1322697
## 29    1.9           1.7250819           1.6949793           1.3890447
## 30    2.3           2.3346010           2.0085618           2.3966073
##    Neuron_20_Maxit_500 Neuron_30_Maxit_250 Neuron_30_Maxit_500
## 1            0.2623098           0.2274376          0.26541341
## 2            0.2253691           0.2532872          0.17234962
## 3            0.2215385           0.2630279          0.19883531
## 4            0.1838760           0.3652026          0.01970593
## 5            0.2276231           0.2225126          0.38351390
## 6            0.3113670           0.5196102          0.29992655
## 7            0.2778624           0.2319404          0.27488091
## 8            0.2711058           0.2824842          0.40608352
## 9            0.2571350           0.2705725          0.22818846
## 10          -0.4604729           0.1625750         -0.22661701
## 11           1.4624112           1.8359823          0.91641575
## 12           1.3716383           1.6832673          1.26262302
## 13           1.4943156           1.4895643          1.72849548
## 14           1.4182085           1.4088224          1.40546535
## 15           1.1974154           1.2023342          1.01778699
## 16           1.2497202           1.1731117          1.68219941
## 17           1.3356857           1.4091751          1.55484738
## 18           1.2686540           1.2313421          1.09701802
## 19           3.1135819           4.2192277          7.74485039
## 20           2.5997364           1.8949219          2.04870746
## 21           3.9252789           1.7364444          1.75162953
## 22           2.2079124           1.9220933          1.86347581
## 23           1.7433388           1.8223377          1.48664317
## 24           1.7526574           2.0358384          2.05343274
## 25           0.7338000           1.8343059          2.07847455
## 26           3.3269445           2.3146446          2.12648383
## 27           1.6592080           1.8794733          1.57314945
## 28           2.7261939           2.3078065          2.31973341
## 29           1.9651659           1.7957970          1.50896224
## 30           2.5489682           2.2081800          2.32855839

Berdasarkan hasil prediksi terhadap 30 observasi data testing, diperoleh enam model ANN dengan kombinasi jumlah hidden neuron sebanyak 10, 20, dan 30 serta maxit sebesar 250 dan 500. Hasil prediksi menunjukkan bahwa nilai yang dihasilkan setiap model berbeda-beda dibandingkan nilai aktual Petal.Width. Sebagian prediksi mendekati nilai aktual, seperti pada observasi pertama dengan nilai aktual 0,2 dan hasil prediksi berkisar antara 0,2085 hingga 0,2654. Namun, terdapat pula prediksi yang memiliki selisih cukup besar, seperti pada observasi kesembilan belas dengan nilai aktual 1,7, sedangkan hasil prediksi berkisar antara 1,3624 hingga 7,7449. Selain itu, beberapa model menghasilkan prediksi negatif, meskipun nilai aktual Petal.Width tidak negatif. Hal ini menunjukkan bahwa perubahan jumlah hidden neuron dan maxit menghasilkan perbedaan kemampuan prediksi pada setiap model.

4.5 Evaluasi Model ANN Regresi

# Menyiapkan penyimpanan nilai evaluasi
hasil_evaluasi <- data.frame()

# Menghitung MAE dan RMSE setiap model
for (nama in names(hasil_model)) {
  
  prediksi <- hasil_prediksi[[nama]]
  
  error <- hasil_prediksi$Aktual - prediksi
  
  mae <- mean(abs(error))
  rmse <- sqrt(mean(error^2))
  
  hasil_evaluasi <- rbind(
    hasil_evaluasi,
    data.frame(
      Model = nama,
      MAE = mae,
      RMSE = rmse
    )
  )
}

# Menampilkan tabel evaluasi
hasil_evaluasi
##                 Model       MAE      RMSE
## 1 Neuron_10_Maxit_250 0.1897637 0.5560109
## 2 Neuron_10_Maxit_500 0.1419825 0.2084061
## 3 Neuron_20_Maxit_250 0.1862775 0.2747399
## 4 Neuron_20_Maxit_500 0.3154869 0.5952350
## 5 Neuron_30_Maxit_250 0.2040726 0.4850784
## 6 Neuron_30_Maxit_500 0.3655810 1.1266267

Berdasarkan hasil evaluasi, diperoleh nilai MAE dan RMSE yang berbeda pada setiap kombinasi parameter. Model dengan 10 hidden neuron dan maxit 250 menghasilkan MAE sebesar 0,1898 dan RMSE sebesar 0,5560. Model dengan 10 hidden neuron dan maxit 500 menghasilkan MAE sebesar 0,1420 dan RMSE sebesar 0,2084. Model dengan 20 hidden neuron dan maxit 250 menghasilkan MAE sebesar 0,1863 dan RMSE sebesar 0,2747, sedangkan pada maxit 500 menghasilkan MAE sebesar 0,3155 dan RMSE sebesar 0,5952. Selanjutnya, model dengan 30 hidden neuron dan maxit 250 menghasilkan MAE sebesar 0,2041 dan RMSE sebesar 0,4851, sedangkan pada maxit 500 menghasilkan MAE sebesar 0,3656 dan RMSE sebesar 1,1266.

4.6 Menentukan Model Terbaik

# Mengurutkan model berdasarkan RMSE terkecil
hasil_evaluasi <- hasil_evaluasi[
  order(hasil_evaluasi$RMSE), 
]

# Menampilkan hasil pengurutan
hasil_evaluasi
##                 Model       MAE      RMSE
## 2 Neuron_10_Maxit_500 0.1419825 0.2084061
## 3 Neuron_20_Maxit_250 0.1862775 0.2747399
## 5 Neuron_30_Maxit_250 0.2040726 0.4850784
## 1 Neuron_10_Maxit_250 0.1897637 0.5560109
## 4 Neuron_20_Maxit_500 0.3154869 0.5952350
## 6 Neuron_30_Maxit_500 0.3655810 1.1266267
# Menentukan model terbaik
model_terbaik <- hasil_evaluasi$Model[1]

# Menampilkan nama model terbaik
model_terbaik
## [1] "Neuron_10_Maxit_500"
# Mengambil model terbaik
nn_terbaik <- hasil_model[[model_terbaik]]

Berdasarkan hasil tersebut, model dengan 10 hidden neuron dan maxit 500 merupakan model terbaik, karena menghasilkan nilai MAE terkecil sebesar 0,1420 dan RMSE terkecil sebesar 0,2084. Hal ini menunjukkan bahwa model tersebut memiliki tingkat kesalahan prediksi paling rendah dibandingkan kelima model lainnya dalam memprediksi nilai Petal.Width pada data testing.

4.7 Visualisasi Model ANN Terbaik

# Memvisualisasikan struktur jaringan saraf
plotnet(nn_terbaik)

Berdasarkan hasil visualisasi jaringan saraf, model ANN terbaik memiliki struktur 5-10-1, yaitu terdiri dari 5 neuron input, 10 neuron pada hidden layer, dan 1 neuron output. Lima neuron input berasal dari variabel Sepal.Length, Sepal.Width, Petal.Length, Speciesversicolor, dan Speciesvirginica, sedangkan neuron output menghasilkan prediksi Petal.Width. Selain itu, terdapat bias pada lapisan tersembunyi (B1) dan lapisan output (B2) yang membantu proses pembelajaran jaringan.

# Menampilkan bobot koneksi antar-neuron
neuralweights(nn_terbaik)
## $struct
## [1]  5 10  1
## 
## $wts
## $wts$`hidden 1 1`
## [1] -19.8073684  11.8565906 -13.2294639  -0.8785283  -6.4813272 -13.4218448
## 
## $wts$`hidden 1 2`
## [1]  28.586368 -10.567471  11.273978  -3.415771  13.589054  25.155061
## 
## $wts$`hidden 1 3`
## [1] -13.009757   6.579847  -8.313100   1.632478  -7.459525 -14.026935
## 
## $wts$`hidden 1 4`
## [1]   6.152936  -7.857481 -11.754735  14.826971  14.679275  -9.218191
## 
## $wts$`hidden 1 5`
## [1]  3.9837638  2.0589259 -9.9060048  0.3026675  3.0762202  0.2990468
## 
## $wts$`hidden 1 6`
## [1]  0.3968412 -1.4720140 -1.0268484 -0.5856492  0.1734303 -0.5146272
## 
## $wts$`hidden 1 7`
## [1] -5.3884506  0.4349884 -0.8126814  0.5952758  3.6491563  2.9547711
## 
## $wts$`hidden 1 8`
## [1] -6.2609260 -0.1038894  0.2363819  2.8388443 -0.7402586  1.1543386
## 
## $wts$`hidden 1 9`
## [1]  0.09802547 -6.71572662 15.92124558  1.82164585 -1.70500753  6.80172068
## 
## $wts$`hidden 1 10`
## [1]  15.888410 -10.398585   4.835074   8.028692  12.366291   3.236944
## 
## $wts$`out 1`
##  [1] -0.7342717  1.3665621 -2.6284306 -5.3450907 -0.2463549  4.5789814
##  [7] -0.1292734  6.2134073  0.9516348  3.4665698 -3.2016362

Berdasarkan hasil neuralweights(nn_terbaik), bobot bias pada lapisan output sebesar -0,7343, sedangkan bobot koneksi dari neuron H1 hingga H10 secara berurutan adalah 1,3666, -2,6284, -5,3451, -0,2464, 4,5790, -0,1293, 6,2134, 0,9516, 3,4666, dan -3,2016. Sementara itu, bobot pada lapisan tersembunyi juga memiliki nilai yang bervariasi, misalnya neuron H1 memiliki bobot -19,8074, 11,8566, -13,2295, -0,8785, -6,4813, dan -13,4218, sedangkan neuron H10 memiliki bobot 15,8884, -10,3986, 4,8351, 8,0287, 12,3663, dan 3,2369. Nilai bobot positif dan negatif menunjukkan arah kontribusi masing-masing koneksi dalam proses perhitungan jaringan.

# Mengukur kepentingan variabel prediktor
olden(nn_terbaik)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Berdasarkan grafik tingkat kepentingan variabel menggunakan metode Olden, diketahui bahwa Sepal.Length memiliki nilai kepentingan tertinggi sebesar 32,9, diikuti Speciesvirginica sebesar 26,9. Sementara itu, Sepal.Width memiliki nilai sebesar -10,7, Petal.Length sebesar -16,2, dan Speciesversicolor sebesar -18,0. Nilai kepentingan positif menunjukkan kontribusi variabel yang searah terhadap hasil prediksi, sedangkan nilai negatif menunjukkan kontribusi yang berlawanan arah. Dengan demikian, Sepal.Length merupakan variabel yang memiliki kepentingan paling besar dalam model ANN, sedangkan Speciesversicolor memiliki nilai kepentingan paling rendah. Hasil ini menunjukkan bahwa setiap variabel prediktor memberikan kontribusi yang berbeda dalam memprediksi nilai Petal.Width.

BAB V KESIMPULAN

5.1 Kesimpulan

Artificial Neural Network (ANN) merupakan metode pembelajaran mesin yang terinspirasi dari sistem saraf biologis manusia dan bekerja dengan menghubungkan neuron melalui bobot, bias, serta fungsi aktivasi untuk mempelajari pola hubungan antarvariabel. ANN memiliki tiga lapisan utama, yaitu input layer, hidden layer, dan output layer. Proses pembelajarannya dapat dilakukan menggunakan algoritma backpropagation yang terdiri atas forward propagation, backward propagation, dan pembaruan bobot untuk meminimalkan kesalahan prediksi. Fungsi aktivasi seperti sigmoid, tanh, dan ReLU digunakan untuk membantu jaringan dalam mengenali pola data, termasuk pola nonlinier.

Penerapan ANN dapat digunakan untuk menyelesaikan permasalahan regresi maupun klasifikasi. Pada regresi, ANN digunakan untuk memprediksi nilai numerik dengan mengevaluasi ketepatan hasil prediksi menggunakan MSE dan RMSE. Sementara itu, pada klasifikasi, ANN digunakan untuk mengelompokkan data ke dalam kelas tertentu dengan mengevaluasi kinerja model melalui confusion matrix, accuracy, precision, recall, dan F1-score. Dengan demikian, ANN dapat menjadi salah satu metode dalam pemodelan prediksi dan klasifikasi karena kemampuannya mempelajari pola data berdasarkan proses pelatihan jaringan.

Berdasarkan hasil ANN regresi menggunakan dataset iris, diperoleh model dengan Petal.Width sebagai variabel respons dan Sepal.Length, Sepal.Width, Petal.Length, serta Species sebagai variabel prediktor. Data dibagi menjadi 80% data training sebanyak 120 observasi dan 20% data testing sebanyak 30 observasi. Pemodelan dilakukan menggunakan enam kombinasi jumlah hidden neuron yaitu 10, 20, dan 30 serta maxit yaitu 250 dan 500. Berdasarkan evaluasi MAE dan RMSE, model terbaik diperoleh pada 10 hidden neuron dan maxit 500 dengan nilai MAE sebesar 0,1420 dan RMSE sebesar 0,2084, yang menunjukkan tingkat kesalahan prediksi paling rendah dibandingkan model lainnya. Model terbaik memiliki struktur jaringan 5-10-1 dengan 71 bobot pada lapisan input dan tersembunyi serta output. Dengan demikian, kombinasi 10 hidden neuron dan maxit 500 memberikan kinerja prediksi terbaik dalam memodelkan nilai Petal.Width pada data testing dibandingkan lima kombinasi parameter lainnya.

DAFTAR PUSTAKA

Atmaja, B. A., Gultom, G. S., Manurung, J. H., & P., V. A. E. (2024). Penerapan metode backpropagation dalam jaringan saraf tiruan untuk meningkatkan prediksi produksi kentang di Sumatera. INSOLOGI: Jurnal Sains dan Teknologi, 3(6), 674–683.

Dasuki, M. (2021). Optimasi nilai bobot algoritma Backpropagation Neural Network dengan algoritma genetika. JUSTINDO (Jurnal Sistem dan Teknologi Informasi Indonesia), 6(1), 38-44.

Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Laboratorium Matematika Universitas Bengkulu.

Ikhsan, M., Armansyah, & Tamba, A. A. (2022). Implementasi jaringan syaraf tiruan backpropagation pada klasifikasi grade teh hitam. Jurnal Sistem Komputer dan Informatika (JSON), 4(2), 387–395.

Lesmana, D. (2025). Pengaplikasian deep learning dengan desain arsitektur JST untuk tugas regresi dan klasifikasi. Elektronika Sistem Senjata, 6(1), 1-17.

Putri, L. A., & Suwanda. (2023). Implementasi metode Artificial Neural Network (ANN) algoritma Backpropagation untuk klasifikasi kualitas udara di Provinsi DKI Jakarta Tahun 2021. Bandung Conference Series: Statistics, 3(2), 184-191.

Saragih, T. H., & Huda, N. (2022). Jaringan syaraf tiruan backpropagation dengan adaptive moment estimation untuk klasifikasi penyakit COVID-19 di Kalimantan Selatan. EPSILON: Jurnal Matematika Murni dan Terapan, 16(2), 162-172.

Supriana, I. W., Prana, G. D. W., Prana, G. D. W., & Jayadita, I., K. A. (2025). Implementasi Artificial Neural Network menggunakan Backpropagation pada prediksi Indeks Pembangunan Manusia. JELIKU (Jurnal Elektronik Ilmu Komputer Udayana), 13(4), 875–882.