Analisis konsentrasi revenue dengan SQL dapat membantu bisnis mengetahui apakah pendapatan terlalu bergantung pada produk atau cabang tertentu. Revenue yang tinggi belum tentu menunjukkan kondisi bisnis yang aman jika sebagian besar pendapatan hanya berasal dari satu sumber.
Dalam artikel ini, saya menggunakan dataset Supermarket Sales Cleaned untuk melakukan analisis konsentrasi revenue dengan SQL. Analisis tidak hanya melihat Product line dengan revenue terbesar, tetapi juga membandingkan kontribusi setiap kategori, jumlah transaksi, serta distribusi revenue berdasarkan Branch dan City.
📌 Fokus Artikel
Analisis ini tidak hanya mencari kategori dengan revenue terbesar, tetapi juga melihat seberapa besar ketergantungan bisnis terhadap kategori dan cabang tertentu menggunakan Business Question dan SQL.
📊 Mengapa Konsentrasi Revenue Perlu Diperhatikan?
Dalam analisis bisnis, revenue biasanya menjadi salah satu indikator utama untuk melihat performa penjualan. Namun, melihat angka revenue secara keseluruhan saja belum cukup. Kita juga perlu mengetahui dari mana revenue tersebut berasal.
Bayangkan sebuah bisnis memiliki banyak kategori produk, tetapi sebagian besar pendapatannya hanya berasal dari satu kategori. Kondisi tersebut dapat menjadi masalah apabila permintaan terhadap kategori tersebut menurun. Sebaliknya, revenue yang tersebar di beberapa kategori dapat membuat sumber pendapatan bisnis menjadi lebih beragam.
Hal yang sama dapat terjadi pada bisnis dengan beberapa cabang. Jika satu lokasi menyumbang revenue jauh lebih besar dibandingkan lokasi lain, performa bisnis secara keseluruhan dapat menjadi lebih sensitif terhadap kondisi cabang tersebut.
🤔 Pertanyaan Utama
Apakah revenue pada dataset ini benar-benar bergantung pada kategori atau cabang tertentu, atau justru tersebar secara relatif merata?
💻 Mengapa SQL Digunakan untuk Menjawab Business Question?
Dataset transaksi memiliki banyak baris yang akan sulit dianalisis jika diperiksa satu per satu. SQL membantu mengubah data transaksi menjadi informasi yang lebih terstruktur melalui fungsi seperti COUNT(), SUM(), AVG(), GROUP BY, dan ORDER BY.
Namun, query tidak seharusnya dibuat hanya karena ingin menggunakan SQL. Analisis dimulai dari masalah bisnis, kemudian dibuat menjadi Business Question. Setelah itu, kolom yang dibutuhkan ditentukan dan query digunakan untuk menghasilkan jawaban berdasarkan data.
🔍 Alur Analisis
Business Problem → Business Question → Menentukan Data → SQL Query → Hasil → Insight → Keputusan Bisnis
🚀 Mulai Praktik
Pada praktik berikut, saya menggunakan dataset Supermarket Sales Cleaned untuk menjawab beberapa Business Question menggunakan SQL.
💰 Berapa Besar Revenue yang Dihasilkan Seluruh Transaksi?
❓ Business Question
Berapa jumlah transaksi dan total revenue yang dihasilkan oleh seluruh data?
Sebelum membandingkan kategori dan cabang, saya perlu mengetahui ukuran keseluruhan dataset terlebih dahulu. Nilai Total digunakan sebagai dasar untuk menghitung revenue karena menunjukkan nilai setiap transaksi.
📸 Praktik 1 — Menghitung Total Revenue
Query berikut digunakan untuk menghitung jumlah transaksi dan total revenue dari seluruh dataset.
SELECT
COUNT(*) AS total_transaksi,
SUM(Total) AS total_revenue
FROM supermarket_sales;Hasil query menunjukkan bahwa dataset memiliki 1.000 transaksi dengan total revenue sebesar 322.966,75. Nilai tersebut kemudian digunakan sebagai dasar untuk menghitung kontribusi setiap kategori dan cabang.

💡 Insight dari Data
Total revenue menjadi baseline untuk melihat seberapa besar kontribusi masing-masing kategori dan cabang terhadap keseluruhan pendapatan.
🏷️ Kategori Mana yang Menghasilkan Revenue Terbesar?
❓ Business Question
Product line mana yang menghasilkan revenue terbesar dan bagaimana perbandingannya dengan kategori lain?
Setelah mengetahui total revenue, analisis dilanjutkan dengan mengelompokkan transaksi berdasarkan Product line. Langkah ini diperlukan untuk mengetahui kategori mana yang memiliki kontribusi terbesar terhadap pendapatan.
📸 Praktik 2 — Membandingkan Revenue Product Line
Query berikut mengelompokkan transaksi berdasarkan Product line dan menghitung jumlah transaksi, quantity, serta revenue.
SELECT
`Product line`,
COUNT(*) AS jumlah_transaksi,
SUM(Quantity) AS total_quantity,
SUM(Total) AS revenue
FROM supermarket_sales
GROUP BY `Product line`
ORDER BY revenue DESC;Hasil query menunjukkan bahwa Food and beverages berada di posisi pertama dengan revenue sebesar 56.144,84. Berikutnya terdapat Sports and travel sebesar 55.122,83 dan Electronic accessories sebesar 54.337,53.
Sementara itu, Health and beauty berada di posisi terendah dengan revenue sebesar 49.193,74. Walaupun terdapat perbedaan ranking, jarak revenue antar kategori ternyata tidak terlalu jauh.

💡 Insight dari Data
Food and beverages menjadi kategori dengan revenue tertinggi, tetapi selisihnya dengan kategori lain relatif kecil. Hal ini menjadi indikasi awal bahwa revenue tidak terkonsentrasi secara ekstrem pada satu kategori.
📊 Seberapa Besar Kontribusi Setiap Kategori terhadap Revenue?
❓ Business Question
Berapa persen kontribusi masing-masing Product line terhadap total revenue?
Ranking revenue belum cukup untuk mengukur konsentrasi. Oleh karena itu, setiap revenue kategori dibandingkan dengan total revenue untuk mendapatkan persentase kontribusinya.
📸 Praktik 3 — Menghitung Kontribusi Revenue
Query berikut menghitung revenue setiap kategori sekaligus persentasenya terhadap total revenue.
WITH revenue_kategori AS (
SELECT
`Product line`,
SUM(Total) AS revenue
FROM supermarket_sales
GROUP BY `Product line`
)
SELECT
`Product line`,
ROUND(revenue, 2) AS revenue,
ROUND(
revenue /
(SELECT SUM(Total)
FROM supermarket_sales) * 100,
2
) AS kontribusi_persen
FROM revenue_kategori
ORDER BY revenue DESC;Berdasarkan hasil analisis, Food and beverages menyumbang sekitar 17,38% dari total revenue. Sports and travel berada di sekitar 17,07%, sedangkan Electronic accessories sekitar 16,82%.
Kategori dengan kontribusi terendah adalah Health and beauty dengan sekitar 15,23%. Perbedaan antara kontribusi tertinggi dan terendah hanya sekitar 2,15 poin persentase.

📌 Temuan Penting
Enam kategori memiliki kontribusi revenue yang berada pada kisaran 15–17%. Artinya, tidak ada satu kategori yang menguasai sebagian besar revenue secara ekstrem.
🥇 Apakah Tiga Kategori Teratas Menguasai Sebagian Besar Revenue?
❓ Business Question
Apakah sebagian besar revenue hanya berasal dari tiga Product line dengan performa tertinggi?
Analisis Top 3 digunakan untuk melihat konsentrasi revenue secara lebih luas. Jika tiga kategori teratas menyumbang hampir seluruh pendapatan, maka bisnis perlu lebih memperhatikan ketergantungan tersebut.
WITH ranking_kategori AS (
SELECT
`Product line`,
SUM(Total) AS revenue,
ROW_NUMBER() OVER (
ORDER BY SUM(Total) DESC
) AS ranking
FROM supermarket_sales
GROUP BY `Product line`
)
SELECT
SUM(revenue) AS revenue_top_3,
ROUND(
SUM(revenue) /
(SELECT SUM(Total)
FROM supermarket_sales) * 100,
2
) AS kontribusi_top_3_persen
FROM ranking_kategori
WHERE ranking <= 3;Hasil perhitungan menunjukkan bahwa tiga kategori dengan revenue terbesar menyumbang sekitar 51,28% dari total revenue.

💭 Bagaimana Membacanya?
Angka 51,28% berarti lebih dari setengah revenue berasal dari tiga kategori teratas. Namun, ketiganya memiliki kontribusi yang relatif berdekatan, sehingga tidak terdapat satu kategori yang menjadi sumber revenue secara dominan.
🛒 Apakah Kategori dengan Transaksi Terbanyak Juga Menghasilkan Revenue Terbesar?
❓ Business Question
Apakah jumlah transaksi yang tinggi selalu menghasilkan revenue yang tinggi?
Jumlah transaksi sering digunakan untuk melihat kategori yang paling sering dibeli. Namun, frekuensi transaksi tidak selalu sejalan dengan revenue karena setiap transaksi dapat memiliki nilai yang berbeda.
Mau Kuasai Analisis Konsentrasi Revenue dengan SQL Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
SELECT
`Product line`,
COUNT(*) AS jumlah_transaksi,
SUM(Total) AS revenue,
ROUND(
SUM(Total) / COUNT(*),
2
) AS rata_rata_nilai_transaksi
FROM supermarket_sales
GROUP BY `Product line`
ORDER BY revenue DESC;Hasil query menunjukkan bahwa Fashion accessories memiliki jumlah transaksi terbanyak, yaitu 178 transaksi. Namun, kategori tersebut bukan penyumbang revenue terbesar.
Sebaliknya, Food and beverages memiliki 174 transaksi tetapi menghasilkan revenue yang lebih tinggi. Hal ini menunjukkan bahwa jumlah transaksi saja tidak cukup untuk menentukan kategori yang paling berkontribusi terhadap pendapatan.

💡 Insight dari Data
Untuk membaca performa kategori dengan lebih tepat, jumlah transaksi dan nilai revenue perlu dilihat secara bersamaan.
🌏 Apakah Revenue Bisnis Terkonsentrasi pada Cabang Tertentu?
❓ Business Question
Apakah terdapat cabang yang memberikan kontribusi revenue jauh lebih besar dibandingkan cabang lainnya?
Setelah melihat distribusi berdasarkan kategori, analisis dilanjutkan ke dimensi geografis. Dataset memiliki informasi Branch dan City yang dapat digunakan untuk membandingkan performa masing-masing lokasi.
Tujuannya bukan hanya mencari cabang dengan revenue terbesar, tetapi melihat apakah bisnis memiliki ketergantungan yang tinggi terhadap satu lokasi.
📸 Praktik 6 — Menganalisis Revenue Berdasarkan Cabang
Query berikut membandingkan jumlah transaksi dan revenue setiap Branch serta menghitung kontribusinya terhadap total revenue.
SELECT
Branch,
City,
COUNT(*) AS jumlah_transaksi,
SUM(Total) AS revenue,
ROUND(
SUM(Total) /
(SELECT SUM(Total)
FROM supermarket_sales) * 100,
2
) AS kontribusi_persen
FROM supermarket_sales
GROUP BY Branch, City
ORDER BY revenue DESC;Hasil analisis menunjukkan bahwa Branch C di Naypyitaw memiliki kontribusi revenue sekitar 34,24%. Branch A di Yangon dan Branch B di Mandalay masing-masing berada di sekitar 32,88%.

🌏 Insight Geografis
Branch C memang memiliki revenue tertinggi, tetapi perbedaannya dengan Branch A dan Branch B relatif kecil. Dengan demikian, tidak terlihat adanya ketergantungan ekstrem terhadap satu cabang.
⚖️ Seberapa Besar Perbedaan Performa Antar Cabang?
❓ Business Question
Apakah perbedaan revenue antar cabang disebabkan oleh jumlah transaksi atau nilai transaksi yang berbeda?
Revenue dapat memberikan gambaran umum, tetapi belum menjelaskan penyebab perbedaan performa. Karena itu, jumlah transaksi dan rata-rata nilai transaksi juga dibandingkan untuk mendapatkan konteks yang lebih lengkap.
SELECT
Branch,
City,
ROUND(SUM(Total), 2) AS revenue,
ROUND(AVG(Total), 2) AS rata_rata_transaksi,
COUNT(*) AS jumlah_transaksi
FROM supermarket_sales
GROUP BY Branch, City
ORDER BY revenue DESC;Dengan perbandingan tersebut, performa cabang tidak hanya dilihat dari besar revenue. Jumlah transaksi dapat menunjukkan aktivitas penjualan, sedangkan rata-rata nilai transaksi membantu melihat nilai yang dihasilkan dari setiap transaksi.
🔎 Apakah Kategori Produk yang Kuat Berbeda di Setiap Cabang?
❓ Business Question
Apakah Product line yang menghasilkan revenue tinggi selalu sama pada setiap cabang?
Analisis sebelumnya melihat kategori dan cabang secara terpisah. Agar lebih dalam, kedua dimensi tersebut dapat digabungkan. Dengan cara ini, kita dapat mengetahui kategori produk yang memiliki performa kuat pada masing-masing cabang.
📸 Praktik 7 — Menggabungkan Branch dan Product Line
Query berikut melihat revenue setiap Product line pada masing-masing cabang.
SELECT
Branch,
City,
`Product line`,
SUM(Total) AS revenue,
COUNT(*) AS jumlah_transaksi
FROM supermarket_sales
GROUP BY
Branch,
City,
`Product line`
ORDER BY
Branch,
revenue DESC;Hasil query memberikan perspektif yang lebih detail karena performa produk dapat dilihat di dalam masing-masing cabang. Informasi ini dapat membantu mengetahui apakah kategori tertentu memiliki pola penjualan yang berbeda berdasarkan lokasi.

🧠 Kenapa Analisis Ini Lebih Berbobot?
Analisis tidak lagi hanya menjawab “produk mana yang paling tinggi?” tetapi mulai melihat hubungan antara produk dan lokasi. Hasilnya dapat menjadi dasar untuk mempertimbangkan strategi stok, promosi, dan evaluasi performa cabang.
📈 Apakah Revenue pada Dataset Ini Sudah Terkonsentrasi?
Berdasarkan seluruh analisis, revenue pada dataset ini relatif tersebar di enam kategori produk. Food and beverages menjadi kategori dengan kontribusi tertinggi sekitar 17,38%, sedangkan Health and beauty berada di sekitar 15,23%.
Selisih tersebut hanya sekitar 2,15 poin persentase. Artinya, tidak terdapat satu kategori yang secara ekstrem menguasai revenue.
Pola serupa juga terlihat pada cabang. Branch C menyumbang sekitar 34,24%, sedangkan Branch A dan Branch B masing-masing sekitar 32,88%. Perbedaannya relatif kecil.
✅ Temuan Utama
Revenue pada dataset ini tidak menunjukkan ketergantungan ekstrem terhadap satu Product line maupun satu Branch. Sumber pendapatan relatif tersebar di beberapa kategori dan lokasi.
🎯 Apa Dampaknya bagi Pengambilan Keputusan Bisnis?
Hasil analisis memberikan beberapa pertimbangan bagi pengelola bisnis. Kategori dengan revenue tinggi tetap perlu dipantau, tetapi strategi tidak sebaiknya hanya berfokus pada satu kategori karena kontribusi antar kategori relatif berdekatan.
Dari sisi cabang, Branch C memiliki revenue tertinggi tetapi tidak menunjukkan dominasi yang ekstrem. Hal ini berarti evaluasi bisnis dapat dilakukan secara lebih seimbang dengan tetap memperhatikan performa seluruh lokasi.
Selain itu, jumlah transaksi tidak dapat digunakan sebagai satu-satunya indikator performa. Perbedaan antara jumlah transaksi dan revenue menunjukkan bahwa volume transaksi dan nilai transaksi perlu dianalisis secara bersamaan.
🎯 Business Takeaway
Jangan hanya bertanya “kategori mana yang paling laku?”. Pertanyaan yang lebih penting adalah “seberapa besar bisnis bergantung pada kategori tersebut?” Dengan melihat revenue, jumlah transaksi, nilai transaksi, serta distribusi cabang secara bersamaan, keputusan bisnis dapat dibuat berdasarkan data yang lebih lengkap.
🧠 Apa yang Bisa Dipelajari dari Analisis Ini?
Analisis ini menunjukkan bahwa SQL dapat digunakan lebih dari sekadar mengambil data dari database. Fungsi agregasi, GROUP BY, CTE, dan window function dapat digunakan untuk mengubah data transaksi menjadi informasi yang relevan dengan kebutuhan bisnis.
Yang paling penting adalah cara berpikirnya. Analisis tidak dimulai dari query, tetapi dari pertanyaan bisnis. Setelah pertanyaan ditentukan, data yang relevan dipilih dan SQL digunakan untuk menghasilkan bukti dari data tersebut.
🔗 Dari Data Menjadi Keputusan
Data Transaksi → SQL → Business Question → Insight → Evaluasi Risiko → Keputusan Bisnis
📌 Kesimpulan
Kesimpulannya, revenue yang tinggi tidak otomatis berarti bisnis memiliki sumber pendapatan yang aman. Konsentrasi revenue perlu diperhatikan untuk mengetahui seberapa besar bisnis bergantung pada kategori produk atau cabang tertentu.
Berdasarkan analisis terhadap 1.000 transaksi pada dataset Supermarket Sales Cleaned, enam Product line memiliki kontribusi revenue yang relatif merata. Food and beverages menjadi kategori tertinggi dengan kontribusi sekitar 17,38%, sedangkan Health and beauty berada di sekitar 15,23%.
Tiga kategori dengan revenue terbesar menyumbang sekitar 51,28% dari total revenue. Namun, kontribusi tersebut terbagi relatif merata sehingga tidak terdapat satu kategori yang mendominasi secara ekstrem.
Dari sisi lokasi, Branch C di Naypyitaw memberikan kontribusi terbesar sekitar 34,24%, sedangkan Branch A dan Branch B masing-masing sekitar 32,88%. Perbedaan yang kecil tersebut menunjukkan bahwa revenue juga tidak terlalu bergantung pada satu cabang.
Dengan demikian, Business Question yang awalnya berfokus pada konsentrasi revenue dapat berkembang menjadi analisis yang lebih luas: kategori apa yang menghasilkan revenue, seberapa besar kontribusinya, bagaimana distribusinya antar cabang, dan apa yang dapat dipelajari bisnis dari pola tersebut.
📊 Inti Analisis
Revenue yang sehat bukan hanya tentang seberapa besar nilainya, tetapi juga tentang seberapa tersebar sumber pendapatannya. SQL membantu melihat pola tersebut secara lebih terukur sehingga hasil analisis dapat digunakan sebagai dasar pengambilan keputusan bisnis.
✍️ Penulis: Noviana Putri Yuliani
Mau Kuasai Analisis Konsentrasi Revenue dengan SQL Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
