====================================================================================================== # Latar Belakang

Analisis data penjualan dan profit merupakan hal penting dalam memahami kinerja bisnis. Perusahaan perlu mengetahui produk mana yang memberikan keuntungan terbesar serta bagaimana hubungan antara penjualan dan profit yang dihasilkan.

Coffee Chain Dataset menyediakan informasi mengenai berbagai produk beserta nilai penjualan dan profitnya. Dengan menganalisis data ini, dapat diperoleh wawasan terkait performa produk dan hubungan antara sales dan profit.

Analisis ini difokuskan pada distribusi profit antar produk serta hubungan antara sales dan profit untuk mendukung pengambilan keputusan bisnis yang lebih efektif.

Rumusan masalah

  1. Bagaimana distribusi profit pada setiap produk dalam Coffee Chain Dataset?
  2. Produk mana yang memiliki profit tertinggi dan terendah?
  3. Apakah terdapat hubungan antara sales dan profit?

Tujuan

  1. Menganalisis distribusi profit pada setiap produk dalam Coffee Chain Dataset.
  2. Mengidentifikasi produk yang memiliki profit tertinggi dan terendah.
  3. Menganalisis hubungan antara sales dan profit untuk mengetahui apakah peningkatan penjualan diikuti dengan peningkatan keuntungan.

Hasil dan Pembahasan

Deskripsi Data

Dataset yang digunakan adalah Coffee Chain Dataset. Analisis ini bertujuan untuk bertujuan untuk menilai kemapuan untuk memilih, menganalisis, dan mengvisualisaskan data. pada penugasan ini di gunakan dua data insight yaitu : 1. Hubungan Product dan Profit dilakukan untuk mengetahui perbedaan tingkat keuntungan pada setiap produk. 2. Hubungan Sales dan Profit dilakukan untuk mengetahui apakah peningkatan penjualan diikuti dengan peningkatan keuntungan.

library yang digunakan

library(readr)
## Warning: package 'readr' was built under R version 4.5.3
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(lubridate)
## Warning: package 'lubridate' was built under R version 4.5.3
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2

Berikut adalah import data ke R studio dan transfromasi format

library(readr)
getwd()
## [1] "C:/Users/asus/OneDrive/Documents/SIM Sem2"
data_coffe <- read_delim("Coffee Chain Dataset.csv", delim = ";")
## Rows: 4248 Columns: 20
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr  (8): Date, Market, Market Size, Product, Product Line, Product Type, St...
## dbl (12): Area Code, Budget COGS, Budget Margin, Budget Profit, Budget Sales...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
dim(data_coffe)
## [1] 4248   20
data_coffe$Date <- dmy(data_coffe$Date)
data_coffe$Year <- year(data_coffe$Date) #memodifikasi format date
data_coffe$Month <- month(data_coffe$Date, label = TRUE)
data_coffe$Product <- as.factor(data_coffe$Product) #memodifikasi format produk
head(data_coffe)
## # A tibble: 6 × 22
##   `Area Code` Date       Market  `Market Size` Product           `Product Line`
##         <dbl> <date>     <chr>   <chr>         <fct>             <chr>         
## 1         719 2012-01-01 Central Major Market  Amaretto          Beans         
## 2         970 2012-01-01 Central Major Market  Colombian         Beans         
## 3         970 2012-01-01 Central Major Market  Decaf Irish Cream Beans         
## 4         303 2012-01-01 Central Major Market  Green Tea         Leaves        
## 5         303 2012-01-01 Central Major Market  Caffe Mocha       Beans         
## 6         720 2012-01-01 Central Major Market  Decaf Espresso    Beans         
## # ℹ 16 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>,
## #   Year <dbl>, Month <ord>

Hubungan Product dan Profit

data_insight <- data_coffe[, c("Product", "Profit")] #Memilih data insight yaitu Produk dan profit

head(data_insight) #menampilkan 6 data teratas
## # A tibble: 6 × 2
##   Product           Profit
##   <fct>              <dbl>
## 1 Amaretto              94
## 2 Colombian             68
## 3 Decaf Irish Cream    101
## 4 Green Tea             30
## 5 Caffe Mocha           54
## 6 Decaf Espresso        53
str(data_insight) #Melihat  struktur data
## tibble [4,248 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Product: Factor w/ 13 levels "Amaretto","Caffe Latte",..: 1 5 8 10 3 7 4 11 12 6 ...
##  $ Profit : num [1:4248] 94 68 101 30 54 53 99 0 33 17 ...
dim(data_insight) #melihat dimensi data
## [1] 4248    2
summary(data_insight)  #Ringkasan informasi data insight
##            Product         Profit      
##  Caffe Mocha   : 480   Min.   :-638.0  
##  Colombian     : 480   1st Qu.:  17.0  
##  Lemon         : 480   Median :  40.0  
##  Decaf Espresso: 408   Mean   :  61.1  
##  Chamomile     : 384   3rd Qu.:  92.0  
##  Darjeeling    : 384   Max.   : 778.0  
##  (Other)       :1632
colSums(is.na(data_insight)) #Mengecek apaakah ada nilai NA dari data
## Product  Profit 
##       0       0
table(data_insight$Product) #Melihat total dari masing masing kategori product
## 
##          Amaretto       Caffe Latte       Caffe Mocha         Chamomile 
##               192               216               480               384 
##         Colombian        Darjeeling    Decaf Espresso Decaf Irish Cream 
##               480               384               408               384 
##         Earl Grey         Green Tea             Lemon              Mint 
##               288               288               480               192 
##  Regular Espresso 
##                72
length(unique(data_insight$Product)) #Menghtiung jumlah kategori unik Produk
## [1] 13
aggregate(Profit ~ Product, data = data_insight, median) #menghitung rata-rata profit setiap produk
##              Product Profit
## 1           Amaretto   25.0
## 2        Caffe Latte   35.0
## 3        Caffe Mocha   27.0
## 4          Chamomile   42.0
## 5          Colombian   49.5
## 6         Darjeeling   45.0
## 7     Decaf Espresso   47.5
## 8  Decaf Irish Cream   35.0
## 9          Earl Grey   68.0
## 10         Green Tea   30.0
## 11             Lemon   35.0
## 12              Mint   47.0
## 13  Regular Espresso  110.0

Berdasarkan hasil eksplorasi data, diperoleh bahwa insight yang dipilih terdiri dari dyua variabel yaitu variabel product sebagai dengan variabel katerogri yang terdiri dari beberapa kategori dan variabel profit yang sebagai variabel numerik yang menunjukan nilai keuntungan dari produk.

Hasil ringkasan data (summary) menunjukkan bahwa nilai profit memiliki variasi yang cukup besar, karena adanya nilai minimum dan maksimum yang berbeda signifikan. Hal ini menunjukkan bahwa terdapat produk yang menghasilkan keuntungan tinggi maupun yang mengalami kerugian. Product juga menunjjukan panjang data sebanyak 4248 data dengan kelas karakter dan dikelpokkan dalam kategori yang sama diperoleh hasil yaitu ada 13 kategori berbeda.

Dicek juga bahwa tidak terdapat miss(NA) menunjukkan bahwa tidak ada data yang hilang, sehingga kualitas data dapat dikatakan baik dan tidak memerlukan proses pembersihan.

Selanjutnya, perhitungan rata-rata profit menggunakan fungsi aggregate menunjukkan bahwa setiap produk memiliki tingkat keuntungan yang berbeda-beda. Hal ini menunjuukan bahwa tidak semua produk memberikan kontribusi profit yang sama, sehingga diperlukan analisis lebih lanjut untuk mengidentifikasi produk yang paling menguntungkan maupun yang kurang.

ggplot(data_insight, aes(x = reorder(Product, Profit, FUN = median), y = Profit)) +
  geom_boxplot(fill = "skyblue") +
  theme_minimal() +
  labs(
    title = "Distribusi Profit per Produk",
    x = "Product",
    y = "Profit"
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Visualisasi menggunakan boxplot digunakan untuk melihat distribusi profit pada setiap produk. Produk diurutkan berdasarkan median profit sehingga memudahkan dalam membandingkan performa antar produk. dipilihnya median karena memberikan gambaran yang lebih stabil terhadap performa produk dibandingkan mean yang sensitif terhadap nilai ekstrem

Berdasarkan analisis, terlihat bahwa produk Colombian memiliki median profit tertinggi dibandingkan produk lainnya, yang menunjukkan bahwa produk tersebut secara konsisten memberikan keuntungan yang lebih besar. Sebaliknya, produk Green Tea menunjukkan banyak nilai profit yang rendah bahkan negatif, yang menunjukkan bahwa produk tersebut sering mengalami kerugian.

Selain itu, terdapat perbedaan sebaran profit antar produk. Beberapa produk memiliki variasi profit yang cukup besar, yang menunjukkan adanya fluktuasi keuntungan/profit, sedangkan produk lain cenderung lebih stabil.

hasil anal isis ini menunjukkan bahwa tidak semua produk sama dalam menghasilkan profit. Oleh karena itu, perusahaan perlu mempertahankan produk dengan prpfit tinggi seperti Colombian, serta melakukan evaluasi terhadap produk dengan prpfit rendah seperti Green Tea.

Berdasarkan hasil visualisasi boxplot, terlihat bahwa produk Colombian memiliki profit tertinggi, sedangkan Green Tea memiliki profit terendah. Oleh karena itu, untuk melihat pola penjualan lebih lanjut, dilakukan analisis berdasarkan waktu dengan mengambil sampel pada tahun 2013.

Analisis ini bertujuan untuk mengetahui bagaimana perkembangan penjualan masing-masing produk dari bulan ke bulan, serta melihat apakah pola penjualan tersebut konsisten dengan hasil analisis sebelumnya.

data_2013 <- data_coffe %>%
  filter(year(Date) == 2013)
data_2013$Month <- month(data_2013$Date, label = TRUE)
data_monthly <- data_2013 %>%
  group_by(Month, Product) %>%
  summarise(Total_Sales = sum(Sales), .groups = "drop")

data_monthly$Month <- factor(
  data_monthly$Month,
  levels = month.abb
)

ggplot(data_monthly, aes(x = Month, y = Total_Sales, color = Product, group = Product)) +
  geom_line(size = 1) +
  theme_minimal() +
  labs(
    title = "Perkembangan Penjualan per Produk Tahun 2013",
    x = "Month",
    y = "Total Sales"
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Berdasarkan visualisasi line chart penjualan per bulan pada tahun 2013, terlihat adanya perbedaan pola penjualan antar produk. Setiap produk menunjukkan tren yang berfluktuasi dari bulan ke bulan, yang mengindikasikan adanya variasi penjualan sepanjang tahun.

Produk Colombian terlihat secara konsisten memiliki nilai penjualan yang lebih tinggi dibandingkan produk lainnya di hampir setiap bulan. Hal ini menunjukkan bahwa Colombian merupakan produk dengan performa terbaik dan memiliki kontribusi terbesar terhadap total penjualan.

Sebaliknya, produk Green Tea menunjukkan nilai penjualan yang relatif lebih rendah dibandingkan produk lain sepanjang tahun 2013. Selain itu, fluktuasi yang terjadi pada Green Tea juga cenderung berada pada level yang rendah, yang mengindikasikan bahwa produk ini memiliki performa penjualan yang kurang optimal.

Selain itu, terlihat bahwa beberapa bulan tertentu mengalami peningkatan penjualan, yang dapat mengindikasikan adanya pola musiman atau faktor tertentu yang mempengaruhi permintaan produk. Namun, secara umum pola penjualan antar produk menunjukkan tren yang tidak selalu stabil.

Hubungan Sales dan Profit

data_insight2 <- data_coffe[, c("Sales", "Profit")] ##Memilih data insight yaitu Sales(penjualan) dan profit

head(data_insight2) #Menampilkan 6 data teratas
## # A tibble: 6 × 2
##   Sales Profit
##   <dbl>  <dbl>
## 1   219     94
## 2   190     68
## 3   234    101
## 4   100     30
## 5   134     54
## 6   180     53
str(data_insight2) #Melihat struktur data
## tibble [4,248 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Sales : num [1:4248] 219 190 234 100 134 180 341 150 140 130 ...
##  $ Profit: num [1:4248] 94 68 101 30 54 53 99 0 33 17 ...
dim(data_insight2) #melihat dimensi data
## [1] 4248    2
summary(data_insight2) #Ringkasan informasi data insight
##      Sales         Profit      
##  Min.   : 17   Min.   :-638.0  
##  1st Qu.:100   1st Qu.:  17.0  
##  Median :138   Median :  40.0  
##  Mean   :193   Mean   :  61.1  
##  3rd Qu.:230   3rd Qu.:  92.0  
##  Max.   :912   Max.   : 778.0
colSums(is.na(data_insight2)) ##Mengecek apakah ada nilai NA dari data
##  Sales Profit 
##      0      0
cor(data_insight2$Sales, data_insight2$Profit) #Kolerasi antara sales dan profit, makin dekat ke angka 1 makin kuat
## [1] 0.7973309
length(unique(data_insight2$Sales)) #jumlah data berbeda (unik) dari kolom sales
## [1] 432
sum(data_insight2$Profit<0) #Jumlah sales yang memperoleh kerugian (profit dibawah 0)
## [1] 528
sum(data_insight2$Profit) #jumlah semua profit
## [1] 259543
mean(data_insight2$Profit) #rata-rata profit
## [1] 61.09769

Beerdasarkan hasil eksplorasi data, dataset yang digunakan terdiri dari dua variabel numerik, yaitu Sales sebagai nilai penjualan dan Profit sebagai keuntungan yang diperoleh. Hasil pemeriksaan struktur data menunjukkan bahwa kedua variabel memiliki tipe numerik, sehingga dapat digunakan untuk analisis kuantitatif.

Dimensi data menunjukkan jumlah data yang cukup besar, berarti baik untuk dianalisis. Selain itu, hasil pengecekan missing value (NA) menunjukkan bahwa tidak ada data yang hilang, sehingga kualitas data dapat dikatakan baik dan tidak memerlukan proses pembersihan.

Ringkasan statisti(summary) menunjukkan bahwa nilai sales dan profit memiliki variasi yang cukup besar. Hal ini terlihat dari perbedaan nilai minimum, maksimum, dan rata-rata yang cukup signifikan, yang menunnjukkann adanya penyebaran data yang luas.

Ada juga perhitungan korelasi yang menunjukkan adanya hubungan antara sales dan profit. Nilai korelasi yang mendekati angka 1 menunjukkan hubungan positif yang kuat, di mana peningkatan sales cenderung diikuti dengan peningkatan profit. Namun demikian, terdapat sejumlah transaksi yang menghasilkan profit negatif, yang menunjukkan bahwa tidak semua penjualan memberikan keuntungan.

Selain itu, nilai total profit dan rata-rata profit memberikan gambaran umum mengenai hasil penjualan terhadap profit secara meyneluruh.

ggplot(data_insight2, aes(x = Sales, y = Profit)) +
  geom_point(color = "blue", alpha = 0.6) +
  geom_smooth(method = "lm", color = "red") +
  theme_minimal() +
  labs(
    title = "Hubungan antara Sales dan Profit",
    x = "Sales",
    y = "Profit"
  )
## `geom_smooth()` using formula = 'y ~ x'

Visualisasi scatter plot digunakan untuk menganalisis hubungan antara dua variabel numerik, yaitu Sales dan Profit. Scatter plot dipilih karena merupakan metode yang paling tepat untuk melihat pola hubungan antar dua variabel numerik.

Berdasarkan hasil visualisasi, terlihat bahwa titik-titik data cenderung membentuk pola yang meningkat. Hal ini menunjukkan adanya hubungan positif antara Sales dan Profit, di mana peningkatan nilai sales cenderung diikuti oleh peningkatan profit.

Selain itu, garis regresi linear(menggunakan geom_smooth) yang ditambahkan pada grafik memperjelas arah hubungan tersebut. Kemiringan garis yang positif menunjukkan bahwa profit cenderung meningkatan mengikuti peningkatan sales. namun terlihat penyebaran titik data cukup luas dan tidak sepenuhnya mengikuti garis regresi.

Secara keseluruhan, dapat disimpulkan bahwa terdapat hubungan positif antara sales dan profit, namun hubungan tersebut tidak sepenuhnya kuat dan masih dipengaruhi oleh variabel lain di luar sales.

Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, diperoleh beberapa kesimpulan utama. Pertama, terdapat perbedaan distribusi profit antar produk, di mana produk Colombian memiliki profit tertinggi, sedangkan Green Tea memiliki profit terendah. Hal ini menunjukkan bahwa tidak semua produk memiliki kinerja yang sama dalam menghasilkan keuntungan.

Kedua, terdapat hubungan positif antara sales dan profit, yang menunjukkan bahwa peningkatan penjualan cenderung diikuti oleh peningkatan keuntungan. Namun, hubungan tersebut tidak sepenuhnya kuat karena masih terdapat variasi data dan adanya transaksi dengan profit negativ

==============