Pertemuan 5 – PEMILIHAN/PERCABANGAN
Jadwal: Selasa, 24/10/2017, 10:20-12.00 (2 sks)
Dosen:
Condro Kartiko
ALGORITMA PEMROGRAMAN
(Semester 1 - IF6110202)
S1 Informatika IT Telkom Purwokerto
CAPAIAN PEMBELAJARAN UMUM
Setelah mengikuti mata kuliah Algoritma Pemrograman,
Mahasiswa S1 Informatika mampu membuat algoritma dalam
bentuk pseudocode dan flowchart serta membangun program
CAPAIAN PEMBELAJARAN KHUSUS
Setelah menyelesaikan pertemuan ke-5 ini diharapkan mahasiswa
mampu menerapkan algoritma pemilihan/percabangan ke dalam
pseudocode dan program
S1 Informatika IT Telkom Purwokerto
CAPAIAN PEMBELAJARAN KHUSUS
PUSTAKA WAJIB
• Munir, Rinaldi., Leony Lidya. 2016.
Algoritma
dan
Pemrograman
Dalam Bahasa Pascal, C, dan C++
Edisi Keenam. Bandung: Penerbit
Informatika.
BAB 7 – PEMILIHAN
S1 Informatika IT Telkom Purwokerto
SUB POKOK BAHASAN
• Pendahuluan
• Menganalisis Kasus
• Satu Kasus
• Dua Kasus
• Tiga Kasus atau Lebih
• Konstruksi Case
• Translasi Algoritma dengan Struktur Pemilihan dalam C++
• Contoh Soal dan Pembahasan
PENDAHULUAN (1)
S1 Informatika IT Telkom Purwokerto
Apa yang anda ketahui tentang
konsep Percabangan?
PENDAHULUAN (2)
A B
Pilih mana ya ……
PENDAHULUAN (3)
S1 Informatika IT Telkom Purwokerto
• Percabangan adalah adalah suatu kondisi dimana sebuah
instruksi tidak dijalankan secara sekuensial, tetapi lebih
berdasarkan pada kondisi.
• Pernyataan percabangan memungkinkan suatu pernyataan
dieksekusi hanya jika suatu kondisi terpenuhi atau tidak
terpenuhi.
• Program hanya akan menjalankan statement yang ada di
dalam percabangan jika kondisi bernilai
benar
atau
true
.
• Kondisi pada percabangan harus berupa operator
Boolean.
• Contoh:
int a = 5
// statement bukan merupakan kondisi
int a == 5
// statement yang berupa kondisi
• Kondisi menggunakan operator – operator Boolean
yang hanya memberikan hasil true atau false seperti
==, >, <, >=, <=, !=, &, &&, |, ||
JENIS STRUKTUR PERCABANGAN
S1 Informatika IT Telkom Purwokerto
IF.. ELSE (1)
Digunakan untuk menguji sebuah kondisi.
Bila kondisi yang diuji terpenuhi, program akan
menjalankan pernyataan – pernyataan tertentu
Bila kondisi yg diuji salah, program akan menjalankan
IF.. ELSE (2)
S1 Informatika IT Telkom Purwokerto
Bentuk umumnya adalah :
IF kondisi then
{pernyataan yg dijalankan jika kondisi terpenuhi}
else
JENIS PERCABANGAN IF
Proses percabangan IF memiliki tiga kasus, antara lain
:
• Percabangan Tunggal
• Percabangan Ganda
PERCABANGAN TUNGGAL (1)
S1 Informatika IT Telkom Purwokerto
Percabangan tunggal bekerja apabila hanya ada SATU
alternatif instruksi saja yang dijalankan. Logika ini
memungkinkan kompiler untuk menjalankan sebuah
instruksi atau tidak sama sekali. Kompiler baru akan
menjalankan instruksi yang ada di dalam notasi
percabangan apabila kondisi yang diinginkan
terpenuhi atau memberikan nilai akhir
true
Apabila kondisi tersebut memberikan nilai akhir
false
PERCABANGAN TUNGGAL (2)
//jika hanya terdiri satu statement
if (kondisi) statemen
//jika terdapat lebih dari satu statement
if (kondisi) {
statemen1;
statemen2;
….. }
PERCABANGAN TUNGGAL (3)
S1 Informatika IT Telkom Purwokerto
PERCABANGAN TUNGGAL (4)
#include<iostream.h> #include<conio.h>
main(){
int nilai;
cout<<”Masukkan Nilai = ”;cin>>nilai;
if (nilai>0)
PERCABANGAN GANDA(1)
S1 Informatika IT Telkom Purwokerto
Percabangan ganda apabila terdapat DUA alternatif
instruksi yang dijalankan. Logika ini memungkinkan
kompiler menjalankan salah satu dari DUA alternatif
instruksi yang ada, dan salah satu instruksi pasti
dijalankan.
Struktur percabangan jenis ini sedikit lebih kompleks
bila dibandingkan dengan struktur yang hanya
memiliki satu buah kondisi.
PERCABANGAN GANDA(2)
if (kondisi)
{ statemen_jika_kondisi_terpenuhi; }
else
PERCABANGAN GANDA(3)
S1 Informatika IT Telkom Purwokerto
Dalam menuliskan kondisi/syarat selalu digunakan operator
relasional sebagai sarana untuk melakukan proses pengecekan :
Operator
Arti
>
Lebih besar
<
Lebih kecil
= =
Sama dengan
>=
Lebih atau sama
<=
Kurang atau sama
PERCABANGAN GANDA(4)
#include<iostream.h> #include<conio.h>
main(){
int nilai;
cout<<"Masukkan Nilai = “;cin>>nilai; if (nilai % 2 == 0)
cout<<“adalah bilangan genap"; else
PERCABANGAN LEBIH DARI DUA (1)
S1 Informatika IT Telkom Purwokerto
Pada dasarnya hanya terdapat DUA jenis seleksi dalam
struktur algoritma pemrograman, namun bukan
berarti hanya bisa dikembangkan pada DUA jenis
tersebut saja. Struktur seleksi dapat dikembangkan
menjadi bentuk yang tidak terbatas dan dapat
dikombinasikan kedalam bentuk perulangan selama
notasi penulisannya tidak terdapat kesalahan.
Kemampuan logika seseorang dalam merancang
program dan mengamati dari permasalahan yang ada
menjadi bagian yang paling penting dalam melakukan
pengembangan dari bentuk seleksi ini. Dibawah ini
akan diberikan contoh seleksi menggunakan kondisi
lebih dari DUA
PERCABANGAN LEBIH DARI DUA (2)
Percabangan jenis ini merupakan perluasan dari
struktur percabangan dengan satu dan dua kondisi.
Strukturnya yaitu :
if (kondisi_1)
{statemen_jika_kondisi_1_terpenuhi;}
else if (kondisi_2)
{statemen_jika_kondisi_2_terpenuhi;}
else if (kondisi_3)
{statemen_jika_kondisi_3_terpenuhi;}
PERCABANGAN LEBIH DARI DUA (3)
S1 Informatika IT Telkom Purwokerto
PERCABANGAN LEBIH DARI DUA (4)
#include<iostream.h> #include<conio.h> main(){
int bil;
cout<<“Input angka yg akan dicek “;cin>>bil; if (bil > 0)
{cout<<bil<<" adalah bilangan Positif“;} else if (bil < 0)
{cout<<bil<<" adalah bilangan Negatif“;} else
APA BEDANYA ?
S1 Informatika IT Telkom Purwokerto
SWITCH (1)
Selain menggunakan struktur if, juga bisa mempunyai
percabangan dengan menggunakan switch.
Hampir sama dengan struktur percabangan IF, tetapi
lebih cocok digunakan jika kondisi yang diperiksa
sangat banyak
Digunakan untuk menyederhanakan if..else if..
Mempunyai banyak kondisi.
SWITCH (2)
S1 Informatika IT Telkom Purwokerto
Kondisi yang diperiksa harus berupa data ordinal
(bertipe
integer
atau
char
), dan tidak boleh bertipe
real
SWITCH (3)
switch (ekspresi) { case nilai_konstanta1 : statemen(pernyataan); break; case nilai_konstanta2 : statemen(pernyataan); break; ……. default : statemen(pernyataan)_alternatif;SWITCH (4)
S1 Informatika IT Telkom Purwokerto #include <iostream.h> #include <conio.h> main() { int a; cout<<"Masukkan bilangan:“;cin>>a; switch (a){ case 1 : cout<<"Hari ke "<<a<<“:Minggu"; break;SWITCH (5)
case 2 :
cout<<"Hari ke "<<a<<" : Senin"; break;
case 3 :
cout<<"Hari ke "<<a<<" : Selasa"; break;
case 4 :
cout<<"Hari ke "<<a<<" : Rabu"; break;
SWITCH (6)
S1 Informatika IT Telkom Purwokerto
case 5 :
cout<<"Hari ke "<<a<<" : Kamis"; break;
case 6 :
cout<<"Hari ke "<<a<<" : Jum'at"; break;
case 7 :
cout<<"Hari ke "<<a<<" : Sabtu"; break;
default :
cout<<"Tidak terdapat hari ke"<<a; }
PERNYATAAN SWITCH-CASE
Struktur logika switch-case dapat digambarkan sbb.:
case b case a case z case a action(s) case b action(s) case z action(s) break break break default action(s) true true true false false false case b case a case z case a action(s) case b action(s) case z action(s) break break break default action(s) true true true false false false
PERBEDAAN IF DAN CASE
S1 Informatika IT Telkom Purwokerto Unggul yang mana antara struktur if dengan struktur case.?
Sebenarnya kalau dikatakan unggul, keduanya sama-sama unggul. Karena struktur case memiliki kelebihan dari pada struktur if, dan struktur if pun memiliki kelebihan dari pada struktur case.
Kelebihan statemen case terletak pada struktur script atau codenya yang lebih ringkas dibandingkan dengan struktur pada if.
Sedangkan kelebihan statemen if yaitu struktur if dapat menyelesaikan hampir seluruh permasalahan, sedang case tidak semua permasalahan dapat diselesaikan dengan ini.
Mengapa statemen if dapat menyelesaikan hampir semua masalah, sedangkan statemen case tidak bisa?
Karena pada statemen if dapat menjalankan suatu percabangan di
dalam percabangan yang disebut juga dengan istilah if bersarang, dan
Selanjutnya Baca…
• Munir, Rinaldi., Leony Lidya. 2016.
Algoritma
dan
Pemrograman
Dalam Bahasa Pascal, C, dan C++
Edisi Keenam. Bandung: Penerbit
Informatika.
Tugas (1)
S1 Informatika IT Telkom Purwokerto
Petunjuk pengerjaan:
Kerjakan beberapa latihan soal di bawah ini, diketik dalam format PDF dan
dikumpulkan via email ke [email protected] paling lambat
Minggu, tanggal 29 Oktober 2017 pukul 23:59 WIB. Format file dan subjek
email: [ALPRO]S1IF05A Tugas4_NIM1_Nama1,NIM2_Nama2,NIM3_Nama3 1. [poin 10]Buatlah algoritma yang membaca sebuah bilangan bulat positif
lalu menentukan apakah bilangan tersebut merupakan kelipatan 4.
2. [poin 10]Pasar Swalayan X memberikan diskon harga bagi pembeli yang
nilai total belanjanya lebih dari Rp100.000. Tulislah algoritma untuk menentukan nilai belanja setelah dikurangi diskon. Data masukan adalah nilai total belanja pembeli, sedangkan keluarannya adalah diskon harga dan nilai belanja setelah dikurangi diskon.
Tugas (3)
S1 Informatika IT Telkom Purwokerto
6. [poin 10]Jika kita berbelanja di pasar swalayan/supermarket, nilai total
belanja kita seringkali bukan kelipatan pecahan rupiah yang berlaku.
Misalnya, nilai total belanja adalah Rp19.212,-. Andaikan saat ini pecahan rupiah yang berlaku paling kecil Rp25,-. Selain itu, juga ada pecahan Rp50,-dan Rp100,-. Umumnya kasir pasar swalayan membulatkan nilai belanja ke pecahan yang terbesar. Jadi Rp19.212,- dibulatkan menjadi Rp19.225,-. Hal ini jelas merugikan konsumen. Misalkan Anda memiliki pasar swalayan
yang jujur dan tidak merugikan pembeli, sehingga jika ada nilai belanja yang bukan kelipatan pecahan yang ada, maka nilai belanja itu dibulatkan ke pecahan terendah. Jadi, Rp19.212,- dibulatkan menjadi Rp19.200,-. Tulislah algoritma yang membaca nilai belanja (integer) lalu
membulatkannya ke nilai uang dengan pecahan terendah.
7. [poin 10](a) Tuliskan algoritma yang membaca bilangan bulat positif dalam
rentang 1 sampai 10, lalu mengonversinya ke dalam angka romawi.
(b) Kembangkan algoritma (a) di atas sehingga dapat mengonversi bilangan bulat positif sembarang ke dalam angka romawinya.
Tugas (4)
8. [poin 10]Dalam bidang pengolahan citra (image processing), elemen
gambar terkecil disebut pixel (picture element). Nilai pixel untuk gambar 256 warna adalah dari 0 sampai 255. Operasi-operasi terhadap pixel
seringkali berada di luar rentang nilai ini. Jika ini kasusnya, maka nilai hasil operasi harus dipotong (clipping) sehingga tetap berada di dalam interval [0..25]. Jika nilai hasil operasi lebih besar dari 255, maka nilai tersebut dipotong menjadi 255, dan bila negatif maka dipotong menjadi 0. Dibaca sebuah nilai hasil operasi pengolahan citra, buatlah algoritma untuk
melakukan clipping tersebut.
9. [poin 10]Dibaca dua buah hari, hari pertama dan hari kedua. Tulislah
algoritma untuk menghitung durasi (selisih) kedua hari tersebut. Misalnya, hari pertama Kamis dan hari kedua Senin, maka dari Kamis ke Senin
S1 Informatika IT Telkom Purwokerto