Sunday, January 30, 2011

Algoritma dan Pemograman Pascal

Kurikulum pelajaran TIK pada tingkat SMA belum mencakup materi tentang Algoritma dan Pemograman, padahal materi ini adalah materi yang di ujikan pada Olimpiade sains komputer, oleh karena itu berikut ini akan saya paparkan secara singkat beberapa sub pokok bahasan yang berhubungan dengan Algoritma dan Pseudo Pascal. mudah-mudahan bermanfaat.

A. Algoritma
Apakah anda tahu apa yang dimaksud dengan Algoritma ?..
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.
Penyajian Algoritma dapat disajikan dalam dua cara yaitu : (1). Secara gambar (FlowChart) dan (2) Secara Tulisan (Struktur bahasa dan Pseudo Code).

disini yang  akan kita bahas adalah penyajian Algoritma secara tulisan dengan Pseudo Code Pascal.

B. Algoritma 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.

1. Sturktur perulangan dalam Pascal
Dalam Pascal kurang lebih ada tiga struktur perulangan, yaitu :
a. While-do ...
b. Repeat ... Until
c. For-do ...

struktur perlungan while-do... dan repeat...until menggunakan ekspresi logika untuk menghentikan perulangan, berbeda dengan struktur for-do... yang menghentikan perulangan hanya dengan batas pencacahnya saja.

perbedaan struktur perulangan while-do... dan repeat until yaitu : Struktur perulangan while-do... ekspresi logikanya merupakan syarat dilakukannya perulangan, sedangkan dalam struktur perulangan repeat...until ekspresi logikanya merupakan syarat berhentinya sebuah perulangan.

Berikut contoh dan pembahasan yang berhubungan dengan struktur perulangan dalam pascal.

A. 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 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;
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.
Sumber : http://peunaronesia.blogspot.com

No comments:

Post a Comment

Iklan