percabangan algo tugas2.pdf

Upload: heri-kusriyanto

Post on 30-Oct-2015

203 views

Category:

Documents


4 download

DESCRIPTION

Percabangan algo

TRANSCRIPT

  • UMG Teknik Informatika 1

    Algoritma Percabangan

    Materi yang di pelajari :

    1. Pengertian algoritma percabangan

    2. Ekspresi Boolean

    3. Penulisan algoritma (teks dan flowchart)

    4. Beberapa istilah dasar algoritma

    1. Pengertian Algoritma Percabangan

    Pada algoritma runtunan telah kita lihat bahwa setiap pernyataan selalu dilakukan bila

    telah sampai gilirannya. Namun demikian ada kalanya suatu pernyataan atau perintah

    hanya bisa dilakukan bila memenuhi suatu kondisi atau persyaratan tertentu. Algoritma

    ini kita sebut dengan algoritma seleksi kondisi atau juga percabangan.

    Contoh. Misalnya kita ingin menentukan apakah suatu bilangan merupakan bilangan

    genap atau ganjil. Algoritmanya dapat kita jabarkan

    1. Mulai 2. Masukkan satu bilangan (X) 3. jika X habis dibagi dua maka lanjut ke 4. Jika tidak

    lanjut ke 5

    4. tulis X bilangan genap. Lanjut ke 6. 5. tulis X bilangan ganjil 6. Selesai

    Perhatikan bahwa ada dua kemungkinan perintah yang akan dikerjakan setelah perintah

    ke-3 dikerjakan. Jika X habis dibagi dua maka selanjutnya perintah ke-4 yang dikerjakan,

    kemudian melompat ke 6 (perintah 5 tidak dikerjakan). Sebaliknya jika X tidak habis

    dibagi dua perintah selanjutnya melompat ke-5 (perintah 4 tidak dikerjakan) dan

    kemudian berakhir pada perintah ke-6.

  • UMG Teknik Informatika 2

    2. Ekspresi Boolean

    Ada dua komponen utama dalam ekspresi percabangan yaitu kondisi dan pernyataan.

    Kondisi adalah syarat dilakukannya sebuah (atau sekelompok) pernyataan, sedangkan

    pernyataan dalam konteks ini adalah perintah yang berkaitan dengan suatu kondisi.

    Contoh umum pernyataan kondisi-pernyataan

    1. Jika hari hujan, maka saya tidak jadi keluar rumah

    kondisi pernyataan

    2. Jika nilai ujian lebih besar atau sama dengan 60, maka ujian dinyatakan lulus

    kondisi 1 pernyataan 1

    Jika nilai ujian kurang dari 60, maka ujian dinyatakan gagal

    kondisi 2 pernyataan 2

    Sebagaimana contoh sebelumnya dapat dilihat bahwa adakalanya suatu perintah

    dilakukan jika kondisi yang mempersyaratkannya telah jelas nilai benar salahnya. Dalam

    hal pemrograman kondisi tersebut harus bisa dinyatakan dalam suatu ekspresi boolean.

    Ekspresi boolean adalah ekspresi yang hasil ekspresinya bernilai boolean (true atau

    false).

    Ekspresi boolean dapat diperoleh dengan menggunakan dua jenis operasi :

    1. Operasi Boolean.

    Operasi boolean adalah operasi yang menggunakan operator boolean seperti

    and, or, not, xor.

    Contoh operasi relasional

  • UMG Teknik Informatika 3

    1. z1 x and y

    2. z2 a=2 or b=10

    3. z3 not(x)

    4. z4 p+2=4 xor q=0

    2. Operasi Relasional (Operasi Perbandingan)

    Operasi relasional adalah operasi yang membandingkan dua buah operan dengan

    menggunakan operator perbandingan (ingat, operator perbandingan : =, ,

    , ).

    Contoh operasi relasional

    1. z1 x > y

    2. z2 a 10

    3. z3 x + y = 17

    4. z4 p div q < r

    5. z5 p mod 2 = 0

    Hasil dari operasi perbandingan memiliki dua kemungkinan, yaitu true (benar)

    atau false (salah). Oleh karena itu tipe hasil (z1, z2, z3, z4, z5) dari setiap operasi

    di atas adalah boolean.

    3. Algoritma Teks dan Flowchart Percabangan

    Ada dua tipe algoritma percabangan yang akan kita bahas berikut ini yaitu

    - Satu kondisi (if-then) : artinya hanya ada satu kondisi yang menjadi syarat untuk

    melakukan satu atau satu blok (sekelompok) pernyataan. Bentuk umum algoritma

    teks standar percabangan dengan satu kondisi :

  • UMG Teknik Informatika 4

    if then

    pernyataan

    Jika bernilai benar maka pernyataan dikerjakan, sedangkan jika tidak,

    maka pernyataan tidak dikerjakan dan proses langsung keluar dari percabangan

    (begin).

    Contoh.

    if A>B then

    write (A)

    Ekspresi di atas menunjukkan bahwa perintah menulis / menampilkan A dikerjakan

    hanya jika kondisi A>B bernilai benar. Jika yang terjadi adalah sebaliknya, tidak ada

    pernyataan yang dilakukan atau proses langsung keluar dari percabangan (endif).

    Secara flowchart ekspresi itu dapat ditulis seperti berikut.

    Perhatikan bahwa pada kotak belah ketupat memiliki dua cabang arus data, yang satu

    untuk kondisi bernilai benar (y, artinya ya), sedang yang lain untuk kondisi bernilai

    salah (t, artinya tidak). Jika kondisi bernilai benar (y) maka perintah yang dikerjakan

    adalah write(A). Jika kondisi salah (t) maka arus data langsung menuju ke bawah

    tanpa mengerjakan pernyataan apapun.

    A>B?

    y

    t

    Write(A)

  • UMG Teknik Informatika 5

    - Dua kondisi (if-then-else) : artinya ada dua kondisi yang menjadi syarat untuk

    dikerjakannya dua jenis pernyataan. Bentuk umum percabangan dengan dua kondisi :

    if then

    pernyataan1

    else

    pernyataan2

    Jika bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika tidak

    ( bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan2.

    Berbeda dengan percabangan satu kondisi, pada percabangan dua kondisi ada dua

    pernyataan untuk dua keadaan kondisi, yaitu untuk yang bernilai benar

    dan yang bernilai salah. Contoh algoritma percabangan dua kondisi :

    if A>B then write (A)

    else

    write (B)

    Ekspresi di atas sedikit berbeda dengan sebelumnya. Perintah menulis/menampilkan

    A dikerjakan hanya jika kondisi A>B bernilai benar, sedangkan jika yang terjadi

    adalah sebaliknya maka pernyataan yang dilakukan adalah menulis B. Secara

    flowchart pernyataan di atas dapat ditulis sebagai berikut.

  • UMG Teknik Informatika 6

    Berikut ini adalah beberapa contoh lainnya.

    a. If x > 0 then

    ket bilangan positif

    b. if m = n

    i m*n write(i)

    b. if bil>=0 then ket (bilangan positif)

    else ket (bilangan negatif)

    d. if m = n then

    i m*n j m-n

    else

    i m/n j m+n

    write(i,j)

    Latihan : Cobalah anda buat flowchart dari algoritma pada poin a-d di atas!

    4. Contoh soal

    A>B?

    Write (A)

    Write (B)

  • UMG Teknik Informatika 7

    1. Buatlah algoritma untuk menentukan apakah suatu bilangan merupakan bilangan

    genap atau ganjil. Input algoritma adalah bilangan yang akan ditentukan jenisnya.

    algoritma bilangan_genap

    deklarasi

    bil : integer

    ket : string

    deskripsi

    read (bil)

    ketganjil if bil mod 2 = 0 then

    ketgenap write (bil)

    Algoritma bilangan_genap

    Begin

    read (bil)

    bil mod 2 = 0?

    End

    y

    ket

  • UMG Teknik Informatika 8

    Penjelasan

    Mula-mula inputkan variabel (bil), misalnya 3. Kemudian (ket) diberi nilai ganjil.

    Kemudian karena kondisi (bil mod 2 = 0) bernilai salah, maka (ket) tidak berubah dan

    tetap bernilai ganjil, sehingga ketika perintah write(ket), output yang muncul adalah

    ganjil. Untuk jelasnya perhatikan tabel penyimpanan data berikut.

    Perintah bil ket Output

    read (bil) 3

    ketganjil ganjil if bil mod 2 = 0 then ketgenap

    write (bil) ganjil

    2. Buatlah algoritma menentukan gaji total pegawai. Diketahui pegawai dengan masa

    kerja lebih dari 3 tahun mendapat tunjangan sebesar 20% gaji pokok sedang yang

    kurang dari itu mendapat tunjangan 10%. Input program adalah masa kerja dan gaji

    pokok.

    algoritma gaji_pegawai

    deklarasi

    tjg, mk, gapok, gatot : real

  • UMG Teknik Informatika 9

    deskripsi

    read (mk, gapok)

    if mk>3 then

    tjg 0.2*gapok else

    tjg 0.1*gapok gatot gapok+tjg

    write(Gaji total ,gatot)

    Penjelasan

    Mula-mula dimasukkan data (mk) dan (gapok). Misalnya, masing-masing diberi nilai 2

    dan 1000. Karena (mk>3) bernilai salah, maka perintah yang dikerjakan adalah

    (tjg0.1*gapok). Kemudian gapok dan tjg dijumlahkan yang hasilnya disimpan

    sebagai gatot. Dengan demikian output yang keluar adalah 1100.

    Perhatikan tabel penyimpanan data berikut

    Perintah mk gapok tjg gatot Output

    read (mk, gapok) 2 1000

    if mk>3 then tjg 0.2*gapok else tjg 0.1*gapok endif

    100

    gatot gapok+tjg 2 1000 100 1100 write(gatot) 1100

    Keluaran algoritma : 1100

  • UMG Teknik Informatika 10

    Algoritma gaji_pegawai

    5. Percabangan Tersarang

    Percabangan tersarang adalah percabangan di dalam percabangan. Banyak sekali

    bentuknya, namun salah satu contohnya adalah sebagai berikut.

    If then

    if then

    Pernyataan1

    else

    Pernyataan2

    else

    If

    Begin

    read(mk, gapok)

    mk>3?

    End

    y

    tjg

  • UMG Teknik Informatika 11

    y t y t

    Pernyataan3

    else

    Pernyataan4

    Misalnya, buatlah algoritma untuk menentukan apakah suatu bilangan merupakan

    bilangan kelipatan 2 saja, atau kelipatan 5 saja, atau kelipatan 2 dan 5, atau bukan

    kelipatan 2 dan 5. Bilangan yang dimaksud merupakan input algorritma.

    Algoritma Kelipatan2Keliptan5

    Deklarasi

    Bil : integer

    Ket : string

    Pernyataan2

    Kondisi1

    Kondisi3

    Kondisi2

    Pernyataan1 Pernyataan4 Pernyataan3

    t y

  • UMG Teknik Informatika 12

    Deskripsi

    read (bil)

    if bil mod 2 = 0 then

    if bil mod 5 = 0 then

    Ket Kelipatan 2 dan Kelipatan 5 else

    Ket Kelipatan 2 tapi Bukan Kelipatan 5 else

    if bil mod 5 = 0 then

    Ket Bukan Kelipatan 2 tapi Kelipatan 5 else

    Ket Bukan Kelipatan 2 atau 5) Write(Ket)

    6. Menggunakan Operator Boolean

    Kita dapat menyederhanakan persoalan percabangan dengan menggunanakan operator

    boolean (and, or, not, dan xor) untuk ekspresi boolean yang lebih dari satu. Misalnya,

    sebuah univeritas memberlakukan yudisium cumlaude untuk mahasiswa yang lulus

    dengan IPK lebih besar sama dengan 3.5 dan masa kuliah tidak lebih dari 4 tahun.

    Bagaimana algoritma penentuan yudisiumnya? (Input : IPK dan masa kuliah)

    Algoritma yudisium1

    Deklarasi

    IPK, MK : real

    Ket : string

    Deskripsi

    Read (IPK,MK)

    If (IPK>=3.5) and (MK

  • UMG Teknik Informatika 13

    Penjelasan

    Mula mula IPK dan MK, misalnya, kita beri nilai 3.6 dan 4. Karena kondisi (IPK>=3.5)

    and (MK=3.5)

    and (MK

  • UMG Teknik Informatika 14

    Ket : string

    Deskripsi

    read (IPK,MK)

    if IPK>=3.5 then

    if MK

  • UMG Teknik Informatika 15

    Mula-mula dicek nilai kebenarannya. Jika benar, maka dikerjakan

    pernyataan1. Jika salah, maka dicek nilai kebenaran . Jika

    benar, maka dikerjakan pernyataan2. Jika tidak algoritma akan mengecek ke kondisi

    berikutnya dengan cara yang sama dengan yang sebelumnya. Terakhir, jika semua

    kondisi bernilai salah, maka pernyataan yang dikerjakan adalah Pernyataan(n+1).

    Bentuk flowchartnya dapat dilihat di bawah ini.

    Pada algoritma di atas pernyataan1 akan dikerjakan jika bernilai benar, jika

    tidak pemeriksan dilanjutkan ke . Jika bernilai benar maka

    pernyataan2 dikerjakan. Jika tidak, pemeriksaan dilanjutkan pada kondisi-kondisi

    berikutnya. Pemeriksaan ini terus terhadap semua kondisi yang ada. Jika tidak ada

    kondisi yang benar maka pernyataan yang dikerjakan adalah pernyataan(n+1).

    Contoh soal

    ?

    t

    aksi(n+1)

  • UMG Teknik Informatika 16

    Sebuah toko buku memberikan diskon pembelian buku dengan jumlah tertentu. Pembeli

    yang membeli 100 atau lebih mendapat diskon 40%, sedangkan pembelian sebanyak 50

    hingga 99 diberi diskon 25%. Buat algoritma menghitung total transaksi dengan input

    harga satuan buku dan jumlah pembelian.

    Algoritma pembelian

    Deklarasi

    Hrg,Disk,Ttr : real

    Jum : integer

    Deskripsi

    Read(hrg,jum)

    if jum >= 100 then

    Disk0.4

    else if jum>=50 then

    Disk0.25

    else

    Disk0

    Ttrhrg*(1-disk)

    Write(Ttr)

  • UMG Teknik Informatika 17

    Begin

    read (hrg,

    jum)

    jum>=100?

    write(ttr)

    End

    t

    disk