Syntax and Control Flow

Prakticum ~ Week 4


Profile Photo
🎓 Data Science Student

👩‍💻 NAMA: Raihania Syah Putri

🎫 NIM: 52250054

Institut Teknologi Sains Bandung

📊 R Programming
🧠 Data Science
📈 Statistics

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.

Data Karyawan Perusahaan
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

Perusahaan ingin memberikan bonus kepada karyawan berdasarkan kinerja mereka. Ada 3 kategori kinerja dengan persentase bonus berbeda: - Sangat Bagus: Mendapat bonus 20% dari gaji - Bagus: Mendapat bonus 10% dari gaji
- Rata-rata: Mendapat bonus 5% dari gaji
Menggunakan pernyataan bersyarat Karena perlu mengambil keputusan berbeda untuk setiap kategori kinerja. Jika kinerja “Sangat Bagus” maka bonus 20%, jika “Bagus” maka 10%, dan seterusnya. Inilah fungsi dari struktur if-else di R.
Hasil Perhitungan Bonus Karyawan
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

Manajemen ingin mengetahui karyawan mana saja yang memiliki gaji di atas 6000. Informasi ini berguna untuk evaluasi struktur gaji perusahaan. Menggunakan for loop untuk memeriksa satu per satu karyawan dan menampilkan hanya yang memenuhi kriteria.
Menggunakan For loop Karena diketahui persis jumlah data yang akan diperiksa (5 karyawan) dan ingin melakukan operasi yang sama untuk setiap baris data.
Karyawan dengan Gaji > 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

Mengidentifikasi data karyawan dari awal hingga menemukan karyawan dengan posisi “Manajer”. Begitu Manajer ditemukan, pencarian akan berhenti. Ini mensimulasikan situasi di mana kita hanya perlu data sampai titik tertentu.
Menggunakan while loop dengan break karena While loop cocok untuk situasi tidak tahu persis kapan akan berhenti. Break digunakan untuk menghentikan loop secara paksa ketika kondisi yang dicari terpenuhi. Dalam kasus ini, kita berhenti ketika menemukan “Manajer” karena kita hanya ingin melihat data sebelum Manajer.
Pencarian 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

Perusahaan menetapkan batas toleransi gaji 10000. Jika ada karyawan dengan gaji di atas itu, proses pengecekan harus segera dihentikan karena mungkin memerlukan prosedur khusus. Kita akan menggunakan break untuk menghentikan loop ketika menemukan gaji > 10000.
break dibagian ini karena Break memungkinkan kita mengoptimalkan proses dengan tidak perlu memeriksa data setelah kondisi terpenuhi. Begitu menemukan Nabil dengan gaji 12000 (>10000), kita tidak perlu lagi memeriksa karyawan setelahnya karena tidak ada lagi yang perlu diproses.
Deteksi Gaji > 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

Dalam laporan kinerja, manajemen hanya ingin melihat karyawan dengan kinerja di atas rata-rata (Bagus dan Sangat Bagus). Karyawan dengan kinerja Rata-rata tidak perlu ditampilkan. Kita akan menggunakan continue untuk melewati mereka.
Menggunakan continue karena Continue berbeda dengan break. Continue hanya melewati SATU iterasi saat ini, tetapi loop tetap berlanjut ke iterasi berikutnya. Ini cocok untuk menyaring data tanpa menghentikan seluruh proses. Alya dengan kinerja Rata-rata akan dilewati, tetapi Dwi dan Nabil tetap diproses.
Filter Kinerja (Melewati 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.

RINGKASAN HASIL EKSEKUSI
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:

  1. 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
  1. For Loop
  • Cocok untuk iterasi dengan jumlah yang diketahui
  • Digunakan untuk memfilter karyawan dengan gaji > 6000
  • Efisien untuk memproses seluruh data secara berurutan
  1. While Loop dengan Break
  • While loop untuk iterasi berdasarkan kondisi
  • Break menghentikan loop ketika Manajer ditemukan
  • Berguna untuk pencarian dengan target tertentu
  1. Break untuk Optimasi
  • Menghemat waktu dan sumber daya
  • Tidak perlu memproses data setelah kondisi terpenuhi
  • Dalam kasus ini: berhenti setelah menemukan gaji > 10000
  1. Continue untuk Filtering
  • Melewati data yang tidak diinginkan
  • Loop tetap berlanjut untuk data lainnya
  • Dalam kasus ini: melewati Alya dengan kinerja Rata-rata