BAB I PENDAHULUAN

1.1 Latar Belakang

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).

1.2 Rumusan Masalah

  1. Bagaimana memahami konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R?
  2. Bagaimana mengevaluasi performa model ANN menggunakan metrik Mean Squared Error (MSE) dan Mean Absolute Percentage Error (MAPE) untuk regresi serta accuracy dan precision untuk klasifikasi?

1.3 Tujuan

  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 Mean Squared Error (MSE) dan Mean Absolute Percentage Error (MAPE) untuk regresi serta accuracy dan precision untuk klasifikasi.

BAB II TINJAUAN PUSTAKA

2.1 Artificial Neural Network (ANN)

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:

  • \(y\) = keluaran neuron.
  • \(f\) = fungsi aktivasi.
  • \(w_i\) = bobot pada masukan ke-\(i\).
  • \(x_i\) = nilai masukan ke-\(i\).
  • \(b\) = bias.
  • \(p\) = jumlah variabel masukan.

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).

2.2 Artificial Neural Network untuk Regresi

ANN regresi merupakan penerapan jaringan saraf tiruan untuk memprediksi variabel respons yang memiliki nilai numerik kontinu. Model ini mempelajari hubungan antara variabel prediktor dan variabel respons melalui proses pelatihan menggunakan data yang telah disiapkan. Arsitektur jaringan dibentuk berdasarkan jumlah variabel masukan, jumlah neuron pada lapisan tersembunyi, serta satu atau lebih neuron keluaran sesuai kebutuhan prediksi. Penerapan ANN dengan algoritma backpropagation untuk memprediksi nilai numerik telah digunakan dalam penelitian prediksi Indeks Pembangunan Manusia dan produksi kentang (Supriana dkk., 2025; Atmaja dkk., 2024).

Pemodelan ANN regresi diawali dengan membagi data menjadi data pelatihan (training data) dan data pengujian (testing data). Data pelatihan digunakan untuk membentuk jaringan melalui proses forward propagation dan backpropagation, sedangkan data pengujian digunakan untuk mengetahui kemampuan model dalam memprediksi data yang belum dipelajari. Pada lapisan keluaran, fungsi aktivasi linear umumnya digunakan agar model dapat menghasilkan nilai prediksi kontinu. Proses pelatihan dilakukan dengan memperbarui bobot dan bias secara berulang hingga kesalahan prediksi semakin kecil atau jumlah iterasi maksimum tercapai (Fransiska, 2026).

Evaluasi ANN regresi dilakukan dengan membandingkan nilai aktual dan nilai prediksi menggunakan ukuran kesalahan. Mean Squared Error (MSE) mengukur rata-rata kuadrat selisih antara nilai aktual dan prediksi, sedangkan Mean Absolute Percentage Error (MAPE) mengukur rata-rata kesalahan absolut dalam bentuk persentase. Nilai MSE dan MAPE yang lebih kecil menunjukkan bahwa hasil prediksi model semakin dekat dengan nilai aktual. Persamaan kedua ukuran evaluasi tersebut adalah sebagai berikut (Fransiska, 2026).

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

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

Keterangan:

  • \(n\) = jumlah data.
  • \(y_i\) = nilai aktual pada pengamatan ke-\(i\).
  • \(\hat{y}_i\) = nilai prediksi pada pengamatan ke-\(i\).

MAPE tidak dapat dihitung secara langsung apabila terdapat nilai aktual sebesar nol karena menyebabkan pembagian dengan nol. Penelitian Supriana dkk. (2025) dan Atmaja dkk. (2024) menunjukkan penerapan jaringan saraf tiruan untuk permasalahan prediksi numerik dengan algoritma backpropagation.

2.3 Artificial Neural Network untuk Klasifikasi

ANN klasifikasi merupakan penerapan jaringan saraf tiruan untuk mengelompokkan data ke dalam kelas atau kategori tertentu berdasarkan pola yang dipelajari dari data pelatihan. Berbeda dengan regresi yang menghasilkan nilai numerik kontinu, klasifikasi menghasilkan keluaran berupa kelas, seperti klasifikasi biner yang terdiri atas dua kelas atau klasifikasi multikelas yang terdiri atas lebih dari dua kelas. Model mempelajari pola hubungan antara variabel prediktor dan label kelas melalui bobot serta fungsi aktivasi pada setiap neuron. Penerapan ANN dengan algoritma backpropagation telah digunakan untuk mengklasifikasikan tingkat penilaian produk dan kualitas teh hitam (Aini dkk., 2023; Ikhsan dkk., 2022).

Pemodelan ANN klasifikasi diawali dengan menyiapkan data yang memiliki variabel prediktor dan label kelas, kemudian membaginya menjadi data pelatihan dan pengujian. Data pelatihan digunakan untuk mempelajari pola setiap kelas melalui proses forward propagation dan backpropagation, sedangkan data pengujian digunakan untuk mengukur kemampuan model dalam mengklasifikasikan pengamatan baru. Fungsi aktivasi sigmoid umumnya digunakan pada klasifikasi biner untuk menghasilkan probabilitas antara nol dan satu, sedangkan fungsi softmax dapat digunakan pada klasifikasi multikelas untuk menghasilkan probabilitas setiap kelas. Hasil probabilitas tersebut selanjutnya digunakan untuk menentukan kelas prediksi berdasarkan aturan penentuan kelas yang digunakan (Fransiska, 2026).

Evaluasi ANN klasifikasi dilakukan menggunakan confusion matrix yang membandingkan kelas aktual dengan kelas hasil prediksi. Matriks tersebut terdiri atas True Positive (TP), True Negative (TN), False Positive (FP), dan False Negative (FN) untuk klasifikasi biner. Dua ukuran evaluasi yang digunakan dalam praktikum ini adalah akurasi dan presisi, yaitu akurasi mengukur proporsi seluruh prediksi yang benar, sedangkan presisi mengukur proporsi prediksi positif yang benar-benar positif. Persamaan kedua ukuran evaluasi tersebut adalah sebagai berikut (Fransiska, 2026).

\[ Accuracy=\frac{TP+TN}{TP+TN+FP+FN} \]

\[ Precision=\frac{TP}{TP+FP} \]

Keterangan:

  • \(TP\) = jumlah data positif yang diprediksi positif.
  • \(TN\) = jumlah data negatif yang diprediksi negatif.
  • \(FP\) = jumlah data negatif yang diprediksi positif.
  • \(FN\) = jumlah data positif yang diprediksi negatif.

Nilai akurasi dan presisi yang semakin tinggi menunjukkan kemampuan klasifikasi yang semakin baik berdasarkan ukuran tersebut. Penelitian Aini dkk. (2023) serta Ikhsan dkk. (2022) memperlihatkan penggunaan ANN dengan algoritma backpropagation dalam menyelesaikan permasalahan klasifikasi.

BAB III METODE PENELITIAN

3.1 Sumber Data

Jenis data yang digunakan dalam praktikum ini adalah data kuantitatif dan kategorik. Data kuantitatif merupakan data yang dinyatakan dalam bentuk angka, sedangkan data kategorik merupakan data yang dikelompokkan berdasarkan kategori tertentu. Data yang digunakan mencakup variabel prediktor numerik dan variabel respons kategorik yang sesuai untuk analisis klasifikasi. Data yang digunakan dalam praktikum ini adalah data Breast Cancer Wisconsin yang diperoleh dari paket mlbench dalam program R. Data tersebut terdiri atas 699 observasi yang akan digunakan untuk membentuk model Artificial Neural Network (ANN) dengan jumlah neuron tersembunyi 10, 20, dan 30 serta proporsi pembagian data training dan testing sebesar 80%:20% dan 60%:40%. Data training digunakan untuk membentuk model klasifikasi, sedangkan data testing digunakan untuk mengevaluasi kemampuan model dalam mengklasifikasikan data.

3.2 Variabel Penelitian

Variabel penelitian yang digunakan dalam praktikum ini terdiri dari sepuluh variabel, yaitu sembilan variabel prediktor dan satu variabel respons. Variabel prediktor merupakan karakteristik sel yang digunakan sebagai dasar dalam proses klasifikasi, sedangkan variabel respons merupakan kelas yang menjadi sasaran prediksi. Sembilan variabel prediktor meliputi ketebalan gumpalan sel (Cl.thickness), ukuran sel (Cell.size), bentuk sel (Cell.shape), perlekatan tepi sel (Marg.adhesion), ukuran sel epitel (Epith.c.size), inti sel kosong (Bare.nuclei), kromatin (Bl.cromatin), jumlah nukleolus normal (Normal.nucleoli), dan jumlah pembelahan sel (Mitoses). Sementara itu, variabel respons adalah Class yang menunjukkan kategori jinak (benign) atau ganas (malignant). Hubungan antara variabel prediktor dan variabel respons dipelajari melalui pemodelan ANN untuk menghasilkan klasifikasi berdasarkan karakteristik yang dimiliki setiap observasi.

3.3 Langkah-Langkah Analisis

Langkah-langkah analisis yang dilakukan dalam penelitian ini adalah sebagai berikut. 1. Mengumpulkan dan menginput data yang akan digunakan dalam analisis. 2. Melakukan pemeriksaan dan prapemrosesan data, meliputi pemeriksaan tipe data, penanganan data hilang, serta normalisasi data. 3. Membagi data menjadi data pelatihan (training data) dan data pengujian (testing data) berdasarkan proporsi yang telah ditentukan. 4. Membangun model Artificial Neural Network (ANN) menggunakan jumlah neuron pada hidden layer yang berbeda. 5. Melakukan prediksi menggunakan masing-masing model yang telah dibentuk. 6. Mengevaluasi kinerja model menggunakan confusion matrix, akurasi, dan presisi. 7. Membandingkan hasil evaluasi untuk menentukan model klasifikasi terbaik.

BAB IV HASIL DAN PEMBAHASAN

4.1 Persiapan Data

Data yang digunakan dalam penelitian ini adalah dataset BreastCancer yang tersedia pada paket mlbench dalam perangkat lunak R. Data tersebut terdiri atas sembilan variabel prediktor dan satu variabel respons, yaitu Class (\(Y\)). Variabel respons memiliki dua kategori, yaitu benign dan malignant, yang digunakan sebagai kelas dalam proses klasifikasi menggunakan metode Artificial Neural Network (ANN).

Tahap persiapan data dilakukan dengan menghilangkan variabel Id karena hanya berfungsi sebagai identitas pengamatan dan tidak digunakan sebagai prediktor. Pengamatan yang memiliki nilai hilang dihapus menggunakan fungsi na.omit(), kemudian sembilan variabel prediktor dikonversi menjadi tipe numerik agar dapat digunakan dalam pembentukan model ANN.

#### PERSIAPAN DATA ####
library(nnet)
library(NeuralNetTools)
library(mlbench)

data(BreastCancer)

bc <- BreastCancer[, -1]
bc <- na.omit(bc)
bc[, 1:9] <- lapply(bc[, 1:9], function(x) {
  as.numeric(as.character(x))
})

# Distribusi variabel respons
table(bc$Class)
## 
##    benign malignant 
##       444       239
prop.table(table(bc$Class)) * 100
## 
##    benign malignant 
##  65.00732  34.99268

Sintaks tersebut digunakan untuk memuat dataset BreastCancer dan menyiapkan data sebelum analisis. Fungsi data() digunakan untuk memanggil data, sedangkan pemilihan kolom dilakukan dengan menghilangkan kolom pertama yang berisi identitas pengamatan. Fungsi na.omit() menghapus pengamatan yang memiliki nilai hilang, sementara fungsi lapply() dan as.numeric() mengubah sembilan variabel prediktor menjadi tipe numerik.

Fungsi table() digunakan untuk menghitung jumlah pengamatan pada setiap kategori variabel respons, sedangkan prop.table() digunakan untuk memperoleh persentase distribusi masing-masing kategori. Hasil persiapan data menghasilkan 683 pengamatan yang terdiri atas 444 pengamatan kelas benign dan 239 pengamatan kelas malignant.

Tabel 4.1 Distribusi variabel respons

Kategori \(Y\) Frekuensi Persentase
Benign 444 65,01%
Malignant 239 34,99%
Total 683 100,00%

Berdasarkan Tabel 4.1, kelas benign memiliki frekuensi sebanyak 444 pengamatan atau 65,01% dari seluruh data. Kelas malignant memiliki frekuensi sebanyak 239 pengamatan atau 34,99%. Distribusi tersebut menunjukkan bahwa jumlah pengamatan kelas benign lebih banyak dibandingkan kelas malignant, sehingga kedua kategori memiliki proporsi yang tidak seimbang.

4.2 Pembagian Data Training dan Testing

Pembagian data dilakukan untuk memisahkan pengamatan yang digunakan dalam proses pelatihan dan pengujian model. Penelitian ini menggunakan dua proporsi pembagian data, yaitu 80% untuk training dan 20% untuk testing, serta 60% untuk training dan 40% untuk testing. Pengambilan sampel dilakukan secara acak dengan menggunakan nilai seed sebesar 917 agar proses pembagian data dapat direproduksi.

#### PEMBAGIAN DATA TRAINING DAN TESTING ####
prop_train <- c(0.8, 0.6)

for (p in prop_train) {
  set.seed(917)

  index <- sample(1:nrow(bc), round(p * nrow(bc)))

  train <- bc[index, ]
  test <- bc[-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: 546 
## Jumlah Data Testing: 137 
## Proporsi Training: 60 %
## Jumlah Data Training: 410 
## Jumlah Data Testing: 273

Sintaks tersebut digunakan untuk membentuk dua skenario pembagian data. Objek prop_train berisi proporsi data pelatihan sebesar 0,8 dan 0,6. Fungsi sample() mengambil indeks pengamatan secara acak sesuai jumlah sampel yang ditentukan, kemudian indeks tersebut digunakan untuk membentuk data training dan testing. Fungsi set.seed() memastikan pengambilan sampel dapat menghasilkan pembagian yang sama ketika sintaks dijalankan kembali.

Tabel 4.2 Pembagian data training dan testing

Proporsi Training:Testing Data Training Data Testing Total
80%:20% 546 137 683
60%:40% 410 273 683

Berdasarkan Tabel 4.2, pembagian data 80%:20% menghasilkan 546 pengamatan untuk pelatihan dan 137 pengamatan untuk pengujian. Pembagian data 60%:40% menghasilkan 410 pengamatan untuk pelatihan dan 273 pengamatan untuk pengujian. Kedua skenario tersebut digunakan pada setiap variasi jumlah hidden neuron agar kinerja model dapat dibandingkan berdasarkan proporsi data yang berbeda.

4.3 Pembentukan Model Artificial Neural Network

Pembentukan model ANN dilakukan menggunakan paket nnet dengan pendekatan klasifikasi dua kelas. Variabel respons Class diubah menjadi matriks indikator menggunakan fungsi class.ind(), sehingga setiap kategori memiliki satu kolom keluaran. Model dibentuk menggunakan fungsi nnet() dengan pengaturan softmax = TRUE agar jaringan menghasilkan dua keluaran yang merepresentasikan kelas benign dan malignant.

Penelitian ini menggunakan tiga variasi jumlah neuron pada lapisan tersembunyi, yaitu 10, 20, dan 30 neuron. Kombinasi ketiga variasi tersebut dengan dua proporsi pembagian data menghasilkan enam model ANN yang dibandingkan. Setiap model dilatih menggunakan maksimum 500 iterasi dengan nilai seed sebesar 917.

#### PEMBENTUKAN MODEL ANN ####
prop_train <- c(0.8, 0.6)
hidden <- c(10, 20, 30)

hasil <- data.frame()
model_simpan <- list()

for (p in prop_train) {
  set.seed(917)

  index <- sample(1:nrow(bc), round(p * nrow(bc)))

  train <- bc[index, ]
  test <- bc[-index, ]

  # Mengubah respons menjadi matriks indikator
  Y <- class.ind(train$Class)
  X <- train[, 1:9]

  for (h in hidden) {
    set.seed(917)

    nn <- nnet(
      X, Y,
      size = h,
      softmax = TRUE,
      maxit = 500,
      trace = FALSE
    )

    model_simpan[[paste0("p", p * 100, "_h", h)]] <- nn
  }
}
sapply(model_simpan, function(x) {
  paste0("ANN (", neuralweights(x)$struct[1], "\u2013",
         neuralweights(x)$struct[2], "\u2013",
         neuralweights(x)$struct[3], ")")
})
##        p80_h10        p80_h20        p80_h30        p60_h10        p60_h20 
## "ANN (9–10–2)" "ANN (9–20–2)" "ANN (9–30–2)" "ANN (9–10–2)" "ANN (9–20–2)" 
##        p60_h30 
## "ANN (9–30–2)"

Sintaks tersebut digunakan untuk membentuk enam model ANN berdasarkan kombinasi proporsi data dan jumlah hidden neuron. Objek \(X\) berisi sembilan variabel prediktor, sedangkan objek \(Y\) merupakan matriks indikator yang memiliki dua kolom untuk mewakili kedua kelas. Fungsi nnet() membentuk jaringan saraf dengan jumlah neuron tersembunyi sesuai nilai \(h\), sedangkan argumen softmax = TRUE mengatur lapisan keluaran agar menghasilkan dua nilai keluaran yang merepresentasikan peluang setiap kelas.

Argumen maxit = 500 menentukan jumlah maksimum iterasi pelatihan, sedangkan trace = FALSE digunakan agar informasi proses iterasi tidak ditampilkan selama pembentukan model. Setiap model disimpan dalam objek model_simpan menggunakan nama yang menunjukkan proporsi data dan jumlah hidden neuron. Struktur jaringan yang terbentuk untuk model dengan 10 hidden neuron adalah ANN (9–10–2), sedangkan model dengan 20 dan 30 hidden neuron masing-masing memiliki arsitektur ANN (9–20–2) dan ANN (9–30–2).

Tabel 4.3 Konfigurasi model Artificial Neural Network

Model Training:Testing Input Neuron Hidden Neuron Output Neuron Arsitektur
1 80%:20% 9 10 2 ANN (9–10–2)
2 80%:20% 9 20 2 ANN (9–20–2)
3 80%:20% 9 30 2 ANN (9–30–2)
4 60%:40% 9 10 2 ANN (9–10–2)
5 60%:40% 9 20 2 ANN (9–20–2)
6 60%:40% 9 30 2 ANN (9–30–2)

Berdasarkan Tabel 4.3, keenam model menggunakan sembilan neuron masukan yang mewakili variabel prediktor dan dua neuron keluaran yang mewakili kelas benign dan malignant. Perbedaan konfigurasi terletak pada jumlah neuron tersembunyi dan proporsi pembagian data. Variasi tersebut digunakan untuk mengetahui perbedaan kinerja klasifikasi berdasarkan struktur jaringan dan jumlah data yang digunakan dalam pelatihan.

4.4 Hasil Klasifikasi dan Evaluasi Model

Evaluasi dilakukan dengan membandingkan kelas hasil prediksi terhadap kelas aktual pada data pengujian. Perbandingan tersebut menghasilkan tabel klasifikasi yang menunjukkan jumlah prediksi benar dan salah untuk setiap kategori. Ukuran kinerja yang digunakan meliputi akurasi, sensitivitas, dan spesifisitas untuk mengetahui kemampuan model dalam mengklasifikasikan kedua kelas.

#### PREDIKSI DAN EVALUASI MODEL ####

for (p in prop_train) {
  set.seed(917)

  index <- sample(1:nrow(bc), round(p * nrow(bc)))

  train <- bc[index, ]
  test <- bc[-index, ]

  for (h in hidden) {
    nn <- model_simpan[[paste0("p", p * 100, "_h", h)]]

    # Menghitung peluang prediksi setiap kelas
    prob <- predict(nn, newdata = test[, 1:9], type = "raw")

    # Menentukan kelas berdasarkan peluang terbesar
    predict_class <- factor(
      colnames(class.ind(train$Class))[max.col(prob)],
      levels = levels(bc$Class)
    )

    # Membentuk tabel klasifikasi
    tab <- table(
      Aktual = test$Class,
      Prediksi = predict_class
    )

    # Menghitung ukuran evaluasi
    akurasi <- sum(diag(tab)) / nrow(test)

    TP <- tab["malignant", "malignant"]
    FN <- tab["malignant", "benign"]
    TN <- tab["benign", "benign"]
    FP <- tab["benign", "malignant"]

    sensitivitas <- TP / (TP + FN)
    spesifisitas <- TN / (TN + FP)

    hasil <- rbind(
      hasil,
      data.frame(
        Training = paste0(p * 100, "%"),
        Testing = paste0((1 - p) * 100, "%"),
        Hidden = h,
        Akurasi = round(akurasi, 4),
        Sensitivitas = round(sensitivitas, 4),
        Spesifisitas = round(spesifisitas, 4)
      )
    )
  }
}

hasil

Sintaks tersebut digunakan untuk menghasilkan prediksi kelas pada setiap model yang telah dibentuk. Fungsi predict() dengan tipe raw menghasilkan nilai peluang untuk masing-masing kelas, kemudian fungsi max.col() menentukan kelas dengan peluang terbesar. Hasil prediksi dibandingkan dengan kelas aktual menggunakan fungsi table() untuk memperoleh jumlah klasifikasi benar dan salah.

Nilai TP menunjukkan jumlah kelas malignant yang diprediksi secara benar sebagai malignant, sedangkan FN menunjukkan jumlah kelas malignant yang salah diprediksi sebagai benign. Nilai TN menunjukkan jumlah kelas benign yang diprediksi secara benar sebagai benign, sedangkan FP menunjukkan jumlah kelas benign yang salah diprediksi sebagai malignant. Akurasi dihitung berdasarkan perbandingan jumlah prediksi benar terhadap seluruh pengamatan, sensitivitas mengukur kemampuan mengenali kelas malignant, dan spesifisitas mengukur kemampuan mengenali kelas benign.

Tabel 4.4 Hasil klasifikasi dan evaluasi 6 model ANN

Training:Testing Hidden TN FP FN TP Akurasi Sensitivitas Spesifisitas
80%:20% 10 90 3 4 40 94,89% 90,91% 96,77%
80%:20% 20 90 3 3 41 95,62% 93,18% 96,77%
80%:20% 30 91 2 4 40 95,62% 90,91% 97,85%
60%:40% 10 178 8 7 80 94,51% 91,95% 95,70%
60%:40% 20 177 9 7 80 94,14% 91,95% 95,16%
60%:40% 30 178 8 8 79 94,14% 90,80% 95,70%

Berdasarkan Tabel 4.4, model dengan pembagian data 80%:20% dan 10 hidden neuron menghasilkan akurasi sebesar 94,89%. Model tersebut mampu mengklasifikasikan 90 pengamatan benign dan 40 pengamatan malignant secara tepat. Kesalahan klasifikasi terdiri atas tiga pengamatan benign yang diprediksi sebagai malignant dan empat pengamatan malignant yang diprediksi sebagai benign.

Model dengan pembagian data 80%:20% dan 20 hidden neuron menghasilkan akurasi sebesar 95,62%, sensitivitas 93,18%, dan spesifisitas 96,77%. Model ini memiliki sensitivitas tertinggi di antara keenam konfigurasi, yang menunjukkan kemampuan lebih baik dalam mengenali pengamatan kelas malignant. Jumlah kesalahan klasifikasi pada kelas malignant juga lebih sedikit dibandingkan model 80%:20% dengan 10 dan 30 hidden neuron.

Model dengan pembagian data 80%:20% dan 30 hidden neuron menghasilkan akurasi sebesar 95,62%, sama dengan model 20 hidden neuron. Model ini memiliki spesifisitas sebesar 97,85%, yang merupakan nilai tertinggi di antara keenam model. Hasil tersebut menunjukkan bahwa model ini memiliki kemampuan terbaik dalam mengenali kelas benign secara tepat.

Pada pembagian data 60%:40%, model dengan 10 hidden neuron memperoleh akurasi sebesar 94,51%. Model dengan 20 dan 30 hidden neuron masing-masing memperoleh akurasi sebesar 94,14%. Hasil tersebut menunjukkan bahwa peningkatan jumlah hidden neuron pada proporsi data 60%:40% tidak menghasilkan peningkatan akurasi pada pengujian yang dilakukan.

Secara keseluruhan, model dengan pembagian data 80%:20% memberikan hasil akurasi yang lebih tinggi dibandingkan pembagian data 60%:40%. Akurasi tertinggi sebesar 95,62% diperoleh oleh model dengan 20 dan 30 hidden neuron. Model 20 hidden neuron lebih unggul berdasarkan sensitivitas, sedangkan model 30 hidden neuron lebih unggul berdasarkan spesifisitas.

4.5 Eksplorasi Struktur Jaringan ANN

Eksplorasi struktur jaringan dilakukan untuk mengetahui susunan neuron dan bobot yang terbentuk selama proses pelatihan. Model yang digunakan dalam eksplorasi ini adalah model dengan pembagian data 80%:20% dan 10 hidden neuron, yang disimpan dalam objek nn_terpilih. Model tersebut digunakan sebagai contoh untuk menampilkan struktur jaringan dan bobot hasil estimasi.

#### EKSPLORASI STRUKTUR JARINGAN ####

# Memilih model 80:20 dengan 10 hidden neuron
nn_terpilih <- model_simpan[["p80_h10"]]

# Menampilkan struktur jaringan
plotnet(nn_terpilih)

Sintaks tersebut digunakan untuk memilih model ANN dengan proporsi data 80%:20% dan 10 hidden neuron. Fungsi plotnet() digunakan untuk menampilkan struktur jaringan berdasarkan bobot yang telah diperoleh selama proses pelatihan. Visualisasi ini memperlihatkan hubungan antara neuron pada lapisan masukan, lapisan tersembunyi, dan lapisan keluaran.

Gambar 1. Visualisasi struktur jaringan ANN (9–10–2)

Gambar 1. Visualisasi struktur jaringan ANN (9–10–2)

Gambar 1 memperlihatkan struktur jaringan ANN yang terdiri atas tiga lapisan, yaitu lapisan masukan, lapisan tersembunyi, dan lapisan keluaran. Lapisan masukan memiliki sembilan neuron yang mewakili variabel Cl.thickness, Cell.size, Cell.shape, Marg.adhesion, Epith.c.size, Bare.nuclei, Bl.cromatin, Normal.nucleoli, dan Mitoses. Lapisan tersembunyi terdiri atas sepuluh neuron yang diberi simbol H1 sampai H10, sedangkan lapisan keluaran terdiri atas dua neuron, yaitu O1 untuk kelas benign dan O2 untuk kelas malignant.

Garis penghubung pada Gambar 1 menunjukkan hubungan antarneuron melalui bobot jaringan. Setiap neuron pada lapisan masukan terhubung dengan neuron pada lapisan tersembunyi, kemudian diteruskan menuju kedua neuron keluaran. Simbol B1 dan B2 menunjukkan komponen bias yang digunakan dalam perhitungan pada lapisan tersembunyi dan lapisan keluaran. Struktur tersebut menegaskan bahwa model yang dianalisis memiliki arsitektur ANN (9–10–2).

# Menampilkan bobot jaringan
neuralweights(nn_terpilih)
## $struct
## [1]  9 10  2
## 
## $wts
## $wts$`hidden 1 1`
##  [1] -14.799266  20.219936   4.330537  20.775915  33.266173  27.879819
##  [7]  -5.305162 -11.748567 -39.480824 -34.044657
## 
## $wts$`hidden 1 2`
##  [1] 113.0587781 -32.1511888 -15.2316763  28.6257560   0.7240131  -2.0624766
##  [7]  13.5864152 -12.1607884  -4.8187707  -5.4897961
## 
## $wts$`hidden 1 3`
##  [1] -82.72911  75.33029  65.55509 -96.84781 -33.82923  77.97365 -28.50491
##  [8] -64.05762  14.51561  23.16422
## 
## $wts$`hidden 1 4`
##  [1] -73.220191  28.421929 -13.362891  -8.868528  26.519896  22.888213
##  [7] -17.622161  29.216987   9.009812  -9.025893
## 
## $wts$`hidden 1 5`
##  [1] -14.839769  12.811928 -71.810283  12.947304  15.498747  43.054895
##  [7]  -7.240037  28.076335  23.803557  35.035624
## 
## $wts$`hidden 1 6`
##  [1] 136.848058  -3.455027 -12.322357  13.979384  -8.678357  -5.275161
##  [7] -18.218188  -5.524799  -7.387849 -19.682374
## 
## $wts$`hidden 1 7`
##  [1]  42.9673955 -30.6667527  -0.2192457 -42.7542667  18.7004422  27.8901361
##  [7] -34.0790274 -10.6167865  27.9470174 -26.2611883
## 
## $wts$`hidden 1 8`
##  [1] 140.021341  -6.189393   6.222319   1.822215 -13.917721  -4.875609
##  [7] -15.475155  10.617828  -9.089103 -42.212544
## 
## $wts$`hidden 1 9`
##  [1] 114.539838  -7.114318  -7.869301  -3.372430   5.087342 -18.252787
##  [7]  -4.438346   5.173393   7.013693  -5.514681
## 
## $wts$`hidden 1 10`
##  [1]  67.884611 -71.504307 -39.024716  -5.416834 -40.535859  50.736391
##  [7] -25.671057  53.173644  -4.920405  11.762188
## 
## $wts$`out 1`
##  [1] -18.08820  20.07910  34.68627  54.50141 -65.48525 -27.75980  33.59759
##  [8]  28.95472  15.72522  45.78479  38.59751
## 
## $wts$`out 2`
##  [1]  16.98090 -20.03368 -35.14410 -55.40669  65.80651  27.11688 -34.00995
##  [8] -28.79340 -16.78129 -46.12925 -38.06871

Fungsi neuralweights() digunakan untuk memperoleh informasi mengenai struktur jaringan dan nilai bobot yang menghubungkan setiap neuron. Bagian struct menunjukkan jumlah neuron pada setiap lapisan, sedangkan bagian wts menampilkan nilai bobot pada hubungan antara lapisan masukan, lapisan tersembunyi, dan lapisan keluaran.

Hasil neuralweights() menunjukkan bahwa model ANN memiliki struktur jaringan 9–10–2. Struktur tersebut terdiri atas sembilan neuron masukan, sepuluh neuron tersembunyi, dan dua neuron keluaran. Jumlah bobot pada setiap hubungan antarlapisan disajikan dalam Tabel 4.5.

Tabel 4.5 Ringkasan bobot jaringan ANN

Hubungan Antarlapisan Jumlah Neuron Jumlah Bobot
Input layer ke hidden layer 9 ke 10 100
Hidden layer ke output layer 10 ke 2 22
Total 9–10–2 122

Berdasarkan Tabel 4.5, hubungan antara lapisan masukan dan lapisan tersembunyi menghasilkan 100 bobot, termasuk bobot bias. Hubungan antara lapisan tersembunyi dan lapisan keluaran menghasilkan 22 bobot, termasuk bobot bias pada lapisan keluaran. Dengan demikian, jumlah keseluruhan bobot jaringan adalah 122.

Seluruh bobot tersebut diperoleh melalui proses pelatihan dan digunakan dalam perhitungan keluaran jaringan. Nilai bobot yang positif maupun negatif menunjukkan arah kontribusi matematis suatu hubungan dalam perhitungan neuron, bukan hubungan sebab-akibat antarvariabel.

4.6 Visualisasi Kepentingan Variabel Menggunakan Olden

Analisis kepentingan variabel dilakukan menggunakan metode Olden untuk mengetahui kontribusi relatif setiap variabel prediktor terhadap keluaran jaringan. Model ANN yang memiliki dua neuron keluaran menghasilkan dua visualisasi kepentingan variabel, yaitu untuk kelas malignant dan kelas benign. Kedua visualisasi tersebut dianalisis secara terpisah karena setiap neuron keluaran merepresentasikan kategori yang berbeda.

#### VISUALISASI KEPENTINGAN VARIABEL ####

# Kepentingan variabel untuk kelas malignant
olden(nn_terpilih, out_var = "malignant")
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Fungsi olden() digunakan untuk menghitung dan menampilkan kepentingan variabel berdasarkan bobot jaringan. Argumen out_var = “malignant” menentukan bahwa analisis kepentingan variabel dilakukan terhadap neuron keluaran yang merepresentasikan kelas malignant. Hasilnya berupa grafik batang yang memperlihatkan kontribusi relatif setiap variabel prediktor terhadap keluaran tersebut.

Gambar 2. Kepentingan variabel terhadap kelas *malignant*

Gambar 2. Kepentingan variabel terhadap kelas malignant

Gambar 2. menunjukkan bahwa variabel Bl.cromatin, Cell.shape, dan Marg.adhesion memiliki kontribusi positif yang relatif besar terhadap keluaran kelas malignant. Variabel Cl.thickness, Bare.nuclei, Mitoses, dan Normal.nucleoli juga memiliki kontribusi positif, tetapi besarnya berbeda-beda. Sementara itu, variabel Epith.c.size dan Cell.size memiliki kontribusi negatif terhadap keluaran kelas malignant.

Hasil tersebut menunjukkan bahwa kontribusi setiap variabel terhadap klasifikasi kelas malignant tidak sama. Variabel dengan nilai kepentingan yang lebih besar secara absolut memiliki kontribusi relatif lebih kuat dalam pembentukan keluaran jaringan. Tanda positif dan negatif menunjukkan arah kontribusi terhadap keluaran yang dianalisis, bukan menunjukkan hubungan sebab-akibat atau pengaruh langsung seperti koefisien regresi.

# Kepentingan variabel untuk kelas benign
olden(nn_terpilih, out_var = "benign")
## Warning: `label` cannot be a <ggplot2::element_blank> object.

Sintaks tersebut digunakan untuk menampilkan kepentingan variabel terhadap kelas benign. Argumen out_var = “benign” mengarahkan analisis pada neuron keluaran yang merepresentasikan kelas tersebut. Hasil visualisasi digunakan untuk mengamati kontribusi relatif sembilan variabel prediktor terhadap keluaran kelas benign.

Gambar 3. Kepentingan variabel terhadap kelas *benign*

Gambar 3. Kepentingan variabel terhadap kelas benign

Gambar 3 memperlihatkan bahwa variabel Cell.size dan Epith.c.size memiliki kontribusi positif yang relatif besar terhadap keluaran kelas benign. Sebaliknya, variabel Bl.cromatin, Cell.shape, Marg.adhesion, Cl.thickness, Bare.nuclei, Mitoses, dan Normal.nucleoli menunjukkan kontribusi negatif terhadap keluaran tersebut. Pola ini memperlihatkan bahwa arah kontribusi variabel pada kelas benign berbeda dari arah kontribusinya pada kelas malignant.

Perbedaan arah kontribusi tersebut berkaitan dengan penggunaan dua neuron keluaran yang masing-masing merepresentasikan kelas yang berbeda. Hasil Olden membantu mengidentifikasi variabel yang memberikan kontribusi relatif besar dalam proses klasifikasi pada setiap keluaran. Interpretasi kepentingan variabel tetap terbatas pada kontribusi dalam model dan tidak dapat digunakan untuk menyimpulkan hubungan sebab-akibat.

BAB V KESIMPULAN

5.1 Kesimpulan

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.

ANN klasifikasi dapat diimplementasikan menggunakan bahasa pemrograman R dengan paket nnet. Tahapan penerapannya meliputi persiapan data, pembagian data menjadi data pelatihan dan pengujian, penentuan jumlah hidden neuron, pembentukan model, serta prediksi kelas pada data pengujian. Kinerja model dapat dievaluasi menggunakan confusion matrix, akurasi, presisi, sensitivitas, dan spesifisitas. Berbagai ukuran evaluasi tersebut digunakan untuk mengetahui kemampuan model dalam mengklasifikasikan setiap kelas serta membandingkan kinerja beberapa konfigurasi jaringan.

Berdasarkan batasan masalah dan hasil analisis, metode Artificial Neural Network (ANN) mampu melakukan klasifikasi pada dataset BreastCancer menggunakan sembilan variabel prediktor untuk membedakan kelas benign dan malignant. Enam model yang dibentuk berdasarkan kombinasi dua proporsi pembagian data dan tiga variasi jumlah hidden neuron menghasilkan kinerja klasifikasi yang baik, dengan akurasi tertinggi sebesar 95,62% pada pembagian data 80%:20% dengan 20 dan 30 hidden neuron. Model 20 hidden neuron memiliki sensitivitas tertinggi sebesar 93,18%, sedangkan model 30 hidden neuron memiliki spesifisitas tertinggi sebesar 97,85%. Eksplorasi struktur jaringan menunjukkan bahwa model ANN dengan arsitektur 9–10–2 memiliki 122 bobot yang menghubungkan seluruh neuron, sedangkan analisis Olden memperlihatkan perbedaan kontribusi relatif variabel prediktor terhadap keluaran kelas benign dan malignant.

DAFTAR PUSTAKA

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

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

Fransiska, H. (2026). Modul praktikum artificial neural network (ANN) untuk regresi dan klasifikasi. Laboratorium Matematika, Universitas Bengkulu.

Ikhsan, M., Armansyah, & Tamba, A. A. (2022). Implementasi jaringan syaraf tiruan backpropagation pada klasifikasi grade teh hitam. Jurnal Sistem Komputer dan Informatika (JSON), 4(2), 387–395. https://doi.org/10.30865/json.v4i2.5312

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