alpro_05-penyeleksian-kondisi

download alpro_05-penyeleksian-kondisi

of 10

Transcript of alpro_05-penyeleksian-kondisi

Algoritma PemrogramanPertemuan Ke-5(Penyeleksian Kondisi) :: Noor Ifada ::

S1 Teknik Informatika-Unijoyo

1

Sub Pokok BahasanPendahuluan Penyeleksian Satu Kasus Penyeleksian Dua Kasus Penyeleksian Tiga Kasus atau lebih (tersarang) Struktur CASE

S1 Teknik Informatika-Unijoyo

2

1

PendahuluanPada umumnya, suatu permasalahan yang kompleks mengandung suatu penyeleksian kondisi atau dikatakan permasalahan tersebut memiliki beberapa alternatif pelaksanaan aksi Dengan menyeleksi suatu kondisi, maka selanjutnya dapat ditentukan tindakan apa yang harus dilakukan, tergantung pada hasil kondisi yang diseleksi tersebut. Jadi suatu aksi hanya dikerjakan apabila persyaratan atau kondisi tertentu dipenuhi

S1 Teknik Informatika-Unijoyo

3

Penyeleksian Satu KasusNotasi algoritmik untuk analisis penyeleksian satu kasus adalah dengan menggunakan struktur IF-THEN:IF kondisi benar ? THEN

Kondisi akan diseleksi oleh statemen ifBila kondisi bernilai benar (true): aksi sesudah kata then (dapat berupa satu atau lebih aksi) akan diproses Bila kondisi bernilai salah (false): tidak ada aksi apapun yang akan dikerjakan.

salah

Aksi

Statemen endif adalah untuk mempertegas bagian awal dan bagian akhir struktur IF-THEN.S1 Teknik Informatika-Unijoyo 4

2

Contoh Penyeleksian Kondisi Satu Kasus [1]

Contoh: Algoritma menentukan apakah sebuah bilangan bulat merupakan bilangan genap.Algoritma BILANGAN_GENAP { Menentukan apakah sebuah bilangan bulat yang dibaca dari piranti masukan merupakan bilangan genap } DEKLARASI bil : integer DESKRIPSI : read(bil) if bil mod 2 = 0 then write(bilangan genap) endifS1 Teknik Informatika-Unijoyo

bil mod 2 = 0salah

benar

THEN

bilangan genap

END

5

Contoh Penyeleksian Kondisi Satu Kasus [2]

Program BILANGAN_GENAP; { Menentukan apakah sebuah bilangan bulat yang dibaca dari piranti masukan merupakan bilangan genap } (* DEKLARASI *) var bil : integer; (* DESKRIPSI *) begin write(Masukkan suatu bilangan bulat : ); readln(bil); if bil mod 2 = 0 then writeln(bilangan genap); (*endif*) end.

S1 Teknik Informatika-Unijoyo

6

3

Penyeleksian Dua KasusNotasi algoritmik untuk analisis penyeleksian dua kasus adalah dengan menggunakan struktur IF-THEN-ELSE:IF Kondisi ?salah ELSE benar

THEN

aksi1

aksi2

Dalam struktur IF-THEN-ELSE:aksi1 akan dilaksanakan jika kondisi bernilai benar (true) jika kondisi bernilai salah (false) maka aksi2 yang akan dilaksanakan Statemen else menyatakan ingkaran (negation) dari kondisi.S1 Teknik Informatika-Unijoyo 7

Contoh Penyeleksian Kondisi Dua Kasus [1]Contoh: Algoritma menentukan bilangan maksimum (terbesar) dari dua buah bilangan bulat.Algoritma MAKSIMUM { Menentukan bilangan terbesar dari dua bilangan bulat } DEKLARASI A, B : integer DESKRIPSI : read(A,B) if A > B then write(Bilangan terbesar : ,A) else { B A } write(Bilangan terbesar : ,B) endifbenar

A > Bsalah THEN

Bilangan terbesar adl AELSE

Bilangan terbesar adl B

END

S1 Teknik Informatika-Unijoyo

8

4

Contoh Penyeleksian Kondisi Dua Kasus [2]

program MAKSIMUM; { Menentukan bilangan terbesar dari dua bilangan bulat } (* DEKLARASI *) var A, B : integer; (* DESKRIPSI *) begin write(Masukkan bilangan A : );readln(A); write(Masukkan bilangan B : );readln(B); if A > B then writeln(Bilangan terbesar : ,A) else writeln(Bilangan terbesar : ,B); (*endif*) end.S1 Teknik Informatika-Unijoyo 9

Penyeleksian Tiga Kasus/Lebih (Tersarang)Notasi algoritmik untuk analisis penyeleksian tiga kasus atau lebih (tersarang) menggunakan struktur IF-THEN-ELSE, sebagaimana halnya pada masalah dengan dua kasus Tiga kasus:

S1 Teknik Informatika-Unijoyo

10

5

Penyeleksian (contd)Empat kasus:

S1 Teknik Informatika-Unijoyo

11

Algoritma INDEKS_NILAI_UJIAN

Penyeleksian (contd)

{ Menentukan indeks nilai mahasiswa berdasarkan nilai ujiannya }

DEKLARASInilai : real { nilai ujian dalam numerik } indeks : char { A, B, C, D, E }

DESKRIPSI :read(nilai) if nilai 80 then indeks A else if (nilai 70) and (nilai < 80) then indeks B else if (nilai 55) and (nilai < 70) then indeks C else if (nilai 40) and (nilai < 55) then indeks D else { nilai < 40 } indeks E endif endif endif endif write(indeks)S1 Teknik Informatika-Unijoyo 12

Contoh: Algoritma menentukan indeks nilai ujian mahasiswa

6

program INDEKS_NILAI_UJIAN; { Menentukan indeks nilai mahasiswa berdasarkan nilai ujiannya } (* DEKLARASI *) var nilai : real; { nilai ujian dalam numerik } indeks : char; (* DESKRIPSI *) beginwrite(Masukkan nilai ujian : );readln(nilai); if nilai >= 80 then indeks := A else if (nilai >= 70) and (nilai < 80) then indeks := B else if (nilai >= 55) and (nilai < 70) then indeks := C else if (nilai 40) and (nilai < 55) then indeks := D else { nilai < 40 } indeks := E; (*endif*) (*endif*) (*endif*) (*endif*) writeln(Indeks nilai ujian = ,indeks); end.S1 Teknik Informatika-Unijoyo 13

Struktur CASEStruktur CASE dapat digunakan untuk menganalisis penyeleksian dua kasus atau lebih dan bentuknya adalah lebih sederhana daripada struktur IF-THEN-ELSE yang memiliki bentuk bertingkat-tingkat Kondisi1, kondisi2, ...kondisiN dapat bernilai benar atau salah. Tiap kondisi diperiksa nilai kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang benar:Jika kondisi ke-k benar, maka aksi ke-k dilaksanakan, selanjutnya keluar dari struktur CASE Aksi yang dipasangkan dengan kondisi ke-k dapat lebih dari satu, karena itu ia berupa runtunan Jika tidak ada satupun kondisi yang benar, maka aksi sesudah otherwise (optional) dikerjakan.S1 Teknik Informatika-Unijoyo 14

7

Ekivalensi CASE dengan IF-THEN-ELSE

Struktur CASE menggantikan analisis kasus yang ekivalen dengan struktur IF-THEN-ELSE berikut ini:

S1 Teknik Informatika-Unijoyo

15

Contoh CASE

Algoritma NAMA_BULAN { Mencetak nama bulan bulannya }

berdasarkan

nomor

DEKLARASI AngkaBulan : integer { 1..12 } DESKRIPSI : read(AngkaBulan) case(AngkaBulan)

Contoh: Algoritma menentukan nama bulan berdasarkan pada nomor bulannya.

AngkaBulan=1 : write(Januari) AngkaBulan=2 : write(Februari) AngkaBulan=3 : write(Maret) AngkaBulan=4 : write(April) AngkaBulan=5 : write(Mei) AngkaBulan=6 : write(Juni) AngkaBulan=7 : write(Juli) AngkaBulan=8 : write(Agustus) AngkaBulan=9 : write(September) AngkaBulan=10 : write(Oktober) AngkaBulan=11 : write(Nopember) AngkaBulan=12 : write(Desember) otherwise write(Bukan nomor bulan yang benar)

endcaseS1 Teknik Informatika-Unijoyo 16

8

program NAMA_BULAN; { Mencetak nama bulan berdasarkan nomor bulannya } (* DEKLARASI *) var AngkaBulan : integer; (* DESKRIPSI *) begin write(Masukkan angka bulan (1 12) : ); readln(AngkaBulan); case AngkaBulan of1 2 3 4 5 6 7 8 9 10 11 12 : : : : : : : : : : : : writeln(Januari); writeln(Februari); writeln(Maret); writeln(April); writeln(Mei); writeln(Juni); writeln(Juli); writeln(Agustus); writeln(September); writeln(Oktober); writeln(Nopember); writeln(Desember);

else writeln(Bukan nomor bulan yang benar); end; end.S1 Teknik Informatika-Unijoyo 17

Keberadaan CASE

Tidak semua bahasa pemrograman menyediakan struktur CASE (misalnya Bahasa Fortran). Bahasa Pascal dan C menyediakan struktur ini. Jika bahasa pemrograman tidak menyediakan struktur CASE, maka struktur CASE dapat diganti dengan struktur IF-THEN-ELSE yang ekivalen

S1 Teknik Informatika-Unijoyo

18

9

Summary Suatu permasalahan dapat dianalisa berdasarkan jumlah kasus yang dimilikinya, sehingga nantinya dapat ditentukan aksi apa yang akan dilakukan bila suatu kasus dimasuki Struktur penyeleksian adalah berupa struktur IF-THEN (atau IF-THEN-ELSE) dan struktur CASE

S1 Teknik Informatika-Unijoyo

19

Daftar PustakaJogiyanto HM [1989]. Turbo Pascal, Yogyakarta: Andi Offset. Noor Ifada [2005]. Diktat Matakuliah Algoritma Pemrograman (Hibah Kompetisi A1), Bangkalan: Jurusan Teknik Informatika, Universitas Trunojoyo. Rinaldi Munir [2003]. Algoritma dan Pemrograman dengan Pascal dan C edisi Kedua, Bandung: Informatika.

S1 Teknik Informatika-Unijoyo

20

10