Statement Penentu Keputusan

I. Tujuan

Mempelajari dan mengamati penggunan statement penentu keputusan berupa if-else.

Memanfaatkan if-else untuk membuat proses perulangan yaitu dengan dikominasikan dengan statement goto-label.

Mempelajari statement if-else bersarang (nested if)

Mempelajari bentuk lain dari statement if-else yaitu statement else-if.

Mempelajari penggunaan dari statement switch-case sebagai alternatif pengganti dari statement else-if.

 

 

II. Teori

Statement if-elese digunakan untuk menentukn pilihan dari suatu kondisi yang diberikan. Cara kerjanya adalah melakukan perbandingan menggunakan Relational Operator dan/atau Logical Operator, apabila sutu kondisi terpenuhi (benar) maka akan mengerjakan proses A dan apabila kondisi tidak terpenuhi (salah) maka tidak akan mengerjakan proses A atau dapat jugamengerjakan proses lain misalkan proses B. Proses A dan B dapat berupa satu baris statement atau beberapa baris yang dikelompokan (Compound Statement). Statement  if-else bersarang merupakan kombinasi beberapa if-else.  Dimana bila ada beberapa kondisi yang harus diuji kebenarannya secara Bersama (if dalam if). Statement else-if adalah cara lain dari bentuk if-else, yang digunakan untuk menentukan satu kondisi yang benar dari beberapa kondisi yang tersedia. Statement switch-case adalah bentuk lain dari statement else-if, dengan mendaftar kondisi secara vertical dalam satu kolom sehingga memudahkan dalam hal evaluasi program.

 

III. Program Percobaaan

4.4.1
Mengamati Penggunaan statement penentu keputusan sederhana, yaitu menentukan apakah bilangan yang dimasukkan kecil atau nol.

/* Nama File : IF-ELSE.C */

void main()

{

int bil, absolut;

printf(“Masukkan bilangan bulat : “);

scanf(“%d”, &bil);

if(bil < 0) absolut = -bil;

printf(“Nilai absolute dari %d adalah = %d”, bil, absolut);

getch();

}

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

4.4.2

Menghitung sisa pembagian menggunakan operator aritmatika yaitu ‘%’ (modulus)

#include<stdio.h>
#include<conio.h>
void main()
{
int pembilang, penyebut, sisa;
    printf(“Masukkan pembilang : “);
scanf(“%d”, &pembilang);
printf(“Masukkan penyebut : “);
scanf(“%d”, &penyebut);
    sisa = pembilang % penyebut;
    puts(“”);
if(sisa)
        printf(“%d tidak habis dibagi %d\n”, pembilang, penyebut);
else
printf(“&d habis dibagi %d\n”, pembilang, penyebut);
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.4.3
Menentukan keputusan bahawa suatu input termasuk dalam suatu batas jangkauan suatu input tertentu.
#include<stdio.h>
#include<conio.h>
void main()
{
char c;
    printf(“Masukkan suatu karakter : “);
scanf(“%c”, &c);
    if(c>=’a’ && c<=’z’)
printf(“\nKarakter tersebut termasuk huruf kecil.\n”);
else
printf(“\nKarakter tersebut bukan huruf kecil.\n”);
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.4.4
Menampilkan penambahan suatu nilai index dimana sering digunakan untuk proses pengulangan.
#include<stdio.h>
#include<conio.h>
void main()
{
int i=0, hasil=1;
ulang:
    i++;
hasil*=2;
    printf(“Iterasi ke %2d: %5d\n”, i, hasil);
    if(i<10) goto ulang;
    getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.4.5
Menggunakan Compound Statement di dalam if-else
#include<stdio.h>
#include<conio.h>
void main()
{
char tag;
    printf(“Masukkan tioe tag (2/4) : “); scanf(“%c”, &tag);
    if(tag==’2′) {
printf(“Merk sepeda motor bertipe 2 tag\n\n”);
printf(”    1. YA YAMAHA”);
printf(”    2. YA SUZUKI”);
printf(”    3. YA HONDA”);
} else {
printf(“Merk sepeda motor bertipe 4 tag\n\n”);
printf(”    1. HONDA”);
printf(”    2. SUZUKI”);
printf(”    3. YAMAHA”);
}
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.4.6
Menentukan suatu pilihan yang benar diantara beberapa pilihan yang ada. Bila suatu operator dikenal maka dilanjutkan proses perhitungan sesuai dengan operator yang dikenal tersebut, sedangkan bila tidak dikenal maka diberikan komentar “Operator SALAH!”
#include<stdio.h>
#include<conio.h>
void main()
{
int valid_operator = 1;
char operator;
float bil1, bil2, hasil;
    printf(“Masukkan 2 bilangan dan sebuag operator . \n\n”);
printf(“Dengan format: \n\n”);
printf(“= (bilangan-1) (operator) (bilangan-2)\n\n”);
printf(“= “);
    scanf(“%f %c %f”, &bil1, &operator, &bil2);
    if(operator == ‘*’){
hasil = bil1 * bil2;
}else if(operator == ‘/’)
hasil = bil1 / bil2;
else if(operator == ‘+’)
hasil = bil1 + bil2;
else if(operator == ‘-‘)
hasil = bil1 – bil2;
else
valid_operator = 0;
    if(valid_operator){
printf(“\nHasil perhitungan\n\n”);
printf(“%f %c %f = %f\n”, bil1, operator, bil2, hasil);
}else {
printf(“\nOperator SALAH!\n”);
printf(“Gunakan operator +, -, / dan * saja!”);
}
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.4.7
Menstrukturkan susunan pemograman dengan mengganti else-if dengan switch-case.
Setiap blok case harus diakhiri dengan statement break, bila diinginkan hanya satu kondisi yang memenuhi, dan bila statement break tidak digunakan maka beberapa kondisi tersebut akan diuji secara Bersama, sehingga kemungkinan ada dua atau beberapa kondisi yang benar.
#include<stdio.h>
#include<conio.h>
void main()
{
int valid_operator = 1;
char operator;
float bil1, bil2, hasil;
    printf(“Masukkan 2 bilangan dan sebuag operator . \n\n”);
printf(“Dengan format: \n\n”);
printf(“= (bilangan-1) (operator) (bilangan-2)\n\n”);
printf(“= “);
    scanf(“%f %c %f”, &bil1, &operator, &bil2);
    switch(operator){
case ‘*’: hasil = bil1 * bil2; break;
case ‘/’: hasil = bil1 / bil2; break;
case ‘+’: hasil = bil1 + bil2; break;
case ‘-‘: hasil = bil1 – bil2; break;
default : valid_operator = 0;
}
if(valid_operator){
printf(“\nHasil perhitungan\n\n”);
printf(“%f %c %f = %f\n”, bil1, operator, bil2, hasil);
}else {
printf(“\nOperator SALAH!\n”);
printf(“Gunakan operator +, -, / dan * saja!”);
}
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.5.1
Membuat program untuk menentukan bilangan ganjil atau genap dari bilangan yang dimasukkan melalui keyboard.
#include<stdio.h>
void main()
{
int n, h;
printf(“Program Penentuan Ganjil Genap\n\n”);
ulang:
printf(“Masukkan Angka : “); scanf(“%d”, &n);
h = n % 2;
printf(“Angka tersebut adalah angka “);
if(h == 0)
printf(“Genap\n”);
else
printf(“Ganjil\n”);
    printf(“\ntekan ‘Enter’ untuk input angka baru\n”);
getch();
printf(“\n”); goto ulang;
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.5.2
Membuat program untuk menentukan kelompok suatu kerakter yang dimasukkan secara manual.
#include<stdio.h>
#include<conio.h>
void main()
{
char c;
    printf(“Masukkan suatu karakter : “);
scanf(“%c”, &c);
    if(c>=’a’ && c<=’z’){
printf(“\nKarakter tersebut termasuk huruf kecil.\n”);
}else if(c>=’A’ && c<=’Z’)
printf(“\nKarakter tersebut merupakan HURUF BESAR\n”);
else if(c>=’0′ && c<=’9′)
printf(“\nKarakter tersebut merupakan Karakter Angka\n”);
else
printf(“\nKarakter tersebut merupakan Karakter Karakter Khusus\n”);
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.5.3
Membuat program kalkulator sederhana dimana program harus memungkinkan user untuk mengetik ekspersi dengan bentuk :
– Operator yang digunakan adalah : * / + – % & | S E
– Operator s memerintah program untuk men-set “accumulator” untuk menyimpan angka yang diketik oleh user.
– Operator E memerintah program untuk mengakhiri program.
#include <stdio.h>
#include<conio.h>
main()
{
int z=1;
float a,b,d;
char c,operator;
printf(“KELKULATOR SEDERHANA\n\n”);
printf(“Masukan nilai lalu tekan S untuk menjalankan operator kalkulator”);
printf(“\n\nContoh :”);
printf(“9S”);
printf(“\n\nUntuk mengakhiri tekan 0 E”);
mulai:
printf(“\n\nMasukkan input : “);
scanf(“%f %c”,&a,&c);
if(c==’S’)
{printf(“\n=%f”,a);}
else {goto end;}
printf(“\n\n(contoh masukkan input) ‘ 9 / ‘ \n\nMasukkan angka dan operator : “);
scanf(“%f %c”,&b,&operator);
if(operator==’*’){a=a*b;}
else if(operator==’/’){a=a/b;}
else if(operator==’-‘){a=a-b;}
else if(operator==’+’){a=a+b;}
else if(operator==’E’){goto end;}
else {z=0;}
if(z){printf(“\n=%f”,a);goto mulai;}
else {printf(“\noperator salah”);goto end;}
end:
printf(“\nAhkir perhitungan”);
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.5.4
Membuat program yang berfungsi sebagai penentu tahun kabisat atau bukan, dimana tahun dibatasi mulai dari tahun 1900 sampai 2005.
#include<stdio.h>
#include<conio.h>
void main()
{
int a = 1900, c;
printf(“Pogram check tahun kabisat 1900 – 2005”);
printf(“\nTekan enter untuk mulai”);
getch();
mulai:
a++;
c=a%4;
if(a>=2006){goto end;}
else if(c==0){printf(“\nTahun %d adalah tahun kabisat”,a);
goto mulai;}
else {printf(“\nTahun %d adalah bukan tahun kabisat”,a);
goto mulai;}
end:
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
4.5.5
Menghitung determinan D dan mencari akar dari persamaaan : A.x^2 + B.x + C dimana D = B^2 – 4A.C
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c,d;
double x1,x2,y;
printf(“Diketahui persamaan = ax^2+bx+c=0\n\n”);
printf(“Masukan nilai a=”);
scanf(“%f”,&a);
printf(“Masukan nilai b=”);
scanf(“%f”,&b);
printf(“Masukan nilai c=”);
scanf(“%f”,&c);
d=b*b-4*a*c;
if(d>=0)
{if(d==0)
{x1=-b/(2*a);
printf(“\nSehingga dua akar real yang kembar adalah x1=x2=%g”,x1);}
else {
x1=(-b+sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
printf(“\nSehingga dua akar yang berlainan adalah x1=%g dan x2=%g”,x1,x2);}
}
else {
y=((sqrt(d))/(2*a));
printf(“\nMaka dua akar imaginer berlainan adalah”);
printf(“\nx1=%g + %gi”,x1,y);
printf(“\nx2=%g – %gi”,x2,y);
}
getch();
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
  • Facebook
  • Twitter
  • Google+
  • Pinterest