๐ŸฅPraktikum 2

Menghitung Hasil Pangkat dengan Algoritma Brute Force dan Divide Conquer

Pengantar

Pada praktikum ini kita akan membuat program untuk menghitung nilai pangkat suatu angka menggunakan 2 jenis algoritma, yaitu, brute force dan divide conquer.

Pecobaan

  • Pada direktori proyek "BruteForceDivideConquer" buatlah kelas baru bernama "Pangkat".

  • Tambahkan atribut berikut,

public int nilai, pangkat;
  • Buatlah sebuah method dengan nama pangkatBF().

public int pangkatBF(int a, int n) {
    int hasil = 1;
    for (int i = 0; i < n; i++) {
        hasil = hasil * a;
    }
    return hasil;
}
  • Buatlah method lain dengan nama pangkatDC().

public int pangkatDC(int a, int n) {
    if(n==0) {
        return 1;
    } else {
        if(n%2==1) {
            return (pangkatDC(a, n/2)*pangkatDC(a, n/2)*a);
        } else {
            return (pangkatDC(a, n/2)*pangkatDC(a, n/2));
        }
    }
}
  • Perhatikan apakah sudah tidak ada kesalahan yang muncul dalam pembuatan class Pangkat.

  • Selanjutnya buat class baru yang di dalamnya terdapat method main. Class tersebut dapat dinamakan MainPangkat. Tambahkan kode pada class main untuk menginputkan jumlah nilai yang akan dihitung pangkatnya.

  • Selanjutnya digunakan untuk instansiasi array of objects. Di dalam kode berikut ditambahkan proses pengisian beberapa nilai yang akan dipangkatkan sekaligus dengan pemangkatnya.

  • Kemudian panggil method pangkatBF() dan pangkatDC().

Verifikasi Hasil Percobaan

Pastikan output dari program serupa dengan gambar berikut,

Hasil Percobaan Program Pangkat dengan Brute Force dan Divide Conquer

Pertanyaan

  • Pada method pangkatDC() terdapat potongan kode sebagai berikut,

Apa maksud dari potongan kode tersebut?

  • Apakah tahap combine sudah termasuk dalam kode tersebut? Tunjukkan!

Last updated