12 Mei 2025Penjualan kopi dengan menganalisis keuntungannya menjadi salah satu indikator penting dalam mengevaluasi efektivitas strategi bisnis. profit atau laba bersih merupakan keuntungan yang diperoleh dari hasil penjualan produk (Sales) setelah dikurangi seluruh biaya, termasuk Cost of Goods Sold (COGS) dan pengeluaran Marketing. Melalui analisis profit, perusahaan dapat memperoleh wawasan mengenaisegmen pasar yang memberikan kontribusi keuntungan tertinggi maupun yang menyebabkan kerugian.
Tujuan analisis ini adalah untuk mengelompokkan data penjualan untuk mengevaluasi profitabilitas berdasarkan variabel COGS, Marketing, Sales dan Profit pada lini produk Beans di negara bagian Ohio, Amerika Serikat. Analisis dilakukan menggunakan pendekatan clustering, yaitu dengan menerapkan metode K-Means Clustering. Untuk menentukan jumlah klaster (k) yang optimal, menggunakan metode Elbow.
Metode Elbow adalah metode untuk mendapatkan jumlah klaster yang optimal dimana pada plotnya akan membentuk siku pada suatu titik (Ekasetya and Jananto 2020). Dimana Sum of Square (SSE) digunakan sebagai acuan untuk menentukan klaster yang optimal, akan ada klaster yang mengalami penurunan paling ekstrim yang dilanjutkan dengan nilai K yang akan turun secara perlahan-lahan sampai nilai k stabil (Umargono and Gunawan 2020). SSE adalah nilai menunjukkan seberapa dekat titik data terhadap pusat klaster mereka. Semakin kecil SSE, semakin baik. SSE didapat dengan persamaan pada rumus berikut:
\[ SSE = \sum_{i = 1}^{k}\sum_{x_i\in C_i}D(x_i - C_i)^2 \]
Keterangan:
Algoritma K-Means merupakan salah satu metode yang mengelompokkan data nonhierarki (sekatan) yang berusaha mempartisi data menjadi bentuk dua atau lebih kelompok (Maori 2023).
berdasarkan (Ekasetya and Jananto 2020) langkah-langkah dalam menerapkan metode algoritma K-Means pada analisis ini sebagai berikut:
\[ d(x, y) = \sqrt\sum_{i=1}^{n}(x_i - y_i)^2 \] Keterangan:
\[ C_k = \frac{1}{n_k} \sum d_i \] Keterangan:
Dataset yang digunakan dalam analisis adalah data Coffee Chain yaitu data mengenai penjualan kopi di market yang tersebar di beberapa negara bagian Amerika Serikat. Dataset Coffee Chain memiliki total 4248 baris dan memiliki 20 kolom (variabel). Dataset yang digunakan dapat dilihat pada tabel 1 berikut:
library(readxl) # library r untuk import data dalam format excel
library(DT) # library r untuk menampilkan data dalam bentuk tabel
coffee_data <- read_excel("D:/Kuliah UNS/Semester 4/Sistem Informasi Manajemen/3. CM1/3. CM1 - Coffee Chain Datasets.xlsx")
datatable(data = coffee_data, # untuk menampilkan data
options = list(
pageLength = 5,
scrollX = TRUE
),
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: left; font-weight: bold; font-size: 18px;
color : black;',
'Tabel 1. Data Coffee Chain'
))Variabel yang digunakan dalam analisis ini adalah COGS (Biaya Produksi Aktual), Marketing (Biaya Promosi Aktual), Sales (Pendapatan), dan Profit (Keuntungan Bersih). Variabel tersebut dipilih karena mencerminkan hasil performa bisnis secara langsung, sesuai dengan tujuan segmentasi untuk strategi dan pemasaran. Setelah memilih variabel data yang telah dipilih di tampilkan pada tabel 2 berikut:
library(dplyr) # library r untuk manipulasi data
beans_data <- coffee_data %>% # untuk memfilter data berdasarkan Ohio dan Beans
filter(State == "Ohio", `Product Line` == "Beans")
beans_ohio_data <- beans_data %>% # untuk mengambil variabel yang diperlukan
select(Marketing, COGS, Sales, Profit)
datatable(data = beans_ohio_data, # untuk menampilkan data
options = list(pageLength = 5),
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: left; font-weight: bold; font-size: 18px;
color : black;',
'Tabel 2. Data Lini Produk Beans di Ohio'
))Perhitungan K-Means sensitif terhadap perbedaan skala antar variabel, sehingga data dilakukan standarisasi menggunakan z-score untuk memastikan semua variabel memiliki skala yang sama (Ekasetya and Jananto 2020). persamaan z-score sebagai berikut:
\[ z = \frac{x - \mu}{\sigma} \] Keterangan:
Keberadaan outlier dan data hilang pada dataset dapat menyebabkan rendahnya hasil akurasi pada proses klasifikasi. Perhitungan K-Means memerlukan nilai numerik untuk semua variabel (misalnya, Sales dan Marketing). Jika ada NA (missing value), perhitungan jarak seperti \(\sqrt((x1 - c1)^2 + (x2 - c2)^2)\) tidak dapat dilakukan karena nilai NA tidak valid (Sugriyono and Siregar 2020).
## [1] 0
Untuk mengetahui jumlah klaster (k) yang optimal, menggunakan metode elbow sebagai berikut:
library(factoextra) # library r untuk melakukan perhitungan dan visualisasi K-Means
elbow_plot <- fviz_nbclust(
ohio_scaled,
FUNcluster = kmeans,
method = "wss") +
labs(
title = "Gambar 1. Plot Elbow Berdasarkan Nilai k",
x = "Jumlah Klaster (k)",
y = "Total Within Sum of Squares (WSS)"
) +
theme_minimal() # supaya tambilan plot lebih bersih
print(elbow_plot)Untuk mengetahui hasil dari SSE dari setiap klaster yang dihasilkan diperoleh sebagai berikut:
library(tidyverse) # library r untuk keperluan perhitungan kompleks data sains
elbow <- function(k) {
kmeans(ohio_scaled, k, nstart = 50)$tot.withinss
}
k_value <- 1:10
SSE_value <- map_dbl(k_value, elbow)
SSE_table <- data.frame(
k = 1:10,
SSE = SSE_value,
Selisih = c(NA, abs(diff(SSE_value)))
)
print(SSE_table)## k SSE Selisih
## 1 1 476.000000 NA
## 2 2 117.653964 358.346036
## 3 3 34.943700 82.710264
## 4 4 26.838759 8.104941
## 5 5 21.064857 5.773902
## 6 6 16.747398 4.317459
## 7 7 12.464368 4.283030
## 8 8 10.784045 1.680323
## 9 9 9.404371 1.379674
## 10 10 7.868413 1.535958
Berdasarkan hasil plot menggunakan metode Elbow pada Gambar 1, jumlah klaster yang optimal ditentukan pada saat k = 3. Hal ini terlihat dari adanya penurunan nilai SSE (Sum of Squared Error) yang sangat signifikan hingga membentuk “siku” pada titik tersebut. Penurunan ekstrem ini mengindikasikan bahwa penambahan klaster hingga k = 3 memberikan pengelompokan yang jauh lebih baik dibandingkan ketika k = 1 atau k = 2. Setelah titik k = 3, penurunan nilai SSE cenderung melandai, sehingga penambahan klaster selanjutnya tidak memberikan peningkatan yang signifikan terhadap kualitas klasterisasi. Dengan kata lain, SSE telah mencapai nilai yang cukup optimal pada k = 3, menunjukkan bahwa data dalam masing-masing klaster sudah cukup dekat dengan pusat klasternya. Oleh karena itu, k = 3 dipilih sebagai jumlah klaster yang paling tepat untuk analisis ini.
Karena diketahui nilai k yang optimal adalah ketika k = 3, maka hasil untuk klaster sebagai berikut:
## [1] 72 24 24
Berdasarkan hasil klasterisasi K-Means dengan k = 3, diperoleh bahwa klaster 2 dan klaster 3 masing-masing berisi 24 data, sementara klaster 1 memiliki jumlah data terbanyak yaitu 72 data. Bentuk visualisasi dari setiap klaster ditunjukkan pada Gambar 2.
fviz_cluster(kmeans_result, data = ohio_scaled,
geom = "point",
ggtheme = theme_minimal()) + labs(
title = "Gambar 2. Visualisasi Klaster K = 3")Untuk mengetahui secara detail produk apa saja yang berada di tiap-tiap klasternya, ditunjukkan pada tabel 3.
beans_data$Klaster <- as.factor(kmeans_result$cluster)
datatable(beans_data, # untuk menampilkannya dalam bentuk tabel hasil klaster
options = list(pageLength = 5,
scrollX = TRUE),
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: left; font-weight: bold; font-size: 18px;
color : black;',
'Tabel 3. Data Hasil Klaster'
)
)Hasil masing-masing variabel dari setiap klaster ditunjukkan sebagai berikut:
rerata_tiap_klaster <- beans_data %>%
group_by(Klaster) %>%
summarise(
"Jumlah tiap Klaster k" = n(),
"rata-rata Profit" = mean(Profit),
"rata-rata Sales" = mean(Sales),
"rata-rata Marketing" = mean(Marketing),
"rata-rata COGS" = mean(COGS)
)
datatable(rerata_tiap_klaster,
options = list(
scrollX = TRUE),# menampilkan hasil statstik deskriptif ke bentuk tabel
rownames = FALSE,)Berdasarkan hasil rata-rata masing-masing klaster, Klaster 2 menunjukkan performa terbaik dalam hal profit, dengan rata-rata profit sebesar 111,33, namun memerlukan biaya COGS dan anggaran marketing yang juga tinggi, yaitu 158,5 dan 43,83. Hal ini menunjukkan bahwa Klaster 2 menghasilkan profit tinggi tetapi dengan biaya operasional yang besar.
Klaster 1 memiliki profit yang sedang (27,81), namun dengan biaya marketing paling rendah (16,75) dan COGS sedang (50). Ini mengindikasikan bahwa klaster ini cukup efisien, meskipun profitnya tidak setinggi Klaster 2.
Sementara itu, Klaster 3 menunjukkan kondisi yang kurang menguntungkan, yaitu dengan rata-rata profit negatif (-5,46). Padahal, rata-rata sales Klaster 3 (122,29) sedikit lebih tinggi dibanding Klaster 1 (120,14), dan biaya marketing-nya juga tinggi (44,92). Ini mengindikasikan adanya ketidakefisienan dalam proses penjualan atau pengeluaran biaya yang tidak sebanding dengan pendapatan yang dihasilkan.
Berdasarkan penerapan metode K-Means Clustering pada lini produk “Beans” di State Ohio dengan menggunakan variabel Sales, Marketing, COGS, dan Profit, diperoleh jumlah klaster yang optimal ketika k = 3, setiap klaster masing-masing merepresentasikan karakteristik berbeda dari segi biaya operasional dan hasil dari profitabilitasnya. Dapat diambil kesimpulan sebagai berikut:
Melalui analisis ini, perusahaan dapat merumuskan strategi pemasaran dan manajemen biaya yang berbeda-beda sesuai dengan karakteristik tiap klaster untuk meningkatkan profitabilitas.