Lewati ke isi
anakdata.id
≡

Saya kira harga cabai naik menjelang Ramadan. Datanya bilang lain

7 September 2026·9 menit baca

Satu proyek dikerjakan dari awal sampai selesai, termasuk skrip yang mati, angka pertama yang salah, dan pemeriksaan yang membalik kesimpulannya.

DataDua dari tiga tahun justru turun menjelang Ramadan. Harga cabai merah di Bandung, 45 hari terakhir sebelum Ramadan.
25rb48rb70rbRamadan dimulai20182019202045 hari sebelumhari-H

Harga pangan harian Bandung (PIHPS Bank Indonesia), data berhenti Desember 2020.

Semua orang tahu harga cabai naik menjelang Ramadan. Saya juga mengira begitu, cukup yakin sampai menulisnya sebagai soal latihan di halaman portofolio website ini: “Berapa besar kenaikan harga cabai menjelang Ramadan.”

Pertanyaannya sudah mengandaikan jawabannya.

Tulisan ini mengerjakan soal itu sampai selesai, dengan data sungguhan, dan menunjukkan seluruh jejak kerjanya: skrip yang mati, angka pertama yang salah, dan pemeriksaan yang akhirnya membalik kesimpulan saya sendiri.

Kalau Anda sedang membuat portofolio, bagian yang layak ditiru dari tulisan ini adalah bagian-bagian tempat saya salah, lalu memperbaikinya.

Datanya

Harga pangan harian di Bandung, dari Pusat Informasi Harga Pangan Strategis milik Bank Indonesia. Saya mengambilnya lewat salinan di GitHub (membuka tab baru), tidak dari PIHPS langsung. Sumber ini perlu disebut apa adanya: portal aslinya menyimpan filenya di balik JavaScript, dan saya tidak menemukan cara men-download-nya dengan satu perintah.

Dua hal yang membatasi seluruh tulisan ini, dan lebih baik Anda tahu sekarang daripada di paragraf terakhir:

  • Datanya berhenti Desember 2020. Ini gambaran 2018 sampai 2020, bukan potret pasar hari ini.
  • Ini Bandung saja. Apa pun yang saya temukan, tidak otomatis berlaku di kota lain.

Filenya 823 baris, satu baris per hari, 32 kolom komoditas.

Percobaan pertama mati di baris kedelapan

Saya menulis skrip pemeriksaan sederhana: baca filenya, ubah kolom harga jadi angka, hitung rentangnya. Skripnya berhenti dengan pesan ini:

ValueError: could not convert string to float: '-'

Sepuluh baris di file itu menandai harga yang tidak ada dengan karakter - yang diketik apa adanya, tidak dengan sel kosong atau angka nol.

Tanda strip seperti ini sering muncul. Halaman portofolio website ini bahkan sudah menuliskannya sebagai peringatan, dan saya tetap kena. Itu sebabnya saya menaruh kejadian ini di sini alih-alih membersihkannya diam-diam. Kalau nanti skrip Anda mati dengan pesan serupa, anggap itu bagian normal dari pekerjaan ini. Pesan itu tidak berarti Anda tidak berbakat.

Keputusan yang saya ambil: saya buang sepuluh baris itu, dan tidak saya isi nol. Nol berarti “harganya nol rupiah”, dan itu pernyataan yang berbeda jauh dari “harganya tidak diketahui”. Sisa yang saya pakai 813 baris.

Dua hal yang saya temukan sebelum menghitung apa pun

Sebelum menjawab pertanyaannya, saya menghitung dulu seberapa lengkap datanya. Pemeriksaan kelengkapan ini mudah dilewati, dan melewatinya bisa membuat angka akhirnya salah tanpa ketahuan.

Pertama: 391 hari kalender tidak punya baris sama sekali. Dari 1.214 hari antara September 2017 dan Desember 2020, hampir sepertiganya hilang. Polanya langsung menjelaskan dirinya: 346 dari 391 hari itu Sabtu atau Minggu. Pasar tutup, jadi tidak ada survei harga.

Artinya kalimat “rata-rata harga bulan April” dari data ini sebenarnya berarti “rata-rata hari kerja di bulan April”. Perbedaannya kecil, tapi tetap harus ditulis.

Kedua, dan ini yang lebih mengganggu: 480 dari 812 hari punya harga persis sama dengan hari sebelumnya. Hampir enam dari sepuluh.

Untuk sebagian komoditas, angkanya lebih ekstrem. Harga daging sapi tidak berubah 385 hari berturut-turut. Harga beras 106 hari.

Data yang terlihat harian ternyata tidak diukur ulang tiap hari. Sebagian angkanya dibawa maju dari survei sebelumnya, dan tidak ada satu kolom pun di file itu yang memberi tahu Anda hari mana yang mana.

Data32% hari kalender tidak punya baris, dan 59% harga sama persis dengan hari sebelumnya.
1.214 hari kalender813 hari punya harga10 hari bertanda strip, dibuang346 hari Sabtu atau Minggu, tanpa baris45 hari kerja lain, tanpa baris812 pasangan hari berurutan480 sama persis dengan hari sebelumnya332 harganya berubah

Harga pangan harian Bandung (PIHPS Bank Indonesia), data berhenti Desember 2020.

Jawaban pertama saya, dan kenapa ia tidak berarti apa-apa

Cara paling wajar terpikir: bandingkan bulan Ramadan dengan bulan biasa. Ramadan 2018 jatuh di bulan Mei, jadi saya bandingkan rata-rata Mei dengan rata-rata Maret.

Tahun Maret Mei Selisih
2018 47.738 40.000 −16,2%
2019 32.750 42.083 +28,5%
2020 64.464 33.035 −48,8%

Turun 16 persen, naik 28 persen, turun 49 persen. Tiga tahun, tiga jawaban yang saling bertentangan.

Angka-angka ini benar hitungannya dan tetap tidak berarti apa-apa, karena Ramadan bergeser sekitar sebelas hari tiap tahun di kalender Masehi. Ramadan 2018 dimulai 17 Mei, 2019 pada 6 Mei, dan 2020 pada 24 April. Membandingkan “bulan Mei” di tiga tahun itu berarti membandingkan tiga posisi yang berbeda terhadap Ramadan.

DataPeriode 30 hari sebelum Ramadan bergeser dari Mei ke April, sementara jawaban pertama selalu membandingkan Mei dengan Maret.
MaretAprilMei2018−16,2%17 Mei2019+28,5%6 Mei2020−48,8%24 April

Harga pangan harian Bandung (PIHPS Bank Indonesia), data berhenti Desember 2020.

Kesalahan jenis ini sulit ketahuan: hitungannya benar, kodenya jalan, tabelnya rapi, dan pertanyaannya tidak pernah terjawab.

Jawaban kedua: sejajarkan pada hari sebelum Ramadan

Perbaikannya: saya berhenti memakai kalender Masehi. Untuk tiap tahun, saya hitung mundur dari tanggal 1 Ramadan.

  • Harga dasar: nilai tengah dari 90 hari yang berakhir 45 hari sebelum Ramadan. Periode tenang, jauh dari pengaruhnya.
  • Puncak: harga tertinggi dalam 30 hari sebelum Ramadan.
Tahun Dasar Puncak Puncak dibagi dasar
2018 46.875 48.750 1,04×
2019 33.750 40.000 1,19×
2020 67.500 65.000 0,96×

Tahun 2019 naik 19 persen. Tahun 2018 naik 4 persen. Tahun 2020 justru turun.

Di titik ini saya hampir berhenti dan menulis kesimpulan: “kenaikannya ada, tapi kecil dan tidak konsisten.” Kalimat itu terdengar wajar, dan seluruh tabel di atas mendukungnya.

Kalau saya berhenti di situ, kesimpulannya akan salah. Bagian berikut menunjukkan kenapa.

Pemeriksaan yang membalik kesimpulannya

Angka mana pun yang lahir dari sebuah pilihan harus diuji terhadap pilihan itu. Saya memilih rentang 30 hari, dan saya memilih memakai puncak. Kedua pilihan itu keputusan saya sendiri; datanya tidak memintanya.

Jadi saya ulangi dengan pilihan yang berbeda.

Kalau rentangnya digeser:

Tahun 14 hari 30 hari 45 hari
2018 0,91× 1,04× 1,17×
2019 1,19× 1,19× 1,19×
2020 0,65× 0,96× 1,04×

Tahun 2018 berpindah dari turun jadi naik hanya karena rentangnya dilebarkan. Tahun 2020 lebih ekstrem lagi: dari turun 35 persen jadi naik 4 persen. Cuma 2019 yang tidak bergerak sama sekali.

Kalau puncak diganti nilai tengah, karena satu hari ekstrem bisa menarik puncak sendirian:

Tahun Pakai puncak Pakai nilai tengah
2018 1,04× 0,91×
2019 1,19× 1,00×
2020 0,96× 0,56×

Seluruh kenaikan yang tadi terlihat menguap.

DataGaris 2018 dan 2020 memotong 1,0×: naik atau turunnya bergantung pada cara menghitung.
  • Puncak, 30 hari (jawaban kedua)
  • Puncak, 14 dan 45 hari
  • Nilai tengah, 30 hari
1,0× = tidak naik2018201920200,6×0,8×1,0×1,2×

Harga pangan harian Bandung (PIHPS Bank Indonesia), data berhenti Desember 2020.

Kalau komoditasnya diganti jadi cabai rawit merah, pertanyaan yang sama menghasilkan 0,79×, 1,33×, dan 1,00×. Jawabannya bahkan tergantung cabai mana yang Anda maksud.

Jadi jawabannya apa

Untuk cabai merah di Bandung, 2018 sampai 2020, saya tidak menemukan kenaikan harga menjelang Ramadan yang bertahan saat cara menghitungnya diubah.

Satu tahun, 2019, memang naik, dan naiknya nyata: 19 persen, dan angkanya tidak bergerak di rentang mana pun yang saya coba. Grafik pertama di atas memperlihatkannya sebagai satu-satunya garis yang mendaki.

Dua tahun lainnya justru turun. Untuk 2020 ada penjelasan yang gampang ditebak, dan saya tidak bisa membuktikannya dari data ini: Maret dan April tahun itu adalah bulan-bulan pertama pandemi.

Sejauh yang bisa saya sebut: tiga tahun data ini tidak mendukung dugaan bahwa harga cabai selalu naik menjelang Ramadan. Kalau ada yang menyatakannya dari data yang sama, kemungkinan besar dia memilih satu tahun dan satu cara menghitung yang kebetulan cocok.

Kalau ini masuk portofolio Anda

Grafik seperti di atas bisa dibuat siapa saja dalam sepuluh menit, jadi grafiknya tidak membuat pekerjaan ini layak ditunjukkan. Lima hal ini yang membuatnya layak, dan semuanya ada di atas:

  1. Sepuluh baris dibuang karena bertanda strip, dan alasannya ditulis
  2. 391 hari hilang dihitung dulu sebelum apa pun dirata-ratakan
  3. Angka pertama dinyatakan salah dan tetap ada di catatan
  4. Kesimpulan diuji terhadap tiga pilihan berbeda
  5. Batas datanya disebut di awal, tidak diselipkan di akhir

Kalau seseorang bertanya “kenapa rentangnya 30 hari”, jawabannya ada. Pertanyaan seperti itu wajar muncul dari siapa pun yang membaca portofolio Anda, dan pekerjaan ini sudah menyiapkan jawabannya.

Kalau ingin mengulang sendiri

Datanya satu file CSV, dan Anda bisa langsung men-download-nya dari salinan di GitHub tadi. Pertanyaannya boleh Anda ganti jadi komoditas lain, kota lain kalau ketemu datanya, atau hari besar lain.

Satu hal jangan diganti: setelah dapat angkanya, ulangi dengan cara menghitung yang berbeda. Kalau angkanya ikut berubah, berarti Anda menemukan pilihan Anda sendiri, belum menemukan polanya.

Baru mulai belajar data?

Kasus di atas lebih mudah diikuti kalau Anda sudah bisa spreadsheet dan SQL dasar. Mulai dari salah satu halaman ini.

Sudah bekerja dengan angka, dan mau mengerjakan kasus seperti ini?

Datasight punya 33 modul dan 200 studi kasus berangka untuk itu. Materinya terbuka, tanpa akun.

Cek posisi belajar Anda (membuka tab baru)