Analisis Kasus
Analisis Kasus
19/09/2022 2
Berdasarkan pengamatan, ada hari-hari di
mana ibu memakai celemek ketika mengupas
kentang, tapi ada hari-hari lain yang tidak
◦ Setelah diamati, ternyata jika ibu sedang memakai
baju berwarna cerah, maka ibu memakai celemek
➔ takut bajunya terlihat kotor ☺
◦ Jika tidak (memakai baju berwarna gelap), maka ibu
tidak memakai celemek
19/09/2022 3
Kasus-1:
Ya
Kondisi:
Apakah Pakai celemek
memakai
baju warna
cerah Kupas kentang
Kasus-
2:
Tidak
Kentang tersedia
Kentang terkupas
19/09/2022 4
Diketahui 2 (dua) buah bilangan integer,
misalnya A dan B, tentukan manakah yang
lebih besar di antaranya keduanya
Kondisi yang digunakan untuk pemeriksaan?
Apakah A lebih besar dari B?
Kasus:
◦ Jika A lebih besar dari B, maka hasilnya adalah A
◦ Jika tidak, maka hasilnya B
Alternatif lain untuk kondisi dan kasus?
19/09/2022 5
Diberikan sebuah bilangan bulat, misalnya A,
nyatakan apakah bilangan tersebut adalah
bilangan positif, negatif, atau nol
Kondisi: Apakah A > 0?
Kasus:
◦ Jika ya, maka: A adalah positif
◦ Jika tidak, maka: kondisi: Apakah A = 0?
Jika ya, maka A adalah nol
Jika tidak, maka A adalah negatif
19/09/2022 6
Memungkinkan kita membuat teks yang
sama, namun menghasilkan eksekusi berbeda
Sering disebut percabangan
◦ Dari satu langkah ada pilihan (percabangan) ke
beberapa langkah
Terdiri atas:
◦ Kondisi: ekspresi yang menghasilkan true dan false
◦ Aksi: statement yang dilaksanakan jika kondisi yang
berpasangan dengan aksi dipenuhi
19/09/2022 7
Mulai
Menerima input(A)
masukan sebuah
integer A
Memeriksa
A>0
apakah A positif true false
atau bukan Cetak
Cetak
Mencetak ke (“Positif”)
(“Bukan
Positif”)
layar
Selesai
19/09/2022 8
Satu kasus
Dua kasus komplementer
Banyak kasus
Banyak kasus dengan switch
19/09/2022 9
if ( kondisi ) {
aksi;
}
19/09/2022 10
#include <iostream>
using namespace std;
int main () {
// KAMUS
int i;
// ALGORITMA
cin >> i;
if (i >= 0) {
cout << "positif“ << endl;
}
return 0;
}
19/09/2022 11
if (kondisi) {
aksi-1;
}
else { // not kondisi
aksi-2;
}
19/09/2022 12
#include <iostream>
using namespace std;
int main () {
// KAMUS
int i;
// ALGORITMA
cin >> i;
if (i >= 0) {
cout << "positif";
}
else { // i < 0
cout << "negatif";
}
return 0;
}
19/09/2022 13
if (kondisi-1) {
aksi-1;
}
else if (kondisi-2) {
aksi-2;
}
else {
…
}
(kondisi-x) domain harga: [true, false]
Property yang perlu diperhatikan untuk (kondisi-
x):
disjoint dan complete
19/09/2022 14
#include <iostream>
using namespace std;
int main () {
// KAMUS
int i;
// ALGORITMA
cin >> i;
if (i > 0) {
cout << "positif“ << endl;
}
else if (i == 0) {
cout << "nol“ << endl;
}
else {
cout << "negatif“ << endl;
}
}
return 0;
}
19/09/2022 15
Buatlah sebuah program yang menerima suhu
air (dalam derajat celcius) dan menuliskan
wujud air ke layar sebagai berikut:
◦ Jika suhu air <= 0 derajat, maka tuliskan “beku”
◦ Jika suhu air > 0 dan kurang dari 100 derajat, maka
tuliskan “cair”
◦ Jika suhu air >= 100, maka tuliskan “uap”
19/09/2022 16
Buatlah program yang menerima 3 buah
tahanan dan menghasilkan total tahanan jika
dirangkai seri.
Ketiga masukan tahanan tidak boleh bernilai
negatif. Jika salah satu masukan tahanan
bernilai negatif, maka diberikan pesan
kesalahan “Masukan tahanan tidak boleh
negatif”.
19/09/2022 18
switch (var) {
case val-1: aksi-1; break;
case val-2: aksi-2; break;
…
default: aksi-n; break;
}
var bertipe ordinal, val-1 , val-2, dst adalah
constant
Break untuk keluar dari switch
Default jika tidak ada yang cocok
19/09/2022 20
#include <iostream>
using namespace std;
int main () {
// KAMUS
int i;
// ALGORITMA
cin >> i;
switch (i) {
case 1 : cout << "januari" << endl;
break;
case 2 : cout << "februari" << endl;
break;
default: cout << "bulan lain" << endl;
break;
}
return 0;
}
19/09/2022 21
if ( not kondisi-benar ) {
pesan-kesalahan ;
}
else { // kondisi-benar
aksi;
}
19/09/2022 22
Buatlah program yang digunakan untuk
menuliskan ke layar nama-nama bulan dari
nomor bulan, yaitu 1 s.d. 12 yang dibaca dari
keyboard.
Program memvalidasi terlebih dahulu apakah
masukan dari keyboard sudah benar atau
belum, yaitu apakah nomor bulan sudah tepat
1 s.d. 12. Jika tidak tepat, maka dikeluarkan
pesan kesalahan yaitu “Masukan nomor bulan
tidak tepat”.
19/09/2022 23
#include <iostream>
using namespace std;
int main () {
// KAMUS
int nobulan;
// ALGORITMA
cin >> nobulan;
if ((nobulan < 1) || (nobulan > 12)) {
cout << “Masukan nomor bulan tidak tepat" << endl;
// pesan kesalahan
} else { // nobulan di antara 1 s.d. 12
switch (i) {
case 1 : cout << "januari" << endl; break;
case 2 : cout << "februari" << endl; break;
... // lanjutkan sendiri
}
}
return 0;
}
19/09/2022 24