Halo semuanya! Selamat datang di panduan lengkap visualisasi data menggunakan Python. Bagi kamu yang sedang mempelajari analisis data, data science, atau sekadar ingin mengolah data angka, salah satu bentuk grafik paling fundamental yang wajib dikuasai adalah Histogram.
Pada panduan mendalam kali ini, kita akan membahas secara tuntas dan rinci mengenai cara membuat, membaca, mengustomisasi, hingga menyimpan histogram menggunakan library Matplotlib langsung di dalam editor favorit para developer, yaitu Visual Studio Code (VS Code).
1. Memahami Konsep Dasar Histogram
Sebelum masuk ke ranah coding, penting untuk memahami terlebih dahulu apa sebenarnya fungsi dari histogram agar kamu tidak salah menggunakannya.
Histogram adalah jenis grafik yang digunakan untuk menampilkan distribusi frekuensi dari data numerik kontinu. Histogram membagi data menjadi beberapa kelompok rentang nilai yang disebut Bins (atau interval/kelas), lalu menghitung berapa banyak titik data yang jatuh ke dalam setiap interval tersebut.
- Bar Chart: Digunakan untuk membandingkan kategori diskret yang terpisah (contoh: Penjualan Produk A, B, C). Batang pada Bar Chart memiliki spasi/jarak antar batangnya.
- Histogram: Digunakan untuk data numerik kontinu (contoh: Distribusi Umur, Tinggi Badan, Rentang Gaji). Batang pada Histogram saling menempel rapat tanpa spasi untuk menunjukkan kontinuitas rentang nilai.

2. Persiapan Environment & Instalasi Library di VS Code
Untuk mempraktikkan tutorial ini secara utuh, kita memerlukan tiga library utama di Python:
matplotlib: Library utama untuk membuat visualisasi dan grafik.numpy: Library komputasi numerik untuk membuat data sampel sintetis.pandas: Library manipulasi data untuk membaca dataset file CSV.
Buka terminal terintegrasi di VS Code dengan menekan shortcut Ctrl + ` (atau klik menu Terminal > New Terminal), lalu jalankan perintah instalasi berikut:
pip install matplotlib numpy pandas
3. Menyiapkan Workspace Jupyter Notebook di VS Code
Meskipun kamu bisa menggunakan script Python biasa (.py), menggunakan ekstensi Jupyter Notebook (.ipynb) di VS Code jauh lebih direkomendasikan untuk analisis data karena grafik hasil eksekusi akan langsung tampil tepat di bawah cell kode.
- Buka VS Code, buat file baru dan simpan dengan nama
tutorial_histogram.ipynb. - Pastikan ekstensi Jupyter di VS Code sudah aktif (jika belum, instal ekstensi Jupyter dari VS Code Marketplace).
- Pilih Kernel Python yang aktif pada bagian pojok kanan atas editor.

4. Membuat Histogram Dasar dengan Data Sampel
Mari kita mulai dari tingkat paling dasar terlebih dahulu. Kita akan membuat 1.000 data angka acak berdistribusi normal menggunakan NumPy, kemudian merender histogram sederhananya.
Ketikkan kode berikut pada cell pertama di Notebook kamu:
import matplotlib.pyplot as plt
import numpy as np
# Set seed agar angka acak yang dihasilkan konsisten
np.random.seed(42)
# Menghasilkan 1000 data acak berdistribusi normal (mean=0, std=1)
data_sampel = np.random.randn(1000)
# Membuat Histogram Dasar
plt.hist(data_sampel)
# Menampilkan Grafik
plt.show()Tekan Shift + Enter untuk menjalankan cell di atas.

5. Kustomisasi Tampilan Histogram Agar Profesional
Histogram dasar di atas masih terlihat polos. Dalam standar pembuatan laporan analisis data, sebuah grafik wajib memiliki judul, label sumbu yang jelas, tata warna yang rapi, serta pembagian interval (bins) yang pas.
Gunakan baris kode kustomisasi berikut:
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)
data_sampel = np.random.randn(1000)
# Mengatur ukuran kanvas grafik (Lebar: 8 inci, Tinggi: 5 inci)
plt.figure(figsize=(8, 5))
# Kustomisasi Histogram
plt.hist(
data_sampel,
bins=30, # Mengubah jumlah interval menjadi 30 batang
color='#3b82f6', # Warna isi batang (Biru Modern)
edgecolor='#1e293b', # Warna garis tepi batang
alpha=0.8 # Tingkat transparansi warna (0.0 - 1.0)
)
# Menambahkan elemen penjelas grafik
plt.title('Distribusi Data Sampel Normal', fontsize=14, fontweight='bold')
plt.xlabel('Nilai Data (Interval)', fontsize=11)
plt.ylabel('Frekuensi (Jumlah Muncul)', fontsize=11)
# Menambahkan garis kisi-kisi (grid) agar mudah dibaca
plt.grid(axis='y', linestyle='--', alpha=0.5)
# Menampilkan grafik
plt.show()Penjelasan Parameter Penting:
bins=30: Mengatur presisi pembagian kelompok data. Makin besar nilai bins, makin tipis dan detail batang yang dihasilkan.edgecolor: Sangat penting ditambahkan agar antar-batang pada histogram terpisah dengan garis kontras yang jelas.grid(axis='y'): Membantu mata pembaca dalam memetakan tinggi puncak batang ke angka frekuensi pada sumbu Y.

6. Eksperimen Pengaruh Jumlah Bins Terhadap Visualisasi
Salah satu kesalahan umum pemula saat membuat histogram adalah salah memilih jumlah Bins. Mari kita lihat perbandingannya saat data yang sama diplot menggunakan bins=5 (terlalu sedikit) vs bins=100 (terlalu banyak).
# Perbandingan pengaruh Bins
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
# Bins Terlalu Sedikit (Informasi Terlalu Umum)
ax1.hist(data_sampel, bins=5, color='orange', edgecolor='black')
ax1.set_title('Bins = 5 (Underfitting)')
# Bins Terlalu Banyak (Terlalu Bising/Noise)
ax2.hist(data_sampel, bins=100, color='green', edgecolor='black')
ax2.set_title('Bins = 100 (Overfitting)')
plt.show()
7. Lanjutan: Menambahkan Garis Rata-rata (Mean Line)
Untuk memberikan analisis statistik yang lebih kaya pada histogram, kita bisa menambahkan garis vertikal penanda nilai rata-rata (mean) atau median dari data tersebut.
# Hitung nilai rata-rata data
nilai_mean = np.mean(data_sampel)
plt.figure(figsize=(8, 5))
plt.hist(data_sampel, bins=30, color='skyblue', edgecolor='black', alpha=0.7)
# Menambahkan garis vertikal untuk Nilai Rata-rata (Mean)
plt.axvline(nilai_mean, color='red', linestyle='dashed', linewidth=2, label=f'Mean: {nilai_mean:.2f}')
plt.title('Histogram dengan Garis Rata-rata (Mean)')
plt.xlabel('Nilai Data')
plt.ylabel('Frekuensi')
plt.legend() # Menampilkan kotak keterangan label
plt.show()
8. Membuat Histogram dari File Dataset CSV (Pandas)
Di dunia kerja nyata, data jarang sekali dibuat acak pakai NumPy, melainkan diimpor dari file nyata seperti Excel atau CSV. Sebagai contoh, kita akan membaca dataset persentase penduduk miskin per provinsi tahun 2025 lalu melihat sebaran nilainya lewat histogram.
import pandas as pd
import matplotlib.pyplot as plt
# Membaca file CSV data persentase penduduk miskin 2025
df = pd.read_csv('Persentase Penduduk Miskin (P0) Menurut Provinsi dan Daerah, 2025.csv', skiprows=4)
# Mengambil nama provinsi dan kolom data Semester 1 (Maret 2025)
# Kolom index 0 = Provinsi, Kolom index 7 = Jumlah Persentase Miskin (Semester 1)
df_clean = df.iloc[:38, [0, 7]].copy()
df_clean.columns = ['Provinsi', 'Persentase_Miskin']
# Mengubah tipe data kolom menjadi angka/float
df_clean['Persentase_Miskin'] = pd.to_numeric(df_clean['Persentase_Miskin'])
# Membuat histogram dari kolom persentase kemiskinan
plt.figure(figsize=(8, 4))
plt.hist(df_clean['Persentase_Miskin'], bins=8, color='#8b5cf6', edgecolor='white')
plt.title('Distribusi Persentase Penduduk Miskin Menurut Provinsi (2025)', fontsize=12, fontweight='bold')
plt.xlabel('Persentase Penduduk Miskin (%)')
plt.ylabel('Jumlah Provinsi')
plt.grid(axis='y', linestyle='--', alpha=0.5)
plt.show()
9. Cara Menyimpan Gambar Hasil Histogram ke File Lokal
Setelah selesai membuat grafik histogram yang estetik, kamu tentu ingin menyimpan hasilnya ke bentuk file gambar (PNG/JPG) untuk dimasukkan ke dalam dokumen presentasi atau laporan.
Gunakan fungsi plt.savefig() sebelum memanggil fungsi plt.show():
plt.figure(figsize=(8, 5))
plt.hist(data_sampel, bins=30, color='teal', edgecolor='black')
plt.title('Histogram Siap Export')
# Simpan grafik ke direktori folder lokal dengan resolusi tinggi (300 DPI)
plt.savefig('grafik_histogram_hasil.png', dpi=300, bbox_inches='tight')
plt.show()bbox_inches='tight' berfungsi agar area judul dan label di sekeliling grafik tidak terpotong saat disimpan menjadi file gambar.Rangkuman Cheatsheet Kode Histogram
Berikut adalah tabel ringkasan fungsi-fungsi utama Matplotlib yang kita gunakan dalam pembuatan histogram:
| Fungsi / Parameter | Kegunaan / Fungsi Utama |
|---|---|
plt.hist(data) | Membuat objek grafik histogram dari sekumpulan data. |
bins=N | Menentukan jumlah batang/kelompok interval frekuensi. |
edgecolor='color' | Memberi warna garis batas/tepi antar-batang histogram. |
plt.axvline(x) | Menambahkan garis bantu vertikal (misal: Mean/Median). |
plt.savefig('nama.png') | Mengeksport grafik ke file gambar resolusi tinggi. |
Kesimpulan
Histogram adalah alat visualisasi yang sangat ampuh untuk memahami pola sebaran data numerik secara cepat. Dengan menggabungkan fleksibilitas library Matplotlib dan kemudahan lingkungan kerja VS Code (Jupyter Extension), kamu dapat dengan mudah mengeksplorasi data, melakukan kustomisasi tampilan, hingga mengeksport grafik berkualitas tinggi untuk kebutuhan analisis data kamu.
