Cara Merandom (Acak) Suatu Bilangan pada Java


Assalamualaikm Warahmatullahi Wabarakatuh.

Pada Bahasa Pemrograman Java, kita dapat merandom/mengacak suatu data, menggunakan fungsi Class Random, Math.random dan Collection.shuffle(), sehingga data yang  diambil akan berbeda beda, fungsi Random dapat kita manfaat untuk keamanan dan juga untuk membuat sebuah aplikasi. misalnya jika kita ingin membuat sebuah aplikasi game seperti kuis, soal-soal didalam kuis tersebut bisa kita acak/random, agar soal yang ditampilkan tidak sama dengan sebelumnya.

Contoh lainnya adalah jika kita mempunyai 10 angka didalam list, dengan teknik random, kita akan mendapatkan angka secara acak dari 10 angka tersebut. Begitu juga pada tutorial ini, disini saya akan mengajarkan pada kalian, cara membuat serta menggunakan fungsi dan juga class random pada Pemrograman Java.

Materi Lainnya Yang Direkomendasikan:

Di dalam bahasa pemrograman Java, terdapat bebera fungsi dan class yang dapat kita manfaatkan untuk merandom suatu bilangan didalam list, antara lain :
  • Class Random
  • Fungsi Math.random()
  • Fungsi Collections.shuffle()

Ketiga class atau method tersebut mempunyai fungsi yang sama, tetapi memiliki kelebihan dan juga kekurangannya masing-masing, kalian bisa menggunakan salah satu atau semuanya, tergantung kebutuhan.

Persiapan.

Sebagai persiapan, disini kita akan menggunakan ArrayList untuk menyimpan data-data yang akan kita acak, lalu data tersebut akan kita tampilkan pada layar.
package WILDAN_TECHNO_ART;

import java.util.ArrayList;

public class random_class {
    public static void main(String[] args){
        //Membuat Instance/Objek dari ArrayList dengan Tipe Data Integer
        ArrayList<Integer> data = new ArrayList<>();
        random_class myclass = new random_class();
        
        //Menambahkan Bebrapa Data pada objek ArrayList
        data.add(1); //Posisi/No Index 0
        data.add(2); //Posisi/No Index 1
        data.add(3); //Posisi/No Index 2
        data.add(4); //Posisi/No Index 3
        data.add(5); //Posisi/No Index 4
    }
}
A.Menggunakan Class Random

Untuk mengambil data secara acak menggunakan Class Random, didalam class tersebut terdapat sebuah fungsi bernama nextInt(), yang nantinya akan kita digunakan untuk mengambil data dari list secara acak:
package WILDAN_TECHNO_ART;

import java.util.ArrayList;
import java.util.Random;

public class random_class {
    public static void main(String[] args){
        //Membuat Instance/Objek dari ArrayList dengan Tipe Data Integer
        ArrayList data = new ArrayList<>();
        random_class myclass = new random_class();
        
        //Menambahkan Bebrapa Data pada objek ArrayList
        data.add(1); //Posisi/No Index 0
        data.add(2); //Posisi/No Index 1
        data.add(3); //Posisi/No Index 2
        data.add(4); //Posisi/No Index 3
        data.add(5); //Posisi/No Index 4
        
        //Memanggil Method getClass
        myclass.getData(data);
    }
    
    //Method ini Digunakan Untuk Membuat Statemet Random pada Data
    void getData(ArrayList data){
        Random GetRandom = new Random();
        int getAngka = data.get(GetRandom.nextInt(data.size()));
        System.out.println("Angka Yang Didapat: "+getAngka);
    }
}
Jika kalian jalankan berkali kali, maka data/angka yang mucul, akan berbeda beda.

B.Menggunakan Fungsi Math.random()

Didalam Class Math, terdapat sebuah fungsi bernama random(), yang bisa kita digunakan untuk mengambil data dari list secara acak.

Coba kalian ubah Statement didalam method getData(), menjadi seperti berikut ini:
void getData(ArrayList data){
        int getAngka = (int) (Math.random()*data.size());
        System.out.println("Angka Yang Didapat: "+data.get(getAngka));
    }
Kode diatas terdapat sebuah variable getAngka, yang digunakan untuk mendapatkan index dari list secara acak. Lalu data.get(getAngka) adalah proses mengambil angka dari list menggunakan index secara acak.

C.Menggunakan Fungsi Collections.shuffle()

Cara ini adalah yang paling simple menurut saya, untuk mendapatkan angka secara acak dari list. Shuffle adalah sebuah method dari class Collections. Method shuffle digunakan untuk merandom isi dari sebuah list, jadi saat kita memanggil data pada List dengan No Index tertentu, maka data yang akan tampil sudah ter-random.

Ubah Statement didalam method getData(), menjadi seperti ini:
void getData(ArrayList<Integer> data){
        Collections.shuffle(data);
        System.out.println("Angka Yang Didapat: "+data.get(0));
    }
Setelah data pada List teracak acak oleh Collections.shuffle(), selajutnya tinggal kita ambil angka tersebut pada index pertama, yaitu index ke 0 (nol).

Mendapatkan bilangan secara acak dari Spesifik Range yang telah ditentukan, yaitu Batas minimum dan maksimul angka

Pada kasus ini angka dapat kita tentukan secara spesifik antara minum dan maksimum. Jika kita mempunyai data dengan angka 1-5, seperti pada contoh diatas, jika sebelumnya kita mengacak-acak semua data dari list, beriktut ini kita tidak akan merandom semua data tersebut.

Misalnya kita hanya merandom angka dari range 3-5, jadi angka 1 dan 2 tidak akan kita random/acak. seperti pada contoh berikut ini:
void getData(ArrayList<Integer> data){
        int minimum = 3;
        int maximum = 5;
        int range = maximum-minimum+1;
        Random random = new Random();
        int randomAngka = random.nextInt(range)+minimum;
        System.out.println("Angka Yang Didapat: "+randomAngka);
    }
Maka data yang di random dan ditampilkan hanya pada range 3-5 saja, angka 1-2 tidak akan ditampilkan.

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.