LOGIKA DAN ALGORITMA
- PERTEMUAN 5 & 6 –
PERULANGAN
Alur proses perulangan
Menyelesaikan masalah dengan melakukan perulangan satu
proses atau beberapa proses.
Biasa disebut dengan looping.
Memindahkan kontrol komputer dari akhir suatu proses
kembali ke bagian awalnya.
Contoh Proses Perulangan
Tentukan (pertama/berikutnya) nama pegawai, empname,
salarinya
Bonus=0.03*salari
Catat empname dan bonus
Kembali ke langkah awal
Start
Read empname,
salary
Bonus=0.03*salary
Write
empname, bonus
Counter
Untuk mengontrol sebuah loop.
Menghasilkan kondisi stop.
Counter merupakan sebuah variabel yang nilainya dinaikkan satu setiap kali pengulangan.
Contoh pengulangan sebanyak 50 kali.
Start
Count=1
Count
=50
No
Yes
Proses
Count = count+1
End
Perulangan For
Notasi text algoritma For Menaik :
ForVariableCounter NilaiAwal to NilaiAkhir do
Aksi-aksi
Endfor
Notasi text algoritma For Menurun :
ForVariableCounter NilaiAkhir Downto NilaiAwal do
Aksi-aksi
Endfor
For i:=1 to jmlh
Proses 1
i = jmlh
Percabangan dalam perulangan
For i:=1 to jmlh
N
Kondisi 1
Y
Instruksi 1
N
i = jmlh
Y
Instruksi 2
PercabanganDalamPerulangan;
Deklarasi Variabel;
jmlh:numerik;
Begin
……
for i:=1 to jmlh do begin
if kond 1 then instruksi 1
else instruksi 2
end
……
End
Latihan Soal
Cetak Bilangan 1-N bilangan secara Ascending dan
Descending.
Cetak tulisan “STIKOM Surabaya” sebanyak 10 kali.
Cetak Bilangan Genap mulai dari 0 sampai N bilangan.
TUGAS 5
Buat algoritma untuk menghitung nilai rata-rata dari
sejumlah nilai yang dimasukkan dari keyboard.
Buat algoritma untuk menghitung nilai faktorial dari n
bilangan, contoh : 5! = 5*4*3*2*1=120
While – Do
Pengulanganan for mengharuskan jumlah pengulangannya
harus diketahui saat akan dieksekusi.
Problem : Tampilkan tulisan berjalan di monitor, dan berhenti
jika user menekan Enter.
While – Do : Bentuk pengulangan dengan kondisi
pengulangan diperiksa pada awal struktur pengulangan.
Instruksi dalam badan pengulangan hanya dapat dilaksanakan
bila pengetesan kondisi menghasilkan nilai true.
Diagram Flowchart While – Do
Notasi penulisan :
while (kondisi) do
Aksi
endwhile
No
(Kondisi)
Yes
Notasi penulisan :
do {
Aksi;
} while (kondisi)
/*endwhile*/
Aksi-aksi
Contoh Algoritma While-Do
Algoritma Mencetak_Bilangan_Genap_<_Input
{Mencetak bilangan genap yang lebih kecil dari masukan}
Deklarasi
K, N:Integer {Pencacah pengulangan}
Diskripsi
Read(N)
K0 (Inisialisasi)
while K<= N do
write (K)
K K+2
Endwhile
{Kondisi akhir pengulangan : K>N}
Repeat – Until
Hampir sama dengan pernyataan pengulangan while-do
Jika pada pernyataan while, kondisi dicetak pada awal kalang.
Pada Repeat Until, kondisi dicetak pada akhir kalang.
Bila pernyataan while-do mengulang pernyataan selama
kondisi masih terpenuhi
Pernyataan repeat-until mengulang pernyataan selama kondisi
belum terpenuhi
Diagram Flowchart Repeat – Until
Notasi penulisan :
repeat
(pernyataan – pernyataan yang akan diulang)
until kondisi
Aksi-aksi
No
(Kondisi)
Yes
Contoh Algoritma Repeat – Until
Algoritma Mencetak_Bilangan_Genap_<_Input
{Mencetak bilangan genap yang lebih kecil dari masukan}
Deklarasi
K, N:Integer {Pencacah pengulangan}
Diskripsi
Read(N)
K0 (Inisialisasi)
repeat
write (K)
K K+2
until (k>N)
{Kondisi akhir pengulangan : K>N}
Pengulangan Bersarang
Algoritma Menampilkan_Konfigurasi_Bintang
Deklarasi
Baris, i , j : Integer
Deskripsi
read(baris)
for i 1 to Baris do
for j 1 to i do
write(“*”)
endfor
writeln // Ganti baris
endfor
LATIHAN SOAL
Buatlah deret bilangan fibonacci dimana jumlah bilangan yang ditampilkan dimasukkan.
Carilah nilai KPK dari 2 bilangan bulat yang dimasukkan dari keyboard.
Input : N=10
Output : 1 1 2 3 5 8 13 21 34 55
Input : x=10; y = 6 Output : KPK = 30
Input : x = 15; y = 25 Output : KPK = 75
Buat algoritma untuk menampilkan konfigurasi sbb :
Jika N=1, maka output di layar adalah
*
Jika N = 2, maka output di layar adalah
*
**
Jika N=3, maka output di layar adalah
*
**
***
Jika N =4, maka output di layar adalah
*
**
***
****
TUGAS 6
Buatlah deret bilangan fibonacci dimana jumlah bilangan yang
ditampilkan dimasukkan.
Input : N=10
Output : 55 34 21 13 8 5 3 1 1
Buat algoritma untuk menampilkan konfigurasi
*****
****
***
**
*
Buat algoritma untuk membentuk suatu deret
1, 1, 1, 4, 1, 9,1,16,1 ……