org/wiki/Algoritma
https://fzrusman.wordpress.com/2012/04/09/asal-mula-kata-algoritma/
Kata algoritma datang dari nama matematikawan Persia abad ke-9 Abu Abdullah
Muhammad ibnu Musa Al-Khwarizmi, yang hasil kerjanya dibangun dari matematikawan
India abad ke-7 Brahmagupta. Kata algorisma awalnya mengacu hanya pada aturan-aturan
dalam melakukan aritmetika menggunakan bilangan Hindu-Arab namun berkembang lewat
penerjemahan Latin Eropa dari nama Al-Khwarizmi menjadi algoritma pada abad ke-18.
Penggunaan kata tersebut berkembang mengikutkan semua prosedur untuk menyelesaikan
masalah atau melakukan unit kegiatan.
Perubahan kata algorism menjadi algorithm muncul karena kata algorism sering
dikelirukan dengan arithmetic, sehingga akhiran -sm berubah menjadi thm. Karena
perhitungan dengan angka arab sudah menjadi hal yang biasa/lumrah, maka lambat laun kata
algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum,
sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi
algoritma.
http://raficie.blogspot.co.id/2013/03/definisi-algoritma.html
http://disiniajayuk.blogspot.co.id/2016/01/definisi-algoritma-menurut-para-ahli.html
algoritma adalah metode efektif diekspresikan sebagai rangkaian terbatas dari instruksi-
instruksi yang telah didefinisikan dengan baik untuk menghitung sebuah fungsi. Dimulai dari
sebuah kondisi awal dan input awal (mungkin kosong), instruksi-instruksi tersebut
menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi
terbatas yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran" dan
berhenti di kondisi akhir.
Definisi algoritma adalah urutan langkah-langkah logis penyeselaian masalah yang disusun
secara sistematis dan logis. Kata logis (logika) merupakan kata kunci dalam algoritma.
Langkah-langkah dalam algoritma harus dapat ditentukan bernilai benar atau salah.
Menurut Kamus Besar Bahasa Indonesia (KBBI) terbitan Balai Pustaka (1988):
Urutan logis pengambilan putusan untuk pemecahan suatu masalah.
http://hermanteknik.blogspot.co.id/2012/10/jenis-jenis-algoritma.html
http://eby190205.blogspot.co.id/2011/02/jenis-jenis-algoritma.html
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 Brute Force
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.
Algoritma divide and conquer sudah lama diperkenalkan sebagai sumber dari
pengendalian proses paralel, karena masalah-masalah yang terjadi dapat diatasi
secara independen. Banyak arsitektur dan bahasa pemrograman paralel mendesain
implementasinya (aplikasi) dengan struktur dasar dari algoritma divide and conquer.
Untuk menyelesaikan masalah-masalah yang besar, dan dibagi (dipecah) menjadi
bagian yang lebih kecil dan menggunakan sebuah solusi untuk menyelesaikan
problem awal adalah prinsip dasar dari pemrograman/strategi divide and conquer.
Pseudo Code (Kode Semu) ,Pseudo Code (kode semu) merupakan metode yang cukup
efisien untuk menggambarkan suatu algoritma . Pseudo Code dituliskan dengan
menggunakan bahasa yang mudah dipahami (boleh menggunakan bahasa Indonesia) agar alur
logika yang digambarkan dapat dimengeti oleh orang awam sekalipun. Flowchart Pseudo
Code (kode semu) disusun dengan tujuan untuk menggambarkan tahap-tahap penyelesaian
suatu masalah dengan kata-kata (teks). Metode ini mempunyai kelemahan, dimana
penyusunan algoritma dengan kode semu sangat dipengaruhi oleh tata bahasa pembuatnya,
sehingga kadang-kdang sulit dipahami oleh orang lain. Oleh karena itu kemudian
dikembangkan suatu metode lain yang dapat menggambarkan suatu algoritma program
secara lebih mudah dan sederhana yaitu dengan menggunakan flowchart (diagram alir).
Sistem Flowchart
Sistem flowchart merupakan diagram alir yang menggambarkan suatu sistem peralatan
komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan
tersebut. Sistem flow chart tidak digunakan untuk menggambarkan urutan langkah untuk
memecahkan masalah , tetapi hanya untuk menggambarkan prosedur dalam sistem yang
dibentuk.
http://siswono0503.blogspot.co.id/2013/10/ciri-dan-kriteria-algoritma-yang-baik.html
http://www.iosinotes.com/2015/06/6-sifat-algoritma-dapat-dikatakan-baik-karakteristik-
algoritma.html
1. Input / Masukan : Suatu algoritma memiliki input atau kondisi awal sebelum
algoritma dilaksanakan dan bisa berupa nilai-nilai pengubah yang diambil dari
himpunan khusus
4. Finiteness / Penyelesaian : Suatu algoritma harus memberi kondisi akhir atau output
setelah melakukan sejumlah langkah yang terbatas jumlahnya untuk setiap kondisi
awal atau input yang diberikan
http://marikitangulik.blogspot.co.id/2010/10/notasi-algoritma.html
http://fahmilatiefmunir.blogspot.co.id/2016/01/pengertian-jenis-jenis-fungsi-dan.html
1. Kalimat Deskriptif
3. Pseudo-Code
1. Kalimat Deskriptif
Dengan notasi kalimat deskriptif ini, deskripsi setiap langkah dijelaskan dengan bahasa yang
jelas/gamblang. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang
algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma
ke notasi bahasa pemrograman relatif sulit.
1. mulai.
2. baca panjang
3. baca lebar
5. cetak luas
6. selesai.
Berikut ini adalah gambar dari simbol-simbol yang digunakan pada flowchart
program.
3. Pseudo-code
Dengan notasi pseudocode, deskripsi setiap langkah dijelaskan dengan menggunakan
vacabulary (baku) atau dalam arti lain seperti ini pseudocode merupakan deskripsi tingkat
tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan
konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia
dan bukan oleh mesin. Notasi pseudocode adalah yang paling umum di gunakan dalam
penulisan algoritma karena pengkonversian ke bahasa pemograman relatif mudah.
Notasi pseudo-code terdiri dari :
Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan
dalam algoritma.
http://www.gatewan.com/2014/07/pengertian-tipedata-variabel-dan-
konstanta.html
http://regitat.blogspot.co.id/2013/06/tipe-datavariabeldan-konstanta.html
Tipe data adalah tempat untuk menentukan pemberian nilai terhadap suatu variabel sesuai
atau tidak dengan nilai yang diberikan oleh user.
https://threecahya.wordpress.com/2012/11/22/operator-aritmatika-pada-java/
Operator Aritmatika adalah operator yang digunakan untuk melakukan operasi aritmatika
(perhitungan). Operator ini ada lima macam yaitu :
Operator penambahan (+)
https://kita-aceh.blogspot.com/2011/06/operator-perbandingan-dalam-java.html
Ekspresi yang menggunakan operator relasional akan menghasilkan nilai benar (true)
atau salah (false). Dan operator perbandingan ini hanya dapat digunakan atau hanya
berlaku khusus untuk tipe data primitif saja, seperti integer, double, dan lainnya
(String tidak termasuk).
Variabel adalah merupakan tempat penyimpanan data yang sifatnya sementara. Variabel
dialokasikan oleh computer untuk menampung nilai data dan variable harus memiliki tipe
data atau jenis data. Setiap variable harus mempunyai nama untuk pemberian nama variable
terdapat beberapa syarat yaitu :
Syarat Penamaan Variabel :
http://educationaandeconomic.blogspot.co.id/2008/10/operator-logika-pada-
pemograman-java.html
Operator boolean pada JAVA digunakan untuk melakukan operasi terhadap dua operand yang
bertipe boolean. Hasil yang diberikan oleh operasi ini juga akan bertipe boolean. bebrapa
operator pada boolean.
http://agungimam.blogspot.co.id/2013/04/operator-dalam-java.html
Operator assignment dalam Java digunakan untuk memberikan sebuah nilai ke sebuah
variabel. Operator assignment hanya berupa =. namun selain itu dalam Java dikenal beberapa
shortcut assignment operator yang penting, yang digambarkan dalam tabel berikut :
https://kholifahstikom.wordpress.com/rangkuman-oop/perbedaan-for-while-dan-do-while/
1. For
Awal dan akhir perulangan sudah pasti. Pertama, program hanya akan menjalankan bagian 1
sebanyak sekali, lalu dicek pada bagian 2. Bila benar, bagian 3 akan dijalankan, diikuti
bagian 4. Setelah itu, program akan kembali melakukan cek pada bagian 2. Apabila masih
benar, akan dilanjutkan dengan menjalankan bagian 3 dan 4 seperti sebelumnya. Program
akan terus berputar pada bagian 2 3 4. Sampai ketika bagian 2 (kondisi) tidak terpenuhi
(hasil pengecekan bernilai salah).
2. While
Selama kondisi benar akan terus di ulang. Sedangkan while, metode perulanganya di cek
dulu, dan jika benar (true) maka perulangan di kerjakan, jika salah (false) maka perulangan di
hentikan.
3. Do-while
Di jalankan dulu baru kemudian di cek, apanila benar maka akan jalankan lagi. Sedangkan
do-while, metode perulanganya di jalankan dulu satu kali, dan di cek pada baris while, jika
true maka perulangan di kerjakan jika false maka perulangan di hentikan
http://www.root93.co.id/2013/08/pengertian-dan-penggunaan-perintah.html
http://nurhayatiborlub.blogspot.co.id/2013/06/perintah-break-dan-continue-di-java.html