Tugas Individu
Praktikum 2 Pemrograman Dasar - Pemrograman Sains Data
Praktikum 2 – Sintaks dan Alur Kontrol
1 Praktikum
1.1 Tujuan
Praktikum ini bertujuan untuk:
1. Memahami dan mengimplementasikan pernyataan
kondisional dalam pemrograman menggunakan if, if-else,
dan if-elif-else.
2. Menerapkan perulangan seperti for loop,
while loop, break, dan continue untuk menganalisis dataset.
Praktikum ini menggunakan dataset berikut:
ID | Nama | Usia | Gaji | Posisi | Performa |
---|---|---|---|---|---|
1 | Bagas | 25 | 5000 | Staff | Baik |
2 | Joan | 30 | 7000 | Supervisor | Sangat Baik |
3 | Alya | 27 | 6500 | Staff | Rata-rata |
4 | Dwi | 35 | 10000 | Manajer | Baik |
5 | Nabil | 40 | 12000 | Direktur | Sangat Baik |
1.2 Implementasi Pernyataan Kondisional
Bonus karyawan ditentukan berdasarkan performa,
dengan ketentuan berikut:
- Sangat Baik → 20% dari gaji
- Baik → 10% dari gaji
- Rata-rata → 5% dari gaji
Langkah Kerja:
Menggunakan if-elif-else untuk menghitung bonus berdasarkan performa karyawan.
Menampilkan hasil dalam format berikut:
"Nama: Bagas, Bonus: 500"
Mengimplementasikan kode dalam Python dan R.
jawab:
a.dalam kode Phyton:
# Mebuat daftar karyawan dengan data nama, gaji, dan performany
karyawan = [
{"Nama": "Bagas", "Gaji": 5000, "Performa": "Baik"},
{"Nama": "Joan", "Gaji": 7000, "Performa": "Sangat Baik"},
{"Nama": "Alya", "Gaji": 6500, "Performa": "Rata-rata"},
{"Nama": "Dwi", "Gaji": 10000, "Performa": "Baik"},
{"Nama": "Nabil", "Gaji": 12000, "Performa": "Sangat Baik"}
]
# Loop untuk menghitung bonusnya berdasarkan performa masing-masing karyawan
for k in karyawan:
if k["Performa"] == "Sangat Baik": # Kalo performanya Sangat Baik, bonusnya 20% dari gaji
bonus = k["Gaji"] * 0.2
elif k["Performa"] == "Baik": # Kalo performanya Baik, bonusnya 10% dari gaji
bonus = k["Gaji"] * 0.1
else: # Kalo performanya Rata-rata, bonusnya 5% dari gaji
bonus = k["Gaji"] * 0.05
print(f'Nama: {k["Nama"]}, Bonus: {int(bonus)}') # Menampilkan hasil
## Nama: Bagas, Bonus: 500
## Nama: Joan, Bonus: 1400
## Nama: Alya, Bonus: 325
## Nama: Dwi, Bonus: 1000
## Nama: Nabil, Bonus: 2400
penjelasan: Kode Python ini bertujuan untuk menghitung bonus karyawan berdasarkan performa mereka. Data karyawan disimpan dalam list of dictionaries, yang berisi nama, gaji, dan performa. Program menggunakan loop for untuk membaca setiap karyawan. Variabel k merepresentasikan setiap karyawan dalam daftar. Kemudian, struktur if-elif-else digunakan untuk menentukan besar bonus berdasarkan performa. Setelah itu, hasilnya ditampilkan dalam format yang jelas.Perintah ini mencetak nama karyawan dan jumlah bonusnya, dengan int(bonus) memastikan hasil dalam angka bulat.
b. dalam kode r :
# Bikin data karyawan dalam bentuk dataframe
karyawan <- data.frame(
Nama = c("Bagas", "Joan", "Alya", "Dwi", "Nabil"), # Nama karyawan
Gaji = c(5000, 7000, 6500, 10000, 12000), # Gaji masing-masing karyawan
Performa = c("Baik", "Sangat Baik", "Rata-rata", "Baik", "Sangat Baik") # Kategori performa
)
# Loop buat ngitung bonus tiap karyawan berdasarkan performanya
for (k in 1:nrow(karyawan)) {
if (karyawan$Performa[k] == "Sangat Baik") { # Kalo performanya "Sangat Baik", bonusnya 20% dari gaji
bonus <- karyawan$Gaji[k] * 0.2
} else if (karyawan$Performa[k] == "Baik") { # Kalo "Baik", bonusnya 10% dari gaji
bonus <- karyawan$Gaji[k] * 0.1
} else { # Kalau "Rata-rata", bonusnya 5% dari gaji
bonus <- karyawan$Gaji[k] * 0.05
}
# Nampilin hasilnya biar bisa dicek
cat("Nama:", karyawan$Nama[k], ", Bonus:", as.integer(bonus), "\n")
}
## Nama: Bagas , Bonus: 500
## Nama: Joan , Bonus: 1400
## Nama: Alya , Bonus: 325
## Nama: Dwi , Bonus: 1000
## Nama: Nabil , Bonus: 2400
penjelasan : Kode R ini bertujuan untuk menghitung bonus karyawan
berdasarkan performa mereka. Data karyawan disimpan dalam data
frame, yang berisi nama, gaji, dan performa.
Program menggunakan loop for untuk membaca setiap
karyawan. Variabel k
merepresentasikan indeks setiap
karyawan dalam data frame. Kemudian, struktur if-else
digunakan untuk menentukan besar bonus berdasarkan performa. Setelah
itu, hasilnya ditampilkan dalam format yang jelas. Perintah ini mencetak
nama karyawan dan jumlah bonusnya, dengan
as.integer() memastikan hasil dalam angka bulat.
1.3 Implementasi Perulangan (For & While Loop)
1.3.1. Menggunakan for loop untuk menampilkan karyawan dengan gaji lebih dari 6000.
Output yang diharapkan:
Nama: Joan, Gaji: 7000 Nama: Alya, Gaji: 6500 Nama: Dwi, Gaji: 10000 Nama: Nabil, Gaji: 12000
jawab:
a.dalam kode Phyton:
# Membuat daftar karyawan dengan data nama, gaji, dan performa
karyawan = [
{"Nama": "Bagas", "Gaji": 5000, "Performa": "Baik"},
{"Nama": "Joan", "Gaji": 7000, "Performa": "Sangat Baik"},
{"Nama": "Alya", "Gaji": 6500, "Performa": "Rata-rata"},
{"Nama": "Dwi", "Gaji": 10000, "Performa": "Baik"},
{"Nama": "Nabil", "Gaji": 12000, "Performa": "Sangat Baik"}
]
# Loop untuk menampilkan karyawan yang memiliki gaji lebih dari 6000
for k in karyawan:
if k["Gaji"] > 6000: # Hanya mencetak karyawan yang gajinya lebih dari 6000
print(f'Nama: {k["Nama"]}, Gaji: {k["Gaji"]}')
## Nama: Joan, Gaji: 7000
## Nama: Alya, Gaji: 6500
## Nama: Dwi, Gaji: 10000
## Nama: Nabil, Gaji: 12000
pejelasan: Kode Python ini digunakan untuk menampilkan karyawan yang memiliki gaji lebih dari 6000. Data karyawan disimpan dalam list of dictionaries, yang berisi nama, gaji, dan performa. Program menggunakan loop for untuk membaca setiap karyawan, lalu menggunakan struktur if untuk mengecek apakah gajinya lebih dari 6000. Jika syarat tersebut terpenuhi, nama dan gaji karyawan akan ditampilkan dalam format “Nama: [Nama Karyawan], Gaji: [Jumlah Gaji]”. Dengan cara ini, hanya karyawan yang memenuhi kriteria yang akan dicetak, sementara yang lainnya dilewati.
b. dalam kode r :
# Membuat data karyawan dalam bentuk data frame
karyawan <- data.frame(
Nama = c("Bagas", "Joan", "Alya", "Dwi", "Nabil"),
Gaji = c(5000, 7000, 6500, 10000, 12000),
Performa = c("Baik", "Sangat Baik", "Rata-rata", "Baik", "Sangat Baik")
)
# Loop untuk menampilkan karyawan yang gajinya lebih dari 6000
for (k in 1:nrow(karyawan)) {
if (karyawan$Gaji[k] > 6000) {
# Kalau gajinya lebih dari 6000, tampilkan nama dan gajinya
cat("Nama:", karyawan$Nama[k], ", Gaji:", karyawan$Gaji[k], "\n")
}
}
## Nama: Joan , Gaji: 7000
## Nama: Alya , Gaji: 6500
## Nama: Dwi , Gaji: 10000
## Nama: Nabil , Gaji: 12000
penejelasan: Kode R ini digunakan untuk menampilkan karyawan yang
memiliki gaji lebih dari 6000. Data karyawan disimpan
dalam data frame, yang berisi nama, gaji, dan
performa. Program menggunakan loop for untuk
membaca setiap baris data dengan indeks k
. Di dalam loop,
struktur if digunakan untuk mengecek apakah gaji
karyawan lebih dari 6000. Jika syarat tersebut
terpenuhi, nama dan gaji karyawan akan ditampilkan menggunakan
cat() dalam format “Nama: [Nama Karyawan],
Gaji: [Jumlah Gaji]”. Dengan cara ini, hanya karyawan yang
memenuhi kriteria yang akan dicetak, sementara yang lainnya
dilewati.
1.3.2. Menggunakan while loop untuk menampilkan karyawan sampai menemukan posisi “Manajer”.
Output yang diharapkan:
Nama: Bagas, Posisi: Staff Nama: Joan, Posisi: Supervisor Nama: Alya, Posisi: Staff Nama: Dwi, Posisi: Manajer (Berhenti di sini)
jawab:
a.dalam kode Phyton:
# Membuat daftar karyawan dengan nama, gaji, performa, dan posisi
karyawan = [
{"Nama": "Bagas", "Gaji": 5000, "Performa": "Baik", "Posisi": "Staff"},
{"Nama": "Joan", "Gaji": 7000, "Performa": "Sangat Baik", "Posisi": "Supervisor"},
{"Nama": "Alya", "Gaji": 6500, "Performa": "Rata-rata", "Posisi": "Staff"},
{"Nama": "Dwi", "Gaji": 10000, "Performa": "Baik", "Posisi": "Manajer"},
{"Nama": "Nabil", "Gaji": 12000, "Performa": "Sangat Baik", "Posisi": "Direktur"}
]
# Inisialisasi indeks
k = 0 # Mulai dari karyawan pertama
# Loop untuk menampilkan karyawan sampai menemukan Manajer
while k < len(karyawan):
print(f'Nama: {karyawan[k]["Nama"]}, Posisi: {karyawan[k]["Posisi"]}')
# Jika posisi adalah "Manajer", loop berhenti
if karyawan[k]["Posisi"] == "Manajer":
break
k += 1 # Lanjut ke karyawan berikutnya
## Nama: Bagas, Posisi: Staff
## Nama: Joan, Posisi: Supervisor
## Nama: Alya, Posisi: Staff
## Nama: Dwi, Posisi: Manajer
penjelasan: Kode Python ini digunakan untuk menampilkan daftar karyawan berdasarkan posisi mereka hingga menemukan karyawan dengan posisi Manajer. Data karyawan disimpan dalam list of dictionaries, yang berisi nama, gaji, performa, dan posisi. Program menggunakan while loop untuk membaca setiap karyawan dari indeks 0. Setiap karyawan ditampilkan dalam format “Nama: [Nama Karyawan], Posisi: [Posisi]”. Jika posisi karyawan adalah “Manajer”, program akan menghentikan loop menggunakan break, sehingga karyawan setelahnya tidak akan ditampilkan. Dengan cara ini, program hanya menampilkan karyawan hingga posisi Manajer ditemukan.
b. dalam kode r :
# Membuat data frame karyawan
karyawan <- data.frame(
Nama = c("Bagas", "Joan", "Alya", "Dwi", "Nabil"),
Gaji = c(5000, 7000, 6500, 10000, 12000),
Performa = c("Baik", "Sangat Baik", "Rata-rata", "Baik", "Sangat Baik"),
Posisi = c("Staff", "Supervisor", "Staff", "Manajer", "Direktur"),
stringsAsFactors = FALSE
)
# Inisialisasi variabel indeks
k <- 1
# Loop while untuk menampilkan karyawan sampai menemukan Manajer
while (k <= nrow(karyawan)) {
cat("Nama:", karyawan$Nama[k], ", Posisi:", karyawan$Posisi[k], "\n")
# Jika posisi adalah "Manajer", loop berhenti
if (karyawan$Posisi[k] == "Manajer") {
break
}
# Tambah indeks
k <- k + 1
}
## Nama: Bagas , Posisi: Staff
## Nama: Joan , Posisi: Supervisor
## Nama: Alya , Posisi: Staff
## Nama: Dwi , Posisi: Manajer
penjelasan: Kode R ini digunakan untuk menampilkan daftar karyawan
berdasarkan posisi mereka hingga menemukan karyawan dengan posisi
Manajer. Data karyawan disimpan dalam data
frame, yang berisi nama, gaji, performa, dan
posisi. Program menggunakan while loop untuk
membaca setiap baris data dengan indeks k
. Setiap karyawan
ditampilkan dalam format “Nama: [Nama Karyawan], Posisi:
[Posisi]” menggunakan cat(). Jika posisi
karyawan adalah “Manajer”, program akan menghentikan
loop menggunakan break, sehingga karyawan setelahnya
tidak akan ditampilkan. Dengan cara ini, program hanya mencetak daftar
karyawan hingga posisi Manajer ditemukan.
1.3.3. Menggunakan break untuk menghentikan perulangan ketika menemukan karyawan dengan gaji di atas 10.000.
Output yang diharapkan:
Nama: Bagas, Gaji: 5000 Nama: Joan, Gaji: 7000 Nama: Alya, Gaji: 6500 Nama: Dwi, Gaji: 10000 (Berhenti karena Nabil memiliki gaji di atas 10.000)
jawab:
a.dalam kode Phyton:
# Membuat daftar karyawan dengan nama, gaji, performa, dan posisi
karyawan = [
{"Nama": "Bagas", "Gaji": 5000, "Performa": "Baik", "Posisi": "Staff"},
{"Nama": "Joan", "Gaji": 7000, "Performa": "Sangat Baik", "Posisi": "Supervisor"},
{"Nama": "Alya", "Gaji": 6500, "Performa": "Rata-rata", "Posisi": "Staff"},
{"Nama": "Dwi", "Gaji": 10000, "Performa": "Baik", "Posisi": "Manajer"},
{"Nama": "Nabil", "Gaji": 12000, "Performa": "Sangat Baik", "Posisi": "Direktur"}
]
# Loop untuk menampilkan karyawan sampai menemukan gaji di atas 10.000
for k in karyawan:
# Jika gaji lebih dari 10.000, hentikan loop sebelum mencetak
if k["Gaji"] > 10000:
break
print(f'Nama: {k["Nama"]}, Gaji: {k["Gaji"]}')
## Nama: Bagas, Gaji: 5000
## Nama: Joan, Gaji: 7000
## Nama: Alya, Gaji: 6500
## Nama: Dwi, Gaji: 10000
penjelasan: Kode Python ini digunakan untuk menampilkan daftar karyawan hingga menemukan karyawan dengan gaji di atas 10.000. Data karyawan disimpan dalam list of dictionaries, yang mencakup nama, gaji, performa, dan posisi. Program menggunakan loop for untuk membaca setiap data karyawan. Saat membaca setiap elemen, program memeriksa apakah gaji karyawan lebih dari 10.000. Jika kondisi tersebut terpenuhi, loop akan dihentikan menggunakan break, sehingga karyawan dengan gaji lebih tinggi tidak akan ditampilkan. Dengan pendekatan ini, program hanya mencetak daftar karyawan hingga menemukan batas gaji yang ditentukan.
b. dalam kode r :
# Membuat daftar karyawan dengan nama, gaji, performa, dan posisi
karyawan <- data.frame(
Nama = c("Bagas", "Joan", "Alya", "Dwi", "Nabil"),
Gaji = c(5000, 7000, 6500, 10000, 12000),
Performa = c("Baik", "Sangat Baik", "Rata-rata", "Baik", "Sangat Baik"),
Posisi = c("Staff", "Supervisor", "Staff", "Manajer", "Direktur")
)
# Loop untuk menampilkan karyawan sampai menemukan gaji di atas 10.000
for (k in 1:nrow(karyawan)) {
# Jika gaji lebih dari 10.000, hentikan loop sebelum mencetak
if (karyawan$Gaji[k] > 10000) {
break
}
cat("Nama:", karyawan$Nama[k], ", Gaji:", karyawan$Gaji[k], "\n")
}
## Nama: Bagas , Gaji: 5000
## Nama: Joan , Gaji: 7000
## Nama: Alya , Gaji: 6500
## Nama: Dwi , Gaji: 10000
penjelasan: Kode R ini bertujuan untuk menampilkan daftar karyawan hingga menemukan karyawan dengan gaji di atas 10.000. Data karyawan disimpan dalam data frame, yang berisi informasi nama, gaji, performa, dan posisi. Program menggunakan loop for untuk membaca setiap baris data berdasarkan indeks. Dalam setiap iterasi, program memeriksa apakah gaji karyawan lebih dari 10.000. Jika kondisi tersebut terpenuhi, loop dihentikan dengan break, sehingga karyawan dengan gaji lebih tinggi tidak akan ditampilkan. Dengan metode ini, hanya karyawan dengan gaji di bawah atau sama dengan 10.000 yang akan dicetak.
1.3.4. Menggunakan continue untuk melewati karyawan dengan performa “Rata-rata”.
Output yang diharapkan:
Nama: Bagas, Performa: Baik Nama: Joan, Performa: Sangat Baik Nama: Dwi, Performa: Baik Nama: Nabil, Performa: Sangat Baik (Alya dilewati karena performanya "Rata-rata")
jawab:
a.dalam kode Phyton:
# Membuat daftar karyawan
karyawan = [
{"Nama": "Bagas", "Gaji": 5000, "Performa": "Baik", "Posisi": "Staff"},
{"Nama": "Joan", "Gaji": 7000, "Performa": "Sangat Baik", "Posisi": "Supervisor"},
{"Nama": "Alya", "Gaji": 6500, "Performa": "Rata-rata", "Posisi": "Staff"},
{"Nama": "Dwi", "Gaji": 10000, "Performa": "Baik", "Posisi": "Manajer"},
{"Nama": "Nabil", "Gaji": 12000, "Performa": "Sangat Baik", "Posisi": "Direktur"}
]
for k in karyawan:
if k["Performa"] == "Rata-rata":
continue
print(f'Nama: {k["Nama"]}, Performa: {k["Performa"]}')
## Nama: Bagas, Performa: Baik
## Nama: Joan, Performa: Sangat Baik
## Nama: Dwi, Performa: Baik
## Nama: Nabil, Performa: Sangat Baik
penjelasan: Kode Python ini bertujuan untuk menampilkan daftar karyawan dengan mengecualikan mereka yang memiliki performa “Rata-rata”. Data karyawan disimpan dalam bentuk list of dictionaries, yang berisi informasi nama, gaji, performa, dan posisi. Program menggunakan loop for untuk membaca setiap elemen dalam daftar karyawan. Dalam setiap iterasi, program memeriksa apakah nilai “Performa” adalah “Rata-rata”. Jika kondisi ini terpenuhi, maka perintah continue akan dilewati, sehingga karyawan tersebut tidak akan ditampilkan. Dengan metode ini, hanya karyawan dengan performa “Baik” atau “Sangat Baik” yang dicetak dalam output.
b. dalam kode r :
# Membuat data frame karyawan
karyawan <- data.frame(
Nama = c("Bagas", "Joan", "Alya", "Dwi", "Nabil"),
Gaji = c(5000, 7000, 6500, 10000, 12000),
Performa = c("Baik", "Sangat Baik", "Rata-rata", "Baik", "Sangat Baik"),
Posisi = c("Staff", "Supervisor", "Staff", "Manajer", "Direktur"),
stringsAsFactors = FALSE
)
for (k in 1:nrow(karyawan)) {
if(karyawan$Performa[k] == "Rata-rata") {
next
}
cat("Nama:", karyawan$Nama[k], ", Performa:", karyawan$Performa[k], "\n")
}
## Nama: Bagas , Performa: Baik
## Nama: Joan , Performa: Sangat Baik
## Nama: Dwi , Performa: Baik
## Nama: Nabil , Performa: Sangat Baik
penjelasan: Kode R ini bertujuan untuk menampilkan daftar karyawan dengan mengecualikan mereka yang memiliki performa “Rata-rata”. Data karyawan disimpan dalam bentuk data frame, yang berisi informasi nama, gaji, performa, dan posisi. Program menggunakan loop for untuk membaca setiap baris dalam data frame berdasarkan indeks. Dalam setiap iterasi, program memeriksa apakah nilai “Performa” adalah “Rata-rata”. Jika kondisi ini terpenuhi, maka perintah next akan dilewati, sehingga karyawan tersebut tidak akan ditampilkan. Dengan metode ini, hanya karyawan dengan performa “Baik” atau “Sangat Baik” yang akan dicetak dalam output. —
Kesimpulan
Berikut adalah perbedaan kode Python dan R untuk setiap nomor:
No | Deskripsi | Kode Python | Kode R |
---|---|---|---|
1 | Menghitung bonus berdasarkan performa | Menggunakan list of dictionaries, lalu for loop dengan if-elif-else untuk menghitung bonus dan mencetak hasil. | Menggunakan data frame, lalu for
loop dengan if-else untuk menghitung bonus dan
mencetak hasil menggunakan cat() . |
2 | Menampilkan karyawan dengan gaji lebih dari 6000 | Menggunakan for loop untuk mengecek gaji dalam list of dictionaries, lalu mencetak data jika gaji lebih dari 6000. | Menggunakan for loop dalam data
frame, lalu mencetak data jika gaji lebih dari 6000 menggunakan
cat() . |
3 | Menampilkan karyawan sampai menemukan posisi “Manajer” | Menggunakan while loop untuk mencetak karyawan, lalu break jika posisi adalah “Manajer”. | Menggunakan while loop dalam data frame, lalu break jika posisi adalah “Manajer”. |
4 | Menghentikan loop saat menemukan karyawan dengan gaji di atas 10.000 | Menggunakan for loop, lalu break jika gaji lebih dari 10.000 sebelum mencetak. | Menggunakan for loop dalam data frame, lalu break jika gaji lebih dari 10.000 sebelum mencetak. |
5 | Melewati karyawan dengan performa “Rata-rata” | Menggunakan for loop, lalu continue jika performa adalah “Rata-rata”. | Menggunakan for loop, lalu next jika performa adalah “Rata-rata”. |
Alur Kontrol (Cara Program Mengambil Keputusan & Mengulang Kode)
Baik Python maupun R mendukung struktur kontrol seperti percabangan
(if-else
) dan perulangan (for
dan
while
).
- Python lebih sering menggunakan pendekatan yang
lebih ringkas seperti list comprehension, yang membuat kode
lebih efisien dan mudah dibaca. Python juga memiliki banyak fitur
pemrograman fungsional yang mempermudah manipulasi data dan pengolahan
dalam jumlah besar.
- R, di sisi lain, lebih mengandalkan vektorisasi dan
fungsi seperti
apply()
,lapply()
, dansapply()
, yang memungkinkan pengguna untuk memproses data dalam bentuk vektor atau matriks tanpa harus menulis perulangan eksplisit. Hal ini membuat R lebih efisien dalam analisis data, tetapi bisa terasa kurang intuitif bagi yang belum terbiasa.
Referensi
Siregar, B. (n.d.). Syntax and Control Flow. Diakses pada 26 Februari 2025, dari https://bookdown.org/dsciencelabs/data_science_programming/02-Syntax-and-Control-Flow.html
Data Science Labs. (2023). Syntax and Control Flow [Video]. YouTube. Diakses pada 26 Februari 2025, dari https://youtu.be/eSYeHlwDCNA