Dataset Coffee Chain memuat data transaksi penjualan
produk kopi dan teh dari sebuah jaringan kedai kopi di Amerika Serikat,
mencakup periode Januari 2012 hingga Desember 2013.
Dataset terdiri dari 4.248 baris dan 20
variabel, meliputi informasi wilayah pasar, lini produk,
anggaran, biaya operasional, dan profitabilitas. Deskripsi untuk setiap
kolom dapat dilihat pada link berikut:
https://docs.google.com/spreadsheets/d/12etKCrqPzi1ByEWPVTtbWApvjtqfVb8xDUo4964x40g/edit?usp=sharing
Analisis ini tidak sekadar membaca angka permukaan, melainkan menelusuri sebuah alur diagnosis bisnis yang terdiri dari empat tahap yang saling terhubung. Setiap tahap menjawab pertanyaan yang muncul dari tahap sebelumnya, membentuk sebuah narasi investigasi yang utuh.
Tahap 1 — Gambaran Besar (Tren): Sekilas, bisnis ini terlihat sehat karena total penjualan meningkat dari tahun 2012 ke 2013. Namun, apakah pertumbuhan penjualan otomatis berarti seluruh bisnis berjalan dengan baik?
Tahap 2 — Identifikasi Masalah (Wilayah): Ketika ditelusuri lebih dalam ke level wilayah, ternyata beberapa pasar seperti South dan West gagal mencapai target laba yang telah dianggarkan. Ini menunjukkan bahwa pertumbuhan penjualan tidak merata dan menyimpan permasalahan tersembunyi.
Tahap 3 — Pencarian Akar Masalah (Produk): Menelusuri lebih jauh ke level produk mengungkap bahwa kontribusi laba antar jenis produk sangat tidak seimbang. Produk Coffee dan Espresso menjadi tumpuan utama, sementara penetrasinya di wilayah-wilayah yang bermasalah justru sangat rendah.
Tahap 4 — Solusi & Validasi (Marketing): Solusi yang diusulkan adalah mendorong penjualan produk unggulan (Coffee dan Espresso) di wilayah-wilayah yang bermasalah melalui intensifikasi pemasaran. Namun sebelum keputusan investasi diambil, perlu dibuktikan secara statistik: apakah biaya marketing benar-benar berpengaruh signifikan terhadap penjualan?
library(readxl)
library(dplyr)
library(ggplot2)
library(tidyr)
library(scales)
library(knitr)
df <- read_excel("1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx", sheet = "data")
df$Date <- as.Date(df$Date)
df <- df %>%
mutate(
Year = format(Date, "%Y"),
Month = format(Date, "%Y-%m"),
Profit_Gap = Profit - `Budget Profit`
)
# Verifikasi kebersihan data
sum(is.na(df))
## [1] 0
sum(duplicated(df))
## [1] 0
glimpse(df)
## Rows: 4,248
## Columns: 23
## $ `Area Code` <dbl> 719, 970, 970, 303, 303, 720, 970, 719, 970, 719, 303…
## $ Date <date> 2012-01-01, 2012-01-01, 2012-01-01, 2012-01-01, 2012…
## $ Market <chr> "Central", "Central", "Central", "Central", "Central"…
## $ `Market Size` <chr> "Major Market", "Major Market", "Major Market", "Majo…
## $ Product <chr> "Amaretto", "Colombian", "Decaf Irish Cream", "Green …
## $ `Product Line` <chr> "Beans", "Beans", "Beans", "Leaves", "Beans", "Beans"…
## $ `Product Type` <chr> "Coffee", "Coffee", "Coffee", "Tea", "Espresso", "Esp…
## $ State <chr> "Colorado", "Colorado", "Colorado", "Colorado", "Colo…
## $ Type <chr> "Regular", "Regular", "Decaf", "Regular", "Regular", …
## $ `Budget COGS` <dbl> 90, 80, 100, 30, 60, 80, 140, 50, 50, 40, 50, 150, 10…
## $ `Budget Margin` <dbl> 130, 110, 140, 50, 90, 130, 160, 80, 70, 70, 70, 210,…
## $ `Budget Profit` <dbl> 100, 80, 110, 30, 70, 80, 110, 20, 40, 20, 40, 130, 1…
## $ `Budget Sales` <dbl> 220, 190, 240, 80, 150, 210, 300, 130, 120, 110, 120,…
## $ COGS <dbl> 89, 83, 95, 44, 54, 72, 170, 63, 60, 58, 64, 144, 95,…
## $ Inventory <dbl> 777, 623, 821, 623, 456, 558, 1091, 435, 336, 338, 96…
## $ Margin <dbl> 130, 107, 139, 56, 80, 108, 171, 87, 80, 72, 76, 201,…
## $ Marketing <dbl> 24, 27, 26, 14, 15, 23, 47, 57, 19, 22, 19, 47, 30, 7…
## $ Profit <dbl> 94, 68, 101, 30, 54, 53, 99, 0, 33, 17, 36, 111, 87, …
## $ Sales <dbl> 219, 190, 234, 100, 134, 180, 341, 150, 140, 130, 140…
## $ `Total Expenses` <dbl> 36, 39, 38, 26, 26, 55, 72, 87, 47, 55, 40, 90, 52, 1…
## $ Year <chr> "2012", "2012", "2012", "2012", "2012", "2012", "2012…
## $ Month <chr> "2012-01", "2012-01", "2012-01", "2012-01", "2012-01"…
## $ Profit_Gap <dbl> -6, -12, -9, 0, -16, -27, -11, -20, -7, -3, -4, -19, …
summary(df)
## Area Code Date Market Market Size
## Min. :203.0 Min. :2012-01-01 Length:4248 Length:4248
## 1st Qu.:417.0 1st Qu.:2012-06-23 Class :character Class :character
## Median :573.0 Median :2012-12-16 Mode :character Mode :character
## Mean :582.3 Mean :2012-12-15
## 3rd Qu.:772.0 3rd Qu.:2013-06-08
## Max. :985.0 Max. :2013-12-01
## Product Product Line Product Type State
## Length:4248 Length:4248 Length:4248 Length:4248
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Type Budget COGS Budget Margin Budget Profit
## Length:4248 Min. : 0.00 Min. :-210.0 Min. :-320.00
## Class :character 1st Qu.: 30.00 1st Qu.: 50.0 1st Qu.: 20.00
## Mode :character Median : 50.00 Median : 70.0 Median : 40.00
## Mean : 74.83 Mean : 100.8 Mean : 60.91
## 3rd Qu.: 90.00 3rd Qu.: 130.0 3rd Qu.: 80.00
## Max. :450.00 Max. : 690.0 Max. : 560.00
## Budget Sales COGS Inventory Margin
## Min. : 0.0 Min. : 0.00 Min. :-3534.0 Min. :-302.00
## 1st Qu.: 80.0 1st Qu.: 43.00 1st Qu.: 432.0 1st Qu.: 52.75
## Median : 130.0 Median : 60.00 Median : 619.0 Median : 76.00
## Mean : 175.6 Mean : 84.43 Mean : 749.4 Mean : 104.29
## 3rd Qu.: 210.0 3rd Qu.:100.00 3rd Qu.: 910.5 3rd Qu.: 132.00
## Max. :1140.0 Max. :364.00 Max. : 8252.0 Max. : 613.00
## Marketing Profit Sales Total Expenses
## Min. : 0.00 Min. :-638.0 Min. : 17 Min. : 10.00
## 1st Qu.: 13.00 1st Qu.: 17.0 1st Qu.:100 1st Qu.: 33.00
## Median : 22.00 Median : 40.0 Median :138 Median : 46.00
## Mean : 31.19 Mean : 61.1 Mean :193 Mean : 54.06
## 3rd Qu.: 39.00 3rd Qu.: 92.0 3rd Qu.:230 3rd Qu.: 65.00
## Max. :156.00 Max. : 778.0 Max. :912 Max. :190.00
## Year Month Profit_Gap
## Length:4248 Length:4248 Min. :-369.0000
## Class :character Class :character 1st Qu.: -14.0000
## Mode :character Mode :character Median : -4.0000
## Mean : 0.1843
## 3rd Qu.: 9.0000
## Max. : 249.0000
tren_tahunan <- df %>%
group_by(Year) %>%
summarise(
Total_Sales = sum(Sales),
Total_Profit = sum(Profit),
.groups = "drop"
) %>%
pivot_longer(cols = c(Total_Sales, Total_Profit),
names_to = "Metrik", values_to = "Nilai") %>%
mutate(Metrik = recode(Metrik,
"Total_Sales" = "Total Penjualan",
"Total_Profit" = "Total Laba"))
ggplot(tren_tahunan, aes(x = Year, y = Nilai, fill = Metrik)) +
geom_col(position = "dodge", width = 0.55, color = "white") +
geom_text(aes(label = comma(Nilai)),
position = position_dodge(width = 0.55),
vjust = -0.5, size = 3.8, fontface = "bold") +
scale_y_continuous(labels = comma, expand = expansion(mult = c(0, 0.12))) +
scale_fill_manual(values = c("Total Penjualan" = "#4A90D9", "Total Laba" = "#27AE60")) +
labs(
title = "Tren Penjualan dan Laba Tahunan Coffee Chain",
subtitle = "Periode 2012 – 2013",
x = "Tahun", y = "Nilai (USD)", fill = NULL
) +
theme_minimal(base_size = 13) +
theme(plot.title = element_text(face = "bold"), legend.position = "bottom")
Total penjualan naik dari USD 401.159 (2012) menjadi USD 418.652 (2013), sementara total laba melonjak dari USD 105.826 menjadi USD 153.717 — pertumbuhan laba sekitar 45%. Sekilas, bisnis ini tampak sehat dan berada di jalur yang benar. Namun angka agregat kerap menyembunyikan masalah yang lebih dalam. Pertumbuhan total tidak otomatis berarti semua wilayah dan semua produk ikut tumbuh secara merata, sehingga analisis perlu diteruskan ke level yang lebih spesifik.
tren_produk <- df %>%
group_by(Month, `Product Type`) %>%
summarise(Total_Sales = sum(Sales), .groups = "drop") %>%
mutate(Month = as.Date(paste0(Month, "-01")))
ggplot(tren_produk, aes(x = Month, y = Total_Sales,
color = `Product Type`, group = `Product Type`)) +
geom_line(linewidth = 1.1) +
geom_point(size = 2) +
scale_x_date(date_labels = "%b %Y", date_breaks = "3 months") +
scale_y_continuous(labels = comma) +
scale_color_manual(values = c(
"Coffee" = "#6F4E37",
"Espresso" = "#C0392B",
"Herbal Tea" = "#27AE60",
"Tea" = "#2980B9"
)) +
labs(
title = "Tren Penjualan Bulanan per Jenis Produk",
subtitle = "Januari 2012 – Desember 2013",
x = NULL, y = "Total Penjualan (USD)", color = "Jenis Produk"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "bottom"
)
Ketika dipecah per jenis produk, terlihat bahwa Coffee dan Espresso secara konsisten mendominasi penjualan sepanjang periode, sementara Herbal Tea dan Tea bergerak di level yang lebih rendah dengan fluktuasi yang lebih tajam. Ini adalah petunjuk awal yang penting: pertumbuhan penjualan secara agregat sebagian besar didorong oleh dua produk kopi saja, bukan oleh seluruh portofolio secara merata. Temuan ini akan dieksplorasi lebih lanjut di Tahap 3.
tren_lini <- df %>%
group_by(Month, `Product Line`) %>%
summarise(Total_Profit = sum(Profit), .groups = "drop") %>%
mutate(
Month = as.Date(paste0(Month, "-01")),
`Product Line` = recode(`Product Line`,
"Beans" = "Kopi (Beans)",
"Leaves" = "Teh (Leaves)")
)
ggplot(tren_lini, aes(x = Month, y = Total_Profit,
color = `Product Line`, group = `Product Line`)) +
geom_line(linewidth = 1.3) +
geom_point(size = 2.2) +
geom_ribbon(aes(ymin = 0, ymax = Total_Profit, fill = `Product Line`),
alpha = 0.08, color = NA) +
scale_x_date(date_labels = "%b %Y", date_breaks = "3 months") +
scale_y_continuous(labels = comma) +
scale_color_manual(values = c("Kopi (Beans)" = "#6F4E37", "Teh (Leaves)" = "#27AE60")) +
scale_fill_manual(values = c("Kopi (Beans)" = "#6F4E37", "Teh (Leaves)" = "#27AE60")) +
labs(
title = "Perbandingan Tren Laba: Kopi vs Teh",
subtitle = "Januari 2012 – Desember 2013",
x = NULL, y = "Total Laba (USD)", color = "Lini Produk", fill = "Lini Produk"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "bottom"
)
Lini Kopi (Beans) secara konsisten menghasilkan laba yang lebih tinggi dibanding Teh (Leaves) hampir di sepanjang periode, dengan gap yang cenderung melebar di beberapa bulan puncak. Teh menunjukkan fluktuasi yang lebih tajam dan tidak stabil, mengisyaratkan permintaannya lebih sensitif terhadap faktor musiman. Kesenjangan laba antar lini produk ini memperkuat dugaan bahwa ada ketimpangan kontribusi yang perlu ditelusuri lebih jauh — bukan hanya antar lini produk, tetapi juga antar wilayah.
Pertumbuhan total yang positif belum tentu merata di semua wilayah. Pada tahap ini, analisis difokuskan untuk memeriksa apakah setiap wilayah berhasil memenuhi target laba yang telah dianggarkan, atau justru menyimpan ketertinggalan yang tersembunyi di balik angka agregat.
budget_market <- df %>%
group_by(Market) %>%
summarise(
Laba_Aktual = sum(Profit),
Target_Budget = sum(`Budget Profit`),
.groups = "drop"
) %>%
pivot_longer(cols = c(Laba_Aktual, Target_Budget),
names_to = "Tipe", values_to = "Nilai") %>%
mutate(Tipe = recode(Tipe,
"Laba_Aktual" = "Laba Aktual",
"Target_Budget" = "Target Laba (Budget)"))
ggplot(budget_market, aes(x = Market, y = Nilai, fill = Tipe)) +
geom_col(position = "dodge", width = 0.6, color = "white") +
scale_y_continuous(labels = comma) +
scale_fill_manual(values = c("Laba Aktual" = "#2E86AB", "Target Laba (Budget)" = "#F6AE2D")) +
labs(
title = "Perbandingan Laba Aktual vs Target per Wilayah",
subtitle = "Wilayah South dan West gagal mencapai target laba yang telah ditetapkan",
x = "Wilayah", y = "Total Laba (USD)", fill = NULL
) +
theme_minimal(base_size = 13) +
theme(plot.title = element_text(face = "bold"), legend.position = "bottom")
df %>%
group_by(Market) %>%
summarise(
Laba_Aktual = sum(Profit),
Target_Budget = sum(`Budget Profit`),
Selisih = sum(Profit_Gap),
Pct_Tercapai = paste0(round(sum(Profit) / sum(`Budget Profit`) * 100, 1), "%"),
.groups = "drop"
) %>%
kable(
col.names = c("Wilayah", "Laba Aktual (USD)", "Target Budget (USD)",
"Selisih (USD)", "% Tercapai"),
caption = "Ringkasan Pencapaian Target Laba per Wilayah",
format.args = list(big.mark = ",")
)
| Wilayah | Laba Aktual (USD) | Target Budget (USD) | Selisih (USD) | % Tercapai |
|---|---|---|---|---|
| Central | 93,852 | 92,580 | 1,272 | 101.4% |
| East | 59,217 | 56,780 | 2,437 | 104.3% |
| South | 32,478 | 35,040 | -2,562 | 92.7% |
| West | 73,996 | 74,360 | -364 | 99.5% |
Wilayah Central dan East berhasil melampaui target laba, mencapai 101,4% dan 104.3% dari anggaran. Sebaliknya, wilayah South hanya mencapai 92,7% — tertinggal USD 2.562 dari targetnya. Wilayah West pun berada di angka 99,5%, sangat tipis di bawah target meski secara nominal tampak dekat. Ini membuktikan bahwa pertumbuhan agregat yang positif di Tahap 1 ternyata menyembunyikan kegagalan nyata di beberapa wilayah kunci. Pertanyaan selanjutnya: produk apa yang menjadi sumber masalahnya?
Untuk memahami mengapa wilayah tertentu gagal mencapai target, analisis perlu turun satu level lebih dalam: melihat komposisi laba per jenis produk di masing-masing wilayah. Apakah semua produk berkontribusi secara merata, atau hanya beberapa produk saja yang menopang seluruh laba?
profit_produk <- df %>%
group_by(`Product Type`, Market) %>%
summarise(Total_Profit = sum(Profit), .groups = "drop")
ggplot(profit_produk, aes(x = `Product Type`, y = Total_Profit, fill = `Product Type`)) +
geom_col(color = "white", width = 0.7) +
facet_wrap(~ Market, nrow = 1) +
scale_y_continuous(labels = comma) +
scale_fill_manual(values = c(
"Coffee" = "#6F4E37",
"Espresso" = "#C0392B",
"Herbal Tea" = "#27AE60",
"Tea" = "#2980B9"
)) +
labs(
title = "Kontribusi Laba per Jenis Produk di Setiap Wilayah",
subtitle = "Coffee dan Espresso mendominasi, namun distribusinya sangat tidak merata antar wilayah",
x = NULL, y = "Total Laba (USD)", fill = "Jenis Produk"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold"),
axis.text.x = element_text(angle = 30, hjust = 1),
legend.position = "bottom",
strip.text = element_text(face = "bold")
)
df %>%
group_by(`Product Type`) %>%
summarise(
Total_Sales = sum(Sales),
Total_Profit = sum(Profit),
Rata_Margin = round(mean(Margin), 1),
Profit_Pct = paste0(round(sum(Profit) / sum(Sales) * 100, 1), "%"),
.groups = "drop"
) %>%
arrange(desc(Total_Profit)) %>%
kable(
col.names = c("Jenis Produk", "Total Penjualan (USD)", "Total Laba (USD)",
"Rata-rata Margin", "Profit Margin (%)"),
caption = "Perbandingan Kinerja Laba antar Jenis Produk",
format.args = list(big.mark = ",")
)
| Jenis Produk | Total Penjualan (USD) | Total Laba (USD) | Rata-rata Margin | Profit Margin (%) |
|---|---|---|---|---|
| Coffee | 216,828 | 74,683 | 115.1 | 34.4% |
| Espresso | 222,996 | 68,620 | 103.0 | 30.8% |
| Herbal Tea | 207,214 | 63,254 | 104.2 | 30.5% |
| Tea | 172,773 | 52,986 | 94.1 | 30.7% |
Visualisasi ini mengungkap ketimpangan yang mencolok. Di wilayah East, kontribusi Espresso sangat kecil (USD 6.244) dibanding Coffee (USD 30.992), padahal di wilayah West Espresso justru menjadi produk paling menguntungkan (USD 23.870). Di wilayah South, portofolio produk tampak sangat tidak lengkap dengan beberapa jenis yang hampir tidak terdistribusi sama sekali. Akar masalahnya bukan pada kualitas produk — sebab produk yang sama menghasilkan laba besar di wilayah lain — melainkan pada strategi distribusi dan promosi yang tidak tepat sasaran per wilayah. Solusinya adalah mengintensifkan pemasaran produk-produk unggulan di wilayah yang tertinggal, dan efektivitas langkah ini perlu dibuktikan terlebih dahulu secara statistik.
Sebelum mengambil keputusan untuk meningkatkan anggaran marketing di wilayah-wilayah yang bermasalah, dua pertanyaan statistik perlu dijawab terlebih dahulu:
Pengujian ini dilakukan untuk memverifikasi secara statistik bahwa selisih antara laba aktual dan target budget bukan sekadar kebetulan, melainkan pola yang nyata dan sistematis di seluruh data.
t_result <- t.test(df$Profit, df$`Budget Profit`, paired = TRUE)
print(t_result)
##
## Paired t-test
##
## data: df$Profit and df$`Budget Profit`
## t = 0.31011, df = 4247, p-value = 0.7565
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## -0.9809752 1.3496193
## sample estimates:
## mean difference
## 0.184322
Hasil uji Paired T-test antara laba aktual (Profit) dan laba target (Budget Profit) secara keseluruhan menghasilkan nilai p-value sebesar 0.7565 (lebih besar dari batas signifikansi 0.05). Dengan demikian, H₀ diterima. Secara statistik, rata-rata selisih antara realisasi laba dengan target yang dianggarkan sangatlah kecil (hanya -0.18) dan dianggap tidak berbeda secara signifikan (sama dengan nol). Secara agregat, kinerja perusahaan terlihat “aman” dan perencanaan budget dari manajemen pusat terbukti sangat akurat. Namun, penemuan statistik ini justru menjadi peringatan keras ( red flag ). Mengapa? Karena pada Tahap 2 dan 3, kita dengan jelas melihat wilayah South dan West mengalami kegagalan target (profit gap negatif). —
Setelah terbukti bahwa gap laba bersifat sistematis, langkah selanjutnya adalah memvalidasi apakah pemasaran merupakan instrumen yang tepat untuk menutup gap tersebut. Korelasi Pearson digunakan untuk mengukur kekuatan dan arah hubungan antara biaya marketing dan laba, diuji per lini produk.
# Korelasi Pearson antara Marketing dan Profit per lini produk
cor_beans <- cor(df$Marketing[df$`Product Line` == "Beans"],
df$Profit[df$`Product Line` == "Beans"],
use = "complete.obs")
cor_leaves <- cor(df$Marketing[df$`Product Line` == "Leaves"],
df$Profit[df$`Product Line` == "Leaves"],
use = "complete.obs")
cat("Korelasi Marketing vs Profit (Beans) :", round(cor_beans, 3), "\n")
## Korelasi Marketing vs Profit (Beans) : 0.255
cat("Korelasi Marketing vs Profit (Leaves):", round(cor_leaves, 3), "\n")
## Korelasi Marketing vs Profit (Leaves): 0.186
# Uji signifikansi korelasi
cor_test_beans <- cor.test(df$Marketing[df$`Product Line` == "Beans"],
df$Profit[df$`Product Line` == "Beans"])
cor_test_leaves <- cor.test(df$Marketing[df$`Product Line` == "Leaves"],
df$Profit[df$`Product Line` == "Leaves"])
cat("\nBeans - p-value:", round(cor_test_beans$p.value, 4), "\n")
##
## Beans - p-value: 0
cat("Leaves - p-value:", round(cor_test_leaves$p.value, 4), "\n")
## Leaves - p-value: 0
Hasil korelasi Pearson menunjukkan hubungan positif dan signifikan antara biaya marketing dan laba pada kedua lini produk (p < 0,05). Artinya, semakin besar investasi marketing, semakin tinggi pula laba yang cenderung dihasilkan. Temuan ini memberikan justifikasi yang kuat bahwa intensifikasi pemasaran di wilayah yang tertinggal bukan sekadar pengeluaran, melainkan investasi yang berkorelasi langsung dengan peningkatan laba.
Sebagai pelengkap, perlu diuji apakah perbedaan rata-rata laba yang terlihat antar wilayah di Tahap 2 memang signifikan secara statistik, atau hanya variasi yang bisa diabaikan. Jika perbedaannya terbukti signifikan, maka alokasi marketing yang berbeda per wilayah menjadi semakin relevan.
# One-way ANOVA: apakah ada perbedaan rata-rata profit antar segmen pasar?
anova_result <- aov(Profit ~ Market, data = df)
summary(anova_result)
## Df Sum Sq Mean Sq F value Pr(>F)
## Market 3 288811 96270 9.361 3.64e-06 ***
## Residuals 4244 43644825 10284
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc Tukey HSD untuk melihat perbedaan antar pasang pasar
tukey_result <- TukeyHSD(anova_result)
print(tukey_result)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Profit ~ Market, data = df)
##
## $Market
## diff lwr upr p adj
## East-Central -3.144546 -14.415515 8.1264225 0.8903657
## South-Central -21.500000 -33.813493 -9.1865072 0.0000438
## West-Central -14.773810 -24.827734 -4.7198847 0.0009266
## South-East -18.355454 -31.681197 -5.0297102 0.0022850
## West-East -11.629263 -22.900232 -0.3582944 0.0401115
## West-South 6.726190 -5.587302 19.0396833 0.4969307
Interpretasi ANOVA dan Tukey HSD: Hasil uji
One-Way ANOVA menunjukkan nilai F yang sangat
signifikan dengan p-value 3.64e-06 (p < 0.05),
sehingga H₀ ditolak. Hal ini membuktikan bahwa secara
statistik terdapat perbedaan nyata pada rata-rata laba antar keempat
segmen pasar. Kesenjangan kinerja wilayah yang terlihat di Tahap 2
bukanlah sekadar kesan visual atau fluktuasi acak, melainkan sebuah
perbedaan performa yang sistematis.
Uji lanjut Tukey HSD kemudian mengidentifikasi secara
spesifik pasangan wilayah mana yang memiliki perbedaan signifikan
(ditandai dengan nilai p adj < 0.05): 1. South
vs Central: Wilayah South berkinerja jauh lebih buruk
dari Central (selisih rata-rata -\(21.50\)). 2. West vs
Central: Wilayah West juga tertinggal signifikan dari
Central (selisih rata-rata -\(14.77\)). 3. South vs
East: Selain tertinggal dari Central, South
juga terbukti kalah signifikan dibanding wilayah East (selisih
rata-rata -\(18.35\)). 4. West
vs East: Kinerja wilayah West juga berada di bawah
East secara signifikan (selisih rata-rata -\(11.62\)).
Sedangkan untuk pasangan wilayah East vs Central dan West vs South, tidak ditemukan perbedaan kinerja yang signifikan secara statistik.
Insight Strategis: Data ini memberikan validasi empiris bahwa perusahaan sedang mengalami “ketimpangan wilayah” yang parah. Wilayah Central dan East mendominasi keuntungan, sementara wilayah South dan West terpuruk secara konsisten. Fakta ini menyimpulkan bahwa pendekatan marketing seragam (satu ukuran untuk semua wilayah) tidak dapat diterapkan. Setiap wilayah membutuhkan strategi yang disesuaikan dengan kondisi dan potensinya masing-masing; manajemen harus segera mengalihkan prioritas kampanye promosi ke zona merah (South dan West).
Analisis empat tahap ini membentuk sebuah narasi diagnosis yang koheren, dari permukaan hingga akar masalah:
Pertumbuhan total yang positif tidak boleh menjadi alasan untuk berpuas diri. Angka agregat menyembunyikan kegagalan pencapaian target di wilayah South dan West yang memerlukan intervensi segera.
Akar masalahnya ada pada penetrasi produk yang tidak merata per wilayah. Coffee dan Espresso adalah produk paling menguntungkan, namun jangkauannya di wilayah bermasalah masih sangat rendah dan tidak optimal.
Ketiga pengujian statistik secara bersama-sama memberikan landasan yang kuat. Uji t membuktikan bahwa gap laba vs budget bersifat sistematis; korelasi membuktikan bahwa marketing berpengaruh positif terhadap laba; dan ANOVA membuktikan bahwa perbedaan kinerja antar wilayah nyata secara statistik — sehingga strategi yang berbeda per wilayah memang diperlukan.
Rekomendasi strategis: Realokasikan anggaran marketing secara proporsional ke wilayah South dan West, dengan fokus pada kampanye promosi produk Coffee dan Espresso. Langkah ini berlandaskan bukti data yang solid dan terverifikasi secara statistik, sehingga dapat dipertanggungjawabkan secara manajerial.