Bagaimana cara mengatasi algoritma yang kurang efisien meski algoritma sudah dapat berjalan sesuai yang diinginkan?

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Salah satu hal yang terpenting dari algoritma adalah efisiensi algoritma. Lalu bagaimanakah cara mengatasi algortima yang kurang efisien meski algoritma sudah dapat berjalan sesuai yang diinginkan?

Algoritma yang dapat dikatakan sebagai algoritma yang efisien, merupakan algoritma yang dimana pada saat pemrosesan algoritma tersebut tidak memakan banyak waktu dan juga tidak memakan banyak memori dalam pemrosesannya. Efisiensi algoritma dapat ditinjau dari 2 hal, yaitu efisiensi terhadap waktu, dan efisiensi terhadap memori.

Walaupun algoritma yang memberikan keluaran yang benar(paling mendekati kenyataan), tetapi jika harus menunggu berjam-jam untuk mendapatkan outputannya(dalam hal ini yang dimaksudkan adalah efisiensi dalam waktu), algoritma tersebut biasanya tidak akan dipakai. Kebanyakan orang lebih menginginkan algoritma yang memiliki pengeluaran atau hasil outputan yang lebih cepat.

Faktor-faktor yang dapat mempengaruhi waktu tempuh dari algoritma itu sendiri adalah :

  1. Banyaknya langkah
    Makin banyak langkah atau instruksi yang digunakan dalam menyelesaikan masalah, maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut
  2. Besar dan jenis input data
    Besar dan jenis input data pada suatu algoritma akan sangat berpengaruh pada proses perhitugan yang terjadi. Jika jenis data adalah tingkat ketelitian tunggal(Single precision), maka waktu tempuh akan menjadi relatif lebih cepat dibandingkan dengan tingkat ketelitian ganda(double precesion)
  3. Jenis operasi
    Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi tersebut meliputi operasi matematika, nalar atau logika, atau yang lainnya. Sebagai contoh, operasi perkalian atau pembagian akan memakan waktu lebih lama dibandingkan operasi penjumlahan atau pengurangan.

Begitu juga dengan memori, algoritma yang memakan banyak memori merupakan algoritma yang dapat dikatakan memiliki kualitas buruk. Semakin besar memori yang terpakai untuk algoritma tersebut, maka akan semakin rendah kualitas algoritma tersebut.

Salah satu faktor yang mempengaruhi pemakaian memori dalam suatu algoritma adalah banyaknya langkah yang digunakan dan jenis variable data yang dipakai dalam suatu algoritma.

Jadi dalam suatu algoritma, haruslah algoritma yang efisiensi akan waktu dan memori, karena jika tidak maka pemrosesan dari algoritma tersebut akan menjadi lama, berat, dan tidak efisien pastinya.

Referensi

http://www.nusinau.com/pengertian-algoritma/
http://blog.uin-malang.ac.id/arief/tag/pengertian-algoritma/
https://andikafisma.wordpress.com/algoritma-dan-pemrograman/

algoritma merupakan suatu langkah kerja/ uruta langkah kerja yang logis dan tepat untuk memecahkan suatu masalah, atau dalam ilmu komputer algoritma merupakan suatu konsep dasar dari sebuah program yang dimana dalam pembuatannya di perlukan daya nalar dan pikir yang baik maupun logis.

Kata algoritma sendiri berasal dari bahasa arab yaitu dari kata algorism yang berarti proses menghitung dengan angka arab.

Algoritma yang dapat dikatakan sebagai algoritma yang efisien, merupakan algoritma yang dimana pada saat pemrosesan algoritma tersebut tidak memakan banyak waktu dan juga tidak memakan banyak memori dalam pemrosesannya. Karena jika tidak, maka pemrosesan dari algoritma tersebut akan menjadi lama, berat, dan tidak efisien pastinya.

Efisiensi algoritma dapat ditinjau dari dua hal yaitu kecepatan(waktu) dan space memori.

Faktor-faktor yang mempengaruhi :

  1. Kecepatan

    • Banyak langkah
      Banyak langkah dalam suatu algoritma dinyatakan dengan banyaknya operasi aritmatika dan logika yang dilakukan. Dengan demikian hal ini bergantung pada statement dan jenis algoritma :

      • sequensial
      • branching
      • looping
      • subroutine call (bisa memanggil prosedur dan bisa memanggil fungsi)
    • Tipe Data
      Dua nilai yg sama dgn operator yg sama tapi dgn variabel yg berbeda, maka terdapat perbedaan kecepatan/proses penyelesaiannya.

    • Operator-Operator
      Urutan penggunaan operator/penempatan operator bisa mempengaruhi efisiensi.Contoh perkalian (*) lebih lama daripada penjumlahan (+)

  2. Space Memory

    • Alokasi Memori
      Berkaitan dengan struktur data dinais, Procedure/function call dan recursif

Referensi

Algoritma yang efisien yaitu pada saat pemrosesan algoritma tidak memakan banyak waktu dan juga tidak memakan banyak memori dalam pemrosesannya. Karena jika tidak, maka pemrosesan akan mejadi lama, berat, dan tentunya tidak efisien.

Walaupun algortima dapat memberikan output yang sesuai, tetapi jika harus menunggu berjam-jam untuk mendapatkan outputnya, maka algoritma tersebut kurang berguna, karena tidak adanya efisiensi waktu. Apa yang membuat program menjadi tidak efisien waktu?

  1. Banyak instruksi yang digunakan, sehingga algoritma dikatakan algoritma yang efisien jika pada saat pemrosesan algoritma tersebut tidak memakan banyak waktu dan juga tidak memakan banyak memori dalam pemrosesannya.
  2. Besar dan jenis input data.
  3. Jenis operasi, yaitu meliputi operasi matematika, logika, atau lainnya.

Kemudian algoritma yang tidak efisien memori, maka akan memiliki kualitas buruk semakin besar memori yang terpakai untuk algoritma tersebut, maka akan semakin buruk algorima terebut. Salah satu faktor yang mempengaruhi pemakaian memori yaitu banyaknya langkah yang digunakan dan jenis variable data yang dipakai.

Sebenarnya tidak hanya masalah pada efisiensi waktu dan memori, tapi juga pada kompleksitas teori yang dipakai dan banyaknya fungsi yang dipakai. Jadi efisiensi dalam pembuatan algoritma terdapat pada saat proses pembuatan dan saat dijalankan. Jika pada saat algoritma cepat dan mudah dibuat, belum tentu program tersebut akan efisien ketika dijalankan, dan juga sebaliknya.