Jobsheet 3
Oleh :
Kelas TI-1A / 15
Hasil :
Pertanyaan
1. Jelaskan mengenai base lain Algoritma Divide Conquer untuk melakukan pencarian
nilai faktorial!
Jawab : Base lain algoritma devide and conquer adalah pencarian nilai factiorial yang
didasarkan pada perhitungan rekursif dan membagi masalah menjadi beberapa bagian
2. Pada implementasi Algoritma Divide and Conquer Faktorial apakah lengkap terdiri
dari 3 tahapan divide, conquer, combine? Jelaskan masing-masing bagiannya pada kode
program!
Jawab :
Divide : Membagi masalah menjadi beberapa upa-masalah yang memiliki kemiripan
dengan masalah semula namun berukuran lebih kecil ( idealnya berukuran hampir sama ).
Conquer : Memecahkan ( menyelesaikan ) masing-masing upa-masalah ( secara rekursif
).
Combine : Menggabungkan solusi masing-masing upa-masalah sehingga membentuk
solusi masalah semula.
• Praktikum 2
Hasil :
Pertanyaan
1. Jelaskan mengenai perbedaan 2 method yang dibuat yaitu PangkatBF() dan
PangkatDC()!
Jawab :
PangkatBF() : Method ini menggunakan Algoritma Brute Force untuk
memecahkan masalah dengan menggunakan proses perulangan. Pada proses ini
proses perhitungan / hasil didapat dari rumus (hasil = hasil *a);
PangkatDC(): Method ini menggunakan Algoritma Divide & Conquer untuk
memecahkan masalah dengan menggunakan proses pemilihan (if else). Pada
method ini proses perhitungan/hasil didapat dari rumus return (pangkatDC(a, n/2)
* pangkatDC(a, n/2) * a); untuk bilangan ganjil dan return (pangkatDC(a, n/2) *
pangkatDC(a, n/2)); untuk bilangan genap
Jawab :
Potongan program di atas (dan method PangkatDC()) menjelaskan bahwa proses
perhitungan pangkat dilakukan dengan 2 perhitungan yang berbeda, dimana untuk nilai
ganjil method ini akan menghitung (pangkat DC(a, n/2)*pangkat DC(a,n/2)*a), dimana
pada tahap ini method akan menghitung (pangka DC(bilangan pokok, pangkat dibagi 2)
dikali dengan pangkatDC(bilangan pokok, pangkatt/2 dikali bilangan pokok), sehingga
untuk method ini proses perhitungannya jauh lebih singkat daripada pangkatBD(), missal
: Untuk pangkat pangkatyBF() = a1000000 itu artinya n = 1 juta, sehingga disini proses
akan berlangsung sebanyak 1 juta. Sedangkat pangkatDC()= 2log 1000000, sehingga
proses hanya berlangsung sebanyak 20 kali saja.
yang saya kasih tanda kotak merupakan source code yang menunjukan combine
Jawab :
Hasil :
5. Tambahkan menu agar salah satu method yang terpilih saja yang akan dijalankan!
Hasil :
• Praktikum 3
Hasil :
Pertanyaan
1. Berikan ilustrasi perbedaan perhitungan keuntungan dengan method TotalBF() ataupun TotalDC()
Jawab :
➢ Keuntungan TotalBF() adalah menghasilkan algoritma baku(standard) untuk tugas-tugas
komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minuman
atau maksimum di dalam table(list)
➢ Keuntungan TotalDC() adalah memiliki efisiensi algoritma yang tinggi. Pendekatan divide
and counquer ini lebih efisiend alam menyelesaikan algoritma sorting.
2. Perhatikan output dari kedua jenis algoritma tersebut bisa jadi memiliki hasil berbeda di belakang
koma. Bagaimana membatasi output di belakang koma agar menjadi standar untuk kedua jenis
algoritma tersebut.
Jawab :
Cara membatasi output di belakang koma agar menjadi standar untuk kedua jenis
algoritma tersebut adalah mengganti tipe data yang digunakan dari int ke float atau
double
Jawab :
Karena Itu Merupakan Proses combine pada method devide conquer
Jawab :
Untuk membagi elemen menjadi beberapa bagian.
5.Program perhitungan keuntungan suatu perusahaan ini hanya untuk satu perusahaan saja. Bagaimana
cara menghitung sekaligus keuntungan beberapa bulan untuk beberapa perusahaan.(Setiap perusahaan
bisa saja memiliki jumlah bulan berbeda-beda)? Buktikan dengan program!
Jawab :
• Tugas 1 – 3
Hasil :
• Tugas 4 – 5
Hasil :
5. Bagaimana jika jumlah suara ganjil? apakah harus ada perbaikan program?jika iya,
perbaiki program
untuk studi kasus no 4. Jika jumlah suara yang terkumpul tidak selalu genap!
Jawaban : Apabila suara yang diperoleh ganjil, maka tidak perlu adanya perbaikan
program karena program sebelumnya sudah cukup dan hasilnya akan sama saja.
• Tugas 6