Prakticum Week-4

Prakticum Week-4

HANAFI MALIK RIFAI
NIM: 52250032

Dosen Pengampu:
BAKTI SIREGAR, M.Sc., CDS.
INSTITUT TEKNOLOGI SAINS BANDUNG

  1. Menyiapkan Dataset
df <- data.frame(
  ID = c(1, 2, 3, 4, 5),
  Nama = c("Bagas", "Joan", "Alya", "Dwi", "Nabil"),
  Usia = c(25, 30, 27, 35, 40),
  Gaji = c(5000, 7000, 6500, 10000, 12000),
  Jabatan = c("Staf", "Pengawas", "Staf", "Manajer", "Direktur"),
  Kinerja = c("Baik", "Sangat Baik", "Rata-rata", "Baik", "Sangat Baik"),
  stringsAsFactors = FALSE
)

2.5.2 Pernyataan Bersyarat (Menghitung Bonus)

for (i in 1:nrow(df)) {
  gaji_skrg <- df$Gaji[i]
  kinerja_skrg <- df$Kinerja[i]
  
  # Logika if-elif-else untuk menentukan persentase bonus
  if (kinerja_skrg == "Sangat Baik") {
    bonus <- 0.20 * gaji_skrg
  } else if (kinerja_skrg == "Baik") {
    bonus <- 0.10 * gaji_skrg
  } else if (kinerja_skrg == "Rata-rata") {
    bonus <- 0.05 * gaji_skrg
  } else {
    bonus <- 0
  }
  
  # Menampilkan format: "Name: [Nama], Bonus: [Bonus]"
  cat(paste0("Name: ", df$Nama[i], ", Bonus: ", bonus, "\n"))
}
## Name: Bagas, Bonus: 500
## Name: Joan, Bonus: 1400
## Name: Alya, Bonus: 325
## Name: Dwi, Bonus: 1000
## Name: Nabil, Bonus: 2400

2.5.3 Perulangan (For & While)

1.Perulangan FOR: Gaji > 6000

for (i in 1:nrow(df)) {
  if (df$Gaji[i] > 6000) {
    cat(paste0("Name: ", df$Nama[i], ", Salary: ", df$Gaji[i], "\n"))
  }
}
## Name: Joan, Salary: 7000
## Name: Alya, Salary: 6500
## Name: Dwi, Salary: 10000
## Name: Nabil, Salary: 12000
  1. Perulangan WHILE: Berhenti saat ditemukan “Manajer”
i <- 1
while (i <= nrow(df)) {
  cat(paste0("Name: ", df$Nama[i], ", Position: ", df$Jabatan[i]))
  if (df$Jabatan[i] == "Manajer") {
    cat(" (Stop here)\n")
    break
  }
  cat("\n")
  i <- i + 1
}
## Name: Bagas, Position: Staf
## Name: Joan, Position: Pengawas
## Name: Alya, Position: Staf
## Name: Dwi, Position: Manajer (Stop here)
  1. Perintah BREAK: Berhenti jika Gaji > 10.000
for (i in 1:nrow(df)) {
  if (df$Gaji[i] > 10000) {
    cat(paste0("(Stopped because ", df$Nama[i], " has a salary above 10,000)\n"))
    break
  }
  cat(paste0("Name: ", df$Nama[i], ", Salary: ", df$Gaji[i], "\n"))
}
## Name: Bagas, Salary: 5000
## Name: Joan, Salary: 7000
## Name: Alya, Salary: 6500
## Name: Dwi, Salary: 10000
## (Stopped because Nabil has a salary above 10,000)
  1. Perintah CONTINUE : Lewati “Rata-rata”
for (i in 1:nrow(df)) {
  if (df$Kinerja[i] == "Rata-rata") {
    # 'next' berfungsi sama dengan 'continue' di Python
    next
  }
  cat(paste0("Name: ", df$Nama[i], ", Performance: ", df$Kinerja[i], "\n"))
}
## Name: Bagas, Performance: Baik
## Name: Joan, Performance: Sangat Baik
## Name: Dwi, Performance: Baik
## Name: Nabil, Performance: Sangat Baik
LS0tDQp0aXRsZTogIlByYWt0aWN1bSBXZWVrLTQiICAgICAgICMgTWFpbiB0aXRsZSBvZiB0aGUgZG9jdW1lbnQNCnN1YnRpdGxlOiAiUHJha3RpY3VtIFdlZWstNCIgICMgU3VidGl0bGUgb3IgdG9waWMgZm9yIHdlZWsgMg0KYXV0aG9yOiANCi0gIkhBTkFGSSBNQUxJSyBSSUZBSSIjIFJlcGxhY2Ugd2l0aCB5b3VyIGZ1bGwgbmFtZQ0KZGF0ZTogICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCIgIyBBdXRvIGRpc3BsYXlzIHRoZSBjdXJyZW50IGRhdGUNCm91dHB1dDogICAgICAgICAgICAgICAgICAgICAgICAgIyBPdXRwdXQgc2VjdGlvbiBkZWZpbmVzIHRoZSBmb3JtYXQgYW5kIGxheW91dCANCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246ICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vanViYS9ybWRmb3JtYXRzDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUgICAgICAgICMgRW1iZWRzIGFsbCByZXNvdXJjZXMgKENTUywgSlMsIGltYWdlcykgDQogICAgdGh1bWJuYWlsczogdHJ1ZSAgICAgICAgICAgICMgRGlzcGxheXMgaW1hZ2UgdGh1bWJuYWlscyBpbiB0aGUgZG9jDQogICAgbGlnaHRib3g6IHRydWUgICAgICAgICAgICAgICMgRW5hYmxlcyBjbGljayB0byBlbmxhcmdlIGltYWdlcw0KICAgIGdhbGxlcnk6IHRydWUgICAgICAgICAgICAgICAjIEdyb3VwcyBpbWFnZXMgaW50byBhbiBpbnRlcmFjdGl2ZSBnYWxsZXJ5DQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlICAgICAgICMgQXV0b21hdGljYWxseSBudW1iZXJzIGFsbCBzZWN0aW9ucw0KICAgIGxpYl9kaXI6IGxpYnMgICAgICAgICAgICAgICAjIERpcmVjdG9yeSB3aGVyZSBKYXZhU2NyaXB0L0NTUyBsaWJyYXJpZXMNCiAgICBkZl9wcmludDogInBhZ2VkIiAgICAgICAgICAgIyBEaXNwbGF5cyBkYXRhIGZyYW1lcyBhcyBpbnRlcmFjdGl2ZSBwYWdlZCANCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93IiAgICAgICAgIyBBbGxvd3MgZm9sZGluZy91bmZvbGRpbmcgUiBjb2RlIGJsb2NrcyANCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMgICAgICAgICAgIyBBZGRzIGEgYnV0dG9uIHRvIGRvd25sb2FkIGFsbCBSIGNvZGUNCi0tLQ0KPHN0eWxlPg0KLnByb2ZpbGUtY2FyZCB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogIGJvcmRlci1yYWRpdXM6IDE1cHg7DQogIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgwLDAsMCwwLjEpOw0KICBwYWRkaW5nOiAzMHB4Ow0KICBtYXgtd2lkdGg6IDUwMHB4Ow0KICBtYXJnaW46IDQwcHggYXV0bzsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBmb250LWZhbWlseTogJ1NlZ29lIFVJJywgVGFob21hLCBHZW5ldmEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7DQogIGJvcmRlci10b3A6IDhweCBzb2xpZCAjMmMzZTUwOw0KfQ0KDQoucHJvZmlsZS1pbWcgew0KICB3aWR0aDogMTUwcHg7DQogIGhlaWdodDogMTUwcHg7DQogIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgb2JqZWN0LWZpdDogY292ZXI7DQogIGJvcmRlcjogNXB4IHNvbGlkICNmMGYwZjA7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQp9DQoNCi5uYW1lIHsNCiAgZm9udC1zaXplOiAyNHB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgY29sb3I6ICMyYzNlNTA7DQogIG1hcmdpbi1ib3R0b206IDVweDsNCn0NCg0KLmluZm8tdGV4dCB7DQogIGNvbG9yOiAjN2Y4YzhkOw0KICBtYXJnaW46IDVweCAwOw0KICBmb250LXNpemU6IDE2cHg7DQp9DQoNCi5pbnN0aXR1dGUgew0KICBmb250LXNpemU6IDE1cHg7DQogIG1hcmdpbi10b3A6IDE1cHg7DQogIGZvbnQtd2VpZ2h0OiA2MDA7DQogIGNvbG9yOiAjMDAwMDgwOw0KICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICBsZXR0ZXItc3BhY2luZzogNXB4Ow0KfQ0KDQpociB7DQogIHdpZHRoOiA1MCU7DQogIGJvcmRlcjogMC41cHggc29saWQgI2VlZTsNCiAgbWFyZ2luOiAyMHB4IGF1dG87DQp9DQo8L3N0eWxlPg0KDQo8ZGl2IGNsYXNzPSJwcm9maWxlLWNhcmQiPg0KICA8aW1nIHNyYz0iQzpcVXNlcnNceW9oYW5cT25lRHJpdmVcRG9jdW1lbnRzXEIgLSBUdWdhc1xTZW1lc3RlciAyXFBlbXJvZ3JhbWFuIFNhaW5zIERhdGEgSVxQcmFrdGljdW0gV2Vlay00XFdoYXRzQXBwIEltYWdlIDIwMjYtMDMtMTYgYXQgMjAuNDAuMDEuanBlZyI+DQogIA0KICA8ZGl2IGNsYXNzPSJuYW1lIj5IQU5BRkkgTUFMSUsgUklGQUk8L2Rpdj4NCiAgPGRpdiBjbGFzcz0iaW5mby10ZXh0Ij48c3Ryb25nPk5JTTo8L3N0cm9uZz4gNTIyNTAwMzI8L2Rpdj4NCiAgDQogIDxocj4NCiAgDQogIDxkaXYgY2xhc3M9ImluZm8tdGV4dCI+RG9zZW4gUGVuZ2FtcHU6PC9kaXY+DQogIDxkaXYgY2xhc3M9ImluZm8tdGV4dCIgc3R5bGU9ImNvbG9yOiAjMjk4MGI5OyI+PHN0cm9uZz5CQUtUSSBTSVJFR0FSLCBNLlNjLiwgQ0RTLjwvc3Ryb25nPjwvZGl2Pg0KICANCiAgPGRpdiBjbGFzcz0iaW5zdGl0dXRlIj5JTlNUSVRVVCBURUtOT0xPR0kgU0FJTlMgQkFORFVORzwvZGl2Pg0KPC9kaXY+DQoNCi0tLQ0KDQoxLiBNZW55aWFwa2FuIERhdGFzZXQNCmBgYHtyfQ0KDQpkZiA8LSBkYXRhLmZyYW1lKA0KICBJRCA9IGMoMSwgMiwgMywgNCwgNSksDQogIE5hbWEgPSBjKCJCYWdhcyIsICJKb2FuIiwgIkFseWEiLCAiRHdpIiwgIk5hYmlsIiksDQogIFVzaWEgPSBjKDI1LCAzMCwgMjcsIDM1LCA0MCksDQogIEdhamkgPSBjKDUwMDAsIDcwMDAsIDY1MDAsIDEwMDAwLCAxMjAwMCksDQogIEphYmF0YW4gPSBjKCJTdGFmIiwgIlBlbmdhd2FzIiwgIlN0YWYiLCAiTWFuYWplciIsICJEaXJla3R1ciIpLA0KICBLaW5lcmphID0gYygiQmFpayIsICJTYW5nYXQgQmFpayIsICJSYXRhLXJhdGEiLCAiQmFpayIsICJTYW5nYXQgQmFpayIpLA0KICBzdHJpbmdzQXNGYWN0b3JzID0gRkFMU0UNCikNCmBgYA0KDQoyLjUuMiBQZXJueWF0YWFuIEJlcnN5YXJhdCAoTWVuZ2hpdHVuZyBCb251cykNCmBgYHtyfQ0KZm9yIChpIGluIDE6bnJvdyhkZikpIHsNCiAgZ2FqaV9za3JnIDwtIGRmJEdhamlbaV0NCiAga2luZXJqYV9za3JnIDwtIGRmJEtpbmVyamFbaV0NCiAgDQogICMgTG9naWthIGlmLWVsaWYtZWxzZSB1bnR1ayBtZW5lbnR1a2FuIHBlcnNlbnRhc2UgYm9udXMNCiAgaWYgKGtpbmVyamFfc2tyZyA9PSAiU2FuZ2F0IEJhaWsiKSB7DQogICAgYm9udXMgPC0gMC4yMCAqIGdhamlfc2tyZw0KICB9IGVsc2UgaWYgKGtpbmVyamFfc2tyZyA9PSAiQmFpayIpIHsNCiAgICBib251cyA8LSAwLjEwICogZ2FqaV9za3JnDQogIH0gZWxzZSBpZiAoa2luZXJqYV9za3JnID09ICJSYXRhLXJhdGEiKSB7DQogICAgYm9udXMgPC0gMC4wNSAqIGdhamlfc2tyZw0KICB9IGVsc2Ugew0KICAgIGJvbnVzIDwtIDANCiAgfQ0KICANCiAgIyBNZW5hbXBpbGthbiBmb3JtYXQ6ICJOYW1lOiBbTmFtYV0sIEJvbnVzOiBbQm9udXNdIg0KICBjYXQocGFzdGUwKCJOYW1lOiAiLCBkZiROYW1hW2ldLCAiLCBCb251czogIiwgYm9udXMsICJcbiIpKQ0KfQ0KYGBgDQoNCg0KMi41LjMgUGVydWxhbmdhbiAoRm9yICYgV2hpbGUpDQoNCjEuUGVydWxhbmdhbiBGT1I6IEdhamkgPiA2MDAwDQoNCmBgYHtyfQ0KZm9yIChpIGluIDE6bnJvdyhkZikpIHsNCiAgaWYgKGRmJEdhamlbaV0gPiA2MDAwKSB7DQogICAgY2F0KHBhc3RlMCgiTmFtZTogIiwgZGYkTmFtYVtpXSwgIiwgU2FsYXJ5OiAiLCBkZiRHYWppW2ldLCAiXG4iKSkNCiAgfQ0KfQ0KYGBgDQoNCjIuIFBlcnVsYW5nYW4gV0hJTEU6IEJlcmhlbnRpIHNhYXQgZGl0ZW11a2FuICJNYW5hamVyIg0KDQpgYGB7cn0NCmkgPC0gMQ0Kd2hpbGUgKGkgPD0gbnJvdyhkZikpIHsNCiAgY2F0KHBhc3RlMCgiTmFtZTogIiwgZGYkTmFtYVtpXSwgIiwgUG9zaXRpb246ICIsIGRmJEphYmF0YW5baV0pKQ0KICBpZiAoZGYkSmFiYXRhbltpXSA9PSAiTWFuYWplciIpIHsNCiAgICBjYXQoIiAoU3RvcCBoZXJlKVxuIikNCiAgICBicmVhaw0KICB9DQogIGNhdCgiXG4iKQ0KICBpIDwtIGkgKyAxDQp9DQoNCmBgYA0KDQozLiBQZXJpbnRhaCBCUkVBSzogQmVyaGVudGkgamlrYSBHYWppID4gMTAuMDAwDQoNCmBgYHtyfQ0KZm9yIChpIGluIDE6bnJvdyhkZikpIHsNCiAgaWYgKGRmJEdhamlbaV0gPiAxMDAwMCkgew0KICAgIGNhdChwYXN0ZTAoIihTdG9wcGVkIGJlY2F1c2UgIiwgZGYkTmFtYVtpXSwgIiBoYXMgYSBzYWxhcnkgYWJvdmUgMTAsMDAwKVxuIikpDQogICAgYnJlYWsNCiAgfQ0KICBjYXQocGFzdGUwKCJOYW1lOiAiLCBkZiROYW1hW2ldLCAiLCBTYWxhcnk6ICIsIGRmJEdhamlbaV0sICJcbiIpKQ0KfQ0KYGBgDQoNCjQuIFBlcmludGFoIENPTlRJTlVFIDogTGV3YXRpICJSYXRhLXJhdGEiDQoNCmBgYHtyfQ0KZm9yIChpIGluIDE6bnJvdyhkZikpIHsNCiAgaWYgKGRmJEtpbmVyamFbaV0gPT0gIlJhdGEtcmF0YSIpIHsNCiAgICAjICduZXh0JyBiZXJmdW5nc2kgc2FtYSBkZW5nYW4gJ2NvbnRpbnVlJyBkaSBQeXRob24NCiAgICBuZXh0DQogIH0NCiAgY2F0KHBhc3RlMCgiTmFtZTogIiwgZGYkTmFtYVtpXSwgIiwgUGVyZm9ybWFuY2U6ICIsIGRmJEtpbmVyamFbaV0sICJcbiIpKQ0KfQ0KYGBgDQoNCg==