ANALISIS KUALITAS UDARA (ISPU) DKI JAKARTA, JAN 2024 - NOV 2025

sumber dataset: https://satudata.jakarta.go.id/open-data/detail?kategori=dataset&page_url=data-indeks-standar-pencemar-udara-ispu-di-provinsi-dki-jakarta&data_no=1

excel dataset: https://drive.google.com/drive/folders/1xWJEdaz4OuRMl8WPE7SumuWUiAKrezNC?usp=sharing

Persiapan Package

library(tseries)
## Warning: package 'tseries' was built under R version 4.4.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(urca)
## Warning: package 'urca' was built under R version 4.4.3
library(randtests)
## 
## Attaching package: 'randtests'
## The following object is masked from 'package:tseries':
## 
##     runs.test
library(aTSA)
## 
## Attaching package: 'aTSA'
## The following objects are masked from 'package:tseries':
## 
##     adf.test, kpss.test, pp.test
## The following object is masked from 'package:graphics':
## 
##     identify
library(car)
## Warning: package 'car' was built under R version 4.4.2
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.2
library(readxl)
library(trend)
## Warning: package 'trend' was built under R version 4.4.3
library(forecast)
## Warning: package 'forecast' was built under R version 4.4.3
## 
## Attaching package: 'forecast'
## The following object is masked from 'package:aTSA':
## 
##     forecast

Eksplorasi Dataset

file_data <- "C:/Users/rahay/Downloads/ISPU_DKI_Jan2024_Nov2025_Bersih.xlsx"

bulanan <- as.data.frame(read_excel(file_data, sheet = "Bulanan_Stasiun"))
jkt <- as.data.frame(read_excel(file_data, sheet = "Bulanan_Jakarta"))

bulanan$pm25 <- bulanan$pm25_rata2
bulanan$stasiun <- as.factor(bulanan$kode_stasiun)
jkt$pm25 <- jkt$pm25_rata2_jakarta
jkt$musim <- as.factor(jkt$musim)

str(bulanan)
## 'data.frame':    115 obs. of  8 variables:
##  $ periode     : chr  "2024-01" "2024-02" "2024-03" "2024-04" ...
##  $ tahun       : num  2024 2024 2024 2024 2024 ...
##  $ bulan       : num  1 2 3 4 5 6 7 8 9 10 ...
##  $ kode_stasiun: chr  "DKI1" "DKI1" "DKI1" "DKI1" ...
##  $ pm25_rata2  : num  53.3 57 55.8 67.5 84.4 ...
##  $ musim       : chr  "Hujan" "Hujan" "Hujan" "Hujan" ...
##  $ pm25        : num  53.3 57 55.8 67.5 84.4 ...
##  $ stasiun     : Factor w/ 5 levels "DKI1","DKI2",..: 1 1 1 1 1 1 1 1 1 1 ...
str(jkt)
## 'data.frame':    23 obs. of  6 variables:
##  $ periode           : chr  "2024-01" "2024-02" "2024-03" "2024-04" ...
##  $ tahun             : num  2024 2024 2024 2024 2024 ...
##  $ bulan             : num  1 2 3 4 5 6 7 8 9 10 ...
##  $ pm25_rata2_jakarta: num  58.3 63.2 60.1 72.2 87.1 ...
##  $ musim             : Factor w/ 2 levels "Hujan","Kemarau": 1 1 1 1 2 2 2 2 2 2 ...
##  $ pm25              : num  58.3 63.2 60.1 72.2 87.1 ...
tapply(bulanan$pm25, bulanan$stasiun, mean)
##     DKI1     DKI2     DKI3     DKI4     DKI5 
## 72.17216 72.28763 68.33840 67.40334 76.65415
tapply(bulanan$pm25, bulanan$stasiun, sd)
##      DKI1      DKI2      DKI3      DKI4      DKI5 
## 13.893461 17.022279  8.964337 22.718230 18.119227

Interpretasi

Data yang digunakan adalah Indeks Standar Pencemar Udara (ISPU) DKI Jakarta dari Dinas Lingkungan Hidup Provinsi DKI Jakarta (Satudata Jakarta), periode Januari 2024–November 2025 dari lima stasiun pemantau (DKI1–DKI5).

  • DKI1: Bundaran HI
  • DKI2: Kelapa Gading
  • DKI3: Jagakarsa
  • DKI4: Lubang Buaya
  • DKI5: Kebon Jeruk

Variabel yang dianalisis adalah PM2.5, diagregasi menjadi rata-rata bulanan sehingga diperoleh 115 observasi (5 stasiun × 23 bulan) dan 23 observasi rata-rata seluruh stasiun.

Rata-rata PM2.5 tertinggi terdapat di DKI5 (76,65) dan terendah di DKI4 (67,40), seluruhnya berada pada kategori ISPU sedang (51–100). Simpangan baku terbesar ada di DKI4 (22,72) dan terkecil di DKI3 (8,96), yang mengindikasikan perbedaan keragaman antar stasiun.

UJI HOMOGENITAS DAN HETEROGENITAS ANTAR STASIUN

Visualisasi data

par(mfrow=c(1,1))
boxplot(pm25 ~ stasiun, data=bulanan, col="skyblue",
        main="PM2.5 Bulanan per Stasiun (Jan 2024 - Nov 2025)",
        xlab="Stasiun", 
        ylab="PM2.5 (ISPU)")

Interpretasi

  • DKI1: Bundaran HI

Median indeks PM2.5 berada di sekitar 78. Nilai pengamatan tersebar dari rentang 50 - 91, degan sebagian besar data pada rentang sekitar 58 - 84. Penyebaran tergolong Sedang

  • DKI2: Kelapa Gading

Median berada di sekitar 74. Nilai PM2.5 berkisar sekitar 44-94, dengan rentang yang cukup lebar. Hal ini menunjukkan bahwa indeks PM2.5 di Kelapa Gading mengalami variasi yang cukup besar selama periode pengamatan.

  • DKI3: Jagakarsa

Media berada di sekitar 68, dengan rentang nilai sekitar 53-86. Kotaknya paling sempit dibandingkan stasiun lainnya, sehingga menunjukkan bahwa variasi PM2.5 di Jagakarsa relatif paling kecil.

  • DKI4: Lubang Buaya

Median berasa di sekitar 68, dengan rentang nilai sekitar 25-101. Ini menunjukkan bahwa fluktasi indeks PM2.5 di Lubang Buaya paling besar.

plot(1:23, type="n", ylim=range(bulanan$pm25),
     xlab="Bulan ke- (1 = Jan 2024)", 
     ylab="PM2.5 (ISPU)",
     main="Pola Bulanan PM2.5 per Stasiun")
for (i in 1:5) {
  d <- bulanan[bulanan$stasiun == levels(bulanan$stasiun)[i], ]
  lines(1:23, d$pm25, col=i, type="b")
}
legend("topright", legend=levels(bulanan$stasiun), col=1:5, lty=1, pch=1, cex=0.8)

Interpretasi

Kelima stasiun menunjukkan pola musiman yang jelas dan cenderung bergerak searah. Nilai 55–67 pada awal 2024 yang termasuk periode musim hujan, kemudian mencapai nilai tinggi pada bulan ke-5 sampai ke-8 (Mei–Agustus 2024) dengan nilai sekitar 85–98. Setelah itu, PM2.5 mengalami penurunan yang cukup tajam pada bulan ke-11 dan ke-12 (November–Desember 2024) dan mencapai nilai terendah pada sekitar bulan ke-12 hingga ke-13 (Desember 2024–Januari 2025), dengan nilai sekitar 25–52. Pola serupa kembali terlihat pada tahun 2025, ketika PM2.5 meningkat pada bulan ke-17 hingga ke-19 (Mei–Juli 2025) dan mencapai nilai tertinggi sekitar 103, kemudian kembali menurun pada bulan ke-22 hingga ke-23 (Oktober–November 2025).

Secara cenderung lebih tinggi pada musim kemarau (Mei–Oktober) dan lebih rendah pada musim hujan (November–April). Pola yang berulang pada kedua tahun pengamatan menunjukkan adanya indikasi pola musiman pada PM2.5 di kelima stasiun.

Uji normalitas (Shapiro-Wilk) per stasiun

Uji Shapiro-Wilk digunakan untuk mengetahui apakah data indeks PM2.5 pada masing-masing stasiun mengikuti distribusi normal.

Hipotesis:

  • H₀: Data PM2.5 berdistribusi normal.
  • H₁: Data PM2.5 tidak berdistribusi normal.

Dengan taraf signifikansi α = 0,05, kriteria pengujian:

  • Jika nilai p > 0,05, H₀ tidak ditolak, maka data dapat dianggap berdistribusi normal.
  • Jika nilai p ≤ 0,05, H₀ ditolak, maka data tidak berdistribusi normal.
tapply(bulanan$pm25, bulanan$stasiun, shapiro.test)
## $DKI1
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.90139, p-value = 0.02701
## 
## 
## $DKI2
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.89394, p-value = 0.019
## 
## 
## $DKI3
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.97546, p-value = 0.8162
## 
## 
## $DKI4
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.9419, p-value = 0.1974
## 
## 
## $DKI5
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.92617, p-value = 0.09041

Interpretasi

Pada DKI1 (Bundaran HI) diperoleh nilai-p 0,02701, lebih kecil dari 0,05. Artinya, data PM2.5 di Kelapa Gading tidak berdistribusi normal.

Pada DKI2 (Kelapa Gading) diperoleh nilai-p 0,019, lebih kecil dari 0,05. Artinya, data PM2.5 di Kelapa Gading tidak berdistribusi normal.

Pada DKI3 (Jagakarsa) diperoleh nilai-p 0,8162, lebih besar dari 0,05. sehingga H₀ gagal ditolak. Data PM2.5 di Jagakarsa berdistribusi normal.

Pada DKI4 (Lubang Buaya), diperoleh nilai-p 0,1974 lebih besar dari 0,05, sehingga H₀ gagal ditolak. Data PM2.5 di Lubang Buaya dapat dianggap berdistribusi normal.

Pada DKI5 (Kebon Jeruk) diperoleh nilai-p 0,09041, lebih besar dari 0,05. sehingga H₀ gagal ditolak. Data PM2.5 di Kebon Jeruk dapat dianggap berdistribusi normal.

Kesimpulan

Berdasarkan uji normalitas Shapiro-Wilk dengan taraf signifikansi 5%, data PM2.5 pada DKI1 (Bundaran HI) dan DKI2 (Kelapa Gading) tidak berdistribusi normal, karena masing-masing memiliki p-value sebesar 0,02701 dan 0,019 yang lebih kecil dari 0,05. sementara DKI3, DKI4, dan DKI5 berdistribusi normal, karena masing-masing memiliki p-value lebih besar dari 0,05.

Uji homogenitas ragam

Uji homogenitas dilakukan untuk mengetahui apakah ragam/varians indeks PM2.5 pada kelima stasiun memiliki varians yang sama.

Hipotesis:

  • H₀: Varians PM2.5 antarstasiun sama (homogen).
  • H₁: Minimal terdapat satu stasiun dengan varians yang berbeda (tidak homogen).

Dengan taraf signifikansi α = 0,05, keputusan diambil berdasarkan p-value:

  • nilai p > 0,05 → H₀ tidak ditolak → varians homogen.
  • nilai p ≤ 0,05 → H₀ ditolak → varians tidak homogen.
bartlett.test(pm25 ~ stasiun, data = bulanan)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  pm25 by stasiun
## Bartlett's K-squared = 18.198, df = 4, p-value = 0.001129

Interpretasi

Karena 0,001129 < 0,05, maka H₀ ditolak. Artinya, terdapat perbedaan ragam indeks PM2.5 antarstasiun sehingga data tidak memenuhi asumsi homogenitas varians.

leveneTest(pm25 ~ stasiun, data = bulanan)
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value   Pr(>F)   
## group   4  3.7052 0.007205 **
##       110                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretasi

Karena 0,007205 < 0,05, maka H₀ ditolak. Jadi, berdasarkan uji Levene, varians PM2.5 antarstasiun tidak homogen.

Kesimpulan

Berdasarkan uji homogenitas menggunakan Bartlett Test diperoleh p-value sebesar 0,001129, sedangkan Levene’s Test menghasilkan p-value sebesar 0,007205. Kedua p-value tersebut lebih kecil dari taraf signifikansi 0,05, sehingga H₀ ditolak. Dengan demikian, dapat disimpulkan bahwa varians indeks PM2.5 pada kelima stasiun tidak homogen. Artinya, tingkat penyebaran atau fluktuasi PM2.5 berbeda antarstasiun. Hasil ini sejalan dengan visualisasi boxplot sebelumnya, di mana DKI4 (Lubang Buaya) terlihat memiliki penyebaran yang paling besar, sedangkan DKI3 (Jagakarsa) memiliki penyebaran yang relatif lebih kecil.

Pemodelan PM2.5 antar stasiun

Analisis ANOVA satu arah digunakan untuk mengetahui apakah terdapat perbedaan rata-rata indeks PM2.5 yang signifikan antara kelima stasiun.

Hipotesis:

  • H₀: Rata-rata indeks PM2.5 kelima stasiun sama.
  • H₁: Setidaknya terdapat satu stasiun yang memiliki rata-rata PM2.5 berbeda.

Dengan taraf signifikansi α = 0,05:

  • Jika p-value ≤ 0,05 → H₀ ditolak.
  • Jika p-value > 0,05 → H₀ tidak ditolak.
anova_model <- aov(pm25 ~ stasiun, data = bulanan)
summary(anova_model)
##              Df Sum Sq Mean Sq F value Pr(>F)
## stasiun       4   1250   312.4    1.11  0.356
## Residuals   110  30967   281.5
rataan <- aggregate(pm25 ~ stasiun, data = bulanan, mean)
rataan
##   stasiun     pm25
## 1    DKI1 72.17216
## 2    DKI2 72.28763
## 3    DKI3 68.33840
## 4    DKI4 67.40334
## 5    DKI5 76.65415

Interpretasi

Karena 0,356 > 0,05, maka H₀ tidak ditolak. Artinya, berdasarkan ANOVA, tidak terdapat perbedaan rata-rata indeks PM2.5 yang signifikan secara statistik antara DKI1, DKI2, DKI3, DKI4, dan DKI5

UJI HOMOGENITAS DERET WAKTU (SNHT)

data_ts <- ts(jkt$pm25, start=c(2024,1), frequency=12)

plot(data_ts, type="b", pch=19, col="blue",
     main="PM2.5 Bulanan DKI Jakarta (Jan 2024 - Nov 2025)",
     xlab="Waktu", 
     ylab="PM2.5 (ISPU)")

Interpretasi

Berdasarkan grafik, rata-rata indeks PM2.5 DKI Jakarta menunjukkan pola musiman yang cukup jelas selama Januari 2024–November 2025. Nilai PM2.5 cenderung meningkat pada pertengahan tahun dan mencapai nilai tinggi sekitar Mei–Juli, kemudian menurun menuju akhir tahun dan mencapai nilai relatif rendah pada Desember hingga awal tahun berikutnya. Pola tersebut terlihat kembali pada tahun 2025, sehingga terdapat indikasi bahwa indeks PM2.5 di DKI Jakarta memiliki pola yang berkaitan dengan pergantian musim. Nilai tertinggi selama periode pengamatan terjadi pada Juni 2025 sekitar 95, sedangkan nilai terendah terjadi pada Desember 2024 sekitar 42.

snht_res <- snh.test(data_ts)
snht_res
## 
##  Standard Normal Homogeneity Test (SNHT)
## 
## data:  data_ts
## T = 3.126, n = 23, p-value = 0.5604
## alternative hypothesis: true delta is not equal to 0
## sample estimates:
## probable change point at time K 
##                              16
# SNHT per stasiun
for (k in levels(bulanan$stasiun)) {
  cat("Stasiun", k, "\n")
  ts_k <- ts(bulanan$pm25[bulanan$stasiun == k], start=c(2024,1), frequency=12)
  print(snh.test(ts_k))
}
## Stasiun DKI1 
## 
##  Standard Normal Homogeneity Test (SNHT)
## 
## data:  ts_k
## T = 5.2625, n = 23, p-value = 0.2061
## alternative hypothesis: true delta is not equal to 0
## sample estimates:
## probable change point at time K 
##                              16 
## 
## Stasiun DKI2 
## 
##  Standard Normal Homogeneity Test (SNHT)
## 
## data:  ts_k
## T = 2.6149, n = 23, p-value = 0.6803
## alternative hypothesis: true delta is not equal to 0
## sample estimates:
## probable change point at time K 
##                              22 
## 
## Stasiun DKI3 
## 
##  Standard Normal Homogeneity Test (SNHT)
## 
## data:  ts_k
## T = 3.1757, n = 23, p-value = 0.5536
## alternative hypothesis: true delta is not equal to 0
## sample estimates:
## probable change point at time K 
##                               3 
## 
## Stasiun DKI4 
## 
##  Standard Normal Homogeneity Test (SNHT)
## 
## data:  ts_k
## T = 3.9563, n = 23, p-value = 0.396
## alternative hypothesis: true delta is not equal to 0
## sample estimates:
## probable change point at time K 
##                               8 
## 
## Stasiun DKI5 
## 
##  Standard Normal Homogeneity Test (SNHT)
## 
## data:  ts_k
## T = 2.8778, n = 23, p-value = 0.6194
## alternative hypothesis: true delta is not equal to 0
## sample estimates:
## probable change point at time K 
##                               3

Interpretasi

Berdasarkan Standard Normal Homogeneity Test (SNHT), deret waktu indeks PM2.5 DKI Jakarta secara keseluruhan memiliki nilai p-value sebesar 0,5627, sedangkan hasil pengujian pada masing-masing stasiun menghasilkan p-value antara 0,2037–0,6857. Seluruh p-value lebih besar dari taraf signifikansi 5%, sehingga H₀ tidak ditolak.

Dengan demikian, tidak terdapat perubahan atau titik perubahan (titik perubahan) yang signifikan pada deret waktu PM2.5, baik secara keseluruhan maupun pada masing-masing stasiun.

Meskipun SNHT memberikan titik perubahan potensial, seperti April 2025 pada data Jakarta secara keseluruhan, titik-titik tersebut tidak signifikan secara statistik. Oleh karena itu, data PM2.5 selama Januari 2024–November 2025 dapat dianggap homogen berdasarkan hasil SNHT.

UJI ANOVA DAN UJI INDEPENDENT T

ANOVA satu arah

shapiro.test(residuals(anova_model))                  # normalitas residual
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(anova_model)
## W = 0.96792, p-value = 0.007361

Interpretasi

Hipotesis:

  • H₀: residual berdistribusi normal.
  • H₁: residual tidak berdistribusi normal.

Karena 0,007361 < 0,05, maka H₀ ditolak. Artinya, residual model ANOVA tidak berdistribusi normal.

Jadi, asumsi normalitas pada ANOVA klasik tidak terpenuhi.

oneway.test(pm25 ~ stasiun, data=bulanan, var.equal=FALSE)   # Welch ANOVA
## 
##  One-way analysis of means (not assuming equal variances)
## 
## data:  pm25 and stasiun
## F = 1.2058, num df = 4.000, denom df = 53.264, p-value = 0.3192

Interpretasi

Karena 0,3192 > 0,05, maka H₀ tidak ditolak.

Artinya:

Tidak terdapat perbedaan rata-rata indeks PM2.5 yang signifikan secara statistik antara kelima stasiun berdasarkan Welch ANOVA.

kruskal.test(pm25 ~ stasiun, data=bulanan)              # Kruskal-Wallis
## 
##  Kruskal-Wallis rank sum test
## 
## data:  pm25 by stasiun
## Kruskal-Wallis chi-squared = 4.7683, df = 4, p-value = 0.3119

Interpretasi

Karena 0,3119 > 0,05, maka H₀ tidak ditolak.

Artinya:

Tidak terdapat perbedaan distribusi/tingkat PM2.5 yang signifikan antara kelima stasiun.

Kesimpulan

Hasil uji normalitas residual menunjukkan bahwa residual model ANOVA tidak berdistribusi normal dengan p-value 0,007361 < 0,05. Selain itu, hasil pengujian sebelumnya menunjukkan bahwa varians antarstasiun tidak homogen. Oleh karena itu, dilakukan Welch ANOVA dan Kruskal-Wallis sebagai metode yang lebih sesuai. Welch ANOVA menghasilkan p-value 0,3192, sedangkan Kruskal-Wallis menghasilkan p-value 0,3119. Kedua p-value lebih besar dari 0,05, sehingga tidak terdapat bukti yang cukup untuk menyatakan adanya perbedaan yang signifikan pada PM2.5 antar kelima stasiun.

ANOVA dua arah (stasiun + periode sebagai blok) dan uji lanjut stasiun

anova_2arah <- aov(pm25 ~ stasiun + factor(periode), data=bulanan)
summary(anova_2arah)
##                 Df Sum Sq Mean Sq F value  Pr(>F)    
## stasiun          4   1250   312.4   4.746 0.00163 ** 
## factor(periode) 22  25174  1144.3  17.385 < 2e-16 ***
## Residuals       88   5792    65.8                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(anova_2arah, "stasiun")
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = pm25 ~ stasiun + factor(periode), data = bulanan)
## 
## $stasiun
##                 diff        lwr       upr     p adj
## DKI2-DKI1  0.1154706  -6.547683  6.778624 0.9999987
## DKI3-DKI1 -3.8337517 -10.496905  2.829402 0.4998460
## DKI4-DKI1 -4.7688151 -11.431968  1.894338 0.2778217
## DKI5-DKI1  4.4819970  -2.181156 11.145150 0.3392322
## DKI3-DKI2 -3.9492223 -10.612375  2.713931 0.4695853
## DKI4-DKI2 -4.8842858 -11.547439  1.778867 0.2551462
## DKI5-DKI2  4.3665263  -2.296627 11.029679 0.3658657
## DKI4-DKI3 -0.9350635  -7.598217  5.728090 0.9949785
## DKI5-DKI3  8.3157486   1.652595 14.978902 0.0069275
## DKI5-DKI4  9.2508121   2.587659 15.913965 0.0019263

Interpretasi

ANOVA dua arah dilakukan dengan stasiun sebagai faktor perlakuan dan periode sebagai blok untuk mengetahui perbedaan PM2.5 antarstasiun dengan mempertimbangkan variasi pada setiap periode pengamatan.

Hasil analisis menunjukkan bahwa faktor stasiun memiliki nilai F sebesar 4,746 dengan p-value 0,00163. Karena p-value < 0,05, maka terdapat perbedaan indeks PM2.5 yang signifikan antarstasiun setelah pengaruh periode diperhitungkan. Faktor periode juga menunjukkan pengaruh yang signifikan dengan nilai F sebesar 17,385 dan p-value < 2 × 10⁻¹⁶, yang menunjukkan bahwa nilai PM2.5 berbeda secara signifikan antarperiode pengamatan.

Selanjutnya, dilakukan uji lanjut Tukey HSD untuk mengetahui pasangan stasiun yang memiliki perbedaan signifikan. Hasilnya menunjukkan bahwa DKI5 (Kebon Jeruk) berbeda signifikan dengan DKI3 (Jagakarsa) dengan selisih rata-rata sebesar 8,32 (p = 0,0069) dan dengan DKI4 (Lubang Buaya) dengan selisih rata-rata sebesar 9,25 (p = 0,0019). Sementara itu, pasangan stasiun lainnya tidak menunjukkan perbedaan yang signifikan.

Dengan demikian, setelah variasi berdasarkan periode dikendalikan, terdapat perbedaan PM2.5 antarstasiun, terutama antara DKI5 (Kebon Jeruk) dengan DKI3 (Jagakarsa) dan DKI4 (Lubang Buaya). Selain itu, periode pengamatan juga memberikan pengaruh yang sangat signifikan terhadap nilai PM2.5.

UJI T

Uji independent t (1): DKI4 vs DKI5

d45 <- droplevels(bulanan[bulanan$stasiun %in% c("DKI4", "DKI5"), ])
var.test(pm25 ~ stasiun, data=d45)                      # kesamaan ragam
## 
##  F test to compare two variances
## 
## data:  pm25 by stasiun
## F = 1.5721, num df = 22, denom df = 22, p-value = 0.2962
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.6667265 3.7067355
## sample estimates:
## ratio of variances 
##           1.572062
t.test(pm25 ~ stasiun, data=d45, var.equal=FALSE)       # Welch
## 
##  Welch Two Sample t-test
## 
## data:  pm25 by stasiun
## t = -1.5267, df = 41.926, p-value = 0.1343
## alternative hypothesis: true difference in means between group DKI4 and group DKI5 is not equal to 0
## 95 percent confidence interval:
##  -21.479445   2.977821
## sample estimates:
## mean in group DKI4 mean in group DKI5 
##           67.40334           76.65415

Interpretasi

Berdasarkan uji kesamaan ragam, diperoleh p-value sebesar 0,2962 > 0,05, sehingga tidak terdapat bukti adanya perbedaan ragam antara DKI4 (Lubang Buaya) dan DKI5 (Kebon Jeruk). Selanjutnya dilakukan Welch Two Sample t-test untuk membandingkan rata-rata indeks PM2.5 kedua stasiun. Hasil pengujian menunjukkan rata-rata PM2.5 DKI4 sebesar 67,40, sedangkan DKI5 sebesar 76,65, dengan p-value sebesar 0,1343. Karena p-value > 0,05, maka tidak terdapat perbedaan rata-rata indeks PM2.5 yang signifikan antara DKI4 dan DKI5. Meskipun secara deskriptif rata-rata DKI5 lebih tinggi sekitar 9,25 poin dibandingkan DKI4, perbedaan tersebut belum signifikan secara statistik.

Uji independent t (2): Musim Kemarau vs Musim Hujan

boxplot(pm25 ~ musim, data=jkt, col=c("skyblue", "orange"),
        main="PM2.5 Bulanan: Musim Hujan vs Kemarau", ylab="PM2.5 (ISPU)")

var.test(pm25 ~ musim, data=jkt)                        # kesamaan ragam
## 
##  F test to compare two variances
## 
## data:  pm25 by musim
## F = 3.0663, num df = 10, denom df = 11, p-value = 0.07964
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##   0.8697153 11.2378381
## sample estimates:
## ratio of variances 
##           3.066331
t.test(pm25 ~ musim, data=jkt, var.equal=FALSE)         # Welch
## 
##  Welch Two Sample t-test
## 
## data:  pm25 by musim
## t = -8.0535, df = 15.605, p-value = 6.046e-07
## alternative hypothesis: true difference in means between group Hujan and group Kemarau is not equal to 0
## 95 percent confidence interval:
##  -32.71524 -19.05878
## sample estimates:
##   mean in group Hujan mean in group Kemarau 
##              57.86487              83.75188

Interpretasi

Perbandingan indeks PM2.5 antara musim hujan dan musim kemarau dilakukan menggunakan independent t-test. Sebelum pengujian, dilakukan uji kesamaan ragam menggunakan F-test. Hasil uji menunjukkan nilai F sebesar 3,0663 dengan p-value 0,07964. Karena p-value > 0,05, maka tidak terdapat bukti yang cukup bahwa ragam indeks PM2.5 pada musim hujan dan musim kemarau berbeda secara signifikan. Selanjutnya, digunakan Welch Two Sample t-test untuk membandingkan rata-rata kedua kelompok.

Berdasarkan hasil pengujian, rata-rata indeks PM2.5 pada musim hujan sebesar 57,86, sedangkan pada musim kemarau sebesar 83,75. Dengan demikian, secara deskriptif indeks PM2.5 pada musim kemarau lebih tinggi sebesar 25,89 poin dibandingkan musim hujan. Hasil Welch t-test menghasilkan nilai t = -8,0535, df = 15,605, dan p-value = 6,046 × 10⁻⁷. Karena p-value < 0,05, maka H₀ ditolak, sehingga terdapat perbedaan rata-rata indeks PM2.5 yang signifikan antara musim hujan dan musim kemarau. Interval kepercayaan 95% untuk selisih rata-rata berada pada rentang -32,72 hingga -19,06, yang tidak mencakup nilai nol.

Berdasarkan hasil tersebut, dapat disimpulkan bahwa indeks PM2.5 pada musim kemarau secara statistik lebih tinggi dibandingkan musim hujan. Pola ini juga terlihat pada boxplot, di mana nilai indeks PM2.5 pada kelompok musim kemarau secara umum berada pada tingkat yang lebih tinggi daripada musim hujan.

UJI STASIONERITAS

y_pm25 <- jkt$pm25

# Stasioner terhadap rataan
par(mfrow=c(2,1))
plot(y_pm25, type="l", col="red",
     main="PM2.5 Bulanan DKI Jakarta (Jan 2024 - Nov 2025)")

adf.test(y_pm25)     # Uji Augmented Dickey-Fuller
## Augmented Dickey-Fuller Test 
## alternative: stationary 
##  
## Type 1: no drift no trend 
##      lag    ADF p.value
## [1,]   0 -0.425   0.513
## [2,]   1 -0.700   0.419
## [3,]   2 -0.449   0.506
## Type 2: with drift no trend 
##      lag   ADF p.value
## [1,]   0 -1.73   0.426
## [2,]   1 -2.39   0.191
## [3,]   2 -2.21   0.254
## Type 3: with drift and trend 
##      lag   ADF p.value
## [1,]   0 -1.54   0.739
## [2,]   1 -2.22   0.470
## [3,]   2 -2.08   0.524
## ---- 
## Note: in fact, p.value = 0.01 means p.value <= 0.01
kpss.test(y_pm25)    # Uji KPSS
## KPSS Unit Root Test 
## alternative: nonstationary 
##  
## Type 1: no drift no trend 
##  lag  stat p.value
##    1 0.255     0.1
## ----- 
##  Type 2: with drift no trend 
##  lag  stat p.value
##    1 0.113     0.1
## ----- 
##  Type 1: with drift and trend 
##  lag   stat p.value
##    1 0.0833     0.1
## ----------- 
## Note: p.value = 0.01 means p.value <= 0.01 
##     : p.value = 0.10 means p.value >= 0.10
runs.test(y_pm25)    # Uji Runs Test
## 
##  Runs Test
## 
## data:  y_pm25
## statistic = -3.0585, runs = 5, n1 = 11, n2 = 11, n = 22, p-value =
## 0.002224
## alternative hypothesis: nonrandomness

Interpretasi

Berdasarkan grafik deret waktu, indeks PM2.5 bulanan DKI Jakarta selama Januari 2024 hingga November 2025 menunjukkan pola naik dan turun yang cukup jelas. Untuk mengetahui karakteristik deret waktu tersebut, dilakukan uji Augmented Dickey-Fuller (ADF), uji KPSS, dan Runs Test.

  1. Uji Augmented Dickey-Fuller (ADF) Hasil uji ADF menunjukkan bahwa pada seluruh spesifikasi model, baik tanpa drift dan tren, dengan drift tanpa tren, maupun dengan drift dan tren, diperoleh p-value > 0,05. Sebagai contoh, pada model dengan drift dan tren diperoleh p-value sebesar 0,739 pada lag 0. Dengan demikian, H₀ tidak ditolak, sehingga belum terdapat bukti yang cukup bahwa data bersifat stasioner. Data indeks PM2.5 bulanan dapat dikatakan belum stasioner berdasarkan uji ADF.

  2. Uji KPSS Berbeda dengan ADF, pada uji KPSS diperoleh p-value ≥ 0,10 pada seluruh spesifikasi model. Karena pada KPSS hipotesis nol menyatakan bahwa data stasioner, maka H₀ gagal ditolak. Dengan demikian, berdasarkan uji KPSS, data dapat dianggap stasioner.

  3. Runs Test Runs Test menghasilkan nilai statistik -3,0585 dengan p-value 0,002224. Karena p-value < 0,05, maka H₀ ditolak. Artinya, terdapat bukti bahwa urutan data tidak bersifat acak (nonrandom). Hal ini menunjukkan adanya pola tertentu dalam pergerakan indeks PM2.5 dari waktu ke waktu, yang secara visual juga terlihat dari pola naik-turun pada grafik.

Kesimpulan

Berdasarkan uji ADF, data indeks PM2.5 bulanan DKI Jakarta belum menunjukkan bukti stasioner, sedangkan uji KPSS menunjukkan bahwa data dapat dianggap stasioner. Runs Test menunjukkan bahwa data tidak tersusun secara acak dengan p-value 0,002224. Perbedaan hasil antara ADF dan KPSS menunjukkan bahwa kesimpulan mengenai stasioneritas belum sepenuhnya konsisten, sehingga diperlukan pemeriksaan lebih lanjut sebelum menentukan perlakuan data untuk analisis deret waktu. Sementara itu, hasil Runs Test menunjukkan adanya pola atau struktur temporal dalam data indeks PM2.5, sehingga pergerakan indeks PM2.5 tidak dapat dianggap sebagai rangkaian pengamatan yang sepenuhnya acak.

# 1st differencing
y_diff <- diff(y_pm25, differences = 1)
plot(y_diff, type="l", col="blue", main="Setelah Differencing")

adf.test(y_diff)
## Augmented Dickey-Fuller Test 
## alternative: stationary 
##  
## Type 1: no drift no trend 
##      lag   ADF p.value
## [1,]   0 -2.91   0.010
## [2,]   1 -2.75   0.010
## [3,]   2 -1.37   0.183
## Type 2: with drift no trend 
##      lag   ADF p.value
## [1,]   0 -2.81  0.0763
## [2,]   1 -2.65  0.0988
## [3,]   2 -1.24  0.6016
## Type 3: with drift and trend 
##      lag   ADF p.value
## [1,]   0 -2.84   0.244
## [2,]   1 -2.70   0.297
## [3,]   2 -1.24   0.860
## ---- 
## Note: in fact, p.value = 0.01 means p.value <= 0.01
kpss.test(y_diff)
## KPSS Unit Root Test 
## alternative: nonstationary 
##  
## Type 1: no drift no trend 
##  lag   stat p.value
##    1 0.0636     0.1
## ----- 
##  Type 2: with drift no trend 
##  lag stat p.value
##    1 0.12     0.1
## ----- 
##  Type 1: with drift and trend 
##  lag  stat p.value
##    1 0.085     0.1
## ----------- 
## Note: p.value = 0.01 means p.value <= 0.01 
##     : p.value = 0.10 means p.value >= 0.10
runs.test(y_diff)
## 
##  Runs Test
## 
## data:  y_diff
## statistic = 0.87386, runs = 14, n1 = 11, n2 = 11, n = 22, p-value =
## 0.3822
## alternative hypothesis: nonrandomness

Interpretasi

Setelah dilakukan differencing orde pertama, data indeks PM2.5 bulanan DKI Jakarta menunjukkan kondisi yang lebih mendukung stasioneritas. Uji ADF pada model tanpa drift dan tren menghasilkan p-value sebesar 0,010 pada lag 0 dan lag 1, sedangkan uji KPSS menghasilkan p-value ≥ 0,10 pada seluruh spesifikasi. Hasil tersebut menunjukkan bahwa data hasil differencing telah memenuhi indikasi stasioneritas, terutama berdasarkan kombinasi ADF tanpa drift dan KPSS. Selain itu, Runs Test menghasilkan p-value sebesar 0,3822 (>0,05), sehingga tidak terdapat bukti adanya pola nonrandom pada data setelah differencing. Dengan demikian, differencing orde pertama dapat digunakan untuk memperoleh deret yang lebih sesuai untuk analisis deret waktu selanjutnya.

# Stasioner terhadap ragam
par(mfrow=c(1,1))
arch_asli <- arch.test(arima(y_pm25, order=c(0,0,0)))
## ARCH heteroscedasticity test for residuals 
## alternative: heteroscedastic 
## 
## Portmanteau-Q test: 
##      order   PQ p.value
## [1,]     4 3.65   0.456
## [2,]     8 7.38   0.497
## [3,]    12 9.37   0.671
## [4,]    16 9.52   0.890
## [5,]    20 9.65   0.974
## Lagrange-Multiplier test: 
##      order     LM p.value
## [1,]     4 -0.553       1
## [2,]     8 -0.218       1
## [3,]    12  0.100       1
## [4,]    16  0.365       1
## [5,]    20  0.546       1

Interpretasi

Uji ARCH digunakan untuk mengetahui kestabilan ragam pada deret/residual. Hasil pengujian menunjukkan bahwa seluruh p-value pada Portmanteau-Q maupun Lagrange-Multiplier lebih besar dari 0,05. Dengan demikian, tidak terdapat bukti adanya efek ARCH atau heteroskedastisitas. Hal ini menunjukkan bahwa ragam residual relatif konstan atau data tidak menunjukkan indikasi perubahan ragam yang sistematis, sehingga dapat dikatakan memenuhi asumsi kestabilan ragam.

# Transformasi log untuk stabilisasi varians
y_log <- log(y_pm25)
plot(y_log, type="l", col="blue",
     main="Setelah Transformasi Log (Ragam lebih stabil)")

arch_log <- arch.test(arima(y_log, order=c(0,0,0)))
## ARCH heteroscedasticity test for residuals 
## alternative: heteroscedastic 
## 
## Portmanteau-Q test: 
##      order   PQ p.value
## [1,]     4 4.00   0.406
## [2,]     8 5.57   0.695
## [3,]    12 7.61   0.815
## [4,]    16 7.64   0.959
## [5,]    20 7.71   0.994
## Lagrange-Multiplier test: 
##      order      LM p.value
## [1,]     4  0.2441    0.97
## [2,]     8 -0.0474    1.00
## [3,]    12  0.0864    1.00
## [4,]    16  0.4010    1.00
## [5,]    20  0.5787    1.00

Interpretasi

Berdasarkan hasil uji ARCH, setelah dilakukan transformasi logaritma tidak ditemukan indikasi heteroskedastisitas atau efek ARCH. Hal ini menunjukkan bahwa ragam data relatif stabil sehingga transformasi log dapat digunakan sebagai upaya stabilisasi ragam.

FORECASTING

ARIMA

fit_arima <- auto.arima(data_ts)
summary(fit_arima)
## Series: data_ts 
## ARIMA(0,0,2) with non-zero mean 
## 
## Coefficients:
##          ma1     ma2     mean
##       1.4974  0.5999  68.9998
## s.e.  0.2497  0.2208   5.0944
## 
## sigma^2 = 76.08:  log likelihood = -82.33
## AIC=172.67   AICc=174.89   BIC=177.21
## 
## Training set error measures:
##                     ME     RMSE      MAE       MPE    MAPE      MASE
## Training set 0.3352248 8.133707 6.688692 -1.144779 9.86019 0.8907064
##                     ACF1
## Training set -0.00612946
forecast_arima <- forecast::forecast(fit_arima, h=3)      # Des 2025 - Feb 2026
print(forecast_arima)
##          Point Forecast    Lo 80    Hi 80    Lo 95     Hi 95
## Dec 2025       45.66462 34.48637 56.84287 28.56896  62.76028
## Jan 2026       60.00732 39.87996 80.13468 29.22518  90.78946
## Feb 2026       68.99978 47.78487 90.21470 36.55437 101.44519
plot(forecast_arima, main="Forecast PM2.5 Bulanan dengan ARIMA",
     ylab="PM2.5 (ISPU)", xlab="Waktu", col="blue")

Interpretasi

Berdasarkan hasil pemodelan menggunakan fungsi auto.arima(), model diperoleh ARIMA(0,0,2) dengan rata-rata non-nol sebagai model yang digunakan untuk melakukan peramalan. Model tersebut memiliki nilai AIC sebesar 172,67, AICc sebesar 174,89, dan BIC sebesar 177,21. Pada pelatihan data,RMSE sebesar 8,13, MAE sebesar 6,69, dan MAPE sebesar 9,86%.

Hasil peramalan indeks PM2.5 untuk tiga periode berikutnya menunjukkan bahwa pada Desember 2025 indeks PM2.5 diperkirakan sebesar 45,66 dengan interval prediksi 95% sebesar 28,57–62,76. Pada Januari 2026, nilai ramalan meningkat menjadi 60,01 dengan interval prediksi 95% sebesar 29,23–90,79. Selanjutnya, pada Februari 2026, indeks PM2.5 diperkirakan mencapai 69,00 dengan interval prediksi 95% sebesar 36,55–101,45.

Secara umum, hasil peramalan menunjukkan bahwa indeks PM2.5 diperkirakan mengalami penurunan pada Desember 2025, kemudian meningkat kembali pada Januari hingga Februari 2026. Rentang interval prediksi yang semakin lebar pada periode yang lebih jauh menunjukkan bahwa ketidakpastian hasil peramalan semakin meningkat.

Dengan demikian, model ARIMA(0,0,2) menghasilkan perkiraan indeks PM2.5 sebesar 45,66 pada Desember 2025, 60,01 pada Januari 2026, dan 69,00 pada Februari 2026. Hasil ini menggambarkan kecenderungan peningkatan indeks PM2.5 pada awal tahun 2026 berdasarkan pola data historis Januari 2024–November 2025.

# ARIMA dengan differencing d=1 (pembanding, sesuai hasil uji stasioneritas)
fit_arima_d1 <- auto.arima(data_ts, d=1)
summary(fit_arima_d1)
## Series: data_ts 
## ARIMA(0,1,1) 
## 
## Coefficients:
##          ma1
##       0.8515
## s.e.  0.1424
## 
## sigma^2 = 92.24:  log likelihood = -81.12
## AIC=166.24   AICc=166.87   BIC=168.42
## 
## Training set error measures:
##                     ME     RMSE      MAE       MPE     MAPE      MASE
## Training set -0.472249 9.176942 7.258204 -1.122554 11.01565 0.9665461
##                    ACF1
## Training set -0.1151167
print(forecast::forecast(fit_arima_d1, h=3))
##          Point Forecast     Lo 80    Hi 80      Lo 95    Hi 95
## Dec 2025       38.58528 26.276221 50.89435  19.760196 57.41037
## Jan 2026       38.58528 12.685495 64.48507  -1.025025 78.19559
## Feb 2026       38.58528  4.087674 73.08289 -14.174257 91.34482

Interpretasi

Berdasarkan hasil pengujian stasioneritas sebelumnya, dilakukan pemodelan ARIMA dengan differencing orde pertama (d = 1). Hasil pemodelan menggunakan dengan menghasilkan model ARIMA(0,1,1) dengan koefisien MA(1) sebesar 0,8515. Model ini memiliki nilai AIC sebesar 166,24, AICc sebesar 166,87, dan BIC sebesar 168,42. Pada data training, model menghasilkan nilai RMSE sebesar 9,18, MAE sebesar 7,26, dan MAPE sebesar 11,02%.auto.arima()d=1

Model ARIMA(0,1,1) kemudian digunakan untuk meramalkan indeks PM2.5 selama tiga bulan berikutnya. Hasil peramalan menunjukkan bahwa indeks PM2.5 diperkirakan sebesar 38,59 pada Desember 2025, 38,59 pada Januari 2026, dan 38,59 pada Februari 2026. Interval prediksi 95% masing-masing berada pada rentang 19,76–57,41, -1,03–78,20, dan -14,17–91,34.

Berdasarkan hasil tersebut, indeks PM2.5 diperkirakan relatif konstan sebesar 38,59 selama tiga bulan peramalan. Namun, interval prediksi semakin lebar pada periode yang lebih jauh, yang menunjukkan bahwa ketidakpastian hasil peramalan meningkat seiring bertambahnya periode yang diramalkan.

# Double Exponential Smoothing (Holt)
holt_fit <- holt(data_ts, h=3)
summary(holt_fit)
## 
## Forecast method: Holt's method
## 
## Model Information:
## Holt's method 
## 
## Call:
## holt(y = data_ts, h = 3)
## 
##   Smoothing parameters:
##     alpha = 0.9999 
##     beta  = 1e-04 
## 
##   Initial states:
##     l = 68.6003 
##     b = -0.0601 
## 
##   sigma:  12.3332
## 
##      AIC     AICc      BIC 
## 193.2876 196.8170 198.9650 
## 
## Error measures:
##                      ME     RMSE      MAE       MPE     MAPE     MASE      ACF1
## Training set -0.6155586 11.20954 8.857537 -2.650071 13.74934 1.179523 0.2332674
## 
## Forecasts:
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Dec 2025       53.00924 37.20365 68.81484 28.83667 77.18182
## Jan 2026       52.94772 30.59523 75.30021 18.76254 87.13290
## Feb 2026       52.88619 25.50918 80.26320 11.01667 94.75571
plot(holt_fit, main="Forecast PM2.5 Bulanan dengan Holt's Method",
     ylab="PM2.5 (ISPU)", xlab="Waktu", col="red")

holt_fit$mean
##           Jan      Feb Mar Apr May Jun Jul Aug Sep Oct Nov      Dec
## 2025                                                       53.00924
## 2026 52.94772 52.88619

Interpretasi

Selain menggunakan metode ARIMA, dilakukan peramalan menggunakan Double Exponential Smoothing (Holt’s Method). Hasil pemodelan menunjukkan nilai parameter smoothing alpha = 0,9999 dan beta = 0,0001. Model menghasilkan nilai AIC sebesar 193,29, AICc sebesar 196,82, dan BIC sebesar 198,97. Pada data training, diperoleh nilai RMSE sebesar 11,21, MAE sebesar 8,86, dan MAPE sebesar 13,75%.

Hasil peramalan menunjukkan bahwa indeks PM2.5 diperkirakan sebesar 53,01 pada Desember 2025, kemudian sedikit menurun menjadi 52,95 pada Januari 2026 dan 52,89 pada Februari 2026. Interval prediksi 95% masing-masing berada pada rentang 28,84–77,18, 18,76–87,13, dan 11,02–94,76.

Berdasarkan hasil peramalan dengan Holt’s Method, indeks PM2.5 diperkirakan relatif stabil pada kisaran 52–53 selama tiga bulan setelah periode pengamatan. Meskipun nilai ramalan hanya mengalami sedikit penurunan, interval prediksi semakin lebar pada periode yang lebih jauh sehingga menunjukkan meningkatnya ketidakpastian hasil peramalan.

EVALUASI MODEL

Data latih: Jan 2024 - Agu 2025, data uji: Sep - Nov 2025

n <- length(data_ts)
train_ts <- ts(as.numeric(data_ts)[1:(n-3)], start=c(2024,1), frequency=12)
test <- as.numeric(data_ts)[(n-2):n]

forecast::accuracy(forecast::forecast(auto.arima(train_ts), h=3), test)        # ARIMA
##                      ME      RMSE      MAE         MPE     MAPE      MASE
## Training set  0.5115977  8.002934 6.992348  -0.8182617 10.33602 0.8265500
## Test set     -6.2400515 11.867243 7.619796 -12.1656492 13.82242 0.9007193
##                    ACF1
## Training set -0.0212583
## Test set             NA
forecast::accuracy(forecast::forecast(auto.arima(train_ts, d=1), h=3), test)   # ARIMA d=1
##                      ME     RMSE       MAE         MPE     MAPE      MASE
## Training set   1.123462 10.50691  8.039611   0.2185411 12.15591 0.9503447
## Test set     -10.029893 16.29395 11.728451 -18.5446621 20.58425 1.3863943
##                   ACF1
## Training set 0.2475347
## Test set            NA
forecast::accuracy(holt(train_ts, h=3), test)  
##                        ME     RMSE       MAE        MPE     MAPE      MASE
## Training set   0.02845164 10.58956  8.378777  -1.477993 12.76700 0.9904367
## Test set     -11.53201657 17.70250 12.729677 -20.921425 22.35955 1.5047470
##                   ACF1
## Training set 0.2304481
## Test set            NA

Interpretasi

Evaluasi model dilakukan dengan membagi data indeks PM2.5 menjadi data latih periode Januari 2024–Agustus 2025 dan data uji periode September–November 2025. Tiga metode yang dibandingkan adalah ARIMA, ARIMA dengan differencing orde pertama, dan Holt’s Method. Evaluasi dilakukan menggunakan nilai RMSE, MAE, MAPE, dan MASE, dengan nilai yang lebih kecil menunjukkan kesalahan peramalan yang lebih rendah.

Berdasarkan hasil pada data uji, ARIMA tanpa penetapan differencing (auto.arima) menghasilkan nilai RMSE sebesar 11,87, MAE sebesar 7,62, MAPE sebesar 13,82%, dan MASE sebesar 0,90. Sementara itu, ARIMA dengan differencing orde pertama menghasilkan RMSE sebesar 16,29, MAE sebesar 11,73, MAPE sebesar 20,58%, dan MASE sebesar 1,39. Metode Holt menghasilkan RMSE sebesar 17,70, MAE sebesar 12,73, MAPE sebesar 22,36%, dan MASE sebesar 1,50.

Dengan demikian, berdasarkan hasil evaluasi pada data uji September–November 2025, model ARIMA tanpa penetapan d=1 menghasilkan nilai kesalahan peramalan paling rendah dibandingkan ARIMA dengan differencing orde pertama dan Holt’s Method. Selain itu, nilai MASE ARIMA sebesar 0,90 menunjukkan bahwa kesalahan model masih lebih rendah dibandingkan metode naïve yang digunakan sebagai pembanding dalam perhitungan MASE.

Berdasarkan evaluasi data uji, model ARIMA memberikan hasil peramalan yang lebih baik dibandingkan ARIMA dengan differencing orde pertama dan Holt’s Method. Model ARIMA menghasilkan RMSE sebesar 11,87, MAE sebesar 7,62, MAPE sebesar 13,82%, dan MASE sebesar 0,90. Oleh karena itu, model ARIMA digunakan sebagai model peramalan berdasarkan performanya pada data uji.