DECISION SUPPORT SYSTEM [MKB3493]

35
Pengulangan ALGORITMA DAN PEMROGRAMAN [IS6110102] Dosen: Yudha Saintika, S.T., M.T.I

Transcript of DECISION SUPPORT SYSTEM [MKB3493]

Page 1: DECISION SUPPORT SYSTEM [MKB3493]

Pengulangan

ALGORITMA DAN PEMROGRAMAN [IS6110102]

Dosen: Yudha Saintika, S.T., M.T.I

Page 2: DECISION SUPPORT SYSTEM [MKB3493]

Sub-Capaian Pembelajaran MK

“Mahasiswa mampu menerapkan algoritmapengulangan ke dalam pseudocode dan

program.”

Page 3: DECISION SUPPORT SYSTEM [MKB3493]

Sub-Capaian Pembelajaran MK

We Are Here !!!

Page 4: DECISION SUPPORT SYSTEM [MKB3493]

Agenda

•Pendahuluan

•Struktur Pengulangan

•Contoh kasus konstruksi FOR

•Contoh kasus konstruksi WHILE

•Contoh kasus konstruksi REPEAT

•FOR VS WHILE

•WHILE VS REPEAT

•QUIZ

Page 5: DECISION SUPPORT SYSTEM [MKB3493]

Pendahuluan

•Pengulangan digunakan untuk menjalankan satuatau beberapa pernyataan sebanyak beberapa kali.

•Dengan pengulangan, kita hanya perlu menuliskanpernyataan tersebut satu kali saja, tapi akandilakukan oleh program sebanyak yangdiperintahkan

Page 6: DECISION SUPPORT SYSTEM [MKB3493]

Struktur Pengulangan

Struktur instruksi perulangan pada dasarnya terdiri atas:

• Kondisi perulangan; suatu kondisi yang harusdipenuhi agar perulangan dapat terjadi.

• Badan (body) perulangan; deretan instruksi yangakan diulang-ulang pelaksanaannya.

• Pencacah (counter) perulangan; suatu variabel yangnilainya harus berubah agar perulangan dapatterjadi dan pada akhirnya membatasi jumlahperulangan yang dapat dilaksanakan

Page 7: DECISION SUPPORT SYSTEM [MKB3493]

Tiga Konstruksi Dasar – Jenis Pengulangan

1. For – to

2. While – Do

3. Repeat - Until

Page 8: DECISION SUPPORT SYSTEM [MKB3493]

Konstruksi For

•Konstruksi FOR digunakan untuk melakukanpengulangan sejumlah kali yang telahdispesifikasikan sebelumnya. Jumlah pengulangandiketahui atau dapat ditentukan sebelum ekseskusiprogram.

•Untuk mencacah beberapa kali pengulangandilakukan, kita memerlukan sebuah peubahpencacah (counter). Peubah ini nilainya selalubertambah satu secara otomatis

Page 9: DECISION SUPPORT SYSTEM [MKB3493]

Pengulangan: FOR

Bentuk umum For:

For <nilai awal> to <nilai akhir>

do

…………….

instruksi-instruksi

……………..

End for

Instruksi

For I = 1 to 4

Next I

Page 10: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus

“Misalkan kita ingin mencetak barisan 1,2, …, N di layar, dengan N adalah nilai yang sudah

dispesifikasikan sebelumnya (dibaca terlebihdahulu)”

Page 11: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus

PROGRAM CetakBarisan

{Mencetak 1,2,…,N; Nilai N ditentukan terlebihdahulu}

DEKLARASI

i: integer

N: integer

ALGORITMA

read(N)

for i1 to N do

write(i)

end for

Output=12345678

Page 12: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus (2)

Kita ingin menghitung nilai rata-rata dari N buah data bilangan bulatyang dibaca dari papan ketik (asumsikan N>0). Nilai rata-rata adalah

jumlah seluruh data dibagi dengan banyaknya data. Misalkan jikaN=5 dan data bilangan yang dibaca berturut-turut adalah 12, 10, 6, 2 ,

4, maka nilai rata-ratanya adalah (12 + 10 + 6 + 2 + 4)/5 = 34/5 = 6.8

Page 13: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus (2)

PROGRAM HitungRataRata

{Menghitung rata-rata N buah data bilangan bulat yang dibaca dari papan ketik. Asumsikan N>0}

DEKLARASI

N,x,i,sum:integer

rerata: real

ALGORITMA

read(N)

sum0

for i1 to N do

read(x)

sumsum+x

end for

reratasum/N

write(rerata)

Page 14: DECISION SUPPORT SYSTEM [MKB3493]

Struktur For Menurun

Adakalanya kita melakukan pengulangan dengan cacah yang menurun, yaitudari nilai cacah yang besar ke nilai cacah yang kecil. Untuk memfasilitasi haltersebut, maka kita mendefinisikan struktur FOR menurun.

For pencacah <nilai_akhir> downto <nilai_awal> do

aksi

End for

Page 15: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus

Sebuah roket diluncurkan dengan hitungan mundur(countdown), mulai dari 100, 99, 98, … , 1, 0.

Buatlah algoritma dalam bentuk pseudo-code nya.

Page 16: DECISION SUPPORT SYSTEM [MKB3493]

Pembahasan

PROGRAM PeluncuranRoket

{Hitung mundur peluncuran roket}

DEKLARASI

i: integer

ALGORITMA

for i100 downto 0 do

write(i)

end for

write(„Go!‟)

Page 17: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Soal 3

Tulislah algoritma untuk menuliskan teks lagu anak ayam turun N dengan N adalah jumlah anak ayam semula (nilai N positif dan dibaca

terlebih dahulu)

Contoh: N=5, maka lirik lagu anak ayam turun 5 tercetak seperti barisdi bawah ini:

Anak ayam turun 5, mati satu tinggal 4

Anak ayam turun 4, mati satu tinggal 3

Anak ayam turun 3, mati satu tinggal 2

Anak ayam turun 2, mati satu tinggal 1

Anak ayam turun 1, mati satu tinggal induknya

Page 18: DECISION SUPPORT SYSTEM [MKB3493]

Pembahasan

PROGRAM LaguAnakAyam

{Mencetak lagu “anak ayam”}

DEKLARASI

N,i: integer

ALGORITMA

read(N)

write(„Anak Ayam Turun‟, N)

for iN downto 2 do

write(„Anak ayam turun‟, i, „mati satu tinggal‟, i-1)

end for

write(„‟Anak ayam turun 1, mati satu tinggal induknya.‟)

Page 19: DECISION SUPPORT SYSTEM [MKB3493]

Konstruksi WHILE

Bentuk umum konstruksi WHILE adalah:

while kondisi do

aksi

end while

Penjelasan:

Sebelum memasuki badan pengulangan, kondisi diperiksa terlebihdahulu apakah masih memenuhi (benar) atau sudah tidak memenhui(salah). Aksi dikerjakan berulangkali selama kondisi masih benar (true).Jika kondisi salah (false) maka badan pengulangan tidak akan dimasuki,yang berarti pengulangan selesai.

Page 20: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus Cetak Deret

PROGRAM CetakBarisan

{Mencetak 1,2,…,N; Nilai N ditentukan terlebihdahulu}

DEKLARASI

i: integer

N: integer

ALGORITMA

read(N)

i1

while i≤N do

write(i)

ii+1

end while

Page 21: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus Mencari Rata-Rata

PROGRAM HitungRataRata

{Menghitung rata-rata N buah data bilangan bulat yang dibaca dari papan

ketik. Asumsikan N>0}

DEKLARASI

N,x,i,sum:integer

rerata: real

ALGORITMA

read(N)

sum0

i1

while i≤N do

read(x)

sumsum+x

i=i+1

end while

reratasum/N

write(rerata)

Page 22: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus Peluncuran Roket

PROGRAM PeluncuranRoket

{Hitung mundur peluncuran roket}

DEKLARASI

i: integer

ALGORITMA

i100

while i≥0 do

write(i)

ii-1

end while

write(„Go!‟)

Page 23: DECISION SUPPORT SYSTEM [MKB3493]

Kapan Sebaiknya Menggunakan WHILE?

• Sekilas antara FOR dan WHILE sama saja kegunaannya.Namun, WHILEmemiliki keunggulan yang tidak dimiliki oleh FOR.

• Pada kasus-kasus dimana jumlah pengulangan diketahui di awalprogram, WHILE dapat digunakan sebaik penggunaan FOR.

• Namun, untuk proses yang jumlah pengulangannya tidak dapatditentukan di awal, hanya struktur WHILE yang dapat kita gunakan,sebab kondisi pengulangan diperiksa di awal pengulangan. Jadimeskipun kita tidak mengetahui kapan persisnya WHILE ini berhenti,tetapi kita menjamin bahwa jika kondisi bernilai salah, pastipengulangan akan berhenti.

Page 24: DECISION SUPPORT SYSTEM [MKB3493]

Contoh

• Misalkan jika nilai-nilai ujian yang diinputkan adalah80, 50, 75, -1Maka rata-rata nilai ujian adalah (80 + 50 +75) / 3 = 68,33

• Jika nilai ujian yang diinputkan adalah80,-1Maka hanya ada satu nilai ujian yaitu 80, sehingga rata-rata nilai ujianadalah 80/1

• Jika data yang diinputkan ternyata -1,Maka, tidak ada nilai-nilai ujian yang dimasukkan sehingga rata-ratanya tidak dapat dihitung.

Untuk masalah ini, jelas kita tidak dapat menggunakan FOR karena jumlahpengulangan tidak diketahui. WHILE dapat digunakan untuk pengulangansemacam ini karena proses pembacaan data dilakukan selagi data yangdibaca tidak sama dengan -1.

Page 25: DECISION SUPPORT SYSTEM [MKB3493]

ContohPROGRAM HitungRerata

{Menghitung rata-rata ujian siswa yang dibaca dari inputan user selama data yang

dibaca tidak sama dengan -1}

DEKLARASI

i,x : integer

sum,rerata : real

ALGORITMA

sum0

i0

read(x)

while x≠-1 do

ii+1

sumsum+x

read(x)

end while

if i≠0 then

reratasum/i

write(rerata)

else

write(‘tidak ada nilai ujian yang dimasukkan’)

end if

Page 26: DECISION SUPPORT SYSTEM [MKB3493]

Konstruksi REPEAT

Bentuk umum konstruksi REPEAT adalah:

repeat

aksi

until kondisi

Penjelasan:

Konstruksi REPEAT mendasarkan pengulangan pada kondisi yangbernilai Boolean. Pemeriksaan kondisi dilakukan pada akhir setiappengulangan. Aksi dikerjakan berulang-ulang sampai kondisi terpenuhi(bernilai true).

Page 27: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus Cetak Deret

PROGRAM CetakBarisan

{Mencetak 1,2,…,N; Nilai N ditentukan terlebihdahulu}

DEKLARASI

i: integer

N: integer

ALGORITMA

read(N)

i1

repeat

write(i)

ii+1

until i>N

Page 28: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus Mencari Rata-Rata

PROGRAM HitungRataRata

{Menghitung rata-rata N buah data bilangan bulat yang dibaca dari papan

ketik. Asumsikan N>0}

DEKLARASI

N,x,i,sum:integer

rerata: real

ALGORITMA

read(N)

sum0

i1

repeat

read(x)

sumsum+x

i=i+1

until i>N

reratasum/N

write(rerata)

Page 29: DECISION SUPPORT SYSTEM [MKB3493]

Contoh Kasus Peluncuran Roket

PROGRAM PeluncuranRoket

{Hitung mundur peluncuran roket}

DEKLARASI

i: integer

ALGORITMA

i100

repeat

write(i)

ii-1

until i<0

write(„Go!‟)

Page 30: DECISION SUPPORT SYSTEM [MKB3493]

WHILE atau REPEAT

• Pada contoh-contoh sebelumnya memperlihatkan bahwa konstruksi WHILE danREPEAT ekivalen. Kita dapat menggunakan WHILE maupun REPEAT. Keduanyabenar untuk persoalan tertentu.

• Tetapi, pada beberapa persoalan, pemilihan WHILE atau REPEAT bergantungpada natural dari persoalan itu sendiri.

• Untuk mengetahui struktur mana yang lebih tepat, kita harus mengetahuiperbedaan mendasar di antara keduanya. Perbedaannya adalah padakonstruksi REPEAT, kondisi pengulangan diperiksa pada akhir dulu, barulahpengetesan kondisi dilakukan. Konsekuensinya, badan pengulangandilaksanakan paling sedikit satu kali.

• Sebaliknya pada konstruksi WHILE, kondisi pengulangan diperiksa di awalpengulangan. Konsekuensinya badan pengulangan mungkin tidak akan pernahdilaksanakan bila kondisi pengulangan pertama kali bernilai false.

Page 31: DECISION SUPPORT SYSTEM [MKB3493]

WHILE atau REPEAT

• Gunakan konstruksi WHILE pada kasus yang mengharuskan terlebih dahulupemeriksaan kondisi objek sebelum objek tersebut dimanipulasi

• Gunakan konstruksi REPEAT pada kasus yang terlebih dahulu memanipulasiobjek, baru memeriksa kondisi objek tersebut.

Contoh penggunaan WHILE benar, tetapi REPEAT salah:

Diinputkan sejumlah nilai bilangan bulat (x) dari papan ketik, namun banyaknyadata tidak diketahui. Tanda akhir pembacaan data adalah bila nilai x yang dibacaadalah -1. Anda diminta membuat algoritma yang menghitung jumlah seluruh nilaipecahannya (1/x). Contoh jika nilai x yang dibaca berturut-turut adalah 3,5,8, dan -1, maka jumlah seluruh nilai pecahannya adalah: 1/3 + 1/5 + 1/8 = 0.65833

Page 32: DECISION SUPPORT SYSTEM [MKB3493]

Pembahasan WHILE benar

PROGRAM PenjumlahanDeretPecahan

{program untuk menghitung penjumlahan deret pecahan}

DEKLARASI

x,S: integer

ALGORITMA

S0

read(x)

while x≠-1 do

SS+1/x

read(x)

end while

Page 33: DECISION SUPPORT SYSTEM [MKB3493]

Pembahasan REPEAT salah

PROGRAM PenjumlahanDeretPecahan

{program untuk menghitung penjumlahan deret pecahan}

DEKLARASI

x,S: integer

ALGORITMA

S0

read(x)

repeat

SS+1/x

read(x)

until x=-1

write(S)

Page 34: DECISION SUPPORT SYSTEM [MKB3493]
Page 35: DECISION SUPPORT SYSTEM [MKB3493]

QUIZ 1 ALPRO

1. Dibaca tiga buah bilangan bulat x, y, z. Buatlah algoritma dalambentuk pseudo-code untuk mempertukarkan tripel (x,y,z) menjadi(y,z,x).

2. Definisikan sebuah tipe terstruktur untuk menyatakan data-data nilaimata kuliah yang diambil setiap mahasiswa. Data-data yang disimpandi dalam struktur rekaman (record) adalah sebagai berikut:

a) NIM (Nomor Induk Mahasiswa)

b) NamaMhs (nama mahasiwa)

c) Mata kuliah yang diambil mahasiswa tersebut, yang terdiriatas:

- Kode mata kuliah

- Nama mata kuliah

- Nilai mata kuliah