Apa yang terjadi jika satu algoritma hanya bisa menyelesaikan satu masalah saja?

Seperti yang kita ketahui, permasalahan dapat diselesaikan lebih dari satu cara. Namun apa yang terjadi jika setiap permasalahan yang ada di dunia ini hanya bisa diselesaikan dengan satu cara saja.

Apa yang terjadi jika satu algoritma hanya bisa menyelesaikan satu masalah saja?

Dalam menyelesaikan suatu masalah pasti memiliki cara untuk menyelesaikannya. Namun , jika hanya bisa diselesaikan satu cara saja berarti masalah itu tidak valid dalam artian pasti dalam memecahkan sebuah masalah pasti memiliki beberapa cara. Algoritma sendiri memiliki syarat aga dapat dikatakan algoritma yaitu :

  • Algoritma harus memiliki akhir dari penyelesaian. Jika algoritma tidak memiliki akhir, maka solusi dari masalah itu tidak akan tercapai.

  • Algoritma harus berbahasa jelas pemrogramnya.

  • Algoritma harus memiliki nol atau lebih input (tidak boleh negatif)

  • Algoritma harus memiliki nol atau lebih output

  • Algoritma harus efektif dalam menyelesaikan masalah. Tidak asal jeblak saja dalam mengemukakan sebuah algoritma

Mari kita beri contoh cara pengambilan hasil keputusan

Pengambilan hasil keputusan dapat dilakukan banyak cara, mulai dari musyawarah, voting, putusan para ahli dan semacamnya. Namun apa yang terjadi jika semua cara itu ditiadakan dan menyisakan satu cara saja (misal voting). maka capaian tersebut sifatnya kaku, tidak selalu benar, dan memiliki resiko yang besar. Hal ini juga menjadi tidak efisien ketika sebuah permasalahan kompleks hanya bisa diselesaikan dengan 1 cara saja. karena fokus pandangan dalam menyelesaikan sebuah masalah hanya dari satu sudut pandang yang dominan saja, yang mana jika yang dibawa dalam permasalahan ini menyangkut banyak orang tidak akan menimbulkan perdebatan namun semua lapisan harus tunduk terhadap metoda penyelesaian masalah. Yang menjadi masalah adalah jika hasil dari voting tersebut tidak sesuai dengan apa yang seharusnya dilakukan maka akan timbul permasalahan baru yang lebih rumit lagi.

Singkatnya satu jenis algoritma dapat digunakan hanya untuk menyelesaikan sebuah permasalahan saja. namun hasil tersebut tidak bisa berdiri kokoh karena penopang nya hanya satu saja.

Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya :

  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  • Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  • Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Beberapa hal yang perlu diperhatikan dalam membuat algoritma :

  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  • Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.