Bubble Sort pada pascal.

pada artikel kali ini akan membahas tentang bubble sort yaitu pengurutan dengan metode bubble sort. pertama kita mesti tau dulu bubble sort terbagi 2. ada buble sort menaik dan bubble sort menurun.

contoh yang menaik : data = 1 4 3 2
hasil = 1 2 3 4

sedangkan contoh yang menurun : data 1 4 3 2
hasil = 4 3 2 1

simple saja bukan :) lets check it out ..


program arh_bsort_menaik;

uses wincrt;

var i,n,j : integer;
a: array [1..100] of integer;

procedure buble;
var z: integer;
begin
for i:= 1 to n-1 do
begin
for j:= n downto i+1 do
begin
if a[j] < a[j-1] then
begin
z:= a[j];
a[j]:= a[j-1];
a[j-1]:=z;
end;
end;
end;

end;
begin
write('masukkan banyak larik (maks 100) : '); readln(n);
for i:= 1 to n do
begin write('A[',i,'] : '); readln(a[i]);
end;

buble;
write('data setelah diurutkan : ');

for j:=1 to n do
write (a[j],' ');
end.


Yang harus diperhatikan adalah koding
if a[j] < a[j-1] then
begin
z:= a[j];
a[j]:= a[j-1];
a[j-1]:=z;

end;
fungsi koding diatas adalah untuk menukarkan posisi dari angka yang ada pada larik. Jika nilai sekarang lebih kecil dari nilai sebelumnya maka tukar posisi array. Maksudnya serpti ini, misalnya kita punya data 1 4 3 ketika yang dicek array indeks ke 2 a[2]=4, akan dibandingkan nilainya dengan array indeks sebelumnya a[2-1]=1, apakah 4 < 1 ? kalau iya ditukar posisinya. Kalau tidak ya gak ditukar.
Selanjutnya pada array indeks ke 3 a[3]=3 dan a[3-1]=4. Apakah 3<4? Iya, barulah dijalankan proses pertukaran tempat/posisi array.

Konsepnya sama seprti algoritma tukar bejana. Dimana kita memiliki sebuah variabel temp yang bernama z.pertama nilai dari larik sekarang (yang ingin dipindahkan) a[i] akan diletakkan pada temp (z). kemudian nilai larik sekarang (a[i]) di isi dengan nilai sebelumnya a[i-1]. Lalu nilai dari a[i-1] di isi nilai z.
Contohnya : nilai a[i]= 4 a[i-1]=3. Maka tahapan pertukarannya adalah
z := 4; a[i]= 3; a[i-1]=4; selesai deh pertukaran dicek dan dilakukan terus sampai angka terurut semua.



Koding untuk bubble sort menurun
program arh_bsort_menurun;

uses wincrt;

var i,n,j : integer;
a: array [1..100] of integer;

procedure buble;
var z: integer;
begin
for i:= 1 to n-1 do
begin
for j:= n downto i+1 do
begin
if a[j] > a[j-1] then
begin
z:= a[j];
a[j]:= a[j-1];
a[j-1]:=z;
end;
end;
end;

end;
begin
write('masukkan banyak larik (maks 100) : '); readln(n);
for i:= 1 to n do
begin write('A[',i,'] : '); readln(a[i]);
end;

buble;
write('data setelah diurutkan : ');

for j:=1 to n do
write (a[j],' ');
end.

Kodingnya sama saja perbedaannya hanya pada tulisan yang berwarna merah.

btw yang belom punya tpw download dulu di sini klik




Artikel yang berhubungan




2 comments:

Unknown said...

bg tlong lah bntuin buat program pascal bubble sort dari kecil ke besar
contoh :
X1=15
X2=31
X3=38
X4=43
X5=65
X6=35
X7=78

hasil output nya harus terurut:
15 31 38 43 35 65 78
15 31 38 35 43 65 78
15 31 35 38 43 65 78

Rizki Munanda said...

ini yang saya cari, tapi sayang penjelasannya sangat ribet dan sangat susah di mengerti :(, ai ai ai ai[] bingung gw..

Post a Comment

Related Posts Plugin for WordPress, Blogger...