Dataset bersih dari Bagian 1 menjawab pertanyaan level: berapa harga rata-rata, seberapa lebar sebarannya. Analisis deret waktu menuntut pertanyaan berikutnya — pergerakan. Ke mana arah harga berubah tiap bulan, seberapa cepat, dan apakah lajunya merata atau patah-patah? Perbedaan dua tahun juga menarik diukur: level 2026 yang lebih tinggi dari 2025 sudah pasti, tetapi berapa besar pergantian itu dan apakah kecepatan kenaikan justru melambat? Pada bagian ini kita mengukur perubahan harga dengan tiga alat: perubahan bulanan persen, kenaikan tahunan, dan moving average perata dari chapter Moving Average.

Perubahan Bulanan dalam Persen #

Perubahan bulanan dihitung manual dari selisih dua bulan berurutan dibagi harga bulan sebelumnya:

text
perubahan bulan t (%) = (Yt - Yt-1) / Yt-1 x 100

Cuplikan berikut menghitung 23 perubahan beras (24 bulan menghasilkan 23 selisih) lengkap dengan label bulannya, lalu merata-ratakannya. Label bulan dibangun dengan f-string sehingga tidak perlu diketik satu per satu:

python
beras = [12500, 12800, 12700, 13100, 13400, 13300, 13600, 13900, 13800, 14200, 14500, 14400,
         14600, 14500, 14800, 15000, 14900, 15200, 15400, 15600, 15500, 15800, 16000, 15900]
bulan = [f"2025-{m:02d}" for m in range(1, 13)] + [f"2026-{m:02d}" for m in range(1, 13)]

perubahan = []
for i in range(1, len(beras)):
    pct = (beras[i] - beras[i - 1]) / beras[i - 1] * 100
    perubahan.append(pct)
    print(f"{bulan[i]} : {pct:6.2f}%")
print(f"rata-rata bulanan : {sum(perubahan) / len(perubahan):.2f}%")

Output yang Dihasilkan:

text
2025-02 :   2.40%
2025-03 :  -0.78%
2025-04 :   3.15%
2025-05 :   2.29%
2025-06 :  -0.75%
2025-07 :   2.26%
2025-08 :   2.21%
2025-09 :  -0.72%
2025-10 :   2.90%
2025-11 :   2.11%
2025-12 :  -0.69%
2026-01 :   1.39%
2026-02 :  -0.68%
2026-03 :   2.07%
2026-04 :   1.35%
2026-05 :  -0.67%
2026-06 :   2.01%
2026-07 :   1.32%
2026-08 :   1.30%
2026-09 :  -0.64%
2026-10 :   1.94%
2026-11 :   1.27%
2026-12 :  -0.62%
rata-rata bulanan : 1.06%

Deret perubahan menampilkan pola yang sudah dikenal dari chapter Pengenalan Time Series: kenaikan bulanan yang positif diselingi penurunan tipis. Delapan bulan mencatat perubahan negatif, dan seluruhnya berpaut tipis — terbesar hanya −0.78 persen — sementara lima belas bulan naik dengan mayoritas di kisaran 1 sampai 3 persen. Penurunan terjadi hampir setiap tiga bulan (Maret, Juni, September, Desember pada 2025; Februari, Mei, September, Desember pada 2026) — fluktuasi musiman ringan yang sama dengan pola beras tahun pertama. Rata-rata seluruh perubahan 1.06 persen per bulan adalah laju kenaikan tipikal beras selama dua tahun (dibulatkan ke dua desimal).

Kenaikan Tahunan per Komoditas #

Laju dua tahun bisa dibaca dari total kenaikan tiap tahun: harga Desember dibanding harga Januari tahun yang sama. Tabel berikut menghitungnya untuk ketiga komoditas beserta rata-rata dua tahunnya:

python
beras = [12500, 12800, 12700, 13100, 13400, 13300, 13600, 13900, 13800, 14200, 14500, 14400,
         14600, 14500, 14800, 15000, 14900, 15200, 15400, 15600, 15500, 15800, 16000, 15900]
gula = [16000, 16200, 16100, 16400, 16600, 16500, 16800, 17000, 16900, 17200, 17400, 17300,
        17500, 17650, 17800, 18000, 17900, 18200, 18400, 18600, 18500, 18800, 19000, 18900]
minyak = [15600, 15800, 15700, 16000, 16200, 16100, 16400, 16600, 16500, 16800, 17000, 16900,
          17100, 17200, 17400, 17300, 17500, 17600, 17800, 17850, 17900, 18100, 18000, 18300]

for nama, data in [("beras", beras), ("gula pasir", gula), ("minyak goreng", minyak)]:
    k25 = (data[11] - data[0]) / data[0] * 100
    k26 = (data[23] - data[12]) / data[12] * 100
    print(f"{nama:<13s}: 2025 {k25:5.2f}% | 2026 {k26:5.2f}% | rata-rata {(k25 + k26) / 2:5.2f}%")

Output yang Dihasilkan:

text
beras        : 2025 15.20% | 2026  8.90% | rata-rata 12.05%
gula pasir   : 2025  8.12% | 2026  8.00% | rata-rata  8.06%
minyak goreng: 2025  8.33% | 2026  7.02% | rata-rata  7.68%

Angka 15.20 persen untuk beras 2025 adalah kenaikan yang sudah dihitung pada chapter Pengenalan Time Series — konsistensi yang menegaskan deret tahun pertama memang tidak berubah. Kisah dua tahunnya kini lengkap: beras melambat dari 15.20 persen menjadi 8.90 persen, tetap yang tercepat di kedua tahun. Gula pasir paling stabil — 8.12 dan 8.00 persen, nyaris identik — sedangkan minyak goreng tercatat 8.33 lalu 7.02 persen. Rata-rata kenaikan tahunan (12.05, 8.06, 7.68 persen) menempatkan beras hampir lima poin di atas gula pada periode dua tahun penuh.

Meredam Gejolak dengan Moving Average #

Deret bulanan beras bergerak naik-turun; garis perata MA(3) meredam gejolaknya agar arah besar terbaca. Definisi mengikuti chapter Moving Average: MA(3) pada bulan t adalah rata-rata tiga bulan yang berakhir pada bulan t. Nilai MA(3) tahun 2025 sudah dihitung lengkap di chapter tersebut, jadi tabel berikut melanjutkannya ke dua belas bulan 2026:

python
beras = [12500, 12800, 12700, 13100, 13400, 13300, 13600, 13900, 13800, 14200, 14500, 14400,
         14600, 14500, 14800, 15000, 14900, 15200, 15400, 15600, 15500, 15800, 16000, 15900]
bulan = [f"2025-{m:02d}" for m in range(1, 13)] + [f"2026-{m:02d}" for m in range(1, 13)]

print(f"{'bulan':<9}{'harga':>6}{'MA(3)':>10}")
for i in range(12, 24):
    ma3 = sum(beras[i - 2:i + 1]) / 3
    print(f"{bulan[i]:<9}{beras[i]:>6}{ma3:>10.2f}")

Output yang Dihasilkan:

text
bulan     harga     MA(3)
2026-01   14600  14500.00
2026-02   14500  14500.00
2026-03   14800  14633.33
2026-04   15000  14766.67
2026-05   14900  14900.00
2026-06   15200  15033.33
2026-07   15400  15166.67
2026-08   15600  15400.00
2026-09   15500  15500.00
2026-10   15800  15633.33
2026-11   16000  15766.67
2026-12   15900  15900.00

Perata bekerja persis seperti janjinya. Harga mentah 2026 turun tipis tiga kali (Februari, Mei, September), tetapi kolom MA(3) naik setiap bulan tanpa kecuali — dari 14500.00 pada Januari hingga 15900.00 pada Desember — karena setiap penurunan kecil terbagi rata ke dalam jendela tiga bulan. Nilai pertama sudah tersedia karena jendelanya memuat dua bulan terakhir 2025 (14400 dan 14500) plus Januari 2026 (14600). Lag juga terlihat: MA(3) Desember 15900.00 tepat sama dengan harga Desember, hasil perataan bulan-bulan akhir yang berdekatan levelnya.

Membandingkan Level Dua Tahun #

Pertanyaan terakhir bagian ini: seberapa besar level harga bergeser antar tahun? Mean 12 bulan 2025 dibanding mean 12 bulan 2026 memberi ukuran pergeseran level yang tidak terpengaruh satu bulan ekstrem apa pun:

python
beras = [12500, 12800, 12700, 13100, 13400, 13300, 13600, 13900, 13800, 14200, 14500, 14400,
         14600, 14500, 14800, 15000, 14900, 15200, 15400, 15600, 15500, 15800, 16000, 15900]
gula = [16000, 16200, 16100, 16400, 16600, 16500, 16800, 17000, 16900, 17200, 17400, 17300,
        17500, 17650, 17800, 18000, 17900, 18200, 18400, 18600, 18500, 18800, 19000, 18900]
minyak = [15600, 15800, 15700, 16000, 16200, 16100, 16400, 16600, 16500, 16800, 17000, 16900,
          17100, 17200, 17400, 17300, 17500, 17600, 17800, 17850, 17900, 18100, 18000, 18300]

for nama, data in [("beras", beras), ("gula pasir", gula), ("minyak goreng", minyak)]:
    m25 = sum(data[:12]) / 12
    m26 = sum(data[12:]) / 12
    print(f"{nama:<13s}: 2025 {m25:8.2f} | 2026 {m26:8.2f} | naik {m26 - m25:7.2f} Rp")

Output yang Dihasilkan:

text
beras        : 2025 13516.67 | 2026 15266.67 | naik 1750.00 Rp
gula pasir   : 2025 16700.00 | 2026 18270.83 | naik 1570.83 Rp
minyak goreng: 2025 16300.00 | 2026 17670.83 | naik 1370.83 Rp

Mean beras 2025 tercatat 13516.67 Rp/kg — angka yang persis sama dengan hitungan chapter Pengenalan Time Series untuk dua belas bulan pertama, memastikan benang merah antar-bab tetap utuh. Pergeseran level terbesar dimiliki beras: 1750.00 Rp dari 13516.67 ke 15266.67, sekitar 12.9 persen — konsisten dengan kombinasi kenaikan cepat dan level awal yang rendah. Gula pasir bergeser 1570.83 Rp dan minyak goreng 1370.83 Rp. Level ketiganya naik, tetapi arah dan kecepatan pergerakannya kini sudah terukur bulan demi bulan. Yang tersisa adalah membuat pergerakan itu terlihat: Bagian 3 menggambar seluruh cerita.