Senin, 19 Desember 2011

FOR DO, WHILE DO, REPEAT UNTIL, ARRAY


FOR  DO  ( Pengulangan Tanpa Kondisi )

For do merupakan struktur pengulangan dimana aksi dilakukan sebanyak hitungan pencacah pengulangan. Pencacah pengulangan dapat diset sesuai dengan nilai yang ingin kita mulai.
Example:for pencacah pengulangan dari x sampai y do berarti aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari x sampai y sebanyak  b-a+1 kali.
Contoh Algoritma :
Program cetak banyak_Belajar yang rajin oce!
{ mencetak ‘Algoritma oce!’ sebanyak 5 kali }
Deklarasii :
 integer ( pencacah pengulangan )
Algoritma
for i <– 1 to 5 do ( ulangi sebanyak 5 kali )
Write ( ‘Algoritma oce!’ )
Endfor
  Output
     Algoritma oce!
 Algoritma oce!
 Algoritma oce!
 Algoritma oce!
 Algoritma oce!

REPEAT - UNTIL ( Pengulangan dengan Kondisi )
Repeat berarti ulangi dan until berarti sampai. Jadi, repeat-until adalah struktur pengulangandimana aksi dilakukan hingga kondisi     (persyaratan ) berhenti terpenuhi.
Example: misalkan kita ingin mengetahui nilai dari mahasiswa jika data masukannya adalah NIM.
Program Pencarian{Program mencari nilai mahasiswa didalam tabel dengan NIM= a.Tabel sudah berisi data NIM,nama dan nilai}
Algoritmanya:tinjau entry pertama tabelrepeatif NIM pada entry tabel sama dengan NIM yang dicari then ambil nama dari NIM tersebutelsetinjau entry berikutnyauntil nilai yang dicari ditemukan atau akhir tabel sudah terlampaui Pada repeat-until jumlah pengulangan tidak dapat diketahui di awal. Karena pengulangan aksiakan terus dilakukan sampai ditemukan entry dari apa yang ditanyakan atau akhir tabel sudahterlampaui, berbeda dengan for-do yang jumlah pengulangannya dilaksanakan.
Contoh : Program cetak banyak_Belajar yang rajin oce!
{ mencetak ‘ Mari Kita Belajar Algoritma!’ sebanyak 5 kali }

Deklarasi
i : integer ( pencacah pengulangan)
Algoritma
i <– 1
repeat ( ulangi sebanyak 5 kali )
write ( ‘Mari Kita Belajar Algoritma!’ )
i <– i + 1
until i 5
· output
 Mari Kita Belajar Algoritma!
 Mari Kita Belajar Algoritma!
 Mari Kita Belajar Algoritma!
 Mari Kita Belajar Algoritma!
 Mari Kita Belajar Algoritma!

WHILE – DO ( pengulagan dengan Kondisi )
While berarti selagi/ selama dan do berarti lakukan. Jadi, while-do artinya struktur pengulangandimana selama kondisi ( persyaratan ) pengulangan masih benar, maka aksi dikerjakan.
Contohnya saja pada repeat-until tadi selama kita memasukkan NIM tidak benar/ belumditemukan akhir tabel belum terlampaui, maka dapat dicari NIM pada entry tabel yang sama, jikasudah ditemukan mengambil nilai tersebut, selanjutnya meninjau entry berikutnya didalam table.
Example:
Program Pencarian{Program mencari nilai mahasiswa didalam tabel dengan NIM= a.Tabel sudah berisi data NIM,nama dan nilai}
Algoritma
Tinjau entry pertama tabelWhile NIM yang dicari belum ditemukan dan akhir tabel belum terlampaui doIf NIM pada entry tabel sama dengan NIM yang dicari then ambil nama, nilai dari NIM tersebut
Else
Tinjau entry berikutnya didalam table
Pada while-do kondisi pengulangan di evakuasi di awal pengulangan, berbeda dengan repeat-until kondisi pengulangan di evakuasi di akhir.
 Contoh : Program cetak banyak_Belajar yang rajin oce!
{ mencetak ‘Belajar Algoritma yuk!’, sebanyak 5 kali }
Deklarasi
i: integer ( pencacah pengulangan )
Algoritma
i <– 1while i 5 do ( ulangi sebanyak 5 kali )
write ( ‘Belajar Algoritma yuk’ )
 
i <– i + 1
end while
. output
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !

while atau repeat ekivalen, tetapi pada beberapa masalah pemilihan keduanya bergantung padanatural dari persoalan. Didalam repeat, kondisi pengulangan diperiksa pada akhir pengulangan, jadi instruksi didalam badan pengulangan diperiksa pada akhir pengulangan. Sedangkan, padawhile kondisi pengulangan diperiksa awal, jadi instruksi didalam badan pengulangan hanyadapat dilaksanakan bila pengetesan kondisi menghasilkan nilai true, jadi jika pengulangan pertama kali bernilai false maka badan pangulangan mungkin.

IF THEN ELSE
If berarti jika dan then berarti maka. Jadi, if_then_else adalah suatu bentuk pengkondisian bilamana kondisi bernilai benar, aksi 1 akan dikerjakan, tapi jika tidak aksi 2 yang  akan dikerjakan.
if kondisi then
aksi 1
else
aksi 2
Example:
if anak berbaju hijau then
acungkan jarinya
else if anak berbaju merah then
berdiri else
diam duduk ditempat.
( terdapat kelemahan karena pemrogram tidak tahu kapan harus berhenti menulis, tidak tahu berapa kali pernyataan harus ditulis sampai dengan data yang dicari ditemukan).
Example Algoritma:
Contoh program:
{*Program Hitung Nilai*}
{*keterangan: Nilai per poin=10*}
uses wincrt;
var
Jumlahpoin, nilaiperpoin, nilai:integer;

begin
  write('Jumlah poin:');
  read(Jumlahpoin);
  write('Nilai per poin:');
  readln(nilaiperpoin);
  nilai:=jumlahpoin*nilaiperpoin;
  if Jumlahpoin&gt;30 then
    nilai:=nilai+(jumlahpoin-30)*nilaiperpoin;
  write('Nilai yang diperoleh sebesar:',nilai);
End.
Hasil eksekusi dari program adalah:
Contoh1:
Jumlah poin                     :  20
Nilai per poin                    :  10
Nilai yang diperoleh sebesar    :  200
Contoh 2:
Jumlah poin                 :  40
Nilai per poin                   :  10
Nilai yang diperoleh sebesar    : 500

ARRAY
Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Terdapat dua bagian penting yaitu elemen array yang merupakan nilai dan endeks array yang merupakan nilai urut untuk mengakses nilai pada array.
Berikut ini contoh array A dengan 10 buah elemen tiap elemen memiliki nilai antara 10 hingga 100.
A[1]
A[2]
A[3]
A[4]
A[5]
A[6]
A[7]
A[8]
A[9]
A[10]
1
2
3
4
5
6
7
8
9
10
10
20
30
40
50
60
70
80
90
100

Deklarasi Array.
Array dideklarasikan pada bagian deklarasi. Deklarasi umum dari array adalah
NamaArray : array[IndeksAwal..IndeksAkhir] of tipe_data;
Contoh: Jika akan mendeklarasikan viriabel A sebagai Array dengan 10 elemen bertipe integer :
Var
A: array [1..10] of Integer;
Contoh lain:
A1: array[0..9] of Integer;
A1: array[10..20] of Integer;
A1: array[‘a’..’j’] of Integer;
Mengakses elemen Array
Untuk memberikan nilai pada variabel array dapat dengan menggunakan parameter berikut :
NamaArray [indeks]:=nilai;

Contoh :
Var
A: array[1..10] of integer;
Begin
A[1]:=1; {Mengisikan elemen 1 dengan nilai 1}
A[9]:=200; {Mengisi elemen 9 dengan nilai 200};
End.
Array sebagai konstanta
Nilai pada array dapat bernilai konstan. Dapat kita lakukan dengan mendeklarasikannya pada bagian constanta.
Bentuk umum pendeklrasiannya adalah:
Const
NamaArray : array[IndeksAwal..IndeksAkhir] of Tipe_Data = (nilai1, nilai2,………);
Banyaknya nilai konstanta harus sama dengan jumlah
elemennya.

Contoh penggunaanya Program ArrayKonstanm;
Uses Wincrt;
Const
Hari : array[1..2] oof string = (‘senin’,'selasa’,'rabu’,'kamis’,'jumat’,'sabtu’,'minggu’);
Var
noHari:integer;
begin
clrscr;
write(‘Masukan nomor harinya : ‘);readln(noHAri);
write(‘Hari ke’,noHari,’adalah’,Har[noHari]);
end.
Jika dieksekusi maka hasilnya adalah:
Masukan nomor harinya : 2
Hari ke 3 adalah rabu
Array saebagai parameter
Array pada waktu tertentu dapat digunakan sebagai parameter dari suatu proesdur atyau fungsi. Contoh :
Type
Bilangan = array [1..100[ of integer;
Procedure InputArray(A:bilangan; N:integer);
var
i:integer;
begin
for i:=1 to N do
write('Masukan elemen array ke ',i); readln(A[i]);
end.
Contoh diatas adalah prenggunaan array sebagai parameter untuk memberikan nilai pada suatu array tertentu.
Array berisi record
Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagai tipe data pada saat pendeklarasiaan array. Contoh:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
End;
TkumpulanSiswa = array [1..100] of Tsiswa;
Var
A: TkumpulanSiswa;
Variabel A diatas akan menampung 100 buah record yang bertipe Tsiswa. Sementara untuk record berisi array dengan contoh perhitungan nilai siswa berikut : Nilai = (20% * kuis) + (30% * UTS) + (50% * UAS). Maka kita dapat mendefinisikan mahasiswa sebagai tipe record yang memiliki 3 nilai dengan menggunakan array. Yaitu:

Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
Nilai = array [1..3] of real;

Kode diatas menunjukan bahwa setiap mahasiswa memiliki 3 nilai.
Metode pencarian pada Array
Ada beberapa macam teknik dalam mendapatkan nilai dari suatu elemen pada array salh satunya dengan metode pencarian beruntun.Contoh:
Program CaraiBeruntun;

Uses Wincrt;
Const
N : array[1..5] of integer= (10,20,30,40,50);
Var
a,b,index : integer;
begin
clrscr;
write(‘Masukan nilai yang akan dicari : ’);readln(a);
index:=0;
for b:=1 to 5 do begin
if N[b] = a then begin
index:=b;
break;
end;
end;
writeln(a,’ adalah nilai yang ditemukan pada index ke ’,index);
end.
     Array 2 dimensi
Array 2 dimensi adalah array yang memiliki 2 buah elemen bertipe array yang berbentuk kolom dan baris. Pendeklarasiannya adlah sebagai berikut:
NamaArray : array[1..BanyakBaris, 1..BanyakKolom] of tipe_data;
Contoh
Array2D : array[1..3, 1..4] of integer;
Sedangkan untuk mengaskes maupun memberikan nilai dengan parameter:
Array2D [2,3]:=200; {Mengisikan nilai 200 pada baris 2 kolom 3}