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("~/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
str(data_penjualan)
## 'data.frame': 300 obs. of 13 variables:
## $ ID_Transaksi : chr "TRX0001" "TRX0002" "TRX0003" "TRX0004" ...
## $ Tanggal : chr "2025-01-01" "2025-01-01" "2025-01-02" "2025-01-05" ...
## $ Cabang : chr "Jakarta" "Semarang" "Bandung" "Bandung" ...
## $ Admin : chr "Maya" "Budi" "Putri" "Wawan" ...
## $ Kategori : chr "Elektronik" "Alat Kantor" "Aksesori" "Elektronik" ...
## $ Produk : chr "Smartwatch Fit" "Kertas A4 (Rim)" "Power Bank 20000" "Earbuds Pro" ...
## $ Harga_Satuan : int 1800000 55000 280000 650000 55000 1800000 120000 55000 650000 4200000 ...
## $ Jumlah : int 2 3 6 5 9 1 1 10 2 3 ...
## $ Diskon_Persen : int 0 15 5 15 0 0 10 0 0 0 ...
## $ Total_Penjualan : int 3600000 140250 1596000 2762500 495000 1800000 108000 550000 1300000 12600000 ...
## $ Metode_Pembayaran: chr "E-Wallet" "Kartu Kredit" "Tunai" "E-Wallet" ...
## $ Segmen_Pelanggan : chr "Baru" "Baru" "Lama" "Baru" ...
## $ Rating : num 5 4 5 5 5 5 5 3 5 5 ...
# 1. Produk yang paling banyak terjual berdasarkan unit
library(dplyr)
penjualan <- read.csv("~/data_penjualan.csv")
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
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
#2. Kategori elekornik dengan diskon minimal 10%, cabang mana yang total penjualannya tertinggi dan berapa nilainya
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
#3a. Cabang Jakarta dengan metode pembayaran E-Wallet, berapa jumlah transaksi dan rata rata penjualannya
penjualan %>%
filter(Cabang == "Jakarta",
Metode_Pembayaran == "E-Wallet") %>%
summarise(Jumlah_Transaksi = n(),
Rata_Rata = mean(Total_Penjualan))
## Jumlah_Transaksi Rata_Rata
## 1 38 3793776
#3b. Cabang Jakarta, metode pembayaran apa yang memiliki rata rata total penjualan per transaksi tertinggi
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.
#4. Admin yang memiliki total penjualan tertinggi
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
#5.1 Penjualan per kategori
penjualan %>%
group_by(Kategori) %>%
summarise(Total = sum(Total_Penjualan)) %>%
arrange(desc(Total))
## # A tibble: 4 × 2
## Kategori Total
## <chr> <int>
## 1 Elektronik 824735000
## 2 Furnitur 111552500
## 3 Alat Kantor 82051000
## 4 Aksesori 66524500
#5.2 Penjualan per cabang
penjualan %>%
group_by(Cabang) %>%
summarise(Total = sum(Total_Penjualan)) %>%
arrange(desc(Total))
## # A tibble: 4 × 2
## Cabang Total
## <chr> <int>
## 1 Surabaya 342730000
## 2 Jakarta 321342250
## 3 Semarang 251269250
## 4 Bandung 169521500
#5.3 Penjualan per bulan
penjualan$Tanggal <- as.Date(penjualan$Tanggal)
penjualan %>%
mutate(Bulan = format(Tanggal, "%Y-%m")) %>%
group_by(Bulan) %>%
summarise(Total = sum(Total_Penjualan))
## # A tibble: 12 × 2
## Bulan Total
## <chr> <int>
## 1 2025-01 79103000
## 2 2025-02 86825750
## 3 2025-03 88939750
## 4 2025-04 116030250
## 5 2025-05 134131250
## 6 2025-06 76403000
## 7 2025-07 64659750
## 8 2025-08 94509250
## 9 2025-09 74597000
## 10 2025-10 98395750
## 11 2025-11 88967500
## 12 2025-12 82300750
#5.4 Pengaruh diskon
penjualan %>%
group_by(Diskon_Persen) %>%
summarise(Rata_Rata = mean(Total_Penjualan))
## # A tibble: 6 × 2
## Diskon_Persen Rata_Rata
## <int> <dbl>
## 1 0 4411352.
## 2 5 2764628.
## 3 10 3049625
## 4 15 2697475
## 5 20 3080800
## 6 25 3742031.
#5.5 Kinerja admin
penjualan %>%
group_by(Admin) %>%
summarise(Total = sum(Total_Penjualan)) %>%
arrange(desc(Total))
## # A tibble: 9 × 2
## Admin Total
## <chr> <int>
## 1 Agus 185566750
## 2 Maya 163549000
## 3 Lestari 157163250
## 4 Budi 127323500
## 5 Rina 123945750
## 6 Wawan 109446500
## 7 Doni 93570250
## 8 Sari 64223000
## 9 Putri 60075000
#5.6 Metode pembayaran
penjualan %>%
group_by(Metode_Pembayaran) %>%
summarise(Total = sum(Total_Penjualan)) %>%
arrange(desc(Total))
## # A tibble: 4 × 2
## Metode_Pembayaran Total
## <chr> <int>
## 1 E-Wallet 455521000
## 2 Transfer 325322750
## 3 Kartu Kredit 178735500
## 4 Tunai 125283750
#5.7 Rating pelanggan
penjualan %>%
group_by(Rating) %>%
summarise(Jumlah = n())
## # A tibble: 5 × 2
## Rating Jumlah
## <dbl> <int>
## 1 2 2
## 2 3 63
## 3 4 132
## 4 5 95
## 5 NA 8
#5.8 Pemeriksaan kualitas data
colSums(is.na(data_penjualan))
## ID_Transaksi Tanggal Cabang Admin
## 0 0 0 0
## Kategori Produk Harga_Satuan Jumlah
## 0 0 0 0
## Diskon_Persen Total_Penjualan Metode_Pembayaran Segmen_Pelanggan
## 0 0 0 0
## Rating
## 8
sum(duplicated(data_penjualan))
## [1] 0