. Contoh soal perulangan While-do...
Perhatikan potongan program dibawah ini :
y:=4;
x:=2;
while x < 7 do
begin
y:=y+3;
x:=x+1;
end;
Writeln (y);
dari potongan program diatas berapakah nilai y?
Mari kita bahas contoh soal diatas :
Langkah pertama, kita harus mengetahui cara membaca sebuah
script bahasa pascal. dalam Pascal sebuah perintah dibaca mulai dari
sebelah kiri ke sebelah kanan dan kemudian perintah itu diakhiri dengan
simbol ";", setelah itu kita meneruskan script yang terdapat
dibawahnya seperti proses diatas sampai selesai.
Langkah selanjutnya, kita lihat satu persatu perintah2 dari potongan
tersebut : yang pertama kita lihat ada Perintah y:=4; dan x:=2; ini
merupakan perintah assigment atau pemberian nilai awal untuk y =4 dan x
=2.
Selanjutnya kita lihat ada perintah While x < 7 do; ini adalah statement while-do yang mana perulangan akan terus dilakukan dengan membaca seluruh perintah2 yang ada pada compound statment begin...end apabila nilai x masih dibawah 7,
Perulangan while-do akan berhenti jika ada statement yang menambah
nilai x. untuk menambah nilai x perlu ditambahkan perintah x:=x+1; pada
compound statement while-do; perintah ini akan terus diulang sehingga
nilai x terus bertambah dan jika nilai x=7 maka perulangan while-do...
akan berhenti. jika statement x:=x+1; ditiadakan maka program tidak akan
berhenti .
Statement y:=y+3; ini adalah perintah pemberian nilai y, nilai y akan terus berubah sejalan dengan proses perulangan while-do.
Dari potongan program tersebut perulangan akan terus dilakukan dari
x:=2; sampai dengan x:=6; (lima kali perulangan), dan setiap perulangan
memberikan nilai untuk y. berikut penjelasan selanjutnya untuk mencari
Nilai y:
Pada saat nilai x:=2, ==>; nilai y:=4+3=7; (lihat rumus y:=y+3, nilai y sebelumnya 4);
Pada saat nilai x:=3, ==>; nilai y:=7+3=10;
Pada saat nilai x:=4, ==>; nilai y:=10+3=13;
Pada saat nilai x:=5, ==>; nilai y:=13+3=16;
Pada saat nilai x:=6, ==>; nilai y:=16+3=19;
Pada saat nilai x:=7, kondisi syarat dilakukannya perulangan tidak terpenuhi (while x < 7 do);
Jadi setelah kita bahas, potongan program tersebut akan menghasilkan nilai y:=19;.
Gimana jelaskan....
B. Contoh soal perulangan Repeat-until.
Perhatikan penggalan program dibawah ini :
y:=4;
x:=2;
repeat
y:=y+3;
x:=x+1;
Until x=7;
writeln (y);
Berapakah nilai y ?
Mari kita bahas contoh program diatas :
Mula-mula nilai y dan x masing-masing diberi nilai 4 dan 2.
Statement repeat-until terdapat ekspresi logika until x=7, ini menandakan perulangan akan berhenti apabila nilai x=7.
Perulangan akan dilakukan pada saat x:=2 sampai dengan x:=6, jadi dilakukan selama 5 kali.
Pada saat x:=2,==>; nilai y:=4+3=7,
Pada saat x:=3,==>; nilai y:=7+3=10,
Pada saat x:=4,==>; nilai y:=10+3=13,
Pada saat x:=5,==>; nilai y:=13+3=16,
Pada saat x:=6,==>; nilai y:=16+3=19,
Pada saat x:=7,==>; syarat untuk berhenti tercapai (until x=7) .
jadi setelah kita bahas, potongan program diatas juga menghasilkan nilai untuk y = 19;
Gimana lebih jelaskan.....
C. Contoh soal perulangan for-do...
perhatikan potongan program dibawah ini :
y:= 4;
for x:= 1 to 5 do
begin
y:= y + 1;
end;
writeln (y);
dari potongan program diatas berapakah nilai y ?
Pembahasan :
Pertama-tama variabel y diberi nilai awal 4
Perintah for x:=1 to 5 do begin...end; ini menandakan perulangan
akan dilakukan selama 5 kali yaitu dari 1 s/d 5. dan setiap kali
perulangan akan mengerjakan perintah yang terdapat dalam compound
statement
pada saat x:=1; ==>; y:=4+3=7;
pada saat x:=2; ==>; y:=7+3=10;
pada saat x:=3; ==>; y:=10+3=13;
pada saat x:=4; ==>; y:=13+3=16;
pada saat x:=5; ==>; y:=16+3=19;
jadi setelah kita bahasa potongan program diatas juga akan menghasil nilai y=19.
2. Deret Aritmatika dan Perulangan While-do
Contoh-contoh penggunaan perulangan diatas adalah merupakan
contoh penerpan bahasa pemograman pascal untuk deret aritmatika
{Un=a+(n-1)b}, mari kita bahas kembali contoh soal dibawah ini :
Un : = 4;
x : = 2;
while x < 7 do
begin
Un : = Un + 5;
x : = x + 1;
end;
Writeln (Un);
berapakah nilai Un ?
Pembahasan :
Pertama nilai Un dan x diberi nilai awal 4 dan 2, x adalah
sebagai variabel untuk ekspresi logika while-do, sedang Un disini akan
kita anggap sebagai a (suku pertama dalam deret aritmatika).
setelah itu, kita lihat ekspresi logika dari while x < 7 do, ini
menandakan perulangan akan dilakukan selama 6 kali, yaitu dari x=2 s/d
x=6 (2,3,4,5,6), jadi nilai Un yang ditanyakan adalah nilai deret
aritmatika dengan suku ke-5, yang mana suku pertamanya (a) adalah 4, dan
bedanya (b) adalah 5.
Sekarang kita simpulkani variabel2 yang dbutuhkan untuk menghitung nilai Un :
Nilai a atau suku pertama adalah nilai Un yang pertama kalinya ==> Un : = 4;
Nilai b atau beda adalah 5, nilai ini kita ambil dari rumus Un:=Un+5, ==>; 5 disini adalah beda (b) nya.
Yang ditanya adalah U5 atau suku ke 5 berarti nilai n=5 :
Sekarang kita masukan variabel-variabel yang bersangkutan kedalam rumus deret aritmatika :
Un = a + (n-1) b;
U5 = 4 + (5-1)5;
U5 = 4 + (4)5;
U5 = 4 + 20;
U5 = 24;
Jadi nilai Un dari potongan program diatas adalah 24.
Gimana Paham kan...... atau kalau anda belum percaya dengan
rumus ini coba kita buktikan dengan menggunakan Langkah-langkah
Algoritma perulangan while-do.
==> pada saat x : =2; ==> nilai Un : = 4 + 5 = 9;
==> pada saat x : =3; ==> nilai Un : = 9 + 5 = 14;
==> pada saat x : =4; ==> nilai Un : = 14 + 5 = 19;
==> pada saat x : =5; ==> nilai Un : = 19 + 5 = 24;
Gimana sama bukan...
Jadi Kesimpulannya jika dalam compound statment while-do terdapat rumus penjumlahan, seperti ini :
Un := Un + 5, itu dapat dikerjakan dengan menggunakan rumus deret aritmatika,
Dan Apabila rumus diganti menjadi Un : = Un -5; ini juga dapat
dikerjakan dengan menggunakan rumus deret aritmatika, hanya saja pada
rumus ini beda (b)nya adalah -5.
Kegunaan rumus deret aritmetika untuk membaca sebuah
algoritma while-do… pada operasi penjumlahan dan pengurangan seperti
pada contoh soal diatas sangat dibutuhkan jika ada potongan program yang
serupa dengan contoh diatas dan perulangannya melebihi batas kemampuan
waktu kita, misal kan seperti soal dibawah ini :
x : = 1;
Un : = 4;
While x < 99999 do
begin
Un : = Un + 5;
x : = x + 1;
end;
Writeln (Un);
berapakah nilai Un ?
Apabila kita bahas soal diatas dengan langkah-langkah Algoritma akan
menghabiskan waktu yang sangat lama karena perluangan dari program
diatas adalah selama 99998 kali... kan bisa pegel tangan kita untuk
menghitung setiap langkah-langkahnya.... jadi penyelesaian yang tepat
adalah kita gunakan rumus deret aritmatika untuk menyelesaikannya.
Sekarang mari kita bahas soal diatas dengan menggunakan rumus deret Aritmatika :
Diketahui nilai a := 4 (nilai Un awal )
Nilai b (beda) = 5 (dilihat dari rumus Un : = Un + 5 );
Nilai n = 99998 (merupakan perulangan yang dilakukan oleh while-do…)
Un = a + (n-1)b;
Un = 4 + (99998-1)5;
Un = 4 + (99997)5 ;
Un = 4 + 499975;
Un = 499.979,00
Jadi Nilai Un dari potongan program diatas adalah 499.979,00
Gimana... semakin paham kan.......
3. Deret Geometri dan Perulangan While-do…
Perbedaan antara deret Aritmatika dengan deret Geometri dalam
penerapan struktur perulangan while-do… adalah terletak pada rumus yang
terdapat dalam compound statement while-do…
Jika dalam deret aritmatika, maka rumus yang terdapat dalam compound
statement while-do adalah dalam bentuk penambah atau pengurangan,
misalnya seperti ini : y : = y + 3 atau y : = y -3;
Dalam deret geometri, rumus yang terdapat dalam compound statement
while-do… adalah dalam berbentuk perkalian atau pembagian. Misalnya
seperti : y: = y * 3, ini menandakan deret geometri dengan rasionya / r =
3, atau y : = y / 3, ini menandakan deret geometri dengan rasio / r =
1/3.
untuk lebih jelasnya perhatikan contoh soal dibawah ini :
x : = 2;
Un : = 4;
While x < 7 do
begin
Un : = Un * 5;
x : = x + 1;
end;
Writeln (Un);
berapakah nilai Un ?
Pembahasan :
Dari soal diatas diketahui bahwa suku pertama atau a dari deret
tersebut adalah 4, ini ditunjukan oleh nilai awal dari Un : = 4;
Perulangan dari potongan program diatas akan dilakukan selama 5,
yaitu pada saat x:=2 s/d x:=7, sehingga nilai n=5, berarti yang ditanya
adalah deret geometri suku ke-5.
Rumus Un : = Un * 5 dalam compound statement while-do, ini
menandakan bahwa potongan program tersebut adalah merupakan penerapan
deret geometri.
Setelah kita ketahui semua hal-hal yang diperlukan, maka variable-variabel tersebut kita masukan kedalam rumus deret geometri:
Rumus Deret Geometri :
Un = a x r(n-1)
Dik :
a = 4
r = 5
n = 5
ditanya: deret geometri suku ke-5 ?
jawab :
U5 = 4 x 5 (5-1)
U5 = 4 x 54
U5 = 4 x 625
U5 = 2500
Jadi dengan menggunakan rumus deret geometri nilai Un dari penggalan program diatas adalah 2500.
Gimana sudah paham.. kan….. ok. Kalau masih ragu mari kita buktikan dengan menggunakan langkah-langkah Algoritmanya :
Perulangan dalam statement while-do tersebut akan berjalan selama 5 kali, yaitu dari x:=2 s/d x:=6, (2,3,4,5,6).
Pada saat x :=2 == > nilai Un : = 4 * 5 = 20;
Pada saat x :=3 == > nilai Un : = 20 * 5 = 100;
Pada saat x :=4 == > nilai Un : = 100 * 5 = 500;
Pada saat x :=5 == > nilai Un : = 500 * 5 = 500;
Pada saat x :=6 == > nilai Un : = 500 * 5 = 2500;
Jadi sama kan… Nilai Un adalah 2.500, kesimpulannya potongan program
diatas bisa dikerjakan dengan Teknik Algoritma dan juga bisa
menggunakan rumus deret geometri. Hanya saja kalau perulangan dari
program diatas sangat banyak dan diluar kemampuan kita, sebaiknya kita
menggunakan rumus deret geometri untuk menyelesaikan soal tersebut.
Saya kira udah cukup banyak ya,, yang telah kita
pelajari tentang Algoritma pada kesempatan kali ini, oh iya dibawah ini
saya punya soal-soal. Kalau kamu bisa mengerjakan tolong jawab melalui
pesan komenter dibawah ini, yang bisa menjawab semua soal dengan benar
dan termasuk 10 orang pertama yang menjawabnya, maka akan mendapat pulsa
gratis dari saya mau kan. Berikut soal-soalnya :
Pada tahun 2000, Tarzanu membuka rekening deposito
pada bank Mega, besar uang yang didepositokan adalah Rp.
100.000.000,00. Besar bunga deposito pertahun adalah 11%, dan Tn.
Tarzanu menginginkan agar bunga deposito yang dibayarkan oleh bank
perbulannya di masukan kedalam rekening tabungan biasa miliknya. Jangka
waktu deposito tersebut adalah selama 10 tahun. Ditanya dari kasus
diatas buatlah Pseudo pascal dengan menggunakan strutur perulangan
while-do. Dan hitung juga berapa besar uang deposito dan tabungan
setelah sepuluh tahun ?
Tn. Fahrul telah membuka rekening deposito dengan bunga tahunan pada
bank mandiri sejak tahun 2002 yang lalu, Bunga deposito dibayarkan oleh
bank setiap bulannya melalui rekening tabungan biasa milik Tn.Fahrul.
pada Tahun 2004 jumlah setoran awal deposito ditambah dengan bunga
deposito yang diterimanya adalah sebesar Rp. 140.000.000,- , kemudian
pada tahun 2008 jumlah setoran awal deposito ditambah dengan bunga
deposito yang diterimanya adalah sebesar Rp. 190.000.000,- dari kasus
tersebut ditanya : (1). Berapakah setoran awal (a) dan besarnya bunga
(b) Dari Rekening Deposito Tn. Fahrul?. (2). Dari kasus tersebut buatlah
Pseudo Pascal dengan menggunakan struktur perulangan while-do!
(selamat Mengerjakan).
(Info semua artikel materi pelajaran dan soal-soal diatas adalah murni
dibuat oleh Agus Triono, S.Pd sesuai dengan kemampuan dan gaya bahasanya
sendiri, sehingga apabila ada gaya bahasa yang kurang benar mohon
dimaklumi. Selain jawaban anda juga bisa memberikan komentar-komentar
tentang materi ini pada kolom komenter dibawah ini.Semoga bermanfaat.
Terimakasih).