Banyak algoritma berbeda telah dikembangkan untuk menemukan cara yang paling efektif dan efisien dalam mengurutkan data. Karena pengurutan data adalah operasi umum dan sering digunakan, Java sudah menyediakan metoda untuk mengurutkan data yang tersimpan di larik (array).
Metoda tersebut adalah sort dari kelas Arrays yang berada di paket java.util. Metode short dari kelas Arrays dapat mengurutkan data tipe short, int, long, float, double dan char. Berikut ini adalah contoh sederhana program Java mengurutkan nilai elemen larik dengan tipe data int dan char.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | // Nama file : MengurutkanElemen.java // Mengurutkan elemen dengan metoda sort dari kelas Arrays // Mengimpor kelas Java import javax.swing.JOptionPane; import javax.swing.JTextArea; import java.util.Arrays; // Deklarasi kelas public class MengurutkanElemen { // Metoda main public static void main(String[] args) { int[] nilaiInteger = {3,2,6,4,8,7,9,1,5,10}; char[] nilaiKarakter = {'d', 'c', 'g', 'f', 'i', 'a', 'b', 'h', 'e'}; String tampilan; JTextArea areaTampilan; // Menampilkan elemen larik integer tampilan = "Menampilkan elemen larik integer :\n"; for (int x = 0; x < nilaiInteger.length; x++) tampilan += nilaiInteger[x] + " "; Arrays.sort(nilaiInteger); // Menampilkan elemen larik integer setelah diurutkan tampilan += "\nMenampilkan elemen larik integer setelah diurutkan :\n"; for (int x = 0; x < nilaiInteger.length; x++) tampilan += nilaiInteger[x] + " "; // Menampilkan elemen larik karakter tampilan += "\n\nMenampilkan elemen larik karakter :\n"; for (int x = 0; x < nilaiKarakter.length; x++) tampilan += nilaiKarakter[x] + " "; Arrays.sort(nilaiKarakter); // Menampilkan elemen larik karakter setelah diurutkan tampilan += "\nMenampilkan elemen larik karakter setelah diurutkan :\n"; for (int x = 0; x < nilaiKarakter.length; x++) tampilan += nilaiKarakter[x] + " "; areaTampilan = new JTextArea(); areaTampilan.setText(tampilan); JOptionPane.showMessageDialog(null, areaTampilan, "Mengurutkan Elemen Larik", JOptionPane.INFORMATION_MESSAGE); // Mengakhiri aplikasi System.exit(0); } } |
Baris nomor 15 dan 16 adalah deklarasi, membuat dan menginisialisasi larik nilaiInteger dan larik nilaiKarakter. Baris nomor 23 adalah perulangan for untuk menampilkan nilai elemen larik nilaiInteger. Di setiap iterasi perulangan for, pernyataan baris nomor 24 dieksekusi yaitu menyimpan elemen larik larikInteger ke variabel tampilan.
Baca artikel:
- Pengertian Dan Deklarasi Larik (Array) Di Java
- Menggunakan Notasi Pendek Larik (Array Initializer) Di Java
Baris nomor 26 adalah pernyataan untuk mengurutkan nilai elemen larik nilaiInteger menggunakan metoda sort dari kelas Arrays. Metode sort ini memerlukan argumen larik yang elemennya akan diurutkan. Setelah diurutkan, nilai elemen kemudian ditampilkan (baris nomor 30 – 31). Baris nomor 35 adalah perulangan for untuk menampilkan nilai elemen larik nilaiKarakter.
Di setiap iterasi perulangan for, pernyataan baris nomor 36 dieksekusi yaitu menyimpan elemen larik larikKarakter di variabel tampilan. Baris nomor 38 adalah pernyataan untuk mengurutkan nilai elemen larik nilaiKarakter menggunakan metoda sort kelas Arrays. Metode sort memerlukan argumen larik yang elemennya akan diurutkan. Setelah diurutkan, nilai elemen kemudian ditampilkan (baris nomor 42 – 43).

Selain metode sort kelas Arrays, Anda juga dapat membuat metoda sendiri (user defined method) untuk mengurutkan elemen larik. Berikut ini adalah deklarasi dua metoda yaitu mengurutkanElemen dan menukar yang akan digunakan untuk mengurutkan elemen larik tipe int. Di dalam mengurutkan elemen larik, metode mengurutkanElemen akan memanggil metoda menukar.
// Deklarasi metoda mengurutkanElement public static void mengurutkanElemen(int[] larikA) { for(int x = larikA.length - 1; x >= 1 x--) { for(int j = 0; j <= x; j++) { if (larik[j] > larik[x]) menukar(larikA, j, x) } } } // Deklarasi metoda menukar public static void menukar(int[] lariB, int indekj, int indekx) { int sementara; sementara = larikB[indekx]; larikB[indekx] = larikB[indekj]; larikB[indekj] = sementara; }
Berikut ini adalah contoh program sederhana mengurutkan data tipe int yang tersimpan di larik larikInt menggunakan metoda mengurutkanElemen dan menukar yang telah dideklarasikan di atas. Kedua metoda tersebut hanya dapat digunakan untuk mengurutkan elemen larik tipe int.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | // Nama file : MengurutkanElemen2.java // Mengunakan metoda yang dideklarasikan sendiri // Deklarasi kelas public class MengurutkanElemen2 { // Metoda main public static void main(String[] args) { int[] larikInt = {5, 3, 7, 9, 8, 6, 2, 1, 4}; // Menampilakan elemen larik sesuai urutan aslinya System.out.println("\nElemen larik sesuai urutan aslinya :"); for (int x = 0; x < larikInt.length; x++) System.out.print(larikInt[x] + " "); // Mengurutkan larik mengurutkanElemen(larikInt); // Menampilkan elemen larik setelah diurutkan System.out.println("\n\nElemen larik setelah diurutkan :"); for (int x = 0; x < larikInt.length; x++) System.out.print(larikInt[x] + " "); // Menambah spasi baris kosong System.out.println(); } // Akhir blok metoda main // Metoda mengurutkanElemen public static void mengurutkanElemen(int[] larikA) { for (int x = larikA.length - 1; x >= 1; x--) { for (int j = 0; j <= x; j++) { if (larikA[j] > larikA[x]) menukar(larikA, j, x); } } } // metoda menukar public static void menukar(int[] larikB, int indekj, int indekx) { int sementara; sementara = larikB[indekx]; larikB[indekx] = larikB[indekj]; larikB[indekj] = sementara; } } |

Contoh program di atas adalah implementasi metoda mengurutkanElemen dan menukar. Baris nomor 10 adalah deklarasi, membuat dan menginisialisasi larik nilaiInt. Perulangan for baris nomor 14–15 menampilkan elemen larik nilaiInt dengan urutan sesuai aslinya. Baris nomor 18 adalah pernyataan untuk memanggil metoda mengurutkanElemen.
Metoda mengurutkanElemen memerlukan argumen larik dengan elemen tipe int. Di blok metoda mengurutkanElemen terdapat perulangan tersarang for dan penyeleksian if. Perulangan for bagian luar mendeklarasikan variabel kontrol x dengan nilai awal larikA.length - 1. Di setiap iterasi perulangan for, nilai variabel kontrol x dikurangi dengan 1 (x--). Iterasi perulangan for akan berhenti bila nilai x >= 1 tidak terpenuhi.
Baca artikel:
Perulangan for bagian dalam mendeklarasikan variabel kontrol j dengan nilai awal 0. Di setiap iterasi perulangan for bagian dalam ini, variabel kontrol j ditambah dengan 1. Perulangan for bagian dalam ini melakukan proses iterasi selama nilai j < x. Saat iterasi perulangan for berlangsung, nilai larikA dengan indek j (larikA[j]) dibandingkan dengan nilai dari larikA dengan indek x (larikA[x]).
Baca artikel Menyalin Elemen Larik Menggunakan Metoda arrayCopy Di Java
Bila nilai elemen larikA lebih besar (larikA[j] > larikA[x]), metoda mengurutkanElemen akan memanggil metode menukar. Metode menukar ini digunakan untuk menukar posisi elemen larikA. Nilai elemen larikA dengan indek j disimpan ke larikA dengan indek x dan sebaliknya, nilai elemen larikA dengan indek x disimpan ke larikA dengan indek j.
Baca artikel:
- Mencari Elemen Larik (Array) Dengan Pendekatan Linear Search Di Java
- Mencari Elemen Larik (Array) Dengan Pendekatan Binary Search Di Java
Setelah proses iterasi perulangan for bagian luar selesai, alir kontrol program menuju ke metoda main. Proses eksekusi berlanjut ke baris nomor 21-23 untuk menampilkan nilai elemen larikA yang sudah diurutkan. Untuk bisa mengurutkan elemen larik dengan tipe berbeda, Anda dapat membuat overloading method untuk kedua metoda dengan parameter larik yang elemennya dapat berasal dari tipe short, long, fload, double atau char.