Nama lain dari algoritma perulangan adalah

Nama lain dari algoritma perulangan adalah

Perulangan (looping) adalah suatu bagian yang digunakan untuk mengulang suatu proses sesuai dengan yang diinginkan. Perulangan dibedakan menjadi tiga, yaitu perulangan for, perulangan while, dan perulangan repeat until (do while).

1. Perulangan For

Perulangan dengan for adalah perulangan yang sudah jelas diketahui berapa banyak pengulangan yang harus dilakukan. Dengan kata lain perulangan ini sudah jelas berapa nilai awal dan berapa nilai akhir (batas) perulangannya.

2. Perulangan While

Perulangan dengan while adalah perulangan yang belum diketahui berapa banyak pengulangan yang harus dilakukan. Perulangan ini dapat dilakukan jika memenuhi kondisi perulangan. Biasanya kondisi yang digunakan berupa angka dengan nilai awal dan nilai akhir (batas), tetapi dalam beberapa kasus seperti pencarian menggunakan karakter/string sebagai kondisi akhirnya.

3. Perulangan Repeat Until (Do While)

Perulangan dengan repeat until (do while) adalah perulangan yang belum diketahui berapa banyak pengulangan yang harus dilakukan. Perulangan ini dilakukan dengan melakukan satu kali proses yang ada di perulangan kemudian mengikuti kondisi, jika memenuhi kondisi maka pengulangan akan dilakukan dan jika tidak memenuhi kondisi maka pengulangan akan berhenti. Biasanya kondisi yang digunakan berupa angka dengan nilai awal dan nilai akhir (batas), tetapi dalam beberapa kasus seperti pencarian menggunakan karakter/string sebagai kondisi akhirnya.

Perbedaan Perulangan Berdasarkan Jenisnya

Perbedaan Perulangan
For While Repeat Until (Do While)
Kondisi Tidak ada Di atas Di bawah
Bergantung Pada Nilai awal dan nilai akhir Kondisi Kondisi
Perulangan Minimal 0 kali 0 kali 1 kali

Algoritma Perulangan

Pengulangan / looping adalah pelaksanaan suatu instruksi berulang kali. Di dalam algoritma, pengulangan dapat dilakukan sejumlah kali, atau sampai kondisi berhenti pengulangan tercapai.

Struktur PengulanganBentuk Umum:     <inisialisasi>                              awal pengulangan                              badan pengulangan                              akhir pengulangan

                           <terminasi>

  • <inisialisasi>: aksi yang dilakukan sebelum pengulangan dilakukan untuk pertama kalinya.
  • Badan pengulangan: bagian algoritma yang diulang
  • <terminasi>: aksi yang dilakukan setelah pengulangan selesai dilaksanakan
  • <inisialisasi> dan <terminasi> tidak selalu ada, namun pada berbagi kasus inisialisasi umumnya diperlukan awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang digunakan.

Macam struktur pengulangan
Struktur FOR    pengulangan tanpa kondisi (unconditional looping) jumlah pengulangan sudah diketahui         

                         sebelum eksekusi

Struktur WHILE 

                             pengulangan dengan kondisi (conditional looping) jumlah pengulangan tidak diketahui       

                             sebelum eksekusi program. Yang dapat ditentukan hanya kondisi berhenti
Struktur REPEAT  pengulangan (instruksi-instruksi di dalam badan pengulangan diulangi sampai kondisi       

                             berhenti terpenuhi)

Struktur FOR

  • Struktur pengulangan FOR digunakan untuk mengulang statemen atau satu blok statemen berulang kali.
  • Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi.
  • Untuk mencacah sudah jumlah pengulangan diperlukan 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:– Menaik (ascending)

– Menurun (descending)

FOR menaik

for pencacah <- nilai_awal to nilai_akhir do

    aksi

endfor

  • pencacah -> menggunakan tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter (tipe riil tidak dapat digunakan sebagai pencacah)
  • aksi -> satu atau lebih instruksi yang diulang.
  • nilai_awal harus lebih kecil atau sama dengan nilai_akhir (jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki)
  • pada awalnya pencacah diinisialisasikan dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir
  • jumlah pengulangan yang terjadi = nilai_akhir – nilai_awal + 1

Contoh: Mencetak tulisan ‘Informatika’ sebanyak 5 kali

Algoritma CETAK_INFORMATIKA

    { Mencetak ‘Informatika’ sebanyak 5 kali }DEKLARASI     k : integer { pencacah pengulangan }

DESKRIPSI :

for k¬1 to 5 do { ulangi sebanyak 5 kali }    write(‘Informatika’)

endfor


Program CETAK_INFORMATIKA;   { Mencetak ‘Informatika’ sebanyak 5 kali }    (* DEKLARASI *)

var

   k : integer;   (* DESKRIPSI *)

begin


  for k := 1 to 5 do
  writeln(‘Informatika’);  (*endfor*)

end.

  • Struktur FOR dapat digunakan sebagai penyelesaian karena jumlah pengulangan sudah ditentukan sebelumnya (5 kali) 
  • Badan pengulangan hanya berisi satu instruksi, yaitu write(‘Informatika’)
  • k adalah peubah pencacah yang bertipe integer
  • pada mulanya k bernilai 1, nilai k selalu bertambah 1 setiap kali pengulangan dilakukan, sampai akhirnya k mencapai 5
  • Jumlah pengulangan yang dilakukan: 5 – 1 + 1 = 5 kali
  • Keluaran dari algoritmaCETAK_INFORMATIKA adalahstring ‘Informatika’ sebanyak 5kali:

Informatika

Informatika

InformatikaInformatika

Informatika

Contoh:Menghitung jumlahangka-angka dari 1sampai N.jumlah = 1 + 2 + 3 + ... + NNilai N dibaca terlebihdahulu dari pirantimasukan. Misalnya,jika N = 5, makajumlah angka dari 1sampai 5 adalah deret

1 + 2 + 3 + 4 + 5 = 15


Algoritma PENJUMLAHAN_DERET  { Menjumlahkan deret 1 + 2 + 3 + ... + N, dengan N adalah bilangan bulat positif yang dibaca dari piranti

     masukan }

DEKLARASI  k : integer { pencacah pengulangan }

  N, jumlah : integer


DESKRIPSI :

read(N) { banyaknya suku deret }

jumlah ¬ 0for k¬1 to N do { ulangi sebanyak N         kali }jumlah ¬ jumlah + kendfor

write(jumlah)


Program PENJUMLAHAN_DERET;

{ Menjumlahkan deret 1 + 2 + 3 + ... + N, dengan N adalah bilangan bulat positif yang dibaca dari piranti   masukan }(* DEKLARASI *)vark, N, jumlah : integer;(* DESKRIPSI *)beginwrite(‘Masukkan banyaknya suku deret : ‘);readln(N);jumlah := 0;for k := 1 to N dojumlah := jumlah + k;(*endfor*)writeln(jumlah);

end.


Contoh:Menghitung nilai rata-rata dari N buah data bilangan bulat yang dibaca dari piranti masukan. Nilai rata-rata adalah jumlah seluruh nilai dibagi dengan banyaknya nilai.Misalkan, N = 5 dan data bilangan yang dibaca berturut-turut adalah 12, 10, 6, 2, 4, maka nilai rataratanyaadalah:(12 + 10 + 6 + 2 + 4)/5 = 34/5

= 6.8


Algoritma HITUNG_RATA_RATA{ Menghitung rata-rata N buah bilangan bulat yang dibaca dari

piranti masukan. N > 0. }

DEKLARASIk : integer { pencacah pengulangan }N : integer { jumlah data, > 0 }x : integer { bilangan bulat yangdibaca }jumlah : integer

rata : real

DESKRIPSI :read(N) { banyaknya suku deret }jumlah ¬ 0for k¬1 to N do { ulangi sebanyak Nkali }read(x)jumlah ¬ jumlah + xendforrata ¬ jumlah/N

write(rata)


Program HITUNG_RATA_RATA;{ Menghitung rata-rata N buah bilangan bulat yang dibaca dari piranti masukan. N > 0. }(* DEKLARASI *)vark, N, x, jumlah : integer;rata : real;(* DESKRIPSI *)beginwrite(‘Masukkan banyaknya suku deret : ‘);readln(N);jumlah := 0;for k := 1 to N dobeginwrite(‘Bilangan ke-’,k,’ : ‘);readln(x);jumlah := jumlah + x;end;rata := jumlah/N;writeln(rata);

end.

  • Pencacah pengulangan tidak harus bertipe integer. Tipe lain pun juga dapat dijadikan sebagai pencacah asalkan tipe tersebut memiliki keterurutan (ada predecessor dan successor. Bilangan bulat dan karakter adalah tipe data yang memiliki predecessor dan successor. Bilangan riil tidak memiliki predecessor dan successor sehingga ia tidak dapat digunakan sebagai pencacah.

FOR menurun

 for pencacah¬nilai_akhir downto nilai_awal do
aksi
endfor

  • pencacah -> menggunakan tipe data yang memilki predecessor dan successor, yaitu integer atau karakter (tipe riil tidak dapat digunakan sebagai pencacah.
  • aksi adalah satu atau lebih instruksi yang diulang)
  • nilai_akhir harus lebih besar atau sama dengan nilai_awal (Jika nilai_akhir lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki)
  • pada awalnya pencacah diinisialisasikan dengan nilai_akhir. Nilai pencacah secara otomatis berkurang satu setiap kali aksi diulangi, sampai akhirnya nilai pencacah sama dengan nilai_awal. 
  • jumlah pengulangan yang terjadi = nilai_akhir – nilai_awal + 1 

Contoh: Mencetak angka 5, 4, …, 1

Algoritma CETAK_ANGKA_TURUN   { Mencetak 5, 4, ..., 1 ke piranti keluaran }DEKLARASIk : integer { pencacah pengulangan }DESKRIPSI :for k¬5 downto 1 dowrite(k)endfor

Program CETAK_ANGKA_TURUN;

{ Mencetak 5, 4, ..., 1 ke piranti keluaran }

(* DEKLARASI *)vark : integer;(* DESKRIPSI *)beginfor k := 5 downto 1 dowrite(k,’ ‘);(*endfor*)

end.

Pada algoritmaCETAK_ANGKA_TURUN,angka-angka yang dicetak bersesuaian dengan nilai pencacah pengulangan. Keluaran dari algoritma adalah angka 5 yang turun sampai ke angka 1:

5 4 3 2 1


Page 2