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


1 Membuat Program Dengan List

1.1 Buat sebuah list untuk menyimpan 5 orang teman dekatmu

list0 = list()                                                                               # Membuat list kosong
list1 = list("Tiara Agatha","Amira Humairah","Yelika Adenia","Salsabila","Zulfah Fauziah")   # Membuat sebuah list berisi 5 nama teman dekat
print(c(list0,list1))                                                                        # Print hasil list0 dan list1
## [[1]]
## [1] "Tiara Agatha"
## 
## [[2]]
## [1] "Amira Humairah"
## 
## [[3]]
## [1] "Yelika Adenia"
## 
## [[4]]
## [1] "Salsabila"
## 
## [[5]]
## [1] "Zulfah Fauziah"

1.2 Pilihlah satu orang dari list tersebut yang menjadi teman paling dekatmu dengan menggunakan index

list2 = list("Tiara Agatha","Amira Humairah","Yelika Adenia","Salsabila","Zulfah Fauziah")   # Membuat list 5 nama teman dekat
print(list2[2])                                                                              # Print nilai pada index 2
## [[1]]
## [1] "Amira Humairah"

1.3 Gantilah satu orang yang tidak begitu dekat denganmu dengan teman baru yang kamu temui baru-baru ini

list3 = list("Tiara Agatha","Amira Humairah","Yelika Adenia","Salsabila","Zulfah Fauziah")   # Membuat list isi 5 nama teman dekat
list3[5] = "Urfi Lutfiana"                                                                   # Mengganti item Zulfah Fauziah menjadi Urfi Lutfiana
print(list3)
## [[1]]
## [1] "Tiara Agatha"
## 
## [[2]]
## [1] "Amira Humairah"
## 
## [[3]]
## [1] "Yelika Adenia"
## 
## [[4]]
## [1] "Salsabila"
## 
## [[5]]
## [1] "Urfi Lutfiana"

1.4 Bagaimana caranya anda menghitung banyak teman yang ada dalam list tersebut

length(list3)                                                                                # Menghitung jumlah item dalam sebuah list
## [1] 5

2 Menyimpan sekumpulan tuple

2.1 Tuple dengan 5 item didalamnya

library(sets)                                                                                # Memanggil libary
tuple1 = tuple("Gelas", "sendok", "garpu", "piring", "tas")                                  # Membuat tuple dengan 7 item
tuple2 = tuple("Uang", "sumpit", "papan", "pensil", "penghapus")                             # Membuat tuple dengan 5 item
print(tuple1)
## ("Gelas", "sendok", "garpu", "piring", "tas")
print(tuple2)                                               
## ("Uang", "sumpit", "papan", "pensil", "penghapus")

2.2 Mengakses Nilai Tuple

print(tuple1[1])
## ("Gelas")
print(tuple1[2])
## ("sendok")
print(tuple1[3])
## ("garpu")
print(tuple1[4])
## ("piring")
print(tuple1[5])
## ("tas")

2.3 Melakukan Slicing Nilai Tuple

print(tuple2[1:2])
## ("Uang", "sumpit")
print(tuple2[3:5])
## ("papan", "pensil", "penghapus")
print(tuple2[1:5])
## ("Uang", "sumpit", "papan", "pensil", "penghapus")

2.4 Nested Tuple

tuple3 = c(tuple1, tuple2)
tuple4 = rep(tuple1, 30)
tuple5 = rep(tuple2, 30)
print(tuple3)
## ("Gelas", "sendok", "garpu", "piring", "tas", "Uang", "sumpit",
##  "papan", "pensil", "penghapus")
print(tuple4)
## ("Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas",
##  "Gelas", "sendok", "garpu", "piring", "tas", "Gelas", "sendok",
##  "garpu", "piring", "tas", "Gelas", "sendok", "garpu", "piring", "tas")
print(tuple5)
## ("Uang", "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit",
##  "papan", "pensil", "penghapus", "Uang", "sumpit", "papan", "pensil",
##  "penghapus", "Uang", "sumpit", "papan", "pensil", "penghapus", "Uang",
##  "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit", "papan",
##  "pensil", "penghapus", "Uang", "sumpit", "papan", "pensil",
##  "penghapus", "Uang", "sumpit", "papan", "pensil", "penghapus", "Uang",
##  "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit", "papan",
##  "pensil", "penghapus", "Uang", "sumpit", "papan", "pensil",
##  "penghapus", "Uang", "sumpit", "papan", "pensil", "penghapus", "Uang",
##  "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit", "papan",
##  "pensil", "penghapus", "Uang", "sumpit", "papan", "pensil",
##  "penghapus", "Uang", "sumpit", "papan", "pensil", "penghapus", "Uang",
##  "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit", "papan",
##  "pensil", "penghapus", "Uang", "sumpit", "papan", "pensil",
##  "penghapus", "Uang", "sumpit", "papan", "pensil", "penghapus", "Uang",
##  "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit", "papan",
##  "pensil", "penghapus", "Uang", "sumpit", "papan", "pensil",
##  "penghapus", "Uang", "sumpit", "papan", "pensil", "penghapus", "Uang",
##  "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit", "papan",
##  "pensil", "penghapus", "Uang", "sumpit", "papan", "pensil",
##  "penghapus", "Uang", "sumpit", "papan", "pensil", "penghapus", "Uang",
##  "sumpit", "papan", "pensil", "penghapus", "Uang", "sumpit", "papan",
##  "pensil", "penghapus")

2.5 Unpacking Sequence

tuple1 = tuple("Gelas", "sendok", "garpu", "piring", "tas")                               # Membuat tuple dengan 5 item
names (tuple1) = c("index1", "index2", "index3", "index4", "index5")
print(tuple1)
## (index1 = "Gelas", index2 = "sendok", index3 = "garpu", index4 =
##  "piring", index5 = "tas")
tuple2 = tuple("Uang", "sumpit", "papan", "pensil", "penghapus")                          # Membuat tuple dengan 5 item
names(tuple2) = c("index1", "index2", "index3", "index4", "index5")
print(tuple2)
## (index1 = "Uang", index2 = "sumpit", index3 = "papan", index4 =
##  "pensil", index5 = "penghapus")

3 Menyimpan sekumpulan Dictionary dengan R, yang memuat type data float, integer, character, dan logical, list, tuple, dictionary

3.1 Akses suatu nilai Item dari Dictionary

library(Dict)
## 
## Attaching package: 'Dict'
## The following object is masked from 'package:sets':
## 
##     %>%
yeninawn <- dict(
                  "nama"    ="Yeni Nur",
                  "umur"    = as.integer(18),
                  "hobi"    = list("Membaca", "Design", "Menonton film"),
                  "asal" = "Bogor")
cat("nama saya adalah :", yeninawn$get('nama'))
## nama saya adalah : Yeni Nur
cat("saya tinggal di :", yeninawn$get('asal'))
## saya tinggal di : Bogor
cat("Nama saya adalah :", yeninawn$get('nama'))
## Nama saya adalah : Yeni Nur
print(yeninawn$get('hobi'))                                                               # Mengakses isi dictionary
## [[1]]
## [1] "Membaca"
## 
## [[2]]
## [1] "Design"
## 
## [[3]]
## [1] "Menonton film"

3.2 Ubah suatu Nilai Item pada Dictionary

yeninawn['nama'] = "Yeni Nur Arwanti"                                                     # Mengubah nilai item dictionary
print(yeninawn$get('nama'))
## [1] "Yeni Nur Arwanti"

3.3 Menambahkan Item ke Dictionary

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

3.4 Menghapus Item dari Dictionary

yeninawn$remove('umur')                                                                   # menghapus umur pada dict
print(yeninawn)
## # A tibble: 3 x 2
##   key   value     
##   <chr> <list>    
## 1 asal  <chr [1]> 
## 2 hobi  <list [3]>
## 3 nama  <chr [1]>

4 Operasi Pengindeksan, Pengirisan, dan Subsetting Data Frame dengan Menggunkan R

# Membentuk Data Frame 1
df1_R = data.frame(nomor =c(1:5),
                    "Nama"  =c("Tiara","Esther","Yelika","Fano","Divo"),
                    "Angkatan Sekolah" =c("2018","2018","2019","2019","2018"),
                    "Jurusan" =c("ipa","ipa","ips","ips","ips"),
                    "mata pelajaran favorit" =c("mtk","fisika","ekonomi","sosiologi","sejarah"),
                    "ranking kelas" =c("1","2","10","21","3"),
                    "hobi" = c("dance","membaca","menyanyi","berpidato","berenang")
                     )
# Membentuk Data Frame 2
df2_R = data.frame(nomor =c(1:5),
                    "Nama"  =c("Rani","Irfan","Diana","Ashfy","Dea"),
                    "Angkatan Sekolah" =c("2020","2020","2021","2021","2019"),
                    "Jurusan" =c("ips","ipa","ipa","ips","ips"),
                    "mata pelajaran favorit" =c("Olahraga","kimia","fisika","Indonesia","Jepang"),
                    "rangking kelas" =c("10","11","12","13","15"),
                    "hobi" = c("berenang","menyanyi","berpidato","membaca","dance")
                    )

4.1 Penggabungan dua data frame

df3_R = rbind("df1_R","df2_R")                                                             # Menggabungkan Data Frame 1 dan Data Frame 2

4.2 Indeks data frame

print('df3_R')                                                                            # Operasi data frame
## [1] "df3_R"
head('df3_R')                                                                             # mencetak beberapa baris awal pada data frame
## [1] "df3_R"
tail('df3_R')                                                                              # Mencetak 6 baris dari bawah
## [1] "df3_R"
head('df3_R' ,4)                                                                           # Mencetak 5 baris dari pertama
## [1] "df3_R"
#view(df3_R)                                                                               # Melihat data frame di Rstudio seperti Excel

4.3 Dimensi data frame

dim(df3_R)                                                                                 # Memeriksa dimensi data frame
## [1] 2 1

4.4 Struktur data frame

str(df3_R)                                                                                 # Memeriksa strukrut data frame
##  chr [1:2, 1] "df1_R" "df2_R"

4.5 Summary data frame

summary(df3_R)                                                                             # Summary statistik data frame
##       V1           
##  Length:2          
##  Class :character  
##  Mode  :character

4.6 Operasi indeks, Pengirisan 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("2020/11/11"), 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    2020-11-11      Negeri 3.92  824
## 2   2    B        Wanita    2021-11-11          LN 3.07  944
## 3   3    C        Wanita    2022-11-11      Negeri 3.73 1127
## 4   4    D        Wanita    2023-11-11          LN 3.23  968
## 5   5    E        Wanita    2020-11-11          LN 3.03  832
## 6   6    F        Wanita    2021-11-11      Negeri 3.11  870
## 7   7    G        Wanita    2022-11-11      Swasta 3.64  851
## 8   8    H          Pria    2023-11-11      Negeri 3.92 1146
## 9   9    I          Pria    2020-11-11      Negeri 3.15  655
## 10 10    J        Wanita    2021-11-11      Negeri 3.02 1193
## 11 11    K          Pria    2022-11-11      Swasta 3.58 1196
## 12 12    L        Wanita    2023-11-11          LN 3.13  841
## 13 13    M          Pria    2020-11-11      Negeri 3.70  819
## 14 14    N        Wanita    2021-11-11          LN 3.53 1198
## 15 15    O          Pria    2022-11-11          LN 3.79  805
## 16 16    P        Wanita    2023-11-11      Swasta 3.31 1160
## 17 17    Q        Wanita    2020-11-11      Negeri 3.68  620
## 18 18    R          Pria    2021-11-11      Negeri 3.79  982
## 19 19    S          Pria    2022-11-11      Negeri 3.75  766
## 20 20    T        Wanita    2023-11-11      Swasta 3.18 1139
## 21 21    U          Pria    2020-11-11      Negeri 3.18 1074
## 22 22    V          Pria    2021-11-11      Swasta 3.09  879
## 23 23    W          Pria    2022-11-11      Swasta 3.97  688
## 24 24    X        Wanita    2023-11-11      Swasta 3.81  944
## 25 25    Y        Wanita    2020-11-11      Negeri 3.44 1195
## 26 26    Z          Pria    2021-11-11      Swasta 3.27 1152
## 27 27    a        Wanita    2022-11-11          LN 3.75  979
## 28 28    b          Pria    2023-11-11      Swasta 3.81  856
## 29 29    c        Wanita    2020-11-11      Negeri 3.74 1015
## 30 30    d          Pria    2021-11-11          LN 3.34  674
## 31 31    e          Pria    2022-11-11      Negeri 3.35  644
## 32 32    f        Wanita    2023-11-11      Swasta 3.41 1004
## 33 33    g          Pria    2020-11-11      Negeri 3.65  734
## 34 34    h          Pria    2021-11-11      Negeri 3.40  948
## 35 35    i        Wanita    2022-11-11      Swasta 3.39 1053
## 36 36    j          Pria    2023-11-11      Negeri 3.57  712
## 37 37    k          Pria    2020-11-11      Negeri 3.04  882
## 38 38    l        Wanita    2021-11-11      Negeri 3.63  645
## 39 39    m          Pria    2022-11-11      Swasta 3.83  787
## 40 40    n        Wanita    2023-11-11      Negeri 3.03  942
## 41 41    o        Wanita    2020-11-11      Swasta 3.03  702
## 42 42    p        Wanita    2021-11-11          LN 3.57  796
## 43 43    q          Pria    2022-11-11      Swasta 3.55  947
## 44 44    r        Wanita    2023-11-11      Negeri 3.91  951
## 45 45    s          Pria    2020-11-11      Negeri 3.55  742
## 46 46    t          Pria    2021-11-11      Negeri 3.55 1096
## 47 47    u        Wanita    2022-11-11      Negeri 3.59  808
## 48 48    v          Pria    2023-11-11      Negeri 3.55  898
## 49 49    w          Pria    2020-11-11          LN 3.23  895
## 50 50    x        Wanita    2021-11-11      Negeri 3.68  897
## 51 51    y          Pria    2022-11-11      Swasta 3.11  716
## 52 52    z          Pria    2023-11-11      Swasta 3.59 1068
typeof(Karyawan_R)                                                                        # Cek tipe datanya
## [1] "list"
class(Karyawan_R)                                                                         # Cek tipe datanya
## [1] "data.frame"
Karyawan_R[1,5]                                                                           # Mengekstrak elemen di abris ke-1 dan kolom ke-5
## [1] "Negeri"
Karyawan_R$Nama                                                                           # Mengekstrak spesifik kolom nama
##  [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
## [20] "T" "U" "V" "W" "X" "Y" "Z" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
## [39] "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
Karyawan_R$GPA                                                                            # Mengekstrak spesifik kolom pada GPA
##  [1] 3.92 3.07 3.73 3.23 3.03 3.11 3.64 3.92 3.15 3.02 3.58 3.13 3.70 3.53 3.79
## [16] 3.31 3.68 3.79 3.75 3.18 3.18 3.09 3.97 3.81 3.44 3.27 3.75 3.81 3.74 3.34
## [31] 3.35 3.41 3.65 3.40 3.39 3.57 3.04 3.63 3.83 3.03 3.03 3.57 3.55 3.91 3.55
## [46] 3.55 3.59 3.55 3.23 3.68 3.11 3.59
Karyawan_R[,c('Nama','Jenis_Kelamin')]                                                    # Mengekstrak spesifik kolom nama jenis kelamin
##    Nama Jenis_Kelamin
## 1     A        Wanita
## 2     B        Wanita
## 3     C        Wanita
## 4     D        Wanita
## 5     E        Wanita
## 6     F        Wanita
## 7     G        Wanita
## 8     H          Pria
## 9     I          Pria
## 10    J        Wanita
## 11    K          Pria
## 12    L        Wanita
## 13    M          Pria
## 14    N        Wanita
## 15    O          Pria
## 16    P        Wanita
## 17    Q        Wanita
## 18    R          Pria
## 19    S          Pria
## 20    T        Wanita
## 21    U          Pria
## 22    V          Pria
## 23    W          Pria
## 24    X        Wanita
## 25    Y        Wanita
## 26    Z          Pria
## 27    a        Wanita
## 28    b          Pria
## 29    c        Wanita
## 30    d          Pria
## 31    e          Pria
## 32    f        Wanita
## 33    g          Pria
## 34    h          Pria
## 35    i        Wanita
## 36    j          Pria
## 37    k          Pria
## 38    l        Wanita
## 39    m          Pria
## 40    n        Wanita
## 41    o        Wanita
## 42    p        Wanita
## 43    q          Pria
## 44    r        Wanita
## 45    s          Pria
## 46    t          Pria
## 47    u        Wanita
## 48    v          Pria
## 49    w          Pria
## 50    x        Wanita
## 51    y          Pria
## 52    z          Pria
Karyawan_R [1:5,]                                                                         # Mengekstrak lima baris pertama karyawan R
##   No Nama Jenis_Kelamin Tanggal_Lahir Universitas  GPA Gaji
## 1  1    A        Wanita    2020-11-11      Negeri 3.92  824
## 2  2    B        Wanita    2021-11-11          LN 3.07  944
## 3  3    C        Wanita    2022-11-11      Negeri 3.73 1127
## 4  4    D        Wanita    2023-11-11          LN 3.23  968
## 5  5    E        Wanita    2020-11-11          LN 3.03  832
Karyawan_R [,1:5]                                                                         # Mengekstrak lima kolom pertama karyawan R
##    No Nama Jenis_Kelamin Tanggal_Lahir Universitas
## 1   1    A        Wanita    2020-11-11      Negeri
## 2   2    B        Wanita    2021-11-11          LN
## 3   3    C        Wanita    2022-11-11      Negeri
## 4   4    D        Wanita    2023-11-11          LN
## 5   5    E        Wanita    2020-11-11          LN
## 6   6    F        Wanita    2021-11-11      Negeri
## 7   7    G        Wanita    2022-11-11      Swasta
## 8   8    H          Pria    2023-11-11      Negeri
## 9   9    I          Pria    2020-11-11      Negeri
## 10 10    J        Wanita    2021-11-11      Negeri
## 11 11    K          Pria    2022-11-11      Swasta
## 12 12    L        Wanita    2023-11-11          LN
## 13 13    M          Pria    2020-11-11      Negeri
## 14 14    N        Wanita    2021-11-11          LN
## 15 15    O          Pria    2022-11-11          LN
## 16 16    P        Wanita    2023-11-11      Swasta
## 17 17    Q        Wanita    2020-11-11      Negeri
## 18 18    R          Pria    2021-11-11      Negeri
## 19 19    S          Pria    2022-11-11      Negeri
## 20 20    T        Wanita    2023-11-11      Swasta
## 21 21    U          Pria    2020-11-11      Negeri
## 22 22    V          Pria    2021-11-11      Swasta
## 23 23    W          Pria    2022-11-11      Swasta
## 24 24    X        Wanita    2023-11-11      Swasta
## 25 25    Y        Wanita    2020-11-11      Negeri
## 26 26    Z          Pria    2021-11-11      Swasta
## 27 27    a        Wanita    2022-11-11          LN
## 28 28    b          Pria    2023-11-11      Swasta
## 29 29    c        Wanita    2020-11-11      Negeri
## 30 30    d          Pria    2021-11-11          LN
## 31 31    e          Pria    2022-11-11      Negeri
## 32 32    f        Wanita    2023-11-11      Swasta
## 33 33    g          Pria    2020-11-11      Negeri
## 34 34    h          Pria    2021-11-11      Negeri
## 35 35    i        Wanita    2022-11-11      Swasta
## 36 36    j          Pria    2023-11-11      Negeri
## 37 37    k          Pria    2020-11-11      Negeri
## 38 38    l        Wanita    2021-11-11      Negeri
## 39 39    m          Pria    2022-11-11      Swasta
## 40 40    n        Wanita    2023-11-11      Negeri
## 41 41    o        Wanita    2020-11-11      Swasta
## 42 42    p        Wanita    2021-11-11          LN
## 43 43    q          Pria    2022-11-11      Swasta
## 44 44    r        Wanita    2023-11-11      Negeri
## 45 45    s          Pria    2020-11-11      Negeri
## 46 46    t          Pria    2021-11-11      Negeri
## 47 47    u        Wanita    2022-11-11      Negeri
## 48 48    v          Pria    2023-11-11      Negeri
## 49 49    w          Pria    2020-11-11          LN
## 50 50    x        Wanita    2021-11-11      Negeri
## 51 51    y          Pria    2022-11-11      Swasta
## 52 52    z          Pria    2023-11-11      Swasta

4.7 Subsetting data frame

subset(Karyawan_R, select=GPA)                                                            # Subsetting spesifik kolom
##     GPA
## 1  3.92
## 2  3.07
## 3  3.73
## 4  3.23
## 5  3.03
## 6  3.11
## 7  3.64
## 8  3.92
## 9  3.15
## 10 3.02
## 11 3.58
## 12 3.13
## 13 3.70
## 14 3.53
## 15 3.79
## 16 3.31
## 17 3.68
## 18 3.79
## 19 3.75
## 20 3.18
## 21 3.18
## 22 3.09
## 23 3.97
## 24 3.81
## 25 3.44
## 26 3.27
## 27 3.75
## 28 3.81
## 29 3.74
## 30 3.34
## 31 3.35
## 32 3.41
## 33 3.65
## 34 3.40
## 35 3.39
## 36 3.57
## 37 3.04
## 38 3.63
## 39 3.83
## 40 3.03
## 41 3.03
## 42 3.57
## 43 3.55
## 44 3.91
## 45 3.55
## 46 3.55
## 47 3.59
## 48 3.55
## 49 3.23
## 50 3.68
## 51 3.11
## 52 3.59
subset(Karyawan_R, select=6)                                                              # Subsetting spesifik kolom
##     GPA
## 1  3.92
## 2  3.07
## 3  3.73
## 4  3.23
## 5  3.03
## 6  3.11
## 7  3.64
## 8  3.92
## 9  3.15
## 10 3.02
## 11 3.58
## 12 3.13
## 13 3.70
## 14 3.53
## 15 3.79
## 16 3.31
## 17 3.68
## 18 3.79
## 19 3.75
## 20 3.18
## 21 3.18
## 22 3.09
## 23 3.97
## 24 3.81
## 25 3.44
## 26 3.27
## 27 3.75
## 28 3.81
## 29 3.74
## 30 3.34
## 31 3.35
## 32 3.41
## 33 3.65
## 34 3.40
## 35 3.39
## 36 3.57
## 37 3.04
## 38 3.63
## 39 3.83
## 40 3.03
## 41 3.03
## 42 3.57
## 43 3.55
## 44 3.91
## 45 3.55
## 46 3.55
## 47 3.59
## 48 3.55
## 49 3.23
## 50 3.68
## 51 3.11
## 52 3.59
subset(Karyawan_R, select=c(3,4))                                                         # Subsetting spesifik kolom
##    Jenis_Kelamin Tanggal_Lahir
## 1         Wanita    2020-11-11
## 2         Wanita    2021-11-11
## 3         Wanita    2022-11-11
## 4         Wanita    2023-11-11
## 5         Wanita    2020-11-11
## 6         Wanita    2021-11-11
## 7         Wanita    2022-11-11
## 8           Pria    2023-11-11
## 9           Pria    2020-11-11
## 10        Wanita    2021-11-11
## 11          Pria    2022-11-11
## 12        Wanita    2023-11-11
## 13          Pria    2020-11-11
## 14        Wanita    2021-11-11
## 15          Pria    2022-11-11
## 16        Wanita    2023-11-11
## 17        Wanita    2020-11-11
## 18          Pria    2021-11-11
## 19          Pria    2022-11-11
## 20        Wanita    2023-11-11
## 21          Pria    2020-11-11
## 22          Pria    2021-11-11
## 23          Pria    2022-11-11
## 24        Wanita    2023-11-11
## 25        Wanita    2020-11-11
## 26          Pria    2021-11-11
## 27        Wanita    2022-11-11
## 28          Pria    2023-11-11
## 29        Wanita    2020-11-11
## 30          Pria    2021-11-11
## 31          Pria    2022-11-11
## 32        Wanita    2023-11-11
## 33          Pria    2020-11-11
## 34          Pria    2021-11-11
## 35        Wanita    2022-11-11
## 36          Pria    2023-11-11
## 37          Pria    2020-11-11
## 38        Wanita    2021-11-11
## 39          Pria    2022-11-11
## 40        Wanita    2023-11-11
## 41        Wanita    2020-11-11
## 42        Wanita    2021-11-11
## 43          Pria    2022-11-11
## 44        Wanita    2023-11-11
## 45          Pria    2020-11-11
## 46          Pria    2021-11-11
## 47        Wanita    2022-11-11
## 48          Pria    2023-11-11
## 49          Pria    2020-11-11
## 50        Wanita    2021-11-11
## 51          Pria    2022-11-11
## 52          Pria    2023-11-11
subset(Karyawan_R, select=c(2:5))                                                         # Subsetting kolom tertentu
##    Nama Jenis_Kelamin Tanggal_Lahir Universitas
## 1     A        Wanita    2020-11-11      Negeri
## 2     B        Wanita    2021-11-11          LN
## 3     C        Wanita    2022-11-11      Negeri
## 4     D        Wanita    2023-11-11          LN
## 5     E        Wanita    2020-11-11          LN
## 6     F        Wanita    2021-11-11      Negeri
## 7     G        Wanita    2022-11-11      Swasta
## 8     H          Pria    2023-11-11      Negeri
## 9     I          Pria    2020-11-11      Negeri
## 10    J        Wanita    2021-11-11      Negeri
## 11    K          Pria    2022-11-11      Swasta
## 12    L        Wanita    2023-11-11          LN
## 13    M          Pria    2020-11-11      Negeri
## 14    N        Wanita    2021-11-11          LN
## 15    O          Pria    2022-11-11          LN
## 16    P        Wanita    2023-11-11      Swasta
## 17    Q        Wanita    2020-11-11      Negeri
## 18    R          Pria    2021-11-11      Negeri
## 19    S          Pria    2022-11-11      Negeri
## 20    T        Wanita    2023-11-11      Swasta
## 21    U          Pria    2020-11-11      Negeri
## 22    V          Pria    2021-11-11      Swasta
## 23    W          Pria    2022-11-11      Swasta
## 24    X        Wanita    2023-11-11      Swasta
## 25    Y        Wanita    2020-11-11      Negeri
## 26    Z          Pria    2021-11-11      Swasta
## 27    a        Wanita    2022-11-11          LN
## 28    b          Pria    2023-11-11      Swasta
## 29    c        Wanita    2020-11-11      Negeri
## 30    d          Pria    2021-11-11          LN
## 31    e          Pria    2022-11-11      Negeri
## 32    f        Wanita    2023-11-11      Swasta
## 33    g          Pria    2020-11-11      Negeri
## 34    h          Pria    2021-11-11      Negeri
## 35    i        Wanita    2022-11-11      Swasta
## 36    j          Pria    2023-11-11      Negeri
## 37    k          Pria    2020-11-11      Negeri
## 38    l        Wanita    2021-11-11      Negeri
## 39    m          Pria    2022-11-11      Swasta
## 40    n        Wanita    2023-11-11      Negeri
## 41    o        Wanita    2020-11-11      Swasta
## 42    p        Wanita    2021-11-11          LN
## 43    q          Pria    2022-11-11      Swasta
## 44    r        Wanita    2023-11-11      Negeri
## 45    s          Pria    2020-11-11      Negeri
## 46    t          Pria    2021-11-11      Negeri
## 47    u        Wanita    2022-11-11      Negeri
## 48    v          Pria    2023-11-11      Negeri
## 49    w          Pria    2020-11-11          LN
## 50    x        Wanita    2021-11-11      Negeri
## 51    y          Pria    2022-11-11      Swasta
## 52    z          Pria    2023-11-11      Swasta

5 Operasi Ganti Nama Variabel pada suatu Data Frame dengan menggunakan R

rename_1= Karyawan_R
names(rename_1)= c("kode",
                  "nama",
                  "jenis_kelamin",
                  "tanggal_lahir",
                  "univ",
                  "ipk",
                  "gaji")
rename_1
##    kode nama jenis_kelamin tanggal_lahir   univ  ipk gaji
## 1     1    A        Wanita    2020-11-11 Negeri 3.92  824
## 2     2    B        Wanita    2021-11-11     LN 3.07  944
## 3     3    C        Wanita    2022-11-11 Negeri 3.73 1127
## 4     4    D        Wanita    2023-11-11     LN 3.23  968
## 5     5    E        Wanita    2020-11-11     LN 3.03  832
## 6     6    F        Wanita    2021-11-11 Negeri 3.11  870
## 7     7    G        Wanita    2022-11-11 Swasta 3.64  851
## 8     8    H          Pria    2023-11-11 Negeri 3.92 1146
## 9     9    I          Pria    2020-11-11 Negeri 3.15  655
## 10   10    J        Wanita    2021-11-11 Negeri 3.02 1193
## 11   11    K          Pria    2022-11-11 Swasta 3.58 1196
## 12   12    L        Wanita    2023-11-11     LN 3.13  841
## 13   13    M          Pria    2020-11-11 Negeri 3.70  819
## 14   14    N        Wanita    2021-11-11     LN 3.53 1198
## 15   15    O          Pria    2022-11-11     LN 3.79  805
## 16   16    P        Wanita    2023-11-11 Swasta 3.31 1160
## 17   17    Q        Wanita    2020-11-11 Negeri 3.68  620
## 18   18    R          Pria    2021-11-11 Negeri 3.79  982
## 19   19    S          Pria    2022-11-11 Negeri 3.75  766
## 20   20    T        Wanita    2023-11-11 Swasta 3.18 1139
## 21   21    U          Pria    2020-11-11 Negeri 3.18 1074
## 22   22    V          Pria    2021-11-11 Swasta 3.09  879
## 23   23    W          Pria    2022-11-11 Swasta 3.97  688
## 24   24    X        Wanita    2023-11-11 Swasta 3.81  944
## 25   25    Y        Wanita    2020-11-11 Negeri 3.44 1195
## 26   26    Z          Pria    2021-11-11 Swasta 3.27 1152
## 27   27    a        Wanita    2022-11-11     LN 3.75  979
## 28   28    b          Pria    2023-11-11 Swasta 3.81  856
## 29   29    c        Wanita    2020-11-11 Negeri 3.74 1015
## 30   30    d          Pria    2021-11-11     LN 3.34  674
## 31   31    e          Pria    2022-11-11 Negeri 3.35  644
## 32   32    f        Wanita    2023-11-11 Swasta 3.41 1004
## 33   33    g          Pria    2020-11-11 Negeri 3.65  734
## 34   34    h          Pria    2021-11-11 Negeri 3.40  948
## 35   35    i        Wanita    2022-11-11 Swasta 3.39 1053
## 36   36    j          Pria    2023-11-11 Negeri 3.57  712
## 37   37    k          Pria    2020-11-11 Negeri 3.04  882
## 38   38    l        Wanita    2021-11-11 Negeri 3.63  645
## 39   39    m          Pria    2022-11-11 Swasta 3.83  787
## 40   40    n        Wanita    2023-11-11 Negeri 3.03  942
## 41   41    o        Wanita    2020-11-11 Swasta 3.03  702
## 42   42    p        Wanita    2021-11-11     LN 3.57  796
## 43   43    q          Pria    2022-11-11 Swasta 3.55  947
## 44   44    r        Wanita    2023-11-11 Negeri 3.91  951
## 45   45    s          Pria    2020-11-11 Negeri 3.55  742
## 46   46    t          Pria    2021-11-11 Negeri 3.55 1096
## 47   47    u        Wanita    2022-11-11 Negeri 3.59  808
## 48   48    v          Pria    2023-11-11 Negeri 3.55  898
## 49   49    w          Pria    2020-11-11     LN 3.23  895
## 50   50    x        Wanita    2021-11-11 Negeri 3.68  897
## 51   51    y          Pria    2022-11-11 Swasta 3.11  716
## 52   52    z          Pria    2023-11-11 Swasta 3.59 1068
LS0tDQp0aXRsZTogIkFsZ29yaXRtYSBkYW4gU3RydWt0dXIgRGF0YSINCnN1YnRpdGxlOiAiVHVnYXMgMyINCmF1dGhvcjogIlllbmkgTnVyIEFyd2FudGkgKDIwMjE0NTIwMDExKSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGh0bWxfZG9jdW1lbnQ6IG51bGwNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICB0aGVtZTogc2FuZHN0b25lDQogICAgY3NzOiBzdHlsZTEuY3NzDQogICAgaGlnaGxpZ2h0OiBtb25vY2hyb21lDQotLS0NCg0KDQo8aW1nIHN0eWxlPSJmbG9hdDogcmlnaHQ7IG1hcmdpbjogMHB4IDEwMHB4IDBweCAwcHg7IHdpZHRoOjIwJSIgc3JjPSJtZS5wbmciLz4gDQoNCmBgYHtyIGxvZ28sIGVjaG89RkFMU0UsZmlnLmFsaWduPSdjZW50ZXInLCBvdXQud2lkdGggPSAnMzAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJsb2dvLnBuZyIpDQpgYGANCg0KRW1haWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7OiAgeWVuaS5hcndhbnRpQHN0dWRlbnQubWF0YW5hdW5pdmVyaXN0eS5hYy5pZCA8YnI+DQpSUHVicyAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBodHRwczovL3JwdWJzLmNvbS95ZW5pbmF3bi8gPGJyPg0KSnVydXNhbiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbRmlzaWthIE1lZGlzXShodHRwczovL21hdGFuYXVuaXZlcnNpdHkuYWMuaWQvP2x5PWFjYWRlbWljJmM9c2IpIDxicj4NCkFkZHJlc3MgICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IEFSQSBDZW50ZXIsIE1hdGFuYSBVbml2ZXJzaXR5IFRvd2VyIDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IEpsLiBDQkQgQmFyYXQgS2F2LCBSVC4xLCBDdXJ1ZyBTYW5nZXJlbmcsIEtlbGFwYSBEdWEsIFRhbmdlcmFuZywgQmFudGVuIDE1ODEwLg0KDQoqKioqDQoNCiMgTWVtYnVhdCBQcm9ncmFtIERlbmdhbiBMaXN0DQoNCiMjIEJ1YXQgc2VidWFoIGxpc3QgdW50dWsgbWVueWltcGFuIDUgb3JhbmcgdGVtYW4gZGVrYXRtdQ0KDQpgYGB7cn0NCmxpc3QwID0gbGlzdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWVtYnVhdCBsaXN0IGtvc29uZw0KbGlzdDEgPSBsaXN0KCJUaWFyYSBBZ2F0aGEiLCJBbWlyYSBIdW1haXJhaCIsIlllbGlrYSBBZGVuaWEiLCJTYWxzYWJpbGEiLCJadWxmYWggRmF1emlhaCIpICAgIyBNZW1idWF0IHNlYnVhaCBsaXN0IGJlcmlzaSA1IG5hbWEgdGVtYW4gZGVrYXQNCnByaW50KGMobGlzdDAsbGlzdDEpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgUHJpbnQgaGFzaWwgbGlzdDAgZGFuIGxpc3QxDQpgYGANCg0KIyMgUGlsaWhsYWggc2F0dSBvcmFuZyBkYXJpIGxpc3QgdGVyc2VidXQgeWFuZyBtZW5qYWRpIHRlbWFuIHBhbGluZyBkZWthdG11ICBkZW5nYW4gbWVuZ2d1bmFrYW4gaW5kZXgNCg0KYGBge3J9DQpsaXN0MiA9IGxpc3QoIlRpYXJhIEFnYXRoYSIsIkFtaXJhIEh1bWFpcmFoIiwiWWVsaWthIEFkZW5pYSIsIlNhbHNhYmlsYSIsIlp1bGZhaCBGYXV6aWFoIikgICAjIE1lbWJ1YXQgbGlzdCA1IG5hbWEgdGVtYW4gZGVrYXQNCnByaW50KGxpc3QyWzJdKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgUHJpbnQgbmlsYWkgcGFkYSBpbmRleCAyDQpgYGANCg0KIyMgR2FudGlsYWggc2F0dSBvcmFuZyB5YW5nIHRpZGFrIGJlZ2l0dSBkZWthdCBkZW5nYW5tdSBkZW5nYW4gdGVtYW4gYmFydSB5YW5nIGthbXUgdGVtdWkgYmFydS1iYXJ1IGluaQ0KDQpgYGB7cn0NCmxpc3QzID0gbGlzdCgiVGlhcmEgQWdhdGhhIiwiQW1pcmEgSHVtYWlyYWgiLCJZZWxpa2EgQWRlbmlhIiwiU2Fsc2FiaWxhIiwiWnVsZmFoIEZhdXppYWgiKSAgICMgTWVtYnVhdCBsaXN0IGlzaSA1IG5hbWEgdGVtYW4gZGVrYXQNCmxpc3QzWzVdID0gIlVyZmkgTHV0ZmlhbmEiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWVuZ2dhbnRpIGl0ZW0gWnVsZmFoIEZhdXppYWggbWVuamFkaSBVcmZpIEx1dGZpYW5hDQpwcmludChsaXN0MykNCmBgYA0KDQojIyBCYWdhaW1hbmEgY2FyYW55YSBhbmRhIG1lbmdoaXR1bmcgYmFueWFrIHRlbWFuIHlhbmcgYWRhIGRhbGFtIGxpc3QgdGVyc2VidXQNCmBgYHtyfQ0KbGVuZ3RoKGxpc3QzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNZW5naGl0dW5nIGp1bWxhaCBpdGVtIGRhbGFtIHNlYnVhaCBsaXN0DQpgYGANCg0KDQojIE1lbnlpbXBhbiBzZWt1bXB1bGFuIHR1cGxlDQoNCiMjIFR1cGxlIGRlbmdhbiA1IGl0ZW0gZGlkYWxhbW55YQ0KYGBge3J9DQpsaWJyYXJ5KHNldHMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbWFuZ2dpbCBsaWJhcnkNCnR1cGxlMSA9IHR1cGxlKCJHZWxhcyIsICJzZW5kb2siLCAiZ2FycHUiLCAicGlyaW5nIiwgInRhcyIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWVtYnVhdCB0dXBsZSBkZW5nYW4gNyBpdGVtDQp0dXBsZTIgPSB0dXBsZSgiVWFuZyIsICJzdW1waXQiLCAicGFwYW4iLCAicGVuc2lsIiwgInBlbmdoYXB1cyIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbWJ1YXQgdHVwbGUgZGVuZ2FuIDUgaXRlbQ0KcHJpbnQodHVwbGUxKQ0KYGBgDQoNCmBgYHtyfQ0KcHJpbnQodHVwbGUyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpgYGANCg0KIyMgTWVuZ2Frc2VzIE5pbGFpIFR1cGxlDQoNCmBgYHtyfQ0KcHJpbnQodHVwbGUxWzFdKQ0KYGBgDQoNCmBgYHtyfQ0KcHJpbnQodHVwbGUxWzJdKQ0KYGBgDQoNCmBgYHtyfQ0KcHJpbnQodHVwbGUxWzNdKQ0KYGBgDQoNCmBgYHtyfQ0KcHJpbnQodHVwbGUxWzRdKQ0KYGBgDQoNCmBgYHtyfQ0KcHJpbnQodHVwbGUxWzVdKQ0KYGBgDQoNCg0KIyMgTWVsYWt1a2FuIFNsaWNpbmcgTmlsYWkgVHVwbGUNCg0KYGBge3J9DQpwcmludCh0dXBsZTJbMToyXSkNCmBgYA0KDQpgYGB7cn0NCnByaW50KHR1cGxlMlszOjVdKQ0KYGBgDQoNCmBgYHtyfQ0KcHJpbnQodHVwbGUyWzE6NV0pDQpgYGANCg0KIyMgTmVzdGVkIFR1cGxlDQoNCmBgYHtyfQ0KdHVwbGUzID0gYyh0dXBsZTEsIHR1cGxlMikNCnR1cGxlNCA9IHJlcCh0dXBsZTEsIDMwKQ0KdHVwbGU1ID0gcmVwKHR1cGxlMiwgMzApDQpwcmludCh0dXBsZTMpDQpgYGANCg0KYGBge3J9DQpwcmludCh0dXBsZTQpDQpgYGANCg0KYGBge3J9DQpwcmludCh0dXBsZTUpDQpgYGANCg0KIyMgVW5wYWNraW5nIFNlcXVlbmNlDQoNCmBgYHtyfQ0KdHVwbGUxID0gdHVwbGUoIkdlbGFzIiwgInNlbmRvayIsICJnYXJwdSIsICJwaXJpbmciLCAidGFzIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNZW1idWF0IHR1cGxlIGRlbmdhbiA1IGl0ZW0NCm5hbWVzICh0dXBsZTEpID0gYygiaW5kZXgxIiwgImluZGV4MiIsICJpbmRleDMiLCAiaW5kZXg0IiwgImluZGV4NSIpDQpwcmludCh0dXBsZTEpDQpgYGANCg0KYGBge3J9DQp0dXBsZTIgPSB0dXBsZSgiVWFuZyIsICJzdW1waXQiLCAicGFwYW4iLCAicGVuc2lsIiwgInBlbmdoYXB1cyIpICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbWJ1YXQgdHVwbGUgZGVuZ2FuIDUgaXRlbQ0KbmFtZXModHVwbGUyKSA9IGMoImluZGV4MSIsICJpbmRleDIiLCAiaW5kZXgzIiwgImluZGV4NCIsICJpbmRleDUiKQ0KcHJpbnQodHVwbGUyKQ0KYGBgDQoNCiMgIE1lbnlpbXBhbiBzZWt1bXB1bGFuIERpY3Rpb25hcnkgZGVuZ2FuIFIsIHlhbmcgbWVtdWF0IHR5cGUgZGF0YSBmbG9hdCwgaW50ZWdlciwgY2hhcmFjdGVyLCBkYW4gbG9naWNhbCwgbGlzdCwgdHVwbGUsIGRpY3Rpb25hcnkNCg0KIyMgQWtzZXMgc3VhdHUgbmlsYWkgSXRlbSBkYXJpIERpY3Rpb25hcnkNCg0KYGBge3J9DQpsaWJyYXJ5KERpY3QpDQpgYGANCg0KYGBge3J9DQp5ZW5pbmF3biA8LSBkaWN0KA0KICAgICAgICAgICAgICAgICAgIm5hbWEiICAgID0iWWVuaSBOdXIiLA0KICAgICAgICAgICAgICAgICAgInVtdXIiICAgID0gYXMuaW50ZWdlcigxOCksDQogICAgICAgICAgICAgICAgICAiaG9iaSIgICAgPSBsaXN0KCJNZW1iYWNhIiwgIkRlc2lnbiIsICJNZW5vbnRvbiBmaWxtIiksDQogICAgICAgICAgICAgICAgICAiYXNhbCIgPSAiQm9nb3IiKQ0KY2F0KCJuYW1hIHNheWEgYWRhbGFoIDoiLCB5ZW5pbmF3biRnZXQoJ25hbWEnKSkNCmNhdCgic2F5YSB0aW5nZ2FsIGRpIDoiLCB5ZW5pbmF3biRnZXQoJ2FzYWwnKSkNCmBgYA0KDQpgYGB7cn0NCmNhdCgiTmFtYSBzYXlhIGFkYWxhaCA6IiwgeWVuaW5hd24kZ2V0KCduYW1hJykpDQpwcmludCh5ZW5pbmF3biRnZXQoJ2hvYmknKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmdha3NlcyBpc2kgZGljdGlvbmFyeQ0KYGBgDQoNCiMjIFViYWggc3VhdHUgTmlsYWkgSXRlbSBwYWRhIERpY3Rpb25hcnkNCg0KYGBge3J9DQp5ZW5pbmF3blsnbmFtYSddID0gIlllbmkgTnVyIEFyd2FudGkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmd1YmFoIG5pbGFpIGl0ZW0gZGljdGlvbmFyeQ0KcHJpbnQoeWVuaW5hd24kZ2V0KCduYW1hJykpDQpgYGANCg0KIyMgTWVuYW1iYWhrYW4gSXRlbSBrZSBEaWN0aW9uYXJ5DQoNCmBgYHtyfQ0KeWVuaW5hd24kYWRkKHVtdXI9MThMKQ0KcHJpbnQoeWVuaW5hd24pDQpgYGANCg0KIyMgTWVuZ2hhcHVzIEl0ZW0gZGFyaSBEaWN0aW9uYXJ5DQoNCmBgYHtyfQ0KeWVuaW5hd24kcmVtb3ZlKCd1bXVyJykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBtZW5naGFwdXMgdW11ciBwYWRhIGRpY3QNCnByaW50KHllbmluYXduKQ0KYGBgDQoNCg0KIyBPcGVyYXNpIFBlbmdpbmRla3NhbiwgUGVuZ2lyaXNhbiwgZGFuIFN1YnNldHRpbmcgRGF0YSBGcmFtZSBkZW5nYW4gTWVuZ2d1bmthbiBSDQoNCmBgYHtyfQ0KIyBNZW1iZW50dWsgRGF0YSBGcmFtZSAxDQpkZjFfUiA9IGRhdGEuZnJhbWUobm9tb3IgPWMoMTo1KSwNCiAgICAgICAgICAgICAgICAgICAgIk5hbWEiICA9YygiVGlhcmEiLCJFc3RoZXIiLCJZZWxpa2EiLCJGYW5vIiwiRGl2byIpLA0KICAgICAgICAgICAgICAgICAgICAiQW5na2F0YW4gU2Vrb2xhaCIgPWMoIjIwMTgiLCIyMDE4IiwiMjAxOSIsIjIwMTkiLCIyMDE4IiksDQogICAgICAgICAgICAgICAgICAgICJKdXJ1c2FuIiA9YygiaXBhIiwiaXBhIiwiaXBzIiwiaXBzIiwiaXBzIiksDQogICAgICAgICAgICAgICAgICAgICJtYXRhIHBlbGFqYXJhbiBmYXZvcml0IiA9YygibXRrIiwiZmlzaWthIiwiZWtvbm9taSIsInNvc2lvbG9naSIsInNlamFyYWgiKSwNCiAgICAgICAgICAgICAgICAgICAgInJhbmtpbmcga2VsYXMiID1jKCIxIiwiMiIsIjEwIiwiMjEiLCIzIiksDQogICAgICAgICAgICAgICAgICAgICJob2JpIiA9IGMoImRhbmNlIiwibWVtYmFjYSIsIm1lbnlhbnlpIiwiYmVycGlkYXRvIiwiYmVyZW5hbmciKQ0KICAgICAgICAgICAgICAgICAgICAgKQ0KIyBNZW1iZW50dWsgRGF0YSBGcmFtZSAyDQpkZjJfUiA9IGRhdGEuZnJhbWUobm9tb3IgPWMoMTo1KSwNCiAgICAgICAgICAgICAgICAgICAgIk5hbWEiICA9YygiUmFuaSIsIklyZmFuIiwiRGlhbmEiLCJBc2hmeSIsIkRlYSIpLA0KICAgICAgICAgICAgICAgICAgICAiQW5na2F0YW4gU2Vrb2xhaCIgPWMoIjIwMjAiLCIyMDIwIiwiMjAyMSIsIjIwMjEiLCIyMDE5IiksDQogICAgICAgICAgICAgICAgICAgICJKdXJ1c2FuIiA9YygiaXBzIiwiaXBhIiwiaXBhIiwiaXBzIiwiaXBzIiksDQogICAgICAgICAgICAgICAgICAgICJtYXRhIHBlbGFqYXJhbiBmYXZvcml0IiA9YygiT2xhaHJhZ2EiLCJraW1pYSIsImZpc2lrYSIsIkluZG9uZXNpYSIsIkplcGFuZyIpLA0KICAgICAgICAgICAgICAgICAgICAicmFuZ2tpbmcga2VsYXMiID1jKCIxMCIsIjExIiwiMTIiLCIxMyIsIjE1IiksDQogICAgICAgICAgICAgICAgICAgICJob2JpIiA9IGMoImJlcmVuYW5nIiwibWVueWFueWkiLCJiZXJwaWRhdG8iLCJtZW1iYWNhIiwiZGFuY2UiKQ0KICAgICAgICAgICAgICAgICAgICApDQpgYGANCiMjIFBlbmdnYWJ1bmdhbiBkdWEgZGF0YSBmcmFtZQ0KDQpgYGB7cn0NCmRmM19SID0gcmJpbmQoImRmMV9SIiwiZGYyX1IiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmdnYWJ1bmdrYW4gRGF0YSBGcmFtZSAxIGRhbiBEYXRhIEZyYW1lIDINCmBgYA0KDQojIyBJbmRla3MgZGF0YSBmcmFtZQ0KDQpgYGB7cn0NCnByaW50KCdkZjNfUicpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgT3BlcmFzaSBkYXRhIGZyYW1lDQpgYGANCg0KYGBge3J9DQpoZWFkKCdkZjNfUicpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG1lbmNldGFrIGJlYmVyYXBhIGJhcmlzIGF3YWwgcGFkYSBkYXRhIGZyYW1lDQpgYGANCg0KYGBge3J9DQp0YWlsKCdkZjNfUicpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNZW5jZXRhayA2IGJhcmlzIGRhcmkgYmF3YWgNCmBgYA0KDQpgYGB7cn0NCmhlYWQoJ2RmM19SJyAsNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmNldGFrIDUgYmFyaXMgZGFyaSBwZXJ0YW1hDQpgYGANCg0KYGBge3J9DQojdmlldyhkZjNfUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNZWxpaGF0IGRhdGEgZnJhbWUgZGkgUnN0dWRpbyBzZXBlcnRpIEV4Y2VsDQpgYGANCg0KDQoNCiMjIERpbWVuc2kgZGF0YSBmcmFtZQ0KYGBge3J9DQpkaW0oZGYzX1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNZW1lcmlrc2EgZGltZW5zaSBkYXRhIGZyYW1lDQpgYGANCg0KIyMgU3RydWt0dXIgZGF0YSBmcmFtZQ0KYGBge3J9DQpzdHIoZGYzX1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNZW1lcmlrc2Egc3RydWtydXQgZGF0YSBmcmFtZQ0KYGBgDQoNCiMjIFN1bW1hcnkgZGF0YSBmcmFtZQ0KYGBge3J9DQpzdW1tYXJ5KGRmM19SKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTdW1tYXJ5IHN0YXRpc3RpayBkYXRhIGZyYW1lDQpgYGANCg0KIyMgT3BlcmFzaSBpbmRla3MsIFBlbmdpcmlzYW4gZGF0YSBmcmFtZQ0KDQpgYGB7cn0NCk5vPSgxOjUyKQ0KTmFtYT0gYyhMRVRURVJTLGxldHRlcnMpDQpKZW5pc19LZWxhbWluPSBzYW1wbGUocmVwKGMoIldhbml0YSIsIlByaWEiKSwgdGltZXM9MjYpKQ0KDQojIE1lbmdoYXNpbGthbiB0YW5nZ2FsIGxhaGlyIGRlbmdhbiB0aW1lIHNlcmllcw0KdGlnYV90YWh1biA9IHNlcShhcy5EYXRlKCIyMDIwLzExLzExIiksIGJ5PSJ5ZWFyIixsZW5ndGgub3V0PTQpDQpUYW5nZ2FsX0xhaGlyID0gcmVwKHRpZ2FfdGFodW4sdGltZXM9MTMpDQoNCiMgS2F0ZWdvcmkgVW5pdmVyc2l0YXMNCnVuaXYxPSByZXAoIk5lZ2VyaSIsIHRpbWVzPTI2KQ0KdW5pdjI9IHJlcCgiU3dhc3RhIiwgdGltZXM9MTYpDQp1bml2Mz0gcmVwKCJMTiIsIHRpbWVzPTEwKQ0KVW5pdmVyc2l0YXM9IHNhbXBsZShjKHVuaXYxLHVuaXYyLHVuaXYzKSkNCg0KZ3BhPSBydW5pZig1MixtaW49My4wMCxtYXg9NC4wMCkNCkdQQT0gcm91bmQoZ3BhLGRpZ2l0cz0yKQ0KR2FqaT0gc2FtcGxlKDYwMDoxMjAwLDUyLCByZXBsYWNlPVQpDQoNCkthcnlhd2FuX1IgPSBkYXRhLmZyYW1lKE5vLA0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtYSwNCiAgICAgICAgICAgICAgICAgICAgICAgIEplbmlzX0tlbGFtaW4sDQogICAgICAgICAgICAgICAgICAgICAgICBUYW5nZ2FsX0xhaGlyLA0KICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0YXMsDQogICAgICAgICAgICAgICAgICAgICAgICBHUEEsDQogICAgICAgICAgICAgICAgICAgICAgICBHYWppKQ0KcHJpbnQoS2FyeWF3YW5fUikNCmBgYA0KDQoNCmBgYHtyfQ0KdHlwZW9mKEthcnlhd2FuX1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBDZWsgdGlwZSBkYXRhbnlhDQpgYGANCg0KDQpgYGB7cn0NCmNsYXNzKEthcnlhd2FuX1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQ2VrIHRpcGUgZGF0YW55YQ0KYGBgDQoNCg0KYGBge3J9DQpLYXJ5YXdhbl9SWzEsNV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmdla3N0cmFrIGVsZW1lbiBkaSBhYnJpcyBrZS0xIGRhbiBrb2xvbSBrZS01DQpgYGANCg0KDQpgYGB7cn0NCkthcnlhd2FuX1IkTmFtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWVuZ2Vrc3RyYWsgc3Blc2lmaWsga29sb20gbmFtYQ0KYGBgDQoNCg0KYGBge3J9DQpLYXJ5YXdhbl9SJEdQQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmdla3N0cmFrIHNwZXNpZmlrIGtvbG9tIHBhZGEgR1BBDQpgYGANCg0KDQpgYGB7cn0NCkthcnlhd2FuX1JbLGMoJ05hbWEnLCdKZW5pc19LZWxhbWluJyldICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWVuZ2Vrc3RyYWsgc3Blc2lmaWsga29sb20gbmFtYSBqZW5pcyBrZWxhbWluDQpgYGANCg0KYGBge3J9DQpLYXJ5YXdhbl9SIFsxOjUsXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmdla3N0cmFrIGxpbWEgYmFyaXMgcGVydGFtYSBrYXJ5YXdhbiBSDQpgYGANCg0KYGBge3J9DQpLYXJ5YXdhbl9SIFssMTo1XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE1lbmdla3N0cmFrIGxpbWEga29sb20gcGVydGFtYSBrYXJ5YXdhbiBSDQpgYGANCg0KIyMgU3Vic2V0dGluZyBkYXRhIGZyYW1lDQoNCmBgYHtyfQ0Kc3Vic2V0KEthcnlhd2FuX1IsIHNlbGVjdD1HUEEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTdWJzZXR0aW5nIHNwZXNpZmlrIGtvbG9tDQpgYGANCg0KYGBge3J9DQpzdWJzZXQoS2FyeWF3YW5fUiwgc2VsZWN0PTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFN1YnNldHRpbmcgc3Blc2lmaWsga29sb20NCmBgYA0KDQpgYGB7cn0NCnN1YnNldChLYXJ5YXdhbl9SLCBzZWxlY3Q9YygzLDQpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU3Vic2V0dGluZyBzcGVzaWZpayBrb2xvbQ0KYGBgDQoNCmBgYHtyfQ0Kc3Vic2V0KEthcnlhd2FuX1IsIHNlbGVjdD1jKDI6NSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTdWJzZXR0aW5nIGtvbG9tIHRlcnRlbnR1DQpgYGANCg0KDQojIE9wZXJhc2kgR2FudGkgTmFtYSBWYXJpYWJlbCBwYWRhIHN1YXR1IERhdGEgRnJhbWUgZGVuZ2FuIG1lbmdndW5ha2FuIFINCg0KDQpgYGB7cn0NCnJlbmFtZV8xPSBLYXJ5YXdhbl9SDQpuYW1lcyhyZW5hbWVfMSk9IGMoImtvZGUiLA0KICAgICAgICAgICAgICAgICAgIm5hbWEiLA0KICAgICAgICAgICAgICAgICAgImplbmlzX2tlbGFtaW4iLA0KICAgICAgICAgICAgICAgICAgInRhbmdnYWxfbGFoaXIiLA0KICAgICAgICAgICAgICAgICAgInVuaXYiLA0KICAgICAgICAgICAgICAgICAgImlwayIsDQogICAgICAgICAgICAgICAgICAiZ2FqaSIpDQpyZW5hbWVfMQ0KYGBgDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==