A.Pendahuluan

Bisnis yang bergerak pada bidang Food and Beverages menjadi salah satu bisnis yang menjamur beberapa tahun terakhir. Hal itu juga tidak terkecuali untuk produk minuman seperti kopi dan teh kekinian. Banyak Outlet-Outlet yang bermunculan dan hadir memenuhi sudut kota. Berbagai macam produk inovasi dan menu minuman ditawarkan.Berbagai cara marketing dilakukan untuk mengembangkan dan mengenalkan bisnis minuman yang dimiliki. Hal ini menunjukkan bahwa banyak pelaku bisnis melihat FnB sebagai ladang Profit Namun, tak selamanya bisnis minuman memberikan hasil yang diharapkan. Dunia FnB cukup kejam dan tidak segan-segan menggulung tikar para pengusaha yang tidak siap dalam berbisnis. Banyak bisnis yang tidak bertahan lama setelah buka. Hasil Penjualan menurun dengan Cost yang terus membengkak sering menjadi alasan suatu kedai minuman tutup.Kurangnya pemahaman produk dan pasar juga dapat menjadi alasan dibalik gagalnya bisnis kedai minuman.Sayangnya masih banyak pelaku bisnis langsung terjun tanpa melihat situasi pada market. Oleh karena itu, para pebisnis dapat melakukan analisis terlebih dahulu pada pasar yang sedang diincar. Cara untuk menganalisis adalah dengan melakukan analisis pada data penjualan yang dimiliki.Analisis bida dilakukan untuk melihat insight tersembunyi yang dapat ditemukan pada data. Hal ini akan membantu pemilik bisnis mengetahui peluang serta risko dalam membuka bisnis minuman.Dengan demikian, tentu risiko mengalami kebangkrutan akan menurun dan dapat meningkatkan profit dengan strategi yang benar. Pada laporan ini, akan dipaparkan hasil analisis kondisi pasar pada suatu wilayah yaitu negara Amerika Serikat. Data berisikan berbagai variabel-variabel yang berkaitan dengan data penjualan. Analisis dilakukan untuk mengetahui berbagai informasi yang ada pada data sehingga bisa digunakan untuk menyusun strategi.Tujuan laporan ini dibuat adalah untuk menunjukkan beberapa contoh sederhana dalam menganalisis suatu data.Dengan adanya laporan ini dapat memberikan beberapa pengetahuan yang bisa dilakukan untuk menganalisis suatu data.

Rumusan Masalah

1.Bagaimana struktur data secara keseluruhan?

2.Apa saja variabel-variabel yang ada pada data?

3.Apakah tipe produk minuman memengaruhi profit yang didapat? Apa tipe produk minuman yang paling menjanjikan?

4.Apakah produk minuman memengaruhi tingkat kepopuleran (penjualan di atas rata-rata keseluruhan)?

5.Apakah wilayah memengaruhi rata-rata keuntungan minuman? Wilayah mana yang paling menguntungkan?

Tujuan

1.Mengetahui struktur data secara keseluruhan secara lengkap

2.Mengetahui variabel-variabel yang ada pada data dan maksud dari variabel-variabel yang ada

3.Mengetahui ada tidaknya pengaruh/perbedaan yang diakibatkan oleh tipe produk minuman terhadap
profit yang diperoleh serta mengetahui tipe produk yang paling baik.

4.Mengetahui apakah produk minuman memengaruhi penjualan.

5.Mengetahui apakah ada pengaruh wilayah penjualan terhadap rata-rata keuntungan penjualan dan mengetahui wilayah yang paling menguntungkan.

B.Analisis

Langkah-Langkah Analisis

1 Persiapan Data

1.1 Load Library

library(readxl)
library(tidyr)
library(DT)
library(dplyr)
library(ggplot2)

1.2 Import Dataset

# Import data dari file Excel
data=read_excel("C:/Users/lenovo/OneDrive/Dokumen/1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx")
# Tampilkan struktur data
str(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 ...

Dari hasil di atas dapat diketahui dimensi data, yaitu terdapat 4.248 observasi dengan 20 variabel di dalamnya serta jenis datanya.

1.3 Eksplorasi Awal Data

# Tampilkan data deskriptif dan melihat apakah ada data yang kosong
summary(data)
##    Area Code          Date                        Market         
##  Min.   :203.0   Min.   :2012-01-01 00:00:00   Length:4248       
##  1st Qu.:417.0   1st Qu.:2012-06-23 12:00:00   Class :character  
##  Median :573.0   Median :2012-12-16 12:00:00   Mode  :character  
##  Mean   :582.3   Mean   :2012-12-15 22:00:00                     
##  3rd Qu.:772.0   3rd Qu.:2013-06-08 12:00:00                     
##  Max.   :985.0   Max.   :2013-12-01 00:00:00                     
##  Market Size          Product          Product Line       Product Type      
##  Length:4248        Length:4248        Length:4248        Length:4248       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##     State               Type            Budget COGS     Budget Margin   
##  Length:4248        Length:4248        Min.   :  0.00   Min.   :-210.0  
##  Class :character   Class :character   1st Qu.: 30.00   1st Qu.:  50.0  
##  Mode  :character   Mode  :character   Median : 50.00   Median :  70.0  
##                                        Mean   : 74.83   Mean   : 100.8  
##                                        3rd Qu.: 90.00   3rd Qu.: 130.0  
##                                        Max.   :450.00   Max.   : 690.0  
##  Budget Profit      Budget Sales         COGS          Inventory      
##  Min.   :-320.00   Min.   :   0.0   Min.   :  0.00   Min.   :-3534.0  
##  1st Qu.:  20.00   1st Qu.:  80.0   1st Qu.: 43.00   1st Qu.:  432.0  
##  Median :  40.00   Median : 130.0   Median : 60.00   Median :  619.0  
##  Mean   :  60.91   Mean   : 175.6   Mean   : 84.43   Mean   :  749.4  
##  3rd Qu.:  80.00   3rd Qu.: 210.0   3rd Qu.:100.00   3rd Qu.:  910.5  
##  Max.   : 560.00   Max.   :1140.0   Max.   :364.00   Max.   : 8252.0  
##      Margin          Marketing          Profit           Sales    
##  Min.   :-302.00   Min.   :  0.00   Min.   :-638.0   Min.   : 17  
##  1st Qu.:  52.75   1st Qu.: 13.00   1st Qu.:  17.0   1st Qu.:100  
##  Median :  76.00   Median : 22.00   Median :  40.0   Median :138  
##  Mean   : 104.29   Mean   : 31.19   Mean   :  61.1   Mean   :193  
##  3rd Qu.: 132.00   3rd Qu.: 39.00   3rd Qu.:  92.0   3rd Qu.:230  
##  Max.   : 613.00   Max.   :156.00   Max.   : 778.0   Max.   :912  
##  Total Expenses  
##  Min.   : 10.00  
##  1st Qu.: 33.00  
##  Median : 46.00  
##  Mean   : 54.06  
##  3rd Qu.: 65.00  
##  Max.   :190.00
sum(is.na(data))
## [1] 0

Dapat dilihat dari hasil Summary di atas bahwa data merupakan data penjualan pada 1 Januari 2012 sampai 1 desember 2013.

1.4 Menampilkan tabel berisi variabel kategori dan juga isinya secara lengkap

tabel_kategori <- data %>%
  summarise(across(
    where(is.character),
    ~ paste(unique(.), collapse = ", ")
  )) %>%
  pivot_longer(
    cols = everything(),
    names_to = "Variabel",
    values_to = "Kategori"
  )
datatable(tabel_kategori)

Pada tabel di atas dapat diperoleh informasi berupa variabel-variabel yang isinya berupa kategori. Selain itu, juga dapat dilihat kategori-kategori di dalamnya pada setiap variabel kategorik yang ada. Penjelasan Variabel-Variabel kategorik di atas:

1.Market: wilayah pemasaran produk yang terdiri dari Central, East, South, dan West, yang digunakan untuk melihat distribusi penjualan berdasarkan region geografis.

2.Market Size: ukuran pasar yang diklasifikasikan menjadi Major Market dan Small Market, yang menunjukkan besar kecilnya potensi atau cakupan pasar.

3.Product: jenis produk secara spesifik yang mencakup berbagai varian minuman seperti kopi dan teh, sehingga memberikan informasi detail mengenai produk yang dijual.

4.Product Line: kelompok produk berdasarkan bahan dasar, yaitu Beans (kopi) dan Leaves (teh), yang menunjukkan sumber utama produk.

5.Product Type: jenis produk secara umum seperti Coffee, Tea, Espresso, dan Herbal Tea, yang merupakan pengelompokan produk dalam kategori yang lebih luas.

6.State: lokasi penjualan pada tingkat negara bagian, yang digunakan untuk menganalisis persebaran data secara geografis lebih rinci.

7.Type: tipe produk berdasarkan kandungan kafein, yaitu Regular dan Decaf, yang berkaitan dengan preferensi konsumen terhadap produk berkafein atau tidak.

1.5 Menampilkan tabel berisi variabel numerik dan juga ringkasan deskriptifnya masing masing variabel

tabel_numerik <- data %>%
  select(where(is.numeric), -`Area Code`) %>%
  summarise(across(
    everything(),
    list(
      Mean = ~ mean(.x, na.rm = TRUE),
      Min  = ~ min(.x, na.rm = TRUE),
      Max  = ~ max(.x, na.rm = TRUE)
    )
  )) %>%
  pivot_longer(
    everything(),
    names_to = c("Variabel", ".value"),
    names_sep = "_"
  )
  datatable(tabel_numerik)

Dengan tabel numerik ini, dapat melihat statistik deskriptif data secara lebih rapi sekaligus memahami makna dari setiap variabel yang dianalisis.

1.Budget COGS: menunjukkan anggaran biaya pokok penjualan (Cost of Goods Sold) yang direncanakan oleh perusahaan untuk memproduksi barang.

2.Budget Margin: merupakan anggaran selisih antara penjualan dan biaya (margin) yang ditargetkan, yang mencerminkan keuntungan kotor yang diharapkan.

3.Budget Profit: menunjukkan anggaran laba bersih yang direncanakan perusahaan setelah memperhitungkan seluruh biaya.

4.Budget Sales: merupakan target atau anggaran penjualan yang ingin dicapai oleh perusahaan dalam periode tertentu.

5.COGS: menunjukkan biaya pokok penjualan aktual yang benar-benar dikeluarkan dalam proses produksi atau penyediaan produk.

6.Inventory: merupakan jumlah persediaan barang yang dimiliki perusahaan, baik dalam bentuk bahan baku maupun produk jadi.

7.Margin: menunjukkan selisih antara penjualan dan biaya pokok secara aktual, yang mencerminkan keuntungan kotor yang diperoleh.

8.Marketing: merupakan biaya yang dikeluarkan untuk kegiatan pemasaran seperti promosi dan iklan.

9.Profit: menunjukkan laba bersih aktual yang diperoleh perusahaan setelah dikurangi seluruh biaya.

10.Sales: merupakan jumlah penjualan aktual yang berhasil dicapai oleh perusahaan.

11.Total Expenses: menunjukkan total seluruh pengeluaran yang dikeluarkan perusahaan dalam menjalankan operasionalnya.

2 Analisis data

2.1 Hubungan Tipe Produk dengan Keuntungan

Analisis ini bertujuan untuk mengetahui hubungan tipe produk minuman dengan keuntungan yang diperoleh. Apakah terdapat perbedaan rata-rata keuntungan berdasarkan tipe minumannya.

2.1.1 Membuat Data Frame memuat Tipe produk, Penjualan, dan Keuntungan

df <- data %>%
  select(`Product Type`, Sales, Profit) 

datatable(df)

Mengambil data setiap baris pada data tetapi hanya pada kolom tipe produk dan keuntungan

2.1.2 Membuat Ringkasan terhadap tipe produk

\[ \begin{aligned} \text{Total Sales} &= \sum \text{Sales} \\ \text{Total Profit} &= \sum \text{Profit} \\ \text{Rata-rata Sales} &= \frac{1}{n} \sum \text{Sales} \\ \text{Rata-rata Profit} &= \frac{1}{n} \sum \text{Profit} \\ \text{Standar Deviasi Profit} &= \sqrt{\frac{1}{n-1}\sum (\text{Profit} - \bar{\text{Profit}})^2} \\ \text{Profit Margin} &= \frac{1}{n} \sum_{i=1}^{n} \left( \frac{Profit_i}{Sales_i} \right) \times 100\% \end{aligned} \] Di atas merupakan rumus-rumus yang digunakan dalam menghitung variabel-variabel yang akan digunakan dalam analisis

df <- df %>%
  mutate(Profit_Ratio = Profit / Sales)

ringkasan_produk <- df %>%
  group_by(`Product Type`) %>%
  summarise(
    Jumlah_Transaksi = n(),
    Total_Sales      = sum(Sales, na.rm = TRUE),
    Total_Profit     = sum(Profit, na.rm = TRUE),
    Rata_Sales       = mean(Sales, na.rm = TRUE),
    Rata_Profit      = mean(Profit, na.rm = TRUE),
    SD_Profit        = sd(Profit, na.rm = TRUE),
    Profit_Margin = mean(Profit_Ratio, na.rm = TRUE) * 100,
    .groups = "drop"
  ) %>%
  mutate(across(-`Product Type`, ~ round(.x, 2))) %>%
  arrange(desc(Total_Profit))

datatable(
  ringkasan_produk,
  options = list(
    scrollX = TRUE,
    autoWidth = TRUE
  ),
  class = "display nowrap"
)

Tabel di atas menunjukkan ringkasan mengenai total transaksi, total dan rata-rata penjualan, total dan rata-rata profit, serta rata-rata profit margin dari setiap tipe produk yang ada. Sekilas bisa tampak jenis produk dengan sales tertinggi adalah espresso, namun profit dan profit margin terbesar diperoleh dari produk kopi. Hal menarik di sini adalah produk teh memiliki performa yang paling buruk di antara keempat jenis minuman. Teh memiliki transaks, keuntungan paling rendah dan rata-rata profit mencapai minus. Hal tersebut menunjukkan banyak transaksi yang merugi namun secara keseluruhan masih mendapat keuntungan akibat subsidi silang dari beberapa penjualan dengan profit tinggi. Rata-rata Profit margin menunjukkan rata-rata persentase keuntungan/kerugian dari penjualan yang ada. Teh memiliki rata-rata profit margin -15,31% artinya banyak transaksi yang rugi sekitar 15,31% dari penjualannya.

2.1.3 Visualisasi Tipe produk dengan keuntugan

ggplot(ringkasan_produk,
       aes(x = reorder(`Product Type`, Rata_Profit),
           y = Rata_Profit,
           fill = `Product Type`)) +
  geom_bar(stat = "identity", width = 0.6) +
  geom_errorbar(aes(ymin = Rata_Profit - SD_Profit,
                    ymax = Rata_Profit + SD_Profit),
                width = 0.2, color = "gray40") +
  geom_text(aes(label = round(Rata_Profit, 1)),
            hjust = -0.3, size = 3.5, fontface = "bold") +
  coord_flip() +
  scale_fill_manual(values = c(
    "Coffee"     = "#4E79A7",
    "Tea"        = "#59A14F",
    "Espresso"   = "#F28E2B",
    "Herbal Tea" = "#E15759"
  )) +
  scale_y_continuous(labels = scales::comma,
                     expand = expansion(mult = c(0, 0.2))) +
  labs(
    title    = "Rata-rata Profit per Product Type",
    subtitle = "Garis error = standar deviasi",
    x        = NULL,
    y        = "Rata-rata Profit"
  ) +
  theme_minimal(base_size = 13) +
  theme(plot.title      = element_text(face = "bold"),
        legend.position = "none")

Plot yang ditampilkan merupakan bar chart horizontal dengan error bar (standard deviation). Diagram batang digunakan untuk menunjukkan rata-rata profit (mean) pada setiap kategori Product Type, sedangkan garis horizontal di setiap batang merupakan error bar yang menggambarkan standar deviasi (SD).Penggunaan error bar bertujuan untuk memberikan informasi tambahan mengenai tingkat variasi atau penyebaran data di sekitar nilai rata-rata. Semakin panjang garis error, semakin besar variasi data pada kategori tersebut. Dapat dilihat error bar pada setiap tipe minuman memiliki rentang yang jauh terutama pada minuman teh, hal ini menunjukkan ketidakstabilan profit yang diperoleh.Hal ini dapat menjadi dasar bagi perusahaan untuk:

1.Fokus pada produk dengan profit tinggi (Coffee)

2.mengevaluasi strategi pada produk dengan profit rendah (Tea)

3.mengurangi variasi profit agar lebih stabil

2.1.4.a Uji Anova: Product Type vs Profit

$$ \[\begin{aligned} H_0 &: \mu_1 = \mu_2 = \cdots = \mu_k \\ H_1 &: \text{setidaknya ada satu } \mu_i \neq \mu_j \\[6pt] F &= \frac{MS_{\text{Between}}}{MS_{\text{Within}}} \\[6pt] MS_{\text{Between}} &= \frac{SS_{\text{Between}}}{k - 1} \\ MS_{\text{Within}} &= \frac{SS_{\text{Within}}}{n - k} \\[6pt] SS_{\text{Between}} &= \sum_{i=1}^{k} n_i (\bar{X}_i - \bar{X})^2 \\ SS_{\text{Within}} &= \sum_{i=1}^{k} \sum_{j=1}^{n_i} (X_{ij} - \bar{X}_i)^2 \\[6pt] \text{Keputusan: } & \text{Tolak } H_0 \text{ jika } F_{\text{hitung}} > F_{\text{tabel}} \text{ atau } p\text{-value} < \alpha \end{aligned}\]

$$

df_anova <- data.frame(
  Profit       = data$Profit,
  Product_Type =  data$`Product Type`
)

anova_produk <- aov(Profit ~ Product_Type, data = df_anova)
summary(anova_produk)
##                Df   Sum Sq Mean Sq F value  Pr(>F)   
## Product_Type    3   141680   47227   4.577 0.00333 **
## Residuals    4244 43791957   10319                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji ANOVA diperoleh nilai F-hitung sebesar 4.577 dan p-value sebesar 0.00333, dengan nilai F tabel sekitar 2.60 pada taraf signifikansi 5% (df1 = 3 dan df2 = 4444). Karena F hitung > F tabel (4.577 > 2.60) dan p-value < 0.05 (0.00333 < 0.05), maka H₀ ditolak, yang berarti terdapat perbedaan rata-rata profit yang signifikan antar kategori Product Type.Untuk itu perlu adanya uji lanjutan ( Dalam hal ini menggunakan tukey)

$$ \[\begin{aligned} H_0 &: \mu_i = \mu_j \\ H_1 &: \mu_i \neq \mu_j \\[6pt] \text{Statistik Uji: } \\ q &= \frac{|\bar{X}_i - \bar{X}_j|}{\sqrt{\dfrac{MS_{\text{Within}}}{n}}} \\[6pt] \text{Atau dalam bentuk HSD: } \\ \text{HSD} &= q_{\alpha, k, n-k} \cdot \sqrt{\dfrac{MS_{\text{Within}}}{n}} \\[6pt] \text{Kriteria Keputusan: } \\ &\text{Tolak } H_0 \text{ jika } |\bar{X}_i - \bar{X}_j| > \text{HSD} \\ &\text{atau } p\text{-value} < \alpha \end{aligned}\]

$$ # 2.1.4.b Uji lanjutan (Tukey)

tukey_produk <- TukeyHSD(anova_produk)
print(tukey_produk)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Profit ~ Product_Type, data = df_anova)
## 
## $Product_Type
##                           diff       lwr        upr     p adj
## Espresso-Coffee     -12.372198 -23.44003 -1.3043662 0.0212815
## Herbal Tea-Coffee   -10.822917 -22.18438  0.5385423 0.0684855
## Tea-Coffee          -15.528788 -27.17082 -3.8867568 0.0034344
## Herbal Tea-Espresso   1.549281  -9.51855 12.6171126 0.9840623
## Tea-Espresso         -3.156590 -14.51225  8.1990707 0.8914175
## Tea-Herbal Tea       -4.705871 -16.34790  6.9361599 0.7265871

Berdasarkan hasil uji lanjut Tukey HSD, terdapat beberapa pasangan Product Type yang menunjukkan perbedaan rata-rata profit yang signifikan pada taraf 5%. Pasangan Espresso–Coffee (p-value = 0.0213) dan Tea–Coffee (p-value = 0.0034) memiliki p-value < 0.05, sehingga keduanya berbeda signifikan, dengan nilai selisih (diff) negatif yang menunjukkan bahwa rata-rata profit Coffee lebih tinggi dibandingkan Espresso dan Tea. Sementara itu, pasangan Herbal Tea–Coffee tidak signifikan ( p-value = 0.0685), sehingga tidak terdapat perbedaan yang cukup kuat antara keduanya. Untuk pasangan lainnya seperti Herbal Tea–Espresso, Tea–Espresso, dan Tea–Herbal Tea, seluruhnya memiliki p-value > 0.05, yang berarti tidak terdapat perbedaan rata-rata profit yang signifikan antar kelompok tersebut. Secara keseluruhan, hasil ini menunjukkan bahwa perbedaan utama terjadi pada produk Coffee dibandingkan beberapa jenis produk lainnya. Dari hasil uji Tukey tersebut memberikan informasi yang lebih spesifik mengenai kelompok mana yang benar-benar berbeda secara signifikan, sehingga perusahaan dapat mengambil keputusan yang lebih tepat sasaran. Dari hasil tersebut diketahui bahwa Coffee memiliki profit yang secara signifikan lebih tinggi dibandingkan Espresso dan Tea, sehingga perusahaan dapat memprioritaskan strategi pada produk Coffee, seperti meningkatkan produksi, distribusi, atau promosi untuk memaksimalkan keuntungan.

2.2 Hubungan produk minuman dengan penjualan

Selanjutnya ingin dilihat apakah produk minuman tertentu memengaruhi penjualan yang ada.

2.2.1 Pendefinisian produk minuman kurang layak jual

 rata2_sales <- mean(data$Sales, na.rm = TRUE)

  Produk_non_populer <- data %>%
  filter(Sales < rata2_sales) %>%
  group_by(Product) %>%
  summarise(
    Jumlah_tx = n(),
    Rata_Sales = mean(Sales, na.rm = TRUE),
    .groups = "drop"
  )

datatable(Produk_non_populer)

Dapat dilihat data 13 produk (keseluruhan produk) dengan jumlah transaksi yang dibawah rata-rata penjualan produk secara keseluruhan serta disajikan pula rata-rata dari penjualan produk yang kurang dari rata-rata penjualan keseluruhan produk). Lemon menjadi produk nomor 1 dengan jumlah transaksi yang penjualannya kurang dari rata-rata penjualan keseluruhan produk.

2.2.2 Pendefinisian produk layak jual

 rata2_sales <- mean(data$Sales, na.rm = TRUE)

  Produk_populer <- data %>%
  filter(Sales > rata2_sales) %>%
  group_by(Product) %>%
  summarise(
    Jumlah_tx = n(),
    Rata_Sales = mean(Sales, na.rm = TRUE),
    .groups = "drop"
  )

datatable(Produk_populer)

Dari tabel di atas dapat dilihat data 13 produk (keseluruhan produk) dengan jumlah transaksi yang di atas rata-rata penjualan produk secara keseluruhan serta disajikan pula rata-rata dari penjualan produk yang lebih dari rata-rata penjualan keseluruhan produk).Jumlah transaksi dengan penjualan yang lebih dari rata-rata hanya berada pada rentang 50 - 200 sedangkan yang kurang dari rata rata memiliki rentang 100-300.Dari tabel di atas diperoleh bahwa produk bernama Colombian memiliki performa paling baik.

2.2.3.a Pie Chart Produk Populer (jumlah transaksi produk dengan penjualan di atas rata-rata) dengan Produk non Populer (jumlah transaksi produk dengan penjualan di bawah rata-rata)

sum(Produk_populer$Jumlah_tx)
## [1] 1432
sum(Produk_non_populer$Jumlah_tx)
## [1] 2816
data_pie <- data.frame(
  Kategori = c("Populer", "Non Populer"),
  Jumlah = c(
    sum(Produk_populer$Jumlah_tx),
    sum(Produk_non_populer$Jumlah_tx)
  )
)


ggplot(data_pie, aes(x = "", y = Jumlah, fill = Kategori)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void() +
  geom_text(aes(label = scales::percent(Jumlah / sum(Jumlah))),
            position = position_stack(vjust = 0.5)) +
  labs(title = "Proporsi Produk Populer vs Non Populer")

Dari pie chart di atas dapat disimpulkan bahwa banyak transasksi produk yang penjualannya di bawah rata-rata keseluruhan produk. Artinya terjadi spread yang cukup jauh antara produk yang penjualan di atas rata rata (populer) dan produk yang penjualannya di bawah rata-rata (non populer) sehingga perlu strategi agar lebih konsisten pada setiap produk agar penjualan tetap konsisten. Namun perlu analisis lebih mendalam pada tiap produk.

2.2.3.b Stack Bar Chart Produk Populer (jumlah transaksi produk dengan penjualan di atas rata-rata) dengan Produk non Populer (jumlah transaksi produk dengan penjualan di bawah rata-rata) untuk tiap produk

gabung <- full_join(
  Produk_populer %>% 
    select(Product, Jumlah_Populer = Jumlah_tx, Rata2_Sales_Populer = Rata_Sales),
  Produk_non_populer %>% 
    select(Product, Jumlah_Non_Populer = Jumlah_tx, Rata2_Sales_Non_Populer = Rata_Sales),
  by = "Product"
)


data_plot <- gabung %>%
  mutate(
    Total = Jumlah_Populer + Jumlah_Non_Populer,
    Prop_Populer = Jumlah_Populer / Total,
    Prop_Non = Jumlah_Non_Populer / Total
  ) %>%
  select(Product, Prop_Populer, Prop_Non) %>%
  pivot_longer(
    cols = starts_with("Prop"),
    names_to = "Kategori",
    values_to = "Proporsi"
  )

ggplot(data_plot, aes(x = Product, y = Proporsi, fill = Kategori)) +
  geom_bar(stat = "identity") +
  scale_y_continuous(labels = scales::percent) +
  labs(
    title = "Perbandingan Proporsi Populer vs Non Populer",
    x = "Produk",
    y = "Proporsi"
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Berdasarkan grafik, terlihat bahwa sebagian besar produk didominasi oleh kategori non-populer, yang ditunjukkan oleh proporsi warna non-populer yang lebih besar dibandingkan populer pada banyak produk seperti Amaretto, Green Tea, dan Lemon. Namun, terdapat beberapa produk yang memiliki proporsi populer relatif lebih tinggi, seperti Regular Espresso dan Earl Grey, yang menunjukkan performa penjualan yang lebih baik dibandingkan produk lainnya. Meskipun demikian, secara umum tidak banyak produk yang proporsi populernya mendominasi secara signifikan. Secara keseluruhan, sebagian besar produk masih memiliki performa penjualan di bawah rata-rata (non-populer), sehingga menunjukkan bahwa distribusi penjualan belum merata. Hal ini mengindikasikan perlunya evaluasi dan perbaikan strategi pemasaran atau penjualan pada produk-produk yang kurang populer, sekaligus mempertahankan dan mengoptimalkan produk yang sudah memiliki proporsi populer lebih tinggi agar dapat meningkatkan total penjualan dan keuntungan perusahaan.

2.2.4 Uji Independensi (Produk dengan Penjualan)

$$ \[\begin{aligned} \textbf{Hipotesis:} \\ H_0 &: \text{Variabel X dan Y saling independen (tidak berhubungan)} \\ H_1 &: \text{Variabel X dan Y tidak independen (berhubungan)} \\[8pt] \textbf{Tingkat Signifikansi:} \\ &\alpha = 0.05 \\[8pt] \textbf{Statistik Uji:} \\ \chi^2 &= \sum_{i=1}^{r} \sum_{j=1}^{c} \frac{(O_{ij} - E_{ij})^2}{E_{ij}} \\[8pt] \textbf{Nilai Harapan:} \\ E_{ij} &= \frac{(\text{Total baris}_i)(\text{Total kolom}_j)}{n} \\[8pt] \textbf{Derajat Bebas:} \\ df &= (r - 1)(c - 1) \\[8pt] \textbf{Daerah Kritis:} \\ &\text{Tolak } H_0 \text{ jika } \chi^2_{\text{hitung}} > \chi^2_{\alpha, \, df} \text{ atau } p\text{-value} < \alpha \end{aligned}\]

$$

tabel <- as.matrix(gabung[, c("Jumlah_Populer", "Jumlah_Non_Populer")])
rownames(tabel) <- gabung$Product
tabel
##                   Jumlah_Populer Jumlah_Non_Populer
## Amaretto                      24                168
## Caffe Latte                   53                163
## Caffe Mocha                  146                334
## Chamomile                    151                233
## Colombian                    212                268
## Darjeeling                   137                247
## Decaf Espresso               137                271
## Decaf Irish Cream            127                257
## Earl Grey                    141                147
## Green Tea                     50                238
## Lemon                        140                340
## Mint                          66                126
## Regular Espresso              48                 24
chisq.test(tabel)
## 
##  Pearson's Chi-squared test
## 
## data:  tabel
## X-squared = 182.64, df = 12, p-value < 2.2e-16

Hasil ini menunjukkan bahwa proporsi produk yang termasuk kategori populer dan non-populer tidak sama untuk setiap jenis produk. Dengan kata lain, tingkat popularitas suatu produk dipengaruhi oleh jenis produknya. Beberapa produk cenderung lebih sering masuk kategori populer, sementara yang lain lebih dominan berada pada kategori non-populer. Terdapat hubungan yang signifikan antara jenis produk dan tingkat popularitasnya, sehingga variabel Product dan kategori Populer/Non Populer tidak independen. Hal ini mengindikasikan bahwa dapat memanfaatkan informasi ini untuk mengidentifikasi produk yang memiliki potensi tinggi maupun rendah, sehingga strategi pemasaran dan pengembangan produk dapat disesuaikan untuk meningkatkan kinerja penjualan secara keseluruhan. Seperti produk Amaretto yang mayoritas penjualannya di bawah rata-rata keseluruhan. Artinya perlu evaluasi untuk meningkatkan penjualan produk Amaretto

2.3 Hubungan wilayah pemasaran dengan keuntungan

Selanjutnya ingin dilihat apakah pemasaran pada wilayah tertentu memengaruhi keuntungan yang didapat.

2.3.1 Membuat dataframe berisikan Market, Product Type, Sales, dan Profit

df2 <- data %>%
  select(Market, `Product Type`, Sales, Profit) %>%
  filter(!is.na(Sales), !is.na(Profit), !is.na(Market))

ringkasan <- df2 %>%
  group_by(Market) %>%
  summarise(
    Jumlah_Transaksi = n(),
    Total_Sales      = round(sum(Sales), 2),
    Total_Profit     = round(sum(Profit), 2),
    Rata_Sales       = round(mean(Sales), 2),
    Rata_Profit      = round(mean(Profit), 2),
    SD_Profit        = round(sd(Profit), 2)
  ) %>%
  arrange(desc(Total_Profit))

print(ringkasan)
## # A tibble: 4 × 7
##   Market  Jumlah_Transaksi Total_Sales Total_Profit Rata_Sales Rata_Profit
##   <chr>              <int>       <dbl>        <dbl>      <dbl>       <dbl>
## 1 Central             1344      265045        93852       197.        69.8
## 2 West                1344      272264        73996       203.        55.1
## 3 East                 888      178576        59217       201.        66.7
## 4 South                672      103926        32478       155.        48.3
## # ℹ 1 more variable: SD_Profit <dbl>

Berdasarkan tabel ringkasan per Market, terlihat bahwa wilayah Central dan West memiliki jumlah transaksi tertinggi (masing-masing 1344), yang menunjukkan aktivitas penjualan paling besar berada di dua wilayah tersebut. Dari sisi total penjualan dan profit, wilayah West mencatat Total Sales tertinggi (272.264), sementara Central menghasilkan Total Profit tertinggi (93.852), yang mengindikasikan bahwa Central lebih efisien dalam menghasilkan keuntungan dibandingkan West. Sementara itu, South memiliki performa terendah baik dari jumlah transaksi, total sales, maupun rata-rata profit, sehingga menjadi wilayah dengan kontribusi paling kecil. Dari sisi rata-rata, East memiliki Rata-rata Sales yang cukup tinggi (201.10) dan Rata Profit yang juga kompetitif (66.69), meskipun jumlah transaksinya lebih sedikit, yang menunjukkan potensi efisiensi penjualan per transaksi. Selain itu, West memiliki standar deviasi profit tertinggi (113.88), yang menandakan variasi keuntungan yang besar (tidak stabil), sedangkan South memiliki variasi paling kecil, tetapi dengan nilai profit yang juga rendah. Perusahaan dapat mempertimbangkan untuk menjadikan Central sebagai benchmark efisiensi profit, West sebagai fokus peningkatan stabilitas (karena varians tinggi), dan East sebagai peluang pengembangan karena performa per transaksi cukup baik meskipun volumenya lebih kecil. Sementara itu, South perlu evaluasi strategi secara menyeluruh, baik dari sisi pemasaran, distribusi, maupun penawaran produk, karena performanya masih tertinggal dibanding wilayah lain.

2.3.2 Visualisasi Bar Plot

df_bar <- ringkasan %>%
  select(Market, Rata_Sales, Rata_Profit) %>%
  pivot_longer(cols = c(Rata_Sales, Rata_Profit),
               names_to  = "Metrik",
               values_to = "Nilai") %>%
  mutate(Metrik = recode(Metrik,
                         "Rata_Sales"  = "Rata Sales",
                         "Rata_Profit" = "Rata Profit"))

ggplot(df_bar, aes(x = reorder(Market, -Nilai), y = Nilai, fill = Metrik)) +
  geom_bar(stat = "identity", position = "dodge", width = 0.6) +
  scale_fill_manual(values = c("Rata Sales" = "#4E79A7",
                               "Rata Profit" = "#F28E2B")) +
  labs(
    title    = "Rata-Rata Sales dan Profit per Market Region",
    subtitle = "Coffee Chain Dataset",
    x        = "Market Region",
    y        = "Nilai",
    fill     = "Metrik"
  ) +
  theme_minimal(base_size = 13) +
  theme(plot.title      = element_text(face = "bold"),
        legend.position = "top")

Wilayah West memiliki rata-rata penjualan tertinggi, diikuti oleh East dan Central yang relatif mirip, sementara South memiliki rata-rata penjualan paling rendah. Dari sisi rata-rata profit, Central menunjukkan nilai tertinggi, diikuti oleh East, kemudian West, dan South sebagai yang terendah. Wilayah Central dapat dikatakan paling efisien dalam menghasilkan keuntungan karena memiliki rata-rata profit tertinggi meskipun bukan yang tertinggi dalam penjualan. Sementara itu, West unggul dalam penjualan namun tidak diikuti oleh profit yang sebanding, sehingga mengindikasikan adanya potensi inefisiensi biaya. South menunjukkan performa terendah baik dari sisi penjualan maupun profit, sehingga memerlukan evaluasi strategi. Secara keseluruhan, perusahaan dapat memfokuskan peningkatan efisiensi di wilayah dengan penjualan tinggi serta mengembangkan strategi untuk meningkatkan kinerja wilayah dengan performa rendah.

2.3.3.a Uji Anova ( Wilayah vs Profit)

Rumus Anova sama seperti pada 2.1.4.a

model_anova <- aov(Profit ~ Market, data = df2)
summary(model_anova)
##               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

Berdasarkan hasil uji ANOVA diperoleh nilai F hitung sebesar 9.361 dengan p-value sebesar 0.0000364, yang jauh lebih kecil dari taraf signifikansi 0.05. Hal ini menunjukkan bahwa H0 ditolak, sehingga dapat disimpulkan bahwa terdapat perbedaan rata-rata yang signifikan antar wilayah (Market) terhadap variabel profit. Dengan demikian, faktor wilayah memiliki pengaruh yang signifikan, sehingga perbedaan kinerja antar region seperti East, Central, West, dan South tidak terjadi secara kebetulan, melainkan memang terdapat perbedaan nyata yang perlu diperhatikan dalam pengambilan keputusan bisnis.Uji lanjutan diperlukan untuk mengetahui wilayah yang berbeda secara mendetail.

2.3.3.b Uji Lanjutan (Tukey)

Rumus Uji Tukey sama seperti pada bagian 2.1.4.b

tukey_result <- TukeyHSD(model_anova)
print(tukey_result)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Profit ~ Market, data = df2)
## 
## $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

Berdasarkan hasil uji lanjut Tukey, terlihat bahwa tidak semua pasangan wilayah memiliki perbedaan rata-rata profit yang signifikan. Wilayah Central memiliki profit yang secara signifikan lebih tinggi dibandingkan South dan West (p-value < 0.05), serta East juga lebih tinggi dibandingkan South, yang menunjukkan bahwa South merupakan wilayah dengan performa paling rendah. Selain itu, West memiliki profit yang lebih rendah secara signifikan dibandingkan East, yang mengindikasikan adanya ketertinggalan performa di wilayah West meskipun sebelumnya memiliki penjualan tinggi. Sementara itu, perbedaan antara East dan Central serta antara West dan South tidak signifikan, sehingga performa di pasangan tersebut relatif setara.Perusahaan dapat menjadikan Central dan East sebagai wilayah acuan (benchmark) karena performa profitnya lebih baik, sementara South perlu menjadi prioritas evaluasi utama, dan West perlu meningkatkan efisiensi agar penjualannya yang tinggi dapat dikonversi menjadi profit yang lebih optimal.

C.Kesimpulan

  1. Tipe produk memengaruhi pendapatan keuntungan secara signifikan. Produk Tea memberikan profit yang paling rendah dan memiliki rata-rata profit margin -15,31% dari penjualannya. Sedangkan tipe produk Coffee memiliki pendapatan keuntungan tertinggi. Namun keseluruhan tipe produk memiliki standar deviasi yang tinggi sehingga menunjukkan ketidakkonsistenan dalam perolehan keuntungan.Perusahaan perlu meningkatkan konsistensi penjualan dengan berbagai cara seperti memasifkan marketing, mengevaluasi produk, ataupun menganalisis lebih dalam.
  2. Produk yang dijual juga memengaruhi tingkat penjualan. Didapat bahwa banyak produk yang masih memiliki penjualan di bawah rata-rata keseluruhan. Produk Amaretto dan Green tea perlu menjadi perhatian karena penjualannya banyak yang kurang dari rata-rata penjualan keseluruhan.Perusahaan dapat mengevaluasi produk dan memperbaiki kualitas produk tersebut
  3. Wilayah pemasaran berpengaruh terhadap pendapatan keuntungan yang diperoleh. Wilayah Central menjadi wilayah pemasaran yang paling baik untuk mendapatkan keuntungan. Walaupun penjualan di wilayah West tinggi namun jumlah keuntungan yang didapatkan belum mampu menyaingi daerah Central yang memiliki penjualan relatif lebih rendah daripada West. Wilayah South perlu menjadi prioritas perhatian karena memiliki pendpatan keuntung paling rendah di antara 3 wilayah lainnya. Sedangkan west dapat dijadikan Benchmark dalam segi penjualan dan Central dapat dijadikan sebagai Benchmark dalam segi pendapatan keuntungan.