Algoritma dan Pemrograman C++ (Perulangan)

Post on 05-Dec-2014

7.356 views 9 download

description

 

Transcript of Algoritma dan Pemrograman C++ (Perulangan)

ALGORITMADAN PEMROGRAMAN 1Semester Ganjil 2013 - 2014

Logika Perulangan

Beni Suranto, S.T., M.SoftEng

• Contoh 1:Mencetak bilangan dari 1 sampai dengan 10.

• Contoh 2:Menghitung total bilangan genap antara 5 sampai dengan 45

• Contoh 3:Menghitung banyaknya karakter 'a' dari 25 karakter yang diinputkan lewat piranti masukan

• Contoh 4:Mencetak n bilangan asli pertama. Nilai n ditentukan dari piranti masukan.

Contoh kasus

output(1)

output(2)

output(3)

output(4)

output(5)

output(6)

output(7)

output(8)

output(9)

output(10)

Algoritma Contoh 1

total 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20

+ 22 + 24 + 26 + 28 + 30

+ 32 + 34 + 36 + 38 + 40 + 42 + 44

output(total)

Algoritma Contoh 2

n_a 0

input(karakter)

if (karakter = 'a') then

n_a n_a + 1

{dst.... Diulangi sampai 25 kali}

output(n_a)

Algoritma Contoh 3

• Ada sekumpulan statement yang perlu dilakukanberulang-ulang.

• Banyaknya perulangan tergantung dari persoalan

– Bagaimana kalau ada 1000 bilangan?

– Atau 10000, dst?

• Sebuah perulangan dalam algoritma, harus dijaminberhenti.

– Sesuai sifat algoritma harus berhenti

Problem

Algoritma untuk Contoh 1

i 1

while (i<10) do

output(i)

i i + 1

10/25/2013 Nama Mata Kuliah 8

bil_genap 6

total 0

while (bil_genap < 45) do

total total + bil_genap

bil_genap bil_genap + 2

output(total)

Algoritma untuk Contoh 2

n_a 0

pencacah 1

while (pencacah < 25) do

input(karakter) {baca karakter}

if(karakter = 'a') then n_a n_a + 1

pencacah pencacah + 1

output(n_a)

Algoritma untuk Contoh 3

• Terdiri dari 2 bagian:

– Kondisi berhenti

• Kondisi yang mengakibatkan perulangan berhenti

• Dinyatakan dalam ekspresi logika

• Baik eksplisit maupun implisit

– Badan perulangan

• Statement-statement yang akan diulang

• Pengulangan statement tsb akan dilakukan jika kondisiberhenti belum terpenuhi

Perulangan

• Berdasarkan kondisi perulangan

• Format Penulisan

while <Kondisi-perulangan> do

<Statement>

• <Statement> akan diulang jika <kondisi-perulangan> terpenuhi(bernilai true)

• <Kondisi-perulangan> adalah ekspresi logika

While-do

1. Menerima 50 data suhu air, kemudian mencetak pesan di layar monitor tentang bentuk air sesuai dengan data suhu yang dimasukkan.

2. Menerima 100 bilangan, kemudian mencetak pesan di layar monitor apakah bilangan yang dimasukkan ganjil/genap.

3. Menerima 100 karakter huruf, kemudian mencetak pesan di layar monitor apakah karakter yang dimasukkan adalah huruf vokal atau bukan.

Kasus :

Algoritma untuk Soal 1

i 1

while (i<50) do

input(T)

if T ≤ 0 then

output “air membeku”

else

if T ≤ 99 then

output “air dalam bentuk cair”

else output “air menguap”

i i + 1

i 1

while (i<100) do

input(bil)

if bil mod 2 = 0 then

output “bilangan genap”

else

output “bilangan ganjil”

i i + 1

Algoritma untuk Soal 2

i 1

while (i<100) do

input(karakter)

if karakter == „A‟ or „U‟ or „I‟ or „E‟ or „O‟

then output “huruf vokal”

else

output “bukan huruf vokal”

i i + 1

Algoritma untuk Soal 3

• Berdasarkan kondisi perulangan

• Format Penulisan

do <Statement>

while <Kondisi-perulangan>

• <Statement> akan diulang jika <kondisi-perulangan> terpenuhi (bernilai true)

• <Kondisi-perulangan> adalah ekspresi logika

Do-While

Algoritma untuk soal 1 (benar?)

i 1

do

input(T)

if T ≤ 0 then

output “air membeku”

else

if T ≥ 1 and T ≤ 99 then

output “air dalam bentuk cair”

else output “air menguap”

while (i ≤ 50 ) do

i i + 1

Algoritma untuk soal 2

i 1

do

input(bil)

if bil mod 2 = 0 then

output “bilangan genap”

else

output “bilangan ganjil”

i i + 1

while (i < 100)

Algoritma untuk Contoh 3

i 1

do

input(karakter)

if karakter == „A‟ or „U‟ or „I‟ or „E‟ or „O‟

then output “huruf vokal”

else

output “bukan huruf vokal”

i i + 1

while (i < 25)

Menerima dua buah bilangan bulat antara 1..100. Buatlah algoritma untuk menghitung total penjumlahan bilangan-bilangan ganjil antara 2 bilangan tersebut.

• Menggunakan skema:

– while – do

– Boleh ada percabangan (if-then)

Tugas

input (bil_1)

input (bil_2)

bil_ganjil bil_1

if (bil_1 mod 2 == 0) then

bil_ganjil bil_ganjil + 1

total 0

while (bil_ganjil < bil_2) do

total total + bil_ganjil

bil_ganjil bil_ganjil + 2

output(total)

Solusi :

Terima kasih..