You are on page 1of 5

Nama : Naufal Sholahuddin(201843501399), Aldy(201843500251), Bama Al Farhan(201843500992),

Ammar Baghiz(201843500007)

Kelas : R2C

Tugas Algoritma 2
program desc_bubble;
uses crt;
var //global variable
pilih,i,n:integer;
A : array [1..100] of integer;

//prosedure tukar nilai


procedure tukar(var a,b : integer);
var temp : integer;
begin
temp:=a;
a:=b;
b:=temp;
end;

//procedure output
procedure output(var n:integer);
var x : integer;
begin
for x:=1 to n do begin
write(A[x],' ');
end;
end;

//Bubble Ascending
procedure bubble_Asc(var n :integer);
var x,z : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for z:=1 to n-1 do begin
for x:=n downto z+1 do begin
if A[x] < A[x-1] then tukar(A[x],A[x-1]);
end;
writeln; write('hasil akhir langkah ke-',z,' : ');
output(n);
end;
writeln; write('Hasil pengurutan Bubble ASC : ');
output(n);

end;
//Bubble Ascending
procedure bubble_Asc(var n :integer);
var x,z : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for z:=1 to n-1 do begin
for x:=n downto z+1 do begin
if A[x] < A[x-1] then tukar(A[x],A[x-1]);
end;
writeln; write('hasil akhir langkah ke-',z,' : ');
output(n);
end;
writeln; write('Hasil pengurutan Bubble ASC : ');
output(n);

end;

//Bubble Descending
procedure bubble_Desc(var n :integer);
var x,z : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for z:=1 to n-1 do begin
for x:=n downto z+1 do begin
if A[x] > A[x-1] then tukar(A[x],A[x-1]);
end;
writeln; write('hasil akhir langkah ke-',z,' : ');
output(n);
end;
writeln; write('Hasil pengurutan Bubble Desc : ');
output(n);

end;

//Gravitation Ascending
procedure gravitasi_Asc(var n :integer);
var x,z : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for z:=1 to n-1 do begin
for x:=1 to n-z do begin
if A[x] > A[x+1] then tukar(A[x],A[x+1]);
end;
writeln; write('hasil akhir langkah ke-',z,' : ');
output(n);
end;
writeln; write('Hasil pengurutan Gravitation ASC : ');
output(n);
end;
//Gravitation Descending
procedure gravitasi_Desc(var n :integer);
var x,z : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for z:=1 to n-1 do begin
for x:=1 to n-z do begin
if A[x] < A[x+1] then tukar(A[x],A[x+1]);
end;
writeln; write('hasil akhir langkah ke-',z,' : ');
output(n);
end;
writeln; write('Hasil pengurutan Gravitation Desc : ');
output(n);
end;

//Selection Ascending
procedure selection_Asc(var n : integer);
var i,imaks,j : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for i:= 1 to n-1 do begin
imaks := i;
for j:=i+1 to n do begin
if A[j] < A[imaks] then imaks := j;
end;
tukar(A[imaks], A[n-i+1]);

writeln; write('hasil akhir langkah ke-',i,' : ');


output(n);
end;
writeln; write('Hasil pengurutan Selection ASC : ');
output(n);
end;

//Selection Descending
procedure selection_Desc(var n : integer);
var i,imaks,j : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for i:= 1 to n-1 do begin
imaks := i;
for j:=i+1 to n do begin
if A[j] > A[imaks] then imaks := j;
end;
tukar(A[imaks], A[n-i+1]);

writeln; write('hasil akhir langkah ke-',i,' : ');


output(n);
end;
writeln; write('Hasil pengurutan Selection Desc : ');
output(n);
end;
//Insertion Ascending
procedure insertion_Asc(var n : integer);
var i,j,temp,k : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for i:= 2 to n do begin
temp := A[i];
j := i-1;
while (temp < A[j]) and (j > 0) do j:= j - 1;
for k:=i downto j+1 do A[k]:= A[k-1];

A[j+1]:= temp;
writeln; write('hasil akhir langkah ke-',i-1,' : ');
output(n);
end;
writeln; write('Hasil pengurutan Insertion ASC : ');
output(n);
end;

//Insertion Descending
procedure insertion_Desc(var n : integer);
var i,j,temp,k : integer;
begin
writeln; write('sebelum diurutkan : ');
output(n);
for i:= 2 to n do begin
temp := A[i];
j := i-1;
while (temp > A[j]) and (j > 0) do j:= j - 1;
for k:=i downto j+1 do A[k]:= A[k-1];

A[j+1]:= temp;
writeln; write('hasil akhir langkah ke-',i-1,' : ');
output(n);
end;
writeln; write('Hasil pengurutan Insertion ASC : ');
output(n);
end;
//program main/utama
begin
clrscr;
write('Berapa jumlah data yang ingin diurutkan? ');
readln(n);
writeln('Masukkan data yang belum terurut : ');
for i:=1 to n do begin
write('Data ke-',i,' : ');
readln(A[i]);
writeln;
end;
writeln; writeln('metode :');
writeln('(1) Bubble Asc ');
writeln('(2) Bubble Desc ');
writeln('(3) Gravitation Asc ');
writeln('(4) Gravitation Desc ');
writeln('(5) Insertion Asc ');
writeln('(6) Insertion Desc ');
writeln('(7) Selection Asc ');
writeln('(8) Selection Desc ');
write(' Pilih metode : '); readln(pilih);
case (pilih) of
1:
begin
bubble_Asc(n);
end;
2:
begin
bubble_Desc(n);
end;
3:
begin
gravitasi_Asc(n);
end;
4:
begin
gravitasi_Desc(n);
end;
5:
begin
insertion_Asc(n);
end;
6:
begin
insertion_Desc(n);
end;
7:
begin
selection_Asc(n);
end;
8:
begin
selection_Desc(n);
end
else
writeln('Salah input');
end;
readln;
end.

You might also like