Analisis Deret Waktu Jumlah Pengunjung Perpustakaan Daerah Kabupaten Serang

Gambaran Umum

Data yang digunakan adalah jumlah pengunjung Perpustakaan Daerah Kabupaten Serang dalam satuan orang per bulan, mulai Januari 2023 sampai Juni 2024. Analisis dilakukan untuk melihat pola data, menghitung Single Moving Average (SMA), Double Moving Average (DMA) dan melakukan peramalan untuk periode setelah data terakhir.

1. Objek Time Series dan Plot Runtun Waktu

# Data jumlah pengunjung Perpustakaan Daerah Kabupaten Serang
# Januari 2023 - Juni 2024 (orang/bulan)

perpus <- c(
  210, 195, 220, 205, 230, 215,
  240, 225, 250, 235, 245, 260,
  255, 265, 270, 280, 275, 290
)

perpus_ts <- ts(
  perpus,
  start = c(2023, 1),
  frequency = 12
)

print(perpus_ts)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2023 210 195 220 205 230 215 240 225 250 235 245 260
## 2024 255 265 270 280 275 290
# Plot runtun waktu
bulan <- c(
  "Jan-23", "Feb-23", "Mar-23", "Apr-23", "May-23", "Jun-23",
  "Jul-23", "Aug-23", "Sep-23", "Oct-23", "Nov-23", "Dec-23",
  "Jan-24", "Feb-24", "Mar-24", "Apr-24", "May-24", "Jun-24"
)

plot(
  perpus_ts,
  main = "Jumlah Pengunjung Perpustakaan Daerah Kabupaten Serang",
  xlab = "Bulan",
  ylab = "Jumlah Pengunjung (orang/bulan)",
  xaxt = "n",
  col = "purple3",
  lwd = 2,
  pch = 1
)

points(
  time(perpus_ts),
  perpus_ts,
  pch = 1,
  cex = 1.1,
  col = "blue3"
)

axis(
  1,
  at = time(perpus_ts),
  labels = bulan,
  las = 2,
  cex.axis = 0.7
)

Interpretasi :

Berdasarkan plot, jumlah pengunjung Perpustakaan Daerah Kabupaten Serang cenderung meningkat dari Januari 2023 hingga Juni 2024, meskipun terdapat beberapa penurunan pada bulan tertentu. Secara keseluruhan, pola data menunjukkan tren naik selama periode pengamatan.

2. Single Moving Average (SMA)

menghitung dan membuat plot SMA(3) lalu membandingkan data asli pada 6 bulan terakhir. apakah SMA terlihat tertinggal?

library(zoo)

# 2) Simple Moving Average (SMA)
sma3 <- rollmean(perpus_ts, k = 3, align = "right", fill = NA)

plot(perpus_ts,
     main = "Simple Moving Average (SMA 3)",
     xlab = "Bulan",
     ylab = "Jumlah Pengunjung (orang/bulan)",
     xaxt = "n",
     col = "purple3",
     lwd = 2)

lines(sma3, col = "yellow2", lwd = 2)

axis(1,
     at = time(perpus_ts),
     labels = bulan,
     las = 2,
     cex.axis = 0.7)

legend("topleft",
       legend = c("Data Aktual", "SMA(3)"),
       col = c("purple3", "yellow2"),
       lty = 1,
       lwd = 2,
       bty = "n")

Interpretasi:

Berdasarkan plot, pada 6 bulan terakhir SMA(3) terlihat tertinggal dari data aktual, terutama saat jumlah pengunjung meningkat. Hal ini terlihat dari nilai SMA yang berada di bawah data aktual pada April dan Juni 2024, sedangkan pada Mei nilainya hampir sama. Jadi, SMA(3) masih terlihat tertinggal dalam mengikuti kenaikan data karena menggunakan rata-rata dari tiga periode sebelumnya.

3. Double Moving Average (DMA)

Membuat plot DMA dengan m = 3 dan menghitung M’t, M”t, at, dan bt

# 3) Double Moving Average, orde m = 3
m <- 3

Mp <- rollmean(perpus_ts, k = m, align = "right", fill = NA)

Mpp <- rollmean(Mp, k = m, align = "right", fill = NA)

a_t <- 2 * Mp - Mpp

b_t <- (2/(m-1)) * (Mp - Mpp)

a_last <- tail(na.omit(a_t), 1)
b_last <- tail(na.omit(b_t), 1)

a_t
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2023       NA       NA       NA       NA 225.5556 219.4444 235.5556 229.4444
## 2024 258.8889 266.6667 267.7778 278.3333 280.0000 287.2222                  
##           Sep      Oct      Nov      Dec
## 2023 245.5556 239.4444 247.2222 251.1111
## 2024
b_t
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2023       NA       NA       NA       NA 7.222222 2.777778 7.222222 2.777778
## 2024 5.555556 6.666667 4.444444 6.666667 5.000000 5.555556                  
##           Sep      Oct      Nov      Dec
## 2023 7.222222 2.777778 3.888889 4.444444
## 2024

Berdasarkan hasil Double Moving Average (DMA) dengan orde m=3, nilai \(a_t\) pada periode terakhir, yaitu Juni 2024, sebesar 287,22, sedangkan nilai \(b_t\) sebesar 5,56. Nilai \(b_t\) yang positif menunjukkan adanya tren kenaikan jumlah pengunjung. Nilai \(a_t\) digunakan sebagai nilai dasar, sedangkan \(b_t\) menunjukkan komponen tren yang digunakan dalam peramalan periode berikutnya.

4. Peramalan

menggunakan hasil DMA untuk meramalkan jumlah pengunjung 1 dan 2 bulan setelah data terakhir. Bandingkan dengan ramalan SMA biasa, lalu jelaskan mengapa hasilnya berbeda.

Hasil \(a_t\) dan \(b_t\) terakhir digunakan untuk meramalkan jumlah pengunjung satu dan dua bulan setelah data terakhir. Hasilnya kemudian dibandingkan dengan ramalan menggunakan SMA biasa.

# 4) Peramalan dengan DMA

forecast_1 <- a_last + b_last * 1  # ramalan 1 bulan ke depan
forecast_2 <- a_last + b_last * 2  # ramalan 2 bulan ke depan

forecast_1
##           Jun
## 2024 292.7778
forecast_2
##           Jun
## 2024 298.3333
# Ramalan dengan SMA biasa

sma_last <- tail(na.omit(sma3), 1)

forecast_sma_1 <- sma_last
forecast_sma_2 <- sma_last

forecast_sma_1
##           Jun
## 2024 281.6667
forecast_sma_2
##           Jun
## 2024 281.6667
# Perbandingan ramalan DMA dan SMA

data.frame(
  Periode = c("Jul-24", "Agu-24"),
  SMA = c(forecast_sma_1, forecast_sma_2),
  DMA = c(forecast_1, forecast_2)
)
##   Periode      SMA      DMA
## 1  Jul-24 281.6667 292.7778
## 2  Agu-24 281.6667 298.3333

Interpretasi:

Berdasarkan hasil perbandingan, Single Moving Average menghasilkan ramalan yang sama, yaitu 281,67 pengunjung untuk Juli dan Agustus 2024, sedangkan DMA menghasilkan ramalan 292,78 pengunjung untuk Juli dan 298,33 pengunjung untuk Agustus 2024. Perbedaan ini terjadi karena DMA mempertimbangkan komponen tren \(b_t\), sedangkan SMA hanya menggunakan rata-rata dari beberapa periode sebelumnya. Karena data pengunjung menunjukkan tren meningkat, hasil ramalan DMA juga meningkat untuk periode berikutnya.