Site icon UNYDeveloperNetwork

Tutorial: Membuat Program Sorting Angka Sederhana dengan Array Dinamis

Reading Time: 5 minutes

Selamat Datang di blogs UNYDeveloperNetwork. Pada artikel tutorial kali ini, Saya akan memberikan tutorial cara membuat program sorting sederhana yang cepat, dengan waktu eksekusi kurang dari 1 detik, dan menggunakan array yang dinamis. Jadi panjang array akan mengikuti berapapun jumlah deret angka yang kita masukan. Namun, sedinamis – dinamisnya Array, tetap memiliki panjang maksimum yakni 2.147.483.647 [sumber]. Tanpa basa – basi, mari kita simak tutorial kali ini.

Output program kita pada nantinya adalah sebagai berikut

dan juga bisa seperti ini

Jadi panjang arraynya dinamis, mengikuti masukan yang kita berikan pada program. Bagaimana cara membuatnya?

Pertama, buatlah class SimpleSorting.java. Buat juga Main methodnya.

public class SimpleSorting {
      public static void main(String[] args){
       
    }
}

Kedua, import java.util.Scanner untuk menerima masukan dari keyboard. Letakkan di atas nama class.

import java.util.Scanner;

Ketiga, buat satu variabel dengan tipe data String dengan nama deretAngka. Letakkan sebelum method main. Variabel ini akan digunakan untuk menyimpan masukan dari keyboard dan juga menyimpan hasil sorting

private static String deretAngka = "";

Keempat, buatlah satu return value method dengan tipe data String untuk menerima masukan. Letakkan method sebelum method main.

private static String getMasukan(){
        Scanner inputs = new Scanner(System.in);
        return inputs.nextLine();
}

Kelima, buatlan satu return value method dengan tipe data String dan parameter String untuk memproses sorting

private static String sorting(String deretAngkaX){
}

Keenam, buatlah 5 variabel lokal yakni: 1 variabel dengan tipe data String, 3 variabel dengan tipe data Integer, dan 1 variabel dengan tipe data String array.

private static String sorting(String deretAngkaX){
        String result = "";
        int alpha = 0, beta = 0, looping = 1;
        String[] dataAngka = deretAngkaX.split(" ");
}

Inisiasi variabel result dengan empty string, seperti kode di atas, inisiasi variabel alpha dan beta dengan 0 serta looping dengan 1, dan variabel String array dengan hasil String Split dengan karakter pemisah tanda spasi (” “); Idenya adalah, variabel result digunakan untuk menyimpan hasil sorting dan untuk mengembalikan value. Variabel alpha dan beta adalah variabel yang akan digunakan untuk membandingkan dua nilai yang berbeda. Variabel looping adalah sebagai kondisi iterasi yang dijalankan dalam proses sorting. dan Masukan berupa deret angka dipecah berdasarkan tanda spasi dan di simpan dalam array dataAngka. Sehingga dapat dipanggil per angka dan dibandingkan untuk mencari besar kecilnya.

Keenam, satu return value pada bagian bawah method Sorting.

private static String sorting(String deretAngkaX){
        String result = "";
        int alpha = 0, beta = 0, looping = 1;
        String[] dataAngka = deretAngkaX.split(" ");
        
        return result;
    }

Ketujuh, buatlah looping dengan while dan dengan kondisi menggunakan variabel looping. looping akan berakhir jika data sudah urut dan nilai looping = 0. Untuk memastikan variabel looping selalu 0 ketika iterasi, maka value setter untuk variabel looping di awal iterasi.

private static String sorting(String deretAngkaX){
        String result = "";
        int alpha = 0, beta = 0, looping = 1;
        String[] dataAngka = deretAngkaX.split(" ");
        
        while(looping > 0){
            looping = 0;
            
            }
        }
        
        for(int a = 0; a < dataAngka.length; a++){
            result = result + dataAngka[a] + " ";
        }
        return result;
    }

Kedelapan, buatlah iterasi for dengan kondisi nilai awal iterasi adalah 0 dan kondisi akhir nilai iterasi adalah tepat satu angka sebelum nilai panjang array dataAngka. Idenya adalah, melalui iterasi ini, satu persatu angka dibandingkan dengan angka pada pointer array selanjutnya. Apabila terbukti lebih besar, maka kedua angka akan diputar posisinya.

private static String sorting(String deretAngkaX){
        String result = "";
        int alpha = 0, beta = 0, looping = 1;
        String[] dataAngka = deretAngkaX.split(" ");
        
        while(looping > 0){
            looping = 0;
            for(int i = 0; i < dataAngka.length; i++){
                
            }
        }
       
        return result;
    }

Kesembilan, di dalam iterasi for, kita tambahkan satu kondisi IF, yakni jika nilai iterasi belum menunjukkan satu angka sebelum nilai panjang array, maka akan melakukan aksi. Apabila kondisinya true maka proses pembandingan di jalankan. Apabila tidak, maka nilai iterasi dipaksakan untuk berakhir.

private static String sorting(String deretAngkaX){
        String result = "";
        int alpha = 0, beta = 0, looping = 1;
        String[] dataAngka = deretAngkaX.split(" ");
        
        while(looping > 0){
            looping = 0;
            for(int i = 0; i < dataAngka.length; i++){
                if(i != dataAngka.length - 1){
                   
                }
                else{
                    i++;
                }
            }
        }
        
        return result;
    }

Kesepuluh, masukkan potongan kode pembanding berikut ini ke dalam blok IF yang kosong.

alpha = Integer.parseInt(dataAngka[i]);
beta = Integer.parseInt(dataAngka[i + 1]);
     
if(alpha > beta){
   dataAngka[i] = String.valueOf(beta);
   dataAngka[i + 1] = String.valueOf(alpha);
   looping++;
}

Idenya adalah, pertama dengan memanfaatkan nilai iterasi, kita memanggil satu persatu angka di dalam String Array, di konversikan ke bentuk Integer, dan membandingkannya. Apabila terdeteksi nilai pertama lebih besar, maka kedua nilai akan ditukar dan disimpan kembali ke dalam Array. Selain itu, juga terdapat auto increment untuk value looping yang berfungsi untuk menghindarkan dari nilai 0. Jadi, selama masih ada nilai yang besar kecilnya belum benar, dipastikan looping akan terus terjadi

Kesebelas, letakkan potongan kode berikut ini tepat sebelum return value.

for(int a = 0; a < dataAngka.length; a++){
    result = result + dataAngka[a] + " ";
}

Idenya adalah, setelah nilai nilai selesai diurutkan, maka nilai nilai tersebut harus dikembalikan lagi ke dalam bentuk String dan ditampilkan

Kedua belas, terakhir, tambahkan kode berikut in pada method main sebagai interaksi dengan user.

System.out.println("Program Sorting Sederhana");
        System.out.println("Masukkan deret angka (pisahkan dengan spasi): ");
        deretAngka = getMasukan();
        deretAngka = sorting(deretAngka);
        System.out.println("Hasil sorting adalah: \n" + deretAngka);
        System.out.println("");

Setelah selesai semua, jangan lupa di Save dan mari kita RUN. Maka hasilnya adalah seperti video di bawah ini.

https://www.unydevelopernetwork.com/cdn/unydevelopernetwork/SimpleSorting2.mp4

Untuk kode utuhnya adalah sebagai berikut.

import java.util.Scanner;
/**
 *
 * @author M. Irfan Luthfi
 */
public class SimpleSorting {
    
    private static String deretAngka = "";
    
    private static String getMasukan(){
        Scanner inputs = new Scanner(System.in);
        return inputs.nextLine();
    }
    
    private static String sorting(String deretAngkaX){
        String result = "";
        int alpha = 0, beta = 0, looping = 1;
        String[] dataAngka = deretAngkaX.split(" ");
        
        while(looping > 0){
            looping = 0;
            for(int i = 0; i < dataAngka.length; i++){
                if(i != dataAngka.length - 1){
                    alpha = Integer.parseInt(dataAngka[i]);
                    beta = Integer.parseInt(dataAngka[i + 1]);
                    
                    if(alpha > beta){
                        dataAngka[i] = String.valueOf(beta);
                        dataAngka[i + 1] = String.valueOf(alpha);
                        looping++;
                    }
                }
                else{
                    i++;
                }
            }
        }
        
        for(int a = 0; a < dataAngka.length; a++){
            result = result + dataAngka[a] + " ";
        }
        return result;
    }
    
    public static void main(String[] args){
        System.out.println("Program Sorting Sederhana");
        System.out.println("Masukkan deret angka (pisahkan dengan spasi): ");
        deretAngka = getMasukan();
        deretAngka = sorting(deretAngka);
        System.out.println("Hasil sorting adalah: \n" + deretAngka);
        System.out.println("");
    }
}

Demikian artikel Tutorial: Membuat Program Sorting Angka Sederhana dengan Array Dinamis ini. Semoga bermanfaat untuk kita semua. Apabila Anda memiliki pertanyaan, jangan sungkan meninggalkannya di kolom komentar. Jika Anda ingin mencuplik artikel ini, jangan lupa juga sertakan URL nya. Terima Kasih.. ^_^

UNDUH PROJECT

Exit mobile version