E-Commerce Sales: End-to-End Data Management & BI
BNSP Data Management & Data Analyst — from Power Query cleaning to Tableau dashboards
TL;DR — Studi kasus sertifikasi BNSP Data Management & Data Analyst: membersihkan 10.400 baris data e-commerce yang penuh anomali lewat Power Query M, membangun model relasional left-join, lalu menghasilkan dashboard Tableau — hasil akhir: Revenue Rp 1,39M, transaksi berhasil 99,01%, dan tiga produk fashion menopang ~50% pendapatan.
Konteks & Metodologi
Data transaksi mentah dari multi-platform hampir selalu penuh anomali — salah input, format teks campur aduk, nilai null, hingga foreign key rusak. Studi kasus ini dikembangkan untuk pembuktian kompetensi sertifikasi BNSP skema Data Management System & Data Analyst di UNS, mencakup siklus penuh: audit integritas, preprocessing di Excel + Power Query, modeling relasional, hingga dashboard BI di Tableau Desktop.
Alur kerja mengikuti enam tahapan standar kompetensi nasional:
- Koleksi data — konsolidasi seluruh sumber transaksi, katalog, pelanggan.
- Pemahaman data — profiling struktur dan distribusi nilai.
- Validasi data — uji integritas primary–foreign key.
- Definisi objek data — rancang skema relasional terpusat.
- Pembersihan data — hapus baris korup via Power Query M Code.
- Konstruksi & utilisasi — metrik turunan, insight, dan dashboard eksekutif.
Tahap 1–2: Profiling & Deteksi Anomali
Tiga tabel mentah diaudit: sales.csv (10.400 baris), customers.csv (1.000 baris), dan products.csv (10 baris).


Temuan kunci:
- Teks di kolom numerik — harga tertulis "fifty".
- Tanggal tak valid — string literal "Invalid Date".
- Kategori inkonsisten — "BDG" vs "Bandung", "DKI Jakarta" vs "Jakarta".
- Foreign key rusak — prefix acak seperti "xyz463", "abc767".
- Kuantitas negatif & null — 102 baris retur dan 105 baris null.


Tahap 3: Pembersihan via Power Query M
Tantangan terbesar: normalisasi ID Pelanggan yang terdistorsi prefix huruf. Solusinya, satu formula M:
= Text.Select([ID Pelanggan], {"0".."9"})
Hasilnya: xyz463 → 463, abc767 → 767, ID908 → 908.

Transformasi lanjutan:
- Tanggal dinormalisasi ke ISO
YYYY-MM-DD. - Tipe numerik dikasting ke Whole Number.
- String kategori di-trim, proper casing, alias kota disatukan.
- Status transaksi: kuantitas positif = Penjualan, negatif = Retur (dipertahankan, bukan dihapus) agar rasio checkout tetap terukur.
Output akhir: 9.950 baris transaksi valid, nol error tipe data.

Tahap 4–5: Model Relasional & Validasi
sales_cleaned.csv menjadi fact table yang dihubungkan ke dua dimensi via Left Join — memastikan tidak ada transaksi yang hilang.

- Sales → Customers (kunci
ID Pelanggan): memperkaya transaksi dengan usia, gender, lokasi. - Sales → Products (kunci
Produk↔Nama Produk): menambahkan harga master dan stok.


Beberapa baris pasca-join bernilai null pada atribut demografi (ID pelanggan tak tercatat di master). Karena Left Join, baris tersebut tetap dipertahankan agar total pendapatan tidak terdistorsi — konsistensi foreign key tetap di atas 99%.

Tahap 6: Feature Engineering
Calculated fields dibangun di Tableau sebelum visualisasi:
- Total Revenue =
[Kuantitas] * [Harga per Unit] - Revenue per Customer =
SUM([Total Revenue]) / COUNTD([ID Pelanggan]) - Monthly Growth (MoM) via fungsi
LOOKUP - Binning usia per interval 5 tahun untuk segmentasi demografis


Tahap 7: Dashboard & Temuan Utama

KPI Eksekutif:
- Total Revenue Rp 1.398.939 sepanjang periode analisis.
- AOV 419,7 — rata-rata belanja per keranjang.
- Success rate 99,01% (11.000+ transaksi berhasil); retur hanya 0,99%.

Seasonality: pendapatan bergerak stabil di rentang 110K–130K. Puncak di Januari (~130K) dan Maret (~128K), koreksi Februari (~105K), lalu stabil di pertengahan tahun.


Pareto produk:
- Sweater — ~250K (18,37%)
- Celana Jeans — ~228K (16,29%)
- Kaos — ~214K (15,28%)
Trio wardrobe essential ini menyumbang 49,94% total pendapatan. Kacamata (13,79%), jaket (11,65%), dan sarung tangan (11,00%) jadi tier menengah; sepatu, scarf, tas, dan topi jauh lebih lambat.

Demografi: pembeli nyaris berimbang — Pria 47,68% vs Wanita 47,29% (Other 5,03%). Kelompok usia 30 tahun menyumbang omzet terbesar (130K+), disusul kelompok 45 dan 65 tahun (masing-masing 120K+). Rentang 20–65 tahun adalah motor ekonomi utama.
Tiga Rekomendasi Strategis
- Protect safety stock top 3 — Sweater, Jeans, Kaos menopang separuh pendapatan. Terapkan lead-time reordering ketat menjelang lonjakan Januari–Maret; stockout langsung memukul omzet bulanan.
- Marketing inklusif, target usia produktif — narasi tetap gender-netral, namun ad spend fokus ke usia 25–60 tahun dengan bundle deal untuk mengangkat AOV dari 419,7.
- Bedah akar masalah 102 retur — telusuri apakah dipicu sizing chart, keterlambatan kurir, atau payment gateway demi menuju zero-defect.
Kesimpulan
Satu prinsip terkonfirmasi: kualitas insight berbanding lurus dengan disiplin data preparation. Dari dataset penuh anomali menjadi master relasional yang solid — fondasi yang membuat dashboard Tableau tidak hanya estetis, tapi akurat dan dapat dipertanggungjawabkan.