Syntax and Control Flow
Prakticum ~ Week 4
1 Praktikum Pernyataan Bersyarat dan Perulangan
1.1 Persiapan dan Inisialisasi Data
Sebelum memulai analisis, kita perlu menyiapkan dataset karyawan yang akan digunakan. Dataset ini berisi informasi 5 karyawan dengan atribut nama, usia, gaji, posisi, dan kinerja. Data ini akan menjadi dasar untuk semua perhitungan dan analisis selanjutnya.
| Nama | Usia | Gaji | Posisi | Kinerja |
|---|---|---|---|---|
| Bagas | 25 | 5000 | Staf | Bagus |
| Joan | 30 | 7000 | Supervisor | Sangat Bagus |
| Alya | 27 | 6500 | Staf | Rata-rata |
| Dwi | 35 | 10000 | Manajer | Bagus |
| Nabil | 40 | 12000 | Direktur | Sangat Bagus |
1.1.1 Interpretasi:
Dataset yang kita buat berisi 5 orang karyawan dengan jabatan berbeda-beda. Bagas dan Alya sebagai Staf, Joan sebagai Supervisor, Dwi sebagai Manajer, dan Nabil sebagai Direktur. Gaji mereka bervariasi dari 5000 hingga 12000, dengan kinerja yang juga beragam. Data ini akan menjadi dasar untuk menghitung bonus dan melakukan analisis selanjutnya.
1.2 Pernyataan bersyarat menghitung bonus karyawan
- Rata-rata: Mendapat bonus 5% dari gaji
| Nama | Gaji | Kinerja | Bonus |
|---|---|---|---|
| Bagas | 5000 | Bagus | 500 |
| Joan | 7000 | Sangat Bagus | 1400 |
| Alya | 6500 | Rata-rata | 325 |
| Dwi | 10000 | Bagus | 1000 |
| Nabil | 12000 | Sangat Bagus | 2400 |
1.2.1 Interpretasi:
Setelah menjalankan perhitungan bonus, kita mendapatkan hasil sebagai berikut: Bagas dengan kinerja Bagus mendapat bonus 500 (10% dari 5000). Joan dengan kinerja Sangat Bagus mendapat bonus 1400 (20% dari 7000). Alya dengan kinerja Rata-rata hanya mendapat bonus 325 (5% dari 6500). Dwi dengan kinerja Bagus mendapat bonus 1000 (10% dari 10000). Nabil dengan kinerja Sangat Bagus mendapat bonus tertinggi yaitu 2400 (20% dari 12000). Total bonus yang harus dibayarkan perusahaan adalah 5625. Perhitungan ini menunjukkan bahwa semakin baik kinerja seseorang, semakin besar pula bonus yang mereka terima sesuai kebijakan perusahaan.
1.3 Foor Loop - Mencari gaji karyawan diatas 6000
| No | Nama | Gaji | Posisi |
|---|---|---|---|
| 1 | Joan | 7000 | Supervisor |
| 2 | Alya | 6500 | Staf |
| 3 | Dwi | 10000 | Manajer |
| 4 | Nabil | 12000 | Direktur |
1.3.1 Interpretasi:
Dari hasil filter menggunakan for loop, kita menemukan bahwa ada 4 orang karyawan yang memiliki gaji di atas 6000, yaitu Joan (7000), Alya (6500), Dwi (10000), dan Nabil (12000). Hanya Bagas dengan gaji 5000 yang tidak memenuhi kriteria. Ini berarti 80% karyawan di perusahaan ini sudah memiliki gaji di atas 6000. Informasi ini bisa digunakan manajemen untuk mengevaluasi apakah standar gaji 6000 sudah tepat atau perlu disesuaikan, mengingat hanya satu orang yang berada di bawah angka tersebut.
1.4 While Loop dengan Break - Mencari posisi manajer
| Nama | Posisi | Status |
|---|---|---|
| Bagas | Staf | Diproses |
| Joan | Supervisor | Diproses |
| Alya | Staf | Diproses |
| Dwi | Manajer | BERHENTI (Manajer) |
1.4.1 Interpretasi:
Saat kita melakukan pencarian dengan while loop, program menelusuri karyawan satu per satu dari awal. Bagas (Staf) muncul pertama, lalu Joan (Supervisor), kemudian Alya (Staf). Ketika sampai pada Dwi yang menjabat sebagai Manajer, program langsung berhenti dan menampilkan “(Stop here)”. Nabil sebagai Direktur tidak ikut ditampilkan karena kita sengaja menghentikan pencarian begitu menemukan posisi Manajer. Ini berguna ketika kita hanya ingin melihat data hingga level Manajer saja, tanpa perlu menampilkan level di atasnya seperti Direktur.
1.5 Break - Deteksi gaji di atas 10000
| No | Nama | Gaji | Status |
|---|---|---|---|
| 1 | Bagas | 5000 | Diproses |
| 2 | Joan | 7000 | Diproses |
| 3 | Alya | 6500 | Diproses |
| 4 | Dwi | 10000 | Diproses |
| 5 | Nabil | 12000 | STOP (Gaji > 10000) |
1.5.1 Interpretasi:
Dalam pencarian ini, kita menggunakan break untuk berhenti ketika menemukan gaji di atas 10000. Program menampilkan Bagas (5000), Joan (7000), Alya (6500), dan Dwi (10000) dengan normal. Namun ketika sampai pada Nabil yang bergaji 12000, program langsung berhenti dan menampilkan pesan bahwa Nabil memiliki gaji di atas 10000. Ini menunjukkan bagaimana break dapat digunakan untuk menghentikan proses secara otomatis ketika menemukan data yang melebihi batas yang ditentukan, misalnya untuk screening data yang memerlukan penanganan khusus.
1.6 Continue - Melewati kinerja rata-rata
| Nama | Kinerja | Status |
|---|---|---|
| Bagas | Bagus | DITAMPILKAN |
| Joan | Sangat Bagus | DITAMPILKAN |
| Alya | Rata-rata | DILEWATI (continue) |
| Dwi | Bagus | DITAMPILKAN |
| Nabil | Sangat Bagus | DITAMPILKAN |
1.6.1 Interpretasi:
Dengan menggunakan continue, kita berhasil menyaring karyawan berdasarkan kinerja. Program menampilkan Bagas dengan kinerja Bagus, Joan dengan kinerja Sangat Bagus, Dwi dengan kinerja Bagus, dan Nabil dengan kinerja Sangat Bagus. Alya yang memiliki kinerja Rata-rata tidak ditampilkan sama sekali karena kita menggunakan continue untuk melewatinya. Ini sangat berguna ketika kita ingin membuat laporan khusus yang hanya menampilkan karyawan dengan kinerja di atas rata-rata, sementara karyawan dengan kinerja biasa bisa kita skip tanpa harus menghentikan seluruh proses.
1.7 Ringkasal hasil keseluruhan
Setelah menjalankan semua analisis, mari kita rangkum semua hasil yang telah diperoleh. Ringkasan ini akan membantu melihat gambaran besar dari seluruh proses yang telah dilakukan.
| No | Analisis | Hasil |
|---|---|---|
| 1 | PERNYATAAN BERSYARAT (Bonus) | Total bonus: Rp 5,625 |
| 2 | FOR LOOP (Gaji > 6000) | 4 karyawan: Joan, Alya, Dwi, Nabil |
| 3 | WHILE LOOP + BREAK (Cari Manajer) | Berhenti di Dwi, Nabil tidak diproses |
| 4 | BREAK (Gaji > 10000) | Berhenti setelah Dwi |
| 5 | CONTINUE (Skip Rata-rata) | Alya dilewati, 4 karyawan ditampilkan |
1.7.1 Interpretasi:
Secara keseluruhan, program telah berhasil menjalankan semua fungsi yang diharapkan. Total bonus yang harus dibayarkan perusahaan adalah Rp 5.625. Terdapat 4 karyawan dengan gaji di atas 6000. Pencarian Manajer berhenti tepat di Dwi tanpa memproses Nabil. Deteksi gaji di atas 10000 juga berhenti setelah Dwi, menandakan Nabil memerlukan perhatian khusus. Dan terakhir, Alya berhasil dilewati dalam laporan kinerja karena kinerjanya hanya rata-rata. Program ini mendemonstrasikan bagaimana pernyataan bersyarat dan berbagai jenis perulangan dapat digunakan untuk mengolah data karyawan sesuai kebutuhan manajemen.
1.8 Kesimpulan dan pembelajaran
Dari praktikum ini, kita telah mempelajari beberapa konsep penting dalam pemrograman R:
- Pernyataan Bersyarat (If-Else)
- Digunakan untuk mengambil keputusan berdasarkan kondisi
- Dalam kasus ini: menentukan persentase bonus dari 3 kategori kinerja
- Struktur if, else if, else memungkinkan multiple kondisi
- For Loop
- Cocok untuk iterasi dengan jumlah yang diketahui
- Digunakan untuk memfilter karyawan dengan gaji > 6000
- Efisien untuk memproses seluruh data secara berurutan
- While Loop dengan Break
- While loop untuk iterasi berdasarkan kondisi
- Break menghentikan loop ketika Manajer ditemukan
- Berguna untuk pencarian dengan target tertentu
- Break untuk Optimasi
- Menghemat waktu dan sumber daya
- Tidak perlu memproses data setelah kondisi terpenuhi
- Dalam kasus ini: berhenti setelah menemukan gaji > 10000
- Continue untuk Filtering
- Melewati data yang tidak diinginkan
- Loop tetap berlanjut untuk data lainnya
- Dalam kasus ini: melewati Alya dengan kinerja Rata-rata