Lap2 - Devide and Conquer
Lap2 - Devide and Conquer
Oleh:
NIM :1657301089
Kelas : TI 3 A
No praktikum :02/RAA/2019
2019
LEMBARAN PENGESAHAN
NIM : 1657301089
Nilai :
Keterangan :
Dosen Pembimbing
Muhammad Arhami,S.SI.,M.KOM
i
DAFTAR ISI
Contents
LEMBARAN PENGESAHAN ......................................................................... i
DAFTAR ISI .................................................................................................... 1
BAB I ................................................................................................................ 2
1.1 Latar Belakang ......................................................................................... 2
1.2 Tujuan ...................................................................................................... 2
1.3 Dasar Teori .............................................................................................. 3
1.3.1 Defini Divide and Conquer................................................................ 3
1.3.2 Algoritma Standar Devide and Conquer ............................................ 3
1.3.3 Penerapan Algoritma Divide and Conquer ....................................... 5
BAB II............................................................................................................... 8
PEMBAHASAN ............................................................................................... 8
2.1 Percobaan................................................................................................. 8
BAB III ........................................................................................................... 14
KESIMPULAN .............................................................................................. 14
DAFTAR PUSTAKA ..................................................................................... 15
1
BAB I
PENDAHULUAN
Algoritma Divide and Conquer merupakan algoritma yang sangat populer di dunia Ilmu
Komputer. Divide and Conquer merupakan algoritma yang berprinsip memecah-mecah
permasalahan yang terlalu besar menjadi beberapa bagian kecil sehingga lebih mudah untuk
diselesaika. Objek masalah yang di bagi adalah masukan (input) atau instances yang
berukuran n: tabel (larik), matriks, dan sebagainya, bergantung pada masalahnya. Tiap-tiap
upa-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik
masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam skema
rekursif. Sesuai dengan karakteristik pembagian dan pemecahan masalah tersebut, maka
algoritma ini dapat berjalan baik pada persoalan yang bertipe rekursif (perulangan dengan
memanggil dirinya sendiri). Dengan demikian, algoritma ini dapat diimplementasikan dengan
cara iteratif ( perulangan biasa ), karena pada prinsipnya iteratif hampir sama dengan rekursif.
Salah satu penggunaan algoritma ini yang paling populer adalah dalam hal pengolahan data
yang bertipe array ( elemen larik ). Mengapa ? Karena pengolahan array pada umumnya
selalu menggunakan prinsip rekursif atau iteratif. Penggunaan secara spesifik adalah untuk
mencari nilai minimal dan maksimal serta untuk mengurutkan elemen array. Dalam hal
pengurutan ini ada empat macam algoritma pengurutan yang berdasar pada algoritma Divide
and Conquer, yaitu merge sort, insert sort, quick sort, dan selection sort.
Pada praktikum ini akan dilakukan implementasi dan penerapan program menggunakan
algoritma Divide and Conquer.
1.2 Tujuan
Memahami konsep algoritma Divide and Conquer
2
1.3 Dasar Teori
1.3.1 Defini Divide and Conquer
Divide (Memecah): pada langkah ini kita memecahkan masalah atau data ke dalam
bentuk yang sama, tetapi dalam ukuran yang lebih kecil. Pemecahan langkah biasanya
dilakukan dengan menggunakan algoritma rekursif, sampai ukuran data menjadi sangat
kecil dan dapat diselesaikan dengan algoritma sederhana.
Conquer (Menaklukkan): dalam langkah ini kita mencoba menyelesaikan masalah
atau data yang telah dipecahkan pada langkah pertama, dengan menggunakan algoritma
sederhana.
Combine (Menggabungkan): setelah menjalankan langkah conquer, tentunya kita
harus menggabungkan kembali hasil dari masing-masing pecahan yang ada, untuk
mendapatkan hasil akhir kalkulasi. Langkah combine mencoba mencapai hal tersebut.
(sumber : https://bertzzie.com/knowledge/analisis algoritma/DivideAndConquer.html)
3
3) Gabung Sortir juga merupakan algoritma penyortiran. Algoritma membagi array
menjadi dua, membagi secara rekursif dan akhirnya menggabungkan dua bagian yang
diurutkan.
4
1.3.3 Penerapan Algoritma Divide and Conquer
Pemecahan Masalah Convex Hull dengan Algoritma Divide and Conquer.
Pada penyelasaian masalah pencarian Convex Hull dengan menggunakan algoritma
Divide and Conquer, hal ini dapat dipandang sebagai generalisasi dari algoritma
pengurutan merge sort.
5
Ukuran table hasil pembagian dapat dibuat cukup kecil sehingga mencari minimum dan
maksimum dapat diselesaikan (SOLVE) secara lebih mudah. Dalam hal ini, ukuran
kecil yang dipilih adalah 1 elemen atau 2 elemen.
Algoritma MinMaks :
1) Untuk kasus n = 1 atau n = 2,
SOLVE : Jika n = 1, maka min = maks = An. Jika n = 2, maka
bandingkan kedua elemen untuk menentukan min dan maks.
6
Kumpulan titik-titik Pn
(sumber : piptools.net)
7
BAB II
PEMBAHASAN
2.1 Percobaan
2.1.1 Mencari Nilai Maksimun Dan Minimun Dengan Algoritma Brute Force
Source :
Output :
Analisa :
Pada percobaan ini untuk menentukan nilai maksimun dan nilai minimun dari suatu
deret bilangan digunakan algoritma Brute Force.Algoritma ini melakukan pendekatan
yang lempang untuk memecahkan permasalahan seperti pada percobaan ini dilakukan
perbandingan nilai1 dan nilai2,jika nilai2 lebih besar dari nilai1 maka nilai1 disimpan
sebagai nilai maks,kemudan nilai2 dibandingkan lagi dengan nilai3,jika nilai3 lebih
kecil dari nilai2 maka nilai2 yang disimpan sebagai nilai maks dan seterusnya.
8
2.1.2 Mencari Nilai Maksimun Dan Minimun Dengan Algoritma Devide and Conquer
Source :
Output :
Analisa :
Pada percobaan ini untuk menentukan nilai maksimun dan nilai minimun dari suatu
deret bilangan digunakan algoritma Divide and Conquer.Algoritma ini berprinsip
memecah-mecah permasalahan yang terlalu besar menjadi beberapa bagian kecil dan
kemudian dikombinasikn lagi untuk mendapatkan hasil.pada percobaan ini diinputkan
sebnyak 5,dari kelima nilai yang diinputkan dibagi menjadi dua bagian
misalnya,bagian1:12,56,32 bagian2: 99,2 pada kedua bagian tersebut ditentukan nilai
maksimum dan minimunnya,bagian1 memiliki nilai maksimum 56 dan minimum 12
9
,pada bagian2 memiliki nilai maksimum 99 dan nilai minimum 2.kemudian nilai dari
kedua bagian tersebut dibndingkan lagi sehingga hasil nilai maksimum=99 dan nilai
minimum=2.
Output :
Analisa :
Percobaan ini adalah percobaan untuk memenukan jarak dua buah titik dari sebuah
koordinat dengan menginput nilai x1,y1,y2 dan y2.nilai yang diinputkan kemudian
dimasukkan kedalam rumus untuk menghitung jarak terdekaty sehingga mendapatkan
hasil jarak terdekatnya.
10
2.1.4 Algorintma Pengurutan(Merge Sort) Dengan Metode Devide And Conquer
Source :
11
Output :
Analisa :
Program ini adalah program mengurutkan nilai dari yang terkecil ke yang terbesar
dengan menggunakan algoritma Devide and conquer dengan meninputkan jumlah data
dan kemudian menginputkan nilai sesuai dengan jumlah data yang diinput ,selanjutnya
data akan diurutkan dengan cara dibagi dua kemudian data dibandingkan mana yang
lebih kecil kemudian diurutkan dari yang paling kecil ke yang paling besar
12
2.1.5 Algorintma Pengurutan(Insert Sort) Dengan Metode Devide And Conquer
source :
output :
analisa :
program ini merupakan program pengurutan data dengan algoritma Devide and
Conquer menggunakan metode insert sort .pada percobaan ini diinputkan data sebanyak
6 kemudian yang yang telah dimasukkan di urutkan secara asscending dengan metode
insert sort
13
BAB III
PENUTUP
KESIMPULAN
Pada praktiku ini dapat disimpulkan bahwa :
Algoritma Divide and Conquer merupakan algoritma yang berprinsip memecah-mecah
permasalahan yang terlalu besar menjadi beberapa bagian kecil sehingga lebih mudah untuk
diselesaika. Objek masalah yang di bagi adalah masukan (input) atau instances yang
berukuran n: tabel (larik), matriks, dan sebagainya, bergantung pada masalahnya. Tiap-tiap
upa-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik
masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam skema
rekursif. Sesuai dengan karakteristik pembagian dan pemecahan masalah tersebut, maka
algoritma ini dapat berjalan baik pada persoalan yang bertipe rekursif (perulangan dengan
memanggil dirinya sendiri).
14
DAFTAR PUSTAKA
1. https://bertzzie.com/knowledge/analisis algoritma/DivideAndConquer.html)
2. https://www.geeksforgeeks.org/divide-and-conquer-algorithm-introduction/)
15