2. STRUKTUR KENDALI
PEMILIHAN
Suatu Struktur dasar algoritma yang memiliki satu atau
lebih kondisi tertentu dimana sebuah instruksi dilaksanakan
jika sebuah kondisi/persyaratan terpenuhi. Ada beberapa
bentuk struktur dasar pemilihan ini :
Sebuah pernyataan yang dapat dipakai muntuk mengambil
keputusan berdasarkan suatu kondisi. Bentuk pernyataan
ini ada dua macam :
- if dan
- if else
3. PEMILIHAN (SELECTION)
if (kondisi) pernyataan;
Pernyataan dilaksanakan jika dan
hanya jika kondisi yang diinginkan
terpenuhi, jika tidak program tidak
memberikan hasil apa-apa.
Contoh ptongan program :
If(nilai >= 56)
puts(“Lulus”);
kondisi
pernyataan
truefalse
4. PEMILIHAN (SELECTION)
if(kondisi) pernyataan1; else pernyataan2;
•Pernyataan1 dilaksanakan jika dan hanya jika
kondisi yang diinginkan terpenuhi, jika tidak,
lakukan pernyataan2.
•Jika Anda tidak mempergunakan
pernyataan else program tidak akan error,
namun jika anda mempergunakan pernyataan
else tanpa didahului pernyataan if, maka
program akan error.
•Jika pernyataan1 atau pernyataan2 hanya
terdiri dari satu baris, maka tanda { } tidak
diperlukan, namun jika lebih maka
diperlukan.
•Selain dari if … else, juga dikenal
bentuk if … else if.
kondisi
pernyataan1
truefalse
pernyataan2
5. PEMILIHAN (SELECTION)
Instruksi switch
Pernyataan swich adalah pernyataan yang digunakan untuk menjalankan
salah satu pernyataan dari beberapa kemungkinan pernyataan,
berdasarkan nilai dari sebuah ungkapan dan nilai penyeleksian.
Pernyataan if…else jamak dapat dibangun dengan pernyataan switch.
Switch (ekspresi) {
case konstanta1 : pernyataan_1;
[break;]
case konstanta2 : pernyataan_2;
[break;]
…
case konstantan : pernyataan_n;
[break;]
[default] : pernyataan_x
}
Ekspresi dievaluasi, jika hasilnya konstanta1,
maka pernyataan_1 dikerjakan, jika hasilnya
konstanta2, maka pernyataan_2 dikerjakan.
Jika hasilnya bukan merupakan semua
konstanta1.. n, maka pernyataan_x
dikerjakan.
Klausa [default] dan [break] bersifat oprtional
6. PEMILIHAN (SELECTION)
//contoh : Switch : 1 = senin, 2= selasa dst.
#include <stdio.h>
#include <stdlib.h>
int main() {
int angka;
printf(“input Angka 1 - 7: “);scanf(“%d”,&angka);
switch(angka) {
case 1 : puts(“senin”);break;
case 2 : puts(“selasa”);break;
case 3 : puts(“rabu”);break;
case 4 : puts(“kamis”);break;
case 5 : puts(“jumat”);break;
case 6 : puts(“sabtu”);break;
case 7 : puts(“minggu”); // PERLU BREAK ATAU TIDAK?
}
system(“PAUSE”);
}
7. PEMILIHAN (SELECTION)
//contoh : Switch
#include <stdio.h>
#include <stdlib.h>
int main() {
int nilai;
printf(“input nilai : “);scanf(“%d”,&nilai);
switch(nilai/10) {
case 10 :
case 9 :
case 8 : puts(“hebat”);break;
case 7 :
case 6 : puts(“cukup”);break;
case 5 : puts(“buruk”);break;
default: puts(“Anda harus mengulang !”);
}
system(“PAUSE”);
}
8. break dan continue
break digunakan untuk menghentikan sebuah loop, walaupun
sebenarnya kondisi dalam loop tersebut masih mungkin bernilai
true.
Selain untuk statement looping juga bisa digunakan untuk switch
Contoh :
#include <stdio.h>
#include <stdlib.h>
int main() {
int a;
for(a=1;a < 5;a ++) {
printf(“a = %dn”,a);
if(a==3) break;
}
system(“PAUSE”);
}
9. break dan continue
continue digunakan untuk melanjutkan loop ke nilai
counter berikutnya dengan mengabaikan semua
statement yang ada setelah statement continue tersebut
Contoh :
#include <stdio.h>
#include <stdlib.h>
int main() {
int i;
for(i=0;i<=100;i++)
if(i % 2 == 0) continue;
printf(“%3d”,i);
}
11. IF (1)
Masukkan Nilai Akhir
Contoh: Nilai Akhir ? 90
Cari Grade berdasarkan aturan sbb:
Jika Nilai Akhir lebih besar dari 79.99 dan lebih kecil sama
dengan 100 maka Grade A
Jika Nilai Akhir lebih besar dari 67.99 dan lebih kecil sama
dengan 79.99 maka Grade B
Jika Nilai Akhir lebih besar dari 55.99 dan lebih kecil sama
dengan 67.99 maka Grade C
Jika Nilai Akhir lebih besar dari 49.99 dan lebih kecil sama
dengan 55.99 maka Grade D
Jika Nilai Akhir lebih besar sama dengan 0 dan lebih kecil sama
dengan 44.99 maka Grade E
Cetak Grade:
Contoh: Grade = A
12. IF (2)
GUNAKAN STATEMEN IF SAJA
Input : Nilai Grade Algoritma ? (isinya adalah 1 huruf ‘A’ – ‘E’);
Proses:
jika Grade = ‘A’ atau ‘B’ atau ‘C’ maka dinyatakan Lulus Mata
kuliah algoritma
jika Grade = ‘D’ atau ‘E’ atau ‘F’ maka Mata Kuliah Algoritma
Harus diulang
Selain itu berikan warning “ Salah isi Grade “ (Misalkan user
menginput grade ‘R’.
Output : “Lulus Mata Kuliah Algoritma” ATAU “Mata Kuliah
Algoritma harus diulang” atau “SALAH ISI GRADE”
13. IF (3)
Tulis program untuk menampilkan bilangan bulat
terbesar di antara ketiga bilangan bulat yang berbeda.
GUNAKAN IF
•Input: 3 buah bilangan
Misalkan Input 3 bilangan: 15 90 20
• Proses: Cari Bilangan terbesar diantara 3 bilangan
yang diinput
•Output: Bilangan Terbesar : (misalkan 90)
14. IF ELSE (1)
Input: IPK ? (Contoh 1.75)
SKS? (contoh 20)
Proses: Seorang mahasiswa kemungkinan
akan jadi calon sarjana jika Jika IPK lebih
besar dari 2.00 dan SKS yang sudah
ditempuh MINIMAL 60 SKS.
Selain itu mahasiswa tersebut Calon Drop
Out.
Output: Calon Sarjana atau Calon Drop Out.
15. IF ELSE (2)
GUNAKAN STATEMEN IF-ELSE (untuk kondisi ke 2 dan 3)
Input : Nilai Grade Algoritma ? (isinya adalah 1 huruf ‘A’ – ‘E’);
Proses:
1. jika Grade = ‘A’ atau ‘B’ atau ‘C’ maka dinyatakan Lulus Mata
kuliah algoritma
2. jika Grade = ‘D’ atau ‘E’ atau ‘F’ maka Mata Kuliah Algoritma
Harus diulang
3. Selain itu berikan warning “ Salah isi Grade “ (Misalkan user
menginput grade ‘R’.
Output : “Lulus Mata Kuliah Algoritma” ATAU “Mata Kuliah
Algoritma harus diulang” atau “SALAH ISI GRADE”
16. IF ELSE (4)
Tulis program untuk menampilkan bilangan bulat
terbesar di antara ketiga bilangan bulat yang berbeda.
GUNAKAN IF ELSE
•Input: 3 buah bilangan
Misalkan Input 3 bilangan: 15 90 20
• Proses: Cari Bilangan terbesar diantara 3 bilangan
yang diinput
•Output: Bilangan Terbesar : (misalkan 90)
17. IF ELSE (5)
Terdapat tiga bilangan bulat (a, b, c dengan a <= b dan b
<= c) yang menyatakan panjang tiga ruas garis. Tulis
program untuk menguji apakah ketiga ruas garis ini dapat
membentuk sebuah segitiga.
a b
c
??
RUMUS ?
18. Switch – Break – Continue (1)
Input : Kode Pos (5 digit) , Contoh 15180
Proses: jika 2 digit pertama dari Kode Pos adalah:
10 maka wilayah tersebut : Jakarta Pusat
11 maka wilayah tersebut : Jakarta Barat
12 maka wilayah tersebut : Jakarta Selatan
13 maka wilayah tersebut : Jakarta Timur
14 maka wilayah tersebut : Jakarta Utara
15 maka wilayah tersebut : Tangerang
16 maka wilayah tersebut : Bogor
17 maka wilayah tersebut : Bekasi
Selain itu wilayah tersebut : diluar Jabotake;
Output : Contoh : Wilayah = Tangerang.
19. Switch – Break – Continue (2)
Input : Nilai Grade Algoritma ? (isinya adalah 1 huruf ‘A’ – ‘E’);
Proses:
jika Grade = ‘A’ atau ‘B’ atau ‘C’ maka dinyatakan Lulus Mata
kuliah algoritma
jika Grade = ‘D’ atau ‘E’ atau ‘F’ maka Mata Kuliah Algoritma
Harus diulang
Selain itu berikan warning “ Salah isi Grade “ (Misalkan user
menginput grade ‘R’.
Output : “Lulus Mata Kuliah Algoritma” ATAU “Mata Kuliah
Algoritma harus diulang” atau “SALAH ISI GRADE”
20. Switch – Nested (3)
Program Menghitung Uang Sekolah
Input:
A) Program: 1 Jika kelas Internasional, 2 Jika Kelas Nasional
B) Kelas: 1. Preschool, 2. Kindergarten
Program / Kelas Preschool Kindergarten
1 Rp. 500.000 Rp. 750.000
2 Rp. 600.000 Rp. 850.000
Output : Uang Sekolah : Rp. 999.999