Home » , » Memahami Class BigInteger Pada Java

Memahami Class BigInteger Pada Java

Terkadang dalam pemrograman mungkin anda membutuhkan angka dalam ukuran dan presisi tertentu. Kebanyakan aplikasi, termasuk aplikasi teknik, menggunakan perhitungan tipe data float dan double standar  untuk melakukan operasi dasar metematika di Java.

Namun adakalanya tipe data standar itu tidak mememenuhi kebutuhan dalam program, kerena anda bekerja dengan angka yang sangat besar atau membutuhkan presisi yang sangat tinggi, oleh karena itu Java menyediakan class yang bersifat immutable yaitu BigInteger dan BigDecimal yang terdapat dalam package java.math untuk menyelesaikan permasalahan tersebut.

BigInteger


BigInteger diperlukan dalam operasi matematika ketika nilai integer yang digunakan sangat besar karena jika  hanya menggunakan tipe data int bisa menyebabkan integer overflow.


Integer overflow terjadi dalam pemrograman karena suatu operasi aritmatika yang mencoba untuk memberikan nilai diluar dari range maksimum dan minimum yang dapat direpresentasikan oleh angka yang diberikan bit tertentu.

Kondisi tersebut bisa menyebabkan program memberikan hasil yang tidak akurat, jika tidak diantisipasi dengan baik bisa menyebabkan masalah pada kehandalan dan keamanan program.

class_biginteger_java


BigInteger dapat digunakan ketika tipe data int tidak dapat memenuhi kebutuhan anda. Misalnya ketika anda membutuhkan nilai faktorial dari 70 atau 70!, seperti contoh di bawah ini:

Output:

Nilai faktorial dari 70 adalah:
11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000

Penjelasan:

Class BigInteger digunakan untuk merepresentasikan nilai yang besar dan tidak menentu, sehingga integer overflow tidak akan terjadi seperti bila anda menggunakan int dan long. Pada program di atas, objek dibuat dengan nama hasil, yang akan memegang nilai dari faktorial 70, dimana nilainya diinisialisasi dengan 1.

BigInteger hasil = BigInteger.ONE; //lihat line 15

Loop yang digunakan adalah for loop yang merupakan standar untuk perhitungan faktorial. Perkalian antara dua BigInteger dilakukan menggunakan method multiply(), yang menggunakan nilai BigInteger sebagai argumen.

Class BigInteger itu bersifat immutable artinya pada objek di mana fungsi multiply itu dipanggil, tidak akan mengubah nilai integer yang dipegangnya. Perkalian akan dilakukan dan nilai BigInteger yang baru akan dikembalikan dan simpan dalam variabel objek hasil.

hasil = hasil.multiply(new BigInteger (i + ""));//lihat line 20

Jika kode di bawah ini digunakan untuk menggantikan kode pada line 20 di atas, program akan selalu memberikan 1 sebagai jawaban.

hasil.multiply(new BigInteger (i + ""));

Kenapa bisa demikian? Karena nilai dari hasil telah diinisialisasi dengan 1. Dengan demikian, perkalian tersebut tidak akan memiliki efek pada nilai yang disimpan pada hasil, karena objek yang dikembalikan oleh multiply() tidak disimpan kembali pada hasil. Sehingga walaupun loop telah selesai, program akan tetap memberikan nilai 1 sebagai jawaban.

Secara simpel objek dari BigInteger misalnya dapat dibuat dengan:

BigInteger myNumber = new BigInteger("894164965438599736442957283566998");

Beberapa method untuk pengoperasian matematikanya adalah:
  • add() //penjumlahan
  • substract() //pengurangan
  • multiply() //perkalian
  • divide() //pembagian
  • remainder() //modulo
  • divideAndRemainder()
  • pow() //perpangkatan
  • gcd() //greatest common divisor
dan lain sebagainya.

Demikianlah penjelasan singkat mengenai class BigInteger pada Java, semoga bisa menambah pengetahuan bagi anda yang sedang belajar pemrograman.

0 komentar:

Posting Komentar