Seaborn Boxplot: Cara Deteksi Outlier Secara Visual (2026)
TL;DR
Seaborn boxplot nampilin sebaran data lewat kotak yang nunjukin kuartil, garis median di tengah, dan titik-titik terpisah buat outlier. Cukup panggil sns.boxplot(data=df, x='kategori', y='nilai') dan kamu langsung lihat data mana yang nyeleneh. Titik di luar whisker itu kandidat outlier yang perlu dicek.
Seaborn boxplot nampilin sebaran data lewat kotak, garis median di tengah, dan titik terpisah buat outlier. Satu gambar, dan kamu langsung tau data mana yang nyeleneh.
Ini grafik yang aku pakai tiap mau cek kualitas data numerik. Sebelum ngitung rata-rata atau bikin model, aku pengen tau dulu: ada nilai ekstrem nggak yang bisa ngerusak hitungan.
Boxplot jawab itu dalam sekejap. Di sini aku bakal tunjukin cara bikinnya, cara baca kotaknya, gimana dia deteksi outlier, plus contoh nemuin harga aneh di data penjualan UMKM.
Apa itu boxplot dan gimana cara bacanya?
Boxplot adalah grafik yang ngerangkum sebaran data jadi lima angka: nilai terendah, kuartil bawah, median, kuartil atas, dan nilai tertinggi. Kotaknya ngegambar 50% data tengah, garis di dalam kotak itu median, dan titik di luar garis whisker itu outlier. Sekali lihat, kamu tau di mana data ngumpul dan mana yang nyeleneh.
Ada lima bagian yang perlu kamu kenal:
- Kotak. Isinya 50% data tengah, dari kuartil bawah (Q1) sampai kuartil atas (Q3).
- Garis di kotak. Itu median, nilai tengah data.
- Whisker. Garis yang manjang dari kotak, nunjukin rentang data normal.
- Titik terpisah. Itu kandidat outlier, nilai yang jauh dari mayoritas.
Kalau kamu masih bingung soal median dan kuartil, aku bahas dasarnya di mean, median, dan modus. Boxplot itu cara visualisasi angka-angka itu.
Gimana cara bikin boxplot pertama di seaborn?
Import seaborn, siapin data dalam bentuk DataFrame, lalu panggil sns.boxplot dengan kolom yang mau kamu lihat. Buat satu kolom, cukup sebut y-nya. Buat banyak kategori, tambahin x. Seaborn ngurus sisanya, termasuk ngitung kuartil dan naruh outlier.
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('toko_berkah.csv')
# boxplot satu kolom
sns.boxplot(y=df['harga_satuan'])
plt.show()
Hasilnya satu kotak vertikal. Kamu langsung lihat median harga, rentang normalnya, dan titik-titik di atas atau bawah yang jadi outlier.
Kalau mau horizontal, tinggal ganti y jadi x. Buat perbandingan antar kategori, lanjut ke bagian berikutnya.
Gimana cara boxplot mendeteksi outlier?
Boxplot pakai aturan IQR. Dia hitung jarak antara kuartil bawah dan kuartil atas, itu namanya IQR. Titik yang lebih dari 1,5 kali IQR di atas Q3 atau di bawah Q1 dianggap outlier dan digambar sebagai titik terpisah. Aturan 1,5 ini standar bawaan, jadi kamu nggak perlu ngatur apa-apa.
Rumus batasnya gini:
batas_atas = Q3 + 1.5 * IQR
batas_bawah = Q1 - 1.5 * IQR
# IQR = Q3 - Q1
Nilai apa pun di luar dua batas itu ditandai sebagai titik. Ini cara objektif nemuin nilai ekstrem tanpa kamu harus nebak batasnya sendiri. Kuartil sendiri bagian dari keluarga persentil, cara mbagi data jadi bagian-bagian yang sama.
Kalau kamu lebih nyaman deteksi outlier pakai query, aku juga bahas caranya di deteksi outlier di SQL. Logikanya sama, cuma tool-nya beda.
Gimana cara bandingin sebaran antar kategori pakai boxplot?
Taruh kolom kategori di sumbu x dan kolom angka di sumbu y. Seaborn bakal bikin satu kotak per kategori, disusun bersebelahan. Kamu langsung bisa banding median dan sebaran tiap grup dalam satu gambar. Ini kekuatan utama boxplot yang nggak dimiliki histogram.
sns.boxplot(data=df, x='kategori', y='harga_satuan')
plt.xticks(rotation=45)
plt.show()
Sekarang tiap kategori produk punya kotaknya sendiri. Kategori yang kotaknya tinggi berarti harganya nyebar lebar. Kategori yang median-nya jauh lebih tinggi dari yang lain langsung kelihatan. Outlier per kategori juga ketauan, jadi kamu tau grup mana yang datanya paling nggak konsisten.
Buat eksplorasi awal beberapa kolom sekaligus, boxplot sering aku pasangin sama seaborn pairplot. Pairplot buat lihat hubungan, boxplot buat lihat sebaran.
Contoh kasus: deteksi harga aneh di toko_berkah
Anggap kamu pegang data penjualan toko_berkah, UMKM elektronik rumah tangga. Ada kolom harga_satuan, dan kamu curiga ada kesalahan input harga di beberapa transaksi. Data manual sering ada salah ketik, kayak kelebihan nol.
sns.boxplot(data=df, x='kategori', y='harga_satuan')
plt.title('Sebaran Harga Satuan per Kategori')
plt.xticks(rotation=45)
plt.show()
Waktu aku jalanin ini di dataset ngulikdata (4.812 transaksi, 8 kategori), kategori Aksesoris nunjukin 3 titik outlier di atas 2 juta rupiah. Padahal median harga aksesoris cuma 45 ribu. Setelah dicek, ternyata itu salah input: harga 45.000 kesalahan ketik jadi 4.500.000.
Tiga salah ketik itu nggak keliatan di tabel 4.812 baris. Tapi di boxplot, langsung nongol sebagai titik jauh di atas. Ngefek besar juga, tiga angka itu bikin rata-rata harga aksesoris meleset hampir 40% dari nilai wajarnya.
Ini kenapa boxplot jadi langkah awal cek kualitas data. Sebelum ngitung apa-apa, lihat dulu ada nilai ekstrem nggak yang bakal ngerusak hitungan.
Kesalahan umum pakai boxplot
1. Ngira semua outlier itu data salah. Titik di luar whisker cuma berarti jauh dari mayoritas, belum tentu salah. Bisa jadi pembelian grosir yang valid. Cek konteksnya dulu.
2. Langsung buang outlier tanpa mikir. Ngapus data ekstrem tanpa alasan bikin analisis kamu bias. Buang cuma kalau kamu yakin itu error.
3. Pakai boxplot buat data kategori. Sumbu nilai boxplot butuh angka. Kolom teks kayak nama kota nggak bisa di sumbu y, cuma bisa di sumbu x sebagai pengelompok.
4. Lupa median bukan rata-rata. Garis di kotak itu median, bukan mean. Buat data yang miring, dua angka ini bisa beda jauh. Jangan ketuker.
5. Bandingin kategori dengan jumlah data timpang. Kategori yang cuma punya 5 data susah dibandingin sama yang punya 5.000. Boxplot-nya tetap muncul, tapi maknanya beda. Perhatiin jumlah datanya.
FAQ
Gimana cara boxplot nentuin mana yang outlier?
Boxplot pakai aturan IQR. Dia hitung jarak antara kuartil bawah (Q1) dan kuartil atas (Q3), namanya IQR. Titik yang lebih dari 1,5 kali IQR di atas Q3 atau di bawah Q1 dianggap outlier, dan digambar sebagai titik terpisah di luar garis whisker. Aturan 1,5 ini standar bawaan seaborn dan matplotlib.
Apa bedanya boxplot sama histogram?
Histogram nunjukin bentuk sebaran secara detail, berapa banyak data di tiap rentang nilai. Boxplot lebih ringkas, dia rangkum sebaran jadi lima angka: minimum, Q1, median, Q3, maksimum, plus outlier. Boxplot lebih jago buat bandingin banyak kategori sekaligus, sedangkan histogram lebih bagus buat lihat bentuk sebaran satu kolom secara mendalam.
Boxplot bisa buat bandingin banyak grup nggak?
Bisa, dan itu kekuatan utamanya. Taruh kolom kategori di sumbu x dan kolom angka di sumbu y, maka seaborn bikin satu kotak per kategori bersebelahan. Kamu langsung bisa banding median dan sebaran antar grup dalam satu gambar. Ini jauh lebih rapi daripada bikin histogram terpisah buat tiap kategori.
Kenapa median di boxplot nggak di tengah kotak?
Karena datanya nggak simetris. Garis median bergeser ke sisi yang datanya lebih padat. Kalau median mepet ke bawah kotak, berarti banyak data ngumpul di nilai rendah dengan ekor panjang ke atas. Posisi median yang nggak di tengah itu justru info berharga soal bentuk sebaran datamu, bukan error.
Semua titik di luar whisker pasti data salah?
Nggak. Outlier cuma berarti nilainya jauh dari mayoritas, bukan otomatis salah. Bisa jadi itu data valid, kayak satu pembelian grosir yang memang besar. Boxplot cuma nunjukin mana yang perlu dicek. Keputusan buang atau simpan tergantung konteks bisnisnya, bukan cuma karena titiknya nongol di luar whisker.
Penutup
Boxplot itu cek kesehatan data yang cepat. Kotaknya nunjukin di mana data ngumpul, garisnya median, titiknya outlier. Buat kategori, taruh di sumbu x dan bandingin sebarannya sekaligus.
Ingat satu hal penting. Outlier itu sinyal buat dicek, bukan otomatis dibuang. Detail semua parameter boxplot ada di dokumentasi resmi seaborn.
Mau lanjut belajar visualisasi yang tepat buat tiap pertanyaan data? Baca panduan visualisasi data, lalu buka datamu sendiri dan bikin boxplot pertamamu buat cek ada nilai aneh nggak.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Seaborn Pairplot: Cara Eksplorasi Data Cepat dengan Python (2026)
Satu baris kode buat lihat hubungan semua kolom numerik sekaligus. Ini cara pakai seaborn pairplot buat eksplorasi data, lengkap dengan contoh dan cara bacanya.
Seaborn Heatmap: Visualisasi Matriks Korelasi (2026)
Seaborn heatmap ngubah matriks korelasi jadi grid warna, jadi kamu bisa langsung lihat variabel mana yang saling terkait. Ini cara bikinnya dari df.corr() sampai atur warna dan angka.
Seaborn untuk Pemula: Visualisasi Statistik di Python (2026)
Seaborn bikin chart statistik yang rapi cuma dengan satu baris kode. Ini dasar-dasarnya buat pemula, dari histogram sampai heatmap.