Nama : Santi Amelia

NIM : M0725052

Kelas : C

Pendahuluan

Laporan ini disusun sebagai bentuk pemenuhan tugas dalam mata kuliah Sistem Informasi Manajemen. Dalam tugas ini, mahasiswa diminta untuk melakukan pengambilan suatu insight, visualisasi data, analisis data, dan menginterpretasikan hasil visualisasi dan analisis data. Dataset yang digunakan merupakan data Coffe Chain Datasets. Dalam analisis ini saya mengimpor ke dalam R menggunakan dataset format .sql.

Koneksi Database dan Pengambilan Data

library(odbc)
## Warning: package 'odbc' was built under R version 4.5.2
library(DBI)
## Warning: package 'DBI' was built under R version 4.5.2
con = dbConnect(odbc(),
                 Driver = "MySQL ODBC 8.0 ANSI Driver",
                 Server = "127.0.0.1",
                 UID = "root",
                 PWD = "lup4p4ssw0rd",
                 Port = 3306,
                 Database = "db")

dbListTables(con) 
## [1] "facttable" "location"  "product"
facttable <- dbReadTable(con, "facttable")
location <- dbReadTable(con, "location")
product <- dbReadTable(con, "product")

colnames(facttable)
##  [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(location)
## [1] "Area.Code"   "State"       "Market"      "Market.Size"
colnames(product)
## [1] "Product.Line" "Product.Type" "Product"      "ProductId"    "Type"

Insight

Terdapat kemungkinan bahwa tidak semua jenis produk memberikan tingkat rasio keuntungan yang sebanding dengan tingkat penjualannya. Perbedaan karakteristik masing-masing jenis produk, seperti biaya produksi, harga jual, dan strategi pemasaran memungkinkan perbedaan tingkat keuntungan pada setiap produk. Maka dari itu, dibutuhkan analisis lebih lanjut untuk mengetahui hubungan antar tingkat rasio keuntungan dengan tingkat penjualan dari masing-masing produk tersebut.

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(readr)
## Warning: package 'readr' was built under R version 4.5.3
# Gabungkan data
data_full <- facttable %>%
  left_join(product, by = "ProductId")

# Membuat kolom Profit_Ratio
data_full <- data_full %>%
  mutate(Profit_Ratio = Profit / Sales)

head(data_full)
##   Profit Margin Sales COGS Total.Expenses Marketing Inventory Budget.Profit
## 1     94    130   219   89             36        24       777           100
## 2     68    107   190   83             39        27       623            80
## 3    101    139   234   95             38        26       821           110
## 4     30     56   100   44             26        14       623            30
## 5     54     80   134   54             26        15       456            70
## 6     53    108   180   72             55        23       558            80
##   Budget.COGS Budget.Margin Budget.Sales Area.Code ProductId
## 1          90           130          220       719         1
## 2          80           110          190       970         2
## 3         100           140          240       970         3
## 4          30            50           80       303        13
## 5          60            90          150       303         5
## 6          80           130          210       720         6
##                  Date Product.Line Product.Type           Product    Type
## 1 2012-01-01 00:00:00        Beans       Coffee          Amaretto Regular
## 2 2012-01-01 00:00:00        Beans       Coffee         Colombian Regular
## 3 2012-01-01 00:00:00        Beans       Coffee Decaf Irish Cream   Decaf
## 4 2012-01-01 00:00:00       Leaves          Tea         Green Tea Regular
## 5 2012-01-01 00:00:00        Beans     Espresso       Caffe Mocha Regular
## 6 2012-01-01 00:00:00        Beans     Espresso    Decaf Espresso   Decaf
##   Profit_Ratio
## 1    0.4292237
## 2    0.3578947
## 3    0.4316239
## 4    0.3000000
## 5    0.4029851
## 6    0.2944444

Analisis Data

# Membandingkan rata-rata sales, rata-rata profit, dan rata-rata profit ratio 
summary_product <- data_full %>%
  group_by(Product.Type) %>%
  summarise(
    avg_sales = mean(Sales, na.rm = TRUE),
    avg_profit = mean(Profit, na.rm = TRUE),
    avg_profit_ratio = mean(Profit_Ratio, na.rm = TRUE)
  )

print(summary_product)
## # A tibble: 4 × 4
##   Product.Type avg_sales avg_profit avg_profit_ratio
##   <chr>            <dbl>      <dbl>            <dbl>
## 1 Coffee            205.       70.7            0.240
## 2 Espresso          190.       58.4            0.217
## 3 Herbal Tea        196.       59.9            0.250
## 4 Tea               180.       55.2           -0.153

Berdasarkan hasil analisis, produk Coffee memiliki rata-rata penjualan dan profit tertinggi, sehingga menjadi kontributor utama terhadap pendapatan perusahaan. Sementara itu, Herbal Tea menunjukkan profit ratio tertinggi, yang mengindikasikan efisiensi keuntungan yang lebih baik dibandingkan produk lainnya. Sebaliknya, produk Tea memiliki profit ratio negatif, yang menunjukkan bahwa produk tersebut mengalami kerugian meskipun tetap menghasilkan penjualan. Oleh karena itu, diperlukan evaluasi lebih lanjut terhadap strategi penetapan harga maupun biaya pada produk Tea.

Visualisasi rata-rata profit ratio per product type

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
library(scales)
## Warning: package 'scales' was built under R version 4.5.2
## 
## Attaching package: 'scales'
## The following object is masked from 'package:readr':
## 
##     col_factor
ggplot(summary_product, 
       aes(x = reorder(Product.Type, avg_profit_ratio), 
           y = avg_profit_ratio,
           fill = avg_profit_ratio > 0)) +
  
  geom_col(width = 0.7, color = "white") +
  
  # Garis nol
  geom_hline(yintercept = 0, color = "black", linewidth = 0.8) +
  
  # Label
  geom_text(aes(label = percent(avg_profit_ratio, accuracy = 0.01),
                vjust = ifelse(avg_profit_ratio > 0, -0.5, 1.5)),
            size = 4) +
  
  # Warna beda positif & negatif
  scale_fill_manual(values = c("TRUE" = "#2ECC71",
                               "FALSE" = "#E74C3C")) +
  
  scale_y_continuous(labels = percent_format(),
                     expand = expansion(c(0.1, 0.1))) +
  
  coord_flip() +
  
  labs(
    title = "Rata-rata Profit Ratio per Product Type",
    subtitle = "Hijau = Untung | Merah = Rugi",
    x = "Product Type",
    y = "Average Profit Ratio"
  ) +
  
  theme_minimal() +
  theme(legend.position = "none")

Visualisasi tersebut menggambarkan perbandingan rata-rata rasio keuntungan untuk empat jenis produk yang berbeda, yaitu Herbal Tea, Coffee, Espresso, dan Tea. Pada grafik ini, warna hijau merepresentasikan keuntungan, sementara warna merah menandakan adanya kerugian.

Berdasarkan data yang ditampilkan, Herbal Tea merupakan jenis produk dengan performa terbaik karena memiliki rata-rata rasio keuntungan tertinggi mencapai \(24.98\%\). Posisi kedua ditempati oleh kategori Coffee dengan rasio keuntungan sebesar \(24.02\%\). Kategori Espresso juga menunjukkan performa yang cukup baik dengan rasio keuntungan di angka \(21.66\%\). Ketiga produk ini berada di sisi kanan garis nol, yang berarti semuanya memberikan keuntungan terhadap pendapatan perusahaan.

Di sisi lain, terdapat jenis produk Tea yang merupakan satu-satunya produk yang merugi. Kategori ini memiliki rata-rata rasio keuntungan sebesar \(-15.31\%\), yang divisualisasikan dengan batang berwarna merah ke arah kiri. Hal ini menunjukkan adanya masalah efisiensi atau margin pada jenis produk teh dibandingkan dengan teh herbal, espresso, atau kopi. Produk Tea yang merugi menunjukkan perlunya evaluasi mendalam terhadap strategi harga, biaya produksi, atau manajemen operasional khusus untuk produk Tea tersebut agar performanya dapat diperbaiki di masa mendatang.

Visualisasi rata-rata sales per product type

library(ggplot2)
library(scales)

ggplot(data_full, 
       aes(x = Product.Type, 
           y = Sales, 
           fill = after_stat(y))) +
  
  stat_summary(fun = mean, geom = "col", width = 0.7, color = "white") +
  
  stat_summary(fun = mean, geom = "text",
               aes(label = comma(round(after_stat(y), 0))),
               vjust = -0.5, size = 4) +
  
  scale_fill_gradient(low = "#36D1DC", high = "#5B86E5") +
  
  coord_flip() +
  
  labs(
    title = "Rata-rata Penjualan per Product Type",
    subtitle = "Perbandingan performa penjualan antar kategori produk",
    x = "Product Type",
    y = "Average Sales"
  ) +
  
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(color = "gray40"),
    axis.text.y = element_text(face = "bold"),
    legend.position = "none"
  )

Berdasarkan data yang ditampilkan, Coffe merupakan jenis produk dengan performa penjualan terbaik karena memiliki rata-rata penjualan tertinggi mencapai \(205\). Posisi kedua ditempati oleh kategori Herbal Tea dengan rata-rata penjualan sebesar \(196\). Kategori Espresso juga menunjukkan performa yang cukup baik dengan rata-rata penjualan di angka \(190\). Selanjutnya kategori Tea yang menunjukkan rata-rata penjualan terkecil di angka sebesar \(180\). Semua produk tersebut menghasilkan penjualan.

Visualisasi rata-rata profit per product type

library(ggplot2)
library(scales)

ggplot(data_full, 
       aes(x = Product.Type, 
           y = Profit, 
           fill = after_stat(y))) +
  
  stat_summary(fun = mean, geom = "col", width = 0.7, color = "white") +
  
  stat_summary(fun = mean, geom = "text",
               aes(label = comma(round(after_stat(y), 0))),
               vjust = -0.5, size = 4) +
  
  scale_fill_gradient(low = "#36D1DC", high = "#5B86E5") +
  
  coord_flip() +
  
  labs(
    title = "Rata-rata Profit per Product Type",
    subtitle = "Perbandingan profit penjualan antar kategori produk",
    x = "Product Type",
    y = "Average Profit"
  ) +
  
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(color = "gray40"),
    axis.text.y = element_text(face = "bold"),
    legend.position = "none"
  )

Berdasarkan data yang ditampilkan, Coffe merupakan jenis produk dengan profit penjualan terbaik karena memiliki rata-rata profit tertinggi mencapai \(71\). Posisi kedua ditempati oleh kategori Herbal Tea dengan rata-rata profit sebesar \(60\). Kategori Espresso juga menunjukkan performa yang cukup baik dengan rata-rata penjualan di angka \(58\). Selanjutnya kategori Tea yang menunjukkan rata-rata penjualan terkecil di angka sebesar \(55\). Semua produk tersebut menghasilkan profit.

Uji Hipotesis

Hipotesis

\(H_0: \mu_1 = \mu_2 = \mu_3 = \mu_4\)

\(H_1: \text{Minimal ada satu rata-rata yang berbeda}\)

Taraf Signifikansi

Taraf signifikansi yang digunakan adalah \(\alpha = 0.05\).

Kriteria Keputusan

  • Jika \(p\text{-value} < \alpha\), maka \(H_0\) ditolak.
  • Jika \(p\text{-value} \geq \alpha\), maka \(H_0\) gagal ditolak.

Implementasi di R

anova_model <- aov(Profit_Ratio ~ Product.Type, data = data_full)
summary(anova_model)
##                Df Sum Sq Mean Sq F value   Pr(>F)    
## Product.Type    3    112   37.50   15.68 3.84e-10 ***
## Residuals    4244  10147    2.39                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil

Diperoleh \(p\text{-value} = 0.000000000384\), sehingga \(H_0\) ditolak.

Kesimpulan

Terdapat perbedaan rata-rata profit ratio antar jenis produk.