Artificial Neural Network (ANN) merupakan salah satu metode machine learning yang terinspirasi dari mekanisme kerja jaringan saraf manusia untuk mempelajari pola dan hubungan antarvariabel dalam data. ANN terdiri atas beberapa lapisan, yaitu lapisan masukan (input layer), lapisan tersembunyi (hidden layer), dan lapisan keluaran (output layer). Setiap neuron menerima masukan yang diproses menggunakan bobot (weight), bias, dan fungsi aktivasi untuk menghasilkan keluaran. Salah satu algoritma pembelajaran ANN adalah backpropagation yang digunakan untuk menyesuaikan bobot jaringan berdasarkan kesalahan prediksi melalui tahapan forward propagation, backward propagation, dan pembaruan bobot (Ikhsan dkk., 2022).
ANN dapat diterapkan untuk menyelesaikan permasalahan regresi maupun klasifikasi berdasarkan karakteristik variabel respons. ANN regresi digunakan untuk memprediksi nilai numerik kontinu, sedangkan ANN klasifikasi digunakan untuk mengelompokkan data ke dalam kategori tertentu. Proses pembelajaran kedua jenis ANN tersebut memerlukan pengaturan arsitektur jaringan, jumlah neuron pada hidden layer, fungsi aktivasi, serta parameter pembelajaran untuk memperoleh model yang sesuai. Penerapan ANN dengan algoritma backpropagation untuk memprediksi Indeks Pembangunan Manusia menunjukkan penggunaan metode ini dalam pemodelan hubungan antara variabel prediktor dan variabel respons (Supriana dkk., 2025).
Penerapan ANN untuk regresi dan klasifikasi memerlukan evaluasi untuk mengetahui kemampuan model dalam menghasilkan prediksi yang sesuai dengan nilai aktual. Evaluasi ANN regresi dapat menggunakan Mean Squared Error (MSE) dan Mean Absolute Percentage Error (MAPE) untuk mengukur tingkat kesalahan prediksi. Evaluasi ANN klasifikasi dapat menggunakan accuracy dan precision berdasarkan perbandingan antara kelas aktual dan kelas hasil prediksi melalui confusion matrix. Penerapan ANN dengan algoritma backpropagation untuk klasifikasi penilaian penjualan produk Blackmores di Tokopedia menunjukkan pemanfaatan jaringan saraf tiruan dalam menyelesaikan permasalahan klasifikasi (Aini dkk., 2023).
Artificial Neural Network (ANN) atau jaringan saraf tiruan merupakan metode komputasi yang terinspirasi dari cara kerja jaringan saraf manusia dalam mengolah informasi. Metode ini terdiri atas sejumlah neuron yang saling terhubung melalui bobot (weight) dan dilengkapi dengan bias. Setiap neuron menerima masukan, melakukan perhitungan, kemudian menghasilkan keluaran berdasarkan fungsi aktivasi yang digunakan. Kemampuan ANN dalam mempelajari pola hubungan antarvariabel menjadikannya dapat diterapkan pada berbagai permasalahan prediksi dan klasifikasi (Fransiska, 2026).
Struktur ANN umumnya terdiri atas tiga bagian, yaitu input layer, hidden layer, dan output layer. Input layer menerima variabel masukan, hidden layer memproses informasi melalui kombinasi bobot dan fungsi aktivasi, sedangkan output layer menghasilkan keluaran model. Jumlah lapisan tersembunyi dan neuron yang digunakan dapat disesuaikan dengan kompleksitas permasalahan yang dianalisis. Hubungan antara masukan dan keluaran neuron secara umum dapat dituliskan sebagai berikut (Ikhsan dkk., 2022).
\[ y = f\left(\sum_{i=1}^{p} w_i x_i + b\right) \]
Keterangan:
Proses pembelajaran ANN dilakukan melalui algoritma backpropagation yang bertujuan memperoleh bobot dan bias terbaik agar selisih antara hasil prediksi dan nilai aktual semakin kecil. Proses tersebut terdiri atas forward propagation, yaitu tahap menghitung keluaran jaringan, dan backward propagation, yaitu tahap menghitung kesalahan serta memperbarui bobot berdasarkan gradien kesalahan. Pembaruan parameter dilakukan secara berulang hingga mencapai jumlah iterasi yang ditentukan atau kriteria penghentian tertentu. Fungsi aktivasi seperti sigmoid, tanh, dan ReLU digunakan untuk membantu jaringan mempelajari hubungan yang bersifat nonlinier (Fransiska, 2026).
Regresi merupakan metode yang digunakan untuk memodelkan hubungan antara variabel prediktor dan variabel respons yang memiliki nilai numerik. ANN untuk regresi bekerja dengan mempelajari pola hubungan antarvariabel sehingga dapat menghasilkan prediksi berupa nilai kontinu (Az Zahra dkk, 2024). Evaluasi ANN untuk regresi dapat dilakukan menggunakan dua metrik berikut:
Klasifikasi merupakan metode yang digunakan untuk mengelompokkan data ke dalam kelas atau kategori tertentu berdasarkan karakteristik yang dimiliki. ANN untuk klasifikasi bekerja dengan mempelajari pola dari data pelatihan, kemudian menggunakan pola tersebut untuk menentukan kelas pada data pengujian (Musdar dkk, 2024). Evaluasi ANN untuk klasifikasi dapat dilakukan menggunakan dua metrik berikut:
Data yang digunakan dalam penelitian ini merupakan data sekunder yang
diperoleh dari dataset iris yang tersedia secara bawaan pada
perangkat lunak R. Dataset tersebut terdiri atas 150 observasi
dengan empat variabel prediktor dan satu variabel respons. Variabel
respons berupa jenis bunga Iris yang terbagi menjadi tiga kategori,
yaitu Setosa, Versicolor, dan
Virginica, dengan masing-masing kategori terdiri atas 50
observasi.
Variabel yang digunakan dalam penelitian ini terdiri atas empat
variabel prediktor dan satu variabel respons. Variabel prediktor
meliputi Sepal.Length yang menunjukkan panjang kelopak
bunga, Sepal.Width yang menunjukkan lebar kelopak bunga,
Petal.Length yang menunjukkan panjang mahkota bunga, dan
Petal.Width yang menunjukkan lebar mahkota bunga.
Sedangkan, variabel respons yang digunakan adalah Species,
yaitu jenis bunga Iris yang terdiri atas tiga kategori, yaitu
Setosa, Versicolor, dan
Virginica. Keempat variabel prediktor digunakan sebagai
masukan dalam pembentukan model Artificial Neural Network
(ANN), sedangkan variabel respons digunakan sebagai target dalam proses
klasifikasi.
Langkah-langkah analisis klasifikasi menggunakan metode Artificial Neural Network (ANN) pada dataset Iris adalah sebagai berikut:
Pada batasan masalah, diminta untuk melakukan analisis klasifikasi menggunakan metode Artificial Neural Network (ANN) pada dataset Iris dengan variasi jumlah hidden neuron sebesar 10, 20, dan 30, serta dua proporsi pembagian data, yaitu 80% data training dan 20% data testing, serta 60% data training dan 40% data testing. Selanjutnya, dilakukan evaluasi kinerja model menggunakan confusion matrix dan accuracy untuk mengetahui kemampuan ANN dalam mengklasifikasikan jenis bunga Iris.
Tahap persiapan data dilakukan dengan memanggil library
nnet dan NeuralNetTools, kemudian input
dataset iris. Selanjutnya, dilakukan pemeriksaan struktur data dan
distribusi variabel respons untuk mengetahui jumlah pengamatan pada
setiap kategori.
Sintaks yang digunakan adalah sebagai berikut:
## [1] 150
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
##
## setosa versicolor virginica
## 50 50 50
##
## setosa versicolor virginica
## 33.33333 33.33333 33.33333
Hasil distribusi variabel respons adalah sebagai berikut:
Tabel 4.1 Distribusi Variabel Respons
| Kategori Species | Frekuensi | Persentase |
|---|---|---|
| Setosa | 50 | 33,33% |
| Versicolor | 50 | 33,33% |
| Virginica | 50 | 33,33% |
| Total | 150 | 100% |
Berdasarkan Tabel 4.1, masing-masing jenis bunga Iris memiliki jumlah pengamatan yang sama, yaitu sebanyak 50 data atau sebesar 33,33% dari keseluruhan dataset. Hal ini menunjukkan bahwa distribusi variabel respons bersifat seimbang karena setiap kategori memiliki proporsi yang sama.
Pembagian data dilakukan untuk memisahkan pengamatan yang digunakan dalam proses pelatihan dan pengujian model. Analisis ini menggunakan dua proporsi pembagian data, yaitu 80% untuk training dan 20% untuk testing, serta 60% untuk training dan 40% untuk testing. Proses pengambilan sampel dilakukan secara acak menggunakan set.seed(917).
Sintaks yang digunakan adalah sebagai berikut:
# Pembagian Data Training dan Testing
prop_train <- c(0.8, 0.6)
for (p in prop_train) {
set.seed(917)
index <- sample(1:nrow(iris),
round(p*nrow(iris)))
train <- iris[index,]
test <- iris[-index,]
cat("Proporsi Training:", p*100, "%\n")
cat("Jumlah Data Training:", nrow(train), "\n")
cat("Jumlah Data Testing:", nrow(test), "\n")
}## Proporsi Training: 80 %
## Jumlah Data Training: 120
## Jumlah Data Testing: 30
## Proporsi Training: 60 %
## Jumlah Data Training: 90
## Jumlah Data Testing: 60
Diperoleh hasil pembagian data sebagai berikut:
Tabel 4.2 Pembagian Data Training dan Testing
| Proporsi Training:Testing | Data Training | Data Testing | Total |
|---|---|---|---|
| 80%:20% | 120 | 30 | 150 |
| 60%:40% | 90 | 60 | 150 |
Berdasarkan Tabel 4.2, pembagian data 80%:20% menghasilkan 120 pengamatan untuk pelatihan dan 30 pengamatan untuk pengujian. Sementara itu, pembagian data 60%:40% menghasilkan 90 pengamatan untuk pelatihan dan 60 pengamatan untuk pengujian.
Pembentukan model ANN dilakukan menggunakan package
nnet dengan pendekatan klasifikasi multikelas. Variabel
Species digunakan sebagai respons, sedangkan 4
karakteristik bunga Iris digunakan sebagai variabel prediktor.
Penelitian ini menggunakan 3 variasi jumlah neuron pada lapisan tersembunyi, yaitu 10, 20, dan 30 neuron. Kombinasi ketiga variasi tersebut dengan dua proporsi pembagian data menghasilkan 6 model ANN yang akan dibandingkan. Setiap model dilatih dengan jumlah iterasi maksimum sebanyak 500.
# Pembentukan Model ANN
hidden <- c(10, 20, 30)
prop_train <- c(0.8, 0.6)
model_simpan <- list()
for (p in prop_train) {
set.seed(917)
index <- sample(1:nrow(iris),
round(p*nrow(iris)))
train <- iris[index,]
test <- iris[-index,]
# Membentuk formula ANN
i <- names(train)
form <- as.formula(paste(
"Species ~",
paste(i[!i %in% "Species"],
collapse = " + ")
))
for (h in hidden) {
set.seed(917)
nn <- nnet.formula(
form,
size = h,
data = train,
maxit = 500,
MaxNWts = 10000,
trace = FALSE
)
nama <- paste0("p", p*100, "_h", h)
model_simpan[[nama]] <- nn
}
}
# Menampilkan struktur jaringan
sapply(model_simpan, function(x) {
paste(neuralweights(x)$struct, collapse = "-")
})## p80_h10 p80_h20 p80_h30 p60_h10 p60_h20 p60_h30
## "4-10-3" "4-20-3" "4-30-3" "4-10-3" "4-20-3" "4-30-3"
Sintaks tersebut digunakan untuk membentuk 6 model ANN berdasarkan kombinasi proporsi data dan jumlah hidden neuron. Argumen size digunakan untuk menentukan jumlah neuron pada lapisan tersembunyi, sedangkan maxit = 500 menunjukkan batas maksimum iterasi selama pelatihan. Setiap model disimpan menggunakan nama yang menunjukkan proporsi data dan jumlah neuron.
Tabel 4.3 Model Artificial Neural Network
| Model | Training:Testing | Input Neuron | Hidden Neuron | Output Neuron | Arsitektur |
|---|---|---|---|---|---|
| 1 | 80%:20% | 4 | 10 | 3 | ANN (4–10–3) |
| 2 | 80%:20% | 4 | 20 | 3 | ANN (4–20–3) |
| 3 | 80%:20% | 4 | 30 | 3 | ANN (4–30–3) |
| 4 | 60%:40% | 4 | 10 | 3 | ANN (4–10–3) |
| 5 | 60%:40% | 4 | 20 | 3 | ANN (4–20–3) |
| 6 | 60%:40% | 4 | 30 | 3 | ANN (4–30–3) |
Berdasarkan Tabel 4.3, 6 model menggunakan 4 input neuron dan 3 output neuron. Perbedaan konfigurasi terletak pada jumlah neuron tersembunyi dan proporsi pembagian data. Variasi tersebut digunakan untuk mengetahui perubahan kinerja klasifikasi berdasarkan struktur jaringan dan jumlah data yang digunakan selama proses pelatihan.
Evaluasi model ANN dilakukan dengan membandingkan hasil prediksi terhadap kelas aktual pada data testing. Perbandingan tersebut disajikan dalam bentuk confusion matrix untuk mengetahui jumlah pengamatan yang berhasil dan gagal diklasifikasikan. Metrik evaluasi yang digunakan adalah accuracy, yaitu perbandingan antara jumlah prediksi yang benar dan seluruh data pengujian.
Sintaks yang digunakan adalah sebagai berikut:
set.seed(917)
index80 <- sample(1:nrow(iris), round(0.8*nrow(iris)))
test80 <- iris[-index80,]
# Confusion Matrix Hidden Neuron = 10
pred_80_10 <- predict(model_simpan[["p80_h10"]],newdata=test80, type="class")
tabel_80_10 <- table(Aktual=test80$Species,Prediksi=factor(pred_80_10,levels=levels(iris$Species)))
tabel_80_10## Prediksi
## Aktual setosa versicolor virginica
## setosa 8 0 0
## versicolor 0 10 0
## virginica 0 1 11
# Confusion Matrix Hidden Neuron = 20
pred_80_20 <- predict(model_simpan[["p80_h20"]],newdata=test80, type="class")
tabel_80_20 <- table(Aktual=test80$Species,Prediksi=factor(pred_80_20, levels=levels(iris$Species)))
tabel_80_20## Prediksi
## Aktual setosa versicolor virginica
## setosa 8 0 0
## versicolor 0 10 0
## virginica 0 3 9
# Confusion Matrix Hidden Neuron = 30
pred_80_30 <- predict(model_simpan[["p80_h30"]],newdata=test80, type="class")
tabel_80_30 <- table(Aktual=test80$Species,Prediksi=factor(pred_80_30,levels=levels(iris$Species)))
tabel_80_30## Prediksi
## Aktual setosa versicolor virginica
## setosa 8 0 0
## versicolor 0 8 2
## virginica 0 1 11
Pada pembagian data 80%:20%, model ANN dilatih menggunakan 120 data dan diuji menggunakan 30 data. Hasil confusion matrix dari ketiga variasi hidden neuron dilihat sebagai berikut.
Tabel 4.4 Confusion Matrix Model ANN (80%:20%)
Hidden Neuron = 10
| Aktual / Prediksi | Setosa | Versicolor | Virginica |
|---|---|---|---|
| Setosa | 8 | 0 | 0 |
| Versicolor | 0 | 10 | 0 |
| Virginica | 0 | 1 | 11 |
Hidden Neuron = 20
| Aktual / Prediksi | Setosa | Versicolor | Virginica |
|---|---|---|---|
| Setosa | 8 | 0 | 0 |
| Versicolor | 0 | 13 | 0 |
| Virginica | 0 | 3 | 9 |
Hidden Neuron = 30
| Aktual / Prediksi | Setosa | Versicolor | Virginica |
|---|---|---|---|
| Setosa | 8 | 0 | 0 |
| Versicolor | 0 | 8 | 2 |
| Virginica | 0 | 1 | 11 |
Berdasarkan tabel diatas, model ANN dengan 10 hidden neuron
berhasil mengklasifikasikan 29 data dengan benar dan menghasilkan 1
kesalahan klasifikasi, yaitu satu data Virginica diprediksi
sebagai Versicolor. Pada model dengan 20 hidden
neuron, terdapat 30 data yang berhasil diklasifikasikan dengan
benar dan 3 kesalahan klasifikasi, yaitu 3 data Virginica
diprediksi sebagai Versicolor. Sementara itu, model dengan
30 hidden neuron menghasilkan 27 klasifikasi benar dan 3
kesalahan klasifikasi, yaitu 2 data Versicolor diprediksi
sebagai Virginica dan 1 data Virginica
diprediksi sebagai Versicolor. Seluruh data
Setosa berhasil diklasifikasikan dengan benar oleh ketiga
model. Hasil tersebut menunjukkan bahwa kesalahan klasifikasi terutama
terjadi antara kelas Versicolor dan
Virginica.
Sintaks yang digunakan adalah sebagai berikut:
set.seed(917)
index60 <- sample(1:nrow(iris), round(0.6*nrow(iris)))
test60 <- iris[-index60,]
# Confusion Matrix Hidden Neuron = 10
pred_60_10 <- predict(model_simpan[["p60_h10"]],newdata=test60, type="class")
tabel_60_10 <- table(Aktual=test60$Species,Prediksi=factor(pred_60_10,levels=levels(iris$Species)))
tabel_60_10## Prediksi
## Aktual setosa versicolor virginica
## setosa 17 0 0
## versicolor 0 23 1
## virginica 0 2 17
# Confusion Matrix Hidden Neuron = 20
pred_60_20 <- predict(model_simpan[["p60_h20"]],newdata=test60, type="class")
tabel_60_20 <- table(Aktual=test60$Species,Prediksi=factor(pred_60_20,levels=levels(iris$Species)))
tabel_60_20## Prediksi
## Aktual setosa versicolor virginica
## setosa 17 0 0
## versicolor 0 23 1
## virginica 0 2 17
# Confusion Matrix Hidden Neuron = 30
pred_60_30 <- predict(model_simpan[["p60_h30"]],newdata=test60, type="class")
tabel_60_30 <- table(Aktual=test60$Species,Prediksi=factor(pred_60_30,levels=levels(iris$Species)))
tabel_60_30## Prediksi
## Aktual setosa versicolor virginica
## setosa 17 0 0
## versicolor 0 24 0
## virginica 0 3 16
Pada pembagian data 60%:40%, model ANN dilatih menggunakan 90 data dan diuji menggunakan 60 data. Hasil confusion matrix dari ketiga variasi hidden neuron dilihat sebagai berikut.
Tabel 4.5 Confusion Matrix Model ANN (60%:40%)
Hidden Neuron = 10
| Aktual / Prediksi | Setosa | Versicolor | Virginica |
|---|---|---|---|
| Setosa | 22 | 0 | 0 |
| Versicolor | 0 | 17 | 0 |
| Virginica | 0 | 1 | 20 |
Hidden Neuron = 20
| Aktual / Prediksi | Setosa | Versicolor | Virginica |
|---|---|---|---|
| Setosa | 22 | 0 | 0 |
| Versicolor | 0 | 17 | 0 |
| Virginica | 0 | 1 | 20 |
Hidden Neuron = 30
| Aktual / Prediksi | Setosa | Versicolor | Virginica |
|---|---|---|---|
| Setosa | 22 | 0 | 0 |
| Versicolor | 0 | 17 | 0 |
| Virginica | 0 | 1 | 20 |
Berdasarkan hasil tabel diatas, model dengan 10 hidden
neuron menghasilkan 56 klasifikasi benar dan 4 kesalahan
klasifikasi. Pada model dengan 20 hidden neuron, jumlah
klasifikasi benar meningkat menjadi 58 data dengan 2 kesalahan,
sedangkan model dengan 30 hidden neuron menghasilkan 57
klasifikasi benar dan 3 kesalahan. Seluruh pengamatan
Setosa berhasil diklasifikasikan dengan benar oleh model 20
dan 30 neuron. Hasil tersebut menunjukkan bahwa model dengan 20
hidden neuron menghasilkan jumlah kesalahan paling sedikit pada
pembagian data 60%:40%.
Berdasarkan hasil tabel di atas, ketiga model ANN dengan 10, 20, dan
30 hidden neuron menghasilkan jumlah klasifikasi benar yang
sama, yaitu sebanyak 59 data dengan 1 kesalahan klasifikasi dari total
60 data testing. Seluruh 22 data Setosa dan 17
data Versicolor berhasil diklasifikasikan dengan benar pada
ketiga model. Sementara itu, dari 21 data Virginica,
sebanyak 20 data berhasil diklasifikasikan dengan benar dan 1 data salah
diklasifikasikan sebagai Versicolor. Ketiga model
menghasilkan tingkat akurasi yang sama, yaitu sebesar 98,33%. Hasil
tersebut menunjukkan bahwa penambahan jumlah hidden neuron dari
10 menjadi 20 dan 30 tidak memberikan peningkatan akurasi klasifikasi
pada pembagian data 60%:40%.
Perbandingan hasil evaluasi model dilakukan untuk menentukan konfigurasi ANN yang menghasilkan kinerja klasifikasi terbaik berdasarkan nilai akurasi yang diperoleh.
Sintaks yang digunakan adalah sebagai berikut:
# Evaluasi keenam model ANN
hasil <- data.frame()
for (p in c(0.8, 0.6)) {
set.seed(917)
index <- sample(1:nrow(iris),
round(p*nrow(iris)))
test <- iris[-index,]
for (h in c(10, 20, 30)) {
nama <- paste0("p", p*100, "_h", h)
nn <- model_simpan[[nama]]
# Hasil prediksi
pred <- predict(nn, newdata=test, type="class")
# Confusion matrix
tab <- table(
Aktual = test$Species,
Prediksi = factor(
pred, levels=levels(iris$Species)
)
)
# Accuracy
akurasi <- sum(diag(tab))/sum(tab)
# Menyimpan hasil
hasil <- rbind(hasil, data.frame(
Training = paste0(p*100, "%"),
Testing = paste0((1-p)*100, "%"),
Hidden_Neuron = h,
Akurasi = round(akurasi*100, 2)
))
}
}
print(hasil)## Training Testing Hidden_Neuron Akurasi
## 1 80% 20% 10 96.67
## 2 80% 20% 20 90.00
## 3 80% 20% 30 90.00
## 4 60% 40% 10 95.00
## 5 60% 40% 20 95.00
## 6 60% 40% 30 95.00
Hasil yang diperoleh dapat dilihat pada Tabel 4.6, sebagai berikut:
Tabel 4.6 Perbandingan Akurasi Model ANN Klasifikasi
| Training | Testing | Hidden Neuron | Prediksi Benar | Akurasi |
|---|---|---|---|---|
| 80% | 20% | 10 | 29 dari 30 | 96,67% |
| 80% | 20% | 20 | 27 dari 30 | 90,00% |
| 80% | 20% | 30 | 27 dari 30 | 90,00% |
| 60% | 40% | 10 | 57 dari 60 | 95,00% |
| 60% | 40% | 20 | 57 dari 60 | 95,00% |
| 60% | 40% | 30 | 57 dari 60 | 95,00% |
Berdasarkan Tabel 4.6, model ANN dengan pembagian data 80% training dan 20% testing menghasilkan akurasi tertinggi sebesar 96,67% pada 10 hidden neuron, dengan 29 dari 30 data pengujian berhasil diklasifikasikan dengan benar. Sementara itu, model dengan 20 dan 30 hidden neuron menghasilkan akurasi sebesar 90,00%, dengan masing-masing 27 klasifikasi benar. Pada pembagian data 60% training dan 40% testing, ketiga model menghasilkan akurasi yang sama, yaitu 95,00%, dengan 57 dari 60 data berhasil diklasifikasikan dengan benar. Hasil tersebut menunjukkan bahwa model dengan 10 hidden neuron pada pembagian data 80%:20% memiliki kinerja terbaik berdasarkan nilai akurasi tertinggi. Selain itu, penambahan jumlah hidden neuron tidak selalu meningkatkan akurasi klasifikasi.
Eksplorasi struktur jaringan ANN dilakukan untuk mengetahui susunan neuron dan bobot yang terbentuk selama proses pelatihan. Model yang digunakan dalam eksplorasi ini adalah model dengan 10 hidden neuron pada proporsi pembagian data 80%:20%, karena konfigurasi tersebut menghasilkan akurasi sebesar 96,67% dan menunjukkan kinerja yang konsisten pada kedua skenario pembagian data.
Visualisasi struktur jaringan dilakukan menggunakan fungsi
plotnet() dari package
NeuralNetTools. Fungsi tersebut digunakan untuk menampilkan
hubungan antara neuron pada input layer, hidden
layer, dan output layer.
Sintaks yang digunakan adalah sebagai berikut:
# Memilih model dengan 10 hidden neuron
nn_terpilih <- model_simpan[["p80_h10"]]
# Menampilkan plot Neural Network
plotnet(nn_terpilih)Berdasarkan gambar di atas, arsitektur Artificial Neural
Network (ANN) terdiri atas tiga lapisan utama, yaitu input
layer, hidden layer, dan output layer. Lapisan
input memiliki 4 neuron yang mewakili variabel
Sepal.Length, Sepal.Width,
Petal.Length, dan Petal.Width. Selanjutnya,
lapisan tersembunyi terdiri atas 10 hidden neuron yang
berfungsi mengolah informasi dari variabel input melalui bobot
dan fungsi aktivasi. Lapisan output memiliki 3 neuron
yang mewakili kategori Setosa, Versicolor, dan
Virginica. Garis-garis penghubung antarneuron menunjukkan
bobot hubungan, dengan ketebalan garis menggambarkan besarnya nilai
absolut bobot, sedangkan perbedaan warna menunjukkan arah bobot positif
atau negatif. Selain itu, B1 dan B2 merupakan bias pada lapisan
tersembunyi dan lapisan output. Secara keseluruhan, visualisasi ini
menunjukkan bahwa model ANN menggunakan arsitektur 4–10–3 untuk
melakukan klasifikasi spesies bunga Iris berdasarkan empat karakteristik
pengukuran bunga.
Nilai bobot jaringan dapat ditampilkan menggunakan fungsi
neuralweights(). Fungsi tersebut memberikan informasi
mengenai struktur jaringan serta bobot dan bias yang dihasilkan selama
pelatihan.
Sintaks yang digunakan adalah sebagai berikut:
## $struct
## [1] 4 10 3
##
## $wts
## $wts$`hidden 1 1`
## [1] 7.169818 41.224811 16.356507 32.701727 9.981863
##
## $wts$`hidden 1 2`
## [1] -1.770717 -4.778936 -4.556577 3.306599 1.341234
##
## $wts$`hidden 1 3`
## [1] 69846.74 15337.22 17220.58 -33083.65 -31284.31
##
## $wts$`hidden 1 4`
## [1] -0.13719739 2.34225555 1.56985503 0.07872238 0.66923921
##
## $wts$`hidden 1 5`
## [1] 2.773370 3.647873 14.693767 -27.166511 -13.288376
##
## $wts$`hidden 1 6`
## [1] 147.0233 48.8413 -107.3870 107.5460 -407.6691
##
## $wts$`hidden 1 7`
## [1] 1.191369 4.814613 2.699559 2.419712 1.023875
##
## $wts$`hidden 1 8`
## [1] 52.754075 -22.849384 16.756984 4.176676 13.079041
##
## $wts$`hidden 1 9`
## [1] 1.449401 5.022240 1.787742 2.994866 1.667018
##
## $wts$`hidden 1 10`
## [1] 83.76293 1737.95463 933.94913 815.52393 1141.02420
##
## $wts$`out 1`
## [1] -113.391046 -113.969899 -8.680701 5769.988144 -112.983353 5818.116901
## [7] 0.521013 -109.598297 7.072335 -114.395085 -111.678096
##
## $wts$`out 2`
## [1] 43.808741 42.682528 3.932973 13417.863223 43.343680
## [6] -5804.517833 80.322517 41.261141 10.382521 45.728645
## [11] 32.667594
##
## $wts$`out 3`
## [1] 70.755302 72.488606 4.125059 -19188.604933 69.438861
## [6] -13.855415 -81.814286 67.155814 -17.490480 69.354725
## [11] 79.061373
## [1] 83
Tabel 4.7 Ringkasan Parameter Jaringan ANN
| Hubungan Antarlapisan | Jumlah Parameter |
|---|---|
| Input layer ke hidden layer | 50 |
| Hidden layer ke output layer | 33 |
| Total | 83 |
Berdasarkan Tabel 4.7, model ANN dengan arsitektur 4–10–3 memiliki
total 83 parameter yang terdiri atas bobot hubungan dan bias. Sebanyak
50 parameter terdapat pada hubungan input layer ke hidden layer,
sedangkan 33 parameter terdapat pada hubungan hidden layer ke
output layer. Hasil neuralweights() menunjukkan
bahwa bobot yang terbentuk memiliki nilai positif maupun negatif dengan
besaran yang bervariasi. Beberapa bobot memiliki nilai yang relatif
besar, terutama pada neuron tersembunyi ketiga dan
kesepuluh.
Analisis kepentingan variabel dilakukan menggunakan metode Olden
untuk mengetahui kontribusi relatif variabel prediktor terhadap setiap
keluaran jaringan ANN. Dalam klasifikasi data Iris, terdapat tiga kelas
output, yaitu Setosa, Versicolor, dan
Virginica. Oleh karena itu, analisis kepentingan variabel
dapat dilakukan terhadap masing-masing kelas secara terpisah.
Berdasarkan ketiga grafik metode Olden, terlihat bahwa setiap
variabel memiliki arah dan besaran kontribusi yang berbeda terhadap
hasil klasifikasi spesies bunga Iris. Pada kelas Setosa,
variabel Petal.Length dan Petal.Width
menunjukkan kontribusi negatif dengan magnitudo terbesar, sedangkan
Sepal.Length dan Sepal.Width memberikan
kontribusi positif, dengan Sepal.Width memiliki kontribusi
positif yang lebih besar.
Pada kelas Versicolor, variabel
Petal.Length dan Petal.Width juga menunjukkan
kontribusi negatif, sementara Sepal.Length dan
Sepal.Width memberikan kontribusi positif. Variabel
Petal.Length memiliki magnitudo kontribusi negatif
terbesar, sedangkan Sepal.Width memiliki kontribusi positif
terbesar.
Sementara itu, pada kelas Virginica, variabel
Petal.Length dan Petal.Width menunjukkan
kontribusi positif, dengan Petal.Length sebagai variabel
yang memiliki kontribusi terbesar. Sebaliknya, Sepal.Length
dan Sepal.Width menunjukkan kontribusi negatif.
Secara keseluruhan, hasil analisis menunjukkan bahwa variabel petal dan sepal memiliki pola kontribusi yang berbeda pada setiap kelas. Namun, karena nilai kontribusi yang dihasilkan sangat besar, interpretasi metode Olden lebih difokuskan pada arah dan perbandingan relatif kontribusi variabel, bukan sebagai ukuran pengaruh langsung terhadap hasil klasifikasi.
Artificial Neural Network (ANN) merupakan metode pembelajaran mesin yang meniru cara kerja jaringan saraf dengan menghubungkan neuron melalui bobot dan bias untuk menghasilkan prediksi. Dalam klasifikasi, ANN digunakan untuk mengelompokkan suatu pengamatan ke dalam kelas tertentu berdasarkan pola hubungan antara variabel prediktor dan variabel respons. Proses pembentukan model melibatkan lapisan masukan (input layer), lapisan tersembunyi (hidden layer), dan lapisan keluaran (output layer) yang bekerja melalui proses forward propagation dan backpropagation untuk memperoleh bobot jaringan yang sesuai.
Evaluasi performa model ANN dilakukan untuk mengetahui kemampuan model dalam menghasilkan prediksi dan mengklasifikasikan data secara tepat. Pada regresi, evaluasi menggunakan Mean Squared Error (MSE) untuk mengukur rata-rata kuadrat selisih antara nilai aktual dan prediksi, serta Mean Absolute Percentage Error (MAPE) untuk mengukur rata-rata persentase kesalahan prediksi. Semakin kecil nilai MSE dan MAPE, semakin baik kemampuan model dalam melakukan prediksi. Sementara itu, pada klasifikasi, evaluasi dilakukan menggunakan akurasi (accuracy) untuk mengukur proporsi keseluruhan prediksi yang benar dan presisi (precision) untuk mengukur ketepatan model dalam memprediksi suatu kelas positif. Semakin tinggi nilai akurasi dan presisi, semakin baik performa model dalam melakukan klasifikasi.
Berdasarkan hasil analisis klasifikasi menggunakan metode
Artificial Neural Network (ANN) pada dataset Iris
dengan variasi jumlah hidden neuron sebanyak 10, 20, dan 30
serta proporsi pembagian data training dan testing
sebesar 80%:20% dan 60%:40%, diperoleh tingkat akurasi yang berkisar
antara 90,00% hingga 96,67%. Pada proporsi 80%:20%, model dengan 10
hidden neuron menghasilkan akurasi tertinggi sebesar 96,67%,
sedangkan model dengan 20 dan 30 hidden neuron masing-masing
memperoleh akurasi sebesar 90,00%. Sementara itu, pada proporsi 60%:40%,
ketiga model dengan 10, 20, dan 30 hidden neuron menghasilkan
akurasi yang sama, yaitu 95,00%. Hasil tersebut menunjukkan bahwa model
dengan 10 hidden neuron memberikan kinerja terbaik berdasarkan
nilai akurasi tertinggi yang diperoleh. Berdasarkan confusion
matrix, sebagian besar spesies bunga Iris berhasil diklasifikasikan
dengan benar, dengan kesalahan klasifikasi terutama terjadi antara kelas
Versicolor dan Virginica, sedangkan kelas
Setosa cenderung dapat diklasifikasikan dengan tepat.
Selain itu, hasil analisis kontribusi variabel menggunakan metode Olden
menunjukkan bahwa variabel petal dan sepal memiliki arah serta besaran
kontribusi yang berbeda pada setiap kelas keluaran. Secara keseluruhan,
metode ANN mampu menghasilkan klasifikasi yang baik pada
dataset Iris, serta menunjukkan bahwa penambahan jumlah
hidden neuron tidak selalu meningkatkan akurasi model.
Aini, D. H. N., Kurniasari, D., Nuryaman, A., & Usman, M. (2023). Implementation of artificial neural network with backpropagation algorithm for rating classification on sales of Blackmores in Tokopedia. Jurnal Teknik Informatika (JUTIF), 4(2), 365–372. https://doi.org/10.52436/1.jutif.2023.4.2.539
Az Zahra, F. S., Sumargo, B., Siregar, D., & Fathya, A. Y. (2024). The Application of the Artificial Neural Network (ANN) Method for Forecasting the Southern Oscillation Index (SOI). Jurnal Statistika dan Aplikasinya, 8(2), 179–192. https://doi.org/10.21009/JSA.08205
Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Laboratorium Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam 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. https://doi.org/10.30865/json.v4i2.5312
Musdar, D. M. J., Eriyani, N. S., Azis, S., Kaswar, A. B., & Sasmita, S. (2024). Implementasi Jaringan Saraf Tiruan Backpropagation untuk Klasifikasi Tingkat Kesegaran Wortel Berbasis Pengolahan Citra Digital Disertai Operasi Morfologi. JIPI (Jurnal Ilmiah Penelitian dan Pembelajaran Informatika), 9(3), 1518–1533. https://doi.org/10.29100/jipi.v9i3
Supriana, I. W., Prana, G. D. W., & Jayaditya, 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. https://doi.org/10.24843/JLK.2025.v13.i04.p14