#Insight Profit merupakan salah satu indikator utama dalam menilai kinerja suatu perusahaan, termasuk dalam industri coffee chain. Setiap market tentunya memiliki potensi dan tantangan yang berbeda, sehingga memungkinkan terjadinya perbedaan rata-rata profit antar market. Oleh karena itu, penting untuk melakukan analisis guna mengetahui apakah perbedaan tersebut bersifat signifikan secara statistik.

Penelitian ini bertujuan untuk menganalisis perbedaan rata-rata profit antar market menggunakan metode ANOVA, sehingga dapat memberikan gambaran mengenai market mana yang memiliki kinerja profit yang lebih baik dan stabil.

#Import Data

library(readxl)
## Warning: package 'readxl' was built under R version 4.5.2
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
data_coffee_chain <- read_excel("C:/Users/kumal/OneDrive/Dokumen/Smt 2/Sistem Informasi Manajemen/1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx")

head(data_coffee_chain)
## # A tibble: 6 × 20
##   `Area Code` Date                Market  `Market Size` Product   `Product Line`
##         <dbl> <dttm>              <chr>   <chr>         <chr>     <chr>         
## 1         719 2012-01-01 00:00:00 Central Major Market  Amaretto  Beans         
## 2         970 2012-01-01 00:00:00 Central Major Market  Colombian Beans         
## 3         970 2012-01-01 00:00:00 Central Major Market  Decaf Ir… Beans         
## 4         303 2012-01-01 00:00:00 Central Major Market  Green Tea Leaves        
## 5         303 2012-01-01 00:00:00 Central Major Market  Caffe Mo… Beans         
## 6         720 2012-01-01 00:00:00 Central Major Market  Decaf Es… Beans         
## # ℹ 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>
tail(data_coffee_chain)
## # A tibble: 6 × 20
##   `Area Code` Date                Market `Market Size` Product    `Product Line`
##         <dbl> <dttm>              <chr>  <chr>         <chr>      <chr>         
## 1         425 2013-12-01 00:00:00 West   Small Market  Lemon      Leaves        
## 2         206 2013-12-01 00:00:00 West   Small Market  Caffe Lat… Beans         
## 3         509 2013-12-01 00:00:00 West   Small Market  Caffe Moc… Beans         
## 4         360 2013-12-01 00:00:00 West   Small Market  Decaf Esp… Beans         
## 5         360 2013-12-01 00:00:00 West   Small Market  Colombian  Beans         
## 6         206 2013-12-01 00:00:00 West   Small Market  Decaf Iri… Beans         
## # ℹ 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>
str(data_coffee_chain)
## 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 ...
dim(data_coffee_chain)
## [1] 4248   20
names(data_coffee_chain)
##  [1] "Area Code"      "Date"           "Market"         "Market Size"   
##  [5] "Product"        "Product Line"   "Product Type"   "State"         
##  [9] "Type"           "Budget COGS"    "Budget Margin"  "Budget Profit" 
## [13] "Budget Sales"   "COGS"           "Inventory"      "Margin"        
## [17] "Marketing"      "Profit"         "Sales"          "Total Expenses"
summary(data_coffee_chain)
##    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

#Visualisasi Data ##Scatter Plot Sales vs Profit

ggplot(data_coffee_chain, aes(x = Sales, y = Profit)) +
  geom_point(color = "#BC8F8F", alpha = 0.6) +
  theme_minimal() +
  labs(
    title = "Hubungan Sales dan Profit",
    x = "Sales",
    y = "Profit"
  )

Interpretasi : Scatter plot menunjukkan adanya hubungan positif antara Sales dan Profit, dimana peningkatan pada Sales cenderung diikuti juga oleh peningkatan Profit. Namun, masih terdapat beberapa variasi data dan nilai Profit negatif pada Sales yang rendah. Hal ini menunjukkan bahwa tidak semua penjualan menghasilkan keuntungan.

##Boxplot Profit per Market

ggplot(data_coffee_chain, aes(x = Market, y = Profit, fill = Market)) +
  geom_boxplot(color = "black") +
  scale_fill_manual(values = c("#D2B48C", "#6B8E23", "#E9967A", "#B0CFDB")) +
  theme_minimal() +
  labs(
    title = "Distribusi Profit Berdasarkan Market",
    x = "Market",
    y = "Profit"
  )

Interpretasi : Boxplot menunjukkan bahwa terdapat perbedaan distribusi profit antar market. Market East dan West memiliki variasi profit lebih besar, sedangkan Central dan South menunjukkan hasil yang cukup stabil. Beberapa market juga menunjukkan adanya profit negatif.

#Analisis Data ##Uji Anova ###Hipotesis - H0 : rata-rata Profit pada semua Market sama - H1 : rata-rata Profit pada Market ada yang tidak sama ###Kriteria pengambilan keputusan - H0 ditolak jika p-value < 0.05 - H0 gagal ditolak jika p-value > 0.05 ###Uji Hipotesis

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

Interpretasi : Berdasarkan hasil uji Anova, diketahui bahwa F value = 9.361 dengan p-value < 0.05 Hal ini berarti H0 ditolak

Artinya, terdapat perbedaan rata-rata profit yang signifikan antar market. Dengan demikian, faktor market akan berpengaruh terhadap perbedaan profit yang dihasilkan.

##Uji Normalitas Residual ###Hipotesis - H0 : residual berdistribusi normal - H1 : residual tidak berdistribusi normal ###Kriteria pengambilan keputusan - H0 ditolak jika p-value < 0.05 - H0 gagal ditolak jika p-value > 0.05 ###Uji Hipotesis

shapiro.test(residuals(model))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model)
## W = 0.80613, p-value < 2.2e-16

Interpretasi : Berdasarkan hasil uji Normalitas Residual, diketahui bahwa p-value < 0.05 Hal ini berarti H0 ditolak. Artinya, residual disini tidak berdistribusi normal.

Meskipun begitu, dengan adanya jumlah sampel yang cukup besar pada data yang digunakan, hal ini menyebabkan analisis Anova masih dapat digunakan sebagai pendekatan berdasarkan Central Limit Theorem.

#Kesimpulan Berdasarkan hasil analisis, dapat kita ketahui bahwa terdapat perbedaan rata-rata profit yang signifikan antar market, sehingga market ini berpengaruh terhadap tingkat profit yang dihasilkan.

Selain itu, hubungan antara Sales dan Profit juga menunjukkan hubungan yang cenderung positif, dimana peningkatan Sales ini diikuti juga oleh peningkatan Profit.

Mengenai gambaran market mana yang memiliki kinerja profit lebih baik dan stabil, dapat kita peroleh dari data market yang memiliki median profit lebih tinggi, cenderung positif, dan sebarannya tidak terlalu banyak di area negatif. Market yang paling memenuhi kriteria itu adalah Market Central dan juga South.