Modul06
PERCABANGAN
Kondisi merupakan hal yang menentukan didalam mengambil keputusan
mengenai tindakan yang diambil. Didalam pemrograman kondisi dikenal
dalam bentuk IF, CASE ataupun yang setara.
6.1 Pernyataan If
Adapun pernyataan yang pertama berbentuk :
IF kondisi(-kondisi) yang harus dipenuhi
Pernyataan
Pernyataan
……
……
Bagan alurnya adalah sebagai berikut :
True (benar) False (Salah)
Dasar pemrograman/ Modul_06_Percabangan 1
6
Kondisi
Pernyataan
Pada bentuk if, pernyataan hanya akan dijalankan kalau kondisi bernilai benar.
Yang terpenting dari bagan alur diatas adalah kondisinya. Kodisilah yang menentukan
apakah sebuah pernyataan program akan dieksekusi atau tidak
Contoh pseudocode dari bentuk pernyataan if adalah :
Variabel :
Suhu : bilangan nyata
Mulai
Masukkan suhu tubuh pada variable suhu
Jika Suhu > 37 maka nyatakan panas
Selesai
Pernyataan tersebut bisa dterjemahkan kedalam bahasa pemrograman dibawah ini :
C++ Pascal
Include <iostream.h>
void main (void)
{
float suhu;
cout << “Masukkan Suhu : ”;
cin >> suhu;
if (suhu > 37)
{ cout << “Panas”;}
cout << “Selesai”
}
Var
Suhu : Real;
Begin
Write (‘Masukkan Suhu : ’);
Readln(Suhu);
If Suhu > 37 then
writeln(‘Panas’);
Writeln(‘Selesai’)
End.
Dasar pemrograman/ Modul_06_Percabangan 2
Pada pernyataan diatas “Panas” tidak selalu ditampilkan tergantung kepada
nilai yang dimasukkan oleh user. Tetapi pernyataan ‘Selesai’ akan selalu ditampilkan
karena tidak tergantung kepada kondisi if.
6.2 Pernyataan If....Else
Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang
diuji terpenuhi, program akan menjalankan pernyuataan-pernyataan tertentu; dan bila
kondisi yang diuji salah, program akan menjalankan pernyatan-pernyataan yang lain.
Bentuk umum pernyataan if..else adalah sebagai berikut:
IF kondisi(-kondisi) yang harus dipenuhi
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) False (Salah)
Dasar pemrograman/ Modul_06_Percabangan 3
Kondisi
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. Suhu tinggi jika bernilai lebih dari 37
2. Suhu tidak tinggi kalau kurang atau sama dengan 37
Maka contoh pseudocodenya adalah sebagai berikut :
Variabel :
Suhu : bilangan nyata
Mulai
Masukkan suhu tubuh pada variable suhu
Jika Suhu > 37 maka nyatakan panas
Selain itu nyatakan tidak panas
Selesai
Dasar pemrograman/ Modul_06_Percabangan 4
Pernyataan tersebut bisa diterjemahkan kedalam bahasa pemrograman dibawah ini :
C++ Pascal
Include <iostream.h>
void main (void)
{
float suhu;
cout << “Masukkan Suhu : ”;
cin >> suhu;
if (suhu > 37)
{ cout << “Panas”;}
else
{ cout << “Tidak Panas”;}
cout << “Selesai”
}
Var
Suhu : Real;
Begin
Write (‘Masukkan Suhu : ’);
Readln(Suhu);
If Suhu > 37 then
writeln(‘Panas’)
Else
WriteLn(‘Tidak Panas’)
Writeln(‘Selesai’)
End.
6.3Pernyataan if..else if
Dalam kasus-kasus tertentu, sebuah konstruksi if dan else dapat terdapat
bentuk bersarang (nested). Bentuk bersarang merupakan contoh bentuk dari sebuah
atau beberapa buah pernyataan if dan else yang terdapat didalam bentuk if dan else
yang lainnya. Nested IF dan ELSE merupakan pernyataan yang lebih rumit
dibandingkan dengan pernyataan IF dan ELSE sederhana.
Berikut ini adalah contoh bentuk pernyataan tersebut :
Dasar pemrograman/ Modul_06_Percabangan 5
Dasar pemrograman/ Modul_06_Percabangan 6
Jumlah Buku >= 50
Diskon 20% Diskon 15 % Diskon 10 %
Tdk Ada
Diskon
Jumlah Buku >= 35
Jumlah Buku >= 20
Harga Buku = 2500
Contoh dari pemrograman dengan menggunakan nested if adalah sebagai berikut :
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.
Dasar pemrograman/ Modul_06_Percabangan 7
6.4 Pernyataan Case
Pernyataan Case digunakan untuk menyederhanakan konstruksi if..else if yang
terlalu banyak. Sebagai contoh, program berikut:
If ( x = 0) then
Writeln(‘X bernilai 0’)
Else if (x = 1) then
Writeln(‘X bernilai 1’)
Else if (x = 2) then
Writeln(‘X bernilai 2’)
Else if (x = 3) then
Writeln(‘X bernilai 3’)
Else
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:
Dasar pemrograman/ Modul_06_Percabangan 8
Suatu bilangan dikatakan bilangan genap jika habis dibagi 2. dengan demikian
algoritma pengecekan bilangan genap atau ganjil dapat dituliskan sebagai berikut:
1. Masukkan x.
2. jika (x 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:
Dasar pemrograman/ Modul_06_Percabangan 9
1. Masukkan x.
2. Jika (x = 0) Tulis ’Minggu’. Selesai.
3. Jika (x = 1) Tulis ’Senin’. Selesai.
4. Jika (x = 2) Tulis ’Selasa’. Selesai.
5. Jika (x = 3) Tulis ’Rabu’. Selesai.
6. Jika (x = 4) Tulis ’Kamis’. Selesai.
7. Jika (x = 5) Tulis ’Jumat’. Selesai.
8. Jika (x = 6) Tulis ’Sabtu’. Selesai.
9. Tulis ’Hari tidak Valid’
Jika ditulis dalam program Pascal sebagai berikut:
Var
x : byte;
begin
write (’ Masukkan bilangan bulat (0 – 6): ’);
readln (x);
case (x) of
0: writeln (’Minggu’);
1: writeln (’Senin’);
2: writeln (’Selasa’);
3: writeln (’Rabu’);
4: writeln (’Kamis’);
5: writeln (’Jumat’);
6: writeln (’Sabtu’);
else
writeln (’Hari tidak Valid’);
end;
end.
Keluaran dari program di atas adalah sebagai berikut:
Masukkan bilangan bulat (0 – 6) : 5
Jumat
  
Dasar pemrograman/ Modul_06_Percabangan 10

Dasar Pemrograman materi kuliah

  • 1.
    Modul06 PERCABANGAN Kondisi merupakan halyang menentukan didalam mengambil keputusan mengenai tindakan yang diambil. Didalam pemrograman kondisi dikenal dalam bentuk IF, CASE ataupun yang setara. 6.1 Pernyataan If Adapun pernyataan yang pertama berbentuk : IF kondisi(-kondisi) yang harus dipenuhi Pernyataan Pernyataan …… …… Bagan alurnya adalah sebagai berikut : True (benar) False (Salah) Dasar pemrograman/ Modul_06_Percabangan 1 6 Kondisi Pernyataan
  • 2.
    Pada bentuk if,pernyataan hanya akan dijalankan kalau kondisi bernilai benar. Yang terpenting dari bagan alur diatas adalah kondisinya. Kodisilah yang menentukan apakah sebuah pernyataan program akan dieksekusi atau tidak Contoh pseudocode dari bentuk pernyataan if adalah : Variabel : Suhu : bilangan nyata Mulai Masukkan suhu tubuh pada variable suhu Jika Suhu > 37 maka nyatakan panas Selesai Pernyataan tersebut bisa dterjemahkan kedalam bahasa pemrograman dibawah ini : C++ Pascal Include <iostream.h> void main (void) { float suhu; cout << “Masukkan Suhu : ”; cin >> suhu; if (suhu > 37) { cout << “Panas”;} cout << “Selesai” } Var Suhu : Real; Begin Write (‘Masukkan Suhu : ’); Readln(Suhu); If Suhu > 37 then writeln(‘Panas’); Writeln(‘Selesai’) End. Dasar pemrograman/ Modul_06_Percabangan 2
  • 3.
    Pada pernyataan diatas“Panas” tidak selalu ditampilkan tergantung kepada nilai yang dimasukkan oleh user. Tetapi pernyataan ‘Selesai’ akan selalu ditampilkan karena tidak tergantung kepada kondisi if. 6.2 Pernyataan If....Else Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyuataan-pernyataan tertentu; dan bila kondisi yang diuji salah, program akan menjalankan pernyatan-pernyataan yang lain. Bentuk umum pernyataan if..else adalah sebagai berikut: IF kondisi(-kondisi) yang harus dipenuhi 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) False (Salah) Dasar pemrograman/ Modul_06_Percabangan 3 Kondisi Pernyataan Pernyataan
  • 4.
    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. Suhu tinggi jika bernilai lebih dari 37 2. Suhu tidak tinggi kalau kurang atau sama dengan 37 Maka contoh pseudocodenya adalah sebagai berikut : Variabel : Suhu : bilangan nyata Mulai Masukkan suhu tubuh pada variable suhu Jika Suhu > 37 maka nyatakan panas Selain itu nyatakan tidak panas Selesai Dasar pemrograman/ Modul_06_Percabangan 4
  • 5.
    Pernyataan tersebut bisaditerjemahkan kedalam bahasa pemrograman dibawah ini : C++ Pascal Include <iostream.h> void main (void) { float suhu; cout << “Masukkan Suhu : ”; cin >> suhu; if (suhu > 37) { cout << “Panas”;} else { cout << “Tidak Panas”;} cout << “Selesai” } Var Suhu : Real; Begin Write (‘Masukkan Suhu : ’); Readln(Suhu); If Suhu > 37 then writeln(‘Panas’) Else WriteLn(‘Tidak Panas’) Writeln(‘Selesai’) End. 6.3Pernyataan if..else if Dalam kasus-kasus tertentu, sebuah konstruksi if dan else dapat terdapat bentuk bersarang (nested). Bentuk bersarang merupakan contoh bentuk dari sebuah atau beberapa buah pernyataan if dan else yang terdapat didalam bentuk if dan else yang lainnya. Nested IF dan ELSE merupakan pernyataan yang lebih rumit dibandingkan dengan pernyataan IF dan ELSE sederhana. Berikut ini adalah contoh bentuk pernyataan tersebut : Dasar pemrograman/ Modul_06_Percabangan 5
  • 6.
    Dasar pemrograman/ Modul_06_Percabangan6 Jumlah Buku >= 50 Diskon 20% Diskon 15 % Diskon 10 % Tdk Ada Diskon Jumlah Buku >= 35 Jumlah Buku >= 20 Harga Buku = 2500
  • 7.
    Contoh dari pemrogramandengan menggunakan nested if adalah sebagai berikut : 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. Dasar pemrograman/ Modul_06_Percabangan 7
  • 8.
    6.4 Pernyataan Case PernyataanCase digunakan untuk menyederhanakan konstruksi if..else if yang terlalu banyak. Sebagai contoh, program berikut: If ( x = 0) then Writeln(‘X bernilai 0’) Else if (x = 1) then Writeln(‘X bernilai 1’) Else if (x = 2) then Writeln(‘X bernilai 2’) Else if (x = 3) then Writeln(‘X bernilai 3’) Else 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: Dasar pemrograman/ Modul_06_Percabangan 8
  • 9.
    Suatu bilangan dikatakanbilangan genap jika habis dibagi 2. dengan demikian algoritma pengecekan bilangan genap atau ganjil dapat dituliskan sebagai berikut: 1. Masukkan x. 2. jika (x 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: Dasar pemrograman/ Modul_06_Percabangan 9
  • 10.
    1. Masukkan x. 2.Jika (x = 0) Tulis ’Minggu’. Selesai. 3. Jika (x = 1) Tulis ’Senin’. Selesai. 4. Jika (x = 2) Tulis ’Selasa’. Selesai. 5. Jika (x = 3) Tulis ’Rabu’. Selesai. 6. Jika (x = 4) Tulis ’Kamis’. Selesai. 7. Jika (x = 5) Tulis ’Jumat’. Selesai. 8. Jika (x = 6) Tulis ’Sabtu’. Selesai. 9. Tulis ’Hari tidak Valid’ Jika ditulis dalam program Pascal sebagai berikut: Var x : byte; begin write (’ Masukkan bilangan bulat (0 – 6): ’); readln (x); case (x) of 0: writeln (’Minggu’); 1: writeln (’Senin’); 2: writeln (’Selasa’); 3: writeln (’Rabu’); 4: writeln (’Kamis’); 5: writeln (’Jumat’); 6: writeln (’Sabtu’); else writeln (’Hari tidak Valid’); end; end. Keluaran dari program di atas adalah sebagai berikut: Masukkan bilangan bulat (0 – 6) : 5 Jumat    Dasar pemrograman/ Modul_06_Percabangan 10