Dalam dunia bisnis modern, analisis data memainkan peranan penting dalam pengambilan keputusan strategis. Perusahaan kopi besar seperti Coffee Chain harus mampu memahami pola penjualan berdasarkan lokasi geografis dan jenis produk untuk meningkatkan efisiensi dan profitabilitas. Salah satu produk utama yang ditawarkan oleh perusahaan ini adalah Leaves, yang termasuk dalam kategori teh herbal.
Negara bagian New York merupakan pasar yang strategis karena karakteristik konsumen yang beragam dan volume penjualan yang tinggi. Untuk memperoleh wawasan lebih dalam mengenai perilaku penjualan produk Leaves di wilayah ini, pendekatan analitik berbasis clustering digunakan.
Dengan menerapkan algoritma K-Means Clustering, data akan dikelompokkan berdasarkan pola-pola yang serupa, seperti profit dan sales. Untuk menilai kualitas klaster yang terbentuk, digunakan metrik Silhouette Score, yang dapat memberikan gambaran seberapa baik titik-titik data dikelompokkan dalam klaster masing-masing.
K-Means adalah algoritma unsupervised learning yang digunakan untuk membagi data ke dalam beberapa kelompok (klaster) berdasarkan kemiripan karakteristik. Tujuan utama algoritma ini adalah meminimalkan variasi dalam-klaster (within-cluster variation), yang secara matematis dirumuskan sebagai:
\[ J = \sum_{i=1}^{k} \sum_{x \in C_i} \| x - \mu_i \|^2 \]Untuk mengevaluasi kualitas klaster yang terbentuk oleh K-Means, digunakan metrik Silhouette Coefficient. Metrik ini mengukur seberapa mirip suatu titik dengan klaster-nya dibandingkan dengan klaster lain. Rumusnya:
\[ s(i) = \frac{b(i) - a(i)}{\max\{a(i), b(i)\}} \]
library(readxl)
library(DT)
tea_data <- read_excel("C:/Users/asus/Downloads/CM1 SIM/3. CM1 - Coffee Chain Datasets.xlsx")
datatable(data = tea_data)
Filter untuk menunjukkan data daun yang berada di New York
library(dplyr)
teany <- tea_data %>%
filter(State == "New York", `Product Line` == "Leaves") %>%
select(Inventory, Sales, Marketing)
datatable(data = teany)
NY_scaled <- scale(teany )
library(factoextra) # library r untuk melakukan perhitungan dan visualisasi K-Means
Silhouette_plot <- fviz_nbclust(
NY_scaled,
FUNcluster = kmeans,
method = "silhouette") +
labs(
title = "Plot Silhouette Nilai K",
x = "Jumlah Klaster (k)",
y = "Total silhouette"
) +
theme_minimal() # supaya tambilan plot lebih bersih
print(Silhouette_plot)
kmeans_result <- kmeans(NY_scaled, centers = 3, nstart=50)
teany$Cluster <- as.factor(kmeans_result$cluster)
datatable(teany)
fviz_cluster(kmeans_result, data = NY_scaled,
geom = "point",
ggtheme = theme_minimal()) + labs(
title = "Gambar 2. Visualisasi Klaster K = 3")
stat_klaster <- teany %>%
group_by(Cluster) %>%
summarise(
"Jumlah tiap Klaster k" = n(),
"Rata-rata marketing" = mean(Marketing),
"Rata-rata Sales" = mean(Sales),
"Rata-rata Inventory" = mean(Inventory),
)
print(stat_klaster)
## # A tibble: 3 × 5
## Cluster `Jumlah tiap Klaster k` `Rata-rata marketing` `Rata-rata Sales`
## <fct> <int> <dbl> <dbl>
## 1 1 16 77.1 165.
## 2 2 80 30.4 236.
## 3 3 24 100 618.
## # ℹ 1 more variable: `Rata-rata Inventory` <dbl>
-marketing : Sedang (77.125)
-Sales : Rendah (164.7500)
-Inventory : Sangat Tinggi (3684.250)
interpretasi : Terjadi overstocking dimana marketing sedang dan penjualan rendah tapi stock masih banyak
-marketing : Rendah (30.450)
-Sales : Sedang (236.2375)
-Inventory : Rendah (833.225)
interpretasi : Sangat efisien karena walaupun marketing rendah, sales lumayan banyak dan inventory juga rendah
-marketing : Tinggi (100.000)
-Sales : Tinggi (618.4167)
-Inventory : Sedang (1596.583)
Interpretasi : cukup bagus karena sales cukup tinggi dengan marketing yang cukup tinggi juga, Inventory juga cukup.
Turunkan stok atau adakan suatu promosi atau diskon pada Klaster 1. Karena klaster 2 sangat efisien maka pelajari apa yang membuat Klaster sangat efisien