Pengenalan Dasar Algoritma

Mahir Koding – Pastinya bagi kamu yang sudah berkecimpung di dunia pemrograman tidak akan asing lagi dengan istilah yang satu ini. Algoritma merupakan salah satu komponen/pelajaran paling dasar dari segala bentuk pemrograman. Dalam matematika dan ilmu komputer, algoritma adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis. Untuk itu, akan sangat berguna jika kamu mempunyai basic algoritma yang kuat sebelum bermain di pengodingan secara langsung.

Dalam sistem komputer, sebuah algoritma pada dasarnya adalah instansi dari logika ditulis dalam perangkat lunak oleh pengembang perangkat lunak supaya efektif untuk komputer yang “ditargetkan” untuk mesin tertentu untuk menghasilkan keluaran dari masukan yang diberikan. Banyak juga yang beranggapan bahwa algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Berarti kita bisa simpulkan bahwa algoritma membutuhkan masalah/studi kasus, proses dan solusi.

screenshot-from-2016-09-10-02-31-03

Contoh Algoritma Sederhana :

slide_10

Diberikan 2 buah bejana A dan B. Bejana A berisi air merah, sedangkan bejana B berisi air biru. Silahkan tukarkan isi kedua bejana tersebut sehingga bejana A menjadi air biru dan bejana B berisi air merah. Kamu dapat menggunakan bejana C sebagai bantuan.

Jawaban :

slide_11

Proses-proses diatas yang dimulai dari menuang isi bejana diatas hingga kedua isi bejana tersebut bertukar posisi itulah yang disebut dengan algoritma.

Sebuah algoritma yang baik, ada beberapa hal yang perlu diperhatikan :

  1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas (berhingga). Barisan instruksi yang dibuat dalam suatu urutan tertentu, dimaksudkan agar masalah yang dihadapi dapat diselesaikan. Banyaknya instruksi atau langkah itu haruslah berhingga. Jika tidak demikian, proses yang dilakukan akan memerlukan waktu yang relatif lebih lama dan diperoleh hasil yang tidak diperlukan atau tidak berhubungan dengan masalah yang ada, bahkan mungkin proses akan terus berlangsung walaupun solusi yang diharapkan telah diperoleh.
  2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous).
  3. Algoritma memiliki nol atau lebih masukan (input). Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja.
  4. Algoritma mempunya nol atau lebih keluaran (output). Keluaran adalah besaran yang memiliki hubungan dengan masukan. Keluaran tersebut tentunya harus merupakan solusi dari masalah yang sedang diselesaikan.
  5. Algoritma harus efektif dan efisien. Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal. Suatu algoritma dikatakan efektif jika algoritma tersebut dapat menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan. Dengan kata lain suatu algoritma harus tepat guna. Suatu algoritma dikatakan efisien jika waktu proses dari algoritma relatif lebih singkat dan penggunaan memorinya lebih sedikit.
  6. Algoritma harus terstruktur. Urutan baris langkah-langkahnya yang digunakan harus disusun sedemikian rupa agar proses penyelesaiannya tidak berbelit-belit, sehingga memungkinkan waktu prosesnya akan menjadi relatif lebih singkat. Hal ini akan memperlihatkan bahwa bagian-bagian dari proses tersebut dapat dibedakan secara jelas (bagian input, proses dan output). Dengan demikian memudahkan kita didalam melakukan pemeriksaan ulang.