Pengertian dan Contoh Algoritma terbaru

Algoritma adalah prosedur atau langkah-langkah khusus untuk memecahkan masalah yang terdefinisi dengan baik masalah komputasi . Pengembangan dan analisis algoritma sangat penting untuk semua aspek ilmu komputer seperti: kecerdasan buatan , basis data, grafik, jaringan, sistem operasi, keamanan, dan sebagainya. Pengembangan algoritma lebih dari sekedar pemrograman. Ini membutuhkan pemahaman tentang alternatif yang tersedia untuk memecahkan masalah komputasi, termasuk perangkat keras, jaringan, bahasa pemrograman, dan kendala kinerja yang menyertai solusi tertentu. Ini juga membutuhkan pemahaman apa artinya suatu algoritma menjadi "benar" dalam arti bahwa itu sepenuhnya dan efisien memecahkan masalah yang dihadapi.

Gagasan yang menyertainya adalah desain struktur data tertentu yang memungkinkan suatu algoritma berjalan secara efisien. Pentingnyastruktur data berasal dari fakta bahwamemori utama komputer (tempat data disimpan) adalah linier, terdiri dari urutan sel memori yang diberi nomor urut 0, 1, 2,…. Jadi, struktur data yang paling sederhana adalaharray linier, di mana elemen yang berdekatan diberi nomor dengan bilangan bulat berurutan “indexes ” dan nilai elemen diakses oleh indeks uniknya. Array dapat digunakan, misalnya, untuk menyimpan daftar nama, dan metode yang efisien diperlukan untuk mencari dan mengambil nama tertentu dari array secara efisien. Sebagai contoh,menyortir daftar ke dalam urutan abjad memungkinkan apa yang disebut teknik pencarian biner untuk digunakan, di mana sisa daftar yang akan dicari pada setiap langkah dipotong menjadi dua. Teknik pencarian ini mirip dengan pencarian buku telepon untuk nama tertentu. Mengetahui bahwa buku tersebut dalam urutan abjad memungkinkan seseorang untuk dengan cepat membuka halaman yang dekat dengan halaman yang berisi nama yang diinginkan. Banyak algoritma telah dikembangkan untuk menyortir dan mencari daftar data secara efisien.

Baca: Sistem Komputer, Hardware, Software dan Brainware

Meskipun item data disimpan secara berurutan dalam memori, mereka dapat dihubungkan bersama oleh:pointer (pada dasarnya, alamat memori yang disimpan dengan item untuk menunjukkan di mana item atau item berikutnya dalam struktur ditemukan) sehingga data dapat diatur dengan cara yang mirip dengan yang akan diakses. Struktur paling sederhana seperti itu disebut daftar tertaut, di mana item yang disimpan tidak bersebelahan dapat diakses dalam urutan yang telah ditentukan sebelumnya dengan mengikuti petunjuk dari satu item dalam daftar ke item berikutnya. Daftar mungkin melingkar, dengan item terakhir menunjuk ke yang pertama, atau setiap elemen mungkin memiliki penunjuk di kedua arah untuk membentuk daftar tertaut ganda. Algoritma telah dikembangkan untuk memanipulasi daftar tersebut secara efisien dengan mencari, memasukkan, dan menghapus item.

Pointer juga menyediakan kemampuan untuk mengimplementasikan struktur data yang lebih kompleks. Sebuah grafik, misalnya, adalah satu set node (item) dan link (dikenal sebagai tepi) yang menghubungkan pasangan item. Grafik seperti itu mungkin mewakili sekumpulan kota dan jalan raya yang menghubungkannya, tata letak elemen sirkuit dan kabel penghubung pada chip memori , atau konfigurasi orang yang berinteraksi melalui jejaring sosial . Algoritme grafik tipikal mencakup strategi traversal grafik, seperti bagaimana mengikuti tautan dari simpul ke simpul (mungkin mencari simpul dengan properti tertentu) dengan cara bahwa setiap simpul dikunjungi hanya sekali. Masalah terkait adalah penentuan jalur terpendek antara dua node yang diberikan pada grafik arbitrer . (Lihat teori graf .) Masalah kepentingan praktis dalam algoritme jaringan, misalnya, adalah menentukan berapa banyak tautan "rusak" yang dapat ditoleransi sebelum komunikasi mulai gagal. Demikian pula, dalam integrasi skala sangat besar (Desain chip VLSI ) Penting untuk mengetahui apakah grafik yang mewakili suatu rangkaian adalah planar, yaitu, apakah dapat digambarkan dalam dua dimensi tanpa ada tautan yang bersilangan (kabel bersentuhan).

Itu(komputasi) kompleksitas suatu algoritma adalah ukuran jumlah sumber daya komputasi (waktu dan ruang) yang dikonsumsi oleh algoritma tertentu ketika dijalankan. Ilmuwan komputer menggunakan ukuran kompleksitas matematika yang memungkinkan mereka untuk memprediksi, sebelum menulis kode , seberapa cepat suatu algoritma akan berjalan dan berapa banyak memori yang dibutuhkan. Prediksi semacam itu adalah panduan penting bagi pemrogram yang mengimplementasikan dan memilih algoritme untuk aplikasi dunia nyata.

Kompleksitas komputasi adalah kontinum , di mana beberapa algoritma memerlukan waktu linier (yaitu, waktu yang dibutuhkan meningkat secara langsung dengan jumlah item atau node dalam daftar, grafik, atau jaringan yang sedang diproses), sedangkan yang lain memerlukan waktu kuadrat atau bahkan eksponensial untuk lengkap (yaitu, waktu yang dibutuhkan meningkat dengan jumlah item yang dikuadratkan atau dengan eksponensial dari angka itu). Di ujung terjauh dari kontinum ini terletak lautan keruh dari masalah-masalah yang sulit dipecahkan—masalah-masalah yang solusinya tidak dapat diimplementasikan secara efisien . Untuk masalah ini, ilmuwan komputer berusaha menemukan algoritma heuristik yang hampir dapat memecahkan masalah dan berjalan dalam waktu yang wajar.

Lebih jauh lagi adalah masalah algoritmik yang dapat dinyatakan tetapi tidak dapat dipecahkan; yaitu, seseorang dapat membuktikan bahwa tidak ada program yang dapat ditulis untuk menyelesaikan masalah. Contoh klasik dari masalah algoritmik yang tidak dapat dipecahkan adalahmasalah penghentian , yang menyatakan bahwa tidak ada program yang dapat ditulis yang dapat memprediksi apakah program lain berhenti atau tidak setelah sejumlah langkah yang terbatas. Ketidakterpecahan masalah penghentian memiliki bantalan praktis langsung pada pengembangan perangkat lunak . Misalnya, akan sembrono untuk mencoba mengembangkan perangkat lunak yang memprediksi apakah program lain yang sedang dikembangkan memiliki loop tak terbatas di dalamnya (walaupun memiliki alat seperti itu akan sangat bermanfaat).

Algoritma pemrograman adalah prosedur atau formula yang digunakan untuk memecahkan masalah. Ini didasarkan pada melakukan urutan tindakan tertentu di mana tindakan ini menjelaskan bagaimana melakukan sesuatu, dan komputer Anda akan melakukannya persis seperti itu setiap saat. Sebuah algoritma bekerja dengan mengikuti prosedur, terdiri dari input. Setelah mengikuti semua input, ia akan melihat hasilnya, juga dikenal sebagai output.  

Karakteristik algoritma:

Presisi – langkah-langkahnya dinyatakan dengan tepat.

Keunikan – hasil dari setiap langkah didefinisikan secara unik dan hanya bergantung pada input dan hasil dari langkah sebelumnya.

Finiteness – algoritma berhenti setelah sejumlah instruksi dieksekusi.

Input – algoritma menerima input.

Output – algoritma menghasilkan output.

Umum – algoritma berlaku untuk satu set input .

Ada tujuh jenis algoritma pemrograman:

  • Sort algorithms
  • Search algorithms
  • Hashing
  • Dynamic Programming
  • Exponential by squaring
  • String matching and parsing
  • Primality testing algorithms
Saat ini sedang ada algoritma terbaru yang sedang berkembang yaitu Dragon Algoritma, yang akan kita bahas pada topik berikutnya.

Keuntungan dari algoritma pemrograman meliputi:

  1. Representasi bertahap dari solusi untuk masalah yang diberikan, membuatnya mudah dipahami.
  2. Menggunakan prosedur yang pasti.
  3. Tidak tergantung pada bahasa pemrograman tertentu.
  4. Setiap langkah dalam suatu algoritma memiliki urutan logisnya sendiri, sehingga mudah untuk di-debug.

Posting Komentar untuk "Pengertian dan Contoh Algoritma terbaru"