Program Binarysearch

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

program sequence;

uses crt;

type
Larik = array [1..100] of integer;

procedure inputdata(var A: Larik; var N: integer);


var
i: integer;
begin
write('Masukkan jumlah data (N): ');
readln(N);

for i := 1 to N do
begin
write('Masukkan nilai data ke-', i, ': ');
readln(A[i]);
end;
end;

function BinarySearch(A: Larik; N: integer; X: integer):integer;


var
low, mid, high: integer;
begin
low := 1;
high := N;
while (low <= high) do
begin
mid := (low + high) div 2;
if (A[mid] > X) then
high := mid - 1
else if (A[mid] < X) then
low := mid + 1
else
break;
end;
if A[mid] = X then
begin
BinarySearch := mid;
write('Data ditemukan! X = ', BinarySearch);
end
else
begin
BinarySearch := 0;
write('Data tidak ditemukan!');
end;
end;

{main body}
var
A: Larik;
N, X: integer;
begin
clrscr;
inputdata(A,N);

write('Masukkan nilai yang dicari (X): ');


readln(X);
BinarySearch(A, N, X);
readln;
end.

You might also like