INFORMATIKA | ALGORITMA

Algoritma Itu Apa?

Algoritma adalah urutan langkah-langkah logis dan terstruktur yang disusun secara sistematis untuk menyelesaikan suatu masalah atau mencapai tujuan tertentu.

Secara sederhana, algoritma adalah "resep" atau "panduan langkah demi langkah". Sama seperti resep masakan yang memberi tahu Anda bahan dan urutan memasak hingga makanan jadi, algoritma memberi tahu komputer (atau manusia) apa yang harus dilakukan dari awal hingga selesai.

Ciri-Ciri Utama Algoritma

Agar suatu langkah dapat dikatakan sebagai algoritma yang baik, harus memenuhi beberapa kriteria:

  • Input (Masukan): Memiliki nol atau lebih data awal yang dimasukkan.

  • Output (Keluaran): Menghasilkan minimal satu solusi atau hasil akhir.

  • Definiteness (Kepastian): Setiap langkah harus jelas, tidak ambigu, dan terdefinisi dengan baik.

  • Finiteness (Keterbatasan): Algoritma harus berhenti setelah menyelesaikan sejumlah langkah terbatas (tidak berputar terus-menerus tanpa akhir).

  • Effectiveness (Efektivitas): Setiap langkah harus cukup sederhana sehingga dapat dilaksanakan secara realistis.

Penerapan Algoritma dalam Kehidupan & Teknologi

Algoritma digunakan di hampir seluruh ranah teknologi modern dan kehidupan sehari-hari:

  1. Mesin Pencari (Google Search): Algoritma indeks dan pemeringkatan (seperti PageRank) menentukan halaman web mana yang paling relevan untuk ditampilkan saat Anda mengetik kata kunci.

  2. Navigasi & Peta (Google Maps/Waze): Algoritma jalur terpendek (seperti Dijkstra atau A* Algorithm*) menghitung rute tercepat dengan mempertimbangkan jarak dan kemacetan lalu lintas.

  3. Sistem Rekomendasi (YouTube, Netflix, e-Commerce): Algoritma Collaborative Filtering menganalisis riwayat tontonan atau belanja Anda untuk merekomendasikan video, film, atau produk yang mungkin Anda sukai.

  4. Keamanan Data & Kriptografi: Algoritma enkripsi (seperti AES atau RSA) dan algoritma klasik (seperti Caesar Cipher) mengubah teks biasa menjadi teks terenkripsi untuk mengamankan data sandi atau komunikasi.

  5. Kecerdasan Buatan (AI) & Pembelajaran Mesin: Algoritma Deep Neural Networks (DNN) dan Decision Tree digunakan untuk mengenali wajah, memproses bahasa alami, hingga mengendarai mobil otonom.

Contoh Algoritma

1. Contoh Analogi Kehidupan Sehari-hari (Mengambil Uang di ATM)

  • Input: Kartu ATM, PIN, dan nominal uang yang ingin ditarik.

  • Langkah-langkah (Algoritma):

    1. Masukkan kartu ATM ke mesin.

    2. Pilih bahasa interaksi.

    3. Masukkan 6 digit PIN ATM.

    4. Percabangan (Kondisi): Apakah PIN benar?

      • Jika Tidak: Tampilkan pesan "PIN Salah", ulangi langkah 3 (maksimal 3 kali).

      • Jika Ya: Lanjut ke langkah 5.

    5. Pilih menu "Tarik Tunai".

    6. Masukkan nominal uang yang ingin ditarik.

    7. Percabangan (Kondisi): Apakah saldo mencukupi?

      • Jika Tidak: Tampilkan pesan "Saldo Tidak Cukup", keluarkan kartu.

      • Jika Ya:

        • Kurangi saldo rekening sesuai nominal.

        • Keluarkan uang tunai dari mesin.

        • Cetak resi transaksi.

    8. Ambil uang dan kartu ATM.

  • Output: Uang tunai dan resi transaksi.



Algoritma Greedy

Algoritma Greedy adalah salah satu metode pemecahan masalah dalam ilmu komputer yang menyelesaikan masalah langkah demi langkah dengan selalu memilih keputusan terbaik yang ada pada saat itu (lokal), dengan harapan bahwa pilihan-pilihan tersebut akan mengarah pada solusi terbaik secara keseluruhan (global).

Sesuai dengan namanya, greedy berarti "rakus" atau "tamak". Algoritma ini digambarkan "rakus" karena ia mengambil apa yang terlihat paling menguntungkan di setiap langkah tanpa memikirkan akibat jangka panjangnya.

Prinsip Utama Algoritma Greedy

Prinsip dasar Greedy adalah "Ambil apa yang terbaik sekarang, jangan khawatir tentang masa depan."

Dalam menentukan keputusan di setiap langkah, algoritma ini memegang 5 komponen utama:

  1. Himpunan Kandidat: Kumpulan elemen yang bisa dipilih untuk membentuk solusi.

  2. Himpunan Solusi: Elemen-elemen terpilih yang membentuk solusi akhir.

  3. Fungsi Seleksi: Aturan untuk memilih kandidat terbaik pada setiap langkah (misal: pilih yang paling murah, paling pendek, atau paling bernilai).

  4. Fungsi Kelayakan (Feasibility): Memastikan kandidat yang dipilih tidak melanggar batasan (constraint) yang ada.

  5. Fungsi Objective: Fungsi yang ingin dimaksimalkan (misal: keuntungan) atau diminimalkan (misal: biaya/waktu).

Karakteristik: Kelebihan & Kelemahan

  • Kelebihan:

    • Cepat dan Efisien: Tidak perlu memeriksa semua kemungkinan kombinasi.

    • Sederhana: Mudah dipahami dan diimplementasikan ke dalam kode.

  • Kelemahan:

    • Tidak Selalu Optimal: Karena hanya melihat langkah terdekat, algoritma ini bisa terjebak pada solusi lokal (local optima) dan gagal menemukan solusi terbaik yang sebenarnya (global optima).

Contoh Kasus: Penukaran Uang (Coin Change Problem)

Salah satu contoh klasik penggunaan Algoritma Greedy adalah mencari jumlah keping koin terkecil untuk memberikan kembalian uang.

Skenario:

Anda adalah seorang kasir. Anda harus memberikan kembalian sebesar Rp38.000 kepada pembeli.

Pilihan koin/uang kertas yang tersedia adalah: Rp20.000, Rp10.000, Rp5.000, dan Rp1.000.

Strategi Greedy:

Pilih pecahan nominal terbesar yang tidak melebihi sisa kembalian yang harus dibayarkan.

Langkah Penyelesaian:

  1. Sisa target: Rp38.000

    • Pilih nominal terbesar yang $\le 38.000$ $\rightarrow$ Rp20.000 (1 lembar).

    • Sisa target: $38.000 - 20.000 = \text{Rp18.000}$.

  2. Sisa target: Rp18.000

    • Pilih nominal terbesar yang $\le 18.000$ $\rightarrow$ Rp10.000 (1 lembar).

    • Sisa target: $18.000 - 10.000 = \text{Rp8.000}$.

  3. Sisa target: Rp8.000

    • Pilih nominal terbesar yang $\le 8.000$ $\rightarrow$ Rp5.000 (1 lembar).

    • Sisa target: $8.000 - 5.000 = \text{Rp3.000}$.

  4. Sisa target: Rp3.000

    • Pilih nominal terbesar yang $\le 3.000$ $\rightarrow$ Rp1.000 (3 lembar).

    • Sisa target: $3.000 - 3.000 = \text{Rp0}$ (Selesai).

Hasil Solusi Greedy:

Total 6 lembar/koin (1x20rb + 1x10rb + 1x5rb + 3x1rb). Dalam sistem mata uang Rupiah standar ini, Greedy berhasil memberikan solusi paling optimal.