17.8 MERDEKA SALE, DISKON 98%!🇮🇩
Belajar Data Science Bersertifikat, 6 BULAN hanya Rp 100K!

0 Hari 1 Jam 5 Menit 26 Detik

Cara Membuat Cohort Analysis dengan SQL untuk Mengukur Retensi Pelanggan

Belajar Data Science di Rumah 01-September-2026
https://dqlab.id/files/dqlab/cache/78a69cdb3fa4faa96d9742ac5925d326_x_Thumbnail800.jpg

Cohort Analysis merupakan salah satu teknik analisis data yang membantu Data Analyst memahami perilaku pelanggan dari waktu ke waktu. Analisis ini dapat dilakukan menggunakan SQL secara langsung dari data transaksi untuk mengetahui berapa banyak pelanggan yang tetap aktif setelah melakukan pembelian pertama.

Cohort Analysis adalah metode analisis yang mengelompokkan pelanggan berdasarkan karakteristik atau periode tertentu, kemudian mengamati perilaku kelompok tersebut dari waktu ke waktu. Dalam analisis pelanggan, cohort biasanya ditentukan berdasarkan waktu pertama kali pelanggan melakukan transaksi. Misalnya, pelanggan yang pertama kali membeli produk pada Januari 2026 akan masuk cohort Januari 2026 juga.

Setelah cohort terbentuk, aktivitas pelanggan tersebut dapat dibandingkan pada bulan-bulan berikutnya. Dari sini, perusahaan dapat mengetahui tingkat customer retention atau kemampuan mempertahankan pelanggan. Simak lebih lanjut terkait tutorial membuat cohort analysis menggunakan SQL untuk mengukur retensi pelanggan. Ikuti langkahnya satu per satu, yuk, sahabat DQLab!

1. Menentukan Cohort Pelanggan

Langkah pertama adalah mencari tanggal transaksi pertama setiap pelanggan. Sebagai contoh menggunakan PostgreSQL, kita dapat menggunakan MIN() untuk mendapatkan transaksi pertama.


SELECT

customer_id,

MIN(order_date) AS first_purchase_date

FROM orders

GROUP BY customer_id;

Hasilnya akan menunjukkan kapan masing-masing pelanggan pertama kali melakukan pembelian. Selanjutnya, tanggal tersebut dapat diubah menjadi periode bulan menggunakan DATE_TRUNC():


SELECT

customer_id,

DATE_TRUNC('month', MIN(order_date)) AS cohort_month

FROM orders

GROUP BY customer_id;


Hasilnya dapat berupa:

customer_idcohort_month
C0012026-01-01
C0022026-01-01
C0032026-02-01

Artinya, C001 dan C002 termasuk Cohort Januari, sedangkan C003 termasuk Cohort Februari.

Baca juga: Bootcamp Data Analyst with Python & SQL


2. Menggabungkan Cohort dengan Data Transaksi

Setelah mengetahui cohort setiap pelanggan, langkah berikutnya adalah menggabungkan informasi tersebut dengan seluruh transaksi pelanggan.


WITH customer_cohort AS (

SELECT

customer_id,

DATE_TRUNC('month', MIN(order_date)) AS cohort_month

FROM orders

GROUP BY customer_id

)


SELECT

o.customer_id,

o.order_date,

c.cohort_month

FROM orders o

JOIN customer_cohort c

ON o.customer_id = c.customer_id;


Sekarang setiap transaksi memiliki informasi mengenai cohort pelanggan. Contohnya:

customer_idorder_datecohort_month
C0012026-01-052026-01-01
C0012026-02-102026-01-01
C0012026-03-122026-01-01
C0022026-01-152026-01-01
C0022026-03-202026-01-01


3. Menghitung Cohort Index

Cohort Index menunjukkan berapa bulan setelah pelanggan pertama kali melakukan transaksi. Misalnya:

  • Bulan 0 = bulan pertama pelanggan melakukan transaksi

  • Bulan 1 = satu bulan setelah transaksi pertama

  • Bulan 2 = dua bulan setelah transaksi pertama dan seterusnya.

Di PostgreSQL, perhitungannya dapat dilakukan menggunakan AGE():


SELECT

customer_id,

cohort_month,

DATE_TRUNC('month', order_date) AS purchase_month, (

EXTRACT(YEAR FROM AGE(

DATE_TRUNC('month', order_date),

cohort_month

)) * 12

+

EXTRACT(MONTH FROM AGE(

DATE_TRUNC('month', order_date),

cohort_month

))

) AS cohort_index

FROM cohort_data;


Hasilnya kurang lebih seperti berikut:

customer_idcohort_monthpurchase_monthcohort_index
C001JanJan0
C001JanFeb1
C001JanMar2
C002JanJan0
C002JanMar2


Baca juga: Data Analyst vs Data Scientist


4. Menghitung Jumlah Pelanggan Aktif

Berikutnya, hitung jumlah pelanggan unik setiap cohort dan periode aktivitas.

SELECT

cohort_month,

cohort_index,

COUNT(DISTINCT customer_id) AS active_customers

FROM cohort_data

GROUP BY

cohort_month,

cohort_index

ORDER BY

cohort_month,

cohort_index;


COUNT(DISTINCT customer_id) penting digunakan agar satu pelanggan yang melakukan beberapa transaksi dalam bulan yang sama tetap dihitung sebagai satu pelanggan aktif.

5. Menghitung Customer Retention

Setelah jumlah pelanggan aktif diperoleh, retenton dapat dihitung dengan membandingkan jumlah pelanggan aktif pada periode tertentu dengan jumlah pelanggan pada cohort awal. Secara sederhana dapat dirumuskan sebagai berikut:


Retention Rate = (Jumlah Pelanggan Aktif pada Periode n / Jumlah Pelanggan pada Bulan 0) × 100%


Dalam SQL, kita dapat menggunakan MAX() dengan conditional aggregation untuk mendapatkan jumlah pelanggan pada bulan 0. Contohnya:


WITH cohort_size AS (

SELECT

cohort_month,

COUNT(DISTINCT customer_id) AS cohort_customers

FROM cohort_data

WHERE cohort_index = 0

GROUP BY cohort_month

)


SELECT

c.cohort_month,

c.cohort_index,

c.active_customers,

ROUND(

c.active_customers * 100.0 / s.cohort_customers,

2

) AS retention_rate

FROM cohort_activity c

JOIN cohort_size s

ON c.cohort_month = s.cohort_month

ORDER BY

c.cohort_month,

c.cohort_index;


Hasilnya dapat berbentuk sebagai berikut:

CohortIndexActive CustomersRetenton
Jan 20260100100%
Jan 202616060%
Jan 202624545%
Jan 202633535%
Feb 20260120100%
Feb 202617865%
Feb 202625848,3%

6. Membuat Cohort Retention Table

Agar lebih mudah dibaca, hasil analisis dapat dibuat dalam bentuk matriks. Contohnya:

CohortM0M1M2M3
Jan 2026100%60%45%35%
Feb 2026100%65%48%-
Mar 2026100%70%--

Tabel tersebut memberikan gambaran visual mengenai perubahan retention setiap cohort. Jika angka retention turun tajam dari M0 ke M1. Misalnya, dari 100% dari 40%. Dalam hal ini, perusahaan perlu mengevaluasi mengapa banyak pelanggan tidak kembali melakukan transaksi pada bulan berikutnya.

Cohort Analysis membantu Data Analyst memahami retensi pelanggan berdasarkan waktu sejak pelanggan pertama kali bertransaksi. Proses tersebut dapat dilakukan secara sistematis mulai dari menentukan cohort month, menghitung cohort index, mengidentifikasi pelanggan aktif, hingga menghitung retention rate menggunakan SQL.

Kombinasi SQL dan Cohort Analysis juga membuat data transaksi yang awalnya hanya berupa kumpulan tanggal dan ID pelanggan dapat diubah menjadi insight yang lebih bermakna. Hasilnya dapat digunakan untuk mengevaluasi customer retention, membandingkan performa antar-cohort, dan membantu perusahaan menentukan strategi untuk mempertahankan pelanggan. Bagi Data Analyst, kemampuan melakukan cohort analysis menggunakan SQL menjadi salah satu keterampilan yang berguna karena analisis ini menghubungkan kemampuan teknis mengolah data dengan kebutuhan bisnis untuk memahami perilaku pelanggan.

FAQ

1. Apa itu Cohort Analysis?

Cohort Analysis adalah metode analisis yang mengelompokkan pelanggan berdasarkan periode tertentu, seperti bulan pertama melakukan transaksi, lalu mengamati perilaku mereka dari waktu ke waktu.

2. Mengapa Cohort Analysis digunakan untuk mengukur retensi pelanggan?

Cohort Analysis membantu mengetahui persentase pelanggan yang tetap aktif setelah transaksi pertama serta melihat kapan pelanggan mulai berhenti melakukan transaksi.

3. Apakah Cohort Analysis bisa dilakukan menggunakan SQL?

Bisa. SQL dapat digunakan untuk menentukan cohort, menghitung cohort index, jumlah pelanggan aktif, hingga retention rate.


Kalau kamu tertarik untuk berkarir sebagai Data Analyst yang menguasai teknik Data Cleaning secara handal, ini adalah saat yang tepat! Yuk, segera Sign Up ke DQLab! Di sini, kamu bisa belajar dari dasar hingga tingkat lanjut dengan materi dan tools yang relevan dengan kebutuhan industri, bahkan tanpa latar belakang IT. Belajar kapan saja dan di mana saja dengan fleksibilitas penuh, serta didukung oleh fitur eksklusif Ask AI Chatbot 24 jam!

Tidak cuma itu, DQLab juga sudah menerapkan metode pembelajaran HERO (Hands-On, Experiential Learning & Outcome-based) yang dirancang ramah untuk pemula, dan telah terbukti mencetak talenta unggulan yang sukses berkarier di bidang data. Jadi, mau tunggu apa lagi?

Jadi, tunggu apa lagi? Segera persiapkan diri untuk menguasai keterampilan di bidang data dan teknologi dengan subscribe modul premium, atau ikuti Bootcamp Data Analyst with SQL and Python sekarang juga!


Penulis: Reyvan Maulid

Cohort Analysis dengan SQL membantu Data Analyst mengukur retensi pelanggan berdasarkan waktu sejak transaksi pertama. Tutorial ini membahas cara menentukan cohort, menghitung cohort index, mengidentifikasi pelanggan aktif, hingga mendapatkan retention rate. Melalui analisis ini, data transaksi dapat diolah menjadi insight untuk memahami perilaku pelanggan dan mengevaluasi strategi customer retention.

Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Daftar Gratis & Mulai Belajar

Mulai perjalanan karier datamu bersama DQLab

Daftar dengan Google

Sudah punya akun? Kamu bisa Sign in disini