Praktikum 2

Sains Data Programming

Logo

1. Objective and Conditional Statements

1.1 Objective

Tujuan

  1. Memahami dan mengimplementasikan conditional statements (if, if-else, if-elif-else).
  2. Menerapkan loops (for loop, while loop, break, continue) untuk menganalisis dataset.
# Membuat dataset dalam bentuk data frame
employees <- 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),
  Posisi = c("Staff", "Supervisor", "Staff", "Manager", "Direktur"),
  Kinerja = c("Baik", "Sangat Baik", "Rata-rata", "Baik", "Sangat Baik")
)

# Menampilkan tabel
print(employees)
##   ID  Nama Usia  Gaji     Posisi     Kinerja
## 1  1 Bagas   25  5000      Staff        Baik
## 2  2  Joan   30  7000 Supervisor Sangat Baik
## 3  3  Alya   27  6500      Staff   Rata-rata
## 4  4   Dwi   35 10000    Manager        Baik
## 5  5 Nabil   40 12000   Direktur Sangat Baik

1.2 Conditional Statements

Menghitung bonus berdasarkan performa karyawan:

-Sangat Baik -> 20% dari gaji

-Baik -> 10% dari gaji

-Rata-rata -> 5% dari gaji

# Menghitung bonus berdasarkan performa
for (i in 1:nrow(employees)) {
  if (employees$Kinerja[i] == "Sangat Baik") {
    bonus <- employees$Gaji[i] * 0.20
  } else if (employees$Kinerja[i] == "Baik") {
    bonus <- employees$Gaji[i] * 0.10
  } else if (employees$Kinerja[i] == "Rata-rata") {
    bonus <- employees$Gaji[i] * 0.05
  } else {
    bonus <- 0
  }
  
  cat("Nama:", employees$Nama[i], ", Bonus:", bonus, "\n")
}
## Nama: Bagas , Bonus: 500 
## Nama: Joan , Bonus: 1400 
## Nama: Alya , Bonus: 325 
## Nama: Dwi , Bonus: 1000 
## Nama: Nabil , Bonus: 2400

2. Loops (For & While)

2.1 For Loop: Menampilkan Karyawan dengan Gaji di Atas 6000

# For loop untuk menampilkan karyawan dengan gaji di atas 6000
cat("Karyawan dengan gaji di atas 6000:\n")
## Karyawan dengan gaji di atas 6000:
for (i in 1:nrow(employees)) {
  if (employees$Gaji[i] > 6000) {
    cat("Nama:", employees$Nama[i], ", Gaji:", employees$Gaji[i], "\n")
  }
}
## Nama: Joan , Gaji: 7000 
## Nama: Alya , Gaji: 6500 
## Nama: Dwi , Gaji: 10000 
## Nama: Nabil , Gaji: 12000

2.2 While Loop: Menampilkan Karyawan Sampai Posisi “Manager” Ditemukan

# While loop untuk menampilkan karyawan sampai "Manager" ditemukan
cat("\nMenampilkan karyawan sampai posisi 'Manager' ditemukan:\n")
## 
## Menampilkan karyawan sampai posisi 'Manager' ditemukan:
index <- 1
while (index <= nrow(employees)) {
  cat("Nama:", employees$Nama[index], ", Posisi:", employees$Posisi[index], "\n")
  if (employees$Posisi[index] == "Manager") {
    break
  }
  index <- index + 1
}
## Nama: Bagas , Posisi: Staff 
## Nama: Joan , Posisi: Supervisor 
## Nama: Alya , Posisi: Staff 
## Nama: Dwi , Posisi: Manager

2.3 Break: Menghentikan Loop Ketika Gaji di Atas 10.000 Ditemukan

# Break untuk menghentikan loop ketika gaji di atas 10.000 ditemukan
cat("\nMenghentikan loop ketika gaji di atas 10.000 ditemukan:\n")
## 
## Menghentikan loop ketika gaji di atas 10.000 ditemukan:
for (i in 1:nrow(employees)) {
  cat("Nama:", employees$Nama[i], ", Gaji:", employees$Gaji[i], "\n")
  if (employees$Gaji[i] > 10000) {
    cat("(Dihentikan karena Nabil memiliki gaji di atas 10,000)\n")
    break
  }
}
## Nama: Bagas , Gaji: 5000 
## Nama: Joan , Gaji: 7000 
## Nama: Alya , Gaji: 6500 
## Nama: Dwi , Gaji: 10000 
## Nama: Nabil , Gaji: 12000 
## (Dihentikan karena Nabil memiliki gaji di atas 10,000)

2.4 Continue: Melewati Karyawan dengan Performa “Rata-rata”

# Continue untuk melewati karyawan dengan performa "Rata-rata"
cat("\nMelewati karyawan dengan performa 'Rata-rata':\n")
## 
## Melewati karyawan dengan performa 'Rata-rata':
for (i in 1:nrow(employees)) {
  if (employees$Kinerja[i] == "Rata-rata") {
    next
  }
  cat("Nama:", employees$Nama[i], ", Kinerja:", employees$Kinerja[i], "\n")
}
## Nama: Bagas , Kinerja: Baik 
## Nama: Joan , Kinerja: Sangat Baik 
## Nama: Dwi , Kinerja: Baik 
## Nama: Nabil , Kinerja: Sangat Baik
LS0tDQp0aXRsZTogIlByYWt0aWt1bSAyIg0Kc3VidGl0bGU6ICJTYWlucyBEYXRhIFByb2dyYW1taW5nIg0KYXV0aG9yOiAiTXVoYW1tYWQgTmFiaWwgUHJhdGFtYSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDoNCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246DQogICAgc2VsZl9jb250YWluZWQ6IHRydWUNCiAgICB0aHVtYm5haWxzOiB0cnVlDQogICAgbGlnaHRib3g6IHRydWUNCiAgICBnYWxsZXJ5OiB0cnVlDQogICAgbGliX2RpcjogbGlicw0KICAgIGRmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJzdHlsZS5jc3MiDQotLS0NCg0KPGltZyBpZD0iaXNpX25hbWEiIHNyYz0iQzovVXNlcnMvTSBOYWJpbCBQcmF0YW1hL09uZURyaXZlL1BpY3R1cmVzL1NjcmVlbnNob3RzL0dhbWJhciBXaGF0c0FwcCAyMDI0LTEyLTA2IHB1a3VsIDEzLjMzLjE1X2MzZmQwZmM3LmpwZyIgYWx0PSJMb2dvIiBzdHlsZT0id2lkdGg6MjAwcHg7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IGF1dG87Ij4NCg0KIyAqKjEuIE9iamVjdGl2ZSBhbmQgQ29uZGl0aW9uYWwgU3RhdGVtZW50cyoqDQoNCiMjICoqMS4xIE9iamVjdGl2ZSoqDQoNCiMjIyAqKlR1anVhbioqDQoNCjEuIE1lbWFoYW1pIGRhbiBtZW5naW1wbGVtZW50YXNpa2FuIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKGlmLCBpZi1lbHNlLCBpZi1lbGlmLWVsc2UpLg0KMi4gTWVuZXJhcGthbiBsb29wcyAoZm9yIGxvb3AsIHdoaWxlIGxvb3AsIGJyZWFrLCBjb250aW51ZSkgdW50dWsgbWVuZ2FuYWxpc2lzIGRhdGFzZXQuDQoNCmBgYHtyfQ0KIyBNZW1idWF0IGRhdGFzZXQgZGFsYW0gYmVudHVrIGRhdGEgZnJhbWUNCmVtcGxveWVlcyA8LSBkYXRhLmZyYW1lKA0KICBJRCA9IGMoMSwgMiwgMywgNCwgNSksDQogIE5hbWEgPSBjKCJCYWdhcyIsICJKb2FuIiwgIkFseWEiLCAiRHdpIiwgIk5hYmlsIiksDQogIFVzaWEgPSBjKDI1LCAzMCwgMjcsIDM1LCA0MCksDQogIEdhamkgPSBjKDUwMDAsIDcwMDAsIDY1MDAsIDEwMDAwLCAxMjAwMCksDQogIFBvc2lzaSA9IGMoIlN0YWZmIiwgIlN1cGVydmlzb3IiLCAiU3RhZmYiLCAiTWFuYWdlciIsICJEaXJla3R1ciIpLA0KICBLaW5lcmphID0gYygiQmFpayIsICJTYW5nYXQgQmFpayIsICJSYXRhLXJhdGEiLCAiQmFpayIsICJTYW5nYXQgQmFpayIpDQopDQoNCiMgTWVuYW1waWxrYW4gdGFiZWwNCnByaW50KGVtcGxveWVlcykNCmBgYA0KIyMgKioxLjIgQ29uZGl0aW9uYWwgU3RhdGVtZW50cyoqDQoNCipNZW5naGl0dW5nIGJvbnVzIGJlcmRhc2Fya2FuIHBlcmZvcm1hIGthcnlhd2FuOioNCg0KLVNhbmdhdCBCYWlrIC0+IDIwJSBkYXJpIGdhamkNCg0KLUJhaWsgLT4gMTAlIGRhcmkgZ2FqaQ0KDQotUmF0YS1yYXRhIC0+IDUlIGRhcmkgZ2FqaQ0KDQpgYGB7cn0NCiMgTWVuZ2hpdHVuZyBib251cyBiZXJkYXNhcmthbiBwZXJmb3JtYQ0KZm9yIChpIGluIDE6bnJvdyhlbXBsb3llZXMpKSB7DQogIGlmIChlbXBsb3llZXMkS2luZXJqYVtpXSA9PSAiU2FuZ2F0IEJhaWsiKSB7DQogICAgYm9udXMgPC0gZW1wbG95ZWVzJEdhamlbaV0gKiAwLjIwDQogIH0gZWxzZSBpZiAoZW1wbG95ZWVzJEtpbmVyamFbaV0gPT0gIkJhaWsiKSB7DQogICAgYm9udXMgPC0gZW1wbG95ZWVzJEdhamlbaV0gKiAwLjEwDQogIH0gZWxzZSBpZiAoZW1wbG95ZWVzJEtpbmVyamFbaV0gPT0gIlJhdGEtcmF0YSIpIHsNCiAgICBib251cyA8LSBlbXBsb3llZXMkR2FqaVtpXSAqIDAuMDUNCiAgfSBlbHNlIHsNCiAgICBib251cyA8LSAwDQogIH0NCiAgDQogIGNhdCgiTmFtYToiLCBlbXBsb3llZXMkTmFtYVtpXSwgIiwgQm9udXM6IiwgYm9udXMsICJcbiIpDQp9DQpgYGANCiMgKioyLiBMb29wcyAoRm9yICYgV2hpbGUpKioNCg0KIyMgKioyLjEgRm9yIExvb3A6IE1lbmFtcGlsa2FuIEthcnlhd2FuIGRlbmdhbiBHYWppIGRpIEF0YXMgNjAwMCoqDQoNCmBgYHtyfQ0KIyBGb3IgbG9vcCB1bnR1ayBtZW5hbXBpbGthbiBrYXJ5YXdhbiBkZW5nYW4gZ2FqaSBkaSBhdGFzIDYwMDANCmNhdCgiS2FyeWF3YW4gZGVuZ2FuIGdhamkgZGkgYXRhcyA2MDAwOlxuIikNCmZvciAoaSBpbiAxOm5yb3coZW1wbG95ZWVzKSkgew0KICBpZiAoZW1wbG95ZWVzJEdhamlbaV0gPiA2MDAwKSB7DQogICAgY2F0KCJOYW1hOiIsIGVtcGxveWVlcyROYW1hW2ldLCAiLCBHYWppOiIsIGVtcGxveWVlcyRHYWppW2ldLCAiXG4iKQ0KICB9DQp9DQpgYGANCiMjICoqMi4yIFdoaWxlIExvb3A6IE1lbmFtcGlsa2FuIEthcnlhd2FuIFNhbXBhaSBQb3Npc2kgIk1hbmFnZXIiIERpdGVtdWthbioqDQoNCmBgYHtyfQ0KIyBXaGlsZSBsb29wIHVudHVrIG1lbmFtcGlsa2FuIGthcnlhd2FuIHNhbXBhaSAiTWFuYWdlciIgZGl0ZW11a2FuDQpjYXQoIlxuTWVuYW1waWxrYW4ga2FyeWF3YW4gc2FtcGFpIHBvc2lzaSAnTWFuYWdlcicgZGl0ZW11a2FuOlxuIikNCmluZGV4IDwtIDENCndoaWxlIChpbmRleCA8PSBucm93KGVtcGxveWVlcykpIHsNCiAgY2F0KCJOYW1hOiIsIGVtcGxveWVlcyROYW1hW2luZGV4XSwgIiwgUG9zaXNpOiIsIGVtcGxveWVlcyRQb3Npc2lbaW5kZXhdLCAiXG4iKQ0KICBpZiAoZW1wbG95ZWVzJFBvc2lzaVtpbmRleF0gPT0gIk1hbmFnZXIiKSB7DQogICAgYnJlYWsNCiAgfQ0KICBpbmRleCA8LSBpbmRleCArIDENCn0NCmBgYA0KIyMgKioyLjMgQnJlYWs6IE1lbmdoZW50aWthbiBMb29wIEtldGlrYSBHYWppIGRpIEF0YXMgMTAuMDAwIERpdGVtdWthbioqDQpgYGB7cn0NCiMgQnJlYWsgdW50dWsgbWVuZ2hlbnRpa2FuIGxvb3Aga2V0aWthIGdhamkgZGkgYXRhcyAxMC4wMDAgZGl0ZW11a2FuDQpjYXQoIlxuTWVuZ2hlbnRpa2FuIGxvb3Aga2V0aWthIGdhamkgZGkgYXRhcyAxMC4wMDAgZGl0ZW11a2FuOlxuIikNCmZvciAoaSBpbiAxOm5yb3coZW1wbG95ZWVzKSkgew0KICBjYXQoIk5hbWE6IiwgZW1wbG95ZWVzJE5hbWFbaV0sICIsIEdhamk6IiwgZW1wbG95ZWVzJEdhamlbaV0sICJcbiIpDQogIGlmIChlbXBsb3llZXMkR2FqaVtpXSA+IDEwMDAwKSB7DQogICAgY2F0KCIoRGloZW50aWthbiBrYXJlbmEgTmFiaWwgbWVtaWxpa2kgZ2FqaSBkaSBhdGFzIDEwLDAwMClcbiIpDQogICAgYnJlYWsNCiAgfQ0KfQ0KYGBgDQojIyAqKjIuNCBDb250aW51ZTogTWVsZXdhdGkgS2FyeWF3YW4gZGVuZ2FuIFBlcmZvcm1hICJSYXRhLXJhdGEiKioNCmBgYHtyfQ0KIyBDb250aW51ZSB1bnR1ayBtZWxld2F0aSBrYXJ5YXdhbiBkZW5nYW4gcGVyZm9ybWEgIlJhdGEtcmF0YSINCmNhdCgiXG5NZWxld2F0aSBrYXJ5YXdhbiBkZW5nYW4gcGVyZm9ybWEgJ1JhdGEtcmF0YSc6XG4iKQ0KZm9yIChpIGluIDE6bnJvdyhlbXBsb3llZXMpKSB7DQogIGlmIChlbXBsb3llZXMkS2luZXJqYVtpXSA9PSAiUmF0YS1yYXRhIikgew0KICAgIG5leHQNCiAgfQ0KICBjYXQoIk5hbWE6IiwgZW1wbG95ZWVzJE5hbWFbaV0sICIsIEtpbmVyamE6IiwgZW1wbG95ZWVzJEtpbmVyamFbaV0sICJcbiIpDQp9DQpgYGANCg==