Menyusun Algoritma Untuk Menyelesaikan Masalah

Posted on

Algoritma disusun dengan tujuan agar keluaran/solusi dari sebuah permasalahan selalu konsisten dan tidak bergantung pada siapa yang menjalankan. Berikut diberikan 2 contoh permasalahan yang diselesaikan dengan menggunakan penyusunan algoritma. Langkah-langkah pada algoritma ditulis sedemikian sehingga tidak menimbulkan ambiguitas (baca: Ambiguitas Algoritma)

Kasus I: Menukar isi cairan.
Deskripsi kasus: diberikan 2 buah gelas, yaitu A dan B yang berisi cairan yang berbeda serta gelas kosong C. Bagaimana cara untuk menukar isi dari kedua gelas itu sehingga, cairan pada gelas A akan berpindah ke gelas B dan sebaliknya. Langkah-langkah:

  1. Tuang seluruh isi cairan di gelas A ke gelas C. (Gelas A sekarang menjadi kosong, gelas C berisi cairan A)
  2. Tuang seluruh isi cairan di gelas A ke gelas B. (Gelas B sekarang menjadi kosong, gelas A berisi cairan B)
  3. Tuang seluruh isi cairan di gelas C ke gelas B. (Gelas C sekarang menjadi kosong, gelas B berisi cairan A – masalah terselesaikan).

Kasus II: Mendapatkan 4 liter dari gelas takar 3 dan 5 liter.
Deskripsi kasus: diberikan gelas takar A dan B yang masing-masing berkapasitas 3 dan 5 liter dalam keadaan awal kosong. Jika ada persediaan air yang tak terbatas, bagaimana cara untuk mendapatkan air sebanyak tepat 4 liter?

  1. Tuang air ke gelas A. (A berisi 3 liter, B kosong)
  2. Tuang air dari gelas A ke gelas B. (A menjadi kosong, B berisi 3 liter)
  3. Tuang air ke gelas A. (A berisi 3 liter, B berisi 3 liter)
  4. Tuang air dari gelas A ke gelas B. (A tersisa 1 liter, B berisi 5 liter)
  5. Buang air pada gelas B. (A berisi 1 liter, B kosong)
  6. Tuang air dari gelas A ke gelas B. (A kosong, B berisi 1 liter).
  7. Tuang air ke gelas A. (A berisi 3 liter, B berisi 1 liter).
  8. Tuang air dari gelas A ke gelas B. (A kosong, B berisi 4 liter – masalah terselesaikan).
Gravatar Image
Program Studi Teknik Informatika, Universitas Ma Chung, Malang - www.machung.ac.id

Leave a Reply

Your email address will not be published. Required fields are marked *