Email             :
RPubs            : https://rpubs.com/aliciaarifin/
Jurusan          : Statistika
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.


Tugas di R

1 Nomor 1

Membuat Program dengan List R dan Python

  • Buat sebuah list untuk menyimpan 5 orang teman dekatmu
  • Pilihlah satu orang dari list tersebut yang menjadi teman paling dekatmu dengan menggunakan index
  • Gantilah satu orang yang tidak begitu dekat denganmu dengan teman baru yang kamu temui baru-baru ini
  • Bagaimana caranya anda menghitung banyak teman yang ada dalam list tersebut
list1 = list("angel","nicky","virgie","laura","falen")
print(list1[2])
## [[1]]
## [1] "nicky"
list1[4]="kezia"
print(list1)
## [[1]]
## [1] "angel"
## 
## [[2]]
## [1] "nicky"
## 
## [[3]]
## [1] "virgie"
## 
## [[4]]
## [1] "kezia"
## 
## [[5]]
## [1] "falen"
# cara hitung isi list
length(list1)
## [1] 5

2 Nomor 2

Buatlah contoh menyimpan sekumpulan tuple dengan R dan Python, dengan mengikuti instruksi berikut:

  • Buatlah Tuple dengan 5 item didalamnya
  • Perlihatkan cara Mengakses Nilai Tuple
  • Bagaiman anda melakukan Slicing Nilai Tuple
  • Nested Tuple
  • Unpacking Sequence
library(sets)

tuple1= tuple("hai","hello","anyeong","halo","hola")
ali3  = tuple("nama","aku","ali","salam","kenal")

print(tuple1[3])   # munculin nilai tuple
## ("anyeong")
print(ali3[3])     # munculin nilai tuple
## ("ali")
#slicing nilai tuple
print(tuple1[1:3])
## ("hai", "hello", "anyeong")
# tuple nested
tuple2 = c(tuple1, ali3)
tuple3 = rep(tuple1[1:3], 3)

print(tuple2)
## ("hai", "hello", "anyeong", "halo", "hola", "nama", "aku", "ali",
##  "salam", "kenal")
print(tuple3)
## ("hai", "hello", "anyeong", "hai", "hello", "anyeong", "hai", "hello",
##  "anyeong")

3 Nomor 3

memuat type data float, integer, character, dan logical, list, tuple, dictionary dengan mengikuti instruksi berikut:

  • Akses suatu nilai Item dari Dictionary
  • Ubah suatu Nilai Item pada Dictionary
  • Menambahkan Item ke Dictionary
  • Menghapus Item dari Dictionary
library(Dict)
## 
## Attaching package: 'Dict'
## The following object is masked from 'package:sets':
## 
##     %>%
yippiligustbun = dict(
  nama   ="Alicia Arifin",
  umur   = 17L,
  hobi   = list("basket","gaming","ngebug"),
  single = TRUE,
  sosmed = tuple(instagram = "arifin.alicia")
  )

print(yippiligustbun)
## # A tibble: 5 x 2
##   key    value     
##   <chr>  <list>    
## 1 nama   <chr [1]> 
## 2 umur   <int [1]> 
## 3 hobi   <list [3]>
## 4 single <lgl [1]> 
## 5 sosmed <tuple>
#akses library
cat("umur saya adalah", yippiligustbun$get('umur'))
## umur saya adalah 17
# ubah nilai item
yippiligustbun['nama'] = "Angela Arifin"

print(yippiligustbun$get('nama'))
## [1] "Angela Arifin"
#cara lain akses library
print(yippiligustbun$get('sosmed')['instagram'])
## (instagram = "arifin.alicia")
# hapus item
yippiligustbun$remove("sosmed")

# yippiligustbun$clear() untuk menghapus satu libary

print(yippiligustbun)
## # A tibble: 4 x 2
##   key    value     
##   <chr>  <list>    
## 1 hobi   <list [3]>
## 2 nama   <chr [1]> 
## 3 single <lgl [1]> 
## 4 umur   <int [1]>
yippiligustbun$add(wingg="lol") # menambahkan
print(yippiligustbun)
## # A tibble: 5 x 2
##   key    value     
##   <chr>  <list>    
## 1 hobi   <list [3]>
## 2 nama   <chr [1]> 
## 3 single <lgl [1]> 
## 4 umur   <int [1]> 
## 5 wingg  <chr [1]>

4 Nomor 4

Silahkan untuk menemukan operasi Pengindeksan, Pengirisan, dan Subsetting Data Frame dengan Menggunkan R dan Python.

# bentuk data frame
df1_R <- data.frame(nomor =c(1:5),
                    nama  =c("ali","kez","jae","jeno","lee"),
                    angkatan=c("2002","2006","1997","2000","2004"),
                    universitas =c("UI","ITB","Universitas Matana","Unpar","Atma Jaya"),
                    kelas =c("Statistika","IT","Hospar","Hukum","Statistika")
                    )

df2_R <- data.frame(nomor =c(6:10),
                    nama  =c("wing","mark","floren","jaemin","andy"),
                    angkatan=c("2001","2098","1999","2000","2003"),
                    universitas =c("Unsoed","UPH","UMN","Unpad","UGM"),
                    kelas =c("Statistika","IT","Hospar","Hukum","Statistika")
                    )

Operasi yang dapat dilakukan pada data frame

df3_R = rbind(df1_R,df2_R) # untuk menggabungkan kedua data frame

# operasi yang dapat dilakukan pada data frame
print(df3_R)
##    nomor   nama angkatan        universitas      kelas
## 1      1    ali     2002                 UI Statistika
## 2      2    kez     2006                ITB         IT
## 3      3    jae     1997 Universitas Matana     Hospar
## 4      4   jeno     2000              Unpar      Hukum
## 5      5    lee     2004          Atma Jaya Statistika
## 6      6   wing     2001             Unsoed Statistika
## 7      7   mark     2098                UPH         IT
## 8      8 floren     1999                UMN     Hospar
## 9      9 jaemin     2000              Unpad      Hukum
## 10    10   andy     2003                UGM Statistika
head(df3_R)     #cetak 6 baris dari atas
##   nomor nama angkatan        universitas      kelas
## 1     1  ali     2002                 UI Statistika
## 2     2  kez     2006                ITB         IT
## 3     3  jae     1997 Universitas Matana     Hospar
## 4     4 jeno     2000              Unpar      Hukum
## 5     5  lee     2004          Atma Jaya Statistika
## 6     6 wing     2001             Unsoed Statistika
tail(df3_R)     #cetak 6 baris dari bawah
##    nomor   nama angkatan universitas      kelas
## 5      5    lee     2004   Atma Jaya Statistika
## 6      6   wing     2001      Unsoed Statistika
## 7      7   mark     2098         UPH         IT
## 8      8 floren     1999         UMN     Hospar
## 9      9 jaemin     2000       Unpad      Hukum
## 10    10   andy     2003         UGM Statistika
head(df3_R ,3)  #cetak 3 baris dari atas
##   nomor nama angkatan        universitas      kelas
## 1     1  ali     2002                 UI Statistika
## 2     2  kez     2006                ITB         IT
## 3     3  jae     1997 Universitas Matana     Hospar
#View(df3_R)     #lihat data frame di Rstudio seperti exel
class(df3_R)    #lihat tipe data frame
## [1] "data.frame"
str(df3_R)      #cek struktur
## 'data.frame':    10 obs. of  5 variables:
##  $ nomor      : int  1 2 3 4 5 6 7 8 9 10
##  $ nama       : chr  "ali" "kez" "jae" "jeno" ...
##  $ angkatan   : chr  "2002" "2006" "1997" "2000" ...
##  $ universitas: chr  "UI" "ITB" "Universitas Matana" "Unpar" ...
##  $ kelas      : chr  "Statistika" "IT" "Hospar" "Hukum" ...
dim(df3_R)      #cek dimensi
## [1] 10  5
summary(df3_R)  #summary statistik dasar
##      nomor           nama             angkatan         universitas       
##  Min.   : 1.00   Length:10          Length:10          Length:10         
##  1st Qu.: 3.25   Class :character   Class :character   Class :character  
##  Median : 5.50   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 5.50                                                           
##  3rd Qu.: 7.75                                                           
##  Max.   :10.00                                                           
##     kelas          
##  Length:10         
##  Class :character  
##  Mode  :character  
##                    
##                    
## 
#read.table()  atau read.csv() untuk membaca data set

operasi Pengindeksan, Pengirisan, dan Subsetting adalah ekstraksi data frame pada suatu data set

# bikin data base

Kode = (1:52)

Nama = c(LETTERS,letters)
Jenis_Kelamin = sample(rep(c("Pria","Wanita"),times=26))

tahun = seq(as.Date("1999/09/19"), by="year", length.out=4)
Tanggal_Lahir = rep(tahun,times=13)

univ1 = rep("Negeri",times=35)
univ2 = rep("Swasta",times=10)
univ3 = rep("Luar Negeri", times=7)
Universitas = sample(c(univ3,univ1,univ2))

gpa <- runif(52, min=3.50, max=4.00)
GPA <- round(gpa, digits=2)

Gaji<- sample(600:1200,52,replace=T)

Karyawan_R = data.frame(Kode,
                        Nama,
                        Jenis_Kelamin,
                        Tanggal_Lahir,
                        Universitas,
                        GPA,
                        Gaji)

print(Karyawan_R)
##    Kode Nama Jenis_Kelamin Tanggal_Lahir Universitas  GPA Gaji
## 1     1    A        Wanita    1999-09-19      Swasta 3.71  742
## 2     2    B          Pria    2000-09-19      Negeri 3.72  760
## 3     3    C        Wanita    2001-09-19      Negeri 3.55  978
## 4     4    D          Pria    2002-09-19      Swasta 3.79  976
## 5     5    E          Pria    1999-09-19      Negeri 3.91  962
## 6     6    F        Wanita    2000-09-19      Negeri 3.98 1140
## 7     7    G        Wanita    2001-09-19      Negeri 3.68 1174
## 8     8    H          Pria    2002-09-19 Luar Negeri 3.59  628
## 9     9    I          Pria    1999-09-19 Luar Negeri 3.58  736
## 10   10    J          Pria    2000-09-19      Negeri 3.78  941
## 11   11    K          Pria    2001-09-19      Negeri 3.87  984
## 12   12    L        Wanita    2002-09-19      Negeri 3.92  729
## 13   13    M          Pria    1999-09-19      Negeri 3.50 1087
## 14   14    N          Pria    2000-09-19      Swasta 3.75  643
## 15   15    O        Wanita    2001-09-19      Swasta 3.91  938
## 16   16    P          Pria    2002-09-19 Luar Negeri 3.60  801
## 17   17    Q          Pria    1999-09-19      Swasta 3.59  610
## 18   18    R          Pria    2000-09-19      Negeri 3.89  775
## 19   19    S          Pria    2001-09-19      Negeri 3.56 1107
## 20   20    T        Wanita    2002-09-19      Swasta 3.79  857
## 21   21    U          Pria    1999-09-19      Negeri 3.77 1084
## 22   22    V        Wanita    2000-09-19      Negeri 3.89 1061
## 23   23    W        Wanita    2001-09-19      Negeri 3.96 1188
## 24   24    X          Pria    2002-09-19      Negeri 3.51  839
## 25   25    Y        Wanita    1999-09-19      Negeri 3.56 1010
## 26   26    Z          Pria    2000-09-19      Swasta 3.77  924
## 27   27    a          Pria    2001-09-19      Negeri 3.57 1089
## 28   28    b        Wanita    2002-09-19      Negeri 3.59  623
## 29   29    c          Pria    1999-09-19      Negeri 3.60  807
## 30   30    d          Pria    2000-09-19      Swasta 3.95  623
## 31   31    e        Wanita    2001-09-19      Negeri 3.97  851
## 32   32    f        Wanita    2002-09-19      Negeri 3.51  642
## 33   33    g          Pria    1999-09-19      Negeri 3.91  766
## 34   34    h          Pria    2000-09-19 Luar Negeri 3.96  965
## 35   35    i          Pria    2001-09-19      Negeri 3.90 1185
## 36   36    j        Wanita    2002-09-19      Negeri 3.56  711
## 37   37    k        Wanita    1999-09-19      Negeri 3.86  926
## 38   38    l        Wanita    2000-09-19      Swasta 3.65  964
## 39   39    m        Wanita    2001-09-19 Luar Negeri 3.51  681
## 40   40    n        Wanita    2002-09-19      Negeri 3.58  693
## 41   41    o          Pria    1999-09-19 Luar Negeri 3.94  875
## 42   42    p        Wanita    2000-09-19      Negeri 3.91  906
## 43   43    q          Pria    2001-09-19      Negeri 3.91  751
## 44   44    r        Wanita    2002-09-19      Swasta 3.88  609
## 45   45    s        Wanita    1999-09-19      Negeri 3.53  750
## 46   46    t        Wanita    2000-09-19      Negeri 3.88  875
## 47   47    u        Wanita    2001-09-19      Negeri 3.63 1108
## 48   48    v        Wanita    2002-09-19      Negeri 3.98  605
## 49   49    w          Pria    1999-09-19      Negeri 4.00  897
## 50   50    x        Wanita    2000-09-19 Luar Negeri 3.90  788
## 51   51    y        Wanita    2001-09-19      Negeri 3.89  650
## 52   52    z          Pria    2002-09-19      Negeri 3.68  638

cara ekstrak

typeof(Karyawan_R)
## [1] "list"
Karyawan_R[1:5]             # ekstrak baris ke-1 sampai kolom ke-5
##    Kode Nama Jenis_Kelamin Tanggal_Lahir Universitas
## 1     1    A        Wanita    1999-09-19      Swasta
## 2     2    B          Pria    2000-09-19      Negeri
## 3     3    C        Wanita    2001-09-19      Negeri
## 4     4    D          Pria    2002-09-19      Swasta
## 5     5    E          Pria    1999-09-19      Negeri
## 6     6    F        Wanita    2000-09-19      Negeri
## 7     7    G        Wanita    2001-09-19      Negeri
## 8     8    H          Pria    2002-09-19 Luar Negeri
## 9     9    I          Pria    1999-09-19 Luar Negeri
## 10   10    J          Pria    2000-09-19      Negeri
## 11   11    K          Pria    2001-09-19      Negeri
## 12   12    L        Wanita    2002-09-19      Negeri
## 13   13    M          Pria    1999-09-19      Negeri
## 14   14    N          Pria    2000-09-19      Swasta
## 15   15    O        Wanita    2001-09-19      Swasta
## 16   16    P          Pria    2002-09-19 Luar Negeri
## 17   17    Q          Pria    1999-09-19      Swasta
## 18   18    R          Pria    2000-09-19      Negeri
## 19   19    S          Pria    2001-09-19      Negeri
## 20   20    T        Wanita    2002-09-19      Swasta
## 21   21    U          Pria    1999-09-19      Negeri
## 22   22    V        Wanita    2000-09-19      Negeri
## 23   23    W        Wanita    2001-09-19      Negeri
## 24   24    X          Pria    2002-09-19      Negeri
## 25   25    Y        Wanita    1999-09-19      Negeri
## 26   26    Z          Pria    2000-09-19      Swasta
## 27   27    a          Pria    2001-09-19      Negeri
## 28   28    b        Wanita    2002-09-19      Negeri
## 29   29    c          Pria    1999-09-19      Negeri
## 30   30    d          Pria    2000-09-19      Swasta
## 31   31    e        Wanita    2001-09-19      Negeri
## 32   32    f        Wanita    2002-09-19      Negeri
## 33   33    g          Pria    1999-09-19      Negeri
## 34   34    h          Pria    2000-09-19 Luar Negeri
## 35   35    i          Pria    2001-09-19      Negeri
## 36   36    j        Wanita    2002-09-19      Negeri
## 37   37    k        Wanita    1999-09-19      Negeri
## 38   38    l        Wanita    2000-09-19      Swasta
## 39   39    m        Wanita    2001-09-19 Luar Negeri
## 40   40    n        Wanita    2002-09-19      Negeri
## 41   41    o          Pria    1999-09-19 Luar Negeri
## 42   42    p        Wanita    2000-09-19      Negeri
## 43   43    q          Pria    2001-09-19      Negeri
## 44   44    r        Wanita    2002-09-19      Swasta
## 45   45    s        Wanita    1999-09-19      Negeri
## 46   46    t        Wanita    2000-09-19      Negeri
## 47   47    u        Wanita    2001-09-19      Negeri
## 48   48    v        Wanita    2002-09-19      Negeri
## 49   49    w          Pria    1999-09-19      Negeri
## 50   50    x        Wanita    2000-09-19 Luar Negeri
## 51   51    y        Wanita    2001-09-19      Negeri
## 52   52    z          Pria    2002-09-19      Negeri
Karyawan_R$GPA              # ekstrak spesifik kolom
##  [1] 3.71 3.72 3.55 3.79 3.91 3.98 3.68 3.59 3.58 3.78 3.87 3.92 3.50 3.75 3.91
## [16] 3.60 3.59 3.89 3.56 3.79 3.77 3.89 3.96 3.51 3.56 3.77 3.57 3.59 3.60 3.95
## [31] 3.97 3.51 3.91 3.96 3.90 3.56 3.86 3.65 3.51 3.58 3.94 3.91 3.91 3.88 3.53
## [46] 3.88 3.63 3.98 4.00 3.90 3.89 3.68
Karyawan_R[c('Nama','GPA')] # ekstrak lebih dari satu elemen
##    Nama  GPA
## 1     A 3.71
## 2     B 3.72
## 3     C 3.55
## 4     D 3.79
## 5     E 3.91
## 6     F 3.98
## 7     G 3.68
## 8     H 3.59
## 9     I 3.58
## 10    J 3.78
## 11    K 3.87
## 12    L 3.92
## 13    M 3.50
## 14    N 3.75
## 15    O 3.91
## 16    P 3.60
## 17    Q 3.59
## 18    R 3.89
## 19    S 3.56
## 20    T 3.79
## 21    U 3.77
## 22    V 3.89
## 23    W 3.96
## 24    X 3.51
## 25    Y 3.56
## 26    Z 3.77
## 27    a 3.57
## 28    b 3.59
## 29    c 3.60
## 30    d 3.95
## 31    e 3.97
## 32    f 3.51
## 33    g 3.91
## 34    h 3.96
## 35    i 3.90
## 36    j 3.56
## 37    k 3.86
## 38    l 3.65
## 39    m 3.51
## 40    n 3.58
## 41    o 3.94
## 42    p 3.91
## 43    q 3.91
## 44    r 3.88
## 45    s 3.53
## 46    t 3.88
## 47    u 3.63
## 48    v 3.98
## 49    w 4.00
## 50    x 3.90
## 51    y 3.89
## 52    z 3.68
Karyawan_R[,1:5]            # ekstrak 5 kolom pertama
##    Kode Nama Jenis_Kelamin Tanggal_Lahir Universitas
## 1     1    A        Wanita    1999-09-19      Swasta
## 2     2    B          Pria    2000-09-19      Negeri
## 3     3    C        Wanita    2001-09-19      Negeri
## 4     4    D          Pria    2002-09-19      Swasta
## 5     5    E          Pria    1999-09-19      Negeri
## 6     6    F        Wanita    2000-09-19      Negeri
## 7     7    G        Wanita    2001-09-19      Negeri
## 8     8    H          Pria    2002-09-19 Luar Negeri
## 9     9    I          Pria    1999-09-19 Luar Negeri
## 10   10    J          Pria    2000-09-19      Negeri
## 11   11    K          Pria    2001-09-19      Negeri
## 12   12    L        Wanita    2002-09-19      Negeri
## 13   13    M          Pria    1999-09-19      Negeri
## 14   14    N          Pria    2000-09-19      Swasta
## 15   15    O        Wanita    2001-09-19      Swasta
## 16   16    P          Pria    2002-09-19 Luar Negeri
## 17   17    Q          Pria    1999-09-19      Swasta
## 18   18    R          Pria    2000-09-19      Negeri
## 19   19    S          Pria    2001-09-19      Negeri
## 20   20    T        Wanita    2002-09-19      Swasta
## 21   21    U          Pria    1999-09-19      Negeri
## 22   22    V        Wanita    2000-09-19      Negeri
## 23   23    W        Wanita    2001-09-19      Negeri
## 24   24    X          Pria    2002-09-19      Negeri
## 25   25    Y        Wanita    1999-09-19      Negeri
## 26   26    Z          Pria    2000-09-19      Swasta
## 27   27    a          Pria    2001-09-19      Negeri
## 28   28    b        Wanita    2002-09-19      Negeri
## 29   29    c          Pria    1999-09-19      Negeri
## 30   30    d          Pria    2000-09-19      Swasta
## 31   31    e        Wanita    2001-09-19      Negeri
## 32   32    f        Wanita    2002-09-19      Negeri
## 33   33    g          Pria    1999-09-19      Negeri
## 34   34    h          Pria    2000-09-19 Luar Negeri
## 35   35    i          Pria    2001-09-19      Negeri
## 36   36    j        Wanita    2002-09-19      Negeri
## 37   37    k        Wanita    1999-09-19      Negeri
## 38   38    l        Wanita    2000-09-19      Swasta
## 39   39    m        Wanita    2001-09-19 Luar Negeri
## 40   40    n        Wanita    2002-09-19      Negeri
## 41   41    o          Pria    1999-09-19 Luar Negeri
## 42   42    p        Wanita    2000-09-19      Negeri
## 43   43    q          Pria    2001-09-19      Negeri
## 44   44    r        Wanita    2002-09-19      Swasta
## 45   45    s        Wanita    1999-09-19      Negeri
## 46   46    t        Wanita    2000-09-19      Negeri
## 47   47    u        Wanita    2001-09-19      Negeri
## 48   48    v        Wanita    2002-09-19      Negeri
## 49   49    w          Pria    1999-09-19      Negeri
## 50   50    x        Wanita    2000-09-19 Luar Negeri
## 51   51    y        Wanita    2001-09-19      Negeri
## 52   52    z          Pria    2002-09-19      Negeri
Karyawan_R[1:5,]            # ekstrak 5 baris pertama
##   Kode Nama Jenis_Kelamin Tanggal_Lahir Universitas  GPA Gaji
## 1    1    A        Wanita    1999-09-19      Swasta 3.71  742
## 2    2    B          Pria    2000-09-19      Negeri 3.72  760
## 3    3    C        Wanita    2001-09-19      Negeri 3.55  978
## 4    4    D          Pria    2002-09-19      Swasta 3.79  976
## 5    5    E          Pria    1999-09-19      Negeri 3.91  962
#ekstrak kolom ke 4 dan 5
subset(Karyawan_R, select=c(4,5))
##    Tanggal_Lahir Universitas
## 1     1999-09-19      Swasta
## 2     2000-09-19      Negeri
## 3     2001-09-19      Negeri
## 4     2002-09-19      Swasta
## 5     1999-09-19      Negeri
## 6     2000-09-19      Negeri
## 7     2001-09-19      Negeri
## 8     2002-09-19 Luar Negeri
## 9     1999-09-19 Luar Negeri
## 10    2000-09-19      Negeri
## 11    2001-09-19      Negeri
## 12    2002-09-19      Negeri
## 13    1999-09-19      Negeri
## 14    2000-09-19      Swasta
## 15    2001-09-19      Swasta
## 16    2002-09-19 Luar Negeri
## 17    1999-09-19      Swasta
## 18    2000-09-19      Negeri
## 19    2001-09-19      Negeri
## 20    2002-09-19      Swasta
## 21    1999-09-19      Negeri
## 22    2000-09-19      Negeri
## 23    2001-09-19      Negeri
## 24    2002-09-19      Negeri
## 25    1999-09-19      Negeri
## 26    2000-09-19      Swasta
## 27    2001-09-19      Negeri
## 28    2002-09-19      Negeri
## 29    1999-09-19      Negeri
## 30    2000-09-19      Swasta
## 31    2001-09-19      Negeri
## 32    2002-09-19      Negeri
## 33    1999-09-19      Negeri
## 34    2000-09-19 Luar Negeri
## 35    2001-09-19      Negeri
## 36    2002-09-19      Negeri
## 37    1999-09-19      Negeri
## 38    2000-09-19      Swasta
## 39    2001-09-19 Luar Negeri
## 40    2002-09-19      Negeri
## 41    1999-09-19 Luar Negeri
## 42    2000-09-19      Negeri
## 43    2001-09-19      Negeri
## 44    2002-09-19      Swasta
## 45    1999-09-19      Negeri
## 46    2000-09-19      Negeri
## 47    2001-09-19      Negeri
## 48    2002-09-19      Negeri
## 49    1999-09-19      Negeri
## 50    2000-09-19 Luar Negeri
## 51    2001-09-19      Negeri
## 52    2002-09-19      Negeri
Karyawan_R$Pajak = Karyawan_R$Gaji*0.025
Karyawan_R$Gaji_Bersih = Karyawan_R$Gaji-Karyawan_R$Pajak
Karyawan_R$Gaji_Group1 = Karyawan_R$Gaji >999
Karyawan_R$Gaji_Group2 = ifelse(Karyawan_R$Gaji >999,
                                "Gaji Besar",
                                "Gaji Kecil")
Karyawan_R$Gaji_Group3 = factor(Karyawan_R$GPA >3.75 & 
                                Karyawan_R$Gaji> 900,
                                label = c("level 11","level 12"))

min(Karyawan_R$Gaji)
## [1] 605
max(Karyawan_R$Gaji)
## [1] 1188
mean(Karyawan_R$Gaji)
## [1] 858.6923
var(Karyawan_R$Gaji)             # variasi
## [1] 30686.92
sd(Karyawan_R$Gaji)              # standar deverensiasi
## [1] 175.1768
summary(Karyawan_R$Gaji)         # statistik dasar data
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   605.0   724.5   854.0   858.7   976.5  1188.0

5 Nomor 5

Buatlah operasi Ganti Nama Variabel pada suatu Data Frame dengan menggunakan R dan Python.

rename1=Karyawan_R

names(rename1)= c(   "nomor",
                     "nama",
                     "jenis.kelamin",
                     "tgl.lahir",
                     "univ",
                     "ipk",
                     "gaji")

rename1
##    nomor nama jenis.kelamin  tgl.lahir        univ  ipk gaji     NA       NA
## 1      1    A        Wanita 1999-09-19      Swasta 3.71  742 18.550  723.450
## 2      2    B          Pria 2000-09-19      Negeri 3.72  760 19.000  741.000
## 3      3    C        Wanita 2001-09-19      Negeri 3.55  978 24.450  953.550
## 4      4    D          Pria 2002-09-19      Swasta 3.79  976 24.400  951.600
## 5      5    E          Pria 1999-09-19      Negeri 3.91  962 24.050  937.950
## 6      6    F        Wanita 2000-09-19      Negeri 3.98 1140 28.500 1111.500
## 7      7    G        Wanita 2001-09-19      Negeri 3.68 1174 29.350 1144.650
## 8      8    H          Pria 2002-09-19 Luar Negeri 3.59  628 15.700  612.300
## 9      9    I          Pria 1999-09-19 Luar Negeri 3.58  736 18.400  717.600
## 10    10    J          Pria 2000-09-19      Negeri 3.78  941 23.525  917.475
## 11    11    K          Pria 2001-09-19      Negeri 3.87  984 24.600  959.400
## 12    12    L        Wanita 2002-09-19      Negeri 3.92  729 18.225  710.775
## 13    13    M          Pria 1999-09-19      Negeri 3.50 1087 27.175 1059.825
## 14    14    N          Pria 2000-09-19      Swasta 3.75  643 16.075  626.925
## 15    15    O        Wanita 2001-09-19      Swasta 3.91  938 23.450  914.550
## 16    16    P          Pria 2002-09-19 Luar Negeri 3.60  801 20.025  780.975
## 17    17    Q          Pria 1999-09-19      Swasta 3.59  610 15.250  594.750
## 18    18    R          Pria 2000-09-19      Negeri 3.89  775 19.375  755.625
## 19    19    S          Pria 2001-09-19      Negeri 3.56 1107 27.675 1079.325
## 20    20    T        Wanita 2002-09-19      Swasta 3.79  857 21.425  835.575
## 21    21    U          Pria 1999-09-19      Negeri 3.77 1084 27.100 1056.900
## 22    22    V        Wanita 2000-09-19      Negeri 3.89 1061 26.525 1034.475
## 23    23    W        Wanita 2001-09-19      Negeri 3.96 1188 29.700 1158.300
## 24    24    X          Pria 2002-09-19      Negeri 3.51  839 20.975  818.025
## 25    25    Y        Wanita 1999-09-19      Negeri 3.56 1010 25.250  984.750
## 26    26    Z          Pria 2000-09-19      Swasta 3.77  924 23.100  900.900
## 27    27    a          Pria 2001-09-19      Negeri 3.57 1089 27.225 1061.775
## 28    28    b        Wanita 2002-09-19      Negeri 3.59  623 15.575  607.425
## 29    29    c          Pria 1999-09-19      Negeri 3.60  807 20.175  786.825
## 30    30    d          Pria 2000-09-19      Swasta 3.95  623 15.575  607.425
## 31    31    e        Wanita 2001-09-19      Negeri 3.97  851 21.275  829.725
## 32    32    f        Wanita 2002-09-19      Negeri 3.51  642 16.050  625.950
## 33    33    g          Pria 1999-09-19      Negeri 3.91  766 19.150  746.850
## 34    34    h          Pria 2000-09-19 Luar Negeri 3.96  965 24.125  940.875
## 35    35    i          Pria 2001-09-19      Negeri 3.90 1185 29.625 1155.375
## 36    36    j        Wanita 2002-09-19      Negeri 3.56  711 17.775  693.225
## 37    37    k        Wanita 1999-09-19      Negeri 3.86  926 23.150  902.850
## 38    38    l        Wanita 2000-09-19      Swasta 3.65  964 24.100  939.900
## 39    39    m        Wanita 2001-09-19 Luar Negeri 3.51  681 17.025  663.975
## 40    40    n        Wanita 2002-09-19      Negeri 3.58  693 17.325  675.675
## 41    41    o          Pria 1999-09-19 Luar Negeri 3.94  875 21.875  853.125
## 42    42    p        Wanita 2000-09-19      Negeri 3.91  906 22.650  883.350
## 43    43    q          Pria 2001-09-19      Negeri 3.91  751 18.775  732.225
## 44    44    r        Wanita 2002-09-19      Swasta 3.88  609 15.225  593.775
## 45    45    s        Wanita 1999-09-19      Negeri 3.53  750 18.750  731.250
## 46    46    t        Wanita 2000-09-19      Negeri 3.88  875 21.875  853.125
## 47    47    u        Wanita 2001-09-19      Negeri 3.63 1108 27.700 1080.300
## 48    48    v        Wanita 2002-09-19      Negeri 3.98  605 15.125  589.875
## 49    49    w          Pria 1999-09-19      Negeri 4.00  897 22.425  874.575
## 50    50    x        Wanita 2000-09-19 Luar Negeri 3.90  788 19.700  768.300
## 51    51    y        Wanita 2001-09-19      Negeri 3.89  650 16.250  633.750
## 52    52    z          Pria 2002-09-19      Negeri 3.68  638 15.950  622.050
##       NA         NA       NA
## 1  FALSE Gaji Kecil level 11
## 2  FALSE Gaji Kecil level 11
## 3  FALSE Gaji Kecil level 11
## 4  FALSE Gaji Kecil level 12
## 5  FALSE Gaji Kecil level 12
## 6   TRUE Gaji Besar level 12
## 7   TRUE Gaji Besar level 11
## 8  FALSE Gaji Kecil level 11
## 9  FALSE Gaji Kecil level 11
## 10 FALSE Gaji Kecil level 12
## 11 FALSE Gaji Kecil level 12
## 12 FALSE Gaji Kecil level 11
## 13  TRUE Gaji Besar level 11
## 14 FALSE Gaji Kecil level 11
## 15 FALSE Gaji Kecil level 12
## 16 FALSE Gaji Kecil level 11
## 17 FALSE Gaji Kecil level 11
## 18 FALSE Gaji Kecil level 11
## 19  TRUE Gaji Besar level 11
## 20 FALSE Gaji Kecil level 11
## 21  TRUE Gaji Besar level 12
## 22  TRUE Gaji Besar level 12
## 23  TRUE Gaji Besar level 12
## 24 FALSE Gaji Kecil level 11
## 25  TRUE Gaji Besar level 11
## 26 FALSE Gaji Kecil level 12
## 27  TRUE Gaji Besar level 11
## 28 FALSE Gaji Kecil level 11
## 29 FALSE Gaji Kecil level 11
## 30 FALSE Gaji Kecil level 11
## 31 FALSE Gaji Kecil level 11
## 32 FALSE Gaji Kecil level 11
## 33 FALSE Gaji Kecil level 11
## 34 FALSE Gaji Kecil level 12
## 35  TRUE Gaji Besar level 12
## 36 FALSE Gaji Kecil level 11
## 37 FALSE Gaji Kecil level 12
## 38 FALSE Gaji Kecil level 11
## 39 FALSE Gaji Kecil level 11
## 40 FALSE Gaji Kecil level 11
## 41 FALSE Gaji Kecil level 11
## 42 FALSE Gaji Kecil level 12
## 43 FALSE Gaji Kecil level 11
## 44 FALSE Gaji Kecil level 11
## 45 FALSE Gaji Kecil level 11
## 46 FALSE Gaji Kecil level 11
## 47  TRUE Gaji Besar level 11
## 48 FALSE Gaji Kecil level 11
## 49 FALSE Gaji Kecil level 11
## 50 FALSE Gaji Kecil level 11
## 51 FALSE Gaji Kecil level 11
## 52 FALSE Gaji Kecil level 11
LS0tDQp0aXRsZTogIkFsZ29yaXRtYSBkYW4gU3RydWt0dXIgRGF0YSINCnN1YnRpdGxlOiAiVHVnYXMgMyINCmF1dGhvcjogIkFsaWNpYSBBcmlmaW4gKDIwMjE0OTIwMDAxKSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGh0bWxfZG9jdW1lbnQ6IG51bGwNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICB0aGVtZTogc2FuZHN0b25lDQogICAgY3NzOiBzdHlsZTEuY3NzDQogICAgaGlnaGxpZ2h0OiBtb25vY2hyb21lDQotLS0NCg0KDQo8aW1nIHN0eWxlPSJmbG9hdDogcmlnaHQ7IG1hcmdpbjogMHB4IDEwMHB4IDBweCAwcHg7IHdpZHRoOjI1JSIgc3JjPSJmb3RvZGlyaS5wbmciLz4gDQoNCmBgYHtyIGxvZ28sIGVjaG89RkFMU0UsZmlnLmFsaWduPSdjZW50ZXInLCBvdXQud2lkdGggPSAnMzAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJsb2dvbWF0YW5hLnBuZyIpDQpgYGANCg0KRW1haWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7OiAgYWxpLjE5YXJpZmluQGdtYWlsLmNvbSA8YnI+DQpSUHVicyAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBodHRwczovL3JwdWJzLmNvbS9hbGljaWFhcmlmaW4vIDxicj4NCkp1cnVzYW4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogW1N0YXRpc3Rpa2FdKGh0dHBzOi8vbWF0YW5hdW5pdmVyc2l0eS5hYy5pZC8/bHk9YWNhZGVtaWMmYz1zYikgPGJyPg0KQWRkcmVzcyAgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogQVJBIENlbnRlciwgTWF0YW5hIFVuaXZlcnNpdHkgVG93ZXIgPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgSmwuIENCRCBCYXJhdCBLYXYsIFJULjEsIEN1cnVnIFNhbmdlcmVuZywgS2VsYXBhIER1YSwgVGFuZ2VyYW5nLCBCYW50ZW4gMTU4MTAuDQoNCioqKioNCg0KVHVnYXMgZGkgUg0KDQojIE5vbW9yIDENCk1lbWJ1YXQgUHJvZ3JhbSBkZW5nYW4gTGlzdCBSIGRhbiBQeXRob24NCg0KKiBCdWF0IHNlYnVhaCBsaXN0IHVudHVrIG1lbnlpbXBhbiA1IG9yYW5nIHRlbWFuIGRla2F0bXUNCiogUGlsaWhsYWggc2F0dSBvcmFuZyBkYXJpIGxpc3QgdGVyc2VidXQgeWFuZyBtZW5qYWRpIHRlbWFuIHBhbGluZyBkZWthdG11ICBkZW5nYW4gbWVuZ2d1bmFrYW4gaW5kZXgNCiogR2FudGlsYWggc2F0dSBvcmFuZyB5YW5nIHRpZGFrIGJlZ2l0dSBkZWthdCBkZW5nYW5tdSBkZW5nYW4gdGVtYW4gYmFydSB5YW5nIGthbXUgdGVtdWkgYmFydS1iYXJ1IGluaQ0KKiBCYWdhaW1hbmEgY2FyYW55YSBhbmRhIG1lbmdoaXR1bmcgYmFueWFrIHRlbWFuIHlhbmcgYWRhIGRhbGFtIGxpc3QgdGVyc2VidXQNCg0KYGBge3J9DQpsaXN0MSA9IGxpc3QoImFuZ2VsIiwibmlja3kiLCJ2aXJnaWUiLCJsYXVyYSIsImZhbGVuIikNCnByaW50KGxpc3QxWzJdKQ0KYGBgDQpgYGB7cn0NCmxpc3QxWzRdPSJrZXppYSINCnByaW50KGxpc3QxKQ0KYGBgDQpgYGB7cn0NCiMgY2FyYSBoaXR1bmcgaXNpIGxpc3QNCmxlbmd0aChsaXN0MSkNCmBgYA0KDQoNCiMgTm9tb3IgMg0KQnVhdGxhaCBjb250b2ggbWVueWltcGFuIHNla3VtcHVsYW4gdHVwbGUgZGVuZ2FuIFIgZGFuIFB5dGhvbiwgZGVuZ2FuIG1lbmdpa3V0aSBpbnN0cnVrc2kgYmVyaWt1dDoNCg0KKiBCdWF0bGFoIFR1cGxlIGRlbmdhbiA1IGl0ZW0gZGlkYWxhbW55YQ0KKiBQZXJsaWhhdGthbiBjYXJhIE1lbmdha3NlcyBOaWxhaSBUdXBsZQ0KKiBCYWdhaW1hbiBhbmRhIG1lbGFrdWthbiBTbGljaW5nIE5pbGFpIFR1cGxlDQoqIE5lc3RlZCBUdXBsZQ0KKiBVbnBhY2tpbmcgU2VxdWVuY2UNCg0KYGBge3J9DQpsaWJyYXJ5KHNldHMpDQoNCnR1cGxlMT0gdHVwbGUoImhhaSIsImhlbGxvIiwiYW55ZW9uZyIsImhhbG8iLCJob2xhIikNCmFsaTMgID0gdHVwbGUoIm5hbWEiLCJha3UiLCJhbGkiLCJzYWxhbSIsImtlbmFsIikNCg0KcHJpbnQodHVwbGUxWzNdKSAgICMgbXVuY3VsaW4gbmlsYWkgdHVwbGUNCnByaW50KGFsaTNbM10pICAgICAjIG11bmN1bGluIG5pbGFpIHR1cGxlDQpgYGANCg0KYGBge3J9DQojc2xpY2luZyBuaWxhaSB0dXBsZQ0KcHJpbnQodHVwbGUxWzE6M10pDQpgYGANCg0KYGBge3J9DQojIHR1cGxlIG5lc3RlZA0KdHVwbGUyID0gYyh0dXBsZTEsIGFsaTMpDQp0dXBsZTMgPSByZXAodHVwbGUxWzE6M10sIDMpDQoNCnByaW50KHR1cGxlMikNCnByaW50KHR1cGxlMykNCmBgYA0KDQoNCg0KIyBOb21vciAzDQptZW11YXQgdHlwZSBkYXRhIGZsb2F0LCBpbnRlZ2VyLCBjaGFyYWN0ZXIsIGRhbiBsb2dpY2FsLCBsaXN0LCB0dXBsZSwgZGljdGlvbmFyeSBkZW5nYW4gbWVuZ2lrdXRpIGluc3RydWtzaSBiZXJpa3V0Og0KDQoqIEFrc2VzIHN1YXR1IG5pbGFpIEl0ZW0gZGFyaSBEaWN0aW9uYXJ5IA0KKiBVYmFoIHN1YXR1IE5pbGFpIEl0ZW0gcGFkYSBEaWN0aW9uYXJ5DQoqIE1lbmFtYmFoa2FuIEl0ZW0ga2UgRGljdGlvbmFyeQ0KKiBNZW5naGFwdXMgSXRlbSBkYXJpIERpY3Rpb25hcnkNCg0KYGBge3J9DQpsaWJyYXJ5KERpY3QpDQoNCnlpcHBpbGlndXN0YnVuID0gZGljdCgNCiAgbmFtYSAgID0iQWxpY2lhIEFyaWZpbiIsDQogIHVtdXIgICA9IDE3TCwNCiAgaG9iaSAgID0gbGlzdCgiYmFza2V0IiwiZ2FtaW5nIiwibmdlYnVnIiksDQogIHNpbmdsZSA9IFRSVUUsDQogIHNvc21lZCA9IHR1cGxlKGluc3RhZ3JhbSA9ICJhcmlmaW4uYWxpY2lhIikNCiAgKQ0KDQpwcmludCh5aXBwaWxpZ3VzdGJ1bikNCg0KI2Frc2VzIGxpYnJhcnkNCmNhdCgidW11ciBzYXlhIGFkYWxhaCIsIHlpcHBpbGlndXN0YnVuJGdldCgndW11cicpKQ0KYGBgDQoNCmBgYHtyfQ0KIyB1YmFoIG5pbGFpIGl0ZW0NCnlpcHBpbGlndXN0YnVuWyduYW1hJ10gPSAiQW5nZWxhIEFyaWZpbiINCg0KcHJpbnQoeWlwcGlsaWd1c3RidW4kZ2V0KCduYW1hJykpDQpgYGANCg0KDQpgYGB7cn0NCiNjYXJhIGxhaW4gYWtzZXMgbGlicmFyeQ0KcHJpbnQoeWlwcGlsaWd1c3RidW4kZ2V0KCdzb3NtZWQnKVsnaW5zdGFncmFtJ10pDQoNCmBgYA0KDQpgYGB7cn0NCiMgaGFwdXMgaXRlbQ0KeWlwcGlsaWd1c3RidW4kcmVtb3ZlKCJzb3NtZWQiKQ0KDQojIHlpcHBpbGlndXN0YnVuJGNsZWFyKCkgdW50dWsgbWVuZ2hhcHVzIHNhdHUgbGliYXJ5DQoNCnByaW50KHlpcHBpbGlndXN0YnVuKQ0KYGBgDQoNCmBgYHtyfQ0KeWlwcGlsaWd1c3RidW4kYWRkKHdpbmdnPSJsb2wiKSAjIG1lbmFtYmFoa2FuDQpwcmludCh5aXBwaWxpZ3VzdGJ1bikNCmBgYA0KDQojIE5vbW9yIDQNClNpbGFoa2FuIHVudHVrIG1lbmVtdWthbiBvcGVyYXNpIFBlbmdpbmRla3NhbiwgUGVuZ2lyaXNhbiwgZGFuIFN1YnNldHRpbmcgRGF0YSBGcmFtZSBkZW5nYW4gTWVuZ2d1bmthbiBSIGRhbiBQeXRob24uDQoNCmBgYHtyfQ0KIyBiZW50dWsgZGF0YSBmcmFtZQ0KZGYxX1IgPC0gZGF0YS5mcmFtZShub21vciA9YygxOjUpLA0KICAgICAgICAgICAgICAgICAgICBuYW1hICA9YygiYWxpIiwia2V6IiwiamFlIiwiamVubyIsImxlZSIpLA0KICAgICAgICAgICAgICAgICAgICBhbmdrYXRhbj1jKCIyMDAyIiwiMjAwNiIsIjE5OTciLCIyMDAwIiwiMjAwNCIpLA0KICAgICAgICAgICAgICAgICAgICB1bml2ZXJzaXRhcyA9YygiVUkiLCJJVEIiLCJVbml2ZXJzaXRhcyBNYXRhbmEiLCJVbnBhciIsIkF0bWEgSmF5YSIpLA0KICAgICAgICAgICAgICAgICAgICBrZWxhcyA9YygiU3RhdGlzdGlrYSIsIklUIiwiSG9zcGFyIiwiSHVrdW0iLCJTdGF0aXN0aWthIikNCiAgICAgICAgICAgICAgICAgICAgKQ0KDQpkZjJfUiA8LSBkYXRhLmZyYW1lKG5vbW9yID1jKDY6MTApLA0KICAgICAgICAgICAgICAgICAgICBuYW1hICA9Yygid2luZyIsIm1hcmsiLCJmbG9yZW4iLCJqYWVtaW4iLCJhbmR5IiksDQogICAgICAgICAgICAgICAgICAgIGFuZ2thdGFuPWMoIjIwMDEiLCIyMDk4IiwiMTk5OSIsIjIwMDAiLCIyMDAzIiksDQogICAgICAgICAgICAgICAgICAgIHVuaXZlcnNpdGFzID1jKCJVbnNvZWQiLCJVUEgiLCJVTU4iLCJVbnBhZCIsIlVHTSIpLA0KICAgICAgICAgICAgICAgICAgICBrZWxhcyA9YygiU3RhdGlzdGlrYSIsIklUIiwiSG9zcGFyIiwiSHVrdW0iLCJTdGF0aXN0aWthIikNCiAgICAgICAgICAgICAgICAgICAgKQ0KDQpgYGANCg0KT3BlcmFzaSB5YW5nIGRhcGF0IGRpbGFrdWthbiBwYWRhIGRhdGEgZnJhbWUNCg0KYGBge3J9DQpkZjNfUiA9IHJiaW5kKGRmMV9SLGRmMl9SKSAjIHVudHVrIG1lbmdnYWJ1bmdrYW4ga2VkdWEgZGF0YSBmcmFtZQ0KDQojIG9wZXJhc2kgeWFuZyBkYXBhdCBkaWxha3VrYW4gcGFkYSBkYXRhIGZyYW1lDQpwcmludChkZjNfUikNCmhlYWQoZGYzX1IpICAgICAjY2V0YWsgNiBiYXJpcyBkYXJpIGF0YXMNCnRhaWwoZGYzX1IpICAgICAjY2V0YWsgNiBiYXJpcyBkYXJpIGJhd2FoDQpoZWFkKGRmM19SICwzKSAgI2NldGFrIDMgYmFyaXMgZGFyaSBhdGFzDQojVmlldyhkZjNfUikgICAgICNsaWhhdCBkYXRhIGZyYW1lIGRpIFJzdHVkaW8gc2VwZXJ0aSBleGVsDQoNCmBgYA0KYGBge3J9DQpjbGFzcyhkZjNfUikgICAgI2xpaGF0IHRpcGUgZGF0YSBmcmFtZQ0Kc3RyKGRmM19SKSAgICAgICNjZWsgc3RydWt0dXINCmRpbShkZjNfUikgICAgICAjY2VrIGRpbWVuc2kNCnN1bW1hcnkoZGYzX1IpICAjc3VtbWFyeSBzdGF0aXN0aWsgZGFzYXINCiNyZWFkLnRhYmxlKCkgIGF0YXUgcmVhZC5jc3YoKSB1bnR1ayBtZW1iYWNhIGRhdGEgc2V0DQpgYGANCm9wZXJhc2kgUGVuZ2luZGVrc2FuLCBQZW5naXJpc2FuLCBkYW4gU3Vic2V0dGluZyBhZGFsYWggZWtzdHJha3NpIGRhdGEgZnJhbWUgcGFkYSBzdWF0dSBkYXRhIHNldA0KDQpgYGB7cn0NCiMgYmlraW4gZGF0YSBiYXNlDQoNCktvZGUgPSAoMTo1MikNCg0KTmFtYSA9IGMoTEVUVEVSUyxsZXR0ZXJzKQ0KSmVuaXNfS2VsYW1pbiA9IHNhbXBsZShyZXAoYygiUHJpYSIsIldhbml0YSIpLHRpbWVzPTI2KSkNCg0KdGFodW4gPSBzZXEoYXMuRGF0ZSgiMTk5OS8wOS8xOSIpLCBieT0ieWVhciIsIGxlbmd0aC5vdXQ9NCkNClRhbmdnYWxfTGFoaXIgPSByZXAodGFodW4sdGltZXM9MTMpDQoNCnVuaXYxID0gcmVwKCJOZWdlcmkiLHRpbWVzPTM1KQ0KdW5pdjIgPSByZXAoIlN3YXN0YSIsdGltZXM9MTApDQp1bml2MyA9IHJlcCgiTHVhciBOZWdlcmkiLCB0aW1lcz03KQ0KVW5pdmVyc2l0YXMgPSBzYW1wbGUoYyh1bml2Myx1bml2MSx1bml2MikpDQoNCmdwYSA8LSBydW5pZig1MiwgbWluPTMuNTAsIG1heD00LjAwKQ0KR1BBIDwtIHJvdW5kKGdwYSwgZGlnaXRzPTIpDQoNCkdhamk8LSBzYW1wbGUoNjAwOjEyMDAsNTIscmVwbGFjZT1UKQ0KDQpLYXJ5YXdhbl9SID0gZGF0YS5mcmFtZShLb2RlLA0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtYSwNCiAgICAgICAgICAgICAgICAgICAgICAgIEplbmlzX0tlbGFtaW4sDQogICAgICAgICAgICAgICAgICAgICAgICBUYW5nZ2FsX0xhaGlyLA0KICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0YXMsDQogICAgICAgICAgICAgICAgICAgICAgICBHUEEsDQogICAgICAgICAgICAgICAgICAgICAgICBHYWppKQ0KDQpwcmludChLYXJ5YXdhbl9SKQ0KYGBgDQpjYXJhIGVrc3RyYWsNCg0KYGBge3J9DQp0eXBlb2YoS2FyeWF3YW5fUikNCg0KS2FyeWF3YW5fUlsxOjVdICAgICAgICAgICAgICMgZWtzdHJhayBiYXJpcyBrZS0xIHNhbXBhaSBrb2xvbSBrZS01DQpLYXJ5YXdhbl9SJEdQQSAgICAgICAgICAgICAgIyBla3N0cmFrIHNwZXNpZmlrIGtvbG9tDQpLYXJ5YXdhbl9SW2MoJ05hbWEnLCdHUEEnKV0gIyBla3N0cmFrIGxlYmloIGRhcmkgc2F0dSBlbGVtZW4NCkthcnlhd2FuX1JbLDE6NV0gICAgICAgICAgICAjIGVrc3RyYWsgNSBrb2xvbSBwZXJ0YW1hDQpLYXJ5YXdhbl9SWzE6NSxdICAgICAgICAgICAgIyBla3N0cmFrIDUgYmFyaXMgcGVydGFtYQ0KDQojZWtzdHJhayBrb2xvbSBrZSA0IGRhbiA1DQpzdWJzZXQoS2FyeWF3YW5fUiwgc2VsZWN0PWMoNCw1KSkNCg0KYGBgDQoNCmBgYHtyfQ0KS2FyeWF3YW5fUiRQYWphayA9IEthcnlhd2FuX1IkR2FqaSowLjAyNQ0KS2FyeWF3YW5fUiRHYWppX0JlcnNpaCA9IEthcnlhd2FuX1IkR2FqaS1LYXJ5YXdhbl9SJFBhamFrDQpLYXJ5YXdhbl9SJEdhamlfR3JvdXAxID0gS2FyeWF3YW5fUiRHYWppID45OTkNCkthcnlhd2FuX1IkR2FqaV9Hcm91cDIgPSBpZmVsc2UoS2FyeWF3YW5fUiRHYWppID45OTksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHYWppIEJlc2FyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdhamkgS2VjaWwiKQ0KS2FyeWF3YW5fUiRHYWppX0dyb3VwMyA9IGZhY3RvcihLYXJ5YXdhbl9SJEdQQSA+My43NSAmIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLYXJ5YXdhbl9SJEdhamk+IDkwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSBjKCJsZXZlbCAxMSIsImxldmVsIDEyIikpDQoNCm1pbihLYXJ5YXdhbl9SJEdhamkpDQptYXgoS2FyeWF3YW5fUiRHYWppKQ0KbWVhbihLYXJ5YXdhbl9SJEdhamkpDQp2YXIoS2FyeWF3YW5fUiRHYWppKSAgICAgICAgICAgICAjIHZhcmlhc2kNCnNkKEthcnlhd2FuX1IkR2FqaSkgICAgICAgICAgICAgICMgc3RhbmRhciBkZXZlcmVuc2lhc2kNCnN1bW1hcnkoS2FyeWF3YW5fUiRHYWppKSAgICAgICAgICMgc3RhdGlzdGlrIGRhc2FyIGRhdGENCg0KYGBgDQoNCg0KIyBOb21vciA1DQpCdWF0bGFoIG9wZXJhc2kgR2FudGkgTmFtYSBWYXJpYWJlbCBwYWRhIHN1YXR1IERhdGEgRnJhbWUgZGVuZ2FuIG1lbmdndW5ha2FuIFIgZGFuIFB5dGhvbi4NCg0KYGBge3J9DQpyZW5hbWUxPUthcnlhd2FuX1INCg0KbmFtZXMocmVuYW1lMSk9IGMoICAgIm5vbW9yIiwNCiAgICAgICAgICAgICAgICAgICAgICJuYW1hIiwNCiAgICAgICAgICAgICAgICAgICAgICJqZW5pcy5rZWxhbWluIiwNCiAgICAgICAgICAgICAgICAgICAgICJ0Z2wubGFoaXIiLA0KICAgICAgICAgICAgICAgICAgICAgInVuaXYiLA0KICAgICAgICAgICAgICAgICAgICAgImlwayIsDQogICAgICAgICAgICAgICAgICAgICAiZ2FqaSIpDQoNCnJlbmFtZTENCg0KYGBgDQoNCg==