Program merge_sort;
uses crt;
const
maks_array = 20;
type
larik = array[1..maks_array] of integer;
var
A : larik;
n,menu : integer;
procedure create(var A : larik; n : integer);
var
i : integer;
begin
n := 1;
for i := 1 to n do
begin
A[i] := 0;
end;
end;
procedure isi_data(var n : integer; var A : larik);
var
i : integer;
begin
write('Masukan Jumlah Elemen Array : ');readln(n);
clrscr;
for i := 1 to n do
begin
write('Elemen ke-',i,' = ');
readln(A[i]);
end;
end;
procedure tampil(n : integer;A : larik);
var
i : integer;
begin
gotoxy(3,1);write('Elemen Array');
gotoxy(2,2);write('==============');
for i := 1 to n do
begin
gotoxy(7,1+(i*2));write('|',A[i],'|');
gotoxy(7,2+(i*2));write('---');
end;
end;
Procedure binarysearch(N : Integer; A : Larik);
var
Ia,Ib,k : integer;
Ketemu : boolean;
x : integer;
begin
{binary search untuk data terurut secara descending}
write('Masukan angka yang akan dicari!');readln(x);
Ia := 1;
Ib := N;
Ketemu := false;
while(not ketemu) and (Ia <= Ib) do
begin
k := (Ia + Ib) div 2;
if (A[k] = x)
then
ketemu := true
else
if(A[k] > x)
then
Ia := k + 1
else
Ib := k - 1;
end;
if(ketemu)
then
begin
clrscr;
writeln('Angka ',x,' ditemukan pada indeks ke-',k);
end
else
writeln(x,' Tidak ditemukan');
end;
begin
repeat
clrscr;
gotoxy(30,2);writeln('Menu Pilihan');
gotoxy(29,3);writeln('==============');
gotoxy(25,5);writeln('1.Isi Elemen Array');
gotoxy(25,6);writeln('2.Menampilkan Elemen Array');
gotoxy(25,7);writeln('3.Mengurutkan Data Secara Descending');
gotoxy(25,8);writeln('4.Mencari Elemen Array');
gotoxy(25,9);writeln('5.Penghancuran Array');
gotoxy(25,11);write('Silakan Memilih Menu! [1-5] ');readln(menu);
{validasi menu pilihan}
while(menu < 1) or (menu > 5) do
begin
gotoxy(25,13);
write('Nomor tidak ada dalam Menu, tekan enter untuk mengulang!');
readln;gotoxy(25,13);
readln(menu);
end;
case (menu) of
1 : begin
clrscr;
create(A,n);
isi_data(n,A);
end;
2 : begin
clrscr;
if (n = 0)
then
write('Elemen array belum terdefinisi, isilah elemen array terlebih dahulu!')
else
tampil(n,A);
readln;
end;
3 : begin
clrscr;
if (n = 0)
then
write('Elemen array belum terdefinisi, isilah elemen array terlebih dahulu!')
else
binarysearch(n,A);
readln;
end;
4 : begin
clrscr;
if (n = 0)
then
write('Elemen array belum terdefinisi, isilah elemen array terlebih dahulu!')
else
binarysearch(n,A);
readln;
end;
5 : begin
clrscr;
if (n = 0)
then
write('Elemen array belum terdefinisi, isilah elemen array terlebih dahulu!')
else
create(A,n);
readln;
end;
end;
until(menu=0);
end.
Tidak ada komentar:
Posting Komentar