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

Copyright © 2014 Dunia Naeta All Right Reserved