Laporan ini bertujuan untuk menganalisis data penjualan dari sebuah rantai kedai kopi guna mendapatkan insight mengenai profitabilitas produk. Secara spesifik, analisis difokuskan pada perbandingan profitabilitas antar berbagai tipe produk yang ditawarkan, yaitu Kopi (Coffee), Espresso, Teh Herbal (Herbal Tea), dan Teh (Tea). Tujuan analisis ini adalah untuk mengetahui apakah terdapat perbedaan signifikan dalam median profit yang dihasilkan oleh berbagai tipe produk (Kopi, Espresso, Teh Herbal, Teh). Analisis ini akan menggunakan metode statistik non-parametrik yaitu Uji Kruskal-Wallis
Statistik deskriptif digunakan untuk meringkas dan menggambarkan fitur utama dari kumpulan data. Ukuran yang umum digunakan meliputi ukuran tendensi sentral (seperti mean, median) dan ukuran dispersi (seperti standar deviasi, rentang interkuartil/IQR). Median dan IQR seringkali lebih robust terhadap outlier dan data yang tidak berdistribusi normal dibandingkan mean dan standar deviasi.
Uji Kruskal-Wallis adalah uji non-parametrik yang digunakan untuk menentukan apakah ada perbedaan signifikan secara statistik antara dua atau lebih kelompok variabel independen pada variabel dependen kontinu atau ordinal. Uji ini merupakan alternatif dari ANOVA satu arah ketika asumsi normalitas data tidak terpenuhi. Uji ini membandingkan median antar kelompok.
\[ H_0 : \text{Median}_1 = \text{Median}_2 = \dots = \text{Median}_k \]
\[ H_1 : \text{Setidaknya satu median kelompok berbeda} \]
Statistik uji Kruskal-Wallis dihitung menggunakan rumus berikut: \[ H = \frac{12}{N(N+1)} \sum_{i=1}^{k} \frac{R_i^2}{n_i} - 3(N+1) \]
Jika nilai-p (p-value) yang dihasilkan lebih kecil dari tingkat signifikansi \(\alpha\), maka \(H_0\) ditolak.
Data dimuat dari file Excel “CM1 - Coffee Chain Datasets.xlsx”. Kolom
Product Type dikonversi menjadi faktor untuk analisis.
file_path <- "D:\\dokumen\\SIM\\3. CM1 - Coffee Chain Datasets.xlsx"
data <- readxl::read_excel(file_path)
excel_sheets <- excel_sheets(file_path)
data_sheet_name <- if ("Coffee Chain Sales" %in% excel_sheets) {
"Coffee Chain Sales"
} else if ("Sheet1" %in% excel_sheets) {
"Sheet1"
} else {
excel_sheets[1]
}
coffee_data <- read_excel(file_path, sheet = data_sheet_name)
# Mengubah 'Product Type' menjadi faktor
coffee_data$`Product Type` <- as.factor(coffee_data$`Product Type`)
Berikut adalah ringkasan statistik profit untuk setiap tipe produk:
profit_summary <- coffee_data %>%
group_by(`Product Type`) %>%
summarise(
Jumlah_Observasi = n(),
Minimum = min(Profit, na.rm = TRUE),
Maksimum = max(Profit, na.rm = TRUE),
Median = median(Profit, na.rm = TRUE),
IQR = IQR(Profit, na.rm = TRUE),
Mean = mean(Profit, na.rm = TRUE),
Standar_Deviasi = sd(Profit, na.rm = TRUE),
.groups = 'drop'
)
kable(profit_summary, caption = " Statistik Profit per Tipe Produk", digits = 2)
| Product Type | Jumlah_Observasi | Minimum | Maksimum | Median | IQR | Mean | Standar_Deviasi |
|---|---|---|---|---|---|---|---|
| Coffee | 1056 | -221 | 778 | 39 | 74.00 | 70.72 | 118.84 |
| Espresso | 1176 | -392 | 646 | 40 | 68.00 | 58.35 | 91.23 |
| Herbal Tea | 1056 | -420 | 536 | 40 | 73.25 | 59.90 | 85.36 |
| Tea | 960 | -638 | 362 | 44 | 88.00 | 55.19 | 109.16 |
Dari tabel di atas, kita dapat melihat ringkasan profit untuk setiap tipe produk. Misalnya, Kopi memiliki median profit sebesar 39, sementara Espresso memiliki median profit 40. Variasi profit (dilihat dari IQR dan Standar Deviasi) juga terlihat berbeda antar tipe produk.
Untuk memvisualisasikan distribusi profit per tipe produk, digunakan boxplot.
boxplot_profit_alt <- ggplot(coffee_data, aes(x = `Product Type`, y = Profit, fill = `Product Type`)) +
geom_boxplot(show.legend = FALSE) +
labs(title = "Distribusi Profit per Tipe Produk", x = "Tipe Produk", y = "Profit") + theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
print(boxplot_profit_alt)
Distribusi Profit per Tipe Produk
Boxplot di atas menunjukkan distribusi profit untuk masing-masing tipe produk. Terlihat bahwa median (garis tengah dalam kotak) profit untuk keempat tipe produk tampak relatif berdekatan. Keempat tipe produk juga menunjukkan adanya beberapa nilai outlier (titik-titik di luar “kumis” boxplot), yang menguatkan penggunaan metode non-parametrik.
Untuk menguji apakah ada perbedaan median profit yang signifikan secara statistik antar tipe produk, dilakukan uji Kruskal-Wallis.
kruskal_test_result <- kruskal.test(Profit ~ `Product Type`, data = coffee_data)
print(kruskal_test_result)
##
## Kruskal-Wallis rank sum test
##
## data: Profit by Product Type
## Kruskal-Wallis chi-squared = 2.4137, df = 3, p-value = 0.4911
Hasil uji Kruskal-Wallis menunjukkan nilai chi-squared sebesar 2.4137 dengan 3 derajat kebebasan (df), dan nilai-p (p-value) sebesar 0.4911.
Interpretasi: Karena nilai-p (0.4911) lebih besar dari tingkat signifikansi umum \(\alpha = 0.05\), maka gagal menolak hipotesis nol. Ini berarti tidak terdapat cukup bukti statistik untuk menyatakan bahwa ada perbedaan signifikan dalam median profit antar keempat tipe produk (Kopi, Espresso, Teh Herbal, dan Teh).
Analisis perbandingan profitabilitas antar tipe produk (Kopi, Espresso, Teh Herbal, dan Teh) pada dataset rantai kedai kopi ini telah dilakukan menggunakan metode statistik non-parametrik.
Berdasarkan analisis deskriptif dan visualisasi boxplot, distribusi profit menunjukkan variasi dan adanya outlier pada semua tipe produk. Median profit untuk Kopi adalah 39, Espresso 40, Teh Herbal 40, dan Teh 44.
Hasil uji Kruskal-Wallis menunjukkan bahwa tidak terdapat perbedaan median profit yang signifikan secara statistik antar keempat tipe produk tersebut (Kruskal-Wallis chi-squared = 2.4137, df = 3, p-value = 0.4911). Dengan demikian, berdasarkan data yang ada dan analisis yang dilakukan, kita tidak dapat menyimpulkan bahwa salah satu tipe produk secara signifikan lebih menguntungkan dibandingkan yang lain dari segi median profit. Temuan analisis ini adalah bahwa strategi penetapan harga, promosi, atau manajemen biaya mungkin relatif seragam dampaknya terhadap profitabilitas median di semua tipe produk, atau perbedaan yang ada tidak cukup besar untuk terdeteksi secara statistik dengan sampel ini.