Laporan ini akan menganalisis performa penjualan retail berdasarkan data yang tersedia. Tujuan dari analisis ini adalah untuk mendapatkan insight tentang tren penjualan, kategori produk yang paling menguntungkan, dan segmen pelanggan yang paling berkontribusi terhadap pendapatan.
<- read.csv("data_input/retail.csv")
data <- nrow(data)
n_rows <- ncol(data) n_cols
Dataset ini terdiri dari sebanyak 9994 baris dan 15 kolom.
head(data)
Berikut Penjelasan setiap kolom dalam dataset :
Row.ID
= Nomer barisOrder.ID
= Unique ID pemesananOrder.Date
= Tanggal pemesananShip.Date
= Tanggal pengiriman barangShip.Mode
= Jenis pengiriman yang dipilih customerCustomer.ID
= Unique ID customerSegment
= Segmentasi/kategori custoemrProduct.ID
= Unique ID barangCategory
= Kateogri barangSub.Category
= Sub Kategori barangProduct.Name
= Nama produk barangSales
= Total sales dari barang yang dibeli oleh
customerQuantity
= Total barang yang dibeli oleh customerDiscount
= Total diskon yang diberikan kepada
customerProfit
= Total keuntungan yang didapatkan oleh
perusahaancolSums(is.na(data))
#> Row.ID Order.ID Order.Date Ship.Date Ship.Mode Customer.ID
#> 0 0 0 0 0 0
#> Segment Product.ID Category Sub.Category Product.Name Sales
#> 0 0 0 0 0 0
#> Quantity Discount Profit
#> 0 0 0
Data yang digunakan tidak meiliki missinng value
str(data)
#> 'data.frame': 9994 obs. of 15 variables:
#> $ Row.ID : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ Order.ID : chr "CA-2016-152156" "CA-2016-152156" "CA-2016-138688" "US-2015-108966" ...
#> $ Order.Date : chr "11/8/16" "11/8/16" "6/12/16" "10/11/15" ...
#> $ Ship.Date : chr "11/11/16" "11/11/16" "6/16/16" "10/18/15" ...
#> $ Ship.Mode : chr "Second Class" "Second Class" "Second Class" "Standard Class" ...
#> $ Customer.ID : chr "CG-12520" "CG-12520" "DV-13045" "SO-20335" ...
#> $ Segment : chr "Consumer" "Consumer" "Corporate" "Consumer" ...
#> $ Product.ID : chr "FUR-BO-10001798" "FUR-CH-10000454" "OFF-LA-10000240" "FUR-TA-10000577" ...
#> $ Category : chr "Furniture" "Furniture" "Office Supplies" "Furniture" ...
#> $ Sub.Category: chr "Bookcases" "Chairs" "Labels" "Tables" ...
#> $ Product.Name: chr "Bush Somerset Collection Bookcase" "Hon Deluxe Fabric Upholstered Stacking Chairs, Rounded Back" "Self-Adhesive Address Labels for Typewriters by Universal" "Bretford CR4500 Series Slim Rectangular Table" ...
#> $ Sales : num 262 731.9 14.6 957.6 22.4 ...
#> $ Quantity : int 2 3 2 5 2 7 4 6 3 5 ...
#> $ Discount : num 0 0 0 0.45 0.2 0 0 0.2 0.2 0 ...
#> $ Profit : num 41.91 219.58 6.87 -383.03 2.52 ...
Dari struktur data diatas, beberapa kolom perlu diubah tipe datanya
$Order.Date <- as.Date(data$Order.Date, format = "%m/%d/%y")
data$Ship.Date <- as.Date(data$Ship.Date, format = "%m/%d/%y")
data$Ship.Mode <- as.factor(data$Ship.Mode)
data$Segment <- as.factor(data$Segment)
data$Category <- as.factor(data$Category)
data$Sub.Category <- as.factor(data$Sub.Category)
data$Row.ID <- as.character(data$Row.ID) data
summary(data)
#> Row.ID Order.ID Order.Date
#> Length:9994 Length:9994 Min. :2014-01-03
#> Class :character Class :character 1st Qu.:2015-05-23
#> Mode :character Mode :character Median :2016-06-26
#> Mean :2016-04-30
#> 3rd Qu.:2017-05-14
#> Max. :2017-12-30
#>
#> Ship.Date Ship.Mode Customer.ID
#> Min. :2014-01-07 First Class :1538 Length:9994
#> 1st Qu.:2015-05-27 Same Day : 543 Class :character
#> Median :2016-06-29 Second Class :1945 Mode :character
#> Mean :2016-05-03 Standard Class:5968
#> 3rd Qu.:2017-05-18
#> Max. :2018-01-05
#>
#> Segment Product.ID Category
#> Consumer :5191 Length:9994 Furniture :2121
#> Corporate :3020 Class :character Office Supplies:6026
#> Home Office:1783 Mode :character Technology :1847
#>
#>
#>
#>
#> Sub.Category Product.Name Sales Quantity
#> Binders :1523 Length:9994 Min. : 0.444 Min. : 1.00
#> Paper :1370 Class :character 1st Qu.: 17.280 1st Qu.: 2.00
#> Furnishings: 957 Mode :character Median : 54.490 Median : 3.00
#> Phones : 889 Mean : 229.858 Mean : 3.79
#> Storage : 846 3rd Qu.: 209.940 3rd Qu.: 5.00
#> Art : 796 Max. :22638.480 Max. :14.00
#> (Other) :3613
#> Discount Profit
#> Min. :0.0000 Min. :-6599.978
#> 1st Qu.:0.0000 1st Qu.: 1.729
#> Median :0.2000 Median : 8.666
#> Mean :0.1562 Mean : 28.657
#> 3rd Qu.:0.2000 3rd Qu.: 29.364
#> Max. :0.8000 Max. : 8399.976
#>
Berdasrkan deskripsi data diatas, dapat dipeoleh insight sementara: - Kategori produk dengan penjulan terbanyak adalah Office Supplies sebanyak 6026, diikuti oleh Furniture dan Technology - Segment pasae degan jumlah terbnayak ialah Consumer sebanyak 5191, diikuti oleh Corporate dan Home Office - Jenis Pengiriman yang paling banyak dipilh oleh pelanggan ialah Standard Class, diikuti oleh Second Class dan First Class. Jenis Pengiriman Same Day tidak banyak dipilih oleh pelanggan. - Rata-rata keuntungan dari total penjualan ialah 28.657
# Histogram untuk kolom 'Sales'
hist(data$Sales)
# Grafik batang untuk kolom 'Category'
barplot(table(data$Category))
# Statistik Deskriptif
<- summary(data$Sales)
sales_summary <- summary(data$Quantity)
quantitiy_summary <- summary(data$Profit)
profit_summary
# Simpan kedalam dataframe
<- data.frame(Variable = c("Sales", "Quantity", "Profit"),
numeric_summary Minimum = c (sales_summary[1], quantitiy_summary[1], profit_summary[1]),
Q1 = c (sales_summary[2], quantitiy_summary[2], profit_summary[2]),
Median = c(sales_summary[3], quantitiy_summary[3], profit_summary[3]),
Mean = c(sales_summary[4], quantitiy_summary[4], profit_summary[4]),
Q3 = c(sales_summary[5], quantitiy_summary[5], profit_summary[5]),
Maximum = c(sales_summary[6], quantitiy_summary[6], profit_summary[6]))
numeric_summary
<- table(data$Category)
catery_freq <- table(data$Sub.Category)
sub_category_freq <- table(data$Segment)
segment_freq
# tampilkan
catery_freq
#>
#> Furniture Office Supplies Technology
#> 2121 6026 1847
sub_category_freq
#>
#> Accessories Appliances Art Binders Bookcases Chairs
#> 775 466 796 1523 228 617
#> Copiers Envelopes Fasteners Furnishings Labels Machines
#> 68 254 217 957 364 115
#> Paper Phones Storage Supplies Tables
#> 1370 889 846 190 319
segment_freq
#>
#> Consumer Corporate Home Office
#> 5191 3020 1783
Analisis ini bertujuan untuk menganalisis performa penjualan retail berdasarkan data yang tersedia, analisis dilakukan berdasarkan kategori dan sub kategori barang.
# Menghitung total penjualan berdasarkan kategori barang
<- aggregate(Sales ~ Category, data, sum)
sales_by_category
# Menghitung total penjualan berdasarkan subkategori barang
<- aggregate(Sales ~ Sub.Category, data, sum)
sales_by_subcategory
# Mengurutkan kategori dan subkategori berdasarkan total penjualan
<- sales_by_category[order(sales_by_category$Sales, decreasing = TRUE), ]
sales_by_category <- sales_by_subcategory[order(sales_by_subcategory$Sales, decreasing = TRUE), ]
sales_by_subcategory
# Membuat plot batang untuk total penjualan berdasarkan kategori barang
barplot(sales_by_category$Sales, names.arg = sales_by_category$Category,
main = "Total Penjualan berdasarkan Kategori Barang",
xlab = "Kategori", ylab = "Total Penjualan")
# Membuat plot batang untuk total penjualan berdasarkan subkategori barang
barplot(sales_by_subcategory$Sales, names.arg = sales_by_subcategory$Sub.Category,
main = "Total Penjualan berdasarkan Subkategori Barang",
xlab = "Subkategori", ylab = "Total Penjualan")
Total penjualan dihitung untuk setiap kategori dan subkategori barang. Hasilnya, kategori penjualan terbanyak adalah Technology diikuti oleh furniture dan office supplies. Subkategori barang dengan penjualan terbanyak adalah Phones, diikuti oleh tables, dan Accessories.
<- aggregate(Sales ~ Segment, data, sum)
segment_sales
# Menampilkan grafik batang untuk penjualan berdasarkan segmen pelanggan
barplot(segment_sales$Sales, names.arg = segment_sales$Segment,
main = "Penjualan Berdasarkan Segmen Pelanggan",
xlab = "Segmen Pelanggan", ylab = "Total Penjualan")
Segmen pelanggan dengan total penjualan terbanyak adalah Consumer, diikuti oleh Corporate, dan Home Office.
Analisis pengiriman bertujuan untuk memahami pola pengiriman yang digunakan oleh pelanggan. Dilakukan analisis frekuensi jenis pengiriman yang dipilih oleh pelanggan.
<- aggregate(Sales ~ Ship.Mode, data, sum)
ship_mode_sales
# Menampilkan grafik batang untuk penjualan berdasarkan jenis pengiriman
barplot(ship_mode_sales$Sales, names.arg = ship_mode_sales$Ship.Mode,
main = "Penjualan Berdasarkan Jenis Pengiriman",
xlab = "Jenis Pengiriman", ylab = "Total Penjualan")
Jenis pengiriman yang paling banyak dipilih oleh pelanggan ialah Standard Class, diikuti oleh Second Class, dan First Class.
# Menghitung selisih antara Order.Date dan Ship.Date untuk mendapatkan waktu pengiriman
$Ship.Time <- data$Ship.Date - data$Order.Date
data
# Mengkonversi Ship.Time menjadi angka bulat (jumlah hari)
$Ship.Time <- as.integer(data$Ship.Time)
data
# Subset data hanya untuk segment "Consumer"
<- data[data$Segment == "Consumer", ]
consumer_data
# Menampilkan data
head(consumer_data)
Dalam analisis ini, dilakukan perhitungan rata-rata waktu pengiriman berdasarkan segmen pelanggan dan kategori barang
<- aggregate(Ship.Time ~ Segment + Category, data, mean)
mean_duration mean_duration
Analisis ini dilakukan untuk memahami tingkat keuntungan perusahaan dari penjualan retail.
# Hitung total keuntungan untuk setiap transaksi atau kategori produk
<- aggregate(Profit ~ Category + Sub.Category, data, sum)
profit
profit
summary(profit)
#> Category Sub.Category Profit
#> Furniture :4 Accessories: 1 Min. :-17725
#> Office Supplies:9 Appliances : 1 1st Qu.: 3385
#> Technology :4 Art : 1 Median : 13059
#> Binders : 1 Mean : 16847
#> Bookcases : 1 3rd Qu.: 30222
#> Chairs : 1 Max. : 55618
#> (Other) :11
Analisis ini dilakukan untuk memahami tingkat keuntungan perusahaan dari penjualan retail.
# Tampilkan grafik batang untuk analisis keuntungan
barplot(profit$Profit, main = "Keuntungan", xlab = "Transaksi", ylab = "Keuntungan")
Insight yang diperoleh :
Kategori Furniture memiliki potensi penjualan yang tinggi, namun perlu dilakukan evaluasi lebih lanjut terhadap sub-kategori seperti Bookcases yang menghasilkan kerugian. Tindakan perbaikan dan strategi penjualan yang tepat perlu diterapkan untuk meningkatkan profitabilitas sub-kategori tersebut.
Kategori Technology,merupakan kontributor utama terhadap keuntungan perusahaan. Hal ini menunjukkan bahwa ada peluang untuk mengoptimalkan penjualan produk teknologi untuk meningkatkan profitabilitas secara keseluruhan.
Segment pelanggan Consumer memiliki jumlah transaksi terbanyak, menunjukkan bahwa fokus pada konsumen individu dapat menjadi strategi yang efektif dalam meningkatkan penjualan dan profitabilitas. Perusahaan dapat mengarahkan upaya pemasaran dan penjualan untuk memenuhi kebutuhan dan preferensi pelanggan individu.
Evaluasi lebih lanjut terhadap jenis pengiriman yang dipilih oleh pelanggan, seperti penggunaan Standar Class yang paling dominan, dapat memberikan wawasan tambahan untuk meningkatkan efisiensi pengiriman dan kepuasan pelanggan.
Dalam analisis ini, ditemukan insight awal mengenai tren penjualan, kategori produk yang paling menguntungkan, dan segmentasi pelanggan yang paling berkontribusi terhadap pendapatan. Selain itu, dilakukan analisis lebih lanjut terkait penjualan berdasarkan kategori dan subkategori barang untuk mendapatkan informasi lebih detail. Analisis ini dapat membantu perusahaan dalam pengambilan keputusan strategis terkait peningkatan performa penjualan dan keuntungan.