Pendahuluan

Dataset yang digunakan adalah Coffee Chain Dataset.
Tujuan analisis ini adalah untuk melihat hubungan antara penjualan (Sales) dan profit pada produk kopi.

Tujuan dari analisis ini adalah untuk mengetahui hubungan antara penjualan (Sales) dan profit, serta mengeksplorasi faktor-faktor lain seperti Market dan Marketing yang dapat mempengaruhi kinerja penjualan.

Analisis dilakukan menggunakan pendekatan visualisasi data dan analisis statistik. Visualisasi digunakan untuk memahami pola distribusi dan hubungan antar variabel, sedangkan uji statistik digunakan untuk menguji perbedaan rata-rata secara signifikan.


Import Data

Sebelum dilakukan proses analisis dan visualisasi data, langkah awal yang perlu dilakukan adalah menghubungkan R dengan database serta mengambil data yang akan digunakan. Tahap ini penting untuk memastikan bahwa data yang digunakan dalam analisis telah sesuai dan siap diolah.

Proses ini meliputi pembuatan koneksi ke database serta pengambilan data menggunakan file xlsx yang relevan.

Pada tahap ini, digunakan library readxl,dplyr dan ggplot2 untuk menghubungkan R dengan database MySQL. Koneksi ini diperlukan agar data dapat diakses dan dianalisis secara langsung dari database.

library(readxl)
## Warning: package 'readxl' 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
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
data <- read_excel("C:/Users/lenovo/Downloads/Coffee Chain Datasets.xlsx")
head(data)
## # 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>

Eksplorasi Data

Eksplorasi data dilakukan untuk memahami struktur dan karakteristik dataset sebelum dilakukan analisis lebih lanjut. Fungsi str() digunakan untuk melihat struktur data dan tipe variabel, head() untuk menampilkan sebagian data awal, serta dim() untuk mengetahui jumlah baris dan kolom. Selanjutnya, colnames() digunakan untuk mengidentifikasi nama variabel. Data kemudian diseleksi menggunakan fungsi select() untuk mengambil variabel yang relevan, dan fungsi summary() digunakan untuk memperoleh gambaran statistik deskriptif dari data tersebut.

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 ...
head(data)
## # 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>
dim(data)
## [1] 4248   20
colnames(data)
##  [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"
data_selected <- data %>%
  select("Sales","Profit","Product Type","Market")
summary(data_selected)
##      Sales         Profit       Product Type          Market         
##  Min.   : 17   Min.   :-638.0   Length:4248        Length:4248       
##  1st Qu.:100   1st Qu.:  17.0   Class :character   Class :character  
##  Median :138   Median :  40.0   Mode  :character   Mode  :character  
##  Mean   :193   Mean   :  61.1                                        
##  3rd Qu.:230   3rd Qu.:  92.0                                        
##  Max.   :912   Max.   : 778.0

Analisis dan Visualisasi Data

1. Hubungan Sales dan Profit

Pada visualisasi ini, digunakan library ggplot2 untuk membuat grafik histogram. Pada visualisasi ini digunakan grafik scatter plot untuk melihat hubungan antara Sales dan Profit.

ggplot(data_selected, aes(x = Sales, y = Profit, color = Profit)) +
  geom_point() +
  scale_color_gradient(low = "#E8F5BD",high = "#5B7E3C") +
  labs(
    title = "Hubungan Sales dan Profit",
       x = "Sales",
       y = "Profit")

Berdasarkan grafik yang ditampilkan, terlihat adanya kecenderungan hubungan positif antara Sales dan Profit. Hal ini menunjukkan bahwa semakin tinggi nilai penjualan, maka profit yang dihasilkan juga cenderung meningkat. Selain itu, penggunaan gradasi warna menunjukkan tingkat profit, dimana warna yang lebih gelap merepresentasikan profit yang lebih tinggi.

2. Jumlah Transaksi per Market

Pada visualisasi ini, digunakan library ggplot2 untuk membuat grafik histogram.Pada visualisasi ini digunakan grafik bar chart untuk melihat jumlah transaksi pada setiap Market.

ggplot(data, aes(x = Market)) +
  geom_bar(fill = "#A2CB8B") +
  labs(
    title = "Jumlah Transaksi per Market",
    x = "Market",
    y = "Jumlah"
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Grafik menunjukkan bahwa jumlah transaksi pada setiap market berbeda-beda. Beberapa market memiliki jumlah transaksi yang lebih tinggi dibandingkan market lainnya. Hal ini mengindikasikan bahwa aktivitas penjualan tidak merata di setiap wilayah, sehingga market tertentu berpotensi menjadi kontributor utama dalam penjualan perusahaan.

3. Distribusi Biaya Marketing

Pada visualisasi ini, digunakan library ggplot2 untuk membuat grafik histogram. Pada visualisasi ini digunakan histogram untuk melihat distribusi biaya Marketing

ggplot(data, aes(x = Marketing, fill = after_stat(count))) +
  geom_histogram(bins = 15, color = "black", alpha=0.8) +
  scale_fill_gradient(low = "#E8F5BD", high = "#5B7E3C") +
  labs(
    title = "Distribusi Biaya Marketing",
    x = "Marketing",
    y = "Frekuensi"
  )

Histogram menunjukkan sebaran nilai Marketing pada dataset. Terlihat bahwa sebagian besar data berada pada rentang tertentu, yang menunjukkan bahwa perusahaan cenderung mengeluarkan biaya marketing dalam kisaran tertentu. Jika terdapat beberapa nilai yang jauh lebih tinggi, hal ini menunjukkan adanya variasi dalam strategi pemasaran yang dilakukan.

Analisis Statistik

Untuk memperkuat hasil analisis, dilakukan uji statistik menggunakan uji t dua sampel independen untuk mengetahui apakah terdapat perbedaan rata-rata profit antar kelompok inventory tinggi dan inventory rendah.

Pengaruh Biaya Marketing Terhadap Penjualan

Hipotesis

H0: Tidak terdapat perbedaan rata-rata profit antara kelompok inventory tinggi dan inventory rendah.

H1: Terdapat perbedaan rata-rata profit antara kelompok inventory tinggi dan inventory rendah

#uji t-test

data$Kategori_Inventory <- ifelse(
  data$Inventory > mean(data$Inventory, na.rm = TRUE),
  "High", "Low")
head(data$Kategori_Inventory)
## [1] "High" "Low"  "High" "Low"  "Low"  "Low"
t.test(Profit ~ Kategori_Inventory, data = data)
## 
##  Welch Two Sample t-test
## 
## data:  Profit by Kategori_Inventory
## t = 13.304, df = 2494.8, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group High and group Low is not equal to 0
## 95 percent confidence interval:
##  37.87105 50.96438
## sample estimates:
## mean in group High  mean in group Low 
##           86.23427           41.81656

Berdasarkan hasil analisis:

Nilai p-value yang sangat kecil (lebih kecil dari 0.05) menunjukkan bahwa H0 ditolak. Dengan demikian, dapat disimpulkan bahwa terdapat perbedaan rata-rata profit yang signifikan antara kelompok Inventory tinggi dan Inventory rendah.

Selain itu, rata-rata profit pada kelompok inventory tinggi lebih besar dibandingkan kelompok inventory rendah. Hal ini mengindikasikan bahwa inventory memiliki pengaruh terhadap profit yang dihasilkan perusahaan.

Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, dapat disimpulkan bahwa terdapat hubungan positif antara Sales dan Profit, dimana peningkatan penjualan cenderung diikuti oleh peningkatan profit.

Selain itu, hasil uji statistik menunjukkan bahwa terdapat perbedaan yang signifikan antara profit pada kelompok inventory tinggi dan inventory rendah. Hal ini menunjukkan bahwa pengelolaan inventory merupakan salah satu faktor penting dalam meningkatkan profit perusahaan.

Dengan demikian, perusahaan perlu memperhatikan strategi peningkatan penjualan serta pengelolaan inventory yang optimal untuk meningkatkan kinerja bisnis secara keseluruhan.