SELEKSI KONDISI DAN MACAM-MACAM IF DALAM C ATAU C++ DAN CONTOHNYA

SELEKSI KONDISI DAN MACAM-MACAM IF DALAM C ATAU C++ DAN CONTOHNYA




A.   Seleksi kondisi

Suatu kondisi daat digunakan untuk memutuskan melakukan suatu aksi tertentu. Contoh pernyataan suatu kondisi :
 “ Jika  cuaca mendung maka saya menbawa payung”
Pada pernyataan diatas ‘cuaca mendung’ merupakan kondisi untuk melakukan suatu aksi tertentu yaitu ‘saya membawa payung’. Jika kondisi cuaca mendung terpenuhi atau bernilai benar maka aksi ‘saya membawa payung’ akan dilakukan. 
Sebuah program komputer dapat mengenali situasi  pemilihan kondisi. Pernyataan dalam contoh diatas daat dituliskan dalam struktur pemilihan sebagai berikut :
                    IF cuaca mendung THEN
                      Saya membawa payung
                    END IF


B.   Bentuk umum statement IF

Bentuk IF yang juga dikenal dengan istilah IF Statement, memiliki bentuk umum
sebagai berikut :

If kondisi then
Aksi-1
[else
Aksi-2]
End if

Kondisi adalah ekspresi boolean yang bernilai benar atau salah, bisa berupa:
Sebuah nilai boolean: true atau false
Sebuah variabel boolean
Sebuah pembandingan data
Dua pembandingan data atau lebih yang digabung
Aksi berupa satu statement beberapa statement, dimana tiap statementdapat berupa: 
Statement pengisian nilai seperti a ->5
Statement input data
Statement output data
Statement pemilihan (If Statement atau Case Statement)
Statement pengulangan (For, Repeat atau While Statement)
[else Aksi-2], tanda [ ] menyatakan opsional (boleh ada/tidak ada), dimana kalau
tidak ada, berarti setelah Aksi-1 langsung selesai. Dari bentuk umum yang telah
dijelaskan, maka variasi bentuk IF ini banyak dan tidak berhingga. Di antaranya yang
penting dapat disebutkan berikut:

- if tanpa else (satu pilihan, mengerjakan atau tidak)
- if dengan else (dua pilihan)
- if  bersarang dimana  dalam if ada  if lagi,  karena Statement dapat berupa  satu perintah pemilihan. Salah satu bentuk if bersarang adalah if untuk memilih salah satudari banyak pilihan.

Contoh-contoh variasi:

1. Satu pilihan (tanpa ELSE)

|If kondisi then
|Statement
|End if



2. Dua pilihan (dengan ELSE)

|If kondisi then
| Statement-1
|else
| Statement-2
|End if 


3. IF di dalam IF

Disebut dengan nested-if atau if bersarang dengan bentuk umum :
If(kondisi 1)
If(kondisi 2)
Statement 1; 
Else
Statement 2; 
Else
Statement 3; 

memeriksa kondisi-3. Apabila kondisi 3   bernilai   benar   maka   Statement-c yang dikerjakan dan apabila kondisi-3 bernilai salah maka Statement-d yang dikerjakan. (dari 4 statement yang ada hanya
salah satu yang dikerjakan.


4. Tiga pilihan atau lebih, dengan mengembangkan Statement setelah ELSE

|If kondisi-1 then
| Statement-1
|else
| |if kondisi-2 then
| | Statement-2
| |Else
| | |If kondisi-3 then
| | | Statement-3
| | |Else
| | | Statement-4
| | |End if
| |End if
|End if
|If kondisi-1 then
| Statement-1 
|Else if kondisi-2 then
| Statement-2
|Else if kondisi-3 then
| Statement-3
|Else
| Statement-4
|End if
| | | | Statement-d
| | | |End if
| | |End if
| |Else
| | Statement-e
| |End if
| |Statement-f
|Else
| |Statement-g
| |if kondisi-5 then
| | Statement-h
| |End if
| |if kondisi-6 then
| | Statement-i
| |End if
| |Statement-j
|End if



Terapan bentuk-bentuk IF

Sebuah masalah terkadang dapat diselesaikan dengan berbagai cara, seperti penggunaan “if tanpa else” dan “if dengan else”. Sebagai contoh dapat dilihat pada kasus berikut:
a.   Kasus : Menentukan apakah bilangan yang diinput positip atau negatipSolusi : ada beberapa cara berikut :

Ulasan dari beberapa solusi:
•    Solusi-1   dan   Solusi-2   adalah   solusi   yang   sama,   digunakan   kondisi berkebalikan sehingga posisi perintah tampilan ditukar.
•    Solusi-3  dan  Solusi-4  juga  sama,  keduanya  menggunakan  “if  tanpa  else”, dengan cara variabel Ket diinisialisasi (diberi nilai awal) dengan salah satu kemungkinan hasilnya, kemudian diubah bila memenuhi kondisi.
•    Solusi-5 dan Solusi-6 juga sama, pada solusi ini dibuat 2 buah “if tanpa else” secara terpisah. Dengan cara ini, berarti akan dilakukan pemeriksaan kondisi 2 kali (padahal sebenarnya cukup satu kali).
•    Solusi-7  dan  Solusi-8  keduanya  menggunakan  variabel  bertipe  boolean bernama positip untuk mencatat hasil pembandingan bil>=0. Penulisan “if (positip=true)” sama saja dengan menuliskan “if (positip)” cara yang terakhir lebih cepat waktu eksekusinya. 
Berikut beberapa kasus yang lain:

b.    Kasus  : Terbesar dari 3 bilangan



Ulasan dari beberapa solusi:
Solusi-1,Solusi-2 dan Solusi-3 mengguanakan 3 buah kondisi dan setiap hasil yang didapat akan melalui pemeriksaan 2 buah kodisi.
Solusi-4 menggunakan kondisi yang terdiri dari 2 pembandingan, dengan rata-rata melakukan pemeriksaan 2 kondisi (4 pembandingan) 
Solusi-5 dan Solusi-6 digunakan 2 buah if yang terpisah, dimana hasil sementara nilai terbesar dicatat di tempat baru (Max), cara ini lebih praktis terutama kalau dikembangkan untuk mencari terbesar dari banyak bilangan.

c.   Kasus  : Pembayaran air minum PDAM
PDAM menerapkan pembayaran air minum perumahan dengan cara perhitungan
sebagai berikut :
- Tarif per m3 untuk 10 m3 pertama (1-10) adalah 2.000
- Tarif per m3 untuk 10 m3 kedua (11-20) adalah 3.000
- Tarif per m3 untuk 10 m3 ketiga (21-30) adalah 4.000
- Tarif per m3 untuk 10 m3 selanjutnya (31 ke atas) adalah 5.000
- Pemakaian air dihitung minimal 10 m3 (kurang dari 10 m3 dianggap 10 m3)
- Biaya administrasi bulanan sebesar 10.000
Bagaimana membuat algoritma untuk menghitung biaya tersebut?
Contoh kasus
Penggunaan air 5 m3 dengan biaya 10 x 2.000 + 10.000 = 30.000
Penggunaan air 15 m3 dengan biaya 10 x 2.000 + 5 x 3.000 + 10.000 = 45.000
Penggunaan air 75 m3 dengan biaya 10 x 2.000 + 10 x 3.000 + 10 x 4.000 + 45 x
5.000 +10.000 = 325.000
Solusi :
Pemakaian air dibagi menjadi 4 area pemakaian (misal area a,b,c,d), baru dihitung
total biaya 





Bentuk Umum CASE dan variasinya

Sebenarnya  semua  bentuk  pemilihan  dapat  ditulis  dengan  IF,  namun  penulisan
dengan IF untuk banyak pilihan terasa kurang praktis. Bentuk CASE adalah cara lain
penulisan bentuk pemilihan yang lebih sederhana, namun bentuk ini hanya dapat
menggantikan IF apabila memenuhi syarat:
- kondisi berupa pembandingan kesamaan (dengan tanda “=” )
- nilai yang dibandingkan bertipe ordinal (integer,char dan boolean)
Bentuk CASE yang juga dikenal dengan istilah CASE Statement, memiliki bentuk
umum sebagai berikut :
Case ekspresi
Nilai-1: Aksi-1
Nilai-2: Aksi-2
...Nilai-N: Aksi-N
[Otherwise : Aksi-X]
End Case

Ekspresi bertipe ordinal, berupa:
-Sebuah nilai ordinal: boolean, integer, char (bukan string atau real)
-Sebuah variabel bertipe ordinal
-Operasi data (nilai atau variabel) yang menghasilkan sebuah nilai ordinal
-Nilai harus berupa nilai ordinal (tidak boleh variabel)
-Aksi  berupa  satu  statement  beberapa  statement,  dimana  tiap  statement  dapat
berupa: -Statement pengisian nilai seperti a -> 5, Statement input data, Statement 
output  data,Statement  pemilihan  (If  Statement  atau  Case  Statement),Statement pengulangan (For, Repeat atau While Statement)


[otherwise: Aksi-X], tanda [ ] menyatakan opsional (boleh ada/tidak ada), dimana kalau tidak ada,  berarti setelah  Aksi-1 langsung selesai.  Fungsi  Otherwise  sama dengan ELSE pada IF Statement
Dari bentuk umum yang telah dijelaskan, maka variasi bentuk CASE ini banyak dan tidak berhingga. Di antaranya yang penting dapat disebutkan berikut:
- Case tanpa otherwise
- Case dengan otherwise
- Case dengan Aksi yang sama untuk beberapa Nilai
- Case bersarang dimana dalam case ada case lagi, atau Statement lain
Contoh-contoh variasi:
1. Case tanpa otherwise
Case ekspresi
Nilai-1: Statement-1
Nilai-2: Statement -2
...Nilai-N: Statement -N
End Case

2. Case dengan otherwise
Case ekspresi
Nilai-1: Statement -1
Nilai-2: Statement -2
...Nilai-N: Statement -N
[Otherwise : Aksi-X]
End Case

3. Case dengan Aksi yang sama untuk beberapa Nilai
Case ekspresi
Nilai-1,Nilai-2,Nilai-3: Statement -1
Nilai-4,Nilai-5,Nilai-6: Statement -2
Nilai-7..Nilai-10: Statement -3
...Nilai-N: Statement -N
[Otherwise : Statement -X] 
End Case

4. Case bersarang, contohnya :
Case ekspresi-1
Nilai-1: Case ekspresi-2
Nilai-a: Statement -1
Nilai-b: Statement -2
End Case
Nilai-2: if kondisi then
Statement-3
Else
Statement-4
End if
Nilai-3:
...Nilai-N: Statement -N
End Case

Konversi Struktur IF dan CASE ke Bahasa C
Berikut ini diberikan pedoman konversi dari algoritma ke dalam bahasa C untuk
struktur IF dan CASE: 

Related Posts

Previous
Next Post »