MODUL 5
SORTING / PENGURUTAN
1. TUJUAN
Mahasiswa memahami tentang sorting serta dapat membuat program sorting
untuk berbagai bentuk data.
2. TEORI SINGKAT
Sorting atau pengurutan merupakan suatu proses untuk menyusun suatu data
yang acak menjadi terurut, sehingga tersusun secara teratur menurut aturan tertentu
(untuk data yang bertipe numerik atau karakter).
Dua macam Sorting
Ascending (urut naik) merupakan pengurutan dari angka yang nilainya lebih
kecil kemudian menuju ke nilainya yang lebih besar.
Descending (urut turun) adalah sebaliknya, yaitu pengurutan dari nilainya
yang lebih besar kemudian menuju ke nilainya yang lebih kecil.
Beberapa metode Sorting
a. Bubble Sort
Algoritma bubble sort akan membandingkan elemen yang saat ini dibaca
dengan elemen berikutnya. Jika elemen yang saat ini dibaca lebih besar dari
elemen berikutnya, maka tukarkan. Proses ini dilakukan hingga semua data
sudah dibandingkan dan terurut.
b. Insertion Sort
Algoritma insertion sort melakukan pengurutan dengan cara membandingkan
data ke-i (dimulai dari data ke-2 sampai dengan data terakhir) dengan data
berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut
disisipkan ke depan sesuai dengan posisi yang seharusnya.
c. Selection Sort
Algoritma selection sort melakukan pengurutan dengan membandingkan
elemen yang sekarang dengan elemen berikutnya sampai dengan elemen
yang terakhir. Jika deitemukan elemen yang lebih kecil dari elemen sekarang,
maka dicatat posisinya dan kemudian ditukar.
d. Quick Sort
Algoritma quick sort melakukan pengurutan dengan membandingkan suatu
elemen pivot dengan elemen yang lain dan menyusunnya sedemikian rupa
sehingga elemen tersebut terletak disebelah kirinya dan elemen-elemen yang
lebih besar daripada pivot terletak disebelah kanan.
e. Shell Sort
Algoritma shell sort melakukan pengurutan dengan melakukan perbandingan
angka pada 2 posisi dengan jarak tertentu, jarak disini diartikan jarak posisi
antara 2 bilangan yang ingin dibandingkan. Kemudian, langkah
pembandingan dan penukaran itu dilanjutkan dengan jarak yang baru.
3. PELAKSANAAN PRAKTIKUM
Tuliskan dan eksekusi program sorting Bubble Sort berikut :
public class BubbleSort
{
public static void tampilkanData(String nama[], int
indeksTerakhir)
{
for(int i = 0; i <= indeksTerakhir; i++)
System.out.println(nama[i]);
}
public static void urutkanBubble(String nama[], int
indeksTerakhir)
{
String sementara = " ";
for(int j = 0; j <= indeksTerakhir - 1; j++)
{
for(int i = 0; i <= indeksTerakhir - 1 - j; i+
+)
{
if (nama[i].compareTo(nama[i+1]) > 0)
{
sementara = nama[i];
nama[i] = nama[i+1];
nama[i+1] = sementara;
}
}
}
}
public static void main(String args[])
{
String nama[] = {"sita", "agus", "wahyu", "indah",
"novita", "jamal", "feri", "tasya", "eko", "ikhwan"};
int indeksTerakhir = nama.length - 1;
System.out.println("Data sebelum diurutkan : ");
tampilkanData(nama, indeksTerakhir);
urutkanBubble(nama, indeksTerakhir);
System.out.println();
System.out.println("Data setelah diurutkan : ");
tampilkanData(nama, indeksTerakhir);
}
}
Setelah program di atas berhasil dieksekusi, modifikasilah program sorting di
atas (terutama pada bagian fungsi/method bernama urutkanBubble) agar nama-
nama yang muncul tampil secara urut turun (descending).
4. LATIHAN
Program yang anda coba pada bagian Pelaksanaan Praktikum merupakan
program untuk mengurutkan nama. Sekarang anda diminta untuk menambahkan
umur dan jenis kelamin, kemudian lakukan pengurutan sebagaimana yang anda
lakukan sebelumnya. Buatlah supaya saat anda mengurutkan nama, maka umur
dan jenis kelamin ikut menyesuaikan (umur dan jenis kelamin terikat pada nama).
5. TUGAS
Dengan data dan stuktur data yang sama pada bagian Latihan (nama, umur,
dan jenis kelamin) yang menggunakan metode Bubble Sort, ubahlah program
tersebut menggunakan salah satu metode sorting lainnya (Insertion, Selection,
Quick, Shell).