Syntax and Control Flow
February 27, 2025
1 Objective
Tujuan :
- Memahami dan mengimplementasikan conditional statements (if, if-else, if-elif-else).
- 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"))| 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
## 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
##
## 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
##
## Menampilkan data menggunakan while loop:
## 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
- Membuat Dataset:
- Dataset dibuat menggunakan
data.frameyang berisi kolom-kolom sepertiID,Name,Age,Salary,Position, danPerformance.
- Dataset dibuat menggunakan
- Menerapkan Pernyataan Bersyarat:
- Loop
fordigunakan untuk iterasi melalui setiap baris data frame. - Pernyataan
if,else if, danelsedigunakan untuk mengevaluasi nilai kolomPerformance:- 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.”
- Loop
- Menerapkan Loop untuk Analisis Gaji:
- Loop
fordigunakan lagi untuk iterasi melalui setiap baris data frame. - Pernyataan
ifdanelsedigunakan untuk mengevaluasi nilai kolomSalary:- 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.”
- Loop
- Menggunakan While Loop:
- Loop
whiledigunakan untuk menampilkan setiap baris data frame. - Variabel
idigunakan sebagai indeks, dan loop berlanjut sampaiimencapai jumlah baris dalam data frame (nrow(data)). data[i, ]digunakan untuk mengakses baris ke-idari data frame.
- Loop
2 Conditional Statements
## 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
3 Loops (For and While)
3.1 For Loop untuk Menampilkan Karyawan dengan Gaji di Atas 6000
## 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”
##
## 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
##
## 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”
##
## 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
- For Loop (Gaji > 6000):
- Loop melalui setiap baris data frame.
- Jika gaji karyawan di atas 6000, tampilkan nama dan gaji.
- While Loop (Hentikan saat menemukan “Manager”):
- Loop menggunakan
whilesampai menemukan karyawan dengan posisi “Manager”. - Berhenti setelah menemukan “Manager”.
- Loop menggunakan
- Break (Hentikan saat gaji > 10.000):
- Loop melalui setiap baris data frame.
- Berhenti jika menemukan karyawan dengan gaji di atas 10.000.
- Continue (Lewati performa “Average”):
- Loop melalui setiap baris data frame.
- Lewati karyawan dengan performa “Average” dan tampilkan yang lainnya.