Kamis, 13 Maret 2014

IF Statement

Tugas ( 3.5 - 3.6 )

if Selection Statement

Struktur selection digunakan untuk memberikan pilihan tindakan yang mesti dilakukan. Sebagai contoh pseudokode berikut:
                    If student’s grade is greater than or equal to 60
                                   Print “Passed”

 dari pseudokode diatas, jika suatu kondisi benar ( student grade is greater than or equal 60 ) maka akan ditampilkan "passed" kemudian diteruskan ke tahap berikutnya. sedangkan jika kondisi salah tidak akan ditampilkan "passed", dan program akan langsung jalan pada tahap berikutnya. Penulisan if pada C adalah seperti ini :
Pada flowchart sendiri statement "if" akan disimbolkan dengan gambar diamond yang bisa berisikan sebuah ekspresi, ataupun kondisi ( salah / benar ). Simbol ini juga disebut dengan decision / keputusan. Terdapat dua diagram / garis alir yang keluar pada simbol decision dimana dua garis tersebut mempresentasikan kondisi salah dan benar. Garis tersebut juga akan menunjukan tindakan yang harus dilakukan saat kondisi benar ataupun kondisi salah.
if...else Statement


If bekerja hanya ketika kondisi yang diberikan bernilai 'true', sedangkan ketika kondisi yang diberika bernilai 'false', perintah dalam if akan dilewati. Berbeda dengan if, if...else dapat memberikan instruksi yang berbeda pada saat kondisi 'true' ataupun saat kondisi 'false'.

Berikut adalah contoh if...else dalam program C dan gambar flow-chartnya.



C menyediakan 'Conditional Operator' (?:) yang memiliki fungsi yang mirip dengan if...else. Conditional operator dalam C hanya terdiri dari 3 operand yang membentuk 'conditional expression'. Operand pertama adalah kondisi yang berikan, operand kedua adalah instruksi yang dijalankan ketika kondisi bernilai true, sedangkan operand ketiga berisi instruksi ketika kondisi bernilai false.

Berikut contoh dalam pernyataan printf:

printf( "%s\n", grade >= 60 ? "Passed" : "Failed" );

printf yang mengevaluasi nilai string akan memunculkan "Passed" bila kondisi grade>= 60 bernilai true dan akan memunculkan "Failed" bila kondisi grade>= 60 bernilai false.
perintah printf juga bisa digunakan sebagai instruksi yang akan dieksekusi dalam operand kedua dan ketiga. Contoh conditional expression:

grade >= 60 ? printf( "Passed\n" ) : printf( "Failed\n" );

Dalam beberapa situasi, conditional operator dapat digunakan sebagai pengganti if...else. Namun ada situasi dimana conditional operator tidak bisa menggantikan peran if...else. Misalnya dalam 'multiple cases', dimana 1 kondisi saja tidak cukup untuk memenuhi kebutuhan program.
 Contoh, pemberian peringkat dalam nilai ujian seorang siswa. if...else dapat digunakan berkali-kali dalam program C berikut:



Ketika kondisi if bernilai false, program akan menjalankan perintah dalam else yang berisikan kondisi lain dalam sebuah if...else yang baru. Ketika salah satu dari kondisi if tersebut bernilai true, maka perintah yang diberikan dalam else akan diabaikan sehingga proses if...else selanjutnya yang ada dalam else tersebut juga akan diabaikan.
Sebagian besar programmer C lebih sering menggunakan penulisan 'else if' dalam kasus-kasus seperti ini:




pernyataan if dalam C hanya menerima 1 instruksi saja dalam setiap nilai kondisi. Untuk menambah jumlah instruksi dapat digunakan tanda kurung kurawal ({ dan}). Pernyataan yang terdapat di antara kedua pasang kurung kurawal disebut 'compound statement' atau 'block'.


Pada contoh program di atas, ketika kondisi if bernilai true maka akan memunculkan output:

Passed.

Dan ketika kondisi if bernilai false, maka 2 perintah printf dalam else akan dijalankan sehingga menghasilkan output:

Failed.
You must take this course again.

Namun bila tanda kurung kurawal dalam program tersebut ditiadakan, maka else hanya akan menerima 1 perintah saja, yaitu printf( "Failed.\n" ); sedangkan perintah printf( "You must take this course again.\n); akan berada di luar if...else.Bila hal itu terjadi, maka output yang akan dihasilkan adalah:

Passed.
You must take this course again.

(Pada saat kondisi true)

Failed.
You must take this course again.

(Pada saat kondisi false)

Tidak ada komentar:

Posting Komentar