Bagaimana merancang sebuah Algoritma?

Algoritma adalah sebuah rencana, satu set instruksi langkah demi langkah untuk memecahkan suatu masalah. Penggunaan algoritma sering kali dapat dilihat di dalam kehidupan manusia. Tanpa disadari, manusia menggunakan algoritma dalam menyelesaikan masalah yang sedang dihadapinya. Sebuah algoritma dapat bermanfaat dalam menuntukan keputusan akhir sehingga jawaban yang diperoleh menjadi tepat sasaran.

Bagaimana sebuah algoritma dapat dirancang sehingga menghasilkan suatu rangkaian pemecahan masalah yang efisien?

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. urutan langkah logis, berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Urutan-urutan tersebut harus disusun sebaik mungkin. Tanpa algoritma yang dirancang baik maka proses akan menjadi salah, rusak, atau lambat dan tidak efisien.

Pertimbangan dalam pemilihan algoritma adalah :

  • Pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.

  • Pertimbangan kedua, yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Algoritma yang baik harus mampu memberikan hasil penyelesaian yang sedekat mungkin dengan masalah yang sebenarnya.

  • Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan penyelesaian yang benar (paling mendekati), tetapi jika penyelesaian tersebut membutuhkan waktu lama, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan penyelesaian yang cepat. Begitu juga dengan memori, semakin besar memori atau proses yang dibutuhkan maka semakin buruklah algoritma tersebut.

Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda dengan orang lain untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran atau penyelesaian yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat. Yang dapat menyelesaikan secara tepat dengan langkah-langkah yang harus jelas namun dengan proses yang singkat dan efektif.

Sumber:
onelifes07.blogspot.co.id : Hadapi Masalah Dengan Cara Algoritma
damaart.blogspot.co.id : Pengenalan Algoritma dan Contoh

Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.

Nah untuk membuat algoritma yang efisien. Langkah pertama adalah mendefinisikan masalah. Jika terdapat suatu masalah maka definisikan masalah tersebut dan abstrasikan atau degenerelasisasikan hingga mencapai akar permasalahan. Kemudian carilah solusi dari sebuah permasalahan tersebut.

Carilah solusi yang tepat dan efisien seperti jika solusi tersebut menggunakan model matematika, maka sederhanakan model matematika tersebut hingga paling sederhana dan jangan menggunakan pemodelan matematika yang tidak perlu seperti A = A + 0 atau A = A * 1. Kemudian buat algoritma sesuai solusi yang telah anda buat. Kenalilah cara menyajikan suatu algoritma baik itu melalui flowchart atau pseudocode.

Sebaiknya algoritma juga memenuhi berbagai kriteria berikut :

  1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
  2. Output: algoritma harus memiliki minimal satu buah output keluaran.
  3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
  4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
  5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif.

sumber :
https://andikafisma.wordpress.com : algoritma-dan-pemrograman
https://milayuliani.wordpress.com : algoritma-pemrograman
Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani
Microsoft Press Computer and Internet Dictionaary 1997, 1998

Algoritma adalah sebuah rangkaian dalam rangka memecahkan sebuah masalah menggunakan beberapa metode dan langkah-langkah yang logis sebagai sebuah persyaratan mendapat suatu penyelesaian akhir. Sebuah algoritma harus mengikuti suatu aturan pengurutan langkah per langkahnya. Jika ada satu saja langkah dari algoritma yang menyimpang dari urutan pengerjaan, maka algoritma tersebut harus dipertanyakan kelayakannya. Kunci dari pengembangan sebuah algoritma adalah pemikiran dari masing-masing perancang algoritma tersebut.

Ada beberapa cara untuk membuat algoritma yang efisien. Setelah kita melakukan identifikasi terhadap masalah yang didapat, kemudian mulai dilakukan pencarian solusi atas permasalahan tersebut. Sebuah algoritma yang baik akan mempunyai ciri sebagai berikut :

  1. Realibility. Artinya solusi yang diperoleh harus berakurasi tinggi dan benar.
  2. Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin (efisien).
  3. General. Akan lebih baik jika sebuah algoritma dapat untuk menyelesaikan lebih dari satu masalah.
  4. Bisa dikembangkan (expandable).
  5. Mudah dimengerti bagi yang melihatnya.
  6. Precise (tepat, betul, teliti).
  7. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.

Algoritma yang baik seharusnya dapat memenuhi 7 kriteria di atas. Dengan demikian, maka algoritma yang dibuat sebaiknya tidak bertele-tele, mempunyai titik solusi yang jelas, serta dapat dengan mudah dipahami bagi yang membacanya. Selanjutnya anda dapat menyajikan algoritma tersebut dengan menggunakan bagan flowchart atau pseudocode.

Sumber : basicintan.blogspot.co.id : Menilai Sebuah Algoritma.