Statement if-else
6.6 Statement if-else
Statement if yang selama ini kita buat tidak melaksanakan apa-apa bila [kondisi] nilainya false. Kita dapat menggunakan gabungan else untuk menentukan statement yang harus dilaksanakan bila [kondisi] nilainya false. Perhatikan contoh berikut:
[program lengkap] / / Program 6. 6 - if dan else
using Syst em ;
class I fElse {
st at ic v oid Main( ) {
int sebuahAngk a; Console. Wr it e( “ Masuk k an sebuah angk a: ” ) ; sebuahAngk a = int . Par se( Console. ReadLine( ) ) ; if( sebuahAngka % 2 = = 0) / / apak ah sebuahAngk a habis dibagi 2?
Console. Wr it eLine( “ Angk a genap! ” ) ; / / jik a y a ini dij alank an else Console. Wr it eLine( “ Angk a ganj il! ” ) ; / / j ik a t idak ini dij alank an
} } [/program lengkap]
Ini contoh output dari program tersebut:
[console ] Masuk k an sebuah angk a: 3 1 Angk a ganj il! [/console]
Blok juga dapat digunakan dalam statement if-else.
6.6.1 if-else di Dalam if
Jika ada else, maka pasangan if nya adalah if bebas yang terdekat dengannya. Yang dimaksud bebas adalah if tersebut belum memiliki pasangan else. Perhatikan contoh berikut:
[kutipan program] if( penghasilanOr t u < sy ar at 1) / / if per t am a
if( nilai > syar at 2) / / if ke dua Console. Wr it eLine( “ Anda m endapat k an beasisw a! ” ) ; else
Con sole. Wr it eLine( “ Beasisw a ini hany a unt uk k eluar ga y ang t ak m am pu. . . ” ) ;
[/kutipan program]
Jika maksud pemrogram adalah memasangkan else dengan if pertama, maka programnya salah. else yang ada di program tersebut berpasangan dengan if ke dua sebab itulah if bebas yang terdekat dengannya. Blok dapat digunakan untuk mengubahnya:
[kutipan program] if( penghasilanOr t u < sy ar at 1) / / if pert am a {
if( nilai > syar at 2) / / if ke dua Console. Wr it eLine( “ Anda m endapat k an beasisw a! ” ) ; } else / / k ali ini ber pasangan dengan if per t am a
Con sole. Wr it eLine( “ Beasisw a ini hany a unt uk k eluar ga y ang t ak m am pu. . . ” ) ;
[/kutipan program]
Sayangnya tidak akan ada pesan yang ditampilkan bila nilai anak tidak memenuhi syarat. Program dapat kita sempurnakan:
[kutipan program] if( penghasilanOr t u < sy ar at 1) {
if( nilai > syar at 2) / / if ke dua
Console. Wr it eLine( “ Anda m endapat k an beasisw a! ” ) ; else / / ber pasangan dengan if k e dua Console. Wr it eLine( “ Maaf, nilai anda t idak cuk up. . . ” ) ; } else
Con sole. Wr it eLine( “ Beasisw a ini hany a unt uk k eluar ga y ang t ak m am pu. . . ” ) ;
[/kutipan program]
Dalam program di atas penggunaan blok adalah opsional sebab if ke dua sudah mendapat pasangan yang seharusnya.
6.6.2 if atau if-else di dalam if-else
Statement if atau if-else dapat saja mengikuti else. Perhatikan contoh berikut:
[kutipan program] if( nom or = = 100232)
Console.Wr it eLine( “ Anda m endapat m obil! ” ) ; else if( nom or = = 302) Console. Wr it eLine( “ Anda m endapat m ot or ! ” ) ; else if( nom or = = 994530243) Console. Wr it eLine( “ Anda m endapat r adio! ” ) else Console. Wr it eLine( “ Anda belum ber unt ung. . . ” )
[/kutipan program]
Jika kita melakukan banyak perbandingan, indentasi akan semakin ke kanan dan program menjadi cukup sulit dibaca. Inilah bentuk indentasi yang sering dipakai jika if langsung mengikuti else:
[kutipan program] if( nom or = = 100232)
Console.Wr it eLine( “ Anda m endapat m obil! ” ) ; else if( nom or = = 302) Console. Wr it eLine( “ Anda m endapat m ot or ! ” ) ; else if( nom or = = 994530243) Console. Wr it eLine( “ Anda m endapat r adio! ” ) else Console. Wr it eLine( “ Anda belum ber unt ung. . . ” )
[/kutipan program]
[tanya jawab] Q: Misalnya kondisi1 dan kondisi2 adalah bool, apakah beda antara:
[kutipan program] if( k ondisi1)
/ * st at em ent 1 * / ; else if( k ondisi2) / * st at em ent 2 * / ; / * st at em en t 3 * / [/kutipan program]
...dengan:
[kutipan program] if( k ondisi1)
/ * st at em ent 1 * / ; if( k ondisi2) / / t idak m enggunak an else / * st at em ent 2 * / ; / * st at em en t 3 * / [/kutipan program]
A: Di bentuk pertama, bila kondisi1 benar maka setelah statement 1 dijalankan alur program akan melompat ke statement 3. kondisi2 dicek hanya bila kondisi1 salah. Di bentuk kedua, kondisi1 dan kondisi2 sama-sama dicek kebenarannya. [/tanya jawab]
[latihan mini] • Apakah type yang harus dipakai sebagai pengontrol statement if? • Jika terdapat else, manakah if yang akan menjadi pasangannya?
• Apakah yang salah dari kutipan program berikut?
[kutipan program] if( x > y) {
int z = 100; } else {
int z = 50; } Console. Wr it eLine( z) ; [/kutipan program]
• bool. • Yang akan menjadi pasangannya adalah if terdekat yang belum mempunyai pasangan. • Console.WriteLine() tidak dapat menggunakan z sebagai argument sebab z hanya hidup/dikenal di
blok-blok yang bersangkutan.
[/latihan mini]