Pendahuluan

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.

Landasan Teori

Kmeans clustering

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 \]

Silhouette

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)\}} \]

Metodologi

Import Data

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

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)

Standardisasi

NY_scaled <- scale(teany )

Plot Silhouette

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

kmeans_result <- kmeans(NY_scaled, centers = 3, nstart=50)

Kmeans Klaster

teany$Cluster <- as.factor(kmeans_result$cluster)
datatable(teany)

Klaster

fviz_cluster(kmeans_result, data = NY_scaled,
             geom = "point", 
             ggtheme = theme_minimal()) + labs(
    title = "Gambar 2. Visualisasi Klaster K = 3")

Rata-rata masing-masing klaster

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>

Kesimpulan

Kluster 1

-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

Kluster 2

-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

Kluster 3

-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.

Saran

Turunkan stok atau adakan suatu promosi atau diskon pada Klaster 1. Karena klaster 2 sangat efisien maka pelajari apa yang membuat Klaster sangat efisien