MATERI INFORMATIKA SMA KELAS XI BERFIKIR KOMPUTASIONAL ALGORITMA GREEDY KURIKULUM MERDEKA
Algoritma Greedy
Greedy secara harfiah berarti rakus atau tamak. Meskipun dalam pengertian sehari-hari, kata “rakus” dan “tamak” memiliki konotasi negatif, namun dalam konteks Informatika, kita mengartikan greedy dalam konteks sebagai sebuah strategi penyelesaian masalah yang dapat berguna dalam merancang sebuah algoritma atau solusi bagi sebuah permasalahan komputasional. Oleh karena itu, diharapkan tidak ada konotasi negatif pada kata greedy dalam konteks ini.
Teknik greedy adalah salah satu teknik penyelesaian masalah yang biasa digunakan untuk menyelesaikan permasalahan optimasi. Permasalahan optimasi berarti kita ingin menghitung sebuah hasil yang terbaik dari sebuah proses tertentu. Terbaik disini dapat berarti nilai yang paling kecil ataupun paling besar, tergantung dari jenis permasalahannya.
Dalam menyelesaikan permasalahan optimasi seperti ini, algoritma greedy akan menerapkan prinsip “mengambil serangkaian langkah terbaik pada setiap saat”.
Contoh 1:
Budi ingin membawa beberapa ekor ikan yang sudah tersimpan dalam kantong-kantong plastik untuk diangkut di dalam mobilnya. Terdapat 8 buah kantong dengan yang berisi masing-masing 3, 5, 2, 8, 4, 6, 6, dan 3 ekor ikan. Namun sayangnya, mobilnya hanya mampu membawah 4 buah kantong. Kantong-kantong manakah yang harus dibawa oleh Budi agar jumlah ikan yang dibawanya sebanyak mungkin?
Jawab 1:
Untuk dapat membawa sebanyak mungkin ikan, Budi harus memilih kantong-kantong dengan sebanyak mungkin ikan. Oleh karena itu, algoritma greedy dapat diterapkan disini, dengan cara kita mengambil kantong mulai dari yang berisi ikan paling banyak terlebih dahulu, sampai didapatkan 4 buah kantong. Dengan demikian, kita harus mengurutkan kantong-kantong terlebih dahulu mulai dari yang paling banyak ikannya, sampai dengan yang paling sedikit, sehingga urutannya menjadi: 8, 6, 6, 5, 4, 3, 3, 2. Jika kita ambil 4 buah kantong pertama, maka total banyaknya ikan yang dapat dibawa adalah 8 + 6 + 6 + 5 = 25 ekor ikan. Tentunya tidak ada pilihan 4 kantong yang akan menghasilkan total banyaknya ikan lebih dari 25 ekor
Contoh 2:
Kali ini, Budi harus membawa sedikitnya 15 ekor ikan. Tentukan jumlah kantong terkecil yang harus dibawa oleh Budi, agar terdapat minimal 15 ekor ikan yang terbawa!
Jawab 2:
Sama seperti pada permasalahan sebelumnya, kita dapat menerapkan algoritma greedy untuk menyelesaikan permasalahan ini. Dalam hal ini, untuk memperkecil banyaknya kantong yang harus dibawa, maka kita juga selalu memilih kantong dengan jumlah ikan terbanyak terlebih dahulu. Jika kita memilih kantong dengan jumlah ikan = 8 dan 6, maka kita sudah memiliki 14 ekor ikan.
Selanjutnya, kita hanya perlu mengambil 1 kantong lagi (yang mana saja) agar total jumlah ikan menjadi lebih dari 15. Oleh karena itu, jawaban yang diinginkan adalah 3 buah kantong. Jelas bahwa tidak ada pilihan yang memungkinkan kita mendapatkan 15 ekor ikan dengan 2 atau kurang kantong.
Pada kedua contoh di atas, terdapat satu langkah yang penting yang biasa diterapkan pada penyelesaian masalah secara greedy, yaitu proses mengurutkan sebuah data agar menjadi terurut (mungkin dari kecil ke besar, atau sebaliknya), agar kemudian kita dapat melakukan serangkaian pengambilan langkah secara greedy pada data yang sudah terurut tersebut. Pola seperti ini umum digunakan pada penyelesaian permasalahan secara greedy.
Posting Komentar