Anda di halaman 1dari 10

Modul VI Sorting

MODUL VI
SORTING

6.1 TUJUAN
1. Mengetahui konsep sorting data dalam kumpulan data
2. Mengetahui macam-macam algoritma yang dapat digunakan untuk mengurutkan
data
3. Mengimplementasikan sorting ke dalam program

6.2 DASAR TEORI


6.2.1 Pengertian Sorting
Dalam pemrograman, pengertian sorting adalah suatu proses atau rangkaian cara
untuk menyusun kembali himpunan dari objek dengan menggunakan aturan
tertentu yang sudah ditetapkan.
Misalkan anda memiliki data angka-angka yang berjumlah n buah. Maka
berdasarkan pada data awal, anda akan memperoleh suatu input, dengan
pengertian :

Input : Urutan dari n angka (c1, c2, c3….cn)

Selanjutnya, anda menyusun angka-angka tersebut dari nilai terkecil sampai nilai
terbesar, maka anda akan memperoleh suatu output, dengan pengertian :

Output : Permutasi (Pengurutan kembali) dari (c’1, c’2, c’3…cn) yang sudah
tersusun sehingga memenuhi kondisi c’1 <= c’2 <= c3 <=…<=cn.

Angka yang kita harapkan untuk disusun juga dikenal dengan istilah keys.
Walaupun secara konsep anda mensorting suatu urutan, namun input yang datang
adalah dalam bentuk array dengan jumlah n element.

Kemudian, bagian yang terpenting yaitu cara anda melakukan sorting tersebut
sehingga masalah terpecahkan disebut dengan algoritma.

Praktikum Algoritma dan Struktur Data 2019 VI - 1


Modul VI Sorting

6.2.2 Bubble Sort


Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan
dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus
menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi
perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan
gelembung karena masing-masing kunci akan dengan lambat menggelembung ke
posisinya yang tepat. Pengurutan ini menggunakan sistem perbandingan
(Comparison-based sorting).
6.2.3 Quick Sort
Metode dari sorting jenis in adalah dimulai dengan menscan daftar yang disortir
untuk nilai median. Nilai ini, yang disebut tumpuan (pivot), kemudian dipindahkan
ke satu sisi pada daftar dan butir-butir yang nilainya lebih besar dari tumpuan di
pindahkan ke sisi lain. Pengurutan ini menggunakan sistem yang sama seperti
merge sort.
6.2.4 Shell Sort
Metode ini disebut juga dengan metode pertambahan menurun (diminishing
increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959,
sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data
dengan cara membandingkan suatu data dengan data lain yang memiliki jarak
tertentu, kemudian dilakukan penukaran bila diperlukan. Pengurutan ini
mneggunakan sistem berkurang menurun (diminishing increment sort method).
6.2.5 Selection Sort
Meotde ini menggunakan cara yaitu, pengurutan dilakukan dengan memilih elemen
terbesar dan menempatkan pada posisinya, kemudian mencari element terbesar
berikutnya dan menempatkan pada tempatnya, dan seterusnya. Pengurutan ini
menggunakan sistem berdasarkan prioritas (priority queue sorting method).
6.2.6 Insertion Sort
Gambaran dari sistem sorting ini adalah data dicek satu per satu mulai dari yang
kedua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil
daripada data sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai.
Akan lebih mudah apabila membayangkan pengurutan kartu. Pertama-tama anda
meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya dari kiri ke

Praktikum Algoritma dan Struktur Data 2019 VI - 2


Modul VI Sorting

kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di sebelahkiri, maka
ambil kartu tersebut dan sisipkan di tempat yang sesuai. Pengurutan ini
menggunakan sistem berdasarkan penyisipan dan penjagaan terurut (insert and
keep sorted method).
6.2.7 Merge Sort
Metode penggabungan biasa digunakan pada pengurutan berkas. Prinsip dari
metode penggabungan adalah mula-mula diberikan dua kumpulan data yang sudah
dalam keadaan urut. Kedua kumpulan data tersebut harus dijadikan satu tabel
sehingga dalam keadaan terurut. Pengurutan ini menggunakan sistem berdasarkan
pembagian dan penguasaan (divide and conquer method).
6.2.8 Heap Sort
Heap sort adalah sorting yang menggunakan struktur data heap, dengan nilai parent
selalu lebih besar dari pada nilai childnya.
Algoritma:
1. Buat suatu heap.
2. Ambil isi dari root masukkan kedalam sebuah array.
3. Hapus element root dengan mempertahankan properti heap.
4. Ulangi sampai tree menjadi kosong
6.2.9 Bucket Sort
Bucket sort adalah algoritme berbasis perbandingan yang beroperasi pada elemen
dengan mengelompokkannya pada beberapa bucket berbeda lantas bucket
tersebut diurutkan secara terpisah. Setiap bucket dapat diurutkan secara terpisah
menggunakan algoritme sorting yang berbeda atau dengan menerapkan algoritme
bucket sort secara rekursif. Bucket sort amat sangat berguna saat digunakan pada
input yang terdistribusi secara seragam dalam rentangan.
6.2.10 Radix Sort
Radix Sort adalah metode/algoritma pengurutan dengan cara Non-Camparation
(pengurutan tanpa perbandingan). Prosesnya dengan cara menyelesaikan data
sesuai dengan kategori terurut hingga terus-menerus hingga sesuai dengan yang
dibutuhkan kemudian bagian-bagian kategori digabungkan kembali.

Praktikum Algoritma dan Struktur Data 2019 VI - 3


Modul VI Sorting

6.3 JOBSHEET
No. Latihan Script dan Analisa
package algodatp6;
import java.util.Random;
public class J1_BubbleSort
{
void bubbleSort(int arr[])
{
System.out.println("--------------------Bubble Sorting-------------------");
System.out.print("Data Sebelum di Sorting : ");
for(int x = 0; x < 13; x++)
System.out.print(arr[x]+" ");
Buatlah Proses sorting int n = arr.length;
1 dan jumlah data sesuai System.out.print("\n-----------------------ITERASI-----------------------");
dengan akhiran NIM
for (int i = 0; i < n-1; i++)
{
System.out.print("\nIterasi ke-"+(i+1)+" : ");

for (int j = 0; j < n-i-1; j++)


if (arr[j] > arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;

Praktikum Algoritma dan Struktur Data 2019 VI - 4


Modul VI Sorting

}
for (int k=0; k<n; k++)
{
System.out.print(arr[k]+" ");
}
}
}

void printArray(int arr[])


{
int n = arr.length;
for (int i=0; i<n; ++i)
{
System.out.print(arr[i] + " ");
}
System.out.println();
}

public static void main(String[] args)


{
J1_BubbleSort ob = new J1_BubbleSort();
Random angkaRandom = new Random();
int r1 = 1+angkaRandom.nextInt(30);
int r2= 1+angkaRandom.nextInt(30);

Praktikum Algoritma dan Struktur Data 2019 VI - 5


Modul VI Sorting

int r3 = 1+angkaRandom.nextInt(30);
int r4 = 1+angkaRandom.nextInt(30);
int r5 = 1+angkaRandom.nextInt(30);
int r6 = 1+angkaRandom.nextInt(30);
int r7 = 1+angkaRandom.nextInt(30);
int r8 = 1+angkaRandom.nextInt(30);
int r9 = 1+angkaRandom.nextInt(30);
int r10 = 1+angkaRandom.nextInt(30);
int r11 = 1+angkaRandom.nextInt(30);
int r12 = 1+angkaRandom.nextInt(30);
int r13 = 1+angkaRandom.nextInt(30);
int arr[] = {r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13};
ob.bubbleSort(arr);
System.out.println("\n-----------------------HASIL-----------------------");
System.out.print("Data Setelah di Sorting : ");
ob.printArray(arr);
}
}

Berdasarkan script tersebut dapat dianalisa bahwa script tersebut merupakan program sorting untuk mengurutkan
13 angka menggunakan bubble sort dan setiap angkanya di generate secara random. Pada script tersebut juga dapat
dilihat bahwa script in hanya memiliki 1 buah class dan didalamnya terdapat 3 buah method yang dimana masing –
masing method mempunyai fungsi masing – masing, method bubbleSort digunakan sebagai tempat inisialisasi
dan logika bubble sort, method printArray digunakan sebagai perantara antara fungsi main dan printArray

Praktikum Algoritma dan Struktur Data 2019 VI - 6


Modul VI Sorting

untuk merapikan dan menampilkan keluaran program, dan method main digunakan untuk melakukan proses
generate angka random beserta manampilkan keluaran program.

Praktikum Algoritma dan Struktur Data 2019 VI - 7


Modul VI Sorting

6.4 KESIMPULAN

Praktikum Algoritma dan Struktur Data 2019 VI - 8


Modul VI Sorting

DAFTAR PUSTAKA

http://www.nahrowi.com/2016/05/01/macam-macam-sorting-pada-java/
http://web.if.unila.ac.id/muhammadalif/2015/11/12/jenis-jenis-sorting/
http://bahasajava.com/algoritma-pemrograman-java-sorting-insertion-sort/
https://indonesia.hackerearth.com/konsep-dasar-bucket-sort/

Praktikum Algoritma dan Struktur Data 2019 VI - 9


Modul VI Sorting

LAMPIRAN
No. Latihan Flowchart Screenshot

Praktikum Algoritma dan Struktur Data 2019 VI - 10

Anda mungkin juga menyukai