Analisis Deret Waktu
Jumlah Pengunjung Perpustakaan Daerah Kabupaten Serang Periode Januari 2023-Juni 2024
Data
Berikut data jumlah pengunjung Perpustakaan Daerah Kabupaten Serang, Januari 2023–Juni 2024 (orang/bulan):
# Data jumlah pengunjung Perpustakaan Daerah Kabupaten Serang, Januari 2023–Juni 2024
pengunjung <- c(210,195,220,205,230,215,240,225,250,235,245,260,
255,265,270,280,275,290)
# Membuat nama bulan dan tahun
nama_bulan <- c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des")
bulan <- c(nama_bulan, nama_bulan[1:6])
tahun <- c(rep(2023, 12), rep(2024, 6))
df <- data.frame(
Tahun = tahun,
Bulan = bulan,
pengunjung = pengunjung)
# Menampilkan tabel
knitr::kable(
matrix(c(pengunjung, rep(NA, 6)), nrow = 2, byrow = TRUE,
dimnames = list(c("2023", "2024"), nama_bulan)))| Jan | Feb | Mar | Apr | Mei | Jun | Jul | Agu | Sep | Okt | Nov | Des | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2023 | 210 | 195 | 220 | 205 | 230 | 215 | 240 | 225 | 250 | 235 | 245 | 260 |
| 2024 | 255 | 265 | 270 | 280 | 275 | 290 | NA | NA | NA | NA | NA | NA |
2. Hitung dan plot SMA(3). Bandingkan dengan data asli pada 6 bulan terakhir, apakah SMA terlihat tertinggal?
# Menghitung SMA(3) dari data time series
SMA3 <- rollmean(pengunjung_ts, k = 3, align = "right", fill = NA)
# Plot data asli vs SMA(3)
ts.plot(pengunjung_ts, SMA3, col = c("black","steelblue"), type = "o",
main = "Data Asli vs SMA(3)",
xlab = "Waktu (tahun)",
gpars = list(xaxt = "n"))
# Sumbu x diganti nama bulan dan tahun
bulan <- c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des")
waktu <- time(pengunjung_ts)
i <- seq(1, 18, by = 3) # tampil tiap 3 bulan
axis(1, at = waktu[i],
labels = paste(bulan[cycle(pengunjung_ts)][i], floor(waktu[i]), sep = "\n"),
tick = FALSE)
# Keterangan data
legend("topleft", legend = c("Data Asli","SMA(3)"), col = c("black","steelblue"), lty = 1)
# Garis bantu
grid()# Membandingkan data asli dan SMA(3) pada 6 bulan terakhir
tabel_SMA <- data.frame(
Data_Asli = tail(pengunjung_ts, 6),
SMA3 = tail(SMA3, 6))
# menyusun tabel
tabel_SMA <- round(t(tabel_SMA), 2)
colnames(tabel_SMA) <- nama_bulan[1:6]
# Menampilkan tabel hasil perbandingan
knitr::kable(tabel_SMA, caption = "Perbandingan Data Asli dan SMA(3) pada 6 Bulan Terakhir")| Jan | Feb | Mar | Apr | Mei | Jun | |
|---|---|---|---|---|---|---|
| Data_Asli | 255.00 | 265 | 270.00 | 280.00 | 275 | 290.00 |
| SMA3 | 253.33 | 260 | 263.33 | 271.67 | 275 | 281.67 |
Jawaban/Interpretasi: Ya, SMA(3) terlihat tertinggal (lag) terhadap data asli. Pada 6 bulan terakhir, nilai SMA(3) umumnya berada di bawah data asli, dan hanya pada Mei 2024 nilainya sama. Hal ini terjadi karena SMA(3) dihitung dari rata-rata 3 bulan, sehingga nilai SMA masih dipengaruhi oleh data pada bulan sebelumnya. Akibatnya, ketika data asli mengalami kenaikan, SMA(3) tidak langsung mengikuti kenaikan tersebut.
3. Hitung Double Moving Average dengan m = 3 (hitung M’t, M’’t, at, dan bt)
# Menentukan orde moving average
m <- 3
# Menghitung rata-rata bergerak pertama (M't)
Mp <- rollmean(pengunjung_ts, k = m, align = "right", fill = NA)
# Menghitung rata-rata bergerak kedua (M''t)
Mpp <- rollmean(Mp, k = m, align = "right", fill = NA)
# Menghitung nilai intercept (at)
a_t <- 2*Mp - Mpp
# Menghitung nilai slope (bt)
b_t <- (2/(m-1)) * (Mp - Mpp)
# Menyusun hasil ke dalam data frame
tabel_DMA <- data.frame(
Bulan = paste(nama_bulan[cycle(pengunjung_ts)], floor(time(pengunjung_ts))),
Mt_aksen = as.numeric(Mp),
Mt_aksen2 = as.numeric(Mpp),
at = as.numeric(a_t),
bt = as.numeric(b_t))
# Menampilkan tabel hasil perhitungan DMA
knitr::kable(tabel_DMA, digits = 2, caption = "Nilai M't, M''t, at, dan bt")| Bulan | Mt_aksen | Mt_aksen2 | at | bt |
|---|---|---|---|---|
| Jan 2023 | NA | NA | NA | NA |
| Feb 2023 | NA | NA | NA | NA |
| Mar 2023 | 208.33 | NA | NA | NA |
| Apr 2023 | 206.67 | NA | NA | NA |
| Mei 2023 | 218.33 | 211.11 | 225.56 | 7.22 |
| Jun 2023 | 216.67 | 213.89 | 219.44 | 2.78 |
| Jul 2023 | 228.33 | 221.11 | 235.56 | 7.22 |
| Agu 2023 | 226.67 | 223.89 | 229.44 | 2.78 |
| Sep 2023 | 238.33 | 231.11 | 245.56 | 7.22 |
| Okt 2023 | 236.67 | 233.89 | 239.44 | 2.78 |
| Nov 2023 | 243.33 | 239.44 | 247.22 | 3.89 |
| Des 2023 | 246.67 | 242.22 | 251.11 | 4.44 |
| Jan 2024 | 253.33 | 247.78 | 258.89 | 5.56 |
| Feb 2024 | 260.00 | 253.33 | 266.67 | 6.67 |
| Mar 2024 | 263.33 | 258.89 | 267.78 | 4.44 |
| Apr 2024 | 271.67 | 265.00 | 278.33 | 6.67 |
| Mei 2024 | 275.00 | 270.00 | 280.00 | 5.00 |
| Jun 2024 | 281.67 | 276.11 | 287.22 | 5.56 |
Interpretasi: Berdasarkan hasil Double Moving Average dengan \(m=3\), jumlah pengunjung terlihat memiliki tren yang meningkat. Nilai \(b_t\) yang positif menunjukkan bahwa tren data masih mengarah naik. Selain itu, nilai \(a_t\) cenderung naik, dari 225,56 pada Mei 2023 menjadi 287,22 pada Juni 2024. Jadi, jumlah pengunjung perpustakaan secara umum terus meningkat sampai akhir periode, meskipun masih ada sedikit kenaikan dan penurunan setiap bulannya.
4. Gunakan hasil Double Moving Average (DMA) untuk meramalkan jumlah pengunjung 1 dan 2 bulan setelah data terakhir. Bandingkan dengan ramalan SMA biasa, lalu jelaskan mengapa hasilnya berbeda.
# Mengambil nilai a dan b terakhir yang tidak NA
a_last <- tail(na.omit(a_t), 1)
b_last <- tail(na.omit(b_t), 1)
# Meramalkan jumlah pengunjung 1 dan 2 bulan ke depan dengan DMA
forecast_1 <- a_last + b_last * 1 # ramalan 1 bulan ke depan (Juli 2024)
forecast_2 <- a_last + b_last * 2 # ramalan 2 bulan ke depan (Agustus 2024)
# Ramalan SMA biasa (flat, karena tidak ada komponen tren)
SMA_last <- tail(na.omit(SMA3), 1)
# Menyusun tabel perbandingan hasil ramalan
hasil_ramalan <- data.frame(
Periode = c("Juli 2024 (+1 bulan)", "Agustus 2024 (+2 bulan)"),
Ramalan_DMA = c(forecast_1, forecast_2),
Ramalan_SMA = c(SMA_last, SMA_last))
# Menampilkan tabel hasil ramalan
knitr::kable(hasil_ramalan, digits = 2, caption = "Perbandingan Ramalan DMA vs SMA Biasa")| Periode | Ramalan_DMA | Ramalan_SMA |
|---|---|---|
| Juli 2024 (+1 bulan) | 292.78 | 281.67 |
| Agustus 2024 (+2 bulan) | 298.33 | 281.67 |
# Membuat objek time series hasil ramalan
ramalan_DMA <- ts(c(forecast_1, forecast_2),
start = c(2024, 7), frequency = 12)
ramalan_SMA <- ts(c(SMA_last, SMA_last),
start = c(2024, 7), frequency = 12)
# Menentukan batas grafik agar data aktual dan ramalan terlihat
x_range <- c(2023, 2024.7)
y_range <- range(c(pengunjung_ts, ramalan_DMA, ramalan_SMA), na.rm = TRUE)
# Grafik data aktual dan hasil ramalan
ts.plot(pengunjung_ts,
main = "Perbandingan Ramalan DMA dan SMA(3) Jumlah Pengunjung",
ylab = "Jumlah Pengunjung", xlab = "Waktu (tahun)",
col = "black", type = "o",
xlim = x_range, ylim = y_range,
gpars = list(xaxt = "n"))
# Menambahkan ramalan DMA dan SMA
lines(ramalan_DMA, col = "steelblue", type = "o", lwd = 2)
lines(ramalan_SMA, col = "tomato", type = "o", lwd = 2)
# Sumbu x diganti nama bulan dan tahun (data + 2 bulan ramalan)
bulan <- c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des")
waktu_all <- seq(2023, by = 1/12, length.out = 20) # 18 data + 2 ramalan
bln_all <- rep(1:12, length.out = 20)
thn_all <- floor(waktu_all + 1e-6)
i <- seq(1, 20, by = 3) # tampil tiap 3 bulan
axis(1, at = waktu_all[i],
labels = paste(bulan[bln_all[i]], thn_all[i], sep = "\n"),
tick = FALSE)
# Keterangan data
legend("topleft",
legend = c("Data Aktual", "Ramalan DMA", "Ramalan SMA"),
col = c("black", "steelblue", "tomato"), lty = 1, pch = 1)
# garis bantu
grid()Interpretasi: Hasil ramalan DMA menunjukkan jumlah pengunjung sebesar 292,78 orang pada Juli 2024 dan 298,33 orang pada Agustus 2024. Sementara itu, ramalan SMA menghasilkan 281,67 orang untuk kedua bulan tersebut. Jadi, hasil ramalan DMA lebih tinggi 11,11 orang pada Juli dan 16,66 orang pada Agustus.
Dari grafik terlihat garis ramalan DMA melanjutkan kenaikan data aktual, sedangkan garis ramalan SMA mendatar dan berada di bawah titik data terakhir Juni 2024 (290 orang). Perbedaan ini terjadi karena DMA mempertimbangkan tren kenaikan melalui nilai \(b_t\) sebesar 5,56 orang per bulan, sedangkan SMA hanya menggunakan rata-rata 3 bulan terakhir tanpa tren.
Kesimpulan Akhir
Berdasarkan hasil analisis, jumlah pengunjung perpustakaan cenderung meningkat dari Januari 2023 sampai Juni 2024, meskipun masih terdapat beberapa kenaikan dan penurunan setiap bulannya. SMA(3) terlihat mengalami lag, sedangkan DMA lebih mengikuti pola kenaikan data. Hasil peramalan DMA menunjukkan jumlah pengunjung sebesar 292,78 orang pada Juli 2024 dan 298,33 orang pada Agustus 2024. Jadi, berdasarkan hasil peramalan, jumlah pengunjung diperkirakan masih mengalami kenaikan pada Juli dan Agustus 2024.