Syntax and Control Flow

Practicum ~ Week 4

Adinda Maiza Ishfahani

Data Science Undergraduate at ITSB

NIM : 52250074


1 Pendahuluan

1.1 Background

In companies, employee performance is often used as a basis for determining bonuses. Using R programming, we can perform simple analysis on employee datasets to calculate bonuses and explore the data using iterations and visualizations.

2 Dataset karyawan

# Dataset Karyawan
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","Director")
kinerja <- c("Good","Very Good","Average","Good","Very Good")

semua_bonus <- c()

for(i in 1:length(nama)){
  
  if(kinerja[i] == "Very Good"){
    bonus_temp <- gaji[i]*0.20
  } else if(kinerja[i] == "Good"){
    bonus_temp <- gaji[i]*0.10
  } else{
    bonus_temp <- gaji[i]*0.05
  }
  
  semua_bonus[i] <- bonus_temp
  
  cat("Name:",nama[i],", Bonus:",bonus_temp,"\n")
}
## Name: Bagas , Bonus: 500 
## Name: Joan , Bonus: 1400 
## Name: Alya , Bonus: 325 
## Name: Dwi , Bonus: 1000 
## Name: Nabil , Bonus: 2400

2.1 Interpretasi

Berdasarkan hasil perhitungan, karyawan dengan kinerja Very Good memperoleh bonus paling besar yaitu 20% dari gaji, sedangkan karyawan dengan kinerja Average memperoleh bonus paling kecil yaitu 5% dari gaji.

3 For loop (gaji > 6000)

for(i in 1:length(nama)){
  
  if(gaji[i] > 6000){
    cat("Name:",nama[i],", Salary:",gaji[i],"\n")
  }
}
## Name: Joan , Salary: 7000 
## Name: Alya , Salary: 6500 
## Name: Dwi , Salary: 10000 
## Name: Nabil , Salary: 12000

3.1 Interpretasi

Hasil menunjukkan bahwa karyawan dengan gaji lebih dari 6000 adalah Joan, Alya, Dwi, dan Nabil.

4 While loop sampai manager

i <- 1

while(i <= length(nama)){
  
  cat("Name:",nama[i],", Position:",posisi[i],"\n")
  
  if(posisi[i] == "Manager"){
    cat("(Stop here)\n")
    break
  }
  
  i <- i + 1
}
## Name: Bagas , Position: Staff 
## Name: Joan , Position: Supervisor 
## Name: Alya , Position: Staff 
## Name: Dwi , Position: Manager 
## (Stop here)

4.1 Interpretasi

Perulangan berhenti ketika menemukan posisi Manager, yaitu pada karyawan Dwi.

5 Break jika gaji > 10000

for(i in 1:length(nama)){
  
  if(gaji[i] > 10000){
    cat("(Stopped because",nama[i],"has a salary above 10,000)\n")
    break
  }
  
  cat("Name:",nama[i],", Salary:",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)

5.1 Interpretasi

Histogram menunjukkan distribusi gaji karyawan yang berkisar antara 5000 hingga 12000 dengan jumlah karyawan yang relatif sedikit di setiap rentang gaji.

6 Continue (Skip average)

for(i in 1:length(nama)){
  
  if(kinerja[i] == "Average"){
    cat("(",nama[i],"is skipped because performance is Average )\n")
    next
  }
  
  cat("Name:",nama[i],", Performance:",kinerja[i],"\n")
}
## Name: Bagas , Performance: Good 
## Name: Joan , Performance: Very Good 
## ( Alya is skipped because performance is Average )
## Name: Dwi , Performance: Good 
## Name: Nabil , Performance: Very Good

Referensi

  • Matloff, N. (2011). The Art of R Programming: A Tour of Statistical Software Design. San Francisco: No Starch Press.

  • Chang, W. (2018). R Graphics Cookbook: Practical Recipes for Visualizing Data (2nd ed.). Sebastopol: O’Reilly Media.

  • McKinney, W. (2022). Python for Data Analysis (3rd ed.). Sebastopol: O’Reilly Media.