PENDAHULUAN

1. Latar Belakang

Dalam dunia bisnis, analisis terhadap kinerja produk menjadi hal yang penting untuk mendukung pengambilan keputusan yang tepat. Salah satu indikator yang sering digunakan adalah profit sebagai ukuran keuntungan yang diperoleh perusahaan. Namun, profit saja belum cukup untuk menggambarkan efisiensi suatu produk dalam menghasilkan keuntungan. Oleh karena itu, diperlukan analisis tambahan seperti profit margin yang menunjukkan perbandingan antara keuntungan dan penjualan.

Pada data Coffee Chain, terdapat beberapa product line seperti Beans dan Leaves yang memiliki karakteristik penjualan dan keuntungan yang berbeda. Perbedaan ini menarik untuk dianalisis lebih lanjut guna mengetahui apakah terdapat perbedaan kinerja yang signifikan antara kedua jenis produk tersebut, baik dari segi profit maupun efisiensinya.

2. Rumusan Masalah

  1. Apakah terdapat perbedaan rata-rata profit antara product line Beans dan Leaves?
  2. Apakah terdapat perbedaan profit margin antara product line Beans dan Leaves?
  3. agaimana efisiensi masing-masing product line dalam menghasilkan keuntungan?

3. Tujuan

  1. Mengetahui perbedaan rata-rata profit antara product line Beans dan Leaves.
  2. Menganalisis perbedaan profit margin sebagai indikator efisiensi keuntungan.
  3. Memberikan gambaran mengenai kinerja masing-masing product line dalam menghasilkan profit.

Deskripsi Data

Deskripsi data adalah tahap awal analisis untuk menggambarkan karakteristik data secara ringkas, sehingga pola dan informasi dasar dapat dipahami sebelum analisis lanjutan dilakukan.

library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(knitr)
library(dplyr)
## 
## 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
library(ggplot2)
coffe <- read_xlsx("D:/Coffee Chain Datasets.xlsx")
kable(head(coffe))
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

Beberapa penjelasan singkat mengenai variabel atau kolom :

Area Code : Kode area. Market : Daerah atau wilayah. Market Size : Ukuran dari Market. Product : Jenis dari produk, kopi atau teh. Product Line : Bentuk dari produk. Product Type : Tipe dari produk. State : Negara bagian (Amerika Serikat). Type : Jenis produk, kafein atau tanpa kafein. Budget COGS : Estimasi biaya pokok penjualan. Budget Margin : Estimasi margin keuntungan. Budget Profit : Estimasi keuntungan. Budget Sales : Estimasi total penjualan. COGS : Biaya pokok penjualan aktual. Inventory : Jumlah stok barang yang tersedia. Margin : Margin keuntungan aktual. Profit : Keuntungan aktual. Sales : Total penjualan aktual. Total Expenses: Total seluruh biaya yang dikeluarkan.

Eksplorasi Data

p = sum(is.na(coffe))
q = sum(duplicated(coffe))
cat(" Jumlah Missing Value :", p, "\n","Jumlah Duplicate data :", q)
##  Jumlah Missing Value : 0 
##  Jumlah Duplicate data : 0
str(coffe)
## 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 ...

Menggunakan variabel yang akan digunakan untuk analisis.

data <- coffe %>%
  select('Product Line', Profit, Sales, Market)

print(data)
## # A tibble: 4,248 × 4
##    `Product Line` Profit Sales Market 
##    <chr>           <dbl> <dbl> <chr>  
##  1 Beans              94   219 Central
##  2 Beans              68   190 Central
##  3 Beans             101   234 Central
##  4 Leaves             30   100 Central
##  5 Beans              54   134 Central
##  6 Beans              53   180 Central
##  7 Leaves             99   341 Central
##  8 Leaves              0   150 Central
##  9 Leaves             33   140 Central
## 10 Leaves             17   130 Central
## # ℹ 4,238 more rows

Analisis Data

Rata - rata Profit per Produk Line

profitsummary <- data %>%
  group_by(`Product Line`) %>%
  summarise(average_profit = mean(Profit, na.rm = TRUE))

ggplot(profitsummary, aes(x = `Product Line`, y = average_profit)) +
  geom_bar(stat = "identity") +
  labs(title = "Rata-rata Profit per Product Line",
       x = "Product Line",
       y = "Average Profit")

Berdasarkan visualisasi perbandingan profit, terlihat bahwa rata-rata profit antara product line Beans dan Leaves tidak menunjukkan perbedaan yang terlalu mencolok. Meskipun terdapat sedikit perbedaan nilai rata-rata, secara umum kedua produk memberikan kontribusi keuntungan yang relatif serupa.

Rata - rata Profit per Produk Line

data <- data %>%
  mutate(profit_margin = Profit / Sales)

margin_summary <- data %>%
  group_by(`Product Line`) %>%
  summarise(avg_margin = mean(profit_margin, na.rm = TRUE))

margin_summary
## # A tibble: 2 × 2
##   `Product Line` avg_margin
##   <chr>               <dbl>
## 1 Beans              0.228 
## 2 Leaves             0.0579
ggplot(margin_summary, aes(x = `Product Line`, y = avg_margin)) +
  geom_bar(stat = "identity") +
  labs(title = "Rata-rata Profit Margin per Product Line",
       x = "Product Line",
       y = "Profit Margin")

Berbeda dengan profit, visualisasi profit margin menunjukkan adanya perbedaan yang cukup jelas antara Beans dan Leaves. Produk Beans memiliki margin yang lebih tinggi dibandingkan Leaves, yang mengindikasikan bahwa Beans lebih efisien dalam menghasilkan keuntungan dari setiap penjualan. Dengan kata lain, meskipun profit total tidak jauh berbeda, kualitas keuntungan dari Beans lebih baik dibandingkan Leaves.

Keuntungan per Area (Market)

market_summary <- data %>%
  group_by(Market, `Product Line`) %>%
  summarise(total_profit = sum(Profit, na.rm = TRUE), .groups = "drop")

market_summary
## # A tibble: 8 × 3
##   Market  `Product Line` total_profit
##   <chr>   <chr>                 <dbl>
## 1 Central Beans                 46765
## 2 Central Leaves                47087
## 3 East    Beans                 37236
## 4 East    Leaves                21981
## 5 South   Beans                 26707
## 6 South   Leaves                 5771
## 7 West    Beans                 32595
## 8 West    Leaves                41401
ggplot(market_summary, aes(x = Market, y = total_profit, fill = `Product Line`)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Total Profit per Market dan Product Line",
       x = "Market",
       y = "Total Profit")

Visualisasi keuntungan per area menunjukkan adanya variasi kontribusi profit di masing-masing market. Beberapa area memberikan kontribusi profit yang lebih besar dibandingkan area lainnya, yang menunjukkan bahwa performa penjualan tidak merata di setiap wilayah. Hal ini mengindikasikan bahwa faktor geografis atau karakteristik pasar juga berperan dalam memengaruhi tingkat keuntungan yang diperoleh perusahaan.

Uji Statistik

Uji Normalitas untuk Profit per Product Line

hasil <- data.frame(
  kelompok = c("Beans", "Leaves"),
  p_value = c(
    shapiro.test(data$Profit[data$`Product Line` == "Beans"])$p.value,
    shapiro.test(data$Profit[data$`Product Line` == "Leaves"])$p.value
  )
)

hasil
##   kelompok      p_value
## 1    Beans 3.191887e-47
## 2   Leaves 7.071586e-45

Berdasarkan uji Shapiro-Wilk, diperoleh p-value pada kelompok beans sebesar 3,19×10⁻⁴⁷ dan leaves sebesar 7,07×10⁻⁴⁵ (keduanya < 0,05), sehingga H₀ ditolak. Hal ini menunjukkan bahwa data profit pada kedua kelompok tidak berdistribusi normal. Oleh karena itu, analisis perbandingan rata-rata dilakukan menggunakan uji non-parametrik yaitu Wilcoxon Rank Sum Test.

Uji Wilcoxon Rank Sum Test Profit Beans vs Profit Leaves

wilcox.test(Profit ~ `Product Line`, data = data)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Profit by Product Line
## W = 2200291, p-value = 0.2143
## alternative hypothesis: true location shift is not equal to 0

Tidak terdapat perbedaan yang signifikan antara distribusi profit beans dan leaves

Uji Normal Margin

data_subset <- data %>%
  mutate(profit_margin = Profit / Sales)

beans_margin <- data_subset %>% filter(`Product Line` == "Beans")
leaves_margin <- data_subset %>% filter(`Product Line` == "Leaves")

Nm <- data.frame(SV = c("Beans.Margin","Leaves.Margin"), p_value = c(
  shapiro.test(beans_margin$profit_margin)$p.value,
   shapiro.test(leaves_margin$profit_margin)$p.value
))

print(Nm)
##              SV      p_value
## 1  Beans.Margin 7.284758e-62
## 2 Leaves.Margin 8.080005e-70

Setelah dicek normalitasnya menggunakan uji shapiro wilk, didapat p_value dari Beans.margin dan Leaves.Margin < 0.05, sehingga H0 ditolak. Hal ini menunjukkan bahwa data mmargin pada kedua kelompok tidak berdistribusi normal. Oleh karena itu, analisis perbandingan rata-rata dilakukan menggunakan uji non-parametrik yaitu Wilcoxon Rank Sum Test.

Uji Wilcoxon Rank Sum Test Margin Beans vs Margin Leaves

wilcox.test(profit_margin ~ `Product Line`, data = data_subset)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  profit_margin by Product Line
## W = 2134752, p-value = 0.003931
## alternative hypothesis: true location shift is not equal to 0

Setelah dicek menggunakan uji Wilcoxon Rank, ternyata ada perbedaan signifikan.

Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, diketahui bahwa tidak terdapat perbedaan yang signifikan pada profit antara product line Beans dan Leaves berdasarkan uji Wilcoxon. Hal ini menunjukkan bahwa secara total keuntungan, kedua jenis produk memberikan kontribusi yang relatif serupa. Namun, dari sisi profit margin, terlihat adanya perbedaan yang cukup jelas, di mana Beans memiliki margin yang lebih tinggi dibandingkan Leaves, yang mengindikasikan bahwa Beans lebih efisien dalam menghasilkan keuntungan dari setiap penjualan.

Selain itu, hasil visualisasi menunjukkan bahwa terdapat variasi kontribusi profit di masing-masing market, yang mengindikasikan bahwa performa produk juga dipengaruhi oleh faktor wilayah pemasaran. Dengan demikian, meskipun profit total tidak berbeda secara signifikan, perbedaan dalam efisiensi dan distribusi keuntungan memberikan insight penting dalam mengevaluasi kinerja produk secara keseluruhan.