Lompat ke konten Lompat ke sidebar Lompat ke footer

Struktur Data - Binary Search

Struktur Data - Binary Search


program pencarian_biner;

type
tipelarik=word;
larik=array[1..8] of tipelarik;

procedure caribiner( x :larik;
cari:tipelarik;
bawah,atas:word;
var urutketemu:word);

var
tengah:word;

begin
if bawah>atas then
urutketemu:=0
else
begin
tengah:=(bawah+atas)div 2;
if cari=x[tengah] then
urutketemu:=tengah
else
if cari<x[tengah] then
caribiner(x,cari,bawah,tengah-1,urutketemu)
else
caribiner(x,cari,tengah+1,atas,urutketemu)
end;
end;

type
stringnama=string[20];
const
nomerantrian:larik=(1,2,3,4,5,6,7,8);
nama:array[1..8] of stringnama=('Budi','Ridwan','Susan','Raisa','Andreas','Maman','Cecep','Zulkifli');

var
cari:word;
ketemu:word;
lagi:char;

begin
lagi:='Y';
while upcase(lagi)='Y' do
begin
write('Nomer antrian yang dicari?');readln(cari);
writeln;
caribiner(nomerantrian,cari,1,8,ketemu);
if ketemu=0 then
writeln('Tidak ada nomer antrian ini!!!')
else
begin
writeln('Nomer antrian:',nomerantrian[ketemu]);
writeln('Nama:',nama[ketemu]);
end;
writeln;
write('Cari yang lain lagi (y/t)?');readln(lagi);
end;
end.