MATERI 8

35
MATERI 8 CHOICE / PILIHAN

description

MATERI 8. CHOICE / PILIHAN. Pengantar. Program yang telah menggunakan repetition dan procedure merupakan program yang agak rumit, namun jalannya program masih dapat ditebak dan diketahui karena selalu mengerjakan sequence yang sama. - PowerPoint PPT Presentation

Transcript of MATERI 8

Page 1: MATERI 8

MATERI 8

CHOICE / PILIHAN

Page 2: MATERI 8

Pengantar

• Program yang telah menggunakan repetition dan procedure merupakan program yang agak rumit, namun jalannya program masih dapat ditebak dan diketahui karena selalu mengerjakan sequence yang sama.

• Hal ini seperti robot yang diprogram untuk mengerjakan sesuatu secara berulang-ulang tanpa memperhatikan kondisi apa pun. Misalnya saja printer yang bekerja hanya berdasarkan sequence, procedure dan repetitition akan terus mencetak sebanyak yang diperintahkan tanpa melihat kondisi apakah ada kertas atau tidak.

Page 3: MATERI 8

Pengantar

• Pembahasan Materi ini adalah tentang choice/Pilihan dimana sebuah program dapat dibuat untuk mengerjakan hal yang berbeda-beda tergantung dari kondisi saat itu.

Page 4: MATERI 8

Choice Sederhana

• Contoh sederhana, misalnya sebuah robot yang diciptakan untuk memotong sebuah batang besi menjadi beberapa bagian.

• Pada batangan besi telah diberikan tanda, berapa banyak potongan besi yang harus dihasilkan.

• Dengan melihat tanda tersebut, robot akan memotong besi menjadi potongan yang lebih kecil sesuai dengan jumlah yang tercantum.

Page 5: MATERI 8

Choice Sederhana

repeatedlyif ”tanda 2” on label:

lakukan proses potong 2if ”tanda 3” on label:

lakukan proses potong 3until switched off

Program 8.1

Page 6: MATERI 8

Choice Sederhana

• Program 8.1 akan berulang-ulang dikerjakan oleh robot selama robot tersebut “hidup”. Jika pada batang besi tertulis tanda 2 maka yang dikerjakan adalah proses pemotongan menjadi 2 bagian. Begitu pun jika yang tertera adalah tanda 3, maka yang dikerjakan adalah proses pemotongan menjadi 3 bagian.

• Kondisi pilihan yang diberikan memiliki cela, yaitu misalnya tidak ada tanda pada batang besi, atau tanda yang diberikan cacat dan tidak terbaca, atau tanda yang tertera bukan tanda 2 maupun tanda 3, maka robot tidak dapat mengambil keputusan, proses apa yang dikerjakan. Hal ini dapat menyebabkan robot berhenti berfungsi atau melakukan proses yang tidak terkendali.

Page 7: MATERI 8

Choice Sederhana

• Program 8.1 dapat ditulis dengan pilihan yang lebih lengkap, untuk kasus tanda yang tertera bukan tanda 2 maupun tanda 3. repeatedly

if ”tanda 2” on label : lakukan proses potong 2

if ”tanda 3” on label : lakukan proses potong 3

if neither ”tanda 2” nor ”tanda 3” : donothing

until switched off

Program 8.2

Page 8: MATERI 8

Choice Sederhana

• Pada Program 8.2, proses yang dikerjakan jika tanda yang tertera bukan 2 maupun 3 adalah donothing atau tidak melakukan apa-apa pada saat itu.

Page 9: MATERI 8

Instruksi Select• Select adalah perintah yang digunakan pada

pemrograman untuk menentukan suatu aksi berdasarkan kondisi tertentu. Struktur dasar dari perintah select adalah:

select kondisi 1 : aksi 1 kondisi 2 : aksi 2 kondisi 3 : aksi 3

... kondisi n : aksi n

endselect

Page 10: MATERI 8

Instruksi Select

• Kata select dan endselect merupakan awal dan akhir dari instruksi ini.

• Kondisi merupakan sesuatu yang menjadi acuan dalam mengerjakan suatu proses.

• Aksi merupakan rangkaian perintah yang dikerjakan untuk suatu kondisi tertentu. Jumlah kondisi dan aksi tidak terbatas.

• Yang akan dikerjakan oleh program adalah setiap aksi yang kondisinya terjadi pada saat itu.

Page 11: MATERI 8

Instruksi Select• Penggunaan select dapat dipelajari pada Program 8.3. :

selecta>b : printstring(”a lebih besar b”)a<b : printstring(”a lebih kecil b”)a=b : printstring(”a sama dengan b”)

Endselect

• Program 8.3 akan mencetak suatu string, tergantung dari nilai variabel a dan variabel b. Terlihat jelas bahwa ada 3 kondisi yang mungkin terjadi, sehingga pasti akan dikerjakan salah satu dari 3 aksi yang sesuai.

• Dengan nilai a = 3 dan nilai b =7 maka kondisi yang terpenuhi adalah kondisi ke 2 ( a < b) sehingga aksi yang dikerjakan adalah mencetak kalimat ”a lebih kecil b”.

Program 8.3

Page 12: MATERI 8

Formula Kondisi

• Beberapa operator umum yang bisa digunakan sebagai kondisi pada bahasa Pemrograman Pascal terlihat pada Tabel 8.1.

Page 13: MATERI 8

Tabel 8.1. Tabel Operator pada PascalOperator Keterangan Contoh

= sama dengan 7 + 5 = 13 true

> lebih besar dari 7 > 5 true

< lebih kecil dari 7 < 5 false

>= lebih besar atau sama dengan

7 >= 5 true

<= lebih kecil atau sama dengan

7 <= 5 false

<> tidak sama dengan 7 <> 5 true

not invers atau pengingkaran not (7>5) false

Page 14: MATERI 8

Formula Kondisi• Operasi matematika akan memberikan angka

sebagai hasil proses. Berbeda denga kondisi, yang menjadi hasil dari proses.

• Analisa suatu kondisi adalah nilai true (benar) dan false (salah).

• Nilai true biasanya dinotasikan dengan angka 1 dan false dinotasikan dengan angka 0. Beberapa logika yang digunakan untuk kondisi adalah logika and, logika or dan logika not.

Page 15: MATERI 8

Formula Kondisi• Lebih jelas mengenai setiap logika, dapat

dilihat pada Tabel 8.2. Angka 1 merupakan nilai true dan angka 0 merupakan nilai false.

Page 16: MATERI 8

Tabel 8.2. Tabel Logika Kebenaran

A B A and B A or B Not A Not B0 0 0 0 1 1

0 1 0 1 1 0

1 0 0 1 0 1

1 1 1 1 0 0

Page 17: MATERI 8

Formula Kondisi

• Perhatikan contoh pada Program 8.4 untuk memahami penggunaan logika kebenaran pada.

Page 18: MATERI 8

select(a+b = 10) and (a < 5):

printstring(”a lebih besar 5”)(a+b = 10) and (b < 5):

printstring(”b lebih kecil 5”)(a + b > 10) :

printstring(”a + b lebih dari 10”)(a + b < 10) :

printstring(”a + b kurang dari 10”)endselect

3

4

2

1

Program 8.4

Page 19: MATERI 8

• Pada program 8.4, jika nilai a=3 dan nilai b=7, Pada kondisi (1): (a + b = 10) bernilai true(a < 5) bernilai true(a+ b = 10) and (a < 5) true and true = truedengan nilai true pada kondisi (1) maka aksi pada kondisi (1) akan dikerjakan yaitu mencetak ”a lebih besar 5”.

Pada kondisi (2): (a + b = 10) bernilai true(b < 5) bernilai false(a+ b = 10) and (b < 5) true and false = falsedengan nilai false pada kondisi (2) maka aksi pada kondisi (2) tidak akan dikerjakan.

Page 20: MATERI 8

• Pada program 8.4, jika nilai a=3 dan nilai b=7,

Pada kondisi (3): (a + b > 10) bernilai falsedengan nilai false pada kondisi (3) maka aksi pada kondisi (3) tidak akan dikerjakan.

Pada kondisi (4): (a + b < 10) bernilai falsedengan nilai false pada kondisi (4) maka aksi pada kondisi (4) tidak akan dikerjakan.

Page 21: MATERI 8

Instruksi Case…of• Perintah lain yang memiliki cara kerja yang

sama dengan select adalah perintah case of. Bentuk dasar dari perintah case of adalah:

case (variabel) ofnilai 1 : aksi 1nilai 2 : aksi 2nilai 3 : aksi 3

...nilai n : aksi n

endcase

Page 22: MATERI 8

Contoh Instruksi Case…of

case (angka)of0 : printstring(”nol”);1 : printstring(”satu”);2 : printstring(”dua”);3 : printstring(”tiga”);

...9 : printstring(”sembilan”);

Endcase

• Pada program 8.5 jika nilai dari variabel angka adalah 0 maka yang akan dikerjakan adalah perintah printstring(”nol”). Begitu juga dengan kondisi nilai yang lain pada variabel angka.

• Yang akan dikerjakan adalah aksi yang sesuai dari setiap kondisi yang benar.

Program 8.5

Page 23: MATERI 8

Instruksi if ... then ... else • Bentuk yang lain dari choice adalah dengan

menggunakan perintah if ... then…else. Bentuk dasarnya adalah :

if (kondisi) then aksi jika kondisi benar

elseaksi jika kondisi salah

fi

Page 24: MATERI 8

Contoh Instruksi if ... then ... else if (a > 0) then

printstring(” a positif ”)else

printstring(” a negatif ”)fi

• Program 8.6 akan mencetak keterangan apakah nilai variabel a adalah bilangan positif atau negatif. Saat (a > 0 ) bernilai true maka yang tercetak adalah ”a positif”. Jika kondisi tersebut tidak terpenuhi (a > 0 false) maka bagian else yang akan dikerjakan yaitu mencetak ”a negatif”.

Program 8.6Program 8.6

Page 25: MATERI 8

• Kekurangan dari Program 8.6 adalah jika nilai a adalah 0. pada kasus ini, kondisi (a > 0) akan bernilai false sehingga yang dicetak adalah ”a negatif”, padahal untuk kondisi ini ada dua kasus yang harus diperhatikan, apakah benar a < 0 atau a = 0. Program 8.6 dapat disempurnakan menjadi Program 8.7.

if (a > 0) thenprintstring(” a positif ”)

elseif ( a = 0 ) then

printstring(” a nol ”)else

printstring(” a negatif ”)fi

fi

Program Program 8.78.7

Page 26: MATERI 8

Latihan

• Jika nilai >= 90 ps(“Cum Laude”)• Jika nilai >=85 dan <90 ps(“Sangat baik”)• Jika nilai >= 65 dan < 85 ps(“lulus”)• Jika nilai < 65 ps(“tidak lulus”)

JAWAB :

If nilai >= 90 then ps(“cum laude”); else if nilai >= 85 then ps(“Sangat baik”); else if nilai >= 65 then ps(“lulus”); else ps(“tidak lulus”);

Page 27: MATERI 8

Choice pada Bahasa Pascal • Bahasa Pascal menggunakan case-of dan if-then-

else sebagai perintah untuk melakukan pilihan. Bentuk dasarnya adalah :

if (kondisi) then begin

aksi jika kondisi benar end

else begin

aksi jika kondisi salah end

• begin dan end tidak perlu dituliskan jika aksi yang dikerjakan hanya 1 perintah.

Page 28: MATERI 8

Contoh Program 8.8 :

(1) uses crt;(2) var x,sisa : integer;(3) BEGIN(4) readln(x);(5) sisa := x mod 2;(6) if (sisa=0) then (7) writeln(’bilangan genap’)(8) else(9) writeln(’bilangan ganjil’);(10) END.

Page 29: MATERI 8

• Program 8.8 awalnya akan menerima input dari keyboard, dengan harapan yang diinputkan adalah angka, yang kemudian akan disimpan pada variabel x (baris 4).

• Baris (5) merupakan operasi pembagian x dengan 2.

• Yang disimpan pada variabel sisa adalah sisa pembagian. Misalnya 7 mod 2, hasilnya adalah 3 dan sisanya adalah 1.

• Baris (7) sampai baris (9) akan menuliskan salah satu dari 2 keterangan yang ada tergantung dari nilai variabel sisa.

• Jika variabel sisa bernilai 0 maka yang dicetak adalah ”bilangan genap”, selain itu (sisa <> 0) maka yang dicetak adalah ”bilangan ganjil”.

Page 30: MATERI 8

• Dari program 8.8: – Jika angka yang diinputkan adalah 20 apakah

output-nya?– Jika angka yang diinputkan adalah 17 apakah

output-nya?

Page 31: MATERI 8

Latihan • Perhatikan Perintah berikut ini:If (nilai > 59) AND (bayar = “SUDAH”) then

Status = “LULUS”Else if (nilai > 59) AND (bayar = “BELUM”) then

Status = “LULUS BERSYARAT” Else

Status = “TIDAK LULUS”Endif

endif

• Jika mahasiswa A mendapat nilai 45 dan sudah membayar uang kuliah, apa status mahasiswa tersebut?

• Jika mahasiswa B mendapat nilai 25 dan belum membayar uang kuliah, apa status mahasiswa tersebut ?

• Jika mahasiswa C mendapat nilai 80 dan sudah membayar uang kuliah, apa status mahasiswa tersebut ?

Page 32: MATERI 8

Choice dalam Pascal

• Pilihan Biner (2 macam)

If <kondisi> then <aksi jika kondisi benar> else < aksi jika kondisi salah>

• Pilihan Banyak ( lebih dari 2 macam)

Case <variabel> of <nilai alternatif 1> : <aksi alternatif 1> <nilai alternatif 2> : <aksi alternatif 2> : else < aksi alternatif lainnya> end;

Repeat:Until <kondisi>

Page 33: MATERI 8

While <kondisi> do <aksi>

For i:= 1 to 5 do writeln(i);

Ubah perintah for menjadi while ... Doi:=1;While i <=5 do begin writeln(i); i:=i+1;End;

Ubah perintah for menjadi repeat ... Until i:=1;Repeat writeln(i); i:=i+1;Until (i <=5) ????????????????

Page 34: MATERI 8

Latihan :

Jika pilihan = 1 tampilkan **** *** buat di prosedur segi3 ** *Jika pilihan = 2 tampilkan *** ***** buat di prosedur lingkaran ***** ***Jika pilihan = 3 tampilkan******** buat di prosedur segi4****

Page 35: MATERI 8

-selesai-