Friday, February 20, 2026

Menjadi Data Analyst dari Nol (Part 25)

    

 


CASE WHEN Advanced pada SQL: Nested, Multiple Condition, dan Studi Kasus Dunia Kerja

Kalau di Part 1 kita sudah membahas dasar CASE WHEN, sekarang kita masuk level berikutnya.

Di artikel ini kita akan bahas:

  • Nested CASE WHEN

  • Multiple condition (AND / OR)

  • CASE WHEN dengan beberapa kolom

  • Studi kasus dunia kerja (real business case)

  • Tips optimasi performa

Artikel ini cocok untuk kamu yang ingin naik level dari SQL dasar ke SQL intermediate–advanced.

1️⃣ Nested CASE WHEN (CASE di dalam CASE)

Nested CASE WHEN digunakan ketika kondisi bercabang lebih kompleks.

Contoh Studi Kasus

Misalnya kita ingin mengkategorikan customer berdasarkan:

  • total_sales

  • status membership

Tabel:

customer_nametotal_salesmembership
Andi7000000Gold
Budi7000000Silver
Sari2000000Gold

Query:

SELECT customer_name, total_sales, membership, CASE WHEN total_sales >= 5000000 THEN CASE WHEN membership = 'Gold' THEN 'High Priority VIP' ELSE 'High Value Regular' END WHEN total_sales >= 2000000 THEN 'Medium Value' ELSE 'Low Value' END AS customer_segment FROM sales;

📌 Digunakan untuk segmentasi bertingkat.

2️⃣ CASE WHEN dengan Multiple Condition (AND / OR)

Ini sering dipakai dalam real reporting.

Contoh: Menentukan Bonus Sales

Kriteria:

  • total_sales ≥ 10 juta

  • jumlah_transaksi ≥ 50

SELECT sales_name, total_sales, total_transaction, CASE WHEN total_sales >= 10000000 AND total_transaction >= 50 THEN 'Bonus Eligible' ELSE 'No Bonus' END AS bonus_status FROM sales_performance;

📌 Sangat umum dipakai dalam KPI dashboard.

3️⃣ CASE WHEN dengan Beberapa Kolom

Kadang kita perlu evaluasi lebih dari satu kolom sekaligus.

Contoh: Status Pembayaran

| invoice_id | due_date | payment_date |

SELECT invoice_id, CASE WHEN payment_date IS NULL THEN 'Unpaid' WHEN payment_date <= due_date THEN 'On Time' ELSE 'Late Payment' END AS payment_status FROM invoices;

📌 Ini sering dipakai di sistem accounting dan dashboard finance.

4️⃣ Real Business Case: Segmentasi Customer untuk Dashboard

Sekarang kita masuk studi kasus yang realistis.

Misalnya kamu ingin membuat dashboard di:

  • Microsoft Power BI

  • Looker Studio

Dan kamu ingin membuat segmentasi:

  • Platinum → ≥ 20 juta

  • Gold → ≥ 10 juta

  • Silver → ≥ 5 juta

  • Bronze → < 5 juta

Query:

SELECT customer_id, SUM(total_sales) AS total_revenue, CASE WHEN SUM(total_sales) >= 20000000 THEN 'Platinum' WHEN SUM(total_sales) >= 10000000 THEN 'Gold' WHEN SUM(total_sales) >= 5000000 THEN 'Silver' ELSE 'Bronze' END AS customer_tier FROM sales GROUP BY customer_id;

🔥 Ini yang biasanya dipakai sebelum data masuk ke dashboard.

5️⃣ Tips Optimasi CASE WHEN (Advanced Level)

✅ 1. Hindari Perhitungan Berulang

Jangan ulang SUM(total_sales) berkali-kali.
Lebih baik gunakan subquery atau CTE.

✅ 2. Gunakan CTE untuk Query Kompleks

WITH revenue_summary AS ( SELECT customer_id, SUM(total_sales) AS total_revenue FROM sales GROUP BY customer_id ) SELECT customer_id, total_revenue, CASE WHEN total_revenue >= 20000000 THEN 'Platinum' WHEN total_revenue >= 10000000 THEN 'Gold' WHEN total_revenue >= 5000000 THEN 'Silver' ELSE 'Bronze' END AS tier FROM revenue_summary;

📌 Ini jauh lebih clean dan scalable.

6️⃣ Kesalahan Umum yang Harus Dihindari

❌ Urutan kondisi salah
❌ Tidak menggunakan ELSE
❌ Logika tumpang tindih
❌ Query terlalu panjang tanpa CTE

Kesimpulan

CASE WHEN Advanced pada SQL memungkinkan kamu untuk:

  • Membuat segmentasi kompleks

  • Mengolah data sebelum masuk dashboard

  • Membuat KPI logic langsung dari database

  • Mengurangi beban transformasi di BI tools

Kalau kamu ingin naik level sebagai Data Analyst, menguasai Nested CASE dan Multiple Condition adalah skill wajib.


FAQ Section 

FAQ: CASE WHEN Advanced SQL

1. Apa itu Nested CASE WHEN?

Nested CASE WHEN adalah penggunaan CASE di dalam CASE untuk menangani logika kondisi bertingkat.

2. Kapan menggunakan AND atau OR dalam CASE WHEN?

Digunakan ketika kondisi evaluasi melibatkan lebih dari satu kriteria, seperti target penjualan dan jumlah transaksi.

3. Apakah CASE WHEN bisa digunakan dengan GROUP BY?

Ya, sangat umum digunakan bersama GROUP BY untuk membuat segmentasi berdasarkan hasil agregasi.

4. Apakah CASE WHEN mempengaruhi performa query?

Jika terlalu kompleks atau berulang tanpa optimasi, bisa memperlambat query. Gunakan CTE atau subquery untuk performa lebih baik.

NEXT kita lanjut:

  • Artikel Part 3: CASE WHEN vs COALESCE vs NULLIF

  • Artikel SQL untuk KPI Dashboard

  • Artikel SQL untuk Interview Data Analyst

  • Atau kita bikin satu seri khusus “SQL untuk Real Corporate Case”

Baca selengkapnya

Thursday, February 19, 2026

Menjadi Data Analyst dari Nol (Part 24)

 

CASE WHEN pada SQL: Pengertian, Fungsi, dan Contoh Lengkap untuk Data Analyst

Kalau kamu sedang belajar SQL untuk menjadi Data Analyst, maka memahami CASE WHEN adalah hal yang wajib. Fitur ini sering digunakan untuk membuat logika kondisi di dalam query, mirip seperti IF-ELSE pada Excel atau bahasa pemrograman lain.

Di artikel ini kita akan bahas:

  • Apa itu CASE WHEN pada SQL

  • Fungsi dan kegunaannya

  • Contoh penggunaan di SELECT

  • Contoh penggunaan di ORDER BY

  • Contoh penggunaan dengan agregasi

  • Tips optimasi untuk Data Analyst

Apa Itu CASE WHEN pada SQL?

CASE WHEN adalah ekspresi logika dalam SQL yang digunakan untuk memberikan kondisi tertentu dan menghasilkan nilai berbeda berdasarkan kondisi tersebut.

Secara sederhana:

CASE WHEN di SQL = IF / ELSE di Excel atau VBA

Digunakan untuk:

  • Klasifikasi data

  • Membuat kategori baru

  • Membersihkan data

  • Transformasi data sebelum masuk dashboard

  • Membuat conditional label di report

Struktur Dasar CASE WHEN

Sintaks dasar:

SELECT column_name, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE result_default END AS alias_name FROM table_name;

Contoh 1: CASE WHEN pada SELECT

Misalkan kita punya tabel penjualan:

customer_nametotal_sales
Andi5000000
Budi1500000
Sari8000000

Kita ingin mengkategorikan customer berdasarkan total_sales.

SELECT customer_name, total_sales, CASE WHEN total_sales >= 5000000 THEN 'High Value' WHEN total_sales >= 2000000 THEN 'Medium Value' ELSE 'Low Value' END AS customer_category FROM sales;

Hasilnya:

customer_nametotal_salescustomer_category
Andi5000000High Value
Budi1500000Low Value
Sari8000000High Value

Contoh 2: CASE WHEN dengan Agregasi (SUM)

Ini sering dipakai Data Analyst untuk membuat summary report.

SELECT SUM( CASE WHEN total_sales >= 5000000 THEN total_sales ELSE 0 END ) AS total_high_value_sales FROM sales;

Query ini menghitung total sales hanya untuk kategori High Value.

Contoh 3: CASE WHEN pada ORDER BY

Kadang kita ingin mengurutkan data dengan prioritas tertentu.

SELECT customer_name, total_sales FROM sales ORDER BY CASE WHEN total_sales >= 5000000 THEN 1 WHEN total_sales >= 2000000 THEN 2 ELSE 3 END;

Ini akan mengurutkan dari High Value → Medium → Low.

Perbedaan CASE WHEN dan IF di SQL

Beberapa database seperti MySQL punya fungsi IF(), tetapi:

  • CASE WHEN lebih universal

  • Bisa dipakai di semua major database

  • Lebih fleksibel untuk banyak kondisi

Database yang mendukung CASE WHEN:

  • MySQL

  • PostgreSQL

  • Microsoft SQL Server

  • Oracle Database

Best Practice Menggunakan CASE WHEN

Sebagai Data Analyst, perhatikan hal ini:

1️⃣ Urutan Kondisi Itu Penting

SQL membaca dari atas ke bawah. Jika kondisi pertama sudah terpenuhi, kondisi berikutnya tidak akan dicek.

2️⃣ Selalu Gunakan ELSE

Agar tidak menghasilkan NULL yang tidak diinginkan.

3️⃣ Jangan Terlalu Banyak Kondisi

Kalau terlalu kompleks, lebih baik:

  • Buat subquery

  • Atau gunakan tabel referensi (lookup table)

Kapan CASE WHEN Digunakan dalam Dunia Kerja?

Dalam praktik nyata, CASE WHEN sering dipakai untuk:

  • Membuat segmentasi customer

  • Menentukan status pembayaran (Paid / Unpaid)

  • Klasifikasi produk (Best Seller / Slow Moving)

  • Membuat flag data (Valid / Invalid)

  • Membersihkan data sebelum masuk Power BI atau Looker Studio

Buat lo yang lagi bangun sistem reporting dari Excel → SQL → Power BI, CASE WHEN ini salah satu senjata utama 🔥

Kesimpulan

CASE WHEN pada SQL adalah fitur penting untuk membuat logika kondisi langsung di dalam query. Dengan memahami cara kerjanya, kamu bisa:

  • Membuat data lebih terstruktur

  • Membuat kategori otomatis

  • Menyederhanakan proses reporting

  • Meningkatkan kualitas analisis

Kalau kamu serius ingin menjadi Data Analyst profesional, kuasai CASE WHEN sampai benar-benar paham.

Baca selengkapnya

Wednesday, February 18, 2026

Menjadi Data Analyst dari Nol (Part 23)

 

JOIN pada SQL untuk Data Analyst: Panduan Lengkap + Contoh Nyata

Kalau kamu sedang belajar menjadi Data Analyst, maka memahami JOIN pada SQL adalah skill wajib.
Di dunia kerja nyata, hampir tidak pernah data berada dalam satu tabel saja — biasanya tersebar di banyak tabel.

Nah, di sinilah JOIN berperan penting.

Artikel ini akan membahas:

✅ Apa itu JOIN
✅ Kenapa JOIN penting untuk Data Analyst
✅ Jenis-jenis JOIN
✅ Contoh kasus real
✅ Tips praktis penggunaan JOIN

Apa Itu JOIN di SQL?

JOIN adalah perintah SQL yang digunakan untuk menggabungkan data dari dua atau lebih tabel berdasarkan kolom yang saling berhubungan.

Biasanya kolom penghubung ini berupa:

  • customer_id

  • order_id

  • product_id

Contoh sederhana:

Kita punya:

Table customers

customer_idcustomer_name
1Andi
2Budi

Table orders

order_idcustomer_idtotal
101150000
102275000

Kalau mau tahu siapa beli apa, kita butuh JOIN.

Kenapa JOIN Penting untuk Data Analyst?

Sebagai Data Analyst, kamu hampir pasti akan:

  • Gabungkan data sales + customer

  • Gabungkan transaksi + produk

  • Gabungkan invoice + area

Tanpa JOIN:

❌ Insight tidak lengkap
❌ Dashboard tidak akurat
❌ Reporting jadi manual

Dengan JOIN:

✅ Data terhubung
✅ Analisis lebih dalam
✅ Reporting otomatis

Di tools SQL populer yang dikembangkan oleh perusahaan seperti Microsoft dan Oracle, konsep JOIN ini selalu menjadi fondasi utama query.

Jenis-Jenis JOIN yang Wajib Kamu Kuasai

1️⃣ INNER JOIN (yang paling sering dipakai)

Mengambil data yang cocok di kedua tabel.

SELECT customers.customer_name, orders.total FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id;

Artinya:

👉 hanya tampilkan customer yang punya order.

2️⃣ LEFT JOIN

Ambil SEMUA data dari tabel kiri, walaupun tidak punya pasangan di kanan.

SELECT customers.customer_name, orders.total FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;

Biasanya dipakai untuk:

  • Cari customer yang belum transaksi

  • Cari produk yang belum terjual

3️⃣ RIGHT JOIN

Kebalikan LEFT JOIN (jarang dipakai di dunia nyata).

4️⃣ FULL JOIN

Ambil semua data dari kedua tabel, cocok atau tidak.

Tidak semua database support FULL JOIN.

Studi Kasus Nyata (Data Analyst Style)

Misalnya kamu punya:

Table sales

| invoice | customer_id | amount |

Table customers

| customer_id | area |

Kalau mau tahu:

👉 total penjualan per area

Query-nya:

SELECT c.area, SUM(s.amount) AS total_sales FROM sales s JOIN customers c ON s.customer_id = c.customer_id GROUP BY c.area;

Ini contoh JOIN yang sering muncul di:

  • Dashboard Power BI

  • Looker Studio

  • Reporting Excel

Tips JOIN untuk Pemula

🔥 Selalu cek primary key & foreign key
🔥 Biasakan pakai alias tabel (s, c, dll)
🔥 Pastikan tipe data kolom sama
🔥 Test JOIN dulu sebelum agregasi
🔥 Jangan takut pakai LEFT JOIN buat cari missing data

Kesimpulan

JOIN adalah nyawa SQL untuk Data Analyst.

Kalau kamu sudah paham JOIN:

✅ Bisa gabung banyak tabel
✅ Bisa bikin insight kompleks
✅ Siap masuk dunia kerja data

Kalau belum paham JOIN:

❌ Mentok di satu tabel
❌ Analisis terbatas
❌ Dashboard kurang meaningful

Baca selengkapnya

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