Mengurutkan sorting nilai elemen larik array di program Java
Mengurutkan Nilai Elemen Larik Di Java
Seringkali suatu data harus diurutkan terlebih dahulu sebelum melanjutkan ke proses berikutnya. Di program komputer, pengurutan (sorting) adalah salah satu operasi yang penting. Anda tentu tahu bagaimana mengurutkan data-data di aplikasi Microsoft Excel. Sekarang ini, telah banyak program aplikasi yang dilengkapi fitur untuk mengurutkan data.

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:

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).

Mengurutkan nilai elemen larik (array) di Java

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;
   }
 
} 

Mengurutkan nilai elemen larik (array) di Java

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:

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.