IF kondisi THEN statement IF kondisi THEN [blok] Statement ELSE [blok] Statement IF kondisi THEN BEGIN END; IF kondisi THEN BEGIN IF kondisi THEN BEGIN END; END;
STRUKTUR KONTROL Var
Ni l ai : r eal ; Ket : s t r i ng[ 11] ;
Begi n
STRUKTUR PERCABANGAN IF … THEN … ELSE
Ket : = ' Ti dak Lul us ' ; ª Digunakan untuk menguji sebuah kondisi, bila kondisi terpenuhi (bernilai benar) maka akan
Wr i t e( ' Ni l ai y ang di dapat ?' ) ; dijalankan pernyataan tertentu. ReadLn( Ni l ai ) ;
I f Ni l ai > 60 Then k et : = ' Lul us ' ; Wr i t eLn( Ket ) ;
Bentuk Umum : End.
IF kondisi THEN statement
Hasilnya Æ Nilai yang didapat ? 70 Lul us
IF kondisi THEN [blok] Statement ELSE [blok] Statement
Pr ogr am I F2; Var
IF kondisi THEN
Ni l ai : r eal ; Ket : s t r i ng[ 11] ;
BEGIN
Begi n
Statement …
Wr i t e( ' Ni l ai y ang di dapat ?' ) ; ReadLn( Ni l ai ) ;
END;
I f Ni l ai > 60 Then k et : = ' Lul us ' el s e
IF kondisi THEN
Ket : = ' Ti dak Lul us ' ;
BEGIN
Wr i t eLn( Ket ) ; End.
IF kondisi THEN BEGIN
Pr ogr am I F3; Var
Statement …
Bi l : i nt eger ;
END;
Begi n Wr i t e( ' Ket i k k an s embar ang bi l angan bul at : ' ) ;
END;
ReadLn( Bi l ) ; I f bi l mod 2 = 0 Then
Wr i t e ( bi l , ' adal ah bi l angan Genap' ) El s e
Wr i t e ( bi l , ' adal ah bi l angan Ganj i l ' ) ; False True False IF End.
IF Hasilnya Æ Ketikkan sembarang bilangan bulat : 70
True 70 adal ah bi l angan Genap
Statement2 Statement1
Pr ogr am I F4; Statement
Var
A, B : i nt eger ; Begi n
Wr i t e( ' Ket i k k an dua buah bi l angan bul at : ' ) ;
Contoh :
ReadLn( A, B) ; I f A > B Then
I f ( x > 0) Then Wr i t e ( ' Bi l angan t er bes ar : ' , A)
Wr i t eLn ( ' x bi l angan pos i t i f ' ) El s e
El s e Wr i t e ( ' Bi l angan t er bes ar : ' , B) ; i f ( x < 0) Then
End. Wr i t eLn ( ' x bi l angan negat i f ' ) El s e Wr i t eLn ( ' x adal ah nol ' ) ;
Hasilnya Æ Ketikkan dua buah bilangan bulat: 70 60
Bi l angan t er bes ar : 70 Algoritma dan Pemrograman 2 – Ticha Hal 27
Algoritma dan Pemrograman 2 – Ticha Hal 28 Var Tugas !
Pi l i h : i nt eger ; P, L : i nt eger ;
1. Buat Program untuk menentukan indeks nilai mahasiswa berdasarkan ketentuan sebagai Luas , Kel : i nt er ger ; berikut :
Begi n Æ indeks nilai = A
Wr i t e( ' Mas uk k an Panj ang Per s egi empat : ' ) ; Nilai ujian > 80 -
ReadLn( P) ; Æ indeks nilai = B
- 70 [ Nilai ujian < 80 Wr i t e( ' Mas uk k an Lebar Per s egi empat : ' ) ;
Æ indeks nilai = C 55 [ Nilai ujian < 70 ReadLn( L) ;
- Wr i t eLn;
40 [ Nilai ujian < 55 Æ indeks nilai = D
- Wr i t e( ' Pi l i h 1 unt uk hi t ung Luas dan 2 unt uk hi t ung Kel i l i ng' ) ;
Nilai ujian < 40 Æ indeks nilai = E ReadLn( pi l i h) ;
- I f Pi l i h=1 Then Begi n
2. Buat program untuk menampilkan nama hari dengan ketentuan
- Luas : = P L;
Masukkan kode hari Wr i t eLn( ' Luas per s egi panj ang adal ah : ' , l uas ) ;
- End;
Jika x = 0, maka Tulis ‘Minggu’ - El s e
Jika x = 1, maka Tulis ‘Senin’
- Begi n
Jika x = 2, maka Tulis ‘Selasa’ Kel : = 2 * ( P + L) ;
- Wr i t eLn( ' Kel i l i ng per s egi panj ang adal ah : ' , k el ) ;
Jika x = 3, maka Tulis ‘Rabu’ - End;
Jika x = 4, maka Tulis ‘Kamis’ End.
- Jika x = 5, maka Tulis ‘Jumat’ - Jika x = 6, maka Tulis ‘Sabtu’ -
Pr ogr am I F6; Jika di isi selain nilai tsb, maka muncul peringatan “ Kode hari tidak valid” -
Us es Cr t ; Var
3. Buat program untuk membuat hasil sbb: Nama : St r i ng [ 10]
Begi n Cl r Sc r ;
Pilihan Menu Wr i t e( ' Ket i k k an nama Anda : ' ) ; ReadLn( Nama) ; I f Nama = ‘ ‘ Then
1. Menghitung luas lingkaran Wr i t eLn ( ‘ Wah i s i dul u donk ! ! ! ’ )
2. Menghitung luas segitiga El s e
3. Menghitung luas bujur sangkar Wr i t e ( ' Hai , ‘ , Nama, ’ , k i t a j umpa l agi ’ ) ; End.
Pilih Nomor (0-3) ? _ Æ Jika di isi dengan 2 Æ maka Outputnya :
Panjang sisi alas ? 20 Tinggi segitiga ? 15 Luas Segitiga = 150.00
Algoritma dan Pemrograman 2 – Ticha Hal 30
STATEMENT CASE … OF
Var Ni l ai : r eal ;
ª Biasanya digunakan untuk masalah dengan dua kasus atau lebih, atau dengan kata lain I ndek s : c har ; untuk menyederhanakan penulisan IF-THEN-ELSE yang bertingkat-tingkat. Begi n
Wr i t e( ' Mas uk k an ni l ai mahas i s wa : ' ) ; ReadLn( Ni l ai ) ;
Bentuk Umum Case – Of I f Ni l ai > 80 Then
I ndek s : = ' A' El s e
CASE ekspresi OF
I F ( Ni l ai >= 70) and ( ni l ai < 80) Then Case label list 1 : statement_1;
I ndek s : = ' B' Case label list 2 : statement_2;
El s e
I F ( Ni l ai >= 55) and ( ni l ai < 70) Then …
I ndek s : = ' C' …
El s e
I F ( Ni l ai >= 40) and ( ni l ai < 55) Then Case label list n : statement_n;
I ndek s : = ' D'
END;
El s e I ndek s : = ' E'
Wr i t eLn( ' I ndek s ni l ai uj i an = ' , i ndek s ) ; Bentuk Umum : Case - Of…Else End.
CASE ekspresi OF
Pr gor am I F7; Case label list 1 : statement_1;
Var Pi l : by t e; Case label list 2 : statement_2;
R, L, T, Luas : r eal ; . . . Begi n
Case label list n : statement_n; Cl r Sc r ;
Got oXY( 10, 2) ; Wr i t eLn( ‘ Pi l i han Menu’ ) ;
ELSE statement;
Got oXY( 10, 4) ; Wr i t eLn( ‘ 1. Menghi t ung Luas Li ngk ar an’ ) ;
END;
Got oXY( 10, 5) ; Wr i t eLn( ‘ 1. Menghi t ung Luas Segi t i ga’ ) ; Got oXY( 10, 6) ; Wr i t eLn( ‘ 1. Menghi t ung Laus Buj ur Sangk ar ’ ) ; Got oXY( 10, 15) ; Wr i t e( ‘ Pi l i h Nomor ( 0- 3) ? ‘ ) ; Read( pi l ) ;
Bentuk proses (flow chart) :
Cl r Sc r ; Pi : = 3. 14; I f Pi l = 1 Then
Begi n Wr i t e( ‘ j ar i - j ar i l i ngk ar an ? ‘ ) ; Readl n( R) ;
Decision
Luas : = pi * R * R; Wr i t eLn ( ‘ Luas Li ngk ar an = ‘ , Luas : 9: 2) ;
End;
cll-1 cll-n
I f Pi l = 2 Then Begi n
S-1 S-n
Wr i t e( ‘ Panj ang Si s i al as ? ‘ ) ; Readl n( L) ; Wr i t e( ‘ Ti nggi Segi Ti ga? ‘ ) ; Readl n( T) ;
S-2
Luas : = 0. 5 * L * T; Wr i t eLn ( ‘ Luas Segi t i ga = ‘ , Luas : 9: 2) ;
S-3 ....dst....
End;
keterangan : cll = case label list
I f Pi l = 3 Then Begi n
Wr i t e( ‘ Panj ang Buj ur Sangk ar ? ‘ ) ; Readl n( T) ; Daftar case label dapat berupa konstanta, range dari konstanta ynag bukan real
Wr i t e( ‘ Lebar Buj ur Sangk ar ? ‘ ) ; Readl n( L) ; C/: 1 ‘A’
Luas : = L * T; 1,2,3,4 ‘A’,’B’,’C’,’D’,
Wr i t eLn ( ‘ Luas Buj ur Snagk ar = ‘ , Luas : 9: 2) ; End;
1..5 ‘A’..’D’ End. Algoritma dan Pemrograman 2 – Ticha Hal 32
Algoritma dan Pemrograman 2 – Ticha Hal 31
Contoh/:
Per bandi ngan ant ar a St at ement I F dan St at ement CASE Perbedaan antara CASE dengan IF adalah Æ statement if menyeleksi suatu kondisi dan terpenuhi, setelah memproses statement dalam lingkungan yang terpenuhi tersebut, proses penyeleksian masih dilakukan terhadap statement if berikutnya yang lain.
Æ pada Statement CASE-OF bila salah satu kondisi terpenuhi dan statement tersebut telah diproses, selanjutnya statement-statement yang lainnya dalam lingkungan CASE tidak akan diseleksi lagi.
Pr ogr am CASE1; Var Ni l ai : c har ; Begi n
Wr i t e( ‘ Ni l ai hur uf y ang di dapat ’ ) ; r eadl n( Ni l ai ) ; CASE Ni l ai OF
‘ A’ : wr i t el n ( ‘ T- s hi r t ’ ) ; ‘ B’ : wr i t el n ( ‘ Sepat u’ ) ; ‘ C’ : wr i t el n ( ‘ Topi ’ ) ;
End; End. Pr ogr am CASE2; Var Ni l ai : c har ; Begi n
Contoh
El s e ( Wr i t e ‘ Pi l i han hany a A, B, at au C) ; End; End.
I F A = 3 THEN Wr i t el n ( ‘ Thr ee’ ) ; End. Pr ogr am I F_ELSE_CASE1; { Pr ogr am i ni dengan I F t er s ar ang/ ber t i ngk at } Var A : c har ; Begi n Readl n( A) ;
Wr i t e( ‘ Ni l ai hur uf y ang di dapat ’ ) ; r eadl n( Ni l ai ) ; CASE Ni l ai OF
Algoritma dan Pemrograman 2 – Ticha Hal 34
ELSE Wr i t e( ‘ Hany a s ampai 3’ ) ; End; End.
CASE A OF 1 : wr i t el n ( ‘ One’ ) ; 2 : wr i t el n ( ‘ Two’ ) ; 3 : wr i t el n ( ‘ Thr ee’ ) ;
ELSE Wr i t e( ‘ Hany a s ampai 3’ ) ; End. Pr ogr am I F_CASE1; { Pr ogr am i ni dengan CASE OF} Var A : c har ; Begi n Readl n( A) ;
ELSE I F A = 3 THEN Wr i t el n ( ‘ Thr ee’ )
ELSE I F A = 2 THEN Wr i t el n ( ‘ Two’ )
I F A = 1 THEN Wr i t el n ( ‘ One’ )
I F A = 2 THEN Wr i t el n ( ‘ Two’ ) ;
Kasus Case 1
I F A = 1 THEN Wr i t el n ( ‘ One’ ) ;
Pr ogr am I F_CASE; { Pr ogr am i ni dengan I F t i dak t er s ar ang/ ber t i ngk at } Var A : c har ; Begi n Readl n( A) ;
‘ A’ : wr i t el n ( ‘ T- s hi r t ’ ) ; ‘ B’ : wr i t el n ( ‘ Sepat u’ ) ; ‘ C’ : wr i t el n ( ‘ Topi ’ ) ;
- Jika x = 1, maka Tulis ‘Senin’
El s e Wr i t e( ‘ Kode har i t i dak v al i d’ ) ; End; End.
1 : wr i t el n ( ‘ Sel as a’ ) ; 2 : wr i t el n ( ‘ Rabu’ ) ; 3 : wr i t el n ( ‘ Kami s ’ ) ; 4 : wr i t el n ( ‘ J umat ’ ) ; 5 : wr i t el n ( ‘ Sabt u’ ) ; 6 : wr i t el n ( ‘ Mi nggu’ ) ; Var Ber i k ut i ni adal ah pr ogr am dengan menggunak an CASE unt uk c ont oh pr ogr am I F7
Wr i t e( ‘ Mas uk k an k ode Har i ’ ) ; r eadl n( x ) ; CASE Ni l ai OF 0 : wr i t el n ( ‘ Seni n’ ) ;
Pr ogr am CASE3; Var x : by t e; Begi n
Buat program untuk menampilkan nama hari dengan ketentuan
- Masukkan kode hari
- Jika x = 0, maka Tulis ‘Minggu’
- Jika x = 2, maka Tulis ‘Selasa’
- Jika x = 3, maka Tulis ‘Rabu’
- Jika x = 4, maka Tulis ‘Kamis’
- Jika x = 5, maka Tulis ‘Jumat’
- Jika x = 6, maka Tulis ‘Sabtu’
- Jika di isi selain nilai tsb, maka muncul peringatan “ Kode hari tidak valid”
J uar a : By t e; ( hal 31)
Begi n Wr i t e( ‘ Mas uk k an anda J uar a Ke : ‘ ) ;
ReadLn ( J uar a) ; Pr ogr am CASE7
I f J uar a = 1 Then Wr i t eLn( ‘ Anda mendapat medal i Emas ’ ) Var Pi l : by t e;
El s e R, L, T, Luas : r eal ;
I f J uar a = 2 Then Wr i t eLn( ‘ Anda mendapat medal i Per ak ’ ) Begi n
El s e Cl r Sc r ;
I f J uar a = 3 Then Wr i t eLn( ‘ Anda mendapat medal i Per unggu’ ) Got oXY( 10, 2) ; Wr i t eLn( ‘ Pi l i han Menu’ ) ;
El s e Got oXY( 10, 4) ; Wr i t eLn( ‘ 1. Menghi t ung Luas Li ngk ar an’ ) ;
Wr i t eLn( ‘ Anda Ti dak mendapat Medal i ! ’ ) ; Got oXY( 10, 5) ; Wr i t eLn( ‘ 1. Menghi t ung Luas Segi t i ga’ ) ;
Wr i t eLn( ‘ Sel amat at as Keber has i l an anda’ ) ; Got oXY( 10, 6) ; Wr i t eLn( ‘ 1. Menghi t ung Laus Buj ur Sangk ar ’ ) ; End.
Got oXY( 10, 15) ; Wr i t e( ‘ Pi l i h Nomor ( 0- 3) ? ‘ ) ; Read( pi l ) ; Cl r Sc r ;
Pr ogr am Cont ohCas e; Pi : = 3. 14;
Var CASE Pi l OF
J uar a : By t e; 1 : Begi n
Begi n Wr i t e( ‘ Menghi t ung Luas Li ngk ar an’ ) ;
Wr i t e( ‘ Mas uk k an anda J uar a Ke : ‘ ) ; Wr i t e( ‘ j ar i - j ar i l i ngk ar an ? ‘ ) ; Readl n( R) ;
ReadLn ( J uar a) ; Luas : = pi * R * R;
CASE J uar a OF Wr i t eLn ( ‘ Luas Li ngk ar an = ‘ , Luas : 9: 2) ; 1 : Wr i t eLn( ‘ Anda mendapat medal i Emas ’ ) ;
End; 2 : Wr i t eLn( ‘ Anda mendapat medal i Per ak ’ ) ; 3 : Wr i t eLn( ‘ Anda mendapat medal i Per unggu’ ) ; 2 : Begi n El s e Wr i t eLn( ‘ Anda Ti dak mendapat Medal i ! ’ ) ;
Wr i t e( ‘ Menghi t ung Luas Segi t i ga’ ) ; End;
Wr i t e( ‘ Panj ang Si s i al as ? ‘ ) ; Readl n( L) ; Wr i t eLn( ‘ Sel amat at as Keber has i l an anda’ ) ;
Wr i t e( ‘ Ti nggi Segi Ti ga? ‘ ) ; Readl n( T) ; End. Luas : = 0. 5 * L * T; Wr i t eLn ( ‘ Luas Segi t i ga = ‘ , Luas : 9: 2) ;
End;
Contoh Penggunaan CASE OF untuk data yang berupa range
3 : Begi n Pr ogr am I F_ELSE_CASE2;
Wr i t e( ‘ Menghi t ung Luas Buj ur Sangk ar ’ ) ; { Pr ogr am i ni menggunak an I F}
Wr i t e( ‘ Panj ang Buj ur Sangk ar ? ‘ ) ; Readl n( T) ; Var A : By t e;
Wr i t e( ‘ Lebar Buj ur Sangk ar ? ‘ ) ; Readl n( L) ;
- Luas : = L T; Begi n
Wr i t eLn ( ‘ Luas Buj ur Snagk ar = ‘ , Luas : 9: 2) ; Readl n( A) ;
End;
I F ( A > 0) and ( A < 10) THEN Wr i t el n ( ‘ One’ ) ELSE Wr i t e( ‘ Pi l i han Anda Sal ah’ ) ;
I F ( A > 9) and ( A < 100) THEN Wr i t el n ( ‘ Two’ ) End;
I F ( A > 99) and ( A < 200) THEN Wr i t el n ( ‘ Thr ee’ ) End. ELSE Wr i t e( ‘ Angk a anda s al ah’ ) ; End.
Pr ogr am I F_CASE2; { Pr ogr am i ni menggunak an CASE OF} Var A : By t e; Begi n Readl n( A) ;
CASE A OF 1. . 9 : wr i t el n ( ‘ One’ ) ; 10. . 99 : wr i t el n ( ‘ Two’ ) ; 100. . 199 : wr i t el n ( ‘ Thr ee’ ) ;
ELSE Wr i t e( ‘ Angk a anda s al ah’ ) ; End; End.
Algoritma dan Pemrograman 2 – Ticha Hal 35 Algoritma dan Pemrograman 2 – Ticha Hal 36