Algoritma dan Struktur Data

~ Ujian Tengah Semester ~

Kontak : \(\downarrow\)
Email
Instagram https://www.instagram.com/boring.garr/
RPubs https://rpubs.com/Garr/

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)

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.

Data$Kelas <- ifelse(Data$Price>12000, 
                     "High",
                     ifelse(Data$Price<10000,
                            "Low",
                            "Medium"))
library(DT)
datatable(Data)

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.

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)
subset(Data, select = c(6, 10)) %>% datatable()
Data$Booking_fee<- Data$Booking_fee
print(head(Data, 10))
##    Id Marketing_Name Work_Exp      City   Cluster Price Date_Sales
## 1   1          Angel      1.3 Tengerang     Adara 11431 2019-05-26
## 2   2         Sherly      2.4    Bekasi   Permata  8787 2019-04-01
## 3   3        Vanessa      2.5     Bogor Sweethome 14022 2020-08-11
## 4   4          Irene      3.6    Bekasi   Palmyra  7082 2020-08-17
## 5   5         Julian      3.7   Jakarta   Peronia  7963 2020-06-30
## 6   6         Jeffry      4.7     Bogor  Alamanda 13624 2018-01-26
## 7   7         Nikita      5.7     Bogor   Mutiara  7705 2018-01-31
## 8   8          Kefas      6.7    Bekasi  Alamanda 13597 2019-11-10
## 9   9          Siana      7.7    Bekasi  Alamanda 10908 2019-11-18
## 10 10           Lala      7.3    Bekasi   Mutiara  7953 2019-02-01
##    Advertisement  Kelas Booking_fee
## 1              2 Medium     1028.79
## 2             13    Low      527.22
## 3             18   High     1402.20
## 4              3    Low      354.10
## 5              7    Low      398.15
## 6              6   High     1362.40
## 7              5    Low      385.25
## 8              8   High     1359.70
## 9             16 Medium      872.64
## 10            11    Low      397.65

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

library(dplyr)
sales = "Simon"

for(x in sales){
  print(subset(Data, subset=(Marketing_Name == x)))
}
##        Id Marketing_Name Work_Exp      City   Cluster Price Date_Sales
## 47     47          Simon      6.5     Bogor   Alindra 14861 2018-07-31
## 97     97          Simon      6.5 Tengerang Primadona 13049 2020-09-20
## 147   147          Simon      6.5   Jakarta Sweethome 14807 2020-03-03
## 197   197          Simon      6.5    Bekasi   Mutiara  9518 2019-09-19
## 247   247          Simon      6.5   Jakarta    Lavesh 12027 2020-06-15
## 297   297          Simon      6.5   Jakarta  Victoria 12730 2020-02-13
## 347   347          Simon      6.5   Jakarta   Mutiara  9500 2018-06-25
## 397   397          Simon      6.5     Bogor     Asera  9006 2018-04-07
## 447   447          Simon      6.5     Depok     Asoka 10135 2020-03-19
## 497   497          Simon      6.5   Jakarta     Tiara 13967 2018-11-22
## 547   547          Simon      6.5     Depok     Asoka  8176 2020-07-23
## 597   597          Simon      6.5    Bekasi  Victoria  9814 2018-06-15
## 647   647          Simon      6.5    Bekasi Teradamai 12357 2020-08-10
## 697   697          Simon      6.5   Jakarta Teradamai 12509 2018-02-23
## 747   747          Simon      6.5     Bogor   Palmyra 13147 2020-08-15
## 797   797          Simon      6.5    Bekasi Primadona 11742 2019-09-14
## 847   847          Simon      6.5 Tengerang    Winona 14633 2020-08-21
## 897   897          Simon      6.5    Bekasi     Arana  9594 2019-12-24
## 947   947          Simon      6.5     Bogor     Asoka  9064 2019-04-01
## 997   997          Simon      6.5     Depok   Albasia 14607 2018-03-26
## 1047 1047          Simon      6.5    Bekasi     Asoka 13905 2019-05-28
## 1097 1097          Simon      6.5    Bekasi   Albasia 14168 2020-03-25
## 1147 1147          Simon      6.5     Bogor     Asoka  7499 2019-06-07
## 1197 1197          Simon      6.5     Depok      Neon 13353 2018-06-23
## 1247 1247          Simon      6.5 Tengerang Primadona  7056 2018-08-18
## 1297 1297          Simon      6.5   Jakarta Teradamai 12798 2018-11-07
## 1347 1347          Simon      6.5   Jakarta   Peronia  8826 2020-07-24
## 1397 1397          Simon      6.5 Tengerang    Lavesh  8052 2018-10-31
## 1447 1447          Simon      6.5    Bekasi      Neon  8920 2018-09-23
## 1497 1497          Simon      6.5     Bogor     Asera  8028 2020-03-05
## 1547 1547          Simon      6.5   Jakarta     Asera  8640 2018-05-21
## 1597 1597          Simon      6.5     Bogor     Asoka 10632 2019-09-09
## 1647 1647          Simon      6.5 Tengerang Sweethome 13817 2020-01-09
## 1697 1697          Simon      6.5   Jakarta      Neon 11845 2018-08-30
## 1747 1747          Simon      6.5    Bekasi   Permata 11105 2019-01-01
## 1797 1797          Simon      6.5    Bekasi    Lavesh 14994 2020-05-14
## 1847 1847          Simon      6.5     Bogor     Asera 10674 2019-09-23
## 1897 1897          Simon      6.5     Depok      Neon 13169 2019-04-19
## 1947 1947          Simon      6.5 Tengerang    Narada 12964 2020-09-24
## 1997 1997          Simon      6.5 Tengerang      Neon  8112 2020-04-23
## 2047 2047          Simon      6.5   Jakarta   Alindra  7409 2018-10-14
## 2097 2097          Simon      6.5 Tengerang     Adara  9016 2018-11-02
## 2147 2147          Simon      6.5     Bogor     Tiara 14725 2018-05-10
## 2197 2197          Simon      6.5 Tengerang    Winona 13679 2018-12-22
## 2247 2247          Simon      6.5 Tengerang      Neon  8186 2019-09-26
## 2297 2297          Simon      6.5    Bekasi    Narada  9736 2019-06-04
## 2347 2347          Simon      6.5    Bekasi   Mutiara 13698 2018-02-22
## 2397 2397          Simon      6.5     Depok  Victoria  9342 2020-08-25
## 2447 2447          Simon      6.5     Bogor    Lavesh 10274 2020-02-11
## 2497 2497          Simon      6.5     Depok    Narada  8750 2019-10-22
## 2547 2547          Simon      6.5    Bekasi  Alamanda  7640 2020-08-16
## 2597 2597          Simon      6.5   Jakarta     Asoka  8185 2018-08-23
## 2647 2647          Simon      6.5 Tengerang     Asera  9930 2019-04-21
## 2697 2697          Simon      6.5    Bekasi  Alamanda  9102 2018-02-18
## 2747 2747          Simon      6.5     Bogor    Narada 11250 2018-07-20
## 2797 2797          Simon      6.5   Jakarta     Arana 11769 2020-04-10
## 2847 2847          Simon      6.5     Depok      Neon 12743 2020-09-19
## 2897 2897          Simon      6.5   Jakarta   Albasia 14380 2018-12-31
## 2947 2947          Simon      6.5    Bekasi  Victoria  7887 2020-04-13
## 2997 2997          Simon      6.5 Tengerang     Tiara 13967 2020-05-24
## 3047 3047          Simon      6.5     Bogor      Neon 12790 2020-08-20
## 3097 3097          Simon      6.5    Bekasi   Mutiara 10239 2020-07-29
## 3147 3147          Simon      6.5 Tengerang   Peronia 14013 2018-08-02
## 3197 3197          Simon      6.5     Bogor    Narada 11576 2019-10-10
## 3247 3247          Simon      6.5   Jakarta  Victoria  9374 2020-01-13
## 3297 3297          Simon      6.5     Depok    Winona  7590 2019-06-14
## 3347 3347          Simon      6.5   Jakarta Primadona 10276 2020-08-12
## 3397 3397          Simon      6.5     Depok     Asera  8419 2020-03-19
## 3447 3447          Simon      6.5     Depok Primadona 13855 2018-01-26
## 3497 3497          Simon      6.5     Depok   Peronia  8801 2018-06-16
## 3547 3547          Simon      6.5     Depok   Palmyra 14581 2020-08-28
## 3597 3597          Simon      6.5 Tengerang   Permata 12821 2018-04-11
## 3647 3647          Simon      6.5   Jakarta     Asoka 12983 2020-08-10
## 3697 3697          Simon      6.5     Bogor     Arana 11093 2019-08-16
## 3747 3747          Simon      6.5     Bogor  Alamanda 13529 2019-04-10
## 3797 3797          Simon      6.5    Bekasi     Adara  8077 2019-08-01
## 3847 3847          Simon      6.5 Tengerang  Victoria 10406 2020-07-26
## 3897 3897          Simon      6.5 Tengerang   Albasia  7071 2019-08-26
## 3947 3947          Simon      6.5   Jakarta  Victoria  7567 2020-08-12
## 3997 3997          Simon      6.5 Tengerang     Arana  8635 2018-01-24
## 4047 4047          Simon      6.5   Jakarta     Asoka 10083 2020-03-23
## 4097 4097          Simon      6.5     Bogor    Lavesh  7838 2019-02-01
## 4147 4147          Simon      6.5     Bogor    Lavesh  7572 2020-08-21
## 4197 4197          Simon      6.5   Jakarta   Permata 11074 2019-04-09
## 4247 4247          Simon      6.5 Tengerang   Alindra 11620 2018-04-18
## 4297 4297          Simon      6.5    Bekasi      Neon 10182 2018-05-08
## 4347 4347          Simon      6.5   Jakarta     Arana  8885 2018-08-01
## 4397 4397          Simon      6.5   Jakarta    Lavesh  8030 2020-05-25
## 4447 4447          Simon      6.5     Depok  Alamanda  8746 2020-07-22
## 4497 4497          Simon      6.5     Depok   Mutiara 12125 2020-09-23
## 4547 4547          Simon      6.5     Bogor Teradamai 11144 2019-11-19
## 4597 4597          Simon      6.5   Jakarta Primadona 10258 2018-08-08
## 4647 4647          Simon      6.5   Jakarta Sweethome 11764 2018-07-13
## 4697 4697          Simon      6.5 Tengerang   Palmyra 10690 2018-03-28
## 4747 4747          Simon      6.5    Bekasi Sweethome 11215 2018-01-08
## 4797 4797          Simon      6.5 Tengerang     Arana 14259 2020-07-17
## 4847 4847          Simon      6.5     Depok   Albasia 14157 2020-06-03
## 4897 4897          Simon      6.5     Depok   Palmyra  9417 2020-03-08
## 4947 4947          Simon      6.5     Bogor  Alamanda  9927 2018-04-29
## 4997 4997          Simon      6.5     Depok     Adara 11565 2019-05-02
## 5047 5047          Simon      6.5     Depok Primadona  8389 2018-07-21
## 5097 5097          Simon      6.5    Bekasi    Winona 12179 2018-03-04
## 5147 5147          Simon      6.5 Tengerang  Victoria 13770 2020-06-18
## 5197 5197          Simon      6.5 Tengerang    Lavesh 13102 2019-12-09
## 5247 5247          Simon      6.5 Tengerang    Winona 14478 2019-12-29
## 5297 5297          Simon      6.5     Bogor    Lavesh 10024 2019-01-09
## 5347 5347          Simon      6.5 Tengerang  Alamanda  8809 2019-02-16
## 5397 5397          Simon      6.5   Jakarta     Asera  7073 2019-08-16
## 5447 5447          Simon      6.5    Bekasi  Victoria 10603 2018-05-26
## 5497 5497          Simon      6.5   Jakarta   Mutiara 10161 2018-10-31
## 5547 5547          Simon      6.5     Bogor Sweethome  8955 2018-08-24
## 5597 5597          Simon      6.5     Depok   Alindra  9352 2019-11-30
## 5647 5647          Simon      6.5   Jakarta    Winona 12227 2019-01-05
## 5697 5697          Simon      6.5 Tengerang   Mutiara 11391 2020-01-17
## 5747 5747          Simon      6.5     Bogor      Neon  8503 2018-05-04
## 5797 5797          Simon      6.5     Bogor     Tiara 12961 2018-10-07
## 5847 5847          Simon      6.5     Bogor     Tiara 13085 2018-09-16
## 5897 5897          Simon      6.5    Bekasi   Alindra 12049 2018-05-10
## 5947 5947          Simon      6.5    Bekasi Teradamai 10287 2019-07-29
## 5997 5997          Simon      6.5     Bogor   Peronia 12453 2018-12-18
## 6047 6047          Simon      6.5   Jakarta   Mutiara  7001 2019-09-15
## 6097 6097          Simon      6.5    Bekasi     Arana 12265 2019-08-25
## 6147 6147          Simon      6.5    Bekasi    Lavesh  9583 2019-01-10
## 6197 6197          Simon      6.5 Tengerang Sweethome  9761 2019-09-06
## 6247 6247          Simon      6.5    Bekasi   Albasia 13442 2019-11-04
## 6297 6297          Simon      6.5 Tengerang    Winona 10495 2020-07-05
## 6347 6347          Simon      6.5 Tengerang    Narada 13439 2020-06-23
## 6397 6397          Simon      6.5     Depok Sweethome  8832 2019-05-04
## 6447 6447          Simon      6.5     Depok      Neon 14805 2018-12-04
## 6497 6497          Simon      6.5     Bogor   Peronia  7879 2018-07-22
## 6547 6547          Simon      6.5     Bogor     Tiara 12997 2020-05-13
## 6597 6597          Simon      6.5     Bogor Teradamai 10290 2018-05-04
## 6647 6647          Simon      6.5   Jakarta   Alindra 12487 2018-12-07
## 6697 6697          Simon      6.5 Tengerang Sweethome 10736 2020-03-25
## 6747 6747          Simon      6.5   Jakarta    Winona 10785 2018-06-10
## 6797 6797          Simon      6.5 Tengerang   Palmyra 10010 2019-05-11
## 6847 6847          Simon      6.5     Depok   Alindra  9768 2018-01-16
## 6897 6897          Simon      6.5   Jakarta   Palmyra  9992 2020-04-11
## 6947 6947          Simon      6.5    Bekasi    Lavesh 12755 2018-01-01
## 6997 6997          Simon      6.5     Depok  Victoria 13428 2019-11-03
## 7047 7047          Simon      6.5   Jakarta   Permata 14488 2018-04-22
## 7097 7097          Simon      6.5     Bogor     Arana 10553 2019-06-09
## 7147 7147          Simon      6.5     Depok     Asera  9583 2020-05-18
## 7197 7197          Simon      6.5    Bekasi   Alindra 14276 2020-02-10
## 7247 7247          Simon      6.5     Bogor     Arana  9939 2019-07-17
## 7297 7297          Simon      6.5 Tengerang   Alindra 10658 2018-01-15
## 7347 7347          Simon      6.5 Tengerang  Victoria 14703 2019-02-18
## 7397 7397          Simon      6.5     Depok    Lavesh 12719 2019-10-20
## 7447 7447          Simon      6.5 Tengerang     Asoka 12761 2019-05-02
## 7497 7497          Simon      6.5    Bekasi   Peronia 13284 2018-03-09
## 7547 7547          Simon      6.5    Bekasi     Arana 13448 2018-01-25
## 7597 7597          Simon      6.5     Depok   Mutiara 12929 2019-09-09
## 7647 7647          Simon      6.5     Depok Sweethome 13747 2018-09-02
## 7697 7697          Simon      6.5     Bogor Primadona 10096 2020-01-09
## 7747 7747          Simon      6.5    Bekasi      Neon 10597 2019-11-29
## 7797 7797          Simon      6.5    Bekasi Sweethome 10704 2019-07-05
## 7847 7847          Simon      6.5    Bekasi   Albasia  8400 2018-03-04
## 7897 7897          Simon      6.5     Depok   Palmyra 14054 2019-01-10
## 7947 7947          Simon      6.5 Tengerang    Winona  9987 2018-11-21
## 7997 7997          Simon      6.5 Tengerang     Tiara 10105 2019-09-17
## 8047 8047          Simon      6.5 Tengerang     Arana 11659 2019-02-13
## 8097 8097          Simon      6.5   Jakarta   Mutiara 10622 2018-12-27
## 8147 8147          Simon      6.5     Bogor   Permata  8558 2020-07-13
## 8197 8197          Simon      6.5 Tengerang   Peronia  7440 2019-02-26
## 8247 8247          Simon      6.5     Depok   Permata 11708 2019-07-08
## 8297 8297          Simon      6.5     Bogor  Victoria 10094 2019-06-11
## 8347 8347          Simon      6.5     Depok   Palmyra 12297 2018-08-21
## 8397 8397          Simon      6.5     Depok    Narada 10018 2018-05-17
## 8447 8447          Simon      6.5     Bogor  Victoria  8162 2018-08-07
## 8497 8497          Simon      6.5     Bogor     Asera  7639 2020-02-16
## 8547 8547          Simon      6.5     Bogor     Asera  7210 2018-05-03
## 8597 8597          Simon      6.5    Bekasi   Mutiara  9125 2018-07-25
## 8647 8647          Simon      6.5   Jakarta     Tiara 11529 2018-08-08
## 8697 8697          Simon      6.5     Depok  Alamanda  8319 2019-12-22
## 8747 8747          Simon      6.5 Tengerang     Asoka 10546 2019-01-26
## 8797 8797          Simon      6.5   Jakarta    Lavesh 14954 2018-07-18
## 8847 8847          Simon      6.5     Bogor   Mutiara 10870 2018-01-14
## 8897 8897          Simon      6.5     Depok     Arana  9170 2020-06-02
## 8947 8947          Simon      6.5 Tengerang     Asoka 11571 2018-01-07
## 8997 8997          Simon      6.5     Bogor     Asoka  9024 2020-07-07
## 9047 9047          Simon      6.5 Tengerang     Arana 13365 2018-07-21
## 9097 9097          Simon      6.5     Bogor     Adara  9487 2018-10-20
## 9147 9147          Simon      6.5     Bogor    Narada 14236 2018-05-01
## 9197 9197          Simon      6.5     Depok   Mutiara 13712 2019-05-17
## 9247 9247          Simon      6.5 Tengerang   Albasia  7063 2020-06-26
## 9297 9297          Simon      6.5     Bogor  Victoria  8176 2018-04-06
## 9347 9347          Simon      6.5   Jakarta    Winona 12456 2020-09-01
## 9397 9397          Simon      6.5     Bogor  Victoria  7563 2020-03-21
## 9447 9447          Simon      6.5   Jakarta      Neon  9261 2020-03-06
## 9497 9497          Simon      6.5   Jakarta  Victoria 11173 2019-06-18
## 9547 9547          Simon      6.5     Bogor     Adara 12465 2018-01-20
## 9597 9597          Simon      6.5     Depok      Neon 14545 2019-03-20
## 9647 9647          Simon      6.5 Tengerang     Arana 12098 2019-07-30
## 9697 9697          Simon      6.5     Bogor   Palmyra  9773 2018-06-13
## 9747 9747          Simon      6.5   Jakarta      Neon 10728 2019-06-16
## 9797 9797          Simon      6.5 Tengerang  Alamanda 13738 2019-10-10
## 9847 9847          Simon      6.5     Depok   Palmyra  8684 2018-11-16
## 9897 9897          Simon      6.5   Jakarta   Palmyra 13788 2019-02-06
## 9947 9947          Simon      6.5    Bekasi  Alamanda  7331 2018-06-20
## 9997 9997          Simon      6.5   Jakarta   Palmyra  7547 2018-06-23
##      Advertisement  Kelas Booking_fee
## 47              15   High     1486.10
## 97               8   High     1304.90
## 147              2   High     1480.70
## 197             17    Low      666.26
## 247              6   High     1082.43
## 297              2   High     1145.70
## 347             16    Low      665.00
## 397              5    Low      630.42
## 447             12 Medium      810.80
## 497             20   High     1396.70
## 547             14    Low      490.56
## 597             17    Low      686.98
## 647              1   High     1112.13
## 697             20   High     1125.81
## 747              8   High     1314.70
## 797              2 Medium     1056.78
## 847             20   High     1463.30
## 897             15    Low      671.58
## 947              3    Low      634.48
## 997              3   High     1460.70
## 1047             6   High     1390.50
## 1097             9   High     1416.80
## 1147             8    Low      374.95
## 1197             1   High     1335.30
## 1247            17    Low      352.80
## 1297            14   High     1151.82
## 1347            11    Low      529.56
## 1397            14    Low      483.12
## 1447            14    Low      535.20
## 1497            16    Low      481.68
## 1547             1    Low      518.40
## 1597            10 Medium      850.56
## 1647            14   High     1381.70
## 1697            13 Medium     1066.05
## 1747             5 Medium      999.45
## 1797             6   High     1499.40
## 1847             2 Medium      853.92
## 1897            10   High     1316.90
## 1947            12   High     1166.76
## 1997            20    Low      486.72
## 2047            12    Low      370.45
## 2097             5    Low      631.12
## 2147            14   High     1472.50
## 2197            14   High     1367.90
## 2247             9    Low      491.16
## 2297             9    Low      681.52
## 2347            10   High     1369.80
## 2397            10    Low      653.94
## 2447             6 Medium      821.92
## 2497            20    Low      525.00
## 2547            13    Low      382.00
## 2597             3    Low      491.10
## 2647             7    Low      695.10
## 2697             5    Low      637.14
## 2747             6 Medium     1012.50
## 2797            16 Medium     1059.21
## 2847            11   High     1146.87
## 2897            18   High     1438.00
## 2947             4    Low      394.35
## 2997            13   High     1396.70
## 3047             9   High     1151.10
## 3097            20 Medium      819.12
## 3147            10   High     1401.30
## 3197             9 Medium     1041.84
## 3247             3    Low      656.18
## 3297            12    Low      379.50
## 3347             1 Medium      822.08
## 3397            12    Low      505.14
## 3447            15   High     1385.50
## 3497            11    Low      528.06
## 3547            16   High     1458.10
## 3597             9   High     1153.89
## 3647             9   High     1168.47
## 3697            11 Medium      998.37
## 3747            14   High     1352.90
## 3797             2    Low      484.62
## 3847             1 Medium      832.48
## 3897             7    Low      353.55
## 3947             3    Low      378.35
## 3997            11    Low      518.10
## 4047             5 Medium      806.64
## 4097            19    Low      391.90
## 4147            10    Low      378.60
## 4197            12 Medium      996.66
## 4247            19 Medium     1045.80
## 4297            16 Medium      814.56
## 4347            15    Low      533.10
## 4397            10    Low      481.80
## 4447             8    Low      524.76
## 4497             5   High     1091.25
## 4547             7 Medium     1002.96
## 4597            15 Medium      820.64
## 4647             3 Medium     1058.76
## 4697            12 Medium      855.20
## 4747             8 Medium     1009.35
## 4797             2   High     1425.90
## 4847             2   High     1415.70
## 4897            10    Low      659.19
## 4947            18    Low      694.89
## 4997            11 Medium     1040.85
## 5047            16    Low      503.34
## 5097             2   High     1096.11
## 5147             2   High     1377.00
## 5197             5   High     1310.20
## 5247             3   High     1447.80
## 5297             7 Medium      801.92
## 5347            13    Low      528.54
## 5397            11    Low      353.65
## 5447             6 Medium      848.24
## 5497            18 Medium      812.88
## 5547             3    Low      537.30
## 5597            20    Low      654.64
## 5647             8   High     1100.43
## 5697             4 Medium     1025.19
## 5747             7    Low      510.18
## 5797            16   High     1166.49
## 5847             6   High     1308.50
## 5897             4   High     1084.41
## 5947            20 Medium      822.96
## 5997             4   High     1120.77
## 6047            15    Low      350.05
## 6097             4   High     1103.85
## 6147             8    Low      670.81
## 6197            18    Low      683.27
## 6247            12   High     1344.20
## 6297            18 Medium      839.60
## 6347             5   High     1343.90
## 6397            14    Low      529.92
## 6447             5   High     1480.50
## 6497             5    Low      393.95
## 6547            11   High     1169.73
## 6597            13 Medium      823.20
## 6647             5   High     1123.83
## 6697            18 Medium      858.88
## 6747            18 Medium      862.80
## 6797             8 Medium      800.80
## 6847            10    Low      683.76
## 6897            15    Low      699.44
## 6947             2   High     1147.95
## 6997             1   High     1342.80
## 7047            20   High     1448.80
## 7097            13 Medium      844.24
## 7147            18    Low      670.81
## 7197             7   High     1427.60
## 7247            17    Low      695.73
## 7297             9 Medium      852.64
## 7347            20   High     1470.30
## 7397             5   High     1144.71
## 7447             8   High     1148.49
## 7497             7   High     1328.40
## 7547             4   High     1344.80
## 7597            11   High     1163.61
## 7647            20   High     1374.70
## 7697            20 Medium      807.68
## 7747            14 Medium      847.76
## 7797            13 Medium      856.32
## 7847            20    Low      504.00
## 7897            10   High     1405.40
## 7947            17    Low      699.09
## 7997            18 Medium      808.40
## 8047            18 Medium     1049.31
## 8097             3 Medium      849.76
## 8147            20    Low      513.48
## 8197            16    Low      372.00
## 8247             1 Medium     1053.72
## 8297             7 Medium      807.52
## 8347            18   High     1106.73
## 8397            18 Medium      801.44
## 8447            18    Low      489.72
## 8497            13    Low      381.95
## 8547            14    Low      360.50
## 8597             5    Low      638.75
## 8647             6 Medium     1037.61
## 8697             3    Low      499.14
## 8747            10 Medium      843.68
## 8797             8   High     1495.40
## 8847             9 Medium      869.60
## 8897            15    Low      641.90
## 8947            18 Medium     1041.39
## 8997            13    Low      631.68
## 9047            14   High     1336.50
## 9097            16    Low      664.09
## 9147             6   High     1423.60
## 9197            20   High     1371.20
## 9247            11    Low      353.15
## 9297            17    Low      490.56
## 9347            11   High     1121.04
## 9397            12    Low      378.15
## 9447             2    Low      648.27
## 9497            19 Medium     1005.57
## 9547             9   High     1121.85
## 9597            20   High     1454.50
## 9647             4   High     1088.82
## 9697            16    Low      684.11
## 9747             5 Medium      858.24
## 9797            10   High     1373.80
## 9847             1    Low      521.04
## 9897            19   High     1378.80
## 9947            15    Low      366.55
## 9997             2    Low      377.35

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.

sales = "Simon"

r <- subset(Data, subset=(Marketing_Name == sales))

p = ifelse(( r$Work_Exp <3),
           (r$price * r$Booking_fee) *(2/100),
           (r$price * r$Booking_fee) *(3/100))

r$Bonus =p
r

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?

library(dplyr)
library(tidyverse)
library(dplyr)
list_by_Price       <-aggregate(Price~ Marketing_Name , data = Data, sum)
result_price        <-list_by_Price[order(list_by_Price$Price,decreasing=T),]
list_by_adv         <-aggregate(Advertisement~ Marketing_Name , data = Data, sum)
Datasales <- data.frame(left_join(result_price, list_by_adv))%>%head(1)
Datasales

Dari data diatas, Simon merupakan marketing pemasaran yang terbaik, dengan 2171 iklan.

Kota dan Cluster mana yang paling menguntungkan?

library(dplyr)
Profitable_City_Cluster <- aggregate ( Price ~ Cluster + City, data= Data, sum)
Data_City_Cluster <-Profitable_City_Cluster[order(Profitable_City_Cluster$Price,decreasing=T),]%>%head(1)
Data_City_Cluster

Dari data diatas, cluster yang paling menguntungkan adalah cluster Tiara, Jakarta.

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_Cost <- sum(Data$Advertisement_Cost)
paste("Total biaya iklan yang harus dibayarkan adalah $", Total_Cost)
## [1] "Total biaya iklan yang harus dibayarkan adalah $ 418724"

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

Data$Advertisement.cost <- Data$Advertisement*4
aggregate(Advertisement.cost ~ Marketing_Name, data= Data, mean)

Hitung Total Pendapatan (dalam Bulanan)

library(dplyr)
library(tidyverse)
Data$Revenue      <- Data$Price - Data$Booking_fee
Monthly_Rev       <- Data%>%separate(Date_Sales, c("Year", "Month", "Day"), sep = "-")%>%
                      select(Year, Month, Revenue)
Monthly.Rev        <-aggregate(Revenue ~ Month + Year, data = Monthly_Rev, sum)
Monthly.Rev

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:

  • Status_menikah : menetapkan status perkawinan acak (“Ya”, “Tidak”)
  • Alamat : berikan alamat acak (JABODETABEK)
  • Lokasi_kerja : menetapkan lokasi kerja secara acak (JABODETABEK)
  • Umur : menetapkan urutan angka acak (dari 19 hingga 60)
  • Gelar_akademik : menetapkan tingkat akademik acak (“Smp”, “Sma/Smk”, “Sarjana”, “Magister”, “Phd”)
  • Pekerjaan : 10 pekerjaan acak untuk setiap tingkat akademik
  • Pengalaman : 5 nilai acak untuk setiap Pekerjaan
  • Pendapatan : tetapkan pendapatan yang mungkin untuk setiap Pekerjaan
  • Pengeluaran : tetapkan kemungkinan pengeluaran untuk setiap Pekerjaan
  • Jumlah_anak: menetapkan nomor acak di antara 0 dan 10 (sesuai dengan status perkawinan)
  • kendaraan_Pribadi : menetapkan kemungkinan kendaraan pribadi untuk setiap orang (“Mobil”, “sepeda motor”, “Umum”)
  • Status_rumah : “Sewa”, “Milik”, “Kredit”

Soal 1

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

Status_menikah  <-sample(c("Yes", "No"),50000, replace = T)

Alamat    <-sample(c("Jakarta","Bogor","Depok","Tengerang","Bekasi"),50000, replace = T)

Lokasi_kerja  <-sample(c("Jakarta","Bogor","Depok","Tengerang","Bekasi"),50000, replace = T)

Umur             <-floor (runif(50000,19,65))

Gelar_akademik        <-sample(c("Smp","Sma/Smk", "Sarjana", "Magister", "Phd"),50000, replace = T)

Pekerjaan             <-ifelse(Gelar_akademik=="Smp", 
                         sample(c("Kasir", "Kurir",
                                  "Supir", "Office Boy",
                                  "pengusaha bisnis kecil", "Barista",
                                  "Tukang bangunan", "Pembantu rumah tangga",
                                  "Security", "Buruh"),   
                                    length(Gelar_akademik=="Smp"), replace=T),
                   ifelse(Gelar_akademik=="Sma/Smk", 
                          sample(c("Pembantu Juru Masak", "Pelayan Tamu",
                                   "Wartawan", "Tutor",
                                   "Penulis", "Pengusaha Bisnis Menengah",
                                   "Pengajar Les", "Administrator",
                                   "supir kendaraan berat", "asisten administrator"), 
                                    length(Gelar_akademik=="H.School"), replace=T),
                    ifelse(Gelar_akademik=="Sarjana", 
                           sample(c("Perawat", "Pengusaha Strategis",
                                    "Pelayan Kustomer", "Pemandu Tour",
                                    "Pegawai negeri sipil", "Akuntan",
                                    "Chef", "Sales",
                                    "Sekretaris", "Guru Umum"), 
                                    length(Gelar_akademik=="Sarjana"), 
                                      replace=T), 
                    ifelse(Gelar_akademik=="Magister", 
                           sample(c("pengembang Website", "Pengembang Software",
                                    "Dokter Umum","Bisnis analis", 
                                    "Grafik Designer", "Kontraktor", 
                                    "Guru Spesialis", "Data Analis",
                                    "Aktuaris", "Apoteker"), 
                                    length(Gelar_akademik=="Magister"), replace=T),
                    sample(c("HRD", "Insinyur",
                             "Profesor", "Arsitek",
                             "Pengusaha", "Dokter Spesialis",
                             "Matematikawan", "Dosen",
                             "Psikologi"), 
                              length(Gelar_akademik=="Phd"), replace=T)))))

Pengalaman           <-sample(c("Ahli", "Menguasai", "Menengah", "Berpengalaman", "Tidak Berpengalaman"), 50000, replace=T)

Pendapatan = ifelse(Gelar_akademik == "Smp",250:400,
             ifelse(Gelar_akademik == "Sma/Smk",320:600,
             ifelse(Gelar_akademik == "Sarjana",550:1500,
             ifelse(Gelar_akademik == "Magister",900:3580,1785:6550))))

Pengeluaran = ifelse(Gelar_akademik == "Smp",100:200,
             ifelse(Gelar_akademik == "Sma/Smk",150:300,
             ifelse(Gelar_akademik == "Sarjana",300:500,
             ifelse(Gelar_akademik == "Magister",590:880,920:1635))))

Jumlah_anak <- ifelse(Status_menikah=="Yes", sample((c(0:4)), 
                                                    length(Status_menikah=="Yes"), replace=T),
                                    "0")

Kendaraan_Pribadi <- sample(c("Mobil", "Motor", "Kendaraan Umum"),
                          50000, replace=T)

Status_rumah            <- sample(c("sewa", "milik", "kredit"),
                          50000, replace=T)
Data2 <-data.frame (Status_menikah,
                              Alamat,
                              Lokasi_kerja,
                              Umur,
                              Gelar_akademik,
                              Pekerjaan,
                              Pengalaman,
                              Pendapatan,
                              Pengeluaran,
                              Jumlah_anak,
                              Kendaraan_Pribadi,
                              Status_rumah
                              )
library(DT)
datatable(Data2)

Soal 2

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

summary(Data2)
##  Status_menikah        Alamat          Lokasi_kerja            Umur      
##  Length:50000       Length:50000       Length:50000       Min.   :19.00  
##  Class :character   Class :character   Class :character   1st Qu.:30.00  
##  Mode  :character   Mode  :character   Mode  :character   Median :42.00  
##                                                           Mean   :41.57  
##                                                           3rd Qu.:53.00  
##                                                           Max.   :64.00  
##  Gelar_akademik      Pekerjaan          Pengalaman          Pendapatan  
##  Length:50000       Length:50000       Length:50000       Min.   : 250  
##  Class :character   Class :character   Class :character   1st Qu.: 396  
##  Mode  :character   Mode  :character   Mode  :character   Median : 981  
##                                                           Mean   :1622  
##                                                           3rd Qu.:2470  
##                                                           Max.   :6550  
##   Pengeluaran     Jumlah_anak        Kendaraan_Pribadi  Status_rumah      
##  Min.   : 100.0   Length:50000       Length:50000       Length:50000      
##  1st Qu.: 195.0   Class :character   Class :character   Class :character  
##  Median : 398.0   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 554.8                                                           
##  3rd Qu.: 804.0                                                           
##  Max.   :1635.0

Ringkasan Statistik yang didapatkan dari tabel atas adalah informasi mengenai rata-rata, minimum, maksimum, titik tengah dan kuartil. dari data umur, pendapatan, dan pengeluaran dari

Soal 3

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

Data2$Tabungan_pelanggan  <-  Data2$Pendapatan - Data2$Pengeluaran
Data2$Maintain <- ifelse(Data2$Status_menikah=="Yes" &
                           0.30*Data2$Tabungan_pelanggan>5000,"Yes",
                         ifelse(Data2$Status_menikah=="No" &
                                  0.30*Data2$Tabungan_pelanggan>200, "Yes",
                                "No"))
print(head(Data2, 5))
##   Status_menikah  Alamat Lokasi_kerja Umur Gelar_akademik             Pekerjaan
## 1            Yes   Depok        Bogor   19            Phd             Pengusaha
## 2            Yes Jakarta       Bekasi   30            Phd              Insinyur
## 3            Yes   Bogor      Jakarta   51        Sma/Smk                 Tutor
## 4             No   Depok        Bogor   40            Phd                   HRD
## 5             No Jakarta      Jakarta   37            Smp Pembantu rumah tangga
##            Pengalaman Pendapatan Pengeluaran Jumlah_anak Kendaraan_Pribadi
## 1 Tidak Berpengalaman       1785         920           2             Motor
## 2                Ahli       1786         921           4    Kendaraan Umum
## 3            Menengah        322         152           3             Mobil
## 4       Berpengalaman       1788         923           0             Motor
## 5                Ahli        254         104           0             Mobil
##   Status_rumah Tabungan_pelanggan Maintain
## 1         sewa                865       No
## 2       kredit                865       No
## 3        milik                170       No
## 4       kredit                865      Yes
## 5         sewa                150       No