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