PENDAHULUAN

Latar Belakang

Industri kopi adalah salah satu bidang yang berkembang pesat dengan banyak sekali persaingan. Dalam situasi seperti ini, perusahaan harus memahami apa saja yang mempengaruhi kinerja mereka, terutama yang berkaitan dengan penjualan dan keuntungan. Informasi ini sangat penting supaya strategi yang diterapkan tidak hanya berdasarkan dugaan, tetapi didukung oleh data yang akurat.

Data tentang penjualan, marketing, dan budget dapat digunakan untuk mengukur seberapa efektif strategi bisnis yang sudah diterapkan. Dengan data ini, perusahaan dapat mengetahui apakah pengeluaran untuk marketing berkaitan dengan peningkatan profit, serta menilai apakah rencana yang sudah dibuat sesuai dengan realisasi di lapangan. Selain itu, pola yang terlihat dari data juga bisa memberikan gambaran tentang keadaan bisnis secara umum.

Oleh karena itu, analisis ini dilakukan untuk mengeksplorasi hubungan antara marketing dan profit, menguji kesesuaian antara budget dan realisasi, serta mencari pola dalam data penjualan kopi. Hasil analisis diharapkan bisa memberikan wawasan yang berguna untuk membantu pengambilan keputusan bisnis yang lebih baik.

DESKRIPSI DATA

Dataset yang digunakan dalam analisis ini adalah data terkait penjualan kopi. Memahami deskripsi data adalah tahap awal yang perlu dilakukan sebelum melanjutkan ke analisis lebih lanjut, karena tahap ini memberikan pemahaman yang menyeluruh mengenai struktur dan isi data yang akan dianalisis.

library(readxl)
library(kableExtra)

data <- read_excel("Coffee Chain Datasets.xlsx")
data[1:15, ] %>%
  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
303 2012-01-01 Central Major Market Earl Grey Leaves Tea Colorado Regular 50 70 40 120 64 965 76 19 36 140 40
217 2012-01-01 Central Major Market Colombian Beans Coffee Illinois Regular 150 210 130 360 144 862 201 47 111 345 90
309 2012-01-01 Central Major Market Decaf Irish Cream Beans Coffee Illinois Decaf 100 140 100 240 95 608 139 30 87 234 52
309 2012-01-01 Central Major Market Caffe Mocha Beans Espresso Illinois Regular 270 370 260 640 234 1310 312 77 203 546 109
630 2012-01-01 Central Major Market Decaf Espresso Beans Espresso Illinois Decaf 260 270 180 530 228 1459 228 63 140 456 88

Berikut adalah penjelasan dari setiap variabel:

  1. Area Code : Kode wilayah penjualan
  2. Date : Tanggal penjualan
  3. Market : Wilayah pemasaran
  4. Market Size : Ukuran pasar
  5. Product : Nama produk
  6. Product Line : Kelompok produk
  7. Product Type : Jenis produk
  8. State : Negara bagian penjualan
  9. Type : Tipe produk
  10. Budget COGS : Anggaran biaya pokok
  11. Budget Margin : Target margin keuntungan
  12. Budget Profit : Target profit
  13. Budget Sales : Target penjualan
  14. COGS : Biaya pokok aktual
  15. Inventory : Stok produk yang tersedia
  16. Margin : Margin keuntungan aktual
  17. Marketing : Biaya pemasaran
  18. Profit : Profit aktual
  19. Sales : Penjualan aktual
  20. Total Expenses : Total pengeluaran

EKSPLORASI DATA

Eksplorasi data merupakan tahap awal yang dilakukan untuk memahami struktur dan kondisi data sebelum masuk tahap ke analisis lebih lanjut. Langkah ini meliputi pemeriksaan tipe data, missing value, dan statistik deskriptif untuk memastikan bahwa data yang digunakan sudah bersih dan siap untuk analisis selanjutnya.

Tipe 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 ...

Dataset ini mencakup 4.248 data dengan 20 kolom (variabel), terdiri dari 7 variabel dengan tipe chr, 12 variabel dengan tipe num, dan 1 variabel dengan tipe POSIXct yaitu date. Ini menunjukkan bahwa tipe data di dataset ini sudah sesuai untuk analisis lebih lanjut.

Data Null

colSums(is.na(data))
##      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

Tidak terdapat missing value atau data kosong pada seluruh variabel dalam dataset. Hal ini menunjukkan bahwa data sudah lengkap dan siap digunakan dalam tahap analisis berikutnya.

Statistik Deskriptif

Statistik deskriptif dilakukan untuk mendapatkan gambaran umum mengenai sebaran data numerik dalam dataset. Beberapa ukuran yang dihitung meliputi rata-rata, median, variansi, serta standar deviasi.

Karena kolom Area Code hanya berfungsi sebagai kode unik yang tidak akan dianalisis, kolom ini akan dihilangkan terlebih dahulu sebelum melakukan statistik deskriptif.

data <- data[ , !names(data) %in% "Area Code"]
data
## # 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>

Rata-rata (mean) dihitung menggunakan rumus berikut:

\[ \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i \]

Variansi digunakan untuk mengukur penyebaran data, dengan rumus:

\[ s^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2 \]

Standar deviasi merupakan akar dari variansi, dengan rumus:

\[ s = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2} \]

data_numerik <- data[ , sapply(data, is.numeric)]
stat_desk <- data.frame(
  Mean     = sapply(data_numerik, mean, na.rm = TRUE),
  Median   = sapply(data_numerik, median, na.rm = TRUE),
  Variansi = sapply(data_numerik, var, na.rm = TRUE),
  Std_Dev  = sapply(data_numerik, sd, na.rm = TRUE)
)
stat_desk %>%
  knitr::kable(digits = 2) %>%
  kable_styling(full_width = FALSE) %>%
  scroll_box(width = "100%", height = "300px")
Mean Median Variansi Std_Dev
Budget COGS 74.83 50 4387.49 66.24
Budget Margin 100.82 70 8575.26 92.60
Budget Profit 60.91 40 6327.59 79.55
Budget Sales 175.65 130 22168.69 148.89
COGS 84.43 60 4522.53 67.25
Inventory 749.38 619 436963.17 661.03
Margin 104.29 76 8900.51 94.34
Marketing 31.19 22 730.26 27.02
Profit 61.10 40 10344.63 101.71
Sales 192.99 138 22841.22 151.13
Total Expenses 54.06 46 1046.69 32.35

UJI STATISTIK

Uji statistik dilakukan untuk menguji hubungan dan pengaruh antar variabel dalam dataset secara lebih rinci. Sebelum melakukan uji lebih lanjut, penting untuk melakukan uji normalitas terlebih dahulu guna menentukan apakah data mengikuti distribusi normal atau tidak, karena hal ini akan mempengaruhi jenis uji statistik yang akan digunakan selanjutnya.

Uji Normalitas

Uji normalitas dilakukan untuk menentukan apakah data terkait Marketing, Budget Profit, dan Profit berdistribusi normal atau tidak. Uji yang digunakan adalah Shapiro-Wilk dengan hipotesis sebagai berikut:

\(H_0\) : Data berdistribusi normal
\(H_1\) : Data tidak berdistribusi normal

shapiro.test(data$Marketing)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Marketing
## W = 0.81776, p-value < 2.2e-16
shapiro.test(data$Profit)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Profit
## W = 0.79969, p-value < 2.2e-16
shapiro.test(data$`Budget Profit`)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$`Budget Profit`
## W = 0.80523, p-value < 2.2e-16

Berdasarkan hasil uji normalitas menggunakan Shapiro-Wilk, diperoleh nilai p-value untuk ketiga variabel yaitu Marketing, Profit, dan Budget Profit yang semuanya menunjukkan p-value < 2,2e-16 yang artinya jauh lebih kecil dari 0,05. Dengan demikian \(H_0\) ditolak, yang menunjukkan bahwa ketiga variabel tersebut tidak berdistribusi normal.

Karena data tidak berdistribusi normal, maka uji statistik yang akan digunakan selanjutnya adalah uji Korelasi Spearman dan uji Wilcoxon.

Berikut adalah visualisasi distribusi data Marketing dan Profit dalam bentuk histogram untuk memperkuat uji normalitas.

library(ggplot2)
library(gridExtra)

# Histogram Marketing
plot1 <- ggplot(data, aes(x = Marketing)) +
  geom_histogram(fill = "#5b7fa6", color = "white", bins = 30) +
  labs(
    title = "Distribusi Data Marketing",
    x = "Marketing",
    y = "Frekuensi"
  ) +
  theme_minimal()

# Histogram Profit
plot2 <- ggplot(data, aes(x = Profit)) +
  geom_histogram(fill = "#5b7fa6", color = "white", bins = 30) +
  labs(
    title = "Distribusi Data Profit",
    x = "Profit",
    y = "Frekuensi"
  ) +
  theme_minimal()

# Tampilkan berdampingan
grid.arrange(plot1, plot2, ncol = 2)

Uji Korelasi

Uji korelasi dilakukan untuk mengetahui seberapa kuat hubungan antara variabel Marketing dengan Profit. Karena berdasarkan hasil uji normalitas menunjukkan bahwa data tidak berdistribusi normal, maka uji korelasi Spearman dengan hipotesis sebagai berikut:

\(H_0\) : Tidak terdapat hubungan antara Marketing dan Profit
\(H_1\) : Terdapat hubungan antara Marketing dan Profit

Interpretasi nilai korelasi:
0,00 - 0,25 : Korelasi sangat lemah
0,26 - 0,50 : Korelasi cukup
0,51 - 0,75 : Korelasi kuat
0,76 - 1,00 : Korelasi sangat kuat

cor.test(data$Marketing, data$Profit, method = "spearman")
## 
##  Spearman's rank correlation rho
## 
## data:  data$Marketing and data$Profit
## S = 8228563128, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.3559468

Berdasarkan hasil uji korelasi Spearman, diperoleh nilai p-value < 2,2e-16 yang jauh lebih kecil dari 0,05 sehingga \(H_0\) ditolak. Ini menunjukkan adanya hubungan yang signifikan antara variabel Marketing dan Profit. Koefisien korelasi yang diperoleh bernilai 0,3558, yang berada dalam kisaran antara 0,26 hingga 0,50, menandakan bahwa hubungan antara Marketing dan Profit dapat dikatakan cukup baik.

Hal ini berarti bahwa peningkatan dalam pengeluaran Marketing memiliki keterkaitan yang cukup dengan peningkatan profit, meskipun hubungannya tidak terlalu kuat sehingga kemungkinan terdapat faktor lain yang juga mempengaruhi profit selain dari biaya marketing.

Berikut disajikan visualisasi scatter plot antara Marketing dan Profit untuk mendukung hasil uji korelasi Spearman.

ggplot(data, aes(x = Marketing, y = Profit)) +
  geom_point(color = "#5b7fa6", alpha = 0.5) +
  geom_smooth(method = "lm", color = "red", se = FALSE) +
  labs(
    title = "Korelasi Marketing dan Profit",
    x = "Marketing",
    y = "Profit"
  ) +
  theme_minimal()

Uji Wilcoxon

Uji Wilcoxon dilakukan untuk membandingkan apakah terdapat perbedaan yang signifikan antara Budget Profit yang telah direncanakan dengan realisasi Profit yang aktual. Uji ini dipilih karena data yang dimiliki tidak berdistribusi normal, sehingga tidak memenuhi syarat untuk menggunakan uji parametrik. Hipotesis yang digunakan adalah sebagai berikut:

\(H_0\) : Tidak terdapat perbedaan antara Budget Profit dan realisasi Profit
\(H_1\) : Terdapat perbedaan antara Budget Profit dan realisasi Profit

wilcox.test(data$`Budget Profit`, data$Profit, paired = TRUE)
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  data$`Budget Profit` and data$Profit
## V = 4923728, p-value = 2.192e-14
## alternative hypothesis: true location shift is not equal to 0

Berdasarkan hasil uji Wilcoxon diperoleh hasil nilai p-value = 2,192e-14 yang lebih kecil dari 0,05, sehingga \(H_0\) ditolak. Hal ini menunjukkan bahwa terdapat perbedaan yang signifikan antara Budget Profit yang telah direncanakan dengan realisasi Profit yang sebenarnya.

Kondisi ini menunjukkan bahwa perencanaan anggaran profit belum sepenuhnya sesuai dengan realisasi di lapangan, sehingga perusahaan perlu mengevaluasi agar perencanaan anggaran menjadi lebih akurat.

Berikut disajikan visualisasi perbandingan antara Budget Profit dan Profit untuk memperjelas perbedaan yang terjadi.

library(tidyr)

data_wilcox <- data.frame(
  Budget_Profit = data$`Budget Profit`,
  Actual_Profit = data$Profit
) %>%
  pivot_longer(cols = everything(),
               names_to = "Kategori",
               values_to = "Nilai")

ggplot(data_wilcox, aes(x = Kategori, y = Nilai, fill = Kategori)) +
  geom_boxplot(alpha = 0.7) +
  scale_fill_manual(values = c("#5b7fa6", "#f7f2f0")) +
  labs(
    title = "Perbandingan Budget Profit vs Realisasi Profit",
    x = "Kategori",
    y = "Nilai"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

Uji Regresi Linear Sederhana

Uji regresi linear sederhana dilakukan untuk mengetahui seberapa besar pengaruh variabel Marketing terhadap Profit. Model regresi linear sederhana yang digunakan adalah:

\[ Y = a + bX \]

Keterangan:
Y = Profit (variabel dependen)
X = Marketing (variabel independen) a = konstanta
b = koefisien regresi

Hipotesis yang digunakan adalah sebagai berikut:
\(H_0\) : Marketing tidak berpengaruh signifikan terhadap Profit
\(H_1\) : Marketing berpengaruh signifikan terhadap Profit

Meskipun hasil uji Shapiro-Wilk menunjukkan bahwa data tidak berdistribusi normal, uji regresi linear tetap dapat digunakan karena jumlah data yang besar (n = 4.248). Berdasarkan Central Limit Theorem, dengan ukuran sampel yang cukup besar, distribusi sampling dari estimator regresi akan mendekati normal sehingga asumsi normalitas pada regresi linear terpenuhi secara aproksimasi.

model <- lm(Profit ~ Marketing, data = data)
summary(model)
## 
## Call:
## lm(formula = Profit ~ Marketing, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -769.37  -30.82   -7.97   33.00  728.94 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 34.63433    2.32197   14.92   <2e-16 ***
## Marketing    0.84859    0.05627   15.08   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 99.1 on 4246 degrees of freedom
## Multiple R-squared:  0.05083,    Adjusted R-squared:  0.05061 
## F-statistic: 227.4 on 1 and 4246 DF,  p-value: < 2.2e-16

Berdasarkan hasil dari uji regresi linear sederhana, didapatkan p-value < 2,2e-16 yang lebih kecil dari 0,05, sehingga \(H_0\) ditolak. Hal ini menunjukkan bahwa variabel Marketing berpengaruh signifikan terhadap Profit.

Persamaan regresi yang diperoleh adalah:

\[ Y = 34.63433 + 0.84859X \]

Artinya, ketika tidak terdapat biaya marketing, profit yang diprediksi sebesar 34,63. Selain itu, setiap peningkatan biaya marketing sebesar 1 satuan, profit meningkat sebesar 0,85 satuan.

Nilai R-squared sebesar 0.05083 menunjukkan bahwa variabel Marketing hanya menjelaskan 5,08% perubahan pada Profit, sedangkan sisanya sebesar 94,92% dipengaruhi oleh faktor lain di luar model. Hal ini menunjukkan bahwa meskipun pengaruh Marketing signifikan secara statistik, namun kontribusinya relatif kecil.

Berikut disajikan scatter plot antara Marketing dan Profit untuk menjelaskan hubungan yang ada dalam model regresi.

ggplot(data, aes(x = Marketing, y = Profit)) +
  geom_point(color = "#5b7fa6", alpha = 0.5) +
  geom_smooth(method = "lm", color = "red", se = TRUE) +
  geom_hline(yintercept = mean(data$Profit), linetype = "dashed", color = "gray40") +
  annotate("text", x = max(data$Marketing) * 0.85, y = mean(data$Profit) + 5,
           label = paste("Rata-rata Profit =", round(mean(data$Profit), 2)), size = 3.5) +
  labs(
    title = "Regresi Linear Marketing terhadap Profit",
    subtitle = "Garis putus-putus menunjukkan rata-rata Profit",
    x = "Marketing",
    y = "Profit"
  ) +
  theme_minimal()

PENUTUP

Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan terhadap data penjualan kopi, diperoleh bahwa terdapat hubungan yang cukup antara biaya Marketing dan Profit dengan nilai korelasi sebesar 0,3559. Selain itu, terdapat perbedaan yang signifikan antara Budget Profit yang direncanakan dengan realisasinya, dan variabel Marketing hanya mampu menjelaskan sebesar 5,08% variasi Profit yang menunjukkan bahwa masih banyak faktor lain yang mempengaruhi Profit perusahaan.

Secara keseluruhan, strategi Marketing, perencanaan Budget, dan realisasi Profit saling berhubungan dan perlu dievaluasi secara rutin agar keputusan bisnis dalam penjualan kopi bisa dilakukan dengan baik dan tepat. Perusahaan disarankan untuk tidak hanya bergantung pada biaya marketing untuk meningkatkan profit, tetapi juga harus mempertimbangkan faktor lain seperti kualitas produk dan harga. Selain itu, perusahaan perlu memperbaiki proses perencanaan anggaran agar lebih realistis dan berdasarkan data aktual sehingga target yang ditetapkan bisa lebih sesuai dengan kondisi di lapangan.