Apa itu Algoritma?

Temukan bagaimana algoritme menjalankan dunia

Algoritma adalah seperangkat instruksi. Definisi ini benar-benar sesederhana itu. Algoritma dapat semudah memberikan instruksi seperti ini:

  1. Pergi ke jalan
  2. Ambil yang pertama benar
  3. Temukan rumah kedua di sebelah kiri
  4. Mengetuk pintu dan
  5. Kirimkan paket.

Tetapi sementara definisi algoritma sederhana, arti sebenarnya dan bagaimana hal itu mempengaruhi kehidupan kita bisa sangat kompleks.

Contoh Algoritma

Contoh umum dari algoritma yang kami gunakan dalam kehidupan sehari-hari adalah resep. Seperangkat instruksi ini memberi kita semua bahan yang akan kita butuhkan dan petunjuk tentang apa yang harus dilakukan dengan bahan-bahan itu. Kedengarannya mudah, kan?

Tetapi bagaimana jika Anda tidak tahu di mana gelas ukur disimpan? Anda membutuhkan algoritme untuk menemukannya. Anda bahkan mungkin memerlukan algoritma tentang cara menggunakan gelas ukur.

Jadi sementara algoritma adalah seperangkat instruksi, itu juga perlu memperhitungkan siapa atau apa yang akan menafsirkan instruksi tersebut. Misalnya, jika Anda memberikan petunjuk kepada seorang teman yang merinci cara keluar dari rumah Anda ke toko kelontong terdekat, teman Anda hanya akan tahu cara menuju ke toko itu jika mereka tahu di mana rumah Anda berada. Mereka tidak mampu (belum) menemukan toko kelontong tertentu dari katakanlah, rumah teman lain.

Ini adalah bagaimana suatu algoritma dapat menjadi sederhana dan kompleks. Dan ketika kita berbicara dalam istilah algoritma komputer, memahami apa yang mampu dilakukan oleh komputer adalah bagian mendasar dari perumusan algoritma.

Bagaimana Sorting Algorithms Evolved

Salah satu algoritma paling awal yang dibuat adalah rutinitas semacam gelembung. Bubble sort adalah metode untuk menyortir angka, huruf atau kata dengan mengulang melalui kumpulan data, membandingkan setiap rangkaian nilai secara berdampingan, dan menukarnya saat diperlukan.

Loop ini diulang sampai algoritme dapat bergerak melalui seluruh daftar tanpa perlu menukar apa pun, yang berarti nilai diurutkan dengan benar. Algoritme jenis ini sering disebut sebagai algoritma rekursif karena ia berulang pada dirinya sendiri berulang kali sampai menyelesaikan tugas.

Algoritme mungkin terlihat sederhana seperti:

  1. Pergi ke nilai pertama.
  2. Periksa nilai itu terhadap nilai dan posisi swap berikutnya jika diperlukan
  3. Pergi ke nilai berikutnya dan ulangi perbandingannya.
  4. Jika kita berada di akhir daftar, kembali ke atas jika ada nilai yang ditukarkan selama pengulangan.

Tetapi gelembung semacam itu ternyata bukan cara yang paling efisien untuk menyortir nilai. Seiring berjalannya waktu dan komputer menjadi lebih mampu melakukan tugas-tugas kompleks dengan cepat, algoritma pengurutan baru muncul.

Salah satu algoritma tersebut memindai melalui daftar pertama dan membuat daftar kedua dari nilai yang diurutkan. Metode ini hanya membuat satu pass melalui daftar asli, dan dengan masing-masing nilai, itu akan loop melalui daftar kedua sampai menemukan tempat yang tepat untuk meletakkan nilai. Biasanya, ini lebih efisien daripada menggunakan metode bubble sort.

Di sinilah algoritma bisa benar-benar gila. Atau sangat menarik, tergantung bagaimana Anda melihatnya.

Sementara metode bubble sort dianggap sebagai salah satu metode yang paling tidak efisien dalam menyortir nilai dalam banyak cara, jika daftar asli disortir dengan benar, gelembung sort dapat menjadi salah satu yang paling efisien. Itu karena, dalam contoh itu, algoritma sortir gelembung akan melalui daftar satu kali dan menentukan itu diurutkan dengan benar.

Sayangnya, kami tidak selalu tahu jika daftar kami disortir, jadi kami harus memilih algoritme yang akan menjadi paling efisien untuk digunakan secara rata-rata di sejumlah besar daftar.

Apa yang Kita Pelajari Dari Bubble Sort

Algoritma Facebook Dan Lebih Dalam Kehidupan Sehari-hari

Algoritma sedang bekerja membantu manusia setiap hari. Saat Anda menelusuri web, algoritme sedang berusaha mencari hasil penelusuran terbaik. Tanyakan ponsel cerdas Anda untuk petunjuk arah, dan algoritma memutuskan rute terbaik untuk Anda ambil. Dan ketika Anda menelusuri Facebook, algoritme memutuskan pos Facebook teman mana yang paling penting bagi kami. (Mari berharap teman-teman kita tidak mengetahui mana yang paling disukai oleh Facebook!)

Tetapi berpikir secara algoritme dapat membantu kita jauh melampaui kehidupan komputer kita. Bahkan dapat membantu kami membangun sandwich yang lebih baik.

Katakanlah saya mulai dengan dua potong roti, menyebarkan mustar pada satu irisan dan mayones di irisan lain. Aku menaruh sepotong keju di atas roti dengan mayones, beberapa ham di atasnya, beberapa selada, dua potong tomat, lalu tutup dengan potongan itu dengan mustar di atasnya. Sandwich yang enak, kan?

Pasti jika saya memakannya segera. Tetapi jika saya meninggalkannya di atas meja untuk sementara waktu, bagian atas roti itu mungkin menjadi basah karena merendam beberapa tomat itu. Ini masalah yang saya tidak cukup antisipasi, dan saya mungkin membuat sandwich selama bertahun-tahun sebelum memerhatikan, tetapi begitu saya melakukannya, saya dapat mulai memikirkan cara untuk mengubah algoritme saya untuk membangun sandwich yang lebih baik.

Misalnya, saya bisa menyingkirkan tomat. Tapi saya tidak ingin kehilangan rasa tomat itu. Jadi sebagai gantinya, saya bisa meletakkan tomat di atas roti isi roti dan selada. Ini memungkinkan selada untuk membentuk penghalang pelindung antara tomat dan roti.

Ini adalah bagaimana suatu algoritma berevolusi. Dan sebuah algoritma tidak harus dijalankan oleh komputer untuk menjadi algoritma. Algoritma adalah proses, dan proses ada di sekitar kita.