====================================================================================================== # 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.
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>
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.
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.
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
==============