1.Deskripsi Insight

Dataset Coffee Chain memuat data transaksi penjualan kopi dan teh di berbagai wilayah Amerika Serikat selama periode Januari 2012 – Desember 2013. Dataset ini mencakup 4.248 observasi dengan 20 variabel, meliputi informasi produk, lokasi pasar, dan performa keuangan seperti Sales, COGS, Marketing, Profit, dan Total Expenses. Dalam analisis ini, fokus diarahkan pada dua variabel utama, yaitu COGS (Cost of Goods Sold) sebagai variabel prediktor dan Sales sebagai variabel respons. COGS merepresentasikan total biaya langsung yang dikeluarkan untuk memproduksi produk yang terjual, sedangkan Sales mencerminkan total pendapatan dari penjualan. Analisis ini bertujuan untuk mengetahui apakah terdapat pengaruh yang signifikan antara biaya produksi terhadap penjualan, sehingga perusahaan dapat mengambil keputusan bisnis yang lebih tepat dalam mengelola efisiensi produksi dan strategi penjualan.

2. Import Data dan Persiapan

library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## 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
# Membaca data dari file Excel
df <- read_excel("C:/Users/LENOVO/Documents/semesrter4/1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx")
View(df)
# Cek dimensi dan struktur
dim(df)
## [1] 4248   20
str(df)
## 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 ...
# Ringkasan statistik variabel yang digunakan
df %>%
  select(COGS, Marketing) %>%
  summary()
##       COGS          Marketing     
##  Min.   :  0.00   Min.   :  0.00  
##  1st Qu.: 43.00   1st Qu.: 13.00  
##  Median : 60.00   Median : 22.00  
##  Mean   : 84.43   Mean   : 31.19  
##  3rd Qu.:100.00   3rd Qu.: 39.00  
##  Max.   :364.00   Max.   :156.00

3. Visualisasi data

3.1 Heatmap Korelasi (Matriks Korelasi)

### 3.1 Matriks Korelasi (Heatmap)
# Langkah ini bertujuan untuk melihat variabel mana yang paling dominan memengaruhi Sales

library(ggcorrplot)
## Warning: package 'ggcorrplot' was built under R version 4.4.3
# Mengambil variabel numerik saja untuk dikorelasikan
df_corr <- df %>% 
  select(Sales, COGS, Marketing, Profit, `Total Expenses`)

# Menghitung korelasi
corr_matrix <- round(cor(df_corr), 2)

# Menampilkan Heatmap
ggcorrplot(corr_matrix, 
           hc.order = TRUE, 
           type = "lower",
           lab = TRUE, 
           title = "Matriks Korelasi Variabel Keuangan Coffee Chain",
           colors = c("#E4672E", "white", "#6D9EC1"))
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## ℹ The deprecated feature was likely used in the ggcorrplot package.
##   Please report the issue at <https://github.com/kassambara/ggcorrplot/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

3.2 Tren Penjualan Bulanan (Time Series)

Visualisasi ini menunjukkan fluktuasi penjualan sepanjang periode pengamatan untuk melihat pola musiman.

df_trend <- df %>%
  group_by(Date) %>%
  summarise(Total_Sales = sum(Sales))

ggplot(df_trend, aes(x = Date, y = Total_Sales)) +
  geom_line(color = "#1B9E77", size = 1) +
  geom_area(fill = "#1B9E77", alpha = 0.2) +
  labs(title = "Tren Penjualan Bulanan Coffee Chain",
       x = "Tahun-Bulan", y = "Total Sales") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

3.3 Hubungan Biaya dan Pendapatan

Visualisasi ini menunjukkan korelasi antara biaya produksi (COGS) dengan total penjualan(sales)

ggplot(df, aes(x = COGS, y = Sales)) +
  geom_point(alpha = 0.3, color = "#6F4E37") +
  geom_smooth(method = "lm", color = "red") +
  labs(title = "Scatter Plot: COGS vs Sales",
       subtitle = "Menunjukkan korelasi linear yang kuat",
       x = "Cost of Goods Sold", y = "Sales") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

3.4 Komposisi Penjualan per Kategori Produk

Bagian ini menganalisis produk mana yang memberikan kontribusi penjualan tertinggi.

df_product <- df %>%
  group_by(`Product Type`) %>%
  summarise(Total_Sales = sum(Sales))

ggplot(df_product, aes(x = reorder(`Product Type`, -Total_Sales), y = Total_Sales, fill = `Product Type`)) +
  geom_col() +
  labs(title = "Total Sales berdasarkan Tipe Produk",
       x = "Tipe Produk", y = "Total Sales") +
  theme_minimal() +
  scale_fill_brewer(palette = "Pastel1")

4. Analisis Regresi Linear

Untuk membuktikan insight secara ilmiah, dilakukan uji regresi linear sederhana.COGS dipilih sebagai prediktor tunggal untuk menghindari isu multikolinearitas yang sering muncul pada variabel biaya lainnya.

model_final <- lm(Sales ~ COGS, data = df)
summary(model_final)
## 
## Call:
## lm(formula = Sales ~ COGS, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -607.51  -10.75   -1.38   17.98  536.64 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 24.74544    1.72149   14.37   <2e-16 ***
## COGS         1.99261    0.01595  124.94   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 69.9 on 4246 degrees of freedom
## Multiple R-squared:  0.7862, Adjusted R-squared:  0.7861 
## F-statistic: 1.561e+04 on 1 and 4246 DF,  p-value: < 2.2e-16

5. Kesimpulan

Berdasarkan analisis regresi linear sederhana antara COGS dan Sales pada data Coffee Chain:

  1. Terdapat hubungan positif dan signifikan antara COGS dan Sales, ditunjukkan oleh koefisien regresi yang positif dengan p-value < 0.05.
  2. Setiap kenaikan 1 unit COGS, Sales meningkat sebesar 1.99261 unit.
  3. Nilai R² ≈ 0.7862 menunjukkan bahwa 78.6% variasi Sales dapat dijelaskan oleh COGS, yang mengindikasikan model ini cukup kuat.
  4. Secara bisnis, hasil ini menunjukkan bahwa volume produksi/biaya produk berbanding lurus dengan penjualan — semakin besar kapasitas produksi yang dikeluarkan, semakin tinggi penjualan yang dihasilkan.Namun demikian, 21.38 % sisanya dijelaskan oleh faktor lain seperti marketing, lokasi pasar, atau jenis produk yang tidak dimasukkan dalam model ini.
  5. F-statistic = 15.610 dengan p-value < 2.2e-16 membuktikan model secara keseluruhan signifikan dan layak digunakan.