Anda mengetuk layar. Konten muncul. Anda tidak melihat hal itu terjadi, namun seseorang, atau sesuatu, memutuskan apa yang ingin ditunjukkan kepada Anda.
Algoritma adalah arsitek internet modern yang tidak terlihat. Mereka menentukan peringkat pencarian, menyusun feed sosial, dan mengarahkan lalu lintas Anda. Namun apa itu algoritme di dunia nyata, di luar jargon teknologi?
Secara sederhana, algoritma adalah resep langkah demi langkah. Ini adalah serangkaian instruksi untuk memecahkan masalah atau menyelesaikan tugas. Ini bisa berupa hal mendasar seperti menambahkan dua angka atau serumit jaringan saraf yang mengenali wajah Anda. Aturan-aturan ini adalah tulang punggung setiap aplikasi perangkat lunak, memastikan tugas berjalan secara efisien. Mereka adalah “bagaimana” di balik “apa”.
Untuk memahami mengapa hal ini penting, kita harus melihat cara kerja komputer sebenarnya.
Logika Kode Langkah-demi-Langkah
Komputer patuh tetapi literal. Mereka tidak menebak. Jika Anda ingin komputer melakukan sesuatu, Anda harus menulis sebuah program yang memberi tahu komputer apa yang harus dilakukan, langkah demi langkah. Komputer menjalankan instruksi ini secara mekanis.
Saat Anda menulis program itu, Anda harus memilih metodenya. Metode tersebut adalah algoritma. Ini adalah teknik yang digunakan untuk menyelesaikan pekerjaan.
Pertimbangkan ini: seorang teman tiba di bandara. Mereka harus sampai ke rumah Anda. Anda memiliki empat algoritme berbeda untuk diikuti. Masing-masing membawa mereka ke tujuan yang sama, namun jalannya benar-benar berbeda.
Algoritma Taksi
* Pergi ke tempat taksi.
* Naik taksi.
* Berikan alamat Anda kepada pengemudi.
Algoritma Panggil-Saya
* Hubungi ponsel Anda saat pesawat mendarat.
* Temui klaim bagasi luar.
Algoritma Sewa Mobil
* Naik shuttle ke konter persewaan.
* Sewa kendaraan.
* Berkendara menggunakan GPS ke rumah Anda.
Algoritma Bus
* Naik bus nomor 70 di luar pengambilan bagasi.
* Transfer ke bus 14 di Jalan Utama.
* Turun di Elm Street.
* Berjalanlah dua blok ke utara.
Keempatnya berfungsi. Tidak ada yang “salah”. Namun keduanya sangat berbeda dalam hal biaya dan waktu. Taksinya cepat tapi mahal. Busnya murah tapi lambat. Anda memilih algoritma berdasarkan keadaan.
Dalam perangkat lunak, kami melakukan hal yang sama. Kami memilih teknik yang sesuai dengan data, waktu, dan anggaran.
Mengapa Penyortiran Lebih Penting dari yang Anda Pikirkan
Dalam pemrograman, seringkali ada banyak cara untuk menyelesaikan satu masalah. Setiap cara memiliki trade-off. Hal ini paling jelas terlihat dalam penyortiran.
Komputer menghabiskan banyak waktu untuk menyortir daftar. Nama. Harga. Tanggal. Hasil pencarian. Jika penyortiran tidak efisien, seluruh sistem akan melambat.
Para peneliti telah mempelajari algoritma pengurutan selama beberapa dekade. Berikut lima pendekatan umum:
- Urutkan tempat sampah
- Gabungkan semacam
- Urutan gelembung
- Urutan cangkang
- Urutan cepat
Yang mana yang Anda gunakan?
Jika Anda memiliki satu juta bilangan bulat antara 1 dan 10, bin sort adalah pemenangnya. Ini cepat dan sederhana untuk rentang kecil. Jika Anda memiliki sejuta judul buku, quicksort mungkin merupakan pilihan terbaik. Ini menangani data tidak terstruktur dengan lebih baik. Mengetahui kekuatan dan kelemahan memungkinkan pengembang memilih alat yang tepat. Pilih yang salah, dan aplikasi Anda terasa lamban.
Jenis Algoritma Utama
Algoritma bukan hanya tentang pengurutan. Mereka terbagi dalam kategori besar berdasarkan apa yang ingin mereka capai. Dari enkripsi hingga pembelajaran mesin, jenis algoritme menentukan cara data diproses.
Algoritma Pencarian
Ini dirancang untuk mengambil informasi dari struktur data. Pikirkan pencarian linier (memeriksa setiap item) atau pencarian biner (memotong daftar menjadi dua berulang kali). Mesin pencari dan kueri basis data sangat bergantung pada hal ini untuk menemukan apa yang Anda ketik dalam hitungan milidetik.
Algoritma Pemrograman Dinamis
Pendekatan ini mengoptimalkan permasalahan yang kompleks dengan memecahnya menjadi submasalah yang lebih sederhana. Ini menghindari penghitungan ulang data yang sama berulang kali. Contohnya termasuk menghasilkan deret Fibonacci, memecahkan masalah knapsack (memaksimalkan nilai dalam kantong terbatas), atau menemukan jalur terpendek dalam grafik, seperti dengan algoritma Bellman-Ford atau Floyd-Warshall.
Algoritma Serakah
Algoritme serakah mengambil opsi lokal terbaik di setiap langkah. Mereka tidak melihat gambaran besarnya. Mereka berasumsi bahwa pilihan terbaik yang segera akan menghasilkan hasil terbaik secara keseluruhan. Ini bekerja dengan baik untuk masalah seperti menemukan pohon rentang minimum dalam jaringan (algoritma Kruskal dan Prim). Namun terkadang, sikap serakah membawa Anda ke jalan buntu.
Algoritma Mundur
Digunakan untuk memenuhi batasan, algoritme ini membangun kandidat selangkah demi selangkah. Jika seorang kandidat gagal dalam pemeriksaan, mereka “mundur” dan mencoba jalur lain. Pemecah Sudoku dan soal N-Queens adalah contoh klasik. Ini pada dasarnya adalah trial and error dengan mengingat kesalahan masa lalu.
Algoritma Pembelajaran Mesin
Hal ini memungkinkan komputer untuk belajar dari data dibandingkan mengikuti aturan yang sudah ditentukan sebelumnya. Mereka memprediksi hasil atau membuat keputusan. Mereka dibagi lagi menjadi pembelajaran yang diawasi (dilatih pada data berlabel), pembelajaran tanpa pengawasan (menemukan pola dalam data yang tidak berlabel), pembelajaran penguatan (belajar melalui penghargaan/hukuman), dan pembelajaran mendalam (menggunakan jaringan saraf).
Algoritma Acak
Terkadang, determinisme terlalu lambat. Algoritme acak memperkenalkan keacakan ke dalam logikanya. Mereka menggunakan pendekatan probabilistik untuk memecahkan masalah dimana metode langkah demi langkah yang ketat tidak efisien. Metode Monte Carlo dan Randomized Quicksort adalah contoh utama.
Algoritma Brute Force
Ini adalah pendekatan “coba segalanya”. Brute force secara sistematis mengeksplorasi semua solusi yang mungkin. Sederhana saja. Ini menjamin solusi jika ada. Namun untuk masalah yang besar dan kompleks, hal ini sangat tidak efisien. Ini setara dengan mencoba setiap kunci pada sebuah cincin sampai ada yang cocok.
Kategori-kategori ini tumpang tindih. Suatu algoritma dapat berupa pemrograman dinamis dan serakah dalam konteks yang berbeda. Kuncinya adalah memahami trade-off.
Dampak Manusia
Kita sering menganggap algoritma sebagai logika dingin. Benar. Namun hal-hal tersebut juga merupakan cerminan dari pilihan-pilihan kita. Jika kami memprioritaskan kecepatan, kami mendapatkan taksi. Jika kami memprioritaskan biaya, kami mendapatkan bus. Saat kami memprioritaskan akurasi, kami mungkin menerima kelambatan.
Dalam kehidupan digital Anda, Anda jarang melihat kode tersebut. Anda tinggal melihat hasilnya. Umpan yang memahami suasana hati Anda. Peta yang menghindari lalu lintas. Hasil pencarian yang menjawab pertanyaan Anda sebelum Anda selesai mengetik.
Ini bukan sihir. Itu hanya beberapa langkah.
Tapi siapa yang memutuskan langkahnya? Dan siapa yang menentukan bobot setiap langkah?
Itulah pertanyaan sebenarnya.
Lain kali Anda menggulir, tanyakan pada diri Anda: algoritma mana yang mendorong tampilan? Dan mengapa konten tersebut dipilih untuk Anda?
Jawabannya mungkin mengubah cara Anda memandang layar.
Bagaimana Algoritma Menerjemahkan Input Menjadi Hasil Dunia Nyata
Algoritma hanyalah sekumpulan instruksi. Itu membutuhkan masukan. Ini memproses data itu. Itu mengeluarkan keluaran. Bahasa yang Anda gunakan untuk menulisnya—Python, C++, Java—tidak mengubah mekanisme inti. Logikalah yang penting. Dan logika tersebut selalu mencari solusi optimal, meskipun “optimal” memiliki arti yang berbeda tergantung pada tugasnya.
Outputnya tidak selalu berupa angka tunggal atau jawaban ya/tidak. Ini sangat bervariasi berdasarkan masalah apa yang coba dipecahkan oleh kode tersebut.
Pemecahan Masalah dan Klasifikasi
Beberapa algoritma dibangun untuk menemukan jawaban spesifik. Bayangkan Google Maps menghitung jalur terpendek antara dua titik. Atau skrip sederhana yang menyortir daftar angka yang berantakan. Ini adalah keluaran pemecahan masalah yang klasik.
Namun dalam pembelajaran mesin, keluarannya sering kali berupa keputusan. Filter spam tidak hanya mengurutkan email; itu mengklasifikasikan mereka. Apakah email ini sampah? Ya atau tidak. Mesin rekomendasi tidak hanya mencantumkan item. Ini menentukan produk mana yang kemungkinan besar akan Anda beli saat ini. Ini membuat pilihan untuk Anda.
Angka, Struktur, dan Visual
Terkadang hasilnya hanyalah angka mentah. Algoritma mengolah persamaan untuk menemukan akar. Mereka menghitung rata-rata statistik dari kumpulan data yang sangat besar. Di lain waktu, mereka mengeluarkan struktur data. Algoritme pengurutan mengatur ulang array. Algoritme grafik mengidentifikasi komponen-komponen yang terhubung, pada dasarnya memetakan hubungan dalam jaringan.
Lalu ada sisi visualnya. Algoritme grafik komputer mengambil data numerik mentah dan mengubahnya menjadi gambar. Mesin rendering dalam video game menghasilkan gambar 2D dari model 3D. Tanpa algoritme ini, dunia tempat kita bermain hanya akan berupa garis-garis di layar.
Teks, Sinyal, dan Tindakan Fisik
Algoritme pemrosesan bahasa alami menghasilkan teks. Mereka menghasilkan respons yang mirip manusia, menerjemahkan bahasa, atau meringkas artikel yang panjang. Ini bukan sekedar kode lagi; itu percakapan.
Dalam robotika dan sistem tertanam, keluarannya bersifat fisik. Algoritma mengirimkan sinyal ke motor dan aktuator. Mereka mungkin menyalakan lampu. Atau mereka mungkin mengoordinasikan gerakan kompleks lengan robot di jalur perakitan. Instruksi digital menjadi tindakan fisik.
Gambaran Besarnya
Baik Anda mengidentifikasi pola, menyisir data awal, atau menemukan proses matematika, algoritme yang efisien akan mengotomatiskan pekerjaan berat. Mereka menangani masukan dan variabel sehingga Anda tidak perlu melakukannya.
Pertanyaannya bukanlah bagaimana cara kerjanya. Itulah yang mampu mereka lakukan selanjutnya.
Algoritma merupakan bagian integral dari cara sistem komputer memproses data. Kebanyakan program komputer terdiri dari algoritma yang mengikuti instruksi spesifik untuk melakukan tugas sederhana.
Artikel ini diperbarui bersama dengan teknologi AI, kemudian diperiksa faktanya dan diedit oleh editor HowStuffWorks.
Berikut beberapa tautan menarik:
- Bagaimana Kecerdasan Buatan Mengubah Segalanya Secara Total
- Whatis.com: Algoritma
- Cara Kerja Java
- Cara Kerja Pemrograman C
- Cara Kerja PC
- Cara Kerja Enkripsi
- Cara Kerja Kompresi File
FAQ Algoritma
Apa yang dimaksud dengan algoritma secara sederhana?
Saat Anda memberi tahu komputer apa yang harus dilakukan, Anda juga memilih cara komputer melakukannya. Itulah algoritmanya. Ini adalah teknik dasar atau serangkaian instruksi yang digunakan untuk menyelesaikan pekerjaan.
Apa contoh algoritma?
Resep adalah contoh klasik. Ini adalah daftar instruksi yang terbatas. Suatu algoritma bisa lebih spesifik, namun konsepnya sama.
Apa tiga bagian dari suatu algoritma?
masukan data. Pengolahan data. Keluaran data. Anda memasukkan sesuatu, mesin melakukan sesuatu, dan Anda mengeluarkan sesuatu.
Apa kegunaan algoritma dalam pemrograman komputer?
Algoritma adalah tulang punggung pemrosesan data. Kebanyakan program komputer hanyalah kumpulan algoritma yang mengikuti instruksi spesifik untuk melakukan tugas-tugas sederhana. Tanpa mereka, tidak ada otomatisasi. Tidak ada logika. Hanya perangkat keras mentah yang menunggu arahan.
























