Pada tugas ini dilakukan analisis terhadap data jumlah pengunjung Perpustakaan Daerah Kabupaten Serang periode Januari 2023 sampai Juni 2024. Metode yang digunakan adalah Single Moving Average (SMA) dan Double Moving Average (DMA). SMA digunakan untuk menghaluskan data dengan menghitung rata-rata beberapa pengamatan terakhir. Sementara itu, DMA digunakan ketika data memiliki tren. Pada tugas ini digunakan SMA(3) dan DMA dengan orde 3.
Data yang digunakan adalah jumlah pengunjung Perpustakaan Daerah Kabupaten Serang dalam satuan orang per bulan dari Januari 2023 sampai Juni 2024.
Data jumlah pengunjung yang digunakan adalah sebagai berikut.
| Tahun | 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 | – | – | – | – | – | – |
Analisis meliputi pembuatan objek time series, SMA(3), DMA(3), serta peramalan satu dan dua bulan ke depan.
ts dan plot data. Apakah data menunjukkan
tren yang cukup jelas?Data dimasukkan ke dalam R dan dibuat menjadi objek ts.
Karena data merupakan data bulanan, digunakan frekuensi 12.
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
)
pengunjung_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
Selanjutnya dibuat plot untuk melihat pola data.
plot(
pengunjung_ts,
type = "o",
pch = 16,
col = "#D88195",
lwd = 2,
main = "Jumlah Pengunjung Perpustakaan Daerah Kabupaten Serang",
xlab = "Tahun",
ylab = "Jumlah Pengunjung (orang)"
)
grid()
Berdasarkan plot, jumlah pengunjung secara umum menunjukkan pola meningkat dari Januari 2023 sampai Juni 2024. Walaupun terdapat beberapa penurunan, data memiliki tren naik yang cukup jelas.
SMA yang digunakan adalah SMA(3), yaitu rata-rata dari tiga pengamatan terakhir.
library(zoo)
## Warning: package 'zoo' was built under R version 4.4.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
sma3 <- rollmean(
pengunjung_ts,
k = 3,
align = "right",
fill = NA
)
sma3
## Jan Feb Mar Apr May Jun Jul Aug
## 2023 NA NA 208.3333 206.6667 218.3333 216.6667 228.3333 226.6667
## 2024 253.3333 260.0000 263.3333 271.6667 275.0000 281.6667
## Sep Oct Nov Dec
## 2023 238.3333 236.6667 243.3333 246.6667
## 2024
Data asli dan SMA(3) kemudian diplot untuk melihat perbedaannya.
ts.plot(
pengunjung_ts,
sma3,
col = c("#4B6584", "#C96F86"),
lwd = 2,
main = "Data Asli dan SMA(3)",
xlab = "Tahun",
ylab = "Jumlah Pengunjung (orang)"
)
legend(
"topleft",
legend = c("Data Asli", "SMA(3)"),
col = c("#4B6584", "#C96F86"),
lty = 1,
lwd = 2
)
grid()
Untuk melihat hasil SMA pada enam bulan terakhir digunakan sintaks berikut.
data_terakhir <- tail(pengunjung_ts, 6)
sma_terakhir <- tail(sma3, 6)
hasil_sma <- data.frame(
Bulan = c(
"Januari 2024",
"Februari 2024",
"Maret 2024",
"April 2024",
"Mei 2024",
"Juni 2024"
),
Data_Asli = as.numeric(data_terakhir),
SMA_3 = round(as.numeric(sma_terakhir), 2)
)
knitr::kable(
hasil_sma,
col.names = c("Bulan", "Data Asli", "SMA(3)"),
align = "c"
)
| Bulan | Data Asli | SMA(3) |
|---|---|---|
| Januari 2024 | 255 | 253.33 |
| Februari 2024 | 265 | 260.00 |
| Maret 2024 | 270 | 263.33 |
| April 2024 | 280 | 271.67 |
| Mei 2024 | 275 | 275.00 |
| Juni 2024 | 290 | 281.67 |
Hasilnya menunjukkan bahwa pada Juni 2024 jumlah pengunjung aktual sebesar 290 orang, sedangkan SMA(3) sebesar 281,67 orang.
SMA terlihat sedikit tertinggal dari data asli karena data memiliki tren naik. Hal ini merupakan efek lag pada metode SMA.
Karena data menunjukkan tren naik, selanjutnya digunakan DMA dengan orde \(m=3\). DMA dilakukan dengan menghitung moving average pertama \(M'_t\), kemudian moving average kedua \(M''_t\).
m <- 3
# Moving average pertama
Mp <- rollmean(
pengunjung_ts,
k = m,
align = "right",
fill = NA
)
# Moving average kedua
Mpp <- rollmean(
Mp,
k = m,
align = "right",
fill = NA
)
# Level
a_t <- 2 * Mp - Mpp
# Tren
b_t <- (2 / (m - 1)) * (Mp - Mpp)
hasil_dma <- data.frame(
Periode = c(
"April 2024",
"Mei 2024",
"Juni 2024"
),
Data = tail(as.numeric(pengunjung_ts), 3),
M_prime = round(tail(as.numeric(Mp), 3), 2),
M_double_prime = round(tail(as.numeric(Mpp), 3), 2),
a_t = round(tail(as.numeric(a_t), 3), 2),
b_t = round(tail(as.numeric(b_t), 3), 2)
)
knitr::kable(
hasil_dma,
col.names = c(
"Periode",
"Data",
"M't",
"M''t",
"a_t",
"b_t"
),
align = "c"
)
| Periode | Data | M’t | M’’t | a_t | b_t |
|---|---|---|---|---|---|
| April 2024 | 280 | 271.67 | 265.00 | 278.33 | 6.67 |
| Mei 2024 | 275 | 275.00 | 270.00 | 280.00 | 5.00 |
| Juni 2024 | 290 | 281.67 | 276.11 | 287.22 | 5.56 |
Pada periode terakhir, yaitu Juni 2024, diperoleh:
\[ M'_t = 281,67 \]
\[ M''_t = 276,11 \]
Level dihitung dengan:
\[ a_t = 2M'_t-M''_t \]
\[ a_t = 2(281,67)-276,11 = 287,22 \]
Selanjutnya, nilai tren dihitung dengan:
\[ b_t = \frac{2}{m-1}(M'_t-M''_t) \]
Karena \(m=3\), maka:
\[ b_t = \frac{2}{2}(281,67-276,11) \]
\[ b_t = 5,56 \]
Jadi, tren jumlah pengunjung berdasarkan DMA adalah sekitar 5,56 orang per bulan.
Peramalan DMA menggunakan rumus:
\[ \hat{Z}_{t+p}=a_t+b_t p \]
Nilai terakhir \(a_t\) dan \(b_t\) digunakan untuk meramalkan jumlah pengunjung satu dan dua bulan ke depan.
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
hasil_forecast <- data.frame(
Periode = c(
"Juli 2024",
"Agustus 2024"
),
Ramalan_DMA = round(
c(forecast_1, forecast_2),
2
)
)
knitr::kable(
hasil_forecast,
col.names = c("Periode", "Ramalan DMA"),
align = "c"
)
| Periode | Ramalan DMA |
|---|---|
| Juli 2024 | 292.78 |
| Agustus 2024 | 298.33 |
Hasil ramalan DMA adalah:
Hasil tersebut menunjukkan bahwa jumlah pengunjung diperkirakan masih meningkat setelah Juni 2024.
Ramalan SMA menggunakan nilai SMA terakhir sebagai ramalan periode berikutnya.
forecast_sma <- tail(na.omit(sma3), 1)
hasil_perbandingan <- data.frame(
Periode = c(
"Juli 2024",
"Agustus 2024"
),
SMA_3 = round(
c(forecast_sma, forecast_sma),
2
),
DMA_3 = round(
c(forecast_1, forecast_2),
2
)
)
knitr::kable(
hasil_perbandingan,
col.names = c(
"Periode",
"SMA(3)",
"DMA(3)"
),
align = "c"
)
| Periode | SMA(3) | DMA(3) |
|---|---|---|
| Juli 2024 | 281.67 | 292.78 |
| Agustus 2024 | 281.67 | 298.33 |
Hasil perbandingan menunjukkan SMA menghasilkan ramalan yang tetap karena hanya menggunakan rata-rata tiga pengamatan terakhir. Sementara itu, DMA menghasilkan nilai yang meningkat karena memperhitungkan tren data.
Dengan demikian, DMA lebih mampu mengikuti pola kenaikan data dibandingkan SMA pada data yang memiliki tren.
Berdasarkan hasil analisis, jumlah pengunjung Perpustakaan Daerah Kabupaten Serang dari Januari 2023 sampai Juni 2024 menunjukkan tren meningkat.
SMA(3) terakhir menghasilkan nilai sebesar 281,67 orang, sedangkan data aktual Juni 2024 sebesar 290 orang. Hal ini menunjukkan adanya efek lag pada SMA.
Pada DMA(3), diperoleh \(M'_t\) sebesar 281,67, \(M''_t\) sebesar 276,11, \(a_t\) sebesar 287,22, dan \(b_t\) sebesar 5,56 orang per bulan.
Hasil ramalan DMA menunjukkan jumlah pengunjung sebesar 292,78 orang untuk Juli 2024 dan 298,33 orang untuk Agustus 2024. Sementara itu, ramalan SMA(3) tetap sebesar 281,67 orang.
Perbedaan tersebut terjadi karena DMA memperhitungkan tren, sedangkan SMA hanya menggunakan rata-rata beberapa pengamatan terakhir.