alpro_05-penyeleksian-kondisi
-
Upload
keong-tak-menderita -
Category
Documents
-
view
19 -
download
0
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