Dasar Pemrograman
Pertemuan ke-10
Nama : Hendro Gunawan
NIM : 200401072103
Kelas : IF-101
BAB 10
Struktur Kendali Proses Percabangan
10.1. Percabangan
10.2. Ekspresi Boolean
 Setiap keputusan dalam program komputer melibatkan ekspresi Boolean.
 Ekspresi Boolean hanya memiliki 2 nilai: TRUE/FALSE
 Ekspresi Boolean digunakan dalam struktur selection.
Gambar 10.1. Ekspresi Boolean
1
10.3. Program Untuk Menghitung Payroll
Gambar 10.2. Program Untuk Menghitung Payroll
Gambar tersebut adalah diagram alir (flowchart) yang menjelaskan proses perhitungan gaji karyawan
berdasarkan jam kerja reguler dan jam lembur. Berikut adalah penjelasan detail dari diagram:
Bagian 1: Housekeeping Function
1. Output Informasi Awal:
o Program ini menghitung gaji berdasarkan jam kerja dan tarif lembur.
o Menampilkan tarif lembur (OVERTIME) yang berlaku setelah melewati jumlah jam
kerja reguler (WORK_WEEK).
2. Meminta Nama Karyawan:
o Program meminta pengguna untuk memasukkan nama karyawan atau mengetik "QUIT"
untuk keluar dari program.
2
Bagian 2: Detail Loop
1. Meminta Jam Kerja:
o Program meminta pengguna untuk memasukkan jumlah jam kerja karyawan.
2. Memeriksa Kondisi Jam Kerja:
o Jika jumlah jam kerja ≤ WORK_WEEK:
 Gaji dihitung sebagai:
pay = hours * RATE
o Jika jumlah jam kerja > WORK_WEEK:
 Gaji dihitung sebagai:
pay = (WORK_WEEK * RATE) + (hours - WORK_WEEK) * RATE *
OVERTIME
3. Menampilkan Hasil Perhitungan Gaji:
o Gaji karyawan ditampilkan dengan format:
"Pay for [nama] is $[pay]"
4. Meminta Nama Karyawan Berikutnya atau Keluar:
o Program meminta pengguna untuk memasukkan nama karyawan baru atau mengetik
"QUIT" untuk keluar.
Bagian 3: Return
Program akan berhenti jika pengguna mengetik "QUIT" atau setelah semua data karyawan selesai
diproses.
Diagram ini sangat berguna untuk memahami alur logika program penghitungan gaji dengan
perhitungan jam kerja reguler dan lembur.
Contoh Bahasa Pemrograman Penghitungan Gaji Karyawan
#include <iostream>
#include <string>
using namespace std;
int main() {
// Constants
const int WORK_WEEK = 40; // Regular work hours
const double RATE = 10.0; // Regular hourly rate
const double OVERTIME = 1.5; // Overtime multiplier
string name;
double hours, pay;
cout << "This program computes payroll based onn";
cout << "overtime rate of " << OVERTIME << " after " << WORK_WEEK << "
hours.n";
3
while (true) {
// Input employee name
cout << "Enter employee name or ZZZ to quit >> ";
getline(cin, name);
if (name == "ZZZ" || name == "zzz") {
break;
}
// Input hours worked
cout << "Enter hours worked >> ";
cin >> hours;
cin.ignore(); // Clear the input buffer
// Calculate pay
if (hours > WORK_WEEK) {
pay = (WORK_WEEK * RATE) + ((hours - WORK_WEEK) * RATE *
OVERTIME);
} else {
pay = hours * RATE;
}
// Output pay
cout << "Pay for " << name << " is $" << pay << "n";
}
cout << "Overtime pay calculations completen";
return 0;
}
Output Program:
10.5. Operator Perbandingan
Type Range Ukuran (dalam byte)
=atau== Ekuivalen TRUE jika kedua operan ekuivalen
>
Lebih besar dari TRUE jika operan kiri lebih besar dari
operan kanan
4
<
Lebih kecil dari TRUE jika operan kiri lebih kecil dari
operan kanan
>=
Lebih besar atau sama dengan dari TRUE jika operan kiri lebih
besar/sama dengan operan kanan
< > Atau !=
Tidak sama dengan TRUE jika kedua operan tidak
ekuivalen
10.6. Memahami Logika AND
 Operator logika AND dapat digunakan untuk menyederhanakan struktur selection bersarang.
 Ingat tabel kebenaran untuk operator AND
Tabel 9.1. Tabel Kebenaran
X Y X AND Y
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE
10.7. Penyederhanaan dengan Operator NAND
Dua decision dapat disederhanakan dengan operator OR
Gambar 10.3. Penyederhanaan dengan Operator OR
IF callMade>CALLS THEN
IF callMinutes > MINUTES THEN
customerBill = customerBill + PREMIUM
ELSE
5
IF callMade > CALLS THEN
customerBill = customerBill + PREMIUM
ELSE
IF callMinutes > MINUTES THEN
customerBill = customerBill + PREMIUM
END IF
END IF
Gambar 10.4. Penyederhanaan dengan Operator OR
10.8. Selection dengan Interval
 Ada 2 cara untuk melakukan pengecekan interval
- Menggunakan batas bawah interval  pengecekan dari bawah ke atas
- Menggunakan batas atas interval  pengecekan dari atas ke bawah
Struktur dengan Sequence dan Selection
6
Pengecekan Interval dari Bawah ke Atas
Gambar 10.5. Struktur dengan Loop dan di dalam loop ada selection
IF itemsOrdered <= RANGE1 THEN
customerDiscount = DISCOUNT1
ELSE
IF itemsOrdered <= RANGE2 THEN
customerDiscount = DISCOUNT2
ELSE
IF itemsOrdered <= RANGE3 THEN
customerDiscount = DISCOUNT3
ELSE
IF itemsOrdered <= RANGES3 THEN
7
customerDiscount = DISCOUNT3
ELSE
customerDiscount = DISCOUNT4
AND IF
END IF
END IF
Pengecekan Interval dari Atas ke Bawah
Gambar 10.6. Pengecekan Interval dari atas ke bawah
IF itemsOrdered > RANGE1 THEN
customerDiscount = DISCOUNT4
ELSE
IF itemsOrdered > RANGE2 THEN
8
customerDiscount = DISCOUNT3
ELSE
IF itemsOrdered > RANGE3 THEN
customerDiscount = DISCOUNT2
ELSE
customerDiscount = DISCOUNT1
END IF
END IF
END IF
10.9. Menggabungkan Operator AND dan OR
 Operator logika AND dan OR dapat digabungkan di dalam suatu ekspresi
 Perlu diingat urutan dalam evaluasi operator:
- Operator logika AND dievaluasi lebih dulu dibandingkan OR
 Untuk menghindari kesalahan, sebaiknya menggunakan tanda kurung “()” untuk memprioritaskan
operator mana yang dievaluasi terlebih dahulu
Contoh kesalahan
IF age <= 12 OR age >= 65 AND rating = “G” THEN
GIVE “Discount applies”
END IF
Analisis:
Dalam kasus di atas, operator logika AND akan dievaluasi terlebih dahulu:
Age >= 65 AND rating = “G”
Setelah itu baru operator logika OR
Tidak sesuai dengan apa yang dimaksud  maksud awal adalah untuk filter umur
Berikut adalah pembahasan mengenai contoh kesalahan dan cara yang benar untuk menggunakan
kombinasi AND dan OR pada ekspresi logika:
Kesalahan
Pada contoh berikut:
text
Salin kode
IF age <= 12 OR age >= 65 AND rating = “G” THEN
GIVE “Discount applies”
END IF
Urutan Evaluasi:
1. Operator AND akan dievaluasi lebih dahulu.
9
o Bagian age >= 65 AND rating = "G" akan diproses terlebih dahulu.
o Kemudian hasilnya akan dibandingkan dengan age <= 12 menggunakan operator OR.
Masalah:
Logika ini tidak sesuai jika maksud awal adalah memberikan diskon kepada:
 Anak-anak (age <= 12) ATAU
 Lansia (age >= 65) yang juga memiliki rating "G".
Karena urutan evaluasi salah, sistem mungkin memberikan hasil yang tidak diinginkan.
Solusi yang Benar
Untuk memastikan bahwa maksud awal tercapai, gunakan tanda kurung () untuk memprioritaskan
evaluasi:
text
Salin kode
IF (age <= 12) OR (age >= 65 AND rating = “G”) THEN
GIVE “Discount applies”
END IF
Penjelasan:
1. Tanda kurung memastikan OR dipisahkan menjadi dua kelompok:
o Kelompok pertama: age <= 12 (anak-anak mendapatkan diskon tanpa melihat rating).
o Kelompok kedua: age >= 65 AND rating = "G" (lansia mendapatkan diskon jika
ratingnya "G").
2. Evaluasi akan berjalan sesuai maksud:
o Jika seseorang berusia 12 tahun ke bawah, diskon berlaku.
o Jika seseorang berusia 65 tahun atau lebih dan memiliki rating "G", diskon juga
berlaku.
Analogi Kehidupan Sehari-Hari
Bayangkan Anda memberikan diskon di sebuah bioskop:
 Anak-anak di bawah 12 tahun langsung dapat diskon.
 Lansia di atas 65 tahun hanya dapat diskon jika mereka menonton film rating G.
Logikanya:
1. Anak-anak tidak peduli jenis filmnya, langsung dapat diskon.
2. Lansia harus memenuhi syarat tambahan (rating G) untuk mendapatkan diskon.
Dengan tanda kurung, aturan Anda akan diikuti dengan benar tanpa kesalahan evaluasi.
10
10.10. Diskusi
Sebenarnya di dalam coding banyak kegiatan dan bahasa sehari-hari yang kita gunakan. Misalnya
dalam statement pemilihan atau percabangan. Praktikan dan tuliskan dengan bahasa sehari-hari Anda
(tidak coding) salah satu contoh kondisi pemilihan dalam kehidupan Anda sehari-hari.
10.11. Jawaban Diskusi
Tentu, Hendro! Berikut adalah contoh kondisi pemilihan dalam kehidupan sehari-hari menggunakan
bahasa sehari-hari:
Kondisi: Memutuskan apakah membawa payung saat keluar rumah.
1. Jika melihat langit mendung dan gelap, maka saya akan membawa payung.
2. Jika langit cerah dan tidak ada tanda-tanda hujan, maka saya tidak akan membawa payung.
3. Jika saya ragu karena cuaca tidak jelas, saya akan membawa jas hujan kecil sebagai cadangan.
Ini seperti logika dalam if-else:
 If langit mendung then bawa payung.
 Else if langit cerah then tidak perlu payung.
 Else (ragu) bawa jas hujan.
Kesimpulan
Kesimpulannya adalah keputusan diambil berdasarkan kondisi yang diamati dan diprioritaskan
sesuai situasi.
Dalam contoh tersebut:
1. Langit mendung langsung memprioritaskan untuk membawa payung karena ada kemungkinan
besar hujan (tindakan antisipasi).
2. Langit cerah tidak memerlukan tindakan lebih (tidak membawa payung).
3. Ketidakpastian (ragu-ragu) membuat kita mengambil langkah kompromi dengan membawa jas
hujan kecil sebagai cadangan.
Hal ini menunjukkan bahwa logika pemilihan membantu kita membuat keputusan yang efisien
dan adaptif dalam kehidupan sehari-hari, sesuai dengan situasi yang dihadapi. Sama halnya dengan
coding, logika pemilihan seperti ini penting untuk menyelesaikan masalah secara logis dan sistematis.
Daftar Pustaka
[1] Riad Sahara, S. M. (2024). Modul Dasar Pemrograman Pertemuan 10 – Struktur Kendali Proses
Percabangan. Jakarta: Universitas Siber Asia.
Link File
👉
👉
11
12

Diskusi Dasar Pemrograman Pertemuan Ke-10 - Salin.docx

  • 1.
    Dasar Pemrograman Pertemuan ke-10 Nama: Hendro Gunawan NIM : 200401072103 Kelas : IF-101 BAB 10 Struktur Kendali Proses Percabangan 10.1. Percabangan 10.2. Ekspresi Boolean  Setiap keputusan dalam program komputer melibatkan ekspresi Boolean.  Ekspresi Boolean hanya memiliki 2 nilai: TRUE/FALSE  Ekspresi Boolean digunakan dalam struktur selection. Gambar 10.1. Ekspresi Boolean 1
  • 2.
    10.3. Program UntukMenghitung Payroll Gambar 10.2. Program Untuk Menghitung Payroll Gambar tersebut adalah diagram alir (flowchart) yang menjelaskan proses perhitungan gaji karyawan berdasarkan jam kerja reguler dan jam lembur. Berikut adalah penjelasan detail dari diagram: Bagian 1: Housekeeping Function 1. Output Informasi Awal: o Program ini menghitung gaji berdasarkan jam kerja dan tarif lembur. o Menampilkan tarif lembur (OVERTIME) yang berlaku setelah melewati jumlah jam kerja reguler (WORK_WEEK). 2. Meminta Nama Karyawan: o Program meminta pengguna untuk memasukkan nama karyawan atau mengetik "QUIT" untuk keluar dari program. 2
  • 3.
    Bagian 2: DetailLoop 1. Meminta Jam Kerja: o Program meminta pengguna untuk memasukkan jumlah jam kerja karyawan. 2. Memeriksa Kondisi Jam Kerja: o Jika jumlah jam kerja ≤ WORK_WEEK:  Gaji dihitung sebagai: pay = hours * RATE o Jika jumlah jam kerja > WORK_WEEK:  Gaji dihitung sebagai: pay = (WORK_WEEK * RATE) + (hours - WORK_WEEK) * RATE * OVERTIME 3. Menampilkan Hasil Perhitungan Gaji: o Gaji karyawan ditampilkan dengan format: "Pay for [nama] is $[pay]" 4. Meminta Nama Karyawan Berikutnya atau Keluar: o Program meminta pengguna untuk memasukkan nama karyawan baru atau mengetik "QUIT" untuk keluar. Bagian 3: Return Program akan berhenti jika pengguna mengetik "QUIT" atau setelah semua data karyawan selesai diproses. Diagram ini sangat berguna untuk memahami alur logika program penghitungan gaji dengan perhitungan jam kerja reguler dan lembur. Contoh Bahasa Pemrograman Penghitungan Gaji Karyawan #include <iostream> #include <string> using namespace std; int main() { // Constants const int WORK_WEEK = 40; // Regular work hours const double RATE = 10.0; // Regular hourly rate const double OVERTIME = 1.5; // Overtime multiplier string name; double hours, pay; cout << "This program computes payroll based onn"; cout << "overtime rate of " << OVERTIME << " after " << WORK_WEEK << " hours.n"; 3
  • 4.
    while (true) { //Input employee name cout << "Enter employee name or ZZZ to quit >> "; getline(cin, name); if (name == "ZZZ" || name == "zzz") { break; } // Input hours worked cout << "Enter hours worked >> "; cin >> hours; cin.ignore(); // Clear the input buffer // Calculate pay if (hours > WORK_WEEK) { pay = (WORK_WEEK * RATE) + ((hours - WORK_WEEK) * RATE * OVERTIME); } else { pay = hours * RATE; } // Output pay cout << "Pay for " << name << " is $" << pay << "n"; } cout << "Overtime pay calculations completen"; return 0; } Output Program: 10.5. Operator Perbandingan Type Range Ukuran (dalam byte) =atau== Ekuivalen TRUE jika kedua operan ekuivalen > Lebih besar dari TRUE jika operan kiri lebih besar dari operan kanan 4
  • 5.
    < Lebih kecil dariTRUE jika operan kiri lebih kecil dari operan kanan >= Lebih besar atau sama dengan dari TRUE jika operan kiri lebih besar/sama dengan operan kanan < > Atau != Tidak sama dengan TRUE jika kedua operan tidak ekuivalen 10.6. Memahami Logika AND  Operator logika AND dapat digunakan untuk menyederhanakan struktur selection bersarang.  Ingat tabel kebenaran untuk operator AND Tabel 9.1. Tabel Kebenaran X Y X AND Y TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE 10.7. Penyederhanaan dengan Operator NAND Dua decision dapat disederhanakan dengan operator OR Gambar 10.3. Penyederhanaan dengan Operator OR IF callMade>CALLS THEN IF callMinutes > MINUTES THEN customerBill = customerBill + PREMIUM ELSE 5
  • 6.
    IF callMade >CALLS THEN customerBill = customerBill + PREMIUM ELSE IF callMinutes > MINUTES THEN customerBill = customerBill + PREMIUM END IF END IF Gambar 10.4. Penyederhanaan dengan Operator OR 10.8. Selection dengan Interval  Ada 2 cara untuk melakukan pengecekan interval - Menggunakan batas bawah interval  pengecekan dari bawah ke atas - Menggunakan batas atas interval  pengecekan dari atas ke bawah Struktur dengan Sequence dan Selection 6
  • 7.
    Pengecekan Interval dariBawah ke Atas Gambar 10.5. Struktur dengan Loop dan di dalam loop ada selection IF itemsOrdered <= RANGE1 THEN customerDiscount = DISCOUNT1 ELSE IF itemsOrdered <= RANGE2 THEN customerDiscount = DISCOUNT2 ELSE IF itemsOrdered <= RANGE3 THEN customerDiscount = DISCOUNT3 ELSE IF itemsOrdered <= RANGES3 THEN 7
  • 8.
    customerDiscount = DISCOUNT3 ELSE customerDiscount= DISCOUNT4 AND IF END IF END IF Pengecekan Interval dari Atas ke Bawah Gambar 10.6. Pengecekan Interval dari atas ke bawah IF itemsOrdered > RANGE1 THEN customerDiscount = DISCOUNT4 ELSE IF itemsOrdered > RANGE2 THEN 8
  • 9.
    customerDiscount = DISCOUNT3 ELSE IFitemsOrdered > RANGE3 THEN customerDiscount = DISCOUNT2 ELSE customerDiscount = DISCOUNT1 END IF END IF END IF 10.9. Menggabungkan Operator AND dan OR  Operator logika AND dan OR dapat digabungkan di dalam suatu ekspresi  Perlu diingat urutan dalam evaluasi operator: - Operator logika AND dievaluasi lebih dulu dibandingkan OR  Untuk menghindari kesalahan, sebaiknya menggunakan tanda kurung “()” untuk memprioritaskan operator mana yang dievaluasi terlebih dahulu Contoh kesalahan IF age <= 12 OR age >= 65 AND rating = “G” THEN GIVE “Discount applies” END IF Analisis: Dalam kasus di atas, operator logika AND akan dievaluasi terlebih dahulu: Age >= 65 AND rating = “G” Setelah itu baru operator logika OR Tidak sesuai dengan apa yang dimaksud  maksud awal adalah untuk filter umur Berikut adalah pembahasan mengenai contoh kesalahan dan cara yang benar untuk menggunakan kombinasi AND dan OR pada ekspresi logika: Kesalahan Pada contoh berikut: text Salin kode IF age <= 12 OR age >= 65 AND rating = “G” THEN GIVE “Discount applies” END IF Urutan Evaluasi: 1. Operator AND akan dievaluasi lebih dahulu. 9
  • 10.
    o Bagian age>= 65 AND rating = "G" akan diproses terlebih dahulu. o Kemudian hasilnya akan dibandingkan dengan age <= 12 menggunakan operator OR. Masalah: Logika ini tidak sesuai jika maksud awal adalah memberikan diskon kepada:  Anak-anak (age <= 12) ATAU  Lansia (age >= 65) yang juga memiliki rating "G". Karena urutan evaluasi salah, sistem mungkin memberikan hasil yang tidak diinginkan. Solusi yang Benar Untuk memastikan bahwa maksud awal tercapai, gunakan tanda kurung () untuk memprioritaskan evaluasi: text Salin kode IF (age <= 12) OR (age >= 65 AND rating = “G”) THEN GIVE “Discount applies” END IF Penjelasan: 1. Tanda kurung memastikan OR dipisahkan menjadi dua kelompok: o Kelompok pertama: age <= 12 (anak-anak mendapatkan diskon tanpa melihat rating). o Kelompok kedua: age >= 65 AND rating = "G" (lansia mendapatkan diskon jika ratingnya "G"). 2. Evaluasi akan berjalan sesuai maksud: o Jika seseorang berusia 12 tahun ke bawah, diskon berlaku. o Jika seseorang berusia 65 tahun atau lebih dan memiliki rating "G", diskon juga berlaku. Analogi Kehidupan Sehari-Hari Bayangkan Anda memberikan diskon di sebuah bioskop:  Anak-anak di bawah 12 tahun langsung dapat diskon.  Lansia di atas 65 tahun hanya dapat diskon jika mereka menonton film rating G. Logikanya: 1. Anak-anak tidak peduli jenis filmnya, langsung dapat diskon. 2. Lansia harus memenuhi syarat tambahan (rating G) untuk mendapatkan diskon. Dengan tanda kurung, aturan Anda akan diikuti dengan benar tanpa kesalahan evaluasi. 10
  • 11.
    10.10. Diskusi Sebenarnya didalam coding banyak kegiatan dan bahasa sehari-hari yang kita gunakan. Misalnya dalam statement pemilihan atau percabangan. Praktikan dan tuliskan dengan bahasa sehari-hari Anda (tidak coding) salah satu contoh kondisi pemilihan dalam kehidupan Anda sehari-hari. 10.11. Jawaban Diskusi Tentu, Hendro! Berikut adalah contoh kondisi pemilihan dalam kehidupan sehari-hari menggunakan bahasa sehari-hari: Kondisi: Memutuskan apakah membawa payung saat keluar rumah. 1. Jika melihat langit mendung dan gelap, maka saya akan membawa payung. 2. Jika langit cerah dan tidak ada tanda-tanda hujan, maka saya tidak akan membawa payung. 3. Jika saya ragu karena cuaca tidak jelas, saya akan membawa jas hujan kecil sebagai cadangan. Ini seperti logika dalam if-else:  If langit mendung then bawa payung.  Else if langit cerah then tidak perlu payung.  Else (ragu) bawa jas hujan. Kesimpulan Kesimpulannya adalah keputusan diambil berdasarkan kondisi yang diamati dan diprioritaskan sesuai situasi. Dalam contoh tersebut: 1. Langit mendung langsung memprioritaskan untuk membawa payung karena ada kemungkinan besar hujan (tindakan antisipasi). 2. Langit cerah tidak memerlukan tindakan lebih (tidak membawa payung). 3. Ketidakpastian (ragu-ragu) membuat kita mengambil langkah kompromi dengan membawa jas hujan kecil sebagai cadangan. Hal ini menunjukkan bahwa logika pemilihan membantu kita membuat keputusan yang efisien dan adaptif dalam kehidupan sehari-hari, sesuai dengan situasi yang dihadapi. Sama halnya dengan coding, logika pemilihan seperti ini penting untuk menyelesaikan masalah secara logis dan sistematis. Daftar Pustaka [1] Riad Sahara, S. M. (2024). Modul Dasar Pemrograman Pertemuan 10 – Struktur Kendali Proses Percabangan. Jakarta: Universitas Siber Asia. Link File 👉 👉 11
  • 12.