Menghasilkan niliai numerik acah dari kelas Math di Java

Menghasilkan Nilai Numerik Acak Dari Kelas Math Di Java

Salah satu kelas di Java yang juga sangat penting dan berperan dalam operasi matematika adalah kelas Math yang terletak di paket java.lang. Kelas Math memiliki banyak metoda untuk melakukan fungsi matematika dasar.

Metoda kelas Math tersebut dikelompokkan ke dalam trigonometri (toRadian, sin, cos, tan, asin, acos, toDegrees), pembulatan (ceil, floor, rint, round), eksponen (pow, sqrt), nilai mutlak (abs), nilai maksimum (max), nilai minimum (min) dan metoda random yang bisa menghasilkan nilai double acak (random) lebih besar atau sama dengan 0.0 dan lebih kecil dari 1.0 (0 <= Math.random < 1.0).

Nilai numerik acak yang dihasilkan oleh metoda random ini penting dan berguna dalam pemrograman. Dengan metode random dari kelas Math ini, Anda dapat menghasilkan nilai numerik atau nilai karakter acak dalam rentang (range) tertentu. Anda dapat menentukan rentang nilai numerik acak tertentu yang dihasilkan oleh metoda random dengan formula sebagai berikut:

   x + Math.random() * y

Formula di atas menghasilkan nilai numerik acak dengan rentang nilai antara x dan x + y dengan tidak mengikutsertakan x + y.

Hasil metode random dari kelas Math adalah nilai numerik double dengan rentang nilai dari 0.0 sampai dengan 1.0. Dengan mengunakan konversi tipe data (type casting), Anda juga dapat menghasilkan nilai integer acak dengan rentang nilai tertentu. Berikut ini adalah dua pernyataan untuk menghasilkan nilai numerik integer acak dengan rentang nilai yang ditentukan:

(int) (Math.random() * 15);
20 + (int) (Math.random() * 25);

Formula pertama menghasilkan nilai integer acak dengan rentang nilai 0 – 14 dan formula kedua menghasilkan nilai integer acak dengan rentang nilai 20 – 44. (int) di kedua formula tersebut digunakan untuk mengkonversi (casting) nilai double acak yang dihasilkan oleh metoda random ke nilai int.

Berikut ini adalah contohprogram Java menggunakan metoda random dari kelas Math untuk menghasilkan 40 nilai integer acak dengan rentang nilai 20 - 44. Program menggunakan perulangan for untuk melakukan interasi sebanyak 40 kali dan menampilkan hasilnya di kotak dialok pesan.

 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
// Nama file : NilaiNumerikAcak.java
// Menampilkan sejumlah 40 nilai numerik acak
 
// Mengimpor Java predifined class
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
 
// Deklarasi kelas
public class NilaiNumerikAcak {
 
   // Metoda main
   public static void main(String[] args) {
 
      JTextArea areaTampilan;
      int nilaiAcak;
 
      String deretNilai = "40 Nilai Integer Acak\nDengan Rentang Nilai 20 - 44\n\n";
 
      // Membuat obyek dari kelas JTextArea
      areaTampilan = new JTextArea();
 
      for (int a = 1; a <= 40; a++) {
 
         nilaiAcak = 20 + (int) (Math.random() * 25);
         deretNilai += nilaiAcak + " ";
 
         if ((a % 10 == 0) && (a % 2 == 0))
            deretNilai += "\n";
 
      }
 
      areaTampilan.setText(deretNilai);
 
      JOptionPane.showMessageDialog(null, areaTampilan, "Nilai Integer Acak",
         JOptionPane.INFORMATION_MESSAGE);
 
      // Mengakhiri aplikasi GUI
      System.exit(0);
 
   }
}

Menghasilkan nilai numerik acak dari kelas Math di Java

Dari kode program di atas, baris nomor 22 adalah perulangan for yang mendeklarasikan variabel kontrol a dengan nilai awal 1. Perulangan for ini melakukan iterasi sebanyak 40 kali (a <= 40). Di setiap iterasinya, blok pernyataan di baris nomor 24-28 dieksekusi.

Pernyataan pemberian baris nomor 24, 20 + (int) (Math.random() * 25), menghasilkan nilai integer dengan rentang nilai 20 - 44. Di setiap iterasi perulangan for, satu nilai numerik integer mana saja yang muncul disimpan di variabel nilaiAcak dengan tipe data integer.

Nilai yang tersimpan di variabel nilaiAcak untuk selanjutnya dirangkai dengan literal string berupa satu spasi dan kemudian ditambahkan ke nilai dari variabel deretNilai (baris nomor 25). Selama proses iterasi, nilai variabel deretNilai terus dirangkai dengan nilai variabel nilaiAcak yang sudah dirangkai dengan sebuah spasi.

Baris nomor 27 adalah penyeleksian if sederhana. Di penyeleksian if tersebut, bila nilai variabel kontrol a habis dibagi 10 dan 2, jika ((a % 10 == 0) && (a % 2 == 0) bernilai benar, maka nilai string berupa karakter baris baru akan dirangkai ke nilai yang sudah tersimpan di variabel deretNilai. Dengan demikian, deret nilai yang terbentuk dibatasi hanya 10 nilai integer dan kemudian deret baru disusun di baris berikutnya.

SUKAI DAN BAGIKAN ARTIKEL INI:
Pin It