Monday, October 3, 2022

Nama : Saiful Bahri Si Jabat

Npm: 21312087

Kelas: IF 21 B


Berbagai Permasalahan Yang Dapat Di Selesaikan Dengan Algoritma

Pendahuluan.

Algoritma adalah bagian dari langkah logis dalam proses penyelesaian masalah. Algoritma adalah selalu berdasar pada perhitungan pasti dan minim kegagalan. Algoritma adalah digunakan untuk memecahkan suatu masalah dan langkah yang tepat untuk mencapainya.

Bisa pula dikatakan algoritma adalah sebuah langkah perhitungan, penalaran otomatis, dan pemrosesan data. Sebelum menyelesaikan suatu masalah, algoritma adalah akan memaparkan kondisi awal, eksekusi yang harus dilakukan, dan hasil.

Banyak ahli yang sudah mencari tahu asal mula kata dan arti algoritma. Kebanyakan tidak menemukan hasil pemaknaan yang tepat dan tidak memuaskan mengenai algoritma. Sebagian dari mereka ada yang mengatakan algoritma adalah berasal dari nama penulis buku dari Arab. Namanya Abu Jafar Muhammad Ibnu Musa Al Khuwarismi.

Hal ini membuat orang-orang Barat memaknai Al Khuwarismi sebagai Algorism


Mengenal Algoritma

Algoritma adalah penyelesai masalah yang logis. Logis maksudnya berdasar pada perhitungan pasti dan langkah yang tidak akan gagal. Algoritma adalah tidak hanya bisa diterapkan pada ilmu matematika.

Algoritma adalah berguna di segala macam bidang dan lini kehidupan. Saat ini, algoritma adalah bagian terpenting dalam proses pemrogaman. Terutama untuk memecahkan suatu masalah dan langkah yang tepat untuk mencapainya.

Apa peran algoritma dan logika pemrograman dalam menyelesaikan suatu permasalahan?
Karena dalam hal ini, sebuah peran algoritma dan logika pemrograman adalah hal yang sangat penting dalam menyelesaikan suatu permasalahan. Untuk algoritma dalam matematika seperti di bawah ini contohnya: Algoritma untuk menghitung nilai y dari sebuah persamaan y = 3x + 8.

Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak yang mengerjakan proses disebut pemroses . Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya.

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)

Contoh Dan Solusi Algoritma Dalam Kehidupan (Sehari - Hari)

Contoh Kasus Ke 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).

Contoh Kasus Ke 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).

Contoh Algoritma yang Baik

Kita telah mengetahui dengan jelas makna dari algoritma, sehingga pertanyaan selanjutnya adalah algoritma seperti apa yang dapat dikatakan sebagai algoritma yang baik? Pada umumnya kita tidak ingin menggunakan algoritma yang salah untuk menyelesaikan masalah karena hal ini dapat menyebabkan masalah tidak diselesaikan dengan optimal, atau lebih buruknya, tidak diselesaikan sama sekali.
Sebuah algoritma yang baik memiliki sifat-sifat berikut:
  1. Benar, di mana algoritma menyelesaikan masalah dengan tepat, sesuai dengan definisi masukan / keluaran algoritma yang diberikan.
  2. Efisien, berarti algoritma menyelesaikan masalah tanpa memberatkan bagian lain dari apliikasi. Sebuah algoritma yang tidak efisien akan menggunakan sumber daya (memori, CPU) yang besar dan memberatkan aplikasi yang mengimplementasikan algoritma tersebut.
  3. Mudah diimplementasikan, artinya sebuah algoritma yang baik harus dapat dimengerti dengan mudah sehingga implementasi algoritma dapat dilakukan siapapun dengan pendidikan yang tepat, dalam waktu yang masuk akal.
Pada prakteknya, tentunya ketiga hal tersebut tidak dapat selalu tercapai. Kebenaran dari sebuah algoritma umumnya selalu dapat dicapai, setidaknya untuk nilai-nilai masukan umum, tetapi efisiensi dan kemudahan implementasi tidak selalu didapatkan. Begitupun, tentunya kita harus tetap berusaha mencapai ketiga hal tersebut dalam merancang sebuah algoritma.






















Implementasi Algoritma Branch & Bound

  Nama    : Saiful Bahri Si Jabat Npm      : 21312087 Kelas      : IF 21 B Implementasi Algoritma Branch & Bound Pada Masalah Knapsack G...