Sebelumnya kita sudah tahu sedikit tentang apa itu algoritma, yaitu prosedur atau langkah-langkah pemecahan masalah. Ya… paling tidak ada gambaran yang nantinya akan membantu kita dalam memahami lebih jauh tentang algoritma tersebut. Seperti saya singgung pada posting terdahulu, kali ini kita akan coba menyelesaikan beberapa ‘masalah’.
- Kita punya 2 buah ember yang volumenya 5 liter (5L) dan 3 liter (3L). Diminta untuk mendapatkan air sebanyak 4 liter (4L) menggunakan kedua ember tersebut. Tidak ada alat (ember) lain. Terserah cara mendapatkan air tersebut, mau dipindah-pindah, dibuang dst, yang penting dapat air 4L.
- Ada seorang pemuda (P) membawa seekor kambing (K), seekor srigala
(S) dan sekeranjang sayur (Y) tiba di pinggir sungai. Ada sebuah perahu
yang akan digunakan untuk menyeberang, tetapi hanya bisa memuat 1 bawaan
saja. Tentunya yang bisa mendayung perahu tersebut hanya pemuda.
Masalah lainnya adalah kambing tidak dapat ditinggalkan bersama dengan
sayur (bisa dimakan
), srigala tidak dapat ditinggal bersama dengan kambing (srigala lapar
). Ayo seberangkan semuanya dengan selamat…
- Tiga buah cakram dengan ukuran yang berbeda tersusun berlapis di
sebuah batang besi A. Cakram terbesar berada pada bagian paling bawah
dan yang terkecil paling atas. Diminta untuk memindahkan cakram-cakram
itu ke batang besi B dengan syarat cakram dipindahkan satu per satu dan
cakram terkecil tidak boleh berada di bawah cakram yang lebih besar.
Boleh menggunakan batang besi C sebagai alat bantu perpindahan
cakram-cakram tersebut. Lihat gambar.
- Tiga pasang suami-istri (berarti ada 6 orang) tiba di pinggir sebuah
sungai dan ingin menyeberangi sunagi itu. Ada sebuah perahu yang
digunakan untuk menyeberang, tetapi hanya dapat dimuati 2 orang saja.
Masalah muncul dengan kenyataan bahwa para suami ternyata pencemburu
dan tidak mau meninggalkan istri-istri mereka jika ada lelaki lain. Bisa menyeberang atau tidak?
ALGORITMA Air 4 Liter.Sekarang masalah kedua, kita asumsikan bahwa penyeberangan dilakukan dari sisi A menuju sisi B dengan keadaan awal PKSY (singkatan dari pemuda, kambing, srigala dan sayur) berada di sisi A. Kita harus memperhatikan syarat-syarat yang diinginkan dari masalah tersebut.
- Isi penuh ember 3L
- Tuangkan air dari ember 3L ke ember 5L {ember 3L kosong, ember 5L terisi air 3 liter}
- Isi penuh ember 3L
- Tuangkan air dari ember 3L ke ember 5L sampai penuh {ember 5L penuh, ember 3L masih berisi 1 liter}
- Buang semua air dalam ember 5L
- Tuangkan air dari ember 3L ke ember 5L {ember 3L kosong, ember 5L berisi 1 liter}
- Isi penuh ember 3L
- Tuangkan air dari ember 3L ke ember 5L {ember 3L kosong, ember 5L berisi 4 liter}
ALGORITMA Penyeberangan PKSY
- P dan K menyeberang ke sisi B {S dan Y tetap di sisi A}
- P kembali ke sisi A sendirian {K tetap di sisi B}
- P dan S menyeberang ke sisi B {Y tetap di sisi A}
- P dan K kembali ke sisi A {S tinggal di sisi B}
- P dan Y menyeberang ke sisi B {K tinggal di sisi A}
- P kembali ke sisi A sendirian {S dan Y tetap di sisi B}
- P dan K menyeberang ke sisi B {P, K, S dan Y sudah berada di sisi B}
Sekarang main cakram yuk… Berdasarkan gambar di atas, kita beri nama dulu untuk ketiga cakram tersebut. CB untuk cakram besar, CS untuk cakram sedang dan CK untuk cakram kecil. lalu kita buat penyelesaian sebagai berikut :
“ALGORITMA Pindah CakramMasalah keempat, masalah yang berat nih, masih soal seberang-menyeberang sungai, pake acara cemburu-cemburuan lagi
- Pindahkan CK dari besi A ke besi B
- Pindahkan CS dari besi A ke besi C
- Pindahkan CK dari besi B ke besi C {besi B kosong, CK berada di atas CS pada besi B, sampai di sini masih benar
}
- Pindahkan CB dari besi A ke besi B {CB paling bawah pada besi B}
- Pindahkan CK dari besi C ke besi A {CS masih di besi C}
- Pindahkan CS dari besi C ke besi B {CS berada di atas CB pada besi B, benar lagi
}
- Pindahkan CK dari besi A ke besi B {CK berada di atas CS, CS berada di atas CB, hore… selesai…
![]()
}
Karena ada 3 pasangan, kita buat singkatan saja, pasangan “X”, “Y” dan “Z”. “s” untuk suami dan “i” untuk istri. Jadi pasangan X adalah Xs dan Xi, dst…
Ayo kita buat…… eeiiit… tunggu dulu, masih ingat kan syaratnya, maksimal cuman bisa 2 orang dalam perahu dan suami tidak mau “meninggalkan” istrinya…
Sekarang baru kita mulai…
“ALGORITMA Penyeberangan Lagi
{kondisi awal di sisi A : Xs, Xi, Ys, Yi, Zs, Zi}
{kondisi awal di sisi B : -, -, -, -, -, -}
- Xi dan Yi menyeberang ke sisi B
{sisi A : Xs, -, Ys, -, Zs, Zi} {sisi B : -, Xi, -, Yi, -, -}- Yi menyeberang sendiri ke sisi A
{sisi A : Xs, -, Ys, Yi, Zs, Zi} {sisi B : -, Xi, -, -, -, -}- Yi dan Zi menyeberang ke sisi B
{sisi A : Xs, -, Ys, -, Zs, -} {sisi B : -, Xi, -, Yi, -, Zi}- Zi menyeberang sendiri ke sisi A
{sisi A : Xs, -, Ys, -, Zs, Zi} {sisi B : -, Xi, -, Yi, -, -}- Zi dan Zs menyeberang ke sisi B
{sisi A : Xs, -, Ys, -, -, -} {sisi B : -, Xi, -, Yi, Zs, Zi}- Yi menyeberang sendiri ke sisi A
{sisi A : Xs, -, Ys, Yi, -, -} {sisi B : -, Xi, -, -, Zs, zi}- Yi dan Ys menyeberang ke sisi B
{sisi A : Xs, -, -, -, -, -} {sisi B : -, Xi, Ys, Yi, Zs, Zi}- Xi menyeberang sendiri ke sisi A
{sisi A : Xs, Xi, -, -, -, -} {sisi B : -, -, Ys, Yi, Zs, Zi}- Xi dan Xs menyeberang ke sisi B
{sisi A : -, -, -, -, -, -} {sisi B : Xs, Xi, Ys, Yi, Zs, Zi}
Contoh Algoritma
4/
5
Oleh
Admin
Silahkan Berkomentar bila ada yang ingin ditanyakan. Tidak ada komentar moderasi di situs ini, jadi mohon jangan SPAM, gunakan dengan bijak. Tolong Laporkan bila ada link yang rusak agar admin dapat segera memperbaikinya.