ASSIGNMENT WEEK 4

DATA SCIENCE PROGRAMING

Refantanur_Sains Data


Persiapan Data Karyawan

#-----------------------------------------------------------------------------------------------------------
# PERSIAPAN DATASET KARYAWAN
#-----------------------------------------------------------------------------------------------------------
# Dataset Keryawan

data_karyawan <- data.frame(
  ID = 1:5,
  Name = c("Bagas", "Joan", "Alya", "Dwi", "Nabil"),
  Age = c(25, 30, 27, 35, 40),
  Salary = c(5000, 7000, 6500, 10000, 12000),
  Position = c("Staff", "Supervisor", "Staff", "Manager", "Director"),
  Performance = c("Good", "Very Good", "Average", "Good", "Very Good"),
  stringsAsFactors = FALSE
)

Menghitung Bonus Karyawan

#-----------------------------------------------------------------------------------------------------------
# MENGHITUNG BONUS KARYAWAN
#-----------------------------------------------------------------------------------------------------------

cat("=== Perhitungan Bonus ===\n")
## === Perhitungan Bonus ===
## === Perhitungan Bonus Karyawan ===

for (i in 1:nrow(data_karyawan)) {
  performa <- data_karyawan$Performance[i]
  gaji <- data_karyawan$Salary[i]
  nama <- data_karyawan$Name[i]
  
  if (performa == "Very Good") {
    bonus <- 0.20 * gaji
  } else if (performa == "Good") {
    bonus <- 0.10 * gaji
  } else if (performa == "Average") {
    bonus <- 0.05 * gaji
  } else {
    bonus <- 0
  }
  
  cat(paste0("Name: ", nama, ", Bonus: ", bonus, "\n"))
}
## Name: Bagas, Bonus: 500
## Name: Joan, Bonus: 1400
## Name: Alya, Bonus: 325
## Name: Dwi, Bonus: 1000
## Name: Nabil, Bonus: 2400

Menampilkan Gaji Karyawan Dengan Gaji > 6000

#-----------------------------------------------------------------------------------------------------------
# Menampilkan Karyawan Gaji > 6000
#-----------------------------------------------------------------------------------------------------------


cat("\n=== Gaji Karyawan > 6000 ===\n")
## 
## === Gaji Karyawan > 6000 ===
for (i in 1:nrow(data_karyawan)) {
  if (data_karyawan$Salary[i] > 6000) {
    cat(paste0("Name: ", data_karyawan$Name[i], ", Salary: ", data_karyawan$Salary[i], "\n"))
  }
}
## Name: Joan, Salary: 7000
## Name: Alya, Salary: 6500
## Name: Dwi, Salary: 10000
## Name: Nabil, Salary: 12000

Menampilkan Karyawan Sampai Manager (While loop)

#-----------------------------------------------------------------------------------------------------------
# MENAMPILKAN KARYAWAN SAMPAI MANAGER
#-----------------------------------------------------------------------------------------------------------


cat("\n=== Berhenti saat menemukan Manager ===\n")
## 
## === Berhenti saat menemukan Manager ===
i <- 1
while (i <= nrow(data_karyawan)) {
  nama <- data_karyawan$Name[i]
  posisi <- data_karyawan$Position[i]
  
  if (posisi == "Manager") {
    cat(paste0("Name: ", nama, ", Position: ", posisi, " (Stop here)\n"))
    break
  } else {
    cat(paste0("Name: ", nama, ", Position: ", posisi, "\n"))
  }
  i <- i + 1
}
## Name: Bagas, Position: Staff
## Name: Joan, Position: Supervisor
## Name: Alya, Position: Staff
## Name: Dwi, Position: Manager (Stop here)

Break: Berhenti jika gaji > 10.000 ditemukan

#-----------------------------------------------------------------------------------------------------------
# BREAK GAJI KARYAWAN > 10000
#-----------------------------------------------------------------------------------------------------------
cat("\n=== Berhenti jika gaji di atas 10.000 ditemukan ===\n")
## 
## === Berhenti jika gaji di atas 10.000 ditemukan ===
for (i in 1:nrow(data_karyawan)) {
  if (data_karyawan$Salary[i] > 10000) {
    cat(paste0("(Stopped because ", data_karyawan$Name[i], " has a salary above 10,000)\n"))
    break
  }
  cat(paste0("Name: ", data_karyawan$Name[i], ", Salary: ", data_karyawan$Salary[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)

Continue: Skip karyawan dengan performa “Average”

#-----------------------------------------------------------------------------------------------------------
# SKIP KARYAWAN DENGAN PERFORMA RATA-RATA
#-----------------------------------------------------------------------------------------------------------

cat("\n=== Skip performa 'Average' ===\n")
## 
## === Skip performa 'Average' ===
for (i in 1:nrow(data_karyawan)) {
  if (data_karyawan$Performance[i] == "Average") {
    cat(paste0("(", data_karyawan$Name[i], " is skipped because the performance is 'Average')\n"))
    next
  }
  cat(paste0("Name: ", data_karyawan$Name[i], ", Performance: ", data_karyawan$Performance[i], "\n"))
}
## Name: Bagas, Performance: Good
## Name: Joan, Performance: Very Good
## (Alya is skipped because the performance is 'Average')
## Name: Dwi, Performance: Good
## Name: Nabil, Performance: Very Good