• Tidak ada hasil yang ditemukan

Analisis Algoritma Greedy pada Game Summy

ANALISIS DAN PERANCANGAN SISTEM

3.2. Analisis Algoritma Greedy pada Game Summy

Pada game Summy yang dibangun, algoritma greedy digunakan oleh komputer (AI) untuk menyusun kotak-kotak miliknya agar membentuk penjumlahan, pengurangan, perkalian, atau pembagian dengan jumlah poin yang optimum. Adapun elemen-elemen greedy yang digunakan adalah sebagai berikut:

1. Himpunan Kandidat : himpunan permutasi dari kotak-kotak yang dimiliki komputer dan himpunan kotak acuan yang berada pada papan game.

2. Himpunan Solusi : himpunan bentuk penjumlahan, pengurangan, perkalian atau pembagian yang memiliki poin terbanyak optimum.

3. Fungsi Seleksi : memilih elemen himpunan kandidat yang memiliki nilai tertinggi.

4. Fungsi kelayakan : memeriksa apakah bentuk penjumlahan, pengurangan, perkalian, atau pembagian yang dibentuk apakah sudah memenuhi syarat valid

5. Fungsi objektif : waktu minimum yang digunakan untuk membentuk penjumlahan, pengurangan, perkalian, atau pembagian.

Berikut ini merupakan sebuah sampel game yang telah ditentukan untuk dianalisis menggunakan algoritma greedy. Pada Gambar 3.2 terlihat set awal game Summy.

Gambar 3.2 Kotak Milik Komputer pada Set Awal Game Summy

Pada saat awal game pemain dan komputer akan mendapatkan masing-masing delapan kotak secara acak dari tumpukkan kotak. Dan pada tengah-tengah papan game

diletakkan kotak ‘=’ seperti yang terlihat pada Gambar 3.2. Berikut ini adalah contoh kasus pencarian solusi algoritma greedy pada game Summy.

1. Untuk setiap kotak hidup yang berada pada papan game yang akan menjadi kotak acuan, langkah (1) dimulai dengan mengelompokkan kotak-kotak yang dimiliki oleh komputer dan kotak acuan yang berada pada papan game ke dalam himpunan kandidat. Seperti yang terlihat pada Gambar 3.2 komputer memiliki himpunan kotak miliknya: {‘2’, ‘3’, ‘1’, ‘:’, ‘4’, ‘=’, ‘x’, ‘+’} dan

himpunan kotak acuan pada tengah-tengah papan game: {‘=’} merupakan himpunan kandidat, sehingga himpunan kandidat: {‘2’, ‘3’, ‘1’, ‘:’, ‘4’, ‘=’,

‘x’, ‘+’, ‘=’}. Selanjutnya anggota himpunan kandidat akan dipisahkan berdasarkan apakah termasuk angka, operator aritmetika, atau operator penugasan, sehingga diperoleh hasil seperti pada Tabel 3.2.

Tabel 3.2 Pengelompokan Himpunan Kandidat Berdasarkan Tipe Himpunan Kandidat ‘2’, ‘3’, ‘1’, ‘:’, ‘4’, ‘=’, ‘x’, ‘=’

Tipe

Numerik ‘2’, ‘3’, ‘1’, ‘4’ Operator ‘:’, ‘x’

Penugasan ‘=’, ‘=’

2. Langkah (2) dimulai dengan melakukan permutasi anggota himpunan numerik berturut-turut dari permutasi 3 dari n anggota sampai permutasi 1 dari n anggota numerik. Namun sebelum itu anggota numerik akan diurutkan terlebih dahulu dari yang terbesar ke yang terkecil. N={‘2’, ‘3’, ‘1’, ‘4’} akan diurutkan menjadi N={‘4’, ‘3’, ‘2’, ‘1’}. Hasil permutasinya dapat dilihat pada Tabel 3.3.

Tabel 3.3 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan A) Permutasi Hasil dari Permutasi N={‘4’, ‘3’,’2’,’1’} Banyak

3 dari 4 432 431 423 421 413 412 342 341 324 321 314 312 243 241 234 231 214 213 143 142 134 132 124 123 24 2 dari 4 43 42 41 34 32 31 24 23 21 14 13 12 12 1 dari 4 4 3 2 1 4 Total 40

Pada Tabel 3.3. terlihat bahwa pada permutasi 3 dari 4 anggota numerik adalah sebanyak 24, permutasi 2 dari 4 anggota numerik adalah sebanyak 12, dan permutasi 1 dari 4 anggota numerik adalah sebanyak 4. Total semuanya adalah sebanyak 40. Hasil permutasi tersebut selanjutnya akan disebut sebagai himpunan A. Sehingga A = {432, 431, 423, 421, ... , 4, 3, 2, 1}

3. Pada langkah (3) akan dimulai dengan memilih satu anggota A dari yang terbesar ke yang terkecil yang setiap digit elemennya akan dihapus dari himpunan numerik. Sebagai contoh ketika akan memilih ‘12’ anggota A ke-36

dari yang terbesar. Maka ‘1’, dan ‘2’ akan dihapus dari anggota himpunan

numerik, sehingga awalnya N = {‘4’, ‘3’,‘2’, ‘1’} menjadi N = {‘4’, ‘3’}. Lalu akan dilakukan permutasi anggota himpunan numerik berturut-turut dari permutasi 3 dari n anggota sampai permutasi 1 dari n anggota numerik. Hasil permutasinya dapat dilihat pada Tabel 3.4.

Tabel 3.4 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan B) Permutasi Hasil dari Permutasi N={‘4’, ‘3’} Banyak

3 dari 2 - -

2 dari 2 43 34 2

1 dari 2 4 3 2

Total 4

Pada Tabel 3.4 terlihat bahwa permutasi tidak dimulai dari permutasi 3 dari n jumlah anggota numerik karena anggotanya saat ini berjumlah lebih kecil dari 3. Permutasi 2 dari 2 anggota numerik saat ini adalah sebanyak 2. Permutasi 1 dari 2 anggota numerik saat ini adalah sebanyak 2. Total semuanya adalah sebanyak 4. Hasil permutasi tersebut selanjutnya akan disebut himpunan B. Sehingga B = {43, 34, 4, 3}

4. Jika pada langkah (3) tidak dapat dilakukan permutasi maka akan kembali ke langkah (2) dengan memilih anggota A selanjutnya.

5. Langkah (5) dimulai dengan memilih satu anggota B dari yang terbesar ke yang terkecil yang setiap digit elemennya akan dihapus dari himpunan numerik. Sebagai contoh ketika akan memilih ‘4’ anggota ke-3 dari yang terbesar. Maka

‘4’ akan dihapus dari anggota numerik saat ini. Sehingga awalnya N = {‘4’, ‘3’} menjadi N = {‘3’}. Lalu akan dilakukan permutasi anggota himpunan numerik berturut-turut dari permutasi 3 dari n anggota sampai permutasi 1 dari n anggota numerik. Hasil permutasinya dapat dilihat pada Tabel 3.5.

Tabel 3.5 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan C) Permutasi Hasil dari Permutasi N={‘3’} Banyak

3 dari 1 - -

2 dari 1 - -

1 dari 1 3 1

Total 1

Pada Tabel 3.5 terlihat bahwa permutasi tidak dimulai dari permutasi 3 maupun permutasi 2 dari n jumlah anggota numerik karena anggotanya saat ini berjumlah lebih kecil dari 2. Permutasi 1 dari 1 anggota numerik saat ini adalah sebanyak 1. Dan hasil permutasi tersebut selanjutnya akan disebut himpunan C. Sehingga C = {3}

6. Jika pada langkah (5) tidak dapat dilakukan permutasi maka akan kembali ke langkah (3) dengan memilih anggota B selanjutnya.

7. Jika himpunan A, B, dan C telah didapatkan maka langkah (7) akan membentuk penjumlahan, pengurangan, perkalian, atau pembagian dengan menggabungkan setiap anggota A, B, dan C dengan aturan seperti pada Tabel 3.1.

Tabel 3.6 Hasil Pembentukan Bentuk Perkalian dan Pembagian A(36) Operator B(1) Penugasan C(1) Hasil Valid

12 ‘x’ 4 ‘=’ 3 12x4=3 Salah

12 ‘:’ 4 ‘=’ 3 12:4=4 Benar

Pada Tabel 3.6 terlihat bahwa setiap anggota yang terdapat pada himpunan operator akan dicoba untuk disusun untuk membentuk penjumlahan, pengurangan, perkalian, atau. Karena pada himpunan operator hanya terdapat

‘x’ atau ‘:’ maka hanya bisa dibentuk perkalian atau pembagian saja. Pada saat dicoba ‘x’ bentuk perkalian tersebut tidak valid karena hasil dari 12x4 adalah 48 bukan 3. Pada saat dicoba ‘:’ bentuk pembagian tersebut valid karena hasil 12:4 adalah 3.

8. Pada langkah keenam akan memeriksa hasil yang didapat dari algoritma Greedy pada langkah kelima ke papan game. Hasil yang didapatkan tersebut akan dicek

secara horizontal atau vertikal pada papan game berdasarkan acuan kotak ‘=’ yang ada di tengah-tengah papan game seperti yang ditunjukkan Gambar 3.3

Gambar 3.3 Cek Papan Game

Pada Gambar 3.3 terlihat bahwa kotak ‘=’ yang merupakan salah satu anggota dari himpunan kandidat akan dijadikan acuan. Kotak ‘=’ akan dicek tetangga horizontalnya dan tetangga vertikalnya. Karena tetangga horizontal dan vertikal

kotak ‘=’ sama-sama tidak ada, maka akan dipilih penyusunan horizontal terlebih dahulu. Hasil algoritma greedy sebelumnya “12:4=3” akan dimasukkan ke dalam papan game secara horizontal dengan kotak ‘=’ sebagai acuannya.

Gambar 3.4 Kotak Milik Komputer Dicocokkan ke Papan Game

Gambar 3.5 Kotak Milik Komputer Setelah Diletakkan Pada Papan Game

Pada Gambar 3.4 terlihat bahwa kotak milik komputer akan dicocokkan ke papan game. Jika pencocokannya berhasil maka kotak milik komputer akan diletakkan pada papan game seperti Gambar 3.5 dan algoritma greedy telah menemukan solusi.

Dokumen terkait