#import data
library(dplyr)
##
## 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
data_penjualan <- read.csv("C:/Users/LENOVO S145/Downloads/data_penjualan.csv")
head(data_penjualan)
## ID_Transaksi Tanggal Cabang Admin Kategori Produk
## 1 TRX0001 2025-01-01 Jakarta Maya Elektronik Smartwatch Fit
## 2 TRX0002 2025-01-01 Semarang Budi Alat Kantor Kertas A4 (Rim)
## 3 TRX0003 2025-01-02 Bandung Putri Aksesori Power Bank 20000
## 4 TRX0004 2025-01-05 Bandung Wawan Elektronik Earbuds Pro
## 5 TRX0005 2025-01-05 Semarang Budi Alat Kantor Kertas A4 (Rim)
## 6 TRX0006 2025-01-09 Surabaya Lestari Elektronik Smartwatch Fit
## Harga_Satuan Jumlah Diskon_Persen Total_Penjualan Metode_Pembayaran
## 1 1800000 2 0 3600000 E-Wallet
## 2 55000 3 15 140250 Kartu Kredit
## 3 280000 6 5 1596000 Tunai
## 4 650000 5 15 2762500 E-Wallet
## 5 55000 9 0 495000 Tunai
## 6 1800000 1 0 1800000 Transfer
## Segmen_Pelanggan Rating
## 1 Baru 5
## 2 Baru 4
## 3 Lama 5
## 4 Baru 5
## 5 Lama 5
## 6 Lama 5
data_penjualan %>%
group_by(Produk) %>%
summarise(Total = sum(Total_Penjualan),
Unit = sum(Jumlah)) %>%
arrange(desc(Total))
## # A tibble: 12 × 3
## Produk Total Unit
## <chr> <int> <int>
## 1 Smartphone X5 314160000 79
## 2 Laptop Ultra 14 281675000 34
## 3 Earbuds Pro 158340000 270
## 4 Smartwatch Fit 70560000 42
## 5 Rak Buku Minimalis 59815000 94
## 6 Printer Tinta 55417500 44
## 7 Tas Ransel Laptop 47162500 146
## 8 Meja Kerja Lipat 34637500 44
## 9 Power Bank 20000 19362000 78
## 10 Kursi Ergonomis 17100000 13
## 11 Kertas A4 (Rim) 14789500 289
## 12 Paket Alat Tulis 11844000 115
data_penjualan %>%
group_by(Produk) %>%
summarise(Unit = sum(Jumlah)) %>%
arrange(desc(Unit))
## # A tibble: 12 × 2
## Produk Unit
## <chr> <int>
## 1 Kertas A4 (Rim) 289
## 2 Earbuds Pro 270
## 3 Tas Ransel Laptop 146
## 4 Paket Alat Tulis 115
## 5 Rak Buku Minimalis 94
## 6 Smartphone X5 79
## 7 Power Bank 20000 78
## 8 Meja Kerja Lipat 44
## 9 Printer Tinta 44
## 10 Smartwatch Fit 42
## 11 Laptop Ultra 14 34
## 12 Kursi Ergonomis 13
data_penjualan %>%
filter(Kategori == "Elektronik",
Diskon_Persen >= 10) %>%
group_by(Cabang) %>%
summarise(Total = sum(Total_Penjualan)) %>%
arrange(desc(Total))
## # A tibble: 4 × 2
## Cabang Total
## <chr> <int>
## 1 Surabaya 155022500
## 2 Jakarta 92865000
## 3 Semarang 52305000
## 4 Bandung 32017500
data_penjualan %>%
filter(Cabang == "Jakarta",
Metode_Pembayaran == "E-Wallet") %>%
summarise(Jumlah_Transaksi = n(),
Rata_Rata = mean(Total_Penjualan))
## Jumlah_Transaksi Rata_Rata
## 1 38 3793776
data_penjualan %>%
filter(Cabang == "Jakarta") %>%
group_by(Metode_Pembayaran) %>%
summarise(Rata_Rata = mean(Total_Penjualan)) %>%
arrange(desc(Rata_Rata))
## # A tibble: 4 × 2
## Metode_Pembayaran Rata_Rata
## <chr> <dbl>
## 1 Kartu Kredit 4906550
## 2 E-Wallet 3793776.
## 3 Transfer 3194140
## 4 Tunai 2838809.
data_penjualan %>%
filter(Jumlah >= 5, Diskon_Persen > 0) %>%
group_by(Admin) %>%
summarise(Total = sum(Total_Penjualan),
Transaksi = n()) %>%
arrange(desc(Total))
## # A tibble: 9 × 3
## Admin Total Transaksi
## <chr> <int> <int>
## 1 Rina 24523750 9
## 2 Lestari 24267500 7
## 3 Agus 23678250 9
## 4 Doni 22571250 9
## 5 Maya 20709000 9
## 6 Wawan 19378750 7
## 7 Sari 13395500 10
## 8 Putri 7640500 5
## 9 Budi 6723750 6
# Total dan rata-rata penjualan
sum(data_penjualan$Total_Penjualan)
## [1] 1084863000
mean(data_penjualan$Total_Penjualan)
## [1] 3616210
# Penjualan per kategori
aggregate(Total_Penjualan ~ Kategori, data_penjualan, sum)
## Kategori Total_Penjualan
## 1 Aksesori 66524500
## 2 Alat Kantor 82051000
## 3 Elektronik 824735000
## 4 Furnitur 111552500
# Penjualan per cabang
aggregate(Total_Penjualan ~ Cabang, data_penjualan, sum)
## Cabang Total_Penjualan
## 1 Bandung 169521500
## 2 Jakarta 321342250
## 3 Semarang 251269250
## 4 Surabaya 342730000
# Penjualan per bulan
data_penjualan$Bulan <- format(as.Date(data_penjualan$Tanggal), "%m")
aggregate(Total_Penjualan ~ Bulan, data_penjualan, sum)
## Bulan Total_Penjualan
## 1 01 79103000
## 2 02 86825750
## 3 03 88939750
## 4 04 116030250
## 5 05 134131250
## 6 06 76403000
## 7 07 64659750
## 8 08 94509250
## 9 09 74597000
## 10 10 98395750
## 11 11 88967500
## 12 12 82300750
# Penjualan per admin
aggregate(Total_Penjualan ~ Admin, data_penjualan, sum)
## Admin Total_Penjualan
## 1 Agus 185566750
## 2 Budi 127323500
## 3 Doni 93570250
## 4 Lestari 157163250
## 5 Maya 163549000
## 6 Putri 60075000
## 7 Rina 123945750
## 8 Sari 64223000
## 9 Wawan 109446500
# Penjualan per metode pembayaran
aggregate(Total_Penjualan ~ Metode_Pembayaran, data_penjualan, sum)
## Metode_Pembayaran Total_Penjualan
## 1 E-Wallet 455521000
## 2 Kartu Kredit 178735500
## 3 Transfer 325322750
## 4 Tunai 125283750
# Penjualan per segmen pelanggan
aggregate(Total_Penjualan ~ Segmen_Pelanggan, data_penjualan, sum)
## Segmen_Pelanggan Total_Penjualan
## 1 Baru 434009750
## 2 Lama 650853250
# Rata-rata rating
mean(data_penjualan$Rating, na.rm=TRUE)
## [1] 4.09589
# Rata-rata penjualan berdasarkan diskon
data_penjualan$Status_Diskon <- ifelse(data_penjualan$Diskon_Persen > 0,
"Dengan Diskon",
"Tanpa Diskon")
aggregate(Total_Penjualan ~ Status_Diskon, data_penjualan, mean)
## Status_Diskon Total_Penjualan
## 1 Dengan Diskon 3071225
## 2 Tanpa Diskon 4411352
# Memeriksa data kosong dan duplikat
sum(is.na(data_penjualan))
## [1] 8
sum(duplicated(data_penjualan$ID_Transaksi))
## [1] 0