Roadmap Belajar SQL untuk Karir Data Analyst di 2026
Blog/Karir Data/Roadmap Belajar SQL untuk Karir Data Analyst di 2026

Roadmap Belajar SQL untuk Karir Data Analyst di 2026

BimaBima
·20 Desember 2025·15 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

Terakhir diperbarui: 22 Desember 2025

TL;DR

Level 1 (Bulan 1-2): SELECT, WHERE, JOIN dasar. Level 2 (Bulan 3-4): GROUP BY, Subquery, CASE WHEN. Level 3 (Bulan 5-6): Window Functions, CTE, Query Optimization. Setelah itu fokus portfolio dan apply kerja.

Kenapa SQL Penting untuk Data Analyst?

Kalau kamu mau jadi Data Analyst, SQL itu skill nomor satu yang wajib dikuasai. Bukan Python, bukan Excel, tapi SQL.

Kenapa? Karena 90% pekerjaan Data Analyst itu ngurusin data yang ada di database. Dan cara ngobrol sama database ya pake SQL.

Hampir semua job posting Data Analyst di Indonesia minta SQL sebagai requirement utama. Coba cek aja di LinkedIn atau JobStreet. Gojek, Tokopedia, Shopee, bank-bank besar, semuanya butuh Data Analyst yang jago SQL.

Kabar baiknya, SQL itu relatively gampang dipelajari dibanding programming language lain. Syntax-nya mirip bahasa Inggris, dan konsepnya logical.

Berapa Lama Belajar SQL?

Dengan belajar konsisten 1-2 jam per hari:
- Fundamentals: 1-2 bulan
- Intermediate: 2-3 bulan
- Advanced: 2-3 bulan
- Job ready: 6-8 bulan total

Ini bukan timeline yang strict ya. Ada yang lebih cepat, ada yang butuh lebih lama. Yang penting konsisten.

Roadmap Overview

LEVEL 1: FUNDAMENTALS (Bulan 1-2)

  • SELECT, FROM, WHERE
  • ORDER BY, LIMIT
  • Operators (AND, OR, IN, BETWEEN, LIKE)
  • Basic JOINs (INNER, LEFT)
  • Aggregate Functions (COUNT, SUM, AVG)

LEVEL 2: INTERMEDIATE (Bulan 3-4)

  • GROUP BY dan HAVING
  • Subqueries
  • CASE WHEN
  • All JOINs (RIGHT, FULL, CROSS, Self)
  • Date Functions

LEVEL 3: ADVANCED (Bulan 5-6)

  • Window Functions (ROW_NUMBER, RANK, LAG)
  • Common Table Expressions (CTE)
  • Query Optimization
  • Indexing Basics
  • Real-world Analytics Queries

LEVEL 4: JOB READY

  • Portfolio Projects
  • BI Tools Integration
  • Interview Preparation
  • Apply dan Interview

Level 1: SQL Fundamentals (Bulan 1-2)

Di level ini, fokus ke basic query operations. Tujuannya adalah bisa extract data dari database.

Week 1-2: SELECT dan Filtering

Konsep yang harus dikuasai:
- SELECT untuk memilih kolom
- FROM untuk menentukan tabel
- WHERE untuk filter data
- ORDER BY untuk sorting
- LIMIT untuk membatasi hasil

Contoh query:

-- Ambil nama dan email customer dari Jakarta
SELECT nama, email
FROM customers
WHERE kota = 'Jakarta'
ORDER BY nama
LIMIT 10;

Latihan:
1. Tampilkan semua produk dengan harga di atas 100000
2. Cari customer yang mendaftar di tahun 2024
3. Urutkan orders dari yang terbaru

Week 3-4: Operators dan Conditions

Konsep yang harus dikuasai:
- AND, OR untuk multiple conditions
- IN untuk match multiple values
- BETWEEN untuk range
- LIKE untuk pattern matching
- IS NULL untuk cek null values

Contoh query:

-- Produk kategori Fashion atau Elektronik dengan harga 50rb-500rb
SELECT nama_produk, kategori, harga
FROM produk
WHERE kategori IN ('Fashion', 'Elektronik')
AND harga BETWEEN 50000 AND 500000;

-- Customer dengan email Gmail
SELECT nama, email
FROM customers
WHERE email LIKE '%@gmail.com';

Week 5-6: Basic JOINs

Konsep yang harus dikuasai:
- INNER JOIN untuk data yang match di kedua tabel
- LEFT JOIN untuk semua data dari tabel kiri

Contoh query:

-- Tampilkan orders dengan nama customer
SELECT
    o.id,
    c.nama AS customer,
    o.tanggal,
    o.total
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id;

-- Semua customer, termasuk yang belum pernah order
SELECT
    c.nama,
    COUNT(o.id) AS jumlah_order
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id
GROUP BY c.nama;

Week 7-8: Aggregate Functions

Konsep yang harus dikuasai:
- COUNT untuk menghitung jumlah
- SUM untuk menjumlahkan
- AVG untuk rata-rata
- MIN/MAX untuk nilai terkecil/terbesar
- GROUP BY untuk grouping

Contoh query:

-- Total penjualan per kategori
SELECT
    kategori,
    COUNT(*) AS jumlah_transaksi,
    SUM(total) AS total_penjualan,
    AVG(total) AS rata_rata
FROM orders o
JOIN produk p ON o.produk_id = p.id
GROUP BY kategori;

Checkpoint Level 1

Sebelum lanjut ke Level 2, pastikan kamu bisa:
- [ ] Menulis query SELECT dengan multiple columns
- [ ] Filter data dengan WHERE dan berbagai operators
- [ ] Join dua tabel dan ambil data dari keduanya
- [ ] Hitung agregasi dasar (COUNT, SUM, AVG)
- [ ] Sort dan limit hasil query

Level 2: Intermediate SQL (Bulan 3-4)

Di level ini, query kamu mulai lebih kompleks. Fokusnya adalah analytical thinking.

Week 9-10: GROUP BY dan HAVING

Konsep yang harus dikuasai:
- GROUP BY dengan multiple columns
- HAVING untuk filter hasil agregasi
- Perbedaan WHERE vs HAVING

Contoh query:

-- Kategori dengan penjualan di atas 10 juta
SELECT
    kategori,
    SUM(total) AS total_penjualan
FROM orders o
JOIN produk p ON o.produk_id = p.id
GROUP BY kategori
HAVING SUM(total) > 10000000
ORDER BY total_penjualan DESC;

Week 11-12: Subqueries

Konsep yang harus dikuasai:
- Subquery di WHERE clause
- Subquery di FROM clause (derived tables)
- Subquery di SELECT clause
- Correlated vs non-correlated subqueries

Contoh query:

-- Produk dengan harga di atas rata-rata
SELECT nama_produk, harga
FROM produk
WHERE harga > (SELECT AVG(harga) FROM produk);

-- Customer dengan order tertinggi
SELECT *
FROM customers
WHERE id = (
    SELECT customer_id
    FROM orders
    GROUP BY customer_id
    ORDER BY SUM(total) DESC
    LIMIT 1
);

Week 13-14: CASE WHEN

Konsep yang harus dikuasai:
- Simple CASE vs Searched CASE
- CASE dalam SELECT
- CASE dalam agregasi (conditional aggregation)

Contoh query:

-- Kategorisasi customer berdasarkan total belanja
SELECT
    nama,
    total_belanja,
    CASE
        WHEN total_belanja >= 10000000 THEN 'Gold'
        WHEN total_belanja >= 5000000 THEN 'Silver'
        ELSE 'Bronze'
    END AS tier
FROM (
    SELECT
        c.nama,
        SUM(o.total) AS total_belanja
    FROM customers c
    JOIN orders o ON c.id = o.customer_id
    GROUP BY c.nama
) AS customer_spending;

Week 15-16: Advanced JOINs dan Date Functions

Konsep yang harus dikuasai:
- RIGHT JOIN, FULL OUTER JOIN
- Self JOIN
- CROSS JOIN
- Date functions (EXTRACT, DATE_TRUNC, DATE_DIFF)

Contoh query:

-- Penjualan per bulan
SELECT
    DATE_TRUNC('month', tanggal) AS bulan,
    SUM(total) AS total_penjualan
FROM orders
WHERE tanggal >= '2024-01-01'
GROUP BY DATE_TRUNC('month', tanggal)
ORDER BY bulan;

-- Customer yang belum order dalam 30 hari terakhir
SELECT c.nama, MAX(o.tanggal) AS last_order
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id
GROUP BY c.nama
HAVING MAX(o.tanggal) < CURRENT_DATE - INTERVAL '30 days'
    OR MAX(o.tanggal) IS NULL;

Checkpoint Level 2

Sebelum lanjut ke Level 3, pastikan kamu bisa:
- [ ] Menulis query dengan GROUP BY dan HAVING kompleks
- [ ] Buat subquery di berbagai posisi
- [ ] Transform data dengan CASE WHEN
- [ ] Manipulasi dan filter berdasarkan tanggal
- [ ] Solve business questions dengan SQL

Level 3: Advanced SQL (Bulan 5-6)

Di level ini, kamu belajar teknik yang dipake di real analytics work.

Week 17-18: Window Functions

Konsep yang harus dikuasai:
- ROW_NUMBER, RANK, DENSE_RANK
- PARTITION BY
- LAG dan LEAD
- Running totals dengan SUM OVER

Contoh query:

-- Ranking penjualan per kategori
SELECT
    kategori,
    nama_produk,
    total_terjual,
    RANK() OVER (
        PARTITION BY kategori
        ORDER BY total_terjual DESC
    ) AS ranking
FROM product_sales;

-- Month over month growth
SELECT
    bulan,
    total_penjualan,
    LAG(total_penjualan) OVER (ORDER BY bulan) AS prev_month,
    ROUND(
        (total_penjualan - LAG(total_penjualan) OVER (ORDER BY bulan))
        * 100.0 / LAG(total_penjualan) OVER (ORDER BY bulan),
        2
    ) AS growth_pct
FROM monthly_sales;

Week 19-20: CTEs (Common Table Expressions)

Konsep yang harus dikuasai:
- Basic CTE dengan WITH clause
- Multiple CTEs
- Recursive CTE (optional)

Contoh query:

-- Analisis cohort dengan CTE
WITH first_purchase AS (
    SELECT
        customer_id,
        MIN(DATE_TRUNC('month', tanggal)) AS cohort_month
    FROM orders
    GROUP BY customer_id
),
monthly_activity AS (
    SELECT
        customer_id,
        DATE_TRUNC('month', tanggal) AS activity_month
    FROM orders
    GROUP BY customer_id, DATE_TRUNC('month', tanggal)
)
SELECT
    fp.cohort_month,
    ma.activity_month,
    COUNT(DISTINCT ma.customer_id) AS active_users
FROM first_purchase fp
JOIN monthly_activity ma ON fp.customer_id = ma.customer_id
GROUP BY fp.cohort_month, ma.activity_month
ORDER BY fp.cohort_month, ma.activity_month;

Week 21-22: Query Optimization

Konsep yang harus dikuasai:
- EXPLAIN untuk analyze query
- Indexing basics
- Query refactoring
- Avoiding common performance pitfalls

Tips Optimization:

-- Hindari SELECT *
-- BURUK
SELECT * FROM orders;

-- BAIK
SELECT id, customer_id, total FROM orders;

-- Hindari function di WHERE
-- BURUK (ga bisa pake index)
SELECT * FROM orders WHERE YEAR(tanggal) = 2024;

-- BAIK (bisa pake index)
SELECT * FROM orders
WHERE tanggal >= '2024-01-01'
AND tanggal < '2025-01-01';

-- Pake EXISTS instead of IN untuk large datasets
-- LEBIH CEPAT
SELECT * FROM customers c
WHERE EXISTS (
    SELECT 1 FROM orders o
    WHERE o.customer_id = c.id
);

Week 23-24: Real-world Analytics

Project-based learning:
- Cohort analysis
- Funnel analysis
- Customer segmentation (RFM)
- Time series analysis

Contoh: RFM Segmentation

WITH rfm AS (
    SELECT
        customer_id,
        MAX(tanggal) AS last_order,
        COUNT(*) AS frequency,
        SUM(total) AS monetary
    FROM orders
    WHERE tanggal >= CURRENT_DATE - INTERVAL '1 year'
    GROUP BY customer_id
),
rfm_scores AS (
    SELECT
        customer_id,
        NTILE(5) OVER (ORDER BY last_order) AS R,
        NTILE(5) OVER (ORDER BY frequency) AS F,
        NTILE(5) OVER (ORDER BY monetary) AS M
    FROM rfm
)
SELECT
    customer_id,
    R, F, M,
    CASE
        WHEN R >= 4 AND F >= 4 THEN 'Champions'
        WHEN R >= 4 AND F <= 2 THEN 'New Customers'
        WHEN R <= 2 AND F >= 4 THEN 'At Risk'
        WHEN R <= 2 AND F <= 2 THEN 'Lost'
        ELSE 'Regular'
    END AS segment
FROM rfm_scores;

Checkpoint Level 3

Sebelum lanjut ke job hunting, pastikan kamu bisa:
- [ ] Pake Window Functions untuk ranking dan running totals
- [ ] Struktur query kompleks dengan CTE
- [ ] Optimize query untuk performance
- [ ] Solve real analytics problems (cohort, funnel, segmentation)

Level 4: Job Ready

Sekarang fokus ke persiapan karir.

Portfolio Projects

Buat 2-3 project yang showcase skill SQL kamu:

Project 1: E-commerce Analytics Dashboard
- Dataset: Kaggle e-commerce dataset
- Deliverables: SQL queries + insights + visualization
- Metrics: Revenue, AOV, customer segments, product performance

Project 2: User Retention Analysis
- Dataset: App usage data atau buat synthetic
- Deliverables: Cohort analysis, retention curves
- Metrics: D1, D7, D30 retention, churn prediction

Project 3: Marketing Campaign Analysis
- Dataset: Marketing attribution data
- Deliverables: Funnel analysis, CAC calculation, ROI per channel

BI Tools Integration

Data Analyst juga perlu bisa connect SQL ke visualization tools:

  • Metabase - Open source, gampang dipake
  • Tableau - Industry standard
  • Looker - Google Cloud based
  • Power BI - Microsoft ecosystem

Minimal bisa salah satu. Metabase recommended buat pemula karena gratis dan SQL-centric.

Interview Preparation

Technical Interview:
- Practice SQL problems di LeetCode, HackerRank, StrataScratch
- Review common patterns: ranking, window functions, self-joins
- Prepare for live coding SQL

Behavioral Interview:
- Siapkan cerita tentang project kamu
- STAR method untuk jawab pertanyaan situational
- Tunjukkan analytical thinking process

Take-home Assignment:
- Biasanya dikasih dataset dan beberapa business questions
- Focus on clarity dan insights, bukan cuma query

Apply dan Interview

Di mana cari kerja:
- LinkedIn Jobs
- JobStreet/Indeed
- Tech company career pages (Gojek, Tokopedia, dll)
- Startup job boards (Techinasia, Glints)

Tips:
- Mulai dari posisi junior/entry-level
- Jangan takut apply meskipun ga 100% qualified
- Network dengan Data professionals di LinkedIn

Resources Belajar

Gratis

Interactive Platforms:
- SQLBolt (sqlbolt.com) - Pemula banget
- Mode Analytics SQL Tutorial - Real datasets
- PostgreSQL Tutorial (postgresqltutorial.com)

Practice:
- LeetCode SQL (Medium/Hard free)
- HackerRank SQL
- StrataScratch (beberapa free)

YouTube:
- Alex The Analyst
- Ken Jee
- Data with Mo

Berbayar

  • DataCamp SQL Track (~Rp 300rb/bulan)
  • Udemy courses (~Rp 150rb one-time)
  • LinkedIn Learning (dengan Premium)

Books

  • "Learning SQL" by Alan Beaulieu
  • "SQL for Data Scientists" by Renee Teate

Tips Belajar Efektif

1. Consistency Over Intensity

Lebih baik 1 jam per hari selama 6 bulan daripada 8 jam per hari selama 2 minggu terus burnout.

2. Learn by Doing

Jangan cuma baca atau nonton. Ketik sendiri query-nya, eksperimen, bikin error, debug.

3. Use Real Datasets

Kaggle punya banyak dataset gratis. Pake yang relevan sama interest kamu.

4. Join Community

  • Discord servers (Data Talk, SQL Learning)
  • Reddit r/SQL, r/dataanalysis
  • LinkedIn groups

5. Teach Others

Bikin blog atau LinkedIn post tentang yang udah kamu pelajari. Teaching is the best way to learn.

Common Questions

Q: Harus belajar database mana?

A: Mulai dari PostgreSQL. Syntax-nya standar dan fiturnya lengkap. Nanti kalau udah kerja, adaptasi ke MySQL atau lainnya gampang.

Q: Perlu belajar Python juga?

A: Untuk Data Analyst junior, SQL cukup. Python bisa dipelajari belakangan. Tapi kalau mau jadi Data Scientist, Python wajib.

Q: Berapa gaji Data Analyst di Indonesia?

A: Fresh graduate: Rp 5-8 juta/bulan
1-3 tahun: Rp 8-15 juta/bulan
Senior: Rp 15-30 juta/bulan
(Tergantung perusahaan dan kota)

Q: Harus punya gelar IT/Statistik?

A: Tidak wajib. Banyak Data Analyst yang self-taught atau dari background lain. Yang penting adalah skill dan portfolio.

Kesimpulan

Roadmap belajar SQL untuk jadi Data Analyst:

  1. Level 1 (Bulan 1-2): Fundamentals - SELECT, WHERE, JOIN, agregasi dasar
  2. Level 2 (Bulan 3-4): Intermediate - GROUP BY, subquery, CASE WHEN
  3. Level 3 (Bulan 5-6): Advanced - Window functions, CTE, optimization
  4. Level 4: Portfolio, BI tools, interview prep

Yang terpenting adalah konsistensi dan practice dengan real problems. SQL itu skill yang harus dilatih, bukan cuma dibaca.

6 bulan mungkin kedengeran lama, tapi percaya deh, waktu itu bakal berlalu juga. Yang bedain kamu 6 bulan dari sekarang adalah apa yang kamu lakuin hari ini.

Mulai aja dulu. Ga harus perfect. Progress > perfection.

Good luck di journey jadi Data Analyst! Kalau butuh latihan, cek nguliksql.id ya!

Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

Copyright © 2026 - All rights reserved

LINKS
SupportPricingBlogAffiliates
LEGAL
Terms of servicesPrivacy policy