Abstrak

Kuat tekan beton merupakan parameter penting yang digunakan untuk menilai kualitas dan kinerja beton dalam konstruksi. Hubungan antara komposisi campuran beton dan umur beton terhadap kuat tekan beton bersifat kompleks serta melibatkan interaksi nonlinier antarvariabel, sehingga diperlukan metode yang mampu memodelkan hubungan tersebut secara akurat. Penelitian ini bertujuan untuk membangun model Support Vector Regression (SVR) dalam memprediksi kuat tekan beton, mengevaluasi performanya, serta membandingkannya dengan model regresi linier. Data yang digunakan adalah Concrete Compressive Strength Dataset dari UCI Machine Learning Repository yang terdiri atas 1030 observasi dengan delapan variabel prediktor dan satu variabel respons berupa kuat tekan beton. Data dibagi menjadi data latih sebesar 80% dan data uji sebesar 20%, kemudian seluruh variabel prediktor dinormalisasi menggunakan metode z-score normalization. Model SVR dibangun menggunakan kernel Radial Basis Function (RBF) dengan pemilihan hyperparameter terbaik melalui hyperparameter tuning dan 5-fold cross-validation. Hasil penelitian menunjukkan bahwa model SVR dengan kernel RBF menghasilkan nilai cost (\(C\)) sebesar 45.2137, sigma (\(\sigma\)) sebesar 0.25089, dan margin (\(\varepsilon\)) sebesar 0.17737. Pada data uji, model SVR memperoleh RMSE sebesar 5.918 MPa, MAE sebesar 4.109 MPa, dan \(R^2\) sebesar 0.873, sedangkan model regresi linier menghasilkan RMSE sebesar 10.854 MPa, MAE sebesar 8.394 MPa, dan \(R^2\) sebesar 0.570. Hasil tersebut menunjukkan bahwa SVR mampu memberikan performa prediksi yang lebih baik dibandingkan regresi linier karena lebih efektif dalam menangkap hubungan nonlinier antara komposisi campuran beton, umur beton, dan kuat tekan beton. Oleh karena itu, SVR dengan kernel RBF dapat digunakan sebagai metode pendukung yang efektif dalam mengestimasi kuat tekan beton pada tahap awal perancangan campuran beton.

Kata Kunci: Kuat Tekan Beton, Regresi, Machine Learning, Support Vector Regression, Kernel RBF.

Bagian 1. Pendahuluan

1.1. Latar Belakang

Beton merupakan salah satu material konstruksi yang paling banyak digunakan karena memiliki kemampuan menahan beban tekan yang tinggi serta berperan penting dalam menjamin keamanan dan ketahanan struktur bangunan (Ahmed, 2024; Diaferio & Varona, 2024). Kuat tekan beton (concrete compressive strength) menjadi parameter utama yang digunakan untuk menilai kualitas dan kinerja beton dalam berbagai aplikasi teknik sipil (Diaferio & Varona, 2024). Oleh karena itu, kemampuan untuk memperkirakan kuat tekan beton secara akurat menjadi aspek penting dalam proses perancangan dan pengendalian mutu konstruksi (Yeh, 1998).

Perkembangan teknologi beton telah menghasilkan beton kinerja tinggi (high-performance concrete atau HPC) yang memiliki karakteristik lebih kompleks dibandingkan beton konvensional. Selain semen, agregat halus, agregat kasar, dan air, HPC juga memanfaatkan bahan tambahan seperti fly ash, blast furnace slag, dan superplasticizer untuk meningkatkan sifat mekanik maupun durabilitas beton. Penambahan berbagai material tersebut menyebabkan hubungan antara komposisi campuran dan kuat tekan beton menjadi semakin kompleks sehingga perilaku beton sulit dimodelkan menggunakan pendekatan sederhana (Yeh, 1998).

Salah satu konsep yang paling berpengaruh dalam teknologi beton adalah aturan Abrams (Abrams’ law) yang menyatakan bahwa kuat tekan beton berbanding terbalik dengan rasio air terhadap semen (water-to-cement ratio atau w/c). Menurut konsep ini, beton dengan rasio w/c yang sama cenderung memiliki kuat tekan yang serupa meskipun komposisi material lainnya berbeda. Namun, berbagai penelitian menunjukkan bahwa perkembangan kuat tekan beton tidak hanya dipengaruhi oleh rasio w/c, tetapi juga oleh kandungan semen, fly ash, blast furnace slag, dan bahan penyusun lainnya. Pada beberapa kasus, dua campuran beton dengan rasio w/c yang sama dapat menghasilkan kuat tekan yang berbeda karena perbedaan komposisi material yang digunakan. Temuan tersebut menunjukkan bahwa hubungan antara komposisi campuran beton dan kuat tekan bersifat kompleks, nonlinier, serta melibatkan interaksi antarvariabel yang sulit dijelaskan menggunakan model empiris konvensional (Yeh, 1998).

Penentuan kuat tekan beton secara konvensional umumnya dilakukan melalui metode pengujian, seperti core drilling dan rebound test. Meskipun mampu memberikan estimasi kuat tekan yang cukup akurat, metode tersebut relatif memerlukan waktu dan sumber daya yang besar, terutama ketika harus mengevaluasi berbagai kombinasi campuran beton (Wang et al., 2024). Kondisi ini mendorong pengembangan metode prediksi yang lebih cepat, akurat, dan andal. Salah satu pendekatan yang berkembang pesat adalah machine learning, yang memungkinkan pembangunan model prediksi kuat tekan beton berdasarkan data historis komposisi campuran beton tanpa harus melakukan pengujian fisik pada setiap variasi campuran.

Salah satu metode machine learning yang banyak digunakan pada permasalahan regresi adalah Support Vector Regression (SVR). Melalui penggunaan fungsi kernel, SVR mampu memodelkan hubungan nonlinier dengan mentransformasikan data ke ruang fitur berdimensi lebih tinggi. Selain itu, SVR memiliki kemampuan generalisasi yang baik karena menerapkan prinsip structural risk minimization untuk meminimalkan kesalahan generalisasi model (Du et al., 2024). Dengan memanfaatkan berbagai variabel komposisi campuran beton dan umur beton, SVR diharapkan mampu memodelkan hubungan yang kompleks dan nonlinier terhadap kuat tekan beton sehingga dapat memberikan performa prediksi yang akurat.

1.2. Tujuan Analisis

Berdasarkan uraian latar belakang tersebut, diperlukan suatu metode yang mampu memodelkan hubungan antara komposisi campuran beton dan umur beton terhadap kuat tekan beton secara akurat. Support Vector Regression (SVR) dipilih karena memiliki kemampuan untuk memodelkan hubungan yang kompleks dan nonlinier pada data regresi. Oleh karena itu, tujuan dari penelitian ini adalah:

  • Membangun model Support Vector Regression (SVR) untuk memprediksi kuat tekan beton berdasarkan komposisi campuran beton dan umur beton.
  • Mengevaluasi performa model SVR dalam memprediksi kuat tekan beton menggunakan data Concrete Compressive Strength Dataset.
  • Membandingkan performa model SVR dengan model regresi linier dalam memprediksi kuat tekan beton berdasarkan komposisi campuran beton dan umur beton.

1.3. Pertanyaan Analisis

Berdasarkan latar belakang dan tujuan analisis yang telah diuraikan, maka pertanyaan analisis yang ingin dijawab dalam penelitian ini, yaitu “Seberapa baik SVR memprediksi kuat tekan beton berdasarkan komposisi campuran beton dan umur beton?”

Bagian 2. Deskripsi Data

2.1. Sumber dan Deskripsi Data

Dataset yang digunakan dalam penelitian ini adalah Concrete Compressive Strength Dataset yang diperoleh dari UCI Machine Learning Repository dan diperkenalkan oleh I-Cheng Yeh pada tahun 2007. Dataset ini digunakan untuk mempelajari hubungan antara komposisi campuran beton dan umur beton terhadap kuat tekan beton (concrete compressive strength). Permasalahan yang dikaji merupakan regresi, yaitu memprediksi nilai kuat tekan beton berdasarkan komposisi campuran beton dan umur beton (Yeh, 1998).

Setiap observasi pada dataset merepresentasikan suatu campuran beton dengan komposisi campuran beton dan umur beton tertentu yang menghasilkan satu nilai kuat tekan beton hasil pengujian laboratorium. Dataset memiliki 1030 observasi dan 9 variabel yang terdiri atas 8 variabel prediktor dan 1 variabel respons. Seluruh variabel bersifat kuantitatif dan tidak terdapat nilai hilang (missing values) (Yeh, 1998).

2.2. Variabel Penelitian

Variabel respons yang digunakan disajikan pada Tabel 1.

Tabel 1. Variabel Respons
Variabel Satuan Deskripsi
Concrete Compressive Strength MPa Kuat tekan beton

Variabel prediktor yang digunakan disajikan pada Tabel 2.

Tabel 2. Variabel Prediktor
Variabel Satuan Deskripsi
Cement kg/m³ Jumlah semen dalam campuran beton
Blast Furnace Slag kg/m³ Jumlah terak tanur tinggi dalam campuran beton
Fly Ash kg/m³ Jumlah abu terbang dalam campuran beton
Water kg/m³ Jumlah air dalam campuran beton
Superplasticizer kg/m³ Jumlah bahan tambah superplasticizer dalam campuran beton
Coarse Aggregate kg/m³ Jumlah agregat kasar dalam campuran beton
Fine Aggregate kg/m³ Jumlah agregat halus dalam campuran beton
Age hari Umur beton saat dilakukan pengujian

Bagian 3. EDA dan Prapemrosesan

# Import Library
library(readxl)
library(dplyr)
library(tidyr)
library(ggplot2)
library(knitr)
library(rsample)
library(recipes)
library(parsnip)
library(workflows)
library(yardstick)
library(GPfit)
library(tune)
library(dials)
library(kernlab)
# Set Seed
set.seed(15062026)
# Import Data
tmp <- tempfile(fileext = ".xls")
download.file(
  "https://archive.ics.uci.edu/ml/machine-learning-databases/concrete/compressive/Concrete_Data.xls",
  destfile = tmp, mode = "wb"
)
# Mendefinisikan Variabel
concrete <- read_excel(tmp) |>
  setNames(c(
    "X1", "X2", "X3", "X4", "X5",
    "X6", "X7", "X8", "Y"
  )) |>
  mutate(across(everything(), as.numeric))

keterangan_variabel <- data.frame(
  Kode = c("X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "Y"),
  Variabel = c(
    "Cement",
    "Blast Furnace Slag",
    "Fly Ash",
    "Water",
    "Superplasticizer",
    "Coarse Aggregate",
    "Fine Aggregate",
    "Age",
    "Concrete Compressive Strength"
  ),
  Satuan = c(
    "kg/m³", "kg/m³", "kg/m³", "kg/m³", "kg/m³",
    "kg/m³", "kg/m³", "hari", "MPa"
  )
)

knitr::kable(
  keterangan_variabel,
  caption = "Tabel 3. Keterangan Variabel Penelitian"
)
Tabel 3. Keterangan Variabel Penelitian
Kode Variabel Satuan
X1 Cement kg/m³
X2 Blast Furnace Slag kg/m³
X3 Fly Ash kg/m³
X4 Water kg/m³
X5 Superplasticizer kg/m³
X6 Coarse Aggregate kg/m³
X7 Fine Aggregate kg/m³
X8 Age hari
Y Concrete Compressive Strength MPa

3.1. Exploratory Data Analysis (EDA)

3.1.1. Ringkasan Statistik Data

# Ringkasan Statistik Data
ringkasan_data <- concrete |>
  summarise(
    across(
      everything(),
      list(
        Minimum = min,
        Q1 = ~quantile(.x, 0.25),
        Median = median,
        Mean = mean,
        Q3 = ~quantile(.x, 0.75),
        Maximum = max,
        SD = sd
      )
    )
  )

ringkasan_data <- data.frame(
  Variabel = names(concrete),
  Minimum = as.numeric(ringkasan_data[1, seq(1, ncol(ringkasan_data), by = 7)]),
  Q1 = as.numeric(ringkasan_data[1, seq(2, ncol(ringkasan_data), by = 7)]),
  Median = as.numeric(ringkasan_data[1, seq(3, ncol(ringkasan_data), by = 7)]),
  Mean = as.numeric(ringkasan_data[1, seq(4, ncol(ringkasan_data), by = 7)]),
  Q3 = as.numeric(ringkasan_data[1, seq(5, ncol(ringkasan_data), by = 7)]),
  Maximum = as.numeric(ringkasan_data[1, seq(6, ncol(ringkasan_data), by = 7)]),
  SD = as.numeric(ringkasan_data[1, seq(7, ncol(ringkasan_data), by = 7)])
)

knitr::kable(
  ringkasan_data,
  digits = 2,
  caption = "Tabel 4. Ringkasan Statistik Data"
)
Tabel 4. Ringkasan Statistik Data
Variabel Minimum Q1 Median Mean Q3 Maximum SD
X1 102.00 192.38 272.90 281.17 350.00 540.0 104.51
X2 0.00 0.00 22.00 73.90 142.95 359.4 86.28
X3 0.00 0.00 0.00 54.19 118.27 200.1 64.00
X4 121.75 164.90 185.00 181.57 192.00 247.0 21.36
X5 0.00 0.00 6.35 6.20 10.16 32.2 5.97
X6 801.00 932.00 968.00 972.92 1029.40 1145.0 77.75
X7 594.00 730.95 779.51 773.58 824.00 992.6 80.18
X8 1.00 7.00 28.00 45.66 56.00 365.0 63.17
Y 2.33 23.71 34.44 35.82 46.14 82.6 16.71

Interpretasi:

  • Variabel Y memiliki rata-rata 35.82 dengan median 34.44, menunjukkan distribusi data relatif seimbang. Namun, rentang nilai cukup lebar (2.33 hingga 82.60) dengan simpangan baku 16.71, sehingga terdapat variasi yang cukup besar pada data target.
  • Variabel X1 memiliki rata-rata 281.17 dan median 272.90 yang relatif berdekatan, menunjukkan distribusi data cukup simetris. Variabilitasnya juga cukup tinggi dengan simpangan baku 104.51.
  • Variabel X2, X3, dan X5 memiliki nilai minimum dan kuartil pertama (Q1) sebesar 0, menunjukkan banyak observasi bernilai nol atau sangat rendah pada ketiga variabel tersebut.
  • Variabel X6 dan X7 memiliki rata-rata yang sangat dekat dengan median (X6: 972.92 dan 968.00, sedangkan X7: 773.58 dan 779.51), sehingga distribusinya cenderung stabil dan tidak terlalu menceng ke salah satu sisi.
  • Variabel X4 merupakan variabel dengan variasi paling kecil karena memiliki simpangan baku terendah (21.36) dibandingkan variabel lainnya, sehingga nilainya relatif homogen.
  • Variabel X8 memiliki rentang nilai yang sangat lebar (1 hingga 365) dan simpangan baku cukup besar (63.17), menunjukkan adanya keragaman data yang tinggi antarobservasi.
  • Secara umum, sebagian besar variabel memiliki rata-rata dan median yang relatif berdekatan, sehingga distribusi data tidak menunjukkan penyimpangan ekstrem yang sangat kuat, meskipun beberapa variabel (X2, X3, X5, dan X8) menunjukkan indikasi kemencengan akibat banyaknya nilai rendah atau nol.

3.1.2. Distribusi Variabel Respons

# Histogram
ggplot(concrete, aes(x = Y)) +
  geom_histogram(
    bins = 30,
    fill = "#f8b8d0",
    color = "white"
  ) +
  labs(
    x = "Kuat Tekan Beton (MPa)",
    y = "Frekuensi"
  ) +
  theme_minimal()
Gambar 1. Histogram Variabel Respons

Gambar 1. Histogram Variabel Respons

Interpretasi:

  • Sebagian besar nilai kuat tekan beton berada pada kisaran 20 hingga 50 MPa, dengan frekuensi tertinggi sekitar 30 hingga 40 MPa.
  • Distribusi data cenderung unimodal (memiliki satu puncak utama).
  • Terdapat ekor yang lebih panjang ke arah kanan, menunjukkan distribusi sedikit menceng ke kanan (positively skewed).
  • Nilai kuat tekan berkisar dari sekitar 2 MPa hingga 82 MPa, sehingga variasi data cukup besar.
  • Tidak terlihat adanya celah (gap) yang signifikan, sehingga data tersebar relatif kontinu.
# Density Plot
ggplot(concrete, aes(x = Y)) +
  geom_density(
    fill = "#f8b8d0",
    color = "#c94f87",
    alpha = 0.6,
    linewidth = 1
  ) +
  labs(
    x = "Kuat Tekan Beton (MPa)",
    y = "Density"
  ) +
  theme_minimal()
Gambar 2. Density Plot Variabel Respons

Gambar 2. Density Plot Variabel Respons

Interpretasi:

  • Kurva menunjukkan pola distribusi yang menyerupai lonceng (bell-shaped) dengan satu puncak utama.
  • Kepadatan tertinggi berada pada kisaran 30 hingga 40 MPa, yang menunjukkan nilai tersebut paling sering muncul.
  • Ekor distribusi lebih panjang pada sisi kanan dibanding sisi kiri, mengindikasikan kemencengan positif (right skewness).
  • Tidak terlihat adanya puncak ganda (multimodal), sehingga data cenderung berasal dari satu kelompok distribusi utama.
  • Sebagian besar observasi terkonsentrasi pada rentang 20 hingga 50 MPa, sedangkan nilai di atas 60 MPa relatif lebih jarang ditemukan.
# Boxplot
ggplot(concrete, aes(y = Y)) +
  geom_boxplot(
    fill = "#f8b8d0",
    color = "#c94f87",
    outlier.color = "#a61e5c",
    outlier.size = 2
  ) +
  labs(
    y = "Kuat Tekan Beton (MPa)"
  ) +
  theme_minimal()
Gambar 3. Boxplot Variabel Respons

Gambar 3. Boxplot Variabel Respons

Interpretasi:

  • Nilai median kuat tekan beton berada di sekitar 34 MPa.
  • Sebanyak 50% data berada pada rentang sekitar 24 hingga 46 MPa berdasarkan kriteria Interquartile Range (IQR).
  • Terdapat beberapa pencilan (outlier) pada bagian atas, yaitu di sekitar 80 hingga 83 MPa.
  • Tidak ditemukan pencilan pada bagian bawah distribusi.
  • Posisi median yang relatif berada di tengah kotak menunjukkan distribusi data cukup seimbang, meskipun sedikit condong ke kanan akibat adanya nilai tinggi.

3.1.3. Distribusi Variabel Prediktor

# Histogram
data_x_long <- concrete |>
  pivot_longer(
    cols = X1:X8,
    names_to = "Variabel",
    values_to = "Nilai"
  )

ggplot(data_x_long, aes(x = Nilai)) +
  geom_histogram(
    bins = 30,
    fill = "#f8b8d0",
    color = "white"
  ) +
  facet_wrap(~ Variabel, scales = "free", ncol = 4) +
  labs(
    x = "Nilai",
    y = "Frekuensi"
  ) +
  theme_minimal()
Gambar 4. Histogram Variabel Prediktor

Gambar 4. Histogram Variabel Prediktor

Interpretasi:

  • Variabel X1 memiliki sebaran yang cukup luas dengan variasi data yang relatif tinggi dan sedikit kecenderungan menceng ke kanan.
  • Variabel X2 didominasi oleh nilai-nilai kecil sehingga membentuk distribusi yang sangat menceng ke kanan.
  • Variabel X3 menunjukkan distribusi yang sangat menceng ke kanan dengan sebagian besar observasi berada pada nilai rendah.
  • Variabel X4 memiliki distribusi yang relatif simetris dan mendekati distribusi normal.
  • Variabel X5 didominasi oleh nilai nol atau mendekati nol serta memiliki beberapa nilai ekstrem yang menyebabkan kemencengan ke kanan.
  • Variabel X6 memiliki distribusi yang cukup simetris dengan penyebaran data yang relatif merata di sekitar nilai tengahnya.
  • Variabel X7 menunjukkan distribusi unimodal yang relatif simetris dengan konsentrasi data pada rentang nilai tertentu.
  • Variabel X8 memiliki distribusi yang sangat menceng ke kanan karena sebagian besar observasi bernilai rendah dan terdapat beberapa pencilan bernilai tinggi.

3.1.4. Hubungan Variabel Respons dengan Variabel Prediktor

# Scatter Plot
concrete_long <- concrete |>
  pivot_longer(
    cols = X1:X8,
    names_to = "Variabel X",
    values_to = "Nilai X"
  )

ggplot(concrete_long, aes(x = `Nilai X`, y = Y)) +
  geom_point(color = "#c94f87", alpha = 0.45, size = 1.5) +
  geom_smooth(
    method = "lm",
    se = FALSE,
    color = "#a61e5c",
    linewidth = 0.8
  ) +
  facet_wrap(~ `Variabel X`, scales = "free_x", ncol = 4) +
  labs(
    subtitle = "Garis merah menunjukkan hubungan linier",
    x = "Nilai Variabel Prediktor",
    y = "Kuat Tekan Beton (MPa)"
  ) +
  theme_minimal()
Gambar 5. Scatter Plot Variabel Respons dengan Variabel Prediktor

Gambar 5. Scatter Plot Variabel Respons dengan Variabel Prediktor

Interpretasi:

  • Scatter plot menunjukkan bahwa hubungan antara masing-masing variabel prediktor dan respons cenderung lemah hingga sedang, ditunjukkan oleh sebaran titik yang masih cukup luas di sekitar garis regresi.
  • Variabel X1 memperlihatkan pola kenaikan yang paling jelas. Semakin besar nilai X1, Y cenderung meningkat, sehingga X1 memiliki hubungan positif yang relatif lebih kuat dibandingkan prediktor lainnya.
  • Variabel X2 menunjukkan kecenderungan hubungan positif, namun pola sebaran titik masih sangat menyebar sehingga hubungan liniernya tergolong lemah.
  • Variabel X3 memiliki kecenderungan hubungan negatif yang sangat lemah. Garis regresi sedikit menurun, tetapi pola hubungan tidak terlihat jelas karena tingginya variasi data.
  • Variabel X4 menunjukkan hubungan negatif yang lebih terlihat dibandingkan X3. Semakin besar nilai X4, Y cenderung menurun.
  • Variabel X5 memperlihatkan hubungan positif yang cukup jelas. Nilai Y cenderung meningkat seiring bertambahnya nilai X5.
  • Variabel X6 dan X7 menunjukkan pola hubungan negatif lemah, di mana peningkatan nilai kedua variabel tersebut cenderung diikuti penurunan Y.
  • Variabel X8 memiliki kecenderungan hubungan positif, meskipun penyebaran titik masih cukup lebar sehingga hubungan linier yang terbentuk tidak terlalu kuat.
  • Secara keseluruhan, sebaran titik pada seluruh variabel menunjukkan bahwa tidak terdapat hubungan linier yang sangat kuat antara satu prediktor tunggal dengan Y, sehingga kemungkinan terdapat pengaruh kombinasi beberapa variabel atau hubungan nonlinier dalam pembentukan kuat tekan beton.
# Korelasi Linier
korelasi_y_x <- data.frame(
  "Variabel X" = paste0("X", 1:8),
  "Korelasi dengan Y" = as.numeric(sapply(concrete[paste0("X", 1:8)], function(x) {
    cor(x, concrete$Y, method = "pearson")
  })),
  check.names = FALSE
)

knitr::kable(
  korelasi_y_x,
  digits = 3,
  row.names = FALSE,
  caption = "Tabel 5. Korelasi Linier antara Variabel Prediktor dan Respons"
)
Tabel 5. Korelasi Linier antara Variabel Prediktor dan Respons
Variabel X Korelasi dengan Y
X1 0.498
X2 0.135
X3 -0.106
X4 -0.290
X5 0.366
X6 -0.165
X7 -0.167
X8 0.329

Interpretasi:

  • Variabel X1 (r = 0.498) memiliki korelasi positif sedang dengan kuat tekan beton, yang menunjukkan bahwa peningkatan nilai X1 cenderung diikuti oleh peningkatan kuat tekan beton.
  • Variabel X2 (r = 0.135) memiliki korelasi positif sangat lemah dengan kuat tekan beton, sehingga perubahan nilai X2 hanya menunjukkan kecenderungan peningkatan kuat tekan beton yang kecil.
  • Variabel X3 (r = -0.106) memiliki korelasi negatif sangat lemah dengan kuat tekan beton, sehingga peningkatan nilai X3 hanya sedikit berkaitan dengan penurunan kuat tekan beton.
  • Variabel X4 (r = -0.290) memiliki korelasi negatif lemah dengan kuat tekan beton, yang menunjukkan bahwa semakin besar nilai X4 maka kuat tekan beton cenderung menurun.
  • Variabel X5 (r = 0.366) memiliki korelasi positif lemah hingga sedang dengan kuat tekan beton, sehingga peningkatan nilai X5 cenderung diikuti oleh peningkatan kuat tekan beton.
  • Variabel X6 (r = -0.165) memiliki korelasi negatif lemah dengan kuat tekan beton, yang menunjukkan adanya kecenderungan penurunan kuat tekan beton ketika nilai X6 meningkat.
  • Variabel X7 (r = -0.167) memiliki korelasi negatif lemah dengan kuat tekan beton, sehingga peningkatan nilai X7 cenderung berkaitan dengan penurunan kuat tekan beton.
  • Variabel X8 (r = 0.329) memiliki korelasi positif lemah dengan kuat tekan beton, yang menunjukkan bahwa semakin besar nilai X8 maka kuat tekan beton cenderung meningkat.
  • Secara keseluruhan, X1 memiliki korelasi positif terbesar, sedangkan X4 memiliki korelasi negatif terbesar, namun seluruh nilai korelasi masih berada pada kategori lemah hingga sedang sehingga tidak ada satu prediktor yang memiliki hubungan linier sangat kuat dengan kuat tekan beton.

3.1.5. Memeriksa Nilai Hilang (Missing Value)

# Memeriksa Nilai Hilang (Missing Value)
missing_value <- data.frame(
  Variabel = names(concrete),
  `Jumlah Missing Value` = colSums(is.na(concrete)),
  `Persentase Missing Value` = round(colSums(is.na(concrete)) / nrow(concrete) * 100, 2),
  check.names = FALSE
)

knitr::kable(
  missing_value,
  row.names = FALSE,
  caption = "Tabel 6. Total Nilai Hilang (Missing Value)"
)
Tabel 6. Total Nilai Hilang (Missing Value)
Variabel Jumlah Missing Value Persentase Missing Value
X1 0 0
X2 0 0
X3 0 0
X4 0 0
X5 0 0
X6 0 0
X7 0 0
X8 0 0
Y 0 0

Interpretasi:

Berdasarkan Tabel 6, seluruh variabel penelitian (X1 hingga X8 dan Y) tidak memiliki nilai hilang (missing value), sehingga data dapat langsung digunakan untuk tahap analisis tanpa memerlukan proses penanganan missing value.

3.2. Prapemrosesan Data

3.2.1. Pembagian Data

# Pembagian Data
split_obj <- initial_split(concrete, prop = 0.80)

train_dat <- training(split_obj)
test_dat  <- testing(split_obj)

folds <- vfold_cv(train_dat, v = 5)

rec_svr <- recipe(Y ~ ., data = train_dat) |>
  step_zv(all_predictors()) |>
  step_normalize(all_numeric_predictors())

tabel_pembagian <- data.frame(
  Data = c("Latih", "Uji", "Jumlah"),
  Proporsi = c(
    nrow(train_dat) / nrow(concrete),
    nrow(test_dat) / nrow(concrete),
    nrow(concrete) / nrow(concrete)
  ),
  Jumlah = c(
    nrow(train_dat),
    nrow(test_dat),
    nrow(concrete)
  )
)

knitr::kable(
  tabel_pembagian,
  digits = 2,
  row.names = FALSE,
  caption = "Tabel 7. Hasil Pembagian Data Latih dan Uji"
)
Tabel 7. Hasil Pembagian Data Latih dan Uji
Data Proporsi Jumlah
Latih 0.8 824
Uji 0.2 206
Jumlah 1.0 1030

Interpretasi:

  • Dataset terdiri atas 1030 observasi, yang kemudian dibagi menjadi data latih dan data uji.
  • Sebanyak 824 observasi (80%) digunakan sebagai data latih untuk membangun dan mempelajari pola hubungan antara variabel prediktor dan kuat tekan beton.
  • Sebanyak 206 observasi (20%) digunakan sebagai data uji untuk mengevaluasi kemampuan model dalam melakukan prediksi pada data yang tidak digunakan selama proses pelatihan.
  • Proporsi 80:20 dipilih agar model memperoleh jumlah data yang cukup besar untuk proses pembelajaran, sekaligus menyediakan data uji yang memadai untuk mengukur kemampuan generalisasi model.
  • Dengan pembagian tersebut, evaluasi performa model dapat dilakukan secara lebih objektif karena pengujian dilakukan pada data yang berbeda dari data yang digunakan saat pelatihan.

3.2.2. Normalisasi Data

Normalisasi dilakukan menggunakan transformasi z-score sebagai berikut:

\[ z_i=\frac{x_i-\bar{x}}{s} \]

dengan \(z_i\) merupakan nilai hasil normalisasi dari observasi ke-\(i\), \(x_i\) merupakan nilai observasi ke-\(i\), \(\bar{x}\) merupakan rata-rata variabel, dan \(s\) merupakan simpangan baku variabel.

# Normalisasi Data
folds <- vfold_cv(train_dat, v = 5)

rec_svr <- recipe(Y ~ ., data = train_dat) |>
  step_zv(all_predictors()) |>
  step_normalize(all_numeric_predictors())

Interpretasi:

  • Seluruh variabel prediktor numerik dinormalisasi menggunakan metode z-score normalization.
  • Normalisasi mengubah skala setiap variabel sehingga memiliki rata-rata sebesar 0 dan simpangan bakusebesar 1.
  • Proses normalisasi tidak membuat seluruh nilai observasi menjadi sama, melainkan menyamakan skala antarvariabel sehingga setiap variabel berada pada satuan yang sebanding.
  • Penyamaan skala diperlukan agar variabel dengan rentang nilai yang lebih besar tidak mendominasi proses pembelajaran model, khususnya pada metode yang sensitif terhadap jarak seperti SVR.
  • Sebelum normalisasi, dilakukan pemeriksaan untuk mengidentifikasi prediktor yang memiliki variansi nol.
  • Variabel dengan variansi nol dihapus karena tidak memiliki variasi nilai sehingga tidak memberikan informasi yang berguna dalam proses prediksi.

Bagian 4. Metode

4.1. Pengertian SVR

Support Vector Regression (SVR) merupakan pengembangan dari Support Vector Machine (SVM) untuk permasalahan regresi yang digunakan untuk memprediksi nilai kontinu atau waktu terjadinya suatu peristiwa berdasarkan hubungan antara variabel prediktor dan respon (Guido et al., 2024). Jika pada SVM tujuan utamanya adalah mencari hyperplane yang memisahkan kelas dengan margin maksimum, maka pada SVR tujuan utamanya adalah mencari suatu fungsi regresi yang mampu memprediksi nilai kontinu dengan tingkat kesalahan yang masih dapat ditoleransi (Montesinos et al., 2022). SVR diperkenalkan oleh Vladimir Vapnik berdasarkan prinsip Structural Risk Minimization (SRM), yaitu pendekatan yang tidak hanya meminimalkan kesalahan pada data latih, tetapi juga menjaga kemampuan generalisasi model terhadap data baru (Roy & Chakraborty, 2023).

4.2. Konsep Dasar SVR

Misalkan diberikan data pelatihan berupa pasangan observasi sebagai berikut.

\[ \{(x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)\} \]

dengan \(x_i\) sebagai variabel prediktor dan \(y_i\) sebagai variabel respon. SVR berupaya mencari suatu fungsi regresi yang dapat dinyatakan sebagai berikut.

\[ f(x)=w^Tx+b \]

dengan \(w\) merupakan vektor bobot dan \(b\) merupakan bias atau intersep. Berbeda dengan regresi linear konvensional yang meminimalkan seluruh kesalahan prediksi, SVR menggunakan konsep \(\varepsilon\)-insensitive loss function, yaitu fungsi kerugian yang mengabaikan kesalahan prediksi yang masih berada dalam batas toleransi \(\varepsilon\), sehingga model lebih berfokus pada kesalahan yang signifikan dan memiliki kemampuan generalisasi yang lebih baik (Shan et al., 2023; Thanni et al., 2025).

4.3. \(\varepsilon\)-Insensitive Loss Function

Salah satu karakteristik utama SVR adalah penggunaan \(\varepsilon\)-insensitive loss function. Fungsi kerugian ini menganggap kesalahan prediksi yang masih berada dalam batas toleransi \(\varepsilon\) sebagai kesalahan yang tidak perlu dikenakan penalti. Dengan demikian, model hanya berfokus pada kesalahan yang benar-benar signifikan sehingga dapat meningkatkan kemampuan generalisasi model (Shan et al., 2023).

Secara matematis, \(\varepsilon\)-insensitive loss function didefinisikan sebagai berikut.

\[ L_{\varepsilon}(y,f(x)) = \begin{cases} 0, & |y-f(x)| \leq \varepsilon \\ |y-f(x)|-\varepsilon, & |y-f(x)| > \varepsilon \end{cases} \]

Berdasarkan fungsi tersebut, kesalahan prediksi yang berada di dalam pita toleransi \(\varepsilon\) tidak dikenakan penalti, sedangkan kesalahan yang berada di luar pita toleransi akan dikenakan penalti sebesar selisihnya terhadap batas \(\varepsilon\). Oleh karena itu, SVR lebih berfokus pada kesalahan yang memiliki penyimpangan besar dan mengabaikan kesalahan kecil yang masih dapat ditoleransi (Shan et al., 2023).

4.4. Margin pada SVR

Berbeda dengan regresi linear konvensional yang hanya memiliki satu garis regresi, SVR membentuk suatu daerah toleransi yang disebut \(\varepsilon\)-tube. Daerah ini dibatasi oleh garis regresi utama, batas atas, dan batas bawah. Garis regresi utama dinyatakan sebagai berikut (Smola & Schölkopf, 2004).

\[ f(x)=w^Tx+b \]

sedangkan batas atas dan batas bawah berturut-turut dinyatakan sebagai berikut.

\[ f(x)+\varepsilon \]

dan

\[ f(x)-\varepsilon. \]

Ketiga garis tersebut membentuk \(\varepsilon\)-tube, yaitu daerah toleransi kesalahan prediksi yang masih dapat diterima oleh model. Observasi yang berada di dalam \(\varepsilon\)-tube dianggap telah diprediksi dengan baik sehingga tidak dikenakan penalti. Sebaliknya, observasi yang berada di luar \(\varepsilon\)-tube disebut sebagai support vectors dan akan memengaruhi pembentukan fungsi regresi karena berkontribusi dalam proses optimasi model (Smola & Schölkopf, 2004).

4.5. Fungsi Optimasi pada SVR

Tujuan utama SVR adalah memperoleh fungsi regresi yang paling datar (flat) dengan tetap menjaga kesalahan prediksi berada dalam batas toleransi \(\varepsilon\). Secara matematis, permasalahan optimasi SVR dapat dituliskan sebagai berikut (Smola & Schölkopf, 2004).

\[ \min \frac{1}{2}|w|^2 \]

dengan kendala

\[ |y_i-(w^Tx_i+b)| \leq \varepsilon, \qquad i=1,2,\ldots,n. \]

Namun, pada praktiknya tidak semua observasi dapat berada di dalam \(\varepsilon\)-tube. Oleh karena itu, diperkenalkan variabel slack \(\xi_i\) dan \(\xi_i^*\) untuk mengakomodasi pelanggaran terhadap batas toleransi. Fungsi optimasi kemudian sebagai berikut (Smola & Schölkopf, 2004).

\[ \min \frac{1}{2}|w|^2 + C\sum_{i=1}^{n}(\xi_i+\xi_i^*) \]

dengan kendala sebagai berikut (Smola & Schölkopf, 2004).

\[ y_i-(w^Tx_i+b) \leq \varepsilon+\xi_i, \] \[ (w^Tx_i+b)-y_i \leq \varepsilon+\xi_i^*, \] \[ \xi_i,\xi_i^* \geq 0. \]

Parameter \(C\) berfungsi sebagai parameter regularisasi yang mengontrol keseimbangan antara kompleksitas model dan kesalahan prediksi (Smola & Schölkopf, 2004).

4.6. Parameter Penting pada SVR

  • Parameter \(C\) (Regularisasi): Mengontrol keseimbangan antara kompleksitas model dan kesalahan prediksi (Smola & Schölkopf, 2004).
    • Nilai \(C\) besar:
      • Penalti terhadap kesalahan prediksi semakin besar.
      • Model berusaha mengikuti data pelatihan secara lebih ketat.
      • Risiko overfitting meningkat.
    • Nilai \(C\) kecil:
      • Penalti terhadap kesalahan prediksi lebih ringan.
      • Margin menjadi lebih lebar.
      • Kemampuan generalisasi meningkat, namun berisiko underfitting.
  • Parameter \(\varepsilon\): Menentukan lebar \(\varepsilon\)-tube (Smola & Schölkopf, 2004).
    • Nilai \(\varepsilon\) besar:
      • Lebih banyak observasi berada di dalam tube.
      • Model menjadi lebih sederhana.
      • Risiko underfitting meningkat.
    • Nilai \(\varepsilon\) kecil:
      • Tube menjadi lebih sempit.
      • Jumlah support vector bertambah.
      • Model lebih sensitif terhadap data.

4.7. Kernel pada SVR

SVR mampu menangani hubungan nonlinier melalui kernel trick, yaitu proses pemetaan data ke ruang berdimensi lebih tinggi tanpa menghitung transformasi tersebut secara eksplisit (Smola & Schölkopf, 2004). Beberapa fungsi kernel yang umum digunakan pada SVR antara lain linear kernel, polynomial kernel, radial basis function (RBF) kernel, dan sigmoid kernel (Chang & Lin, 2011).

  • Linear Kernel

\[ K(x_i,x_j)=x_i^Tx_j \]

Kernel ini digunakan ketika hubungan antar variabel mendekati linear.

  • Polynomial Kernel

\[ K(x_i,x_j)=(x_i^Tx_j+1)^d \]

Kernel ini mampu menangkap pola hubungan polinomial.

  • Radial Basis Function (RBF)

\[ \exp(-\gamma|x_i-x_j|^2) \]

Kernel RBF merupakan kernel yang paling sering digunakan karena mampu memodelkan hubungan nonlinier yang kompleks.

  • Sigmoid Kernel

\[ \tanh(\gamma x_i^Tx_j+r) \]

Kernel ini memiliki karakteristik yang mirip dengan fungsi aktivasi pada jaringan saraf.

4.8. Parameter \(\gamma\) pada SVR

Parameter \(\gamma\) digunakan khusus pada kernel RBF untuk mengatur seberapa jauh pengaruh suatu observasi terhadap observasi lainnya (Chang & Lin, 2011).

  • Nilai \(\gamma\) besar:
    • Pengaruh observasi sangat lokal.
    • Model menjadi lebih fleksibel.
    • Risiko overfitting meningkat.
  • Nilai \(\gamma\) kecil:
    • Pengaruh observasi lebih luas.
    • Kurva prediksi menjadi lebih halus.
    • Risiko underfitting meningkat.

4.9. k-Fold Cross-Validation

k-fold cross-validation merupakan metode validasi yang dilakukan dengan membagi dataset menjadi k bagian (fold). Dalam praktiknya, nilai k = 5 merupakan salah satu pilihan yang paling umum digunakan karena mampu memberikan keseimbangan antara keandalan evaluasi dan efisiensi komputasi. Pada penelitian ini, 5-fold cross-validation digunakan dalam proses pencarian kombinasi hyperparameter terbaik pada model SVR sehingga parameter yang dipilih mampu memberikan performa prediksi terbaik dan memiliki kemampuan generalisasi yang baik terhadap data yang belum pernah dilihat sebelumnya. Ilustrasi mekanisme 5-fold cross-validation yang digunakan dalam penelitian ini disajikan pada Gambar 6 (Abedin et al., 2026).

Gambar 6. Ilustrasi Cara Kerja k-Fold Cross-Validation

Gambar 6. Ilustrasi Cara Kerja k-Fold Cross-Validation

Pada setiap iterasi, model dibangun menggunakan k-1 fold sebagai data pelatihan, sedangkan satu fold lainnya digunakan sebagai data validasi. Proses tersebut diulang hingga seluruh fold memperoleh giliran sebagai data validasi. Melalui mekanisme ini, diperoleh prediksi dan ukuran performa untuk seluruh observasi yang tidak digunakan pada saat pelatihan di masing-masing iterasi. Nilai performa yang dihasilkan dari keseluruhan proses kemudian dirangkum sebagai performa cross-validation (CV). Metode ini banyak dimanfaatkan dalam pengembangan model machine learning, baik untuk membandingkan beberapa kandidat model maupun untuk menentukan kombinasi hyperparameter yang menghasilkan performa terbaik (Teodorescu & Brașoveanu, 2025).

4.10. Evaluasi Performa Model

Evaluasi performa model dilakukan untuk mengukur kapabilitas model dalam memprediksi data yang belum pernah dilihat sebelumnya (data baru). Tahapan ini merupakan langkah krusial dalam siklus pengembangan model, karena berperan untuk mengukur keandalan dan kemampuan generalisasi model sebelum diimplementasikan. Pada penelitian ini, evaluasi dilakukan menggunakan Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), dan R-Squared.

4.10.1. Root Mean Squared Error (RMSE)

RMSE merupakan akar kuadrat dari MSE yang mengukur standar deviasi error dan banyak digunakan pada regresi maupun model prediksi numerik. Metrik ini masih dipengaruhi oleh pencilan, tetapi tidak sebesar MSE sehingga tetap dapat mendeteksi keberadaan pencilan dalam model. Selain itu, RMSE memiliki satuan yang sama dengan variabel yang diprediksi sehingga lebih mudah diinterpretasikan. Nilai RMSE dapat dihitung menggunakan rumus sebagai berikut (Soreng & Vourakis, 2024).

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

dengan \(n\) adalah jumlah observasi, \(y_i\) adalah nilai aktual pada observasi ke-\(i\), dan \(\hat{y}_i\) adalah nilai prediksi model pada observasi ke-\(i\). Semakin kecil nilai RMSE, semakin baik kemampuan model dalam menghasilkan prediksi yang mendekati nilai aktual.

4.10.2. Mean Absolute Error (MAE)

MAE merupakan metrik evaluasi yang digunakan untuk mengukur rata-rata selisih absolut antara nilai prediksi dan nilai aktual. Nilai MAE dinyatakan dalam satuan yang sama dengan variabel yang diprediksi sehingga lebih mudah dipahami dan diinterpretasikan. Salah satu keunggulan MAE adalah sensitivitasnya yang relatif rendah terhadap pencilan karena setiap galat diberi bobot yang sama tanpa dilakukan pengkuadratan. Namun, karakteristik tersebut juga menyebabkan MAE kurang tepat digunakan untuk membandingkan performa prediksi pada dataset yang memiliki varians berbeda, meskipun menggunakan satuan pengukuran yang sama. Oleh karena itu, untuk memperoleh evaluasi model yang lebih komprehensif, MAE sering digunakan bersama metrik lain seperti RMSE dan \(R^2\). Nilai MAE dapat dihitung menggunakan rumus sebagai berikut (Miller et al., 2024).

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

dengan \(n\) adalah jumlah observasi, \(y_i\) adalah nilai aktual pada observasi ke-\(i\), dan \(\hat{y}_i\) adalah nilai prediksi model pada observasi ke-\(i\). Semakin kecil nilai MAE, semakin baik kemampuan model dalam menghasilkan prediksi yang mendekati nilai aktual.

4.10.3. Koefisien Determinasi (R-squared atau \(R^2\))

R-squared atau \(R^2\) merupakan ukuran statistik yang digunakan untuk menunjukkan proporsi variasi pada variabel respon yang dapat dijelaskan oleh variabel prediktor dalam suatu model. Nilai \(R^2\) berada pada rentang 0 hingga 1, di mana nilai yang semakin mendekati 1 menunjukkan bahwa model mampu menjelaskan sebagian besar variasi data sehingga menghasilkan kecocokan yang lebih baik, sedangkan nilai yang mendekati 0 menunjukkan bahwa kemampuan model dalam menjelaskan variasi data masih rendah. Dengan demikian, \(R^2\) dapat digunakan untuk mengevaluasi seberapa baik model merepresentasikan hubungan antara variabel prediktor dan variabel respon. Namun, nilai \(R^2\) yang sangat tinggi tidak selalu menunjukkan model yang baik karena dapat mengindikasikan terjadinya overfitting, yaitu kondisi ketika model terlalu menyesuaikan diri dengan data pelatihan sehingga kurang mampu melakukan generalisasi pada data baru. Nilai \(R^2\) dapat dihitung menggunakan rumus sebagai berikut (Gupta et al., 2024).

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

dengan \(n\) adalah jumlah observasi, \(y_i\) adalah nilai aktual pada observasi ke-\(i\), \(\hat{y}_i\) adalah nilai prediksi model pada observasi ke-\(i\), dan \(\bar{y}\) adalah rata-rata nilai aktual. Pembilang \(\sum_{i=1}^{n}(y_i-\hat{y}_i)^2\) merupakan Residual Sum of Squares (RSS) yang menyatakan jumlah kuadrat galat prediksi, sedangkan penyebut \(\sum_{i=1}^{n}(y_i-\bar{y})^2\) merupakan Total Sum of Squares (TSS) yang menyatakan total variasi data. Nilai \(R^2\) yang semakin mendekati 1 mengindikasikan kemampuan penjelasan model yang semakin baik.

Bagian 5. Hasil Analisis

5.1. Regresi Linier

5.1.1. Model Regresi Linier

Model regresi linier dibangun menggunakan data latih untuk memperoleh parameter dan persamaan model yang menggambarkan hubungan antara variabel prediktor terhadap variabel respons.

# Model Regresi Linier
lm_wf <- workflow() |>
  add_recipe(rec_svr) |>
  add_model(
    linear_reg() |>
      set_engine("lm")
  )

lm_fit <- fit(lm_wf, data = train_dat)

lm_model <- extract_fit_parsnip(lm_fit)$fit
lm_summary <- summary(lm_model)

5.1.2. Koefisien dan Signifikansi Parsial Model Regresi Linier

# Koefisien dan Signifikansi Parsial Model Regresi Linier
format_pvalue <- function(p) {
  formatC(p, format = "e", digits = 3)
}

koef_lm <- as.data.frame(coef(lm_summary))

koef_lm <- data.frame(
  Variabel = rownames(koef_lm),
  Koefisien = round(koef_lm$Estimate, 3),
  `Std. Error` = round(koef_lm$`Std. Error`, 3),
  `t hitung` = round(koef_lm$`t value`, 3),
  `p-value` = format_pvalue(koef_lm$`Pr(>|t|)`),
  row.names = NULL,
  check.names = FALSE
)

knitr::kable(
  koef_lm,
  digits = 3,
  row.names = FALSE,
  caption = "Tabel 8. Koefisien dan Signifikansi Parsial Model Regresi Linier"
)
Tabel 8. Koefisien dan Signifikansi Parsial Model Regresi Linier
Variabel Koefisien Std. Error t hitung p-value
(Intercept) 35.846 0.359 99.811 0.000e+00
X1 11.817 0.975 12.125 3.165e-31
X2 8.465 0.973 8.696 1.872e-17
X3 5.276 0.896 5.889 5.667e-09
X4 -3.418 0.933 -3.665 2.633e-04
X5 2.158 0.613 3.523 4.512e-04
X6 1.057 0.793 1.332 1.833e-01
X7 1.542 0.951 1.621 1.054e-01
X8 7.449 0.381 19.535 5.293e-70

Interpretasi:

  • Variabel X1 berpengaruh signifikan terhadap variabel respon (p-value = \(3.165 \times 10^{-31} < 0.05\)) dengan arah pengaruh positif, sehingga peningkatan X1 cenderung meningkatkan nilai respon.
  • Variabel X2 berpengaruh signifikan terhadap variabel respon (p-value = \(1.872 \times 10^{-17} < 0.05\)) dengan arah pengaruh positif, sehingga peningkatan X2 cenderung meningkatkan nilai respon.
  • Variabel X3 berpengaruh signifikan terhadap variabel respon (p-value = \(5.667 \times 10^{-9} < 0.05\)) dengan arah pengaruh positif, sehingga peningkatan X3 cenderung meningkatkan nilai respon.
  • Variabel X4 berpengaruh signifikan terhadap variabel respon (p-value = \(2.633 \times 10^{-4} < 0.05\)) dengan arah pengaruh negatif, sehingga peningkatan X4 cenderung menurunkan nilai respon.
  • Variabel X5 berpengaruh signifikan terhadap variabel respon (p-value = \(4.512 \times 10^{-4} < 0.05\)) dengan arah pengaruh positif, sehingga peningkatan X5 cenderung meningkatkan nilai respon.
  • Variabel X6 tidak berpengaruh signifikan terhadap variabel respon (p-value = \(0.183 > 0.05\)), sehingga perubahan X6 belum terbukti memberikan pengaruh yang nyata terhadap respon.
  • Variabel X7 tidak berpengaruh signifikan terhadap variabel respon (p-value = \(0.105 > 0.05\)), sehingga perubahan X7 belum terbukti memberikan pengaruh yang nyata terhadap respon.
  • Variabel X8 berpengaruh signifikan terhadap variabel respon (p-value = \(5.293 \times 10^{-70} < 0.05\)) dengan arah pengaruh positif, sehingga peningkatan X8 cenderung meningkatkan nilai respon.

Beberapa variabel prediktor terbukti berpengaruh signifikan terhadap variabel respon berdasarkan hasil uji parsial pada taraf signifikansi 5%, yaitu X1, X2, X3, X4, X5, dan X8. Sementara itu, variabel X6 dan X7 tidak menunjukkan pengaruh yang signifikan. Berdasarkan hasil estimasi parameter yang diperoleh, model regresi linier yang terbentuk adalah sebagai berikut.

\[ \hat{Y} = 35.846 + 11.817X_1 + 8.465X_2 + 5.276X_3 - 3.418X_4 + 2.158X_5 + 7.449X_8 \]

5.1.3. R-squared dan Signifikansi Simultan Model Regresi Linier

# R-squared dan Signifikansi Simultan Model Regresi Linier
f_stat <- lm_summary$fstatistic

p_value_f <- pf(
  f_stat[1],
  f_stat[2],
  f_stat[3],
  lower.tail = FALSE
)

uji_simultan <- data.frame(
  `R-squared` = lm_summary$r.squared,
  `Adjusted R-squared` = lm_summary$adj.r.squared,
  `F hitung` = as.numeric(f_stat[1]),
  `p-value F` = format_pvalue(p_value_f),
  check.names = FALSE
)

knitr::kable(
  uji_simultan,
  digits = 3,
  row.names = FALSE,
  caption = "Tabel 9. R-squared dan Signifikansi Simultan Model Regresi Linier"
)
Tabel 9. R-squared dan Signifikansi Simultan Model Regresi Linier
R-squared Adjusted R-squared F hitung p-value F
0.625 0.621 169.852 6.710e-168

Interpretasi:

  • Nilai \(R^2\) sebesar 0.625 menunjukkan bahwa sebesar 62.5% variasi pada variabel respon dapat dijelaskan oleh variabel-variabel prediktor yang digunakan dalam model, sedangkan sisanya sebesar 37.5% dijelaskan oleh faktor lain di luar model.
  • Nilai Adjusted \(R^2\) sebesar 0.621 menunjukkan bahwa setelah memperhitungkan jumlah variabel prediktor yang digunakan, model masih mampu menjelaskan 62.1% variasi pada variabel respon.
  • Nilai F hitung sebesar 169.852 dengan p-value sebesar \(6.710 \times 10^{-168}\) yang lebih kecil dari 0.05 menunjukkan bahwa model regresi linier secara simultan signifikan.
  • Hasil uji F mengindikasikan bahwa paling sedikit terdapat satu variabel prediktor yang berpengaruh signifikan terhadap variabel respon.
  • Secara keseluruhan, model regresi yang terbentuk layak digunakan karena mampu menjelaskan sebagian besar variasi data dan memiliki signifikansi simultan yang sangat kuat.

5.1.4. Evaluasi Performa Model Regresi Linier

Selanjutnya, model yang telah dibangun menggunakan data latih diterapkan pada data uji untuk mengevaluasi performa prediksi serta kemampuan generalisasi model terhadap data baru yang tidak terlibat dalam proses pelatihan.

# Evaluasi Performa Model Regresi Linier
lm_pred <- predict(lm_fit, new_data = test_dat) |>
  bind_cols(test_dat)

lm_metrics <- metric_set(rmse, mae, rsq)(
  lm_pred,
  truth = Y,
  estimate = .pred
)

lm_metrics_tabel <- lm_metrics |>
  select(Metrik = .metric, `Nilai Metrik` = .estimate)

knitr::kable(
  lm_metrics_tabel,
  digits = 3,
  row.names = FALSE,
  caption = "Tabel 10. Evaluasi Performa Model Regresi Linier"
)
Tabel 10. Evaluasi Performa Model Regresi Linier
Metrik Nilai Metrik
rmse 10.854
mae 8.394
rsq 0.570

Interpretasi:

  • Nilai RMSE sebesar 10.854 menunjukkan bahwa rata-rata kesalahan prediksi model terhadap nilai aktual adalah sekitar 10.854 MPa
  • Nilai MAE sebesar 8.394 menunjukkan bahwa rata-rata selisih absolut antara nilai prediksi dan nilai aktual adalah sebesar 8.394 MPa.
  • Nilai \(R^2\) sebesar 0.570 menunjukkan bahwa model mampu menjelaskan 57.0% variasi variabel respon pada data yang tidak digunakan dalam proses pelatihan, sedangkan sisanya sebesar 43.0% dijelaskan oleh faktor lain di luar model.
  • Dibandingkan dengan nilai \(R^2\) pada data latih sebesar 0.625, penurunan nilai \(R^2\) pada data uji relatif kecil, sehingga menunjukkan bahwa model memiliki kemampuan generalisasi yang cukup baik terhadap data baru.

5.2. Support Vector Regression (SVR)

5.2.1. Model SVR dengan Kernel RBF

Model SVR dengan Kernel RBF dibangun menggunakan data latih untuk memperoleh kombinasi hyperparameter terbaik dan membentuk fungsi prediksi yang menggambarkan hubungan antara variabel prediktor dan variabel respons.

# Model SVR dengan Kernel RBF
svr_spec <- svm_rbf(
  cost = tune(),
  rbf_sigma = tune(),
  margin = tune()
) |>
  set_engine("kernlab") |>
  set_mode("regression")

svr_wf <- workflow() |>
  add_recipe(rec_svr) |>
  add_model(svr_spec)

5.2.2. Hyperparameter Tuning Model SVR dengan Kernel RBF

# Hyperparameter Tuning Model SVR dengan Kernel RBF
svr_grid <- grid_latin_hypercube(
  cost(range = c(-5, 8)),
  rbf_sigma(range = c(-10, 0)),
  svm_margin(),
  size = 25
)

svr_tuned <- tune_grid(
  svr_wf,
  resamples = folds,
  grid = svr_grid,
  metrics = metric_set(rmse, mae, rsq)
)

best_svr <- select_best(svr_tuned, metric = "rmse")

best_svr_tabel <- best_svr |>
  select(cost, rbf_sigma, margin) |>
  rename(
    Cost = cost,
    Sigma = rbf_sigma,
    Margin = margin
  )

knitr::kable(
  best_svr_tabel,
  digits = 5,
  row.names = FALSE,
  caption = "Tabel 11. Hyperparameter Terbaik Model SVR dengan Kernel RBF"
)
Tabel 11. Hyperparameter Terbaik Model SVR dengan Kernel RBF
Cost Sigma Margin
45.2137 0.25089 0.17737

Interpretasi:

  • Hyperparameter optimal model SVR dengan kernel RBF diperoleh pada nilai \(C\) sebesar 45.2137, \(\sigma\) sebesar 0.25089, dan \(\varepsilon\) sebesar 0.17737.
  • Nilai \(C\) sebesar 45.2137 menunjukkan bahwa model memberikan penalti yang cukup besar terhadap kesalahan prediksi sehingga model berupaya mengikuti pola data pelatihan dengan lebih ketat. Namun, nilai tersebut masih mampu menghasilkan performa validasi terbaik sehingga keseimbangan antara kompleksitas model dan kemampuan generalisasi tetap terjaga.
  • Nilai \(\sigma\) sebesar 0.25089 menunjukkan tingkat fleksibilitas kernel RBF dalam memetakan data ke ruang berdimensi lebih tinggi. Nilai tersebut memungkinkan model menangkap pola nonlinier pada data tanpa membentuk fungsi yang terlalu kompleks.
  • Nilai \(\varepsilon\) sebesar 0.17737 menunjukkan bahwa kesalahan prediksi yang berada dalam rentang \(\pm 0.17737\) dari nilai aktual tidak dikenakan penalti. Nilai \(\varepsilon\) yang relatif kecil menghasilkan \(\varepsilon\)-tube yang lebih sempit sehingga model menjadi lebih sensitif terhadap pola data dan mampu memberikan akurasi prediksi yang lebih baik.
# Visualisasi Hasil Hyperparameter Tuning Model SVR dengan Kernel RBF
svr_tuning_result <- collect_metrics(svr_tuned) |>
  filter(.metric == "rmse")

ggplot(svr_tuning_result, aes(x = cost, y = mean, color = rbf_sigma, size = margin)) +
  geom_point(alpha = 0.75) +
  scale_x_log10() +
  scale_color_gradient(low = "#f8b8d0", high = "#a61e5c") +
  labs(
    x = "Cost",
    y = "Rata-rata RMSE",
    color = "Sigma",
    size = "Margin"
  ) +
  theme_minimal()
Gambar 7. Visualisasi Hasil Hyperparameter Tuning Model SVR dengan Kernel RBF

Gambar 7. Visualisasi Hasil Hyperparameter Tuning Model SVR dengan Kernel RBF

Interpretasi:

  • Grafik menunjukkan hubungan antara parameter cost (\(C\)) pada sumbu horizontal dan rata-rata RMSE pada sumbu vertikal. Semakin rendah nilai RMSE, semakin baik performa model karena kesalahan prediksi yang dihasilkan semakin kecil.
  • Secara umum, nilai RMSE yang tinggi (sekitar 16 hingga 17) banyak ditemukan pada kombinasi parameter dengan nilai \(C\) yang rendah hingga sedang. Hal ini menunjukkan bahwa model belum mampu menangkap pola data secara optimal pada kombinasi parameter tersebut.
  • Ketika nilai \(C\) meningkat, terlihat beberapa kombinasi parameter menghasilkan RMSE yang jauh lebih rendah, bahkan mendekati nilai 6. Kondisi ini mengindikasikan bahwa peningkatan nilai \(C\) membantu model mempelajari pola data dengan lebih baik sehingga akurasi prediksi meningkat.
  • Titik dengan RMSE terendah berada pada rentang nilai \(C\) sekitar 40 hingga 50. Hal ini menunjukkan bahwa kombinasi parameter pada rentang tersebut memberikan performa terbaik selama proses cross-validation.
  • Warna titik merepresentasikan nilai \(\sigma\). Terlihat bahwa kombinasi dengan RMSE rendah umumnya berada pada nilai \(\sigma\) menengah hingga relatif besar. Hasil ini menunjukkan bahwa pengaturan lebar kernel RBF berperan penting dalam meningkatkan kemampuan model untuk menangkap hubungan nonlinier pada data.
  • Ukuran titik menunjukkan nilai margin atau \(\varepsilon\). Berdasarkan grafik, tidak terlihat pola yang sangat kuat antara perubahan nilai \(\varepsilon\) dan RMSE. Oleh karena itu, pengaruh \(\varepsilon\) terhadap performa model cenderung lebih kecil dibandingkan pengaruh parameter \(C\) dan \(\sigma\).
  • Kombinasi parameter dengan nilai \(C\) yang terlalu kecil cenderung menghasilkan RMSE yang besar. Hal ini mengindikasikan bahwa regularisasi yang terlalu kuat menyebabkan model menjadi terlalu sederhana (underfitting) sehingga kurang mampu mengikuti pola data secara optimal.
  • Berdasarkan grafik, kombinasi hyperparameter terbaik diperoleh dari titik yang memiliki nilai RMSE paling rendah. Kombinasi parameter tersebut dipilih sebagai model terbaik karena menghasilkan kesalahan prediksi rata-rata terkecil selama proses hyperparameter tuning.

5.2.3. Evaluasi Performa Model SVR dengan Kernel RBF

Selanjutnya, model yang telah dibangun menggunakan data latih diterapkan pada data uji untuk mengevaluasi performa prediksi serta kemampuan generalisasi model terhadap data baru yang tidak terlibat dalam proses pelatihan.

# Evaluasi Performa Model SVR dengan Kernel RBF
final_svr_wf <- finalize_workflow(svr_wf, best_svr)

svr_final <- last_fit(
  final_svr_wf,
  split_obj,
  metrics = metric_set(rmse, mae, rsq)
)

svr_metrics <- collect_metrics(svr_final)

svr_metrics_tabel <- svr_metrics |>
  select(
    Metrik = .metric,
    `Nilai Metrik` = .estimate
  )

knitr::kable(
  svr_metrics_tabel,
  digits = 3,
  row.names = FALSE,
  caption = "Tabel 12. Evaluasi Performa Model SVR dengan Kernel RBF"
)
Tabel 12. Evaluasi Performa Model SVR dengan Kernel RBF
Metrik Nilai Metrik
rmse 5.918
mae 4.109
rsq 0.873

Interpretasi:

  • Nilai RMSE sebesar 5.918 menunjukkan bahwa rata-rata kesalahan prediksi model SVR dengan kernel RBF terhadap nilai aktual adalah sekitar 5.918 MPa.
  • Nilai MAE sebesar 4.109 menunjukkan bahwa rata-rata selisih absolut antara nilai prediksi dan nilai aktual adalah sebesar 4.109 MPa.
  • Nilai \(R^2\) sebesar 0.873 menunjukkan bahwa model mampu menjelaskan 87.3% variasi variabel respon pada data yang tidak digunakan dalam proses pelatihan, sedangkan sisanya sebesar 12.7% dijelaskan oleh faktor lain di luar model.
  • Dibandingkan dengan model regresi linier yang menghasilkan nilai \(R^2\) sebesar 0.570 pada data uji, model SVR dengan kernel RBF menunjukkan kemampuan prediksi yang lebih baik karena mampu menjelaskan proporsi variasi data yang lebih besar.

5.2.4. Hasil Prediksi Model SVR dengan Kernel RBF

# Hasil Prediksi Model SVR dengan Kernel RBF
svr_pred <- collect_predictions(svr_final)

svr_pred_tabel <- svr_pred |>
  select(
    `Nilai Aktual` = Y,
    `Nilai Prediksi` = .pred
  ) |>
  head(10)

knitr::kable(
  svr_pred_tabel,
  digits = 3,
  row.names = FALSE,
  caption = "Tabel 13. Contoh Hasil Prediksi Model SVR"
)
Tabel 13. Contoh Hasil Prediksi Model SVR
Nilai Aktual Nilai Prediksi
61.887 79.432
47.030 48.859
45.854 36.431
39.290 39.921
28.022 29.238
47.814 35.077
52.908 46.871
40.563 45.807
42.621 37.627
44.208 31.274

Interpretasi:

  • Hasil prediksi model SVR pada 10 contoh data uji teratas menunjukkan bahwa nilai prediksi secara umum mampu mengikuti pola nilai aktual, meskipun masih terdapat beberapa observasi dengan selisih prediksi yang relatif besar.
  • Pada observasi dengan nilai aktual 47.030 MPa dan 39.290 MPa, model menghasilkan prediksi masing-masing sebesar 48.859 MPa dan 39.921 MPa. Selisih yang relatif kecil menunjukkan bahwa model mampu memberikan prediksi yang cukup akurat pada observasi tersebut.
  • Pada beberapa observasi, seperti nilai aktual 61.887 MPa yang diprediksi sebesar 79.432 MPa dan nilai aktual 47.814 MPa yang diprediksi sebesar 35.077 MPa, terlihat adanya kecenderungan model untuk melakukan overestimate maupun underestimate.
  • Meskipun terdapat beberapa kesalahan prediksi pada observasi tertentu, secara keseluruhan model tetap mampu menghasilkan prediksi yang mendekati nilai aktual, sebagaimana ditunjukkan oleh nilai \(R^2\) sebesar 0.873 pada data uji.
  • Hasil prediksi tersebut menunjukkan bahwa model SVR dengan kernel RBF mampu menangkap hubungan antara variabel prediktor dan variabel respon dengan baik serta memiliki kemampuan prediksi yang cukup tinggi pada data uji.

5.2.5. Visualisasi Data Aktual vs Prediksi Hasil Model SVR dengan Kernel RBF

# Visualisasi Data Aktual vs Prediksi Hasil Model SVR dengan Kernel RBF
ggplot(svr_pred, aes(x = Y, y = .pred)) +
  geom_point(color = "#c94f87", alpha = 0.6, size = 1.8) +
  geom_abline(
    slope = 1,
    intercept = 0,
    linetype = 2,
    color = "#a61e5c",
    linewidth = 0.8
  ) +
  coord_equal() +
  labs(
    x = "Nilai Aktual Kuat Tekan Beton (MPa)",
    y = "Nilai Prediksi Kuat Tekan Beton (MPa)"
  ) +
  theme_minimal()
Gambar 8. Visualisasi Data Aktual vs Prediksi Hasil Model SVR dengan Kernel RBF

Gambar 8. Visualisasi Data Aktual vs Prediksi Hasil Model SVR dengan Kernel RBF

Interpretasi:

  • Sebagian besar titik pengamatan berada di sekitar garis diagonal, menunjukkan bahwa nilai prediksi model SVR cukup dekat dengan nilai aktual.
  • Pola sebaran titik yang mengikuti garis diagonal mengindikasikan adanya kesesuaian yang kuat antara nilai aktual dan nilai prediksi.
  • Tidak terlihat pola penyimpangan yang sistematis, sehingga model mampu mengikuti pola data pada berbagai rentang nilai kuat tekan beton.
  • Meskipun terdapat beberapa titik yang berada cukup jauh dari garis diagonal, jumlahnya relatif sedikit dibandingkan keseluruhan observasi.
  • Secara keseluruhan, grafik menunjukkan bahwa model SVR dengan kernel RBF memiliki kemampuan prediksi yang baik, yang sejalan dengan nilai \(R^2\) sebesar 0.873 pada data uji.

5.2.6. Residual Model SVR dengan Kernel RBF

# Residual Model SVR dengan Kernel RBF
svr_pred |>
  mutate(residual = Y - .pred) |>
  ggplot(aes(x = .pred, y = residual)) +
  geom_point(color = "#c94f87", alpha = 0.6, size = 1.8) +
  geom_hline(
    yintercept = 0,
    linetype = 2,
    color = "#a61e5c",
    linewidth = 0.8
  ) +
  labs(
    x = "Nilai Prediksi Kuat Tekan Beton (MPa)",
    y = "Residual"
  ) +
  theme_minimal()
Gambar 9. Residual Model SVR dengan Kernel RBF

Gambar 9. Residual Model SVR dengan Kernel RBF

Interpretasi:

  • Residual tersebar di sekitar garis nol tanpa menunjukkan pola tertentu yang jelas, mengindikasikan bahwa model SVR telah mampu menangkap hubungan utama antara variabel prediktor dan variabel respon dengan baik.
  • Sebagian besar residual berada pada rentang yang relatif dekat dengan nol, menunjukkan bahwa kesalahan prediksi model umumnya tidak terlalu besar.
  • Tidak terlihat pola sistematis seperti bentuk kurva atau tren tertentu pada sebaran residual, sehingga tidak terdapat indikasi kuat bahwa model gagal menangkap pola nonlinier yang penting dalam data.
  • Terdapat beberapa observasi dengan residual yang cukup besar, baik positif maupun negatif, yang menunjukkan adanya beberapa prediksi yang cenderung lebih tinggi atau lebih rendah dibandingkan nilai aktual.
  • Sebaran residual yang relatif acak di sekitar garis nol menunjukkan bahwa model SVR dengan kernel RBF memiliki kemampuan prediksi yang baik dan tidak menunjukkan bias prediksi yang sistematis.
# Observasi dengan Error Prediksi Terbesar
error_terbesar <- svr_pred |>
  mutate(
    Residual = Y - .pred,
    `Absolute Error` = abs(Residual)
  ) |>
  arrange(desc(`Absolute Error`)) |>
  select(
    `Nilai Aktual` = Y,
    `Nilai Prediksi` = .pred,
    Residual,
    `Absolute Error`
  ) |>
  head(10)

knitr::kable(
  error_terbesar,
  digits = 3,
  row.names = FALSE,
  caption = "Tabel 14. Sepuluh Observasi dengan Error Prediksi Terbesar"
)
Tabel 14. Sepuluh Observasi dengan Error Prediksi Terbesar
Nilai Aktual Nilai Prediksi Residual Absolute Error
49.249 16.850 32.399 32.399
71.988 54.046 17.942 17.942
55.551 37.692 17.859 17.859
61.887 79.432 -17.545 17.545
24.401 40.713 -16.313 16.313
40.196 55.835 -15.638 15.638
13.459 29.039 -15.580 15.580
50.511 66.035 -15.524 15.524
46.932 31.709 15.223 15.223
13.461 28.661 -15.200 15.200

Interpretasi:

  • Tabel 14 menampilkan sepuluh observasi pada data uji yang memiliki nilai absolute error terbesar, yaitu observasi dengan selisih prediksi dan nilai aktual paling besar.
  • Error prediksi terbesar terjadi pada observasi dengan nilai aktual 49.249 MPa yang diprediksi sebesar 16.850 MPa, sehingga menghasilkan residual 32.399 MPa. Hal ini menunjukkan bahwa model melakukan underestimate yang cukup besar pada observasi tersebut.
  • Beberapa observasi lainnya juga menunjukkan pola underestimate, seperti nilai aktual 71.988 MPa yang diprediksi 54.046 MPa serta nilai aktual 55.551 MPa yang diprediksi 37.692 MPa, dengan absolute error masing-masing sebesar 17.942 MPa dan 17.859 MPa.
  • Sebaliknya, terdapat pula observasi yang mengalami overestimate, misalnya nilai aktual 61.887 MPa yang diprediksi sebesar 79.432 MPa, sehingga menghasilkan residual -17.545 MPa.
  • Berdasarkan sepuluh observasi tersebut, terlihat bahwa kesalahan terbesar umumnya terjadi pada observasi dengan nilai aktual yang relatif ekstrem dibandingkan sebagian besar data. Kondisi ini menunjukkan bahwa model SVR dengan kernel RBF masih mengalami kesulitan dalam memprediksi beberapa pengamatan tertentu secara tepat, terutama pada observasi yang berada jauh dari pola umum data.
  • Meskipun terdapat beberapa observasi dengan kesalahan prediksi yang cukup besar, jumlahnya relatif sedikit dibandingkan keseluruhan data uji. Oleh karena itu, keberadaan observasi-observasi tersebut tidak secara signifikan menurunkan performa model secara keseluruhan yang tetap menunjukkan tingkat akurasi yang baik berdasarkan nilai evaluasi yang diperoleh.

Bagian 6. Interpretasi dan Diskusi

6.1. Perbandingan Evaluasi Performa Model

Berdasarkan hasil evaluasi pada data uji, model SVR dengan kernel RBF menunjukkan performa prediksi yang lebih baik dibandingkan model regresi linier.

Tabel 15. Perbandingan Evaluasi Performa Model Regresi Linier dan SVR dengan Kernel RBF
Model RMSE MAE R_squared
Regresi Linier 10.854 8.394 0.570
SVR dengan Kernel RBF 5.918 4.109 0.873

Tabel 15 menunjukkan bahwa model SVR dengan kernel RBF menghasilkan nilai RMSE sebesar 5.918 dan MAE sebesar 4.109, sedangkan regresi linier menghasilkan RMSE sebesar 10.854 dan MAE sebesar 8.394. Nilai kesalahan pada model SVR dengan kernel RBF hampir setengah dari nilai kesalahan pada regresi linier. Artinya, secara rata-rata, prediksi yang dihasilkan oleh SVR lebih dekat terhadap nilai kuat tekan beton aktual dibandingkan model regresi linier. Selain itu, nilai \(R^2\) sebesar 0.873 menunjukkan bahwa model SVR dengan kernel RBF mampu menjelaskan 87.3% variasi kuat tekan beton pada data uji, sedangkan model regresi linier hanya mampu menjelaskan 57.0%.

Perbedaan performa tersebut mengindikasikan bahwa hubungan antara komposisi campuran beton, umur beton, dan kuat tekan beton tidak sepenuhnya bersifat linier. Pada data ini, setiap bahan komposisi campuran beton tidak bekerja secara terpisah, melainkan dapat saling berinteraksi dalam memengaruhi kuat tekan yang dihasilkan. Sebagai contoh, pengaruh semen terhadap kuat tekan beton dapat berubah bergantung pada jumlah air, superplasticizer, fly ash, blast furnace slag, maupun umur beton saat pengujian. Kondisi tersebut menyebabkan pola hubungan yang terbentuk menjadi lebih kompleks dibandingkan hubungan linier sederhana. Oleh karena itu, model yang mampu menangkap pola nonlinier seperti SVR dengan kernel RBF lebih sesuai digunakan dibandingkan model regresi linier yang hanya membentuk hubungan dalam bentuk garis lurus.

6.2. Makna Hasil Model SVR dengan Kernel RBF

Hasil model SVR dengan kernel RBF menunjukkan bahwa metode ini mampu memodelkan pola hubungan yang kompleks antara variabel prediktor dan kuat tekan beton. Nilai \(R^2\) yang tinggi menunjukkan bahwa sebagian besar variasi kuat tekan beton dapat dijelaskan oleh informasi komposisi campuran beton dan umur beton. Dengan demikian, model SVR dapat digunakan sebagai alat bantu prediksi awal untuk memperkirakan kuat tekan beton tanpa harus selalu melakukan pengujian fisik pada seluruh kombinasi campuran.

Secara substantif, hasil ini sejalan dengan karakteristik beton sebagai material yang kekuatannya dipengaruhi oleh banyak faktor sekaligus. Kuat tekan beton tidak hanya ditentukan oleh satu bahan, tetapi oleh keseimbangan antara semen, air, agregat, bahan tambah, serta umur beton saat pengujian. Semakin kompleks komposisi campuran, semakin sulit hubungan tersebut dijelaskan menggunakan pendekatan linier sederhana. Oleh karena itu, keberhasilan SVR dengan kernel RBF dalam menghasilkan kesalahan prediksi yang lebih kecil menunjukkan bahwa model ini lebih mampu menangkap pola gabungan antarvariabel.

6.3. Potensi Kesalahan Prediksi

Meskipun performa model SVR dengan kernel RBF tergolong baik, model tetap memiliki potensi kesalahan prediksi. Nilai RMSE sebesar 5.918 MPa menunjukkan bahwa masih terdapat deviasi antara nilai prediksi dan nilai aktual. Kesalahan ini dapat terjadi karena dataset hanya memuat delapan variabel prediktor, yaitu komposisi campuran beton dan umur beton, sedangkan kuat tekan beton dalam kondisi nyata juga dapat dipengaruhi oleh faktor lain seperti metode pencampuran, suhu dan kelembapan selama proses curing, kualitas bahan, ukuran sampel, serta prosedur pengujian laboratorium.

Selain itu, beberapa observasi dengan nilai kuat tekan yang sangat tinggi atau sangat rendah berpotensi lebih sulit diprediksi. Hal ini karena sebagian besar data berada pada rentang kuat tekan menengah, sehingga model lebih banyak belajar dari pola yang dominan. Akibatnya, pada nilai ekstrem, model dapat melakukan overestimate atau underestimate. Oleh karena itu, meskipun nilai evaluasi keseluruhan menunjukkan performa yang baik, hasil prediksi pada observasi tertentu tetap perlu ditinjau secara kritis.

6.4. Kekuatan Model SVR dengan Kernel RBF

Kekuatan utama model SVR dengan kernel RBF terletak pada kemampuannya menangkap hubungan nonlinier melalui penggunaan kernel RBF. Kernel ini memungkinkan model membentuk fungsi prediksi yang lebih fleksibel dibandingkan regresi linier. Hal tersebut penting karena hasil EDA menunjukkan bahwa hubungan antara masing-masing prediktor dan kuat tekan beton secara individual cenderung lemah hingga sedang. Dengan kata lain, informasi prediktif yang kuat kemungkinan tidak hanya berasal dari satu variabel, tetapi dari kombinasi beberapa variabel secara simultan.

Selain itu, model SVR dengan kernel RBF memiliki prinsip regularisasi melalui parameter cost (\(C\)), margin (\(\varepsilon\)), dan sigma (\(\sigma\)) sehingga model tidak hanya berupaya meminimalkan kesalahan pada data latih, tetapi juga menjaga kemampuan generalisasi pada data uji. Hasil evaluasi menunjukkan bahwa SVR dengan kernel RBF mampu menghasilkan RMSE dan MAE yang lebih rendah serta \(R^2\) yang lebih tinggi dibandingkan regresi linier. Hal ini menunjukkan bahwa SVR tidak hanya lebih akurat, tetapi juga lebih sesuai dengan struktur data yang memiliki pola kompleks.

6.5. Keterbatasan Model SVR dengan Kernel RBF

Keterbatasan utama dari model SVR dengan kernel RBF adalah interpretasinya yang tidak sesederhana regresi linier. Pada regresi linier, arah dan besar pengaruh variabel dapat dilihat langsung melalui koefisien. Sebaliknya, pada SVR dengan kernel RBF, hubungan antarvariabel dimodelkan dalam ruang fitur berdimensi lebih tinggi sehingga pengaruh masing-masing variabel tidak dapat dijelaskan secara langsung hanya dari parameter model. Oleh karena itu, meskipun SVR dengan kernel RBF memberikan akurasi lebih tinggi, model ini memiliki keterbatasan dari sisi interpretabilitas.

Keterbatasan lainnya adalah model hanya dibangun berdasarkan satu dataset dengan 1030 observasi. Dengan demikian, kemampuan model untuk diterapkan pada data beton dari sumber, standar material, atau kondisi laboratorium yang berbeda belum dapat dipastikan sepenuhnya. Selain itu, proses hyperparameter tuning menggunakan sejumlah kombinasi tertentu, sehingga masih terdapat kemungkinan bahwa kombinasi parameter lain dapat menghasilkan performa yang lebih baik.

6.6. Implikasi Analitik

Secara analitik, hasil penelitian ini menunjukkan bahwa pemilihan model sangat berpengaruh terhadap kualitas prediksi. Regresi linier masih berguna sebagai model pembanding karena sederhana dan mudah diinterpretasikan, tetapi performanya lebih terbatas ketika pola hubungan antarvariabel bersifat nonlinier. Sebaliknya, SVR dengan kernel RBF lebih unggul dalam aspek akurasi prediksi karena mampu menangkap hubungan kompleks antara komposisi campuran beton dan umur beton terhadap kuat tekan beton.

Implikasi praktis dari hasil ini adalah bahwa SVR dengan kernel RBF dapat digunakan sebagai metode pendukung dalam estimasi kuat tekan beton, terutama pada tahap awal perancangan campuran. Model ini dapat membantu memperkirakan kuat tekan dari berbagai kombinasi material secara lebih cepat, sehingga proses eksperimen fisik dapat menjadi lebih efisien. Namun, hasil prediksi model tetap perlu diposisikan sebagai alat bantu analisis, bukan sebagai pengganti penuh pengujian laboratorium, karena keputusan teknis dalam bidang konstruksi tetap memerlukan validasi empiris dan pertimbangan standar keamanan.

Secara keseluruhan, hasil analisis menunjukkan bahwa SVR dengan kernel RBF merupakan model yang lebih kuat dibandingkan regresi linier dalam memprediksi kuat tekan beton pada dataset ini. Model memiliki keunggulan dari sisi akurasi dan kemampuan menangkap pola nonlinier, tetapi tetap memiliki keterbatasan pada interpretabilitas, kemungkinan kesalahan pada nilai ekstrem, serta keterbatasan cakupan variabel yang digunakan.

Bagian 7. Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, diperoleh beberapa kesimpulan sebagai berikut.

  • Model SVR dengan kernel RBF berhasil dibangun untuk memprediksi kuat tekan beton berdasarkan komposisi campuran beton dan umur beton. Hasil hyperparameter tuning menunjukkan kombinasi parameter optimal berupa cost (\(C\)) sebesar 45.2137, sigma (\(\sigma\)) sebesar 0.25089, dan margin (\(\varepsilon\)) sebesar 0.17737 yang memberikan performa terbaik pada proses pelatihan dan validasi model.

  • Model SVR dengan kernel RBF menunjukkan performa prediksi yang baik dengan menghasilkan nilai RMSE sebesar 5.918 MPa, MAE sebesar 4.109 MPa, dan \(R^2\) sebesar 0.873 pada data uji. Hasil tersebut menunjukkan bahwa model mampu menjelaskan 87,3% variasi kuat tekan beton sehingga dapat digunakan untuk memprediksi kuat tekan beton secara akurat berdasarkan informasi komposisi campuran beton dan umur beton.

  • Dibandingkan dengan model regresi linier, model SVR memberikan performa yang lebih unggul. Regresi linier menghasilkan RMSE sebesar 10.854 MPa, MAE sebesar 8.394 MPa, dan \(R^2\) sebesar 0.570, sedangkan SVR mampu menghasilkan kesalahan prediksi yang lebih rendah dan kemampuan penjelasan variasi data yang lebih tinggi. Hasil ini menunjukkan bahwa hubungan antara komposisi campuran beton, umur beton, dan kuat tekan beton cenderung bersifat nonlinier sehingga lebih sesuai dimodelkan menggunakan SVR dengan kernel RBF.

  • Berdasarkan hasil analisis, model SVR dengan kernel RBF dapat digunakan sebagai metode pendukung dalam mengestimasi kuat tekan beton pada tahap awal perancangan komposisi campuran beton. Model ini mampu memberikan prediksi yang cukup akurat berdasarkan komposisi campuran dan umur beton sehingga dapat membantu mempercepat proses evaluasi berbagai alternatif campuran sebelum dilakukan pengujian laboratorium. Namun, hasil prediksi model sebaiknya digunakan sebagai alat bantu pengambilan keputusan dan bukan sebagai pengganti penuh pengujian fisik, karena penentuan kuat tekan beton dalam praktik konstruksi tetap memerlukan validasi laboratorium untuk menjamin keamanan dan kesesuaian terhadap standar yang berlaku.

Referensi

  • Abedin, T., Xu, H., & Uddin, S. (2026). The Impact of K Selection in K‑Fold Cross-Validation on Bias and Variance in Supervised Learning Models. Scientific Reports, 16(1), 6084. https://doi.org/10.1038/s41598-026-37247-x.
  • Ahmed, A. (2024). Assessing The Effects of Supplementary Cementitious Materials on Concrete Properties: A Review. Discover Civil Engineering, 1(1). https://doi.org/10.1007/s44290-024-00154-z.
  • Chang, C.-C., & Lin, C.-J. (2011). LIBSVM: A Library for Support Vector Machines. ACM Transactions on Intelligent Systems and Technology, 2(3), 1-27. https://doi.org/10.1145/1961189.1961199.
  • Diaferio, M., & Varona, F. B. (2024). Concrete Structures: Latest Advances and Prospects for a Sustainable Future. Applied Sciences, 14(9), 3803. https://doi.org/10.3390/app14093803.
  • Du, K.-L., Jiang, B., Lu, J., Hua, J., & Swamy, M. N. S. (2024). Exploring Kernel Machines and Support Vector Machines: Principles, Techniques, and Future Directions. Mathematics, 12(24), 3935. https://doi.org/10.3390/math12243935.
  • Guido, R., Ferrisi, S., Lofaro, D., & Conforti, D. (2024). An Overview on The Advancements of Support Vector Machine Models in Healthcare Applications: A Review. Information, 15(4), 235. https://doi.org/10.3390/info15040235.
  • Gupta, A., Stead, T. S., & Ganti, L. (2024). Determining a Meaningful R-squared Value in Clinical Medicine. Academic Medicine & Surgery. https://doi.org/10.62186/001c.125154.
  • Miller, C., Portlock, T., Nyaga, D. M., & O’Sullivan, J. M. (2024). A Review of Model Evaluation Metrics for Machine Learning in Genetics and Genomics. Frontiers in Bioinformatics, 4, 1457619. https://doi.org/10.3389/fbinf.2024.1457619.
  • Montesinos, A., López, A. M., & Crossa, J. (2022). Multivariate Statistical Machine Learning Methods for Genomic Prediction. Springer International Publishing.
  • Roy, A., & Chakraborty, S. (2023). Support Vector Machine in Structural Reliability Analysis: A Review. Reliability Engineering & System Safety, 233, 109126. https://doi.org/10.1016/j.ress.2023.109126.
  • Shan, X., Zhang, Z., Li, X., Xie, Y., & You, J. (2023). Robust Online Support Vector Regression with Truncated ε-Insensitive Pinball Loss. Mathematics, 11(3), 709. https://doi.org/10.3390/math11030709.
  • Smola, A. J., & Schölkopf, B. (2004). A Tutorial on Support Vector Regression. Statistics and Computing, 14(3), 199-222. https://doi.org/10.1023/b:stco.0000035301.49549.88.
  • Soreng, A., & Vourakis, A. (2024, February 26). Metrics Evaluation: MSE, RMSE, MAE and MAPE. Medium. https://medium.com/@jonatasv/metrics-evaluation-mse-rmse-mae-and-mape-317cab85a26b.
  • Teodorescu, V., & Brașoveanu, L. O. (2025). Assessing the Validity of k-Fold Cross-Validation for Model Selection: Evidence from Bankruptcy Prediction Using Random Forest and XGBoost. Computation, 13(5), 127. https://doi.org/10.3390/computation13050127.
  • Thanni, Q. A., Obisesan, K. A., & Harrington, P. de B. (2025, April 19). Integrated Autotuning Epsilon and Nu-Support Vector Regression. Social Science Research Network (SSRN). https://ssrn.com/abstract=5222836.
  • Wang, W., Zhong, Y., Liao, G., Ding, Q., Zhang, T., & Li, X. (2024). Prediction of Compressive Strength of Concrete Specimens Based on Interpretable Machine Learning. Materials, 17(15), 3661. https://doi.org/10.3390/ma17153661.
  • Yeh, I. (1998). Concrete Compressive Strength [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C5PK67.
  • Yeh, I-Cheng. (1998). Modeling of Strength of High-Performance Concrete using Artificial Neural Networks. Cement and Concrete Research, 28(12), 1797-1808. https://doi.org/10.1016/s0008-8846(98)00165-3.