Anda di halaman 1dari 12

Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi

Gravitation Sort
ALGORITMA 2
Pengurutan GRAVITASI
(Gravitation Sort)

• Mirip dengan Bubble Sort tetapi dimulai dari elemen


pertama (paling kiri) dan dibandingkan dengan elemen
di belakangnya (sebelah kanannya),

29 27 10 8 76 21
1 2 3 4 5 6
• sehingga pada akhir langkah pertama diperoleh elemen
terakhir sudah dalam posisi terurut. Demikian
seterusnya.

27 10 8 29 21 76
1 2 3 4 5 6
Contoh Pengurutan
langkah 1
Contoh: Urutkan naik elemen-elemen array A = [6, 2, 9, 3, 4, 7]
Langkah 1 : 62 9 3 4 7 : 6 > 2 maka terjadi pertukaran
2 69 3 4 7 : 6 > 9 maka tidak terjadi pertukaran
2 6 93 4 7 : 9 > 3 maka terjadi pertukaran
2 6 3 94 7 : 9 > 4 maka terjadi pertukaran
2 6 3 4 97 : 9 > 7 maka terjadi pertukaran
2 6 3 4 7 9 : Elemen terakhir yaitu 9 sudah terurut.
Langkah 2

Langkah 2 : 26 3 4 7 9 : 2 < 6 maka tidak terjadi pertukaran


2 63 4 7 9 : 6 > 3 maka terjadi pertukaran
2 3 64 7 9 : 6 > 4 maka terjadi pertukaran
2 3 4 67 9 : 6 < 7 maka tidak terjadi pertukaran
2 3 4 6 7 9 : Elemen kelima yaitu 7 sudah terurut.
Langkah 3

Langkah 3 : 23 4 6 7 9 : 2 < 3 maka tidak terjadi pertukaran


2 34 6 7 9 : 3 < 4 maka tidak terjadi pertukaran
2 3 46 7 9 : 4 < 6 maka tidak terjadi pertukaran
2 3 4 6 7 9 : Elemen keempat yaitu 6 sudah terurut.
Langkah 4

Langkah 4 : 23 4 6 7 9 : 2 < 3 maka tidak terjadi pertukaran


2 34 6 7 9 : 3 < 4 maka tidak terjadi pertukaran
2 3 4 6 7 9 : Elemen ketiga yaitu 4 sudah terurut.
Langkah 5

Langkah 5 : 23 4 6 7 9 : 2 < 3 maka tidak terjadi pertukaran


2 3 4 6 7 9 : Elemen kedua yaitu 3 sudah terurut
Pada akhir langkah kelima ini tinggal satu elemen pertama yang belum
diproses, tetapi karena tinggal satu elemen maka dengan sendirinya
sudah menempati urutan yang benar (sudah terurut) sehingga langkah
tidak perliu dilanjutkan (selesai).
Algoritma Gravitation Sort
Contoh Program
Contoh Program :

Program Urut_GRAVITASI;
uses crt;
var i,j,k,temp,n integer;
A, B, C array [1..100] of integer;

begin
clrscr; textcolor(12);
write(’Banyaknya Elemen Array : ‘); readln(n);

{Input Data}
for i := 1 to n do
begin
write(’Elemen ke-’ ,i,’: ‘); readln(A[i]);
end;

{Cetak Array Sebelum Pengurutan}


writeln; textcolor(15); write(’Sebelum diurutkan : ‘);
for i := l to n do
write(A[i],’ ‘);
writeln; textcolor(15);
writeln; writeln(’Proses Pengurutan Gravitasi : ‘);
for i := 1 to n-1 do begin
for j := 1 to n-i do begin
if A[j] > A[j+1] then begin
temp := A[j+1];
A[j+1] := A[j];
A[j] := temp;
end;
end;
writeln; textcolor(i);
if A[j] > A[j+1] then begin
temp := A[j+1];
A[j+1] := A[j];
A[j] := temp;
end;
end;
writeln; textcolor(i);

{Cetak Array tiap Iangkah pengurutan :}


write(’Hasil akhir langkah ke-’,i,’ : ‘);
for k := 1 to n do
write(A[k],’ ‘);
end;

{Cetak Array Setelah Pengurutan}


writeln; writeln; textcolor(15);
write(’Hasil Pengurutan Gravitasi : ‘);
for i := 1 to n do
write(A[i],’ ‘);
writeln; writeln; textcolor(10);
write (’Sudah terurut dengan benar khan ..?‘);
readln;
end.
Output :

Anda mungkin juga menyukai