BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan algoritma machine learning terus berlanjut dan penerapannya meluas ke berbagai bidang, seperti kesehatan, ekonomi, dan pendidikan (Vigo dkk., 2022). Salah satu tugas utamanya adalah klasifikasi, yaitu menentukan kategori suatu data berdasarkan fitur-fiturnya, dan telah banyak digunakan dalam diagnosis medis, prediksi keuangan, hingga sistem rekomendasi. Namun, performa satu algoritma klasifikasi tidak selalu seragam karena sangat bergantung pada jenis data dan kompleksitas masalah (Pramudita dkk., 2025). Untuk mengatasinya dikembangkan ensemble learning, yaitu teknik yang menggabungkan beberapa algoritma dasar untuk memecahkan masalah yang sama sehingga performa prediksi meningkat (Vigo dkk., 2022). Pendekatan seperti Bagging dan Boosting banyak digunakan karena mampu mengurangi varians dan memperbaiki generalisasi model (Pramudita dkk., 2025).

Salah satu teknik ensemble yang banyak digunakan adalah Bootstrap Aggregating atau Bagging. Pada metode ini, setiap learner dilatih dengan data yang dipilih secara acak dari data latih, kemudian hasil setiap learner digabungkan. Untuk klasifikasi, hasil akhir ditentukan melalui suara terbanyak (voting), sedangkan untuk regresi diambil rata-rata dari seluruh keluaran (Vigo dkk., 2022). Bagging diterapkan untuk menurunkan variansi model dan meningkatkan kestabilan hasil klasifikasi (Pramudita dkk., 2025). Penelitian terdahulu menunjukkan bahwa Bagging yang dikombinasikan dengan pohon keputusan dapat meningkatkan akurasi dan nilai AUC-ROC dalam klasifikasi penyakit ginjal kronis (Zuriati dkk., 2025).

Meskipun Bagging telah banyak diterapkan, pemahaman terhadap konsep dasar dan prinsip kerjanya perlu dijelaskan secara runtut agar dapat digunakan dengan tepat. Dalam praktiknya, penerapan metode ini membutuhkan perangkat lunak statistik, dan R menjadi salah satu pilihan yang banyak digunakan karena bersifat open source serta menyediakan berbagai paket pendukung. Selain itu, penerapan Bagging belum lengkap tanpa evaluasi performa model, misalnya melalui akurasi, confusion matrix, atau F1-score, sehingga kualitas model dapat dinilai secara objektif. Berdasarkan hal tersebut, makalah ini disusun untuk membahas konsep dasar dan prinsip kerja metode Bagging, cara mengimplementasikannya menggunakan R, serta cara mengevaluasi performanya.

1.2 Rumusan Masalah

  1. Apa konsep dasar dan prinsip kerja metode Bagging?
  2. Bagaimana cara mengimplementasikan metode Bagging dengan menggunakan R?
  3. Bagaimana mengevaluasi performa Bagging?

1.3 Tujuan

  1. Mahasiswa dapat memahami konsep dasar dan prinsip kerja metode Bagging.
  2. Mahasiswa dapat megimplementasikan metode Bagging dengan menggunakan R.
  3. Mengevaluasi performa Bagging.

BAB II TINJAUAN PUSTAKA

2.1 Bagging

Bootstrap aggregation yang juga disebut Bagging adalah sebuah meta-algoritma ensemble. Algoritma ini meningkatkan stabilitas dan akurasi model serta mengurangi masalah overfitting. Metode ini dapat digunakan dengan metode apa pun; dalam kasus fungsi kontinu, metode ini mengambil rata-rata tertimbang (weighted average) dari output beberapa model, sedangkan dalam klasifikasi, metode ini memberikan bobot pada output untuk digabungkan menjadi satu output tunggal (Fransiska, 2026).

Bagging pertama kali diusulkan oleh Leo Breiman pada tahun 1994 untuk meningkatkan hasil dari suatu masalah klasifikasi. Langkah-langkah dalam bagging secara garis besar dibagi menjadi empat bagian (Fransiska, 2026): 1. Membuat sampel dari data pelatihan (training data); jumlah sampel harus dalam jumlah yang sesuai (tidak terlalu banyak maupun terlalu sedikit). 2. Melatih model pada masing-masing sampel. 3. Membuat classifier dari setiap model dan menyimpan hasilnya. 4. Berdasarkan jenis ensemble yang digunakan baik itu voting tertimbang (weighted vote), voting mayoritas (majority vote), atau cara khusus lainnya, hasil tersebut digabungkan untuk memprediksi data uji (test data).

2.2 Evaluasi Model

Prediksi dalam model klasifikasi tidak selalu sempurna, sehingga evaluasi kinerja diperlukan. Salah satu metode evaluasi yang umum digunakan adalah confusion matrix, yaitu tabulasi antara kelas aktual dan kelas prediksi. Untuk data dua kelas, evaluasi mencakup empat komponen, yaitu True Positive (TP), True Negative (TN), False Positive (FP), dan False Negative (FN) yang digunakan untuk menilai akurasi dan ketepatan klasifikasi. Beberapa metrik evaluasi kinerja model klasifikasi meliputi akurasi, presisi, recall, dan spesifisitas (Dewi, 2020; Khairunnisa, 2023; Yuniarsyih R.A dkk., 2025).

  1. Akurasi

Akurasi digunakan untuk mengukur proporsi total prediksi yang benar dibandingkan dengan keseluruhan data. Akurasi diperoleh dengan menggunakan persamaan berikut: \[ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \] 2. Presisi

Presisi digunakan untuk mengukur proporsi prediksi positif yang benar. Presisi diperoleh dengan menggunakan persamaan berikut: \[ Precision = \frac{TP}{TP + FP} \] 3. Sensitivitas (Recall)

Sensitivitas digunakan untuk mengukur sebarapa baik model mengidentifikasi kejadian positif dari seluruh kasus yang sebenarnya positif. Sensitivitas diperoleh dengan menggunakan persamaan berikut: \[ Recall = \frac{TP}{TP + FN} \] 4. Spesifisitas

Spesifisitas digunakan untuk mengukur seberapa baik model mengidentifikasi kejadian negatif dari seluruh kasus yang sebenarnya negatif. Spesifisitas diperoleh dengan menggunakan persamaan berikut: \[ Specificity = \frac{TN}{TN + FP} \]

BAB III METODE PENELITIAN

3.1 Sumber Data

Jenis data yang digunakan pada penelitian ini adalah data kategorik dan numerik. Data kategorik adalah data yang menunjukkan kategori atau kelompok tertentu dan digunakan untuk membedakan karakteristik suatu objek sedangkan data numerik adalah data berbentuk angka yang menunjukkan nilai atau jumlah dan dapat digunakan dalam perhitungan matematis. Sumber data yang diperoleh dalam penelitian ini adalah data sekunder. Data sekunder adalah sekumpulan informasi yang telah ada sebelumnya dan digunakan sebagai pelengkap kebutuhan data penelitian, di mana pada praktikum ini data sekundernya adalah data yang berasal dari program RStudio.

3.2 Variabel Penelitian

Variabel penelitian adalah segala sesuatu yang akan menjadi objek pengamatan penelitian. Pada laporan ini terdapat 10 variabel yang digunakan pada data. Variabel tersebut, yaitu Cl.thickness, Cell.size, Cell.shape, Marg.adhesion, Epith.c.size, Bare.nuclei, Bl,cromatin, Normal.nucleoli, Mitoses, dan Class.

3.3 Langkah-langkah Analisis

  1. Input data.
  2. Preprocessing data.
  3. Membagi data menjadi data latih dan data uji.
  4. Membangun model Bagging Classification.
  5. Melakukan prediksi pada data uji.
  6. Membentuk confusion matrix.
  7. Menghitung metrik evaluasi.
  8. Membandingkan hasil evaluasi.

BAB IV HASIL DAN PEMBAHASAN

4.1 Library

Langkah pertama adalah memanggil library yang akan digunakan lalu memanggil data

library(mlbench)
library(ipred)
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
# Memanggil data Breast Cancer
data("BreastCancer", package = "mlbench")
data <- BreastCancer

Dataset BreastCancer dari package mlbench terdiri atas 699 observasi dan 11 variabel. Variabel tersebut mencakup satu variabel identitas (Id), sembilan variabel prediktor yang menggambarkan karakteristik sel, serta satu variabel respon (Class) yang terdiri atas dua kategori, yaitu benign (jinak) dan malignant (ganas).

4.2 Preprocessing Data

# Menghapus kolom ID
data$Id <- NULL

# Menangani missing value
data$Bare.nuclei <- as.numeric(as.character(data$Bare.nuclei))
data <- na.omit(data)

# Mengatur kelas
data$Class <- factor(
  data$Class,
  levels = c("benign", "malignant")
)

# Membagi data latih dan data uji (70:30)
set.seed(234)
index <- createDataPartition(
  data$Class,
  p = 0.7,
  list = FALSE)

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

Kolom Id dihapus karena tidak digunakan dalam pemodelan. Variabel Bare.nuclei diubah menjadi numerik dan baris yang memiliki missing value dihapus. Selanjutnya, variabel Class ditetapkan sebagai faktor dengan kelas benign dan malignant. Data kemudian dibagi menjadi 70% data latih dan 30% data uji.

4.3 Bagging Classification

# Jumlah bagging yang dibandingkan
nbagg_list <- c(25, 50, 100)

# Menyimpan hasil evaluasi
hasil_evaluasi <- data.frame()

for (n in nbagg_list) {
  
  # Membuat model Bagging Classification
  set.seed(234)
  model <- bagging(
    Class ~ .,
    data = train,
    nbagg = n,
    coob = TRUE
  )
  
  # Prediksi data uji
  prediksi <- predict(model, newdata = test)
  
  # Confusion Matrix
  cm <- table(
    Aktual = factor(test$Class,
                    levels = c("benign", "malignant")),
    Prediksi = factor(prediksi,
                      levels = c("benign", "malignant"))
  )
  
  print(paste("Confusion Matrix nbagg =", n))
  print(cm)
  # Mengambil nilai confusion matrix
  TN <- cm["benign", "benign"]
  FP <- cm["benign", "malignant"]
  FN <- cm["malignant", "benign"]
  TP <- cm["malignant", "malignant"]
  
  # Menghitung metrik evaluasi
  accuracy <- (TP + TN) / sum(cm)
  
  precision <- ifelse(
    TP + FP == 0, NA, TP / (TP + FP))
  
  recall <- ifelse(
    TP + FN == 0, NA, TP / (TP + FN))
  
  specificity <- ifelse(
    TN + FP == 0, NA, TN / (TN + FP))
  
  f1_score <- ifelse(
    is.na(precision) || is.na(recall) ||
      precision + recall == 0, NA,
    2 * precision * recall / (precision + recall))
  
  # Menyimpan hasil
  hasil_evaluasi <- rbind(
    hasil_evaluasi,
    data.frame(
      nbagg = n,
      Accuracy = accuracy,
      Precision = precision,
      Recall = recall,
      Specificity = specificity,
      F1_Score = f1_score))}
## [1] "Confusion Matrix nbagg = 25"
##            Prediksi
## Aktual      benign malignant
##   benign       130         3
##   malignant      5        66
## [1] "Confusion Matrix nbagg = 50"
##            Prediksi
## Aktual      benign malignant
##   benign       130         3
##   malignant      5        66
## [1] "Confusion Matrix nbagg = 100"
##            Prediksi
## Aktual      benign malignant
##   benign       130         3
##   malignant      5        66

Model Bagging Classification dibangun menggunakan jumlah bagging (nbagg) sebesar 25, 50, dan 100. Berdasarkan confusion matrix, ketiga model menghasilkan hasil yang sama, yaitu 130 data benign dan 66 data malignant berhasil diklasifikasikan dengan benar. Sementara itu, terdapat 3 data benign yang salah diklasifikasikan sebagai malignant dan 5 data malignant yang salah diklasifikasikan sebagai benign.

4.4 Evaluasi Model

# Menampilkan hasil perbandingan
hasil_evaluasi[, -1] <- round(
  hasil_evaluasi[, -1], 4)
print(hasil_evaluasi)
##   nbagg Accuracy Precision Recall Specificity F1_Score
## 1    25   0.9608    0.9565 0.9296      0.9774   0.9429
## 2    50   0.9608    0.9565 0.9296      0.9774   0.9429
## 3   100   0.9608    0.9565 0.9296      0.9774   0.9429

Ketiga model menghasilkan akurasi sebesar 96,08%, presisi 95,65%, recall 92,96%, specificity 97,74%, dan F1-score 94,29%. Hasil ini menunjukkan bahwa model memiliki kemampuan klasifikasi yang baik. Karena seluruh metrik evaluasi bernilai sama, penambahan jumlah bagging dari 25 menjadi 50 dan 100 tidak meningkatkan performa model pada percobaan ini. Dengan demikian, nbagg = 25 dapat dipilih karena memberikan performa yang setara dengan biaya komputasi yang relatif lebih rendah.

BAB V KESIMPULAN

5.1 Kesimpulan

Metode Bagging (Bootstrap Aggregation) merupakan metode ensemble yang bertujuan meningkatkan stabilitas dan akurasi model serta mengurangi overfitting dengan membentuk beberapa model dari sampel data pelatihan. Prinsip kerjanya meliputi pengambilan sampel bootstrap, pelatihan model pada setiap sampel, dan penggabungan hasil prediksi menggunakan majority voting untuk klasifikasi atau rata-rata untuk regresi. Kinerja model yang dihasilkan dapat dievaluasi menggunakan confusion matrix melalui metrik akurasi, presisi, recall, dan spesifisitas.

Metode Bagging diimplementasikan dalam R menggunakan fungsi bagging() dari package ipred dengan menentukan variabel respons dan prediktor serta jumlah bagging (nbagg). Model dilatih menggunakan data latih, kemudian digunakan untuk memprediksi kelas pada data uji. Selanjutnya, hasil prediksi dievaluasi menggunakan confusion matrix dan metrik evaluasi untuk membandingkan kinerja model dengan jumlah bagging yang berbeda.

Performa metode Bagging dievaluasi dengan membandingkan kelas aktual dan kelas hasil prediksi menggunakan confusion matrix untuk memperoleh nilai TP, TN, FP, dan FN. Selanjutnya, kinerja model diukur menggunakan metrik akurasi, presisi, recall, dan spesifisitas. Hasil evaluasi dari setiap jumlah bagging dibandingkan untuk mengetahui kinerja model terbaik.

Berdasarkan hasil implementasi metode Bagging pada data BreastCancer, model dengan nbagg = 25, 50, dan 100 menghasilkan performa yang sama, yaitu akurasi 96,08%, presisi 95,65%, recall 92,96%, spesifisitas 97,74%, dan F1-score 94,29%. Hasil tersebut menunjukkan bahwa model memiliki kemampuan klasifikasi yang baik dalam membedakan kelas benign dan malignant. Dengan demikian, nbagg = 25 dapat dipilih karena menghasilkan performa yang setara dengan jumlah bagging yang lebih besar, tetapi lebih efisien secara komputasi.

DAFTAR PUSTAKA

Dewi, M. R. (2020). Klasifikasi Akses Internet Oleh Anak-Anak dan Remaja Dewasa di Jawa Timur Menggunakan SupportVector Machine. J. Ris. & Ap. Mat, 4(1), 17–27.

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

Khairunnisa, A. (2023). Perbandingan Model Random Forest dan XGBOOST Untuk Prediksi Kejahatan Kesusilaan di Provinsi Jawa Barat. JIKO (Jurnal Informatika Dan Komputer), 7(2), 202. https://doi.org/10.26798/jiko.v7i2.799

Pramudita, R., Safitri, N., & Nazah, V. Z. (2025). Studi komparatif algoritma machine learning dengan teknik Bagging dan AdaBoost pada klasifikasi kanker payudara. Tematik: Jurnal Teknologi Informasi Komunikasi, 12(1), 102–108. https://doi.org/10.38204/tematik.v12i1.2435

Vigo, O., Lukas, S., Krisnadi, D., & Widjaja, P. (2022). Perbandingan performa Bagging dan AdaBoost untuk klasifikasi data multi-class. Information System Development, 7(2), 66–69. https://doi.org/10.19166/isd.v7i2.547

Yuniarsyih R.A, R. D., Muhadi, R. A., Fitrianto, A., & Silvianti, P. (2025). Analisis Regresi Logistik Biner dan Random Forest untuk Prediksi Faktor-Faktor Stunting di Pulau Jawa. Euler: Jurnal Ilmiah Matematika, Sains Dan Teknologi, 13(2), 147–156. https://doi.org/10.37905/euler.v13i2.31680

Zuriati, Meilantika, D., Arpan, A., Permata, R., Sriyanto, & Mas’ud, M. Z. (2025). Enhancing chronic kidney disease classification using decision tree and bootstrap aggregating: UCI dataset study with improved accuracy and AUC-ROC. Jurnal Teknik Informatika (JUTIF), 6(5), 3111–3123. https://doi.org/10.52436/1.jutif.6.5.5271