IMPORT DATA DAN DESKRIPSI DATA

library(readxl)
## Warning: package 'readxl' was built under R version 4.5.2
CDataset <- read_excel("~/Materi kuliah/semester 2/SIM/TUGAS/1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx")
knitr::kable(head(CDataset, 10))
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

EKSPLORASI DATA

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.2
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data2 <- select(CDataset, -'Area Code')
for(col in names(data2)) {
  if(is.numeric(data2[[col]])) {
  kolom <- data2[[col]]
  mean <- mean(kolom, na.rm = TRUE)
  median <- median(kolom, na.rm = TRUE)
  var <- var(kolom, na.rm = TRUE)
  sd <- sd(kolom, na.rm = TRUE)
  
  cat("\nStatistik deskriptif untuk kolom:", col, 
        "\n- Mean             :", round(mean, 2),
        "\n- Median           :", round(median, 2),
        "\n- Variansi         :", round(var, 2),
        "\n- Standar Deviasi  :", round(sd, 2), "\n")
  }
}
## 
## Statistik deskriptif untuk kolom: Budget COGS 
## - Mean             : 74.83 
## - Median           : 50 
## - Variansi         : 4387.49 
## - Standar Deviasi  : 66.24 
## 
## Statistik deskriptif untuk kolom: Budget Margin 
## - Mean             : 100.82 
## - Median           : 70 
## - Variansi         : 8575.26 
## - Standar Deviasi  : 92.6 
## 
## Statistik deskriptif untuk kolom: Budget Profit 
## - Mean             : 60.91 
## - Median           : 40 
## - Variansi         : 6327.59 
## - Standar Deviasi  : 79.55 
## 
## Statistik deskriptif untuk kolom: Budget Sales 
## - Mean             : 175.65 
## - Median           : 130 
## - Variansi         : 22168.69 
## - Standar Deviasi  : 148.89 
## 
## Statistik deskriptif untuk kolom: COGS 
## - Mean             : 84.43 
## - Median           : 60 
## - Variansi         : 4522.53 
## - Standar Deviasi  : 67.25 
## 
## Statistik deskriptif untuk kolom: Inventory 
## - Mean             : 749.38 
## - Median           : 619 
## - Variansi         : 436963.2 
## - Standar Deviasi  : 661.03 
## 
## Statistik deskriptif untuk kolom: Margin 
## - Mean             : 104.29 
## - Median           : 76 
## - Variansi         : 8900.51 
## - Standar Deviasi  : 94.34 
## 
## Statistik deskriptif untuk kolom: Marketing 
## - Mean             : 31.19 
## - Median           : 22 
## - Variansi         : 730.26 
## - Standar Deviasi  : 27.02 
## 
## Statistik deskriptif untuk kolom: Profit 
## - Mean             : 61.1 
## - Median           : 40 
## - Variansi         : 10344.63 
## - Standar Deviasi  : 101.71 
## 
## Statistik deskriptif untuk kolom: Sales 
## - Mean             : 192.99 
## - Median           : 138 
## - Variansi         : 22841.22 
## - Standar Deviasi  : 151.13 
## 
## Statistik deskriptif untuk kolom: Total Expenses 
## - Mean             : 54.06 
## - Median           : 46 
## - Variansi         : 1046.69 
## - Standar Deviasi  : 32.35

UJI STATISTIK

Saya ingin mengetahui apakah terdapat perbedaan nilai penjualan antar wilayah melalui uji statistik dan mengidentifikasi wilayah dengan performa tertinggi melalui visualisasi data. Variabel yang saya ambil yaitu Market dan Sales.

1. FILTER VARIABEL

data <- data.frame(
  Market = CDataset$Market,
  Sales = CDataset$Sales
)

2. UJI NORMALITAS

summarise(
  group_by(data, Market),
  p_value = shapiro.test(Sales)$p.value
)
## # A tibble: 4 × 2
##   Market   p_value
##   <chr>      <dbl>
## 1 Central 7.28e-36
## 2 East    3.09e-34
## 3 South   1.80e-28
## 4 West    1.71e-37

INTERPRETASI UJI NORMALITAS

Sebelum dilakukan uji hipotesis, perlu adanya uji normalitas dahulu untuk mengetahui normal atau tidaknya data yang dipakai.

Jika p-value < 0.05 maka data tidak berdistribusi normal, sehingga analisis dilanjutkan menggunakan metode non-parametrik yaitu Kruskal-Wallis.

3. UJI HIPOTESIS

kruskal.test(Sales ~ Market, data = CDataset)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  Sales by Market
## Kruskal-Wallis chi-squared = 27.871, df = 3, p-value = 3.865e-06

INTERPRETASI UJI HIPOTESIS

Setelah dianalisis menggunakan uji Kruskal-Wallis dengan hipotesis: H0 : Tidak ada perbedaan nilai penjualan antar wilayah, H1 : Ada perbedaan nilai penjualan antar wilayah.

Jika p-value < 0.05 maka H0 ditolak. Hasil uji hipotesis dapat diketahui p-value = 3.865e-06 yang sangat kecil dari 0.05 sehingga H0 ditolak, artinya terdapat perbedaan signifikan penjualan antar wilayah.

VISUALISASI DATA

data1 <- summarise(
  group_by(data, Market),
  total_sales = sum(Sales, na.rm = TRUE)
)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
ggplot(data1, aes(x = Market, y = total_sales)) + 
  geom_bar(stat = "identity", fill = "palegreen", width = 0.6) +
  theme_minimal() +
  labs(title = "Total Penjualan di tiap Wilayah",
       x = "Wilayah",
       y = "Total Penjualan") +
  scale_y_continuous(labels = scales::number) +
  theme(axis.text.x = element_text(angle = 45, hjust =1))

INTERPRETASI

Grafik batang dengan judul “Total Penjualan di tiap Wilayah” menampilkan jumlah total penjualan yang dihasilkan oleh masing-masing wilayah, yaitu Central, East, South, dan West. Dari grafik terlihat bahwa wilayah West dan Central memiliki total penjualan tertinggi dibandingkan wilayah East dan South. Perbedaan total penjualan antar wilayah ini menunjukkan adanya ketimpangan performa pasar.

KESIMPULAN

Dapat disimpulkan bahwa terdapat perbedaan kontribusi penjualan yang cukup signifikan antar Wilayah. Wilayah West dan Central menjadi penyumbang utama penjualan, sedangkan wilayah South memiliki kontribusi paling rendah. Hal ini menunjukkan bahwa faktor geografis berpengaruh terhadap performa penjualan, sehingga strategi bisnis perlu disesuaikan dengan karakteristik masing-masing wilayah. Saran yang bisa diambil dari interpretasi grafik dan analisis diatas yaitu perusahaan sebaiknya mempertahankan dan mengoptimalkan strategi penjualan di wilayah dengan kontribusi tinggi seperti West dan Central, namun di sisi lain perlu dievaluasi dan dianalisis lebih lanjut terkait penyebab rendahnya penjualan di wilayah East dan South sehingga dapat dilakukan perbaikan strategi.