Ini Dia 10 Algoritma yang Harus Dipelajari Seorang Developer!
| (Source: https://mbcommunication.co.id/wp-content/uploads/2021/03/algoritma.jpg) |
Algoritma adalah pembelajaran dasar yang wajib dikuasai oleh seorang programmer atau developer. Mengapa? Hal ini karena setiap pemrograman yang dilakukan oleh seorang developer pastilah akan menggunakan pemrosesan logika algoritma, apapun bahasa yang digunakan oleh mereka. Jadi! Untuk teman-teman yang berminat banget nih sama ilmu coding-an, kalian harus mempelajari 10 algoritma ini lho!
Pencarian Biner (Binary Search)
Cara ini adalah cara yang sesuai namanya, dilakukan dengan pencarian bilangan biner. Pencarian biner terdiri dari mengambil array yang diurutkan, dan secara iteratif membagi array menjadi dua dan membandingkan elemen yang kalian cari dengan setiap setengahnya, hingga kalian menemukan elemen tersebut. Lebih tepatnya sih, pencarian biner ini menebak apakah data yang dicari berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang ada ditengah. Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan.
Pencarian Biner terbagi menjadi 2, yaitu:
- Secara Iteratif
- Secara Rekursif
Berikut adalah contoh ilustrasi pencarian angka 23 dari data sample pada level 0:
| (Source: https://media.geeksforgeeks.org/wp-content/uploads/20220309171621/BinarySearch.png) |
Selection, Bubble, and Insertion Sort
Quick Sort dan Merge Sort
Sama seperti tipe algoritma di atas, algoritma sorti sangat bagus karena membuat kita membiasakan diri dengan array, tetapi Quick Sort dan Merge Sort cukup efisien untuk digunakan dalam aplikasi yang rumit. Dia membuat kita menjadi 'nyaman' dalam menerapkan algoritma penyortiran ini.
Quick Sort merupakan algoritma untuk mengurutkan data dengan pendekatan rekursif. Proses pengurutan dilakukan dengan memecah kumpulan data menjadi dua bagian berdasarkan nilai pivot yang dipilih. Pada prinsipnya nilai pivot yang dipilih ini akan ditempatkan pada posisinya disetiap akhir proses partisi. Setelah proses partisi selesai dan menempatkan pivot pada posisinya yang tepat maka proses pengurutan dilanjutkan secara rekursif untuk mengurutkan data bagian kiri dari pivot dan bagian kanan dari pivot tersebut.
Merge Sort adalah algoritma pengurutan menggunakan divide conquer yaitu dengan cara memecah kemudian menyelesaikan setiap bagian- bagian pecahannya tadi, kemudian digabungkan kembali.
Huffman Coding
Huffman coding adalah dasar dari kompresi teks modern. Ia bekerja dengan mempertimbangkan seberapa sering karakter yang berbeda muncul dalam sebuah teks, dan mengaturnya dalam sebuah pohon berdasarkan frekuensi ini. Huffman coding merupakan sebuah kode prefiks yang sudah teroptimasi yang biasanya digunakan pada kompresi data lossless.
Algoritma ini menggunakan metode khusus untuk memilih perwakilan dari masing-masing simbol, yang akhirnya menghasilkan sebuah kode prefiks. Algoritma ini merupakan metode yang sangat terkenal untuk membuat kode prefiks sehingga “Huffman Code” digunakan secara luas sebagai sinonim dari “kode prefiks” bahkan untuk sesuatu skrip yang tidak dihasilkan dari perhitungan Huffman Coding. Algoritma ini sering digunakan untuk melakukan kompresi data sehingga ukuran data yang dihasilkan menjadi lebih rendah dari ukuran sebenarnya.
Meluangkan waktu untuk bekerja dengan Huffman coding adalah cara yang bagus untuk merasa 'nyaman' dengan representasi data dan traversal pohon, yang merupakan dua masalah terpenting yang harus dapat ditangani oleh para ilmuwan komputer.
Contoh ilustrasi huffman coding:
Breadth First Search
Breadth first search adalah salah satu algoritma yang digunakan untuk pencarian jalur. Algoritma ini adalah salah satu algoritma pencarian jalur sederhana, dimana pencarian dimulai dari titik awal, kemudian dilanjutkan ke semua cabang titik tersebut secara terurut. Jika titik tujuan belum ditemukan, maka perhitungan akan diulang lagi ke masing-masing titik cabang dari masing-masing titik, sampai titik tujuan tersebut ditemukan.
Breadth first search bekerja dengan menelusuri pohon level demi level hingga node target ditemukan. Karena benar-benar melewati setiap level, maka bisa dijamin akan menemukan solusi.
Depth first Search adalah algoritma rekursif yang dipakai untuk mencari semua simpul dari suatu graf atau tree. Traversal berarti mengunjungi semua node dari sebuah graf.Depth First Search merupakan salah satu algoritma yang paling umum digunakan untuk melintasi atau melakukan pencarian pada struktur data graph atau tree dengan menggunakan teknik backtracking.
Gradien descent atau penurunan gradien adalah algoritma pengoptimalan untuk menemukan fungsi minimum yang bisa kalian tentukan secara mudah melalui penurunan sebuah function.
Gradient Descent adalah metode prosedur optimasi fungsi menggunakan kalkulus. Dalam konteks regresi dan machine learning, ini artinya menemukan nilai spesifik yang meminimalkan kesalahan dalam algoritme prediksi kalian. Meskipun tentu saja lebih banyak melibatkan secara matematis dari algoritma ini, jika kalian bekerja secara signifikan dengan data dan prediksi, maka memahami cara kerja penurunan gradien sangatlah penting.
Contoh ilustrasi gradient descent:
Algoritme Dijkstra, (sesuai penemunya Edsger Dijkstra), adalah sebuah algoritma yang dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah graf berarah (directed graph).
Algoritma Dijkstra bekerja dengan membuat jalur ke satu simpul optimal pada setiap langkah. Jadi pada langkah ke n, setidaknya ada n node yang sudah kita tahu jalur terpendek. Ini adalah fondasi dari sebagian besar pekerjaan yang dilakukan dalam pencarian jalur dan menemukan dirinya digunakan dalam segala hal mulai dari kecerdasan buatan hingga desain game.
Contoh ilustrasi algoritma djikstra:
Diffie-Hellman Key Exchange adalah pengantar yang bagus tentang bagaimana kriptografi cenderung bekerja. Lebih khusus lagi, Pertukaran Kunci Diffie-Hellman bekerja dengan menggabungkan kunci publik dan pribadi (Yang secara efektif merupakan angka panjang) untuk mengenkripsi informasi ketika sedang ditransfer antara pihak yang berbeda.
Bahkan walaupun kalian tidak bekerja di bidang keamanan siber, memiliki pemahaman yang baik tentang enkripsi dan komunikasi yang aman sangat penting sebagai seorang developer. Selain itu, meskipun Diffie-Helman jauh dari algoritma terbaik, tapi ia sangat mudah diterapkan dan cukup mirip dengan kebanyakan metode komunikasi enkripsi lainnya.
Contoh ilustrasi Diffie-Hellman Key Exchange:
Komentar
Posting Komentar