df_customer <- read.csv("df_customer.csv")
head(df_customer)
##   X ID_Pelanggan Jenis_Kelamin Tempat_Tinggal Penghasilan Total_Belanja
## 1 1      ID00031     Laki-laki           Desa     2227350       2563031
## 2 2      ID00079     Perempuan           Kota     9047608       8369550
## 3 3      ID00051     Perempuan           Kota     9735540       8053033
## 4 4      ID00014     Laki-laki           Kota    13510126       9799876
## 5 5      ID00067     Perempuan           Desa     7773498       6982081
## 6 6      ID00042     Laki-laki           Desa     6666740       4782002
  1. Berapa jumlah total transaksi dalam data ini?
nrow(df_customer)
## [1] 300
  1. Ada berapa pelanggan unik dalam dataset?
length(unique(df_customer$ID_Pelanggan))
## [1] 94
  1. Siapa pelanggan yang paling sering berbelanja?
sort(table(df_customer$ID_Pelanggan), decreasing = TRUE)[1:3]
## 
## ID00007 ID00025 ID00089 
##       9       7       7
  1. Rata-rata penghasilan pelanggan berdasarkan jenis kelamin.
aggregate(Penghasilan ~ Jenis_Kelamin, data = df_customer, mean)
##   Jenis_Kelamin Penghasilan
## 1     Laki-laki     8880902
## 2     Perempuan     8505199
  1. Rata-rata total belanja pelanggan berdasarkan jenis kelamin.
aggregate(Total_Belanja ~ Jenis_Kelamin, data = df_customer, mean)
##   Jenis_Kelamin Total_Belanja
## 1     Laki-laki       6034728
## 2     Perempuan       7114786
  1. Rata-rata penghasilan pelanggan berdasarkan tempat tinggal (Kota vs Desa).
aggregate(Penghasilan ~ Tempat_Tinggal, data = df_customer, mean)
##   Tempat_Tinggal Penghasilan
## 1           Desa     6249122
## 2           Kota     9878685
  1. Rata-rata total belanja pelanggan berdasarkan tempat tinggal.
aggregate(Total_Belanja ~ Tempat_Tinggal, data = df_customer, mean)
##   Tempat_Tinggal Total_Belanja
## 1           Desa       5022231
## 2           Kota       7520118
  1. Siapa 5 pelanggan dengan total belanja tertinggi?
df_customer[order(-df_customer$Total_Belanja), c("ID_Pelanggan", "Total_Belanja")] |> head(5)
##     ID_Pelanggan Total_Belanja
## 76       ID00034      11626302
## 175      ID00011      11527638
## 228      ID00057      11031197
## 287      ID00093      10984825
## 33       ID00007      10846012
  1. Distribusi jumlah transaksi berdasarkan jenis kelamin.
table(df_customer$Jenis_Kelamin)
## 
## Laki-laki Perempuan 
##       121       179
  1. Buat kategori penghasilan: Rendah (< 5 juta) Menengah (5–10 juta) Tinggi (> 10 juta) Lalu hitung distribusinya.
df_customer$Kategori_Penghasilan <- cut(df_customer$Penghasilan,
                                        breaks = c(-Inf, 5000000, 10000000, Inf),
                                        labels = c("Rendah", "Menengah", "Tinggi"))
table(df_customer$Kategori_Penghasilan)
## 
##   Rendah Menengah   Tinggi 
##       27      175       98

#Tugas Siapa pelanggan yang paling sering membeli dengan total belanja lebih dari 5000000

Ada berapa banyak perempuan di kota yang berbelanja lebih dari 5x

Siapa pelanggan yang paling sering membeli dengan penghasilan lebih dari 5000000

Berjenis kelamin apa pelanggan yang tinggal di desa namun memiliki total belanja yang lebih dari 5000000

Berpenghasilan berapa pelanggan yang tinggal di desa namun memiliki total belanja lebih dari 5000000

#no 1
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
df_customer <- read.csv("df_customer.csv")
# 1. Pelanggan yang paling sering membeli dengan total belanja > 5.000.000
q1 <- df_customer[df_customer$Total_Belanja > 5000000,]
q1 <- sort(table(q1$ID_Pelanggan), decreasing = TRUE)
head(q1)
## 
## ID00007 ID00025 ID00026 ID00089 ID00053 ID00079 
##       7       7       6       6       5       5
q11 <- df_customer %>%
  filter(Total_Belanja > 5000000) %>%
  count(ID_Pelanggan, sort = TRUE) %>%
  slice_head(n=6)
q11
##   ID_Pelanggan n
## 1      ID00007 7
## 2      ID00025 7
## 3      ID00026 6
## 4      ID00089 6
## 5      ID00053 5
## 6      ID00079 5
#no 2
q2 <- subset(df_customer, Jenis_Kelamin == "Perempuan" & Tempat_Tinggal == "Kota")
q2_count <- table(q2$ID_Pelanggan)
q2_count <- data.frame(q2_count)
q2_count
##       Var1 Freq
## 1  ID00001    1
## 2  ID00002    3
## 3  ID00004    2
## 4  ID00005    1
## 5  ID00006    2
## 6  ID00007    5
## 7  ID00009    1
## 8  ID00010    1
## 9  ID00011    1
## 10 ID00012    1
## 11 ID00013    1
## 12 ID00016    1
## 13 ID00017    1
## 14 ID00021    1
## 15 ID00023    3
## 16 ID00024    3
## 17 ID00025    4
## 18 ID00026    4
## 19 ID00030    2
## 20 ID00031    2
## 21 ID00032    3
## 22 ID00034    1
## 23 ID00035    1
## 24 ID00036    3
## 25 ID00037    3
## 26 ID00038    1
## 27 ID00039    2
## 28 ID00040    2
## 29 ID00041    1
## 30 ID00042    2
## 31 ID00043    1
## 32 ID00044    1
## 33 ID00045    3
## 34 ID00046    3
## 35 ID00048    1
## 36 ID00050    2
## 37 ID00051    2
## 38 ID00053    4
## 39 ID00054    2
## 40 ID00056    1
## 41 ID00057    2
## 42 ID00058    1
## 43 ID00060    2
## 44 ID00063    3
## 45 ID00066    1
## 46 ID00067    1
## 47 ID00069    2
## 48 ID00070    1
## 49 ID00071    2
## 50 ID00072    1
## 51 ID00074    1
## 52 ID00075    1
## 53 ID00076    2
## 54 ID00079    2
## 55 ID00082    1
## 56 ID00083    1
## 57 ID00084    1
## 58 ID00085    3
## 59 ID00086    1
## 60 ID00087    3
## 61 ID00089    1
## 62 ID00090    2
## 63 ID00091    2
## 64 ID00092    1
## 65 ID00093    1
## 66 ID00096    1
## 67 ID00099    1
q22 <- df_customer %>%
  filter(Jenis_Kelamin == "Perempuan", Tempat_Tinggal == "Kota") %>%
  count(ID_Pelanggan) %>%
  filter(n > 5) %>%
  summarise(jumlah = n())
q22
##   jumlah
## 1      0
#no 3
q3 <- df_customer[df_customer$Penghasilan > 5000000, ]
q3 <- sort(table(q3$ID_Pelanggan), decreasing = TRUE)
head(q3, 1)
## 
## ID00007 
##       9
q33 <- df_customer %>%
  filter(Penghasilan > 5000000) %>%
  count(ID_Pelanggan, sort = TRUE) %>%
  slice_head(n = 1)
q33
##   ID_Pelanggan n
## 1      ID00007 9
#no 4
q4 <- subset(df_customer, Tempat_Tinggal == "Desa" & Total_Belanja > 5000000)
table(q4$Jenis_Kelamin)
## 
## Laki-laki Perempuan 
##        10        37
q44 <- df_customer %>%
  filter(Tempat_Tinggal == "Desa", Total_Belanja > 5000000) %>%
  count(Jenis_Kelamin)
q44
##   Jenis_Kelamin  n
## 1     Laki-laki 10
## 2     Perempuan 37
#no 5
q5 <- subset(df_customer, Tempat_Tinggal == "Desa" & Total_Belanja > 5000000)
head(q5[, c("ID_Pelanggan", "Penghasilan")], 5)
##    ID_Pelanggan Penghasilan
## 5       ID00067     7773498
## 9       ID00014     6776730
## 43      ID00027     8108645
## 46      ID00089     9032981
## 47      ID00034     5616450
q55 <- df_customer %>%
  filter(Tempat_Tinggal == "Desa", Total_Belanja > 5000000) %>%
  select(ID_Pelanggan, Penghasilan) %>%
  head(5)
q55
##   ID_Pelanggan Penghasilan
## 1      ID00067     7773498
## 2      ID00014     6776730
## 3      ID00027     8108645
## 4      ID00089     9032981
## 5      ID00034     5616450