Deskripsi Dataset

Dataset Coffe Chain merupakan data transaksi penjualan kopi yang tersimpan dalam database MySQL. Dataset tersebut terdiri dari beberapa tabel, yaitu, tabel facttabel, product, dan location.

Insight Analisis

Insight yang diambil dalam analisis ini adalah untuk mengetahui apakah terdapat perbedaan profit berdasarkan jenis produk.

Insight ini dipilih karena setiap jenis produk memiliki karakteristik yang berbeda, sehingga berpotensi menghasilkan profit yang berbeda pula.

Import

library(DBI)
## Warning: package 'DBI' was built under R version 4.5.2
library(odbc)
## Warning: package 'odbc' was built under R version 4.5.2
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.2
## 
## 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
cc = dbConnect(odbc(),
               Driver = "MySQL ODBC 8.0 ANSI Driver",
               Server = "127.0.0.1",
               UID = "root",
               PWD = "admin123",
               Port = 3306,
               database = "coffee_chain")
fact <- dbGetQuery(cc, "SELECT * FROM facttable")
loc  <- dbGetQuery(cc, "SELECT * FROM location")
prod <- dbGetQuery(cc, "SELECT * FROM product")

colnames(fact)
##  [1] "Profit"         "Margin"         "Sales"          "COGS"          
##  [5] "Total Expenses" "Marketing"      "Inventory"      "Budget Profit" 
##  [9] "Budget COGS"    "Budget Margin"  "Budget Sales"   "Area Code"     
## [13] "ProductId"      "Date"
colnames(loc)
## [1] "Area Code"   "State"       "Market"      "Market Size"
colnames(prod)
## [1] "Product Line" "Product Type" "Product"      "ProductId"    "Type"
str(fact)
## 'data.frame':    4248 obs. of  14 variables:
##  $ Profit        : int  94 68 101 30 54 53 99 0 33 17 ...
##  $ Margin        : int  130 107 139 56 80 108 171 87 80 72 ...
##  $ Sales         : int  219 190 234 100 134 180 341 150 140 130 ...
##  $ COGS          : int  89 83 95 44 54 72 170 63 60 58 ...
##  $ Total Expenses: int  36 39 38 26 26 55 72 87 47 55 ...
##  $ Marketing     : int  24 27 26 14 15 23 47 57 19 22 ...
##  $ Inventory     : int  777 623 821 623 456 558 1091 435 336 338 ...
##  $ Budget Profit : int  100 80 110 30 70 80 110 20 40 20 ...
##  $ Budget COGS   : int  90 80 100 30 60 80 140 50 50 40 ...
##  $ Budget Margin : int  130 110 140 50 90 130 160 80 70 70 ...
##  $ Budget Sales  : int  220 190 240 80 150 210 300 130 120 110 ...
##  $ Area Code     : int  719 970 970 303 303 720 970 719 970 719 ...
##  $ ProductId     : int  1 2 3 13 5 6 8 9 10 11 ...
##  $ Date          : chr  "2012-01-01 00:00:00" "2012-01-01 00:00:00" "2012-01-01 00:00:00" "2012-01-01 00:00:00" ...
str(loc)
## 'data.frame':    156 obs. of  4 variables:
##  $ Area Code  : int  203 206 209 210 212 213 214 216 217 224 ...
##  $ State      : chr  "Connecticut" "Washington" "California" "Texas" ...
##  $ Market     : chr  "East" "West" "West" "South" ...
##  $ Market Size: chr  "Small Market" "Small Market" "Major Market" "Major Market" ...
str(prod)
## 'data.frame':    13 obs. of  5 variables:
##  $ Product Line: chr  "Beans" "Beans" "Beans" "Beans" ...
##  $ Product Type: chr  "Coffee" "Coffee" "Coffee" "Espresso" ...
##  $ Product     : chr  "Amaretto" "Colombian" "Decaf Irish Cream" "Caffe Latte" ...
##  $ ProductId   : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Type        : chr  "Regular" "Regular" "Decaf" "Regular" ...
summary(fact)
##      Profit           Margin            Sales          COGS       
##  Min.   :-638.0   Min.   :-302.00   Min.   : 17   Min.   :  0.00  
##  1st Qu.:  17.0   1st Qu.:  52.75   1st Qu.:100   1st Qu.: 43.00  
##  Median :  40.0   Median :  76.00   Median :138   Median : 60.00  
##  Mean   :  61.1   Mean   : 104.29   Mean   :193   Mean   : 84.43  
##  3rd Qu.:  92.0   3rd Qu.: 132.00   3rd Qu.:230   3rd Qu.:100.00  
##  Max.   : 778.0   Max.   : 613.00   Max.   :912   Max.   :364.00  
##  Total Expenses     Marketing        Inventory       Budget Profit    
##  Min.   : 10.00   Min.   :  0.00   Min.   :-3534.0   Min.   :-320.00  
##  1st Qu.: 33.00   1st Qu.: 13.00   1st Qu.:  432.0   1st Qu.:  20.00  
##  Median : 46.00   Median : 22.00   Median :  619.0   Median :  40.00  
##  Mean   : 54.06   Mean   : 31.19   Mean   :  749.4   Mean   :  60.91  
##  3rd Qu.: 65.00   3rd Qu.: 39.00   3rd Qu.:  910.5   3rd Qu.:  80.00  
##  Max.   :190.00   Max.   :156.00   Max.   : 8252.0   Max.   : 560.00  
##   Budget COGS     Budget Margin     Budget Sales      Area Code    
##  Min.   :  0.00   Min.   :-210.0   Min.   :   0.0   Min.   :203.0  
##  1st Qu.: 30.00   1st Qu.:  50.0   1st Qu.:  80.0   1st Qu.:417.0  
##  Median : 50.00   Median :  70.0   Median : 130.0   Median :573.0  
##  Mean   : 74.83   Mean   : 100.8   Mean   : 175.6   Mean   :582.3  
##  3rd Qu.: 90.00   3rd Qu.: 130.0   3rd Qu.: 210.0   3rd Qu.:772.0  
##  Max.   :450.00   Max.   : 690.0   Max.   :1140.0   Max.   :985.0  
##    ProductId          Date          
##  Min.   : 1.000   Length:4248       
##  1st Qu.: 4.000   Class :character  
##  Median : 6.000   Mode  :character  
##  Mean   : 6.887                     
##  3rd Qu.:10.000                     
##  Max.   :13.000
summary(loc)
##    Area Code        State              Market          Market Size       
##  Min.   :203.0   Length:156         Length:156         Length:156        
##  1st Qu.:406.5   Class :character   Class :character   Class :character  
##  Median :611.0   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :599.8                                                           
##  3rd Qu.:813.5                                                           
##  Max.   :985.0
summary(prod)
##  Product Line       Product Type         Product            ProductId 
##  Length:13          Length:13          Length:13          Min.   : 1  
##  Class :character   Class :character   Class :character   1st Qu.: 4  
##  Mode  :character   Mode  :character   Mode  :character   Median : 7  
##                                                           Mean   : 7  
##                                                           3rd Qu.:10  
##                                                           Max.   :13  
##      Type          
##  Length:13         
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

Penggabungan Data

data <- left_join(fact, prod, by = "ProductId")

Visualisasi Data

Rata-rata Profit per Jenis Produk

Ratarata_profit <- aggregate(Profit ~ `Product Type`, data = data, mean)
Ratarata_profit
##   Product Type   Profit
## 1       Coffee 70.72254
## 2     Espresso 58.35034
## 3   Herbal Tea 59.89962
## 4          Tea 55.19375

Interpretasi : Hasil ini menunjukkan rata-rata profit untuk setiap jenis produk. Terlihat bahwa terdapat perbedaan nilai rata-rata antar produk, yang mengindikasikan adanya perbedaan performa dalam menghasilkan keuntungan.

Boxplot Profit per Jenis Produk

ggplot(data, aes(x = `Product Type`, y = Profit)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Distribusi Profit per Jenis Produk",
       x = "Jenis Produk",
       y = "Profit")

Interpretasi : Berdasarkan boxplot, terlihat bahwa distribusi profit pada masing-masing jenis produk memiliki pola yang cukup mirip. Median dari setiap jenis produk berada pada rentang yang hampir sama, yang menunjukkan bahwa secara umum tingkat profit antar produk tidak jauh berbeda.

Selain itu, terlihat adanya banyak outlier baik pada nilai profit tinggi maupun rendah di setiap jenis produk. Hal ini menunjukkan bahwa data profit memiliki variasi yang cukup besar dan tidak stabil.

Sebaran data yang cukup lebar dan adanya outlier juga mengindikasikan bahwa data tidak berdistribusi normal.

Barplot Rata-rata Profit

ggplot(data, aes(x = `Product Type`, y = Profit)) +
  stat_summary(fun = mean, geom = "bar", fill = "skyblue") +
  labs(title = "Rata-rata Profit per Jenis Produk",
       x = "Jenis Produk",
       y = "Rata-rata Profit")

Interpretasi : Berdasarkan grafik rata-rata profit per jenis produk, terlihat bahwa produk Coffee memiliki rata-rata profit paling tinggi dibandingkan jenis produk lainnya. Sementara itu, produk Tea memiliki rata-rata profit paling rendah. Produk Espresso dan Herbal Tea berada di tengah dengan nilai yang relatif tidak jauh berbeda.

Perbedaan ini menunjukkan bahwa secara deskriptif terdapat variasi rata-rata profit antar jenis produk. Namun, selisih antar produk tidak terlalu besar sehingga belum dapat disimpulkan adanya perbedaan yang signifikan tanpa uji statistik.

Analisis Data

Uji Normalitas

H₀: \(X \sim N(\mu, \sigma^2)\) (data profit berdistribusi normal) H₁: \(X \not\sim N(\mu, \sigma^2)\) (data profit tidak berdistribusi normal)

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

Interpretasi : Berdasarkan hasil uji Shapiro-Wilk, diperoleh nilai p-value < 0.05, sehingga H₀ ditolak. Hal ini menunjukkan bahwa data profit tidak berdistribusi normal.

Uji Kruskal-Wallis

Dilakukan dengan Uji Kruskal-Wallis karena data tidak berdistribusi normal.

H₀:\(\tilde{x}_1 = \tilde{x}_2 = \dots = \tilde{x}_k\) (Tidak terdapat perbedaan profit antar jenis produk) H₁: \(\tilde{x}_i \neq \tilde{x}_j\) (Terdapat perbedaan profit antar jenis produk)

kruskal.test(Profit ~ `Product Type`, data = data)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  Profit by Product Type
## Kruskal-Wallis chi-squared = 2.4137, df = 3, p-value = 0.4911

Interpretasi : Berdasarkan hasil uji Kruskal-Wallis, diperoleh nilai p-value sebesar 0.4911 yang lebih besar dari 0.05. Hal ini menunjukkan bahwa H₀ gagal ditolak. Dengan demikian, dapat disimpulkan bahwa tidak terdapat perbedaan profit yang signifikan antar jenis produk.

Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, baik melalui analisis deskriptif, visualisasi, maupun uji statistik menggunakan Kruskal-Wallis, diperoleh hasil bahwa tidak terdapat perbedaan profit yang signifikan berdasarkan jenis produk.

Meskipun secara deskriptif terlihat adanya perbedaan nilai rata-rata dan variasi distribusi profit antar jenis produk, hasil uji statistik menunjukkan bahwa perbedaan tersebut tidak signifikan (p-value > 0.05).

Dengan demikian, insight awal yang menyatakan bahwa setiap jenis produk berpotensi menghasilkan profit yang berbeda tidak terbukti secara statistik. Hal ini menunjukkan bahwa perbedaan karakteristik produk tidak memberikan pengaruh yang signifikan terhadap profit yang diperoleh.