Case Study

IHSG Market Risk
& Volatility Analysis (Python/EDA)

31 Tahun Data Pasar Modal Indonesia - Dianalisis Menggunakan Python, dari Exploratory Data Analysis sampai Uji Statistik Non-Parametrik untuk Mengukur Risiko & Volatilitas

PYTHON PANDAS EDA STATISTICAL ANALYSIS TABLEAU

Sebuah proyek analisis data yang menelusuri 7.681 hari perdagangan Indeks Harga Saham Gabungan (IHSG) sepanjang 31 tahun (1995–2026), untuk memahami karakteristik risiko dan volatilitas pasar modal Indonesia lewat siklus krisis-pemulihan, fluktuasi harga, dan pola musiman. Seluruh temuan divalidasi menggunakan uji statistik non-parametrik dengan Python, dan disajikan lewat dashboard Tableau interaktif.

31 Tahun Data (1995–2026)
7.681 Hari Perdagangan (data historis IHSG)
3 Krisis Besar (Moneter 1998, Finansial Global 2008, Covid-19 2020)
5 Pertanyaan Riset (dijawab di halaman ini)

Identifikasi & penamaan krisis merujuk pada Laporan Bank Indonesia dan Arsip Nasional RI; penentuan titik krisis pada data historis IHSG adalah hasil analisis penulis.

Tentang Dataset

Data apa yang dianalisis?

Sebelum masuk ke analisis, penting untuk memahami dulu bentuk data mentahnya - supaya semua angka dan grafik di halaman ini punya konteks yang jelas.

7.681 Baris (hari perdagangan)
6 Kolom asli
1995–2026 Rentang waktu

Keenam kolom di bawah ini adalah seluruh kolom mentah dari sumber data (ihsg_daily.csv) - bukan hasil seleksi fitur. Artinya, tidak ada kolom asli yang dibuang. Dari 6 kolom mentah ini, dibuat sejumlah kolom turunan tambahan (misalnya daily_return, drawdown) khusus untuk kebutuhan analisis - bukan bagian dari data mentahnya, tapi hasil olahan yang akan dijelaskan di bagian relevan.

KolomTipePenjelasan Awam
DateTanggalTanggal spesifik saat bursa saham beroperasi dan melakukan transaksi.
OpenAngkaPosisi IHSG saat pasar resmi dibuka di sesi pagi.
HighAngkaTitik tertinggi yang dicapai IHSG dalam satu hari perdagangan.
LowAngkaTitik terendah yang disentuh IHSG pada hari perdagangan tersebut.
CloseAngkaNilai akhir IHSG saat pasar ditutup - kolom yang paling sering dipakai untuk melihat tren jangka panjang, dan menjadi basis hampir seluruh analisis di halaman ini.
VolumeAngkaTotal unit saham yang diperdagangkan pada tanggal tersebut.
Catatan kualitas data: Data bersih - tidak ada nilai kosong atau tanggal duplikat, dan struktur harga (High selalu ≥ Low/Open/Close, dst) valid secara logis. Ditemukan 109 baris dengan Volume = 0, hampir seluruhnya di tahun 1995 - kemungkinan besar karena pencatatan volume belum konsisten di masa awal bursa Indonesia beroperasi. Baris ini tetap dipakai (bukan dihapus) karena kolom Close-nya tetap valid, namun dicatat sebagai keterbatasan data saat menafsirkan analisis terkait Volume.

Business Problem

Pertanyaan riset utama

Bagaimana pola pertumbuhan, volatilitas (seberapa besar & sering harga naik-turun dalam periode tertentu), dan siklus krisis-pemulihan IHSG selama periode 1995–2026 dapat memberikan gambaran mengenai karakteristik risiko dan perilaku pasar modal Indonesia dalam jangka panjang?

Pertanyaan besar ini kemudian dipecah menjadi 5 pertanyaan turunan yang lebih spesifik dan bisa dijawab langsung dari data historis harga IHSG:

  1. Bagaimana pertumbuhan IHSG dari 1995–2026, dan dekade mana yang paling cepat tumbuh vs paling stagnan?
  2. Kapan drawdown (penurunan dari puncak tertinggi ke titik terendah berikutnya, bisa berlangsung berbulan-bulan/bertahun-tahun, misal dari puncak 1997 sampai titik terendah 1998) terbesar terjadi, seberapa dalam, dan berapa lama pemulihannya?
  3. Apakah volatilitas harian cenderung naik, turun, atau stabil dari dekade ke dekade?
  4. Adakah pola musiman (misalnya kenaikan harga menjelang akhir tahun) yang konsisten setiap tahun?
  5. Apakah lonjakan volume perdagangan berkaitan dengan besaran pergerakan harga di hari yang sama atau hari berikutnya?

Target pembaca temuan ini adalah investor ritel maupun analis yang ingin memahami karakteristik risiko jangka panjang pasar modal Indonesia sebagai dasar pengambilan keputusan - bukan sebagai sinyal beli/jual jangka pendek.

Analysis Approach

Alur pengerjaan

Bagian ini menjelaskan tahapan kerja dari data mentah sampai insight jadi - supaya pembaca teknis bisa menilai metodologinya, dan pembaca non-teknis paham prosesnya tidak sekadar "lihat grafik lalu simpulkan".

Data Validation

Cek missing values, duplikat, konsistensi tanggal, dan logika harga (OHLC) - memastikan data layak dianalisis sebelum lanjut.

Feature Engineering

Membuat kolom turunan seperti daily_return, drawdown, dan rolling volatility dari kolom Close mentah.

Exploratory Data Analysis

Visualisasi tren, distribusi, dan pola per dekade/bulan untuk menjawab kelima pertanyaan riset.

Statistical Validation

Menguji apakah pola yang terlihat di grafik memang signifikan secara statistik, menggunakan uji non-parametrik.

Dashboarding

Menyajikan temuan dalam dashboard Tableau interaktif untuk eksplorasi lebih lanjut oleh pembaca.

Python pandas NumPy SciPy Matplotlib Seaborn Tableau

Key Findings

The Four Headline Numbers

Empat angka yang paling merepresentasikan hasil analisis ini — masing-masing menjawab satu bagian dari pertanyaan riset utama (pertumbuhan, kedalaman krisis, lama pemulihan, dan volatilitas antar dekade).

13,26x Pertumbuhan Kumulatif (nilai IHSG sekarang dibanding awal 1995)

Dari 470 poin (satuan indeks IHSG, bukan Rupiah) di 2 Januari 1995, IHSG naik ke 6.234 poin di 3 Agustus 2026 (data terakhir) - setara kenaikan 1.226%, atau 13,26 kali lipat.

-65,33% Drawdown (penurunan dari puncak tertinggi ke titik terendah berikutnya, bisa berlangsung berbulan-bulan/bertahun-tahun, misal dari puncak 1997 sampai titik terendah 1998) Terdalam

Dari puncak 740,80 poin (ATH - All-Time High, titik tertinggi yang pernah dicapai sebelumnya), IHSG anjlok ke 256,82 poin saat dasar Krisis 1998 (21 Sep 1998) - penurunan 65,33%, yang terdalam dari tiga krisis besar yang dianalisis (1998, 2008, 2020).

1.936 hari Pemulihan Terlama

Setara ±5,3 tahun - dari titik terendah Krisis 1998 (21 Sep 1998) sampai IHSG kembali ke level tertinggi sebelumnya (9 Jan 2004). Jauh lebih lama dibanding pemulihan pasca-Krisis 2008 (524 hari, ±1,4 tahun).

p = 0,0257 Volatilitas (fluktuasi harga) Antar Dekade

Uji Kruskal-Wallis membuktikan volatilitas berbeda signifikan antar dekade - bukan kebetulan acak.

Catatan: Kartu 1 & 2 menceritakan garis waktu yang sama (IHSG 1995–2026), tapi menyoroti titik berbeda - Kartu 1 membandingkan titik awal vs akhir data, Kartu 2 menyoroti satu episode krisis (1998) di tengah perjalanan itu.

Deep Dive Findings

Jawaban per pertanyaan riset

Q1 - Bagaimana pertumbuhan IHSG dari 1995–2026?

IHSG menunjukkan tren pertumbuhan jangka panjang yang jelas, dari level sekitar 470 poin di awal Januari 1995 menjadi sekitar 6.234 poin pada data terakhir - tumbuh sekitar 13,26 kali lipat. Namun pertumbuhannya tidak merata: estimasi return tahunan per dekade (rata-rata daily return dikalikan 252 hari trading) menunjukkan 2000-an sebagai dekade paling cepat tumbuh (16,75%/tahun), disusul 1990-an (12,64%) dan 2010-an (10,78%), sementara 2020-an jauh paling stagnan (1,55%/tahun).

Insight: 2000-an tampil sebagai dekade dengan pertumbuhan tercepat - kemungkinan besar karena efek recovery rally pasca-Krisis 1998 yang baru pulih penuh di tahun 2004, sehingga sisa dekade itu terdorong tren naik kuat. Sebaliknya, 2020-an tercatat paling stagnan, konsisten dengan periode pemulihan pasca-Covid-19 yang juga terjadi di dekade ini. Investor jangka panjang secara historis tetap diuntungkan oleh tren pertumbuhan struktural 31 tahun, meski laju pertumbuhan antar dekade jauh dari merata.

Q2 - Seberapa dalam drawdown krisis besar, dan berapa lama pemulihannya?

Tiga krisis besar diidentifikasi dari data drawdown (penurunan dari puncak tertinggi ke titik terendah berikutnya, bisa berlangsung berbulan-bulan/bertahun-tahun, misal dari puncak 1997 sampai titik terendah 1998):

PeriodeTitik TerendahMax DrawdownLama Pemulihan
Krisis 199821 Sep 1998-65,33%1.936 hari
Krisis 200828 Okt 2008-60,73%524 hari
Covid-19 202024 Mar 2020-41,14%597 hari

Lama pemulihan dihitung sebagai jumlah hari kalender sejak titik terendah krisis hingga IHSG kembali menyentuh level tertinggi sebelum krisis tersebut (bukan sekadar "harga naik lagi").

Contoh cara baca Krisis 1998: IHSG turun dari puncak 740,80 poin ke titik terendah 256,82 poin pada 21 Sep 1998 (penurunan 65,33%). Baru pada 9 Januari 2004 - 1.936 hari kemudian, setara ±5 tahun 4 bulan - IHSG kembali menyentuh level 740,80 poin tersebut.

Insight: Krisis yang dipicu masalah struktural domestik (1998) atau sistemik global (2008) cenderung punya drawdown lebih dalam dan pemulihan lebih lama, dibanding guncangan eksternal jangka pendek seperti Covid-19. Kedalaman krisis tidak selalu berbanding lurus dengan lamanya pemulihan - IHSG selalu berhasil pulih ke level sebelumnya, menegaskan karakter pasar yang volatile jangka pendek namun resilien jangka panjang.

Q3 - Apakah volatilitas berubah dari dekade ke dekade?

Distribusi rolling volatility 30 hari (standar deviasi return harian dalam 30 hari trading terakhir, dihitung bergerak sepanjang waktu) menunjukkan sebaran yang berbeda-beda antar dekade - dekade yang mencakup krisis besar (1998, 2008) menunjukkan rentang volatilitas yang jauh lebih lebar.

Insight: Volatilitas melonjak signifikan pada periode krisis dan mereda pada periode stabil - dikonfirmasi lewat uji statistik di section berikutnya.

Q4 - Adakah pola musiman yang konsisten setiap tahun?

Rata-rata return harian per bulan (digabung dari 31 tahun data) menunjukkan variasi antar bulan - termasuk indikasi pola yang sering diasosiasikan dengan window dressing (kenaikan harga saham menjelang akhir tahun karena manajer investasi "mempercantik" portofolionya) di bulan Desember. Namun, saat dipecah per tahun lewat heatmap, warna (positif/negatif) pada bulan yang sama ternyata bervariasi cukup besar antar tahun.

Insight: Ada indikasi pola musiman pada rata-rata jangka panjang, tapi pola ini tidak konsisten terjadi di setiap tahun - kondisi makroekonomi tahunan tampak jadi faktor yang lebih dominan dibanding efek kalender semata. Strategi timing pasar berbasis kalender saja berisiko tinggi tanpa didukung analisis fundamental tambahan.

Q5 - Apakah volume perdagangan berkaitan dengan pergerakan harga?

Diuji menggunakan korelasi Spearman (mengukur kekuatan hubungan dua variabel dari -1 sampai +1, tanpa asumsi hubungan harus linear) antara Volume dan return, baik di hari yang sama maupun hari berikutnya:

AnalisisSpearman CorrP-valueSignifikan?
Volume vs Return (hari sama)0,03370,00315Yes
Volume vs Return (hari berikutnya)0,00410,71846No
Insight: Meski korelasi hari-sama tercatat "signifikan" secara statistik, nilainya (0,0337) sangat mendekati nol - artinya hubungannya nyaris tidak ada secara praktis. Volume perdagangan saja tidak cukup kuat untuk dijadikan indikator arah harga. Lonjakan volume bisa terjadi baik saat pasar naik maupun turun (misalnya saat panic selling), sehingga Volume lebih cocok dipakai sebagai indikator intensitas aktivitas pasar, bukan sinyal arah harga mandiri.

Statistical Validation

Mengapa perlu diuji secara statistik?

Pola yang "terlihat" di grafik belum tentu benar-benar berarti - bisa saja itu kebetulan acak. Bagian ini menjelaskan uji statistik yang dipakai untuk mengecek apakah temuan di atas cukup meyakinkan untuk dipercaya, atau perlu dipandang dengan hati-hati.

Kruskal-Wallis Test

Kenapa metode ini? Dipilih karena distribusi return finansial umumnya tidak normal (fat-tailed / punya banyak nilai ekstrem), sehingga uji parametrik seperti ANOVA yang mengasumsikan data normal kurang tepat. Kruskal-Wallis adalah versi non-parametrik untuk membandingkan lebih dari 2 kelompok - di sini, 4 kelompok dekade.

Cara membaca hasilnya: "Signifikan" (p < 0,05) berarti perbedaan volatilitas antar dekade kemungkinan besar bukan kebetulan acak - cukup meyakinkan secara statistik bahwa dekade-dekade tersebut memang punya karakter volatilitas yang berbeda.

Apa itu p-value? P-value adalah angka yang menunjukkan seberapa besar kemungkinan hasil ini muncul cuma karena kebetulan acak, bukan pola yang nyata. Semakin kecil p-value, semakin kecil kemungkinan itu kebetulan. Ambang umum yang dipakai: di bawah 0,05 dianggap cukup meyakinkan bukan kebetulan.

Penting diluruskan: P-value kecil hanya menunjukkan bahwa perbedaan antar dekade ini nyata - bukan mengukur seberapa besar bedanya (itu ukuran lain yang tidak dihitung di sini). Uji ini juga tidak bilang dekade mana yang beda.

DekadeStd Dev Return Harian
1990-an2,039%
2000-an1,547%
2010-an1,041%
2020-an1,166%

Apa itu Standar Deviasi (Std Dev)? Mengukur seberapa jauh angka-angka biasanya menyimpang dari rata-ratanya. Semakin besar angkanya, semakin liar naik-turun datanya; semakin kecil, semakin stabil. Di sini dipakai untuk mengukur volatilitas: makin besar standar deviasi return harian, makin sering & besar harga naik-turun di dekade itu.

Insight dari tabel: Polanya masuk akal, bukan disebabkan 1 dekade aneh sendiri - volatilitas tertinggi di 1990-an (era Krisis 1998), menurun bertahap ke 2010-an (paling stabil), lalu sedikit naik lagi di 2020-an (era Covid-19).
H-statistic: 9,29 P-value: 0,02567 Signifikan (p < 0,05)

Spearman Correlation

Kenapa metode ini? Dipilih (bukan Pearson) karena tidak mengasumsikan hubungan harus berbentuk garis lurus (linear) maupun data berdistribusi normal - cocok untuk data finansial yang cenderung punya banyak outlier ekstrem, misalnya saat krisis.

Cara membaca hasilnya: Nilai korelasi berkisar -1 sampai +1. Makin dekat ke 0, makin lemah hubungannya. P-value menunjukkan apakah angka korelasi itu bisa dipercaya (p < 0,05) atau kemungkinan besar cuma kebetulan.

Corr (hari sama): 0,0337 P-value: 0,00315 Signifikan tapi sangat lemah
Disclaimer penting: "Signifikan secara statistik" bukan berarti sebab-akibat, dan bukan jaminan pola ini akan berulang di masa depan. Hasil ini menunjukkan pola historis 1995–2026, bukan prediksi pergerakan pasar ke depan. Return dan volatilitas dihitung dari Daily Return (%) - perubahan persentase harian pada kolom Close - karena harga absolut tidak sebanding antar periode akibat pertumbuhan indeks dalam skala besar sepanjang 31 tahun.

Business Insights

Rekomendasi yang bisa ditindaklanjuti

  1. Adopsi strategi jangka panjang (buy and hold) untuk investor ritel. Mengingat karakter resiliensi jangka panjang IHSG meski melalui berbagai krisis, strategi ini berpotensi lebih sesuai dibanding trading jangka pendek yang sangat terpapar volatilitas.
  2. Waspadai periode volatilitas tinggi berbasis konteks makroekonomi. Karena volatilitas terbukti melonjak signifikan pada periode krisis tertentu, pemantauan indikator makroekonomi (bukan hanya data harga historis) penting untuk manajemen risiko portofolio.
  3. Jangan mengandalkan pola musiman kalender sebagai strategi utama. Karena pola musiman (seperti window dressing) tidak konsisten terjadi setiap tahun, strategi timing pasar berbasis kalender semata berisiko tinggi tanpa analisis fundamental tambahan.
  4. Gunakan Volume sebagai indikator pelengkap, bukan sinyal utama. Karena Volume tidak terbukti berkorelasi kuat dengan arah harga, sebaiknya dikombinasikan dengan indikator teknikal atau fundamental lain dalam pengambilan keputusan.
  5. Perlakukan drawdown ekstrem sebagai bagian dari siklus normal pasar. Data historis menunjukkan pemulihan pasca-krisis, meski butuh waktu, secara konsisten terjadi - sehingga panic selling saat krisis berpotensi merugikan investor jangka panjang.

Interactive Dashboard

Eksplorasi data secara langsung

Dashboard Tableau berikut memungkinkan Anda menjelajahi data IHSG 31 tahun secara interaktif - filter per periode, lihat tren, dan telusuri detail krisis.

Catatan: Dashboard ini tetap menganalisis keseluruhan 31 tahun data (7.681 hari), sama seperti analisis Python di atas. Hanya 2 dari 5 KPI (Latest Close & Latest Daily Return) yang merupakan snapshot dari titik data terakhir (3 Agustus 2026) - selebihnya dihitung dari seluruh/rentang data historis. Data ditampilkan sesuai kondisi terakhir file dataset yang di-publish, bukan koneksi live ke bursa saham.

Buka Dashboard di Tab Baru ↗

Cara membaca KPI di bagian atas dashboard

KPIDihitung dariTerkait Q?Alasan
Maximum DrawdownSeluruh 31 tahunQ2Match langsung - angkanya (-65,33%) sama persis dengan Kartu 2 di atas
Average Daily ReturnSeluruh 31 tahunQ1 (pendukung)Komponen dasar di balik cumulative_return (Kartu 1) - bukan angka utama Q1, tapi salah satu bahan hitungannya
30-Day Volatility30 hari terakhirQ3 (versi ringkas)Konsep sama dengan uji Kruskal-Wallis, tapi snapshot 30 hari terakhir saja - bukan perbandingan antar dekade dengan uji statistik formal
Latest IHSG CloseTitik data terakhirTidak terkait Q manapunAngka acuan (anchor) - memberi konteks "di mana posisi terakhir data ini" sebelum menjelajahi grafik historis 31 tahun, praktik umum di desain dashboard BI
Latest Daily ReturnTitik data terakhirTidak terkait Q manapunSama seperti di atas - titik acuan awal, bukan bagian dari pembuktian riset Q1-Q5

Cara membaca grafik, dan kaitannya dengan pertanyaan riset

GrafikMenjawabYang perlu diperhatikan
IHSG Closing Price TrendQ1 - PertumbuhanTren naik jangka panjang, dengan 3 penurunan tajam yang terlihat sekilas (1998, 2008, 2020) sebelum pulih dan melanjutkan tren naik
IHSG Cumulative ReturnQ1 - PertumbuhanVersi persentase dari Closing Price - memudahkan melihat total pertumbuhan sejak 1995
IHSG DrawdownQ2 - Krisis & PemulihanSetiap lembah tajam adalah 1 episode penurunan pasar; lembah terdalam (1998) mencapai -65,33%
IHSG Daily ReturnQ3 - VolatilitasTitik-titik lonjakan (spike) yang rapat menunjukkan periode volatilitas tinggi - paling padat di sekitar 1998 dan 2008/2020
IHSG Trading VolumeQ5 - Volume vs HargaLonjakan volume ekstrem terlihat di tengah grafik, tapi tidak selalu berbarengan dengan pergerakan harga besar - konsisten dengan temuan korelasi lemah di uji statistik

Catatan: Pola musiman (Q4) tidak ditampilkan sebagai grafik terpisah di dashboard ini karena temuannya tidak konsisten antar tahun - dibahas lengkap di section Deep Dive Findings di atas.

Lihat kode & metodologi lengkap

Seluruh proses analisis - dari data validation, feature engineering, hingga uji statistik - didokumentasikan lengkap di notebook Python pada repository GitHub berikut.

View Source Code on GitHub ↗