
Project Overview
Kimia Farma adalah perusahaan industri farmasi pertama di Indonesia yang didirikan oleh Pemerintah Hindia Belanda tahun 1817. Nama perusahaan ini pada awalnya adalah NV Chemicalien Handle Rathkamp & Co. Berdasarkan kebijaksanaan nasionalisasi atas eks perusahaan Belanda di masa awal kemerdekaan, pada tahun 1958, Pemerintah Republik Indonesia melakukan peleburan sejumlah perusahaan farmasi menjadi PNF (Perusahaan Negara Farmasi) Bhinneka Kimia Farma. Kemudian pada tanggal 16 Agustus 1971, bentuk badan hukum PNF diubah menjadi Perseroan Terbatas, sehingga nama perusahaan berubah menjadi PT Kimia Farma (Persero).
Pada project ini menggunakan Google Big Query untuk pengolahan data dan mengintegrasikan Google Looker Studio untuk memvisualisasikan data. Dengan Looker Studio, dapat menciptakan dashboard interaktif yang menampilkan insight data secara visual, memudahkan pemahaman tren dan pola dalam data yang kompleks.
Dataset
- Tabel kf_product
- Tabel kf_kantor_cabang
- Tabel kf_final_transaction
Berikut query untuk memanggil semua data yang ada pada tabel kf_product:
SELECT * FROM `kfanalytics.kf_analytics.kf_product`;

no | data | data type | description |
---|---|---|---|
1. | product_id | string | id produk |
2. | product_name | string | nama produk |
3. | product_category | string | kategori produk |
4. | price | integer | harga |
Berikut query untuk memanggil semua data yang ada pada tabel kf_kantor_cabang:
SELECT * FROM `kfanalytics.kf_analytics.kf_kantor_cabang`;

no | data | data type | description |
---|---|---|---|
1. | branch_id | integer | id kantor cabang |
2. | branch_category | string | kategory kantor cabang |
3. | branch_name | string | nama kantor cabang |
4. | kota | string | kota |
5. | provinsi | string | provinsi |
6. | rating | float | nilai |
Berikut query untuk memanggil semua data yang ada pada tabel kf_final_transaction:
SELECT * FROM `kfanalytics.kf_analytics.kf_final_transaction`;

no | data | data type | description |
---|---|---|---|
1. | transaction_id | string | id transaksi |
2. | date | date | tanggal |
3. | branch_id | integer | id kantor cabang |
4. | customer_name | string | nama customer |
5. | product_id | string | id produk |
6. | price | integer | harga |
7. | discount_percentage | float | persentase diskon |
8. | rating | float | nilai |
Business Metrics
- Berapa total profit dan penjualan yang didapatkan ?
- Berapa total transaksi yang terjadi ?
- Berapa total pelanggan yang melakukan transaksi ?
- Berapa total profit untuk setiap kuartal dan tahun ?
- Berapa proporsi total profit untuk setiap cabang ?
- Cabang mana yang total transaksinya terbanyak berdasarkan provinsi ?
- Cabang mana yang penjualan terbanyak berdasarkan provinsi ?
- Cabang mana yang total profit terbanyak berdasarkan provinsi ?
- Cabang mana yang mendapatkan rating tertinggi namun rating transaksi rendah ?
Mengukur jumlah keseluruhan keuntungan dan pendapatan yang dihasilkan dari seluruh transaksi dalam periode tertentu. Ini penting untuk menilai kinerja finansial perusahaan.
Menghitung jumlah semua transaksi yang dilakukan dalam periode tertentu. Ini membantu memahami volume aktivitas bisnis.
Menghitung jumlah pelanggan unik yang melakukan pembelian dalam periode tertentu. Ini berguna untuk mengukur basis pelanggan aktif.
Menganalisis profitabilitas dalam interval waktu yang lebih spesifik seperti kuartal atau tahun, sehingga memungkinkan identifikasi tren musiman dan pengambilan keputusan strategis berdasarkan data historis.
Menentukan kontribusi setiap cabang terhadap total profit perusahaan, yang penting untuk mengevaluasi performa cabang secara individual.
Mengidentifikasi cabang mana di suatu provinsi yang paling banyak melakukan transaksi, yang bisa menunjukkan tingkat aktivitas atau popularitas cabang tersebut di wilayah tersebut.
Mengukur cabang mana yang memiliki volume penjualan tertinggi di tiap provinsi, yang memberikan wawasan tentang efektivitas penjualan di berbagai lokasi.
Menunjukkan cabang mana yang paling menguntungkan di masing-masing provinsi, yang penting untuk alokasi sumber daya dan strategi pengembangan.
Mengidentifikasi cabang yang mendapatkan rating pelanggan yang baik namun jumlah transaksi yang rendah, yang mungkin menunjukkan potensi yang belum tergarap sepenuhnya.
Exploratory Data Analysis (EDA)
- Membuat perhitungan percentage gross laba
- Membuat perhitungan nett_sales
- Membuat perhitungan nett_profit
- Membuat Tabel Baru final_analytics
Membuat perhitungan percentage gross laba dari tabel kf_final_transaction join dengan tabel kf_product dengan query sebagai berikut:
SELECT
CASE
WHEN p.price <= 50000 THEN 0.10
WHEN p.price BETWEEN 50000 AND 100000 THEN 0.15
WHEN p.price BETWEEN 100000 AND 300000 THEN 0.20
WHEN p.price BETWEEN 300000 AND 500000 THEN 0.25
ELSE 0.30
END AS percentage_gross_laba,
FROM `kfanalytics.kf_analytics.kf_final_transaction` ft
LEFT JOIN `kfanalytics.kf_analytics.kf_product` AS p ON ft.product_id = p.product_id;
Membuat perhitungan nett_sales dari tabel kf_final_transaction join dengan tabel kf_product dengan query sebagai berikut:
SELECT
p.price - (p.price * ft.discount_percentage) AS nett_sales
FROM `kfanalytics.kf_analytics.kf_final_transaction` ft
LEFT JOIN `kfanalytics.kf_analytics.kf_product` AS p ON ft.product_id = p.product_id;
Membuat perhitungan nett_profit dari tabel kf_final_transaction join dengan tabel kf_product dengan query sebagai berikut:
SELECT
(actual_price * percentage_gross_laba) - (actual_price - nett_sales) AS nett_profit
FROM(
SELECT
p.price AS actual_price,
CASE
WHEN p.price <= 50000 THEN 0.10
WHEN p.price BETWEEN 50000 AND 100000 THEN 0.15
WHEN p.price BETWEEN 100000 AND 300000 THEN 0.20
WHEN p.price BETWEEN 300000 AND 500000 THEN 0.25
ELSE 0.30
END AS percentage_gross_laba,
p.price - (p.price * ft.discount_percentage) AS nett_sales
FROM `kfanalytics.kf_analytics.kf_final_transaction` ft
LEFT JOIN `kfanalytics.kf_analytics.kf_product` AS p ON ft.product_id = p.product_id;
)subquery
Membuat tabel baru dari hasil join beberapa tabel yaitu kf_final_transaction, kf_product, dan kf_kantor_cabang dengan nama tabel final_analytics dengan query sebagai berikut:
CREATE TABLE kf_analytics.final_analytics AS
SELECT
transaction_id,
date,
branch_id,
branch_name,
kota,
provinsi,
rating_cabang,
customer_name,
product_id,
product_name,
actual_price,
discount_percentage,
percentage_gross_laba,
nett_sales,
(actual_price * percentage_gross_laba) - (actual_price - nett_sales) AS nett_profit,
rating_transaction
FROM(
SELECT
ft.transaction_id,
ft.date,
ft.branch_id,
kc.branch_name,
kc.kota,
kc.provinsi,
kc.rating AS rating_cabang,
ft.customer_name,
ft.product_id,
p.product_name,
p.price AS actual_price,
ft.discount_percentage,
CASE
WHEN p.price <= 50000 THEN 0.10
WHEN p.price BETWEEN 50000 AND 100000 THEN 0.15
WHEN p.price BETWEEN 100000 AND 300000 THEN 0.20
WHEN p.price BETWEEN 300000 AND 500000 THEN 0.25
ELSE 0.30
END AS percentage_gross_laba,
p.price - (p.price * ft.discount_percentage) AS nett_sales,
ft.rating AS rating_transaction
FROM `kfanalytics.kf_analytics.kf_final_transaction` AS ft
LEFT JOIN `kfanalytics.kf_analytics.kf_kantor_cabang` AS kc ON ft.branch_id = kc.branch_id
LEFT JOIN `kfanalytics.kf_analytics.kf_product` AS p ON ft.product_id = p.product_id
) subquery
Berikut query untuk memanggil semua data yang ada pada tabel final_analytics:
SELECT * FROM `kfanalytics.kf_analytics.final_analytics`;

no | data | data type | description |
---|---|---|---|
1. | transaction_id | string | id transaksi |
2. | date | date | tanggal |
3. | branch_id | integer | id kantor cabang |
4. | branch_name | string | nama kantor cabang |
5. | kota | string | kota kantor cabang |
6. | provinsi | string | provinsi kantor cabang |
7. | rating_cabang | float | nilai kantor cabang |
8. | customer_name | string | nama customer |
9. | product_id | string | id produk |
10. | product_name | string | nama produk |
11. | actual_price | integer | harga aktual |
12. | discount_percentage | float | persentase diskon |
13. | percentage_gross_laba | float | persentase gross laba |
14. | nett_sales | float | nett sales |
15. | nett_profit | float | nett profit |
16. | rating_transaction | float | nilai transaksi |
Dashboard
Berikut merupakan dashboard yang sudah dibuat berdasarkan business metric yang relevan, menyediakan wawasan mendalam yang akan membantu dalam pengambilan keputusan strategis dan meningkatkan efisiensi operasional bisnis Kimia Farma.
Business Insight
- Overview dan Trend Profit
- Total Transaksi dan Nett Sales Tiap Provinsi
- Nett Profit Tiap Provinsi
- Cabang dengan Rating Tertinggi dan Rating Trasaksi Terendah

Selama periode tahun 2020 hingga 2023, perusahaan mencatatkan kinerja finansial yang mengesankan dengan Nett Profit sebesar 72,56 Miliar dan Nett Sales mencapai 321,17 Miliar. Dalam kurun waktu ini, perusahaan memproses total 672,46 Ribu transaksi dan melayani 264,60 Ribu pelanggan. Tingkat kepuasan pelanggan cukup tinggi, ditunjukkan dengan rata-rata rating transaksi sebesar 4,0. Data ini menunjukkan stabilitas dan pertumbuhan bisnis yang positif, serta kepuasan pelanggan yang baik, yang dapat menjadi dasar untuk strategi bisnis yang lebih lanjut.
Perusahaan menunjukkan kinerja finansial yang konsisten dalam hal Nett Profit. Pada tahun 2020, Nett Profit tercatat sebesar 18,17 Miliar, sedikit menurun menjadi 18,08 Miliar pada tahun 2021. Pada tahun 2022, perusahaan berhasil meningkatkan Nett Profit menjadi 18,20 Miliar, meskipun sedikit menurun kembali menjadi 18,12 Miliar pada tahun 2023. Secara keseluruhan, Nett Profit perusahaan stabil di sekitar 18 Miliar per tahun, menunjukkan kemampuan perusahaan untuk mempertahankan profitabilitas yang solid meskipun ada fluktuasi kecil. Konsistensi ini mencerminkan manajemen keuangan yang efektif dan strategi bisnis yang terarah.
Nett Profit perusahaan menunjukkan pola yang stabil dan konsisten setiap kuartalnya. Pada tahun 2020, Nett Profit per kuartal berkisar antara 4,53 Miliar hingga 4,56 Miliar, dengan sedikit peningkatan pada kuartal terakhir. Tahun 2021 mencatat Nett Profit per kuartal yang sedikit lebih berfluktuasi, namun tetap dalam kisaran yang stabil antara 4,46 Miliar hingga 4,57 Miliar. Pada tahun 2022, perusahaan mengalami sedikit peningkatan dengan Nett Profit per kuartal yang bervariasi dari 4,48 Miliar hingga 4,60 Miliar, menandakan adanya pertumbuhan yang positif terutama pada kuartal keempat. Di tahun 2023, Nett Profit per kuartal tetap stabil dengan nilai antara 4,49 Miliar hingga 4,56 Miliar. Secara keseluruhan, perusahaan berhasil mempertahankan Nett Profit yang stabil setiap kuartal selama empat tahun terakhir, yang mencerminkan efektivitas strategi keuangan dan operasional yang diterapkan.
Perusahaan menunjukkan distribusi Nett Profit yang seimbang di antara berbagai kantor cabang. Kimia Farma - Apotek menyumbang Nett Profit sebesar 24,62 Miliar atau 33,9% dari total Nett Profit. Kimia Farma - Klinik & Apotek mencatat Nett Profit sebesar 24,01 Miliar atau 33,1%, sementara Kimia Farma - Klinik-Apotek-Laboratorium menghasilkan Nett Profit sebesar 23,93 Miliar atau 33%. Pembagian Nett Profit yang hampir merata di antara ketiga cabang ini menunjukkan bahwa semua lini bisnis perusahaan memiliki kontribusi yang signifikan terhadap keseluruhan profitabilitas. Strategi diversifikasi layanan yang diterapkan terbukti efektif dalam menghasilkan pendapatan yang stabil dan seimbang dari berbagai unit usaha.

Provinsi Jawa Barat memimpin dalam kedua metrik utama yaitu Total Transaksi dan Nett Sales. Jawa Barat mencatat total transaksi sebanyak 198.72 Ribu dan Nett Sales sebesar 94.87 Miliar. Provinsi ini secara signifikan mengungguli provinsi lainnya dalam hal volume transaksi dan nilai penjualan.
Sumatera Utara dan Jawa Tengah mengikuti di posisi kedua dan ketiga dengan Total Transaksi masing-masing 48.18 Ribu dan 46.49 Ribu, serta Nett Sales masing-masing sebesar 22.95 Miliar dan 22.25 Miliar. Jawa Timur dan Sulawesi Utara juga menunjukkan performa yang kuat, dengan total transaksi 34.77 Ribu dan 33.34 Ribu, serta Nett Sales 16.63 Miliar dan 15.90 Miliar
Provinsi lainnya dalam daftar Top 10 seperti Sumatera Barat, Aceh, Nusa Tenggara Barat, Kalimantan Timur, dan Riau menunjukkan kontribusi yang signifikan namun dengan angka yang jauh lebih rendah dibandingkan dengan Jawa Barat. Data ini mengindikasikan konsentrasi aktivitas bisnis yang tinggi di Jawa Barat, sementara provinsi lain memiliki kontribusi yang lebih kecil namun tetap penting dalam keseluruhan performa perusahaan.

Dalam analisis persebaran Nett Profit per provinsi, data menunjukkan bahwa Jawa Barat mencatatkan Nett Profit tertinggi sebesar 21,43 miliar. Diagram peta bidang yang digunakan untuk visualisasi data ini memperlihatkan bahwa Jawa Barat mendominasi pasar dengan kontribusi profit yang signifikan dibandingkan provinsi lainnya. Visualisasi ini jelas menunjukkan konsentrasi keuntungan yang tinggi di Jawa Barat, sementara provinsi lain memiliki Nett Profit yang lebih rendah.
Analisis ini menggarisbawahi kekuatan ekonomi Jawa Barat sebagai pusat utama keuntungan perusahaan, yang dapat menjadi fokus utama dalam strategi pertumbuhan dan pengembangan bisnis ke depan.

Analisis terhadap rata-rata rating cabang dan transaksi menunjukkan bahwa cabang-cabang Kimia Farma di berbagai provinsi memiliki kinerja yang sangat baik. Cabang Kimia Farma - Klinik-Apotek-Laboratorium di Pematangsiantar, Sumatera Utara, mencatatkan rata-rata rating cabang tertinggi sebesar 4,83 dan rata-rata rating transaksi sebesar 3,99. Ini menunjukkan kepuasan pelanggan yang tinggi dengan kualitas layanan cabang tersebut.
Di posisi kedua, cabang Kimia Farma - Klinik & Apotek di Jambi, Jambi, mendapatkan rata-rata rating cabang sebesar 4,77 dan rating transaksi 4,00, menunjukkan performa yang konsisten dan memuaskan. Cabang-cabang lainnya, termasuk Kimia Farma - Klinik-Apotek-Laboratorium di Batam, Kepulauan Riau (rating cabang 4,73, rating transaksi 4,00), dan Kimia Farma - Apotek di Sorong, Papua Barat (rating cabang 4,73, rating transaksi 3,99), juga menunjukkan rating yang tinggi, menandakan kualitas layanan yang baik di seluruh cabang yang terdaftar.
Rata-rata rating cabang yang stabil di kisaran 4,70 hingga 4,73 pada beberapa cabang menunjukkan bahwa Kimia Farma secara umum berhasil menjaga standar layanan yang tinggi di berbagai lokasi. Data ini tidak hanya mencerminkan keberhasilan dalam mempertahankan kepuasan pelanggan tetapi juga menyoroti potensi untuk meningkatkan layanan lebih lanjut di area dengan rating sedikit lebih rendah.