Pendahuluan

Pada tugas ini digunakan data jumlah pengunjung perpustakaan bulanan dari Januari 2023 hingga Juni 2024. Analisis dilakukan menggunakan Single Moving Average (SMA) orde 3 dan Double Moving Average (DMA) orde 3. SMA digunakan untuk memperoleh pola data yang lebih halus, sedangkan DMA digunakan untuk memperhitungkan kecenderungan tren pada data.

package

library(zoo)
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric

Input Data

pengunjung <- c(210,195,220,205,230,215,240,225,250,235,245,260,
                255,265,270,280,275,290)
pengunjung_ts <- ts(pengunjung, start = c(2023,1), frequency = 12)

Plot Data Aktual

label_bulan <- format(as.yearmon(time(pengunjung_ts)), "%b %Y")
plot(pengunjung_ts, xaxt = "n", col = "red", type = "o",
     main = "Pengunjung Perpustakaan", xlab = "Bulan", ylab = "Jumlah Pengunjung")
axis(1, at = time(pengunjung_ts), labels = label_bulan, cex.axis = 0.7)

Pada grafik “Pengunjung Perpustakaan”, jumlah pengunjung perpustakaan selama periode Januari 2023 sampai Juni 2024 menunjukkan pola yang secara umum cenderung meningkat dari waktu ke waktu. Meskipun terjadi beberapa penurunan pada bulan-bulan tertentu. Pada grafik “Pengunjung Perpustakaan”, jumlah pengunjung perpustakaan selama periode Januari 2023 sampai Juni 2024 menunjukkan pola yang secara umum cenderung meningkat dari waktu ke waktu. Meskipun terjadi beberapa penurunan pada bulan-bulan tertentu.

Single Moving Average Orde 3

sma3 <- rollmean(pengunjung_ts, k = 3, align = "right", fill = NA)

plot(pengunjung_ts, xaxt = "n", col = "red", type = "o",
     main = "Aktual vs SMA(3)", xlab = "Bulan", ylab = "Jumlah Pengunjung")
lines(sma3, col = "steelblue", lwd = 2)
axis(1, at = time(pengunjung_ts), labels = label_bulan, cex.axis = 0.7)
legend("topleft", legend = c("Aktual","SMA(3)"), col = c("red","steelblue"), lty = 1)

Pada metode Single Moving Average orde 3 atau SMA(3), setiap nilai moving average diperoleh dari rata-rata jumlah pengunjung selama tiga bulan terakhir, termasuk bulan yang sedang diamati. Karena memerlukan tiga observasi untuk menghasilkan satu nilai rata-rata bergerak, maka dua periode pertama belum memiliki nilai SMA. Secara umum, SMA(3) mengikuti arah pergerakan data aktual, tetapi mengalami sedikit keterlambatan atau lag ketika terjadi kenaikan maupun penurunan yang cukup cepat. Kondisi ini merupakan karakteristik metode moving average karena nilai pada suatu periode dipengaruhi oleh beberapa periode sebelumnya.

Perbandingan Aktual dan SMA(3)

data.frame(Bulan = tail(label_bulan, 6),
           Aktual = tail(pengunjung_ts, 6),
           SMA3 = round(tail(sma3, 6), 2))
##      Bulan Aktual   SMA3
## 1 Jan 2024    255 253.33
## 2 Feb 2024    265 260.00
## 3 Mar 2024    270 263.33
## 4 Apr 2024    280 271.67
## 5 May 2024    275 275.00
## 6 Jun 2024    290 281.67

Secara keseluruhan, metode SMA(3) mampu menghaluskan fluktuasi data dan menggambarkan kecenderungan umum jumlah pengunjung. Namun, karena data memiliki kecenderungan meningkat, nilai SMA sering kali berada di bawah nilai aktual. Hal ini menunjukkan adanya keterlambatan SMA dalam mengikuti perubahan tren.

Double Moving Average Orde 3

m <- 3
Mp  <- rollmean(pengunjung_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)

cbind(Mp, Mpp, a_t, b_t)
##                Mp      Mpp      a_t      b_t
## Jan 2023       NA       NA       NA       NA
## Feb 2023       NA       NA       NA       NA
## Mar 2023 208.3333       NA       NA       NA
## Apr 2023 206.6667       NA       NA       NA
## May 2023 218.3333 211.1111 225.5556 7.222222
## Jun 2023 216.6667 213.8889 219.4444 2.777778
## Jul 2023 228.3333 221.1111 235.5556 7.222222
## Aug 2023 226.6667 223.8889 229.4444 2.777778
## Sep 2023 238.3333 231.1111 245.5556 7.222222
## Oct 2023 236.6667 233.8889 239.4444 2.777778
## Nov 2023 243.3333 239.4444 247.2222 3.888889
## Dec 2023 246.6667 242.2222 251.1111 4.444444
## Jan 2024 253.3333 247.7778 258.8889 5.555556
## Feb 2024 260.0000 253.3333 266.6667 6.666667
## Mar 2024 263.3333 258.8889 267.7778 4.444444
## Apr 2024 271.6667 265.0000 278.3333 6.666667
## May 2024 275.0000 270.0000 280.0000 5.000000
## Jun 2024 281.6667 276.1111 287.2222 5.555556

Pada metode Double Moving Average orde 3 atau DMA(3), dilakukan moving average sebanyak dua tahap. Moving average pertama dilambangkan sebagai \(M'_t\) atau Mp, sedangkan moving average kedua dilambangkan sebagai \(M''_t\) atau Mpp. Selanjutnya kedua nilai tersebut digunakan untuk menentukan komponen level \(a_t\) dan komponen tren \(b_t\).

Rumus yang digunakan adalah:

\[a_t = 2M'_t-M''_t\]

dan

\[b_t=\frac{2}{m-1}(M'_t-M''_t)\] dengan \(m=3\).

Karena moving average dilakukan sebanyak dua kali, nilai DMA baru dapat dihitung setelah tersedia jumlah observasi yang mencukupi.

Pada Januari dan Februari 2023, nilai Mp, Mpp, \(a_t\), dan \(b_t\) masih bernilai NA karena belum tersedia tiga observasi yang diperlukan untuk menghitung moving average pertama. Pada Maret dan April 2023, nilai Mp sudah dapat dihitung, yaitu masing-masing sebesar 208,33 dan 206,67, tetapi Mpp, \(a_t\), dan \(b_t\) masih bernilai NA. Hal ini terjadi karena moving average kedua juga membutuhkan tiga nilai moving average pertama.

Jadi, munculnya NA pada awal periode bukan merupakan error, melainkan konsekuensi dari penggunaan metode moving average dengan orde 3 dua kali.

# Peramalan 1 & 2 bulan ke depan (DMA)
a_last <- tail(na.omit(a_t), 1); b_last <- tail(na.omit(b_t), 1)
forecast_1 <- a_last + b_last * 1
forecast_2 <- a_last + b_last * 2

sma_last   <- tail(na.omit(sma3), 1)   # ramalan SMA (flat, konstan)

data.frame(Bulan_ke_depan = 1:2,
           Forecast_DMA = c(forecast_1, forecast_2),
           Forecast_SMA = rep(sma_last, 2))
##   Bulan_ke_depan Forecast_DMA Forecast_SMA
## 1              1     292.7778     281.6667
## 2              2     298.3333     281.6667

Metode SMA(3) menghasilkan ramalan yang konstan sebesar 281,67 pengunjung karena hanya menggunakan nilai moving average terakhir sebagai dasar peramalan. Sementara itu, metode DMA(3) menghasilkan ramalan yang meningkat, yaitu 292,78 pengunjung untuk Juli 2024 dan 298,33 pengunjung untuk Agustus 2024. Hal ini terjadi karena metode DMA tidak hanya memperhitungkan level data, tetapi juga memasukkan komponen tren \(b_t\) ke dalam peramalan.

Karena data jumlah pengunjung menunjukkan kecenderungan meningkat, hasil DMA lebih responsif terhadap pola tren tersebut dibandingkan SMA. Namun, ada satu hal yang perlu dibedakan secara statistik: belum bisa langsung menyimpulkan bahwa DMA “lebih akurat” daripada SMA hanya dari grafik dan angka ramalan. Untuk menyatakan metode mana yang lebih akurat, lo perlu menghitung ukuran kesalahan peramalan seperti MAE, MSE, RMSE, atau MAPE menggunakan data aktual sebagai pembanding. Tanpa evaluasi error, yang aman adalah mengatakan bahwa DMA lebih mampu mengikuti tren data, bukan otomatis “lebih baik”.