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.

1.1 Memuat Dataset

# Membuat dataset
data <- data.frame(
  ID = c(1, 2, 3, 4, 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")
)

# Menampilkan dataset dalam bentuk tabel
kable(data, caption = "Dataset Karyawan") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
Table 1: Table 2: Dataset Karyawan
ID Name Age Salary Position Performance
1 Bagas 25 5000 Staff Good
2 Joan 30 7000 Supervisor Very Good
3 Alya 27 6500 Staff Average
4 Dwi 35 10000 Manager Good
5 Nabil 40 12000 Director Very Good

1.2 Menerapkan Pernyataan Bersyarat

# Menerapkan pernyataan bersyarat
cat("Analisis Performa:\n")
## Analisis Performa:
for (i in 1:nrow(data)) {
  if (data$Performance[i] == "Very Good") {
    cat(paste(data$Name[i], "memiliki performa sangat baik.\n"))
  } else if (data$Performance[i] == "Good") {
    cat(paste(data$Name[i], "memiliki performa baik.\n"))
  } else {
    cat(paste(data$Name[i], "memiliki performa rata-rata.\n"))
  }
}
## Bagas memiliki performa baik.
## Joan memiliki performa sangat baik.
## Alya memiliki performa rata-rata.
## Dwi memiliki performa baik.
## Nabil memiliki performa sangat baik.

1.3 Menerapkan Loop untuk Analisis Gaji

# Menerapkan loop untuk analisis gaji
cat("\nAnalisis Gaji:\n")
## 
## Analisis Gaji:
for (i in 1:nrow(data)) {
  if (data$Salary[i] > 10000) {
    cat(paste(data$Name[i], "memiliki gaji di atas 10000.\n"))
  } else {
    cat(paste(data$Name[i], "memiliki gaji di bawah atau sama dengan 10000.\n"))
  }
}
## Bagas memiliki gaji di bawah atau sama dengan 10000.
## Joan memiliki gaji di bawah atau sama dengan 10000.
## Alya memiliki gaji di bawah atau sama dengan 10000.
## Dwi memiliki gaji di bawah atau sama dengan 10000.
## Nabil memiliki gaji di atas 10000.

1.4 Menggunakan While Loop untuk Menampilkan Data

# Menggunakan while loop untuk menampilkan data
cat("\nMenampilkan data menggunakan while loop:\n")
## 
## Menampilkan data menggunakan while loop:
i <- 1
while (i <= nrow(data)) {
  print(data[i, ])
  i <- i + 1
}
##   ID  Name Age Salary Position Performance
## 1  1 Bagas  25   5000    Staff        Good
##   ID Name Age Salary   Position Performance
## 2  2 Joan  30   7000 Supervisor   Very Good
##   ID Name Age Salary Position Performance
## 3  3 Alya  27   6500    Staff     Average
##   ID Name Age Salary Position Performance
## 4  4  Dwi  35  10000  Manager        Good
##   ID  Name Age Salary Position Performance
## 5  5 Nabil  40  12000 Director   Very Good

1.5 Penjelasan

  1. Membuat Dataset:
    • Dataset dibuat menggunakan data.frame yang berisi kolom-kolom seperti ID, Name, Age, Salary, Position, dan Performance.
  2. Menerapkan Pernyataan Bersyarat:
    • Loop for digunakan untuk iterasi melalui setiap baris data frame.
    • Pernyataan if, else if, dan else digunakan untuk mengevaluasi nilai kolom Performance:
      • Jika performa “Very Good”, cetak pesan “memiliki performa sangat baik.”
      • Jika performa “Good”, cetak pesan “memiliki performa baik.”
      • Jika performa “Average”, cetak pesan “memiliki performa rata-rata.”
  3. Menerapkan Loop untuk Analisis Gaji:
    • Loop for digunakan lagi untuk iterasi melalui setiap baris data frame.
    • Pernyataan if dan else digunakan untuk mengevaluasi nilai kolom Salary:
      • Jika gaji di atas 10.000, cetak pesan “memiliki gaji di atas 10000.”
      • Jika tidak, cetak pesan “memiliki gaji di bawah atau sama dengan 10000.”
  4. Menggunakan While Loop:
    • Loop while digunakan untuk menampilkan setiap baris data frame.
    • Variabel i digunakan sebagai indeks, dan loop berlanjut sampai i mencapai jumlah baris dalam data frame (nrow(data)).
    • data[i, ] digunakan untuk mengakses baris ke-i dari data frame.

2 Conditional Statements

# Menghitung bonus berdasarkan performa
cat("Perhitungan Bonus:\n")
## Perhitungan Bonus:
for (i in 1:nrow(data)) {
  if (data$Performance[i] == "Very Good") {
    bonus <- 0.20 * data$Salary[i]
  } else if (data$Performance[i] == "Good") {
    bonus <- 0.10 * data$Salary[i]
  } else if (data$Performance[i] == "Average") {
    bonus <- 0.05 * data$Salary[i]
  } else {
    bonus <- 0  # Jika performa tidak sesuai kriteria
  }
  
  # Menampilkan hasil bonus
  cat(paste("Name:", data$Name[i], "Bonus:", round(bonus), "\n"))
}
## Name: Bagas Bonus: 500 
## Name: Joan Bonus: 1400 
## Name: Alya Bonus: 325 
## Name: Dwi Bonus: 1000 
## Name: Nabil Bonus: 2400

2.1 Penjelasan

  1. Dataset dibuat menggunakan data.frame.
  2. Bonus dihitung berdasarkan performa karyawan:
    • Very Good: 20% dari gaji.
    • Good: 10% dari gaji.
    • Average: 5% dari gaji.
  3. Hasil bonus ditampilkan dalam format yang diminta.

3 Loops (For and While)

3.1 For Loop untuk Menampilkan Karyawan dengan Gaji di Atas 6000

cat("1. Karyawan dengan gaji di atas 6000:\n")
## 1. Karyawan dengan gaji di atas 6000:
for (i in 1:nrow(data)) {
  if (data$Salary[i] > 6000) {
    cat(paste("Name:", data$Name[i], "Salary:", data$Salary[i], "\n"))
  }
}
## Name: Joan Salary: 7000 
## Name: Alya Salary: 6500 
## Name: Dwi Salary: 10000 
## Name: Nabil Salary: 12000

3.2 While Loop untuk Menampilkan Karyawan sampai Ditemukan “Manager”

cat("\n2. Menampilkan karyawan sampai ditemukan 'Manager':\n")
## 
## 2. Menampilkan karyawan sampai ditemukan 'Manager':
i <- 1
while (i <= nrow(data)) {
  cat(paste("Name:", data$Name[i], "Position:", data$Position[i], "\n"))
  if (data$Position[i] == "Manager") {
    break  # Berhenti jika menemukan "Manager"
  }
  i <- i + 1
}
## Name: Bagas Position: Staff 
## Name: Joan Position: Supervisor 
## Name: Alya Position: Staff 
## Name: Dwi Position: Manager

3.3 Break untuk Menghentikan Loop ketika Menemukan Gaji di Atas 10.000

cat("\n3. Menghentikan loop ketika menemukan gaji di atas 10.000:\n")
## 
## 3. Menghentikan loop ketika menemukan gaji di atas 10.000:
for (i in 1:nrow(data)) {
  cat(paste("Name:", data$Name[i], "Salary:", data$Salary[i], "\n"))
  if (data$Salary[i] > 10000) {
    break  # Berhenti jika menemukan gaji di atas 10.000
  }
}
## Name: Bagas Salary: 5000 
## Name: Joan Salary: 7000 
## Name: Alya Salary: 6500 
## Name: Dwi Salary: 10000 
## Name: Nabil Salary: 12000

3.4 Continue untuk Melewati Karyawan dengan Performa “Average”

cat("\n4. Melewati karyawan dengan performa 'Average':\n")
## 
## 4. Melewati karyawan dengan performa 'Average':
for (i in 1:nrow(data)) {
  if (data$Performance[i] == "Average") {
    next  # Lewati jika performa "Average"
  }
  cat(paste("Name:", data$Name[i], "Performance:", data$Performance[i], "\n"))
}
## Name: Bagas Performance: Good 
## Name: Joan Performance: Very Good 
## Name: Dwi Performance: Good 
## Name: Nabil Performance: Very Good

3.5 Penjelasan

  1. For Loop (Gaji > 6000):
    • Loop melalui setiap baris data frame.
    • Jika gaji karyawan di atas 6000, tampilkan nama dan gaji.
  2. While Loop (Hentikan saat menemukan “Manager”):
    • Loop menggunakan while sampai menemukan karyawan dengan posisi “Manager”.
    • Berhenti setelah menemukan “Manager”.
  3. Break (Hentikan saat gaji > 10.000):
    • Loop melalui setiap baris data frame.
    • Berhenti jika menemukan karyawan dengan gaji di atas 10.000.
  4. Continue (Lewati performa “Average”):
    • Loop melalui setiap baris data frame.
    • Lewati karyawan dengan performa “Average” dan tampilkan yang lainnya.