I Pendahuluan

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.

II Metodologi

2.1 Jenis dan Sumber Data

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.

2.2 Metode Double Exponential Smoothing Holt

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:

  • Level: \[ L_t = \alpha X_t + (1-\alpha)(L_{t-1}+T_{t-1}) \]
  • Trend: \[ T_t = \beta(L_t - L_{t-1}) + (1-\beta)T_{t-1} \]
  • Forecast: \[ F_{t+m} = L_t + T_t m \]

Inisialisasi: - \(L_1 = X_1\) - \(T_1 = X_2 - X_1\)

2.3 Ukuran Akurasi Peramalan (sMAPE)

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\% \]

smape <- function(actual, forecast){
  denom <- abs(actual) + abs(forecast)
  mean(ifelse(denom == 0, 0, 2 * abs(actual - forecast) / denom)) * 100
}

III Hasil dan Pembahasan

3.1 Input Data dan Pembentukan Time Series

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
tail(data_total)
##       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

3.2 Identifikasi Pola Trend

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

3.3 Statistik Deskriptif

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

3.4 Penerapan Double Exponential Smoothing Holt

3.4.1 Fungsi Holt

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

3.4.2 Perhitungan Awal dan sMAPE Awal

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.

3.5 Pemilihan Parameter α dan β

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
best <- res_df[1, ]
best_alpha <- best$alpha
best_beta  <- best$beta
best_smape <- best$sMAPE

best
##     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.

3.6 Peramalan 10 Periode Berikutnya (Jan–Okt 2026)

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

Grafik Perbandingan Data Aktual dan Peramalan

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

IV Penutup

4.1 Kesimpulan

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:

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

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

4.2 Saran

Berdasarkan hasil penelitian yang telah dilakukan, terdapat beberapa saran yang dapat diberikan sebagai berikut:

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

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