Minggu, 06 Januari 2013


Program Bubble_Sort;

Uses WinCrt;

const

max = 100;

type

Larik = array [1..max] of integer;

var

A: Larik;

I: integer;

N: integer;

pil:byte;

procedure Jumlah_Data;

begin

write('Masukkan banyaknya data = '); readln(N);

writeln;

end;

procedure Input;

var

I: integer;

begin

for I:=1 to N do

begin

write('Masukkan data ke-', I, ' = '); readln(A[I]);

end;

end;

procedure Change(var A, B: integer);

var

T: integer;

begin

T:=A;

A:=B;

B:=T;

end;

procedure asc_buble;

var

p,q :INTEGER;

flag:boolean;

begin

flag:=false;

p:=2;

while (p<N) and (not flag) do

begin

flag:=true;

for q:=N downto p do

if A[q]<A[q-1] then

begin

change(A[q],A[q-1]);

flag:=false;

end;

inc(i);

end;

writeln;

write('Data Diurutkan Secara Ascending: ');

end;

procedure desc_buble;

var

p,q :byte;

flag:boolean;

begin

flag:=false;

p:=2;

while (p<max) and (not flag) do

begin

flag:=true;

for q:=max downto p do

if A[q]>A[q-1] then

begin

change(A[q],A[q-1]);

flag:=false;

end;

inc(i);

end;

writeln;

write('Data Diurutkan Secara Descending: ');

end;

procedure Output;

var

i: integer;

begin

for i:=1 to N do

write(A[i], '  ');

writeln;

end;

begin

Jumlah_Data;

input;

clrscr;

writeln('[1].pengurutan secara Ascending');

writeln('[2].pengurutan secara Descending');

write('Silahkan Masukkan Pilihan Anda = ');readln(pil);

case pil of

1:asc_buble;

2:desc_buble;

end;

output;

end.

Tidak ada komentar:

Posting Komentar