• Tidak ada hasil yang ditemukan

Algoritma Percabangan dan Algoritma Perulangan

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma Percabangan dan Algoritma Perulangan"

Copied!
22
0
0

Teks penuh

(1)

ALGORITMA

TUGAS 2

RESUME ALGORITMA PERCABANGAN

DAN ALGORITMA PERULANGAN

Disusun Oleh :

Sakina Mawardah

Teknik Informatika

Dosen :

Asep M. Yusuf, S.T

(2)

DAFTAR ISI

A. Algoritma Percabangan... 1

1. Pengertian Algoritma Percabangan... 1

2. Ekspresi Boolean ... 1

3. Algoritma Teks dan Flowchart Percabangan ... 3

4. Percabangan Tersarang ... 6

5. Menggunakan Operator Boolean ... 8

6. Percabangan 3 Kondisi atau Lebih ... 10

B. Algoritma Perulangan ... 12

1. Pengertian Algoritma Perulangan... 12

2. Perulangan For – Do... 14

3. Perulangan While – Do ... 17

(3)

A. ALGORITMA PERCABANGAN

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.

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

(4)

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 sepertiand, or, not, xor.

Contoh operasi relasional 1. z1x and y

2. z2a=2 or b=10 3. z3not(x)

(5)

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 :

if <kondisi> then pernyataan

Jika <kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika tidak, maka pernyataan tidak dikerjakan dan proses langsung keluar dari percabangan (begin).

(6)

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.

- Dua kondisi (if-then-else) : artinya ada dua kondisi yang menjadi syarat untuk dikerjakannya dua jenis pernyataan. Bentuk umum percabangan dengan dua kondisi :

if <kondisi> then pernyataan1 else pernyataan2 A>B? y t Write(A)

(7)

Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika tidak (<kondisi> 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 <kondisi> yang bernilai benar dan <kondisi> 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.

A>B?

Write (A)

Write (B)

(8)

Berikut ini adalah beberapa contoh lainnya. a. If x > 0 then

ket‘bilangan positif’ b. if m = n

im*n write(i) c. 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) 4. Percabangan Tersarang

Percabangan tersarang adalah percabangan di dalam percabangan. Banyak sekali bentuknya, namun salah satu contohnya adalah sebagai berikut.

If <kondisi1> then if <kondisi2> then Pernyataan1 else Pernyataan2 else If <kondisi3> Pernyataan3 else

(9)

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 Kelipatan2 Kelipatan5

Deklarasi

Bil : integer Ket : string

Deskripsi read (bil)

if bil mod 2 = 0 then if bil mod 5 = 0 then

Ket  ‘ Kelipatan 2 dan Kelipatan 5’

Pernyataan2 Kondisi1 Kondisi3 Kondisi2 Pernyataan1 Pernyataan4 Pernyataan3 t y

(10)

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)

5. 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<=4) then

Ket  ‘cum laude’ else

Ket  ‘tidak cumlaude’ write (Ket) Begin read (IPK, MK) (IPK>=3.5) and (MK <=4) write(ket) End y ket <-- 'cum laude'

ket <-- 'tidak cum laude' t

(11)

Penjelasan

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

(MK<=4) bernilai benar maka perintah berikutnya adalah Ket ‘cum laude’. Sehingga ketika perintahWrite (Ket)menghasilkan output‘cum laude’. Cobalah menganalisa soal ini dengan memberikan input yang lain.

Penggunaan operator logika sangat membantu untuk menyederhanakan algoritma. Jika tidak menggunakan operator logika maka algoritmanya dapat ditulis sebagai berikut.

Algoritma yudisium2 Deklarasi IPK, MK : real Ket : string Deskripsi read (IPK,MK) if IPK>=3.5 then if MK<=4 then

Ket  ‘cum laude’ else

Ket  ‘tidak cumlaude’ else

Ket  ‘Tidak cumlaude’ write (Ket)

(12)

Di sini terlihat algoritmanya menjadi sedikit rumit. Kerumitan bertambah karena kita harus membuat percabangan dalam percabangan (percabangan

tersarang). Selain itu penulisanKet’Tidak cumlaude’harus ditulis dua kali agar tujuan algoritma dapat dicapai. Dengan demikian penggunaan operator logika dalam hal ini jelas menyederhanakan algoritma di atas.

6. Percabangan Tiga Kondisi Atau Lebih

Percabangan dengan tiga kondisi atau lebih adalah bentuk pengembangan dari dua bentuk percabangan percabangan yang telah kita bahas sebelumnya. Akan ada banyak sekali variasinya tetapi secara umum ekspresi percabangannya dapat kita tuliskan sebagai berikut.

If <kondisi1> then Pernyataan1

else if <kondisi2> then Pernyataan2

...

else if <kondisi(n-1)> then Pernyataan(n)

else

Pernyataan(n)

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

pernyataan1. Jika salah, maka dicek nilai kebenaran <kondisi2>. Jika <kondisi2> benar, maka dikerjakanpernyataan2. 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.

(13)

Pada algoritma di atas pernyataan1 akan dikerjakan jika <kondisi1> bernilai benar, jika tidak pemeriksan dilanjutkan ke <kondisi2>. Jika <kondisi2> 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 adalahpernyataan(n+1).

<kondisi1>? t aksi(n+1)<--0 aksi1 y <kondisi2> aksi2 t y

(14)

B. ALGORITMA PENGULANGAN

1. Algoritma Perulangan

Ada kalanya untuk menyelesaikan suatu masalah, satu atau beberapa perintah harus dikerjakan beberapa kali. Misalnya anda hendak menampilkan tulisan algoritma sebanyak tiga kali. Maka algoritmanya dapat ditulis

1. Mulai

2. Tulis ‘Algoritma’ 3. Tulis ‘Algoritma’ 4. Tulis ‘Algoritma’

5. Selesai

Sehingga diperoleh keluaran

Algoritma Algoritma Algoritma

Contoh lain. Anda hendak menghitung suatu bilangan dipangkatkan tiga. Maka algoritmanya dapat dituliskan

1. Mulai

2. Masukkan bilangan X 3. Set nilai Y=1

4. Kalikan X dengan Y, simpan sebagai Y 5. Kalikan X dengan Y, simpan sebagai Y

6. Kalikan X dengan Y, simpan sebagai Y

7. Tulis (Y)

(15)

Atau dalam algoritma standar ditulis Deskripsi Read(X) Y1 YX*Y YX*Y YX*Y Write(Y)

Jika input algoritma (X) adalah 2, maka dengan tabel penyimpanan data

Perintah X Y Ouput Read(X) Y1 YX*Y YX*Y YX*Y Write(Y) 2 1 4 8 16 16

Output yang dihasilkan adalah :16

Cara ini memang dapat menyelesaikan permasalahan tersebut di atas, tapi sangat tidak efisien dalam penulisannya. Bayangkan kalau pengulangannya dilakukan sebanyak 1000 kali, maka kita harus menulisnya sebanyak seribu kali pula. Tentunya akan sangat merepotkan. Untuk itu kita perlu mengenal satu lagi algoritma dasar yaitu algoritma pengulangan. Dengan algoritma ini kita cukup menuliskan perintahnya sekali untuk pengulangan berapapun banyaknya.

(16)

Bila mengacu pada bahasa pemrograman Pascal, terdapat tiga ekspresi algoritma untuk pengulangan :

1. for-do 2. while-do 3. repeat-until

Namun demikian, ketiganya memiliki komponen-komponen pengulangan yang sama yaitu :

- Kondisi pengulangan : Setiap aksi atau kumpulan aksi dikerjakan jika memenuhi kondisi tertentu. Selama kondisi terpenuhi aksi akan terus dikerjakan

- Badan pengulangan : bagian aksi yang diulang

- Nilai awal atau inisialisasi : Pemberian nilai satu atau beberapa variabel sebelum pengulangan dilakukan.

2. Pengulangan For-Do

Ada 2 macam pengulangan for-do, yaitu for-do menaik dan for-do menurun. Berikut ini adalah bentuk umumnya.

For-do menaik

For varnilai_awal to nilai_akhir do pernyataan

Flowchart for-do menaik

For-do menurun

For variabelnilai_awal downto nilai_akhir do Pernyataan

pernyataan Varni...nf

(17)

var3…1

Write (‘Halo’) Flowchart for-do menurun

Kondisi pengulangan for secara tersirat dapat dilihat pada ni (nilai_awal) dan nf (nilai_akhir); Nilai yang terkandung pada var mula-mula sama dengan nilai_awal, kemudian bertambah (berkurang) sebanyak satu, kemudian berhenti setelah var lebih besar (lebih kecil) nilai_akhir.

Karakteristik pengulangan for-do

- Aksi mula-mula dilakukan saatvar=nilai_awaldan terakhir saatvar=nilai_akhir. - Var,nilai_awaldannilai_akhirbertipe bilangan bulat (integer)

- Setiap selesai satu kali pengulanganvarberubah +1 (for-do menaik) atau –1 (for-do menurun). - Pengulangan paling sedikit dilakukan sekali, banyaknya pengulangan adalah selisihnilai_awal

dannilai_akhirditambah 1

Contoh

for i1 to 3 do

Write(‘Halo’)

Pada perintah di atas, mula-mula i diberi nilai 1. Kemudian perintah write(‘Halo’) dikerjakan. Setelah itu i bertambah satu sehingga menjadi 2, dilanjutkan dengan perintah write(‘Halo’). Proses yang sama diulang lagi hingga i bernilai tiga, perintah write(’Halo’) dikerjakan. Setelah itu proses pengulangan berhenti di situ.

pernyataan Var = ni...nf

(18)

var3…1

Write (‘Halo’) Dengan demikian outputnya dapat kita nyatakan seperti berikut :

Halo Halo Halo

Kita dapat membuat output yang sama seperti di atas dengan for-do menurun.

for i3 downto 1 do

Write(‘Halo’)

Perbedaannya, pada for-do menaik i berubah dari 1 sebanyak +1 dan berhenti setelah lebih dari 3, sedangkan pada for-do menurun, i berubah dari 3 sebanyak –1 hingga akhirnya berhenti saat i kurang dari 1. Coba tentukan bentuk dari algoritma di atas.

(19)

3. Perulangan While-Do

Secara umum algoritma while adalah : while <kondisi> do

begin

pernyataan end

sedangkan bentuk flowchartnya

Teks algoritma dan flowchart di atas menunjukkan bahwa ada pengecekan kondisi dulu sebelum aksi berikutnya dilakukan. Aksi di bawah kondisi dikerjakan jika kondisinya atau lebih tepatnya nilai boolean kondisi bernilai benar. Jika kondisi bernilai salah maka proses akan ‘melompat’ atau mengerjakan aksi yang berada di luar loop.

Contoh soal.

Buat algoritma menampilkan deret 2, 4, 6, …, N. N adalah masukan berupa bilangan genap.

Algoritma deret Deklarasi N,x : integer Deskripsi read(N) <kondisi>? Aksi y t loop

(20)

x2 while x<=N do Write(x) xx+2 x<=N x<--2 y End begin read (N) x<--x+2 t write (x)

Mula-mula inputkan nilai N, kemudian x diberi nilai 2 (proses inisialisasi). Setelah itu x dibandingkan dengan N, jika pernyataan (x<=N) bernilai benar maka x ditampilkan, lalu x ditambah 2 dan menghasilkan x baru. Setelah itu arus data kembali ke atas untuk menguji apakah pernyataan x<=N bernilai benar. Jika iya, maka proses yang sama dengan sebelumnya dilakukan kembali. Demikian seterusnya hingga pernyataan x<=N bernilai salah.

(21)

Untuk input N = 8, tabel penyimpanan datanya dapat kita nyatakan sebagai berikut.

Perintah Kondisi x N Output

Read(N) 8 x2 2 Blok pengulangan x<=N Write(x) / output xx+2 true 2 4 true 4 6 true 6 8 true 8 10 false

Jika N adalah 10 maka output algoritma deret : 2, 4, 6, 8

4. Perulangan Repeat-Until

Secara umum algoritma repeat-until adalah

repeat aksi until <kondisi>

(22)

sedangkan bentuk flowchartnya

Aksi

<kondisi> y

t

Secara umum teks dan flowchart di atas berarti bahwa aksi tidak dikerjakan lagi jika kondisi bernilai benar.

Algoritma while-do dengan repeat-until sebenarnya hampir sama, perbedaannya hanya terletak pada penempatan kondisinya. Pada while-do pengecekan kondisi diletakkan di awal loop, sedangkan pada repeat-until pengecekan kondisi dilakukan di akhir loop. Itu sebabnya pada algoritma while-do aksi bisa jadi tidak dilakukan sama sekali jika sejak awal kondisinya sudah bernilai salah. Sedangkan pada pada repeat-until aksi sekurang-kurangnya dilakukan sebanyak satu kali. (Perhatikan flowchart)

Referensi

Dokumen terkait

Data yang digunakan untuk analisis pergerakan grup sunspot adalah kelas H dan J (klasifikasi Zurich) di belahan Utara dan Selatan cakram matahari dari hasil pengamatan matahari

Pusat Pelayanan Terpadu Pemberdayaan Perempuan dan Anak yang selanjutnya disingkat P2TP2A adalah Lembaga/Wahana pelayanan bagi perempuan dan anak berbasis masyarakat

Hal ini sejalan dengan penelitian Komang Widya Nayaka dan I Nengah Kartika (2018) menyatakan semakin besar tenaga kerja yang dikeluarkan maka semakin besar pula

bahwa untuk melaksanakan ketentuan Pasal 184 ayat (1) Undang-Undang Nomor 32 Tahun 2004 tentang Pemerintahan Daerah sebagaimana telah diubah dengan Undang-Undang

Dalam upaya menjawab pertanyaan penelitian tentang hubungan intensitas eksposure media elektronik, intensitas getok tular dan minat mengunjungi makam Sunan Kalijaga

Penelitian ini bertujuan untuk mengetahui pengaruh usaha pemasaran terhadap brand awareness dan brand image produk ice cream merek Wall’s berdasarkan tanggapan mahasiswa

Hasil penelitian menunjukkan bahwa pendapatan pasien yang melakukan pencabutan gigi di RSUD Kota Tasikmalaya terbanyak pada kategori pendapatan tinggi sebanyak 20

Pada grafik 3 menunjukkan adanya peningkatan kadar hemoglobin sebesar 3,3 g/dl setelah pemberian tablet Fe yang mengandung 300 mg zat besi, 2 mg asam folat dan 1 buah