Minggu, 22 Agustus 2010

Algoritma dan pemrograman

Pengulangan FOR

Konstruksi FOR digunakan untuk menghasilkan pengulangan sejumlah kali yang telah dispesifikasikan. Jumlah pengulangan diiketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah (variable) pencacah (counter). Peubah ini nlainya selalu bertambah satu setiap kali pengulangan dlakukan. Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti.

Bentuk umum pernyataan for adaa dua macam : menaik (ascending) atau menurun (descending):
FOR menaik :
for pencacah ← nilai_awal to nilai_akhir do
aksi
endfor
keterangan :
(i) pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. Tipe riil tidak dapat dgunakan sebagai pencacah.
(ii) Aksi dapat berupa satu atau lebih instruksi yang dulang.
(iii) nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki.
(iv) Pada awalnya, pencacah dinisialisasi dengan nilai_awal. Nilai pencacah secara ototmatis bertambah satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencach sama dengan nilai_akhir.
(v) Jumlah pengulangan yang terjadi adalah sama dengan nilai_akhir – nilai awal +1.

Contoh 1:
Mencetak pesan “selamat pagi” sebanyak 5 kali, maka algoritmanya adalah :
PROGRAM CetakBanyak_SelamatPagi
{ Mencetak ‘Selamat Pagi’ sebanyak 5 kali }

DEKLARASI
i : integer { pencacah pengulangan }
ALGORITMA :
for i ← 1 to 5 do { ulangi sebanyak 5 kali }
write ( ‘ Selamat Pagi’ )
endfor

 jumlah pengulangan sudah ditentukan sebelumnya, yaitu 5 kali sehingga kita dapat menggunakan pernyataan FOR.
 Badan pengulangan hanya berisi satu buah pernyataan, yaitu write ( ‘ Selamat Pagi’ )
 i adalah peubah pencacah yang bertpe integer
 pada mulanya i bernilai 1; nilai i selalu bertambah 1 setiap kali pengulangan dilakukan, sampai akhirnya i mencapai 5 , yang berarti proses pengulangan selesai.
 Jumlah pengulangan yang dilakukan : 5 – 1 + 1 = 5 kali

Keluaran dari algoritma ini adalah pesan “ Selamat Pagi” sebanyak 5 kali seperti dibawah ini ( asumsikan setiap pesan ditulis pada setiap baris):
Selamat Pagi
Selamat Pagi
Selamat Pagi
Selamat Pagi
Selamat Pagi

Contoh 2 :
Mencetak angka 1,2,3,……,N, yang dalam hal ini nlai N dibaca terlebih dahulu, maka algoritmanya menjadi :
PROGRAM Cetak1SampaiN
{ mencetak 1,2,3,…..,N
DEKLARASI
N : integer
i : integer
ALGORITMA :
Read (N)
for i ← 1 to N do { ulangi sebanyak N kali }
Write ( i )
endfor

Contoh 3 :
Menjumlahkan deret 1+2+3+…..+N, dengan N adalah bilangan bulat positif. Nilai N dibaca terlebih dahulu.
Algoritmanya adalah :
PROGRAM PenjumlahanDeret
{ Menjumlahkan deret
1+2+3+... +N
dengan N adalah bilangan bulat positif. Nilai N dibaca terlebih dahulu.}

DEKLARASI
N : integer
i : integer
Jumlah : integer
ALGORITMA :
read (N)
jumlah ← 0 { inisialisasi jumlah deret dengan 0 }
for i ← 1 to N { ulangi penjumlahan deret sebanyak N kali}
jumlah ← jumlah + 1
endfor
write(jumlah)

Contoh 4 :
Menghitung Rata-rata N buah bilangan bulat yang dibaca dari papan ketik. N>0
Algoritmanya adalah :
PROGRAM HitungRataRata
{ Menghitung Rata-rata N buah bilangan bulat yang dibaca dari papan ketik. N>0 }
DEKLARASI
N : integer { jumlah data, >0}
x : integer { bilangan bulat yang dibaca dari papan ketik }
i : pencacah { pencacah banyaknya pengulangan }
jumlah : integer { pencatat jumlah nilai }
rerata : real { rata-rata nilai }
ALGORITMA :
read (N)
jumlah ← 0 { nisialisasi penjumlah seluruh nilai }
for i ← 1 to N do
read (x)
jumlah ← jumlah + x
endfor
rerata ← jumlah / N
write (rerata)


FOR menurun :
for pencacah ← nilai_awal downto nilai_akhir do
aksi
endfor
keterangan :
(i) pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. Tipe riil tidak dapat dgunakan sebagai pencacah.
(ii) Aksi dapat berupa satu atau lebih instruksi yang dulang.
(iii) nilai_akhir harus lebih besar atau sama dengan nilai_awal. Jika nilai_akhir lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki.
(iv) Pada awalnya, pencacah dinisialisasi dengan nilai_akhir. Nilai pencacah secara ototmatis bertambah satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_awal.
(v) Jumlah pengulangan yang terjadi adalah sama dengan nilai_awal – nilai akhir +1.

Contoh 3 :
Sebuah roket diluncurkan dengan hitungan mundur , mulai 100,99,98,…,0. Algoritma perhitungan mundur adalah :

PROGRAM PeluncuranRoket
{ Hitung mundur peluncuran roket }
DEKLARASI
i : integer
ALGORITMA :
for i ← 100 downto 0 do
write (i)
endfor
write (‘Go!’) { roket meluncur pada saat hitungan 0}

1 komentar: