๐ŸฃPraktikum 1

Menghitung Nilai Faktorial dengan Algoritma Brute Force dan Divide Conquer

Pengantar

Perhatikan class diagram berikut,

Class Diagram Faktorial

Berdasarkan diagram class di atas, akan dibuat program class dalam Java. Untuk menghitung nilai faktorial suatu angka menggunakan 2 jenis algoritma, Brute Force dan Divide and Conquer. Jika digambarkan terdapat perbedaan proses perhitungan 2 jenis algoritma tersebut sebagai berikut,

Tahapan pencarian nilai faktorial dengan algoritma Brute Force,

Tahapan Faktorial dengan Brute Force

Tahapan pencarian nilai faktorial dengan algoritma Divide Conquer,

Tahapan Faktorial dengan Divide Conquer

Percobaan

  • Buat proyek baru dengan nama โ€œBruteForceDivideConquerโ€.

  • Buatlah class baru dengan nama Faktorial.

  • Lengkapi class Faktorial dengan atribut dan method yang telah digambarkan di dalam diagram class di atas, sebagai berikut,

  • Tambahkan atribur nilai,

  • Tambahkan method faktorialBF(),

  • Tambahkan method faktorialDC()

  • Buat sebuah main class dengan nama MainFaktorial. Gunakan kode berikut pada fungsi main-nya.

  • Buatlah array of objects pada fungsi main, kemudian inputkan beberapa nilai yang akan dicari nilai faktorialnya.

  • Tampilkan hasil pemanggilan method faktorialBF() dan faktorialDC().

  • Pastikan program berjalan dengan baik.

Verifikasi Hasil Percobaan

Jika program dapat berjalan dengan baik, hasil dari program akan serupa dengan gambar berikut,

Hasil Percobaan

Pertanyaan

  1. Jelaskan mengenai base line Algoritma Divide Conquer untuk melakukan pencarian nilai faktorial!

  2. Pada implementasi Algoritma Divide and Conquer Faktorial apakah lengkap terdiri dari 3 tahapan divide, conquer, combine? Jelaskan masing-masing bagiannya pada kode program!

  3. Apakah memungkinkan perulangan pada method faktorialBF() dirubah selain menggunakan for? Buktikan!

  4. Tambahkan pegecekan waktu eksekusi kedua jenis method tersebut!

  5. Buktikan dengan inputan elemen yang di atas 20 angka, apakah ada perbedaan waktu eksekusi?

Last updated