Jumat, 14 Maret 2014

Source Code Program Binary Searching pada Delphi 7

Assalamualaikum
pada kali ini saya akan mengupload source Code program binary searching. program ini pada dasarnya fungsinya ialah untuk mencari data dan pada urutan keberapa data tersebut. hampir mirip dengan linear searching pada program yang sudah saya upload kemarin. hanya pada sistematika penulisan sintaks nya mengalami perbedaan dan juga konsep yang berbeda. saya tidak terlalu ingat konsep nya gimana karena pas kemarin kami belajarnya singkat banget, udah gitu langsung disuruh membuat program nya.
oke langsung saja saya bagikan source kode program binary searching pada Delphi 7 :)

program binary;

{$APPTYPE CONSOLE}

uses
  windows;


var input:Array [1..100,1..100] of integer;
    jumlah,i,j,cari,langkah:integer;
    isi:boolean;

procedure mencari;

function cektengah(var z:integer):integer;
var     x:integer;
    ada: boolean;
begin
    x := 1;
    ada := false;
    while not(ada) do
    begin
        if (z = input[x,2]) then
        begin
            cektengah := x;
            ada := true;
        end
        else
            x := x+1;
    end;
end;

function cekkirkan(var z:integer): integer;
var     x:integer;
    ada: boolean;
begin
    x := 1;
    ada := false;
    while not(ada) do
    begin
        if (z = input[x,1]) or (z =input[x,3]) then
        begin
            cekkirkan := x;
            ada := true;
        end
        else
            x := x+1;
    end;
end;

begin
j := cektengah(cari); langkah := 1;
        while (j > 1) do
        begin
            i := input[j,2]; j := cekkirkan(i);
            if (input[j,1] = i) or (input[j,3] = i) then
            begin
                langkah := langkah + 1;
            end;
        end;
writeln('Angka ditemukan pada data ke ',langkah);
end;


procedure masuk;

function cektengah(var z:integer):integer;
var     x:integer;
    ada: boolean;
begin
    x := 1;
    ada := false;
    while not(ada) do
    begin
        if (z = input[x,2]) then
        begin
            cektengah := x;
            ada := true;
        end
        else
            x := x+1;
    end;
end;

begin
j:=1;isi:=false;
while not(isi) do
      begin
           if (input[i,2]>input[j,2])then
           begin
                if (input[j,3]=0)then
                begin
                input[j,3]:=input[i,2];
                isi:=true;
                end
                else j:=cektengah(input[j,3]);
           end
           else
           begin
                if (input[j,1]=0) then
                begin
                input[j,1]:=input[i,2];
                isi:=true;
                end
                else j:=cektengah(input[j,1]);
           end;
      end;
end;

begin
writeln('      BY SUKRAN J1F113003');
writeln;
writeln;
writeln;
write('Masukan banyaknya data yang ingin dimasukan : ');readln(jumlah);
for i:= 1 to jumlah do
    begin
    write('Masukkan data ke -',i,' : ');readln(input[i,2]);
    input[i,1]:=0;input[i,3]:=0;
    end;
for i:= 2 to jumlah do
    begin
    masuk;
    end;
writeln;
write('Masukan angka yang dicari : ');readln(cari);
mencari;
readln;
end.


end.

Terimakasih dan semoga bermanfaat :D
HIDUP MAHASISWA !!!!

1 komentar: