Anda di halaman 1dari 10

LAPORAN ANALISIS DAN PERANCANGAN ALGORITMA

NIM 3411171008

Dhani Trianggara

Kelas : D

JURUSAN INFORMATIKA

FAKULTAS SAINS DAN INFORMATIKA

UNIVERSITAS JENDRAL ACHMAD YANI

2020
DAFTAR ISI
Big O notation ............................................................................................................................................... 3
Kompleksitas Konstan ................................................................................................................................... 4
Algoritma Brute Force ................................................................................................................................... 6
Kelebihan Algortima Brute Force .................................................................................................................. 6
Kekurangan Algoritma Brute Force............................................................................................................... 6
Contoh Pemecahan Masalah Brute Force .................................................................................................... 6
BAB III ............................................................................................................................................................ 9
KESIMPULAN ................................................................................................................................................. 9

2|Page
Big O notation
Terdapat dua macam penggunaan notasi ini: Asimptotik Tak Hingga (Infinite Asymptotik)
dan Asimptotik Sangat Kecil (Inifinitesimal Asymptotik). terdapat pada aplikasi, bukan pada
konsep dasarnya. Definsi umum dari “O Besar” adalah sama untuk kedua kasus, namun dengan
batasbatas (limits) yang berbeda untuk argument fungsi-nya.

Notasi O Besar berguna untuk menganalisa efesiensi suatu algoritma Misalnya waktu yang
digunakan dengna parameter n bisa jadi T(n) = 4n2- 2n+2 semakin n2 bertambah besar akan
mendominasi bertumbuhan sehingga suku suku untuk mengambarkan kecenderungan ukuran dari
suatu operasi kita Menggunakan Notasi O besar

Notasi Nama Contoh


O(1) konstan Menentukan apakah suatu bilangan genap atau ganjil
O(Log * n) Iterasi logritmik Algoritma pencarian Hopcraft dan Ullman untuk himpunan disjoint

O(Log n) Logaritmik Pencarian dalam list terurut Binary search


O((log n)c) Polilogaritmik Menentukan bilangan prima dengan AKS primality test

O(n) Linier Pencaian list Tidak Terurut


O(n log n) Linearitmik Mengurutkan list dengan Heapsort

O(n2) Kuadratik Mengurutkan list dengan Insertion Sort

O(nc), c > 1 Poliomial Pencarian shortest path dengan algoritma Floyd-Warshall

O(n!) Faktorial Menyelesaikan traveling salesman problem dengan menggunakan


brute
force

3|Page
O(2cn) Dobel Eksponensial Pencarian himpunan lengkap dari AC-unifiers (associative-
commutative
unifiers)

Kompleksitas Konstan

Sebuah algoritma yang memiliki kompleksitas konstan tidak bertumbuh berdasarkan


ukuran dari data atau masukan yang diterima algoritma tersebut. Bahkan, algoritma dengan
kompleksitas ini tidak akan bertumbuh sama sekali. Berapapun ukuran data atau masukan yang
diterima, oleh algoritma dengan kompleksitas konstan akan memiliki jumlah langkah yang sama
untuk dieksekusi berikutnya.

Karena sifatnya yang selalu memiliki jumlah langkah tetap, algoritma dengan kompleksitas
merupakan algoritma paling efisien dari seluruh kriteria yang ada. Contoh dari algoritma yang
memiliki kompleksitas konstan ialah algoritma yang digunakan untuk menambahkan elemen baru
ke dalam linked list. Contoh implementasi algoritma ini pada bahasa C adalah sebagai berikut:

void add_list(node *anchor, node *new_list)

new_list->next = anchor->next;

anchor->next = new_list;

4|Page
Seperti yang dapat dilihat pada kode di atas, algoritma untuk menambahkan elemen baru
ke dalam linked list tidak memerlukan perulangan, percabangan, ataupun banyak langkah. Untuk
menambahkan elemen baru, kita cukup menjalankan dua langkah saja, tidak peduli berapapun
ukuran awal dari linked list yang ada. Dengan kata lain, berapapun ukuran linked list awal, langkah
untuk untuk menambahkan elemen baru adalah konstan, yaitu dua langkah. Hal ini lah yang
menyebabkan algoritma ini dikatakan memiliki kompleksitas konstan. Tingkat pertumbuhan dari
algoritma dengan kompleksitas konstan dapat dilihat pada gambar berikut:

Tingkat Pertumbuhan Algoritma konstan

5|Page
Algoritma Brute Force

Banyak yang mengatakan bahwa algoritma brute force merupakan jenis algoritma yang
sifatnya straight, lurus atau bisa juga disebut sebagai algoritma yang lempeng. Algoritma brute
force merupakan bentuk algoritma yang sangat kompleks, karena untuk dapat menyelesaikan
masalah dengan teknik straight forward atau lempeng ini, dibutuhkan banyak masukan dan juga
pertimbangan secara logis, sehingga dapat diperoleh sebuah keputusan pemecahan masalah yang
langsung mengacu atau menuju kepada hasil yang diinginkan.

Algoritma Brute Force menggunakan pendekatan yang di sarkan pada pernyataan masalah
statement, dan juga definisi konsep yang di libatkan Dalam implementasinya ,algortima Brute
force membutuhkan suatu cara yang jelas namun sederhana .

Kelebihan Algortima Brute Force

Algortima Brute Force merupakan sebuah metode pemecahan masalah logis yang memiliki
kemampuan untuk memperoleh pemecahan dengan baik dengan mempertimabangkan banyak
opsi, algoritma brute force mampu menyaring satu dari sekian banyak solusi atau opsi yang
ditawarkan sehingga proses pemecahan masalah menjadi lebih baiik dan juga lebih optimal.

Kekurangan Algoritma Brute Force

Algortima Brute Force sangat sulit pada pemecahan masalah dengan cepat Hal ini di
sebabkan karena algortima Brute Force membutuhkan banyak opsi untuk di eksekusi terlebih
dahulu.Hal ini menjadi pertimbangan opsi yang lebih lambat.

Contoh Pemecahan Masalah Brute Force

Contoh-contoh(Berdasarkan pernyataan masalah)

Mencari elemen terbesar(terkecil)

Persoalan: Diberikan sebuah array yang beranggotakan n buah bilangan bulat(a1, a2, ..., an).
Carilah elemen terbesar di dalam array tersebut. Algoritma bruteforce:bandingkan setiap elemen
array untuk menemukan elemen terbesar KompleksitasO(n)

6|Page
Prosedure CariElemenTerbesar(input z1,z2,…. zn :integer, output maks : integer)
{Mencari elemen terbesar di antara elemen z1, z2, ….. , zn Elemen terbesar akan disimpan di
dalam maks Masukan : z1, z2, … , zn Keluaran: maks

Deklarasi
A : integer

Algoritma
Maks z1
For A 2 to n do
if zk > Maks then

Maks zk
Endif
Endfor

Algortima Greedy

Greddy , dapat diartikan sebagai rakus. Algortima greddy disebut rakus , karena algortima
greedy berbeda dengan brute force yang memilih salah satu pemecahan masalah terbaik, algoritma
greedy melakukan pemecahan suatu masalah saat itu juga tanpa mempertimbangkan konsekuensi
dari pemecahan masalah berikut. Jadi lakukan selagi bisa atau lakukan apa yang kamu bisa
sekarang. Algoritma greedy tidak mempertimbangkan, namun langsung bertindak, sesuai dengan
pemikiran logis yang muncul, tanpa memikirkan konsekuensi atau dampak dari pemecahan
masalah yang sedang dihadapi.

Kelebihan dari algoritam greedy

Apabila kita melihat dari definisi dan pengertian algoritma greedy, maka bisa kita
simpulkan bahwa kelebihan dari algoritma greedy adalah cepat dalam bertindak alias fast response.
Apabila anda membutuhkan penyelesaian masalah secara instant dan juga cepat, algoritma greedy

7|Page
adalah salah satu metode yang tepat. Algoritma greedy tidak membutuhkan waktu lama untuk
memikirkan opsi – opsi lain yang bisa dilakukan.

BFS DAN DFS

Traversal dalam graf berarti mengunjungi simpul simpul dengan cara sistematik Algortima
traversal didalam graf yaitu BFS Pencarian melebar (Breadth First Search), 2. DFS : Pencarian
Mendalam( Depth First Search) Algoritma Pencarian Melebar (BFS)

• Traversal dimulai dari simpul A.


• Algoritma
1. Kunjungi simpul A
2. Kunjungi semua simpul yang bertetangga dengan simpul A Terlebih dahulu
3. Kunjungi simpul yang belum di kunjungi yang tadi dikunjungi, demikan
seterusnya.
• Jika graf berbentuk pohon Berakar, maka semua simpul simpul pada aras d dikunjungi
lebih dahulu sebelum mengunjungi simpul-simpul pada aras d+1.

8|Page
BAB III
KESIMPULAN

Kesimpulan yang saya dapat setelah mempelajari lebih dalam materi Analisis Perancangan
Algoritma untuk memecahkan masalah dan meminilisir suatu masalah mengefisienkan langkah
langkah psoude code yang ada pada Algoritma Big O juga memiliki beberapa Notasi Notasi

9|Page
DAFTAR PUSTAKA
Bender, W. (1997). DFS dan BFS. Technique of Data Hiding , 164-179.

bertzee. (2013). kompleksitas Algortima. Retrieved from Kompleksitas Algortima:


https://bertzzie.com/knowledge/analisis-algoritma/KompleksitasAlgoritma.html

Dinand. (2019, Maret). Pengertian Algoritma Brute Force dan Greedy . Retrieved from Pengertian
Algoritma Brute Force dan Greedy : https://dosenit.com/ilmu-komputer/pengertian-algoritma-
brute-force-dan-greedy

10 | P a g e

Anda mungkin juga menyukai