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


1 Membuat Program dengan list

  • 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

1.1 Menyisipkan 5 orang teman terdekat dalam List

list0 = list()                                     #membuat list kosong
list1 = list("Je","Glory","Mark","Johhny","Jeno")  #membuat list isi 5 item karakter(nama)
print(c(list0,list1))                              #print kedua list
## [[1]]
## [1] "Je"
## 
## [[2]]
## [1] "Glory"
## 
## [[3]]
## [1] "Mark"
## 
## [[4]]
## [1] "Johhny"
## 
## [[5]]
## [1] "Jeno"

1.2 Memilih 1 orang teman terdekat menggunakan index

list2 = list("Je","Glory","Mark","Johhny","Jeno") #membuat list isi 5 item karakter(nama)
print(list2[3])                                    #print karakter pada indeks 3
## [[1]]
## [1] "Mark"

1.3 Mengganti 1 orang teman tak terdekat dengan teman yang baru ditemui

list3 = list("Je","Glory","Mark","Johhny","Jeno")  #membuat list isi 5 item karakter(nama)
list3[4]= "Haechan"                                #mengubah item Johnny menjadi Haechan
print(list3)
## [[1]]
## [1] "Je"
## 
## [[2]]
## [1] "Glory"
## 
## [[3]]
## [1] "Mark"
## 
## [[4]]
## [1] "Haechan"
## 
## [[5]]
## [1] "Jeno"

1.4 Menghitung banyak teman dalam list

length(list1)       # mengetahui Jumlah anggota dari list1
## [1] 5

2 Menyimpan item dalam Tuple

Buatlah contoh menyimpan sekumpulan tuple dengan R, dengan mengikuti instruksi berikut:
* Buatlah Tuple dengan 5 item didalamnya
* Perlihatkan cara Mengakses Nilai Tuple
* Bagaimana anda melakukan Slicing Nilai Tuple
* Nested Tuple
* Unpacking Sequence

2.1 Menyisipkan 5 item kedalam Tuple

library(sets)
#menyisipkan 5 item
tuple1 = tuple("always", "bring", "your", "own", "sunshine") #Membuat tuple1 dengan 5 item
tuple2 = tuple("today", "is", "a", "great", "day")           #Membuat tuple2 dengan 5 item
print(tuple1)
## ("always", "bring", "your", "own", "sunshine")
print(tuple2)
## ("today", "is", "a", "great", "day")

2.2 Mengakses Nilai Tuple

print(tuple1[1])
## ("always")
print(tuple1[2])
## ("bring")
print(tuple1[3])
## ("your")
print(tuple1[4])
## ("own")
print(tuple1[5])
## ("sunshine")

2.3 Melakukan Scilling Nilai Tuple

print(tuple1[1:2])
## ("always", "bring")
print(tuple1[3])
## ("your")
print(tuple1[5])
## ("sunshine")
print(tuple1[4:5])
## ("own", "sunshine")
print(tuple1[1:5])
## ("always", "bring", "your", "own", "sunshine")
print(tuple1[2])
## ("bring")

2.4 Nested Tuple

tuple3 = c(tuple1, tuple2)  #Memasukkan tuple 1 dan tuple 2 secara bersama
tuple4 = rep(tuple2, 23)    #Mengulang Tuple2 sebanyak 23 kali
tuple5 = rep(tuple1, 22)    #Mengulang Tuple1 sebanyak 22 kali 
print(tuple3)               
## ("always", "bring", "your", "own", "sunshine", "today", "is", "a",
##  "great", "day")
print(tuple4)
## ("today", "is", "a", "great", "day", "today", "is", "a", "great",
##  "day", "today", "is", "a", "great", "day", "today", "is", "a",
##  "great", "day", "today", "is", "a", "great", "day", "today", "is",
##  "a", "great", "day", "today", "is", "a", "great", "day", "today",
##  "is", "a", "great", "day", "today", "is", "a", "great", "day",
##  "today", "is", "a", "great", "day", "today", "is", "a", "great",
##  "day", "today", "is", "a", "great", "day", "today", "is", "a",
##  "great", "day", "today", "is", "a", "great", "day", "today", "is",
##  "a", "great", "day", "today", "is", "a", "great", "day", "today",
##  "is", "a", "great", "day", "today", "is", "a", "great", "day",
##  "today", "is", "a", "great", "day", "today", "is", "a", "great",
##  "day", "today", "is", "a", "great", "day", "today", "is", "a",
##  "great", "day", "today", "is", "a", "great", "day")
print(tuple5)
## ("always", "bring", "your", "own", "sunshine", "always", "bring",
##  "your", "own", "sunshine", "always", "bring", "your", "own",
##  "sunshine", "always", "bring", "your", "own", "sunshine", "always",
##  "bring", "your", "own", "sunshine", "always", "bring", "your", "own",
##  "sunshine", "always", "bring", "your", "own", "sunshine", "always",
##  "bring", "your", "own", "sunshine", "always", "bring", "your", "own",
##  "sunshine", "always", "bring", "your", "own", "sunshine", "always",
##  "bring", "your", "own", "sunshine", "always", "bring", "your", "own",
##  "sunshine", "always", "bring", "your", "own", "sunshine", "always",
##  "bring", "your", "own", "sunshine", "always", "bring", "your", "own",
##  "sunshine", "always", "bring", "your", "own", "sunshine", "always",
##  "bring", "your", "own", "sunshine", "always", "bring", "your", "own",
##  "sunshine", "always", "bring", "your", "own", "sunshine", "always",
##  "bring", "your", "own", "sunshine", "always", "bring", "your", "own",
##  "sunshine", "always", "bring", "your", "own", "sunshine")

2.5 Unpacking Sequence

tuple1 =  tuple("always", "bring", "your", "own", "sunshine") #Membuat tuple1 dengan 5 item
names (tuple1) = c("index1", "index2", "index3", "index4", "index5")
print(tuple1)
## (index1 = "always", index2 = "bring", index3 = "your", index4 = "own",
##  index5 = "sunshine")
tuple2 = tuple("today", "is", "a", "great", "day")           #Membuat tuple2 dengan 5 item
names(tuple2) = c("index1", "index2", "index3", "index4", "index5")
print(tuple2)
## (index1 = "today", index2 = "is", index3 = "a", index4 = "great",
##  index5 = "day")

3 Penyimpanan Dictionary

Buatlah contoh menyimpan sekumpulan Dictionary dengan R, yang 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

3.1 Mengakses nilai item dalam Dictionary

library(Dict)
## 
## Attaching package: 'Dict'
## The following object is masked from 'package:sets':
## 
##     %>%
karennatalie <- dict(
                  "nama"    ="Karen Natalie",
                  "umur"    = as.integer(18),
                  "hobi"    = list("membuat beads keyring", "painting digital", "nonton film"),
                  "asal" = "Bandar Lampung")
cat("nama saya adalah :", karennatalie$get('nama'))
## nama saya adalah : Karen Natalie
print(karennatalie$get('asal'))
## [1] "Bandar Lampung"
## Ubah suatu Nilai Item pada Dictionary


```r
karennatalie['nama']= "Karen Natalie"
karennatalie['hobi']= "membuat beads keyring";"painting digital";"nonton film"
## [1] "painting digital"
## [1] "nonton film"
karennatalie['asal']= "Bandar Lampung"
print(karennatalie)
## # A tibble: 4 × 2
##   key   value    
##   <chr> <list>   
## 1 asal  <chr [1]>
## 2 hobi  <chr [1]>
## 3 nama  <chr [1]>
## 4 umur  <int [1]>

3.2 tambah item dalam Dictionary

karennatalie$add(umur=18L)
print(karennatalie)
## # A tibble: 4 × 2
##   key   value    
##   <chr> <list>   
## 1 asal  <chr [1]>
## 2 hobi  <chr [1]>
## 3 nama  <chr [1]>
## 4 umur  <int [1]>

3.3 Menghapus item dalam Dictionary

karennatalie$remove("hobi")
print(karennatalie)
## # A tibble: 3 × 2
##   key   value    
##   <chr> <list>   
## 1 asal  <chr [1]>
## 2 nama  <chr [1]>
## 3 umur  <int [1]>

4 operasi Pengindeksan, Pengirisan, dan Subsetting Data Frame

Silahkan untuk menemukan operasi Pengindeksan, Pengirisan, dan Subsetting Data Frame dengan Menggunakan R
## Data frame

# membentuk data frame 1
df1_R <- data.frame(nomor =c(1:5),
                    "nama"  =c("glory","je","nopi","mark","johnny"),
                    "angkatan" =c("2019","2019","2020","2020","2018"),
                    "jurusan sma" =c("ips","ipa","ipa","ips","ips"),
                    "pelajaran favorit" =c("mtk","biologi","kalkulus","sosiologi","sejarah"),
                    "rank" =c("3","5","6","9","2"),
                    "ekstrakurikuler" = c("english club","robotic","modern dance","memahat,","pramuka")
                    )
#membentuk data frame 2
df2_R <- data.frame(nomor =c(1:5),
                    "nama"  =c("evie","dian","yanti","jhonson","suh"),
                    "angkatan" =c("2020","2020","2021","2021","2019"),
                    "jurusan sma" =c("ips","ipa","ipa","ips","ips"),
                    "pelajaran favorit" =c("pkn","kimia","fisika","geografi","inggris"),
                    "rank" =c("1","4","2","3","5"),
                    "ekstrakurikuler" = c("kolintang","band","paduan suara","futsal,","basket")
                    )

4.0.1 Penggabungan 2 frame

df3_R = rbind(df1_R,df2_R) # menggabungkan data frame 1 dan 2

4.0.2 indeks data frame

print(df3_R)
##    nomor    nama angkatan jurusan.sma pelajaran.favorit rank ekstrakurikuler
## 1      1   glory     2019         ips               mtk    3    english club
## 2      2      je     2019         ipa           biologi    5         robotic
## 3      3    nopi     2020         ipa          kalkulus    6    modern dance
## 4      4    mark     2020         ips         sosiologi    9        memahat,
## 5      5  johnny     2018         ips           sejarah    2         pramuka
## 6      1    evie     2020         ips               pkn    1       kolintang
## 7      2    dian     2020         ipa             kimia    4            band
## 8      3   yanti     2021         ipa            fisika    2    paduan suara
## 9      4 jhonson     2021         ips          geografi    3         futsal,
## 10     5     suh     2019         ips           inggris    5          basket

4.0.3 dimensi dara frame

dim(df3_R)  #memeriksa dimensi data frame
## [1] 10  7

4.0.4 struktur data frame

str(df3_R)  #memeriksa strukrut data frame
## 'data.frame':    10 obs. of  7 variables:
##  $ nomor            : int  1 2 3 4 5 1 2 3 4 5
##  $ nama             : chr  "glory" "je" "nopi" "mark" ...
##  $ angkatan         : chr  "2019" "2019" "2020" "2020" ...
##  $ jurusan.sma      : chr  "ips" "ipa" "ipa" "ips" ...
##  $ pelajaran.favorit: chr  "mtk" "biologi" "kalkulus" "sosiologi" ...
##  $ rank             : chr  "3" "5" "6" "9" ...
##  $ ekstrakurikuler  : chr  "english club" "robotic" "modern dance" "memahat," ...

4.0.5 summary data frame

summary(df3_R)  #summary statistik data frame
##      nomor       nama             angkatan         jurusan.sma       
##  Min.   :1   Length:10          Length:10          Length:10         
##  1st Qu.:2   Class :character   Class :character   Class :character  
##  Median :3   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :3                                                           
##  3rd Qu.:4                                                           
##  Max.   :5                                                           
##  pelajaran.favorit      rank           ekstrakurikuler   
##  Length:10          Length:10          Length:10         
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
## 

4.1 Data frame

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

# Menghasilkan tanggal lahir dengan time series
tiga_tahun = seq(as.Date("2017/12/01"), by="year",length.out=4)
Tanggal_Lahir = rep(tiga_tahun,times=13)

# Kategori Universitas
univ1= rep("Negeri", times=26)
univ2= rep("Swasta", times=16)
univ3= rep("LN", times=10)
Universitas= sample(c(univ1,univ2,univ3))

gpa= runif(52,min=3.00,max=4.00)
GPA= round(gpa,digits=2)
Gaji= sample(600:1200,52, replace=T)

Karyawan_R = data.frame(No,
                        Nama,
                        Jenis_Kelamin,
                        Tanggal_Lahir,
                        Universitas,
                        GPA,
                        Gaji)
print(Karyawan_R)
##    No Nama Jenis_Kelamin Tanggal_Lahir Universitas  GPA Gaji
## 1   1    A        Wanita    2017-12-01      Swasta 3.41 1157
## 2   2    B        Wanita    2018-12-01      Negeri 3.94 1087
## 3   3    C          Pria    2019-12-01      Negeri 3.22 1140
## 4   4    D          Pria    2020-12-01          LN 3.51  606
## 5   5    E          Pria    2017-12-01      Swasta 3.53  953
## 6   6    F          Pria    2018-12-01      Negeri 3.83 1180
## 7   7    G        Wanita    2019-12-01      Swasta 3.11  661
## 8   8    H        Wanita    2020-12-01      Negeri 3.61  769
## 9   9    I          Pria    2017-12-01      Swasta 3.50 1068
## 10 10    J        Wanita    2018-12-01      Negeri 3.17 1058
## 11 11    K        Wanita    2019-12-01          LN 3.83  998
## 12 12    L        Wanita    2020-12-01      Negeri 3.75  976
## 13 13    M          Pria    2017-12-01      Swasta 3.40 1153
## 14 14    N          Pria    2018-12-01      Negeri 3.44  626
## 15 15    O        Wanita    2019-12-01      Negeri 3.27 1140
## 16 16    P          Pria    2020-12-01          LN 3.19 1117
## 17 17    Q        Wanita    2017-12-01      Negeri 3.14  827
## 18 18    R        Wanita    2018-12-01      Negeri 3.28  969
## 19 19    S        Wanita    2019-12-01      Swasta 3.54  643
## 20 20    T          Pria    2020-12-01      Swasta 3.78  785
## 21 21    U        Wanita    2017-12-01      Swasta 3.61  987
## 22 22    V        Wanita    2018-12-01      Negeri 3.01  828
## 23 23    W          Pria    2019-12-01          LN 3.47  744
## 24 24    X        Wanita    2020-12-01      Negeri 3.16 1031
## 25 25    Y          Pria    2017-12-01      Negeri 3.22  696
## 26 26    Z        Wanita    2018-12-01      Negeri 3.32  730
## 27 27    a        Wanita    2019-12-01      Negeri 3.93  811
## 28 28    b          Pria    2020-12-01      Negeri 3.48  671
## 29 29    c          Pria    2017-12-01      Swasta 3.61  989
## 30 30    d          Pria    2018-12-01          LN 3.29  630
## 31 31    e        Wanita    2019-12-01      Swasta 3.27 1039
## 32 32    f          Pria    2020-12-01      Negeri 3.33 1189
## 33 33    g        Wanita    2017-12-01      Negeri 3.09  940
## 34 34    h          Pria    2018-12-01      Negeri 3.83  864
## 35 35    i          Pria    2019-12-01      Negeri 3.62  685
## 36 36    j        Wanita    2020-12-01      Negeri 3.88  713
## 37 37    k          Pria    2017-12-01      Swasta 3.63 1134
## 38 38    l          Pria    2018-12-01          LN 3.56  885
## 39 39    m        Wanita    2019-12-01          LN 3.08  684
## 40 40    n        Wanita    2020-12-01      Negeri 3.06 1131
## 41 41    o        Wanita    2017-12-01      Negeri 3.96  702
## 42 42    p          Pria    2018-12-01      Negeri 3.46  920
## 43 43    q          Pria    2019-12-01      Swasta 3.55  832
## 44 44    r        Wanita    2020-12-01      Swasta 3.10  653
## 45 45    s        Wanita    2017-12-01      Swasta 3.82  757
## 46 46    t          Pria    2018-12-01          LN 3.80 1031
## 47 47    u        Wanita    2019-12-01      Negeri 3.81  657
## 48 48    v          Pria    2020-12-01      Swasta 3.30 1134
## 49 49    w          Pria    2017-12-01      Negeri 3.48 1104
## 50 50    x          Pria    2018-12-01          LN 3.72  791
## 51 51    y          Pria    2019-12-01      Swasta 3.92 1148
## 52 52    z        Wanita    2020-12-01          LN 3.47 1059

4.1.1 Operasi Indeks,pengirisan Data Frame

Karyawan_R$GPA   # mengekstrak spesifik kolom pada GPA
##  [1] 3.41 3.94 3.22 3.51 3.53 3.83 3.11 3.61 3.50 3.17 3.83 3.75 3.40 3.44 3.27
## [16] 3.19 3.14 3.28 3.54 3.78 3.61 3.01 3.47 3.16 3.22 3.32 3.93 3.48 3.61 3.29
## [31] 3.27 3.33 3.09 3.83 3.62 3.88 3.63 3.56 3.08 3.06 3.96 3.46 3.55 3.10 3.82
## [46] 3.80 3.81 3.30 3.48 3.72 3.92 3.47
class(Karyawan_R)
## [1] "data.frame"
typeof(Karyawan_R)
## [1] "list"
Karyawan_R [1:5] # ekstrak elemen dibaris ke 1 dan kolom ke-5
##    No Nama Jenis_Kelamin Tanggal_Lahir Universitas
## 1   1    A        Wanita    2017-12-01      Swasta
## 2   2    B        Wanita    2018-12-01      Negeri
## 3   3    C          Pria    2019-12-01      Negeri
## 4   4    D          Pria    2020-12-01          LN
## 5   5    E          Pria    2017-12-01      Swasta
## 6   6    F          Pria    2018-12-01      Negeri
## 7   7    G        Wanita    2019-12-01      Swasta
## 8   8    H        Wanita    2020-12-01      Negeri
## 9   9    I          Pria    2017-12-01      Swasta
## 10 10    J        Wanita    2018-12-01      Negeri
## 11 11    K        Wanita    2019-12-01          LN
## 12 12    L        Wanita    2020-12-01      Negeri
## 13 13    M          Pria    2017-12-01      Swasta
## 14 14    N          Pria    2018-12-01      Negeri
## 15 15    O        Wanita    2019-12-01      Negeri
## 16 16    P          Pria    2020-12-01          LN
## 17 17    Q        Wanita    2017-12-01      Negeri
## 18 18    R        Wanita    2018-12-01      Negeri
## 19 19    S        Wanita    2019-12-01      Swasta
## 20 20    T          Pria    2020-12-01      Swasta
## 21 21    U        Wanita    2017-12-01      Swasta
## 22 22    V        Wanita    2018-12-01      Negeri
## 23 23    W          Pria    2019-12-01          LN
## 24 24    X        Wanita    2020-12-01      Negeri
## 25 25    Y          Pria    2017-12-01      Negeri
## 26 26    Z        Wanita    2018-12-01      Negeri
## 27 27    a        Wanita    2019-12-01      Negeri
## 28 28    b          Pria    2020-12-01      Negeri
## 29 29    c          Pria    2017-12-01      Swasta
## 30 30    d          Pria    2018-12-01          LN
## 31 31    e        Wanita    2019-12-01      Swasta
## 32 32    f          Pria    2020-12-01      Negeri
## 33 33    g        Wanita    2017-12-01      Negeri
## 34 34    h          Pria    2018-12-01      Negeri
## 35 35    i          Pria    2019-12-01      Negeri
## 36 36    j        Wanita    2020-12-01      Negeri
## 37 37    k          Pria    2017-12-01      Swasta
## 38 38    l          Pria    2018-12-01          LN
## 39 39    m        Wanita    2019-12-01          LN
## 40 40    n        Wanita    2020-12-01      Negeri
## 41 41    o        Wanita    2017-12-01      Negeri
## 42 42    p          Pria    2018-12-01      Negeri
## 43 43    q          Pria    2019-12-01      Swasta
## 44 44    r        Wanita    2020-12-01      Swasta
## 45 45    s        Wanita    2017-12-01      Swasta
## 46 46    t          Pria    2018-12-01          LN
## 47 47    u        Wanita    2019-12-01      Negeri
## 48 48    v          Pria    2020-12-01      Swasta
## 49 49    w          Pria    2017-12-01      Negeri
## 50 50    x          Pria    2018-12-01          LN
## 51 51    y          Pria    2019-12-01      Swasta
## 52 52    z        Wanita    2020-12-01          LN

4.1.2 Subsetting Data Frame

subset(Karyawan_R, select=Universitas)  # ekstrak spesifik kolom Universitas
##    Universitas
## 1       Swasta
## 2       Negeri
## 3       Negeri
## 4           LN
## 5       Swasta
## 6       Negeri
## 7       Swasta
## 8       Negeri
## 9       Swasta
## 10      Negeri
## 11          LN
## 12      Negeri
## 13      Swasta
## 14      Negeri
## 15      Negeri
## 16          LN
## 17      Negeri
## 18      Negeri
## 19      Swasta
## 20      Swasta
## 21      Swasta
## 22      Negeri
## 23          LN
## 24      Negeri
## 25      Negeri
## 26      Negeri
## 27      Negeri
## 28      Negeri
## 29      Swasta
## 30          LN
## 31      Swasta
## 32      Negeri
## 33      Negeri
## 34      Negeri
## 35      Negeri
## 36      Negeri
## 37      Swasta
## 38          LN
## 39          LN
## 40      Negeri
## 41      Negeri
## 42      Negeri
## 43      Swasta
## 44      Swasta
## 45      Swasta
## 46          LN
## 47      Negeri
## 48      Swasta
## 49      Negeri
## 50          LN
## 51      Swasta
## 52          LN
subset(Karyawan_R, select= GPA)         #subsetting spesifik kolom
##     GPA
## 1  3.41
## 2  3.94
## 3  3.22
## 4  3.51
## 5  3.53
## 6  3.83
## 7  3.11
## 8  3.61
## 9  3.50
## 10 3.17
## 11 3.83
## 12 3.75
## 13 3.40
## 14 3.44
## 15 3.27
## 16 3.19
## 17 3.14
## 18 3.28
## 19 3.54
## 20 3.78
## 21 3.61
## 22 3.01
## 23 3.47
## 24 3.16
## 25 3.22
## 26 3.32
## 27 3.93
## 28 3.48
## 29 3.61
## 30 3.29
## 31 3.27
## 32 3.33
## 33 3.09
## 34 3.83
## 35 3.62
## 36 3.88
## 37 3.63
## 38 3.56
## 39 3.08
## 40 3.06
## 41 3.96
## 42 3.46
## 43 3.55
## 44 3.10
## 45 3.82
## 46 3.80
## 47 3.81
## 48 3.30
## 49 3.48
## 50 3.72
## 51 3.92
## 52 3.47
subset(Karyawan_R, select=c(1,4))       # mengekstrak kolom 1 dan kolom 4
##    No Tanggal_Lahir
## 1   1    2017-12-01
## 2   2    2018-12-01
## 3   3    2019-12-01
## 4   4    2020-12-01
## 5   5    2017-12-01
## 6   6    2018-12-01
## 7   7    2019-12-01
## 8   8    2020-12-01
## 9   9    2017-12-01
## 10 10    2018-12-01
## 11 11    2019-12-01
## 12 12    2020-12-01
## 13 13    2017-12-01
## 14 14    2018-12-01
## 15 15    2019-12-01
## 16 16    2020-12-01
## 17 17    2017-12-01
## 18 18    2018-12-01
## 19 19    2019-12-01
## 20 20    2020-12-01
## 21 21    2017-12-01
## 22 22    2018-12-01
## 23 23    2019-12-01
## 24 24    2020-12-01
## 25 25    2017-12-01
## 26 26    2018-12-01
## 27 27    2019-12-01
## 28 28    2020-12-01
## 29 29    2017-12-01
## 30 30    2018-12-01
## 31 31    2019-12-01
## 32 32    2020-12-01
## 33 33    2017-12-01
## 34 34    2018-12-01
## 35 35    2019-12-01
## 36 36    2020-12-01
## 37 37    2017-12-01
## 38 38    2018-12-01
## 39 39    2019-12-01
## 40 40    2020-12-01
## 41 41    2017-12-01
## 42 42    2018-12-01
## 43 43    2019-12-01
## 44 44    2020-12-01
## 45 45    2017-12-01
## 46 46    2018-12-01
## 47 47    2019-12-01
## 48 48    2020-12-01
## 49 49    2017-12-01
## 50 50    2018-12-01
## 51 51    2019-12-01
## 52 52    2020-12-01

5 Operasi Ganti Nama Variabel pada Data Frame

rename_1= Karyawan_R
names(rename_1)= c("kode",
                  "nama panggilan",
                  "jenis kelamin",
                  "tanggal lahir",
                  "univ",
                  "ipk",
                  "gaji")
rename_1
##    kode nama panggilan jenis kelamin tanggal lahir   univ  ipk gaji
## 1     1              A        Wanita    2017-12-01 Swasta 3.41 1157
## 2     2              B        Wanita    2018-12-01 Negeri 3.94 1087
## 3     3              C          Pria    2019-12-01 Negeri 3.22 1140
## 4     4              D          Pria    2020-12-01     LN 3.51  606
## 5     5              E          Pria    2017-12-01 Swasta 3.53  953
## 6     6              F          Pria    2018-12-01 Negeri 3.83 1180
## 7     7              G        Wanita    2019-12-01 Swasta 3.11  661
## 8     8              H        Wanita    2020-12-01 Negeri 3.61  769
## 9     9              I          Pria    2017-12-01 Swasta 3.50 1068
## 10   10              J        Wanita    2018-12-01 Negeri 3.17 1058
## 11   11              K        Wanita    2019-12-01     LN 3.83  998
## 12   12              L        Wanita    2020-12-01 Negeri 3.75  976
## 13   13              M          Pria    2017-12-01 Swasta 3.40 1153
## 14   14              N          Pria    2018-12-01 Negeri 3.44  626
## 15   15              O        Wanita    2019-12-01 Negeri 3.27 1140
## 16   16              P          Pria    2020-12-01     LN 3.19 1117
## 17   17              Q        Wanita    2017-12-01 Negeri 3.14  827
## 18   18              R        Wanita    2018-12-01 Negeri 3.28  969
## 19   19              S        Wanita    2019-12-01 Swasta 3.54  643
## 20   20              T          Pria    2020-12-01 Swasta 3.78  785
## 21   21              U        Wanita    2017-12-01 Swasta 3.61  987
## 22   22              V        Wanita    2018-12-01 Negeri 3.01  828
## 23   23              W          Pria    2019-12-01     LN 3.47  744
## 24   24              X        Wanita    2020-12-01 Negeri 3.16 1031
## 25   25              Y          Pria    2017-12-01 Negeri 3.22  696
## 26   26              Z        Wanita    2018-12-01 Negeri 3.32  730
## 27   27              a        Wanita    2019-12-01 Negeri 3.93  811
## 28   28              b          Pria    2020-12-01 Negeri 3.48  671
## 29   29              c          Pria    2017-12-01 Swasta 3.61  989
## 30   30              d          Pria    2018-12-01     LN 3.29  630
## 31   31              e        Wanita    2019-12-01 Swasta 3.27 1039
## 32   32              f          Pria    2020-12-01 Negeri 3.33 1189
## 33   33              g        Wanita    2017-12-01 Negeri 3.09  940
## 34   34              h          Pria    2018-12-01 Negeri 3.83  864
## 35   35              i          Pria    2019-12-01 Negeri 3.62  685
## 36   36              j        Wanita    2020-12-01 Negeri 3.88  713
## 37   37              k          Pria    2017-12-01 Swasta 3.63 1134
## 38   38              l          Pria    2018-12-01     LN 3.56  885
## 39   39              m        Wanita    2019-12-01     LN 3.08  684
## 40   40              n        Wanita    2020-12-01 Negeri 3.06 1131
## 41   41              o        Wanita    2017-12-01 Negeri 3.96  702
## 42   42              p          Pria    2018-12-01 Negeri 3.46  920
## 43   43              q          Pria    2019-12-01 Swasta 3.55  832
## 44   44              r        Wanita    2020-12-01 Swasta 3.10  653
## 45   45              s        Wanita    2017-12-01 Swasta 3.82  757
## 46   46              t          Pria    2018-12-01     LN 3.80 1031
## 47   47              u        Wanita    2019-12-01 Negeri 3.81  657
## 48   48              v          Pria    2020-12-01 Swasta 3.30 1134
## 49   49              w          Pria    2017-12-01 Negeri 3.48 1104
## 50   50              x          Pria    2018-12-01     LN 3.72  791
## 51   51              y          Pria    2019-12-01 Swasta 3.92 1148
## 52   52              z        Wanita    2020-12-01     LN 3.47 1059
LS0tCnRpdGxlOiAiQWxnb3JpdG1hIGRhbiBzdHJ1a3R1ciBEYXRhIgpzdWJ0aXRsZTogIlR1Z2FzIDMiCmF1dGhvcjogIkthcmVuIE5hdGFsaWUoMjAyMDQ5MjAwMTUpIgpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDogCiAgICBodG1sX2RvY3VtZW50OiBudWxsCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogeWVzCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcwogICAgY29kZV9kb3dubG9hZDogeWVzCiAgICB0aGVtZTogc2FuZHN0b25lCiAgICBjc3M6IHN0eWxlMS5jc3MKICAgIGhpZ2hsaWdodDogbW9ub2Nocm9tZQotLS0KCgo8aW1nIHN0eWxlPSJmbG9hdDogcmlnaHQ7IG1hcmdpbjogMHB4IDEwMHB4IDBweCAwcHg7IHdpZHRoOjI1JSIgc3JjPSJrYXJlbm5hdGFsaWUucG5nIj4gCgpgYGB7ciBsb2dvLCBlY2hvPUZBTFNFLGZpZy5hbGlnbj0nY2VudGVyJywgb3V0LndpZHRoID0gJzMwJSd9CmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJsb2dvdW5pdmVyc2l0YXNtYXRhbmEucG5nIikKYGBgCgpFbWFpbCAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDs6ICBuYXRhbGllZWthcmVuQGdtYWlsLmNvbSA8YnI+ClJQdWJzICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IGh0dHBzOi8vcnB1YnMuY29tL2thcmVubmF0YWxpZS8gPGJyPgpKdXJ1c2FuICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFtTdGF0aXN0aWthXShodHRwczovL21hdGFuYXVuaXZlcnNpdHkuYWMuaWQvP2x5PWFjYWRlbWljJmM9c2IpIDxicj4KQWRkcmVzcyAgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogQVJBIENlbnRlciwgTWF0YW5hIFVuaXZlcnNpdHkgVG93ZXIgPGJyPgombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyBKbC4gQ0JEIEJhcmF0IEthdiwgUlQuMSwgQ3VydWcgU2FuZ2VyZW5nLCBLZWxhcGEgRHVhLCBUYW5nZXJhbmcsIEJhbnRlbiAxNTgxMC4KCgoqKioqCiMgTWVtYnVhdCBQcm9ncmFtIGRlbmdhbiBsaXN0IAoqIEJ1YXQgc2VidWFoIGxpc3QgdW50dWsgbWVueWltcGFuIDUgb3JhbmcgdGVtYW4gZGVrYXRtdTxicj4KKiBQaWxpaGxhaCBzYXR1IG9yYW5nIGRhcmkgbGlzdCB0ZXJzZWJ1dCB5YW5nIG1lbmphZGkgdGVtYW4gcGFsaW5nIGRla2F0bXUgZGVuZ2FuIG1lbmdndW5ha2FuIGluZGV4PGJyPgoqIEdhbnRpbGFoIHNhdHUgb3JhbmcgeWFuZyB0aWRhayBiZWdpdHUgZGVrYXQgZGVuZ2FubXUgZGVuZ2FuIHRlbWFuIGJhcnUgeWFuZyBrYW11IHRlbXVpIGJhcnUtYmFydSBpbmk8YnI+CiogQmFnYWltYW5hIGNhcmFueWEgYW5kYSBtZW5naGl0dW5nIGJhbnlhayB0ZW1hbiB5YW5nIGFkYSBkYWxhbSBsaXN0IHRlcnNlYnV0PGJyPgoKIyMgTWVueWlzaXBrYW4gNSBvcmFuZyB0ZW1hbiB0ZXJkZWthdCBkYWxhbSBMaXN0CmBgYHtyfQpsaXN0MCA9IGxpc3QoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbWVtYnVhdCBsaXN0IGtvc29uZwpsaXN0MSA9IGxpc3QoIkplIiwiR2xvcnkiLCJNYXJrIiwiSm9oaG55IiwiSmVubyIpICAjbWVtYnVhdCBsaXN0IGlzaSA1IGl0ZW0ga2FyYWt0ZXIobmFtYSkKcHJpbnQoYyhsaXN0MCxsaXN0MSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50IGtlZHVhIGxpc3QKYGBgCgojIyBNZW1pbGloIDEgb3JhbmcgdGVtYW4gdGVyZGVrYXQgbWVuZ2d1bmFrYW4gaW5kZXgKYGBge3J9Cmxpc3QyID0gbGlzdCgiSmUiLCJHbG9yeSIsIk1hcmsiLCJKb2hobnkiLCJKZW5vIikgI21lbWJ1YXQgbGlzdCBpc2kgNSBpdGVtIGthcmFrdGVyKG5hbWEpCnByaW50KGxpc3QyWzNdKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwcmludCBrYXJha3RlciBwYWRhIGluZGVrcyAzCmBgYAojIyBNZW5nZ2FudGkgMSBvcmFuZyB0ZW1hbiB0YWsgdGVyZGVrYXQgZGVuZ2FuIHRlbWFuIHlhbmcgYmFydSBkaXRlbXVpIApgYGB7cn0KbGlzdDMgPSBsaXN0KCJKZSIsIkdsb3J5IiwiTWFyayIsIkpvaGhueSIsIkplbm8iKSAgI21lbWJ1YXQgbGlzdCBpc2kgNSBpdGVtIGthcmFrdGVyKG5hbWEpCmxpc3QzWzRdPSAiSGFlY2hhbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNtZW5ndWJhaCBpdGVtIEpvaG5ueSBtZW5qYWRpIEhhZWNoYW4KcHJpbnQobGlzdDMpCmBgYAojIyBNZW5naGl0dW5nIGJhbnlhayB0ZW1hbiBkYWxhbSBsaXN0CmBgYHtyfQpsZW5ndGgobGlzdDEpICAgICAgICMgbWVuZ2V0YWh1aSBKdW1sYWggYW5nZ290YSBkYXJpIGxpc3QxCmBgYAoKIyBNZW55aW1wYW4gaXRlbSBkYWxhbSBUdXBsZQpCdWF0bGFoIGNvbnRvaCBtZW55aW1wYW4gc2VrdW1wdWxhbiB0dXBsZSBkZW5nYW4gUiwgZGVuZ2FuIG1lbmdpa3V0aSBpbnN0cnVrc2kgYmVyaWt1dDo8YnI+CiogQnVhdGxhaCBUdXBsZSBkZW5nYW4gNSBpdGVtIGRpZGFsYW1ueWE8YnI+CiogUGVybGloYXRrYW4gY2FyYSBNZW5nYWtzZXMgTmlsYWkgVHVwbGU8YnI+CiogQmFnYWltYW5hIGFuZGEgbWVsYWt1a2FuIFNsaWNpbmcgTmlsYWkgVHVwbGU8YnI+CiogTmVzdGVkIFR1cGxlPGJyPgoqIFVucGFja2luZyBTZXF1ZW5jZTxicj4KCiMjIE1lbnlpc2lwa2FuIDUgaXRlbSBrZWRhbGFtIFR1cGxlCmBgYHtyfQpsaWJyYXJ5KHNldHMpCiNtZW55aXNpcGthbiA1IGl0ZW0KdHVwbGUxID0gdHVwbGUoImFsd2F5cyIsICJicmluZyIsICJ5b3VyIiwgIm93biIsICJzdW5zaGluZSIpICNNZW1idWF0IHR1cGxlMSBkZW5nYW4gNSBpdGVtCnR1cGxlMiA9IHR1cGxlKCJ0b2RheSIsICJpcyIsICJhIiwgImdyZWF0IiwgImRheSIpICAgICAgICAgICAjTWVtYnVhdCB0dXBsZTIgZGVuZ2FuIDUgaXRlbQpwcmludCh0dXBsZTEpCnByaW50KHR1cGxlMikKYGBgCiMjIE1lbmdha3NlcyBOaWxhaSBUdXBsZQpgYGB7cn0KcHJpbnQodHVwbGUxWzFdKQpwcmludCh0dXBsZTFbMl0pCnByaW50KHR1cGxlMVszXSkKcHJpbnQodHVwbGUxWzRdKQpwcmludCh0dXBsZTFbNV0pCmBgYAojIyBNZWxha3VrYW4gU2NpbGxpbmcgTmlsYWkgVHVwbGUKYGBge3J9CnByaW50KHR1cGxlMVsxOjJdKQpwcmludCh0dXBsZTFbM10pCnByaW50KHR1cGxlMVs1XSkKcHJpbnQodHVwbGUxWzQ6NV0pCnByaW50KHR1cGxlMVsxOjVdKQpwcmludCh0dXBsZTFbMl0pCmBgYAojIyBOZXN0ZWQgVHVwbGUgCmBgYHtyfQp0dXBsZTMgPSBjKHR1cGxlMSwgdHVwbGUyKSAgI01lbWFzdWtrYW4gdHVwbGUgMSBkYW4gdHVwbGUgMiBzZWNhcmEgYmVyc2FtYQp0dXBsZTQgPSByZXAodHVwbGUyLCAyMykgICAgI01lbmd1bGFuZyBUdXBsZTIgc2ViYW55YWsgMjMga2FsaQp0dXBsZTUgPSByZXAodHVwbGUxLCAyMikgICAgI01lbmd1bGFuZyBUdXBsZTEgc2ViYW55YWsgMjIga2FsaSAKcHJpbnQodHVwbGUzKSAgICAgICAgICAgICAgIApwcmludCh0dXBsZTQpCnByaW50KHR1cGxlNSkKYGBgCiMjIFVucGFja2luZyBTZXF1ZW5jZQpgYGB7cn0KdHVwbGUxID0gIHR1cGxlKCJhbHdheXMiLCAiYnJpbmciLCAieW91ciIsICJvd24iLCAic3Vuc2hpbmUiKSAjTWVtYnVhdCB0dXBsZTEgZGVuZ2FuIDUgaXRlbQpuYW1lcyAodHVwbGUxKSA9IGMoImluZGV4MSIsICJpbmRleDIiLCAiaW5kZXgzIiwgImluZGV4NCIsICJpbmRleDUiKQpwcmludCh0dXBsZTEpCmBgYApgYGB7cn0KdHVwbGUyID0gdHVwbGUoInRvZGF5IiwgImlzIiwgImEiLCAiZ3JlYXQiLCAiZGF5IikgICAgICAgICAgICNNZW1idWF0IHR1cGxlMiBkZW5nYW4gNSBpdGVtCm5hbWVzKHR1cGxlMikgPSBjKCJpbmRleDEiLCAiaW5kZXgyIiwgImluZGV4MyIsICJpbmRleDQiLCAiaW5kZXg1IikKcHJpbnQodHVwbGUyKQpgYGAKIyBQZW55aW1wYW5hbiBEaWN0aW9uYXJ5CkJ1YXRsYWggY29udG9oIG1lbnlpbXBhbiBzZWt1bXB1bGFuIERpY3Rpb25hcnkgZGVuZ2FuIFIsIHlhbmcgbWVtdWF0IHR5cGUgZGF0YSBmbG9hdCwgaW50ZWdlciwgY2hhcmFjdGVyLCBkYW4gbG9naWNhbCwgbGlzdCwgdHVwbGUsIGRpY3Rpb25hcnkgZGVuZ2FuIG1lbmdpa3V0aSBpbnN0cnVrc2kgYmVyaWt1dDo8YnI+CiogQWtzZXMgc3VhdHUgbmlsYWkgSXRlbSBkYXJpIERpY3Rpb25hcnk8YnI+CiogVWJhaCBzdWF0dSBOaWxhaSBJdGVtIHBhZGEgRGljdGlvbmFyeTxicj4KKiBNZW5hbWJhaGthbiBJdGVtIGtlIERpY3Rpb25hcnk8YnI+CiogTWVuZ2hhcHVzIEl0ZW0gZGFyaSBEaWN0aW9uYXJ5PGJyPgoKIyMgTWVuZ2Frc2VzIG5pbGFpIGl0ZW0gZGFsYW0gRGljdGlvbmFyeQpgYGB7cn0KbGlicmFyeShEaWN0KQpgYGAKCmBgYHtyfQprYXJlbm5hdGFsaWUgPC0gZGljdCgKICAgICAgICAgICAgICAgICAgIm5hbWEiICAgID0iS2FyZW4gTmF0YWxpZSIsCiAgICAgICAgICAgICAgICAgICJ1bXVyIiAgICA9IGFzLmludGVnZXIoMTgpLAogICAgICAgICAgICAgICAgICAiaG9iaSIgICAgPSBsaXN0KCJtZW1idWF0IGJlYWRzIGtleXJpbmciLCAicGFpbnRpbmcgZGlnaXRhbCIsICJub250b24gZmlsbSIpLAogICAgICAgICAgICAgICAgICAiYXNhbCIgPSAiQmFuZGFyIExhbXB1bmciKQpjYXQoIm5hbWEgc2F5YSBhZGFsYWggOiIsIGthcmVubmF0YWxpZSRnZXQoJ25hbWEnKSkKYGBgCmBgYHtyfQpwcmludChrYXJlbm5hdGFsaWUkZ2V0KCdhc2FsJykpCmBgYCAKCmBgYAojIyBVYmFoIHN1YXR1IE5pbGFpIEl0ZW0gcGFkYSBEaWN0aW9uYXJ5CgpgYGB7cn0Ka2FyZW5uYXRhbGllWyduYW1hJ109ICJLYXJlbiBOYXRhbGllIgprYXJlbm5hdGFsaWVbJ2hvYmknXT0gIm1lbWJ1YXQgYmVhZHMga2V5cmluZyI7InBhaW50aW5nIGRpZ2l0YWwiOyJub250b24gZmlsbSIKa2FyZW5uYXRhbGllWydhc2FsJ109ICJCYW5kYXIgTGFtcHVuZyIKcHJpbnQoa2FyZW5uYXRhbGllKQpgYGAKIyMgdGFtYmFoIGl0ZW0gZGFsYW0gRGljdGlvbmFyeQpgYGB7cn0Ka2FyZW5uYXRhbGllJGFkZCh1bXVyPTE4TCkKcHJpbnQoa2FyZW5uYXRhbGllKQpgYGAKIyMgTWVuZ2hhcHVzIGl0ZW0gZGFsYW0gRGljdGlvbmFyeQpgYGB7cn0Ka2FyZW5uYXRhbGllJHJlbW92ZSgiaG9iaSIpCnByaW50KGthcmVubmF0YWxpZSkKYGBgCiMgb3BlcmFzaSBQZW5naW5kZWtzYW4sIFBlbmdpcmlzYW4sIGRhbiBTdWJzZXR0aW5nIERhdGEgRnJhbWUKU2lsYWhrYW4gdW50dWsgbWVuZW11a2FuIG9wZXJhc2kgUGVuZ2luZGVrc2FuLCBQZW5naXJpc2FuLCBkYW4gU3Vic2V0dGluZyBEYXRhIEZyYW1lIGRlbmdhbiBNZW5nZ3VuYWthbiBSPGJyPgojIyBEYXRhIGZyYW1lCmBgYHtyfQojIG1lbWJlbnR1ayBkYXRhIGZyYW1lIDEKZGYxX1IgPC0gZGF0YS5mcmFtZShub21vciA9YygxOjUpLAogICAgICAgICAgICAgICAgICAgICJuYW1hIiAgPWMoImdsb3J5IiwiamUiLCJub3BpIiwibWFyayIsImpvaG5ueSIpLAogICAgICAgICAgICAgICAgICAgICJhbmdrYXRhbiIgPWMoIjIwMTkiLCIyMDE5IiwiMjAyMCIsIjIwMjAiLCIyMDE4IiksCiAgICAgICAgICAgICAgICAgICAgImp1cnVzYW4gc21hIiA9YygiaXBzIiwiaXBhIiwiaXBhIiwiaXBzIiwiaXBzIiksCiAgICAgICAgICAgICAgICAgICAgInBlbGFqYXJhbiBmYXZvcml0IiA9YygibXRrIiwiYmlvbG9naSIsImthbGt1bHVzIiwic29zaW9sb2dpIiwic2VqYXJhaCIpLAogICAgICAgICAgICAgICAgICAgICJyYW5rIiA9YygiMyIsIjUiLCI2IiwiOSIsIjIiKSwKICAgICAgICAgICAgICAgICAgICAiZWtzdHJha3VyaWt1bGVyIiA9IGMoImVuZ2xpc2ggY2x1YiIsInJvYm90aWMiLCJtb2Rlcm4gZGFuY2UiLCJtZW1haGF0LCIsInByYW11a2EiKQogICAgICAgICAgICAgICAgICAgICkKI21lbWJlbnR1ayBkYXRhIGZyYW1lIDIKZGYyX1IgPC0gZGF0YS5mcmFtZShub21vciA9YygxOjUpLAogICAgICAgICAgICAgICAgICAgICJuYW1hIiAgPWMoImV2aWUiLCJkaWFuIiwieWFudGkiLCJqaG9uc29uIiwic3VoIiksCiAgICAgICAgICAgICAgICAgICAgImFuZ2thdGFuIiA9YygiMjAyMCIsIjIwMjAiLCIyMDIxIiwiMjAyMSIsIjIwMTkiKSwKICAgICAgICAgICAgICAgICAgICAianVydXNhbiBzbWEiID1jKCJpcHMiLCJpcGEiLCJpcGEiLCJpcHMiLCJpcHMiKSwKICAgICAgICAgICAgICAgICAgICAicGVsYWphcmFuIGZhdm9yaXQiID1jKCJwa24iLCJraW1pYSIsImZpc2lrYSIsImdlb2dyYWZpIiwiaW5nZ3JpcyIpLAogICAgICAgICAgICAgICAgICAgICJyYW5rIiA9YygiMSIsIjQiLCIyIiwiMyIsIjUiKSwKICAgICAgICAgICAgICAgICAgICAiZWtzdHJha3VyaWt1bGVyIiA9IGMoImtvbGludGFuZyIsImJhbmQiLCJwYWR1YW4gc3VhcmEiLCJmdXRzYWwsIiwiYmFza2V0IikKICAgICAgICAgICAgICAgICAgICApCmBgYAojIyMgUGVuZ2dhYnVuZ2FuIDIgZnJhbWUKYGBge3J9CmRmM19SID0gcmJpbmQoZGYxX1IsZGYyX1IpICMgbWVuZ2dhYnVuZ2thbiBkYXRhIGZyYW1lIDEgZGFuIDIKYGBgCiMjIyBpbmRla3MgZGF0YSBmcmFtZQpgYGB7cn0KcHJpbnQoZGYzX1IpCmBgYAojIyMgZGltZW5zaSBkYXJhIGZyYW1lCmBgYHtyfQpkaW0oZGYzX1IpICAjbWVtZXJpa3NhIGRpbWVuc2kgZGF0YSBmcmFtZQpgYGAKIyMjIHN0cnVrdHVyIGRhdGEgZnJhbWUKYGBge3J9CnN0cihkZjNfUikgICNtZW1lcmlrc2Egc3RydWtydXQgZGF0YSBmcmFtZQpgYGAKIyMjIHN1bW1hcnkgZGF0YSBmcmFtZQpgYGB7cn0Kc3VtbWFyeShkZjNfUikgICNzdW1tYXJ5IHN0YXRpc3RpayBkYXRhIGZyYW1lCmBgYAojIyBEYXRhIGZyYW1lCmBgYHtyfQpObz0oMTo1MikKTmFtYT0gYyhMRVRURVJTLGxldHRlcnMpCkplbmlzX0tlbGFtaW49IHNhbXBsZShyZXAoYygiV2FuaXRhIiwiUHJpYSIpLCB0aW1lcz0yNikpCgojIE1lbmdoYXNpbGthbiB0YW5nZ2FsIGxhaGlyIGRlbmdhbiB0aW1lIHNlcmllcwp0aWdhX3RhaHVuID0gc2VxKGFzLkRhdGUoIjIwMTcvMTIvMDEiKSwgYnk9InllYXIiLGxlbmd0aC5vdXQ9NCkKVGFuZ2dhbF9MYWhpciA9IHJlcCh0aWdhX3RhaHVuLHRpbWVzPTEzKQoKIyBLYXRlZ29yaSBVbml2ZXJzaXRhcwp1bml2MT0gcmVwKCJOZWdlcmkiLCB0aW1lcz0yNikKdW5pdjI9IHJlcCgiU3dhc3RhIiwgdGltZXM9MTYpCnVuaXYzPSByZXAoIkxOIiwgdGltZXM9MTApClVuaXZlcnNpdGFzPSBzYW1wbGUoYyh1bml2MSx1bml2Mix1bml2MykpCgpncGE9IHJ1bmlmKDUyLG1pbj0zLjAwLG1heD00LjAwKQpHUEE9IHJvdW5kKGdwYSxkaWdpdHM9MikKR2FqaT0gc2FtcGxlKDYwMDoxMjAwLDUyLCByZXBsYWNlPVQpCgpLYXJ5YXdhbl9SID0gZGF0YS5mcmFtZShObywKICAgICAgICAgICAgICAgICAgICAgICAgTmFtYSwKICAgICAgICAgICAgICAgICAgICAgICAgSmVuaXNfS2VsYW1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgVGFuZ2dhbF9MYWhpciwKICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0YXMsCiAgICAgICAgICAgICAgICAgICAgICAgIEdQQSwKICAgICAgICAgICAgICAgICAgICAgICAgR2FqaSkKcHJpbnQoS2FyeWF3YW5fUikKYGBgCiMjIyBPcGVyYXNpIEluZGVrcyxwZW5naXJpc2FuIERhdGEgRnJhbWUKYGBge3J9CgpLYXJ5YXdhbl9SJEdQQSAgICMgbWVuZ2Vrc3RyYWsgc3Blc2lmaWsga29sb20gcGFkYSBHUEEKYGBgCmBgYHtyfQpjbGFzcyhLYXJ5YXdhbl9SKQpgYGAKYGBge3J9CnR5cGVvZihLYXJ5YXdhbl9SKQpgYGAKYGBge3J9Ckthcnlhd2FuX1IgWzE6NV0gIyBla3N0cmFrIGVsZW1lbiBkaWJhcmlzIGtlIDEgZGFuIGtvbG9tIGtlLTUKYGBgCiMjIyBTdWJzZXR0aW5nIERhdGEgRnJhbWUKYGBge3J9CnN1YnNldChLYXJ5YXdhbl9SLCBzZWxlY3Q9VW5pdmVyc2l0YXMpICAjIGVrc3RyYWsgc3Blc2lmaWsga29sb20gVW5pdmVyc2l0YXMKYGBgCmBgYHtyfQpzdWJzZXQoS2FyeWF3YW5fUiwgc2VsZWN0PSBHUEEpICAgICAgICAgI3N1YnNldHRpbmcgc3Blc2lmaWsga29sb20KYGBgCmBgYHtyfQpzdWJzZXQoS2FyeWF3YW5fUiwgc2VsZWN0PWMoMSw0KSkgICAgICAgIyBtZW5nZWtzdHJhayBrb2xvbSAxIGRhbiBrb2xvbSA0CmBgYAojIE9wZXJhc2kgR2FudGkgTmFtYSBWYXJpYWJlbCBwYWRhIERhdGEgRnJhbWUKYGBge3J9CnJlbmFtZV8xPSBLYXJ5YXdhbl9SCm5hbWVzKHJlbmFtZV8xKT0gYygia29kZSIsCiAgICAgICAgICAgICAgICAgICJuYW1hIHBhbmdnaWxhbiIsCiAgICAgICAgICAgICAgICAgICJqZW5pcyBrZWxhbWluIiwKICAgICAgICAgICAgICAgICAgInRhbmdnYWwgbGFoaXIiLAogICAgICAgICAgICAgICAgICAidW5pdiIsCiAgICAgICAgICAgICAgICAgICJpcGsiLAogICAgICAgICAgICAgICAgICAiZ2FqaSIpCnJlbmFtZV8xCmBgYAojIFJlZmVyZW5zaQpodHRwczovL3JwdWJzLmNvbS9kc2NpZW5jZWxhYnMvCg==