algoritma dan pascal
Algoritma adalah suatu urutan langkah-langkah (steps) yang disusun secara logis untuk menyelesaikan masalah dengan menggunakan komputer, dengan kreteria sebagai berikut :
- Setiap langkah / steps harus jelas dan pasti (definite)
- Diperbolehkan tanpa ada output tetapi minimal harus ada satu output.
- Jumlah langkah harus berhingga atau dengan kata lain harus ada stopping criteria.
disini yang akan kita bahas adalah penyajian Algoritma secara tulisan dengan Pseudo Code Pascal.
Dalam bahasa pascal kurang lebih ada 11 statement, namun mengingat waktu yang terbatas pada kesempatan kali ini kita hanya membahas 1 sub pokok bahasan yaitu tentang struktur perulangan dalam pascal.
Dalam Pascal kurang lebih ada tiga struktur perulangan, yaitu :
a. While-do ...
b. Repeat ... Until
c. For-do ...
Perhatikan potongan program dibawah ini :
x:=2;
while x < 7 do
begin
y:=y+3;
x:=x+1;
end;
Writeln (y);
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 padacompound 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;Perhatikan penggalan program dibawah ini :
x:=2;
repeat
y:=y+3;
x:=x+1;
Until x=7;
writeln (y);
Berapakah nilai y ?
- 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.....
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.
Un : = 4;
x : = 2;
while x < 7 do
begin
Un : = Un + 5;
x : = x + 1;
end;
Writeln (Un);
berapakah nilai Un ?
- 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 :
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.
==> 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.
x : = 1;
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.
- 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
- 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.
x : = 2;
Un : = 4;
While x < 7 do
begin
Un : = Un * 5;
x : = x + 1;
end;
Writeln (Un);
berapakah nilai Un ?
- 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 ?
U5 = 4 x 5 (5-1)
U5 = 4 x 54
U5 = 4 x 625
U5 = 2500
- 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.
Komentar