3 Macam Perulangan dalam Bahasa Pemrograman Pascal

Menjelaskan apa itu perulangan dan perbedaan antara for, while-do, dan repeat-until dalam bahasa pemrograman Pascal dengan flowchart dan contohnya

  • #programming
  • #pascal
  • #indonesian
  • Posted on 3 January 2023
  • Last Updated on 12 January 2023
  • 0.0 min read

Table of Contents

  1. Pengertian
  2. Macam-macam Perulangan
    1. Count-controlled loop
      1. For loop sederhana
      2. For loop dengan percabangan
      3. For loop rekursif
    2. Condition-controlled loop
      1. While-do
      2. Repeat-until
      3. Perbedaan while-do dengan repeat-until
    3. Perbedaan for dengan perulangan lain
  3. Catatan

Pengertian

Perulangan atau loop/looping seperti namanya adalah sebuah pernyataan yang digunakan untuk mengulang sebuah blok kode beberapa kali yang ditentukan, atau sampai kondisinya terpenuhi (true).

Macam-macam Perulangan

Perulangan dibagi menjadi 2 jenis: Count-controlled loop atau biasa disebut for, dan Condition-controlled loop yang memiliki 2 macam yaitu while-do dan repeat-until.

Count-controlled loop

Jenis perulangan ini sering ditemui dalam bahasa pemrograman lainnya, namun ada sebuah perbedaan khusus untuk for dalam bahasa pemrograman Pascal.

for VARIABLE := START to FINISH do STATEMENT;

Dimana:

  • VARIABLE adalah variabel integer sebagai penghitung (counter) perulangan. Umumnya menggunakan variabel i.
  • START adalah nilai integer awal untuk penghitungnya.
  • FINISH adalah nilai integer akhir untuk mengakhiri perulangan.
  • STATEMENT adalah pernyataan yang ingin dijalankan dalam perulangan.

Dalam bahasa Pascal secara spesifik, perulangan for hanya bisa melangkah (step) sekali kedepan +1 dengan TO atau kebelakang -1 dengan DOWNTO. Dalam artian jika awalnya 1 dan akhirnya 5, maka perulangan terjadi berurutan secara berurutan 1, 2, 3, 4, 5.

Untuk mengubah jumlah step ini hanya bisa dilakukan menggunakan condition-controlled loop.

For loop sederhana

for i := 1 to 10 do writeln(i);

Bentuk perulangan paling sederhana ini akan mengeluarkan angka 1 sampai 10.

Flowchart perulangan for
Flowchart perulangan for

For loop dengan percabangan

for i := 1 to 10 do
  begin
    if i < 5 then writeln(i, ' kurang dari 5')
    else if i = 5 then writeln(i, ' adalah 5')
    else writeln(i, ' lebih dari 5');
  end;

Percabangan dalam perulangan ini akan mengeluarkan kalimat yang berbeda dengan kondisi:

  • i kurang dari lima akan mengeluarkan i kurang dari 5
  • i sama dengan lima akan mengeluarkan i adalah 5
  • jika kedua kondisi tidak terpenuhi maka akan mengeluarkan i lebih dari 5
Flowchart perulangan for dengan percabangan else-if
Flowchart perulangan for dengan percabangan else-if

For loop rekursif

Sederhananya, perulangan rekursif adalah perulangan yang memiliki perulangan lagi didalamnya.

for i := 1 to 10 do
  begin
    writeln('BAB ', i);
    for j := 1 to 3 do writeln('BAB ', i, 'SUB BAB ', j);
  end;

Jika dilihat sekilas, dapat dianalisis bahwa:

  1. Perulangan pertama dari 1 sampai 10,
  2. Perulangan pertama mengeluarkan BAB i untuk setiap angka dalam perulangan,
  3. Perulangan kedua dari 1 sampai 3, dan
  4. Perulangan kedua mengeluarkan BAB i SUB BAB j untuk setiap angka dalam perulangan.
Flowchart perulangan for rekursif
Flowchart perulangan for rekursif

Condition-controlled loop

Condition-controlled loop atau perulangan yang dikontrol oleh suatu kondisi seperti namanya, mempunyai kondisi yang harus dipenuhi (true). Jika kondisi bernilai false maka perulangan akan dilanjutkan.

Perulangan ini dapat menyebabkan infinite loop jika kondisi yang diberikan tidak pernah dipenuhi, namun beberapa kegunaan dari infinite loop yaitu untuk memastikan bahwa program tidak akan pernah berhenti berjalan.

While-do

while CONDITION do STATEMENT;

Perulangan while-do mempunyai struktur yang serupa seperti for, namun untuk memberhentikan perulangan diperlukan kondisi yang dapat berupa apapun yang menghasilkan nilai Boolean true atau false.

Jika kondisi tidak dipenuhi, maka perulangan akan dilanjutkan, namun jika kondisi sudah dipenuhi, maka perulangan selesai. Karena perulangan while-do melakukan pengecekan kondisi sebelum menjalankan pernyataan, maka perulangan itu sendiri bisa terlewatkan jika kondisi sudah terpenuhi.

Flowchart perulangan while-do
Flowchart perulangan while-do

Contoh while-do

readln(i);
while i < 100 do
  begin
    writeln(i);
    i := i * 2;
  end;

Contoh perulangan ini, jika variabel i bernilai dibawah 100, maka variabel i akan dikalikan dengan 2. Jika input yang dimasukkan tidak bernilai dibawah 100 maka perulangan akan dilewat seluruhnya.

InputOutput
22 4 8 16 32 64
33 6 12 24 48 96
Flowchart contoh perulangan while-do
Flowchart contoh perulangan while-do

Repeat-until

repeat STATEMENT until CONDITION;

Berbalikan dengan while-do, jika kondisi pada repeat-until bernilai true maka perulangan akan dilanjutkan, jika kondisi bernilai false maka akan perulangan berhenti.

Perulangan repeat-until juga akan menjalankan pernyataan sebelum melakukan pengecekan kondisi, sehingga bisa dipastikan bahwa perulangan akan berjalan minimal 1 kali.

Flowchart perulangan repeat-until
Flowchart perulangan repeat-until

Contoh repeat-until

repeat
  begin
    writeln('masukkan dengan benar');
    readln(i);
  end;
until i = 'benar';

Pada contoh ini, perulangan akan:

  • Mengeluarkan masukkan dengan benar,
  • Membaca input user ke variabel string i, dan
  • Mengulang perulangan sampai variabel i bernilai ‘benar’.
Flowchart contoh perulangan repeat-until
Flowchart contoh perulangan repeat-until

Perbedaan while-do dengan repeat-until

Perhatikan dua potongan kode berikut dengan algoritma yang sama persis.

  1. Diberikan input untuk variabel i,
  2. Masuk kedalam bagian perulangan dengan kondisi jika i kurang dari 100 maka ulang perulangan,
  3. Mengeluarkan variabel i,
  4. Mengalikan variabel i dengan 2,
  5. Setelah perulangan selesai, keluarkan variabel i.
readln(i);
while i < 100 do
  begin
    writeln(i);
    i := i * 2;
  end;
readln(i);
repeat
  begin
    writeln(i);
    i := i * 2;
  end;
until i >= 100;
PerbedaanWhile-doRepeat-until
Letak pengecekan kondisiAwalAkhir
Jika kondisi bernilai trueMelanjutkanSelesai
Jika kondisi sudah terpenuhi sebelumnyaDilewatiBerjalan sekali

Perbedaan for dengan perulangan lain

Perbedaan yang didapat dari for dengan perulangan lain yaitu:

PerbedaanForLainnya
SintaksisWajib memiliki variabel integer penghitungHanya berupa kondisi boolean
KondisiBerupa integer yang bernilai jelasBisa dengan operator dan tipe data lain
LangkahHanya bisa naik atau turun sebanyak 1Tidak ada langkah tertentu (sesuai kondisi)

Jadi dengan perbedaan yang sudah disebutkan,

  1. Perulangan for lebih cocok digunakan jika awal dan akhirnya sudah pasti, contohnya 1 sampai 10, atau -100 sampai 0.
  2. Karena limitasi dalam menentukan jumlah langkah, perulangan for tidak cocok jika digunakan seperti halnya mengalikan variabel i dengan 2.
  3. Jika ingin menggunakan operator dan tipe data selain integer, bisa menggunakan perulangan lainnya.

Catatan

Dalam post ini digunakan bentuk flowchart paling sederhana dimana perulangan menggunakan blok percabangan untuk mengecek kondisi.

Namun seiring perkembangan zaman, ada pula bentuk flowchart lainnya seperti yang ada pada aplikasi Flowgorithm.

Flowgorithm
Flowgorithm

Lalu flowchart manakah yang lebih benar dan tepat? Tidak ada, karena flowchart sendiri digunakan untuk mempermudah dalam membaca kode, jadi tidak ada yang lebih benar dan tepat kecuali disuruh untuk membuatnya secara spesifik.

Just my 2 cents.

Loading comments...