Home > Pemrograman > Contoh Algoritma Kita

Contoh Algoritma Kita

Feb 28th, 2009 by admin, posted in Pemrograman, tags: , ,
::: Leave a comment :::

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’.

Ada 4 masalah yang akan kita cari jalan penyelesaiannya. Kita lihat dulu apa saja masalah-masalahnya :

  1. 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.
  2. 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 :-D ). Ayo seberangkan semuanya dengan selamat…
  3. 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.
  4. 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? :-)

Ya, dari 4 masalah di atas, sepertinya kita sedang main teka-teki :-D dan terkesan seperti orang kurang ‘kerjaan’ :-( . Terserah pendapat masing-masing, tetapi ini adalah masalah yang harus diselesaikan dan tugas kita untuk mencari penyelesaiannya (problem solver).

Sebelum mulai membuat penyelesaian, baca dan analisa dulu baik-baik masalahnya dan pikirkan apa sebenarnya yang diinginkan dari masalah-masalah itu. Lalu buat algoritma yang tersusun dan terstruktur rapi agar kita dan juga orang lain dapat membaca dan memahaminya dengan cepat. Beri judul algoritma pada bagian atas, beri nomor urut dan jika dianggap perlu memberi keterangan dalam bentuk komentar yang diapit tanda kurung kurawal {}.

Ok, saatnya membuat penyelesaian masalah pertama :

ALGORITMA Air 4 Liter.

  1. Isi penuh ember 3L
  2. Tuangkan air dari ember 3L ke ember 5L {ember 3L kosong, ember 5L terisi air 3 liter}
  3. Isi penuh ember 3L
  4. Tuangkan air dari ember 3L ke ember 5L sampai penuh {ember 5L penuh, ember 3L masih berisi 1 liter}
  5. Buang semua air dalam ember 5L
  6. Tuangkan air dari ember 3L ke ember 5L {ember 3L kosong, ember 5L berisi 1 liter}
  7. Isi penuh ember 3L
  8. Tuangkan air dari ember 3L ke ember 5L {ember 3L kosong, ember 5L berisi 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.

ALGORITMA Penyeberangan PKSY

  1. P dan K menyeberang ke sisi B {S dan Y tetap di sisi A}
  2. P kembali ke sisi A sendirian {K tetap di sisi B}
  3. P dan S menyeberang ke sisi B {Y tetap di sisi A}
  4. P dan K kembali ke sisi A {S tinggal di sisi B}
  5. P dan Y menyeberang ke sisi B {K tinggal di sisi A}
  6. P kembali ke sisi A sendirian {S dan Y tetap di sisi B}
  7. P dan K menyeberang ke sisi B {P, K, S dan Y sudah berada di sisi B}

:-D :-D Repot juga ya, urusan seberang-menyeberang. Tapi berhasil kan…?

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 Cakram

  1. Pindahkan CK dari besi A ke besi B
  2. Pindahkan CS dari besi A ke besi C
  3. Pindahkan CK dari besi B ke besi C {besi B kosong, CK berada di atas CS pada besi B, sampai di sini masih benar ;-) }
  4. Pindahkan CB dari besi A ke besi B {CB paling bawah pada besi B}
  5. Pindahkan CK dari besi C ke besi A {CS masih di besi C}
  6. Pindahkan CS dari besi C ke besi B {CS berada di atas CB pada besi B, benar lagi :-D }
  7. Pindahkan CK dari besi A ke besi B {CK berada di atas CS, CS berada di atas CB, hore… selesai… :-D :-D }

Masalah keempat, masalah yang berat nih, masih soal seberang-menyeberang sungai, pake acara cemburu-cemburuan lagi :-( :-(

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… :-D

Sekarang baru kita mulai…

“ALGORITMA Penyeberangan Lagi

{kondisi awal di sisi A : Xs, Xi, Ys, Yi, Zs, Zi}

{kondisi awal di sisi B : -, -, -, -, -, -}

  1. Xi dan Yi menyeberang ke sisi B
    {sisi A : Xs, -, Ys, -, Zs, Zi} {sisi B : -, Xi, -, Yi, -, -}
  2. Yi menyeberang sendiri ke sisi A
    {sisi A : Xs, -, Ys, Yi, Zs, Zi} {sisi B : -, Xi, -, -, -, -}
  3. Yi dan Zi menyeberang ke sisi B
    {sisi A : Xs, -, Ys, -, Zs, -} {sisi B : -, Xi, -, Yi, -, Zi}
  4. Zi menyeberang sendiri ke sisi A
    {sisi A : Xs, -, Ys, -, Zs, Zi} {sisi B : -, Xi, -, Yi, -, -}
  5. Zi dan Zs menyeberang ke sisi B
    {sisi A : Xs, -, Ys, -, -, -} {sisi B : -, Xi, -, Yi, Zs, Zi}
  6. Yi menyeberang sendiri ke sisi A
    {sisi A : Xs, -, Ys, Yi, -, -} {sisi B : -, Xi, -, -, Zs, zi}
  7. Yi dan Ys menyeberang ke sisi B
    {sisi A : Xs, -, -, -, -, -} {sisi B : -, Xi, Ys, Yi, Zs, Zi}
  8. Xi menyeberang sendiri ke sisi A
    {sisi A : Xs, Xi, -, -, -, -} {sisi B : -, -, Ys, Yi, Zs, Zi}
  9. Xi dan Xs menyeberang ke sisi B
    {sisi A : -, -, -, -, -, -} {sisi B : Xs, Xi, Ys, Yi, Zs, Zi}

Wah, rumit juga ternyata kalau kita mau meneliti dengan terurut dan teratur, tetapi hasilnya juga tentunya akan memuaskan. Makanya, kalau da masalah kita teliti dulu, pikirkan semua kemungkinan yang dapat terjadi, jangan asal selesai… ;-) Kita sangat sering berhadapan dengan berbagai macam masalah, namun kadang-kadang tidak membuat penyelesaian yang benar dan terbaik untuk masalah-masalah itu sehingga hasil yang didapat tidak memuaskan dan tidak maksimal.

Kita lanjutkan lagi pada tulisan berikutnya…





9 Comments so far


By doez on 02-28-2009 6:22 pm

ok thx

By admin on 03-03-2009 10:04 am

@doez
Thanks juga atas kunjungannya…

By rajim on 05-26-2009 12:39 am

Bos mau nanya ttg soal no 4 ( algoritma suami istri)

# 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}

Pertanyaan : di sebutkan di soal bahwa suami ternyata pencemburu :-( dan tidak mau meninggalkan istri-istri mereka jika ada lelaki lain.

coba perhatikan : ketika # Yi menyeberang sendiri ke sisi A.
di sisi B {sisi B : -, Xi, -, -, Zs, zi}.

Apakah itu tidak salah, karna ada Zs (pria)di sisi B yg tentunya pasti membuat cemburu Xs karna istrinya (Xi) ketinggalan di sisi B

Mohon koreksi jika saya salah

By admin on 06-03-2009 9:54 am

@rajim

Terima kasih Anda telah mengunjungi situs ini…

Pengertian ‘pencemburu’ di sini adalah, suami tidak akan mau meninggalkan istrinya ‘berdua saja’ dengan suami yang lain…

Pada baris
#{sisi A : Xs, -, Ys, Yi, -, -} {sisi B : -, Xi, -, -, Zs, zi}
di sisi B Xi tidak berduaan dengan Zs, tetapi ada Zi…

Dengan begitu syarat yang diinginkan dalam penyeberangan masih terpenuhi…

Kalau Anda punya pendapat lain, atau algoritma lain, silahkan sampaikan sehingga kita bisa saling berbagi….

Salam.

By ejak on 05-10-2010 7:58 am

mw tanya soal yg no 4, jika hanya dibatasi dengan maks perahu dapat menampung dua orang dan suami yg “pencemburu”, knapa Xs dan Xi sama2 menyebrang sungai dengan perahu yang sama, begitu juga dengan pasangan Y dan Z?

By ejak on 05-10-2010 8:01 am

@ejak
maksudnya knapa Xs dan Xi tidak sama2 menyebrang sungai dengan perahu yang sama, ada yg kurang (hehe)

By admin on 05-15-2010 12:20 pm

@ejak

perahu yang dipakai cuma ada 1, jadi gantian dan syaratnya “pencemburu”, artinya pada kondisi tersebut, tidak ada yang cemburu karena Ys dan Zs ada suaminya.

Selain itu, jika Xs dan Xi menyebrang bersama-sama, lalu siapa yang akan mengembalikan perahu ke seberang untuk pasangan yang lain yang ingin menyeberang juga?…

By cha on 06-29-2010 9:39 am

trims

By cecep on 04-04-2011 5:28 pm

tHANK’S Bnget Tas Informasi n Jawabannya,,, Sangat Membantu Saya,,,,,,,,,



Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>