1 Persiapan Data

harga_gkp <- c(
  5200, 5150, 5300, 5400, 5250, 5350, 5450, 5500, 5400, 5550, 5600, 5700,  # 2023
  5650, 5700, 5800, 5900, 5750, 5850, 5950, 6000, 5900, 6050, 6150, 6300   # 2024
)

bulan <- c("Jan", "Feb", "Mar", "Apr", "Mei", "Jun",
           "Jul", "Agu", "Sep", "Okt", "Nov", "Des")

df <- data.frame(
  Tahun = rep(2023:2024, each = 12),
  Bulan = rep(bulan, times = 2),
  Harga_GKP = harga_gkp
)
print(df)
##    Tahun Bulan Harga_GKP
## 1   2023   Jan      5200
## 2   2023   Feb      5150
## 3   2023   Mar      5300
## 4   2023   Apr      5400
## 5   2023   Mei      5250
## 6   2023   Jun      5350
## 7   2023   Jul      5450
## 8   2023   Agu      5500
## 9   2023   Sep      5400
## 10  2023   Okt      5550
## 11  2023   Nov      5600
## 12  2023   Des      5700
## 13  2024   Jan      5650
## 14  2024   Feb      5700
## 15  2024   Mar      5800
## 16  2024   Apr      5900
## 17  2024   Mei      5750
## 18  2024   Jun      5850
## 19  2024   Jul      5950
## 20  2024   Agu      6000
## 21  2024   Sep      5900
## 22  2024   Okt      6050
## 23  2024   Nov      6150
## 24  2024   Des      6300

2 Buat objek ts dan plot runtun waktu dari data harga GKP tersebut

gkp_ts <- ts(harga_gkp, start = c(2023, 1), frequency = 12)
print(gkp_ts)
##       Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
## 2023 5200 5150 5300 5400 5250 5350 5450 5500 5400 5550 5600 5700
## 2024 5650 5700 5800 5900 5750 5850 5950 6000 5900 6050 6150 6300
plot(gkp_ts,
     main = "Harga GKP di Tingkat Petani\nKabupaten Serang (Jan 2023 - Des 2024)",
     xlab = "Waktu", 
     ylab = "Harga (Rp/kg)",
     col = "purple", lwd = 2, type = "o", pch = 16)
grid()

Interpretasi

Berdasarkan plot runtun waktu, harga GKP di tingkat petani Kabupaten Serang periode Januari 2023–Desember 2024 menunjukkan tren yang jelas meningkat, dari Rp5.200/kg menjadi Rp6.300/kg atau naik sekitar 21%. Meskipun terdapat fluktuasi jangka pendek pada beberapa bulan, secara umum harga terus meningkat. Nilai terendah terjadi pada Februari 2023 sebesar Rp5.150/kg dan tertinggi pada Desember 2024 sebesar Rp6.300/kg. Penurunan yang muncul pada bulan-bulan tertentu di kedua tahun menunjukkan kemungkinan adanya pola musiman, meskipun belum dapat dipastikan karena data hanya mencakup dua tahun. Variasi harga juga relatif stabil. Dengan adanya tren tersebut, data belum stasioner dalam rata-rata, sehingga perlu dilakukan transformasi dan/atau differencing pada tahap selanjutnya.

3 Lakukan transformasi logaritma, lalu bandingkan plot data asli dan hasil transformasi.

log_gkp <- log(gkp_ts)

par(mfrow = c(2, 1))
plot(gkp_ts,
     main = "Data Asli", 
     xlab = "Waktu", 
     ylab = "Rp/kg",
     col = "purple", lwd = 2)
grid()
plot(log_gkp,
     main = "Data Hasil Transformasi Logaritma", 
     xlab = "Waktu", 
     ylab = "log(Rp/kg)",
     col = "blue", lwd = 2)
grid()

par(mfrow = c(1, 1))

Interpretasi

Berdasarkan perbandingan kedua plot, data asli dan data hasil transformasi logaritma memiliki pola yang hampir identik, yaitu sama-sama menunjukkan tren meningkat dari awal 2023 hingga akhir 2024 dengan fluktuasi pada beberapa bulan. Perbedaan utama hanya terletak pada skala sumbu-y, karena transformasi logaritma memperkecil rentang nilai dan sedikit menghaluskan fluktuasi. Namun, tren naik tetap terlihat jelas, sehingga transformasi logaritma belum menghilangkan ketidakstasioneran dalam rata-rata. Oleh karena itu, differencing perlu dilakukan pada tahap selanjutnya.

4 Lakukan differencing tingkat pertama pada data hasil transformasi. Apakah tren sudah hilang?

diff_log_gkp <- diff(log_gkp)
print(round(diff_log_gkp, 4))
##          Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep
## 2023         -0.0097  0.0287  0.0187 -0.0282  0.0189  0.0185  0.0091 -0.0183
## 2024 -0.0088  0.0088  0.0174  0.0171 -0.0258  0.0172  0.0169  0.0084 -0.0168
##          Oct     Nov     Dec
## 2023  0.0274  0.0090  0.0177
## 2024  0.0251  0.0164  0.0241
plot(diff_log_gkp,
     main = "Differencing Pertama dari log(GKP)",
     xlab = "Waktu", 
     ylab = "Selisih log (perubahan relatif)",
     col = "purple", lwd = 2, type = "o", pch = 16)
abline(h = 0, lty = 2, col = "red")
abline(h = mean(diff_log_gkp), lty = 3, col = "orange")
grid()

Interpretasi

Setelah dilakukan differencing pertama pada log(GKP), tren kenaikan sudah hilang dan data berfluktuasi di sekitar nilai rata-rata sekitar 0,0083 (0,83% per bulan). Nilai differencing berada pada kisaran -0,0282 hingga 0,0287, dengan variasi yang relatif stabil. Terdapat penurunan pada beberapa bulan yang berulang di kedua tahun, sehingga diduga terdapat pola musiman, meskipun belum dapat dipastikan karena data hanya mencakup dua tahun. Secara keseluruhan, data hasil differencing pertama sudah mendekati stasioner dalam rata-rata, sehingga dapat digunakan untuk analisis time series selanjutnya.

5 Evaluasi ramalan naif (data uji: 3 bulan terakhir)

train <- head(harga_gkp, 21); test <- tail(harga_gkp, 3)
naive_forecast <- rep(tail(train, 1), 3)
error <- test - naive_forecast
ME <- mean(error); MAE <- mean(abs(error))
MSE <- mean(error^2); RMSE <- sqrt(MSE)
MAPE <- mean(abs(error/test)) * 100

# Tampilkan hasil

hasil <- data.frame(
  Bulan   = c("Okt 2024", "Nov 2024", "Des 2024"),
  Aktual  = test,
  Ramalan = naive_forecast,
  Error   = error
)

cat("Perbandingan Aktual vs Ramalan Naif")
## Perbandingan Aktual vs Ramalan Naif
print(hasil)
##      Bulan Aktual Ramalan Error
## 1 Okt 2024   6050    5900   150
## 2 Nov 2024   6150    5900   250
## 3 Des 2024   6300    5900   400
cat("Ukuran Akurasi Ramalan")
## Ukuran Akurasi Ramalan
round(c(ME = ME, MAE = MAE, MSE = MSE, RMSE = RMSE, MAPE = MAPE), 4)
##         ME        MAE        MSE       RMSE       MAPE 
##   266.6667   266.6667 81666.6667   285.7738     4.2979

Interpretasi

Berdasarkan hasil ramalan naif, ramalan untuk Oktober–Desember 2024 menggunakan nilai terakhir data latih, yaitu Rp5.900/kg. Hasil dan ukuran sebagai berikut:

  • Ramalan: Nilai ramalan untuk Oktober, November, dan Desember 2024 tetap sebesar Rp5.900/kg karena metode naif menggunakan nilai observasi terakhir sebagai ramalan.

  • Error: Error masing-masing bulan adalah Rp150 (Oktober), Rp250 (November), dan Rp400 (Desember). Semua error bernilai positif karena harga aktual lebih tinggi daripada hasil ramalan.

  • ME = Rp266,67: Menunjukkan bahwa ramalan cenderung lebih rendah (underestimate) dari harga aktual dengan rata-rata kesalahan Rp266,67/kg.

  • MAE = Rp266,67: Menunjukkan bahwa rata-rata besar kesalahan absolut ramalan adalah sekitar Rp267/kg.

  • MSE = 81.666,67: Menunjukkan rata-rata kuadrat kesalahan ramalan. Nilai ini dipengaruhi lebih besar oleh error yang besar, terutama error Rp400 pada Desember.

  • RMSE = Rp285,77: Menunjukkan besar kesalahan ramalan setelah dikembalikan ke satuan harga, yaitu sekitar Rp286/kg.

  • MAPE = 4,30%: Menunjukkan bahwa rata-rata kesalahan ramalan sekitar 4,3% dari harga aktual.

Kesimpulan:

Ramalan naif cukup dekat dengan nilai aktual, tetapi cenderung underestimate karena harga GKP masih mengalami kenaikan selama periode ramalan.