Email             :
RPubs            : https://www.rpubs.com/muhammad_naufal/
Jurusan          : Statistika Bisnis
Address         : Jalan Gunung Galunggung 5 Blok E9, No.21


1 Kasus 1

Asumsikan Anda telah mengumpulkan beberapa kumpulan data dari perusahaan ABC Property seperti yang dapat kita lihat pada tabel berikut:

Id             <- (1:10000)
Marketing_Name <- rep(c("Angel","Sherly","Vanessa","Irene","Julian",
                        "Jeffry","Nikita","Kefas","Siana","Lala",
                        "Fallen","Ardifo","Kevin","Juen","Jerrel",
                        "Imelda","Widi","Theodora","Elvani","Jonathan",
                        "Sofia","Abraham","Siti","Niko","Sefli",
                        "Bene", "Diana", "Pupe", "Andi", "Tatha",
                        "Endri", "Monika", "Hans", "Debora","Hanifa",
                        "James", "Jihan", "Friska","Ardiwan", "Bakti",
                        "Anthon","Amry", "Wiwik", "Bastian", "Budi",
                        "Leo","Simon","Matius","Arry", "Eliando"), 200)
Work_Exp       <- rep(c(1.3,2.4,2.5,3.6,3.7,4.7,5.7,6.7,7.7,7.3,
                        5.3,5.3,10,9.3,3.3,3.3,3.4,3.4,3.5,5.6,
                        3.5,4.6,4.6,5.7,6.2,4.4,6.4,6.4,3.5,7.5,
                        4.6,3.7,4.7,4.3,5.2,6.3,7.4,2.4,3.4,8.2,
                        6.4,7.2,1.5,7.5,10,4.5,6.5,7.2,7.1,7.6),200)
City           <- sample(c("Jakarta","Bogor","Depok","Tengerang","Bekasi"),10000, replace = T)
Cluster        <- sample(c("Victoria","Palmyra","Winona","Tiara", "Narada",
                           "Peronia","Lavesh","Alindra","Sweethome", "Asera",
                           "Teradamai","Albasia", "Adara","Neon","Arana",
                           "Asoka", "Primadona", "Mutiara","Permata","Alamanda" ), 10000, replace=T)
Price          <- sample(c(7000:15000),10000, replace = T)
Date_Sales     <- sample(seq(as.Date("2018/01/01"), by = "day", length.out = 1000),10000, replace = T)
Advertisement  <- sample(c(1:20), 10000, replace = T)
Data           <- data.frame(Id, 
                             Marketing_Name,
                             Work_Exp,
                             City,
                             Cluster,
                             Price,
                             Date_Sales,
                             Advertisement)
library(DT)
datatable(Data)

1.1 Soal 1

Kategorikan variabel Harga pada dataset di atas menjadi tiga kelompok sebagai berikut:

  • \(\text{High} > 12000\)
  • \(10000 \le \text{Medium} \le 12000\)
  • \(\text{Low} < 10000\)

Tetapkan ke dalam variabel baru yang disebut Kelas dengan menggunakan fungsi kontrol If, else if, dan else.

1.1.1 R

library(DT)
datatable(Data)

kategori = Vectorize(function(Price)
{
  if (Price>12000){                            
    print('High')}                              
  else if (Price>=10000 & Price<=12000){        
    print('Medium')}                            
  else{                                         
    print('Low')}                               
})
Data$Kelas = kategori(Data$Price) 
datatable(Data)

1.2 Soal 2

Kategorikan variabel Harga pada dataset di atas menjadi enam kelompok sebagai berikut:

  • Booking_fee nya 5 % jika \(\text{Price} < 8000\)
  • Booking_fee nya 6 % jika \(8000 \le \text{Price} < 9000\)
  • Booking_fee nya 7 % jika \(9000 \le \text{Price} < 10000\)
  • Booking_fee nya 8 % jika \(10000 \le \text{Price} < 11000\)
  • Booking_fee nya 9 % jika \(11000 \le \text{Price} < 13000\)
  • Booking_fee nya 10 % jika \(13000 \le \text{Price} \le 15000\)

Tetapkan ke dalam variabel baru yang disebut Booking_fee dengan menggunakan fungsi kontrol If, else if, dan else.

1.2.1 R

Data$Booking_fee <- ifelse(Data$Price >= 13000,
                           Data$Price*0.1,
                           ifelse(Data$Price>=11000,
                                  Data$Price*0.09,
                                  ifelse(Data$Price>=10000,
                                         Data$Price*0.08,
                                         ifelse(Data$Price>=9000,
                                                Data$Price*0.07,
                                                ifelse(Data$Price>=8000,
                                                       Data$Price*0.06,
                                                       Data$Price*0.05)))))
library(DT)
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
subset(Data, select = c(6, 10)) %>% datatable()

1.3 Soal 3

Menurut kumpulan data akhir yang telah Anda buat pada soal no 2, saya berasumsi bahwa Anda telah bekerja sebagai pemasaran di perusahaan ABC Property, bagaimana Anda dapat mengumpulkan semua informasi tentang penjualan Anda dengan menggunakan pernyataan for.

1.3.1 R

library(dplyr)
for (i in "Jeffry"){
  My_Sales <- filter(Data, Marketing_Name==i)
}
library(DT)
datatable(My_Sales)

1.4 Soal 4

Jika Anda akan mendapatkan bonus 2% dari Booking fee per unit sebagai pemasaran dan juga mendapatkan bonus tambahan 1% jika Anda telah bekerja di perusahaan ini selama lebih dari 3 tahun. Silakan hitung total bonus dengan menggunakan pernyataan if, for, dan break.

1.4.1 R

    Data$Bonus <-((0.02+ 
                ifelse(Data$Work_Exp>3,
                       0.01,
                       0))
              * Data$Booking_fee)
library(DT)
library(dplyr)
subset(Data, select = c(10, 11)) %>% datatable()

1.5 Soal 5

Pada bagian ini, Anda diharapkan dapa membuat fungsi yang dapat menjawab setiap penyataan dibawah ini dengan melibatkan setiap fungsi kontrol yang dipelajari pada pertemuan 7.

  • Siapa nama marketing pemasaran terbaik?

  • Kota dan Cluster mana yang paling menguntungkan?

  • Hitung total biaya iklan Anda, jika Anda harus membayarnya $4 setiap kali iklan.

  • Hitung rata-rata biaya iklan untuk setiap marketing di Perusahaan tersebut.

  • Hitung Total Pendapatan (dalam Bulanan)

  • Siapa nama marketing pemasaran terbaik?

1.5.1 R

library(dplyr)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.4     v stringr 1.4.0
## v tidyr   1.1.3     v forcats 0.5.1
## v readr   2.0.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
Marketing_Sales <- aggregate(Price ~ Marketing_Name, 
                            data = Data, 
                            sum)
Marketing_Terbaik <- Marketing_Sales[
  order(Marketing_Sales$Price, 
        decreasing = T),] %>% 
  head (1) %>% 
  print()
##    Marketing_Name   Price
## 33           Lala 2279948
  • Kota dan Cluster mana yang paling menguntungkan?
library(dplyr)
City_Cluster <- aggregate(Price ~ City + Cluster, 
                          data = Data, 
                          sum)
City_Cluster_Menguntungkan <- City_Cluster [
  order(City_Cluster$Price, decreasing = T),] %>%
  head(1)%>%
  print()
##       City Cluster   Price
## 89 Jakarta   Tiara 1376788
  • Hitung total biaya iklan Anda, jika Anda harus membayarnya $4 setiap kali iklan.
Data$Advertisement <- as.numeric(Data$Advertisement)
Data$Advertisement_Cost <- Data$Advertisement * 4
Total_Biaya_Iklan <- sum(Data$Advertisement_Cost)
paste("The total cost was", Total_Biaya_Iklan)
## [1] "The total cost was 416252"
  • Hitung rata-rata biaya iklan untuk setiap marketing di Perusahaan tersebut.
Marketing_Rata2_Biayaiklan <- aggregate(Advertisement_Cost ~ Marketing_Name, 
                           data = Data,
                           mean)
library(DT)
datatable(Marketing_Rata2_Biayaiklan)
  • Hitung Total Pendapatan (dalam Bulanan)
library(dplyr)
Data$Revenue <- Data$Booking_fee + Data$Price
Monthly_Revenue <- Data %>% 
  separate(Date_Sales, c("Year", "Month", "Day"), sep = "-") %>%
  select(Year, Month, Revenue)
Total_Monthly_Revenue <- aggregate(Revenue ~ Year+Month,Monthly_Revenue, sum)
Total_Monthly_Revenue <- Total_Monthly_Revenue[order(Total_Monthly_Revenue$Year, decreasing = F),]
library(DT)
datatable(Total_Monthly_Revenue)

2 Kasus 2

Misalkan Anda memiliki proyek riset pasar untuk mempertahankan beberapa pelanggan potensial di perusahaan Anda. Mari kita asumsikan Anda bekerja di perusahaan asuransi ABC. Untuk melakukannya, Anda ingin mengumpulkan kumpulan data berikut:

  • Marital_Status : menetapkan status perkawinan acak (“Ya”, “Tidak”)
  • Address : berikan alamat acak (JABODETABEK)
  • Work_Location : menetapkan lokasi kerja secara acak (JABODETABEK)
  • Age : menetapkan urutan angka acak (dari 19 hingga 60)
  • Academic : menetapkan tingkat akademik acak (“J.School”, “H.School”, “Sarjana”, “Magister”, “Phd”)
  • Job : 10 pekerjaan acak untuk setiap tingkat akademik
  • Grade : 5 nilai acak untuk setiap Pekerjaan
  • Income : tetapkan pendapatan yang mungkin untuk setiap Pekerjaan
  • Spending : tetapkan kemungkinan pengeluaran untuk setiap Pekerjaan
  • Number_of_children: menetapkan nomor acak di antara 0 dan 10 (sesuai dengan status perkawinan)
  • Private_vehicle : menetapkan kemungkinan kendaraan pribadi untuk setiap orang (“Mobil”, “sepeda motor”, “Umum”)
  • Home : “Sewa”, “Milik”, “Kredit”

2.1 Soal 1

Tolong berikan saya kumpulan data tentang informasi 50000 pelanggan yang mengacu pada setiap variabel di atas!

2.1.1 R

Marital_Status <- sample(c("yes","no"),50000, replace = T)
Address <- sample(c("Jakarta","Bogor", "Depok", "Tangerang", "Bekasi"),50000, replace = T)
Work_Location <- sample(c("Jakarta", "Bogor", "Depok", "Tangerang", "Bekasi"),50000, replace = T)
Age <- sample(19:60,50000,replace = T)
Academic <- sample(c("J.School","H.School","Undergraduate","Master","PhD"),50000,T)
Job <- ifelse (Academic=="J.School",
               sample(c("Office Boy/Office Girl", "Pemelihara Anjing", "ART", "Buruh Pabrik", "Ojek                              Online", "Security", "Packing Barang","Pelayan Restoran", "Kasir", "Sopir")),
                      ifelse(Academic=="H.School",
                             sample(c("Asisten Administrasi", "Marketing","Drafter", "Guru Les",                                              "Operator Labotarium", "Polisi","Data Entry", "Teknisi Listrik",
                                      "Customer Service", "ABK")), 
                             ifelse(Academic=="Undergraduate",
                                    sample(c("Guru", "Pilot","Akuntan", "Nakhoda",
                                             "Software Developer", "Masinis",
                                             "Arsitektur", "PNS",
                                             "Data Analyst", "Dokter")), 
                                    ifelse(Academic=="Master", 
                                           sample(c("Aktuaris", "Dosen",
                                                    "Data Scientist", "Dokter Spesialis",
                                                    "Computer Science & Engineering", "Enterpreneur",
                                                    "Notaris", "Biomedical Engineering",
                                                    "Psikolog", "Technology Management")),
                                           sample(c("CEO", "Hakim", "Researcher", "Manager",
                                                    "Senior Marketing Profesional", "Anggota Dewan",
                                                    "Menteri", "Neuroscientist",
                                                    "Rektor", "Direktur"))
                                           ))))
Grade <- sample(1:5 ,50000,replace = T)
Salary_function <- function(x){
  J.School <- sample(c(500000:2000000))
  H.School <- sample(c(2000000:4000000))
  Undergraduate <- sample(c(4000000:10000000))
  Master <- sample(c(10000000:20000000))
  PhD <- sample(c(20000000:50000000))
  Basic_Salary<-ifelse(x=="J.School",
                       J.School,
                       ifelse(x=="H.School",
                              H.School,
                              ifelse(x=="Undergraduate",
                                     Undergraduate,
                                     ifelse(x=="Master",
                                            Master,
                                            PhD))))
  
}
Income <- Salary_function(Academic)

Spending <- 0.8*Income
Number_of_Children <- ifelse(Marital_Status=="yes",
                             sample(c(0:10)),
                             0)
Private_Vehicle <- sample(c('Car','Motorcycle','Public'),50000,replace = T)
Home <- sample(c("Sewa", "Milik", "Kredit"),50000, replace = T)
Asuransi_ABC <- data.frame(Marital_Status,
                       Address,
                       Work_Location,
                       Age,
                       Academic,
                       Job,
                       Grade,
                       Income,
                       Spending,
                       Number_of_Children,
                       Private_Vehicle,
                       Home)
library(DT)
datatable(Asuransi_ABC)
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html

2.2 Soal 2

Ringkasan Statistik penting seperti apa yang bisa Anda dapatkan dari kumpulan data Anda?

2.2.1 R

summary(Asuransi_ABC)
##  Marital_Status       Address          Work_Location           Age       
##  Length:50000       Length:50000       Length:50000       Min.   :19.00  
##  Class :character   Class :character   Class :character   1st Qu.:29.00  
##  Mode  :character   Mode  :character   Mode  :character   Median :39.00  
##                                                           Mean   :39.47  
##                                                           3rd Qu.:50.00  
##                                                           Max.   :60.00  
##    Academic             Job                Grade           Income        
##  Length:50000       Length:50000       Min.   :1.000   Min.   :  500125  
##  Class :character   Class :character   1st Qu.:2.000   1st Qu.: 2485191  
##  Mode  :character   Mode  :character   Median :3.000   Median : 7074238  
##                                        Mean   :2.987   Mean   :12321773  
##                                        3rd Qu.:4.000   3rd Qu.:17649332  
##                                        Max.   :5.000   Max.   :49996755  
##     Spending        Number_of_Children Private_Vehicle        Home          
##  Min.   :  400100   Min.   : 0.000     Length:50000       Length:50000      
##  1st Qu.: 1988153   1st Qu.: 0.000     Class :character   Class :character  
##  Median : 5659390   Median : 0.000     Mode  :character   Mode  :character  
##  Mean   : 9857419   Mean   : 2.506                                          
##  3rd Qu.:14119465   3rd Qu.: 5.000                                          
##  Max.   :39997404   Max.   :10.000
#yang penting adalah pengeluaran, pemasukan, Home. 
#Spending karena mempengaruhi pemasukan perusahaan ( Jika terlalu boros)
#Income karena harus menyetarakan pemasukan pelanggan dengan biaya asuransinya
#Home karena kalau rumahnya milik tidak ada tanggungan lain , 
#Jika sewa atau kredit akan mempengaruhi pembayaran asuransi

2.3 Soal 3

Menurut perhitungan dan analisis Anda, pelanggan mana yang potensial untuk Anda pertahankan?

2.3.1 R

kategori <- Vectorize(function(Income)
{
  if (Income > 4000000){
    print('Yes')}
  else {
    print('No')}
})
Asuransi_ABC$dipertahankan <- kategori(Asuransi_ABC$Income)
subset(Asuransi_ABC, select = c(8, 13)) %>% datatable()
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html