Hai teman-teman! Pernahkah kalian berpikir bagaimana komputer bisa menemukan nama temanmu di daftar kontak yang panjang dengan cepat? Atau bagaimana toko online bisa mengurutkan produk dari harga termurah ke termahal hanya dalam sekejap? 🤔 Jawabannya adalah Algoritma Standar! Ini adalah "resep" atau langkah-langkah efisien yang sudah teruji dan sering digunakan oleh komputer untuk menyelesaikan tugas-tugas umum.
Hari ini kita akan kenalan dengan dua jenis algoritma standar yang sangat penting: Algoritma Pencarian dan Algoritma Pengurutan.
Apa itu Pencarian? Pencarian adalah proses menemukan lokasi atau keberadaan suatu data tertentu dalam sekumpulan data. Bayangkan mencari satu buku di perpustakaan atau mencari nama di daftar absen. Komputer juga melakukan hal ini, tapi dengan cara yang lebih sistematis.
1. Linear Search (Pencarian Lurus)
Konsep: Ini adalah cara paling dasar dan "brute-force" (langsung). Komputer akan memeriksa data satu per satu dari awal hingga akhir sampai data yang dicari ditemukan, atau sampai semua data diperiksa dan ternyata tidak ada.
Analogi: Seperti mencari selembar kertas di tumpukan dokumen yang berantakan. Kamu harus melihat setiap lembar dari atas sampai ketemu. 📄➡️📄➡️📄
Kapan Digunakan: Cocok untuk data yang jumlahnya sedikit atau data yang tidak terurut.
Langkah Sederhana:
Mulai dari data pertama.
Bandingkan data saat ini dengan data yang dicari.
Jika sama, berhenti (data ditemukan!).
Jika tidak sama, pindah ke data berikutnya dan ulangi langkah 2.
Jika sudah sampai akhir dan belum ketemu, berarti data tidak ada.
2. Binary Search (Pencarian Biner/Bagi Dua)
Konsep: Ini adalah cara yang jauh lebih cerdas dan cepat, TAPI syaratnya data harus sudah terurut (misalnya dari kecil ke besar atau sesuai abjad). Komputer akan langsung "menebak" di posisi tengah. Jika data yang dicari lebih kecil, ia akan membuang setengah bagian kanan dan mencari di setengah bagian kiri. Jika lebih besar, ia membuang setengah bagian kiri dan mencari di setengah bagian kanan. Proses "bagi dua" ini diulang terus sampai data ditemukan.
Analogi: Seperti mencari kata di kamus đź“– atau nama di buku telepon. Kamu tidak akan mulai dari halaman pertama, kan? Kamu langsung buka bagian tengah, lalu memutuskan apakah harus mencari ke depan atau ke belakang, membagi area pencarian menjadi lebih kecil.
Kapan Digunakan: Sangat efisien untuk data dalam jumlah besar, asalkan datanya sudah terurut.
Langkah Sederhana:
Tentukan batas awal dan batas akhir data.
Cari posisi tengah.
Bandingkan data di tengah dengan data yang dicari.
Jika sama, berhenti (data ditemukan!).
Jika data yang dicari lebih kecil, ulangi pencarian hanya di bagian kiri (ubah batas akhir).
Jika data yang dicari lebih besar, ulangi pencarian hanya di bagian kanan (ubah batas awal).
Jika area pencarian habis dan belum ketemu, berarti data tidak ada.
Perbandingan Singkat: Linear Search itu simpel tapi bisa lambat untuk data banyak. Binary Search itu super cepat untuk data banyak, tapi butuh data yang sudah rapi (terurut).
Simulasi Pencarian Angka
Daftar Angka (Sudah Terurut): [ 3, 7, 11, 15, 19, 23, 28, 31, 35, 40 ] (Ada 10 angka dalam daftar ini)
Target Angka yang Dicari: 28
Logika: Periksa satu per satu dari awal.
Langkah 1: Bandingkan 3 dengan 28. Tidak sama. Lanjut.
Langkah 2: Bandingkan 7 dengan 28. Tidak sama. Lanjut.
Langkah 3: Bandingkan 11 dengan 28. Tidak sama. Lanjut.
Langkah 4: Bandingkan 15 dengan 28. Tidak sama. Lanjut.
Langkah 5: Bandingkan 19 dengan 28. Tidak sama. Lanjut.
Langkah 6: Bandingkan 23 dengan 28. Tidak sama. Lanjut.
Langkah 7: Bandingkan 28 dengan 28. Sama! Data ditemukan. âś…
Hasil Linear Search: Angka 28 ditemukan pada langkah ke-7.
Logika: Tebak di tengah, lalu buang setengah bagian yang tidak relevan. Ingat, data harus terurut!
Langkah 1:
Area pencarian: [ 3, 7, 11, 15, **19**, 23, 28, 31, 35, 40 ] (Indeks 0 sampai 9)
Tengah: Indeks (0 + 9) / 2 = 4.5, dibulatkan ke bawah jadi indeks 4. Angkanya 19.
Bandingkan: 28 > 19. Target ada di sebelah kanan. Buang bagian kiri.
Langkah 2:
Area pencarian baru: [ 23, 28, **31**, 35, 40 ] (Indeks 5 sampai 9)
Tengah: Indeks (5 + 9) / 2 = 7. Angkanya 31.
Bandingkan: 28 < 31. Target ada di sebelah kiri. Buang bagian kanan.
Langkah 3:
Area pencarian baru: [ 23, **28** ] (Indeks 5 sampai 6)
Tengah: Indeks (5 + 6) / 2 = 5.5, dibulatkan ke bawah jadi indeks 5. Angkanya 23.
Bandingkan: 28 > 23. Target ada di sebelah kanan. Buang bagian kiri.
Langkah 4:
Area pencarian baru: [ **28** ] (Indeks 6 sampai 6)
Tengah: Indeks (6 + 6) / 2 = 6. Angkanya 28.
Bandingkan: 28 == 28. Sama! Data ditemukan. âś…
Hasil Binary Search: Angka 28 ditemukan pada langkah ke-4.
Pada daftar 10 angka ini:
Linear Search membutuhkan 7 langkah perbandingan.
Binary Search hanya membutuhkan 4 langkah perbandingan.
Terlihat jelas bahwa Binary Search jauh lebih efisien (lebih sedikit langkah) daripada Linear Search, terutama karena datanya sudah terurut. Bayangkan jika datanya ada jutaan, perbedaan kecepatannya akan semakin drastis! 🚀
Sorting adalah proses pengurutan data atau elemen-elemen dalam suatu data dengan teratur. Sorting dapat dilakukan secara ascending (urut naik) atau descending (urut turun).
Sorting memiliki beberapa tujuan, yaitu:
Mudah untuk dianalisis. Data yang telah diurutkan lebih mudah untuk dianalisis, misalnya untuk mencari data tertentu atau untuk menghitung nilai rata-rata.
Meningkatkan efisiensi. Data yang telah diurutkan dapat diproses lebih efisien, misalnya untuk pencarian data atau untuk pembandingan data.
Meningkatkan efektivitas. Data yang telah diurutkan dapat digunakan secara lebih efektif, misalnya untuk penyajian data atau untuk pengambilan keputusan.
AscendingÂ
Dari Kecil ke Besar     Â
Dari Ringan ke Berat Â
Dari Rendah ke Tinggi
Dari Dekat ke Jauh
dll
Descending
Dari Besar ke Kecil
Dari Berat ke Ringan
Dari Jauh ke Dekat
dll
Sorting dapat dilakukan dengan berbagai cara, yaitu:
Bubble sort adalah algoritma sorting yang sederhana dan mudah untuk diimplementasikan. Algoritma ini bekerja dengan cara membandingkan elemen-elemen data secara berpasangan dan menukar elemen-elemen tersebut jika elemen yang pertama lebih besar dari elemen yang kedua
Cara Kerja:
Membandingkan data yang berdekatan lalu menukarnya sesuai urutan
Proses membandingkan angka akan terus dilakukan dengan pertukaran hingga urutuannya benar.
Cara Kerja
Membandingkan elemen data yang berdekatan lalu menukarnya sesuai dengan urutan. Angka yang lebih kecil boleh disisipkan diantara angak lain sesuai urutan yang benar
Bedanya dengan Bubble sort adalah dalam insertion Sort angka yang dibandingkan boleh dipindahkan (meloncat) melewati beberapa angka lain. Seperti dalam ilustrasi baris ke 6, angka 1 disisipkan (berpindah) jauh ke kiri disamping angka 2.Â
begitu juga pada ilustrasi baris 7, angka 5 disisipkan antara angka 4 dan 10
Quick sort adalah algoritma sorting yang bekerja dengan cara memilih elemen pivot, kemudian mempartisi (membagi) data menjadi dua bagian, satu bagian berisi elemen yang lebih kecil dari pivot dan bagian lainnya berisi elemen yang lebih besar dari pivot. Algoritma ini bekerja dengan cara mengulangi proses pemilihan pivot, pempartisi data, dan pengurutan data pada bagian yang lebih kecil.
Cara Kerja
Membagi daftar (list) menjadi dua bagian menggunakan PivotÂ
Merge sort adalah algoritma sorting yang bekerja dengan cara membagi data menjadi dua bagian yang lebih kecil, kemudian mengurutkan kedua bagian tersebut secara terpisah, dan menggabungkan kedua bagian yang sudah diurutkan tersebut menjadi satu data yang terurut.
Cara Kerja
Bagi data menjadi beberapa bagian kecil
Bandingkan tiap angka dalam elemen untuk diurutkan
Bandingkan tiap angka-angka dalam elemen dengan elemen lainnya untuk diurutkan
Selection sort adalah algoritma sorting yang bekerja dengan cara memilih elemen terkecil atau terbesar dari data dan menempatkan elemen tersebut di posisi yang tepat. Algoritma ini bekerja dengan cara mengulangi proses pemilihan elemen terkecil atau terbesar dan penempatan elemen tersebut di posisi yang tepat.
Cara Kerja
1.Cari bilangan terkecil atau terbesar
2.Letakkan ke daftar baru yang terurut