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)
## 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.