Pernah nggak sih kamu penasaran apakah dua hal di data kamu itu saling berhubungan? Misalnya, apakah budget iklan yang lebih besar benar-benar bikin penjualan naik? Nah, di tutorial ini kita akan belajar step-by-step cara menghitung korelasi antar kolom pakai Python, sampai memvisualisasikannya jadi heatmap yang enak dilihat.
Tutorial ini ditulis buat pemula, jadi kita akan jalan pelan-pelan mulai dari nol: siapin data, install library, sampai tampilkan hasilnya dalam bentuk grafik. Siapkan editor kode kamu (VS Code, Jupyter Notebook, atau apa saja yang biasa kamu pakai), dan ikuti langkah-langkahnya satu per satu.
Yang Kamu Butuhkan Sebelum Mulai
Sebelum masuk ke kode, pastikan dulu tiga hal ini sudah siap:
- Python sudah terinstall di komputer kamu (versi 3.8 ke atas sudah cukup).
- Library pandas, seaborn, dan matplotlib sudah terinstall.
- File data dalam format CSV yang mau kamu analisis.
Kalau library-nya belum ada, install dulu lewat terminal:
bash
pip install pandas seaborn matplotlib
Tunggu sampai proses instalasi selesai, baru lanjut ke langkah berikutnya.
Langkah 1: Siapkan Data Contoh
Supaya tutorial ini bisa langsung kamu praktikkan tanpa bingung cari data, mari buat file CSV sederhana dulu. Buat file baru bernama data_penjualan.csv, lalu isi seperti ini:
csv
budget_iklan,jumlah_pengunjung,penjualan,harga_produk
100,500,1200,50
150,650,1500,48
200,800,1900,45
120,550,1300,52
250,900,2100,44
300,1000,2400,42
180,700,1700,47
220,850,2000,45
90,450,1100,55
280,950,2300,43Simpan file ini di folder yang sama dengan file Python kamu. Kalau kamu sudah punya data sendiri, boleh langsung pakai file itu, cukup ganti nama filenya nanti di kode.
Langkah 2: Import Library dan Baca Data
Buat file baru, misalnya visualisasi_korelasi.py, lalu tulis kode berikut:
python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Baca data dari file CSV
df = pd.read_csv("data_penjualan.csv")
# Lihat 5 baris pertama untuk memastikan data terbaca dengan benar
print(df.head())
Jalankan kode ini dulu. Kalau muncul tabel berisi kolom budget_iklan, jumlah_pengunjung, penjualan, dan harga_produk, berarti datanya sudah terbaca dengan sukses. Kalau muncul error FileNotFoundError, cek lagi apakah file CSV-nya benar-benar ada di folder yang sama dengan file Python kamu.
Langkah 3: Hitung Korelasi Antar Kolom
Sekarang bagian utamanya. Tambahkan kode berikut di bawah kode sebelumnya:
python
# Hitung korelasi Pearson antar semua kolom numerik
korelasi = df.corr(method="pearson")
print(korelasi)Jalankan lagi kodenya. Kamu akan melihat output berupa tabel matriks, kira-kira seperti ini:
budget_iklan jumlah_pengunjung penjualan harga_produk
budget_iklan 1.000000 0.987432 0.991562 -0.968214
jumlah_pengunjung 0.987432 1.000000 0.995218 -0.945103
penjualan 0.991562 0.995218 1.000000 -0.958732
harga_produk -0.968214 -0.945103 -0.958732 1.000000
Cara bacanya sederhana: angka mendekati 1 berarti dua kolom itu bergerak searah (naik bareng), angka mendekati -1 berarti berlawanan arah (satu naik, satu turun), dan angka mendekati 0 berarti hampir tidak ada hubungan. Di contoh ini, misalnya, budget_iklan dan penjualan punya korelasi 0.99, artinya keduanya berhubungan sangat kuat dan searah.
Kalau kamu cuma penasaran dengan hubungan dua kolom spesifik saja, tidak perlu hitung semuanya. Cukup tulis:
python
korelasi_dua_kolom = df["budget_iklan"].corr(df["penjualan"])
print(f"Korelasi budget iklan dan penjualan: {korelasi_dua_kolom:.2f}")
Langkah 4: Ubah Matriks Angka Jadi Heatmap
Tabel angka memang informatif, tapi kalau kolomnya banyak, jujur saja agak melelahkan dibaca satu-satu. Di sinilah heatmap membantu, kita bisa langsung “lihat” polanya lewat warna.
Tambahkan kode berikut:
python
plt.figure(figsize=(8, 6))
sns.heatmap(korelasi, annot=True, cmap="coolwarm", fmt=".2f", linewidths=0.5)
plt.title("Heatmap Korelasi Antar Kolom")
plt.tight_layout()
plt.show()
Setelah dijalankan, akan muncul jendela baru berisi grafik heatmap. Warna merah biasanya menandakan korelasi positif kuat, warna biru menandakan korelasi negatif kuat, dan warna netral di tengah menandakan hubungan yang lemah. Angka di setiap kotak (berkat annot=True) memudahkan kamu membaca nilai persisnya tanpa harus menebak dari warna saja.
Langkah 5: Lihat Hubungan Dua Variabel Lebih Detail dengan Scatter Plot
Heatmap bagus untuk gambaran besar, tapi kalau kamu mau lihat lebih detail bagaimana bentuk hubungan antara dua kolom tertentu, pakai scatter plot:
python
sns.scatterplot(data=df, x="budget_iklan", y="penjualan")
plt.title("Hubungan Budget Iklan dan Penjualan")
plt.xlabel("Budget Iklan")
plt.ylabel("Penjualan")
plt.show()
Kalau titik-titiknya membentuk garis lurus naik, itu tanda korelasi positif yang kuat, sama seperti yang sudah ditunjukkan angka korelasinya tadi.
Langkah 6: (Opsional) Lihat Semua Pasangan Kolom Sekaligus
Kalau kamu ingin eksplorasi lebih jauh dan melihat hubungan setiap pasangan kolom sekaligus dalam satu tampilan, gunakan pair plot:
python
sns.pairplot(df)
plt.show()
Perlu diketahui, kalau kolomnya banyak, proses render pair plot ini bisa memakan waktu agak lama. Jadi gunakan langkah ini kalau memang perlu eksplorasi mendalam, bukan sebagai langkah wajib di setiap analisis.
Kode Lengkap
Supaya lebih mudah, ini kode lengkap dari langkah 1 sampai 6 yang sudah digabung:
python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 1. Baca data
df = pd.read_csv("data_penjualan.csv")
print(df.head())
# 2. Hitung korelasi
korelasi = df.corr(method="pearson")
print(korelasi)
# 3. Visualisasi heatmap
plt.figure(figsize=(8, 6))
sns.heatmap(korelasi, annot=True, cmap="coolwarm", fmt=".2f", linewidths=0.5)
plt.title("Heatmap Korelasi Antar Kolom")
plt.tight_layout()
plt.show()
# 4. Visualisasi scatter plot
sns.scatterplot(data=df, x="budget_iklan", y="penjualan")
plt.title("Hubungan Budget Iklan dan Penjualan")
plt.show()Kesalahan Umum yang Sering Terjadi
Beberapa error yang biasanya muncul buat pemula, siapa tahu kamu mengalaminya juga:
ModuleNotFoundError: No module named 'seaborn'— berarti library seaborn belum terinstall, jalankan lagipip install seaborn.FileNotFoundError— file CSV tidak ditemukan, pastikan nama file dan lokasinya sudah benar, atau gunakan path lengkap sepertipd.read_csv("C:/Users/nama/data_penjualan.csv").- Grafik tidak muncul — kalau kamu pakai VS Code atau terminal biasa (bukan Jupyter Notebook), pastikan ada baris
plt.show()di akhir kode, karena tanpa ini grafiknya tidak akan ditampilkan. - Kolom teks ikut dihitung dan error — fungsi
df.corr()hanya bekerja untuk kolom numerik. Kalau ada kolom berisi teks (misalnya nama produk), pandas versi terbaru otomatis mengabaikannya, tapi kalau kamu pakai versi lama, tambahkannumeric_only=Truedi dalamdf.corr().
Penutup
Sampai di sini, kamu sudah berhasil menghitung korelasi antar kolom dan menampilkannya dalam bentuk heatmap serta scatter plot. Coba sekarang ganti file data_penjualan.csv dengan data kamu sendiri, lalu jalankan ulang semua langkah di atas. Perhatikan pola apa yang muncul, mungkin saja kamu menemukan hubungan menarik yang selama ini belum kamu sadari dari data yang sudah lama kamu simpan.
Ingat satu hal penting: korelasi tinggi tidak selalu berarti sebab-akibat. Anggap hasil korelasi ini sebagai titik awal untuk bertanya lebih jauh, bukan kesimpulan akhir.
