Dalam dunia bisnis, memahami kinerja setiap produk merupakan hal yang sangat penting. Perusahaan tidak hanya perlu mengetahui besarnya keuntungan yang dihasilkan, tetapi juga perlu memastikan apakah perbedaan kinerja antar produk tersebut benar-benar signifikan atau hanya terjadi secara kebetulan berdasarkan data yang ada.
Dataset Coffee Chain menyediakan informasi penjualan, profit, serta berbagai aspek operasional lainnya yang dapat digunakan untuk menganalisis kinerja produk secara lebih mendalam. Melalui data ini, analisis tidak hanya difokuskan pada perbedaan profit antar jenis produk, tetapi juga pada produk mana yang memberikan kontribusi penjualan terbesar serta bagaimana tren profit perusahaan dari waktu ke waktu.
Untuk menjawab hal tersebut, dilakukan pendekatan analisis berbasis data yang sistematis. Analisis dimulai dari pengujian perbedaan rata-rata profit antar jenis produk menggunakan metode statistik yang sesuai, kemudian dilanjutkan dengan evaluasi kinerja total penjualan tiap produk, serta analisis tren profit bulanan untuk melihat pola pertumbuhan atau musiman.
Oleh karena itu, penelitian ini bertujuan untuk memberikan gambaran yang lebih jelas mengenai perbedaan profit, kontribusi penjualan, dan pola profitabilitas pada dataset Coffee Chain. Hasil analisis ini diharapkan dapat membantu pihak manajemen dalam mengambil keputusan yang lebih tepat, seperti menentukan produk unggulan, mengoptimalkan strategi pemasaran, serta merencanakan langkah bisnis ke depan secara lebih terarah.
Berdasarkan latar belakang di atas, laporan ini menjawab tiga pertanyaan analitik berikut:
PA-1: Apakah rata-rata profit berbeda secara signifikan di antara jenis produk (product type), dan jika ya, pasangan jenis produk mana yang perbedaannya paling mencolok?
PA-2: Produk mana yang menghasilkan total penjualan tertinggi dan terendah, dan seberapa besar kesenjangan di antara keduanya?
PA-3: Apakah tren profit bulanan menunjukkan pola yang stabil, meningkat, menurun, atau bersifat musiman sepanjang periode data?
## Jumlah baris: 4248
## Jumlah kolom: 21
| marketing | sales | profit | budget_sales | budget_profit | |
|---|---|---|---|---|---|
| Min. : 0.00 | Min. : 17 | Min. :-638.0 | Min. : 0.0 | Min. :-320.00 | |
| 1st Qu.: 13.00 | 1st Qu.:100 | 1st Qu.: 17.0 | 1st Qu.: 80.0 | 1st Qu.: 20.00 | |
| Median : 22.00 | Median :138 | Median : 40.0 | Median : 130.0 | Median : 40.00 | |
| Mean : 31.19 | Mean :193 | Mean : 61.1 | Mean : 175.6 | Mean : 60.91 | |
| 3rd Qu.: 39.00 | 3rd Qu.:230 | 3rd Qu.: 92.0 | 3rd Qu.: 210.0 | 3rd Qu.: 80.00 | |
| Max. :156.00 | Max. :912 | Max. : 778.0 | Max. :1140.0 | Max. : 560.00 |
Sebelum melakukan uji perbedaan antar kelompok, terlebih dahulu perlu diperiksa dua asumsi dasar yang menentukan metode uji mana yang paling tepat digunakan: apakah data profit pada setiap jenis produk mengikuti distribusi normal, dan apakah keragaman (varians) data antar kelompok relatif seragam. Hasil dari pemeriksaan ini akan menjadi dasar pengambilan keputusan metodologis pada tahap Uji Akhir.
| Jenis Produk | N | Mean | Median | Std. Dev. | Min | Max |
|---|---|---|---|---|---|---|
| Coffee | 1056 | 70.72 | 39 | 118.84 | -221 | 778 |
| Espresso | 1176 | 58.35 | 40 | 91.23 | -392 | 646 |
| Herbal Tea | 1056 | 59.90 | 40 | 85.36 | -420 | 536 |
| Tea | 960 | 55.19 | 44 | 109.16 | -638 | 362 |
Tabel di atas memberikan gambaran awal bahwa nilai rata-rata (mean) profit antar jenis produk tampak berbeda. Untuk memastikan apakah perbedaan ini signifikan secara statistik, dilakukan uji hipotesis formal berikut.
Sebelum memilih metode uji yang tepat, perlu dipastikan terlebih dahulu apakah data profit pada setiap kelompok jenis produk mengikuti distribusi normal. Hal ini penting karena beberapa metode uji perbedaan rata-rata mensyaratkan data berdistribusi normal agar hasilnya dapat dipercaya.
Uji Shapiro-Wilk merupakan salah satu uji normalitas yang paling umum digunakan, terutama untuk ukuran sampel kecil hingga sedang. Uji ini mengukur seberapa dekat data yang diamati dengan distribusi normal teoritis. Statistik uji W dihitung dengan rumus:
\[W = \frac{\left(\displaystyle\sum_{i=1}^{n} a_i x_{(i)}\right)^2}{\displaystyle\sum_{i=1}^{n} (x_i - \bar{x})^2}\]
dengan:
Nilai W berkisar antara 0 dan 1. Semakin mendekati 1, semakin kuat bukti bahwa data berdistribusi normal.
Hipotesis
\(H_0\): Data profit pada setiap kelompok jenis produk berdistribusi normal
\(H_1\): Data profit pada setidaknya satu kelompok jenis produk tidak berdistribusi normal
Taraf Signifikansi
\(\alpha = 5\% = 0{,}05\)
Daerah Kritis
\(H_0\) ditolak jika P-Value \(< 0{,}05\)
Statistik Uji
shapiro_results <- data %>%
group_by(product_type) %>%
summarise(
n = n(),
statistic = round(shapiro.test(profit)$statistic, 5),
p_value = round(shapiro.test(profit)$p.value, 6),
.groups = "drop"
) %>%
mutate(
Keputusan = ifelse(
p_value < 0.05,
"Tolak H\u2080 \u2014 Tidak Normal",
"Gagal Tolak H\u2080 \u2014 Normal"
)
)
kable(shapiro_results,
caption = "Hasil Uji Normalitas Shapiro-Wilk per Jenis Produk",
col.names = c("Jenis Produk", "n", "W Statistic", "p-value", "Keputusan"))
| Jenis Produk | n | W Statistic | p-value | Keputusan |
|---|---|---|---|---|
| Coffee | 1056 | 0.76610 | 0 | Tolak H₀ — Tidak Normal |
| Espresso | 1176 | 0.81367 | 0 | Tolak H₀ — Tidak Normal |
| Herbal Tea | 1056 | 0.86788 | 0 | Tolak H₀ — Tidak Normal |
| Tea | 960 | 0.73214 | 0 | Tolak H₀ — Tidak Normal |
Kesimpulan
Apabila p-value pada satu atau lebih kelompok bernilai \(< 0{,}05\), maka \(H_0\) ditolak dan disimpulkan bahwa data pada kelompok tersebut tidak berdistribusi normal. Pelanggaran asumsi normalitas ini menjadi dasar digunakannya pendekatan non-parametrik pada tahap Uji Akhir.
Asumsi kedua yang perlu dipenuhi sebelum melakukan uji perbedaan rata-rata adalah homogenitas varians, yaitu kondisi di mana setiap kelompok memiliki tingkat keragaman (variance) data yang kurang lebih sama. Jika varians antar kelompok sangat berbeda, hasil uji perbandingan rata-rata bisa menjadi tidak akurat.
Uji Levene menguji homogenitas varians dengan menghitung statistik F berdasarkan deviasi absolut setiap observasi terhadap median kelompoknya. Statistik uji yang digunakan adalah:
\[W = \frac{(N - k)}{(k - 1)} \cdot \frac{\displaystyle\sum_{i=1}^{k} n_i \left(\bar{Z}_{i\cdot} - \bar{Z}_{\cdot\cdot}\right)^2}{\displaystyle\sum_{i=1}^{k} \sum_{j=1}^{n_i} \left(Z_{ij} - \bar{Z}_{i\cdot}\right)^2}\]
dengan:
Jika p-value yang dihasilkan lebih kecil dari \(\alpha = 0{,}05\), maka H₀ ditolak dan disimpulkan bahwa setidaknya satu kelompok memiliki varians yang berbeda secara signifikan.
Hipotesis
\(H_0\): Varians profit sama (homogen) untuk semua jenis produk
\(H_1\): Setidaknya satu kelompok jenis produk memiliki varians profit yang berbeda
Taraf Signifikansi
\(\alpha = 5\% = 0{,}05\)
Daerah Kritis
\(H_0\) ditolak jika P-Value \(< 0{,}05\)
Statistik Uji
library(car)
levene_result <- leveneTest(profit ~ product_type, data = data)
print(levene_result)
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 3 6.1554 0.0003589 ***
## 4244
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
| F-value | p-value | Keputusan |
|---|---|---|
| 6.1554 | 0.000359 | Tolak H₀ — Varians Tidak Homogen |
Kesimpulan
Jika p-value \(< 0{,}05\), maka \(H_0\) ditolak dan disimpulkan bahwa setidaknya satu kelompok memiliki varians yang berbeda. Bersama dengan hasil uji normalitas, temuan ini memperkuat alasan digunakannya pendekatan non-parametrik pada tahap Uji Akhir.
Berdasarkan hasil Uji Awal, dapat ditentukan metode yang paling sesuai untuk menguji apakah rata-rata profit benar-benar berbeda antar jenis produk. Jika asumsi normalitas atau homogenitas tidak terpenuhi, digunakan pendekatan non-parametrik yang tidak bergantung pada asumsi distribusi data. Uji ini secara langsung menjawab PA-1.
Uji Kruskal-Wallis adalah uji hipotesis non-parametrik yang digunakan untuk membandingkan distribusi dari tiga kelompok atau lebih secara bersamaan. Uji ini merupakan alternatif dari ANOVA satu arah yang tidak mensyaratkan data berdistribusi normal, sehingga cocok digunakan ketika asumsi normalitas tidak terpenuhi.
Cara kerja uji ini adalah dengan menggabungkan seluruh data dari semua kelompok, lalu mengurutkan dan memberikan peringkat (rank) pada setiap nilai. Statistik uji H kemudian dihitung berdasarkan jumlah peringkat di setiap kelompok:
\[H = \frac{12}{N(N+1)} \sum_{i=1}^{k} \frac{R_i^2}{n_i} - 3(N+1)\]
dengan:
Statistik H mengikuti distribusi chi-squared (\(\chi^2\)) dengan derajat kebebasan \(df = k - 1\). Jika nilai H cukup besar sehingga p-value < \(\alpha = 0{,}05\), maka H₀ ditolak.
Hipotesis
\(H_0\): \(\mu_1 = \mu_2 = \ldots = \mu_k\) (Rata-rata profit cenderung sama untuk semua jenis produk)
\(H_1\): \(\mu_i \neq \mu_j\), untuk paling sedikit sebuah \(i, j\) (Setidaknya ada satu jenis produk yang memiliki rata-rata profit lebih signifikan dibanding yang lain)
Taraf Signifikansi
\(\alpha = 5\% = 0{,}05\)
Daerah Kritis
\(H_0\) ditolak jika P-Value \(< 0{,}05\)
Statistik Uji
kruskal_result <- kruskal.test(profit ~ product_type, data = data)
print(kruskal_result)
##
## Kruskal-Wallis rank sum test
##
## data: profit by product_type
## Kruskal-Wallis chi-squared = 2.4137, df = 3, p-value = 0.4911
| Chi-squared | df | p-value | Keputusan | |
|---|---|---|---|---|
| Kruskal-Wallis chi-squared | 2.4137 | 3 | 0.491091 | Gagal Tolak H₀ — Tidak Ada Perbedaan |
Kesimpulan
Diketahui berdasarkan uji yang dilakukan, jika P-Value \(< 0{,}05\), maka \(H_0\) ditolak, sehingga setidaknya ada satu jenis produk yang memiliki rata-rata profit yang berbeda secara signifikan dibanding yang lain. Namun uji ini belum merinci pasangan jenis produk mana yang berbeda, sehingga dilanjutkan dengan uji post-hoc berikut.
Ketika uji Kruskal-Wallis menghasilkan kesimpulan bahwa terdapat perbedaan di antara kelompok-kelompok, pertanyaan berikutnya adalah: kelompok mana yang berbeda dari kelompok mana? Uji Kruskal-Wallis sendiri tidak dapat menjawab ini. Disinilah uji post-hoc berperan.
Dunn Test melakukan perbandingan berpasangan (pairwise comparison) antar kelompok menggunakan informasi peringkat dari uji Kruskal-Wallis sebelumnya. Statistik uji Z untuk setiap pasangan kelompok \(i\) dan \(j\) dihitung sebagai:
\[z_{ij} = \frac{\bar{R}_i - \bar{R}_j}{\sigma_{ij}}\]
dengan:
\[\sigma_{ij} = \sqrt{\frac{N(N+1)}{12} \left(\frac{1}{n_i} + \frac{1}{n_j}\right)}\]
di mana \(\bar{R}_i\) dan \(\bar{R}_j\) adalah rata-rata peringkat kelompok \(i\) dan \(j\), sedangkan \(N\) adalah total observasi.
Karena dilakukan banyak perbandingan sekaligus (sebanyak \(\binom{k}{2}\) pasangan), terdapat risiko meningkatnya kesalahan tipe I secara kumulatif. Koreksi Bonferroni mengatasi hal ini dengan mengalikan setiap p-value dengan jumlah perbandingan yang dilakukan (\(m\)), sehingga p-value yang disesuaikan menjadi \(p_{\text{adj}} = \min(p \times m,\ 1)\). Pasangan dengan \(p_{\text{adj}} < 0{,}05\) dinyatakan berbeda secara signifikan.
Hipotesis
\(H_0\): Distribusi profit sama antara dua jenis produk yang dibandingkan
\(H_1\): Distribusi profit berbeda antara dua jenis produk yang dibandingkan
Taraf Signifikansi
\(\alpha = 5\% = 0{,}05\)
Daerah Kritis
\(H_0\) ditolak jika P-Value (adj.) \(< 0{,}05\)
Statistik Uji
library(dunn.test)
dunn_result <- dunn.test(
x = data$profit,
g = data$product_type,
method = "bonferroni",
kw = FALSE,
label = TRUE
)
| Pasangan Jenis Produk | Z Statistic | p-value (adj.) | Signifikan |
|---|---|---|---|
| Coffee - Espresso | 0.7921 | 1.000000 | Tidak |
| Coffee - Herbal Tea | -0.2290 | 1.000000 | Tidak |
| Espresso - Herbal Tea | -1.0272 | 0.912917 | Tidak |
| Coffee - Tea | -0.7177 | 1.000000 | Tidak |
| Espresso - Tea | -1.5078 | 0.394807 | Tidak |
| Herbal Tea - Tea | -0.4941 | 1.000000 | Tidak |
Kesimpulan
Diketahui berdasarkan uji yang dilakukan, pasangan jenis produk dengan p-value (adj.) \(< 0{,}05\) menunjukkan bahwa \(H_0\) ditolak, artinya terdapat perbedaan profit yang signifikan antara kedua jenis produk tersebut. Semakin besar nilai absolut Z-statistik, semakin kuat bukti perbedaannya. Hasil ini memberikan jawaban yang lengkap atas PA-1 yaitu tidak hanya membuktikan adanya perbedaan, tetapi juga mengidentifikasi secara spesifik pasangan jenis produk mana yang paling berbeda profitnya.
Visualisasi pertama menjawab PA-2 dengan menampilkan total penjualan kumulatif setiap produk, diurutkan dari tertinggi ke terendah sehingga kesenjangan kinerja antar produk terlihat secara langsung.
Interpretasi Visualisasi 1:
Bar chart di atas menampilkan total penjualan kumulatif setiap produk selama periode data. Dari visualisasi ini dapat diidentifikasi beberapa hal penting:
Visualisasi kedua menjawab PA-3 dengan menampilkan pergerakan total profit bulanan. Chart ini bersifat interaktif, dikarenakan dapat melihat nilai profit untuk setiap bulannya (dengan cara memindahkan kursor).
Interpretasi Visualisasi 2:
Line chart interaktif di atas menggambarkan pergerakan total profit bulanan selama periode data. Beberapa hal yang dapat dianalisis:
Berdasarkan keseluruhan analisis yang telah dilakukan, laporan ini menghasilkan tiga simpulan utama yang menjawab ketiga pertanyaan analitik:
Perbedaan Profit antar Jenis Produk (PA-1): Rangkaian uji statistik yang dilakukan secara berurutan dimulai dari pemeriksaan asumsi (Shapiro-Wilk dan Levene’s Test), dilanjutkan uji utama (Kruskal-Wallis), dan diakhiri uji post-hoc (Dunn Test dengan koreksi Bonferroni) secara sistematis membuktikan apakah perbedaan rata-rata profit antar jenis produk bersifat signifikan. Hasil Dunn Test mengidentifikasi secara spesifik pasangan jenis produk mana yang paling berbeda profitnya, sehingga manajemen memiliki dasar kuantitatif yang kuat untuk keputusan alokasi sumber daya.
Kinerja Total Penjualan per Produk (PA-2): Bar chart mengungkap bahwa tidak semua produk berkontribusi setara terhadap total penjualan. Produk-produk di posisi teratas adalah menu utama yang perlu dipertahankan ketersediaannya karena merupakan produk dengan pendapatan tertinggi, sementara produk di posisi bawah memerlukan evaluasi mendalam terkait perkembangan produk di pasar.
Tren Profit Bulanan (PA-3): Line chart interaktif memperlihatkan dinamika profitabilitas dari waktu ke waktu. Pola yang teridentifikasi yaitu musiman maupun tren pertumbuhan dapat memberikan sinyal penting bagi perencanaan operasional dan anggaran ke depan.
Laporan ini dibuat menggunakan R Markdown. Data bersumber dari database Coffee Chain.