Second Task

Praticum Week 4

Januaria Teresinha

Januaria Teresinha

Data Science Student @ ITSB
Mentored by:
Mr. Bakti Siregar M.Sc., CDS

1 . Praktikum

Independent Practice:Conditional Statements and Loops in Python & R

1.1 .Tujuan

  1. Understand and implement Conditional Statements (if,if-else,if-elif-else).
  2. Apply loops (for loop,while loop,break,continue) to analyze a dataset.

Use the following dummy dataset:

library(knitr)

# 1. Membuat dataset dummy (Sesuai Tabel 2.5.1)
employee_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"),
  stringsAsFactors = FALSE
)

# Menampilkan tabel utama dengan format yang bersih
kable(employee_data, 
      format = "simple", 
      caption = "Tabel 2.5.1 Dummy Dataset",
      align = "cllllc")
Table 1.1: Tabel 2.5.1 Dummy Dataset
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
# Membuat dataframe sesuai dengan tabel pada gambar
df_karyawan <- 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"),
  stringsAsFactors = FALSE
)

# Menampilkan isi dataframe untuk memastikan data sudah benar
print(df_karyawan)
  ID  Name Age Salary   Position Performance
1  1 Bagas  25   5000      Staff        Good
2  2  Joan  30   7000 Supervisor   Very Good
3  3  Alya  27   6500      Staff     Average
4  4   Dwi  35  10000    Manager        Good
5  5 Nabil  40  12000   Director   Very Good

1.2 Pernyataan Kondisi

# Kita punya df_karyawan sebagai sumber data utama di sini. Di dalamnya sudah lengkap ada nama, jabatan, dan gaji masing-masing orang, jadi kita tinggal olah saja untuk melihat gambaran besar tim kita.

# Iterasi melalui setiap baris di df_karyawan
for (i in 1:nrow(df_karyawan)) {
  nama <- df_karyawan$Name[i]
  gaji <- df_karyawan$Salary[i]
  performa <- df_karyawan$Performance[i]
  
  # Menentukan level bonus
  if (performa == "Very Good") {
    bonus <- gaji * 0.20
  } else if (performa == "Good") {
    bonus <- gaji * 0.10
  } else if (performa == "Average") {
    bonus <- gaji * 0.05
  } else {
    bonus <- 0
  }
  
  # Menampilkan output sesuai format: "Name: Bagas, Bonus: 500"
  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"

1.3 Loops (For & while)

# Kita akan menyaring karyawan yang memiliki gaji di atas 6000.

cat("--- No 1: Salary > 6000 ---\n")
--- No 1: Salary > 6000 ---
for (i in 1:nrow(df_karyawan)) {
  if (df_karyawan$Salary[i] > 6000) {
    cat(sprintf("Name: %s, Salary: %g\n", df_karyawan$Name[i], df_karyawan$Salary[i]))
  }
}
Name: Joan, Salary: 7000
Name: Alya, Salary: 6500
Name: Dwi, Salary: 10000
Name: Nabil, Salary: 12000
# Perulangan akan terus berjalan dan berhenti tepat saat menemukan posisi Manager

cat("\n--- No 2: Stop at Manager ---\n")

--- No 2: Stop at Manager ---
i <- 1
while (i <= nrow(df_karyawan)) {
  nama <- df_karyawan$Name[i]
  posisi <- df_karyawan$Position[i]
  
  if (posisi == "Manager") {
    cat(sprintf("Name: %s, Position: %s (Berhenti di Sini)\n", nama, posisi))
    break # Keluar dari loop setelah menemukan Manager
  }
  
  cat(sprintf("Name: %s, Position: %s\n", nama, posisi))
  i <- i + 1
}
Name: Bagas, Position: Staff
Name: Joan, Position: Supervisor
Name: Alya, Position: Staff
Name: Dwi, Position: Manager (Berhenti di Sini)
# Loop akan berhenti total jika menemukan karyawan dengan gaji lebih dari 10.000 (dalam kasus ini, Nabil)


cat("\n--- No 3: Break if Salary > 10000 ---\n")

--- No 3: Break if Salary > 10000 ---
for (i in 1:nrow(df_karyawan)) {
  if (df_karyawan$Salary[i] > 10000) {
    cat(sprintf("(Stopped because %s has a salary above 10,000)\n", df_karyawan$Name[i]))
    break
  }
  cat(sprintf("Name: %s, Salary: %g\n", df_karyawan$Name[i], df_karyawan$Salary[i]))
}
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)
# Di bahasa R, perintah untuk melompati iterasi (skip) bukan menggunakan continue, melainkan next.

cat("\n--- No 4: Skip Average Performance ---\n")

--- No 4: Skip Average Performance ---
for (i in 1:nrow(df_karyawan)) {
  if (df_karyawan$Performance[i] == "Average") {
    next # Melompati Alya
  }
  cat(sprintf("Name: %s, Performance: %s\n", df_karyawan$Name[i], df_karyawan$Performance[i]))
}
Name: Bagas, Performance: Good
Name: Joan, Performance: Very Good
Name: Dwi, Performance: Good
Name: Nabil, Performance: Very Good