Menurut Kementerian Kesehatan Republik Indonesia, rumah sakit merupakan institusi pelayanan kesehatan yang menyelenggarakan pelayanan kesehatan perorangan secara paripurna yang meliputi pelayanan rawat inap, rawat jalan, dan gawat darurat. Dalam menjalankan fungsinya, rumah sakit dituntut mampu memberikan pelayanan yang efektif, efisien, dan berkualitas. Salah satu indikator untuk mengukur aktivitas pelayanan rumah sakit adalah jumlah kunjungan pasien rawat jalan (Hastuti et al., 2017). Indikator ini dapat digunakan sebagai dasar dalam perencanaan sumber daya, seperti pengaturan tenaga medis, jadwal pelayanan, serta penyediaan sarana dan prasarana.
Rumah Sakit Islam Fatimah Banyuwangi juga mengalami fluktuasi jumlah kunjungan pasien rawat jalan dari waktu ke waktu. Berdasarkan data periode Januari 2021 hingga Desember 2025, jumlah kunjungan berkisar antara 3.547 hingga 6.382 pasien per bulan dengan rata-rata sekitar 5.004 pasien per bulan. Fluktuasi tersebut menunjukkan adanya pola tren yang perlu dianalisis secara sistematis agar perencanaan pelayanan dapat dilakukan secara lebih optimal.
Untuk membantu memperkirakan jumlah kunjungan pasien pada periode mendatang, diperlukan metode peramalan yang mampu menganalisis pola data historis. Salah satu metode yang dapat digunakan adalah Double Exponential Smoothing Holt, yang sesuai untuk data dengan komponen tren linier (Hakimah & Kurniawan, 2021).
Berdasarkan hal tersebut, penelitian ini bertujuan menerapkan metode Double Exponential Smoothing Holt pada data kunjungan pasien rawat jalan Rumah Sakit Islam Fatimah Banyuwangi periode Januari 2021 hingga Desember 2025 guna memperoleh hasil peramalan yang dapat mendukung perencanaan pelayanan kesehatan di masa mendatang.
Data yang digunakan merupakan data primer berupa total kunjungan pasien rawat jalan bulanan di Rumah Sakit Islam Fatimah Banyuwangi periode Januari 2021 sampai Desember 2025 (60 periode), dalam satuan orang.
Metode Double Exponential Smoothing Holt merupakan pengembangan dari Single Exponential Smoothing, dengan menambahkan unsur trend sehingga dapat digunakan untuk data yang memiliki kecenderungan meningkat atau menurun dari waktu ke waktu. Metode ini menggunakan dua konstanta pemulusan, yaitu α (level) dan β (trend), dengan \(0 \le \alpha \le 1\) dan \(0 \le \beta \le 1\).
Secara matematis, metode Holt dinyatakan melalui persamaan berikut:
Inisialisasi: - \(L_1 = X_1\) - \(T_1 = X_2 - X_1\)
Akurasi peramalan diukur menggunakan sMAPE (symmetric Mean Absolute Percentage Error). Semakin kecil nilai sMAPE, maka akurasi peramalan semakin baik.
\[ sMAPE = \frac{2}{n}\sum_{t=1}^{n}\frac{|X_t - F_t|}{|X_t| + |F_t|}\times 100\% \]
kunjungan <- c(
4235,3547,4459,3895,3799,4607,4765,3894,4083,4456,4556,4757,
4764,4450,4622,4052,4045,4479,4034,4502,5040,4744,4870,4771,
4850,4797,5315,3912,5731,4908,5338,5498,5280,5905,5942,5378,
6373,5490,5809,5903,6382,5268,5505,5239,5433,6003,5825,5415,
5568,5163,5089,5126,5035,4649,5131,5075,5516,5704,5113,6133
)
periode <- seq.Date(from = as.Date("2021-01-01"), by = "month", length.out = length(kunjungan))
data_total <- data.frame(PERIODE = periode, TOTAL_KUNJUNGAN_RS = kunjungan)
ts_kunj <- ts(data_total$TOTAL_KUNJUNGAN_RS, start = c(2021,1), frequency = 12)
head(data_total)## PERIODE TOTAL_KUNJUNGAN_RS
## 1 2021-01-01 4235
## 2 2021-02-01 3547
## 3 2021-03-01 4459
## 4 2021-04-01 3895
## 5 2021-05-01 3799
## 6 2021-06-01 4607
## PERIODE TOTAL_KUNJUNGAN_RS
## 55 2025-07-01 5131
## 56 2025-08-01 5075
## 57 2025-09-01 5516
## 58 2025-10-01 5704
## 59 2025-11-01 5113
## 60 2025-12-01 6133
Dalam penggunaan metode ini, data yang digunakan harus memiliki trend, sehingga data yang digunakan harus di identifikasi untuk mengetahui apakah memiliki trend atau tidak. Berdasarkan Gambar di bawah, menunjukan adanya trend turun dari periode ke periode. Maka secara teori, metode DES Holt dapat digunakan untuk proses analisis yang lebih lanjut.
ggplot(data_total, aes(x = PERIODE, y = TOTAL_KUNJUNGAN_RS)) +
geom_line() +
geom_point() +
labs(
title = "Plot Trend Kunjungan Pasien Rawat Jalan (Jan 2021 – Des 2025)",
x = "Periode",
y = "Total Kunjungan"
) +
theme_minimal()Analisis deskriptif data dilakukan untuk mengetahui persebaran data. Berdasarkan output di bawah dapat dilihat nilai-nilai statistik deskriptif dari total kunjungan pasien rawat jalan Rumah Sakit Islam Fatimah Banyuwangi dari Januari 2021 sampai Desember 2025 dalam satuan orang. Diperoleh rata-rata pengadaan sebesar 5.004 orang dengan maksimum pengadaan sebanyak 6.382 orang dan minimum 3.547 orang.
desc <- data_total %>%
summarise(
Q1 = quantile(TOTAL_KUNJUNGAN_RS, 0.25),
Median = median(TOTAL_KUNJUNGAN_RS),
Q3 = quantile(TOTAL_KUNJUNGAN_RS, 0.75),
Mean = mean(TOTAL_KUNJUNGAN_RS),
Min = min(TOTAL_KUNJUNGAN_RS),
Max = max(TOTAL_KUNJUNGAN_RS)
)
desc## Q1 Median Q3 Mean Min Max
## 1 4542.5 5057.5 5492 5003.783 3547 6382
holt_manual <- function(series, alpha, beta){
y <- as.numeric(series)
n <- length(y)
L <- numeric(n)
T <- numeric(n)
F <- rep(NA_real_, n)
L[1] <- y[1]
T[1] <- y[2] - y[1]
for(t in 2:n){
F[t] <- L[t-1] + T[t-1]
L[t] <- alpha * y[t] + (1 - alpha) * (L[t-1] + T[t-1])
T[t] <- beta * (L[t] - L[t-1]) + (1 - beta) * T[t-1]
}
list(F = F, L = L, T = T)
}Langkah awal dalam menerapkan metode ini adalah menentukan parameter α dan β. Sebagai awalan, parameter α dan β bisa ditentukan dengan bebas terlebih dahulu. Penulis menggunakan nilai α sebesar 0,5 dan β sebesar 0,1.
alpha0 <- 0.5
beta0 <- 0.1
hb0 <- holt_manual(kunjungan, alpha0, beta0)
pred0 <- hb0$F[2:length(kunjungan)]
act0 <- kunjungan[2:length(kunjungan)]
smape0 <- smape(act0, pred0)
smape0## [1] 10.453
Hasil perhitungan menunjukkan nilai sMAPE sebesar 10,45%. Berdasarkan kriteria sMAPE, nilai tersebut termasuk dalam kategori peramalan yang baik. Meskipun demikian, untuk meningkatkan tingkat akurasi model, dilakukan penyesuaian terhadap parameter α dan β guna memperoleh nilai sMAPE yang lebih kecil.
Dalam upaya memperoleh nilai sMAPE terkecil, penulis menggunakan metode expand grid untuk menentukan parameter α dan β yang optimal. Pemilihan parameter dilakukan secara sistematis berdasarkan nilai sMAPE sebagai indikator utama akurasi peramalan.
calc_error <- function(actual, preds){
actual <- as.numeric(actual)
preds <- as.numeric(preds)
e <- actual - preds
mse <- mean(e^2)
rmse <- sqrt(mse)
mae <- mean(abs(e))
mape <- mean(abs(e) / ifelse(actual == 0, NA, abs(actual))) * 100
smp <- mean(2 * abs(e) / (abs(actual) + abs(preds))) * 100
c(MSE = mse, RMSE = rmse, MAE = mae, MAPE = mape, sMAPE = smp)
}
step_size <- 0.05
alphas <- seq(0.01, 0.99, by = step_size)
betas <- seq(0.01, 0.99, by = step_size)
param_grid <- expand.grid(alpha = alphas, beta = betas)
eval_one <- function(a, b, series){
hb <- holt_manual(series, a, b)
preds <- hb$F[2:length(series)]
actual <- series[2:length(series)]
err <- calc_error(actual, preds)
f_next <- hb$L[length(series)] + hb$T[length(series)] * 1
c(err, Forecast_next = f_next)
}
sc <- t(mapply(eval_one, param_grid$alpha, param_grid$beta,
MoreArgs = list(series = kunjungan)))
res_df <- cbind(param_grid, as.data.frame(sc))
res_df <- res_df[order(res_df$sMAPE), ]
head(res_df, 10)## alpha beta MSE RMSE MAE MAPE sMAPE Forecast_next
## 174 0.66 0.41 308378.5 555.3184 405.0320 8.213415 8.332317 6086.737
## 194 0.66 0.46 313809.1 560.1867 406.6475 8.232412 8.336805 6099.664
## 154 0.66 0.36 304058.1 551.4147 403.9471 8.202729 8.340034 6068.858
## 233 0.61 0.56 312344.5 558.8779 407.5988 8.254318 8.345648 6087.587
## 213 0.61 0.51 306902.1 553.9875 406.6406 8.247897 8.350340 6082.393
## 214 0.66 0.51 320134.2 565.8040 408.6396 8.258894 8.351837 6108.605
## 253 0.61 0.61 318413.4 564.2813 408.9168 8.270602 8.353008 6089.796
## 134 0.66 0.31 301194.9 548.8123 403.0492 8.193527 8.354327 6045.239
## 193 0.61 0.46 302208.9 549.7353 405.8018 8.243353 8.359624 6073.187
## 155 0.71 0.36 315475.8 561.6724 407.4951 8.244770 8.369109 6102.918
## alpha beta MSE RMSE MAE MAPE sMAPE Forecast_next
## 174 0.66 0.41 308378.5 555.3184 405.032 8.213415 8.332317 6086.737
Berdasarkan proses tersebut, diperoleh parameter α sebesar 0,66 dan β sebesar 0,41 sebagai kandidat parameter terbaik. Oleh karena itu, parameter tersebut digunakan dalam proses peramalan untuk 10 periode ke depan.
fit_best <- holt(ts_kunj, alpha = best_alpha, beta = best_beta, h = 10)
fc <- forecast(fit_best, h = 10)
future_period <- seq.Date(from = as.Date("2026-01-01"), by = "month", length.out = 10)
tabel_forecast <- data.frame(
PERIODE = format(future_period, "%B %Y"),
Forecast = round(as.numeric(fc$mean), 0)
)
tabel_forecast## PERIODE Forecast
## 1 January 2026 6119
## 2 February 2026 6379
## 3 March 2026 6639
## 4 April 2026 6899
## 5 May 2026 7159
## 6 June 2026 7419
## 7 July 2026 7679
## 8 August 2026 7939
## 9 September 2026 8199
## 10 October 2026 8459
autoplot(fc) +
autolayer(ts_kunj, series = "Aktual") +
labs(
title = "Grafik Perbandingan Data Aktual dan Peramalan (Holt)",
subtitle = paste0("α = ", best_alpha, ", β = ", best_beta,
" | sMAPE (grid) = ", round(best_smape, 2), "%"),
x = "Periode",
y = "Total Kunjungan"
) +
theme_minimal()Berdasarkan hasil analisis dan pembahasan yang telah dilakukan terhadap data kunjungan pasien rawat jalan Rumah Sakit Islam Fatimah Banyuwangi periode Januari 2021 hingga Desember 2025 menggunakan metode Double Exponential Smoothing Holt, maka dapat disimpulkan beberapa hal sebagai berikut:
Data kunjungan pasien rawat jalan RSI Fatimah Banyuwangi periode
Januari 2021 hingga Desember 2025 menunjukkan adanya fluktuasi yang
disertai kecenderungan pola trend. Kondisi tersebut menunjukkan bahwa
secara teoritis data sesuai untuk dianalisis menggunakan metode Double
Exponential Smoothing Holt. Berdasarkan proses penentuan parameter
melalui pencarian grid menggunakan expand.grid(), diperoleh
parameter terbaik yaitu α = 0,66 dan β =
0,41 yang menghasilkan nilai kesalahan peramalan paling kecil.
Dengan parameter tersebut dilakukan peramalan jumlah kunjungan pasien
rawat jalan untuk 10 periode ke depan, yaitu dari Januari 2026
hingga Oktober 2026.
Tingkat akurasi peramalan dalam penelitian ini diukur menggunakan sMAPE (symmetric Mean Absolute Percentage Error). Hasil perhitungan menunjukkan nilai sMAPE sebesar 8,33%. Berdasarkan kriteria penilaian sMAPE, nilai tersebut termasuk dalam kategori sangat baik, sehingga model Double Exponential Smoothing Holt dapat digunakan sebagai salah satu acuan dalam memperkirakan jumlah kunjungan pasien rawat jalan pada periode mendatang. Meskipun demikian, hasil peramalan tetap perlu dipertimbangkan bersama faktor lain karena perubahan kondisi eksternal dapat mempengaruhi jumlah kunjungan pasien.
Berdasarkan hasil penelitian yang telah dilakukan, terdapat beberapa saran yang dapat diberikan sebagai berikut:
Hasil peramalan jumlah kunjungan pasien rawat jalan RSI Fatimah Banyuwangi yang diperoleh dalam penelitian ini dapat digunakan sebagai bahan pertimbangan dalam perencanaan pelayanan rumah sakit, seperti pengaturan tenaga medis, jadwal pelayanan, maupun penyediaan fasilitas kesehatan. Namun demikian, hasil peramalan sebaiknya tidak dijadikan sebagai satu-satunya dasar pengambilan keputusan karena jumlah kunjungan pasien dapat berubah sewaktu-waktu akibat adanya faktor lain di luar data historis.
Penelitian selanjutnya disarankan menggunakan data dengan rentang waktu yang lebih panjang serta melakukan perbandingan dengan metode peramalan lain, sehingga dapat diperoleh model peramalan yang lebih akurat dan komprehensif dalam memprediksi jumlah kunjungan pasien pada periode mendatang.