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