Struktur Pengulangan
Bagian 2
Materi
• Struktur FOR
• FOR Menaik
• FOR Menurun
• Nested Loop / Pengulangan bersarang
• Latihan
Struktur AlgoritmaPengulangan
• Dalam banyak kasus seringkali kita dihadapkan pada sejumlah
pekerjaan yang harus diulang berkali.
• Salah satu contoh yang gampang kita jumpai adalah balapan mobil
seperti tampak pada gambar ini Mobil-mobil peserta harus
mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam
aturan lomba. Siapa yang mencapai garis akhir paling cepat, dialah
yang menang.
Struktur pengulangan
• Kondisi pengulangan, yaitu syarat yang harus
dipenuhi untuk melaksanakan pengulangan.
Syarat ini biasanya dinyatakan dalam ekspresi
Boolean yang harus diuji apakah bernilai benar
(true) atau salah (false)
• Badan pengulangan (loop body), yaitu satu
atau lebih instruksi yang akan diulang
Struktur pengulangan
dengan For
• Pengulangan dengan menggunakan For, merupakan salah teknik
pengulangan yang paling tua dalam bahasa pemrograman.
• Hampir semua bahasa pemrograman menyediakan metode ini,
meskipun sintaksnya mungkin berbeda.
• Pada struktur For kita harus tahu terlebih dahulu seberapa banyak
badan loop akan diulang.
• Struktur ini menggunakan sebuah variable yang biasa disebut
sebagai loop’s counter, yang nilainya akan naik atau turun selama
proses pengulangan.
Struktur FOR
Struktur pengulangan FOR digunakan untuk menghasilkan
pengulangan sejumlah kali yang dispesifikasikan.
Jumlah pengulangan diketahui atau dapat ditentukan sebelum
eksekusi.
Untuk mencacah sudah berapa kali pengulangan dilakukan, kita
memerlukan sebuah peubah (variable) pencacah (counter).
Peubah ini nilainya selalu bertambah satu setiap kali
pengulangan dilakukan.
Jika cacah pengulangan sudah mencapai jumlah yang
dispesifikasikan, maka proses pengulangan berhenti.
Bentuk umum struktur FOR ada dua macam : menaik
(ascending) atau menurun (descending).
Bentuk umum FOR
• FOR menaik
• FOR menurun
StrukturalgoritmapengulangandenganFor
Algoritmauntukmencetakpernyataansebanyak100kali
FOR Menaik
• Bentuk umum:
for variabel  nilai_awal to nilai_akhir do
aksi
endfor
• Translasi dalam Bahasa Pascal:
for variabel:=a to b do
aksi;
• variabel harus bertipe sederhana kecuali tipe real
• nilai_awal harus lebih kecil atau sama dengan nilai_akhir
• Bila nilai_awal lebih besar dari nilai_akhir maka badan
pengulangan tidak dimasuki
• Pada awalnya, variabel dinisialisasi dengan nilai_awal. Nilai
variabel tersebut otomatis bertambah satu setiap kali aksi
pengulangan dimasuki, sampai akhirnya nilai variabel sama
dengan nilai_akhir.
• Jumlah pengulangan yang terjadi adalah nilai_akhir –
nilai_awal + 1
Tabel Translasi notasi Algoritma struktur pengulangan
ke notasi Pascal:
struktur Algoritma Pascal
1. FOR menaik For pencacah  a to b do
aksi
Endfor
For pencacah := a to b do
aksi;
(*Endfor*)
Catatan:
bila aksi lebih dari satu buah:
maka runtunan aksi diawali
dengan begin dan end.
For pencacah:= a to b do
begin
aksi1;
aksi2;
…..
end; (*for*)
Contoh 1
program cetak_halo;
var
n:integer;
begin
for n:=1 to 10 do
writeln('HALO');
end.
Contoh 2
program cetak_angka;
var
angka:integer;
begin
for angka:=1 to 20 do
writeln(angka);
end.
Contoh 3
program cetak_n_angka;
var
n,angka:integer;
begin
write('masukkan angka: ');
readln(n);
for angka:=1 to n do
writeln(angka);
end.
Contoh 4
program tulis_kelipatan_3;
var
i,batas:integer;
begin
write('masukkan bilangan integer: ');
readln(batas);
for i:=1 to batas do
{periksa, apakah I kelipatan 3}
if (i mod 3 = 0) then
writeln(i, ‘ ‘);
end.
5. Algoritma Hitung_Rata_Rata
algoritma hitung_rata_rata;
{menghitung rata-rata }
deklarasi
n:integer {banyaknya data, > 0}
x:integer {data bilangan yang dibaca}
k:integer {pencacah banyak bilangan}
jumlah:integer {pencatat jumlah bilangan}
rerata: real {nila rata-rata bilangan}
Deskripsi
read(n)
jumlah  0 inisialisasi penjumlah seluruh nilai}
for k  1 to n do
read(x)
jumlah  jumlah + x
endfor
rerata  jumlah/n
write(rerata)
6. Algoritma Statistik Usia(1)
Dibaca data usia N mahasiswa/I dari piranti masukan.
Tulislah algoritma untuk menghitung jumlah mahasiswa/i
yang berusia 18 tahun, jumlah mahasiswa/i yang berusia 19
tahun, jumlah mahasiswa/i yang berusia 20 tahun, jumlah
mahasiswa/i yang berusia 21 tahun, dan jumlah mahasiswa/i
yang berusia selain itu.
Penyelesaian:
Kita sediakan 5 nama peubah, misalnya:
usia18, usia19, usia20, usia21, lainnya
yang masing-masing akan mencacah jumlah siswa yang berusia 18,
19, 20, 21, dan selain itu.
Kelima nama peubah tersebut dapat kita analogkan dengan lima
buah kotak. Keadaan awal, kelima kotak itu masih kosong.
Keadaan itu sama dengan menginisialisasi kelima peubah dengan 0
usia18  0
usia19  0
usia20  0
usia21  0
lainnya  0
6. Algoritma Statistik Usia(2)
Setiap kali usia mahasiswa/i dibaca dari
piranti masukan, usia itu diperiksa apakah 18,
19, 20,21, atau lainnya. Misalkan usia yang
dibaca adalah 19, maka peubah usia19 ditambah
nilainya dengan 1:
usia19  usia19 + 1
Instruksi ini dianalogikan dengan memasukkan
sebutir batu ke dalam kotak yang bernama
usia19. setiap kali usia yang dibaca berharga
19, masukkan sebutir batu ke dalam kotak.
Jumlah batu di dalam kotak sekarang bertambah
satu dari jumlah batu sebelumnya. Hal yang
sama juga berlaku untuk kotak yang lain.
Setelah N buah pembacaan selesai dilakukan,
jumlah batu di dalam masing-masing kotak
menyatakan jumlah mahasiswa/i yang mempunnyai
usia tertentu.
6. Algoritma Statistik Usia(3)
algoritma Statistik_Usia;
{menghitung jumlah mahasiswa/i}
deklarasi
N:integer {banyaknya data, > 0}
umur:integer {usia mahasiswa/i dalam tahun}
usia18, usia19, usia20, usia21, lainnya:integer
I : integer {pencatat jumlah pembacaan data}
Deskripsi
read(N)
usia18  0
usia19  0
usia20  0
usia21  0
lainnya  0
6. Algoritma Statistik Usia(4)
for i  1 to N do
read(umur)
case(umur)
umur = 18 : usia18  usia18 + 1
umur = 19 : usia19  usia19 + 1
umur = 20 : usia20  usia20 + 1
umur = 21 : usia21  usia21 + 1
otherwise lainnya  lainnya + 1
endcase
endfor
write(usia18, usia19, usia20, usia21, lainnya)
FOR Menurun
• Bentuk umum:
for variabel  nilai_akhir downto nilai_awal do
aksi
endfor
• Translasi dalam Bahasa Pascal:
for variabel:=a downto b do
aksi;
• variabel harus bertipe sederhana kecuali tipe real
• nilai_akhir harus lebih besar atau sama dengan nilai_awal
• Bila nilai_akhir lebih kecil dari nilai_awal maka badan
pengulangan tidak dimasuki
• Pada awalnya, variabel dinisialisasi dengan nilai_akhir. Nilai
variabel tersebut otomatis berkurang satu setiap kali aksi
pengulangan dimasuki, sampai akhirnya nilai variabel sama
dengan nilai_awal.
• Jumlah pengulangan yang terjadi adalah nilai_awal –
nilai_akhir + 1
Tabel Translasi notasi Algoritma struktur pengulangan
ke notasi Pascal:
struktur Algoritma Pascal
2. FOR
menurun
For pencacah  b downto a do
aksi
Endfor
For pencacah := b downto a do
aksi;
(*Endfor*)
Catatan:
bila aksi lebih dari satu buah:
maka runtunan aksi diawali
dengan begin dan end.
For pencacah:= a downto b do
begin
aksi1;
aksi2;
…..
end; (*for*)
Contoh 7
program cetak_n_angka_menurun;
var
n,angka:integer;
begin
write('masukkan angka: ');
readln(n);
for angka:=n downto 1 do
writeln(angka);
end.
Contoh 8
program peluncuran_roket;
var
angka:integer;
begin
for angka:=100 downto 0 do
writeln(angka);
writeln(‘Go!...Roket Meluncur’);
readln;
end.
Latihan
• Menggunakan struktur FOR, buatlah program yang meminta
masukan angka N. Program akan menghitung jumlah deret angka
dari 1 sampai N dan menampilkan hasilnya. Misal N=5, maka
1+2+3+4+5=15.
• Menggunakan struktur FOR, Buatlah program yang meminta
masukan N dan masukan angka-angka sebanyak N. Program
menghitung rata-rata dari N bilangan bulat yang dimasukkan oleh
pengguna. Misal pengguna ingin menghitung rata-rata dari 3
bilangan. Maka kira-kira outputnya sebagai berikut:
Masukkan jumlah bilangan N: 3
Masukkan bilangan ke-1: 12
Masukkan bilangan ke-2: 14
Masukkan bilangan ke-3: 16
Rata-rata bilangan = 14
Latihan
• Buatlah program untuk menghitung perpangkatan:
an = a x a x a x ... x a (sebanyak n kali)
Dimana nilai a dan n dibaca dari masukan
Contoh Output:
Masukkan a: 5
Masukkan n: 4
a^n = 5 x 5 x 5 x 5 = 625
• Faktorial sebuah bilangan bulat tidak negatif n didefinisikan
sebagai
n! = 1 x 2 x 3 x ... X n, n>0
Khusus jika n = 0, 0! = 1.
Buatlah program untuk menghitung faktorial bilangan n.
Nilai n dibaca dari masukan pengguna
Nested Loop (Loop Bersarang)
• Di dalam sebuah struktur pengulangan diperbolehkan untuk
membuat pengulangan lainnya.
• Dengan kata lain, pengulangan di dalam pengulangan.
• Pada operasi FOR dalam FOR, FOR yang paling dalam akan
diselesaikan lebih dahulu, baru dieksekusi FOR yang di luar
• sehingga instruksi-instruksi yang didapat pada FOR yang paling
dalam akan paling banyak dieksekusi.
Syarat Nested Loop
• Syarat yang harus diperhatikan untuk operasi FOR
pengulangan tersarang :
• Setiap pengulangan tidak boleh menggunakan variabel counter
yang sama
• Antara pengulangan-pengulangan tersebut tidak boleh saling
berpotongan (overlapping)
Pengulangan Berpotongan
(Salah)
Pengulangan Bersarang
(Benar)
Loop yang Terpisah (Benar,
tapi bukan Nested)
Contoh Notasi Algoritma
for var1  awal1 to akhir1 do
[pernyataan]
for var2  awal2 to akhir2 do
[pernyataan]
endfor
endfor
Contoh Notasi Algoritma
while [kondisi1] do
[pernyataan]
while [kondisi2] do
[pernyataan]
endwhile
endwhile
Contoh Notasi Algoritma
repeat
[pernyataan]
repeat
[pernyataan]
until [kondisi2]
until [kondisi1]
Contoh 9
program peluncuran_roket;
var
k,p:integer;
begin
for k:=100 downto 0 do
begin
for p:=1 to 1000 do;
writeln(angka);
end;
writeln(‘Go!...Roket Meluncur’);
readln;
end.
Penjelasan
for terluar (k:=100 downto 0 do) di”putar”
sebanyak 101 kali, sedangkan for terdalam
(for p:=1 to 1000 do) di”putar” sebanyak
1000 kali.
Untuk setiap “putaran” for terluar, for
terdalam dieksekusi sebanyak 1000 kali.
Jika setiap putaran for terdalam
membutuhkan waktu a detik, maka 1000
putaran membutuhkan waktu 1000a detik.
Inilah yang disebut dengan delay.
Contoh 10
• Buatlah algoritma dan program untuk mencetak output
sebagai berikut:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
Algoritma Cetak
Algoritma cetak_angka
Deskripsi
i,j: integer
Deklarasi
for i  1 to 5 do
for j  0 to 9 do
Write(j)
endfor
endfor
Program Cetak
program cetak_angka;
var
i,j:integer;
begin
for i:=1 to 5 do
for j:=0 to 9 do
begin
write(j,‘ ‘);
if j=9 then writeln;
end;
readln;
end.
Ringkasan(1)
Salah satu keunggulan komputer dibanding
manusia adalah kemampuannya melakukan
tugas-tugas yang berulang.
Terdapat tiga macam statemen pengulangan
(repetition) yang dapat digunakan, yaitu:
statemen for,
statemen while, dan
statemen repeat.
Masing-masing statemen digunakan pada jenis
pengulangan yang berbeda, meski untuk
sebuah kasus sebuah statemen pengulangan
dapat diganti dengan statemen pengulangan
yang lain
Ringkasan(2)
Jika banyak pengulanga yang harus dilakukan
sudah diketahui, statemen for adalah
pilihan terbaik.
Jika banyak pengulangan belum diketahui,
pertanyaan tambahan dapat diajukan.
Jika pengulangan minimal dilakukan sekali,
maka digunakan statemen repeat, dan jika
tidak digunakan statemen while.
Latihan
• Buatlah algoritma dan program untuk mencetak semua bilangan yang habis
dibagi 3 mulai 1 sampai 100.
• Menggunakan Loop Bersarang, buatlah program untuk menampilkan hasil
berikut:
1 1
1 2
2 1
2 2
3 1
3 2
• Buatlah program yang meminta masukan bilangan bulat N, kemudian program
akan menampilkan hasil berikut (misal N=5):
Masukkan N: 5
*
**
***
****
*****
Latihan
• Buatlah program yang meminta masukan bilangan bulat N,
kemudian program akan menampilkan hasil berikut (misal
N=8):
Masukkan N: 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
Latihan
• Buatlah program yang meminta masukan bilangan bulat N,
kemudian program akan menampilkan hasil berikut (misal
N=8):
Masukkan N: 8
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4
5 5 5 5
6 6 6
7 7
8
Latihan
• Buatlah program yang meminta masukan bilangan bulat N,
kemudian program akan menampilkan hasil berikut (misal
N=8):
Masukkan N: 8
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
Terima Kasih

struktur pengulangan di pascal bagian 2

  • 1.
  • 3.
    Materi • Struktur FOR •FOR Menaik • FOR Menurun • Nested Loop / Pengulangan bersarang • Latihan
  • 4.
    Struktur AlgoritmaPengulangan • Dalambanyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang berkali. • Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti tampak pada gambar ini Mobil-mobil peserta harus mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam aturan lomba. Siapa yang mencapai garis akhir paling cepat, dialah yang menang.
  • 5.
    Struktur pengulangan • Kondisipengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false) • Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang
  • 6.
    Struktur pengulangan dengan For •Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua dalam bahasa pemrograman. • Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda. • Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. • Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop’s counter, yang nilainya akan naik atau turun selama proses pengulangan.
  • 7.
    Struktur FOR Struktur pengulanganFOR digunakan untuk menghasilkan pengulangan sejumlah kali yang dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah sudah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti. Bentuk umum struktur FOR ada dua macam : menaik (ascending) atau menurun (descending).
  • 8.
    Bentuk umum FOR •FOR menaik • FOR menurun
  • 9.
  • 10.
  • 11.
    FOR Menaik • Bentukumum: for variabel  nilai_awal to nilai_akhir do aksi endfor • Translasi dalam Bahasa Pascal: for variabel:=a to b do aksi; • variabel harus bertipe sederhana kecuali tipe real • nilai_awal harus lebih kecil atau sama dengan nilai_akhir • Bila nilai_awal lebih besar dari nilai_akhir maka badan pengulangan tidak dimasuki • Pada awalnya, variabel dinisialisasi dengan nilai_awal. Nilai variabel tersebut otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai variabel sama dengan nilai_akhir. • Jumlah pengulangan yang terjadi adalah nilai_akhir – nilai_awal + 1
  • 12.
    Tabel Translasi notasiAlgoritma struktur pengulangan ke notasi Pascal: struktur Algoritma Pascal 1. FOR menaik For pencacah  a to b do aksi Endfor For pencacah := a to b do aksi; (*Endfor*) Catatan: bila aksi lebih dari satu buah: maka runtunan aksi diawali dengan begin dan end. For pencacah:= a to b do begin aksi1; aksi2; ….. end; (*for*)
  • 13.
    Contoh 1 program cetak_halo; var n:integer; begin forn:=1 to 10 do writeln('HALO'); end.
  • 14.
    Contoh 2 program cetak_angka; var angka:integer; begin forangka:=1 to 20 do writeln(angka); end.
  • 15.
    Contoh 3 program cetak_n_angka; var n,angka:integer; begin write('masukkanangka: '); readln(n); for angka:=1 to n do writeln(angka); end.
  • 16.
    Contoh 4 program tulis_kelipatan_3; var i,batas:integer; begin write('masukkanbilangan integer: '); readln(batas); for i:=1 to batas do {periksa, apakah I kelipatan 3} if (i mod 3 = 0) then writeln(i, ‘ ‘); end.
  • 17.
    5. Algoritma Hitung_Rata_Rata algoritmahitung_rata_rata; {menghitung rata-rata } deklarasi n:integer {banyaknya data, > 0} x:integer {data bilangan yang dibaca} k:integer {pencacah banyak bilangan} jumlah:integer {pencatat jumlah bilangan} rerata: real {nila rata-rata bilangan} Deskripsi read(n) jumlah  0 inisialisasi penjumlah seluruh nilai} for k  1 to n do read(x) jumlah  jumlah + x endfor rerata  jumlah/n write(rerata)
  • 18.
    6. Algoritma StatistikUsia(1) Dibaca data usia N mahasiswa/I dari piranti masukan. Tulislah algoritma untuk menghitung jumlah mahasiswa/i yang berusia 18 tahun, jumlah mahasiswa/i yang berusia 19 tahun, jumlah mahasiswa/i yang berusia 20 tahun, jumlah mahasiswa/i yang berusia 21 tahun, dan jumlah mahasiswa/i yang berusia selain itu. Penyelesaian: Kita sediakan 5 nama peubah, misalnya: usia18, usia19, usia20, usia21, lainnya yang masing-masing akan mencacah jumlah siswa yang berusia 18, 19, 20, 21, dan selain itu. Kelima nama peubah tersebut dapat kita analogkan dengan lima buah kotak. Keadaan awal, kelima kotak itu masih kosong. Keadaan itu sama dengan menginisialisasi kelima peubah dengan 0 usia18  0 usia19  0 usia20  0 usia21  0 lainnya  0
  • 19.
    6. Algoritma StatistikUsia(2) Setiap kali usia mahasiswa/i dibaca dari piranti masukan, usia itu diperiksa apakah 18, 19, 20,21, atau lainnya. Misalkan usia yang dibaca adalah 19, maka peubah usia19 ditambah nilainya dengan 1: usia19  usia19 + 1 Instruksi ini dianalogikan dengan memasukkan sebutir batu ke dalam kotak yang bernama usia19. setiap kali usia yang dibaca berharga 19, masukkan sebutir batu ke dalam kotak. Jumlah batu di dalam kotak sekarang bertambah satu dari jumlah batu sebelumnya. Hal yang sama juga berlaku untuk kotak yang lain. Setelah N buah pembacaan selesai dilakukan, jumlah batu di dalam masing-masing kotak menyatakan jumlah mahasiswa/i yang mempunnyai usia tertentu.
  • 20.
    6. Algoritma StatistikUsia(3) algoritma Statistik_Usia; {menghitung jumlah mahasiswa/i} deklarasi N:integer {banyaknya data, > 0} umur:integer {usia mahasiswa/i dalam tahun} usia18, usia19, usia20, usia21, lainnya:integer I : integer {pencatat jumlah pembacaan data} Deskripsi read(N) usia18  0 usia19  0 usia20  0 usia21  0 lainnya  0
  • 21.
    6. Algoritma StatistikUsia(4) for i  1 to N do read(umur) case(umur) umur = 18 : usia18  usia18 + 1 umur = 19 : usia19  usia19 + 1 umur = 20 : usia20  usia20 + 1 umur = 21 : usia21  usia21 + 1 otherwise lainnya  lainnya + 1 endcase endfor write(usia18, usia19, usia20, usia21, lainnya)
  • 22.
    FOR Menurun • Bentukumum: for variabel  nilai_akhir downto nilai_awal do aksi endfor • Translasi dalam Bahasa Pascal: for variabel:=a downto b do aksi; • variabel harus bertipe sederhana kecuali tipe real • nilai_akhir harus lebih besar atau sama dengan nilai_awal • Bila nilai_akhir lebih kecil dari nilai_awal maka badan pengulangan tidak dimasuki • Pada awalnya, variabel dinisialisasi dengan nilai_akhir. Nilai variabel tersebut otomatis berkurang satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai variabel sama dengan nilai_awal. • Jumlah pengulangan yang terjadi adalah nilai_awal – nilai_akhir + 1
  • 23.
    Tabel Translasi notasiAlgoritma struktur pengulangan ke notasi Pascal: struktur Algoritma Pascal 2. FOR menurun For pencacah  b downto a do aksi Endfor For pencacah := b downto a do aksi; (*Endfor*) Catatan: bila aksi lebih dari satu buah: maka runtunan aksi diawali dengan begin dan end. For pencacah:= a downto b do begin aksi1; aksi2; ….. end; (*for*)
  • 24.
    Contoh 7 program cetak_n_angka_menurun; var n,angka:integer; begin write('masukkanangka: '); readln(n); for angka:=n downto 1 do writeln(angka); end.
  • 25.
    Contoh 8 program peluncuran_roket; var angka:integer; begin forangka:=100 downto 0 do writeln(angka); writeln(‘Go!...Roket Meluncur’); readln; end.
  • 26.
    Latihan • Menggunakan strukturFOR, buatlah program yang meminta masukan angka N. Program akan menghitung jumlah deret angka dari 1 sampai N dan menampilkan hasilnya. Misal N=5, maka 1+2+3+4+5=15. • Menggunakan struktur FOR, Buatlah program yang meminta masukan N dan masukan angka-angka sebanyak N. Program menghitung rata-rata dari N bilangan bulat yang dimasukkan oleh pengguna. Misal pengguna ingin menghitung rata-rata dari 3 bilangan. Maka kira-kira outputnya sebagai berikut: Masukkan jumlah bilangan N: 3 Masukkan bilangan ke-1: 12 Masukkan bilangan ke-2: 14 Masukkan bilangan ke-3: 16 Rata-rata bilangan = 14
  • 27.
    Latihan • Buatlah programuntuk menghitung perpangkatan: an = a x a x a x ... x a (sebanyak n kali) Dimana nilai a dan n dibaca dari masukan Contoh Output: Masukkan a: 5 Masukkan n: 4 a^n = 5 x 5 x 5 x 5 = 625 • Faktorial sebuah bilangan bulat tidak negatif n didefinisikan sebagai n! = 1 x 2 x 3 x ... X n, n>0 Khusus jika n = 0, 0! = 1. Buatlah program untuk menghitung faktorial bilangan n. Nilai n dibaca dari masukan pengguna
  • 28.
    Nested Loop (LoopBersarang) • Di dalam sebuah struktur pengulangan diperbolehkan untuk membuat pengulangan lainnya. • Dengan kata lain, pengulangan di dalam pengulangan. • Pada operasi FOR dalam FOR, FOR yang paling dalam akan diselesaikan lebih dahulu, baru dieksekusi FOR yang di luar • sehingga instruksi-instruksi yang didapat pada FOR yang paling dalam akan paling banyak dieksekusi.
  • 29.
    Syarat Nested Loop •Syarat yang harus diperhatikan untuk operasi FOR pengulangan tersarang : • Setiap pengulangan tidak boleh menggunakan variabel counter yang sama • Antara pengulangan-pengulangan tersebut tidak boleh saling berpotongan (overlapping)
  • 30.
  • 31.
  • 32.
    Loop yang Terpisah(Benar, tapi bukan Nested)
  • 33.
    Contoh Notasi Algoritma forvar1  awal1 to akhir1 do [pernyataan] for var2  awal2 to akhir2 do [pernyataan] endfor endfor
  • 34.
    Contoh Notasi Algoritma while[kondisi1] do [pernyataan] while [kondisi2] do [pernyataan] endwhile endwhile
  • 35.
  • 36.
    Contoh 9 program peluncuran_roket; var k,p:integer; begin fork:=100 downto 0 do begin for p:=1 to 1000 do; writeln(angka); end; writeln(‘Go!...Roket Meluncur’); readln; end.
  • 37.
    Penjelasan for terluar (k:=100downto 0 do) di”putar” sebanyak 101 kali, sedangkan for terdalam (for p:=1 to 1000 do) di”putar” sebanyak 1000 kali. Untuk setiap “putaran” for terluar, for terdalam dieksekusi sebanyak 1000 kali. Jika setiap putaran for terdalam membutuhkan waktu a detik, maka 1000 putaran membutuhkan waktu 1000a detik. Inilah yang disebut dengan delay.
  • 38.
    Contoh 10 • Buatlahalgoritma dan program untuk mencetak output sebagai berikut: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
  • 39.
    Algoritma Cetak Algoritma cetak_angka Deskripsi i,j:integer Deklarasi for i  1 to 5 do for j  0 to 9 do Write(j) endfor endfor
  • 40.
    Program Cetak program cetak_angka; var i,j:integer; begin fori:=1 to 5 do for j:=0 to 9 do begin write(j,‘ ‘); if j=9 then writeln; end; readln; end.
  • 41.
    Ringkasan(1) Salah satu keunggulankomputer dibanding manusia adalah kemampuannya melakukan tugas-tugas yang berulang. Terdapat tiga macam statemen pengulangan (repetition) yang dapat digunakan, yaitu: statemen for, statemen while, dan statemen repeat. Masing-masing statemen digunakan pada jenis pengulangan yang berbeda, meski untuk sebuah kasus sebuah statemen pengulangan dapat diganti dengan statemen pengulangan yang lain
  • 42.
    Ringkasan(2) Jika banyak pengulangayang harus dilakukan sudah diketahui, statemen for adalah pilihan terbaik. Jika banyak pengulangan belum diketahui, pertanyaan tambahan dapat diajukan. Jika pengulangan minimal dilakukan sekali, maka digunakan statemen repeat, dan jika tidak digunakan statemen while.
  • 43.
    Latihan • Buatlah algoritmadan program untuk mencetak semua bilangan yang habis dibagi 3 mulai 1 sampai 100. • Menggunakan Loop Bersarang, buatlah program untuk menampilkan hasil berikut: 1 1 1 2 2 1 2 2 3 1 3 2 • Buatlah program yang meminta masukan bilangan bulat N, kemudian program akan menampilkan hasil berikut (misal N=5): Masukkan N: 5 * ** *** **** *****
  • 44.
    Latihan • Buatlah programyang meminta masukan bilangan bulat N, kemudian program akan menampilkan hasil berikut (misal N=8): Masukkan N: 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 1 2 3 4 5 6 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1
  • 45.
    Latihan • Buatlah programyang meminta masukan bilangan bulat N, kemudian program akan menampilkan hasil berikut (misal N=8): Masukkan N: 8 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 5 5 5 5 6 6 6 7 7 8
  • 46.
    Latihan • Buatlah programyang meminta masukan bilangan bulat N, kemudian program akan menampilkan hasil berikut (misal N=8): Masukkan N: 8 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8
  • 47.