Tugas

Program Gabung_4_Program;
uses crt;
const
nmib = 1;
nmax = 100;
type
arrint = array [nmin..nmax] of integer;

var
x,n,i,indeks : integer;
tabint : arrint;

function seqsearch1 (xx : integer) : integer;
Var
i : integer;
begin
i := 1;
while (( i < n) and (tabint [i] <> xx)) do
i := i + 1;
if tabint [i] = xx then
seqsearch1 := i
else
seqsearch1 := 0;
end;

functionseqsearch2 ( x : integer) : integer;
Var
i:integer
ditemukan : boolean;
begin
ditemukan := false;
i := 1;
while ((i < n ) and (not ditemukan)) do if tabint [i] = x then ditemukan := true else i := i+1;
if ditemukan = true then seqsearch2 := i else seqsearch2 := 0;
end;
procedure seq_search;
Var
L : array [1..5] of integer;
bil,i : integer;
Begin write('angka yang dicari =');readln(bil);
L[1]:=1; L[2]:=3; L[3]:=5; L[4]:=7; L[5]:=9; i := 1; while (i<5) and (L[i] <> bil) do begin
i := i + 1;
end;
if (L[i]=bil) then
writeln('ditemukan pada larik ke-',i)
else
writeln('tidak ditemukan!');
end;

function binarysearch( y : integer) : integer;
Var
i,indeks,atas,bawah,tengah : integer;
Begin
atas := 1;
bawah := n;
ditemukan := false;
indeksy := 0;
while ((atas <= bawah) and (not ditemukan)) do begin tengah := (atas + bawah) div 2; if y = tabint[tengah] then Begin ditemukan := true; indeksy := tengah; end else if y = tabint[tengah] then bawah := tengah - 1 else atas := tengah + 1; end; end; binarysearch : = indeksy; end; {Program Utama} Var pil : integer; Begin Clrscr; textcolor(yellow); write('input nilai n = ');readln(n); writeln; writeln('1. Seqsearch 1'); writeln('2. Seqsearch 2'); writeln('3. Seq_search'); writeln('4. Bianrysearch'); writeln; write('masukkan pilihan =');readln(pil); writeln; if pil = 1 then Begin for i := 1 to n do begin write(tabint[',i,']=');readln(tabint[i]);end; write('nilai yang dicari =');readln(x); indeks := seqsearch1 (x); if indeks <> 0 then
write(x,'ditemukan pada indeks ke-',indeks)
else
write(x,'tidak ditemukan');
end;

if pil = 2 then
begin
for i := 1 to n do
begin
write('tabint[',i,']=');readln(tabint[i]);
end;
write('nilai yang dicari =');readln(x);
indeks := seqsearch2(x);
if indeks <> 0 then
write(x,ditemukan pada indeks ke-',indeks)
else
write(x,'tidak ditemukan');
end;

if pil = 3 then
Begin
seq_search;
end;

if pil = 4 then
Begin
for i:= 1 to n do
begin
write('Tabint[',i,'] =';readln (tabint[i]);
end;
write('nilai yang dicari=');readln (x);
indeks := binarysearch (x);
if indeks <> 0 then
write(x,ditemukan pada indeks ke-',indeks)
else
write(x,'tidak ditemukan');
end;

readln;
end.