Buble Short
Contoh Program Buble sort
Pengurutan
biasa diterapkan pada isi tipe data array. Misalnya kita punya 100 orang
mahasiswa lalu kita ingin urutkan data tersebut mulai dari nilai tertinggi
sampai nilai terendah disitulah kita gunakan pengurutan. Buble Sort adalah
suatu metode pengurutan yang sederhana. Prinsip kerjanya seperti namanya (buble yang berarti gelembung). Misalnya
kita punya setumpuk data, mau kita urutkan dari yang paling kecil. Ambil data
yang paling bawah bandingkan dengan yang atasnya kalau atasnya lebih kecil
tukar poisisi yang kecil naik ke atas. Lakukan langkah tersebut seterusnya
sampai semua data terurutkan. Lihat tabel berikut :
Data Asli
|
Langkah 1
|
Langkah 2
|
Langkah 3
|
Langkah 4
|
Langkah 5
|
Data Urut
|
D
|
D
|
A
|
A
|
A
|
A
|
A
|
C
|
A
|
D
|
D
|
B
|
B
|
B
|
A
|
C
|
C
|
B
|
D
|
C
|
C
|
B
|
B
|
B
|
C
|
C
|
D
|
D
|
Contoh 4.1
{ pengurutan buble sort }
Program P008;
Uses wincrt;
Var data: array [1..100] of
integer;
i,j,temp,jumlah: integer;
Begin
clrscr;
write('Masukan jumlah data : ');
readln(jumlah);
for i:=1 to jumlah do
begin
write('Masukan data ke ',i,': ');
readln(data[i]);
end;
clrscr;
writeln('Data yang belum terurut');
for i:=1 to jumlah do
begin
write(data[i]);
end;
for i:=1 to jumlah do
begin
for j:=jumlah downto 2 do
begin
if (data[j]<data[j-1]) then
begin
temp:=data[j-1];
data[j-1]:=data[j];
data[j]:=temp;
end;
end;
end;
writeln;
writeln('Data yang sudah terurut');
for i:=1 to jumlah do
begin
write(data[i]);
end;
readln;
end.
Latihan
1.
Buat
program pengurutan buble sort dengan inputan karakter
2.
Perbaiki
penggalan program pengurutan data mahasiswa menggunakan buble sort berdasarkan
nilai terbesar berikut :
datamhs = record
NIM : string;
Nama
: string;
Nilai
: integer;
end;
var
siswa : array[1..100] of datamhs;
clrscr;
write(‘Masukan
jumlah siswa : ‘);
readln(jumlah);
for
I:=1 to jumlah do
begin
clrscr;
write(‘Mahasiswa ke-",i);
write(‘Masukan NIM : ‘);readln(siswa[i].NIM);
write(‘Masukan Nama : ‘);readln (siswa[i].Nama);
write(‘Masukan Nilai : ‘);readln
(siswa[i].Nilai);
end;
clrscr;
write(‘Daftar
Mahasiswa yang belum terurut ’);
write(‘ NIM
NAMA NILAI ‘);
for
I:=1 to jumlah do
write(NIM, Nama, Nilai);
for I:=1 to jumlah do
for j:=jumlah dowto 2
if (siswa[j-1].Nilai>siswa[j].Nilai)
temp=siswa[j-1].Nilai;
siswa[j-1].Nilai=siswa[j].Nilai;
siswa[j].Nilai=temp;
write(‘Daftar Mahasiswa
yang sudah terurut ‘);
write(‘ NIM
NAMA NILAI ‘);
for
I:=1 to jumlah do
write(siswa,siswa[i].Nama,siswa.Nilai);
0 komentar:
Post a Comment