Tutorial Java: Bermain Matematika dengan Class Math
Tutorial Information
Program | Java |
Version | JDK 6+ |
Difficulty | Pemula |
Estimated Time | 20 menit |
Download | Click this link |
Java menyediakan class untuk menyelesaikan operasi-operasi matematika dasar lainnya. Sinus, cosinus, tangen, absolut, log, dan sebagainya sudah tersedia dan Anda cukup menggunakannya. Class tersebut sudah termasuk dalam API dari Java SE 6, sehingga Anda tidak perlu mendownload library-nya terlebih dahulu.
Beberapa method yang cukup bermanfaat dan sering dipakai akan dibahas di artikel ini, ditambah dengan algoritma yang harus Anda buat bila Anda tidak memakai library ini. Berikut ini contoh-contonya.
Menghitung nilai absolute
Perhitungan nilai absolute (nilai positif) dari sebuah bilangan dapat dilakukan dengan cara mengkalikan bilangan tersebut dengan “-1” bila bilangan tersebut adalah bilangan negatif (kurang dari nol). Sehingga, algoritma bila Anda ingin membuat fungsi absolut sendiri adalah sebagai berikut.
1
2
3
4
5
6
| public static int absolute( int number) { if (number < 0 ) { number *= - 1 ; } return number; } |
1
2
3
4
5
6
7
8
| public static void main(String[] args) { int a = - 2 ; int b = 7 ; // dengan library Math System.out.println( "Bila dengan library Math, nilai a : " +Math.abs(a)); System.out.println( "Bila dengan library Math, nilai b : " +Math.abs(b)); } |
Menghitung a pangkat b
Penghitungan a pangkat b memerlukan algoritma yang sedikit lebih rumit. Ada 3 kondisi untuk penghitungannya, yaitu apabila pangkatnya (b) lebih kecil dari nol, sama dengan nol, atau lebih besar dari nol. Penghitungan untuk pangkat lebih besar dari nol dapat dilakukan dengan algoritma berikut ini.
1
2
3
4
5
6
7
8
9
| public static int power( int number, int power) { int result = 1 ; if (power > 0 ) { for ( int i = 0 ; i < power; i++) { result *= number; } } return result; } |
1
2
3
4
5
6
| public static void main(String[] args) { int a = 2 ; int b = 8 ; System.out.println( "Hasil pemangkatan a ^ b adalah: " +Math.pow(a, b)); } |
Pembulatan bilangan desimal
Algoritma pembulatan bilangan desimal juga cukup rumit bila dibuat sendiri. Pembulatan pun ada beberapa macam, yaitu pembulatan ke atas (ceiling), pembulatan ke bawah (floor), dan pembulatan ke bilangan bulat terdekat. Java telah menyediakan method Math.ceil() untuk pembulatan ke atas, Math.floor() untuk pembulatan ke bawah, dan Math.round() untuk pembulatan ke bilangan bulat terdekat. Contoh penggunaannya adalah sebagai berikut.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public class MathRound { public static void main(String[] args) { double a = 3.71 ; double b = 3.41 ; System.out.println( "a = " +a); System.out.println( "b = " +b); System.out.println( "Pembulatan ke atas a = " + Math.ceil(a)); System.out.println( "Pembulatan ke atas b = " + Math.ceil(b)); System.out.println( "Pembulatan ke bawah a = " + Math.floor(a)); System.out.println( "Pembulatan ke bawah b = " + Math.floor(b)); System.out.println( "Pembulatan ke terdekat a = " + Math.round(a)); System.out.println( "Pembulatan ke terdekat b = " + Math.round(b)); } } |
Sinus, cosinus, dan tangen
Perhitungan sinus, cosinus, dan tangen dari sebuah sudut juga cukup rumit bila dibuat algoritmanya. Class Math menyediakan method Math.sin() untuk perhitungan sinus, Math.cos() untuk cosinus, dan Math.tan() untuk tangen. Ketiga method tersebut menerima sebuah parameter, yaitu sudut dalam bentuk radian dengan tipe data double. Untuk mendapatkan nilai radian dari sebuah nilai derajat dari sudut, Anda bisa menggunakan method Math.toRadians() dengan memasukkan derajat sudut sebagai parameter, seperti contoh berikut.
1
2
3
4
5
6
7
8
9
10
11
12
13
| public class MathSinCosTan { public static void main(String[] args) { double angle30 = 30 ; double angle45 = 45 ; System.out.println( "Sin 30 = " + Math.sin(Math.toRadians(angle30))); System.out.println( "Cos 30 = " + Math.cos(Math.toRadians(angle30))); System.out.println( "Tan 30 = " + Math.tan(Math.toRadians(angle30))); System.out.println( "Sin 45 = " + Math.sin(Math.toRadians(angle45))); System.out.println( "Cos 45 = " + Math.cos(Math.toRadians(angle45))); System.out.println( "Tan 45 = " + Math.tan(Math.toRadians(angle45))); } } |
Pada contoh di atas, Anda tidak akan menemukan hasil nilai bulat ½ dari sin 30, karena tingkat presisi dari komputer cukup sulit untuk merepresentasikan bilangan desimal. Anda bisa melakukan pembulatan lebih lanjut dari hasil tersebut.
Konstanta PI
Perhitungan luas lingkaran membutuhkan nilai PI, yaitu sebuah konstanta dengan nilai berkisar 3.14159. Angka dibelakang koma dari nilai ini sebenarnya masih sangat panjang. Class Math menyediakan konstanta ini untuk Anda gunakan. Sebagai contoh, penghitungan luas lingkaran sesuai rumus standarnya menjadi sebagai berikut.
1
2
3
4
5
6
7
| public class MathCircle { public static void main(String[] args) { int radius = 10 ; System.out.println( "Luas lingkaran dengan jari-jari " + radius + " satuan adalah " + (Math.PI * Math.pow(radius, 2 ))); } } |
Membuat angka acak/random
Class Math ini juga menyediakan method untuk membuat angka acak. Bedanya dengan cara mengacak biasa, class ini menghasilkan sebuah nilai desimal antara 0 sampai 1. Dari hasil pengacakan tersebut, Anda bisa mengkombinasikan dengan method lain untuk menghasilkan bilangan acak dalam jangka nilai tertentu. Misalkan, Anda ingin membuat bilangan acak antara 0-100 sebanyak 10 generasi, maka Anda dapat membuat algoritma program sebagai berikut.
1
2
3
4
5
6
7
8
9
10
11
| public class MathRandom { public static void main(String[] args) { double random; // acak antara 0-100 sebanyak 10 kali for ( int i = 0 ; i < 10 ; i++) { random = Math.random(); System.out.println( "Angka acak 0-100 generasi ke " + i + " = " + Math.floor(( 100 * random))); } } } |
0 komentar:
Posting Komentar