decision support system [mkb3493] -...
TRANSCRIPT
Pengulangan
ALGORITMA DAN PEMROGRAMAN [IS6110102]
Koordinator Mata Kuliah :Fathushahib, S.Kom., M.KomTim Dosen: Yudha Saintika, S.T., M.T.I
Sub-Capaian Pembelajaran MK
“Mahasiswa mampu menerapkan algoritmapengulangan ke dalam pseudocode dan
program.”
Sub-Capaian Pembelajaran MK
We Are Here !!!
Mid Test
Agenda
•Pendahuluan
•Struktur Pengulangan
•Contoh kasus konstruksi FOR
•Contoh kasus konstruksi WHILE
•Contoh kasus konstruksi REPEAT
•FOR VS WHILE
•WHILE VS REPEAT
•QUIZ
Pendahuluan
•Pengulangan digunakan untuk menjalankan satuatau beberapa pernyataan/aksi/instruksi secaraberulang kali.
•Dengan pengulangan, kita hanya perlu menuliskanpernyataan tersebut satu kali saja, tapi akandilakukan oleh program sebanyak yangdiperintahkan
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
Tiga Konstruksi Dasar – Jenis Pengulangan
1. For – to
2. While – do
3. Repeat - until
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
Pengulangan: FOR
Bentuk umum For:
For <nilai awal> to <nilai akhir>
do
…………….
instruksi-instruksi
……………..
End for
Instruksi
For I = 1 to 4
Next I
Contoh Kasus
“Tinjau kembali barisan yang diberikan padapertemuan sebelumnya. Misalkan kita ingin
mencetak barisan 1,2, …, N di layar, dengan N adalah nilai yang sudah dispesifikasikansebelumnya (dibaca terlebih dahulu)”
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
Contoh Kasus (2)
Kita ingin menghitung nilai rata-rata dari N buahdata bilangan bulat yang dibaca dari papan ketik(asumsikan N>0). Nilai rata-rata adalah jumlah
seluruh data dibagi dengan banyaknya data. Misalkan jika N=5 dan data bilangan yang dibacaberturut-turut adalah 12, 10, 6, 2 , 4, maka nilai
rata-ratanya adalah (12 + 10 + 6 + 2 + 4)/5 = 34/5 = 6.8
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)
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
Contoh Kasus
Sebuah roket diluncurkan dengan hitungan mundur(countdown), mulai dari 100, 99, 98, … , 1, 0.
Buatlah algoritma dalam bentuk pseudo-code nya.
Pembahasan
PROGRAM PeluncuranRoket
{Hitung mundur peluncuran roket}
DEKLARASI
i: integer
ALGORITMA
for i100 downto 0 do
write(i)
end for
write(‘Go!’)
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
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.’)
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.
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
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)
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!’)
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.
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.
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
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).
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
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)
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!’)
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.
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
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
Pembahasan REPEAT salah
PROGRAM PenjumlahanDeretPecahan
{Hitung mundur peluncuran roket}
DEKLARASI
x,S: integer
ALGORITMA
S0
read(x)
repeat
SS+1/x
read(x)
until x=-1
write(S)
Contoh Latihan Pengulangan
Tuliskan algoritma dalam bentuk pseudo-code untukmencetak gambar segitiga bintang sebanyak N baris, setiap
baris ke-i berisi i buah bintang. Nilai N dibaca dari papanketik!
Contoh masukan: N = 5Keluaran:
***************
Penyelesaian
*
**
***
****
*****
Baris ke-1 terdiri dari 1 bintang, baris ke-2 dua bintang, baris ke-3 tigabintang, dan seterusnya. Secara umum, baris ke-i terdiri dari i bintang.
Pseudo-Code Bintang
PROGRAM CetakSegitigaBintang
{Program untuk mencetak segitiga bintang dengantinggi segitiga = N}
DEKLARASI
N,i,j : integer
ALGORITMA
read(N)
for i1 to N do
for j1 to i do
write(‘*’)
end for
end for
Kisi-Kisi UTS
1. Soal UTS terdiri dari Essay berjumlah 6 Nomor.
2. Waktu Pengerjaan 90 menit.
3. Sifat Ujian Close Book, No Electronice Device
4. Materi UTS dari pertemuan ke-1 hingga pertemuan ke-6 (Pengulangan)
5. Soal Essay berupa konsep dasar algoritma, pembuatan pseudo-code(runtunan-pengulangan), pembuatan tipe bentukan, dan pembuatanflowchart.
6. Pengerjaan soal yang berupa pseudo-code harus memuat komponen-komponen PROGRAM, DEKLARASI, dan ALGORITMA.
7. Pengerjaan soal yang berupa tipe bentukan hanya memuat DEKLARASIdan Cara mengacu masing-masing field.
Baca seluruh materi yang ada pada buku Rinaldi Munir beserta soal-soallatihannya.
QUIZ 1 ALPROCLOSE BOOK, NO ELECTRONIC DEVICES, PERHATIKAN JARAK TEMPAT DUDUK
SOAL:
1. Definisikan sebuah tipe terstruktur untuk menyatakan data-data nilai mata kuliah yangdiambil setiap mahasiswa. Data-data yang disimpan di dalam struktur rekaman (record)adalah sebagai berikut:
a) NIM (Nomor Induk Mahasiswa)
b) NamaMhs (nama mahasiwa)
c) Mata kuliah yang diambil mahasiswa tersebut, yang terdiri atas:
- Kode mata kuliah
- Nama mata kuliah
- Nilai mata kuliah
2. Indeks nilai mahasiswa ditentukan berdasarkan nilai ujian yang diraihnya. Ketentuanpemberian nilai indeks adalah sebagai berikut:
Jika nilai ujian ≥ 80, maka nilai = A
Jika 70 ≤ nilai ujian < 80, maka indeks nilai = B
Jika 55 ≤ nilai ujian < 70, maka indeks nilai = C
Jika 40 ≤ nilai ujian < 55, maka indeks nilai = D
Jika nilai ujian < 40, maka indeks nilai = E
Buatlah algoritma (pseudo-code) yang membaca nama mahasiswa dan nilaiujiannya, lalu menentukan indeks nilainya, kemudian mencetak nama mahasiswa,nilai ujian, dan indeksnya!