author Ahmad Muhardian

Mengenal Class Math untuk Operasi Matematika di Java


Rumus matematika di Java

Pernahkah kamu membuat program yang di dalamnya ada operasi matematika?

Misalnya seperti menghitung akar kuadrat, pangkat, log, sin, cos, tan, dan kawan-kawannya.

Perhitungan ini bisa saja kita buat dengan operator dan beberapa variabel.

Namun, saat rumusnya sudah kompleks, ini tidak mudah dilakukan.

Karena itu, Java menyediakan class Math yang berisi kumpulan rumus-rumus matematika yang siap pakai. Sehingga kita tidak perlu membuat dari nol rumus-rumus umum di matematika.

Nah, pada tutorial ini.. kita akan belajar menggunakan class Math.

Mari kita mulai..

Apa itu Class Math?

Class Math adalah class yang berisi method dan konstanta untuk melakukan perhitungan numerik seperti eksponensial, logaritma, akar kuadrat, dan fungsi trigonometri.1

Menurut saya, class ini sangat bermanfaat saat kita membuat program yang membutuhkan perhitungan matematis.

Cara menggunakan class Math di program

Karena class Math sudah menjadi class build-in atau bawaan di Java, maka kita tidak perlu mengimpor untuk menggunakannya.

Kita bisa langsung menggunakannya seperti ini:

Math.PI; // konstanta PI
Math.pow(2,4); // fungsi pangkat di Math

Contoh:

public static void main(String[] args) {
	float keliling;
  float PI;
  int r;
        
	r = 7;
        
	keliling = (float) (2 * Math.PI * r);
	System.out.println("Keliling: " + keliling);
}

Pada contoh ini kita menggunakan konstanta PI dari class Math yakni dengan menulis Math.PI.

Selain konstanta PI, masih banyak isi yang lainnya seperti fungsi-fungsi matematika dasar.

Mari kita bedah isinya..

Bedah isi class Math

Berikut ini isi dari class Math.

mind map java math

Ini baru sebagian isi class Math yang sering digunakan. Jika kamu ingin melihat seluruh isi dari class Math..

..coba cek di dokumentasi Java.

Mari kita bedah isi class Math dan mencobanya.

kita mulai dulu dari konstanta.

Konstanta pada Class Math

Ada dua konstanta yang disediakan pada class Math, yakni:

  • E – berisi nilai untuk euler (2.71828);
  • PI – berisi nilai untuk π (22/7).

Contoh cara penggunaan:

public static void main(String[] args) {
	float keliling;
  float PI;
  int r;
        
	r = 7;
        
	keliling = (float) (2 * Math.PI * r);
	System.out.println("Keliling: " + keliling);
}

Pada contoh ini kita menggunakan Math.PI untuk nilai π di rumus keliling lingkaran.

Membuat Nilai Mutlak

Nilai mutlak adalah nilai yang selalu positif, artinya nggak boleh negatif.

Contoh:

int saldo = 1000;

Kita punya variabel saldo dengan isi 1000. Nah, secara logika.. saldo nggak mungkin nilainya negatif.

Kalau negatif, berarti dia ngutang donk.. hehe.

Tapi misalnya kita tidak sengaja membuat program yang membuat saldonya menjadi negatif.

Contoh:

int saldo = 1000;
int topup = -15000;
saldo = saldo + topup;

System.out.println("Saldo: " + saldo);

Hasil outputnya:

Saldo: -14000

Lihat, di baris ke-2 kita memberikan nilai topup ke saldonya dengan nilai negatif. Ini akan membuat nilai akhir saldo jadi negatif.

Karena itu, untuk menjaga saldo tetap bernilai positif.. maka kita harus mengeset nilai topup selalu positif.

Caranya gimana?

Caranya bisa dengan fungsi Math.abs().

Contoh:

int saldo = 1000;
int topup = -15000;
saldo = saldo + Math.abs(topup);

System.out.println("Saldo: " + saldo);

Hasil outputnya:

Saldo: 16000

Walaupun nanti si user menginputkan nilai negatif, ia akan diubah ke positif.

Fungsi Pangkat di Java

Banyak yang saya temui salah dalam membuat pangkat di Java.

Mereka menggunakan operator ^ untuk melakukan operasi pemangkatan. Padahal fungsi operator ini bukan untuk pangkat. Tapi untuk operasi XOR bitwise.

Nah, untuk membuat operasi pangkat di Java..

..kita bisa pakai fungsi pow() yang ada di class Math.

Contoh:

double hasil = Math.pow(2, 4);

Pada contoh ini, kita melakukan operasi pangkat 24. Maka hasilnya akan 16.0.

Oya, fungsi Math.pow() akan menghasilkan nilai dengan tipe data double. Karena itu, kita juga harus menyimpan hasilnya di variabel yang bertipe double juga.

Menghitung Akar Kuadrat

Perhitungan akar kuadrat sering kita temui di matematika, biasanya untuk menghitung hasil dari rumus pitagoras.

Nah, untuk melakukan perhitungan akar kuadrat..

Class Math sudah menyediakan fungsi sqrt(), fungsi ini menghasilkan nilai dengan tipe data double.

Contoh penggunaan:

double hasil = Math.sqrt(25);

Variabel hasil akan berisi 5, karena merupakan akar kuadrat dari 25.

Kalau mau pakai di rumus pitagoras, gimana contohnya?

Ini bisa kita kombinasikan dengan fungsi Math.pow().

Contoh:

Misalnya rumus pitagorasnya seperti ini

RUMUS PHYTAGORAS

Kita ambil salah satu, yakni rumus untuk mencari c..

Maka di Java kita bisa buat seperti ini:

double a = 10;
double b = 13;

// kita hitung dulu kuadrat dari a dan b
double a2 = Math.pow(a, 2);
double b2 = Math.pow(b, 2);

// lalu ini rumus pitagorasnya
double c = Math.sqrt(a2 + b2);

Di baris terakhir, kita membuat rumus pitagoras dengan class Math.sqrt().

Gimana, gampang kan?

Oke, berikutnya kita pelajari beberapa fungsi di Math lainnya..

Menentukan Nilai Max dan Min

Fungsi min() dan max() merupakan dua fungsi untuk menentukan nilai paling besar dan paling kecil dari dua nilai.

Contoh penggunaan:

int max = Math.max(3, 4);
int min = Math.min(5, 19);

Hasil nilai dari fungsi min() dan max() bisa berupa int, float, double. Tergantung dari tipe data yang diberikan di parameternya.

Contoh:

double max = Math.max(5.3, 6.6);

Pada contoh ini, nilai max akan berisi 6.6 karena ini nilai yang lebih besar dari 5.3.

Membuat Nilai Acak

Nilai acak biasanya kita butuhkan saat membuat probabilitas.

Contoh misalnya melempar dadu..

Saat kita melempar dadu, kita tidak bisa pastikan nilai yang akan keluar berapa.

Bisa jadi 6, 1, 2, 3 dan sebagainya.

Nah ini kita bisa buat dengan fungsi random().

Class Math menyediakan fungsi random() untuk membuat nilai acak. Fungsi ini menghasilkan nilai acak dari 0.0 sampai 1.0 dengan tipe double.

Contoh penggunaan:

double acak = Math.random();

Contoh untuk membuat program lempar dadu: Dadu.java

public class Dadu {
    public static void main(String[] args) {
        for(int i = 1; i < 10; i++){
            System.out.println("Hasil Lempar Dadu ke-"+i+": " + lemparDadu());
        }
    }
    
    public static int lemparDadu(){
        int jumlahMataDadu = 6;
        int niliTerkecilDadu = 1;
        int nilaiDadu = ((int) (Math.random() * jumlahMataDadu)) + niliTerkecilDadu; 
        
        return nilaiDadu;
    }
}

Hasilnya:

contoh program lempar dadu

Fungsi Logaritma di Java

Class Math menyediakan tiga fungsi untuk melakukan perhitungan logaritma.

  • Fungsi log() untuk menghitung logaritma alami dari sebuah nilai dengan basis e, di mana e adalah 2,718281828459… (dan seterusnya) 2
  • Fungsi log10() untuk menghitung logaritma dari nilai dengan basis 10.
  • Fungsi log1p() untuk menghitung logaritma alami dari jumlah argumen dan 1.

Kedua fungsi ini menghasilkan nilai bertipe double.

Contoh penggunaan:

double hasilLog = Math.log(1);
double hasilLog10 = Math.log10(1000);
double hasilLog1p = Math.log1p(1000);

System.out.println("Log = " + hasilLog);
System.out.println("Log10 = " + hasilLog10);
System.out.println("Log1p = " + hasilLog1p);

Hasilnya:

Log = 0.0
Log10 = 3.0
Log1p = 6.90875477931522

Oke, sekarang mari kita coba dalam contoh dengan basis nilai yang berbeda.

Misalnya soalnya seperti ini:

Diketahui 5Log 4 = m, berapakah nilai x?

Untuk mencari m, kita bisa gunakan fungsi log() dan log10(). Namun kita perlu ubah dulu rumusnya menjadi seperti ini:

m = log 4 / log 5

atau

m = log10 4 / log10 5

Loh kok bisa rumusnya diubah jadi pembagian?

Perubahan ini didapatkan berdasarkan rumus ini:

rumus base logaritma

Maka kita bisa buat di program seperti ini:

int x = 4;
int base = 5;
double m = Math.log(x)/Math.log(base);
        
System.out.println("Hasil = " + m);

Hasilnya:

Hasil = 0.8613531161467861

Nilai 5Log 4 adalah 0.8613531161467861.

Fungsi Trigonometri di Java

Kalau berurusan sama sudut dan segitiga, kita butuh fungsi-fungsi trigonometri seperti sin(), cos() , tan() dan sebagainya.

Class Math sudah menyediakan fungsi-fungsi untuk menghitung trigonometri, di antaranya

  • sin() untuk menghitung sinus;
  • cos() untuk menghitung cosinus;
  • tan() untuk menghitung tangen;

Fungsi-fungsi ini menghasilkan nilai dengan tipe double.

Contoh:

public class Trigonometri {
    public static void main(String[] args) {
        double degrees = 45.0;
        double radians = Math.toRadians(degrees); 
        double sinValue = Math.sin(radians);
        
         System.out.println("sin(" + degrees + ") = " + sinValue);
    }
}

Hasil outputnya:

sin(45.0) = 0.7071067811865475

Apa Selanjutnya?

Kita sudah membahas gimana contoh-contoh penggunakan fungsi dari class Math. Masih banyak lagi fungsi-fungsi di class Math yang belum kita coba.

Karena itu, selanjutnya cobalah untuk gunakan sendiri di program yang kamu buat dan coba ceritakan gimana hasilnya.

Jika ada pertanyaan, bisa disampaikan di kolom komentar!