JURNAL ILMIAH CORE IT e-issn: 2548-3528 p-issn: 2339-1766 Perancangan Aplikasi Permainan Reversi Menggunakan Metode Greedy Edy 1), Wilianto 2), Yuliana 3) STMIK IBBI Jalan Sei Deli No. 18 Medan e-mail: edyhua93@gmail.com, wiliantogan@yahoo.com, mickey_yuli@hotmail.co.id Abstrak Reversi merupakan permainan catur sederhana yang menggunakan papan permainan dan keping hitam putih. Reversi dimainkan oleh dua orang. Permasalahan muncul apabila tidak ada teman yang dapat diajak bermain atau pemain tidak memiliki perangkat permainan. Untuk mengatasi masalah ini, dapat dibangun suatu aplikasi permainan Reversi. Metode Greedy digunakan untuk membangun kecerdasan komputer. Metode Greedy akan menghitung dan selalu menempatkan keping pada petak, dimana Greedy bisa memakan atau membalik keping pemain yang paling banyak, tetapi bila ada keping yang dapat diletakkan di sudut papan, maka peletakan keping pada sudut papan akan lebih diprioritaskan. Aplikasi menerapkan kecerdasan buatan pada komputer dengan menggunakan algoritma Greedy, sehingga komputer akan selalu meletakkan keping pada petak permainan, dimana komputer bisa memakan atau membalikkan keping pemain yang paling banyak, namun komputer akan memprioritaskan penempatan keping pada sudut papan bila memungkinkan. Aplikasi mencatat daftar nilai tertinggi user saat mengalahkan komputer dan dapat menampilkan langkah-langkah yang valid yang dapat dilakukan, sehingga dapat membantu pemain. Kata kunci: Permainan, Reversi, Greedy. Abstract Reversi is a simple chess game that uses board games and black and white pieces. Reversi is played by two people. Problems arise if no friend can be invited to play or the player does not have a game device. To solve this problem, a Reversi game application can be built. The Greedy method is used to build computer intelligence. The Greedy method will calculate and always place the slice on the plot, where Greedy can eat or flip the player's most chips, but if there are pieces that can be placed on the corners of the board, then the placement of the slings on the board will be prioritized. Applications apply artificial intelligence to computers using the Greedy algorithm, so the computer will always put the pieces on the game plot, where the computer can eat or turn the player's most chips, but the computer will prioritize the placement of the chip at the corners of the board whenever possible. The app keeps a record of the user's highest score when it beats the computer and can display valid steps that can be done, so it can help the player. Keywords: Games, Reversi, Greedy. 1. Pendahuluan Game komputer berkembang pesat pada era teknologi informasi. Sebuah permainan dapat dimainkan dengan cepat, mudah dan murah dengan menggunakan game komputer. Salah satu permainan papan yang sangat terkenal dan populer adalah Reversi. Permainan Reversi merupakan permainan catur sederhana yang menggunakan papan permainan dan keping hitam putih. Papan permainan dibagi menjadi petak-petak kecil dengan jumlah dan ukuran yang sama sebagai media untuk menempatkan keping permainan. Keping berwarna hitam dan putih. Permainan Reversi dapat dimainkan oleh dua orang pemain. Apabila ada seorang pemain yang ingin bermain, maka pemain tersebut perlu mengajak temannya, bertemu secara fisik dan pemain harus membawa perangkat permainan. Masalah akan muncul apabila tidak ada teman yang dapat diajak bermain atau pemain tidak memiliki perangkat permainan. Untuk mengatasi masalah ini, permainan Reversi dapat dibuat menjadi aplikasi game, sehingga pemain dapat memainkan Reversi sendirian (melawan komputer), kapanpun dan dimanapun tanpa perlu berinteraksi langsung secara fisik dengan objek permainan, kecuali melalui perantara komputer. Setiap pemain bergerak berdasarkan giliran pada permainan Reversi. Permainan akan berakhir bila seluruh papan permainan sudah terisi penuh. Pemain dengan jumlah keping terbanyak pada papan
46 permainan akan menjadi pemenang. Artificial Intelligence (AI), atau lebih sering disebut dengan kecerdasan buatan, dirancang sebagai lawan dari pemain. Prioritas utama dari AI adalah menempatkan keping di keempat sudut pada papan permainan, yaitu sudut kiri atas, kiri bawah, kanan atas dan kanan bawah. Keping yang berada di sudut tidak dapat dibalik oleh pemain, sehingga memperbesar potensi AI untuk menang. AI akan menempatkan kepingnya pada petak, dimana AI dapat memakan keping pemain paling banyak, jika tidak ada keping yang dapat diletakkan pada sudut permainan. Metode ini disebut dengan Greedy. Metode Greedy memiliki arti rakus atau tamak, dan memiliki prinsip Take what you can get now! atau Ambillah apa yang dapat anda ambil saat ini. Algoritma Greedy mendapatkan solusi melalui tahapan langkah per langkah (step by step) dan selalu mengambil pilihan terbaik yang ada pada saat itu tanpa memperhatikan konsekuensi ke depan. Harapannya adalah pemilihan alternatif terbaik pada setiap langkah akan berakhir dengan hasil terbaik. Metode Greedy akan menghitung dan selalu menempatkan keping pada petak, dimana Greedy bisa memakan keping pemain yang paling banyak. 2. Metodologi Penelitian Perancangan aplikasi permainan Reversi menggunakan metode Greedy ini dilakukan dengan menggunakan metodologi siklus hidup pengembangan sistem, atau biasa disebut juga dengan Waterfall. Tahapan dari metodologi penelitian dapat digambarkan dalam bentuk diagram alir, seperti terlihat pada Gambar 1. Analisis Kebutuhan Sistem Desain / Perancangan Sistem Penulisan Kode Program (Coding) Pengujian Program Gambar 1. Metodologi Penelitian 2.1. Analisis Kebutuhan Sistem Analisis sistem bertujuan untuk mengetahui hal-hal yang harus dilakukan dalam mengembangkan aplikasi. Analisis kebutuhan dari sistem usulan merupakan proses identifikasi dan evaluasi permasalahan-permasalahan yang ada, sehingga sistem yang dibangun sesuai dengan kriteria yang diharapkan. Oleh karena itu, sistem yang dibangun harus memenuhi kebutuhan sebagai berikut: 1. Aplikasi mendukung permainan Reversi dengan ukuran 8 x 8. 2. Aplikasi menggunakan algoritma Greedy untuk menentukan langkah yang diambil oleh komputer. 3. Aplikasi dapat menampilkan skor bagi pemain dan komputer. 4. Aplikasi dapat menampilkan history gerakan pemain dan komputer. 5. Aplikasi dapat menampilkan petak-petak yang dapat ditempati keping pemain. 6. Aplikasi dapat menyimpan nama pemain yang berhasil masuk ke dalam 20 nilai tertinggi. Nilai diperoleh dari waktu yang dibutuhkan oleh pemain untuk mengalahkan komputer. Komputer dirancang sebagai lawan dari pemain. Langkah-langkah yang diambil oleh komputer digerakkan secara otomatis dengan menggunakan kecerdasan buatan (Artificial Intelligence atau AI). Algoritma yang digunakan AI untuk pengambilan keputusan dalam permainan Reversi ini adalah algoritma Greedy. Greedy merupakan metode yang paling populer untuk memecahkan persoalan
47 optimasi. Greedy berarti rakus atau tamak. Algoritma Greedy memiliki prinsip Take what you can get now! atau Ambillah apa yang dapat anda ambil saat ini. Oleh karena itu, algoritma Greedy membentuk solusi langkah per langkah (step by step) dan selalu mengambil pilihan terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan, dengan harapan pemilihan opsi terbaik pada setiap langkah akan berakhir dengan pencapaian hasil yang terbaik. Algoritma Greedy akan selalu menghitung dan menempatkan keping di petak, dimana Greedy bisa memakan keping yang paling banyak. 2.2. Perancangan Sistem Perancangan aplikasi, terdiri dari perancangan tampilan aplikasi dan perancangan database. Perancangan tampilan aplikasi dilakukan dengan merancang bentuk form di dalam aplikasi secara sederhana. Tools yang digunakan untuk merancang prototype ini adalah Microsoft Visio. Penggambaran proses dilakukan dengan menggunakan flowchart. 2.3. Penulisan Kode Program Penulisan kode program (coding) dilakukan dengan menggunakan bahasa pemrograman Microsoft Visual Basic.Net 2010 dan menggunakan database Microsoft Access 2007. Komponen yang digunakan dalam pembuatan perangkat lunak ini adalah komponen standard VB.Net standard, tanpa komponen tambahan dari luar. 2.4. Pengujian Sistem Proses pengujian berfokus pada fungsionalitas dari aplikasi. Pengujian akan dilakukan dengan menggunakan metode black box testing dengan beberapa skenario pengujian sebagai berikut: 1. Pengujian terhadap proses meletakkan keping pemain pada kotak yang valid (kotak yang dapat ditempatkan keping pemain). 2. Pengujian terhadap proses meletakkan keping pemain pada kotak yang tidak valid (kotak yang tidak dapat ditempatkan keping pemain). 3. Pengujian terhadap proses memakan atau membalikkan keping lawan. 4. Pengujian terhadap langkah komputer dengan menggunakan algoritma Greedy. 5. Pengujian terhadap proses pass (pemain atau komputer tidak dapat jalan). 6. Pengujian terhadap proses berakhirnya permainan. 7. Penguijan terhadap daftar nilai tertinggi (highest score). 3. Hasil dan Analisis Analisis akan dilakukan pada proses permainan dan proses analisis pengambilan keputusan dengan algoritma Greedy. Proses permainan mencakup ukuran papan yang digunakan dan aturan permainan Reversi, sedangkan proses analisis pengambilan keputusan menggunakan algoritma Greedy. 3.1. Proses Permainan Reversi Dua keping Reversi berwarna hitam dan putih diletakkan di tengah-tengah papan permainan yang berukuran 8 x 8 dengan susunan diagonal di awal permainan, seperti terlihat pada gambar 2. Gambar 2. Posisi Awal Permainan Perancangan Aplikasi Permainan Reversi Menggunakan Metode Greedy (Edy, Wilianto, Yuliana )
48 Aturan permainan Reversi selanjutnya adalah sebagai berikut: 1. Pemain hitam melangkah terlebih dahulu. 2. Keping hitam harus diletakkan di kotak kosong, dimana keping hitam akan mengapit satu atau beberapa keping putih secara berurutan dalam posisi horizontal, vertikal dan diagonal di antara dua buah keping hitam. Dengan demikian, maka keping hitam dapat diletakkan pada posisi c4, d3, e6 dan f5 (kotak ditandai dengan tanda ), seperti terlihat pada gambar 3. Gambar 3. Posisi yang dapat ditempati Keping Hitam 3. Satu atau beberapa keping putih yang berada di antara apitan dua buah keping hitam akan dibalik menjadi keping hitam, seperti contoh berikut: jika keping hitam diletakkan pada c4, maka keping putih pada kotak d4 berada di antara apitan keping hitam pada kotak c4 dan keping hitam pada kotak e4, sehingga keping putih dibalik menjadi keping hitam, seperti terlihat pada gambar 4. Gambar 4. Keping Putih pada d4 dibalik Menjadi Keping Hitam 4. Giliran berikutnya adalah pemain putih meletakkan keping putih pada papan permainan dengan mengikuti aturan yang sama, yaitu keping putih harus diletakkan di kotak kosong, sehingga dua keping putih mengapit satu atau beberapa keping hitam. Keping hitam yang berada di antara apitan keping putih akan diubah menjadi keping putih, seperti contoh berikut: jika pemain putih meletakkan keping pada c5, maka posisi permainan akan seperti pada gambar 5.
49 Gambar 5. Keping Putih Diletakkan Pada Kotak c5 5. Pemain harus pass dan melewatkan gilirannya ke pemain lain jika pemain tidak dapat jalan karena tidak ada keping yang dapat diletakkan, sesuai dengan aturan yang berlaku, seperti contoh yang terlihat pada gambar 6, dimana pemain hitam tidak dapat jalan dan harus pass ke pemain putih. 1 2 3 4 5 6 7 8 a b c d e f g h Pemain Hitam tidak bisa melangkah Gambar 6. Pemain Hitam Tidak Bisa Jalan 6. Permainan akan berakhir jika kedua pemain sama-sama tidak bisa melangkah atau apabila papan permainan sudah penuh. 7. Pemain dengan jumlah keping terbanyak adalah pemenang dari permainan. 3.2. Pengambilan Keputusan dengan Algoritma Greedy Pemain lawan dirancang sebagai lawan dari pemain yang dapat digerakkan secara otomatis dengan menggunakan Kecerdasan Buatan (Artificial Intelligence atau AI). Algoritma yang digunakan AI untuk pengambilan keputusan dalam permainan Reversi ini adalah algoritma Greedy. Algoritma Greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Greedy berarti rakus atau tamak, sehingga algoritma Greedy memiliki prinsip Take what you can get now! atau Ambillah apa yang dapat anda ambil saat ini. Algoritma Greedy membentuk solusi langkah per langkah (step by step) dan selalu mengambil pilihan terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan, dengan harapan pemilihan opsi terbaik pada setiap langkah akan berakhir dengan pencapaian hasil yang terbaik (optimum global). Algoritma Greedy akan selalu menghitung dan menempatkan keping di petak, dimana Greedy bisa memakan keping pemain yang paling banyak. Keadaan permainan awal Reversi seperti terlihat pada gambar 7, dengan AI adalah pemain putih. Perancangan Aplikasi Permainan Reversi Menggunakan Metode Greedy (Edy, Wilianto, Yuliana )
50 Gambar 7. Keadaan Awal Permainan Keadaan permainan seperti terlihat pada gambar 4.6, maka algoritma Greedy akan menghitung banyaknya kepingan hitam yang dapat dibalik menjadi keping putih pada setiap kotak, dan memutuskan untuk meletakkan keping putih pada kotak dimana terdapat keping hitam yang paling banyak untuk dibalik menjadi keping putih. Illustrasinya dapat dilihat pada gambar 8. Gambar 8. Keadaan Permainan Gambar 8 memperlihatkan bahwa AI memutuskan untuk meletakkan keping putih pada kotak a1 dimana kotak a1 mendapatkan nilai paling maksimum, yaitu 4 atau dengan kata lain AI dapat membalik 4 keping hitam. Kotak a1 adalah kotak dimana AI dapat membalikkan keping lawan paling banyak bila dibandingkan dengan kotak lainnya. Rincian algoritma Greedy yang akan digunakan AI untuk pengambilan keputusan dalam permainan Reversi adalah sebagai berikut: 1. Periksa setiap kotak di sekitar kepingan dan catat banyaknya keping user yang dapat dibalik. 2. Pilih kotak dengan nilai paling tinggi dan tempatkan keping AI pada kotak tersebut. 3. Jika terdapat beberapa kotak dengan nilai maksimum yang sama, maka AI akan memilih salah satu kotak. Proses pengambilan keputusan AI dalam permainan Reversi dapat digambarkan dalam bentuk flowchart, seperti terlihat pada gambar 9.
51 START Periksa setiap kotak dan berikan nilai sebesar banyaknya keping user yang dapat dibalik oleh AI Max = Nilai paling tinggi pada kotak Max = 0? YA Pass dan lewatkan giliran ke user TIDAK Letakkan keping AI pada kotak yang memiliki nilai = Max Balik keping user yang terapit menjadi keping AI END Gambar 9. Flowchart Pengambilan Keputusan AI Komputer atau AI akan memprioritaskan penempatan keping pada sudut dan tidak mengambil keputusan berdasarkan algoritma Greedy jika terdapat kondisi dimana komputer dapat menempatkan bidak pada sudut papan. 3.3. Penentuan Nilai Tertinggi Nilai tertinggi ditentukan dari waktu yang dibutuhkan pemain untuk mengalahkan komputer. Semakin cepat waktu yang diperoleh, maka rangking pemain akan semakin tinggi. Jika ada beberapa pemain yang memperoleh waktu yang sama, maka yang dihitung adalah jumlah keping pemain saat permainan berakhir. Semakin banyak jumlah keping pemain, maka pemain akan memperoleh rangking yang lebih tinggi. 3.4. Analisa Pemodelan Sistem Pemodelan aplikasi dirancang dengan menggunakan Unified Modeling Language (UML). Use case adalah diagram UML yang dapat digunakan untuk menganalisis dan memodelkan sistem. Gambar 10 adalah use case dari aplikasi yang dibangun. Gambar 10. Diagram Use Case dari Aplikasi Perancangan Aplikasi Permainan Reversi Menggunakan Metode Greedy (Edy, Wilianto, Yuliana )
52 Gambar 10 menunjukkan interaksi antara pengguna dan sistem di dalam diagram use case. Aktor use case adalah user yang memainkan aplikasi. Use case Permainan terdiri dari use case Input nama, use case mulai permainan baru, use case tampilkan letak keping valid. Use case Nilai Tertinggi meliputi use case Hapus Semua Nilai. Class diagram dari sistem dapat dilihat pada gambar 11. Pemain + Nama + KepingPemain + BisaJalan + LetakkanKeping Reversi + PapanReversi + NilaiPemainAI + Waktu + MulaiPermainan + UbahGiliran + VerifikasiSeri + VerifikasiPemenang + TampilkanGerakanLegal + PermainanBaru Papan + ListPetak + ListKeping AI + KepingAI + BerpikirGreedy + BisaJalan + LetakkanKeping NilaiTertinggi + DaftarNilai + TampilkanNilai + RefreshPapan Gambar 11. Class Diagram dari Sistem Gambar 11 memperlihatkan bahwa sistem memiliki beberapa class, seperti class Reversi, class Papan, class Pemain, class AI dan class NilaiTertinggi. Proses yang terjadi di dalam aplikasi juga dapat digambarkan dengan activity diagram seperti terlihat pada gambar 12. USER Bermain melawan Komputer SISTEM Melakukan perhitungan algoritma Greedy dan bermain melawan user Menekan tombol Permainan Menampilkan form Input Nama Memasukkan nama pemain Menyimpan nama dan menampilkan form Permainan Menekan tombol Mulai Permainan Baru Menampilkan form Pilih untuk memilih yang jalan terlebih dahulu, apakah pemain atau komputer Memilih apakah pemain atau komputer yang jalan terlebih dahulu Memulai waktu permainan Memilih petak untuk meletakkan keping pemain Melakukan perhitungan dengan algoritma Greedy dan memilih petak dengan nilai tertinggi. Sudut petak lebih diprioritaskan untuk diletakkan keping oleh komputer Memeriksa akhir permainan. Menyimpan nama dan jumlah keping ke database apabila pemain memenangkan permainan dan masuk pada 20 nilai tertinggi Gambar 12. Activity Diagram dari Sistem
53 Gambar 12 memperlihatkan aktivitas yang dilakukan oleh user dan respons dari sistem di dalam aplikasi permainan Reversi. Activity diagram dimulai dari saat user menekan tombol Permainan dan berakhir saat salah satu pemain menang. 4. Kesimpulan dan Saran Setelah menyelesaikan perancangan aplikasi permainan reversi menggunakan metode Greedy, beberapa hal yang dapat ditarik sebagai kesimpulan adalah sebagai berikut: 1. Aplikasi menerapkan kecerdasan buatan pada komputer dengan menggunakan algoritma Greedy, sehingga komputer akan selalu meletakkan keping pada petak permainan, dimana komputer bisa memakan atau membalikkan keping pemain yang paling banyak, namun komputer akan memprioritaskan penempatan keping pada sudut papan bila memungkinkan. 2. Aplikasi dapat menampilkan langkah-langkah yang valid yang dapat dilakukan, sehingga dapat membantu pemain. 3. Aplikasi menampilkan history pergerakan user dan komputer, sehingga dapat diketahui langkahlangkah yang dilakukan selama permainan. 4. Aplikasi mencatat daftar nilai tertinggi, sehingga dapat diketahui 20 pemain tercepat yang berhasil mengalahkan komputer. Beberapa saran yang dapat diberikan dan mungkin dapat membantu dalam pengembangan aplikasi ini lebih lanjut adalah: 1. Dipertimbangkan untuk mengembangkan aplikasi menggunakan metode kecerdasan buatan lainnya, seperti algoritma DFS, algoritma heuristik atau algoritma A*, sehingga dapat dibandingkan metode terbaik yang dapat menjadi lawan bagi user. 2. Dipertimbangkan untuk menambahkan komponen winsock dan teknik pemrograman jaringan, sehingga aplikasi ini dapat dimainkan melaui jaringan lokal dan jaringan internet. 3. Dipertimbangkan untuk mengembangkan aplikasi sehingga dapat mendukung ukuran papan Reversi yang fleksibel. Referensi : [1] Ayuliana. (2009). Testing dan Implementasi. Jakarta: Gunadarma. [2] Kendall dan Kendall (2010). Analisis dan Perancangan Sistem. Jakarta: PT. Indeks. [3] Munir. (2011). Algoritma Greedy. Bandung: Sekolah Teknik Elektro dan Informatika ITB. [4] Pangajow. (2011). RPG Studio. Jakarta: Elex Media Komputindo. [5] Prasetyo. (2011). Stategi Bermain Othello. Jakarta: Genethello. [6] Pressman, R. (2012). Rekayasa Perangkat Lunak. Yogyakarta: Andi. [7] Rouf (2013). Pengujian Perangkat Lunak dengan Menggunakan Metode White Box dan Black Box. Semarang: STMIK Himsya. [8] Sibero. (2011). Langkah Mudah Membuat Game 3D. Yogyakarta: Mediakom. [9] Sigiro. (2011). Analisis Dan Implementasi Penyelesaian Game Minesweeper Menggunakan Algoritma Greedy Best First Search. Medan: Universitas Sumatera Utara [10] Sitorus. (2015). Algoritma dan Pemrograman. Yogyakarta: Andi. [11] Sutojo. (2011). Kecerdasan Buatan. Yogyakarta: Andi. [12] Tarigan. (2013). Analisis Dan Implementasi Algoritma Linear Search Pada Permainan Word Scramble. Medan: Universitas Sumatera Utara. [13] Utami dan Sukrisno. (2015). 10 Langkah Belajar Logika dan Algoritma Menggunakan Bahasa C dan C++ di GNU/Linux. Yogyakarta: Andi. [14] Wahid. (2014). Dasar-Dasar Algoritma & Pemrograman. Yogyakarta: Andi. [15] Winarto, E. dan Zaki, A. (2010). Dasar-Dasar Pemograman dengan Visual Basic 2010. Jakarta: PT. Elex Media Komputindo. [16] Yulita. (2013). Algoritma dan Pemrograman. Yogyakarta:STMIK Amikom. [17] Zulhidayati. (2013). Aplikasi Algoritma Greedy dan Program Dinamis pada Permainan Greedy Spiders. Bandung: Universitas Pendidikan Indonesia. Perancangan Aplikasi Permainan Reversi Menggunakan Metode Greedy (Edy, Wilianto, Yuliana )