Karakteristik: Merupakan salah satu metode pengurutan tertua dan paling sederhana dalam dunia pemrograman
mengurutkan lima nama secara acak (Januar, Febri, Agus, Novi, Desi) Secara Ascending (dari A ke Z):
ALGORITMA PENGURURTAN DATA
Metode pengurutan data yang bekerja dengan membandingkan dua elemen yang berurutan dan menukarnya jika urutannya tidak sesuai. misal: dari rendah ke tinggi. Merupakan salah satu metode pengurutan tertua dan paling sederhana dalam dunia pemrograman.
Mekanisme Kerja
contoh ini memebrikan mengurutkan lima nama secara acak (Januar, Febri, Agus, Novi, Desi) secara Ascending (dari A ke Z):
1. Perbandingan: Nama dibandingkan satu persatu berdasarkan huruf awalnya.
2. Penukaran: Jika huruf awal nama pertama lebih tinggi abjadnya dari nama kedua, maka posisi mereka ditukar.
3. Iterasi: Proses ini dilakukan berulang kali hingga elemen dengan nilai terbesar "mengapung" ke posisi paling belakang. Setelah posisi benar, elemen tersebut "dikunci" dan proses diulang untuk elemen sisanya.
Metode ini membantu kita memahami bagaimana logika dasar komputer bekerja dalam mengatur sekumpulan informasi yang acak menjadi teratur.
TEKNIK SELECTION SORT
Kekurangan teknik sebelumnya yaitu bubble sort yang dinilai kurang efisien karena membandingkan data satu per satu dari awal hingga akhir dan memakan waktu lama untuk jumlah data yang besar.
sementara selection sort itu Memilih elemen dengan nilai paling rendah (atau paling tinggi) dan menukarnya dengan elemen pada posisi yang sedang diproses (indeks ke-i)
Cara Kerja:
1. Mencari nilai terkecil dari seluruh daya yang belum terururt
2. menandai nilai tersebut sebagai nilai terkecil sementara selama pemindaian
3. setelah pemindaian satu putaran selesai, nilai terkecil yang ditemukan ditukar ke posisi paling kiri yang tersedia.
4. Posisi tersebut dikunci, dan proses pencarian nilai terkecil berikutnya diulang untuk sisa datang yang belum terkunci.
Contoh Ilustrasi
[4, 0 ,5, 3, 2]
1. pada iterasi pertama, angka 0 ditemukan sebagai yang terkecil dan ditukar ke posisi pertama.
2. pada iterasi ke 2, dari sisa data, angka 2 ditemukan terkecil dan ditukar ke posisi ke 2.
3. Proses berlanjut hingga seluruh deretan angka menjadi terurut (0, 2, 3, 4, 5)
Implementasi
Deklarasi: menyiapkan variabel untuk menampung data (array) dan vvariabel bantu untuk peroses penukaran.
Logika: Menggunakan perulangan untuk memindai data dan mencari nilai minimum, kemudian melakukan penukaran posisi setelah nilai minimum ditemukan.
Teknik ini lebih terarah dibandingkan Bubble Sort karena jumlah penukarannya lebih sedikit, meskipun jumlah perbandingannya masih relatif banyak.
TEKNIK INSERTION SORT
teknik ini membagi dua bagian, bagian yang sudah terurut (DB) dan bagian yang belum terurut (DTB). Algoritma ini mengambil elemen satu per satu dari bagian yang belum terurut (DTB) dan menyisipkannya ke posisi yang tepat di dalam bagian yang sudah terurut (DB). Proses ini dilakukan berulang kali sampai semua data di DTB habis.
Contoh Ilustrasi
[4, 0, 5, 3, 2,]
1. Iterasi 1: Angka 4 masuk ke DB karena DB masih kosong.
2. Iterasi 2: Angka 0 dibandingkan dengan 4. karena 0 lebih kecil, 4 digeser ke kanan dan 0 disisipkan ke kiri 4.
3. Iterasi 3: Angka 5 dibandingkan dengan 4. Karena 5 lebih besar, 5 diletakkan di disebelah kanan 4.
4. Iterasi 4: Angka 3 dibandinghkan dengan 5 dan 4. Karena lebih kecil dari keduanya tapi lebih besar dari 0, angka 3 disisipkan di antara 0 dan 4.
5. Interasi 5: Angka 2 dibandingkan terus ke arah kiri hingga menemukan posisi yang tepatm, yaitu di antara 0 dan 3.
Implementasi
Deklarasi: Menyiapkan variabel array untuk data dan variabel pendukung lainya.
Logika Program: Menggunakan perulangan untuk mengambil data dari DTB dan perulangan di dalamnya untuk mencari posisi sisipan yang tepat di DB.
ALGORITMA PENCARIAN DATA
Algoritma pencarian data adalah metode atau langkah-langkah sistematis untuk menemukan data tertentu di dalam sebuah kumpulan data. contoh nyatanya adalah mesin pencarian Google yang menggunakan algoritma canggih untuk menyaring data yang sangat besar dengan cepat dan tepat.
1. Pencarian Skuensial
metode ini memeriksa data satu persatu dari paling kiri (awal) hingga paling kanan (akhir) contohnya : Liner Search
kekurangan: sangat ditak efisien jika data berjumlah besar dan data yang dicari berada di bagian akhir
2. Pencarian Interval
syarat utama pencarian ini adalah data sudah terurut sebelumnya.
contoh binary search dan jump search.
Metode pencarian yg di bahas:
A. Pencarian binner
cara kerjanya membagi rentang data menjadi dua bagian secara berulang, Nilai tengah dicari, lalu dibandingkan dengan nilai yang dicari. jika nilai yang dicari lebih besar, pencarian belajanjut ke interval kanan, jika lebih kecil ke interval kiri. Hal ini dilakukan sampai data ditemukan.
B. Pencarian Lompat
cara kerjanya melompati elemen-lemen data dengan jarak tertentu
proses 1. Tentukan besar lompatan (biasanya akar kuadrat dari jumlah data).
2. Lakukan lompatan antar pijakan. jika nilai dipijakan sudah melebhi nilai yang dicari, algoritma akan kembali ke pijakan sebelumnya.
3. Lakukan pencarian secara linier di dalam rentang tersebut sampai data ditemukan.
Kesimpulannya adalah pemilihan algoritma pencarian sangat bergantung pada kondisi data (apakah sudah terurut atau belum) dan efisiensi waktu yang dibutuhkan.
ALGORITMA REKURSIF
Rekursif adalah suatu proses atau fungsi yang memanggil dirinya sendiri.
dalam pemrograman, algoritma rekursif memecah masalah besar menjadi sub-masalah yang lebih kecil dengan tipe yang sama, lalu memanggil fungsi tersebut berulang kali hingga mencapai kondisi dasar (stop)
Studi kasus: Tower Of Hanoi
Permaninan ini melibatkan pemindahan tumpukan cakram dari satu tiang ke tiang lain dengan aturan tertentu.
1. Hanya satu cakram yang boleh dipindahkan dalam satu waktu.
2. Cakram yang dipindahkan harus diambil dari posisi teratas.
3. Cakram yang lebih besar tidak boleh diletakkan di atas cakram yang lebih kecil.
Logika Rekursif dalam Tower Of Hanoi
bahwa untuk memindahkan cakram, kita bisa menyederhanakan langkahnya dengan menganggap tumpukan tersebut berisi n - 1 cakram yang juga memiliki proses penyelesaiannya sendiri di dalamnya.
contohnya untuk memindahkan 4 cakram, kita perlu menyelesaikan pemindahan 3 cakram terlebih dahulu, yang di dalamnya juga melibatkan pemindahan 2 cakram, dan seterusnya.
Implementasi Kode
- proses ini dapat dituliskan dalam bahasa pemrograman (sperti java) dengan membuat fungsi yang menerima parameter jumlah cakram, tiang asal, tiang bantu, dan tiang tujuan.
- Fungsi tersebut akan terus memanggil dirinya sendiri dengan jumlah cakram yang berkurang ( n -1 ) sampai tumpukan habis.
Algoritma rekusif sangat berguna untuk menyelesaikan masalah yang di miliki pola berulang dan struktur yang serupa di setiap tingkatannya.
Tidak ada komentar:
Posting Komentar