Mengaktifkan Packages
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
library(ggplot2)
Import Data
data_pelanggan <- data.frame(
ID = c(101,102,103,104,105,106,107,108,109,110,
111,112,113,114,115,116,117,118,119,120),
Nama = c("Andi","Budi","Citra","Dina","Eka",
"Fajar","Gina","Hadi","Intan","Joko",
"Kiki","Lina","Maya","Nanda","Oki",
"Putri","Rian","Sinta","Tono","Vina"),
Kota = c("Solo","Semarang","Solo","Yogyakarta","Semarang",
"Solo","Klaten","Yogyakarta","Solo","Klaten",
"Semarang","Solo","Yogyakarta","Klaten","Solo",
"Semarang","Yogyakarta","Solo","Klaten","Semarang"),
Umur = c(19,21,20,25,22,31,27,24,19,35,
28,23,26,30,21,32,29,20,34,22),
Total_Belanja = c(
2500000, 5200000, 1750000, 6800000, 4300000,
7200000, 3100000, 8500000, 1200000, 4700000,
6200000, 2900000, 9100000, 3800000, 5600000,
7500000, 4500000, 2300000, 6700000, 3400000
)
)
Menampilkan Seluruh Data
head(data_pelanggan)
## ID Nama Kota Umur Total_Belanja
## 1 101 Andi Solo 19 2500000
## 2 102 Budi Semarang 21 5200000
## 3 103 Citra Solo 20 1750000
## 4 104 Dina Yogyakarta 25 6800000
## 5 105 Eka Semarang 22 4300000
## 6 106 Fajar Solo 31 7200000
Menampilkan 5 Data Pertama
head(data_pelanggan,5)
## ID Nama Kota Umur Total_Belanja
## 1 101 Andi Solo 19 2500000
## 2 102 Budi Semarang 21 5200000
## 3 103 Citra Solo 20 1750000
## 4 104 Dina Yogyakarta 25 6800000
## 5 105 Eka Semarang 22 4300000
Menampilkan Kolom Nama, Kota, Umur, dan Total_Belanja
data_pilihan <- select(data_pelanggan, Nama, Kota, Umur, Total_Belanja)
data_pilihan
## Nama Kota Umur Total_Belanja
## 1 Andi Solo 19 2500000
## 2 Budi Semarang 21 5200000
## 3 Citra Solo 20 1750000
## 4 Dina Yogyakarta 25 6800000
## 5 Eka Semarang 22 4300000
## 6 Fajar Solo 31 7200000
## 7 Gina Klaten 27 3100000
## 8 Hadi Yogyakarta 24 8500000
## 9 Intan Solo 19 1200000
## 10 Joko Klaten 35 4700000
## 11 Kiki Semarang 28 6200000
## 12 Lina Solo 23 2900000
## 13 Maya Yogyakarta 26 9100000
## 14 Nanda Klaten 30 3800000
## 15 Oki Solo 21 5600000
## 16 Putri Semarang 32 7500000
## 17 Rian Yogyakarta 29 4500000
## 18 Sinta Solo 20 2300000
## 19 Tono Klaten 34 6700000
## 20 Vina Semarang 22 3400000
Melihat Struktur Data
str(data_pelanggan)
## 'data.frame': 20 obs. of 5 variables:
## $ ID : num 101 102 103 104 105 106 107 108 109 110 ...
## $ Nama : chr "Andi" "Budi" "Citra" "Dina" ...
## $ Kota : chr "Solo" "Semarang" "Solo" "Yogyakarta" ...
## $ Umur : num 19 21 20 25 22 31 27 24 19 35 ...
## $ Total_Belanja: num 2500000 5200000 1750000 6800000 4300000 7200000 3100000 8500000 1200000 4700000 ...
Pelanggan yang Tinggal di Solo
data_pelanggan %>%
filter(Kota == "Solo")
## ID Nama Kota Umur Total_Belanja
## 1 101 Andi Solo 19 2500000
## 2 103 Citra Solo 20 1750000
## 3 106 Fajar Solo 31 7200000
## 4 109 Intan Solo 19 1200000
## 5 112 Lina Solo 23 2900000
## 6 115 Oki Solo 21 5600000
## 7 118 Sinta Solo 20 2300000
Pelanggan yang Memiliki Total Belanja > 5.000.000
data_pelanggan %>%
filter(Total_Belanja > 5000000)
## ID Nama Kota Umur Total_Belanja
## 1 102 Budi Semarang 21 5200000
## 2 104 Dina Yogyakarta 25 6800000
## 3 106 Fajar Solo 31 7200000
## 4 108 Hadi Yogyakarta 24 8500000
## 5 111 Kiki Semarang 28 6200000
## 6 113 Maya Yogyakarta 26 9100000
## 7 115 Oki Solo 21 5600000
## 8 116 Putri Semarang 32 7500000
## 9 119 Tono Klaten 34 6700000
Pelanggan yang Tinggal di Solo dan Memiliki Total Belanja >
5.000.000
data_pelanggan %>%
filter(
Kota == "Solo",
Total_Belanja > 5000000
)
## ID Nama Kota Umur Total_Belanja
## 1 106 Fajar Solo 31 7200000
## 2 115 Oki Solo 21 5600000
pelanggan yang Tinggal di Yogyakarta atau Memiliki Total Belanja
> 7.000.000
data_pelanggan %>%
filter(
Kota == "Yogyakarta"|
Total_Belanja > 7000000
)
## ID Nama Kota Umur Total_Belanja
## 1 104 Dina Yogyakarta 25 6800000
## 2 106 Fajar Solo 31 7200000
## 3 108 Hadi Yogyakarta 24 8500000
## 4 113 Maya Yogyakarta 26 9100000
## 5 116 Putri Semarang 32 7500000
## 6 117 Rian Yogyakarta 29 4500000
Rata-Rata Umur
mean(data_pelanggan$Umur)
## [1] 25.4
Umur Minimum
min(data_pelanggan$Umur)
## [1] 19
Umur Maksimum
max(data_pelanggan$Umur)
## [1] 35
Rata-Rata Total Belanja
mean(data_pelanggan$Total_Belanja)
## [1] 4862500
Total Seluruh Belanja
sum(data_pelanggan$Total_Belanja)
## [1] 97250000
Belanja Minimum
min(data_pelanggan$Total_Belanja)
## [1] 1200000
Belanja Maksimum
max(data_pelanggan$Total_Belanja)
## [1] 9100000
Menambahkan Kolom Kategori Belanja
data_tambahan <- mutate(data_pelanggan, Kategori_Belanja = case_when(
Total_Belanja < 3000000 ~ "Rendah",
Total_Belanja >= 3000000 & Total_Belanja <= 6000000 ~ "Sedang",
Total_Belanja > 6000000 ~ "Tinggi"
)
)
data_tambahan
## ID Nama Kota Umur Total_Belanja Kategori_Belanja
## 1 101 Andi Solo 19 2500000 Rendah
## 2 102 Budi Semarang 21 5200000 Sedang
## 3 103 Citra Solo 20 1750000 Rendah
## 4 104 Dina Yogyakarta 25 6800000 Tinggi
## 5 105 Eka Semarang 22 4300000 Sedang
## 6 106 Fajar Solo 31 7200000 Tinggi
## 7 107 Gina Klaten 27 3100000 Sedang
## 8 108 Hadi Yogyakarta 24 8500000 Tinggi
## 9 109 Intan Solo 19 1200000 Rendah
## 10 110 Joko Klaten 35 4700000 Sedang
## 11 111 Kiki Semarang 28 6200000 Tinggi
## 12 112 Lina Solo 23 2900000 Rendah
## 13 113 Maya Yogyakarta 26 9100000 Tinggi
## 14 114 Nanda Klaten 30 3800000 Sedang
## 15 115 Oki Solo 21 5600000 Sedang
## 16 116 Putri Semarang 32 7500000 Tinggi
## 17 117 Rian Yogyakarta 29 4500000 Sedang
## 18 118 Sinta Solo 20 2300000 Rendah
## 19 119 Tono Klaten 34 6700000 Tinggi
## 20 120 Vina Semarang 22 3400000 Sedang
Menampilkan Kolom Nama, Total_Belanja, dan Kategori_Belanja
data_tambahan_pilihan <- select(data_tambahan, Nama, Total_Belanja, Kategori_Belanja)
data_tambahan_pilihan
## Nama Total_Belanja Kategori_Belanja
## 1 Andi 2500000 Rendah
## 2 Budi 5200000 Sedang
## 3 Citra 1750000 Rendah
## 4 Dina 6800000 Tinggi
## 5 Eka 4300000 Sedang
## 6 Fajar 7200000 Tinggi
## 7 Gina 3100000 Sedang
## 8 Hadi 8500000 Tinggi
## 9 Intan 1200000 Rendah
## 10 Joko 4700000 Sedang
## 11 Kiki 6200000 Tinggi
## 12 Lina 2900000 Rendah
## 13 Maya 9100000 Tinggi
## 14 Nanda 3800000 Sedang
## 15 Oki 5600000 Sedang
## 16 Putri 7500000 Tinggi
## 17 Rian 4500000 Sedang
## 18 Sinta 2300000 Rendah
## 19 Tono 6700000 Tinggi
## 20 Vina 3400000 Sedang
Jumlah Pelanggan pada Setiap Kategori
table(data_tambahan$Kategori_Belanja)
##
## Rendah Sedang Tinggi
## 5 8 7
Pelanggan dengan Total Belanja Tertinggi
data_pelanggan[data_pelanggan$Total_Belanja == 9100000,]
## ID Nama Kota Umur Total_Belanja
## 13 113 Maya Yogyakarta 26 9100000
Pelanggan dengan Umur Paling Muda
min(data_pelanggan$Umur)
## [1] 19
data_pelanggan[data_pelanggan$Umur == 19,]
## ID Nama Kota Umur Total_Belanja
## 1 101 Andi Solo 19 2500000
## 9 109 Intan Solo 19 1200000
Pelanggan yang Tinggal di Solo, Berumur <= 25 Tahun, dan
Total_Belanja > 5.000.000
data_pelanggan %>%
filter(
Kota == "Solo",
Umur <= 25,
Total_Belanja > 5000000
)
## ID Nama Kota Umur Total_Belanja
## 1 115 Oki Solo 21 5600000
Rata_Rata Total Belanja untuk Pelanggan yang Tinggal di Solo
data_pelanggan[data_pelanggan$Kota == "Solo",]
## ID Nama Kota Umur Total_Belanja
## 1 101 Andi Solo 19 2500000
## 3 103 Citra Solo 20 1750000
## 6 106 Fajar Solo 31 7200000
## 9 109 Intan Solo 19 1200000
## 12 112 Lina Solo 23 2900000
## 15 115 Oki Solo 21 5600000
## 18 118 Sinta Solo 20 2300000
data_pelanggan %>%
filter(Kota == "Solo") %>%
summarise(rata_rata = mean(Total_Belanja))
## rata_rata
## 1 3350000
Rata-Rata Total Belanja di Setiap Kota
aggregate(Total_Belanja~Kota, data=data_pelanggan, mean)
## Kota Total_Belanja
## 1 Klaten 4575000
## 2 Semarang 5320000
## 3 Solo 3350000
## 4 Yogyakarta 7225000
Rangking Pelanggan berdasarkan Total Belanja
data_pelanggan %>%
arrange(desc(Total_Belanja))
## ID Nama Kota Umur Total_Belanja
## 1 113 Maya Yogyakarta 26 9100000
## 2 108 Hadi Yogyakarta 24 8500000
## 3 116 Putri Semarang 32 7500000
## 4 106 Fajar Solo 31 7200000
## 5 104 Dina Yogyakarta 25 6800000
## 6 119 Tono Klaten 34 6700000
## 7 111 Kiki Semarang 28 6200000
## 8 115 Oki Solo 21 5600000
## 9 102 Budi Semarang 21 5200000
## 10 110 Joko Klaten 35 4700000
## 11 117 Rian Yogyakarta 29 4500000
## 12 105 Eka Semarang 22 4300000
## 13 114 Nanda Klaten 30 3800000
## 14 120 Vina Semarang 22 3400000
## 15 107 Gina Klaten 27 3100000
## 16 112 Lina Solo 23 2900000
## 17 101 Andi Solo 19 2500000
## 18 118 Sinta Solo 20 2300000
## 19 103 Citra Solo 20 1750000
## 20 109 Intan Solo 19 1200000
Diagram Batang Total Belanja di Setiap Kota
data_kota <- data_pelanggan %>%
group_by(Kota) %>%
summarise(Total_Belanja = sum(Total_Belanja))
data_kota
## # A tibble: 4 × 2
## Kota Total_Belanja
## <chr> <dbl>
## 1 Klaten 18300000
## 2 Semarang 26600000
## 3 Solo 23450000
## 4 Yogyakarta 28900000
ggplot(data_kota, aes(x = Kota, y = Total_Belanja)) +
geom_col()
