Skip to content

Instantly share code, notes, and snippets.

@udibagas
Created April 21, 2013 14:04
Show Gist options
  • Save udibagas/5429692 to your computer and use it in GitHub Desktop.
Save udibagas/5429692 to your computer and use it in GitHub Desktop.
Bubble Sort Java
public class MainSorting {
public static void main(String[] args) {
// buat object Sorting dengan panjang array max = 10
Sorting srt = new Sorting(10);
// Data siswa
Siswa1 sis1 = new Siswa1("Bagas", 60);
Siswa1 sis2 = new Siswa1("Udi", 80);
Siswa1 sis3 = new Siswa1("Sahsangka", 50);
Siswa1 sis4 = new Siswa1("Budi", 95);
Siswa1 sis5 = new Siswa1("Astanto", 60);
Siswa1 sis6 = new Siswa1("Tri", 65);
Siswa1 sis7 = new Siswa1("Hartono", 70);
Siswa1 sis8 = new Siswa1("Buhori", 75);
Siswa1 sis9 = new Siswa1("Dermawan", 85);
// masukkan ke dalam sorting
srt.add(sis1);
srt.add(sis2);
srt.add(sis3);
srt.add(sis4);
srt.add(sis5);
srt.add(sis6);
srt.add(sis7);
srt.add(sis8);
srt.add(sis9);
// lakukan sorting
srt.sort();
// tampilkan data siswa yang telah di sorting
srt.display();
}
}
public class Siswa1 {
public String nama;
public int nilai;
// constructor tanpa parameter
public Siswa1() {
}
// constructor, isi dengan nama dan nilai
public Siswa1(String nm, int nl) {
nama = nm;
nilai = nl;
}
// menampilkan data siswa
void display() {
System.out.println("Nama = " + nama + ", Nilai = " + nilai);
}
}
public class Sorting {
// yang akan diurutkan adalah class Siswa berdasarkan nilai
private Siswa1[] s;
// index array
private int idx;
// constructor, bukan object Sorting dengan membuat object Siswa sebanyak 'size'
Sorting(int size) {
s = new Siswa1[size];
// index array Siswa1 kosong = -1 (index array dimulai dari 0)
idx = -1;
}
// tambahkan Siswa1
void add(Siswa1 sis) {
// naikkan index
idx++;
// isi array 's' dengan 'sis'
s[idx] = sis;
}
// proses sorting
void sort() {
// looping sebanyak jumlah siswa yg dimasukkan
for (int i = 0; i <= idx; i++) {
// looping sebanyak jumlah siswa - 1
// data terakhir tidak dibandingkan karena tidak ada pembandingnya
for (int j = 0; j < idx; j++) {
// jika nilai siswa lebih dari niai siswa selanjutnya tukar posisi
if (s[j].nilai > s[j+1].nilai) {
// tampung dulu di 'tmp'
Siswa1 tmp = s[j];
// tukar posisi
s[j] = s[j+1];
s[j+1] = tmp;
}
}
}
}
// menampilkan isi array
void display()
{
// looping sebanyak jumlah siswa
for (int i = 0; i <= idx; i++) {
// panggil method display pada class Siswa1
s[i].display();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment