English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified
by : BTF

rss

Kamis, 11 Desember 2008

STATEMEN KENDALI

IF THEN ELSE
Dengan IF...THEN...ELSE, pemrograman dapat mengatur tindakan yang akan dilakukan kalau kondisi bernilai benar ataupun tindakan yang akan dijalankan kalau kondisi salah.

Bentuk umum IF...THEN...ELSE dibagi menjadi 2 kelompok :
1.IF...THEN...ELSE Satu baris
2.IF...THEN...ELSE Banyak baris

IF...THEN...ELSE Satu Baris

Di dalam program jika kita menjumpai dua kemungkinan atau pilihan pencabangan, kita bisa menggunakan IF...THEN...ELSE satu baris.

Bentuk Umum :
IF kondisi THEN { statement1 │nobar1 │GOTO label1 }
[ ELSE { statement2 │ nobar2 │ GOTO label2 } ]

dengan parameter-parameternya :
Kondisi : syarat yang akan ditest
statement1,
statement2 : statement yang akan dikerjakan
nobar1, nobar2 : nomor baris yang dituju
label1, label2 : label baris yang dituju

Parameter :
kondisi atau syarat yang ditest dinyatakan dengan operator relasi atau operator pembanding (<, <=, =, >=, >, < >).
Nobar1, dan nobar2 menunjukkan label baris yang berupa angka
Label1, dan label2 menunjukkan label baris yang berupa label alphanumeris (diawali dengan huruf)

Bentuk umum diatas bisa dijelaskan sebagai berikut :
Jika kondisi bernilai benar, maka salah satu dari tiga pilihan dibelakang statement THEN akan dikerjakan.
Jika kondisi salah, maka salah satu dari tiga pilihan dibelakang statement ELSE akan dikejakan.
Jika statement ELSE tidak ditulis maka proses eksekusi langsung akan melompat ke baris dibawah statement IF.

Bagan alir IF satu baris

a b
Gambar a. Tanpa statement ELSE
b. Dengan statement ELSE

Contoh Program :
1.IF i >= kali THEN 20
2.IF ( i <= 100 ) AND ( i >= 80 ) THEN PRINT i
3.IF ( i >= 100 ) OR ( i <= 80 ) THEN PRINT i 4.IF i >= kali THEN GOTO 20 ELSE kali = kali + 1
5.CLS
INPUT “Total Pembelian :” , TotalBeli
Korting = 0
IF TotalBeli >= 100000 THEN Korting = .1 * TotalBeli ElSE Korting = 0
PRINT “Korting = “ ; Korting
END


Dalam Penulisan statement IF...THEN...ELSE satu baris, semua parameter harus ditulis menjadi satu baris statement.

IF...THEN...ELSE Banyak baris

Di dalam program jika kita menjumpai lebih dari dua kemungkinan atau lebih pilihan pencabangan, kita bisa menggunakan IF...THEN...ELSE banyak baris.

4 aturan penggunaan blok IF...THEN...ELSE yaitu :
1. Di belakang statement THEN tidak boleh ada statement apapun selain baris komentar. Jika anda menuliskan sesuatu statement, kompiler akan menganggapnya sebagai statement IF...THEN...ELSE satu baris.
2. Kata ELSE, ELSEIF dan END IF hanya boleh diawali dengan nomor baris atau label baris. Jika tidak, maka kata ini harus merupakan kata awal dari baris tersebut.
3. Blok IF harus terletak sebagai statement pertama dalam suatu baris.
4. Blok harus diakhiri dengan END IF.


Bentuk Umum :
IF kondisi1 THEN
Statement1
[ ELSEIF kondisi2 THEN
[ statement2 ] ]
.
.
[ ELSE
[ statementn ] ]
END IF

dengan parameter-parameternya :
kondisi1,
kondisi2, … : syarat yang harus ditest
statement1,
statement2, … : blok statement yang akan dikerjakan sesuai dengan kondisi yang dipenuhi.

Bentuk umum diatas bisa dijelaskan sebagai berikut :
Jika kondisi1 bernilai benar, blok statement1 akan dikerjakan diteruskan ke statement IF.
Jika kondisi1 bernilai salah, kompiler akan mentest kondisi2.Jika bernilai benar, maka blok statement2 akan dikerjakan, diteruskan ke statement END IF. Dst

Contoh :
CLS
PRINT “1. Nasi Soto Ayam”
PRINT “2. Nasi Rames”
INPUT “Pilihan (1..2) : “, Pil%
IF PIL% = 1 THEN
PRINT “Nasi Soto Ayam”
ELSEIF PIL% = 2 THEN
PRINT “Nasi Rames”
ELSE
PRINT “Pilihan Anda tidak dimengerti”
END IF
END

SELECT CASE
Statement SELECT CASE dapat digunakan untuk memilih satu diantara sejumlah alternatif.

Perbedaan SELECT CASE dan IF…THEN…ELSE :

• SELECT CASE kondisi yang ditest hanya sebuah, dan proses eksekusi akan diteruskan ke bagian tertentu dari suatu program berdasarkan nilai kondisi yang ditest.
• IF…THEN…ELSE banyak baris dapat mentest lebih dari sebuah kondisi yang satu sama lain saling berbeda.

Bentuk Umum :
SELECT CASE ungkapan
CASE nilai1
[ statement1 ]
[ CASE nilai2
[ statement2 ] ]
.
.
[ CASE ELSE
[ statementn ] ]
END SELECT

dengan parameter-parameternya :
ungkapan : sembarang ungkapan (numeris atau untai)
nilai1,
nilai2, … : nilai-nilai dari parameter ungkapan
statement1,
statement2, …: statement-statement yang akan dikerjakan.
Contoh :

CLS
PRINT “1. Nasi Soto Ayam”
PRINT “2. Nasi Rames”
PRINT “3. Nasi Gudeg”
INPUT “Pilihan (1..3) : “, Pil%
SELECT CASE Pil%
CASE 1
PRINT “Nasi Soto Ayam”
CASE 2
PRINT “Nasi Rames”
CASE 3
PRINT “Nasi Gudeg”
CASE ELSE
PRINT “Pilihan Anda tidak dimengerti”
END SELECT
END

Untuk menentukan ungkapan yang mempunyai jangkauan tertentu bisa digunakan bentuk umum sebagai berikut :
1.CASE ungkapan TO ungkapan
Jika menggunakan kata baku TO tulislah ungkapan yang mempunyai nilai yang paling kecil terlebih dahulu.

Contoh :
CLS
PRINT “Ketik sebuah karakter” ;
Kar$ = INPUT(1)
PRINT kar$
SELECT CASE Kar$
CASE “A” TO “Z”
PRINT “Merupakan huruf kapital”
CASE “a” TO “z”
PRINT “Merupakan huruf kecil”
CASE “0” TO “9”
PRINT “Merupakan digit”
CASE “ “
PRINT “Spasi yang Anda tekan”
CASE “!”, “@”, “#”, “$”, “%”, “^”, “&”, “*”
PRINT “Anda menekan suatu tombol”
CASE ELSE
PRINT “Bukan angka, huruf, spasi ataupun”
PRINT “Simbol !, @, #, $, %, ^, &, *”
END SELECT
END



2.CASE IS oprelasi ungkapan
Oprelasi : sembarang ungkapan relasi ( <, <=, =, >=, >, <>)

Contoh :
CLS
INPUT “Tahun : “, Tahun%
SELECT CASE Tahun%
CASE IS < is =" 1945"> 1945
PRINT “Masa pasca kemerdekaan”
END SELECT
END


LATIHAN

1.CLS
PRINT “Ketik Pilihan “
INPUT “Pilihan (1..4) : “ , Pil%
IF (Pil% >=1) AND (Pil% <= 4) THEN PRINT “Pilihan Benar” ELSE PRINT “Pilihan Salah” END IF END Output : Ketik Pilihan Pilihan (1..4) : 1 Pilihan Benar 2. ULANGLagi : CLS INPUT “Nama mahasiswa : “ ; nama$ INPUT “Nomor induk : “ ; nomor$ INPUT “Nilai total : “ ; nilAngka ‘ * Konversi * IF nilAngka > 90 THEN
Nilai Huruf$ = “ A ”
ELSEIF (nilAngka <= 90 ) AND (nilAngka >= 75 ) THEN
Nilai Huruf$ = “ B “
ELSEIF (nilAngka <= 74 ) AND (nilAngka >= 65 ) THEN
Nilai Huruf$ = “ C “
ELSEIF (nilAngka <= 64 ) AND (nilAngka >= 55 ) THEN
Nilai Huruf$ = “ D “
ELSE
Nilai Huruf$ = “ E “
END IF
‘ * Cetak hasil *
PRINT
PRINT “Nama : ” ; nama$ ; spc (5) ;
PRINT “No. Induk : “ ; nilaiAngka
PRINT :Nilai huruf : “ ; nilaiHuruf$
PRINT
‘ * Akan mencoba lagi ? *
INPUT “Akan mencoba lagi ? Y/T : “ cobaLagi$
IF UCASE$ (cobaLagi$) = “Y” THEN GOTO ULANGLagi
PRINT
PRINT “Selesai…!”
END

Output :
Nama mahasiswa : OKKY
Nomor induk : 10-28-1988
Nilai Total : 92

Nama : OKKY No. Induk : 10-28-1988
Nilai angka : 92
Nilai huruf : A

Akan mencoba lagi ? Y/T : T

Selesai…!

3. ULANGLagi :
CLS
INPUT “Nama mahasiswa : “ ; nama$
INPUT “Nomor induk : “ ; nomor$
INPUT “Nilai total : “ ; nilAngka
‘ * Konversi *
SELECT CASE nilaiAngka
CASE IS > 90
Nilai Huruf$ = “ A ”
CASE 75 TO 90
Nilai Huruf$ = “ B “
CASE 65 TO 74
Nilai Huruf$ = “ C “
CASE 55 TO 64
Nilai Huruf$ = “ D “
CASE ELSE
Nilai Huruf$ = “ E “
END SELECT
‘ * Cetak hasil *
PRINT
PRINT “Nama : ” ; nama$ ; spc (5) ;
PRINT “No. Induk : “ ; nilaiAngka
PRINT :Nilai huruf : “ ; nilaiHuruf$
PRINT
‘ * Akan mencoba lagi ? *
INPUT “Akan mencoba lagi ? Y/T : “ cobaLagi$
IF UCASE$ (cobaLagi$) = “Y” THEN GOTO ULANGLagi
PRINT
PRINT “Selesai…!”
END
Output :
Nama mahasiswa : OKKY
Nomor induk : 10-28-1988
Nilai Total : 92

Nama : OKKY No. Induk : 10-28-1988
Nilai angka : 92
Nilai huruf : A

Akan mencoba lagi ? Y/T : T

Selesai…!


TUGAS !!!
1.Apakah output program di bawah ini !

‘********PROGRAM HITUNG GAJI**********
UPAH_JAM = 215
WAKTU_NORMAL = 6
INPUT “JUMLAH PEKERJA “; N
DIM NAMA$(N),JAM(N)
PRINT
FOR I = 1 TO N
PRINT “NAMA KARYAWAN KE : “;I; INPUT NAMA$(I)
INPUT “JAM KERJA SEHARI “;JAM(I)
PRINT
NEXT I
PRINT
PRINT “NAMA KARYAWAN”;TAB(20);TAB(30);”JAM KERJA”
PRINT TAB(40);”UPAH TOTAL”
PRINT STRING$(50,”=”)
FOR I = 1 TO N
UPAH_KOTOR = JAM(I) *UPAH_JAM
IF JAM(I) < upah="UPAH_KOTOR*0.875"> WAKTU_NORMAL THEN UPAH=UPAH_KOTOR*1.1525
IF JAM(I) = WAKTU_NORMAL THEN UPAH=UPAH_KOTOR
PRINT NAMA$(I);TAB(32);JAM(I);TAB(40);UPAH
NEXT I
PRINT STRING$(50,”=”)
END

2 komentar:

dust on 11 Desember 2008 17.42 mengatakan...

pinternya cewek satu nih...........

monyetgaul on 11 Desember 2008 17.50 mengatakan...

wahahah logika neehh

kalo if nya bersarang makin ribet tuhhh


Posting Komentar

 

counter

Recent Comment

Recent post