Lompat ke konten Lompat ke sidebar Lompat ke footer

Program Pengurutan Data pada Java Menggunakan Sorting

Pada bahasa pemrograman java terdapat dua method in-built yang dapat digunakan untuk melakukan sorting atau proses pengurutan data pada Java, yaitu dengan menggunakan Array.Sort() dan Collection.Sort() yang dijelaskan sebagai berikut.


Sebelum lebih lanjut mempelajari materi tentang Program Pengurutan Data pada Java Menggunakan Sorting, terlebih dahulu pelajari materi tentang: Fungsi Currying Java dan Penerapannya, Menggunakan Underscore Java untuk Literasi Angka, dan Program Pencarian pada Java Menggunakan Binary Search.

Dalam pengembangan perangkat lunak, seringkali pengembang dihadapkan pada kebutuhan untuk mengurutkan kumpulan data dalam rangka melakukan analisis atau mempersiapkan data untuk pemrosesan lebih lanjut. Dalam bahasa pemrograman Java, terdapat berbagai algoritma pengurutan yang dapat digunakan, yang dikenal sebagai algoritma sorting. Artikel ini akan membahas konsep dasar dari algoritma sorting dan bagaimana pengembang dapat menerapkannya dalam sebuah program Java.

Sorting adalah proses pengaturan ulang elemen-elemen dalam sebuah kumpulan data ke dalam urutan tertentu, baik itu secara menaik (ascending) atau menurun (descending), sesuai dengan kriteria tertentu. Tujuan utama dari pengurutan adalah untuk mempermudah akses dan pencarian data, serta meningkatkan efisiensi dalam proses pemrosesan data.

satu, Arrays.Sort() berfungsi untuk array dan juga untuk tipe data primitif.

Contoh:

// Sebuah contoh program Java

// untuk mendemonstrasikan

// cara kerja dari

// Arrays.sort() 

 

// Proses ini akan mengurutkan

// data otomatis secara

// ascending 

import java.util.Arrays

 

public class MKN

 

public static void main(String[] args

int[] arr = { 13, 7, 6, 45, 21, 9, 101, 102 }; 

 

Arrays.sort(arr); 

 

System.out.printf("Modifikasi"

+" arr[] : %s",

Arrays.toString(arr)); 

}

 

}

Output:
Modifikasi arr[] : [6, 7, 9, 13, 21, 45, 101, 102]

dua, Collection.sort() berfungsi untuk tipe data objek seperti ArrayList dan LinkedList.

Contoh:

// Program Java

// mendemonstrasikan fungsi

// dari Collections.sort()

import java.util.*

 

public class MKN

 

public static void main(String[] args

// Ciptakan list dari string 

ArrayList<string>  al = new ArrayList<string>(); 

al.add("Bambang"); 

al.add("Teman"); 

al.add("Salam"); 

al.add("adalah"); 

al.add("Makhluk super"); 

 

// method Collections.sort

// melakukan sorting elemen

// dari ArrayList dalam urutan

// ascending

Collections.sort(al); 

 

/* Cetak hasilnya */ 

System.out.println("Daftar"

+" setelah menggunakan " 

+" Collection.sort() :\n

+ al); } 

}

Output
Daftar setelah menggunakan Collection.sort() :
[adalah, Bambang, Makhluk super, Salam, Teman]

ContohArray Sort

// Contoh program Java untuk

// sorting array secara

// descending menggunakan

// Arrays.sort()

import java.util.Arrays

import java.util.Collections

 

public class MKN

 

public static void main(String[] args

// nilai integer yang

// digunakan sebagai pengganti

// dari int[] tidak akan

// berfungsi pada

// Collections.reverseOrder

// untuk tipe data primitif

Integer[] arr = { 13, 7, 6, 45, 21, 9, 2, 100 }; 

 

/* Sorting arr[] dalam urutan descending */ 

Arrays.sort(arr, Collections.reverseOrder()); 

 

System.out.printf("Modifikasi

+" arr[] : %s"

,Arrays.toString(arr)); 

}

 

}

Output:
Modifikasi arr[] : [100, 45, 21, 13, 9, 7, 6, 2]

Contoh: Collection Sort

// Program Java

// mendemonstrasikan fungsi

// dari Collections.sort()

// untuk sorting secara

// descending 

import java.util.*

 

public class MKN

 

public static void main(String[] args

/* ciptakan list of string */ 

ArrayList<string>  al = new ArrayList<string>(); 

al.add("Bambang"); 

al.add("Teman"); 

al.add("Salam"); 

al.add("adalah"); 

al.add("Makhluk super"); 

 

// method Collections.sort

// melakukan sorting element

// ArrayList secara descending

Collections.sort(al, Collections.reverseOrder()); 

 

/* cetak hasil output */ 

System.out.println("Daftar"

+" setelah menggunakan" 

+" Collection.sort() :\n

+ al); 

 

}

Output:
List after the use of Collection.sort() :
[Teman, Salam, Makhluk super, Bambang, adalah]

Baca Juga:

// Contoh program Java untuk

// sorting subarray

// menggunakan Arrays.sort() 

import java.util.Arrays

 

public class MKN

 

public static void main(String[] args

// Array mengandung 8 elemen

int[] arr = { 13, 7, 6, 45, 21, 9, 2, 100 }; 

 

// Sorting subarray dari

// indeks 1 ke indeks 4

 

// nilai yang di-sorting hanya

// {7, 6, 45, 21} 

 

// sisa elemen lain yang tidak

// di-sorting akan tetap

// dipertahankan nilainya

Arrays.sort(arr, 1, 4); 

 

System.out.printf("Modifikasi"

+" arr[] : %s"

,Arrays.toString(arr)); 

 

}

Output:
Modifikasi arr[] : [13, 6, 7, 21, 45, 9, 2, 100]

Implementasi Sorting dalam Java

Berikut adalah contoh implementasi beberapa algoritma sorting yang umum digunakan dalam bahasa pemrograman Java:

Contoh: Bubble Sort.

public class BubbleSort {


public static void 

bubbleSort(int[] arr) {


int n = arr.length;


for (int i = 0

i < n-1; i++

{

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;

}

}

}

}


public static void main(String[] args) {


int[] array = {

64, 34, 25, 12, 22, 11, 90

};


bubbleSort(array);

        System.out.println("Array

 setelah pengurutan:");


for (int i : array) {

System.out.print(i + " ");

}

}

}


Contoh: Insertion Sort.

public class InsertionSort {


public static void 

insertionSort(int[] arr) {


int n = arr.length;


for (int i = 1; i < n; i++

{

int key = arr[i];

int j = i - 1;


while (j >= 0 && arr[j] > key) 

{arr[j + 1] = arr[j];

j = j - 1;}

arr[j + 1] = key;

}


}


public static void 

main(String[] args

{

int[] array = {

64, 34, 25, 12, 22, 11, 90};


insertionSort(array);

System.out.println("Array 

setelah pengurutan:");


for (int i : array) {

System.out.print(i + " ");

}

}

}


Contoh: Merge Sort.

public class MergeSort {


public static void 

merge(int[] arr, int l, int m, int r

{

int n1 = m - l + 1;

int n2 = r - m;


int L[] = new int[n1];

int R[] = new int[n2];


for (int i = 0; i < n1; ++i)

L[i] = arr[l + i];


for (int j = 0; j < n2; ++j)

R[j] = arr[m + 1 + j];


int i = 0, j = 0;

int k = l;


while (i < n1 && j < n2) 

{

if (L[i] <= R[j]) 

{arr[k] = L[i];

i++;} 

else 

{arr[k] = R[j];

j++;}

k++;

}


while (i < n1) 

{

arr[k] = L[i];

i++;

k++;

}


while (j < n2) 

{

arr[k] = R[j];

j++;

k++;

}

}


public static void 

mergeSort(int[] arr, int l, int r

{

if (l < r) 

{

int m = l + (r - l) / 2;

mergeSort(arr, l, m);

mergeSort(arr, m + 1, r);

merge(arr, l, m, r);

}

}


public static void 

main(String[] args

{

int[] array = {

64, 34, 25, 12, 22, 11, 90};


mergeSort(array, 0,

 array.length - 1);

        

System.out.println("Array setelah pengurutan:");


for (int i : array) 

{System.out.print(i + " ");}

}

}


Analisis Kinerja

Setiap algoritma sorting memiliki kompleksitas waktu yang berbeda-beda. Sebagai contoh, Bubble Sort memiliki kompleksitas waktu O(n^2), Insertion Sort memiliki kompleksitas waktu O(n^2), dan Merge Sort memiliki kompleksitas waktu O(n log n). Kompleksitas waktu yang lebih rendah menandakan kinerja yang lebih baik, terutama untuk kumpulan data yang besar.

Selain itu, performa algoritma sorting juga dipengaruhi oleh berbagai faktor lainnya, seperti keadaan awal kumpulan data (terurut atau tidak), kebutuhan untuk menangani duplikat, dan sebagainya.

Kesimpulan

Algoritma sorting adalah komponen penting dalam pengembangan perangkat lunak yang efisien dan efektif. Dengan pemahaman yang baik tentang berbagai algoritma sorting dan bagaimana cara menerapkannya dalam bahasa pemrograman Java, pengembang dapat memilih algoritma yang paling sesuai dengan kebutuhan spesifik dan memastikan bahwa pengurutan data dilakukan dengan efisien dan efektif. Dengan menggunakan sorting, pengembang dapat meningkatkan kinerja aplikasi, mengoptimalkan penggunaan sumber daya, dan meningkatkan pengalaman pengguna secara keseluruhan.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Ayu Nur Jannah, Clarinet Rachma Devie, Devy Maria Kristiani, Diana Hidayati Utami, dan Emmanuel Putra Jatmiko.

6 komentar untuk "Program Pengurutan Data pada Java Menggunakan Sorting"

  1. Algoritma sorting apa yang digunakan untuk pengurutan pada Java?

    BalasHapus
    Balasan
    1. Method Arrays.sort Java digunakan untuk quicksort array dari data primitif dan merge sort untuk array dari data tipe objek.

      Hapus
  2. Urutan sorting mana yang dilakukan secara default?

    BalasHapus
  3. Bagaimana cara array atau list melakukan sorting secara descending?

    BalasHapus
    Balasan
    1. Sorting descending bisa dilakukan dengan Collection.reverseOrder() seperti diperlihatkan contoh berikut.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -