Program Perulangan While Do dalam Program Pascal
ilmuit.id - Pada tulisan sebelumnya telah di bahas tentang program perulangan dengan menggunakan konstruksi FOR DO kali ini kita kan membahas tentang program perulangan dalam pascal menggunakan konstruksi WHILE DO, Jika sebelumya kita menggunakan perulangan FOR DO dimana jenis perulangan ini digunakan untuk perulangan yang jumlah perulanganya sudah di ketahui
Perulangan FOR DO dan FOR DOWNTO DO yang saya bahas sebelum ini digunakan untuk kondisi dimana kita sudah tahu berapa banyak jumlah perulangan yang ingin di lakukan. Dalam FOR DO, nilai awal perulangan dan nilai akhir sudah harus ditulis di awal kode program.
Baca Juga :
Untuk situasi dimana jumlah perulangan belum bisa dipastikan, kita bisa menggunakan perulangan WHILE DO atau REPEAT UNTIL. tetapi kali ini yang akan focus pembahasn kita kali ini adalah perulangan menggunakan konstruksi WHILE DO
- Perulangan while merupakan perulangan dimana kondisi harus di periksa terlebih dahulu, sebuah blok akan di ulang berdasarkan pemeriksaan sebuah kondisi,
- - Jika hasil pemeriksaan Kondisi menghasilkan nilai benar ( true ) maka dilakukan pengulangan.
- - Jika hasil pemeriksaan kondisi menghasilkan nilai salah ( false ) maka akan di abaikan.
Format Penulisan WHILE DO PASCAL
{ untuk penulisan hanya satu statement }
while ( kondisi ) do
statement;
( kode pengubah kondisi )
{ untuk penulisan lebih dari satu statement }
while ( kondisi ) do
begin
statement;
statement;
statement;
statement;
......
( kode pengubah kondisi )
end;
***
Poin penting dalam perulangan menggunakna WHILE DO ada pada dua kunci yaitu KONDISI dan KODE PENGUBAH KONDISI,
- Kondisi : sebagai syarat agar perulangan dapat dilakukan, Selama syarat terpenuhi ( TRUE ) maka perulangan di jalankan
- Kode pengubah Kondisi : Berfungsi untuk menaikan counter .
Program.1 WHILE DO Heloo Word Pascal :
program while_do_1;
uses crt;
var
i:integer;
begin
clrscr;
i:=1;
while (i <= 20) do
begin
writeln('hello world');
i:=i+1;
end;
readln();
end.
uses crt;
var
i:integer;
begin
clrscr;
i:=1;
while (i <= 20) do
begin
writeln('hello world');
i:=i+1;
end;
readln();
end.
Penjelasan program diatas adalah :
Kode " while ( i <= 20 ) do " merupakan kode dimana syarat perualangan dapat di jalankan jika menghasilkan nilai benar jika salah maka akan di abaikan
Jika syarat terpenuhi maka blok " begin dan end " baris perintah " writeln ('heloworld') ;" akan di eksekusi
Di kode program berikutnya ada baris " i := i + 1 ; " ini disebut INCREMENT, kode ini bertujuan untuk menambah variabel counter i bertambah 1 setiap kali loop, ini akan menambah merubah kondis variabel " i <= 20 " yang awalnya 1 di awal perulangan, Jika tidak ada kode program ini maka perulangan tidak akan pernah berhenti atau ( infinity loop )
Program.2 WHILE DO
• Perintah while-do yang dijalankan pada setiap perulangan adalah writeln(‘Variabel i sekarang bernilai: ‘,i). Ini akan membantu kita melihat nilai variabel counter i yang terus bertambah 1 selama perulangan berjalan.
Program.3 WHILE DO Kelipatan
• Point penting disini bagaimana menentukan kondisi awal variabel i, dan kondisi akhir dari perulangan.
Dengan membuat i := 3 , dan while i <= 30 do, artinya nilai i akan mulai dari 3, 6, 9, 12, 15, 18, 21, 24, 27 dan 30.
Dengan membuat i := 3 , dan while i <= 30 do, artinya nilai i akan mulai dari 3, 6, 9, 12, 15, 18, 21, 24, 27 dan 30.
Perulangan Mundur ( Besar ke kecil ) dengan WHILE DO
Jika menggunakan FOR maka kita menggunakan kunci DOWNTO tetapi didalam perulangan WHILE DO Perulangan dari besar ke kecil menggunakan kode pengubah , kita bisa mengubah nilai awal variabel counter dan kondisi syarat dari perulangan WHILE DO. Berikut contohnya :
Dengan kode i:= i - 1 ; disini yang harus kita perhatikan adalah insialisasi awal ( i := 10 )
agar kondisi dapat berjalan kondisi while i >= 0 ;
pemberiann nilai awal harus benar karena jika salah maka akan terjadi Infinity Lopp atau perulangan yang tidak berbatas
Infinity Loop
Terjadi karena kondisi selalu bernilai true misalkan contoh program sederhana di bawah ini dimana kondisi selalu bernilai true / benar maka eksekusi perualangan akan dilakuakn tanpa henti
Contoh program diatas akan menampilkan output infinity loop karena kondisi selalu bernilai true
while a < 20 do ; ( menghasilkan nilai true ) serta tidak adanya kode pengubah atau counter yang menambah nilai variabel a sehingga nialai variabel a dapat melebihi nilai batas kondis a > 20 ;
agar kondisi dapat berjalan kondisi while i >= 0 ;
pemberiann nilai awal harus benar karena jika salah maka akan terjadi Infinity Lopp atau perulangan yang tidak berbatas
Infinity Loop
Terjadi karena kondisi selalu bernilai true misalkan contoh program sederhana di bawah ini dimana kondisi selalu bernilai true / benar maka eksekusi perualangan akan dilakuakn tanpa henti
Contoh program diatas akan menampilkan output infinity loop karena kondisi selalu bernilai true
while a < 20 do ; ( menghasilkan nilai true ) serta tidak adanya kode pengubah atau counter yang menambah nilai variabel a sehingga nialai variabel a dapat melebihi nilai batas kondis a > 20 ;
Cara Kerja Break pada Perulangan While
Dalam Pascal, break adalah perintah yang digunakan untuk menghentikan perulangan secara paksa, bahkan jika kondisi perulangan belum terpenuhi. break biasanya digunakan saat kita ingin keluar dari perulangan berdasarkan kondisi tertentu yang terjadi di tengah-tengah proses perulangan. Penggunaan break ini sangat berguna untuk menghemat waktu eksekusi program dan menghindari perulangan yang tidak perlu.
Ketika break dieksekusi, program langsung keluar dari blok perulangan (baik while, for, maupun repeat), dan melanjutkan eksekusi di luar perulangan tersebut.
Contoh Penggunaan break
Misalkan kita ingin mencari angka ganjil pertama yang lebih besar dari 20. Dengan menggunakan while dan break, kita bisa keluar dari perulangan segera setelah menemukan angka ganjil yang diinginkan tanpa harus melanjutkan perulangan.
Penjelasan:
- Program ini memulai perulangan while dengan kondisi true, sehingga perulangan akan berjalan terus menerus (infinite loop) sampai menemukan angka ganjil.
- Setiap iterasi, nilai i ditambah 1.
- Jika i adalah angka ganjil (i mod 2 <> 0), program akan mencetak nilai i dan menghentikan perulangan dengan break.
- Break membuat program keluar dari perulangan while meskipun kondisi true masih terpenuhi.
Contoh Program while Menggunakan Break 2
Berikut adalah contoh program yang mencari dan mencetak angka ganjil dari 1 hingga 100. Setiap kali menemukan angka ganjil, program akan berhenti sementara dan menunggu pengguna menekan tombol enter sebelum melanjutkan ke angka ganjil berikutnya.
Penjelasan Program
- Program memulai dengan variabel i dari 1 hingga 100.
- Setiap iterasi, program mengecek apakah i adalah angka ganjil (i mod 2 <> 0).
- Jika i ganjil, program akan mencetak angka tersebut.
- Kemudian, program menunggu input dari pengguna. Jika pengguna hanya menekan Enter (input kosong), program akan melanjutkan ke angka berikutnya.
- Jika pengguna mengetik apapun selain Enter (input tidak kosong), program akan mengakhiri perulangan dengan break, menghentikan pencarian angka ganjil.
- Dengan program ini, pengguna dapat menekan Enter untuk melanjutkan atau tombol lain untuk keluar dari program.
Menggunakan Waktu Tunggu (Delay)
Jika Anda tidak ingin melibatkan input pengguna, Anda bisa menambahkan waktu tunggu sejenak di antara cetakan angka ganjil dengan menggunakan delay. Namun, perlu diperhatikan bahwa delay memerlukan pustaka khusus seperti crt.
Pada contoh ini, program akan berhenti selama 1 detik setelah mencetak setiap angka ganjil, kemudian melanjutkan tanpa perlu masukan dari pengguna.
Contoh Program Pascal Menggabungkan while dengan if
Contoh sederhana yang menggabungkan perulangan while dengan kondisi if. Dalam contoh ini, kita akan membuat program yang mencetak angka dari 1 hingga 20 dan memeriksa apakah setiap angka adalah bilangan genap atau ganjil.
Jika angka tersebut genap, program akan menampilkan pesan “Angka X adalah genap”, dan jika ganjil, akan menampilkan “Angka X adalah ganjil”.
Penjelasan Program
- Deklarasi Variabel: Kita mendeklarasikan variabel
i
sebagaiinteger
untuk menyimpan angka yang akan dicek. - Inisialisasi
i
: Variabeli
diinisialisasi dengan nilai 1 untuk memulai dari angka 1. - Perulangan
while
: Program menggunakan perulanganwhile
yang berjalan selama nilaii
kurang dari atau sama dengan 20. - Kondisi
if
: Di dalam perulangan, program menggunakanif
untuk memeriksa apakah nilaii
genap atau ganjil dengan rumusi mod 2 = 0
.- Jika
i
genap (i mod 2 = 0
), program akan mencetak “Angka X adalah genap.” - Jika
i
ganjil, program mencetak “Angka X adalah ganjil.”
- Jika
- Inkrementasi: Setiap akhir iterasi, nilai
i
ditambah 1 sehingga perulangan bergerak ke angka berikutnya.
Kapan Menggunakan break?
Break sebaiknya digunakan jika:
- Kita perlu segera keluar dari perulangan setelah kondisi tertentu terpenuhi.
- Kita ingin menghindari iterasi yang tidak perlu untuk meningkatkan efisiensi program.
- Situasi mengharuskan keluar dari perulangan lebih awal karena mencapai syarat tertentu (misalnya menemukan nilai yang dicari, kesalahan input, atau batas tertentu).
- Dengan penggunaan break, kode menjadi lebih efisien dan mudah dibaca karena kita bisa langsung keluar dari perulangan tanpa harus memenuhi seluruh kondisi di dalamnya.