Pesatnya pertumbuhan industri kopi telah ditandai dengan meningkatnya jumlah kedai kopi di berbagai kota pada beberapa tahun terakhir. Menghadapi persaingan industri yang makin ketat, bagi perusahaan yang akan terjun di industri ini tentu perlu pemahaman dinamika penjualan dan minat konsumen dengan baik. Oleh karena itu, laporan ini disusun untuk mengeksplorasi dan memvisualisasikan data penjualan kopi dengan menerapkan berbagai uji statistik seperti normalitas, perbedaan rata-rata, dan korelasi guna mengidentifikasi faktor yang mempengaruhi performa penjualan, sehingga dapat menjadi acuan untuk mengambil keputusan yang strategis terutama di bidang pemasaran dan penjualan.
Data yang digunakan merupakan hasil ekspor dari basis data relasional yang terdiri atas tiga tabel utama: Location, Product, dan factTable yang menyimpan fakta transaksi penjualan.
## Warning: package 'readxl' was built under R version 4.4.3
## Warning: package 'kableExtra' was built under R version 4.4.3
data <- read_excel("C:/Users/MyBook Hype AMD/Downloads/SIM/Coffee Chain Datasets.xlsx")
data[1:10, ] %>%
knitr::kable() %>%
kable_styling(full_width = FALSE) %>%
scroll_box(width = "100%", height = "300px")| Area Code | Date | Market | Market Size | Product | Product Line | Product Type | State | Type | Budget COGS | Budget Margin | Budget Profit | Budget Sales | COGS | Inventory | Margin | Marketing | Profit | Sales | Total Expenses |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 719 | 2012-01-01 | Central | Major Market | Amaretto | Beans | Coffee | Colorado | Regular | 90 | 130 | 100 | 220 | 89 | 777 | 130 | 24 | 94 | 219 | 36 |
| 970 | 2012-01-01 | Central | Major Market | Colombian | Beans | Coffee | Colorado | Regular | 80 | 110 | 80 | 190 | 83 | 623 | 107 | 27 | 68 | 190 | 39 |
| 970 | 2012-01-01 | Central | Major Market | Decaf Irish Cream | Beans | Coffee | Colorado | Decaf | 100 | 140 | 110 | 240 | 95 | 821 | 139 | 26 | 101 | 234 | 38 |
| 303 | 2012-01-01 | Central | Major Market | Green Tea | Leaves | Tea | Colorado | Regular | 30 | 50 | 30 | 80 | 44 | 623 | 56 | 14 | 30 | 100 | 26 |
| 303 | 2012-01-01 | Central | Major Market | Caffe Mocha | Beans | Espresso | Colorado | Regular | 60 | 90 | 70 | 150 | 54 | 456 | 80 | 15 | 54 | 134 | 26 |
| 720 | 2012-01-01 | Central | Major Market | Decaf Espresso | Beans | Espresso | Colorado | Decaf | 80 | 130 | 80 | 210 | 72 | 558 | 108 | 23 | 53 | 180 | 55 |
| 970 | 2012-01-01 | Central | Major Market | Chamomile | Leaves | Herbal Tea | Colorado | Decaf | 140 | 160 | 110 | 300 | 170 | 1091 | 171 | 47 | 99 | 341 | 72 |
| 719 | 2012-01-01 | Central | Major Market | Lemon | Leaves | Herbal Tea | Colorado | Decaf | 50 | 80 | 20 | 130 | 63 | 435 | 87 | 57 | 0 | 150 | 87 |
| 970 | 2012-01-01 | Central | Major Market | Mint | Leaves | Herbal Tea | Colorado | Decaf | 50 | 70 | 40 | 120 | 60 | 336 | 80 | 19 | 33 | 140 | 47 |
| 719 | 2012-01-01 | Central | Major Market | Darjeeling | Leaves | Tea | Colorado | Regular | 40 | 70 | 20 | 110 | 58 | 338 | 72 | 22 | 17 | 130 | 55 |
Area Code : Kode area.Date : Tanggal transaksiMarket : Daerah atau wilayahMarket Size : Ukuran dari MarketProduct: Nama produk spesifik (misal: Colombian, Caffe
Mocha, Lemon)Product Line : Kategori produk (Beans, Leaves)Product Type : Jenis produk (Coffee, Espresso, Tea,
Herbal Tea)State : Negara bagianType : Kategori (reguler atau decaf)Budget COGS, Budget Margin,
Budget Profit, Budget Sales : Nilai anggaran
untuk Harga Pokok Penjualan, Margin, Profit, dan PenjualanCOGS : Harga pokok penjualan aktualInventory : Jumlah persediaanMargin : Realisasi margin aktualMarketing : Biaya pemasaran yang dikeluarkanProfit : Realisasi keuntungan aktualSales : Realisasi penjualan aktualTotal Expenses
: Total biaya yang dikeluarkanEksplorasi data adalah langkah memahami data secara keseluruhan sebelum akhirnya melakukan analisis data. Eksplorasi data meliputi melihat tipe data, data unik, dan sebaran data.
## tibble [4,248 × 20] (S3: tbl_df/tbl/data.frame)
## $ Area Code : num [1:4248] 719 970 970 303 303 720 970 719 970 719 ...
## $ Date : POSIXct[1:4248], format: "2012-01-01" "2012-01-01" ...
## $ Market : chr [1:4248] "Central" "Central" "Central" "Central" ...
## $ Market Size : chr [1:4248] "Major Market" "Major Market" "Major Market" "Major Market" ...
## $ Product : chr [1:4248] "Amaretto" "Colombian" "Decaf Irish Cream" "Green Tea" ...
## $ Product Line : chr [1:4248] "Beans" "Beans" "Beans" "Leaves" ...
## $ Product Type : chr [1:4248] "Coffee" "Coffee" "Coffee" "Tea" ...
## $ State : chr [1:4248] "Colorado" "Colorado" "Colorado" "Colorado" ...
## $ Type : chr [1:4248] "Regular" "Regular" "Decaf" "Regular" ...
## $ Budget COGS : num [1:4248] 90 80 100 30 60 80 140 50 50 40 ...
## $ Budget Margin : num [1:4248] 130 110 140 50 90 130 160 80 70 70 ...
## $ Budget Profit : num [1:4248] 100 80 110 30 70 80 110 20 40 20 ...
## $ Budget Sales : num [1:4248] 220 190 240 80 150 210 300 130 120 110 ...
## $ COGS : num [1:4248] 89 83 95 44 54 72 170 63 60 58 ...
## $ Inventory : num [1:4248] 777 623 821 623 456 ...
## $ Margin : num [1:4248] 130 107 139 56 80 108 171 87 80 72 ...
## $ Marketing : num [1:4248] 24 27 26 14 15 23 47 57 19 22 ...
## $ Profit : num [1:4248] 94 68 101 30 54 53 99 0 33 17 ...
## $ Sales : num [1:4248] 219 190 234 100 134 180 341 150 140 130 ...
## $ Total Expenses: num [1:4248] 36 39 38 26 26 55 72 87 47 55 ...
Terdapat 4.248 baris data dengan 20 kolom variabel. Terdapat 7 tipe
data chr (data teks), 12 tipe data num
(numerik), dan 1 tipe data POSIXct (data yang menyimpan
waktu dan tanggal).
## Area Code Date Market Market Size Product
## 0 0 0 0 0
## Product Line Product Type State Type Budget COGS
## 0 0 0 0 0
## Budget Margin Budget Profit Budget Sales COGS Inventory
## 0 0 0 0 0
## Margin Marketing Profit Sales Total Expenses
## 0 0 0 0 0
Terlihat tidak ada data null atau yang data kosong. Hal ini penting agar analisis data bisa dilakukan dengan baik, jika terdapat null, maka data tersebut harus ditangani terlebih dahulu.
Melihat kategori pada kolom bertipe chr atau teks.
for(col in names(data)) {
if(is.character(data[[col]])) {
cat("\nNilai unik pada kolom : ", col, ":\n")
print(unique(data[[col]]))
}
}##
## Nilai unik pada kolom : Market :
## [1] "Central" "East" "South" "West"
##
## Nilai unik pada kolom : Market Size :
## [1] "Major Market" "Small Market"
##
## Nilai unik pada kolom : Product :
## [1] "Amaretto" "Colombian" "Decaf Irish Cream"
## [4] "Green Tea" "Caffe Mocha" "Decaf Espresso"
## [7] "Chamomile" "Lemon" "Mint"
## [10] "Darjeeling" "Earl Grey" "Regular Espresso"
## [13] "Caffe Latte"
##
## Nilai unik pada kolom : Product Line :
## [1] "Beans" "Leaves"
##
## Nilai unik pada kolom : Product Type :
## [1] "Coffee" "Tea" "Espresso" "Herbal Tea"
##
## Nilai unik pada kolom : State :
## [1] "Colorado" "Illinois" "Iowa" "Missouri"
## [5] "Ohio" "Wisconsin" "Connecticut" "Florida"
## [9] "Massachusetts" "New Hampshire" "New York" "Louisiana"
## [13] "New Mexico" "Oklahoma" "Texas" "Utah"
## [17] "California" "Nevada" "Oregon" "Washington"
##
## Nilai unik pada kolom : Type :
## [1] "Regular" "Decaf"
Statistik deskiptif dilakukan untuk melihat persebaran data menggunakan mean, median, variasi, dan standar deviasi. Langkah ini dilakukan untuk melihat gambaran dasar persebaran data yang mungkin berdampak pada analisis.
Karena kolom Area Code merupakan kode unik yang tidak
akan dianalisis, maka kolom tersebut dihapus terlebih dahulu.
## # A tibble: 4,248 × 19
## Date Market `Market Size` Product `Product Line`
## <dttm> <chr> <chr> <chr> <chr>
## 1 2012-01-01 00:00:00 Central Major Market Amaretto Beans
## 2 2012-01-01 00:00:00 Central Major Market Colombian Beans
## 3 2012-01-01 00:00:00 Central Major Market Decaf Irish Cream Beans
## 4 2012-01-01 00:00:00 Central Major Market Green Tea Leaves
## 5 2012-01-01 00:00:00 Central Major Market Caffe Mocha Beans
## 6 2012-01-01 00:00:00 Central Major Market Decaf Espresso Beans
## 7 2012-01-01 00:00:00 Central Major Market Chamomile Leaves
## 8 2012-01-01 00:00:00 Central Major Market Lemon Leaves
## 9 2012-01-01 00:00:00 Central Major Market Mint Leaves
## 10 2012-01-01 00:00:00 Central Major Market Darjeeling Leaves
## # ℹ 4,238 more rows
## # ℹ 14 more variables: `Product Type` <chr>, State <chr>, Type <chr>,
## # `Budget COGS` <dbl>, `Budget Margin` <dbl>, `Budget Profit` <dbl>,
## # `Budget Sales` <dbl>, COGS <dbl>, Inventory <dbl>, Margin <dbl>,
## # Marketing <dbl>, Profit <dbl>, Sales <dbl>, `Total Expenses` <dbl>
Rumus yang digunakan untuk statistik deskriptif:
Mean \[\mu = \frac{1}{N} \sum_{i=1}^{N} x_i\]
Standar Deviasi \[\sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2}\]
Variansi \[\sigma^2 = \frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2\]
for(col in names(data)) {
if(is.numeric(data[[col]])) {
kolom <- data[[col]]
mean_val <- mean(kolom, na.rm = TRUE)
median_val <- median(kolom, na.rm = TRUE)
sd_val <- sd(kolom, na.rm = TRUE)
var_val <- var(kolom, na.rm = TRUE)
cat("\nStatistik deskriptif untuk kolom:", col,
"\n- Mean :", round(mean_val, 2),
"\n- Median :", round(median_val, 2),
"\n- Standar Deviasi :", round(sd_val, 2),
"\n- Variansi :", round(var_val, 2), "\n")
}
}##
## Statistik deskriptif untuk kolom: Budget COGS
## - Mean : 74.83
## - Median : 50
## - Standar Deviasi : 66.24
## - Variansi : 4387.49
##
## Statistik deskriptif untuk kolom: Budget Margin
## - Mean : 100.82
## - Median : 70
## - Standar Deviasi : 92.6
## - Variansi : 8575.26
##
## Statistik deskriptif untuk kolom: Budget Profit
## - Mean : 60.91
## - Median : 40
## - Standar Deviasi : 79.55
## - Variansi : 6327.59
##
## Statistik deskriptif untuk kolom: Budget Sales
## - Mean : 175.65
## - Median : 130
## - Standar Deviasi : 148.89
## - Variansi : 22168.69
##
## Statistik deskriptif untuk kolom: COGS
## - Mean : 84.43
## - Median : 60
## - Standar Deviasi : 67.25
## - Variansi : 4522.53
##
## Statistik deskriptif untuk kolom: Inventory
## - Mean : 749.38
## - Median : 619
## - Standar Deviasi : 661.03
## - Variansi : 436963.2
##
## Statistik deskriptif untuk kolom: Margin
## - Mean : 104.29
## - Median : 76
## - Standar Deviasi : 94.34
## - Variansi : 8900.51
##
## Statistik deskriptif untuk kolom: Marketing
## - Mean : 31.19
## - Median : 22
## - Standar Deviasi : 27.02
## - Variansi : 730.26
##
## Statistik deskriptif untuk kolom: Profit
## - Mean : 61.1
## - Median : 40
## - Standar Deviasi : 101.71
## - Variansi : 10344.63
##
## Statistik deskriptif untuk kolom: Sales
## - Mean : 192.99
## - Median : 138
## - Standar Deviasi : 151.13
## - Variansi : 22841.22
##
## Statistik deskriptif untuk kolom: Total Expenses
## - Mean : 54.06
## - Median : 46
## - Standar Deviasi : 32.35
## - Variansi : 1046.69
Pada tahap ini dilakukan analisis menggunakan pendekatan statistik untuk membantu perusahaan dalam membuat keputusan berdasarkan data yang ada. Untuk memilih uji statistik yang tepat harus melihat distribusi data apakah normal atau tidak. Dalam uji statistik, kita berfokus pada p-valuenya, yaitu nilai proabilitas untuk menilai suatu asumsi atau hipotesis (\(H_0\)). Jika p-valuenya lebih kecil daritingkat signifikansi (umumnya 0.05), maka cukup bukti untuk menolak hipotesisnya.
Dalam upaya mengelola persediaan secara efisien, perusahaan butuh
mengetahui apakah terdapat hubungan antara Inventory dengan
total penjualan Sales. Menggunakan uji korelasi.
Sebelum melakukan uji korelasi, diperlukan pengecekan normalitas data menggunakan uji Shapiro-Wilk.
\(H_0\): Data berdistribusi normal \(H_1\): Data tidak berdistribusi normal
c_1 <- c("Inventory", "Sales")
c_1_selected <- data[, c_1]
c_1_normality <- lapply(c_1_selected, shapiro.test)
c_1_normality## $Inventory
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.71102, p-value < 2.2e-16
##
##
## $Sales
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.78969, p-value < 2.2e-16
Karena data tidak berdistribusi normal, maka dilakukan uji korelasi
spearman. \[\rho = 1 - \frac{6 \sum
d_i^2}{n(n^2 - 1)}\] \(H_0\):
Tidak ada korelasi yang signifikan antara Inventory dan
Sales \(H_1\): Ada
korelasi yang signifikan antara Inventory dan
Sales
##
## Spearman's rank correlation rho
##
## data: data$Inventory and data$Sales
## S = 8007938723, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.3732151
Diperoleh p-value < 0.05 sehingga \(H_0\) ditolak. Dapat disimpulkan bahwa
terdapat korelasi yang signifikan antara Inventory dan
Sales.
Perusahaan ingin mengetahui apakah terdapat perbedaan yang signifikan
antara dua komponen biaya utama, yaitu Harga Pokok Penjualan
(COGS) dan Total Biaya Operasional
(Total Expenses). Analisis ini penting untuk memahami
struktur biaya perusahaan.
Dilakukan pengecekan normalitas data menggunakan uji Shapiro-Wilk.
\(H_0\): Data berdistribusi normal \(H_1\): Data tidak berdistribusi normal
c_2 <- c("COGS", "Total Expenses")
c_2_selected <- data[, c_2]
c_2_normality <- lapply(c_2_selected, shapiro.test)
c_2_normality## $COGS
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.80416, p-value < 2.2e-16
##
##
## $`Total Expenses`
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.88605, p-value < 2.2e-16
Kedua variabel memiliki p-value < 0.05 atau tidak berdistribusi normal. Maka digunakan uji Wilcoxon Signed-Rank Test untuk menguji data berpasangan.
\(H_0\): Tidak ada perbedaan yang
signifikan antara COGS dan Total Expenses
\(H_1\): Ada perbedaan yang signifikan
antara COGS dan Total Expenses
##
## Wilcoxon signed rank test with continuity correction
##
## data: data$COGS and data$`Total Expenses`
## V = 7389225, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Diperoleh p-value < 0.05 sehingga \(H_0\) ditolak. Dapat disimpulkan bahwa
terdapat perbedaan yang signifikan antara COGS dan
Total Expenses.
Ingin diketahui apakah terdapat perbedaan profit yang signifikan
antara pasar besar (Major Market) dan pasar kecil
(Small Market).
Dilakukan pengecekan normalitas.
\(H_0\): Data berdistribusi normal \(H_1\): Data tidak berdistribusi normal
## Warning: package 'rstatix' was built under R version 4.4.3
##
## Attaching package: 'rstatix'
## The following object is masked from 'package:stats':
##
## filter
## # A tibble: 2 × 4
## `Market Size` variable statistic p
## <chr> <chr> <dbl> <dbl>
## 1 Major Market Profit 0.892 5.10e-33
## 2 Small Market Profit 0.687 3.78e-56
Kedua variabel memiliki p-value < 0.05 atau tidak berdistribusi normal. Maka digunakan uji non-parametrik Mann-Whitney U untuk dua kelompok.
\(H_0\): Tidak ada perbedaan profit
yang signifikan antara Major Market dan
Small Market \(H_1\): Ada
perbedaan profit yang signifikan antara Major Market dan
Small Market
##
## Wilcoxon rank sum test with continuity correction
##
## data: Profit by Market Size
## W = 2975087, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Diperoleh p-value < 0.05 sehingga \(H_0\) ditolak. Dapat disimpulkan bahwa
terdapat perbedaan profit yang signifikan
antaraMajor Market dan Small Market.
Perusahaan perlu untuk mengetahui hubungan antara wilayah pemasaran
(Market) dengan preferensi tipe produk
(Product Type). Informasi ini berguna untuk strategi stok
dan promosi spesifik wilayah.
\(H_0\): Tidak ada hubungan yang
signifikan antara Market dan Product Type
\(H_1\): Ada hubungan yang signifikan
antara Market dan Product Type
Uji yang digunakan adalah uji Chi- Square Test : \[\chi^2 = \sum_{i=1}^{r} \sum_{j=1}^{c} \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\]
##
## Coffee Espresso Herbal Tea Tea
## Central 384 288 336 336
## East 168 240 216 264
## South 192 288 192 0
## West 312 360 312 360
##
## Pearson's Chi-squared test
##
## data: c_4
## X-squared = 291.66, df = 9, p-value < 2.2e-16
Diperoleh p-value < 0.05 sehingga \(H_0\) ditolak. Dapat disimpulkan bahwa
terdapat hubungan yang signifikan antaraMarket dan
Product Type.
Untuk mempermudah melihat dan menganalisis data, diberikan gambaran atau visualisasi data untuk analisis sebelumnya.
Inventory vs Sales## Warning: package 'ggplot2' was built under R version 4.4.3
ggplot(data, aes(x = Inventory, y = Sales)) +
geom_point(alpha = 0.3, color = "steelblue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "Hubungan Inventory dan Sales",
x = "Inventory", y = "Sales") +
theme_minimal()## `geom_smooth()` using formula = 'y ~ x'
Visualisasi diatas menunjukkan hubungan positif yang signifikan antara
Inventory dan Sales, di mana peningkatan nilai
persediaan cenderung diikuti oleh kenaikan penjualan.
COGS vs Total Expenseslibrary(ggplot2)
ggplot(data, aes(x = COGS, y = `Total Expenses`)) +
geom_point(alpha = 0.3, color = "steelblue") +
geom_smooth(method = "lm", se = FALSE, color = "red", linetype = "dashed") +
labs( title = "Hubungan antara COGS dan Total Expenses", x = "Cost of Goods Sold", y = "Total Expenses"
) +
theme_minimal()## `geom_smooth()` using formula = 'y ~ x'
Visualisasi menunjukkan hubungan positif walaupun lemah antara variabel
COGS dan Total Expenses, di mana peningkatan
COGS tidak selalu diiringi kenaikan proporsional pada
Total Expenses.
Major Market vs Small Marketggplot(data, aes(x = `Market Size`, y = Profit, fill = `Market Size`)) +
geom_boxplot(alpha = 0.8, outlier.color = "gray", outlier.size = 1) +
scale_fill_manual(values = c("Major Market" = "blue", "Small Market" = "green")) +
labs(
title = "Perbandingan Profit antara Major Market dan Small Market",
x = "Ukuran Pasar",
y = "Profit"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.position = "none",
panel.grid.minor = element_blank()
)
Major Market memiliki median profit lebih tinggi dan
sebaran data lebih luas dibandingkan Small Market,
menandakan performa keuntungan yang lebih baik di pasar besar.
Market and Product Typeggplot(data, aes(x = Market, fill = `Product Type`)) +
geom_bar(position = "dodge", color = "white", width = 0.8) +
scale_fill_brewer(palette = "Set2") +
labs(
title = "Jumlah Transaksi per Product Type di Setiap Market",
x = "Market",
y = "Jumlah Transaksi",
fill = "Product Type"
) +
theme_minimal()
Proporsi tipe produk berbeda di setiap wilayah, dengan West didominasi
Coffee dan Espresso, sementara Central dan East memiliki komposisi yang
lebih merata.
Berikut kesimpulan berdasarkan analisis statistik yang telah dilakukan:
Berdasarkan seluruh analisis statistik yang telah dilakukan terhadap data penjualan kopi, dapat ditarik beberapa kesimpulan sebagai berikut:
Case 1 Terdapat korelasi positif yang signifikan antara
Inventory dan Sales (Spearman,
p-value < 0,05). Artinya, peningkatan nilai persediaan
cenderung diiringi oleh peningkatan penjualan, sehingga pengelolaan stok
yang memadai merupakan faktor penting dalam mendorong performa
penjualan.
Case 2 Terdapat perbedaan yang signifikan antara
COGS dan Total Expenses (Wilcoxon Signed-Rank,
p-value < 0,05). Rata-rata COGS lebih tinggi dibandingkan
Total Expenses, menunjukkan bahwa biaya langsung barang yang dijual
merupakan komponen pengeluaran terbesar dan perlu menjadi fokus
efisiensi.
Case 3 Pasar besar (Major Market) menghasilkan
profit yang secara signifikan lebih tinggi dibandingkan pasar kecil
(Small Market) (Mann-Whitney U, p-value <
0,05). Perusahaan sebaiknya memprioritaskan alokasi sumber daya
pemasaran dan distribusi pada wilayah dengan kategori Major Market untuk
mengoptimalkan keuntungan.
Case 4 Terdapat hubungan yang signifikan antara
Market dan Product Type (Chi-Square,
p-value < 0,05). Setiap wilayah pasar memiliki preferensi
tipe produk yang berbeda, sehingga perusahaan dapat menyesuaikan
strategi stok dan promosi secara regional berdasarkan karakteristik
konsumsi masing-masing wilayah.