Jumat, 30 Oktober 2015

Perulangan dalam algoritma



Jika dibandingkan dengan computer, manusia mempunyai kekurangan. Salah satu kekurangannya adalah manusia tidak mampu melaksanakan suatu perintah berulangkali tanpa mengenal lelah dan bosan. Sedangkan computer sebaliknya, computer mampu melaksanakan suatu perintah berulangkali tanpa mengenal lelah dan bosan. Di dalam algoritma pengulangan loop dapat dilakukan sejumlah kali, atau sampai Kondisi berhenti pengulangan tercapai.
Struktur pengulangan secara umum terdiri dari 2 bagian:
  1. Body pengulangan, merupakan bagian algoritma  yang diulang.
  2. Kondisi pengulangan, merupakan ekspresi Boolean yang wajib dipenuhi untuk melaksanakan pengulangan. Kondisi pengulangan ini dapat dinyatakan secara eksplisit ( pemrogram ) atau inplisit ( dikelola computer itu sendiri ).
Dalam struktur pengulangan biasanya disertai dengan bagian:
  • Inisialisasi, maksudnya aksi yang dilakukan sebelum pengulangan pertama kali dilakukan.
  • Terminasi, maksudnya aksi yang dilakukan setelah pengulangan selesai dilakukan.
Inisialisasi dan terminasi tidak selalu wajib ada, namun pada berbagai kasus inisialisasi umumnya dibutuhkan.
Struktur umum pengulangan adalah sebagai berikut:
( inisialisasi )
( terminasi )
( inisialisasi ) dan ( terminasi ) pada Struktur  umum pengulangan diatas merupakan bagian yang tidak selalu harus dituliskan. Sedangkan, awal dan akhir pengulangan merupakan kata kunci yang bergantung pada kontruksi pengulangan yang digunakan.
Di dalam algoritma terdapat bermacam-macam konstrusi yang berbeda. Ada beberapa konstruksi pengulangan yang dapat digunakan/ dipakai untuk masalah yang sama, tetapi ada juga onstruksi pengulangan yang hanya bisa dipakai untuk masalah tertentu. Untuk memilih konstruksi pegulangan yang tepat seharusnya bergantung pada masalah yang akan diprogram. Karena pemilihan konstruksi pengulangan mempengaruhi kebenaran algoritma untuk masalah tertentu. Notasi konstruksi pengulangan dalam bentuk pernyataan ada 3 macam, yaitu:
a. Pernyataan FOR
Merupakan konstruksi pengulangan tanpa kondisi ( unconditional looping ), artinya perintah-perintah yang ada di dalam badan pengulangan diulangi sejumlah kali yang dispesifikasikan oleh pemrogram. Jadi, jumlah pengulangan sudah diketahui/ dapat dtentukan sebelum konstruksi pengulangan eksekusi.
Pernyataan dengan to adalah suatu pernyataan yang menjalankan program dengan urut/ semestinya/ dari kecil sampai ke yang besar, misalnya: dari angka 1 sampai angka 5. Example:
Example 1.
uses wincrt;

var a : integer :
begin
  for a := 1 to 5 do
  writeln(a);
end.
Output:
1
2
3
4
5
Example 2.
Program CetakBanyak_BelajarYangRajinYa
uses wincrt;

var x : integer ;
begin
  for x := 1 to 5 do
  writeln(’Belajar Yang Rajin Ya!’);
end.
Output:
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Ada pula pernyataan dengan downto, maksudnya pernyataan yang menjalankan progran secara terbalik yaitu yang besar ke yang kecil, misalnya dari angka 5 ke angka 1. Example:
uses wincrt;

var y : integer ;
begin
  for y := 5 downto 1 do
  writeln(y);
end.
Output:
5
4
3
2
1
Selain kedua pernyataan diatas, ada juga for di dalam for.
Misalnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
uses wincrt;
var x,y,z : integer ;
begin
  for x := 1 to 6 do begin
    writeln(’tidak’, x);
    writeln;
    for y := 5 to 9 do begin
      z := x * 500;
      writeln(z + y, ’ ’, y);
    end;
  end;
  readln;
end.
Output:
tidak 1
505 5
506 6
507 7
508 8
509 9
…….
…….
Tidak 6
3005 5
3006 6
3007 7
3008 8
3009 9
b. Pernyataan While
Merupakan pengulangan dengan kondisi ( conditional looping ), maksudnya perintah-perintah yang ada di dalam badan pengulangan diulangi sampai kondisi berhenti terpenuhi yaitu dengan menentukan kondisi berhenti pengulangan. Tetapi jumlah pengulangan tidak diketahui sebelum eksekusi.
Struktur umum pernyataan While:
1
2
3
while kondisi do
  pernyataan
endwhile
Jadi, pernyataan While akan berjalan berulang terus apabila belum menemukan nilai false, tetapi kalau kondisi bernilai true maka pengulangan akan terus berjalan.
Sedangkan, apabila pengulangan berjalan terus tanpa henti berarti pengulangan tersebut pada logika algoritma algoritma yang salah.
Example:
1
2
3
4
5
6
7
8
9
10
uses wincrt:

var c : integer ;
begin
  c := 1;
  while(c<5) do begin
    writeln(’tidak’, c);
    a := a + 1;
  end;
end.
c. Pernyataan Repeat
Merupakan pengulangan dengan kondisi ( conditional looping ), maksudnya perintah-perintah yang ada di dalam badan pengulangan diulangi sampai kondisi berhenti terpenuhi yaitu dengan menentukan kondisi berhenti pengulangan. Tetapi jumlah pengulangan tidak diketahui sebelum eksekusi.
Struktur umum pernyataan Repeat:
1
2
3
repeat
  pernyataan
until kondisi
Jadi, bisa diartikan bahwa apabila program itu dijalankan dengan kondisi bernilai false dan masih saja bernilai false, maka proses akan terus berlangsung. Tetapi apabila kondisi sudah menemukan nilai true maka proses akan berhenti. Karena nilai true yang dicari. Disamping itu, apabila pengulangan tidak berhenti/ berjalan terus tanpa henti maka terdapat logika algoritma yang salah.
Example:
1
2
3
4
5
6
7
8
uses wincrt;

var a : integer ;
begin
  repeat
  writeln(’tidak’, a);
  until(a=5);
end.
Output:
tidak 0
tidak 1
tidak 2
tidak 3
tidak 4
# Dari pernyataan diatas, pada While dan Repeat terlihat jelas ada perbedaan antara kedua pernyataan tersebut. Perbedaan tersebut adalah:
a. Pernyataan While
1
2
3
while kondisi do
  pernyataan
endwhile
b. Pernyataan Repeat
1
2
3
repeat
  pernyataan
until kondisi