Banyak persoalan yang akan diselesaikan dengan komputer memerlukan sebuah pengambilan keputusan, misalnya menyimpulkan bahwa suatu bilangan adalah bilangan genap atau bilangan ganjil.
Bahasa C menyediakan beberapa jenis pernyataan, berupa :
- Pernyataan if
- Pernyataan if-else
- Pernyataan switch
Kondisi
Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam pengambilan keputusan. Pernyataan kondisi adalah pernyataan yang bernilai TRUE (benar) atau FALSE (salah) yang dibentuk oleh operator kondisi, yaitu operator relasi atau digabung dengan operator logika.
Pada bahasa C nilai hasil dari sebuah pernyataan kondisi jika dinyatakan dengan angka adalah:
- FALSE, nilai = 0
- TRUE, nilai != 0 (misalnya nilai = 1)
Operator Relasi
Operator relasi digunakan untuk membandingkan dua buah nilai. Hasil pembandingan berupa keadaan TRUE atau FALSE.
Operator relasi digunakan untuk membandingkan dua buah nilai. Hasil pembandingan berupa keadaan TRUE atau FALSE.
Tabel Operator Relasi
Operator | Keterangan |
---|---|
> | Lebih dari |
>= | Lebih dari atau sama dengan |
< | Kurang dari |
<= | Kurang dari atau sama dengan |
== | Sama dengan |
!= | Tidak sama dengan |
Contoh pemakaian operator relasi :
Kondisi | Hasil |
---|---|
1 > 2 FALSE | dibaca : apakah 1 lebih dari 2 ? |
1 > 2 TRUE | apakah 1 kurang dari 2 ? |
A == 1 | apakah A = 1 ? TRUE, jika A bernilai 1; FALSE jika A tidak bernilai 1 |
'A' < 'B' | apakah 'A' kurang dari ‘B‘? TRUE, karena kode ASCII untuk karakter 'A' kurang dari kode ASCII untuk karakter 'B' |
jawab == 'Y' | apakah jawab == 'Y' ? TRUE, jika variabel jawab berisi 'Y'; FAlSE, jika variabel jawab tidak berisi 'Y' |
Operator Logika
Operator logika dipakai untuk menghubungkan ekspresi relasi.
Tabel Operator Logika
Operator | Keterangan |
---|---|
&& | dan (AND) |
|| | atau (OR) |
! | tidak (NOT) |
operand1 operator operand2
Baik operand1 maupun operand2 dapat berupa ekspresi relasi ataupun ekspresi logika. Hasil pernyataannya bisa bernilai TRUE atau FALSE.
Tabel dibawah ini memberikan penjelasan hasil operasi ekspresi logika yang menggunakan operator && maupun || untuk berbagai kemungkinan keadaan operandnya.
Tabel Ekspresi Logika |
Tampak bahwa operator atau (||) menghasilkan nilai 1 jika ada operand yang TRUE dan nilai 0 jika semua operand adalah salah. Adapun operator logika dan (&&) memberikan hasil 1 hanya jika kedua operand adalah benar.
Contoh ekspresi logika di antaranya :
- (kar >='A') && (kar <= 'Z') , Hasil operasi logika && adalah TRUE hanya jika kar > 'A' dan kar < 'Z' (dalam hal ini yang diperbandingkan adalah kode ASCII dari karakter tsb).
- (jawab == 'Y') || (jawab == 'y') , Hasil operasi logika || adalah TRUE jika jawab berupa 'Y' atau 'y‘.
Prioritas Operator Relasi dan Operator Logika
Berdasarkan prioritas yang ditunjukkan pada tabel di atas, maka ekspresi seperti
(kar > 'A') && (kar < 'Z')
sama saja kalau ditulis menjadi
kar > 'A' && kar < 'Z'Hanya saja penulisan dengan menggunakan tanda kurung akan lebih memberikan kejelasan.
Pernyataan If
Pernyataan if mempunyai bentuk umum :
if(kondisi)
pernyataan;
Bentuk ini menyatakan :
- Kondisi diuji dulu, nilainya TRUE ataukah FALSE
- Jika kondisi yang diseleksi adalah TRUE (bernilai logika = 1), maka pernyataan yang mengikutinya akan diproses.
- Sebaliknya, jika kondisi yang diseleksi adalah FALSE (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 di bawah ini.
Contoh Program :
#include <stdio.h>
main(){
float total, diskon;
printf("Total belanja : ");
scanf("%f", &total);
if(total >= 100000)
diskon = total * 0.1; //diskon 10%
printf("Total yang harus dibayar : %0.2f\n", total-diskon);
}
Output Program :
Penjelasan :
Program akan meminta input total belanja dari user. Jika total belanja lebih dari atau sama dengan 100000, maka total belanja akan mendapat diskon (pernyataan baris nomor 8 akan dieksekusi).
Jika total belanja kurang dari 100000, maka total belanja tidak akan mendapat diskon (pernyataan baris nomor 8 tidak akan dieksekusi).
Untuk pernyataan if yang diikuti dengan pernyataan majemuk, bentuknya adalah sebagai berikut :
if (kondisi)
{ //tanda awal pernyataan majemuk
pernyataan_1;
pernyataan_2;
-
-
pernyataan_n;
} //tanda akhir pernyataan majemuk
Pernyataan-pernyataan yang berada di antara tanda kurung { dan } akan dijalankan hanya jika kondisi if bernilai TRUEPernyataan If Else
Pernyataan if else bentuk umumnya :
if(kondisi)
pernyataan_1;
else
pernyataan_2;
Diagram alir dapat dilihat seperti pada gambar dibawah ini.
Arti dari pernyataan if else :
- Kondisi diuji dulu, nilainya TRUE ataukah FALSE
- Jika kondisi TRUE atau benar, maka pernyataan-1 dijalankan.
- Sedangkan bila kondisi bernilai FALSE atau salah, maka pernyataaan-2 yang dijalankan.
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. Contoh program :
#include <stdio.h>
main(){
//inisialisasi variabel
float bil1, bil2;
//input output
printf("Masukkan bilangan 1 : ");
scanf("%f", &bil1);
printf("Masukkan bilangan 2 : ");
scanf("%f", &bil2);
//if else
if(bil2 == 0)
printf("Tidak dapat dibagi dengan nol");
else
printf("hasil pembagian = ", bil1/bil2);
}
Output :
Pernyataan if else juga bisa diikuti dengan pernyataan majemuk :
if (kondisi)
{ //tanda awal blok if
pernyataan_1;
pernyataan_2;
-
-
pernyataan_n;
} //tanda akhir blok if
else
{ //tanda awal blok else
pernyataan_1;
pernyataan_2;
-
-
pernyataan_n;
} //tanda akhir blok else
Pernyataan-pernyataan pada blok if akan dijalankan hanya jika kondisi if bernilai TRUE.Pernyataan-pernyataan pada blok else akan dijalankan hanya jika kondisi if bernilai FALSE.
Baca artikel selanjutnya : Pengambilan Keputusan (Decision) Pemrograman Bahasa C (Bagian 2).
Sekian artikel tentang Pengambilan Keputusan (Decision) Pemrograman Bahasa C. Terima kasih dan semoga bermanfaat :)
Ketentuan Komentar !!!
------------------------------
1. Komentar sesuai dengan artikel di atas
2. Komentar SPAM otomatis di blokir dan tidak akan dimunculkan
3. Komentar meninggalkan link aktif otomatis terhapus
4. Berkomentar dengan etika
Terima kasih atas komentarnya, semoga postingan di atas bermanfaat :)