• Tidak ada hasil yang ditemukan

Praktikum 4 PENGAMBILAN KEPUTUSAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "Praktikum 4 PENGAMBILAN KEPUTUSAN"

Copied!
9
0
0

Teks penuh

(1)

Praktikum 4

PENGAMBILAN KEPUTUSAN

A. TUJUAN

1. Menjelaskan tentang operator kondisi (operator relasi dan logika) 2. Menjelaskan penggunaan pernyataan if

3. Menjelaskan penggunaan pernyataan if-else 4. Menjelaskan penggunaan pernyataan if dalam if 5. Menjelaskan penggunaan pernyataan else-if 6. Menjelaskan penggunaan pernyataan switch

B. DASAR TEORI

Pengambilan keputusan diperlukan jika ada dua atau lebih kondisi yang harus dipilih salah satu. Pernyataan-pernyataan yang dapat digunakan dalam pengambilan keputusan adalah :

„ Pernyataan if „ Pernyataan if-else „ Pernyataan switch

Pernyataan-pernyataan diatas memerlukan suatu kondisi Æ dibentuk dengan operator relasi dan/atau operator logika.

1. Operator Relasi

Operator relasi menghasilkan kondisi BENAR atau SALAH.

Operator Makna > >= < <= == != Lebih dari

Lebih dari atau sama dengan Kurang dari

Kurang dari atau sama dengan Sama dengan

(2)

Contoh :

2. Operator Logika

Bentuk operator Logika adalah :

dan (AND) atau (OR) tidak (NOT) && || !

Makna

Operator

dan (AND) atau (OR) tidak (NOT) && || !

Makna

Operator

„ Bentuk umum penggunaan operator logika ‘&&’ dan ‘||’: „ operand1 operator operand2

„ Bentuk umum penggunaan operator logika ‘!’: „ !operand

Hasil operasi ! bernilai :

• Benar jika operand bernilai salah • Salah jika operand bernilai benar „ Hubungan antar Operand pada Operator Logika

0 0 0 1 0 1 1 1 Salah Benar Salah Benar Salah Salah Benar Benar && || Hasil Operand2 Operand1 0 0 0 1 0 1 1 1 Salah Benar Salah Benar Salah Salah Benar Benar && || Hasil Operand2 Operand1

(3)

Prioritas dalam pengambilan keputusan untuk Operator Logika dan Relasi : == != || Terendah && > >= < <= ! Tertinggi

Operator

Prioritas

== != || Terendah && > >= < <= ! Tertinggi

Operator

Prioritas

- Pernyataan if kondisi Benar Salah pernyataan „ Sintak: if (kondisi) pernyataan;

„ Jika kondisi benar maka pernyataan dilakukan.

„ Pernyataan bisa satu statement atau beberapa statement

„ Jika pernyataan lebih dari satu gunakan tanda ‘{‘ dan ‘}’ untuk mengelompokkan pernyataan2 itu - Pernyataan if-else kondisi Benar Salah pernyataan1 pernyataan2 „ Sintak: if (kondisi) pernyataan1; else pernyataan2;

„ Jika kondisi benar maka pernyataan1 dilakukan. „ Jika kondisi salah maka pernyataan2 dilakukan.

- Nested -if

„ Di dalam pernyataan if (atau if-else) bisa terdapat pernyataan if (atau if-else) yang lain.

(4)

„ Bentuk umum: if (kondisi-1) if (kondisi-2) . . if(kondisi-n) pernyataan else pernyataan; . . else pernyataan; else pernyataan; - Pernyataan Switch-Case

Digunakan sebagai pengganti pernyataan if bertingkat (else-if) Bentuk umum : switch (ekspresi) { case konstanta-1: pernyataan-11; ... break; case konstanta-2: . . case konstanta-n: pernyataan-n1; ... break; default: ... break; }

(5)

C. PERCOBAAN

1. Menghitung nilai discount menggunakan if.

/* File program : discount.c */ #include <stdio.h>

main() {

double total_pembelian, discount = 0; printf("Total pembelian = Rp "); scanf("%lf", &total_pembelian);

if(total_pembelian >= 100.000) discount = 0.05 * total_pembelian;

printf("Besarnya discount = Rp %.2lf\n", discount); }

2. Menghitung nilai absolut suatu bilangan.

/* File program : absolut.c */ #include <stdio.h>

main() {

int bil, abs;

printf("Masukkan bilangan bulat : "); scanf("%d", &bil);

if(bil < 0)

abs = -bil;

printf("Nilai absolut dari %d adalah %d\n\n", bil, abs); }

3. Pemakaian if-else untuk menyeleksi bilangan pembagi

/* File program : bagi1.c */ #include <stdio.h> main() { float a, b; printf("Masukkan nilai a : "); scanf("%f", &a); printf("Masukkan nilai b : "); scanf("%f", &b); printf("\n"); if (b == 0)

printf("%g dibagi dengan nol = TAK BERHINGGA\n", a); else

printf("%g dibagi dengan %g = %g\n", a, b, a/b); }

(6)

4. Pemakaian if-else untuk mengecek hasil modulus.

/* File program : bagi2.c */ #include <stdio.h>

main() {

int bil1, bil2, sisa;

printf("Masukkan bilangan pertama : "); scanf("%d", &bil1);

printf("Masukkan bilangan kedua : "); scanf("%d", &bil2);

sisa = bil1 % bil2; printf("\n");

if (sisa == 0)

printf("%d habis dibagi dengan %d\n\n", bil1, bil2); else

printf("%d tidak habis dibagi dengan %d\n\n",

bil1, bil2);

}

5. Mengkategorikan karakter masukan

/* File program : tebak.c */ #include <stdio.h>

main() {

char karakter;

printf("Masukkan sebuah karakter : "); scanf("%c", &karakter);

if ((karakter >= 'a' && karakter <= 'z') || (karakter >= 'A' && karakter <= 'Z'))

printf("%c adalah karakter alphabet\n", karakter); else if (karakter >= '0' && karakter <= '9')

printf("%c adalah bilangan\n", karakter); else

printf("%c adalah karakter khusus\n", karakter); }

6. Mengkategorikan bilangan bulat dengan memberinya tanda 1, 0 atau -1.

/* File program : bulat.c */ #include <stdio.h>

main() {

int bil, tanda;

printf("Masukkan sebuah bilangan : "); scanf("%d", &bil); if (bil < 0) tanda = -1; else if (bil == 0) tanda = 0;

(7)

else

tanda = 1;

printf("Bilangan %d memiliki tanda %d\n", bil, tanda); }

7. Implementasi program kalkulator sederhana menggunakan else-if.

/* File program : kalkulator1.c */ #include <stdio.h>

main() {

/* valid_operator diinisialisasi dg logika 1 */ int valid_operator = 1;

char operator;

float bil1, bil2, hasil;

printf("Masukkan 2 buah bilangan dan sebuah operator\n"); printf("dengan format : bil1 operator bil2\n\n");

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("%g %c %g is %g\n", bil1, operator, bil2, hasil);

else

printf("Invalid operator!\n"); }

8. Implementasi program kalkulator sederhana menggunakan switch - case.

/* File program : kalkulator2.c */ #include <stdio.h>

main() {

/* valid_operator diinisialisasi dg logika 1 */

int valid_operator = 1;

char operator;

float bil1, bil2, hasil;

printf("Masukkan 2 buah bilangan dan sebuah operator\n"); printf("dengan format : bil1 operator bil2\n\n");

scanf("%f %c %f", &bil1, &operator, &bil2);

switch(operator) {

case '*' : hasil = bil1 * bil2; break; case '/' : hasil = bil1 / bil2; break; case '+' : hasil = bil1 + bil2; break;

(8)

case '-' : hasil = bil1 - bil2; break; default : valid_operator = 0;

}

if(valid_operator)

printf("%g %c %g is %g\n", bil1, operator, bil2,hasil); else

printf("Invalid operator!\n"); }

D. SOAL

1. Buatlah program untuk menerima 2 buah bilangan bulat masukan. Tampilkan hasil dari pembagian bilangan pertama dengan bilangan kedua, dengan ketelitian 3 desimal. Input : bil1 dan bil2

Output : hasil bagi bil1 dengan bil2

Nilai tambah : program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan kesalahannya (division by zero).

2. Buatlah program untuk menghitung determinan dan mencari akar-akar dari persamaan kuadrat : ax2 + bx + c = 0 , dengan ketentuan sbb :

D = b2 - 4ac

• Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu : x1 = x2 = -b / 2a • Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu :

x1 = (-b + sqrt(D)) / 2a x2 = (-b - sqrt(D)) / 2a

• Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu : x1 = -b / 2a + (sqrt(-D) / 2a) i

x2 = -b / 2a - (sqrt(-D) / 2a) i

Input : a, b, c (float)

Output : Nilai Determinan serta nilai akar-akar persamaan tsb (x1& x2).

Petunjuk : - untuk mencari akar dari x, gunakan : sqrt(x) yang didefinisikan pada <math.h>.

(9)

- gunakan else if

3. Buatlah program untuk menampilkan menu dan melakukan proses sbb : Menu : 1. Menghitung volume kubus

2. Menghitung luas lingkaran 3. Menghitung volume silinder. Input : pilihan user (1, 2 atau 3)

Jika pilihan = 1, maka :

Input : panjang sisi kubus

Output : Volume kubus (vol = sisi3) Jika pilihan = 2, maka :

Input : panjang jari-jari lingkaran Output : Luas lingkaran (luas = 3.14 * r2) Jika pilihan = 3, maka :

Input : panjang jari-jari lingkaran & tinggi silinder Output : Volume silinder (vol = 3.14 * r2 * t)

Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan.

Referensi

Dokumen terkait

kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama. yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah

Jika bentuk percabangan IF...ELSE hanya memiliki dua pilihan, maka percabangan IF...ELSE..IF memiliki lebih dari dua kemungkinan pilihan. if kondisi

Apabila anda salah dalam menjawab, anda dapat mencoret jawaban yang salah tersebut dengan memberi tanda sama.. dengan ( = ) dan dapat mengganti dengan jawaban

Apabila statement salah maka program akan berhenti dan apabila kondisi bernilai benar akan dilanjutkan pada proses selanjutnya bahwa jika if(bil%2!=0)

Pernyataan kondisional dapat berupa IF… dan IF… THEN….ELSE IF….END IF. a) Kondisional IF merupakan kondisi yang hanya terdiri dari satu syarat. Biasanya program akan

(1) Jika kondisi dipenuhi maka dilakukan proses yang hanya satu baris perintah If kondisi Then &lt;Proses Kondisi Benar&gt;.. (2) Jika kondisi dipenuhi maka dilakukan proses yang

pada perintah if (kondisi) {benar} else { salah }, jika kondisi terpenuhi maka script yang akan deksekusi adalah pada kolom benar dan jika kondisi salah atau tidak

ƒ 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