ALPRO
Rabu, 27 April 2011
Algoritma dan Pemograman
1) Pencarian Beruntun
Program pencarian_beruntun ;
Uses wincrt;
Var
A:array [1..100] of integer;
angka,I,n:integer;
c:char;
procedure hasil;
begin
write ('masukan banyak data: '); readln (n);
for i:=1 to n do
begin
write ('data [',I,'] : ');readln (A [i]);
end;
end;
procedure SeqSearch;
begin
write ('angka di cari : ');readln (angka);
i := 1;
while (I < n) and (A[i] <> angka) do
begin
i:=i+1;
end;
if (A[i]=angka)then
writeln ('idx = ',i)
else
writeln ('tidak ditemukan');
end;
begin
hasil;
SeqSearch;
Writeln ;
End.
2) Pencarian Bagi dua
uses wincrt;
var
A : array [1..100] of integer;
n1,x1,b,hasil :integer;
function Binary_Search2(n :integer; x : integer) : integer;
var
c,d : integer;
idx, e : integer;
ketemu : boolean;
begin
c := 1;
d := n;
ketemu := false;
while (not ketemu) and (c <= d) do
begin
e:=(c + d) div 2;
if (A[e] = x) then
ketemu:= true
else
if (x > A[e]) then
c := e + 1
else
d := e - 1;
end;
if (ketemu) then
idx := e
else
idx := -1;
Binary_Search2:=idx;
end;
begin
write ('masukkan banyak data : ');
readln (n1);
for b:=1 to n1 do
begin
write ('A [',b,'] : '); readln (A[b]);
end;
write ('Data yang dicari ');readln (x1);
hasil:=Binary_Search2 (n1,x1);
if (hasil = -1) then
writeln ('tidak ditemukan')
else
writeln ('idx : ', hasil);
end.