Terdapat beragam klasifikasi algoritma
 dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara 
untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan 
memperhatikan paradigma dan metode yang digunakan untuk mendesain 
algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun 
suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma 
dapat digunakan dalam banyak algoritma yang berbeda.
algoritma Brute force  
Algoritma  Brute Force adalah sebuah  pendekatan 
yang lempang (straightforward) untuk
memecahkan 
suatu masalah, biasanya didasarkan
pada pernyataan 
masalah (problem statement) dan
definisi konsep 
yang dilibatkan.
Prinsip –  prinsip algoritma brute force untuk 
menyelesaikan persoalan Integer
Knapsack ialah: 
1) 
Mengenumerasikan semua himpunan 
bagian 
dari solusi. 
2) 
Mengevaluasi total keuntungan 
dari  setiap 
himpunan bagian dari langkah pertama
3) 
Pilih himpunan bagian yang mempunyai total 
keuntungan terbesar 
Algoritma Greedy
Secara harfiah,  greedy 
berarti rakus atau tamak. 
Algoritma  Greedy 
merupakan  algoritma sedarhana 
dan lempang yang paling populer
untuk pemecahan 
persoalan  optimasi (maksimum atau  minimum). 
Prinsip  greedy  
adalah: “take what you  can  get 
now!”, yang digunakan dalam konteks
positif.[7] 
Ada tiga pendekatan dalam  menyelesaikan 
persoalan  Integer Knapsack dengan algoritma 
Greedy: 
       
i.           
Greedy by profit.  
Pada setiap langkah,  knapsack diisi dengan objek 
yang mempunyai keuntungan terbesar.
Strategi ini 
mencoba memaksimumkan keuntungan
dengan 
memilih objek yang paling
menguntungkan terlebih 
dahulu. 
     
ii.           
Greedy by weight. 
Pada setiap langkah,  knapsack diisi dengan objek 
yang mempunyai berat paling  ringan. Strategi ini 
mencoba memaksimumkan keuntungan
dengan 
memasukkan sebanyak mungkin objek ke
dalam 
knapsack. 
   
iii.           
Greedy by density.  
Pada setiap langkah,  knapsack diisi dengan objek 
yang mempunyai densitas,  pi 
/wi  terbesar.   Strategi 
ini mencoba  memaksimumkan keuntungan  dengan 
memilih objek yang mempunyai
keuntungan per unit 
berat terbesar
Algoritma Dynamic Programming 
Program Dinamis (dynamic
programming): metode 
pemecahan masalah dengan cara
menguraikan solusi 
menjadi  sekumpulan langkah (step) atau tahapan 
(stage) sedemikian  sehingga solusi dari  persoalan 
dapat dipandang  dari serangkaian keputusan  yang 
saling berkaitan.
Pada penyelesaian persoalan dengan
metode ini: 
          
I.           
terdapat sejumlah berhingga
pilihan  yang 
mungkin, 
       
II.           
solusi pada setiap tahap
dibangun  dari hasil 
solusi tahap sebelumnya, 
    
III.           
kita menggunakan  persyaratan 
optimasi dan 
kendala untuk membatasi sejumlah
pilihan yang 
harus dipertimbangkan pada suatu
tahap. 
Dua 
pendekatan yang digunakan 
dalam  Dynamic 
Progamming  adalah maju (forward atau  up-down) 
dan mundur (backward atau
bottom-up).  
Misalkan x1, x2, …, xn menyatakan
peubah (variable) 
keputusan  yang harus dibuat masing-masing untuk 
tahap 1, 2, …, n. Maka, 
a. 
Program dinamis  maju: Program
dinamis 
bergerak mulai dari tahap 1, terus
maju ke tahap 2, 3, dan seterusnya sampai 
tahap n. Runtunan 
peubah keputusan adalah x1, x2, …,
xn. 
b. 
Program dinamis  mundur: Program
dinamis 
bergerak mulai dari tahap  n, terus mundur ke 
tahap n – 1, n – 2, dan seterusnya
sampai tahap 
1. 
Runtunan peubah keputusan 
adalah  xn,  xn-1, 
…, x1. 
Secara  umum, ada empat langkah yang  dilakukan 
dalam  mengembangkana algoritma program 
dinamis: 
1. 
Karakteristikkan struktur solusi optimal. 
2. 
Definisikan secara rekursif nilai solusi optimal. 
3. 
Hitung nilai solusi optimal secara maju atau mundur. 
4. 
Konstruksi solusi optimal. 
BRANCH AND BOUND
•          Metode Branch and Bound adalah sebuah teknik algoritma yang
secara khusus mempelajari bagaimana caranya memperkecil Search Tree menjadi
sekecil mungkin.
  
       Sesuai dengan namanya, metode ini terdiri dari 2 langkah
yaitu :
      
   Branch yang artinya membangun semua cabang tree yang mungkin
menuju solusi.
      
Bound yang
artinya menghitung node mana yang merupakan active node (E-node) dan node mana
yang merupakan dead node (D-node) dengan menggunakan syarat batas constraint
(kendala).
TEKNIK BRANCH AND BOUND
•          FIFO Branch and Bound
 Adalah
teknik Branch and Bound yang menggunakan bantuan queue untuk perhitungan Branch
    and Bound secara First In First Out.
•          LIFO Branch and Bound
  
          Adalah
teknik Branch and Bound yang menggunakan bantuan stack untuk perhitungan Branch
and Bound secara Last In First Out.
•          Least Cost Branch and Bound
        
Teknik ini akan menghitung cost
setiap node. Node yang memiliki cost paling kecil dikatakan memiliki
kemungkinan paling besar menuju solusi.
MASALAH YANG DAPAT DIPECAHKAN
•          Branch and Bound dapat digunakan untuk memecahkan berbagai
masalah yang menggunakan Search Tree
  -     
Traveling Salesman Problem
  -      
N-Queen Problem
  -       
15 Puzzle Problem
  -      
0/1 Knapsack Problem
  -    Shortest
Path
   Algoritma Pseudo-Code 
Algoritma Pseudo-Code merupakan algoritma yang paling
mendekati bahasa pemrograman dan yang paling mudah untuk digunakan langsung
pada bahasa pemrograman. Kedua algoritma sebelumnya memerlukan penulisan ulang
saat akan dipindahkan pada suatu bahasa pemrograman tertentu. Algoritma
Pseudo-Code adalah penulisan langkah-langkah penyelesaian masalah yang Paling
mendekati bahasa pemrograman sehingga memudahkan pembahasan
Divide and Conquer
paradigma
untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan
yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai
ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya
menyelesaikan keseluruhan masalah dengan membagi masalah besar dan
kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
Dynamic programming
 paradigma pemrograman dinamik akan sesuai jika
digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan
mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini
sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba
untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi
secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
 Algoritma Kalimat 
Algoritma kalimat tersusun atas
kalimat - kalimat dalam suatu bahasa yang menerangkan cara cara untuk
menyelesaikan masalah. Karenakita berbicara mengenai ilmu komputer ,maka kita
berbicara masalh bagaimana caranya meminta dan mengolah input user dan
menampilkan output hasi pengolahan input tersebut.
Algoritma Flowchart 
Algoritma flowchart dibuat untuk
menyederhanakan algoritma kalimat dan untuk memudahkan penggambaran jalannya
program.
- contoh Alur flochart 
 
 
 

 
3 komentar:
pas banget pak saya ada tugas, ijin copas ya.. ^^
terima kasih atas ilmunya... sangat bermanfaat.. ^^
oh iya sudah di follow urutan 7, jangan lupa di follback ya pak.. terima kasih.. ^^
artikelnya ok, back song nya apalagi ok bnget ^^
mantap gan lengkap sekali berbagi pengetahuan tentang algoritma, terima kasih ^^
Posting Komentar