A. Pendahuluan

Perubahan suhu udara merupakan salah satu indikator penting dalam kajian klimatologi karena berpengaruh langsung terhadap sistem lingkungan, aktivitas sosial-ekonomi, serta perencanaan pembangunan wilayah. Variasi suhu udara yang terjadi secara temporal dapat dianalisis melalui pendekatan deret waktu untuk mengidentifikasi pola tren jangka panjang dan fluktuasi musiman. Data suhu udara rata-rata bulanan sering digunakan dalam penelitian klimatologi karena mampu menggambarkan pola musiman dengan lebih stabil dibandingkan data harian serta mengurangi pengaruh fluktuasi ekstrem jangka pendek. Kajian terhadap karakteristik suhu udara bulanan memberikan wawasan penting mengenai dinamika iklim regional yang dipengaruhi oleh faktor geografis dan fenomena atmosfer lainnya (Rahmabudhi, 2024).

Dalam rangka menganalisis dinamika suhu udara tersebut, salah satu metode statistik yang umum digunakan dalam analisis deret waktu musiman adalah Seasonal Autoregressive Integrated Moving Average (SARIMA). Model SARIMA merupakan pengembangan dari model ARIMA yang dirancang untuk menangkap komponen autokorelasi dan pola musiman dalam data berkala. Model ini telah banyak diaplikasikan dalam konteks klimatologi dan peramalan, termasuk peramalan data suhu udara rata-rata bulanan di berbagai wilayah di Indonesia. Sebagai contoh, penelitian tentang peramalan suhu rata-rata bulanan di Kota Padang Panjang menggunakan model SARIMA menunjukkan bahwa SARIMA memberikan hasil ramalan yang lebih akurat dibandingkan metode Holt-Winters Additive dalam menggambarkan pola musiman pada data suhu (Putri et al., 2024). Selain itu, penelitian terkait karakteristik dan validasi data suhu udara juga menegaskan pentingnya kualitas observasi dalam mendukung studi klimatologi dan peramalan yang akurat (Aprilina et al., 2017).

Meskipun demikian, penelitian yang secara spesifik menerapkan model SARIMA untuk memodelkan dan meramalkan suhu udara rata-rata bulanan di Kota Mataram masih relatif terbatas, terutama untuk periode data terbaru. Kota Mataram, sebagai wilayah pesisir yang memiliki karakteristik iklim tropis, dipengaruhi oleh variabilitas musiman dan dinamika iklim regional. Oleh karena itu, penelitian ini bertujuan untuk memodelkan dan meramalkan suhu udara rata-rata bulanan di Kota Mataram periode 2020–2024 menggunakan model SARIMA. Hasil penelitian diharapkan dapat memberikan gambaran empiris pola suhu udara serta menjadi referensi bagi kajian klimatologi dan perencanaan berbasis data di tingkat lokal.

B. Deskripsi dan Sumber Data

Data yang digunakan dalam penelitian ini merupakan suhu udara rata-rata bulanan di Kota Mataram untuk periode Januari 2020 hingga Desember 2024. Data suhu diperoleh dari dua sumber resmi, yaitu Badan Pusat Statistik (BPS) Kota Mataram dan Badan Meteorologi, Klimatologi, dan Geofisika (BMKG). Data tersebut disajikan dalam satuan derajat Celsius (°C) dan diolah sebagai data deret waktu dengan frekuensi 12 (bulanan). Berikut adalah tabel Data Suhu Udara Rata-Rata Bulanan di Kota Mataram Tahun 2020-2024.

# Memanggil library yang digunakan
library(readxl)
library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(tseries)
# Mengimpor data suhu udara bulanan Kota Mataram
data <- read_excel("Data Suhu Udara Kota Mataram 2020-2024.xlsx")
# Membentuk data deret waktu bulanan
ts_suhu <- ts(
  data$Suhu,
  start = c(2020, 1),
  frequency = 12
)

C. Exploratory Data Analysis (EDA)

Analisis eksploratori dilakukan untuk memahami karakteristik awal data suhu udara rata-rata bulanan Kota Mataram. Visualisasi runtun waktu digunakan untuk mengamati pola pergerakan suhu secara keseluruhan selama periode pengamatan, termasuk indikasi adanya tren dan fluktuasi antar waktu. Selain itu, analisis pola musiman dilakukan untuk mengidentifikasi keberadaan pola berulang dalam satu tahun. Mengingat data bersifat bulanan, eksplorasi musiman bertujuan untuk melihat konsistensi variasi suhu pada bulan-bulan tertentu yang mengindikasikan adanya komponen musiman tahunan, yang selanjutnya menjadi dasar pemilihan model deret waktu musiman.

# Memanggil library yang digunakan
library(ggplot2)
library(forecast)
# Visualisasi runtun waktu suhu udara
autoplot(ts_suhu) +
  labs(
    title = "Runtun Waktu Suhu Udara Rata-Rata Bulanan Kota Mataram (2020–2024)",
    x = "Tahun",
    y = "Suhu (°C)"
  )

Berdasarkan grafik runtun waktu, terlihat bahwa suhu udara mengalami fluktuasi dari bulan ke bulan dengan rentang variasi yang relatif stabil. Meskipun demikian, terdapat beberapa periode penurunan suhu yang cukup nyata, khususnya sekitar tahun 2022, yang mengindikasikan adanya perubahan kondisi iklim atau faktor lingkungan tertentu pada periode tersebut.

# Visualisasi pola musiman
ggseasonplot(
  ts_suhu,
  year.labels = TRUE,
  main = "Pola Musiman Suhu Udara Rata-Rata Bulanan",
  xlab = "Bulan",
  ylab = "Suhu (°C)"
)
## Warning in fortify(data, ...): Arguments in `...` must be used.
## ✖ Problematic argument:
## • na.rm = TRUE
## ℹ Did you misspell an argument name?

Pada pola musiman tahunan di atas tampak jelas, di mana suhu cenderung lebih rendah pada pertengahan tahun dan meningkat pada akhir hingga awal tahun. Pola ini konsisten dengan karakteristik iklim tropis di wilayah Kota Mataram.

# Statistik deskriptif dasar
summary(ts_suhu)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   25.10   26.60   27.70   27.58   28.56   29.62

Berdasarkan statistik deskriptif, suhu udara rata-rata bulanan di Kota Mataram selama periode pengamatan berada pada kisaran 25,10°C hingga 29,62°C. Nilai rata-rata sebesar 27,58°C yang relatif dekat dengan median 27,70°C menunjukkan bahwa distribusi data suhu udara cenderung simetris dan tidak mengalami kemencengan yang ekstrem. Sebagian besar nilai suhu terkonsentrasi di sekitar rentang 26,60°C hingga 28,56°C, yang mencerminkan variabilitas suhu yang relatif stabil sepanjang periode penelitian. Kondisi ini mengindikasikan bahwa fluktuasi suhu udara lebih dipengaruhi oleh pola musiman dibandingkan oleh perubahan ekstrem dari waktu ke waktu.

D. Metode Analisis

Metode analisis yang digunakan dalam penelitian ini adalah model Seasonal Autoregressive Integrated Moving Average (SARIMA) dengan periode musiman 12 bulan. Tahapan analisis diawali dengan pembagian data menjadi data latih dan data uji untuk mengevaluasi kemampuan model dalam melakukan peramalan. Data latih mencakup periode Januari 2020 hingga Desember 2023, sedangkan data uji mencakup periode Januari 2024 hingga akhir pengamatan. Pembagian ini dilakukan secara kronologis agar struktur deret waktu tetap terjaga dan tidak terjadi kebocoran informasi dari data masa depan ke dalam proses pemodelan.

# Split data
train_ts <- window(ts_suhu, end = c(2023, 12))
test_ts  <- window(ts_suhu, start = c(2024, 1))

Tahap selanjutnya adalah uji stasioneritas data menggunakan uji Augmented Dickey–Fuller (ADF). Uji ini dilakukan untuk mengetahui apakah data runtun waktu yang digunakan bersifat stasioner atau tidak. Stasioneritas merupakan syarat penting dalam pemodelan ARIMA/SARIMA, karena model tersebut mengasumsikan bahwa sifat statistik data, khususnya rata-rata dan varians, bersifat konstan sepanjang waktu.

# Uji stasioneritas (data latih)
adf.test(train_ts)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  train_ts
## Dickey-Fuller = -2.0565, Lag order = 3, p-value = 0.5515
## alternative hypothesis: stationary

Hasil uji menunjukkan bahwa data suhu udara belum stasioner pada tingkat level, yang ditandai dengan nilai p-value yang lebih besar dari tingkat signifikansi 5%. Oleh karena itu, dilakukan differencing non-musiman orde satu (d = 1) untuk menghilangkan komponen tren.

# Differencing non-musiman (d = 1)
diff_non <- diff(train_ts, differences = 1)
adf.test(diff_non)
## Warning in adf.test(diff_non): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff_non
## Dickey-Fuller = -5.5178, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary

Setelah melakukan proses differencing, data dinyatakan stasioner karena nilai p-value menjadi lebih kecil dari 0,05, sehingga asumsi dasar terpenuhi dan bisa untuk lanjut ke tahap berikutnya. Tahap identifikasi model, bertujuan untuk mengidentifikasi karakteristik ketergantungan data terhadap waktu serta menentukan pendekatan pemodelan yang sesuai. Analisis dilakukan menggunakan plot Autocorrelation Function (ACF) dan Partial Autocorrelation Function (PACF) untuk mengamati pola autokorelasi pada data yang telah distasionerkan.

# Identifikasi model menggunakan ACF dan PACF
Acf(diff_non, main = "ACF setelah Differencing (d = 1)")

Pacf(diff_non, main = "PACF setelah Differencing (d = 1)")

Hasil analisis ACF dan PACF menunjukkan adanya autokorelasi pada beberapa lag awal serta pola musiman tahunan yang ditandai oleh kemunculan autokorelasi pada lag ke-12. Temuan ini mengindikasikan bahwa data memiliki komponen non-musiman dan musiman, sehingga pendekatan Seasonal ARIMA (SARIMA) dinilai tepat untuk digunakan. Berdasarkan hasil ini, penentuan kombinasi parameter model SARIMA dilakukan pada tahap selanjutnya.

Pada tahap ini, penentuan kombinasi parameter model SARIMA dilakukan berdasarkan hasil identifikasi pola ACF dan PACF pada data yang telah distasionerkan, dengan menetapkan d = 1, D = 0, dan periode musiman 12 bulan. Beberapa kombinasi orde AR dan MA, baik non-musiman maupun musiman, kemudian diuji sebagai kandidat model.

Proses evaluasi kandidat model dilakukan secara sistematis menggunakan perulangan yang dibentuk dengan fungsi seq_along(). Fungsi ini digunakan untuk menghasilkan indeks berdasarkan jumlah kandidat model yang diuji, sehingga setiap kombinasi parameter SARIMA dapat dievaluasi secara berurutan tanpa harus menentukan jumlah iterasi secara manual. Penggunaan seq_along() memastikan seluruh kandidat model dapat diproses secara konsisten dan menghindari kesalahan indeks apabila jumlah kandidat model berubah. Setiap model yang diuji dievaluasi menggunakan Akaike Information Criterion (AIC) sebagai kriteria pemilihan model terbaik.

# Pembentukan kandidat model SARIMA
model_candidates <- list(
  c(1,1,1,1,0,1),
  c(0,1,1,1,0,1),
  c(1,1,0,1,0,0)
)
model_list <- list()
aic_values <- numeric(length(model_candidates))
for (i in seq_along(model_candidates)) {
  order <- model_candidates[[i]][1:3]
  seasonal <- model_candidates[[i]][4:6]
  model <- Arima(
    train_ts,
    order = order,
    seasonal = list(order = seasonal, period = 12),
    method = "ML"
  )
  model_list[[i]] <- model
  aic_values[i] <- AIC(model)
  cat(sprintf(
    "Model %d: SARIMA(%d,%d,%d)(%d,%d,%d)[12] | AIC = %.2f\n",
    i,
    order[1], order[2], order[3],
    seasonal[1], seasonal[2], seasonal[3],
    aic_values[i]
  ))
}
## Model 1: SARIMA(1,1,1)(1,0,1)[12] | AIC = 98.76
## Model 2: SARIMA(0,1,1)(1,0,1)[12] | AIC = 98.00
## Model 3: SARIMA(1,1,0)(1,0,0)[12] | AIC = 99.44

Berdasarkan hasil perbandingan nilai AIC terkecil, model 2: SARIMA(0,1,1)(1,0,1)[12] dengan AIC = 98.00 ditetapkan sebagai model terbaik dan digunakan pada tahap analisis diagnostik residual serta peramalan.

E. Hasil dan Pembahasan

Setelah model terbaik ditentukan pada tahap sebelumnya, dilakukan estimasi parameter terhadap model SARIMA(0,1,1)(1,0,1)[12] menggunakan metode maximum likelihood. Estimasi ini bertujuan untuk memperoleh nilai parameter yang paling sesuai dengan data latih.

# Estimasi parameter model
best_model <- model_list[[which.min(aic_values)]]
summary(best_model)
## Series: train_ts 
## ARIMA(0,1,1)(1,0,1)[12] 
## 
## Coefficients:
##           ma1    sar1     sma1
##       -0.1669  0.9984  -0.9567
## s.e.   0.1716  0.0206   0.2784
## 
## sigma^2 = 0.3231:  log likelihood = -45
## AIC=98   AICc=98.95   BIC=105.4
## 
## Training set error measures:
##                       ME      RMSE      MAE         MPE     MAPE      MASE
## Training set 0.002408184 0.5441826 0.429124 -0.01260487 1.547677 0.4111915
##                      ACF1
## Training set -0.004935774

Hasil estimasi parameter menunjukkan nilai MA(1) = −0,1669, SAR(1) = 0,9984, dan SMA(1) = −0,9567, dengan varians residual sebesar σ² = 0,3231. Nilai kriteria informasi AIC = 98, AICc = 98,95, dan BIC = 105,4 menunjukkan bahwa model memiliki kecocokan yang baik dengan kompleksitas yang terkendali. Ukuran kesalahan pada data latih relatif kecil, ditunjukkan oleh RMSE = 0,5442 dan MAE = 0,4291, sehingga model dinilai memadai untuk analisis lanjutan. Selanjutnya tahap diagnostik residual yang dilakukan untuk mengevaluasi apakah model yang terbentuk telah memenuhi asumsi dasar pemodelan deret waktu. Residual dianalisis melalui plot residual dan plot ACF residual untuk memastikan bahwa residual berfluktuasi secara acak di sekitar nol dan tidak menunjukkan pola autokorelasi yang signifikan. Selain itu, uji Ljung-Box dilakukan untuk menilai kelayakan model dalam analisis dan peramalan.

# Diagnostik residual
checkresiduals(best_model)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,1,1)(1,0,1)[12]
## Q* = 6.5564, df = 7, p-value = 0.4765
## 
## Model df: 3.   Total lags used: 10

Hasil analisis menunjukkan bahwa residual berfluktuasi secara acak di sekitar nol dan tidak menunjukkan pola tertentu. Hasil uji Ljung–Box pada residual model SARIMA(0,1,1)(1,0,1)[12] menghasilkan nilai Q = 6,5564 dengan p-value = 0,4765. Nilai p-value yang lebih besar dari tingkat signifikansi 5% menunjukkan bahwa tidak terdapat autokorelasi yang signifikan pada residual hingga lag yang diuji. Dengan demikian, residual dapat dianggap sebagai white noise, sehingga model dinyatakan layak untuk digunakan dalam peramalan. Berikutnya model SARIMA(0,1,1)(1,0,1)[12] yang telah memenuhi asumsi diagnostik digunakan untuk melakukan peramalan suhu udara rata-rata bulanan pada periode data uji, yaitu tahun 2024.

# Peramalan pada periode data uji menggunakan model SARIMA terbaik
forecast_test <- forecast(best_model, h = length(test_ts))
# Menampilkan grafik peramalan dan membandingkan dengan data aktual
autoplot(forecast_test) +
  autolayer(test_ts, series = "Data Aktual") +
  labs(
    title = "Forecast vs Data Aktual Tahun 2024",
    y = "Suhu (°C)"
  )

Hasil peramalan menunjukkan bahwa pola suhu yang diprediksi mengikuti pola musiman tahunan yang konsisten dengan data historis. Nilai ramalan berada pada rentang yang wajar dan tidak menunjukkan lonjakan ekstrem, sehingga secara visual model mampu merepresentasikan dinamika suhu udara dengan baik. Pola musiman yang stabil ini sejalan dengan temuan penelitian sebelumnya yang menerapkan model SARIMA pada data iklim musiman, di mana model tersebut mampu menangkap fluktuasi tahunan secara konsisten (Lumintang et al., 2024).

# Menghitung ukuran akurasi peramalan
accuracy(forecast_test, test_ts)
##                        ME      RMSE       MAE         MPE     MAPE      MASE
## Training set  0.002408184 0.5441826 0.4291240 -0.01260487 1.547677 0.4111915
## Test set     -0.463112020 0.7997529 0.5554177 -1.80150818 2.133233 0.5322075
##                      ACF1 Theil's U
## Training set -0.004935774        NA
## Test set      0.488168089  0.964368

Evaluasi kinerja model SARIMA(0,1,1)(1,0,1)[12] menunjukkan bahwa pada data latih diperoleh nilai RMSE = 0,5442 dan MAE = 0,4291, dengan ME mendekati nol, yang mengindikasikan kesalahan peramalan relatif kecil dan tidak bias. Pada data uji, nilai RMSE = 0,7998 dan MAE = 0,5554, dengan MAPE = 2,13%, menunjukkan akurasi peramalan yang masih baik. Nilai Theil’s U = 0,964 (< 1) menegaskan bahwa model memiliki kinerja peramalan yang baik. Setelah model terbaik diperoleh dan divalidasi menggunakan data uji, dilakukan refit model dengan menggunakan seluruh data suhu udara. Langkah ini bertujuan untuk memperoleh estimasi parameter yang lebih stabil dan representatif sebelum model digunakan untuk peramalan lanjutan.

# Membangun ulang model SARIMA terbaik
final_model <- Arima(
  ts_suhu,
  order = c(best_model$arma[1], 1, best_model$arma[2]),
  seasonal = list(
    order = c(best_model$arma[3], 0, best_model$arma[4]),
    period = 12
  ),
  method = "ML"
)
# Menampilkan ringkasan hasil estimasi model akhir
summary(final_model)
## Series: ts_suhu 
## ARIMA(0,1,1)(1,0,1)[12] 
## 
## Coefficients:
##           ma1    sar1     sma1
##       -0.1370  0.9972  -0.9312
## s.e.   0.1726  0.0452   0.5482
## 
## sigma^2 = 0.3145:  log likelihood = -56.33
## AIC=120.66   AICc=121.4   BIC=128.97
## 
## Training set error measures:
##                        ME      RMSE       MAE         MPE     MAPE      MASE
## Training set -0.008699392 0.5417617 0.4244249 -0.05636467 1.542222 0.4451037
##                     ACF1
## Training set 0.001621155

Hasil refit model menggunakan seluruh data menunjukkan bahwa model menghasilkan estimasi parameter yang stabil, dengan nilai MA(1) = −0,1370, SAR(1) = 0,9972, dan SMA(1) = −0,9312, serta varians residual σ² = 0,3145. Nilai AIC = 120,66, AICc = 121,40, dan BIC = 128,97 menunjukkan keseimbangan yang baik antara kecocokan dan kompleksitas model. Ukuran kesalahan pada data pelatihan relatif kecil dengan ME mendekati nol dan ACF1 residual = 0,0016, sehingga model hasil refit dinilai memenuhi asumsi dan layak digunakan untuk peramalan lanjutan.

# Melakukan peramalan suhu udara 12 bulan ke depan
forecast_future <- forecast(final_model, h = 12)
# Menampilkan grafik peramalan suhu udara 12 bulan ke depan
autoplot(forecast_future) +
  labs(
    title = "Peramalan Suhu Udara Kota Mataram 12 Bulan ke Depan",
    y = "Suhu (°C)"
  )

Hasil peramalan suhu udara rata-rata bulanan Kota Mataram untuk 12 bulan ke depan yang dihasilkan oleh model SARIMA(0,1,1)(1,0,1)[12] menunjukkan pola yang relatif stabil dengan fluktuasi musiman yang konsisten. Pola naik–turun suhu mengikuti siklus tahunan yang konsisten dengan data historis, tanpa adanya perubahan yang ekstrem. Hal ini menunjukkan bahwa model mampu menangkap karakteristik tren dan musiman dengan baik sehingga hasil peramalan dapat digunakan sebagai gambaran kondisi suhu udara pada periode mendatang.

F. Kesimpulan

Penelitian ini bertujuan untuk memodelkan dan meramalkan suhu udara rata-rata bulanan di Kota Mataram periode 2020–2024 menggunakan pendekatan Seasonal Autoregressive Integrated Moving Average (SARIMA). Berdasarkan hasil analisis eksploratori dan uji stasioneritas, data suhu udara menunjukkan adanya pola musiman tahunan yang cukup jelas sehingga pendekatan model deret waktu musiman dinilai sesuai untuk digunakan. Proses identifikasi dan evaluasi model menghasilkan model terbaik, yaitu SARIMA(0,1,1)(1,0,1)[12], yang mampu merepresentasikan pola tren dan musiman pada data suhu udara.

Hasil diagnostik residual menunjukkan bahwa model yang terbentuk telah memenuhi asumsi dasar pemodelan deret waktu, di mana residual bersifat acak dan tidak menunjukkan autokorelasi yang signifikan. Evaluasi kinerja peramalan pada data uji menunjukkan tingkat kesalahan yang relatif kecil, dengan nilai MAPE yang rendah, sehingga model memiliki kemampuan peramalan yang baik. Hasil peramalan juga memperlihatkan pola fluktuasi musiman yang stabil dan konsisten dengan karakteristik historis suhu udara di Kota Mataram.

Berdasarkan hasil tersebut, dapat disimpulkan bahwa model SARIMA yang diperoleh layak digunakan sebagai alat peramalan suhu udara rata-rata bulanan di Kota Mataram. Model ini diharapkan dapat memberikan gambaran awal mengenai kondisi suhu udara pada periode mendatang serta menjadi bahan pertimbangan dalam kajian klimatologi dan perencanaan berbasis data di tingkat lokal. Penelitian selanjutnya disarankan untuk mengembangkan model dengan mempertimbangkan variabel klimatologis lain atau membandingkan kinerja SARIMA dengan metode peramalan alternatif.

G. Referensi

Aprilina, K., Nuraini, T. A., & Sopaheluwakan, A. (2017). DARI PERALATAN PENGAMATAN OTOMATIS DAN MANUAL PRELIMINARY STATISTICAL ASSESSMENT OF TEMPERATURE DATA OBTANIED. 13–20. https://jmg.bmkg.go.id/jmg/index.php/jmg/article/view/396/pdf

Lumintang, I. A., H, R. L. W., & Silfiani, M. (2024). Perbandingan Beberapa Metode Univariat Time Series pada Peramalan Curah Hujan. 3(1), 22–31. https://doi.org/https://doi.org/10.32665/statkom.v3i1.2730

Putri, F., Ikhsan, E., & Fitri, F. (2024). Peramalan Suhu Rata-Rata Kota Padang Panjang dengan Membandingkan Metode SARIMA dan Holt-Winter Additive. 6(3), 107–118. https://doi.org/10.35580/variansiunm237

Rahmabudhi, S. (2024). ANALISIS HUBUNGAN SUHU UDARA DI PROVINSI BANTEN TERHADAP PARAMETER KELEMBAPAN UDARA , ANALYSIS OF THE RELATIONSHIP OF AIR TEMPERATURE IN BANTEN PROVINCE ON THE PARAMETER OF AIR HUMIDITY , RAINFALL , ENSO , SOI , AND IOD. 5(1), 37–47. https://balai2bmkg.id/index.php/buletin_mkg/article/view/107/67