BAB I PENDAHULUAN

1.1 Latar Belakang

   Perkembangan teknologi informasi dan ilmu komputasi telah mendorong penggunaan metode kecerdasan buatan (Artificial Intelligence) dalam pengolahan dan analisis data. Salah satu metode yang banyak digunakan adalah Artificial Neural Network (ANN) atau Jaringan Saraf Tiruan (JST), yaitu metode komputasi yang terinspirasi dari cara kerja jaringan saraf manusia dalam menerima, mengolah, dan mempelajari informasi. ANN memiliki kemampuan untuk mengenali pola serta mempelajari hubungan antarvariabel melalui proses pelatihan sehingga dapat digunakan untuk menyelesaikan berbagai permasalahan yang melibatkan data dalam jumlah besar maupun hubungan yang kompleks (Azmi, 2021).

   Dalam penerapannya, Artificial Neural Network dapat digunakan untuk menyelesaikan permasalahan regresi dan klasifikasi. Regresi digunakan untuk memperkirakan nilai suatu variabel yang bersifat numerik berdasarkan hubungan dengan variabel lainnya, sedangkan klasifikasi bertujuan mengelompokkan data ke dalam kategori atau kelas tertentu. Pada penelitian Abidin et al. (2024), ANN diterapkan untuk memprediksi jumlah pakan ayam petelur menggunakan pendekatan regresi. Sementara itu, Murtopo et al. (2023) menerapkan jaringan saraf tiruan untuk mengklasifikasikan sinyal Electroencephalogram (EEG). Kedua penerapan tersebut menunjukkan bahwa ANN dapat dimanfaatkan untuk berbagai kebutuhan analisis, baik dalam memperkirakan nilai maupun menentukan kelompok berdasarkan karakteristik data.

   Penerapan ANN melibatkan beberapa tahapan, mulai dari persiapan data, penentuan arsitektur jaringan, proses pelatihan (training), hingga pengujian (testing) untuk mengetahui kemampuan model dalam menghasilkan prediksi atau klasifikasi. Salah satu algoritma yang digunakan dalam proses pembelajaran ANN adalah backpropagation, yaitu algoritma yang memperbarui bobot jaringan berdasarkan kesalahan prediksi agar kinerja model menjadi lebih baik (Solikhun et al., 2024). Oleh karena itu, praktikum mengenai Artificial Neural Network (ANN) untuk Regresi dan Klasifikasi dilakukan untuk memahami konsep dasar jaringan saraf tiruan, mengimplementasikan ANN pada kedua jenis permasalahan tersebut, serta mengevaluasi hasil pemodelan berdasarkan ukuran evaluasi yang sesuai (Windasari et al., 2023).

1.2 Rumusan Masalah

   Berdasarkan latar belakang di atas dapat disimpulkan bahwa rumusan masalah sebagai berikut:
  1. Bagaimana mahasiswa mampu memahami konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R?

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

1.3 Tujuan Penelitian

   Berdasarkan rumusan masalah di atas, tujuan penelitian yang dapat disimpulkan sebagai berikut:
  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.

1.4 Manfaat Penelitian

   Adapun manfaat yang didapatkan dari penelitian ini adalah sebagai berikut:
  1. Bagi penulis

    1. Memberikan informasi dan pengetahuan mengenai konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R serta dapat mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.

    2. Menerapkan ilmu atau wawasan baru mengenai konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R serta dapat mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.

  2. Bagi pembaca

    1. Menambah ilmu pengetahuan mengenai konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R serta dapat mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.

    2. Dapat menjadi rujukan bagi penelitian selanjutnya.

1.5 Batasan Masalah

   Adapun batasan masalah pada penelitian ini yaitu, lakukan ANN Klasifikasi dengan Hidden Neuron=c(10, 20, 30) dengan data training 80% dan testing 20% serta data training 60% dan testing 40%, kemudian interpretasikan masing masing output dengan jelas!

Note: Menggunakan data Iris, Friedman, Breast Cancer, etc.

BAB II TINJAUAN PUSTAKA

2.1 Artificial Neural Network

   Artificial Neural Network (ANN) atau Jaringan Saraf Tiruan (JST) merupakan salah satu metode dalam kecerdasan buatan yang dirancang dengan meniru mekanisme kerja jaringan saraf biologis manusia, khususnya dalam menerima informasi, mengolah data, dan menghasilkan suatu keputusan (Muis, 2021). ANN tersusun atas sejumlah neuron yang saling terhubung melalui bobot (weight) dan bias, serta menggunakan fungsi aktivasi untuk mengolah informasi yang diterima. Secara umum, arsitektur ANN terdiri atas tiga bagian utama, yaitu input layer sebagai tempat menerima data masukan, hidden layer sebagai bagian yang melakukan pemrosesan informasi, dan output layer sebagai bagian yang menghasilkan keluaran model (Laksono & Nofendra, 2023). Proses pembelajaran ANN dilakukan dengan menyesuaikan bobot berdasarkan pola data yang diberikan sehingga jaringan mampu menghasilkan keluaran yang mendekati target, salah satunya melalui algoritma backpropagation (Widiatry et al., 2025).

   Dalam penerapannya, ANN dapat digunakan untuk menyelesaikan permasalahan regresi maupun klasifikasi. Regresi digunakan untuk memperkirakan nilai numerik berdasarkan pola hubungan antarvariabel, sedangkan klasifikasi bertujuan menentukan kategori atau kelompok dari suatu data (Jannah & Budayawan, 2024). Kemampuan ANN dalam mempelajari pola data juga dimanfaatkan untuk melakukan peramalan dengan mengoptimalkan arsitektur jaringan, jumlah neuron, fungsi aktivasi, dan parameter pelatihan agar diperoleh hasil prediksi yang baik (Pasaribu et al., 2024). Oleh karena itu, ANN menjadi salah satu metode yang dapat digunakan dalam berbagai bidang karena mampu mempelajari hubungan yang kompleks dan menghasilkan prediksi maupun pengelompokan berdasarkan karakteristik data (Anggoro, 2023).

2.2 ANN untuk Regresi

   Artificial Neural Network (ANN) untuk regresi merupakan metode jaringan saraf tiruan yang digunakan untuk memprediksi nilai numerik berdasarkan pola hubungan antara variabel input dan output. Metode ini bekerja dengan menghubungkan sejumlah neuron melalui bobot dan bias yang disesuaikan selama proses pembelajaran agar menghasilkan prediksi yang mendekati nilai sebenarnya (Aditya et al., 2024). Salah satu algoritma yang sering digunakan adalah backpropagation, yaitu proses pembaruan bobot berdasarkan kesalahan prediksi secara berulang untuk meningkatkan ketepatan model (Putri et al., 2023). Keberhasilan ANN dalam regresi dipengaruhi oleh beberapa faktor, seperti jumlah neuron, fungsi aktivasi, learning rate, dan jumlah iterasi (epoch). Kinerja model dapat dievaluasi menggunakan ukuran kesalahan, seperti Mean Absolute Error (MAE), Mean Squared Error (MSE), dan Root Mean Squared Error (RMSE) untuk mengetahui seberapa dekat hasil prediksi dengan nilai aktual (Mubaraq et al., 2024).

2.3 ANN untuk Klasifikasi

   Artificial Neural Network (ANN) untuk klasifikasi merupakan metode Jaringan Saraf Tiruan yang digunakan untuk mengelompokkan data ke dalam kelas tertentu berdasarkan pola dan karakteristik variabel masukan. Metode ini bekerja dengan memproses data melalui jaringan neuron yang saling terhubung dan melakukan pembelajaran menggunakan algoritma backpropagation untuk memperoleh hasil klasifikasi yang sesuai (Aini et al., 2023). Dalam penerapannya, ANN dapat digunakan untuk berbagai permasalahan, seperti mengklasifikasikan tingkat kesegaran wortel berdasarkan warna dan tekstur citra serta mengenali jenis tanaman obat berdasarkan citra daun (Musdar et al., 2024). Kinerja model klasifikasi ANN dapat dievaluasi menggunakan beberapa ukuran, seperti akurasi, precision, recall, dan F1-score untuk mengetahui ketepatan model dalam mengelompokkan data (Azhima et al., 2024).

BAB III METODE PENELITIAN

3.1 Jenis dan Sumber Data

   Jenis data pada penelitian ini adalah data numerik. Data numerik adalah jenis data yang terdiri dari angka dan dapat diukur atau dihitung secara kuantitatif. Data ini digunakan untuk merepresentasikan nilai atau ukuran tertentu dalam berbagai konteks, seperti sains, ekonomi, statistik, dan matematika. Data numerik sering digunakan untuk melakukan perhitungan, analisis, dan visualisasi data.

   Dalam laporan ini sumber data yang digunakan adalah sumber data dalam wujud data sekunder, yaitu data yang telah dikumpulkan dan disusun oleh pihak lain di luar praktikan itu sendiri. Data pada praktikum ini yaitu dataset Breast Cancer (Wisconsin Breast Cancer Database) yang tersedia di R melalui paket mlbench.

3.2 Variabel Penelitian

   Variabel adalah simbol, karakteristik, atau atribut yang dapat diukur atau diamati dalam sebuah penelitian atau eksperimen. Pada laporan ini terdapat 1 batasan masalah. Variabel respons dalam penelitian ini adalah Class, yang terdiri atas dua kategori, yaitu benign dan malignant. Variabel prediktor terdiri atas sembilan karakteristik sel, yaitu ketebalan gumpalan sel (Cl.thickness), keseragaman ukuran sel (Cell.size), keseragaman bentuk sel (Cell.shape), perlekatan marginal (Marg.adhesion), ukuran sel epitel tunggal (Epith.c.size), kondisi inti sel (Bare.nuclei), struktur kromatin (Bl.cromatin), bentuk nukleolus normal (Normal.nucleoli), dan mitosis (Mitoses). Variabel Id tidak digunakan dalam pemodelan karena hanya berfungsi sebagai identitas observasi. Data yang memiliki nilai hilang pada variabel Bare.nuclei dibersihkan sebelum digunakan dalam pembentukan model ANN.

3.3 Analisis Data

   Langkah-langkah yang digunakan pada penelitian untuk batasan masalah adalah sebagai berikut:
  1. Memuat dataset BreastCancer dan paket yang diperlukan.
  2. Membersihkan data, menghapus Id, mengubah prediktor menjadi numerik, dan menghapus observasi yang memiliki nilai hilang.
  3. Membagi data dengan skenario 80% training 20% testing dan 60% training 40% testing.
  4. Membentuk ANN dengan hidden neuron 10, 20, dan 30 pada setiap skenario.
  5. Melakukan prediksi pada data testing dan menghitung confusion matrix serta metrik klasifikasi.
  6. Membuat visualisasi jaringan, bobot jaringan, dan variable importance.
  7. Membandingkan enam model dan menentukan model terbaik berdasarkan performa klasifikasi serta jumlah false negative.

BAB IV HASIL DAN PEMBAHASAN

4.1 Library dan Import Data

library(nnet)
library(NeuralNetTools)
library(mlbench)

# Import Data
data(BreastCancer)
bc <- BreastCancer
bc$Id <- NULL

# Ubah prediktor (factor ordinal 1-10) menjadi numerik
for (j in 1:9) bc[, j] <- as.numeric(as.character(bc[, j]))

# Hapus missing value (16 baris pada Bare.nuclei)
bc <- na.omit(bc)
bc$Class <- factor(bc$Class, levels = c("benign", "malignant"))

head(bc)
##   Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size Bare.nuclei
## 1            5         1          1             1            2           1
## 2            5         4          4             5            7          10
## 3            3         1          1             1            2           2
## 4            6         8          8             1            3           4
## 5            4         1          1             3            2           1
## 6            8        10         10             8            7          10
##   Bl.cromatin Normal.nucleoli Mitoses     Class
## 1           3               1       1    benign
## 2           3               2       1    benign
## 3           3               1       1    benign
## 4           3               7       1    benign
## 5           3               1       1    benign
## 6           9               7       1 malignant
   Penggunaan paket nnet, NeuralNetTools, dan mlbench bertujuan untuk mendukung pembentukan model jaringan saraf tiruan, visualisasi jaringan, serta penyediaan dataset yang digunakan dalam analisis. Dataset BreastCancer terdiri atas informasi karakteristik sel yang berkaitan dengan kondisi kanker payudara. Variabel Id dihilangkan karena hanya berfungsi sebagai identitas pengamatan dan tidak digunakan sebagai prediktor dalam pemodelan. Selanjutnya, sembilan variabel penjelas dikonversi menjadi numerik agar dapat diproses oleh algoritma ANN, sedangkan data yang memiliki nilai kosong dihapus melalui fungsi na.omit(). Setelah proses pembersihan dilakukan, variabel Class ditetapkan sebagai faktor dengan kategori benign dan malignant. Tampilan enam observasi pertama memperlihatkan bahwa setiap pengamatan memiliki kombinasi karakteristik sel yang berbeda. Beberapa data dengan kategori benign juga menunjukkan nilai prediktor yang cukup tinggi, sehingga diperlukan pemodelan yang mampu mengenali pola gabungan dari seluruh variabel, bukan hanya berdasarkan satu karakteristik.

4.2 Statistika Deskriptif dan Distribusi Kelas

summary(bc)
##   Cl.thickness      Cell.size        Cell.shape     Marg.adhesion  
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   : 1.00  
##  1st Qu.: 2.000   1st Qu.: 1.000   1st Qu.: 1.000   1st Qu.: 1.00  
##  Median : 4.000   Median : 1.000   Median : 1.000   Median : 1.00  
##  Mean   : 4.442   Mean   : 3.151   Mean   : 3.215   Mean   : 2.83  
##  3rd Qu.: 6.000   3rd Qu.: 5.000   3rd Qu.: 5.000   3rd Qu.: 4.00  
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.00  
##   Epith.c.size     Bare.nuclei      Bl.cromatin     Normal.nucleoli
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   : 1.00  
##  1st Qu.: 2.000   1st Qu.: 1.000   1st Qu.: 2.000   1st Qu.: 1.00  
##  Median : 2.000   Median : 1.000   Median : 3.000   Median : 1.00  
##  Mean   : 3.234   Mean   : 3.545   Mean   : 3.445   Mean   : 2.87  
##  3rd Qu.: 4.000   3rd Qu.: 6.000   3rd Qu.: 5.000   3rd Qu.: 4.00  
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.00  
##     Mitoses             Class    
##  Min.   : 1.000   benign   :444  
##  1st Qu.: 1.000   malignant:239  
##  Median : 1.000                  
##  Mean   : 1.603                  
##  3rd Qu.: 1.000                  
##  Max.   :10.000
table(bc$Class)
## 
##    benign malignant 
##       444       239
nrow(bc)
## [1] 683
# Formula model
i <- names(bc)
form <- as.formula(paste("Class ~", paste(i[!i %in% "Class"], collapse = " + ")))
form
## Class ~ Cl.thickness + Cell.size + Cell.shape + Marg.adhesion + 
##     Epith.c.size + Bare.nuclei + Bl.cromatin + Normal.nucleoli + 
##     Mitoses
   Berdasarkan hasil statistika deskriptif, kesembilan variabel prediktor memiliki nilai minimum 1 dan maksimum 10. Variabel Cl.thickness mempunyai rata-rata paling tinggi, yaitu 4,442, sedangkan Mitoses memiliki rata-rata paling rendah sebesar 1,603. Beberapa variabel mempunyai median sebesar 1 meskipun nilai maksimumnya mencapai 10. Hal tersebut memperlihatkan bahwa sebagian besar data terkonsentrasi pada nilai rendah, sementara terdapat sejumlah pengamatan dengan nilai yang jauh lebih tinggi. Hasil pengelompokan kelas menunjukkan bahwa terdapat 444 data benign dan 239 data malignant dari keseluruhan 683 pengamatan. Dengan demikian, kelas benign mencakup sekitar 65% data, sedangkan kelas malignant sebesar 35%. Perbedaan jumlah tersebut menunjukkan adanya ketidakseimbangan kelas, sehingga penilaian model perlu mempertimbangkan kemampuan mengenali kedua kategori. Sementara itu, formula yang terbentuk menempatkan Class sebagai variabel respons dengan sembilan karakteristik sel sebagai variabel prediktor yang digunakan dalam proses klasifikasi.

4.3 Fungsi ANN Klasifikasi

jalankan_ann <- function(prop_train, size, seed = 917) {
  set.seed(seed)
  index <- sample(1:nrow(bc), round(prop_train * nrow(bc)))
  train <- bc[index, ]
  test  <- bc[-index, ]
  
  set.seed(seed)
  nn <- nnet.formula(form, size = size, data = train,
                     maxit = 500, trace = FALSE, MaxNWts = 5000)
  
  pred <- factor(predict(nn, newdata = test, type = "class"),
                 levels = levels(bc$Class))
  tab  <- table(Aktual = test$Class, Prediksi = pred)
  
  TN <- tab["benign", "benign"];       FP <- tab["benign", "malignant"]
  FN <- tab["malignant", "benign"];    TP <- tab["malignant", "malignant"]
  
  hasil <- data.frame(
    Train = paste0(prop_train * 100, "%"),
    Test = paste0((1 - prop_train) * 100, "%"),
    Hidden = size,
    n_train = nrow(train), n_test = nrow(test),
    Akurasi = (TP + TN) / sum(tab),
    Sensitivitas = TP / (TP + FN),
    Spesifisitas = TN / (TN + FP),
    Presisi = TP / (TP + FP)
  )
  list(model = nn, tabel = tab, hasil = hasil)
}

# Fungsi untuk menampilkan seluruh output satu skenario
tampilkan_skenario <- function(out) {
  cat("Tabel klasifikasi (confusion matrix):\n")
  print(out$tabel)
  
  cat("\nMetrik evaluasi:\n")
  print(round(out$hasil[, 6:9], 4))
  
  cat("\nJumlah bobot jaringan:", length(out$model$wts), "\n")
  cat("\nBobot jaringan (9 bobot pertama pada hidden neuron 1):\n")
  w <- neuralweights(out$model)$wts[[1]]
  print(w[1:min(9, length(w))])
  
  cat("\nKepentingan variabel (Olden):\n")
  print(olden(out$model, bar_plot = FALSE))
}
   Fungsi jalankan_ann() dibuat untuk mempermudah pelaksanaan pemodelan dengan beberapa kombinasi proporsi data dan jumlah neuron tersembunyi. Pembagian data dilakukan secara acak berdasarkan persentase training dan testing, sedangkan penggunaan set.seed(917) menjaga agar pembagian data serta proses pembentukan model dapat diulang dengan hasil yang konsisten. Model dibangun menggunakan fungsi nnet.formula() dengan satu lapisan tersembunyi, iterasi maksimum sebanyak 500, dan jumlah neuron yang ditentukan melalui parameter size. Setelah pelatihan selesai, model digunakan untuk memperkirakan kategori pada data pengujian. Hasil prediksi kemudian dibandingkan dengan kategori sebenarnya melalui confusion matrix untuk memperoleh nilai akurasi, sensitivitas, spesifisitas, dan presisi. Selain evaluasi klasifikasi, fungsi tampilkan_skenario() juga menyajikan jumlah bobot jaringan, sebagian nilai bobot, serta tingkat kepentingan prediktor berdasarkan metode Olden. Dengan adanya kedua fungsi tersebut, proses pengujian enam kombinasi model dapat dilakukan secara lebih terstruktur dan hasilnya lebih mudah dibandingkan.

4.4 Skenario 1: Training 80%, Testing 20%, Hidden Neuron = 10

out1 <- jalankan_ann(0.8, 10)
tampilkan_skenario(out1)
## Tabel klasifikasi (confusion matrix):
##            Prediksi
## Aktual      benign malignant
##   benign        90         3
##   malignant      2        42
## 
## Metrik evaluasi:
##   Akurasi Sensitivitas Spesifisitas Presisi
## 1  0.9635       0.9545       0.9677  0.9333
## 
## Jumlah bobot jaringan: 111 
## 
## Bobot jaringan (9 bobot pertama pada hidden neuron 1):
## [1] -112.0528168   29.2895999   12.2748305    2.8059773    0.1077392
## [6]   -8.4170399    7.8109917  -10.7603476    6.5840727
## 
## Kepentingan variabel (Olden):
##                 importance
## Cl.thickness     -5118.933
## Cell.size         1981.528
## Cell.shape        9351.952
## Marg.adhesion     5522.208
## Epith.c.size     -5069.188
## Bare.nuclei       7018.447
## Bl.cromatin       8688.271
## Normal.nucleoli  -4324.778
## Mitoses          -2869.309
plotnet(out1$model)

olden(out1$model)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

   Hasil pengujian pada skenario pertama memperlihatkan bahwa dari 137 data pengujian, sebanyak 132 data berhasil diklasifikasikan dengan tepat dan hanya 5 data yang mengalami kesalahan. Berdasarkan confusion matrix, terdapat 90 data benign yang diprediksi benar, 3 data benign yang keliru dikategorikan sebagai malignant, 2 data malignant yang diprediksi sebagai benign, serta 42 data malignant yang berhasil dikenali. Perolehan akurasi sebesar 96,35%, sensitivitas 95,45%, spesifisitas 96,77%, dan presisi 93,33% menunjukkan bahwa model mampu membedakan kedua kategori dengan baik. Arsitektur jaringan yang terbentuk adalah 9-10-1 dengan jumlah keseluruhan 111 bobot. Visualisasi plotnet() memperlihatkan hubungan antara sembilan neuron input, sepuluh neuron tersembunyi, dan satu neuron output yang dihubungkan oleh bobot jaringan. Hasil analisis Olden menunjukkan bahwa Cell.shape memiliki kontribusi positif paling besar sebesar 9.352, kemudian diikuti Bl.cromatin sebesar 8.688 dan Bare.nuclei sebesar 7.019. Sementara itu, Cl.thickness mempunyai kontribusi negatif sebesar −5.119. Hasil tersebut menggambarkan bahwa setiap karakteristik sel memberikan kontribusi yang berbeda dalam proses pengenalan kelas oleh jaringan.

4.5 Skenario 2: Training 60%, Testing 40%, Hidden Neuron = 10

out2 <- jalankan_ann(0.6, 10)
tampilkan_skenario(out2)
## Tabel klasifikasi (confusion matrix):
##            Prediksi
## Aktual      benign malignant
##   benign       180         6
##   malignant     14        73
## 
## Metrik evaluasi:
##   Akurasi Sensitivitas Spesifisitas Presisi
## 1  0.9267       0.8391       0.9677  0.9241
## 
## Jumlah bobot jaringan: 111 
## 
## Bobot jaringan (9 bobot pertama pada hidden neuron 1):
## [1]  5.1555592 -0.8084398 -2.3828910 -2.7442571  7.9770148 -7.1451457  4.1714190
## [8]  5.8757021 -0.6986356
## 
## Kepentingan variabel (Olden):
##                  importance
## Cl.thickness      -56.13463
## Cell.size       -2426.30912
## Cell.shape       1179.63096
## Marg.adhesion    1717.49825
## Epith.c.size      915.96826
## Bare.nuclei      1416.44795
## Bl.cromatin      2199.62795
## Normal.nucleoli  1118.62502
## Mitoses          -559.20327
plotnet(out2$model)

olden(out2$model)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

   Pada skenario kedua, penggunaan 60% data untuk pelatihan menghasilkan 410 pengamatan training dan 273 pengamatan testing. Dari keseluruhan data pengujian, sebanyak 253 pengamatan berhasil diklasifikasikan secara tepat, sedangkan 20 pengamatan lainnya mengalami kesalahan. Nilai akurasi yang diperoleh sebesar 92,67%, dengan sensitivitas 83,91%, spesifisitas 96,77%, dan presisi 92,41%. Hasil tersebut memperlihatkan bahwa kemampuan model dalam mengenali kelas benign masih cukup tinggi, tetapi pengenalan terhadap kelas malignant mengalami penurunan. Hal ini terlihat dari adanya 14 kasus malignant yang salah dikategorikan sebagai benign. Jaringan yang terbentuk tetap memiliki susunan 9-10-1 dengan 111 bobot karena jumlah neuron tersembunyi tidak mengalami perubahan. Berdasarkan perhitungan Olden, Cell.size mempunyai kontribusi negatif terbesar sebesar −2.426, sedangkan Bl.cromatin memberikan kontribusi positif sebesar 2.200. Perubahan urutan kepentingan variabel dibandingkan skenario pertama memperlihatkan bahwa hasil pembelajaran jaringan dapat dipengaruhi oleh jumlah data yang digunakan dalam pelatihan.

4.6 Skenario 3: Training 80%, Testing 20%, Hidden Neuron = 20

out3 <- jalankan_ann(0.8, 20)
tampilkan_skenario(out3)
## Tabel klasifikasi (confusion matrix):
##            Prediksi
## Aktual      benign malignant
##   benign        91         2
##   malignant      5        39
## 
## Metrik evaluasi:
##   Akurasi Sensitivitas Spesifisitas Presisi
## 1  0.9489       0.8864       0.9785  0.9512
## 
## Jumlah bobot jaringan: 221 
## 
## Bobot jaringan (9 bobot pertama pada hidden neuron 1):
## [1] -35.718007  21.653152 -35.076846  18.576114  -1.448047  -4.454150 -13.112425
## [8]  41.975199  12.455097
## 
## Kepentingan variabel (Olden):
##                  importance
## Cl.thickness      -23.11357
## Cell.size        -496.04114
## Cell.shape       1878.72066
## Marg.adhesion   -1955.20940
## Epith.c.size     3855.09571
## Bare.nuclei      -291.28375
## Bl.cromatin      4919.00806
## Normal.nucleoli  1502.28409
## Mitoses          5327.37649
plotnet(out3$model)

olden(out3$model)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

   Pengujian ketiga menggunakan pembagian data yang sama dengan skenario pertama, tetapi jumlah neuron pada lapisan tersembunyi ditingkatkan menjadi 20. Hasil klasifikasi menunjukkan bahwa 130 dari 137 data pengujian berhasil diprediksi dengan benar. Model memperoleh akurasi sebesar 94,89%, sensitivitas 88,64%, spesifisitas 97,85%, dan presisi 95,12%. Jika dibandingkan dengan penggunaan 10 neuron pada proporsi data yang sama, penambahan neuron menghasilkan spesifisitas dan presisi yang lebih tinggi, tetapi akurasi serta sensitivitas mengalami penurunan. Arsitektur jaringan berubah menjadi 9-20-1 dengan total 221 bobot, sehingga jumlah parameter yang harus dipelajari jaringan menjadi lebih banyak. Kondisi ini menunjukkan bahwa peningkatan jumlah neuron tidak selalu diikuti oleh peningkatan kemampuan klasifikasi. Berdasarkan metode Olden, Mitoses menjadi variabel dengan kontribusi positif tertinggi sebesar 5.335, diikuti Bl.cromatin sebesar 4.926 dan Epith.c.size sebesar 3.861. Adapun Marg.adhesion memberikan kontribusi negatif terbesar sebesar −1.959. Hasil tersebut menunjukkan adanya perubahan pola kontribusi prediktor ketika struktur jaringan dibuat lebih kompleks.

4.7 Skenario 4: Training 60%, Testing 40%, Hidden Neuron = 20

out4 <- jalankan_ann(0.6, 20)
tampilkan_skenario(out4)
## Tabel klasifikasi (confusion matrix):
##            Prediksi
## Aktual      benign malignant
##   benign       179         7
##   malignant     12        75
## 
## Metrik evaluasi:
##   Akurasi Sensitivitas Spesifisitas Presisi
## 1  0.9304       0.8621       0.9624  0.9146
## 
## Jumlah bobot jaringan: 221 
## 
## Bobot jaringan (9 bobot pertama pada hidden neuron 1):
## [1] -4.4163210 -1.4745072 -4.1884216  6.1693567  1.3594741  0.3669770  0.8589219
## [8]  4.2396686  7.4250116
## 
## Kepentingan variabel (Olden):
##                 importance
## Cl.thickness     469.11629
## Cell.size       2128.29572
## Cell.shape      -256.95626
## Marg.adhesion    -59.59444
## Epith.c.size     592.47308
## Bare.nuclei     2149.66897
## Bl.cromatin     1228.20786
## Normal.nucleoli -890.15996
## Mitoses         1652.75143
plotnet(out4$model)

olden(out4$model)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

   Pada skenario keempat, model menggunakan 410 data pelatihan dan 273 data pengujian dengan jumlah neuron tersembunyi sebanyak 20. Hasil confusion matrix memperlihatkan bahwa 179 data benign dan 75 data malignant berhasil diklasifikasikan secara benar. Sementara itu, terdapat 7 data benign yang diprediksi sebagai malignant dan 12 data malignant yang diprediksi sebagai benign. Berdasarkan hasil tersebut, diperoleh akurasi 93,04%, sensitivitas 86,21%, spesifisitas 96,24%, dan presisi 91,46%. Dibandingkan skenario kedua yang menggunakan 10 neuron, penambahan jumlah neuron menghasilkan peningkatan akurasi dan sensitivitas, meskipun peningkatannya relatif kecil. Struktur jaringan memiliki 221 bobot dengan susunan 9-20-1. Hasil perhitungan Olden menunjukkan bahwa Bare.nuclei mempunyai kontribusi positif terbesar sebesar 2.150, disusul Cell.size sebesar 2.128 dan Mitoses sebesar 1.653. Sebaliknya, Normal.nucleoli mempunyai kontribusi negatif sebesar −890. Hasil ini memperlihatkan bahwa peningkatan jumlah neuron dapat mengubah besarnya kontribusi masing-masing variabel dalam proses klasifikasi.

4.8 Skenario 5: Training 80%, Testing 20%, Hidden Neuron = 30

out5 <- jalankan_ann(0.8, 30)
tampilkan_skenario(out5)
## Tabel klasifikasi (confusion matrix):
##            Prediksi
## Aktual      benign malignant
##   benign        92         1
##   malignant      2        42
## 
## Metrik evaluasi:
##   Akurasi Sensitivitas Spesifisitas Presisi
## 1  0.9781       0.9545       0.9892  0.9767
## 
## Jumlah bobot jaringan: 331 
## 
## Bobot jaringan (9 bobot pertama pada hidden neuron 1):
## [1] -1.4030661  2.7537795 -2.4267894  0.6349852  4.2972836  3.5397161 -1.5666015
## [8]  2.5561584  0.7231256
## 
## Kepentingan variabel (Olden):
##                 importance
## Cl.thickness     352.55581
## Cell.size        144.22270
## Cell.shape       308.58904
## Marg.adhesion    641.31648
## Epith.c.size    -175.86734
## Bare.nuclei      450.14159
## Bl.cromatin      181.40618
## Normal.nucleoli   50.20407
## Mitoses           96.79762
plotnet(out5$model)

olden(out5$model)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

   Skenario kelima menghasilkan performa klasifikasi paling tinggi dibandingkan skenario lainnya. Dari 137 data pengujian, sebanyak 134 data berhasil diklasifikasikan dengan benar, yang terdiri atas 92 data benign dan 42 data malignant. Kesalahan klasifikasi hanya ditemukan pada 3 pengamatan, yaitu 1 data benign yang diprediksi sebagai malignant dan 2 data malignant yang diprediksi sebagai benign. Hasil evaluasi menghasilkan akurasi sebesar 97,81%, sensitivitas 95,45%, spesifisitas 98,92%, dan presisi 97,67%. Model menggunakan arsitektur 9-30-1 dengan total 331 bobot jaringan. Hasil tersebut menunjukkan bahwa kombinasi proporsi pelatihan 80% dan 30 neuron tersembunyi mampu memberikan hasil klasifikasi yang sangat baik pada data pengujian. Berdasarkan analisis Olden, Marg.adhesion mempunyai kontribusi positif paling besar sebesar 641, kemudian diikuti Bare.nuclei sebesar 450 dan Cl.thickness sebesar 353. Sementara itu, Epith.c.size menunjukkan kontribusi negatif sebesar −176. Dengan demikian, konfigurasi ini memberikan hasil terbaik berdasarkan seluruh ukuran evaluasi yang digunakan, meskipun kinerjanya tetap perlu diuji menggunakan pembagian data lain untuk memastikan kestabilannya.

4.9 Skenario 6: Training 60%, Testing 40%, Hidden Neuron = 30

out6 <- jalankan_ann(0.6, 30)
tampilkan_skenario(out6)
## Tabel klasifikasi (confusion matrix):
##            Prediksi
## Aktual      benign malignant
##   benign       176        10
##   malignant      5        82
## 
## Metrik evaluasi:
##   Akurasi Sensitivitas Spesifisitas Presisi
## 1  0.9451       0.9425       0.9462  0.8913
## 
## Jumlah bobot jaringan: 331 
## 
## Bobot jaringan (9 bobot pertama pada hidden neuron 1):
## [1] -2.7226124  1.5562991 -8.4432602 -0.7811029 -3.2108353  2.7221558  2.4157656
## [8]  4.7509451  6.0261145
## 
## Kepentingan variabel (Olden):
##                 importance
## Cl.thickness     248.17246
## Cell.size        -53.18459
## Cell.shape        55.27080
## Marg.adhesion    498.49406
## Epith.c.size     -46.15911
## Bare.nuclei       68.75030
## Bl.cromatin       33.15129
## Normal.nucleoli  124.03564
## Mitoses          423.75799
plotnet(out6$model)

olden(out6$model)
## Warning: `label` cannot be a <ggplot2::element_blank> object.

   Pada skenario keenam, jumlah neuron tersembunyi ditingkatkan menjadi 30 dengan proporsi pelatihan sebesar 60% dan pengujian sebesar 40%. Hasil pengujian menunjukkan bahwa 258 dari 273 pengamatan berhasil diklasifikasikan dengan benar, sedangkan 15 pengamatan lainnya mengalami kesalahan prediksi. Model memperoleh akurasi sebesar 94,51%, sensitivitas 94,25%, spesifisitas 94,62%, dan presisi 89,13%. Nilai sensitivitas yang cukup tinggi menunjukkan bahwa sebagian besar data dengan kategori malignant dapat dikenali oleh model, yaitu sebanyak 82 dari 87 pengamatan. Namun, terdapat 10 data benign yang salah diprediksi sebagai malignant, sehingga nilai presisinya lebih rendah dibandingkan skenario lainnya. Jaringan yang terbentuk mempunyai susunan 9-30-1 dengan jumlah 331 bobot. Berdasarkan hasil metode Olden, Marg.adhesion memiliki kontribusi positif terbesar sebesar 498, diikuti Mitoses sebesar 424 dan Cl.thickness sebesar 248. Sementara itu, Cell.size dan Epith.c.size masing-masing mempunyai kontribusi negatif sebesar −53 dan −46. Hasil ini menunjukkan bahwa penggunaan 30 neuron pada pembagian data 60:40 mampu meningkatkan kemampuan mendeteksi kelas malignant, tetapi masih menghasilkan sejumlah kesalahan dalam mengenali kelas benign.

4.10 Ringkasan Perbandingan Seluruh Skenario

semua <- list(out1, out2, out3, out4, out5, out6)
ringkasan <- do.call(rbind, lapply(semua, function(x) x$hasil))
ringkasan[, 6:9] <- round(ringkasan[, 6:9], 4)
ringkasan
##   Train Test Hidden n_train n_test Akurasi Sensitivitas Spesifisitas Presisi
## 1   80%  20%     10     546    137  0.9635       0.9545       0.9677  0.9333
## 2   60%  40%     10     410    273  0.9267       0.8391       0.9677  0.9241
## 3   80%  20%     20     546    137  0.9489       0.8864       0.9785  0.9512
## 4   60%  40%     20     410    273  0.9304       0.8621       0.9624  0.9146
## 5   80%  20%     30     546    137  0.9781       0.9545       0.9892  0.9767
## 6   60%  40%     30     410    273  0.9451       0.9425       0.9462  0.8913
   Hasil perbandingan keenam skenario menunjukkan bahwa proporsi pembagian data dan jumlah neuron tersembunyi memberikan hasil klasifikasi yang berbeda. Pada pembagian data 80:20, akurasi yang diperoleh untuk 10, 20, dan 30 neuron masing-masing sebesar 96,35%, 94,89%, dan 97,81%. Sementara itu, pada pembagian data 60:40, akurasi masing-masing mencapai 92,67%, 93,04%, dan 94,51%. Hasil tersebut memperlihatkan bahwa penggunaan 80% data pelatihan memberikan akurasi lebih tinggi dibandingkan penggunaan 60% data pelatihan pada setiap konfigurasi neuron. Selain itu, penambahan jumlah neuron tidak selalu menghasilkan peningkatan akurasi secara berurutan karena performa jaringan juga dipengaruhi oleh proses pembelajaran dan kompleksitas model. Berdasarkan keseluruhan hasil evaluasi, Skenario 5 dengan proporsi training 80%, testing 20%, dan 30 hidden neuron merupakan konfigurasi terbaik. Model tersebut menghasilkan akurasi 97,81%, sensitivitas 95,45%, spesifisitas 98,92%, dan presisi 97,67%, dengan hanya tiga kesalahan klasifikasi. Sebaliknya, akurasi terendah diperoleh pada Skenario 2, yaitu sebesar 92,67%, dengan sensitivitas 83,91%. Oleh karena itu, konfigurasi Skenario 5 dapat dipilih sebagai model terbaik berdasarkan hasil pengujian yang dilakukan karena mampu memberikan ketepatan klasifikasi tertinggi sekaligus menghasilkan keseimbangan yang baik dalam mengenali kelas benign dan malignant.

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

   Model Artificial Neural Network (ANN) dapat dipahami sebagai metode pembelajaran mesin yang meniru cara kerja jaringan saraf manusia dengan menghubungkan beberapa neuron untuk menghasilkan prediksi. Implementasi ANN menggunakan bahasa pemrograman R dilakukan dengan membangun jaringan saraf yang dapat digunakan untuk menyelesaikan permasalahan regresi maupun klasifikasi. Pada regresi, ANN digunakan untuk memprediksi nilai numerik, sedangkan pada klasifikasi digunakan untuk mengelompokkan data ke dalam kategori tertentu.

   Evaluasi performa model ANN dilakukan dengan menggunakan metrik yang disesuaikan dengan jenis permasalahan. Pada kasus regresi, MSE digunakan untuk mengukur rata-rata kuadrat kesalahan prediksi, sedangkan MAPE menunjukkan rata-rata persentase kesalahan prediksi. Sementara itu, pada klasifikasi, akurasi digunakan untuk mengetahui proporsi prediksi yang benar dan presisi untuk mengukur ketepatan model dalam memprediksi suatu kelas. Melalui metrik tersebut, kinerja model ANN dapat dinilai dan konfigurasi model dengan hasil terbaik dapat ditentukan.

   Berdasarkan hasil analisis, metode Artificial Neural Network (ANN) dapat diterapkan untuk melakukan klasifikasi data BreastCancer dengan menggunakan sembilan variabel prediktor dan satu variabel respons, yaitu Class. Hasil pengujian menunjukkan bahwa pembagian data dan jumlah neuron pada hidden layer menghasilkan tingkat akurasi yang berbeda-beda. Skenario terbaik diperoleh pada pembagian data 80:20 dengan 30 neuron, yang menghasilkan akurasi sebesar 97,81%, sensitivitas 95,45%, spesifisitas 98,92%, dan presisi 97,67%. Selain itu, analisis Olden menunjukkan bahwa setiap variabel memiliki kontribusi yang berbeda dalam proses klasifikasi. Dengan demikian, ANN mampu mengklasifikasikan data ke dalam kategori benign dan malignant dengan performa yang baik, meskipun pemilihan konfigurasi jaringan tetap perlu diperhatikan untuk memperoleh hasil klasifikasi yang optimal.

5.2 Saran

   Dalam membuat laporan praktikum ini penulis menyarankan untuk selalu memperhatikan sintaks pada program R yang digunakan. Selain itu, perlu untuk memperhatikan tata cara penulisan yang sesuai dengan KBBI dan penulisan yang bercetak tebal. Sehingga dapat menghasilkan laporan yang baik.

DAFTAR PUSTAKA

Abidin, A. A. Z., Kusrini, & Wibowo, F. W. (2024). Implementasi Artificial Neural Network pada kasus regresi linear berganda untuk memprediksi jumlah pakan ayam petelur. Jurnal INSTEK (Informatika Sains dan Teknologi), 9(2), 313–323.

Aditya, M. F. A., Zilrahmi, Kurniawati, Y., & Mukhti, T. O. (2024). Implementation of an artificial neural network based on the backpropagation algorithm in forecasting the closing price of the Jakarta Composite Index (IHSG). UNP Journal of Statistics and Data Science, 2(1), 23–31.

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.

Azmi, Z. (2021). Pengantar jaringan saraf tiruan (Introduction to artificial neural networks). Mitra Wacana Media.

Azhima, M., Afrianty, I., Budianita, E., & Gusti, S. K. (2024). Penerapan metode backpropagation neural network untuk klasifikasi penyakit stroke. KLIK: Kajian Ilmiah Informatika dan Komputer, 4(6), 3013–3021.

Fransiska, H. (2026). Modul praktikum machine learning. Universitas Bengkulu.

Jannah, Z., & Budayawan, K. (2024). Rancang bangun sistem informasi berbasis jaringan saraf tiruan untuk prediksi kebutuhan obat di Puskesmas Parit Rantang. ELEKTIF: Jurnal Elektronika & Informatika, 2(1), 24–35.

Laksono, H. D., & Nofendra, R. (2023). Kumpulan program Matlab untuk jaringan syaraf tiruan (Edisi ke-2). Universitas Andalas Press.

Mubaraq, M. F., Sahera, N. J., Indri, I., & Saputra, R. A. (2024). Implementasi metode backpropagation neural network untuk memprediksi saham bank terbesar di Indonesia. INFORMATIKA, 12(3).

Muis, S. (2021). Teori jaringan syaraf tiruan: Sistem kecerdasan tiruan dengan kemampuan belajar dan adaptasi (Edisi ke-2). Teknosain.

Murtopo, A., Santoso, N. A., & Azmi, I. (2023). Penerapan metode algoritma Artificial Neural Network dengan Long Short Term Memory Network (LSTM) untuk klasifikasi sinyal Electroencephalogram (EEG). JURSIMA, 11(2), 291–298.

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.

Pasaribu, A. R., Sawaluddin, S., Sitorus, S., & Syahputra, M. (2024). Artificial neural network dalam meramalkan kasus Covid-19 di Indonesia menggunakan metode backpropagation. Leibniz: Jurnal Matematika, 4(1).

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.

Widiatry, Kristianti, N., Geges, S., Putra, P. B. A. A., & Pratawijaya, V. H. (2025). Jaringan syaraf tiruan: Teknologi cerdas di era digital. Penamuda Media.

Windasari, W. W., Wasiman, & Alfiyanto, M. A. (2023). Perbandingan akurasi prediksi metode regresi linear OLS dengan jaringan syaraf tiruan: Studi kasus dataset startup. Journal of Data Science Theory and Application, 2(1), 17–22.