ANALISIS PERFORMA PENJUALAN KOPI MENGGUNAKAN PENDEKATAN STATISTIK

Wildan Abid Al Hanif (M0723091)

PENDAHULUAN

Industri kopi mengalami pertumbuhan yang cukup pesat dalam beberapa tahun terakhir, hal ini ditandai dengan semakin maraknya kedai kopi di berbagai kota besar maupun kecil. Untuk menghadapi persaingan industri kopi yang semakin ketat, maka perusahaan atapun pelaku industri kopi perlu memiliki pemahaman yang kuat terhadap data penjualan guna modal dalam menyusun strategi yang tepat. Salah satu pendekatan yang dapat digunakan untuk memahami dinamika dari penjualan tersebut adalah melalui analisis statistik.

Analisis statistik memungkinkan perusahaan untuk menggali informasi yang tersembunyi di balik data penjualan, mengidentifikasi pola yang konsisten, serta menguji hipotesis terkait faktor-faktor yang memengaruhi performa penjualan. Dengan pendekatan ini, perusahaan dapat membuat keputusan yang lebih terukur dan berbasis data.

Laporan ini bertujuan untuk menganalisis data penjualan kopi menggunakan pendekatan statistik. Analisis yang dilakukan mencakup eksplorasi data, visualisasi, serta penerapan beberapa uji statistik seperti uji normalitas, uji perbedaan rata-rata, dan analisis korelasi, guna memperoleh pemahaman yang lebih mendalam terhadap perilaku data. Hasil dari analisis ini diharapkan dapat memberikan gambaran yang berguna bagi pengambilan keputusan strategis di bidang penjualan dan pemasaran produk kopi.

DESKRIPSI DATA

Mengetahui deskripsi data adalah hal yang pertama kali harus dilakukan sebelum melakukan langkah-langkah lain atau analisis mengenai data. Langkah ini memberikan pemahaman dan pengetahuan mengenai data yang akan dianalisis.

library(readxl)
library(kableExtra)

data <- read_excel("3. CM1 - Coffee Chain Datasets.xlsx")
data[1:10, ] %>%
  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

Beberapa penjelasan singkat mengenai variabel atau kolom :

  • Area Code : Kode area.
  • Market : Daerah atau wilayah.
  • Market Size : Ukuran dari Market.
  • Product : Jenis dari produk, kopi atau teh.
  • Product Line : Bentuk dari produk.
  • Product Type : Tipe dari produk.
  • State : Negara bagian (Amerika Serikat).
  • Type : Jenis produk, kafein atau tanpa kafein.
  • Budget COGS : Estimasi biaya pokok penjualan.
  • Budget Margin : Estimasi margin keuntungan.
  • Budget Profit : Estimasi keuntungan.
  • Budget Sales : Estimasi total penjualan.
  • COGS : Biaya pokok penjualan aktual.
  • Inventory : Jumlah stok barang yang tersedia.
  • Margin : Margin keuntungan aktual.
  • Profit : Keuntungan aktual.
  • Sales : Total penjualan aktual.
  • Total Expenses: Total seluruh biaya yang dikeluarkan.

EKSPLORASI DATA

Eksplorasi data adalah langkah utama sebelum melakukan analisis lebih dalam yang memberikan pemahaman mengenai data (data-understanding). Eksplorasi data dilakukan untuk mengetahui tentang data secara menyeluruh, beberapa tahap dalam eksplorasi data meliputi melihat tipe data, sebaran data, hingga visualisasi dasar.

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

Dapat dilihat terdapat 4,238 baris data dengan 20 kolom (variabel). Terdapat 7 tipe data chr atau tipe data teks, kemudian 12 tipe data num atau tipe data numerik, dan tipe data POSIXct atau tipe data yang menyimpan waktu dan tanggal.

Melihat 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

Terlihat bahwa tidak ada data null atau data kosong, karena agar analisis bisa dilakukan baik maka kita harus menangani data null

Melihat Data Unik

Terlihat dari data bahwa kolom-kolom atau variabel yang bertipe chr atau teks terdiri dari beberapa kategori. Pada langkah ini dilakukan untuk melihat kategori apa saja dalam setiap kolom.

for(col in names(data)) {
  if(is.character(data[[col]])) {
    cat("\nNilai unik pada kolom : ", col, ":\n")
    print(unique(data[[col]]))
  }
}
## 
## Nilai unik pada kolom :  Market :
## [1] "Central" "East"    "South"   "West"   
## 
## Nilai unik pada kolom :  Market Size :
## [1] "Major Market" "Small Market"
## 
## Nilai unik pada kolom :  Product :
##  [1] "Amaretto"          "Colombian"         "Decaf Irish Cream"
##  [4] "Green Tea"         "Caffe Mocha"       "Decaf Espresso"   
##  [7] "Chamomile"         "Lemon"             "Mint"             
## [10] "Darjeeling"        "Earl Grey"         "Regular Espresso" 
## [13] "Caffe Latte"      
## 
## Nilai unik pada kolom :  Product Line :
## [1] "Beans"  "Leaves"
## 
## Nilai unik pada kolom :  Product Type :
## [1] "Coffee"     "Tea"        "Espresso"   "Herbal Tea"
## 
## Nilai unik pada kolom :  State :
##  [1] "Colorado"      "Illinois"      "Iowa"          "Missouri"     
##  [5] "Ohio"          "Wisconsin"     "Connecticut"   "Florida"      
##  [9] "Massachusetts" "New Hampshire" "New York"      "Louisiana"    
## [13] "New Mexico"    "Oklahoma"      "Texas"         "Utah"         
## [17] "California"    "Nevada"        "Oregon"        "Washington"   
## 
## Nilai unik pada kolom :  Type :
## [1] "Regular" "Decaf"

Statistik Deskriptif

Statistik deskriptif dilakukan untuk melihat sebaran data, beberapa hal yang dilihat meliputi mean, median, variansi, dan standar deviasi. Hal ini dapat memberikan gambaran dasar mengenai sebaran dari data numerik yang mungkin saja bisa berdampak pada analisis nantinya.

Karena kolom Area Code merupakan ID atau kode unik, yang nanti tidak akan kita lakukan analisis pada kolom ini maka kolom Area Code akan kita hapus.

data <- data[, -1]
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>

Mean \[ \mu = \frac{1}{N} \sum_{i=1}^{N} x_i \] Standar Deviasi \[ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2} \] Variansi \[ \sigma^2 = \frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2 \]

for(col in names(data)) {
  if(is.numeric(data[[col]])) {
    # Hitung statistik
    kolom <- data[[col]]
    mean <- mean(kolom, na.rm = TRUE)
    median <- median(kolom, na.rm = TRUE)
    sd <- sd(kolom, na.rm = TRUE)
    var <- var(kolom, na.rm = TRUE)
    
    # Tampilkan hasil
    cat("\nStatistik deskriptif untuk kolom:", col, 
        "\n- Mean             :", round(mean, 2),
        "\n- Median           :", round(median, 2),
        "\n- Standar Deviasi  :", round(sd, 2),
        "\n- Variansi         :", round(var, 2), "\n")
  }
}
## 
## Statistik deskriptif untuk kolom: Budget COGS 
## - Mean             : 74.83 
## - Median           : 50 
## - Standar Deviasi  : 66.24 
## - Variansi         : 4387.49 
## 
## Statistik deskriptif untuk kolom: Budget Margin 
## - Mean             : 100.82 
## - Median           : 70 
## - Standar Deviasi  : 92.6 
## - Variansi         : 8575.26 
## 
## Statistik deskriptif untuk kolom: Budget Profit 
## - Mean             : 60.91 
## - Median           : 40 
## - Standar Deviasi  : 79.55 
## - Variansi         : 6327.59 
## 
## Statistik deskriptif untuk kolom: Budget Sales 
## - Mean             : 175.65 
## - Median           : 130 
## - Standar Deviasi  : 148.89 
## - Variansi         : 22168.69 
## 
## Statistik deskriptif untuk kolom: COGS 
## - Mean             : 84.43 
## - Median           : 60 
## - Standar Deviasi  : 67.25 
## - Variansi         : 4522.53 
## 
## Statistik deskriptif untuk kolom: Inventory 
## - Mean             : 749.38 
## - Median           : 619 
## - Standar Deviasi  : 661.03 
## - Variansi         : 436963.2 
## 
## Statistik deskriptif untuk kolom: Margin 
## - Mean             : 104.29 
## - Median           : 76 
## - Standar Deviasi  : 94.34 
## - Variansi         : 8900.51 
## 
## Statistik deskriptif untuk kolom: Marketing 
## - Mean             : 31.19 
## - Median           : 22 
## - Standar Deviasi  : 27.02 
## - Variansi         : 730.26 
## 
## Statistik deskriptif untuk kolom: Profit 
## - Mean             : 61.1 
## - Median           : 40 
## - Standar Deviasi  : 101.71 
## - Variansi         : 10344.63 
## 
## Statistik deskriptif untuk kolom: Sales 
## - Mean             : 192.99 
## - Median           : 138 
## - Standar Deviasi  : 151.13 
## - Variansi         : 22841.22 
## 
## Statistik deskriptif untuk kolom: Total Expenses 
## - Mean             : 54.06 
## - Median           : 46 
## - Standar Deviasi  : 32.35 
## - Variansi         : 1046.69

UJI STATISTIK

Pada tahap uji statistik ini dilakukan analisis menggunakan pendekatan statistik yang nantinya akan dihubungan langsung dengan permasalahan bisnis (selanjutnya akan disebut Bussines Case). Analisis menggunakan pendekatan statistik dapat memberikan insight yang dapat ditindaklanjuti dengan jelas dan berdasar data dalam memahami permasalahan bisnis yang ada, sehingga membantu perusahaan dalam membuat keputusan berdasar data (data-driven decision making). Satu hal sebelum mememilih uji statistik yang tepat adalah melakukan atau melihat distribusi dari data, yaitu berdistribusi normal atau tidak. Hal ini dilakukan agar dapat memilih uji statistik yang tepat, yaitu parametrik untuk data berdistribusi normal dan non-parametrik untuk data tidak berdistribusi normal.

Dalam uji statistik, fokus utama kita adalah pada p-value, yaitu nilai probabilitas yang menunjukkan seberapa kuat bukti terhadap hipotesis nol (\(H_0\)). P-value mengukur kemungkinan mendapatkan hasil yang sama ekstrem atau lebih ekstrem dari data yang diamati, dengan asumsi bahwa \(H_0\) benar. Jika p-value lebih kecil dari tingkat signifikansi yang telah ditentukan (umumnya 0.05), maka kita memiliki cukup bukti untuk menolak \(H_0\), yang berarti bahwa hasil yang kita peroleh tidak mungkin terjadi secara kebetulan semata. Oleh karena itu, p-value menjadi indikator penting dalam pengambilan keputusan statistik.

Bussines Case 1

Dalam meningkatkan strategi pemasaran apakah dengan meningkatkan biaya promosi (Marketing) dapat meningkatkan hasil dari keuntungan (Profit)? Sebelum pengujian terlebih dahulu engecek normalitas dari variabel \(H_0\): Data berdistribusi normal
\(H_1\): Data tidak berdistribusi normal

bc_1 <- c("Marketing", "Profit")
bc_1_selected <- data[, bc_1]

bc_1_normality <- lapply(bc_1_selected, shapiro.test)
bc_1_normality
## $Marketing
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.81776, p-value < 2.2e-16
## 
## 
## $Profit
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.79969, p-value < 2.2e-16

Karena data tidak berdistribusi normal maka ntuk menguji kasus ini kita menggunakan Korelasi Spearman \[ \rho = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)} \]

\(H_0\): Tidak ada korelasi yang signifikan antara Marketing dan Profit
\(H_1\): Ada korelasi yang signifikan antara Marketing dan Profit

cor.test(data$Marketing, data$Profit, method = 'spearman')
## Warning in cor.test.default(data$Marketing, data$Profit, method = "spearman"):
## Cannot compute exact p-value with ties
## 
##  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

Dengan hasil p-value < 0.05 maka \(H_0\) ditolak, dapat disimpulkan bahwa ada korelasi yang signifikan antara Marketing dan Profit. Sehingga semakin tinggi Marketing maka Profit juga akan semakin tinggi. Untuk itu dalam meningkatkan Marketing perusahaan bisa meningkatkan Profit

Bussines Case 2

Apakah terdapat perbedaan diantara jumlah yang dianggarkan dengan hasil sebenarnya, yaitu variabel-variabel estimasi (Budget OCGS, Budget Margin, Budget Profit, Budget Sales) dengan hasil sebenarnya atau aktual (OCGS, Margin, Profit, Sales). Sebelum melakukan pengujian, terlebih dahulu mengecek normalitas dari setiap variabelnya.

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

bc_2 <- c("Budget COGS", "Budget Margin", "Budget Profit", "Budget Sales","COGS", "Margin", "Profit", "Sales")
bc_2_selected <- data[, bc_2]

bc_2_normality <- lapply(bc_2_selected, shapiro.test)
bc_2_normality
## $`Budget COGS`
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.79484, p-value < 2.2e-16
## 
## 
## $`Budget Margin`
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.80307, p-value < 2.2e-16
## 
## 
## $`Budget Profit`
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.80523, p-value < 2.2e-16
## 
## 
## $`Budget Sales`
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.76816, p-value < 2.2e-16
## 
## 
## $COGS
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.80416, p-value < 2.2e-16
## 
## 
## $Margin
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.82439, p-value < 2.2e-16
## 
## 
## $Profit
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.79969, p-value < 2.2e-16
## 
## 
## $Sales
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.78969, p-value < 2.2e-16

Karena p_value dari semua variabel < 0.05 maka data tidak berdistribusi normal, sehingga untuk melakukan pengujian nantinya menggunakan Wilcoxon Ranked Test

Budget OCGS dengan OCGS

Apakah terdapat perbedaan antara Budget OCGS dengan OCGS

\(H_0\): Tidak ada perbedaan yang signifikan antara Budget OCGS dan OCGS
\(H_1\): Ada perbedaan yang signifikan antara Budget OCGS dan OCGS

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

Karena p_value dari 0.05 maka ada perbedaan yang signifikan diantara Budget OCGS dan OCGS

Budget Margin dengan Margin

Apakah terdapat perbedaan antara Budget Margin dengan Margin

\(H_0\): Tidak ada perbedaan yang signifikan antara Budget Margin dan Margin
\(H_1\): Ada perbedaan yang signifikan antara Budget Margin dan Margin

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

Karena p_value < 0.05 maka \(H_0\) ditolak artinya ada perbedaan yang signifikan antara Budget Margin dan Margin.

Budget Profit dengan Profit

Apakah terdapat perbedaan antara Budget Profit dengan Profit

\(H_0\): Tidak ada perbedaan yang signifikan antara Budget Profit dan Profit
\(H_1\): Ada perbedaan yang signifikan antara Budget Profit dan 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

Karena p_value < 0.05 maka \(H_0\) ditolak artinya ada perbedaan yang signifikan antara Budget Profit dan Profit.

Budget Sales dengan Sales

Apakah terdapat perbedaan antara Budget Sales dengan Sales

\(H_0\): Tidak ada perbedaan yang signifikan antara Budget Sales dan Sales
\(H_1\): Ada perbedaan yang signifikan antara Budget Sales dan Sales

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

Karena p_value < 0.05 maka \(H_0\) ditolak artinya ada perbedaan yang signifikan antara Budget Sales dan Sales.

Dari keempat pasang variabel yang diuji mendapatkan kesimpulan bahwa terdapat perbedaan yang signifikan antara estimasi atau penganggaran dengan realisasi atau hasil yang sebenarnya. Dari kesimpulan ini maka perusahaan dapat melakukan audit atau peninjauan ulang mengenai keempat pasang variabel ini guna menemukan kemungkinan terjadinya implikasi yang dapat mengakibatkan performa penjualan menurun

Bussines Case 3

Pada Bussines Case yang ketiga ini berfokus pada variabel kategori dihubungkan dengan variabel numerik dan kemudian ditarik kesimpulan berdasarkan permasalahan bisnis.

Strategi Pada Segmentasi Pasar

Pihak perusahaan ingin menentukan strategi alokasi sumber daya, seperti anggaran, pemasaran, stok, atau promosi khusus pada daerah-daerah tertentu berdasar penjualannya. Dari keempat Market (South, Cental, West, dan East) apakah terdapat perbedaan signifikan dalam penjualan (Sales) antara keempat wilayah pasar tersebut?

\(H_0\): Penjualan disemua wilayah sama
\(H_1\): Setidaknya satu wilayah memiliki penjualan yang berbeda

Melihat normalitas dari data untuk menentukan uji yang akan digunakan

library(rstatix)
data %>%
  group_by(Market) %>%
  shapiro_test(Sales)
## # A tibble: 4 × 4
##   Market  variable statistic        p
##   <chr>   <chr>        <dbl>    <dbl>
## 1 Central Sales        0.826 7.28e-36
## 2 East    Sales        0.756 3.09e-34
## 3 South   Sales        0.791 1.80e-28
## 4 West    Sales        0.804 1.71e-37

Dari keempat Market memiliki p_value < 0.05 maka data tidak berdistribusi normal, sehingga kita akan menggunakan uji Kruskal-Wallis \[ H = \frac{12}{N(N+1)} \sum_{i=1}^{k} \frac{R_i^2}{n_i} - 3(N+1) \]

kruskal.test(Sales ~ Market, data = data)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  Sales by Market
## Kruskal-Wallis chi-squared = 27.871, df = 3, p-value = 3.865e-06

Karena p_value < 0.05 maka \(H_0\) ditolak artinya ada setidaknya satu wilayah memiliki penjualan yang berbeda. Untuk analisis yang lebih mendalam agar nantinya perusahaan dapat menentukan strategi yang tepat maka dilanjutkan dengan Post-hoc Dunn Test untuk membandingkan dua kelompok \[ Z_{ij} = \frac{\bar{R}_i - \bar{R}_j}{\sqrt{ \frac{N(N+1)}{12} \left( \frac{1}{n_i} + \frac{1}{n_j} \right) }} \]

\(H_0\): Tidak terdapat perbedaan yang signifikan
\(H_1\): Terdapat perbedan yang signifikan

library(FSA)
dunnTest(Sales ~ Market, data = data, method = 'bonferroni')
##        Comparison          Z      P.unadj        P.adj
## 1  Central - East  1.5041961 1.325309e-01 7.951853e-01
## 2 Central - South  5.0259071 5.010583e-07 3.006350e-06
## 3    East - South  3.3718737 7.465867e-04 4.479520e-03
## 4  Central - West  0.5907942 5.546583e-01 1.000000e+00
## 5     East - West -0.9771961 3.284721e-01 1.000000e+00
## 6    South - West -4.5435257 5.532106e-06 3.319263e-05

Fokus pada nilai P.adj untuk membandingkan dengan hipotesis :

  • Central dan East P.adj > 0.05 maka tidak terdapat perbedaan yang signifikan
  • Central dan South P.adj < 0.05 maka terdapat perbedaan yang signifikan
  • East dan South P.adj < 0.05 maka terdapat perbedaan yang signifikan
  • Central dan West P.adj > 0.05 maka tidak terdapat perbedaan yang signifikan
  • East dan West P.adj > 0.05 maka tidak terdapat perbedaan yang signifikan
  • South dan West P.adj < 0.05 maka terdapat perbedaan yang signifikan

Dari kesimpulan-kesimpulan diatas dapat ditarik kesimpulan bahwa wilayah South menunjukkan perbedaan yang signifikan diantara wilayah lainnya. Ini mengindikasikan bahwa penjualan di wilayah South ini menghasilkan fenomena penjualan yang berbeda. Perusahaan bisa menyelidiki kembali strategi pemasaran yang digunakan di wilayah South ini dan membandingkan dengan wilayah-wilayah yang lain. Jika memang di wilayah South ini menghasilkan tren penjualan yang tinggi maka strategi pemasarannya bisa diterapkan di wilayah lain dan diiringi dengan pemasokan yang mencukupi di wilayah South itu sendiri guna menjaga dan meningkatkan penjualan.

Segmentasi profit tipe produk

Setiap tipe produk memberikan nilai profit yang berbeda. Dengan mengetahui performa profit dari tiap produk dapat membantu perusahaan untuk menentukan strategi dan langkah kedepannya. Jika produk tersebut memberikan nilai profit yang tinggi, perusahaan dapat meningkatkan ketersediaan stok.Sebaliknya jika produk memberikan nilai profit yang rendah dapat melakukan peninjauan mengenai strategi pemasarannya

\(H_0\): Semua produk memberikan profit yang sama
\(H_1\): Setidaknya satu product memiliki profit yang berbeda

Melihat normalitas dari data untuk menentukan uji yang akan digunakan

library(rstatix)
data %>%
  group_by(`Product Type`) %>%
  shapiro_test(Profit)
## # A tibble: 4 × 4
##   `Product Type` variable statistic        p
##   <chr>          <chr>        <dbl>    <dbl>
## 1 Coffee         Profit       0.766 2.99e-36
## 2 Espresso       Profit       0.814 8.43e-35
## 3 Herbal Tea     Profit       0.868 6.26e-29
## 4 Tea            Profit       0.732 1.20e-36

Disimpulkan bahwa keempat tipe product tidak berdistribusi normal, maka menggunakan uji Kruskal-Wallis \[ H = \frac{12}{N(N+1)} \sum_{i=1}^{k} \frac{R_i^2}{n_i} - 3(N+1) \]

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

Didapatkan nilai p_value > 0.05 sehingga \(H_0\) gagal ditolak, maka keempat tipe produk (Coffe, Espresso, Herbal Tea, dan Tea) memberikan profit yang sama. Dengan ini perusahaan dapat mempertahankan strategi pemasaran dan memastikan bahwa stok keempat tipe produk tetap terjaga.

Bussines Case 4

Pada Bussines Case keempat ini berfokus pada melihat ketergantungana antar variabel. Dengan mengetahui ketergantungan antar variabel secara statistik, dapat membantu perusahaan untuk menentukan strategi bisnis kedepannya. Uji yang akan digunakan adalah Uji Chi Square Independence \[ \chi^2 = \sum_{i=1}^{r} \sum_{j=1}^{c} \frac{(O_{ij} - E_{ij})^2}{E_{ij}} \]

Dependensi Market Size terhadap Product Line

Perusahaan ingin mencari tahu bagaimana perilaku konsumen pada sektor ukuran pasar dan preferensi produk, untuk itu maka perlu mengetahui dependensitas atau ketergantungan total penjualan pada Market Size terhadap Product Line. Luaran dari ini diharapkan mampu memberikan insight untuk perusahaan dalam menentukan strategi bisnis kedepanya.

\(H_0\): Tidak ada hubungan yang signifikan antara Market Size dan Product Line
\(H_1\): Ada hubungan yang signifikan antara Market Size dan Product Line

Dalam kasus ini uji statistik yang digunakan adalah Uji Dependensi. Untuk melakukan uji dependensi data yang akan diuji haruslah berupa tabel kontigensi

tabel_kontigensi_1 <- table(data$`Market Size`, data$`Product Line`)
tabel_kontigensi_1
##               
##                Beans Leaves
##   Major Market   840    864
##   Small Market  1392   1152

Menggunakan Uji Chi-Square

chisq.test(tabel_kontigensi_1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  tabel_kontigensi_1
## X-squared = 11.811, df = 1, p-value = 0.0005888

Dihasilkan nilai p_value < 0.05 maka \(H_0\) ditolak artinya ada hubungan yang signifikan antara Market Size dan Product Line. Pada Market Kecil (Small Market) fokuskan pada penjualan Beans karena lebih laris, dan pada Market Besar (Major Market) fokuskan pada penjualan Leaves.

Dependensi Market terhadap Type

Market yang merupakan wilayah dapat diambil insight mengenai ketergantungannya terhadap Type. Apakah konsumen di wilayah tertentu cenderung membeli Type tertentu, untuk itu maka perlu dilakukan pengujian mengenai hubungan atau dependensi keduanya.

\(H_0\): Tidak ada hubungan yang signifikan antara Market dan Type
\(H_1\): Ada hubungan yang signifikan antara Market dan Type

Tabel kontigensi antara Market dengan Type

tabel_kontigensi_2 <- table(data$Market, data$Type)
tabel_kontigensi_2
##          
##           Decaf Regular
##   Central   624     720
##   East      288     600
##   South     384     288
##   West      552     792

Menggunakan Uji Chi-Square

chisq.test(tabel_kontigensi_2)
## 
##  Pearson's Chi-squared test
## 
## data:  tabel_kontigensi_2
## X-squared = 103.06, df = 3, p-value < 2.2e-16

Dari hasil uji didapatkan nilai p_value < 0.05 yang berarti \(H_0\) ditolak, maka ada ketergantungan atau hubungan yang signifikan antara Market dengan Type. Strategi bisnis yang mungkin bisa dilakukan adalah dengan mempertahankan ketersediaan atau stok dari Type. Sebagai contoh di Market atau wilayah Central pastikan stok Type Reguler tetap terjaga karena di Central konsumen cenderung membeli Regular.

ANALISIS TREN DAN GRAFIK

Analisis trend dan grafik sangat diperlukan dalam kebutuhan analisis terutama pada bidang bisnis atau penjualan barang. Analisis trend membantu melihat ke mana suatu variabel atau fenomena bergerak dari waktu ke waktu. Pergerakan trend dapat mengindikasikan peningkatan, penurunan, bahkan stagnasi. Interpretasi dari ini diharapkan mampu membantu perusahaan untuk perencanaan dan pengambilan keputusan. Dilain sisi dengan memahami trend masa lalu dan saat ini, dapat membantu perusahaan untuk membuat perkiraan atau proyeksi tentang kemungkinan kejadian di masa depan.

Penyajian data dalam bentuk visualisasi sendiri memberikan kemudahan dalam menginterpretasikan data terutama dalam hal perbandinga, baik dua variabel ataupun lebih. Dengan penyajian data dalam bentuk grafik yang tepat, pembaca dapat dengan mudah memahami bahkan membuat keputusan bisnis yang tepat. Visualisasi data dalam bentuk grafik menjadi hal yang utama yang wajib dilampirkan ketika melakukan pelaporan mengenai analisis data.

Profit Bulanan

library(ggplot2)
library(lubridate)
library(dplyr)

# jadikan as.date
data$Date <- as.Date(data$Date)


data_bulanan <- data %>%
  mutate(
    TahunBulan = floor_date(Date, "month") 
  ) %>%
  group_by(TahunBulan) %>% 
  summarise(
    TotalProfit = sum(Profit, na.rm = TRUE) 
  ) %>%
  ungroup()

grafik_profit_bulanan <- ggplot(data = data_bulanan, aes(x = TahunBulan, y = TotalProfit)) +
  geom_line(color = "#1603fa", size = 1) +  
  geom_point(color = "#1603fa", size = 2.5) + 
  labs(
    x = "Bulan",
    y = "Total Profit",
    title = 'Profit Bulanan'
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + 
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(hjust = 0.5)) 
print(grafik_profit_bulanan)

Grafik garis diatas memberikan gambaran pergerakan profit atau pendapatan selama sebulan, dimulai dari bulan hingga bulan. Dari grafik ini dapat dilihat bahwa

Sales Bulanan

library(ggplot2)
library(lubridate)
library(dplyr)

# jadikan as.date
data$Date <- as.Date(data$Date)


sales_bulanan <- data %>%
  mutate(
    TahunBulan = floor_date(Date, "month") 
  ) %>%
  group_by(TahunBulan) %>% 
  summarise(
    TotalSales = sum(Sales, na.rm = TRUE) 
  ) %>%
  ungroup() 

grafik_sales_bulanan <- ggplot(data = sales_bulanan, aes(x = TahunBulan, y = TotalSales)) +
  geom_line(color = "darkgreen", size = 1) +  
  geom_point(color = "darkgreen", size = 2.5) + 
  labs(
    x = "Bulan",
    y = "Total Sales",
    title = 'Sales Bulanan'
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + 
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(hjust = 0.5)) 
print(grafik_sales_bulanan)

Grafik total Sales diatas menjunjukkan pola siklus atau musiman meskipun tidak terlalu kuat. Total Sales pada bulan Juni sampai dengan November selalu mengalami penurunan, dan kemudian meningkat di bulan setelahnya. Jika dikaitkan dengan Profit bulanan yang ditampilkan sebelumnya terlihat tidak terjadi persamaan pada pola bulan yang sama. Sebagai tindaklanjut, perusahaan bisa melakukan pemeriksaan kembali mengenai performa penjualan pada bulan ini seperti strategi pemasarannya serta mencari tahu mengapa profit tidak mengalami hal yang serupa.

Inventory Bulanan

library(ggplot2)
library(lubridate)
library(dplyr)

# jadikan as.date
data$Date <- as.Date(data$Date)


inventory_bulanan <- data %>%
  mutate(
    TahunBulan = floor_date(Date, "month") 
  ) %>%
  group_by(TahunBulan) %>% 
  summarise(
    TotalInventory = sum(Inventory, na.rm = TRUE) 
  ) %>%
  ungroup() 

grafik_inventory_bulanan <- ggplot(data = inventory_bulanan, aes(x = TahunBulan, y = TotalInventory)) +
  geom_line(color = "#ed7bf7", size = 1) +  
  geom_point(color = "#ed7bf7", size = 2.5) + 
  labs(
    x = "Bulan",
    y = "Inventory",
    title = 'Inventory Bulanan'
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + 
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(hjust = 0.5)) 
print(grafik_inventory_bulanan)

Grafik diatas menunjukkan total Inventory pada setiap bulannya. Pada bulan Janurai 2013, Inventory mengalami penurunan yang cukup signifikan kemudian naik secara bertahan di bulan April 2013. Hal ini bisa saja mengindikasikan sesuatu hal yang mungkin perlu ditinjau ulang oleh perusahaan, bisa saja proses pemasokan produk mengalami kendala atau saja ada tindak kecurangan.

Profit Bulanan Berdasar Market

library(ggplot2)
library(lubridate)
library(dplyr)

# jadikan as.date
data$Date <- as.Date(data$Date)


data_bulanan_wilayah <- data %>%
  mutate(
    TahunBulan = floor_date(Date, "month") 
  ) %>%
  group_by(TahunBulan, Market) %>% 
  summarise(
    TotalProfit = sum(Profit, na.rm = TRUE) 
  ) %>%
  ungroup() 

grafik_profit_wilayah <- ggplot(data = data_bulanan_wilayah, aes(x = TahunBulan, y = TotalProfit, color = Market, group = Market)) +
  geom_line(size = 1) +  
  geom_point(size = 2.5) + 
  labs(
    x = "Bulan",
    y = "Total Profit",
    color = 'Market',
    title = 'Profit Bulanan Berdasar Market'
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + 
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = 'bottom',
    plot.title = element_text(hjust = 0.5)
    ) 
print(grafik_profit_wilayah)

### Visualisasi Perbandingan Agar dapat melihat lebih gamblang perbandingan dari keempat wilayah dapat menggunakan visualisasi grafik pie atau grafik donut. Visualisasi ini akan memberikan gambaran sumbangan profit dari tiap-tiap wilayah. Pertama melihat atau menghitung total keseluruhan (Grand Total) untuk penjualan

sum(data$Profit, na.rm = TRUE)
## [1] 259543
library(ggplot2)
library(dplyr)

# Ringkas total profit per market
profit_by_market <- data %>%
  group_by(Market) %>%
  summarise(Total_Profit = sum(Profit, na.rm = TRUE))

# Tambahkan proporsi (opsional)
profit_by_market <- profit_by_market %>%
  mutate(Percentage = Total_Profit / sum(Total_Profit) * 100,
         Label = paste0(Market, " (", round(Percentage, 1), "%)"))

# Buat pie chart dengan ggplot2
ggplot(profit_by_market, aes(x = "", y = Total_Profit, fill = Market)) +
  geom_bar(width = 1, stat = "identity") +
  coord_polar("y") +
  theme_void() +
  geom_text(aes(label = Label), 
            position = position_stack(vjust = 0.5), size = 4) +
  labs(title = 'Perbandingan Profit dari Market') +
  theme(plot.title = element_text(hjust = 0.5))

Wilayah central memberikan total profit yang tertinggi dibanding dengan wilayah-wilayah yang lain. Sedangkan wilayah south menghasilkan total profit yang rendah, akan tetapi di sisi lain merujuk pada bagian Bussiness Case 3 bahwa wilayah south menghasilkan total penjualan (Sales) tertinggi. Dengan ini perusahaan dapat meningkatkan harga-harga produk dari wilayah south untuk meraup keuntungan atau profit yang tinggi.

Profit Bulanan Berdasar Product Type

library(ggplot2)
library(lubridate)
library(dplyr)

# jadikan as.date
data$Date <- as.Date(data$Date)


data_bulanan_produk <- data %>%
  mutate(
    TahunBulan = floor_date(Date, "month") 
  ) %>%
  group_by(TahunBulan, `Product Type`) %>% 
  summarise(
    TotalProfit = sum(Profit, na.rm = TRUE) 
  ) %>%
  ungroup() 

grafik_profit_produk <- ggplot(data = data_bulanan_produk, aes(x = TahunBulan, y = TotalProfit, color = `Product Type`, group = `Product Type`)) +
  geom_line(size = 1) +  
  geom_point(size = 2.5) + 
  labs(
    x = "Bulan",
    y = "Total Profit",
    color = 'Product Type',
    title = 'Profit Bulanan Berdasar Product Type'
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + 
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = 'bottom',
    plot.title = element_text(hjust = 0.5)
    ) 
print(grafik_profit_produk)

Analisis Perbandingan

Melalui grafik pie atau grafik donut kita dapat melihat secara jelas perbandingan profit yang diberikan dari setiap Tipe Produk

library(ggplot2)
library(dplyr)

profit_by_product_type <- data %>%
  group_by(`Product Type`) %>%
  summarise(Total_Profit = sum(Profit, na.rm = TRUE))

profit_by_product_type <- profit_by_product_type %>%
  mutate(Percentage = Total_Profit / sum(Total_Profit) * 100,
         Label = paste0(`Product Type`, " (", round(Percentage, 1), "%)"))

ggplot(profit_by_product_type, aes(x = "", y = Total_Profit, fill = `Product Type`)) +
  geom_bar(width = 1, stat = "identity") +
  coord_polar("y") +
  theme_void() +
  geom_text(aes(label = Label), 
            position = position_stack(vjust = 0.5), size = 4) +
  labs(title = 'Perbandingan Profit dari Product Type') +
  theme(plot.title = element_text(hjust = 0.5))

Secara kasar keempat tipe produk memberikan profit yang tidak terlalu jauh berbeda, hal ini menjadi tugas perusahaan untuk tetap menjaga performa penjualan dari keempat tipe produk ini.

Profit Bulanan Berdasar Type

library(ggplot2)
library(lubridate)
library(dplyr)

# jadikan as.date
data$Date <- as.Date(data$Date)


data_bulanan_type <- data %>%
  mutate(
    TahunBulan = floor_date(Date, "month") 
  ) %>%
  group_by(TahunBulan, Type) %>% 
  summarise(
    TotalProfit = sum(Profit, na.rm = TRUE) 
  ) %>%
  ungroup() 

grafik_profit_type <- ggplot(data = data_bulanan_type, aes(x = TahunBulan, y = TotalProfit, color = Type, group = Type)) +
  geom_line(size = 1) +  
  geom_point(size = 2.5) + 
  labs(
    x = "Bulan",
    y = "Total Profit",
    color = 'Type',
    title = 'Profit Bulanan Berdasar Type'
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + 
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = 'bottom',
    plot.title = element_text(hjust = 0.5)
    ) 
print(grafik_profit_type)

Analisis Perbandingan

library(ggplot2)
library(dplyr)

profit_by_type <- data %>%
  group_by(Type) %>%
  summarise(Total_Profit = sum(Profit, na.rm = TRUE))

profit_by_type <- profit_by_type %>%
  mutate(Percentage = Total_Profit / sum(Total_Profit) * 100,
         Label = paste0(Type, " (", round(Percentage, 1), "%)"))

ggplot(profit_by_type, aes(x = "", y = Total_Profit, fill = Type)) +
  geom_bar(width = 1, stat = "identity") +
  coord_polar("y") +
  theme_void() +
  geom_text(aes(label = Label), 
            position = position_stack(vjust = 0.5), size = 4) + 
  labs(title = 'Perbandingan Profit dari Type') +
  theme(plot.title = element_text(hjust = 0.5))

Dari grafik pie yang dihasilkan terlihat bahwa total profit dari tipe reguler lebih tinggi daripada decaf, terpaut sekitar 17%. Agar tetap menjaga profit, maka perusahaan dapat menentukan strategi agar banyak konsumen membeli produk decaf juga.

Total Expenses Bulanan Berdasar Market

library(ggplot2)
library(lubridate)
library(dplyr)

# jadikan as.date
data$Date <- as.Date(data$Date)


data_bulanan_total_expenses <- data %>%
  mutate(
    TahunBulan = floor_date(Date, "month") 
  ) %>%
  group_by(TahunBulan, Market) %>% 
  summarise(
    TotalExpenses = sum(`Total Expenses`, na.rm = TRUE) 
  ) %>%
  ungroup() 

grafik_total_expenses_market <- ggplot(data = data_bulanan_total_expenses, aes(x = TahunBulan, y = TotalExpenses, color = Market, group = Market)) +
  geom_line(size = 1) +  
  geom_point(size = 2.5) + 
  labs(
    x = "Bulan",
    y = "Total Expenses",
    color = 'Market',
    title = 'Total Expenses Bulanan Berdasar Market'
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + 
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = 'bottom',
    plot.title = element_text(hjust = 0.5)
    ) 
print(grafik_total_expenses_market)

Total Expenses atau total pengeluaran merujuk pada total biaya yang dikeluarkan untuk operasional dalam menghasilkan pendapatan. Total Expenses mencakup semua biaya bisnis, mulai dari biaya produksi hingga operasional sehari-hari. Dengan mengurangi Total Expenses dengan Profit dapat memberikan gambaran mengenai laba bersih yang didapatkan. Dari hasil grafik garis diatas memperlihatkan fenomena yang unik, dimana setiap wilayah seakan-akan memiliki area pergerakan tersendiri dan tidak saling memotong. Wilayah south sendiri membutuhkan Total Expenses yang cukup rendah, sedangkan wilayah west tertinggi diantara keempatnya.

Analisis Perbandingan

Setiap Market terdiri dari beberapa state, untuk mendapatkan insight yang bagus maka melihat perbandingan Total Expense dari State dapat memberikan gambaran yang jelas mengenai performasi dari setiap state.

library(ggplot2)
library(dplyr)

total_expenses_state <- data %>%
  group_by(State) %>%
  summarise(Total_Expenses = sum(`Total Expenses`))

ggplot(total_expenses_state, aes(x = State, y = Total_Expenses)) +
  geom_bar(stat = "identity", fill = "#994d00") +
  labs(x = "State", 
       y = "Total Expenses",
       title = 'Perbandingan Total Expenses dari State') +
  theme_minimal() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = 'none',
    plot.title = element_text(hjust = 0.5))

Analisis Lanjut

Dapat diketahui dengan mengurangi total Profit dengan Total Expenses dari masing-masing State maka didapatkan laba bersih dari setiap State. Agar memudahkan maka dibuat tabel lengkap mengenai total profit hingga laba daring masing-masing State. \[ Laba = Total\,Profit - Total\,Expenses \]

library(dplyr)

total_laba <- data %>%
  group_by(State) %>%
  summarise(
    Total_Profit = sum(Profit),
    Total_Expenses = sum(`Total Expenses`),
    Laba = Total_Profit - Total_Expenses
  )

# Tampilkan hasilnya
print(total_laba)
## # A tibble: 20 × 4
##    State         Total_Profit Total_Expenses  Laba
##    <chr>                <dbl>          <dbl> <dbl>
##  1 California           31785          23222  8563
##  2 Colorado             17743          12143  5600
##  3 Connecticut           7621           8096  -475
##  4 Florida              12310          11009  1301
##  5 Illinois             30821          13653 17168
##  6 Iowa                 22212          11838 10374
##  7 Louisiana             7355           7182   173
##  8 Massachusetts        16442           6765  9677
##  9 Missouri              3601           9641 -6040
## 10 Nevada               10616          18586 -7970
## 11 New Hampshire         2748           6606 -3858
## 12 New Mexico             799           7243 -6444
## 13 New York             20096          17637  2459
## 14 Ohio                 10773          10251   522
## 15 Oklahoma              8558           8577   -19
## 16 Oregon               12439          12448    -9
## 17 Texas                15766           8000  7766
## 18 Utah                  7751          12409 -4658
## 19 Washington           11405          12849 -1444
## 20 Wisconsin             8702          11507 -2805

Illinois menghasilkan laba tertinggi diantara semua State disusul dengan Iowa, dilain sisi Nevada mengalami minus atau kerugian tertinggi diantara state-state yang lain, kemudian New Mexico juga mengalami kerugian yang hampir sama dengan Nevada. Sebagai solusi dari ini, perusahaan dapat melakukan peninjauan kembali terhadap toko-toko di State tersebut agar kerugian tidak semakin meningkat.

Total Sales Berdasar Product

Mengetahui tingkat penjualan Product dapat memberikan pengetahuan bagaimana performa penjualan dan tingkat profitabilitas dari setiap Product. Yang diharapkan dapat membantu perusahaan untuk memantau Product mana yang digemari konsumen, sehingga nantinya dapat meningkatkan penjualan perusahaan.

library(dplyr)
library(ggplot2)

sales_product <- data %>%
  group_by(Product) %>%
  summarise(Total_Sales = sum(Sales, na.rm = TRUE))

ggplot(sales_product, aes(x = Product, y = Total_Sales)) +
  geom_bar(stat = "identity", fill = "#0000cc") +
  labs(
       x = "Product",
       y = "Total Sales",
       title = 'Total Sales Berdasar Product') +
  theme_minimal() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(hjust = 0.5)
  )

Product Colombian mendapatkan total penjualan Sales tertinggi diantara yang lainnya, disusul dengan Lemon. Kemudian Product Amaretto menghasilkan total penjualan yang paling rendah.

PENUTUP

Analisis penjualan kopi yang dilakukan dengan menggunakan pendekatan statistik memberikan gambaran yang jelas dan berdasar data mengenai performa penjualan dari perusahaan. Dengan pengambilan berbasis data dapat menghindarii terjadinya bias dan pengambilan keputusan yang hanya berdasar asumsi. Untuk melakukan analisis berbasis statistik diperlukan pemahaman dasar mengenai statistika dan sektor bisnis, kedua hal ini akan memberikan pengaruh yang luar biasa pada perkembangan dari perusahaan.

Berdasar analisis-analisis yang sudah dilakukan, banyak insight bisnis yang bisa didapatkan dan dapat dipergunakan untuk membantu perusahaan dalam merencakan strategi atau keputusan bisnis kedepannnya. Sebagai contoh pada analisis korelasi Profit dan Marketing yang berbanding lurus (korelasi positif), hal ini memberikan pemahaman bahwa semakin tinggi biaya yang ditetapkan untuk Marketing maka Profit juga akan akan bertambah. Kemudian sebagai contoh lagi pada analisis dependensi yang merujuk pada pola hubungan atau ketergantungan antar variabel. Variabel Market Size memiliki hubungan atau ketergantungan pada Product Line, pernyataan ini dapat memberikan pemahaman bagi perusahaan bahwasanya konsumen pada Market Size tertentu menggemari Product Line tertentu sehingga untuk menjaga performa penjualan, perusahaan dapat melakukan tindakan seperti memastikan jumlah stok barang yang digemari tetap terjaga ataupun meningkatkan strategi pemasaran pada Product Line yang kurang digemari. Penyajian data dalam bentuk grafik mempermudah pembaca untuk memahami apa yang terjadi pada data, selain itu penyajian data juga berperan dalam mempermudah dalam membandingkan antar variabel. Seperti halnya perusahaan dalam melihat pola pergerakan dari Sales yang ternyata mengalami pola musiman meskipun tidak kuat, hal ini mengindikasikan bahwa bisa saja terjadi permasalahan ataupun dapat menjadi peluang untuk perusahaan dalam meingkatkan penjualan

Analisis dalam bentuk laporan ini diharapkan dapat membantu perusahaan dalam optimalisasi penjualan kopi dari berbagai sektor, analisis ini juga dapat diperluas dan dikembangkan agar dapat mencakup seluruh sektor dalam penjualan.