Algoritma Pemrograman : definisi & Konsep, ciri, jenis, fungsi, keuntungan/ kelebihan dan cara kerja algoritma,





Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata logis ( logika ) merupakan kata kunci dalam sebuah  algoritma, Artinya Langkah-langkah  dalam algoritma harus dapat ditentukan bernilai benar atau salah.

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu computer yang diacu dalam terminology algoritma. Namun algoritma juga digunakan dalam kehidupan sehari-hari, contohnya resep makaan. Didalam resep makanan terdapat langkah-langkah yang merupalan algoritma.

Algoritma Pemrograman adalah langkah-langkah yang ditulis secara berurutan untuk menyelesaikan masalah pemrograman komputer. Penentuan algoritma dalam pemrograman ini merupakan hal dasar yang harus diketahui dan menjadi tahap awal dalam pembuatan program. 

Penyajian algoritma dapat dilakukan menjadi dua bentuk yakni :
  1. Tulisan
  2. Gambar,
Tergantung dari metode atau tahap yang digunakan oleh seorang programmer. Penyajian dalam bentuk tulisan biasanya menggunakan pseudocode sedangkan dalam bentuk gambar biasanya dalam bentuk diagram flowchart.

Cara Kerja ALgoritma

Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. 

Kegiatan membuat program disebut pemrograman (programming) dan Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.

Ciri-ciri Algoritma

  1. Ada input atau masukan 
  2. Ada output atau keluaran 
  3. Langkahnya pasti, jelas, dan tidak ambigu 
  4. Langkahnya sederhana Ada batasan waktu (stoping role)
  5. tidak ambigu, tiap tahap hanya punya satu makna
  6. layak, sesuai dengan sumber daya yang ada
  7. independen, tidak bergantung bahasa pemrograman tertentu

Fungsi Algoritma

Pada dasarnya fungsi utama dari algoritma adalah untuk memecahkan suatu masalah. Suatu algoritma pemrograman membawa keuntungan serta fungsi penting dalam aktivitas pembuatan program. Berikut ini merupakan fungsi algoritma yang perlu diketahui :

  1. Pemrograman dapat mengatasi permasalahan rumit dalam program yang kemungkinan juga melibatkan perhitungan tingkat tinggi. Karena menggunakan perhitungan seringkali program yang dibuat tidak berjalan semestinya karena adanya kesalahan, hal ini dapat diminimalisir dengan menerapkan algoritma dalam pemrograman.
  2. Algoritma pemrograman juga mampu menyederhanakan program, dari program yang besar menjadi program yang lebih sederhana, sehingga penggunaannya lebih efektif dan efisien. Selain itu, terdapat dua pendekatan yang dimiliki algoritma pemrograman yaitu pendekatan top-down serta pendekatan divide and conquer.
  3. Fungsi dari algoritma ini bukan merupakan sekali pakai, artinya dapat digunakan secara berulang-ulang ini memberikan Anda keuntungan dalam meminimalisir penulisan program yang berulang-ulang. Jadi, Anda tidak perlu repot-repot menuliskan lagi program yang sama di lain waktu, yang hal ini memudahkan Anda dalam pembuatan program.
  4. Dalam pembuatan program pastinya akan menjumpai beberapa kesalahan, hal ini sangatlah wajar. Dengan menerapkan fungsi algoritma maka pencarian kesalahan dapat lebih mudah serta dapat diperbaiki dengan cepat.
  5. Adanya alur yang jelas yang dimiliki oleh algoritma pemrograman, Anda dapat dengan mudah mencari kesalahan jika terjadi kesalahan. Karena program sudah tertata atau tersusun dengan rapi, sehingga memudahkan Anda dalam pencarian dan menemukan kesalahan yang terjadi pada program di dalam perangkat komputer yang Anda miliki.

Keuntungan menggunakan algoritma

  1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman mana pun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  3. Apa pun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama
  4. Beberapa hal yang perlu diperhatikan dalam pembuatan algoritma sebagai berikut.Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apa pun asalkan mudah dimengerti dan dipahami.
  5. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  6. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun supaya teks algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  7. 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 ditranslasi 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 menjalankannya. Pseudo adalah kode yang mirip dengan instruksi kode program sebenarnya.
  8. Algoritma sebenarnya digunakan untuk membantu Anda dalam mengonversi suatu permasalahan ke dalam bahasa pemrograman.
  9. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam bahasa pemrograman.

Jenis Algoritma pemrograman 

Algoritma memiliki beberapa jenis, sebagai berikut:  

  • Algoritma Divide and Conquer 

Algoritma divide and conquer adalah algoritma pemecahan suatu masalah dengan membaginya ke dalam dua masalah yang lebih kecil. 
Pertama-tama masalah dibagi menjadi dua sub masalah, lalu masing-masing sub masalah tersebut diselesaikan. 
Setelah kedua submasalah terselesaikan, solusinya digabungkan kembali menjadi satu. Algoritma divide and conquer sangat sering digunakan karena dinilai stabil dan sederhana. 

  • Algoritma Rekursif Dilansir dari Analytic Step, 

algoritma rekursif memecah masalah menajadi submasalah dan memanggil dirinya sendiri berulang-ulang sampai masalah terurai atau sebuah kondisi dasar yang ditentukan terpenuhi. 

  • Algoritma Pemrograman Dinamis 

Algoritma pemrograman dinamis adalah perwujudan dari kalimat “melihat masa lalu dan membenarkan masa depan”. Algoritma pemrograman dinamis memecahkan submasalah dengan hasil pemecahan submasalah sebelumnya. Karena hasil pemecahan submasalah sebelumnya bisa apa saja, inilah mengapa algoritma ini disebut dinamis atau tidak tetap. 

  • Algoritma Greedy 

Algoritma greedy atau algoritma serakah adalah algoritma yang menyelesaikan masalah dalam submasalah dengan mencari solusi yang paling jelas secara global. Algoritma greedy tidak mempertimbangkan hasil sebelumnya maupun konsekuensi kedepannya dan hanya memiliki hasil terbaik, sehingga disebut serakah. 

  • Algoritma Brute Force 

Algoritma brute force adalah algoritma paling mendasar dengan mencoba semua peluang sampai hasil yang diinginkan tercapai. Algoritma brute force adalah algoritma logis yang mempertimbangkan banyak opsi dengan optimal namun waktu pemecahannya tergolong lama. 

  • Algoritma Backtracking 

Algoritma backtracking atau algoritma mundur adalah algoritma yang menyelesaikan masalah secara rekursif atau memanggil dirinya sendiri berulang-ulang. Bedanya, saat suatu opsi tidak memecahkan masalah, algoritma akan menghapus opsi tersebut dan mundur ke belakang untuk mengulang pencarian solusi kembali. 

  • Struktur Algoritma 

Algoritma memiliki tiga struktur dasar yaitu sequence, selection, dan repetition. Sequence atau urutan adalah struktur yang menadung runtutan langkah-langkah algoritma dari awal hingga akhir secara berurutan. Selection adalah proses seleksi atau pemilihan solusi masalah yang paling tepat. Sedangkan repetition atau pengulangan struktur algoritma yang memungkinkan suatu fungsi untuk diulang atau digunakan berulang kali hingga didapat kondisi atau solusi yang diinginkan.

Posting Komentar

0 Komentar