Monday, February 16, 2026

Menjadi Data Analyst dari Nol (Part 22)

 


GROUP BY Lebih Dalam dengan SQL untuk Data Analyst (Panduan Praktis + Studi Kasus)

Kalau kamu belajar SQL untuk Data Analyst, maka GROUP BY adalah salah satu senjata paling wajib kamu kuasai.

Bukan cuma buat “ngitung total”, tapi juga untuk:

✅ Membuat ringkasan data
✅ Mencari insight bisnis
✅ Menyusun laporan
✅ Menjawab pertanyaan stakeholder
✅ Dasar pembuatan dashboard

Di artikel ini, kita bahas GROUP BY lebih dalam, lengkap dengan contoh real-world yang sering muncul di pekerjaan Data Analyst.

Apa Itu GROUP BY di SQL?

Secara sederhana:

GROUP BY digunakan untuk mengelompokkan baris data berdasarkan satu atau beberapa kolom.

Biasanya dipakai bersama fungsi agregat seperti:

  • SUM()

  • COUNT()

  • AVG()

  • MAX()

  • MIN()

Contoh simpel:

SELECT category, SUM(sales) FROM orders GROUP BY category;

Artinya:

👉 Data dikelompokkan per category
👉 Lalu dijumlahkan nilai sales-nya

Hasilnya bukan lagi data mentah, tapi summary table.

Inilah mindset utama Data Analyst.

Kenapa GROUP BY Penting untuk Data Analyst?

Di dunia nyata, jarang sekali kita butuh data mentah 100%.

Yang dibutuhkan biasanya:

  • Total penjualan per hari

  • Jumlah transaksi per customer

  • Revenue per produk

  • Average order per region

Semua itu jawabannya:

🔥 GROUP BY

Tanpa ini, kamu cuma jadi “pengumpul data”, bukan analyzer.

Contoh Kasus Real: Dataset Penjualan

Misalnya kita punya tabel sales:

order_idorder_dateproductregionrevenue

1. Total Revenue per Produk

SELECT product, SUM(revenue) AS total_revenue FROM sales GROUP BY product;

Ini menjawab pertanyaan:

👉 Produk mana paling menghasilkan uang?

Skill ini wajib buat reporting.

2. Jumlah Transaksi per Region

SELECT region, COUNT(order_id) AS total_orders FROM sales GROUP BY region;

Dipakai untuk:

  • Analisa performa area

  • Evaluasi sales territory

3. Average Revenue per Hari

SELECT order_date, AVG(revenue) AS avg_revenue FROM sales GROUP BY order_date;

Dipakai untuk:

  • Trend harian

  • Monitoring performa bisnis

GROUP BY Lebih dari Satu Kolom

Ini yang sering bikin pemula bingung.

Contoh:

SELECT region, product, SUM(revenue) FROM sales GROUP BY region, product;

Artinya:

👉 Dikelompokkan per region DAN product

Hasilnya:

  • Produk A di Jakarta

  • Produk A di Bandung

  • Produk B di Jakarta
    dst…

Ini disebut multi-dimensional aggregation.

Sangat sering dipakai di dashboard.

Hubungan GROUP BY dengan HAVING

Ingat ini baik-baik:

  • WHERE → filter sebelum grouping

  • HAVING → filter setelah grouping

Contoh:

SELECT product, SUM(revenue) AS total_revenue FROM sales GROUP BY product HAVING SUM(revenue) > 1000000;

Artinya:

👉 Tampilkan hanya produk dengan total revenue di atas 1 juta.

Ini powerful banget buat:

  • Cari top product

  • High performer only

  • Anomali detection

Kesalahan Umum Saat Pakai GROUP BY

❌ Kolom SELECT tidak ikut GROUP BY

SELECT product, region, SUM(revenue) FROM sales GROUP BY product;

Ini ERROR.

Kalau kolom muncul di SELECT, maka harus:

  • Masuk GROUP BY
    ATAU

  • Dibungkus fungsi agregat

❌ Lupa alias

Selalu biasakan pakai alias:

SUM(revenue) AS total_revenue

Biar hasil query readable.

Pola Pikir Data Analyst Saat Pakai GROUP BY

Jangan cuma mikir syntax.

Biasakan bertanya:

  • Saya mau jawab pertanyaan bisnis apa?

  • Dimensi apa yang ingin dianalisa?

  • Metric apa yang dihitung?

Contoh:

👉 Dimensi: product
👉 Metric: revenue

Maka:

GROUP BY product

Itulah cara berpikir Data Analyst.

Penutup

Kalau kamu serius mau jadi Data Analyst, maka:

🔥 GROUP BY bukan sekadar SQL command
🔥 Tapi alat berpikir analitis

Begitu kamu benar-benar paham ini, kamu akan:

✅ Lebih cepat bikin insight
✅ Lebih siap interview
✅ Lebih pede bikin dashboard
✅ Lebih paham struktur data

Baca selengkapnya

Friday, February 13, 2026

Menjadi Data Analyst dari Nol (Part 21)


 

Filtering Data SQL: Perbedaan WHERE vs HAVING (Wajib Dipahami Data Analyst)

Kalau kamu lagi belajar SQL untuk Data Analyst, ada dua keyword yang kelihatannya mirip tapi fungsinya beda jauh:

👉 WHERE
👉 HAVING

Banyak pemula ketuker pakainya — dan ini sering jadi jebakan di technical test.

Di artikel ini kita bahas:

✅ Apa itu WHERE
✅ Apa itu HAVING
✅ Perbedaan WHERE vs HAVING
✅ Contoh nyata
✅ Kapan harus pakai yang mana

Santai… kita kupas pelan-pelan 🔥

Apa Itu WHERE?

WHERE digunakan untuk memfilter data sebelum proses agregasi.

Artinya:

👉 Data difilter dulu
👉 Baru dihitung (SUM, COUNT, AVG, dll)

Contoh:

Misalnya kita punya tabel sales:

customerregionamount
AJakarta100
BBandung200
CJakarta300

Kalau kita mau ambil transaksi dari Jakarta saja:

SELECT * FROM sales WHERE region = 'Jakarta';

Hasil:

customerregionamount
AJakarta100
CJakarta300

👉 WHERE bekerja di level baris (row).

Apa Itu HAVING?

HAVING digunakan untuk memfilter hasil agregasi.

Artinya:

👉 Data dihitung dulu
👉 Baru difilter

HAVING biasanya dipakai barengan dengan:

  • GROUP BY

  • SUM()

  • COUNT()

  • AVG()

Contoh:

Kita mau lihat region yang total penjualannya lebih dari 300:

SELECT region, SUM(amount) AS total_sales FROM sales GROUP BY region HAVING SUM(amount) > 300;

Hasil:

regiontotal_sales
Jakarta400

👉 HAVING bekerja setelah GROUP BY.

Perbedaan WHERE vs HAVING (Ringkas & Jelas)

WHEREHAVING
Filter sebelum agregasiFilter setelah agregasi
Bisa tanpa GROUP BYBiasanya pakai GROUP BY
Tidak bisa pakai SUM/COUNTBisa pakai SUM/COUNT
Level barisLevel hasil grup

Kalau mau disingkat:

🧠 WHERE = filter data mentah
🧠 HAVING = filter hasil perhitungan

Contoh Kombinasi WHERE + HAVING (Real Case)

Misalnya:

👉 Kita mau ambil transaksi tahun 2024
👉 Lalu cari customer dengan total belanja > 500

SELECT customer, SUM(amount) AS total_spent FROM sales WHERE year = 2024 GROUP BY customer HAVING SUM(amount) > 500;

Urutannya:

  1. WHERE → filter tahun 2024

  2. GROUP BY → grup per customer

  3. SUM → hitung total

  4. HAVING → filter hasil total

Ini pola yang sering banget muncul di dunia kerja Data Analyst.

Kesalahan Umum Pemula

❌ Pakai WHERE untuk agregasi:

WHERE SUM(amount) > 500

Ini pasti error.

Karena:

👉 WHERE belum tahu hasil SUM
👉 SUM baru ada setelah GROUP BY
👉 Maka harus pakai HAVING

Kesimpulan

Kalau kamu masih bingung, ingat satu kalimat ini:

🔥 WHERE untuk filter data awal
🔥 HAVING untuk filter hasil perhitungan

Kalau sudah paham ini, 50% soal SQL filtering langsung aman 😎

Kalau mau, next article kita lanjut:

✅ GROUP BY lebih dalam
✅ JOIN untuk Data Analyst
✅ SQL case study versi real perusahaan
✅ SQL interview question + solusi

Baca selengkapnya

Tuesday, February 10, 2026

Menjadi Data Analyst dari Nol (Part 20)

 


Handling NULL di SQL (Wajib Dikuasai Data Analyst Pemula)

Dalam pekerjaan sebagai Data Analyst, kita hampir pasti akan bertemu dengan data kosong atau NULL value.

NULL bukan sekadar “kosong”.

NULL artinya:

❌ nilai tidak tersedia
❌ data belum diinput
❌ informasi hilang

Kalau tidak ditangani dengan benar, NULL bisa bikin:

  • hasil agregasi salah

  • insight melenceng

  • dashboard error

  • report jadi tidak akurat

Karena itu, handling NULL adalah skill fundamental Data Analyst.

🧠 Apa Itu NULL di SQL?

NULL berarti tidak ada nilai sama sekali.

Contoh:

customerrevenue
A1000
BNULL
C500

Customer B bukan revenue = 0.
Tapi revenue = UNKNOWN.

Ini beda besar.

❌ Kesalahan Umum Pemula

Banyak pemula menulis:

SELECT * FROM sales WHERE revenue = NULL;

Ini SALAH.

SQL tidak membaca NULL sebagai nilai biasa.

✅ Cara Benar Mengecek NULL

Gunakan:

IS NULL

atau

IS NOT NULL

Contoh:

SELECT * FROM sales WHERE revenue IS NULL;

🔧 Mengganti NULL Dengan Nilai Default (COALESCE)

Sering kali kita ingin mengganti NULL jadi 0 atau teks tertentu.

Gunakan:

COALESCE(column, value)

Contoh:

SELECT customer, COALESCE(revenue,0) AS revenue_clean FROM sales;

Jika revenue NULL → otomatis jadi 0.

📊 Handling NULL Saat Aggregation

Tanpa handling NULL:

SELECT SUM(revenue) FROM sales;

Bisa menghasilkan NULL.

Lebih aman:

SELECT SUM(COALESCE(revenue,0)) FROM sales;

Ini best practice.

🧹 Filtering Data Kosong

Kadang kita ingin buang record yang NULL:

SELECT * FROM sales WHERE customer IS NOT NULL;

💡 Studi Kasus Real Data Analyst

Misal lo mau hitung total sales, tapi beberapa baris revenue NULL.

Solusi:

SELECT SUM(COALESCE(revenue,0)) AS total_sales FROM sales;

Ini memastikan semua NULL dianggap 0.

✅ Ringkasan Handling NULL

KebutuhanSQL
Cek NULLIS NULL
Cek tidak NULLIS NOT NULL
Ganti NULLCOALESCE
Aggregation amanSUM(COALESCE())

🎯 Kenapa Ini Penting Untuk Karier Data Analyst?

Dalam dunia kerja:

  • raw data hampir selalu kotor

  • NULL muncul dari berbagai source

  • BI tools sensitif terhadap NULL

Kalau lo tidak menguasai ini:

❌ report salah
❌ dashboard error
❌ insight tidak dipercaya

Makanya handling NULL termasuk core skill Data Analyst profesional.

next part series kita bisa lanjut:

👉 Filtering Data (WHERE vs HAVING)
👉 CASE WHEN
👉 Data Cleaning SQL
👉 Window Function dasar

Baca selengkapnya

Monday, February 09, 2026

Menjadi Data Analyst dari Nol (Part 19)


 

Exploratory Data Analysis (EDA) Menggunakan SQL — Panduan Praktis untuk Data Analyst Pemula

Exploratory Data Analysis (EDA) adalah salah satu tahap paling penting dalam workflow seorang Data Analyst.

Di fase ini, kita tidak langsung membuat model atau dashboard — tapi fokus untuk:

✅ Memahami struktur data
✅ Menemukan pola awal
✅ Mendeteksi data anomali
✅ Menggali insight bisnis

Dan kabar baiknya:

👉 Semua itu bisa dilakukan hanya dengan SQL.

Di artikel ini, kita akan membahas bagaimana melakukan EDA menggunakan SQL secara praktis dengan contoh nyata seperti yang sering muncul di pekerjaan Data Analyst.

📌 Apa Itu Exploratory Data Analysis (EDA)?

EDA adalah proses eksplorasi data mentah untuk menjawab pertanyaan seperti:

  • Berapa jumlah data?

  • Ada nilai kosong?

  • Produk mana paling laku?

  • Bagaimana tren penjualan?

  • Apakah ada data duplikat?

  • Outlier atau transaksi aneh?

Tujuan EDA bukan bikin visualisasi cantik dulu — tapi memahami data sedalam mungkin.

Biasanya EDA dilakukan sebelum:

  • Data cleaning

  • Feature engineering

  • Dashboarding

  • Machine learning

🗂 Contoh Dataset (Sales Manufaktur)

Misalkan kita punya tabel sales_data dengan kolom:

  • order_id

  • order_date

  • product

  • category

  • quantity

  • revenue

  • customer_id

1️⃣ Cek Struktur Awal Dataset

Langkah pertama: lihat isi data.

SELECT * FROM sales_data LIMIT 10;

Tujuannya:

  • Cek format tanggal

  • Validasi kolom numerik

  • Pastikan data masuk akal

2️⃣ Hitung Jumlah Total Data

SELECT COUNT(*) AS total_rows FROM sales_data;

Ini penting untuk tahu skala data yang akan dianalisa.

3️⃣ Cek Missing Value

SELECT COUNT(*) - COUNT(product) AS missing_product, COUNT(*) - COUNT(revenue) AS missing_revenue FROM sales_data;

Kalau banyak NULL:

👉 Bisa jadi data belum lengkap
👉 Perlu cleaning

4️⃣ Statistik Dasar

SELECT MIN(revenue) AS min_rev, MAX(revenue) AS max_rev, AVG(revenue) AS avg_rev FROM sales_data;

Dari sini kita mulai paham range nilai transaksi.

5️⃣ Top Produk Berdasarkan Penjualan

SELECT product, SUM(revenue) AS total_sales FROM sales_data GROUP BY product ORDER BY total_sales DESC LIMIT 10;

Ini langsung kasih insight bisnis:

🔥 Produk terlaris
🔥 Fokus inventory
🔥 Kandidat promo

6️⃣ Analisis Kategori

SELECT category, SUM(revenue) AS revenue FROM sales_data GROUP BY category ORDER BY revenue DESC;

Biasanya dipakai untuk:

  • Menentukan prioritas kategori

  • Segmentasi market

7️⃣ Tren Penjualan Bulanan

SELECT strftime('%Y-%m', order_date) AS month, SUM(revenue) AS total_sales FROM sales_data GROUP BY month ORDER BY month;

Hasilnya bisa langsung dipakai buat chart line.

8️⃣ Deteksi Outlier Transaksi

SELECT * FROM sales_data WHERE revenue > 10000000;

Tujuannya:

  • Cek transaksi abnormal

  • Hindari error di dashboard

9️⃣ Customer Paling Aktif

SELECT customer_id, COUNT(order_id) AS total_orders FROM sales_data GROUP BY customer_id ORDER BY total_orders DESC LIMIT 10;

Berguna untuk:

  • Loyalty program

  • Retargeting

✅ Kenapa EDA SQL Itu Penting?

Karena di dunia kerja:

🚫 Data jarang bersih
🚫 Jarang langsung siap pakai

SQL memungkinkan kita:

✔ Analisa langsung di database
✔ Cepat eksplor jutaan row
✔ Insight tanpa export Excel

EDA = pondasi semua analisis.

Kalau salah EDA → insight ikut salah.

🧠 Workflow EDA SQL ala Data Analyst

Biasanya urutannya:

  1. Preview data

  2. Hitung jumlah row

  3. Cek missing value

  4. Statistik dasar

  5. Grouping utama

  6. Trend waktu

  7. Outlier detection

  8. Simpan insight


🚀 Penutup

Exploratory Data Analysis bukan cuma langkah awal — tapi fondasi utama seorang Data Analyst.

Dengan SQL, lo bisa:

✅ Mengenal data
✅ Menemukan masalah
✅ Menghasilkan insight
✅ Siap lanjut ke dashboard / modeling

Tanpa EDA → analisis cuma tebak-tebakan.

Next Part 🔥

Di artikel berikutnya kita akan bahas:

👉 Handling NULL
👉 Remove duplicate
👉 Standarisasi data

Baca selengkapnya

Friday, February 06, 2026

Menjadi Data Analyst dari Nol (Part 18)

 


Data Cleaning & Data Transformation Menggunakan SQL (Studi Kasus Nyata Data Analyst)

(lanjutan dari Part 2 – Studi Kasus SQL Data Analyst)

Pendahuluan

Di dunia nyata, tugas Data Analyst jarang langsung “query → insight”.

Yang paling sering terjadi justru:

👉 data berantakan
👉 duplikat
👉 format tidak konsisten
👉 nilai kosong
👉 kolom tidak rapi

Inilah fase yang sering memakan 60–70% waktu kerja seorang Data Analyst:
Data Cleaning & Data Transformation.

Di Part 3 ini, kita akan lanjutkan studi kasus manufaktur sebelumnya, dan fokus ke:

✅ membersihkan data menggunakan SQL
✅ menyiapkan dataset agar siap dianalisis
✅ membangun mindset “real-world Data Analyst”

Dataset Awal (Raw Data)

Misalnya kita punya tabel:

manufacturing_sales_raw

Contoh masalah umum:

• Order ID duplikat
• Customer name tidak konsisten (uppercase/lowercase)
• Qty kosong
• Revenue berbentuk text
• Tanggal format berbeda
• Produk sama tapi penamaan beda

Ini kondisi normal di lapangan.

1️⃣ Menghapus Data Duplikat

Langkah pertama: identifikasi duplikat.

SELECT order_id, COUNT(*) FROM manufacturing_sales_raw GROUP BY order_id HAVING COUNT(*) > 1;

Jika sudah ketemu, kita buat CTE:

WITH cte AS ( SELECT *, ROW_NUMBER() OVER(PARTITION BY order_id ORDER BY order_date) rn FROM manufacturing_sales_raw ) DELETE FROM cte WHERE rn > 1;

👉 Result: hanya 1 baris per order_id.

2️⃣ Standarisasi Nama Customer & Produk

SQL sangat powerful untuk normalisasi text:

UPDATE manufacturing_sales_raw SET customer_name = UPPER(customer_name);

Untuk produk:

UPDATE manufacturing_sales_raw SET product = TRIM(product);

Tujuannya supaya:

• “Widget A”
• “widget a”
• “Widget A ”

jadi satu versi saja.

3️⃣ Menangani Nilai Kosong (NULL)

Qty kosong? Revenue kosong?

UPDATE manufacturing_sales_raw SET qty = 0 WHERE qty IS NULL;

Revenue:

UPDATE manufacturing_sales_raw SET revenue = qty * price WHERE revenue IS NULL;

Mindset penting:

👉 jangan biarkan NULL tanpa alasan bisnis.

4️⃣ Convert Kolom Text Menjadi Numeric

Kasus umum:

Revenue tersimpan sebagai TEXT.

CAST(revenue AS INTEGER)

atau

CAST(revenue AS FLOAT)

Ini penting supaya bisa dipakai untuk agregasi.

5️⃣ Membuat Kolom Baru (Derived Column)

Contoh bikin kolom total_sales:

ALTER TABLE manufacturing_sales_raw ADD COLUMN total_sales FLOAT; UPDATE manufacturing_sales_raw SET total_sales = qty * price;

Sekarang dataset sudah siap untuk analisis.

6️⃣ Final Clean Dataset

Kita simpan hasil bersih:

CREATE TABLE manufacturing_sales_clean AS SELECT order_id, order_date, customer_name, product, qty, price, qty * price AS total_sales FROM manufacturing_sales_raw;

Inilah table yang biasanya dipakai untuk:

👉 dashboard
👉 reporting
👉 business insight

Mindset Data Analyst: Bukan Cuma Query

Banyak pemula berpikir Data Analyst itu:

“SELECT, JOIN, selesai.”

Padahal real job:

✅ memahami struktur data
✅ membersihkan data
✅ standarisasi
✅ validasi angka
✅ baru analisis

SQL hanyalah alat.

Yang paling penting: cara berpikir.

Kesimpulan

Di Part 3 ini kita belajar bahwa:

✔ Data mentah hampir selalu kotor
✔ Cleaning adalah bagian terbesar dari pekerjaan DA
✔ SQL bisa digunakan bukan hanya untuk query, tapi juga transformasi data
✔ Dataset yang rapi = insight yang akurat


Next Part 🚀

Di Part 4 nanti kita akan masuk ke:

👉 Exploratory Data Analysis (EDA) menggunakan SQL
👉 mencari tren penjualan
👉 produk terlaris
👉 customer paling profitable
👉 insight bisnis nyata

Baca selengkapnya