Hampir semua aktivitas pemrograman itu tidak bisa lepas dari yang namanya algoritma, yang sudah menjadi dasar dalam membuat suatu program. Algoritma sendiri itu adalah suatu urutan atau alur yang dipakai dalam perhitungan atau pemecahan masalah secara sistematis. Kalau dalam aktivitas pemrograman, algoritma seringkali dianggap sebagai logika dalam penentuan program yang akan dibuat.
Tapi apa hubungannya sebenarnya dari algoritma dengan pemrograman? Algoritma dalam pemrograman ini bisa memberikan kita berbagai macam keuntungan. Yang pertama, algoritma ini dapat mengatasi permasalahan rumit dalam program yang kemungkinan besar melibatkan perhitungan tingkat tinggi. Karena menggunakan perhitungan, seringkali program yang dibuat dibuat itu tidak berjalan semestinya karena ada kesalahan. Selain itu, algoritma pemrograman juga mampu menyederhanakan program dari program yang besar bisa menjadi program yang lebih sederhana, sehingga penggunaannya lebih efektif.
dan efisien lagi. Fungsi dari algoritma ini tidak hanya sekali pakai, tapi dapat digunakan secara berulang-ulang. Hal ini memberikan kita keuntungan dalam meminimalisir penulisan program yang berulang-ulang.
Jadi kita tidak perlu lagi repot-repot menuliskan program yang sama di lain waktu. Dalam pembuatan program, pastinya kita akan menjumpai beberapa kesalahan. Tentunya hal itu sangatlah wajar ya teman-teman ya. Dengan menerapkan fungsi algoritma, maka pencarian kesalahan tadi dapat lebih mudah, serta dapat diperbaiki dengan cepat karena programnya itu sudah tertata dan tersusun dengan rapi. Nah, setelah tadi kita membahas definisi dan fungsi dari algoritma, sekarang kita lanjut ke macam-macam algoritma yang terdiri dari dua jenis.
Ada algoritma searching, ya simpelnya searching itu adalah sebuah pencarian dalam sekumpulan data. Proses searching ini bisa dilakukan dengan dua cara, ada yang disebut dengan sequential search dan juga binary search. Sequential search merupakan proses pencarian data dengan metode pencarian langsung. Ini kita lakukan dengan cara mencocokkan data yang akan dicari dengan semua data yang ada di dalam kelompok datanya.
Proses pencocokan data dilakukan secara berurutan. Satu demi satu, dimulai dari data ke satu hingga data yang ada di urutan terakhir. Sedangkan binary search adalah sebuah teknik untuk menemukan nilai tertentu di dalam sebuah range.
ray yang linear dengan menghilangkan setengah data pada setiap langkahnya binary search atau pencarian binar ini dilakukan dengan mencari nilai tengah melakukan sebuah perbandingan untuk menentukan Apakah nilai yang kita cari itu ada sebelum atau sesudah nilai tengah tadi kemudian kita mencari setengah sisanya lagi dengan cara yang sama Nah kalau tadi searching jenis algoritma berikutnya adalah sorting atau pengurutan data ya data data diurutkan dari yang terkecil sampai yang paling besar ataupun sebaliknya tujuannya supaya data tersebut jadi tersusun dengan rapi terurut dan juga teratur Nah untuk sorting ini ada lima jenis teman-teman yang pertama ada yang disebut dengan bubble short bubble short adalah pengurutan data yang dilakukan dengan membandingkan antara data ke N dengan data ke N plus satu atau antara data ke N dengan data ke N minus satu kemudian jika datanya lebih kecil atau lebih besar, akan dilakukan pertukaran. Pada setiap iterasinya terjadi beberapa kali pertukaran atau bahkan tidak sama sekali. Jumlah pengulangan ditentukan oleh banyaknya data atau disebut juga dengan N.
Tipe sort berikutnya adalah selection sort. Selection sort merupakan sebuah algoritma pengurutan yang secara berulang mencari data yang belum terurut dan mencari paling sedikit satu untuk kemudian dimasukkan ke dalam lokasi. lokasi terakhir. Lalu, sorting ketiga, ada yang disebut dengan insertion sort. Insertion sort dilakukan dengan cara menyisipkan sebuah angka ke posisi yang kita inginkan.
Angka yang disisipkan itu sudah sesuai dengan urutan iterasinya. Dan jumlah iterasi ditentukan oleh banyaknya data atau juga N. Lalu berikutnya ada yang namanya quick sort.
Jadi quick sort ini adalah jenis sorting yang akan mengambil salah satu elemen secara acak, lalu menyisipkan menyimpan semua elemen yang lebih kecil di sebelah kirinya, dan semua elemen yang lebih besar di sebelah kanannya. Hal ini dilakukan secara rekursif terhadap elemen di sebelah kiri dan kanan, sampai semua elemennya sudah selesai terurut. Algoritma ini termasuk algoritma yang cukup baik dan juga cepat. Hal penting dalam algoritma ini adalah pemilihan data pusatnya harus baik, sehingga tidak memperlambat proses. saya sorting secara keseluruhan dan tipe sorting terakhir ada yang disebut dengan exchange sort jadi exchange sort ini hampir sama dengan bubble sort tapi bedanya itu di bagaimana kita membandingkan data antar elemennya di exchange sort ini membandingkan satu elemen dengan elemen lainnya di dalam array dan melakukan pertukaran elemen jika diperlukan saja jadi akan ada elemen yang selalu menjadi elemen pusat sedangkan di bagian Di bubble sort, itu akan membandingkan elemen pertama atau terakhir dengan elemen sebelum atau sesudahnya saja.
Kemudian elemen sebelum dan sesudahnya itu yang akan menjadi pusat untuk dibandingkan dengan elemen sebelumnya atau sesudahnya lagi. Setiap programmer yang baik akan menggunakan cara yang paling efektif dan efisien dalam menyelesaikan suatu permasalahan. Dan untuk bisa melakukan hal tersebut, kita harus bisa meminimalisir kompleksitas.
dari algoritma yang kita gunakan. Kompleksitas suatu algoritma itu dibagi menjadi dua. Ada yang disebut dengan time complexity, dan yang kedua ada yang disebut dengan space complexity.
Time complexity adalah seberapa lama waktu yang diperlukan untuk menjalankan sebuah algoritma, sedangkan space complexity adalah seberapa besar memori yang kita gunakan untuk menjalankan sebuah algoritma. Nah, selain dua itu, sebetulnya ada satu istilah lagi yang disebut dengan time complexity. Time Complexity Analysis, yang merupakan suatu cara sederhana untuk mengetahui berapa lama waktu yang dibutuhkan untuk menjalankan suatu algoritma dengan input tertentu.
Biasanya ini lebih dikenal dengan sebutan Big O Notation, yang digunakan untuk mengukur tingkat kompleksitas suatu algoritma. Big O Notation ini adalah sebuah cara untuk mengkonversi keseluruhan langkah-langkah pada suatu algoritma ke dalam bentuk aljabar, yaitu dengan dengan menghiraukan konstanta yang lebih kecil dan koefisien yang tidak berdampak besar terhadap keseluruhannya. Contohnya teman-teman bisa lihat di gambar seperti ini. Jadi sederhananya, semua contoh ini menjelaskan bahwa kita hanya akan melihat faktor yang memiliki dampak paling besar terhadap nilai yang dihasilkan oleh algoritma tersebut.
Sebagai programmer, kita seringkali dihadapkan dengan dengan adanya beberapa solusi untuk sebuah permasalahan. Dan biasanya kita dibingungkan dengan pertanyaan, mana sih solusi yang lebih efisien? Nah, dengan memahami Big O Notation, kita akan lebih mudah dalam melihat mana algoritma yang lebih efisien. yang lebih efisien yang bisa kita gunakan untuk menyelesaikan permasalahan yang sedang kita hadapi.
Oke, jadi itu tadi penjelasan mengenai algoritma yang ada di dalam pemrograman. Kalau misalnya teman-teman ada yang mau ditanyakan, silakan langsung aja tulis di kolom komentar. Jangan lupa like dan subscribe juga. Sampai ketemu lagi di video berikutnya.