Algoritma

Algoritma adalah serangkaian langkah atau petunjuk yang menggambarkan cara kita melakukan tugas atau menyelesaikan masalah secara sistematis. Pada dasarnya, algoritma adalah rencana atau panduan yang membantu kita mencapai tujuan tertentu dengan langkah-langkah yang terurut.

Bayangkan algoritma seperti resep untuk memasak makanan. Ketika kita ingin membuat makanan tertentu, kita mengikuti serangkaian langkah yang terstruktur, seperti mencuci bahan, memotong, memasak, dan mencampur bumbu. Begitu juga dalam pemrograman, algoritma memberi tahu komputer langkah-langkah yang harus diikuti untuk menyelesaikan tugas tertentu.

Coba ingat lagi kasus pemindahan mobil dari posisinya menuju kotak yang memiliki bendera yang kita lihat pada topik "Function", sebelum kita menuliskan kode, kita sudah tahu langkah-langkah yang diperlukan yaitu gerak ke kanan 4 kali kemudian ke atas 5 kali. Hal itu kelihatannya sepele, tapi itu merupakan contoh dari sebuah algoritma. Jadi kamu sudah menerapkan algoritma mu sendiri untuk mencapai hasil yang kamu inginkan.

visualisai algoritma

Apakah ada algoritma lain untuk menyelesaikan masalah yang sama di atas? Ya, bisa saja kita pakai cara ke atas dulu, atas 5 kali, baru ke kanan 4 kali.

algoritma atas kanan (algoritma atas baru kanan)

Atau jika kita memungkinkan untuk menggerakkan mobil secara diagonal maka kita hanya perlu bergerak diagonal kanan atas 4 kali, kemudian ke atas 1 kali.

algoritma diagonal (algoritma diagonal)

Efisiensi

Dalam kasus nyata nanti, kita akan dihadapkan pada cara mengefisienkan algoritma yang akan kita pakai untuk mencapai tujuan tertentu.

Misalnya pada contoh di atas, kita memiliki 3 algoritma yang kita sebut:

  • algoritma kanan dulu baru atas
  • algoritma atas dulu baru kanan
  • algoritma diagonal

Dari ketiga algoritma di atas, jika kita diminta untuk menilai algoritma mana yang paling efisien dalam konteks jumlah pemanggilan fungsi / langkah tiap kotak, mana yang paling efisien?

Kita bisa bilang bahwa algoritma yang paling efisien adalah algoritma diagonal, karena secara keseluruhan hanya membutuhkan 5 step, sementara algoritma lainnya sama-sama membutuhkan 9 step.

Tentu ini contoh yang sangat disederhanakan, tapi saya berharap kamu mendapatkan gambaran terkait apa itu algoritma dan seperti untuk apa kita perlu memahaminya, yakni untuk mencari cara mana yang paling efisien dalam mencapai tujuan yang sama.

Karakteristik Algoritma

Algoritma terdiri dari beberapa karakteristik penting:

  1. Input: Langkah pertama adalah menentukan apa yang dibutuhkan oleh algoritma. Seperti resep masakan, kita membutuhkan bahan-bahan tertentu sebelum memulai.

  2. Langkah-langkah: Ini adalah bagian utama algoritma yang menjelaskan langkah-langkah yang harus diambil. Langkah-langkah ini harus jelas dan terurut, seperti instruksi dalam resep.

  3. Output: Ini adalah hasil atau jawaban yang diharapkan setelah mengikuti algoritma. Misalnya, dalam resep makanan, outputnya adalah hidangan yang lezat.

  4. Terseleksi dan Terulang: Algoritma bisa memiliki bagian yang berulang atau bisa memutuskan langkah mana yang harus diambil berdasarkan kondisi tertentu. Ini seperti melakukan tindakan yang sama berulang kali dalam resep atau memilih bahan berdasarkan kondisi.

  5. Solusi yang Efisien: Algoritma sebaiknya memberikan solusi yang efisien dan efektif, menghindari langkah-langkah yang tidak perlu atau berlebihan.

  6. Terminasi: Algoritma harus berakhir dan menghasilkan hasil dalam waktu yang wajar. Ini mirip dengan mengakhiri proses memasak dan menyajikan hidangan.

Dalam dunia pemrograman, algoritma sangat penting karena mereka membantu kita merancang cara mengatasi masalah secara sistematis dan efisien. Ketika kita belajar pemrograman, kita akan mempelajari bagaimana membuat algoritma untuk berbagai tugas, seperti mencari data, mengurutkan daftar, atau menghitung nilai matematika.

⚠️

Sebagai pemula, ketika nanti kamu memutuskan untuk belajar pemrograman dengan bahasa tertentu, tidak perlu terlalu overthinking soal algoritma mana yang terbaik, mana yang paling efisien, fokusmu sebagai pemula adalah menikmati pembelajarannya dan fokus untuk segera menciptakan sesuatu yang konkrit. Soal benar atau salah, terbaik atau terefisien bisa kamu pelajari nanti, setelah kamu luwes dalam hal dasar pemrograman.

Jadi, secara sederhana, algoritma adalah langkah-langkah yang terstruktur untuk menyelesaikan masalah, mirip dengan resep masakan yang membantu kita memasak makanan dengan sukses.


Layanan

Untuk Programmer / Developer or Calon Programmer

Konsultasi 1 - 1

  • Tanyakan apapun terkait Software Engineering, Remote Work, PNS vs Kerja Remote or Achieving Goal.
  • Biaya: 400rb / jam

Online Bootcamp Fullstack Dev (JS)

  • Buat kamu yang gak mau nunggu sampai ebook dirilis. Bisa langsung book online bootcamp ini.
  • Biaya: 10jt / 16 Pertemuan
  • Paket bersama lebih hemat, min 4 orang, tiap orang cukup @5jt

Review CV

  • Saya akan mereview dan memberikan feedback terhadap CV yang kamu miliki.
  • Saya akan memberikan juga masukan secara umum apa yang perlu ditingkatkan dari levelmu yang sekarang.
  • Biaya: 300rb

Untuk Recruiter / Founder

Screening Candidate

  • Screening CV programmer/devops yang akan kamu hire.
  • Interview Candidate
© 2023 Literasikode.
Supported by
Asset 1