Dalam pembuatan algoritma atau program untuk memecahkan masalah adakalanya kita dihadapi beberapa kondisi atau keadaaan, kondisi tersebut biasanya menentukan hasil akhir dari proses yang akan didapat. Misalnya untuk menentukan kelulusan seorang siswa berdasarkan nilai. Jika nilai siswa lebih dari atau samadengan 50 maka siswa tersebut dinyatakan lulus, sebaliknya jika nilai siswa tersebut di bawah 50 maka tidak lulus, dan seterusnya. Kondisi merupakan hal yang menentukan didalam mengambil keputusan mengenai tindakan yang diambil. Didalam pemrograman kondisi dikenal dalam bentuk IF, CASE ataupun yang setara.
Bentuk algoritma untuk pernyataan if adalah sebagai berikut : IF kondisi(-kondisi) yang harus dipenuhi THEN Pernyataan Pernyataan Bagan alurnya adalah sebagai berikut :
Pernyataan
Contoh pseudocode dari bentuk pernyataan if adalah : Variabel : nilai : bilangan nyata Mulai Masukkan nilai Jika nilai > 50 maka nyatakan Lulus
C++
Pascal
Include <iostream.h> void main (void) { float nilai; cout << Masukkan nilai : ; cin >> nilai; if (nilai > 50) { cout << Lulus; } cout << Nilai anda: <<nilai; }
Var Nilai : Real; Begin Write (Masukkan Nilai : ); Readln(Nilai); If Nilai > 50 then writeln(Lulus); Writeln(Nilai = , Nilai) End.
if-then
Bentuk umum untuk statemen if dalam bahasa PASCAL adalah sebagai berikut:
Bentuk: if (kondisi) Then statement; Jika ada lebih dari satu statemen yang harus dilaksanakan maka harus digunakan begin dan end. Bentuk: if (kondisi) Then Begin statemen-1; . statemen-n; end;
Bentuk umum pernyataan if..else dalam algoritma adalah sebagai berikut: if kondisi(-kondisi) yang harus dipenuhi Then Pernyataan Pernyataan else Pernyataan Pernyataan
Kondisi sendiri merupakan suatu ekspresi bertipe boolean, artinya hanya dapat bernilai benar (true) atau salah (false). Bagan alurnya adalah sebagai berikut :
True (benar)
Kondisi
False (Salah)
Pernyataan
Pernyataan
Pada bentuk ini : 1. Pernyataan sesudah if akan dieksekusi kalau kondisi bernilai benar 2. Pernyataan sesudah else akan dieksekusi kalau kondisi bernilai salah Sebagai contoh diinginkan tampilan :
1. Anda Lulus jika nilai bernilai lebih dari 50 2. Anda tidak lulus jika nilai kurang dari 50
Maka contoh pseudocodenya adalah sebagai berikut : Variabel : Nilai : bilangan nyata Mulai Masukkan Nilai Jika Nilai > 50 maka nyatakan Anda Lulus
Jika sebaliknya maka nyatakan Anda tidak lulus Cetak nilai = nilai
Selesai
sebagai berikut:
C++
Pascal
Include <iostream.h> void main (void) { float nilai; cout << Masukkan Nilai : ; cin >> nilai; if (nilai > 50) { cout << Anda Lulus;} else { cout << Anda Tidak Lulus;} cout << Nilai = << nilai; }
Var nilai : Real; Begin Write (Masukkan nilai : ); Readln(nilai); If nilai > 50 then writeln(Anda Lulus) Else WriteLn(Anda Tidak Lulus) Writeln(Nilai = , nilai) End.
if kondisi_1 yang harus dipenuhi Pernyataan else if kondisi_2 yang harus dipenuhi Pernyataan else pernyataan
Diskon 20%
Diskon 15 %
Diskon 10 %
Bentuk umum pernyataan if..else dalam Bahasa Pascal adalah sebagai berikut:
if (kondisi_1) then statemen; else if (kondisi_2) then statemen; else if (kondisi_n) then statemen; else statemen;
Bahasa C++
Bahasa Pascal
#include <iostream.h> void main(void) { int Jumlah_Buku; float harga; cout << Jumlah Buku: << endl ; cin >> Jumlah_Buku; if (Jumlah_Buku >= 50) { harga= Jumlah_Buku * 0.8 * 2500; cout<< Total harga: << harga; } else { if (Jumlah_Buku >= 35) { harga= Jumlah_Buku * 0.85 * 2500; cout<< Total harga: << harga; } else { if (Jumlah_Buku >= 20 { harga= Jumlah_Buku * 0.9 * 2500; cout << Total harga: << harga; } else { harga= Jumlah_Buku * 2500; cout<< Total Harga: << harga; } } } }
Var Jumlah_Buku : integer; Harga_Buku : real; Begin Write (Jumlah Buku = ); ReadLn(Jumlah_Buku); IF Jumlah_Buku >= 50 then Begin Harga:= Jumlah_Buku * 0.8 * 2500; WriteLn(Total Harga= , Harga); End Else IF Jumlah_Buku >= 35 then Begin Harga:= Jumlah_Buku * 0.85 * 2500; WriteLn(Total Harga= , Harga); End Else IF Jumlah_Buku >= 20 Begin Harga:= Jumlah_Buku * 0.9 * 2500; WriteLn(Total Harga= , Harga); End Else Begin Harga:= Jumlah_Buku * 2500; WriteLn(Total Harga= , Harga); End; End.
Writeln(X tidak bernilai 0, 1, 2, ataupun 3); Dapat diganti menjadi lebih ringkas dan mudah dibaca dengan program berikut Case x of 0 : Writeln(X bernilai 0); 1 : Writeln(X bernilai 1); 2 : Writeln(X bernilai 2); 3 : Writeln(X bernilai 3); else Writeln(X tidak bernilai 0, 1, 2, ataupun 3);; End; Jika dilihat pada contoh di atas bahwa meskipun hasil dari kedua program tersebut sama tetapi penulisan dengan case lebih mudah dibaca.
Contoh-contoh soal:
1. Tulislah algoritma dan program yang menampilkan Genap jika suatu bilangan adalah
bilangan genap atau Ganjil jika bilangan tersebut adalah bilangan ganjil. Nilai masukan adalah bilangan bulat, yaitu x, dimana 0 x 65535. keluaran dari program ini adalah Bilangan Genap atau Bilangan ganjil. Jawab: Suatu bilangan dikatakan bilangan genap jika habis dibagi 2. dengan demikian algoritma pengecekan bilangan genap atau ganjil dapat dituliskan sebagai berikut:
1. Masukkan bil. 2. jika (bil habis dibagi 2 ) maka kerjakan baris 3; jika tidak kerjakan baris 4.
3. tulis Bilangan genap. Selesai. 4. tulis Bilangan ganjil. Selesai.
Contoh program dalam Pascal untuk mengecek suatu bilangan termasuk bilangan ganjil atau genap: Var x: word; begin
write (Masukkan suatu bilangan bulat sembarang: ); readln(x); if (x mod 2 = 0) then writeln (Bilangan genap) else writeln (Bilangan ganjil); end. Keluaran dari program tersebut adalah sebagai berikut: Masukkan suatu bilangan bulat sembarang: 25 Bilangan ganjil Masukkan suatu bilangan bulat sembarang: 4 Bilangan genap
2. Tulislah algoritma dan program yang meminta masukan bilangan bulat dari pengguna. Jika pengguna memasukkan 0, program menampilkan Minggu; jika pengguna memasukkan 1, program menampilkan Senin, dan seterusnya sampai dengan Sabtu. Jika pengguna memasukkan nilai di luar jangkauan 0 sampai dengan 6, program menuliskan Hari tidak Valid. Jawab: Algoritma untuk menampilkan hari dapat dituliskan sebagai berikut: 1. Masukkan x. 2. Jika (x = 0) Tulis Minggu. Selesai. 3. Jika (x = 1) Tulis Senin. Selesai. 4. Jika (x = 2) Tulis Selasa. Selesai.
Var 5. Jika (x = 3) Tulis Rabu. Selesai. x : Kamis. 6. Jika (x = 4) Tulis byte; Selesai. begin
9. Tulis Hari tidak Valid of case (x) Jika ditulis dalam programwriteln (Minggu); 0: C sebagai berikut:
1: writeln (Senin); 2: writeln (Selasa); 3: writeln (Rabu); 4: writeln (Kamis); 5: writeln (Jumat); 6: writeln (Sabtu); else Dasar pemrograman/ Modul_08_Percabangan writeln (Hari tidak Valid); end;
10
Keluaran dari program di atas adalah sebagai berikut: Masukkan bilangan bulat (0 6) : 5 Jumat Masukkan bilangan bulat (0 6) : 8 Hari tidak Valid
==============
11