Pengambilan Keputusan (Decision) Pemrograman Bahasa C (Bagian 2)

Thursday, September 14, 2017


Artikel ini ialah lanjutan dari artikel Pengambilan Keputusan (Decision) Pemrograman Bahasa C (Bagian 1).

Pernyataan If Dalam If

Di dalam suatu pernyataan if (atau if-else) sanggup saja terdapat pernyataan if (atau if-else) yang lain. Bentuk ibarat ini dinamakan sebagai nested if (if yang bersarang dalam if yang lain). Secara umum, bentuk dari pernyataan ini ialah sebagai berikut :
Nested If (if didalam if)

Kondisi yang akan diseleksi pertama kali ialah 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.

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.

Dengan cara yang sama, penyeleksian kondisi akan dilakukan hingga dengan kondisi-n, kalau kondisi-kondisi sebelumnya bernilai benar.

Contoh Program :
#include <stdio.h> main(){          //inisialisasi variabel     int bil;      //fungsi input output     printf("Masukkan bilangan = ");     scanf("%d", &bil);          //pernyataan nested if     if(bil%2==1){         printf("bilangan ganjil\n");  if(bil==3 || bil==5 || bil==7){          printf("tetapi bilangan salah");  }  else{             printf("dan bilangan benar");  }     }     else{  printf("bilangan genap");     }  }
Output :

Program ini ialah kegiatan menentukan bilangan ganjil kecuali bilangan 3, 5 dan 7. Program akan mengecek apakah bilangan yang diinputkan user ialah bilangan ganjil atau tidak. Jika bilangan ganjil, kegiatan akan mengecek lagi apakah bilangan yang diinputkan user ialah bilangan 3, 5 atau 7. Jika kondisi terpenuhi, maka pernyataan akan dieksekusi. Jika tidak, maka else (pasangan if kedua) akan dieksekusi.


Pernyataan Else-If

Pernyataan yang dipakai untuk mengimplementasikan kasus yang mempunyai banyak alternatif atau pilihan.

     if(kondisi_1)
          pernyataan_1;
     else if(kondisi_2)
          pernyataan_2);
     else if(kondisi_3)
          pernyataan_3);
     -
     -
     else
          pernyataan_n;
     
Contoh implementasi ini contohnya pembuatan sebuah kegiatan kalkulator sederhana.
#include <stdio.h> main(){          //inisialisasi variabel     float bil1, bil2, hasil;     int pilihan;          //fungsi input output     printf("masukkan bilangan pertama : ");     scanf("%f", &bil1);     printf("masukkan bilangan kedua : ");     scanf("%f", &bil2);     printf(",---------------- Menu Matematika --------------,\n");     printf("| 1. Penjumlahan                                |\n");     printf("| 2. Pengurangan                                |\n");     printf("| 3. Perkalian                                  |\n");     printf("| 4. Pembagian                                  |\n");     printf("'-----------------------------------------------'\n");     printf("Masukkan nomer pilihan anda : ");     scanf("%d", &pilihan);          //pernyataan else if     if(pilihan==1){  hasil=bil1+bil2;  printf("Hasil operasi tersebut = %.1f", hasil);     }     else if(pilihan==2){  hasil=bil1-bil2;  printf("Hasil operasi tersebut = %.1f", hasil);     }     else if(pilihan==3){  hasil=bil1*bil2;  printf("Hasil operasi tersebut = %.1f", hasil);     }     else if(pilihan==4){  hasil=bil1/bil2;  printf("Hasil operasi tersebut = %.1f", hasil);     }     else{  printf("nomor yang anda masukkan tidak ada");     }  }
Output :

  • Jika user menentukan pilihan 1, maka kedua bilangan tersebut akan dijumlah.
  • Jika user menentukan pilihan 2, maka kedua bilangan tersebut akan dikurangi.
  • Jika user menentukan pilihan 3, maka kedua bilangan tersebut akan dikali.
  • Jika user menentukan pilihan 4, maka kedua bilangan tersebut akan dibagi.
  • Jika user menentukan selain pilihan diatas, maka kedua bilangan tersebut tidak akan diproses, dan user akan mendapat pesan berupa : “nomor yang anda masukkan tidak ada”.

Pernyataan Switch

Pernyataan switch merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah alternatif, contohnya untuk menggantikan pernyataan if bertingkat.

Bentuk umum pernyataan switch ialah :
Bentuk Umum Pernyataan Switch

dengan ekspresi sanggup berupa ekspresi bertipe integer atau bertipe karakter. Demikian juga konstanta-1, konstanta-2, …, konstanta-n sanggup berupa konstanta integer atau karakter. Setiap pernyataan-i (pernyataan-1, … , pernyataan-n) sanggup berupa pernyataan tunggal ataupun pernyataan jamak. Dalam hal ini urutan penulisan pernyataan case tidak berpengaruh. Proses penyeleksian berlangsung sebagai berikut :
  • 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 bab tamat setiap pernyataan case, yang akan mengarahkan sanksi ke tamat switch.
  • Kalau ternyata pernyataan-1 tidak sama dengan nilai ekspresi, pengujian dilanjutkan pada konstanta-2, dan berikutnya serupa dengan pengujian pada konstanta-1.
  • Jika hingga 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.

Aturan aturan pada pernyataan switch
  • Ekspresi pada switch (serta value pada case) harus berupa nilai integer atau karakter àtidak boleh float dan tidak boleh range (seperti pada kasus konversi nilai angka ke nilai huruf).
  • Urutan dari pernyataan case tidak penting.
  • Klausa default boleh diletakkan di awal (secara konvensi diletakkan terakhir).
  • Keyword break harus disertakan pada tamat dari setiap pernyataan case, dipakai untuk melompat ke tamat dari blok switch.
  • Klausa default bersifat optional àakan dihukum hanya kalau tidak ada satupun nilai case yang cocok.

Contoh Program :
Contoh implementasi ini contohnya pembuatan sebuah kegiatan kalkulator sederhana ibarat pada pernyataan else if diatas.
#include <stdio.h> main(){          //inisialisasi variabel     int valid_operator = 1;     char oper;     float number1, number2, result;      //input output     printf("Masukkan 2 buah bilangan & sebuah operator\n");     printf("dengan format : number1 operator number2\n\n");     scanf("%f %c %f", &number1, &oper, &number2);      //pernyataan switch     switch(oper){         case '*':      result = number1 * number2;      printf("\n%g %c %g is %g\n", number1, oper, number2, result );      break;  case '/':      if(number2==0){    printf("tidak sanggup dibagi dengan nol");          }      else{          result = number1 / number2;          printf("\n%g %c %g is %g\n", number1, oper, number2, result );      }      break;  case '+':      result = number1 + number2;      printf("\n%g %c %g is %g\n", number1, oper, number2, result );      break;  case '-':      result = number1 - number2;      printf("\n%g %c %g is %g\n", number1, oper, number2, result );      break;  default:      printf("Invalid operator!\n");  }  }
Output :


User memperlihatkan masukan dengan format :

     number1 operator number2

Jenis operasi yang dikenakan bergantung pada jenis operator ang dimasukkan oleh user. Oleh alasannya ialah itu kegiatan akan mengecek apakah operator berupa tanda ‘*’, ‘/’, ‘+’, ataukah tanda ‘-‘.
  • Jika operator berupa tanda ‘*’ maka number1 akan dikalikan dengan number2.
  • Jika operator berupa tanda ‘/’ maka number1 akan dibagi dengan number2.
  • Jika operator berupa tanda ‘+’ maka number1 akan dijumlahkan dengan number2.
  • Jika operator berupa tanda ‘-’ maka number1 akan dikurangi dengan number2.
  • Kalau operator yang dimasukkan bukan merupakan salah satu dari jenis operator di atas, maka ekspresi tersebut tidak akan diproses, dan user akan mendapat pesan berupa : “Invalid operator !”





Demikian artikel tentang Pengambilan Keputusan (Decision) Pemrograman Bahasa C (Bagian 2). Jika ada yang masih kurang mengerti, silahkan tanya di kolom komentar. Semoga bermanfaat :)

Sumber https://wapwibowo.blogspot.com/