#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

Membandingkan produk dengan Total_Penjualan paling besar vs produk paling banyak terjual berdasarkan Jumlah unit (jumlah).

A.Produk dengan Total_Penjualan terbesar

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

B. Produk paling banyak terjual berdasarkan Jumlah unit

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

Penjualan Elektronik (Diskon >= 10%) per Cabang

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

Transaksi cabang Jakarta

A

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

B.

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.

Filter Transaksi (Jumlah >= 5 dan Diskon > 0)

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

5.

# 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