Thursday, 31 December 2015

Pengambilan Keputusan (Decision)

Share it Please
DASAR TEORI
Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis pernyataan, berupa
a) Pernyataan  if 
b) Pernyataan  if - else , dan 
c) Pernyataan  switch 
Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam pengambilan keputusan.  Kondisi umum yang dipakai berupa keadaan benar dan salah.

Operator  Relasi
Operator relasi biasa dipakai untuk membandingkan dua buah nilai. Hasil pembandingan berupa keadaan benar atau salah. Keseluruhan operator relasi pada C ditunjukkan pada Tabel 3-1 
Tabel 3-1. Operasi relasi
 
Operator Logika.
Operator logika biasa dipakai untuk menghubungkan ekspresi relasi. Keseluruhan operator logika ditunjukkan pada tabel 3-2.
Tabel 3-2. Operator logika  


Bentuk pemakaian operator && dan  || adalah

 operand1 operator operand2
 
Pernyataan if  
Pernyataan  if  mempunyai bentuk umum :
 
if (kondisi )
     pernyataan; 

Bentuk ini menyatakan :
a) jika kondisi yang diseleksi adalah benar (bernilai logika  = 1 ), maka pernyataan yang mengikutinya akan diproses.   
b) Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika  = 0 ), maka pernyataan yang mengikutinya tidak akan diproses.  
Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Diagram alir dapat dilihat seperti gambar 3.1

Pernyataan if-else 
 Pernyataan if-else  memiliki bentuk :

Diagram alir dapat dilihat seperti gambar 3.2.
if (kondisi)
     pernyataan-1;
else
     pernyataan-2;

 
Arti dari pernyataan if-else  : 
a) Jika kondisi benar, maka pernyataan-1  dijalankan. 
b) Sedangkan bila kondisi bernilai salah, maka  pernyataaan-2 yang dijalankan.
Masing-masing  pernyataan-1  dan  pernyataan-2  dapat berupa sebuah pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong. 
Contoh penggunaan pernyataan if-else  adalah untuk menyeleksi nilai suatu bilangan pembagi.  Jika nilai bilangan pembagi adalah nol, maka hasil pembagian dengan nilai nol akan mendapatkan hasil tak berhingga. Jika ditemui nilai pembaginya nol, maka proses pembagian tidak akan dilakukan.

Pernyataan if  di dalam if  
  Di dalam suatu pernyataan  if  (atau  if-else ) bisa saja terdapat pernyataan  if  (atau  if-else)  yang lain. Bentuk seperti ini dinamakan sebagai  nested if.  Secara umum, bentuk dari pernyataan ini adalah sebagai berikut :

if (kondisi-1)
 if (kondisi-2)
 .
   if(kondisi-n)
    pernyataan;
   else
    pernyataan;
    .
 else
  pernyataan;
else
 pernyataan;

a) Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar (kondisi-1 ).  Jika  kondisi-1  bernilai salah, maka statemen  else   yang terluar (pasangan  if  yang bersangkutan) yang akan diproses.  Jika  else  (pasangannya tsb) tidak ditulis, maka penyeleksian kondisi akan dihentikan. 
b) Jika  kondisi-1  bernilai benar, maka kondisi berikutnya yang lebih dalam ( kondisi-2 ) akan diseleksi.  Jika  kondisi-2  bernilai salah, maka statemen  else  pasangan dari  if  yang bersangkutan yang akan diproses.  Jika  else  (untuk  kondisi-2 ) tidak ditulis, maka penyeleksian kondisi akan dihentikan. 
c) Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai dengan kondisi-n, jika kondisi-kondisi sebelumnya bernilai benar.

Pernyataan else-if 

Contoh implementasi  nested if ini misalnya pembuatan sebuah program kalkulator sederhana. User memberikan masukan dengan format :
 operand1 operator operand2
Jenis operasi yang dikenakan bergantung pada jenis operator  ang dimasukkan oleh user. 
Oleh karena itu program akan mengecek apakah  operator  berupa tanda ‘ * ’, ‘ / ’, ‘ + ’,
ataukah tanda  ‘- ‘ . 
1. Jika operator berupa tanda ‘*’ maka operand1 akan dikalikan dengan  operand2. 
2. Jika operator berupa tanda ‘/’ maka operand1 akan dibagi dengan  operand2. 
3. Jika operator berupa tanda ‘+’ maka operand1 akan dijumlahkan dengan  operand2. 
4. Jika operator berupa tanda ‘-’ maka operand1 akan dikurangi dengan  operand2. 
5. Kalau operator yang dimasukkan bukan merupa kan salah satu dari jenis operator di atas, maka ekspresi tersebut tidak akan diproses, dan user akan mendapatkan pesan
berupa : “ Invalid operator ! ”

Pernyataan switch
Pernyataan  switch  merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya untuk menggantikan pernyataan if  bertingkat.   Bentuk umum pernyataan switch  adalah :
switch (ekspresi) 
 {
  case konstanta-1:
   pernyataan-1;
   ......
   break;
  case konstanta-2:
   .
   .
  case konstanta-n:
   pernyataan-n;
   .......
   break;
  default:
   .......
   break;
 }

dengan ekspresi  dapat berupa ekspresi bertipe integer atau bertipe karakter.  Demikian juga  konstanta-1, konstanta-2 , …,  konstanta-n dapat berupa konstanta integer atau karakter. Setiap pernyataan-i ( pernyataan-1 , … ,  pernyataan-n ) dapat berupa pernyataan tunggal ataupun pernyataan jamak.  Dalam hal ini urutan penulisan pernyataan case  tidak berpengaruh. Proses penyeleksian berlangsung sebagai berikut : 
a) pengujian pada switch  akan dimulai dari  konstanta-1.  Kalau nilai  konstanta-1 cocok dengan ekspresi maka pernyataan-1  dijalankan.  Kata kunci break  harus disertakan di bagian akhir setiap pernyataan case , yang akan mengarahkan eksekusi ke akhir switch .   
b) Kalau ternyata pernyataan-1  tidak sama dengan nilai ekspresi , pengujian dilanjutkan pada konstanta-2, dan berikutnya serupa dengan pengujian pada konstanta-1.   
c) Jika sampai pada pengujian  case  yang terakhir ternyata tidak ada kecocokan, maka pernyataan yang mengikuti kata kunci  default  yang akan dieksekusi.  Kata kunci default ini bersifat opsional.   
d) Tanda kurung kurawal tutup (} ) menandakan akhir dari proses penyeleksian kondisi case .
 

No comments:

Post a Comment

Followers

Follow The Author