Missionaries & Cannibal
Bagaimana cara memindahkan 3 orang missionaries dan 3 orang kanibal dari satu sisi sungai ke sungai lainnya. Dimana jumlah cannibal tidak boleh lebih banyak daripada jumlah missionaries, karna missionaries akan dimangsa oleh cannibal
Caranya:
Missionaries = M, Cannibal = C
Anggap saja saat ini missionaries dan cannibal berada pada sisi sebelah kanan sungai dan akan dibawa ke sisi sebelah kiri sungai
MMMCCC______MMMC______CCMMMCC______CMMM______CCCMMMC______CCMC______MMCCMMCC______MCCC______MMMCCCC______MMMC______MMMCCCC______MMMC______MMMCCC
1. Bawa C1 dan C2 keseberang, tinggalkan C1 disisi sebelah kiri sungai, C2 kembali kesisi kanan.2. Bawa C2 dan C3 keseberang, tinggalkan C2 disisi sebelah kiri sungai, C3 kembali kesisi kanan.3. Bawa M1 dan M2 keseberang, tinggalkan M1 disisi sebelah kiri sungai, M2 dan C2 kembali kesisi
kanan.4. Bawa M2 dan M3 keseberang, tinggalkan M2 dan M3 disisi sebelah kiri sungai, bawa C1 kembali
kesisi kanan.5. Bawa C1 dan C2 keseberang, tinggalkan C1 disisi sebelah kiri sungai, bawa C2 kembali kesisi
kanan6. Bawa C2 dan C3 kesisi sebelah kiri sungai. Turunkan keduanya disana.7. Selesai
Memindahkan Isi Gelas
A B
Kopi Susu
Cara nya:
2
A B
1 C 3
ALGORITMA
Al khuwarizmi algorism algorithm (diserap dalam bahasa Indonesia menjadi algoritma) Abu ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku arab yang
berjudul kitab Aljabar wal muqabala (Buku pemugaran dan pengurangan). Kata Al khuwarizmi dibaca oleh orang barat menjadi algorism
Algorism = proses menghitung dengan angka angka arab Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis Kata logis berarti benar sesuai dengan logika manusia Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah
harus memberikan hasil yang benar
Penulisan Algoritma
Dalam bahasa natural (Bahasa Indonesia, bahasa Inggris & bahasa lainnya)o Tapi sering membingungkan (ambigous)
Menggunakan flowchart (Diagram Alir)o Bagus secara visual tetapi repot kalau algoritmanya panjang
Menggunakan pseudo-codeo Sudah lebih dekat dengan bahasa pemrograman, namun sulit dimengerti oleh orang
yang tidak mengerti pemrograman
Algoritma memasak mie
1. Sediakan sebungkus mie, air 2 gelas, alat untuk memasak, piring2. Keluarkan mie dari dalam bungkusnya, pisahkan dengan bumbunya3. Masak air sampai mendidih4. Masukkan mie dalam air mendidih, aduk perlahan selama 3 menit5. Angkat mie lalu tiriskan6. Taruh mie di piring lalu tambahkan bumbu & aduk hingga merata7. Mie siap disajikan
Contoh 2. Kasus
Algoritma untuk memmilih bilangan terbesar dari 3 buah bilangan
1. Mulai2. Definisikan maks sebagai bilangan terbesar, saat ini maks = bilangan3. Masukkan bilangan 1, bilangan 1 = maks4. Masukkan bilangan 2, jika bilangan 2 lebih besar dari bilangan 1 maka bilangan 2 = maks5. Masukkan bilangan 3, apakah bilangan 3 lebih besar dari maks? Bila iya, definisikan bilangan 3
sebagai maks6. Tampilkan maks sebagai bilangan terbesar7. Selesai
Y
N
N
Y
1.
L
P
LUAS:
a. Mulaib. Masukkan nilai panjang dan
lebar (P & L)c. Hitung Luas = P*L
d. Tampilkan hasile. Selesai
Start
n1, n2, n3
Maks> n2?
Maks = n1
Maks = n2
Maks = n3
Maks > n3
Maks
End
KELILING:
a. Mulaib. Masukkan nilai panjang dan
lebar (P & L)
c. Hitung Keliling = (P+L)*2d. Tampilkan hasile. Selesai
2.
LUAS:
a. Mulaib. Masukkan nilai jari-jari (r)c. Definisikan π = 3.14d. Hitung Luas = π * r * re. Tampilkan hasilf. Selesai
KELILING:
a. Mulaib. Masukkan nilai jari-jari (r)c. Definisikan π = 3.14d. Hitung Keliling = 2 *π * r e. Tampilkan hasilf. Selesai
3.
a
b
LUAS:
a. Mulaib. Masukkan nilai alas dan tinggi (a & b)c. Hitung luas dengan rumus ½*alas*tinggid. Tampilkan hasil
r
e. Selesai
KELILING:
a. Mulaib. Masukkan alas dan tinggi (a & b)c. Cari sisi miring c= √a2 +b2
d. Hitung keliling = a +b +ce. Tampilkan hasilf. Selesai
NOTASI FLOWCHART