Anda di halaman 1dari 16

Pr Algoritma dan

Pemrograman

VJOBSHEET 3
Percabangan Bersyarat
3.1. Tujuan Instruksional Khusus
1. Mahasiswa dapat membuat program menggunakan percabangan menggunakan if .. else.
2. Mahasiswa dapat membuat program menggunakan percabangan bertingkat menggunakan
if .. else if.
3. Mahasiswa dapat membuat program menggunakan percabangan menggunakan switch ..
case.

3.2. Pendahuluan
Percabangan bersyarat memungkinkan pemrogram untuk memilih suatu alternatif dari
beberapa alternatif yang disediakan berdasarkan kondisi yang sesuai.

3.2.1 Operator Relasi


Operator relasi digunakan untuk membandingkan nilai dua ekspresi aritmatika yang berbeda.
Kedua nilai ekspresi yang dibandingkan tersebut dapat sama, lebih besar, atau lebih kecil atau
tidak sama dan sebagainya.
Tabel 3.1. Operator Relasi
OPERATOR ARTI
RELASI
< Lebih kecil
> Lebih besar
== Sama dengan
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
!= Tidak sama dengan

Kesalahan yang sering terjadi dalam menggunakan operator relasi ini adalah penggunaan
tanda sama dengan (==). Sering pemrogram menggunakan notasi ‘=’ untuk menunjukkan
relasi sama dengan (==). Hal ini dapat dimaklumi karena dalam bahasa pemrograman yang
lain tanda relasi sama dengan yang banyak digunakan adalah ‘=’. Contoh dari ekspresi sama:
Ekspresi pertama : x + 5
Ekspresi kedua : y + 10
Pernyataan yang benar adalah : x+5==y+10
Bila pernyataan tersebut dituliskan x+5=y+10

Jobsheet 3: Percabangan Bersyarat Page 34


Pr Algoritma dan
Pemrograman

Akan muncul pesan kesalahan Lvalue required in function…

3.2.2 Operator Lojik


Operator lojik umumnya digunakan untuk membandingkan dua ekspresi relasional atau lebih
dalam suatu ekspresi logik. Operator Logik yang dikenal oleh Turbo C diberikan dalam Tabel
3.2
Tabel 3.2 Operator Lojik
OPERATOR LOGIK ARTI
&& Lojik AND
|| Logik OR
! Lojik NOT

Suatu ekspresi lojik yang terdiri dari dua ekspresi realsional atau lebih yang dihubungkan oled
DAN (logical AND) akan dianggap BENAR bila semua ekspresi relasional tadi BENAR.
Tinjau dari tiga ekspresi relasional berikut ini merupakan contoh dari ekspresi lojik:
1. X+5<10
2. Y>x+3
3. Z-2>3
Bila ketiga ekspresi relasional ini digabungkan dengan &&
(x+5<10 && y>x+3 && z-2>3)

Jika nilai-nilai x=1, y=5, z=10, maka ekspresi-ekspresi relasional tersebut akan memiliki nilai:
X+5<10 → BENAR
Y>x+3 → BENAR
Z-2>3 → BENAR
Berhubung ketiga ekspresi relasional BENAR, maka:
(x+5<10 && y>x+3 && z-2>3) → juga BENAR
Untuk nilai x,y,, dan z yang brbeda, misalkan x=2, y=2, dan z=10, maka:
X+5<10 → BENAR
Y>x+3 → SALAH
Z-2>3 → BENAR
Karena di sini ada ekpresi relasional yang SALAH, maka :
(x+5<10 && y>x+3 && z-2>3) → SALAH

Dua atau lebih ekspresi realsional yagn dihubungkan oleh lojik OR akan BENAR, bila
minimum salah satu ekspresi relasional tersebut Benar. Bila semua relasi memiliki nilai
SALAH, abru pernyataan tersebut akan Salah. Dari contoh tersebut, penggabungan beberapa

Jobsheet 3: Percabangan Bersyarat Page 35


Pr Algoritma dan
Pemrograman

ekpresi relasional dalam suatu ekspresi lojik dengan menggunakan && dan ||, akan mengikuti
aturan seperti yang ditunjukkan dalam Tabel 3.3.
Tabel 3.3 Operator lojik
OPERATOR EKSPRESI LOGIK HASIL
LOGIK
&& (benar) && (benar) BENAR
(benar) && (salah) SALAH
(salah) && (benar) SALAH
(salah) && (salah) SALAH
|| (benar) || (benar) BENAR
(benar) || (salah) BENAR
(salah) || (benar) BENAR
(salah) || (salah SALAH
! ! (benar) SALAH
! (salah) BENAR

Bila && dan || digunakan secara bersama-sama dalam suatu pernyataan untuk
menggabungkan beberapa relasi, maka && akan dipriotaskan lebih dahulu, baru kemudian
menyusul ||.
.
3.2.3 Pernyataan if
Pernyataan if membagi suatu alur proses menjadi dua cabang, berdasarkan persyaratan yang
diberikan. Cabang yang pertama dijalankan bila persyaratan dipenuhi, sedangkan cabang yang
kedua akan dipilih bila persyaratan tidak dipenuhi. Dalam bentuk diagram alir, proses
percabangan if dapat digambarkan sebagai berikut (lihat gambar 3.1.)

Ya Tidak
IF

PERINTAH

PERINTAH

Jobsheet 3: Percabangan Bersyarat Page 36


Pr Algoritma dan
Pemrograman

Gambar 3.1. Digram Alir Percabangan if

Diagram alir yang diberikan dalam gambar 3.1. menggambarkan proses percabangan if yang
paling sederhana, yaitu bila cabang yang kedua (persyaratan tidak dipenuhi) tidak memiliki
perintah. Dengan kata lain, sekumpulan perintah akan dijalankan bila syarat dipenuhi,
sedangkan bila syarat tidak dipenuhi, sekumpulan perintah tadi akan dilewati atau diabaikan,
proses akan langsung dialnjutkan pada perintah-perintah berikutnya. Struktur if dapat
dituliskan dalam dua bentuk penulisan. Pertama, pada if hanya mengandung sebuah perintah
atau pernyataan dengan format perintah seperti berikut:
if(syarat)
……perintah;

Terlihat bahwa baris if tidak diakhiri oleh ‘;’, notasi ‘;’ baru diberikan pada akhir perintah
baris di bawah if. Bentuk penulisan kedua digunakan bila perintah yang terdapapat di dalam if
merupakan sekumpulan perintah.
if(syarat)
{ ……perintah;
……perintah;
……perintah; }

Pada setiap baris perintah diakhiri oleh ‘;’. Kumpulan perintah yang termasuk di dalam if
diletakkan di antara ‘{‘ dan ’}’.

3.2.4 Pernyataan if else


Pernyataan if else sebenarnya merupakan pengembangan dari pernyataan if. Disini kedua
cabang, yaitu syarat dipenuhi dan syarat tidak dipenuhi, masing-masing memiliki perintah
yang harus dijalankan. Diagram alir untuk pernyataan if else dilukiskan dalam Gambar 3.2.

Jobsheet 3: Percabangan Bersyarat Page 37


Pr Algoritma dan
Pemrograman

Gambar 3.2. Diagram Alir untuk pernyataan if .. else

Seperti halnya pernyataan if.cara menuliskan struktur if else ini juga dibedakan dalam dua
bentuk.Yang pertama yaitu bila masing-masing alternative hanya terdiri dari satu perintah atau
pernyataan.

if (syarat)
….perintah;
else
….perintah;

Bila setiap alternatif terdiri lebih dari satu perintah,maka perintah-perintah tadi harus
diletakkan diantara tanda kurung ’{ }’.
if (syarat)
{
....perintah;
....perintah;
....perintah;
}
else
{
….perintah;
….perintah;
….perintah;
}

3.2.5 Bentuk Percabangan if else if

Jobsheet 3: Percabangan Bersyarat Page 38


Pr Algoritma dan
Pemrograman

Bentuk else if sebenarnya mirip dengan nested if, bahkan dalam aplikasinya seringkali
sturktur ini digunakan untuk menggantikan struktur nested if. Keuntungan struktur else if
dibandingkan dengan nested if adalah struktur ini menghasilkan bentuk penulisan program
yang lebih sederhana. Diagram alir untuk struktur else if ini di lukiskan dalam Gambar 3.3.

if Perintah 1

else if Perintah 2

else if Perintah 3

else Perintah 4

Gambar 3.3. Diagram alir struktur else if

Struktur pertanyaan if else if dapat dituliskan sebagai berikut:


if (syarat)
{
…..perintah;
…..perintah;
}
else if (syarat)
{
…..perintah;
…..perintah;
}
else if (syarat)

Jobsheet 3: Percabangan Bersyarat Page 39


Pr Algoritma dan
Pemrograman

{
…..perintah;
…..perintah;
{
else
{ …..perintah;
…..perintah;
}

Bagian program ini akan dijalankan bila semua syarat if dan else if di atasnya tidak dipenuhi.
Jadi alternative else yang terakhir ini akan dipilih bila semua alternative yang diberikan
sebelumnya bukan merupakan pilihan yang sesuai.

3.2.6 Switch dan break


Perintah switch dan break memiliki sifat yang hamper sama dengan else if, namun
penggunaanya lebih sempit, karena perintah ini hanya khusus untuk memeriksa data yang
bertipe karakter atau integer. Perintah switch dan break ini juga digunakan untuk
menyelesaikan program yang memiliki banyak cabang atau alternative. Bentuk penulisan
perintah ini:
switch (variable integer atau karakter)
{
case nilai pertama variable :
…..perintah;
…..perintah;
break;
case nilai kedua:
…..perintah;
…..perintah;
Break;
case nilai ketiga:
…..perintah;
…..perintah;
break;
default:
…..perintah;
…..perintah;
}

Tanda kurung kurawal ‘{ }’ menunjukkan batas jangkauan switch. Setiap cabang akan
dijalankan bila syarat nilai variable tersebut dipenuhi. Default akan dijalankan bila semua
cabang di atasnya tidak dipenuhi. Pertanyaan break menunjukkan bahwa kita siap keluar dari

Jobsheet 3: Percabangan Bersyarat Page 40


Pr Algoritma dan
Pemrograman

switch. Bila pertanyaanya ini tidak ada, maka program akan diteruskan ke cabang-cabang di
bawahnya.

3.2.7 Operator Kondisi (Conditional Operator)


Operator kondisi diperkenalkan oleh Turbo C untuk menyediakan penulisan program yang
sedang disusun. Kita tinjau contoh penggalan program di bawah ini.
if (nilai>=60)
Status=’L’;
else
Status=’G’;

Dimana ‘L’ dan ‘G’ masing-masing menyatakan ‘lulus’ dan ‘gugur’. Penggalan program di
atas ini dapat disederhanakan menjadi:
status = nilai>60 ? ‘L’ : ‘G’;

Bentuk umum dari operator kondisi:

TRUE

nama_variabel = ekspresi logic atau relasi ? ekspresi 1 : ekspresi 2;

FALSE

Nama_variabel: adalah variable yang akan menerima nilai ekspresi 1 atau ekspresi 2. Ekspresi
lojik atau relasi: merupakan ekspresi yang akan memeriksa apakah kondisi yang ada BENAR
atau SALAH. Jadi hasil ekspresi ini adalah ‘TRUE’ (BENAR) atau ‘FALSE’ (SALAH).
Kondisi yang BENAR apabila memenuhi syarat yang diberikan dalam ekspresi lojik atau
relasi, sedangkan kondisi yang SALAH tidak memenuhi kreteria ini.

3.3. Peralatan
1. 1 set computer
2. Software turbo C

3.4. Langkah Kerja


1. Aktifkanlah editor Turbo C, kemudian lakukanlah konfigurasi directory.

Jobsheet 3: Percabangan Bersyarat Page 41


Pr Algoritma dan
Pemrograman

2. Buatlah program seperti berikut ini yang digunakan untuk menghitung jumlah belanja
yang harus dibayar, bila berlaku ketentuan: Discount 10% diberlakukan bagi pembeli
yang berbelanja Rp.100.000,- ke atas. Program disimpan dengan nama Con31.C.
Input program: Jumlah belanja
Output program: Discount dan Jumlah yang harus dibayar

Ketentuan tentang nama dan tipe variabel yang dugunakan adalah sebagai berikut:

Variabel untuk Nama variabel Tipe


Jumlah belanja jml_belanja float
Discount discount float
Jumlah yang jml_bayar float
harus dibayar

/* Program menghitung uang pembelian */


main()
{
float jml_belanja, discount=0,jml_bayar;

/* Input Jumlah Belanja */


printf("\nBesarnya Belanja : ");
scanf("%f",&jml_belanja);

/* Menghitung Discount */
if (jml_belanja>=100000)
discount=0.10*jml_belanja;

/* Menghitung Uang Pembayaran */


jml_bayar=jml_belanja-discount;

/* Cetak Discount dan Uang Pembayaran */


printf("\nDiscount : %10.2f",discount);
printf("\nUang Pembayaran : %10.2f",jml_bayar);
getche();
}

3. Buatlah program seperti dibawah ini dan simpan dengan nama Con32.C.

/* Struktur if yang terdiri dari sekumpulan perintah */


main()
{

Jobsheet 3: Percabangan Bersyarat Page 42


Pr Algoritma dan
Pemrograman

int usia;
clrscr();

printf("Berapakah usia Anda? : ");


scanf("%d",&usia);

if(usia>=40)
{
printf("\nWah, Anda sudah cukup tua");
printf("\nJangan makan makanan yang banyak mengandung kolesterol");
printf("\nTidak baik untuk kesehatan Anda");
}
getche();
}

4. Buatlah program seperti dibawah ini dan simpan dengan nama Con33.C.

/* struktur if else yang terdiri dari sebuah perintah */


main()
{
char jawab;

printf(“\nApakah anda ikut ujian hari ini ? ”);


jawab=getche();

if(jawab==’Y’ | | jawab==’Y’)
printf(“\nCepat datang ke auditorium untuk ujian”);
else
printf(“\nAnda tetap kuliah sesuai jadwal”);
getche();
}

5. Buatlah program seperti dibawah ini dan simpan dengan nama Con34.C. Kemudian
isikanlah angka 30 dan tuliskan hasilnya pada lembar kerja? coba pula untuk angka 60.

/* Penggunaan nested if */
main()
{
int umur;
clrscr();
printf(‘’\nBerpakah usia Anda ? : ‘’);
scanf(‘’%d’’,&umur);
if (umur >= 50)
printf(“Anda sudah cukup berumur “);
else if (umur>=21)
printf(‘’\nAnda sudah dewasa’’);

Jobsheet 3: Percabangan Bersyarat Page 43


Pr Algoritma dan
Pemrograman

else
printf(“\nAnda masih muda“);
getche();
}

6. Buatlah program seperti dibawah ini dan simpan dengan nama Con35.C. Saat program
dijalankan cobalah dengan mengisikan angka 1, 2, 3, 4, dan 5 secara bergantian saat ada
pertanyaan Pilihlah angka antara 1 sampai dengan 5 ? .

/* penggunaan switch */
main()
{
int bil;
printf(“\nPilihlah angka antara 1 sampai dengan 5 ? “);
scanf(“%d”,&bil);
switch(bil)
{ case 1 : printf(“\nanda mengetikkan satu”);

case 2 : printf(“\nanda mengetikkan dua”);


break;
case 3 : printf(“\nanda mengetikkan tiga”);
break;
case 4 : printf(“\nanda mengetikkan empat”);
break;
case 5 : printf(“\nanda mengetikkan lima”);
break;
default: printf(\nanda mengetikkan bilangan yang salah”);
}
getche();
}

7. Buatlah program seperti dibawah ini dan simpan dengan nama Con36.C. Saat program
dijalankan cobalah dengan mengisikan angka 1, 2, 3, 4, dan 5 secara bergantian saat ada
pertanyaan Pilihlah angka antara 1 sampai dengan 5 ? .
/* penggunaan switch */
main()
{
int bil;
printf(“\n Pilihlah angka antara 1 sampai dengan 5 ? “);
scanf(“%d”,&bil);
switch(bil)
{ case 1 : printf(“\nanda mengetikkan satu”);
case 2 : printf(“\nanda mengetikkan dua”);
case 3 : printf(“\nanda mengetikkan tiga”);

Jobsheet 3: Percabangan Bersyarat Page 44


Pr Algoritma dan
Pemrograman

case 4 : printf(“\nanda mengetikkan empat”);


case 5 : printf(“\nanda mengetikkan lima”);
default: printf(\nanda mengetikkan bilangan yang salah”);
}
getche();
}

8. Buatlah program seperti dibawah ini dan simpan dengan nama Con37.C. Saat program
dijalankan cobalah dengan menginputkan dengan salah satu bulan dan tahun dan
tuliskanlah hasilnya pada lembar kerja.

/* menentukan jumlah hari pada bulan tertentu */


main()
{
int bulan,tahun,hari;
clrscr();
/* input bulan dan tahun */
printf(“\n\ninputkan bulan dan tahun (xx-xxxx) “);
scanf(“%d-%d”, &bulan,& tahun);
if (bulan==1)
hari=31;
else if (bulan==2)
{ if (tahun % 4 == 0) /* tahun kabisat */
hari=29;
else /* tahun biasa */
hari=28;
}
else if (bulan==3)
hari=31;
else if (bulan==4)
hari=30;
else if (bulan==5)
hari=31;
else if (bulan==6)
hari=30;
else if (bulan==7)
hari=31;
else if (bulan==8)
hari=31;
else if (bulan==9)
hari=30;
else if (bulan==10)
hari=31;
else if (bulan==11)
hari=30;
else if (bulan==12)
hari=31;

Jobsheet 3: Percabangan Bersyarat Page 45


Pr Algoritma dan
Pemrograman

else
printf(“\n\n bulannya ngaco, bos!!!\n\n”);

/* cetak output */
printf(“\n\nbulan %2d tahun %4d memiliki %d hari “,bulan ,tahun,hari);
getche();
}

9. Buatlah program seperti dibawah ini dan simpan dengan nama Con38.C. Saat program
dijalankan cobalah dengan menginputkan dengan salah satu bulan dan tahun dan
tuliskanlah hasilnya pada lembar kerja.

/* menentukan jumlah hari pada bulan tertentu */


main()
{
int bulan,tahun,hari;
clrscr();
/* input bulan dan tahun */
printf(“\n\ninputkan bulan dan tahun (xx-xxxx) “);
scanf(“%d-%d”, &bulan,& tahun);
if (bulan<=12)
{
if (bulan<=7)
hari= bulan % 2 == 0 ? 30 : 31 ;
else
hari=bulan % 2 == 0 ? 31 : 30 ;
}
else
printf(“\n\n bulannya ngaco bos!!!\n\n”);
if (bulan==2)
hari= tahun % 4 == 0 ? 29 : 28 ;
/* cetak output */
printf(“\n\nbulan %2d tahun %4d memiliki %d hari “,bulan,tahun,hari);
getche();
}

3.5. Lembar Kerja

No Nama File Keluaran

Jobsheet 3: Percabangan Bersyarat Page 46


Pr Algoritma dan
Pemrograman

3.6. Pertanyaan dan Tugas


1. Buatlah flowchart dan program untuk menampilkan total pembelian yang harus
dibayarkan oleh seorang pelanggan apabila diketahui kondisi berikut ini:
Beli=harga barang * jumlah barang
Jika jumlah barang > 100 maka discount = beli*15%
Jika tidak discount = beli*5%
Dimana Total bayar = beli - discount
2. Buatlah program untuk membantu menyelesaikan persoalan pada sebuah developer
menjual dua tipe rumah,Tipe A dengan harga tanah 40000 dan harga bangunan
150000,sedamgkan Tipe B dijual dengan harga tanah 50000 dan harga bangunan 200000.
Sebagai input: luas tanah, luas bangunan, tipe
Sebagai output: harga tanah, harga bangunan, harga total
Ketentuan tentang variable-variabel yang digunakan:
Variable untuk nama variable tipe
Luas tanah luas_tanah float
Luas bangunan luas_bang float
Harga satuan tanah harga_sat_tnh float
Harga satuan bang. harga_sat_bang float
Harga tanah harga_tnh float
Harga bangunan harga_bang float
Harga total harga_total float
Tipe tipe char

3. Buatlah flowchart dan program untuk menyelesaikan permasalahan pada PT POLINOS


yang memberikan komisi kepada para salesmannya dengan ketentuan sebagai berikut:

Jobsheet 3: Percabangan Bersyarat Page 47


Pr Algoritma dan
Pemrograman

a. Bila seorang salesman dapat menjual menjual barang hingga Rp.200.000,- dia akan
mendapat uang jasa sebesar Rp.10.000,- ditambah dengan uang komisi sebesar 10%
dari pendapatan yan diperoleh hari itu.
b. Bila seorang salesman menjual barang diatas Rp.200.000,- hingga Rp.500.000,- maka
uang jasa yang diterima sebesar Rp.20.000,- ditambah dengan 15% dari pendapatan
yang dieroleh.
c. Bila seorang salesman menjual barang di atas Rp.500.000,- maka uang jasa yang
diperoleh sebesar Rp.30.000,- ditambah dengan 20% dari pendapatan yang didapat.

Sebagai input: Pendapatan


Sebagai output: Uang jasa, Komisi, Total uang

Ketentuan-ketentuan variable yang digunakan:

Variabel untuk nama variable tipe


Pendapatan p_dptan float
Uang jasa jasa float
Komisi komisi float
Total Uang total float

4. Buatlah program untuk mengkonversikan nilai angka menjadi nilai huruf akan dibuat
berdasarkan ketentuan sebagai berikut:
Nilai Angka Nilai huruf
<50 E
50-59 D
60-69 C
70-84 B
85-100 A

Sebagai input: Nilai Angka


Sebagai Output: Nilai Huruf
Ketentuan variable

Variable untuk nama variable tipe


Nilai Angka angka float
Nilai Huruf huruf char

5. Buatlah program dalam bentuk menu yang mampu menghitung:


a. Luas dan Keliling bujur sangkar
b. Luas dan keliling persegi panjang
c. Luas dan keliling lingkaran

Jobsheet 3: Percabangan Bersyarat Page 48


Pr Algoritma dan
Pemrograman

Jobsheet 3: Percabangan Bersyarat Page 49

Anda mungkin juga menyukai