Pemrogram bertanggung jawab atas implementasi
solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat
dipecah menjadi sub masalah - sub masalah yang dapat dikelola. Penyelesaian
masalah dengan komputer berhadapan dengan 4 hal, yaitu :
- Pemahaman keterhubungan elemen-elemen data yang relevan terhadap
solusi secara menyeluruh.
- Pengambilan
keputusan mengenai operasi-operasi yang dilakukan terhadap elemen-elemen
data.
- Perancangan representasi elemen-elemen data di memori sehingga
memenuhi kriteria berikut:
·
Memenuhi keterhubungan logik
antara elemen-elemen data.
·
Operasi-operasi terhadap
elemen-elemen data dapat dilakukan secara mudah dan efisien.
·
Pengambilan keputusan mengenai
mengenai bahasa pemrograman terbaik untuk menerjemahkan solusi persoalan
menjadi program.
Metode :
Strategi Divide dan Conquer memecah masalah menjadi submasalah-submasalah
independen yang lebih kecil sehingga solusi submasalah-submasalah dapat
diperoleh secara mudah, solusi submasalah-submasalah digabung menjadi solusi
seluruh masalah.
Procedure DNC ( i,j : integer )
Var K : integer ;
If SMALL
(i,j) then SOLVE (i,j)
Else begin
K : = DIVIDE (i,j)
COMBINE (DNC(i,k),DNC(k+1,j))
End if
Keterangan :
- SMALL adalah
fungsi yang mengirim BOOLEAN, menentukan apakah ukuran telah cukup kecil
sehingga solusi dapat diperoleh. . Ukuran dinyatakan sebagai telah
berukuran kecil bergantung masalah.
- DIVIDE adalah
fungsi membagi menjadi 2 bagian pada posisi K. Biasanya bagian berukuran
sama.COMBINE adalah fungsi menggabungkan solusi X dan Y submasalah. Solusi
diperoleh dengan memanggil prosedur rekursif DNC.
Jika ukuran kedua submasalah sama, waktu komputasi DNC dideskripsikan
hubungan rekuren berikut :
T(n) = g (n), n kecil
2 T (n/2) +
f (n), selainnya
dimana :
·
T(n) : adalah waktu untuk DNC dengan n masukan,
·
g(n) : adalah
waktu komputasi jawaban secara langsung untuk masukan kecil dan
·
f(n) : adalah waktu
COMBINE.
Untuk algoritma divide dan conquer yang menghasilkan submasalah-submasalah
dengan tipe masalah yang sama dengan masalah awal, sangat alami untuk
mendeskripsikan algoritma secara rekursi. Kemudian untuk meningkatkan efisiensi
dilakukan penerjemahan menjadi bentuk iterasi.
Pemakaian teknik Divide dan Conquer banyak digunakan dalam menyelesaikan
berbagai macam persoalan, antara lain :
- Searching
- Sorting
Untuk algoritma divide dan conquer yang menghasilkan submasalah-submasalah
dengan tipe masalah yang sama dengan masalah awal, sangat alami untuk
mendeskripsikan algoritma secara rekursi. Kemudian untuk meningkatkan efisiensi
dilakukan penerjemahan menjadi bentuk iterasi.
Tidak ada komentar:
Posting Komentar
Berkomentarlah yang baik
Tidak ada unsur SARA, Pornografi, Ejekan,dsb
Salam Blogger...!!