Jumat, 03 Mei 2013

Perulangan (Looping) dengan "WHILE-DO" dan "REPEAT-UNTIL" dalam Pascal.

Halo temen-temen, gimana kabarnya?
Meskipun negara kita lagi galau gara-gara rencana kenaikan BBM, kita tetap harus semangat dalam belajar. hehe
Ngomongi belajar, gimana tentang materi sebelumnya? setelah banyak latihan pasti temen-temen sudah tambah mahir kan? hehe
Kalau materi yang sebelumnya sudah mahir, materi kali ini pasti kecil bagi temen-temen. karena memang lebih mudah hanya perlu sedikit catatan saja, hehe

Yups, kali ini kita akan belajar Perulangan dalam Bahasa Pascal menggunakan thenik WHILE dan REPEAT.

Lets Code!!...

A. WHILE DO
while (condition) do (statement);
Algoritma dalam pengeksekusian scriptnya adalah sebagai berikut:
- Kondisi di cek terlebih dahulu (WHILE)
- Jika kondisi terpenuhi maka kerjakan statement (DO)

Contoh kasus:
Contoh1 : Saya ingin menampilkan bilangan genap mulai dari 10 hingga 20

Script lengkapnya :
program contoh1;
var
   x: integer;
begin
   x := 10; // nilai awal x
   while  x <= 20  do // pengecekan while apakah x <= 20, jika iya kerjakan statment di bawah :
   begin
      if (x mod 2) = 0 then // pengecekan sisa hasil bagi 2, jika 0 maka genap
         write(x,' ');
   
      x := x + 1; // counter pertamnbahan x
   end;
   readln;
end
Hasilnya :
10 12 14 16 18 20

B. REPEAT UNTIL
repeat
   (steatement1);
   (steatement2);
   ...
   ...
   (steatementN);
until (condition);

Algoritma dalam pengeksekusian scriptnya adalah berkebalikan dengan WHILE-DO, yaitu sebagai berikut:
- Kerjakan statement (REPEAT)
- Kemudian cek kondisi. Jika kondisi belum terpenuhi maka kerjakan statement di atas hingga kondisi terpenuhi (UNTIL)

Jadi statement akan terus di REPEAT (diulang-dikerjakan) UNTIL (hingga) kondisi terpenuhi, dan perulangan berakhir.

Contoh kasus:
Contoh2 : Saya ingin menampilkan bilangan ganjil mulai dari 1 hingga 19
program contoh2;
var
   a: integer;
begin
   a := 1;
   repeat // ulang-kerjakan
      if (a mod 2) = 1 then // pengecekan sisa hasil pembagian 2, jika 1 bilangan genap
        write(a,' ');
      a := a + 1
   until a = 20; // pembatasan repeat
end.
Hasilnya :
1 3 5 7 9 11 13 15 17 19 

DONE!! gimana mudah kan? , yups, menggunakan WHILE-DO dan REPEAT-UNTIL memang lebih mudah.
TAPI ada yang perlu di ingat, yaitu pembatasan looping, pastikan algoritma pembatasan loopingnya benar, agar tidak terjadi infinite loop (atau disebut juga endless loop atau unproductive loop) yaitu perulangan yang tidak terbatas karena kondisi tidak mungkin terpenuhi.

contoh :
program infinitieloop;
var
   a: integer;
begin
   a := 2;
   repeat
      write(a,' ');
      a := 2
   until a = 3;
end.
Program tersebut akan terus berulang dan tidak selesi karena nilai variable a tidak mungkin akan sama dengan 3.


QUESTION CORNER

Seperti yang saya sampaikan pada artikel sebelumnya , ada 3 tehnik perulangan dalam Pascal, yaitu FOR, WHILE, REPEAT.
Tapi kenapa sampai ada 3 thenik perulangan? bukan kah 1 saja cukup?
Pertanyaanya adalah kenapa sampai ada 3 tehnik perulangan di dalam Bahasa Pemprograman Pascal? Apa fungsi dan Apa pembeda ke 3 nya?

Akan kita bahas di article selanjutnya..



Yups, sekarang temen-temen sudah tau semua cara menggunakan perulangan dalam Bahasa Pemprograman Pascal, Pastinya sekarang temen-temen tamnbah mahir dong? hehe. ya udah cukup sekian dulu pembahasan kita kali ini, semoga bermanfaat dan sampai jumpa di artikel selanjutnya :D



11 komentar:

  1. saya agak kesusahan untuk menjalankan pseodecoad dengan soal seperti dibawah

    johan
    1
    johan
    2
    johan
    3
    johan
    4
    johan
    5

    bagai mana cara untuk menjalankan pseodecoad soal tersebut ??

    BalasHapus
    Balasan
    1. Kalo ane sih buat kayak gitu pake For..to..do gan :D

      Hapus
  2. cara menampilkan 4 2 1 dengan while do gimana ya gan?

    BalasHapus
  3. gan mau tanya kalau bikin kaya gini :

    *
    ***
    *****
    Tapi pakai While, bukan for..
    itu bagaimana ya gan???

    BalasHapus
  4. nanya gan kode pascal yang menampilkan hasil
    1
    4 4
    7 7 7 7
    10 10 10 10
    13 13 13 13 13
    bagai mana ya gan??

    BalasHapus
  5. gan kalau mau menampilkan hasil kaya gini gimana gan? pake while
    1 = ganjil
    2 = genap
    3 = ganjil
    4 = genap

    BalasHapus
  6. deret huruf dan aka bisa gak gan? dengan menggunakan 1 while sajA?
    misal :
    1 A 2 B 3 C 4 D 5 E

    BalasHapus
  7. Kalau menampilkan bilangan berturut-turut 2, 10, 6 Dan 12 bagaimana?

    BalasHapus
  8. 0
    01
    0123
    01234
    012345
    kalo gitu gimana ngerjain nya gan,, pake kode while do

    BalasHapus