ANALISIS KASUS



Analisis kasus, yang melahirkan instruksi kondisional, adalah elemen primitif 

pembangun algoritma, yaitu memungkinkan kita untuk membuat teks yang sama 

namun menghasilkan eksekusi yang berbeda-beda. 

Mendefinisikan analisis kasus adalah mendefinisikan : 

- kondisi, yang berupa suatu ekspresi yang menghasilkan true atau false, 

- aksi yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang 

bersangkutan dipenuhi. 

Konstruksi dari suatu analisis kasus dapat dimulai dari menentukan semua kondisi 

yang mungkin (dengan melakukan partisi domain), atau dimulai dari menentukan 

variasi aksi. Tidak ada rumus yang baku tentang bagaimana memulai menuliskan 

analisis kasus. Pada contoh-contoh yang diberikan, ada yang berangkat dari kondisi, 

dan ada yang dimulai dari menentukan aksi. 

Notasi algoritmik secara umum untuk analisis kasus yang umum (banyak 

kasus) :

dengan syarat : 

• kondisi-1, kondisi-2, kondisi-3, ..., kondisi-N domain harganya [true,false].

• kondisi-1, kondisi-2, kondisi-3, ..., kondisi-N adalah ekspresi lojik/boolean yang 

mengandung nama-nama sebagai operan.

• kondisi-1 ∩ kondisi-2 ∩ kondisi-3 ∩ ... ∩ kondisi-N = Ø. Berarti semua kondisi 

disjoint, tidak ada kasus yang sama tercakup pada dua buah kondisi. 

• kondisi-1 ∪ kondisi-2 ∪ kondisi-3 ∪ ... ∪ kondisi-N = U. Berarti kondisi 

mencakup semua kemungkinan 

Jika hanya ada satu kasus yang mengakibatkan aksi, atau dua kasus komplementer, 

dapat dipakai notasi sebagai berikut : 

SATU KASUS:

Jika kondisi benar, maka aksi dilakukan. Jika kondisi tidak benar, maka tidak terjadi 

apa-apa (efek neto “kosong”).

DUA KASUS KOMPLEMENTER:

Catatan:

1. Perhatikan "indentasi" penulisan. Pada diktat ini, "end" sengaja tidak dituliskan 

supaya mahasiswa memperhatikan indentasi penulisan. 

2. Hati-hati dalam memakai “else” yang berarti kondisi implisit yang merupakan 

negasi dari kondisi. Penulisan kondisi “else” secara eksplisit sangat disarankan. 

Contoh-1 : MAKSIMUM DUA HARGA 

Persoalan: 

Dibaca dua buah harga a dan b, a mungkin sama dengan b. Harus dituliskan harga 

yang lebih besar. Eksekusi akan menghasilkan dua kemungkinan: menuliskan a, jika a 

≥ b, atau menuliskan b, jika a < b. Tidak mungkin keduanya. 

Spesifikasi: 

Input : a dan b integer 

Proses : menuliskan harga yang lebih besar, dengan spesifikasi bahwa menuliskan a, 

jika a ≥ b, atau menuliskan b, jika a < b 

Output : a atau b, integer

Contoh 2: WUJUD AIR 
Persoalan: 
Dibaca sebuah harga berupa bilangan bulat, yang mewakili pengukuran suhu air 
(dalam oC) pada tekanan atmosfir, harus dituliskan wujud air pada temperatur dan 
tekanan itu. 
Spesifikasi: 
Input : T (integer) 
Proses : menuliskan wujud air sesuai dengan nilai T 
Output : “Beku” jika T ≤ 0 
 “Cair” jika 0 < T ≤ 100 
 “Uap” jika T > 100

Catatan: 
1. Solusi pada versi-1 berbeda dengan versi-2. Ini menyangkut spesifikasi dan 
batasan program yang harus dijabarkan dan disetujui bersama dengan pemesan 
program 
2. Solusi versi-1 akan dapat dipakai untuk Temperatur yang bertype riil, namun 
solusi versi-2 akan menimbulkan masalah karena operator kesamaan tidak dapat 
dipakai untuk bilangan riil. Sebagai latihan, disarankan untuk menuliskan solusi 
versi-2 jika Temperatur direpresentasi sebagai bilangan riil
Contoh 3: RANKING 
Persoalan : 
Dibaca tiga buah harga a,b dan c, harus dituliskan secara terurut, mulai dari yang 
terkecil sampai dengan yang terbesar. Ketiga bilangan yang dibaca selalu berlainan 
harganya. 
Spesifikasi: 
Input : a,b,c, tiga besaran integer 
Proses : menuliskan harga yang dibaca mulai dari yang terkecil s/d yang terbesar 
Output : a,b,c jika a < b dan b < c 
 a,c,b jika a < c dan c < b 
 b,a,c jika b < a dan a < c 
 b,c,a jika b < c dan c < a 
 c,a,b jika c < a dan a < b 
 c,b,a jika c < b dan b < a

Contoh 4: RANKING (DENGAN PEMERIKSAAN KESALAHAN) 
Persoalan : 
Dibaca tiga buah harga a, b, dan c, harus dituliskan secara terurut, mulai dari yang 
terkecil sampai dengan yang terbesar. Ketiga bilangan yang dibaca selalu berlainan 
harganya. 
Spesifikasi: 
Input : a,b,c, tiga besaran integer 
Proses : menuliskan harga yang dibaca mulai dari yang terkecil s.d. yang terbesar, 
jika a,b,c berlainan : output (a,b,c) 
Output : Jika data benar (a ≠ b, b ≠ c, a ≠ c): 
 a,b,c jika a < b dan b < c 
 a,c,b jika a < c dan c < b 
 b,a,c jika b < a dan a < c 
 b,c,a jika b < c dan c < a 
 c,a,b jika c < a dan a < b 
 c,b,a jika c < b dan b < a 
 Menuliskan pesan “Data salah” jika ada data yang sama

Catatan: 
1. Pemeriksaan data semacam itu akan menambah robustness dari program. Jika 
pemeriksaan data tidak dilakukan, maka kriteria data yang valid harus ditampilkan 
secara eksplisit sehingga pemakai program dapat mengetahui spesifikasi data 
benar dan tidak menyebabkan program abort.
2. Selanjutnya, algoritma-algoritma yang diberikan tidak akan mengandung 
pemeriksaan kesalahan. 
3. Berikut ini diberikan skema pemrosesan data yang dibaca dengan pemeriksaan 
kesalahan yang dapat dipakai untuk beberapa kasus sederhana. Untuk kasus yang 
lebih kompleks, pemeriksaan tidak dapat dilakukan dengan cara sederhana dan 
pada awal program.

Contoh predikat yang merupakan ekspresi data valid: 
- Jika data harus positif, dan data adalah X bertype integer: X ≥ 0. 
- Jika data adalah X dan Y, dan X harus lebih besar daripada Y: X > Y.

Komentar

Postingan populer dari blog ini

UDINUS