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.
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.
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:
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?”
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).
Variabel respons yang digunakan disajikan pada Tabel 1.
| Variabel | Satuan | Deskripsi |
|---|---|---|
| Concrete Compressive Strength | MPa | Kuat tekan beton |
Variabel prediktor yang digunakan disajikan pada Tabel 2.
| 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 |
# 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)# 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"
)| 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 |
# 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"
)| 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:
# 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
Interpretasi:
# 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
Interpretasi:
# 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
Interpretasi:
# 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
Interpretasi:
# 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
Interpretasi:
# 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"
)| 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:
# 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)"
)| 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.
# 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"
)| Data | Proporsi | Jumlah |
|---|---|---|
| Latih | 0.8 | 824 |
| Uji | 0.2 | 206 |
| Jumlah | 1.0 | 1030 |
Interpretasi:
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:
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).
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).
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).
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).
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).
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).
\[ K(x_i,x_j)=x_i^Tx_j \]
Kernel ini digunakan ketika hubungan antar variabel mendekati linear.
\[ K(x_i,x_j)=(x_i^Tx_j+1)^d \]
Kernel ini mampu menangkap pola hubungan polinomial.
\[ \exp(-\gamma|x_i-x_j|^2) \]
Kernel RBF merupakan kernel yang paling sering digunakan karena mampu memodelkan hubungan nonlinier yang kompleks.
\[ \tanh(\gamma x_i^Tx_j+r) \]
Kernel ini memiliki karakteristik yang mirip dengan fungsi aktivasi pada jaringan saraf.
Parameter \(\gamma\) digunakan khusus pada kernel RBF untuk mengatur seberapa jauh pengaruh suatu observasi terhadap observasi lainnya (Chang & Lin, 2011).
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
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).
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.
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.
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.
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.
Model regresi linier dibangun menggunakan data latih untuk memperoleh parameter dan persamaan model yang menggambarkan hubungan antara variabel prediktor terhadap variabel respons.
# 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"
)| 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:
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 \]
# 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"
)| R-squared | Adjusted R-squared | F hitung | p-value F |
|---|---|---|---|
| 0.625 | 0.621 | 169.852 | 6.710e-168 |
Interpretasi:
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"
)| Metrik | Nilai Metrik |
|---|---|
| rmse | 10.854 |
| mae | 8.394 |
| rsq | 0.570 |
Interpretasi:
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.
# 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"
)| Cost | Sigma | Margin |
|---|---|---|
| 45.2137 | 0.25089 | 0.17737 |
Interpretasi:
# 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
Interpretasi:
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"
)| Metrik | Nilai Metrik |
|---|---|
| rmse | 5.918 |
| mae | 4.109 |
| rsq | 0.873 |
Interpretasi:
# 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"
)| 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:
# 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
Interpretasi:
# 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
Interpretasi:
# 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"
)| 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:
Berdasarkan hasil evaluasi pada data uji, model SVR dengan kernel RBF menunjukkan performa prediksi yang lebih baik dibandingkan model regresi linier.
| 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.
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.
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.
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.
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.
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.
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.
Link: https://drive.google.com/drive/folders/1r6DDq4XDHvZmz5dio0ssFl6oVGGFvQ1X?usp=share_link