Mengenal Class Math untuk Operasi 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
.
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
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:
Fungsi Logaritma di Java
Class Math
menyediakan tiga fungsi untuk melakukan perhitungan logaritma.
- Fungsi
log()
untuk menghitung logaritma alami dari sebuah nilai dengan basise
, di manae
adalah2,718281828459
… (dan seterusnya) 2 - Fungsi
log10()
untuk menghitung logaritma dari nilai dengan basis 10. - Fungsi
log1p()
untuk menghitung logaritma alami dari jumlah argumen dan1
.
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:
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!