Berlangganan

About Me


PERCABANGAN

PERCABANGAN

7

Tujuan Instruksi Umum (TIU):

Mampu mengetahui dan menggunakan statemen percabangan yang dapat digunakan untuk membantu dalam memecahkan masalah.

Tujuan Instruksi Khusus (TIK):

• Mengetahui statemen-statemen percabangan.

• Dapat memilih statemen percabangan yang tepat untuk membantu memecahkan masalah.

Pembahasan Materi:

• Statemen if dan if-else

• Statemen if-else bersarang • Statemen switch-case

• Statemen break dan default

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.

7.1 Pernyataan If

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

Bentuk algoritma untuk pernyataan if adalah sebagai berikut :

if kondisi(-kondisi) yang harus dipenuhi

Pernyataan Pernyataan …… ……

56

-----------------------------------------------------Page 1-----------------------------------------------------

Bagan alurnya adalah sebagai berikut :

False (Salah)

Kondisi

True (benar)

Pernyataan

Contoh pseudocode dari bentuk pernyataan if adalah :

Variabel :

nilai : bilangan nyata

Mulai

Masukkan nilai

Jika nilai > 50
 maka nyatakan ”Lulus”

Cetak Nilai anda = nilai

Selesai

Bentuk umum untuk statemen if dalam bahasa C adalah sebagai berikut:

if-then

Bentuk: if (kondisi) statement;

Jika ada lebih dari satu statemen yang harus dilaksanakan maka harus digunakan tanda ( { ) dan (}).

Bentuk:

if (kondisi)

{ statemen-1;

….

statemen-n;

}

57

-----------------------------------------------------Page 2-----------------------------------------------------

Listing Program 7.1 Contoh Penggunaan if

#include <stdio.h>

void main() {

float nilai;

printf(“Masukkan nilai : “); scanf(“%f”, &nilai);

if (nilai > 50) /*jika nilai di atas 50 maka

Masukkan nilai : 45

printf(“Lulus”); akan mencetak kata Lulus */

Nilai anda = 45.00

printf(“\nNilai anda = %.2f“, nilai);

}

Masukkan nilai : 56

Lulus

Nilai anda = 56.00

Pada pernyataan diatas “Lulus” tidak selalu ditampilkan tergantung kepada nilai yang dimasukkan pada saat program dijalankann. Tetapi pernyataan ”Nilai anda = ....” akan selalu ditampilkan karena tidak tergantung kepada kondisi if.

7.2 Pernyataan If....else

Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyataan-pernyataan tertentu; dan bila kondisi yang diuji salah, program akan menjalankan pernyatan-pernyataan yang lain.

Bentuk umum pernyataan if..else dalam algoritma 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).

58

-----------------------------------------------------Page 3-----------------------------------------------------

Bagan alurnya adalah sebagai berikut :

True (benar)

Pernyataan

Kondisi

False (Salah)

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

Bentuk umum untuk statemen if-else dalam bahasa C adalah sebagai berikut:

if (kondisi) statement;

else

statemen;

59

-----------------------------------------------------Page 4-----------------------------------------------------

Listing Program 7.2 Contoh Penggunaan if-else

#Include <stdio.h>

void main (void)

{

float nilai;

printf( “Masukkan nilai : ”);

scanf(“%f”, &nilai);

if (nilai > 50)

{ printf(“Anda Lulus”); }

else

Masukkan nilai : 45

Anda tidak lulus

Nilai anda = 45.00

{ printf(“Anda tidak lulus”); }

}

printf( “\n Nilai anda =%.2f ””, nilai);

Masukkan nilai : 56

Anda Lulus

Nilai anda = 45.00

7.3 Pernyataan if..else if (if bersarang)

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.

Bentuk umum pernyataan if bersarang dalam algoritma adalah sebagai berikut:

if kondisi_1 yang harus dipenuhi

Pernyataan …… else

if kondisi_2 yang harus dipenuhi

Pernyataan

…… else

pernyataan ……

60

-----------------------------------------------------Page 5-----------------------------------------------------

Bentuk umum pernyataan if..else dalam Bahasa C adalah sebagai berikut:

if (kondisi_1)

statemen;

else

if(kondisi_2)

statemen;

else

Catatan:

Untuk if sebanyak n maka ada else sebanyak n pula.

if (kondisi_n)

statemen;

else

statemen;

……

Bagan alurnya adalah sebagai berikut :

Harga Buku = 2500

Jumlah Buku >= 50

Jumlah Buku >= 35

Jumlah Buku >= 20

Tdk Ada

Diskon 20%
 Diskon 15 %
 Diskon 10 %

Diskon

Berdasarkan contoh flowchart di atas, listing program dalam bahasa C dapat dilihat pada listing program 7.3 di bawah ini:

61

-----------------------------------------------------Page 6-----------------------------------------------------

Listing Program 7.3 Contoh Program if-bersarang

#include <stdio.h>

void main(void) {

int Jumlah_Buku; float harga;

printf(“Jumlah Buku: “); scanf(“%d”, &Jumlah_Buku);

if (Jumlah_Buku >= 50) {

harga= Jumlah_Buku * 0.8 * 2500;

scanf(“\nTotal harga: %.2f”, harga);

}

else

Listing Program 7.2 Contoh

{

harga= Jumlah_Buku * 0.85 * 2500;

printf(“\nTotal harga: %.2f”, harga);

}

else

if (Jumlah_Buku >= 20)

{

harga= Jumlah_Buku * 0.9 * 2500;

printf(“\nTotal harga: %.2f”,harga);

} else

{

harga= Jumlah_Buku * 2500;

Jumlah Buku: 34

Total harga: 76500.00

printf(”\nTotal Harga: %.2f”,harga);

} }

7.4 Pernyataan switch-case

Pernyataan switch-case digunakan untuk menyederhanakan struktur pemilihan dengan banyak kondisi.

Bentuk umum dalam bahasa C :

switch (<ekspresi>)

{
 case <nilai_1>:
 statemen_1;

break ;

…….

case <nilai_n> : statemen_n;

break ;

}

default :
 statemen_default;

- - -

<nilai> pada case hanya dapat diisikan oleh nilai yang “ integral constants ”

case dengan break: digunakan jika satu kondisi hanya mengerjakan satu kelompok statemen.

case tanpa break: digunakan jika suatu case dapat mengerjakan satemen milik case yang ada di bawahnya.

62

if (Jumlah_Buku >= 35) Penggunaan if-else

-----------------------------------------------------Page 7-----------------------------------------------------

Statemen switch akan menyeleksi kondisi yang diberikan dan kemudian membandingkan hasilnya dengan nilai-nilai yang berada dalam case . Pembandingan akan dimulai dari nilai1 sampai dengan nilai_n. Jika hasil dari kondisi sama dengan nilai tertentu, maka statemen-statemen yang ada di case nilai tersebut akan diproses sampai ditemui statemen break yang akan membawa proses keluar dari blok switch . Jika semua nilai yang dibandingkan tidak ada yang sama dengan kondisi, maka statemen yang akan diproses adalah statemen yang berada dalam default .

Statemen break digunakan untuk membuat proses keluar dari blok switch seteleh selesai memproses sebuah case . Jika statemen break tidak digunakan, maka apabila proses sudah selesai memproses sebuah bagian dalam case proses akan masuk ke bagian case yang berikutnya.

Pernyataan switch digunakan untuk menyederhanakan konstruksi if-else-if yang terlalu banyak. Sebagai

contoh penggalan program berikut:

if (x == 0)
 printf("X bernilai 0");

else if (x == 1)
 printf ("X bernilai 1");

else if (x == 2) printf ("X bernilai 2");

else if (x == 3) printf ("X bernilai 3");

else printf ("X tidak bernilai 0, 1,

Dapat diganti menjadi lebih ringkas dan mudah dibaca dengan program berikut:

switch(x)

2, ataupun 3");

{
 case 0 :

case 1 :

case 2 :

case 3 :

printf("X bernilai 0");

printf("X bernilai 1");

printf("X bernilai 2");

printf("X bernilai 3");

break;

break;

break;

break;

default:
 printf ("X tidak bernilai 0, 1,
 2, ataupun 3");

}

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 .

63

-----------------------------------------------------Page 8-----------------------------------------------------

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 C untuk mengecek suatu bilangan termasuk bilangan ganjil atau genap:

#include <stdio.h>

void main(void) {

int bil; /*deklarasi variabel bil */

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

if(bil % 2 == 0)

printf("Bilangan genap");

else

printf("Bilangan ganjil");

}

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. 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’

64

-----------------------------------------------------Page 9-----------------------------------------------------

Jika ditulis dalam program C sebagai berikut:

#include <stdio.h>

void main(void) {

unsigned int x;
 /*deklarasi variabel x */

printf("Masukkan bilangan bulat (0 - 6): "); scanf("%d", &x);

switch (x) {

case 0: case 1: case 2: case 3: case 4: case 5: case 6: default
 printf("Minggu"); break; printf("Senin"); break; printf("Selasa"); break; printf("Rabu"); break; printf("Kamis"); break; printf("Jumat"); break; printf("Sabtu"); break;

: printf("Hari tidak Valid");

} }

Keluaran dari program di atas adalah sebagai berikut:

Masukkan bilangan bulat (0 – 6) : 5 Jumat

Masukkan bilangan bulat (0 – 6) : 8 Hari tidak Valid

Latihan:

1. Apa perbedaan antara if-else bersarang dengan switch-case ?

2. Statemen _____ digunakan untuk membuat program keluar dari blok switch .

3. statemen _______digunakan untuk membuat proses menegerjakan suatu instruksi bila tidak ada nilai yang

sesuai dengan kondisi yang diseleksi.

4. Buatlah algoritma untuk membuat program menegcek sebuah bilangan berkelipatan 5.

5. Carilah kesalahan dari program di bawah ini dan jika telah diperbaiki apakah keluaran dari program dibawah

ini?

#include <stdio.h>

void main(void) {

int n;

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

if(n % 5); printf("Kelipatan 5"); else printf("Bukan Kelipatan 5");

}

65

-----------------------------------------------------Page 10-----------------------------------------------------

Tugas Mandiri:

1. Buatlah program kalkulator , jika program dijalankan maka program akan meminta masukan dua bilangan real (dapat mengandung pecahan), kemudian program menampilkan sebuah menu. Menu tersebut memiliki 4 buah pilihan. Jika pilihan ke satu yang dipilih

Program Kalkulator

Masukkan Bilangan 1: <3.5> Masukkan Bilangan 2: <5>

maka program akan menghitung penjumlahan dua bilangan. Jika pilihan yang kedua yang dipilih maka program akan menghitung pengurangan dua bilangan. Jika pilihan ke tiga yang dipilih maka program kan melakukan perkalian dua bilangan dan jika pilihan yang

1. 2. 3. 4.

<<< Menu >>> Penjumlahan Pengurangan Perkalian Pembagian

ke empat yang dipilh maka program akan membagi bilangan yang dimasukkan. Apabila tidak ada pilihan yang sesuai maka tampilkan

Pilihan anda : <3>

3.50 * 5.00 = 17.50

pesan pilihan yang anda pilih tidak ada.

2. Tulislah program untuk menghitung bunga tabungan, dengan ketentuan sebagai berikut:

Tabungan (Rp)

<1juta

1juta – 5 juta

5.000.001 – 10 juta > 10 juta

Bunga/bulan

0.15% 0.56 %

12 % 20 %

==============

Referensi:

Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997

Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001

Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993

Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004

☺☺☺

66

-----------------------------------------------------Page 11-----------------------------------------------------

1 Response to "PERCABANGAN"