Desain Analisa Algoritma : Brute Force

Desain Analisa Algoritma : Brute Force
Elsen Ronando, S.Si.,M.Si.,M.Sc.
elsen.ronando@untag-sby.ac.id

Teknik Informatika
Fakultas Teknik
Universitas 17 Agustus 1945 Surabaya

2016

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

1 / 24

Rencana Presentasi

1


Brute Force
Seleksi Pengurutan dan Buble Sort
Pencarian Sekuensial dan Pencocokan String
Permasalahan Pasangan Terdekat dan Convex-Hull
Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Permasalahan Knapsack
Beberapa contoh lainnya

2

Catatan

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016


2 / 24

Brute Force
Definisi
Sebuah pendekatan langsung untuk memecahkan suatu masalah.
Biasanya didasarkan pada pernyataan masalahnya.
Adanya keterlibatan definisi konsep.

Karakteristik
Sederhana, jelas, & mudah diimplementasikan.
Mengedepankan tenaga → tidak cerdas maupun efisien.
Mampu menyelesaikan hampir sebagian besar permasalahan berskala
kecil.
Memiliki kemampuan menganalisa dasar dan keteraturan dalam
menyelesaikan permasalahan.

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force


2016

3 / 24

Brute Force (Lanjutan)

Contoh
Perhitungan an , dimana a > 0 dan n adalah bilangan bulat tak
negatif.
(
a × ... × a
jika n > 0
n
a =
0
jika n = 0
Perhitungan n!, dimana n adalah bilangan bulat tak negatif.
(
1 × 2 × 3 × ... × n
jika n > 0

n! =
1
jika n = 0

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

4 / 24

Seleksi Pengurutan dan Buble Sort
Seleksi Pengurutan
Cara kerja :
Cari data terkecil dari data pertama hingga ke-n.
Data terkecil tersebut ditukar dengan data pertama (data pertama
memiliki nilai terkecil).
Ulangi : Cari data terkecil kembali dari data kedua hingga ke-n.
Data terkecil tersebut ditukar dengan data kedua (data kedua

memiliki nilai terkecil).
Ulangi sampai berakhir ke-n.
Misal Posisi Awal :
Ai , ...., Amin , ..., An−1
Posisi Akhir :
A0 ≤ A1 ≤ ... ≤ Ai−1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

5 / 24

Seleksi Pengurutan dan Buble Sort
Algoritma Seleksi Pengurutan
Input : sebuah array A[0..n − 1] elemen random
Output : Array A[0..n − 1] diurutkan secara ascending
begin
for i ← 0 sampai n − 2 do

min ← i
for j ← i + 1 sampai n − 1 do
if A[j] < A[min] then
min ← j
end
end
tukar A[i] dan A[min]
end
end

Kompleksitas Waktu
C (n) =

n−1
n−2 X
X
i=0 j=i+1

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)


1=

n−2
X
i=0

(n − 1 − i) =

(n − 1)n
∈ O(n2 )
2

Desain Analisa Algoritma : Brute Force

2016

6 / 24

Seleksi Pengurutan dan Buble Sort
Buble Sort

Urutan data → perbandingan elemen saat ini dengan elemen
berikutnya.
Jika elemen saat ini lebih besar dari elemen berikutnya, maka elemen
tersebut ditukar (kasus ascending ).
Jika elemen saat ini lebih kecil dari elemen berikutnya, maka elemen
tersebut ditukar (kasus descending ).
Proses ini berakhir ketika seluruh array telah diperiksa dan tidak ada
pertukaran lagi.
Misal Posisi Awal :
A0 , ...., Aj ↔ Aj+1 , ..., An−i−1
Posisi Akhir :
An−i ≤ ... ≤ An−1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

7 / 24


Seleksi Pengurutan dan Buble Sort
Algoritma Buble Sort
Input : sebuah array A[0..n − 1] elemen random
Output : Array A[0..n − 1] diurutkan secara ascending
maupun descending
begin
for i ← 0 sampai n − 2 do
for j ← 0 sampai n − 2 − i do
if A[j + 1] < A[j] then
tukar A[j] dan A[j + 1]
end
end
end
end

Kompleksitas Waktu
C (n) =

n−2 n−2−i
X

X
i=0

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

j=0

1=

n−2
X
i=0

(n − 1 − i) =

(n − 1)n
∈ O(n2 )
2

Desain Analisa Algoritma : Brute Force


2016

8 / 24

Pencarian Sekuensial dan Pencocokan String

Pencarian Sekuensial
Melakukan perbandingan satu per satu secara berurutan dalam
kumpulan data dengan data yang dicari hinggi ditemukan atau tidak.
Umumnya, pencarian dilakukan secara perulangan dari 1 hingga
jumlah data (n).
Setiap perulangan, data ke-i akan dibandingankan dengan data yang
dicari.
Jika data sama dengan data yang dicari, maka data ditemukan.
Sebaliknya, jika tidak maka data tidak ditemukan.

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

9 / 24

Pencarian Sekuensial dan Pencocokan String
Algoritma Pencarian Sekuensial
Input : sebuah array dengan n elemen random dan sebuah
data pencarian K
Output : Elemen indeks dari Array A[0..n − 1] dimana
nilainya sama dengan K atau -1 bila tidak ditemukan
begin
A[n] ← K
i ←0
while A[i] 6= K do
i ←i +1
end
if i < n then
return i
end
else
return −1
end
end

Kompleksitas Waktu
Best-Case : Ω(1).
Worst-Case : O(n).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

10 / 24

Pencarian Sekuensial dan Pencocokan String

Pencocokan String
Diberikan teks merupaan string dengan n karakter dan pola
merupakan substring dari teks dengan m karakter (m ≤ n).
Algoritma brute force mulai mencocokan pola pada teks awal dari kiri
ke kanan per karakter hinga terpenuhi.
Algoritma ini akan berjalan dan menggeser satu ke kanan untuk
melakukan pencocokan.

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

11 / 24

Pencarian Sekuensial dan Pencocokan String
Algoritma Pencocokan String
Input : sebuah array T [0, n − 1] dari n karakter sebagai teks
sebuah array T [0, m − 1] dari m karakter sebagai pola
Output : indeks dari karakter pertama dalam teks yang
cocok dengan pola atau −1 bila tidak cocok
begin
for i ← 0 sampai n − m do
j ←0
while j < m dan P[j] = T [i + j] do
j ←j +1
end
if j = m then
return i
end
return −1
end
end

Kompleksitas Waktu
Best-Case : Ω(n).
Worst-Case : m(n − m + 1) ∈ O(mn).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

12 / 24

Permasalahan Pasangan Terdekat dan Convex-Hull
Permasalahan Pasangan Terdekat
Menyelesaikan permasalahan jarak antara titik koordinat.
Banyak diterapkan dalam bidang geometri untuk menentukan jarak
pesawat (agar tidak terjadi tabrakan), pencarian lokasi untuk
pembuatan kantor pos, dan beberapa bidang lainnya.
Ada kaitannya dengan proses kluster.
Brute Force : menghitung jarak antara koordinat dan mencari jarak
terdekat.

Jarak Euclidean (2 Dimensi)

dimana, i < j

q
d(pi , pj ) = (xi − xj )2 + (yi − yj )2

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

13 / 24

Permasalahan Pasangan Terdekat dan Convex-Hull
Algoritma Pasangan Terdekat
Input : sebuah list P dari n (n ≤ 2) poin
p1 (x1 , y1 ), ..., pn (xn , yn )
Output : Jarak terdekat diantara koordinat
begin
d ←∞
for i ← 1 sampai n − 1 do
for j ← i + 1 sampai n do
d ← min(d, sqrt((xi − xj )2 + (yi − yj )2 ))
end
return d
end
end

Kompleksitas Waktu
C (n) =

n−1
X

n
X

i=1 j=i+1

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

2=2

n−1
X

(n − i) = (n − 1)n ∈ O(n2 )

i=1

Desain Analisa Algoritma : Brute Force

2016

14 / 24

Permasalahan Pasangan Terdekat dan Convex-Hull
Permasalahan Convex-Hull
Berkaitan erat dengan geometri.
Menghubungkan setiap koordinat titik hingga membentuk bidang
tertentu.
Pencarian titik-titik awal dapat dilakukan dengan memilih titik yang
memiliki komponen koordinat ekstrim.

Algoritma
1
2

Memilih titik pertama.
Memilih titik berikutnya, berdasarkan definisi :
Jika dibuat garis dengan titik sebelumnya maka seluruh titik lainnya
tidak ada yang berada disebelah kiri.
Jika titik tersebut sesuai maka dimasukkan dalam daftar titik terluar.

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

15 / 24

Permasalahan Pasangan Terdekat dan Convex-Hull
Contoh Convex-Hull

Kompleksitas Waktu
Best-Case : Ω(mn).
Worst-Case : O(n2 ).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

16 / 24

Pencarian Exhaustive
Definisi
Teknik pencarian solusi secara brute force untuk menyelesaikan
masalah yang melibatkan pencarian elemen dengan sifat khusus.
Biasanya berkaitan erat dengan kombinatorik, seperti permutasi,
kombinasi, atau himpunan bagian.

Langkah-langkah :
Enumerasi (list) setiap solusi yang mungkin dengan sistematis.
Evaluasi setiap kemungkinan solusi satu per satu. Simpan solusi
terbaik dan keluarkan solusi yang tidak layak.
Jika pencarian berakhir, umumkan solusi terbaik.
Pencarian Exhaustive menemukan solusi, tetapi waktu yang
dibutukan dalam mencari solusi sangat besar
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

17 / 24

Contoh Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Tujuan : mencari jarak (rute) terpendek dari kota asal ke kota tujuan
atau kembali ke kota asal (setiap kota hanya dilewati satu kali).
Ada kaitannya dengan sirkuit halmiton dengan bobot minimum.

Coba cari jarak (rute) terpendek dari pola transportasi diatas !
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

18 / 24

Contoh Pencarian Exhaustive

Travelling Salesman Problem (TSP)
Dari n simpul atau kota, maka diperlukan enumerasi sebanyak
(n − 1)! rute yang memungkinkan untuk dianalisa jarak terpendeknya.
Kompleksitas Waktu : banyaknya enumerasi dikali dengan waktu
menghitung bobot minimum setiap rute, dimana waktu menghitung
bobot minimum setiap rute adalah O(n). Sehingga, kompleksitas
waktunya adalah O(n.n!)
Dalam permasalahan ini, belum ada algoritma yang lebih baik
daripada pencarian exhaustive.
Kompleksitas waktu yang bagus adalah memiliki orde polinomial.

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

19 / 24

Contoh Pencarian Exhaustive
Permasalahan Knapsack
Tujuan : Mencari keuntungan maksimun ketika nilai obyek
dimasukkan kedalam knapsack (K ) dengan kapasitas bobot wi dan
total bobot obyeknya tidak boleh melebihi kapasitas knapsack.
Dengan kata lain, mencari himpunan bagian dari keseluruhan obyek
yang muat masuk kedalam knapsack dengan keuntungan yang
maksimal.
Solusi permasalahan ini dalam n-tupel :
x = {x1 , x2 , ..., xn }
dimana, xi = 1 jika obyek ke-i dimasukkan ke dalam knapsack dan
xi = 0 jika tidak dimasukkan.

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

20 / 24

Contoh Pencarian Exhaustive
Formulasi Matematis
Maksimumkan :
F =

n
X

p i xi

i=1

dengan kendala :

n
X

w i xi ≤ K

i=1

dimana xi = 0 atau 1, i = 1, 2, ..., n

Contoh :
Diketahui : n = 4, w1 = 2; p1 = 20; w2 = 5; p2 = 30; w3 = 10; p3 = 50;
w4 = 5; p4 = 10 dengan kapasitas knapsack K = 16. Tentukan solusi dari
keuntungan maksimumnya ! (2n : himpunan bagian dan total bobot O(n),
sehingga kompleksitas waktu O(n.2n ))
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

21 / 24

Contoh Pencarian Exhaustive
Beberapa contoh lainnya
Permasalahan tugas → mencari jumlah minimum waktu seseorang
dalam menyelesaikan beberapa tugasnya, sehingga efisiensi menjadi
prioritas utama.
Pencarian DFS (Depth-First Search) → pencarian berdasarkan
kedalamannya.
Pencarian BFS (Breadth-First Search) → pencarian berdasarkan
penyebarannya (atau levelnya).
Beberapa permasalahan exhaustive tidak dapat diselesaikan secara
polinomial, sehingga ini adalah permasalahan NP
(Non-deterministic Polynomial)

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

22 / 24

Catatan

Seluruh materi presentasi dapat didownload pada SIAKAD
masing-masing atau link berikut :
https://sites.google.com/site/elsenronandosite/teaching

Klik

.

Apabila ada pertanyaan mengenai desain analisa algoritma dapat
mengirim ke alamat email berikut : elsen.ronando@untag-sby.ac.id.

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

23 / 24

Terimakasih Atas Perhatiaanya

Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)

Desain Analisa Algoritma : Brute Force

2016

24 / 24

Dokumen yang terkait

ANALISA BIAYA OPERASIONAL KENDARAAN PENGANGKUT SAMPAH KOTA MALANG (Studi Kasus : Pengangkutan Sampah dari TPS Kec. Blimbing ke TPA Supiturang, Malang)

24 196 2

Analisa studi komparatif tentang penerapan traditional costing concept dengan activity based costing : studi kasus pada Rumah Sakit Prikasih

56 889 147

Analisis pengaruh modal inti, dana pihak ketiga (DPK), suku bunga SBI, nilai tukar rupiah (KURS) dan infalnsi terhadap pembiayaan yang disalurkan : studi kasus Bank Muamalat Indonesia

5 112 147

Khutbah Washil bin Atho' wa ma fiha minal asalib al-insyaiyah al-thalabiyah : dirasah tahliliyah

3 67 62

Manajemen Sumber Daya Manusia dalam Peningkatan Produktivitas sekolah : penelitian di SMK al-Amanah Serpong

20 218 83

Analysis On Students'Structure Competence In Complex Sentences : A Case Study at 2nd Year class of SMU TRIGUNA

8 98 53

The correlation between listening skill and pronunciation accuracy : a case study in the firt year of smk vocation higt school pupita bangsa ciputat school year 2005-2006

9 128 37

Partisipasi Politik Perempuan : Studi Kasus Bupati Perempuan Dalam Pemerintahan Dalam Kabupaten Karanganyar

3 106 88

Perilaku komunikasi para pengguna media sosial path di kalangan mahasiswa UNIKOM Kota Bandung : (studi deksriptif mengenai perilaku komunikasi para pengguna media sosial path di kalangan mahasiswa UNIKOM Kota Bandung)

9 116 145

Perancangan media katalog sebagai sarana meningkatkan penjualan Bananpaper : laporan kerja praktek

8 71 19