Segmentasi wilayah merupakan langkah penting dalam strategi bisnis. Dalam industri coffee chain , memahami variasi performa penjualan (Sales), keuntungan (Profit), dan biaya produksi (COGS) antar wilayah sangat penting untuk pengambilan keputusan strategis. Analisis segmentasi berbasis K-Means Clustering dapat membantu mengelompokkan wilayah-wilayah dengan karakteristik serupa, sehingga perusahaan dapat mengidentifikasi wilayah-wilayah yang perlu dilakukan optimasi atau investasi lebih lanjut.
Metode K-Means Clustering dipilih karena kemampuannya dalam mengelompokkan data numerik secara efisien untuk mengetahui pola dan karakteristik di masing-masing wilayah berdasarkan kinerja keuangan mereka (Sales, Profit, dan COGS). Dengan pendekatan ini, hasil segmentasi wilayah yang didapatkan akan memberikan wawasan berharga bagi strategi pemasaran, perencanaan distribusi, dan pengambilan keputusan strategis.
Dataset yang digunakan dalam analisis ini berisi informasi penjualan dan kinerja keuangan yang tercatat untuk berbagai wilayah di Amerika Serikat.
Variabel-variabel yang digunakan dalam analisis ini meliputi:
| Variabel | Tipe | Deskripsi |
|---|---|---|
| State | Kategorik | Nama negara bagian di Amerika Serikat sebagai tempat transaksi. Variabel ini berperan sebagai penanda geografis yang akan dikelompokkan berdasarkan karakteristik kinerja keuangannya. |
| Sales | Numerik | Total nilai penjualan (dalam USD) yang tercatat di masing-masing State. |
| Profit | Numerik | Keuntungan bersih yang dihasilkan dari penjualan setelah dikurangi dengan biaya produksi (COGS). |
| COGS | Numerik | Total biaya barang yang terjual, yang mencakup biaya produksi atau pengadaan barang yang dijual (Cost of Goods Sold) |
Data ini akan dianalisis menggunakan teknik K-Means Clustering untuk mengelompokkan wilayah berdasarkan kesamaan dari ketiga variabel numerik tersebut. Sebelum dilakukan clustering, data akan terlebih dahulu diproses untuk memastikan bahwa tidak ada nilai yang hilang dan dilakukan standarisasi pada variabel-variabel tersebut untuk memastikan bahwa perbedaan skala antara variabel tidak mempengaruhi hasil analisis.
Metode K-Means bertujuan untuk meminimalkan jarak total antara data dan pusat klaster mereka. Rumus umum dari fungsi objektif K-Means adalah:
\[ J = \sum_{i=1}^{k} \sum_{x \in C_i} \|x - \mu_i\|^2 \]
Di mana:
Proses K-Means secara iteratif memperbarui posisi centroid dan pembagian data ke klaster hingga fungsi objektif \(J\) mencapai nilai minimum.
library(readxl)
library(dplyr)
library(ggplot2)
library(cluster)
library(factoextra)
library(scales)
library(knitr)
library(tidyr)
Berikut adalah library yang akan digunakan untuk membantu dalam pemrograman ini agar lebih cepat dan efisien.
data<-read_excel("Coffee Chain Datasets.xlsx")
Untuk mengimport file data dari Excel ke R dapat menggunakan fungsi read excel dari library (readxl), yang kemudian disimpan dalam variabel “Coffee_Chain_Datasets”.
selected_data <- data %>%
select(State, Profit, Sales, COGS)
Memilah kolom variabel yang akan digunakan ke dalam selected_data. Variabel yang akan digunakan ada 4, yaitu State, Profit, sales, dan COGS.
summary(selected_data)
Melihat gambaran data secara keseluruhan menggunakan fungsi summary.
state_avg <- selected_data %>%
group_by(State) %>%
summarise(
Profit = mean(Profit, na.rm = TRUE),
Sales = mean(Sales, na.rm = TRUE),
COGS = mean(COGS, na.rm = TRUE)
)
kable(state_avg, caption="Rata-rata Profit, Sales, dan COGS per State")
Melihat Rata-rata dari profit, Sales, dan COGS tiap State yang ada.
state_scaled <- state_avg %>%
mutate(across(Profit:COGS, scale))
state_scaled
Normalisasi atau Standarisasi data dilakukan agar variabel numerik dari Profit, Sales, dan COGS memiliki satuan atau skala yang sama. Hal ini penting karena K-Means Clustering sensitif terhadap skala.
cluster_data<-state_scaled %>% select (-State)
Menghapus kolom State karena state adalah data kategorik dan tidak dibutuhkan dalam proses clustering.
Metode jarak yang digunakan dalam analisis ini adalah Jarak Euclidean, yang umum digunakan dalam algoritma K-Means karena mampu mengukur kemiripan antar objek berdasarkan jarak geometris.
Rumus umum jarak Euclidean antara dua titik data \(x\) dan \(y\) dalam ruang berdimensi \(n\) adalah:
\[ d(x, y) = \sqrt{\sum_{i=1}^{n}(x_i - y_i)^2} \]
Di mana:
Semakin kecil nilai \(d(x, y)\), semakin mirip kedua objek; dan sebaliknya, semakin besar nilai jaraknya, semakin berbeda.
clusterdata <- cluster_data
rownames(clusterdata) <- state_scaled$State
distance <- get_dist(clusterdata)
fviz_dist(distance, gradient = list(low = "green", mid = "white", high = "red"))
Fungsi rownames bekerja untuk mengatur nama baris sesuai dengan nama State agar mudah dibaca. Kemudian fungsi get_dist berfungsi untuk menghitung jarak Euclidean antar data yang kemudian hasilnya divisualisasikan menggunakan fungsi fviz_dist.
fviz_nbclust(cluster_data, kmeans, method = "wss") +
labs(title = "Elbow Method untuk Menentukan k")
Metode Elbow digunakan untuk menentukan jumlah cluster terbaik atau nilai optimal k dengan melihat titik “lekukan” pada grafik.
set.seed(123)
kmeans_result <- kmeans(cluster_data, centers = 3, nstart = 25)
kmeans_result
state_clustered <- state_avg %>%
mutate(Cluster = factor(kmeans_result$cluster))
Proses clustering dimulai dengan menetapkan seed agar hasil bisa direproduksi. Clustering dilakukan dengan 3 cluster Clustering dilakukan dengan mencoba 25 inisialisasi awal untuk memilih hasil terbaik. Hasil terbaik dari proses clustering ditambahkan pada data asli untuk menambahkan label cluster.
state_clustered %>%
arrange(Cluster, State) %>%
group_by(Cluster) %>%
summarise(State_List = paste(State, collapse = ", ")) %>%
kable(caption = "Daftar State dalam Tiap Cluster")
Tabel yang berisi pembagian Kluster dan nama State yang menempati tiap clusternya.
kable(as.data.frame(kmeans_result$centers), caption = "Koordinat Centroid Tiap Cluster")
Menampilkan koordinat centroid setiap kulster, yang merupakan nilai tengah (mean) dari setiap variabel pada masing-masing cluster.
sil <- silhouette(kmeans_result$cluster, dist(cluster_data))
fviz_silhouette(sil)
Metode siluet digunakan untuk mengevaluasi sejauh mana data cocok dengan cluster. Nilai siluet dekat dengan 1 menunjukkan cluster baik, nilai negatif menunjukkan data salah cluster.
state_clustered %>%
group_by(Cluster) %>%
summarise(
Mean_Profit = mean(Profit),
Mean_Sales = mean(Sales),
Mean_COGS = mean(COGS),
Jumlah_State = n()
)
kable(state_clustered, caption="Ringkasan Statistik Tiap Cluster")
Menghitung Rata-rata setiap variabel dalam masing-masing cluster. Kemudian menampilkan jumlah State per cluster dalam bentuk tabel.
ggplot(state_clustered, aes(x = Sales, y = Profit, color = Cluster)) +
geom_point(size = 3) +
theme_minimal() +
labs(title = "Visualisasi Cluster Berdasarkan Sales dan Profit")
melted_cluster <- state_clustered %>%
pivot_longer(cols = Profit:COGS, names_to = "variable", values_to = "value")
ggplot(melted_cluster, aes(x = variable, y = value, fill = Cluster)) +
geom_boxplot() +
facet_wrap(~ Cluster) +
theme_minimal() +
labs(title = "Distribusi Variabel Keuangan Tiap Cluster",
x = "Variabel", y = "Nilai")
fviz_cluster(kmeans_result, data=cluster_data)
Beberapa visualisasi yang ditampilkan:
## State Profit Sales COGS
## Length:4248 Min. :-638.0 Min. : 17 Min. : 0.00
## Class :character 1st Qu.: 17.0 1st Qu.:100 1st Qu.: 43.00
## Mode :character Median : 40.0 Median :138 Median : 60.00
## Mean : 61.1 Mean :193 Mean : 84.43
## 3rd Qu.: 92.0 3rd Qu.:230 3rd Qu.:100.00
## Max. : 778.0 Max. :912 Max. :364.00
Dari Output tersebut dapai diketahui bahwa:
Data penjualan berdasarkan State ada 4248.
Nilai profit terendah adalah -638. Sebanyak 25% data memiliki profit ≤ 17. Setengah data memiliki profit ≤ 40. Rata-rata profit penjualan adalah 61,1. Hal ini menunjukkan adanya indikasi beberapa profit sangat tinggi atau outlier karena mean > median. Sebanyak 75% data memiliki profit ≤ 92. Nilai profit tertinggi adalah 778.
Distribusi profit sedikit miring ke kanan (right-skewed), artinya sebagian besar negara bagian atau State memiliki profit di bawah 100, tetapi ada beberapa yang profitnya sangat tinggi.
Hasil penjualan terendah adalah 17. Sebanyak 25% data memiliki penjualan ≤ 100. Setengah data memiliki penjualan ≤ 138. Rata-rata hasil penjualan adalah 193. Hal ini menunjukkan adanya indikasi beberapa penjualan di beberapa state sangat tinggi atau outlier karena mean > median. Sebanyak 75% data memiliki penjualan ≤ 230. Hasil penjualan tertinggi adalah 912.
Distribusi penjualan juga miring ke kanan, kemungkinan karena beberapa negara bagian atau State dengan penjualan sangat tinggi (outlier).
COGS atau biaya pokok penjualan terendah adalah 0. Sebanyak 25% data memiliki biaya pokok penjualan ≤ 43. Setengah data memiliki biaya pokok penjualan ≤ 60 Rata-rata biaya pokok penjualan adalah 84,43. Hal ini menunjukkan adanya indikasi beberapa biaya pokok penjualan di beberapa state sangat tinggi atau outlier karena mean > median. Sebanyak 75% data memiliki biaya pokok penjualan ≤ 10. Biaya pokok penjualan tertinggi adalah 364.
Distribusi COGS juga mengikuti pola yang sama. Negara bagian atau State dengan COGS tinggi cenderung memiliki penjualan dan profit yang tinggi juga.
| State | Profit | Sales | COGS |
|---|---|---|---|
| California | 110.364583 | 336.43056 | 157.92361 |
| Colorado | 67.208333 | 182.49621 | 77.28030 |
| Connecticut | 45.363095 | 151.36310 | 62.32143 |
| Florida | 56.990741 | 173.34722 | 71.74074 |
| Illinois | 142.689815 | 323.53241 | 136.49074 |
| Iowa | 102.833333 | 253.47222 | 108.87963 |
| Louisiana | 43.779762 | 137.86310 | 55.94048 |
| Massachusetts | 114.180556 | 208.09028 | 62.95833 |
| Missouri | 16.671296 | 114.10648 | 52.93519 |
| Nevada | 40.212121 | 227.87500 | 119.14394 |
| New Hampshire | 16.357143 | 88.61310 | 33.67857 |
| New Mexico | 4.755952 | 94.59524 | 45.20238 |
| New York | 104.666667 | 369.02083 | 183.14583 |
| Ohio | 49.875000 | 159.80093 | 67.74074 |
| Oklahoma | 50.940476 | 163.47024 | 66.86905 |
| Oregon | 47.117424 | 154.92045 | 65.50758 |
| Texas | 93.845238 | 222.67857 | 93.29762 |
| Utah | 26.913194 | 122.86111 | 54.74306 |
| Washington | 47.520833 | 162.20833 | 65.89167 |
| Wisconsin | 40.287037 | 153.09722 | 63.14815 |
Hasil output menunjukkan bahwa:
Suatu State memiliki Profit tinggi namun Sales rendah, menunjukkan efisiensi tinggi (margin keuntungan besar). Tetapi pada data tidak ada yang menunjukkan hal tersebut.
Jika Sales tinggi tetapi Profit rendah, bisa jadi ada masalah efisiensi atau biaya (misalnya COGS tinggi). Hampir di semua state menunjukkan hal tersebut. Tetapi di Massachusetts menunjukkan COGS rendah dengan profit yang tinggi.
Jika COGS tinggi dan Profit rendah, kemungkinan state tersebut tidak efisien secara operasional. hampir di seluruh State menunjukkan hasil tersebut.
State dengan rata-rata profit tertinggi adalah Illinois dengan rata-rata profit sebesar $142,689815.
State dengan rata-rata profit terendah adalah New Mexico dengan rata-rata profit hanya sebesar $4,755952.
State dengan rata-rata penjualan tertinggi adalah New York dengan rata-rata penjualan sebesar $369,02083.
State dengan rata-rata penjualan terendah adalah New Hampshire dengan rata-rata penjualan hanya sebesar $88,61310.
State dengan rata-rata COGS tertinggi adalah New York dengan rata-rata COGS sebesar $183,14583.
State dengan rata-rata COGS terendah adalah New Hampshire dengan rata-rata COGS hanya sebesar $33,67857.
Heatmap ini menunjukkan Jarak Euclidean antar State di Amerika Serikat. Berdasarkan data, warna merah menunjukkan jarak yang besar atau semakin tidak ada kesamaan antar data. Sedangkan warna hijau menunjukkan jarak yang kecil atau semakin menunjukkan adanya kesamaan antar data.
Misalnya
State New York dan California memiliki jarak yang besar karena berwarna merah terang, artinya mereka berbeda secara signifikan dari State lain dan satu sama lain.
State Colorado, Florida, dan New Mexico memiliki jarak yang lebih kecil antar satu sama lain karena berwarna hijau yang menunjukkan adanya kesamaan.
Elbow Method digunakan untuk menentukan jumlah cluster optimal dalam K-Means.
## K-means clustering with 3 clusters of sizes 5, 3, 12
##
## Cluster means:
## Profit Sales COGS
## 1 0.5974461 0.3681134 0.2562354
## 2 1.5411809 1.9468243 1.9578894
## 3 -0.6342311 -0.6400867 -0.5962371
##
## Clustering vector:
## [1] 2 1 3 3 2 1 3 1 3 1 3 3 2 3 3 3 1 3 3 3
##
## Within cluster sum of squares by cluster:
## [1] 4.295863 1.475752 4.432269
## (between_SS / total_SS = 82.1 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Berdasarkan output, Model membentuk 3 Cluster dengan ukuran:
Nilai Rata-rata tiap kluster:
Within Cluster Sum of Squares (WSS):
Total variance yang dijelaskan menunjukkan bahwa sebanyak 82,1% model menjelaskan variasi antar data. Nilai tersebut menunjukkan bahwa model memiliki akurasi clustering yang sangat baik.
| Cluster | State |
|---|---|
| 1 | Colorado, Iowa, Massachusetts, Nevada, Texas |
| 2 | California, Illinois, New York |
| 3 | Connecticut, Florida, Louisiana, Missouri, New Hampshire, New Mexico, Ohio, Oklahoma, Oregon, Utah, Washington, Wisconsin |
Dari proses clustering berdasarkan 3 variabel numerik (Profit, sales, dan COGS), didapatkan hasil yang ada pada tabel, dimana Cluster 1 terdapat 5 anggota State, Cluster 2 memiliki 3 anggota State, dan Cluster 3 memiliki 12 anggota State.
| Profit | Sales | COGS |
|---|---|---|
| 0.5974461 | 0.3681134 | 0.2562354 |
| 1.5411809 | 1.9468243 | 1.9578894 |
| -0.6342311 | -0.6400867 | -0.5962371 |
Dari hasil berikut, Cluster 2 memiliki nilai Profit, sales, dan COGS tertinggi. Sedangkan Cluster 3 memiliki nilai Profit, sales, dan COGS terendah. Kemudian Cluster 1 berada di tengah-tengah atau menunjukkan performa menengah.
## cluster size ave.sil.width
## 1 1 5 0.21
## 2 2 3 0.57
## 3 3 12 0.62
Silhouette Width menunjukkan seberapa cocok suatu objek dengan Clusternya dibandingkan dengan Cluster lain. Nilai rata-rata Cluster 2 sebesar 0,57 menunjukkan hasil cukup baik tetapi Cluster 1 memiliki nilai yang sangat rendah yaitu sebesar 0,21. Hal tersebut menunjukkan State pada Cluster 1 tidak terlalu cocok. Sedangkan Cluster 3 adalah Cluster yang paling stabil.
## # A tibble: 3 × 5
## Cluster Mean_Profit Mean_Sales Mean_COGS Jumlah_State
## <fct> <dbl> <dbl> <dbl> <int>
## 1 1 83.7 219. 92.3 5
## 2 2 119. 343. 159. 3
## 3 3 37.2 140. 58.8 12
| State | Profit | Sales | COGS | Cluster |
|---|---|---|---|---|
| California | 110.364583 | 336.43056 | 157.92361 | 2 |
| Colorado | 67.208333 | 182.49621 | 77.28030 | 1 |
| Connecticut | 45.363095 | 151.36310 | 62.32143 | 3 |
| Florida | 56.990741 | 173.34722 | 71.74074 | 3 |
| Illinois | 142.689815 | 323.53241 | 136.49074 | 2 |
| Iowa | 102.833333 | 253.47222 | 108.87963 | 1 |
| Louisiana | 43.779762 | 137.86310 | 55.94048 | 3 |
| Massachusetts | 114.180556 | 208.09028 | 62.95833 | 1 |
| Missouri | 16.671296 | 114.10648 | 52.93519 | 3 |
| Nevada | 40.212121 | 227.87500 | 119.14394 | 1 |
| New Hampshire | 16.357143 | 88.61310 | 33.67857 | 3 |
| New Mexico | 4.755952 | 94.59524 | 45.20238 | 3 |
| New York | 104.666667 | 369.02083 | 183.14583 | 2 |
| Ohio | 49.875000 | 159.80093 | 67.74074 | 3 |
| Oklahoma | 50.940476 | 163.47024 | 66.86905 | 3 |
| Oregon | 47.117424 | 154.92045 | 65.50758 | 3 |
| Texas | 93.845238 | 222.67857 | 93.29762 | 1 |
| Utah | 26.913194 | 122.86111 | 54.74306 | 3 |
| Washington | 47.520833 | 162.20833 | 65.89167 | 3 |
| Wisconsin | 40.287037 | 153.09722 | 63.14815 | 3 |
Interpretasi yang dapat diambil adalah:
Visualisasi tersebut menunjukkan bahwa:
Visualisasi ini menunjukkan distribusi nilai dari ketiga variabel (Profit, Sales, dan COGS) untuk tiap cluster.
Rata-rata Sales dan COGS tampak menengah hingga tinggi, dengan variasi sedang.
Namun, Profit cenderung lebih rendah atau memiliki outlier negatif, menandakan efisiensi biaya yang kurang baik.
Cluster ini mewakili state yang memiliki volume penjualan besar, tetapi belum optimal dalam mengelola biaya.Kemungkinan margin keuntungan kecil atau bahkan rugi.
Memiliki Profit yang paling tinggi dibanding cluster lainnya.
Sales dan COGS juga cenderung tinggi, tetapi dengan distribusi yang relatif sempit, menunjukkan konsistensi antar state dalam cluster ini.
Cluster ini merupakan kelompok ideal dengan penjualan tinggi, biaya besar tapi terkendali, dan tetap mampu menghasilkan laba tinggi. Ini adalah cluster dengan top performer.
Sales, COGS, dan Profit semuanya berada di level rendah.
Penyebaran nilai tidak terlalu ekstrem, mengindikasikan stabilitas meskipun dalam skala kecil.
Cluster ini merepresentasikan state dengan skala operasi kecil, namun cenderung stabil. Cocok untuk pengembangan atau intervensi strategis untuk meningkatkan skala dan profitabilitas.
Analisis ini bertujuan untuk melihat rata-rata kinerja keuangan di tiap State.
Visualisasi tersebut menyebar cukup baik antara ketiga cluster. Interpretasi dari visualisasi tersebut adalah:
Berdasarkan hasil analisis clustering menggunakan algoritma K-Means terhadap data penjualan coffee chain di berbagai State di Amerika Serikat, diperoleh 3 kelompok cluster yang merepresentasikan karakteristik performa yang berbeda. Cluster 1 mencakup State dengan tingkat sales dan profit yang tinggi, serta nilai COGS yang proporsional, yang menunjukkan efisiensi operasional dan potensi pasar yang kuat. Cluster ini dapat dijadikan benchmark untuk strategi ekspansi ke wilayah lain.
Cluster 2 menampilkan State dengan penjualan yang cukup tinggi namun profit yang tidak terlalu besar, menunjukkan adanya potensi pasar yang belum sepenuhnya dioptimalkan akibat tingginya biaya produksi atau distribusi. Sementara itu, Cluster 3 mencakup wilayah dengan penjualan dan profit yang rendah atau bahkan negatif, yang mengindikasikan perlunya evaluasi menyeluruh terhadap strategi bisnis yang diterapkan di wilayah tersebut.
Nilai silhouette score yang mendekati 0,5 menunjukkan bahwa segmentasi yang dilakukan cukup baik dalam memisahkan karakteristik tiap cluster.
Berdasarkan hasil analisis tersebut, berikut beberapa rekomendasi yang dapat dilakukan untuk meningkatkan performa penjualan coffee chain:
Optimalisasi Wilayah Potensial (Cluster 1): Tingkatkan investasi di State yang tergabung dalam Cluster dengan performa tinggi melalui ekspansi gerai, peningkatan layanan pelanggan, dan peluncuran produk baru. Fokus pada mempertahankan kepuasan pelanggan agar tidak kehilangan pangsa pasar.
Efisiensi Operasional di Wilayah Intermediate (Cluster 2): Lakukan audit terhadap rantai pasokan dan struktur biaya di wilayah dengan sales tinggi namun profit margin rendah. Upayakan efisiensi dalam COGS melalui negosiasi ulang dengan pemasok atau optimalisasi logistik.
Evaluasi dan Restrukturisasi di Wilayah Bermasalah (Cluster 3): Tinjau ulang strategi di negara bagian dengan performa rendah. Pertimbangkan pendekatan localized marketing atau bahkan kemungkinan relokasi atau penutupan gerai yang tidak menguntungkan jika upaya perbaikan tidak menunjukkan hasil dalam jangka waktu tertentu.
Strategi Promosi Berdasarkan Cluster:
Terapkan strategi promosi yang berbeda untuk setiap Cluster Misalnya, di Cluster dengan potensi rendah, promosi agresif dapat membantu menarik pelanggan baru, sedangkan di klaster yang sudah mapan, program loyalitas bisa menjadi fokus utama.
Agustina, A. (2024). Analisis Cluster Pertama. Diakses dari [https://rpubs.com/agustinaadh/abcdfirst68]
Putra, F. (2023). Analisis Cluster K-Means. Diakses dari [https://rpubs.com/putraf/AnalisisCluster]
Purnamasari, S. M. (2024). Analisis Kelompok (Cluster Analysis). Institut Teknologi Bandung. Diakses dari [https://api.rpubs.com/puspitarini/1111700]
Rany DC. (2023). R Markdown Themes. Diakses dari [https://rpubs.com/ranydc/rmarkdown_themes]