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
# 1 Berdasarkan Total_Penjualan, produk apa yang memiliki penjualan paling besar, dan berapa nilainya? Sebagai pembanding, produk apa yang paling banyak terjual berdasarkan jumlah unit (Jumlah)?
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 Untuk kategori Elektronik dengan diskon minimal 10%, hitung total penjualan per cabang. Cabang mana yang 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
# 3 a. Pada cabang Jakarta dengan metode pembayaran E-Wallet, berapa jumlah transaksi dan rata-rata Total_Penjualan per transaksi?
penjualan %>%
filter(Cabang == "Jakarta",
Metode_Pembayaran == "E-Wallet") %>%
summarise(Jumlah_Transaksi = n(),
Rata_Rata = mean(Total_Penjualan))
## Jumlah_Transaksi Rata_Rata
## 1 38 3793776
# 3 b. Di 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 Ambil hanya transaksi dengan Jumlah ≥ 5 unit dan Diskon_Persen > 0. Admin siapa yang memiliki total penjualan tertinggi pada subset tersebut, berapa nilainya, dan berapa transaksi yang ia tangani?
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 Lakukan analisis eksplorasi bebas pada data tersebut. Temukan sebanyak mungkin insight yang bermanfaat bagi manajemen perusahaan. Untuk setiap temuan, sertakan (i) kode atau ringkasan hasil, (ii) interpretasi, dan (iii) rekomendasi tindakan bisnis. Arah analisis boleh mencakup waktu, produk/kategori, cabang, diskon, admin, pelanggan, metode pembayaran, rating, dan kualitas data.
# A. 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
# B. 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
# C. 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
# D. 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.
# E. 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
# F. 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
# G. 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
# H. Pemeriksaan kualitas data
colSums(is.na(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(penjualan))
## [1] 0