Menghasilkan nilai karakter acak random kelas Math di program Java
Menghasilkan Karakter Acak Kelas Math Di Program Java

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

Metoda kelas Math tersebut dapat dikelompokkan menjadi 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 acak hasil metoda random ini sangat penting dan berguna dalam pemrograman. Dengan metode random dari kelas Math, Anda dapat menghasilkan nilai acak, numerik atau karakter dalam rentang (range) tertentu. Anda dapat menentukan rentang nilai acak yang dihasilkan oleh metoda random dari kelas Math dengan formula sebagai berikut:

x + Math.random() * y

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

Setiap karakter mempunyai unicode antara 0 - FFFF dalam hexadecimal atau 65535 dalam desimal. Unicode adalah skema pengkodean 16 bit yang diperkenalkan Unicode Consortium untuk menukar, memproses dan menampilkan teks dalam berbagai macam bahasa. Dengan demikian, menghasilkan nilai karakter acak berarti menghasilkan nilai integer acak antara 0 - 65535 seperti pada ekspresi aritmatika di bawah ini.

(int) (Math.random() * (65535 + 1)

Karakter huruf kecil (lowercase) adalah nilai integer yang berurutan dimulai dari unicode untuk 'a', kemudian 'b', 'c', 'd' dan seterusnya sampai 'z'. Unicode untuk karakter a adalah (int) 'a', sehingga karakter huruf kecil acak merupakan nilai integer antara (int) 'a' dan (int) 'z'.

(int) ((int) 'a' + Math.random() * ((int) 'z' – (int) 'a' + 1)

Semua operator numerik dapat digunakan di nilai karakter. Nilai karakter akan dikonversi secara otomatis ke nilai numerik bila nilai yang lain adalah karakter atau numerik sehingga ekspresi di atas dapat disederhanakan sebagai berikut:

'a' + Math.random() * ('z' – 'a' + 1)

Ekspresi di atas menghasilkan nilai numerik acak yang mewakili nilai karakter dengan rentang 'a' – 'z'. Untuk dapat menghasilkan nilai karakter huruf kecil secara acak dengan rentang a - z, Anda perlu melakukan konversi (type casting) ekspresi di atas dengan (char).

(char) ( 'a' + Math.random() * ('z' – 'a' + 1))

Dengan demikian, Anda juga dapat menghasilkan nilai karakter acak dengan rentang nilai A – Z menggunakan ekspresi sebagai berikut:

(char) ('A' + Math.random() * ('Z' – 'A' + 1))

Berikut ini adalah contoh program Java menampilkan 40 karakter huruf besar (uppercase) acak yang dihasilkan oleh metoda random dari kelas Math. Karakter acak tersebut akan ditampilkan berderet dengan masing-masing deret berjumlah 10 karakter.

// Nama file : NilaiKarakterAcak.java
// Menampilkan 40 nilai karakter acak
 
// Mengimpor Java predifined class
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
 
// Deklarasi kelas
public class NilaiKarakterAcak {
 
   // Metoda main
   public static void main(String[] args) {
 
      JTextArea areaTampilan;
      char karakterAcak;
 
      String deretKarakter = "40 Nilai Karakter Acak\nDengan Rentang Nilai A - Z\n\n";
 
      // Membuat obyek dari kelas JTextArea
      areaTampilan = new JTextArea();
 
      for (int x = 1; x <= 40; x++) {
 
         karakterAcak = (char) ('A' + Math.random() * ('Z' - 'A' + 1));
         deretKarakter += karakterAcak + "  ";
 
         if ((x % 10 == 0) && (x % 2 == 0))
            deretKarakter += "\n";
      }
 
      areaTampilan.setText(deretKarakter);
 
      JOptionPane.showMessageDialog(null, areaTampilan, "Nilai Karakter Acak",
         JOptionPane.INFORMATION_MESSAGE);
 
      // Mengakhiri aplikasi GUI
      System.exit(0);
   }
}

Menghasilkan nilai karakter acak dengan kelas Math di Java

Dari kode program di atas, metoda random dari kelas Math menghasilkan nilai karakter huruf besar (uppercase) acak dengan rentang nilai A - Z.