Salah satu langkah penting dalam analisis data eksploratif (EDA) adalah memahami hubungan antar variabel numerik. Salah satu cara paling efektif dan visual untuk melihat hubungan ini adalah dengan heatmap korelasi — visualisasi matriks korelasi yang diwarnai berdasarkan kekuatan hubungannya.
Artikel ini membahas konsep korelasi, cara membaca heatmap, dan tutorial praktik langsung menggunakan library Seaborn di Python.
1. Apa itu Korelasi?
Korelasi mengukur seberapa kuat dan ke arah mana dua variabel numerik saling berhubungan. Nilainya berkisar dari -1 sampai 1:
| Nilai Korelasi | Arti |
|---|---|
| mendekati +1 | Korelasi positif kuat — kalau satu naik, yang lain juga naik |
| mendekati -1 | Korelasi negatif kuat — kalau satu naik, yang lain turun |
| mendekati 0 | Tidak ada hubungan linear yang jelas |
Contoh sederhana: tinggi badan dan berat badan biasanya berkorelasi positif — semakin tinggi seseorang, cenderung semakin berat juga.
Catatan penting: Korelasi tidak sama dengan sebab-akibat (causation). Dua variabel bisa berkorelasi tanpa satu menyebabkan yang lain.
2. Kenapa Perlu Heatmap Korelasi?
Kalau punya dataset dengan banyak kolom numerik, melihat korelasi satu-satu lewat angka akan melelahkan. Heatmap membantu:
- Melihat pola hubungan antar banyak variabel sekaligus dalam satu tampilan
- Mendeteksi multikolinearitas (dua fitur yang sangat mirip informasinya) sebelum membangun model machine learning
- Menemukan fitur yang paling berkorelasi dengan target/label yang ingin diprediksi
- Mempercepat proses feature selection
3. Cara Membaca Heatmap Korelasi
- Warna terang/gelap merepresentasikan kekuatan korelasi (tergantung skema warna yang dipakai)
- Diagonal utama selalu bernilai 1 (variabel berkorelasi sempurna dengan dirinya sendiri)
- Simetris — nilai di atas dan bawah diagonal selalu sama
- Angka di dalam kotak (kalau
annot=True) menunjukkan nilai korelasi persis
4. Tutorial Praktik dengan Python (Seaborn)
Persiapan
Pastikan library berikut sudah terinstall:
pip install pandas numpy seaborn matplotlib
ini data yang bisa di buat untuk praktek:
Masukan datanya dulu pakai code ini:
from google.colab import files
uploaded = files.upload()Hasilnya seperti ini jika sudah masukan datanya:

Step 1 — Import Library dan Load Data
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv("data_korelasi.csv")
print(df.head())
print(df.dtypes)
Ini dia hasilnya:

Step 2 — Hitung Matriks Korelasi
# Ambil hanya kolom numerik
df_numerik = df.select_dtypes(include='number')
# Hitung korelasi antar kolom
korelasi = df_numerik.corr()
print(korelasi)
ini dia hasilnya:

Method .corr() secara default menghitung korelasi Pearson, cocok untuk hubungan linear antar variabel numerik.
Step 3 — Buat Heatmap Dasar
plt.figure(figsize=(8, 6))
sns.heatmap(korelasi, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Heatmap Korelasi Antar Variabel')
plt.show()
ini dia hasilnya

Penjelasan parameter:
annot=True→ menampilkan angka korelasi di setiap kotakcmap='coolwarm'→ skema warna (merah untuk korelasi positif kuat, biru untuk korelasi negatif kuat)fmt='.2f'→ format angka jadi 2 desimal
Step 4 — Heatmap yang Lebih Rapi (Hanya Segitiga Bawah)
Karena heatmap korelasi bersifat simetris, sering kali cukup tampilkan setengahnya saja agar lebih bersih:
mask = np.triu(np.ones_like(korelasi, dtype=bool)) # sembunyikan segitiga atas
plt.figure(figsize=(8, 6))
sns.heatmap(korelasi, mask=mask, annot=True, cmap='coolwarm', fmt='.2f',
linewidths=0.5, square=True)
plt.title('Heatmap Korelasi (Segitiga Bawah)')
plt.show()
ini dia hasilnya:

Step 5 — Cari Pasangan Variabel dengan Korelasi Terkuat
# Ubah matriks korelasi jadi long-format untuk memudahkan sorting
korelasi_pairs = korelasi.unstack()
korelasi_pairs = korelasi_pairs[korelasi_pairs != 1.0] # buang korelasi variabel dgn dirinya sendiri
korelasi_sorted = korelasi_pairs.abs().sort_values(ascending=False)
print("Pasangan variabel dengan korelasi terkuat:")
print(korelasi_sorted.head(10))
Ini dia hasilnya:

Step 6 — Simpan Heatmap sebagai Gambar
plt.figure(figsize=(8, 6))
sns.heatmap(korelasi, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Heatmap Korelasi Antar Variabel')
plt.savefig('heatmap_korelasi.png', dpi=300, bbox_inches='tight')
plt.show()
ini dia hasilnya:

Kalau kamu di Google Colab, download hasilnya dengan:
from google.colab import files
files.download('heatmap_korelasi.png')
5. Tips Praktis
- Skala warna beda-beda arti — pastikan pilih
cmapyang intuitif.coolwarmdanRdBu_rpopuler karena merah = positif, biru = negatif - Jangan langsung buang fitur berkorelasi tinggi tanpa analisis lebih lanjut — pahami dulu konteks bisnis/domain datanya
- Korelasi tinggi antar fitur (bukan dengan target) sering jadi sinyal multikolinearitas, yang bisa mengganggu model seperti regresi linear
- Untuk data yang tidak berdistribusi normal atau punya outlier, pertimbangkan korelasi Spearman (
df.corr(method='spearman')) yang lebih tahan terhadap hubungan non-linear
6. Kesimpulan
Heatmap korelasi adalah salah satu tools EDA paling powerful untuk memahami hubungan antar variabel secara cepat dan visual. Dengan Seaborn, proses ini jadi sangat mudah — cukup beberapa baris kode untuk mendapatkan insight yang berharga sebelum melangkah ke tahap modeling.
Coba praktikkan langkah-langkah di atas dengan datasetmu sendiri, lalu identifikasi pasangan variabel mana yang paling menarik untuk dianalisis lebih lanjut.
