Minggu, 08 Mei 2016

[SOFTSKILL TUGAS 3] Pengantar Teknologi Game : Analisis Game dan Algritmanya


Di dunia modern ini, perkembangan teknologi sudah sangat berpengaruh dalam setiap aspek kehidupan manusia. Salah satu aspek penting dalam kehidupan manusia adalah hiburan. Salah satu bentuk dari hiburan dapat berupa suatu permainan. Dalam perkembangan teknologi yang semakin pesat, dunia permainan atau game terus berkembang beserta teoriteori yang muncul untuk mengembangkan pemainan sejalan dengan berkembangnya teknologi. Nah, Algoritma apa saja yang digunakan dalam pembuatan game? berikut merupkan macam-macam algoritma yang digunakan dalam game :
  • MINIMAX, Sebuah prosedur pencarian yg melihat kedepan, memperhatikan apa yg akan terjadi, kemudian yang digunakan untuk memilih langkah berikutnya.
  • ALPHA-BETA PRUNING, Algoritma ini merupakan improvisasi dari algoritma minimax. Algoritma ini untuk meningkatkan efisiensi fungsi minimax dalam hal pencarian, kemudian fungsi evaluasi ditambahkan sepasang nilai alpha dan beta.
  • FUZZY, Logika fuzzy merupakan pengembangan dari logika boolean. Sistem fuzzy atau logika fuzzy adalah salah satu bahasa soft computing yang memiliki karakteristik dan keunggulan dalam menangani permasalahan yang bersifat ketidakpastian dan kebenaran parsial. Logika fuzzy merupakan pengembangan dari logika boolean yang hanya memiliki nilai true (1) atau false (0).
  • ALGORITMA GENETIKA, Algoritma genetika adalah algoritma yang berusaha menerapkan pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahanmasalah (problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu kumpulan (populasi) untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness.
  • ALGORITMA AI (ARTIFICIAL INTELEGENCE), Kecerdasan Buatan (Artificial Intelligence) merupakan cabang terpenting dalam dunia computer yang membuat agar mesin (computer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan manusia. Pada awalnya diciptakan computer hanya berfungsi sebagai alat hitung. Tapi sekarang peran computer makin mendominasi kehidupan manusia. Komputer di harapkan data diberdayakan untuk mengerjakan segala sesuatu yang biasa dikerjakan oleh manusia.


Macam Macam Game menurut Algoritmanya

                 
1. Game Pacman


Pacman adalah sebuah permainan video arkade yang cukup terkenal. Cara bermainnya mudah yaitu pemain (pacman) diharuskan memakan makanan (berbentuk titik-titikkecil) dan sebuah bulatan besar (energizer) sampai habis di dalamsebuah labirin yang berliku-liku. Tidak hanya menghabiskan makanan tersebut, pemain juga harus menghindari 4 ‘hantu’ yang berkeliaran secara random untuk menangkap pemain. Jika pemain bertemu dengan hantu-hantu tersebut maka pemain dinyatakan gagal dan harus mengulangi dari awal lagi. Tetapi pemain bias mengalahkan hantu tersebut dengan memakan energizer yang terdapat di pojokkan labirin.Jika pemain memakan titik besar tersebut, maka para hantu akan ketakutan dan berusaha menjauh dari pemain.
Pergerakan para hantu ini dipengaruhi oleh kecerdasan buatan atau Artificial intelligence (AI), dimana para hantu diberi kecerdasan untuk menentukan langkah dan mengambil keputusan akan bergerak kemana dengan menentukan rute yang paling pendek (minimum), tujuannya adalah menangkap pemain. Setiap hantu harus memiliki pemikiran berbeda dan memiliki kemampuan bekerja sama untuk mengejar pemain, sehingga permainan akan tampak lebih menarik. Persoalan mendekati karakter Pacman ini dapat diselesaikan dengan berbagai macam cara, salah satunya dengan menggunakan algoritma greedy.
Pada contoh kasus ini diasumsikan bahwa karakter Pacman tidak bergerak (diam saja di tempat), untuk menentukan apakah rute yang dipilih dari hasil algoritma greedy merupakan yang paling optimum atau tidak.


2. Game Tetris

Tetris adalah permainan teka-teki yang disusun dan diprogram oleh sepasang programmer berkebangsaan Rusia. Dalam permainan tetris, balok-balok tetris berjatuhan ke area permainan dalam waktu konstan. Balok tetris selalu terdiri dari 4 balokkecil yang membentuk 7 macam rupa.
Algoritma yang gunakan untuk mencari solusi dari permainan tetris adalah algoritma yang menggunakan konsep-konsep yang ada dalam algoritma Greedy dan Algoritma Brute Force. Algoritma Greedy merupakan metode yang paling umum digunakan untuk memecahkan masalah optimasi. Algoritma ini sederhana dan sesuai dengan tujuan yang ada.


3. Games Tebak Kata


Anagram adalah salah satu jenis permainan tebak kata. Objektif permainan anagram adalah menebak kata dengan huruf-huruf yang telah diacak. Huruf yang tersedia harus dipakai sebanyak jumlahnya .Contoh yang sederhana, pemain diberikan empat huruf ”upla”, maka pemain harus menebak kata menggunakan huruf ’u’, ’p’, ’l’, ’a’; dengan tiap huruf tepat sebanyak jumlahnya. Sehingga kata-kata yang bias dibentuk adalah ”lupa”, ”palu”, ”pula”, ”luap”, dan seterusnya. Kata yang ditebak harus valid, valid dalam arti kata tersebut termasuk dalam suatu database yang ditentukan.Semakin banyak tebakan kata yang benar nilainya semakin baik.
Algoritma backtracking dapat digunakan dalam mencari anagram dari sebuah kata. Pada penelitian tersebut algoritma backtracking dipakai untuk membangun list kata yang merupakan kumpulan kata yang dapatdisusun oleh huruf-huruf yang telah diacak dan terdapat di database. Program permainan anagram yang di rancang oleh Assaat, 2007 melibatkan tiga elemen utama. Pertama adalah pemain, kedua adalah komputer dalam arti program itu sendiri, dan ketiga adalah database kata, dimana database tersebut telah terurut secara alfabet.


4. Game Puzzle Slider


Puzzle slider merupakan permainan menyusun potongan gambar dengan aturan sebuah potongan hanya dapat dipindahkan dengan menggesernya keruang kosong . puzzle ini membentuk ruang solusi yang diorganisasikan kedalam struktur pohon dinamis. Struktur pohon dinamis sendiri dibangun dengan 2 metode traversal yaitu Breadth First Search (BFS) dan Depth First Search (DFS). game puzzle juga dapat melatih logika dan daya imaginasi seseorang. 


5. Game Matches (Andro Matches)

ini merupakan game yang saya kembangkan dengan menggunakan strawberry prolog. berikut penjelasan nya.


INITIAL STATE

Andro-Matches merupakan sebuah game yang dikembangkan dari permainan matches.  Dimana masing-masing player dituntut untuk mengalahkan AI yang telah di buat. Kita harus menentukan langkah yang benar untuk bisa mengalahkan AI, jika kita salah langkah, maka kita akan kalah melawan AI. Perlu diketahui disini AI pada game ini sangat sulit di kalahkan, kemungkinan untuk di kalahkan yaitu sekitar 10%. Di game ini ada  2 pilihan, yaitu computer terlebih dahulu, atau player yang maju dahulu. Jika kita ingin menang melawan AI, di haruskan kita tidak boleh mengambil ikon paling terakhir, atau kita akan kalah dari AI.

Permainan dimulai dengan menekan tombol pilihan, disitu akan terlihat pilihan, computer dahuli atau kita yang terlebih dahulu. Disini saya memilih untuk maju terlebih dahulu, player pertama akan memilih salah satu ikon yang akan dihilangkan. Berikutnya untuk CPU yang memilih untuk ikon mana yang akan dipilih untuk maju. Jika player yang mengambil batang terakhir, maka pemain akan kalah, tapi jika AI yang mengambil batang terakhir maka AI akan kalah. Namun disini AI sangat sulit dikalahkan. Kita bisa mengambil berapapun batang yamg kita inginkan tapi harus berada dalam satu kolom, begitu juga komputer.

Tampilan Menu Utama

Tampilan splash screen dan loading bar

Tampilan menu utama dalam game


RULES

Identifikasi ruang keadaan, permasalahan ini dapat di lambangkan dengan sebuah field dengan background sebuah gambar, di field itu terdapat 5 tingkatan yang terdiri dari ikon-ikon yang tersusun berbentuk piramida. Pemain hanya terdiri dari player dan AI (CPU).
Keadaan awal dan tujuan.
Keadaan awal = papan  permainan.
Keadaan tujuan = bagi yang terakhir meng-klik ikon, dialah yang kalah (kebalikan nya jika memilih mode ambilo trakhir menang)

Aturan-aturan:

 Pilihan bagian option, disitu kita akan memilih siapa yang akan maju terlebih dahulu, player atau AI
Dimainkan dengan 2 pemain, player pertama dan yang kedua adalah AI, player memulai langkah awal permainan dengan memilih salah satu ikon yang telah disediakan. Baik dari atas atau dari bawah.
Kita hanya bisa mengambil ikon secara kolom, yang terakhir memilih adalah yang kalah (kebalikan nya jika memilih mode ambilo trakhir menang).
Tidak ada perbedaan ikon antara player dengan CPU.


GOAL

Goal (tujuan) untuk menyelesaikan games Andro-Matches adalah membuat dimana kondisi ambil mengambil terakhir (jika mode default). Namun jika kita mengaktifkan mode mengambil terakhir =  menang, maka siapa sajat yang mengambil di akhir akan menang.
Di game ini juga terdapat timer. Dimana jika timer telah abis maka pemain akan kalah.
Dan terdapat pula papan score untuk menghitung menang player dan AI.


Tampilan ketika player menang

Tampilan ketika player kalah

Tampilan ketika timer habis



KONSEP AI


Konsep permainan yang di pakai dalam permainan ini adalah (baik user ataupun AI) harus berjalan secara bergantian. AI akan selalu berjalan dan memberikan perlawanan kepada kita sehingga tidak akan begitu mudah dapat memenangkan game tersebut, pada saat memainkan permainan ini akan mendapatkan hasil akhir berupa kita menang atau kita kalah melawan komputer, karena prinsipnya game ini ingin anda yang kalah. Kesimpulan dari permainan ini ialah bagaimana cara untuk memenangkan perlawanan dari komputer dengan tidak mengambil icon yang paling akhir (don’t take the last), jika pengguna (user) dapat tidak mengambil icon yang terakhir maka pengguna tersebut ememnangkan permainan game Matches dan jika pengguna (user) mengambil korek api yang paling akhir maka pengguna (user) tersebut dinyatakan kalah dalam permainan game Matches ini.



GLOSARIUM

Algoritma

Algoritma minimax merupakan salah satu algoritma yang sering digunakan untuk game kecerdasan buatan yang menggunakan teknik depth first search (DFS) dalam pencariannya pada pohon dengan kedalaman terbatas (Kusumadewi, 2003). Algoritma minimax digunakan untuk memilih langkah terbaik, dimana kedua pemain akan saling berusaha untuk  memenangkan permainan. Selain itu, algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Algoritma minimax mendeskripsikan kondisi apabila terdapat pemain yang mengalami keuntungan, pemain lain akan mengalami kerugian senilai dengan keuntungan yang diperoleh lawan dan sebaliknya.
Algoritma minimax akan melakukan pengecekan pada seluruh kemungkinan yang ada, sehingga akan menghasilkan pohon permainan yang berisi semua kemungkinan permainan tersebut (Jannah, 2010). Dengan pohon permainan ini setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya dapat diketahui. Dalam repersentasi pohon pada algoritma minimax, terdapat dua jenis simpul, yaitu simpul min dan simpul max. Max akan memilih langkah dengan nilai tertinggi dan min akan memilih langkah dengan nilai terendah (Kusumadewi, 2003). Dalam penentuan keputusan max/min tersebut dibutuhkan suatu nilai yang merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heuristik.
Fungsi heuristik yang digunakan algoritma ini adalah fungsi heuristik statis (Kusumadewi, 2003). Fungsi heuristik digunakan untuk mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah tersebut dipilih. Dari nilai-nilai heuristik inilah komputer akan menentukan simpul mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih tersebut adalah simpul dengan nilai heuristik yang akan menuntun permainan ke hasil akhir yang menguntungkan bagi komputer (Akbar, 2007).

Contoh heuristic pencarian


Referensi :