Anda di halaman 1dari 25

Algoritma

Percabangan/Pemilihan

Algoritma Pemrograman
Oleh:
Jaenal Arifin, S.Kom., MM., M.Kom
Ekspresi Boolean
• Ada dua komponen utama dalam ekspresi
percabangan yaitu kondisi dan pernyataan.
• Kondisi adalah syarat dilakukannya sebuah
(atau sekelompok) pernyataan, sedangkan
pernyataan dalam konteks ini adalah perintah
yang berkaitan dengan suatu kondisi.
• Ekspresi Boolean dapat diperoleh dengan
menggunakan dua jenis operasi :
1. Operasi Boolean
2. Operasi Relasional (Operasi Perbandingan)
Ekspresi Boolean
• Operasi boolean adalah operasi yang
menggunakan operator boolean
• seperti and, or, not, xor.
• Contoh operasi boolean
1. z1  x and y
2. z2  a=2 or b=10
3. z3  not(x)
4. z4  p+2=4 xor q=0
Ekspresi Relasional
• Operasi relasional adalah operasi yang
membandingkan dua buah operan dengan
menggunakan operator perbandingan
( operator perbandingan : =, <>, <, ≤, >, ≥).
• Contoh operasi relasional
1. z1  x > y
2. z2  a <> 10
3. z3  x + y = 17
4. z4  p div q < r
5. z5  p mod 2 = 0
• Hasil dari operasi perbandingan memiliki dua
kemungkinan, yaitu true (benar) / false (salah).
Oleh karena itu tipe hasil (z1, z2, z3, z4, z5)
dari setiap operasi di atas adalah boolean.
Ekspresi Boolean
• Menggunakan Operator Boolean
• Menyederhanakan persoalan percabangan dapat
dilakukukan dengan menggunakan operator
boolean (and, or, not, dan xor) untuk ekspresi
boolean yang lebih dari satu.
• Misalnya, sebuah universitas memberlakukan
yudisium cumlaude untuk mahasiswa yang lulus
dengan IPK lebih besar sama dengan 3.5 dan masa
kuliah tidak lebih dari 4 tahun.
• Bagaimana algoritma penentuan yudisiumnya?
• (Input : IPK dan masa kuliah)
Ekspresi Boolean
Algoritma
Read (IPK,MK)
If (IPK>=3.5) and (MK<=4)
then
Ket  ‘cum laude’
else
Ket  ‘tidak cumlaude’
write (Ket)
Latihan Percabangan if ganda
1. Buatlah algoritma menentukan gaji total pegawai.
Diketahui pegawai dengan masa kerja lebih dari 3
tahun mendapat tunjangan sebesar 20% gaji pokok,
sedang yang kurang dari itu mendapat tunjangan
10%.
Input dari program adalah masa kerja dan gaji
pokok.
PERCABANGAN IF MAJEMUK
• Percabangan dengan tiga kondisi atau lebih adalah
bentuk pengembangan dari dua bentuk percabangan
percabangan yang telah dibahas sebelumnya.
• Digunakan jika pemilihan memberikan lebih dari dua
alternatif pilihan.
• Notasi Pseudocode (4 pilihan) :
if <Kondisi-1> then
<Pernyataan-1>
else if <Kondisi-2> then
<Pernyataan-2>
else if <Kondisi-3> then
<Pernyataan-3>
else
<Pernyataan-4>
endif
PERCABANGAN IF MAJEMUK
• Notasi Flowchart :

Salah
Kondisi-1
Salah
Benar
Kondisi-2
Pernyataan-1
Benar Salah
Kondisi-3
Pernyataan-2
Benar
Pernyataan-1 Pernyataan-1
PERCABANGAN IF MAJEMUK
• Notasi Flowchart :
PERCABANGAN IF MAJEMUK
1. Bagaimana algoritma untuk menentukan apakah
suatu bilangan merupakan bilangan kelipatan 2 saja,
atau kelipatan 5 saja, atau kelipatan 2 dan 5, atau
bukan kelipatan 2 dan 5. Bilangan yang dimaksud
merupakan input algoritma.
PERCABANGAN IF MAJEMUK
2. Buatlah flowchart untuk menghitung Gaji yang diterima seorang
karyawan. Komponen untuk menghitung gaji adalah :
• Masa Kerja
– 0– 5 tahun : mendapatkan tunjangan 500.000
– 6 – 10 tahun : mendapatkan tunjangan 750.000
• Level Jabatan
– Level 1 : Gaji pokok 5.000.000
– Level 2 : Gaji pokok 4.000.000
• Ketentuan lembur
– Level 1 dan MK 0-5=50000/jam
– Level 1 dan MK 6-10=60000/jam
– Level 2 dan MK 0-5=30000/jam
– Level 2 dan MK 6-10=40000/jam
• Input  : Masa Kerja, Level Jabatan, jam lembur
• Output : Gaji yang diterima
PERCABANGAN IF MAJEMUK
Contoh kasus Notasi Pseudocode
read (bil)
if bil mod 2 = 0 then
if bil mod 5 = 0 then
Ket  ‘ Kelipatan 2 dan Kelipatan 5’
else
Ket  ‘ Kelipatan 2 tapi Bukan Kelipatan 5’
else
if bil mod 5 = 0 then
Ket  ‘Bukan Kelipatan 2 tapi Kelipatan 5’
else
Ket  ‘Bukan Kelipatan 2 atau 5’)
Write(Ket)
PERCABANGAN IF MAJEMUK
• Notasi Pseudocode jika hanya ada satu
pernyataan yang dilaksanakan :
if <Kondisi-1> then
<Pernyataan-1>
else if <Kondisi-2> then
<Pernyataan-2>
else if <Kondisi-3> then
<Pernyataan-3>
else
<Pernyataan-4>;
PERCABANGAN IF MAJEMUK
• Notasi Pseudocode jika ada lebih dari satu
Pernyataan yang dilaksanakan :
if <Kondisi-1> then
{
<Pernyataan-1>;
<Pernyataan-2>;
}
else if <Kondisi-2> then
{
<Pernyataan-3>;
<Pernyataan-4>;
}
PERCABANGAN IF MAJEMUK
else if <Kondisi-3> then
{
<Pernyataan-5>;
<Pernyataan-6>;
}
else
{
<Pernyataan-7>;
<Pernyataan-8>;
}
Latihan
Buatlah algoritma dgn flowchart untuk kasus berikut:
• Pada sebuah tempat fotocopy memberlakukan kebijakan
sebagai berikut:
1. Jika jumlah foto copy > 200 maka harga perlembar
Rp.175, jika jumlah foto copy >100 dan <=200 maka
harga perlembar Rp.200 tetapi jika jumlah fotocopy
<=100 maka harga perlembar Rp.250
2. Bagi member (pelanggan tetap), mendapat diskon 5%
dari total pembayaran dan jika fotocopy dihari jumat
maka member akan mendapat tambahan diskon 2%
Latihan
Buatlah algoritma dgn flowchart untuk kasus berikut:
3. Soal: Tunjangan Anak
Pemerintah hanya memberikan tunjangan anak dari PNS
maksimal sampai 3 anak saja. Setiap anak diberikan tunjangan
sebesar 10% dari gaji pokok.
Gaji pokok dan jumlah anak diinput oleh user.
Contoh Masukan dan Keluaran:

Jumlah Gaji Pokok Tunjangan Anak


anak
0 3.000.000 0
1 3.000.000 300.000
3 3.000.000 900.000
5 3.000.000 900.000
Latihan
4. Soal: Minibus pariwisata
Sebuah acara wisata digunakan minibus kapasitas 7 penumpang
per mobil. Apabila terjadi kelebihan penumpang (walaupun cuma
1), maka minibus yang digunakan ditambah 1. Tulis algoritma
untuk menghitung jumlah minibus yang diperlukan, bila jumlah
pesertanya diinputkan.
Contoh Masukan dan Keluaran:

Jumlah Peserta Jumlah Minibus


5 1

7 1

8 2
Latihan
5. Penghitungan Pembayaran Listrik
PLN menerapkan pembayaran listrik perumahan dengan cara
perhitungan sebagai berikut :
Untuk golongan 1 tarif : Rp 1000/kWh
Untuk golongan 2 tarif : Rp 2000/kWh
 
Dengan syarat penghitungan:
Minimum pembayaran adalah 100 kWh sedangkan untuk
pemakaian 1000 kWh dan seterusnya tarifnya ditambah 10% dari
total pembayaran.

Golongan Pemakaian Bayar

1 50 100.000
2 150 300.000
1 1000 1.100.000
Latihan
6. Soal: Gaji karyawan mingguan
A. Sebuah perusahaan swasta menggaji karyawannya secara
mingguan dengan hitungan sebagai berikut :
• golongan 1 dengan upah per jam 3.000 rupiah
• golongan 2 dengan upah per jam 3.500 rupiah
• golongan 3 dengan upah per jam 4.000 rupiah
• golongan 4 dengan upah per jam 5.000 rupiah
B. Bila seorang karyawan bekerja kurang atau sama dengan 40
jam per minggu, akan dihitung dengan upah per jam seperti di
atas, tetapi apabila bekerja lebih dari 40 jam, maka lebihnya
akan dihitung sebagai lembur dengan upah per jam 1½ kali
upah biasa.
• Tulis algoritma untuk menghitung gaji mingguan karyawan, bila
golongan dan jam kerja diinput oleh user.
PERCABANGAN CASE/SWITCH
• Digunakan sebagai alternatif dari percabangan
if majemuk namun strukturnya lebih
sederhana.
• Tidak semua bentuk percabangan if majemuk
dapat diubah menjadi percangan case, tetapi
semua bentuk percabangan case dapat diubah
menjadi percabangan if.
• Hanya dapat digunakan pada penyeleksian
kondisi yang hanya tergantung pada satu
variabel penyeleksi.
PERCABANGAN CASE/SWITCH
• Hanya dapat digunakan pada penyeleksian
kondisi yang membandingkan sama atau tidak.
• Tidak dapat digunakan pada penyeleksian
kondisi yang membandingkan <, <=, >, atau >=.
• Dapat memakai beberapa konstanta dalam
sebuah perbandingan.
PERCABANGAN CASE/SWITCH
Switch(ekpresi)
{
Case 1:
Pernyataan 1; Break;
Case 2:
Pernyataan 2; Break;
Case 3:
Pernyataan 3; Break;
Default:
Pernyataan 4;
}
TUGAS di KELAS
• Carilah kasus dengan penyelesaian yang menggunakan
percabangan majemuk (minimal 5 kondisi) disertai
dengan Expresi Boolean dan Operator Boolean.
• Buatkanlah algoritma beserta flowchart nya dari kasus
tersebut.
Contoh kasus
• menentukan seseorang apakah terlalu gemuk, gemuk
ideal, kurus dan sangat kurus.
• Penentuan berdasarkan berat badan, dan tinggi badan
orang tersebut.

Anda mungkin juga menyukai