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.
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
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
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
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 ’}’.
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;
}
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
{
…..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.
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
switch. Bila pertanyaanya ini tidak ada, maka program akan diteruskan ke cabang-cabang di
bawahnya.
Dimana ‘L’ dan ‘G’ masing-masing menyatakan ‘lulus’ dan ‘gugur’. Penggalan program di
atas ini dapat disederhanakan menjadi:
status = nilai>60 ? ‘L’ : ‘G’;
TRUE
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
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:
/* Menghitung Discount */
if (jml_belanja>=100000)
discount=0.10*jml_belanja;
3. Buatlah program seperti dibawah ini dan simpan dengan nama Con32.C.
int usia;
clrscr();
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.
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’’);
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”);
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”);
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.
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.
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.
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