BAB I PENDAHULUAN

1.1 Latar Belakang

Machine Learning atau pembelajaran mesin merupakan salah satu cabang penting dalam kecerdasan buatan (Artificial Intelligence). Istilah ini merujuk pada kemampuan sistem komputer untuk belajar dari data, mengenali pola, serta memanfaatkan pola tersebut dalam menghasilkan prediksi atau mengambil keputusan. Dalam pemrograman tradisional, manusia memberikan instruksi secara langsung kepada komputer agar dapat menjalankan tugas tertentu berdasarkan aturan yang telah ditetapkan. Sementara itu, dalam Machine Learning, komputer tidak harus diberikan aturan secara eksplisit. Sebaliknya, komputer diberikan data dan algoritma yang memungkinkan sistem untuk mempelajari hubungan serta pola yang terkandung di dalam data tersebut (Juansa dkk., 2026).

Salah satu metode yang termasuk dalam Machine Learning adalah Artificial Neural Network (ANN) atau jaringan saraf tiruan. Metode ini terinspirasi dari mekanisme kerja jaringan saraf biologis pada otak manusia. Dalam sistem biologis, neuron saling terhubung melalui sinapsis dan mampu memproses informasi secara paralel. Konsep tersebut kemudian diadaptasi ke dalam model komputasi melalui pembentukan jaringan yang terdiri atas sejumlah neuron buatan yang saling terhubung menggunakan bobot (weight). Melalui proses pembelajaran berdasarkan data, bobot pada setiap koneksi akan diperbarui sehingga jaringan mampu mengenali dan mempelajari pola yang terkandung dalam data (Dafid, Sudianto, & Widyaningrum, 2026).

Penerapan Artificial Neural Network (ANN) dalam komputasi dilakukan dengan membangun model jaringan saraf tiruan untuk menyelesaikan suatu permasalahan analisis data. Proses ini diawali dengan penggunaan dataset yang tersedia sebagai bahan pembelajaran, kemudian dilanjutkan dengan tahap pelatihan (training) agar jaringan mampu mempelajari pola hubungan antara variabel input dan output. Setelah proses pelatihan selesai, model yang terbentuk dapat digunakan untuk menghasilkan prediksi terhadap data baru yang belum pernah dipelajari sebelumnya. Dalam praktiknya, implementasi ANN dapat dilakukan dengan memanfaatkan berbagai perangkat lunak dan bahasa pemrograman, salah satunya adalah R. Oleh karena itu, pada praktikum ini dilakukan komputasi menggunakan bahasa pemrograman R untuk membentuk model ANN regresi dengan menggunakan data Iris (Dafid, Sudianto, & Widyaningrum, 2026).

1.2 Rumusan Masalah

Berdasarkan latar belakang, rumusan masalah yang dapat disimpulkan adalah:

  1. Bagaimana konsep dan cara implementasi model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R?
  2. Bagaimana cara mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi?

1.3 Tujuan

Adapun tujuan penelitian ini yaitu:

  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 untur regresi, serta akurasi dan presisi untuk klasifikasi.

BAB II TINJAUAN PUSTAKA

2.1 Artificial Neural Network (ANN)

Artificial Neural Network (ANN) merupakan suatu metode pemrosesan informasi yang memiliki mekanisme kerja menyerupai jaringan saraf biologis. ANN dikembangkan sebagai metode pembelajaran yang meniru proses kognitif manusia. Teknik ini didasarkan pada asumsi bahwa pemrosesan informasi terjadi melalui unit-unit sederhana yang disebut neuron. Informasi atau sinyal diteruskan melalui jalur koneksi yang menghubungkan setiap neuron. Setiap jalur koneksi memiliki bobot (weight), sedangkan setiap neuron memiliki bias dan fungsi aktivasi (activation function). Selanjutnya, keluaran neuron diperoleh melalui penjumlahan hasil perkalian antara sinyal masukan dan bobot, serta penambahan nilai bias yang kemudian diproses menggunakan fungsi aktivasi (Setiawan, 2020).

Secara umum, arsitektur Artificial Neural Network terdiri atas tiga lapisan utama, yaitu input layer, hidden layer, dan output layer. Input layer berfungsi menerima data masukan yang berasal dari dataset. Selanjutnya, hidden layer melakukan proses pembelajaran dengan mentransformasikan data melalui kombinasi bobot, bias, dan fungsi aktivasi. Sementara itu, output layer menghasilkan keluaran akhir berupa nilai prediksi atau klasifikasi kelas dari data yang dianalisis. Adapun penjelasan mengenai ketiga lapisan tersebut adalah sebagai berikut (Dafid, Sudianto, & Widyaningrum, 2026):

  1. Input Layer

    Input layer merupakan lapisan pertama yang berfungsi menerima data masukan dari dataset sebelum diteruskan ke lapisan berikutnya. Jumlah neuron pada lapisan ini umumnya disesuaikan dengan jumlah fitur atau variabel yang digunakan dalam pemodelan. Dengan demikian, semakin banyak fitur yang terdapat dalam dataset, semakin banyak pula neuron yang dibutuhkan pada input layer.

  2. Hidden Layer

    Hidden layer merupakan lapisan yang berperan dalam proses pembelajaran dan pengenalan pola pada data. Pada lapisan ini, data masukan ditransformasikan melalui kombinasi bobot, bias, dan fungsi aktivasi untuk menghasilkan representasi pola yang akan diteruskan ke lapisan berikutnya. Jumlah neuron pada hidden layer tidak memiliki aturan yang pasti karena bergantung pada tingkat kompleksitas permasalahan yang ingin diselesaikan. Semakin kompleks pola data yang dipelajari, semakin banyak neuron atau bahkan lapisan tersembunyi yang mungkin diperlukan. Namun, penggunaan neuron atau hidden layer yang terlalu banyak dapat meningkatkan waktu komputasi serta berpotensi menyebabkan overfitting pada model.

  3. Output Layer

    Output layer merupakan lapisan terakhir yang berfungsi menghasilkan keluaran akhir dari proses pemodelan ANN. Jumlah neuron pada lapisan ini bergantung pada jenis permasalahan yang ingin diselesaikan. Pada permasalahan regresi atau klasifikasi biner, umumnya digunakan satu neuron pada output layer. Sementara itu, pada permasalahan klasifikasi multikelas, jumlah neuron disesuaikan dengan banyaknya kelas yang akan diprediksi oleh model.

Secara matematis, proses pengolahan informasi pada suatu neuron dapat dinyatakan sebagai (Fransiska, 2026):

\[y = f\left(\sum_{i=1}^{p} w_i x_i + b\right)\]

dengan \(x_i\) merupakan masukan ke-\(i\), \(w_i\) bobot yang menghubungkan masukan ke-\(i\) dengan neuron, \(b\) adalah bias, \(f\) merupakan fungsi aktivasi, dan \(y\) adalah keluaran neuron.

Arsitektur ANN dapat dibedakan menjadi dua jenis yaitu Single Layer Perceptron (SLP) dan Multi-Layer Perceptron (MLP).

Arsitektur Jaringan Fungsi
Single Layer Perceptron (SLP) Jaringan tanpa lapisan tersembunyi yang digunakan untuk mempelajari hubungan linear dan menyelesaikan klasifikasi yang dapat dipisahkan secara linear
Multi-Layer Perceptron (MLP) Jaringan dengan satu atau lebih lapisan tersembunyi yang mampu mempelajari hubungan nonlinear untuk pemodelan regresi dan klasifikasi
Tabel 1. Arsitektur Jaringan

2.2 ANN Regresi

ANN regresi digunakan untuk memprediksi variabel respons berupa nilai numerik kontinu.Lapisan keluaran umumnya menggunakan fungsi aktivasi linear agar jaringan dapat menghasilkan nilai prediksi sesuai dengan rentang variabel respon.

1. 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 : menghitung keluaran jaringan berdasarkan masukan, bobot, dan fungsi aktivasi
  2. Backward Propagation : menghitung gradien kesalahan terhadap bobot jaringan
  3. Pembaruan Bobot : memperbarui bobot berdasarkan gradien untuk mengurangi kesalahan prediksi

2. Fungsi Aktivasi

Fungsi aktivasi digunakan untuk menentukan keluaran neuron dan membantu jaringan mempelajari pola nonlinear. Beberapa fungsi aktivasi yang dapat digunakan dalam ANN regresi disajikan pada tabel berikut:

Fungsi Rumus Penggunaan
Sigmoid Biner \(f(z)=\dfrac{1}{1+e^{-x}}\)
dengan \(f'(z)=[f(z)]\,[1-f(z)]\)
Digunakan pada hidden layer untuk menghasilkan nilai antara 0 dan 1
Hyperbolic Tangent (Tanh) \(f(x)=\dfrac{1-e^{-2x}}{1+e^{-2x}}=\tanh(x)\)
dengan \(f'(x)=1-\tanh^2(x)\)
Digunakan pada hidden layer dengan keluaran antara -1 dan 1
Rectified Linear Unit (ReLU) \(f(x)=\max(0,x)\) Digunakan pada hidden layer untuk mempelajari pola nonlinear
Tabel 2. Fungsi Aktivasi

3. Evaluasi Model

Evaluasi Evaluasi ANN regresi dilakukan dengan membandingkan nilai aktual dan nilai hasil prediksi. Beberapa ukuran yang umum digunakan adalah Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (\(R^2\)).

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

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

2.3 ANN Klasifikasi

ANN klasifikasi digunakan untuk memprediksi variabel respons berupa kategori. Berdasarkan jumlah kelasnya, ANN klasifikasi dibedakan menjadi dua jenis (Fransiska, 2026):

  • Klasifikasi biner, yaitu klasifikasi dengan dua kategori. Lapisan keluaran umumnya menggunakan satu neuron dengan fungsi sigmoid untuk menghasilkan probabilitas antara 0 dan 1.
  • Klasifikasi multikelas, yaitu klasifikasi dengan lebih dari dua kategori. Lapisan keluaran umumnya menggunakan fungsi softmax untuk menghasilkan probabilitas setiap kelas, dengan jumlah probabilitas seluruh kelas sama dengan 1.

1. Proses Pembelajaran dan Backpropagation

Proses pembelajaran ANN klasifikasi dilakukan dengan menyesuaikan bobot jaringan untuk meminimalkan kesalahan klasifikasi. Salah satu fungsi kerugian yang digunakan adalah cross-entropy loss, yang mengukur perbedaan antara probabilitas prediksi dan kelas aktual.

  • Klasifikasi biner, fungsi binary cross-entropy dinyatakan sebagai:

    \[BCE = -\frac{1}{n}\sum_{i=1}^{n}\left[y_i \ln(\hat{p}_i) + (1-y_i)\ln(1-(\hat{p}_i))\right]\]

    dengan \(y_i\) adalah kelas aktual observasi ke-\(i\), bernilai 0 atau 1, \(\hat{p}_i\) merupakan probabilitas kelas posiitf pada observasi ke-\(i\).

  • Klasifikasi multikelas, fungsi categorical cross-entropy dinyatakan sebagai:

    \[L = -\frac{1}{n}\sum_{i=1}^{N}\sum_{k=1}^{K} y_{ik}\,\log(\hat{y}_{ik})\]

    dengan \(y_{ik}\) adalah label aktual dan \(\hat{y}_{ik}\) prediksi model.

  • Bobot jaringan diperbarui berdasarkan gradien fungsi kerugian. Secara umum, pembaruan bobot menggunakan gradient descent dapat dituliskan sebagai:

    \[w_{ij}^{(t+1)} = w_{ij}^{(t)} - \eta\,\frac{\partial L}{\partial w_{ij}}\]

    dengan \(\eta\) adalah laju pembelajaran (learning rate).

2. Fungsi Aktivasi

Fungsi aktivasi berperan penting dalam menentukan non-linearitas jaringan. Beberapa fungsi umum pada ANN klasifikasi meliputi:

  1. Sigmoid : cocok untuk klasifikasi biner
  2. Softmax : cocok untuk multiclass classification
  3. ReLU (Rectified Linear Unit) : mempercepat konvergensi dan mengatasi masalah vanishing gradient
  4. Tanh : menghasilkan output antara -1 dan 1, serta membantu normalisasi sinyal neuron

3. Evaluasi Model

Evaluasi ANN Klasifikasi dilakukan dengan membandingkan kelas aktual dan kelas hasil prediksi. Hasil perbandingan tersebut dapat disajikan dalam confusion matrix.

Predicted Positive Predicted Negative
Actual Positive True Positive (TP) False Negative (FN)
Actual Negative False Positive (FP) True Negative (TN)
Tabel 3. Evaluasi Model

Berdasarkan confusion matrix, beberapa ukuran evaluasi yang dapat digunakan adalah:

  • Accuracy \(= \dfrac{TP+TN}{TP+TN+FP+FN}\)
  • Precision \(= \dfrac{TP}{TP+FP}\)
  • Recall \(= \dfrac{TP}{TP+FN}\)
  • Specificity \(= \dfrac{TN}{TN+FP}\)
  • F1-Score \(= 2\left(\dfrac{Precision \times Recall}{Precision + Recall}\right)\)

BAB III METODE PENELITIAN

3.1 Jenis dan Sumber Data

Jenis data yang digunakan dalam praktikum ini terdiri atas data numerik dan data kategorik. Data numerik merupakan data yang dinyatakan dalam bentuk angka dan dapat digunakan dalam perhitungan matematis, sedangkan data kategorik merupakan data yang menunjukkan kelompok atau kategori tertentu untuk membedakan karakteristik suatu objek. Sumber data yang digunakan dalam praktikum ini adalah data sekunder, yaitu data yang telah tersedia sebelumnya dan dimanfaatkan untuk memenuhi kebutuhan analisis. Data sekunder yang digunakan berupa dataset iris yang tersedia dalam pemrograman R dan terdiri atas 150 observasi serta 5 variabel. Data tersebut memuat hasil pengukuran bagian bunga iris dari tiga spesies, yaitu setosa, versicolor, dan virginica.

3.2 Variabel Penelitian

Variabel penelitian merupakan karakteristik atau atribut yang menjadi objek pengamatan dalam suatu penelitian. Pada praktikum ini, dataset iris terdiri atas 5 variabel, yaitu satu variabel respons dan empat variabel prediktor. Variabel Petal.Width (lebar kelopak dalam satuan cm) berperan sebagai variabel respons bertipe numerik kontinu. Empat variabel prediktor meliputi Sepal.Length, Sepal.Width, Petal.Length, dan Species. Variabel Sepal.Length, Sepal.Width, dan Petal.Length bertipe numerik, sedangkan Species bertipe kategorik (factor) dengan tiga kategori. Variabel Species secara otomatis diubah menjadi dua variabel dummy saat pemodelan, sehingga jaringan memiliki lima unit masukan.

3.3 Analisis Data

Adapun analisis data pada batasan masalah ini sebagai berikut: 1. Memanggil dan mengeksplorasi dataset iris. 2. Membagi data latih dan data uji dengan proporsi 80:20. 3. Menyusun formula model dengan Petal.Width sebagai respons. 4. Membentuk model ANN regresi dengan hidden neuron 10, 20, dan 30 serta maxit 250 dan 500. 5. Melakukan prediksi pada data latih dan data uji. 6. Menghitung RMSE data latih serta MAE, RMSE, dan \(R^2\) data uji, dan memeriksa status konvergensi model. 7. Membandingkan keenam model dan memilih model terbaik berdasarkan RMSE data uji terkecil. 8. Menampilkan arsitektur jaringan, bobot jaringan, dan tingkat kepentingan variabel pada model terbaik. 9. Interpretasi hasil.

BAB IV HASIL DAN PEMBAHASAN

4.1 Library dan Data

library(nnet)
library(NeuralNetTools)

# Memuat data
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  
##                 
##                 
## 

Pada tahap awal analisis, dilakukan pemanggilan dan peringkasan dataset Iris menggunakan fungsi head() dan summary(). Berdasarkan hasil pemeriksaan, dataset Iris terdiri atas 150 observasi dan lima variabel, yaitu Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, dan Species. Empat variabel pertama merupakan variabel numerik yang menggambarkan ukuran bagian bunga, sedangkan variabel Species menunjukkan jenis bunga iris. Hasil fungsi summary() menunjukkan bahwa variabel Sepal.Length memiliki rentang nilai 4,3–7,9 dengan rata-rata 5,843, Sepal.Width sebesar 2,0–4,4 dengan rata-rata 3,057, Petal.Length sebesar 1,0–6,9 dengan rata-rata 3,758, serta Petal.Width sebesar 0,1–2,5 dengan rata-rata 1,199. Sementara itu, variabel Species terdiri atas tiga jenis bunga, yaitu setosa, versicolor, dan virginica, dengan masing-masing berjumlah 50 observasi. Data tersebut selanjutnya digunakan sebagai dasar dalam proses pemodelan ANN regresi.

4.2 Splitting Data

# Membagi data: 80% training, 20% testing
set.seed(918); nrow(iris)
## [1] 150
index <- sample(1:nrow(iris), round(0.8 * nrow(iris)))
train <- iris[index, ]; nrow(train)
## [1] 120
test  <- iris[-index, ]; nrow(test)
## [1] 30

Pada tahap selanjutnya, dilakukan pembagian data menjadi data training dan data testing secara acak menggunakan fungsi sample() dengan menetapkan seed sebesar 918 agar hasil pembagian data tetap konsisten ketika program dijalankan kembali. Berdasarkan hasil pembagian, dari total 150 observasi, sebanyak 120 observasi (80%) digunakan sebagai data training, sedangkan 30 observasi (20%) digunakan sebagai data testing. Data training digunakan untuk membangun model ANN, sementara data testing digunakan untuk mengevaluasi kemampuan model dalam melakukan prediksi terhadap data yang belum digunakan selama proses pelatihan.

4.3 Pembentukan model ANN

# Sintaks ANN
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
# Hidden neuron = (10, 20, 30) x maxit = (250, 500)
grid <- expand.grid(size = c(10, 20, 30), maxit = c(250, 500))
hasil <- data.frame()
model_list <- list()

for (k in 1:nrow(grid)) {
  set.seed(918)
  nn_k <- nnet.formula(form, size = grid$size[k], data = train,
                       linout = TRUE, maxit = grid$maxit[k], trace = FALSE)
  
  # hasil prediksi
  pred_train <- as.numeric(predict(nn_k, newdata = train, type = "raw"))
  pred_test  <- as.numeric(predict(nn_k, newdata = test,  type = "raw"))
  
  # hasil evaluasi
  err_train <- train$Petal.Width - pred_train
  err_test  <- test$Petal.Width  - pred_test
  
  hasil <- rbind(hasil, data.frame(
    Hidden_Neuron = grid$size[k],
    Maxit         = grid$maxit[k],
    Konvergen     = ifelse(nn_k$convergence == 0, "Ya", "Tidak (maxit tercapai)"),
    RMSE_Train    = sqrt(mean(err_train^2)),
    MAE_Test      = mean(abs(err_test)),
    RMSE_Test     = sqrt(mean(err_test^2)),
    R2_Test       = 1 - sum(err_test^2) / sum((test$Petal.Width - mean(test$Petal.Width))^2)
  ))
  model_list[[paste0("size", grid$size[k], "_maxit", grid$maxit[k])]] <- nn_k
}
print(hasil, digits = 4)
##   Hidden_Neuron Maxit              Konvergen RMSE_Train MAE_Test RMSE_Test
## 1            10   250 Tidak (maxit tercapai)    0.12762   0.2209    0.4084
## 2            20   250 Tidak (maxit tercapai)    0.13096   0.1678    0.2641
## 3            30   250 Tidak (maxit tercapai)    0.11559   0.1818    0.2519
## 4            10   500 Tidak (maxit tercapai)    0.12175   0.3007    0.5512
## 5            20   500 Tidak (maxit tercapai)    0.09124   0.4997    0.9948
## 6            30   500 Tidak (maxit tercapai)    0.06574   0.4912    0.9619
##   R2_Test
## 1  0.7197
## 2  0.8828
## 3  0.8934
## 4  0.4894
## 5 -0.6630
## 6 -0.5547

Pada tahap selanjutnya, dilakukan pemodelan Artificial Neural Network (ANN) regresi dengan menggunakan sample() sebagai variabel respons, sedangkan Sepal.Length, Sepal.Width, Petal.Length, dan Species digunakan sebagai variabel prediktor. Pemodelan dilakukan dengan enam kombinasi, yaitu jumlah hidden neuron sebanyak 10, 20, dan 30 serta jumlah iterasi maksimum (maxit) sebesar 250 dan 500. Selanjutnya, kinerja masing-masing model dievaluasi menggunakan RMSE pada data training, serta MAE, RMSE, dan \(R^2\) pada data testing.

Berdasarkan hasil pemodelan, seluruh kombinasi model menunjukkan status tidak konvergen karena proses pelatihan mencapai batas iterasi maksimum yang ditentukan. Hasil evaluasi menunjukkan bahwa model dengan 30 hidden neuron dan (maxit) 250 memberikan kinerja terbaik berdasarkan nilai RMSE testing terkecil sebesar 0,2519 dan \(R^2\) terbesar sebesar 0,8934. Artinya, model mampu menjelaskan sekitar 89,34% variasi nilai Petal.Width pada data testing. Sementara itu, nilai MAE testing terkecil diperoleh pada model dengan 20 hidden neuron dan (maxit) 250, yaitu sebesar 0,1678. Pada penggunaan (maxit) 500, nilai RMSE training cenderung menurun, tetapi nilai RMSE testing justru meningkat. Hal ini menunjukkan bahwa peningkatan jumlah iterasi tidak selalu menghasilkan prediksi yang lebih baik dan terdapat indikasi overfitting pada beberapa model.

4.4 Pemilihan model terbaik

# Model terbaik
idx <- which.min(hasil$RMSE_Test)
nn_best <- model_list[[idx]]
hasil[idx, ]
##   Hidden_Neuron Maxit              Konvergen RMSE_Train  MAE_Test RMSE_Test
## 3            30   250 Tidak (maxit tercapai)  0.1155882 0.1818446  0.251913
##     R2_Test
## 3 0.8933662

Pada tahap selanjutnya, dilakukan pemilihan model terbaik berdasarkan nilai RMSE terkecil pada data testing. Pemilihan dilakukan menggunakan fungsi which.min() untuk memperoleh model dengan tingkat kesalahan prediksi paling rendah. Berdasarkan hasil yang diperoleh, model terbaik adalah model dengan 30 hidden neuron dan (maxit) sebesar 250. Model tersebut memiliki nilai RMSE training sebesar 0,1156, MAE testing sebesar 0,1818, RMSE testing sebesar 0,2519, dan \(R^2\) sebesar 0,8934. Hasil ini menunjukkan bahwa model memiliki kemampuan prediksi yang cukup baik karena menghasilkan kesalahan prediksi yang relatif kecil dan mampu menjelaskan 89,34% variasi nilai Petal.Width. Meskipun demikian, model masih menunjukkan status tidak konvergen karena proses pelatihan mencapai batas iterasi maksimum yang ditentukan.

4.5 Perbandingan nilai aktual dan prediksi

# Aktual vs prediksi pada data testing
predict_regresi <- predict(nn_best, newdata = test, type = "raw")
error <- test$Petal.Width - predict_regresi
head(data.frame(Aktual = test$Petal.Width,
                Prediksi = round(as.numeric(predict_regresi), 3),
                Error = round(as.numeric(error), 3)), 10)
##    Aktual Prediksi  Error
## 1     0.2    0.237 -0.037
## 2     0.2    0.243 -0.043
## 3     0.2    0.204 -0.004
## 4     0.1    0.324 -0.224
## 5     0.4    0.296  0.104
## 6     0.3    0.231  0.069
## 7     0.2    0.252 -0.052
## 8     0.2    0.402 -0.202
## 9     0.1    0.278 -0.178
## 10    0.3    0.625 -0.325
plot(test$Petal.Width, predict_regresi,
     xlab = "Petal.Width aktual", ylab = "Petal.Width prediksi",
     main = "Aktual vs Prediksi (data testing)", pch = 19)
abline(0, 1, col = "red", lty = 2)

Pada tahap selanjutnya, dilakukan perbandingan antara nilai aktual dan nilai prediksi menggunakan model ANN terbaik pada data testing. Perbandingan ini bertujuan untuk mengetahui seberapa dekat hasil prediksi model dengan nilai aktual. Berdasarkan sepuluh observasi pertama, terlihat bahwa nilai prediksi cukup mendekati nilai aktual, meskipun masih terdapat beberapa selisih. Pada observasi pertama, nilai aktual sebesar 0,2 menghasilkan nilai prediksi sebesar 0,237 dengan error sebesar -0,037. Sementara itu, pada observasi keempat, nilai aktual sebesar 0,1 menghasilkan prediksi sebesar 0,324 dengan error sebesar -0,224. Nilai error positif menunjukkan bahwa prediksi lebih rendah daripada nilai aktual, sedangkan nilai error negatif menunjukkan bahwa prediksi lebih tinggi daripada nilai aktual. Dengan demikian, hasil prediksi model sudah cukup mendekati nilai aktual, meskipun pada beberapa observasi masih terdapat kesalahan prediksi yang cukup besar.

4.6 Arsitektur dan Interpretasi Jaringan ANN

# Plot arsitektur jaringan
plotnet(nn_best)

Pada tahap selanjutnya, dilakukan visualisasi arsitektur jaringan ANN menggunakan fungsi plotnet() untuk melihat struktur jaringan yang terbentuk. Berdasarkan gambar, diperoleh struktur jaringan 5-30-1, yaitu lima neuron pada lapisan input, 30 neuron pada hidden layer, dan satu neuron pada lapisan output. Lapisan input terdiri atas empat variabel numerik dan dua variabel dummy dari Species, sedangkan lapisan output terdiri atas Petal.Width sebagai variabel respons. Selain itu, terdapat dua neuron bias yang membantu model dalam menyesuaikan hasil prediksi.

Garis penghubung antarneuron menunjukkan bobot (weight) jaringan. Garis hitam menunjukkan bobot positif, sedangkan garis abu-abu menunjukkan bobot negatif. Ketebalan garis menggambarkan besarnya bobot, sehingga semakin tebal garis maka semakin besar nilai bobot tersebut. Visualisasi ini menunjukkan struktur dan hubungan antarneuron, tetapi belum menggambarkan ketepatan model. Oleh karena itu, kualitas model tetap perlu dilihat berdasarkan hasil evaluasi pada data testing. Penggunaan 30 neuron dengan jumlah data yang relatif terbatas juga berpotensi menyebabkan overfitting.

# Bobot jaringan
neuralweights(nn_best)
## $struct
## [1]  5 30  1
## 
## $wts
## $wts$`hidden 1 1`
## [1] -0.1786128 -0.2587088 -0.3828873  0.1366628 -3.9700213 -4.2570865
## 
## $wts$`hidden 1 2`
## [1]  0.3280516  0.5359028  0.8189374  0.2416695  1.3978345 -0.4129718
## 
## $wts$`hidden 1 3`
## [1]  0.68724729 -1.10000625 -1.56865987  1.27933084  0.08689473 -2.27637666
## 
## $wts$`hidden 1 4`
## [1]  5.320826  2.249436 -3.879214  0.131728 -2.374169 -6.990249
## 
## $wts$`hidden 1 5`
## [1] 12.999900 -2.711132 -1.080452  2.024516 -2.381983  2.170214
## 
## $wts$`hidden 1 6`
## [1]   6.916005  -8.386953 -12.154951  15.451479  10.632041  -2.007864
## 
## $wts$`hidden 1 7`
## [1] -1.6606806  0.4385162 -1.9880245 -0.4763811 -2.2298210  0.4903220
## 
## $wts$`hidden 1 8`
## [1] -1.417630105  1.514560911  0.828909627  2.117979293 -1.632326798
## [6]  0.002771052
## 
## $wts$`hidden 1 9`
## [1] -2.271657 -1.771242 -1.925230  3.691431 -6.211007 -1.870504
## 
## $wts$`hidden 1 10`
## [1]  -9.782284   3.800647  -7.572019   3.139038  -4.529014 -12.176449
## 
## $wts$`hidden 1 11`
## [1]  0.51467884  0.47045307  0.16381360  0.93806513 -0.33248423  0.02645952
## 
## $wts$`hidden 1 12`
## [1]  3.1878079 -0.9927887  0.2754876 -1.0305506  2.5734909 -0.4470469
## 
## $wts$`hidden 1 13`
## [1] -7.0443791  1.2923065  1.7236547 -3.7983486 -2.0754559 -0.2471452
## 
## $wts$`hidden 1 14`
## [1]  1.77263119 -1.47520755 -1.52133518  0.74703572 -0.06744959  3.94771046
## 
## $wts$`hidden 1 15`
## [1] -0.64474571 -0.60527363 -0.03557766  0.01401888 -0.72241621  0.28753321
## 
## $wts$`hidden 1 16`
## [1] -1.1224121 -0.7529779  3.7215351  0.4778265  0.4482092 -0.7232360
## 
## $wts$`hidden 1 17`
## [1] -6.35385982  1.18566943  0.02661173  0.05740986 -0.13003213 -2.43120579
## 
## $wts$`hidden 1 18`
## [1]  1.523314 -1.750384  3.135864  4.059823 -2.347567  1.893789
## 
## $wts$`hidden 1 19`
## [1]  0.09216925  3.20895694  1.41133953  2.22718673 -0.42300393 -0.01936184
## 
## $wts$`hidden 1 20`
## [1] -0.88315570 -2.87351895 -1.30310482 -1.60602302  0.90192442  0.06707104
## 
## $wts$`hidden 1 21`
## [1] -1.7862249  0.6301109  0.5504862  1.1545113 -0.9471433 -0.3329527
## 
## $wts$`hidden 1 22`
## [1]  1.382221057  1.682817328 -0.555529619  0.004671466  0.774789733
## [6] -0.106312134
## 
## $wts$`hidden 1 23`
## [1] -0.3804383 -4.6232562  6.5998403 -2.9902452  2.9889620 -2.4843394
## 
## $wts$`hidden 1 24`
## [1] -2.4739164 -1.6458988  0.7462424  5.6852606  2.6506685 -2.2021608
## 
## $wts$`hidden 1 25`
## [1] -0.2361252 -0.6174705 -0.2045790 -0.1057401  0.1520090 -0.7395101
## 
## $wts$`hidden 1 26`
## [1]   3.3177054 -11.0512640  11.8531641   8.4199431  -0.5113468   9.3629521
## 
## $wts$`hidden 1 27`
## [1] 1.6652218 3.4161241 0.2345085 1.0451532 2.0680522 0.6073725
## 
## $wts$`hidden 1 28`
## [1] -3.4353332  3.4243095 -3.8754275 -2.0114677 -0.8014202  0.1395674
## 
## $wts$`hidden 1 29`
## [1]  0.5167701 -1.1474844 -2.1870697  1.5588682  3.8857900  7.8723220
## 
## $wts$`hidden 1 30`
## [1] -0.3169308 -3.4474089 -2.8350747 -1.1199210  0.4209773  0.4914055
## 
## $wts$`out 1`
##  [1]  1.75333740  0.75328540  0.77531817 -0.20300920 -1.80755666 -1.17356272
##  [7]  0.63672212 -6.65809786 -2.47744047 -1.05195837 -1.24558140 -0.72820420
## [13]  4.68787416 -2.91591978  2.58650712  0.41978261 -1.97704898  4.01810603
## [19] -1.32550805  2.33561669  0.05078949 -2.47525597  1.62423733 -0.74707847
## [25] -1.71683559  1.04514615  0.86475608  4.09502831  1.00379462  2.93999642
## [31]  1.15198233

Pada tahap selanjutnya, dilakukan pemeriksaan bobot jaringan (neural weights) menggunakan fungsi neuralweights() untuk mengetahui nilai bobot yang terbentuk pada setiap hubungan antarneuron. Berdasarkan hasil yang diperoleh, model terbaik memiliki struktur jaringan 5-30-1, dengan 5 neuron input, 30 neuron pada lapisan tersembunyi, dan 1 neuron output. Bobot jaringan terdiri atas bobot yang menghubungkan lapisan input ke lapisan tersembunyi serta bobot yang menghubungkan lapisan tersembunyi ke lapisan output. Nilai bobot positif menunjukkan hubungan yang memperkuat sinyal, sedangkan nilai bobot negatif menunjukkan hubungan yang menekan sinyal. Besarnya nilai bobot menunjukkan kekuatan hubungan antarneuron dalam proses pembentukan prediksi. Dengan demikian, bobot-bobot tersebut digunakan oleh jaringan ANN untuk mengolah informasi dari variabel prediktor hingga menghasilkan prediksi Petal.Width.

# Tingkat kepentingan variabel
olden(nn_best)

Pada tahap selanjutnya, dilakukan analisis tingkat kepentingan variabel menggunakan metode Olden untuk mengetahui kontribusi masing-masing variabel prediktor dalam memprediksi Petal.Width. Berdasarkan hasil analisis, variabel Speciesversicolor dan Speciesvirginica memiliki tingkat kepentingan paling tinggi dengan nilai masing-masing sekitar 77 dan 57 serta arah positif. Hal ini menunjukkan bahwa jenis spesies memiliki kontribusi besar dalam memprediksi lebar petal dibandingkan variabel lainnya. Sementara itu, Petal.Length memiliki pengaruh positif yang relatif kecil, sedangkan Sepal.Length dan Sepal.Width memiliki pengaruh negatif dengan kontribusi yang sangat kecil. Dengan demikian, jenis spesies menjadi variabel yang paling berperan dalam model untuk memprediksi Petal.Width. Perlu diperhatikan bahwa nilai importance menunjukkan kontribusi relatif variabel dalam jaringan ANN, bukan besarnya pengaruh seperti pada koefisien regresi.

BAB V KESIMPULAN

5.1 Kesimpulan

Kesimpulan

Artificial Neural Network (ANN) merupakan metode pembelajaran mesin yang meniru cara kerja jaringan saraf manusia dengan memanfaatkan neuron-neuron yang saling terhubung untuk mempelajari pola data. ANN dapat diterapkan pada regresi untuk memprediksi nilai numerik dan klasifikasi untuk menentukan kategori suatu objek. Implementasi ANN dalam bahasa R dapat dilakukan menggunakan paket seperti nnet dengan menentukan variabel input, variabel output, jumlah hidden neuron, serta parameter pelatihan yang sesuai.

Evaluasi performa model ANN dilakukan untuk mengetahui kemampuan model dalam menghasilkan prediksi. Pada regresi, metrik MSE digunakan untuk mengukur rata-rata kuadrat kesalahan prediksi, sedangkan MAPE mengukur rata-rata persentase kesalahan prediksi. Sementara itu, pada klasifikasi, akurasi digunakan untuk mengukur proporsi prediksi yang benar dari seluruh pengamatan, sedangkan presisi mengukur ketepatan model dalam memprediksi suatu kelas positif.

Berdasarkan penerapan ANN regresi pada dataset Iris, dilakukan pengujian terhadap enam kombinasi jumlah hidden neuron dan maxit. Hasil evaluasi menunjukkan bahwa model dengan 30 hidden neuron dan maxit 250 memberikan hasil terbaik berdasarkan RMSE testing sebesar 0,2519 dan \(R^2\) sebesar 0,8934. Model tersebut mampu menjelaskan 89,34% variasi nilai Petal.Width, meskipun proses pelatihannya belum mencapai konvergensi.

DAFTAR PUSTAKA

Fransiska, H. (2026). Modul Praktikum Machine Learning dan Modern Prediction. Bengkulu: Universitas Bengkulu.

Dafid, A., Sudianto, A. I., & Widyaningrum, V. T. (2026). Sains Data untuk Teknik Mekatronika. Malang: Media Nusa Creative.

Juansa, A., Susanto, Rianty, E., Apandi, T. H., Parassa, Y., & Pribadi, O. (2024). Machine Learning untuk Pemula. Yogyakarta: PT. Star Digital Publishing.

Setiawan, W. (2020). Topik Khusus Kecerdasan Komputasional: Deep Learning untuk Image dan Speech Recognition. Malang: Media Nusa Creative.