• Tidak ada hasil yang ditemukan

Aplikasi Permainan Congklak Berbasis Android Menggunakan Algoritma Minimax

N/A
N/A
Protected

Academic year: 2016

Membagikan "Aplikasi Permainan Congklak Berbasis Android Menggunakan Algoritma Minimax"

Copied!
110
0
0

Teks penuh

(1)

SKRIPSI

KARINA AYESHA

081402051

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Teknologi Informasi

KARINA AYESHA 081402051

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : APLIKASI PERMAINAN CONGKLAK BERBASIS

ANDROID MENGGUNAKAN ALGORITMA MINIMAX

Kategori : SKRIPSI

Nama : KARINA AYESHA

Nomor Induk Mahasiswa : 081402051

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

(FASILKOMTI) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 19 Februari 2013

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dra.Elly Rosmaini, M.Si Sajadin Sembiring, S.Si, M.Comp.Sc NIP 196005201985032002

Diketahui/Disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

(4)

PERNYATAAN

APLIKASI PERMAINAN CONGKLAK BERBASIS ANDROID MENGGUNAKAN ALGORITMA MINIMAX

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 19 Februari 2013

(5)

PENGHARGAAN

Puji syukur penulis ucapkan kepada Allah SWT yang telah melimpahkan rahmat dan

karunia-Nya sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk

memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi

Departemen Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada Sajadin Sembiring, S.Si, M.Comp.Sc

selaku pembimbing pertama dan Dra. Elly Rosmaini, M.Si selaku pembimbing kedua yang

telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.

Ucapan terima kasih juga ditujukan kepada Sarah Purnamawati, ST, M.Sc dan Dedy

Arisandi, ST, M.Kom yang telah bersedia menjadi dosen penguji. Ucapan terima kasih juga

ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer dan Teknologi Informasi,

Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas

Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Teknologi Informasi

Departemen Teknologi Informasi FASILKOMTI USU.

Tidak lupa juga penulis ucapkan terima kasih kepada Ayahanda Alfian Anwar, S.E.

dan Ibunda Hj.T.Meisyura yang memberikan dukungan, doa, dan semangat tanpa henti.

Untuk abang penulis, Willy Sahira dan adik penulis, Wiruza Mahesa yang selalu memberikan

dorongan kepada penulis selama menyelesaikan skripsi ini. Terima kasih penulis ucapkan

kepada teman-teman terdekat yang selalu memberikan dukungan, Saysa Mauli Ramadhani,

Ahwania Muchtar, Halida Rahmah, Indriazel Syaputri, Rahmatika, Elfina, Mauza Saputri,

Syahfitri Kartika Lidya, Cahya Rizki, Ishri Ifdhillah, dan Karina Andi serta teman-teman satu

angkatan yang sama-sama berjuang dalam penyusunan skripsi. Sekali lagi penulis

mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian tugas

akhir ini yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran dan motivasi

(6)

ABSTRAK

Congklak merupakan salah satu permainan tradisional yang sudah semakin langka saat ini. Permainan ini dimainkan oleh dua pemain dengan menggunakan sebuah papan congklak dan biji congklak yang berjumlah 14 x 7 buah. Pemain yang berhasil mengumpulkan biji lebih banyak di lumbungnya adalah pemenang dari permainan ini. Kesulitan dari permainan congklak adalah menentukan lubang mana yang merupakan pilihan terbaik sehingga pemain dapat terus melanjutkan permainan. Algoritma Minimax dapat diterapkan pada permainan congklak ini karena mampu menganalisis segala kemungkinan posisi permainan untuk menghasilkan langkah optimum. Untuk mengurangi ruang pencarian sekaligus sebagai optimasi, maka penulis menggunakan algoritma Alpha Beta Pruning. Hasil yang diperoleh dari aplikasi yang dibangun adalah bahwa implementasi algoritma Minimax pada permainan congklak dapat menghasilkan langkah terbaik. Permainan congklak ini dibangun pada sistem operasi Android.

(7)

CONGKLAK APPLICATION BASED ON ANDROID USING MINIMAX ALGORITHM

ABSTRACT

Congklak is one of the traditional games which getting rare nowadays. Therefore, the author build a congklak game application based on Android to conserve the game and make the congklak game be more practical and economical. Congklak game application is built by implementing Minimax algorithm because it is able to analyze all the possible positions of the game to generate optimum step. To reduce the search space and also as optimization, the author use Alpha Beta Pruning algorithm. The results obtained from the application which has been built shows that the implementation Minimax algorithm on congklak game can generate the best move.

(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

1.4Tujuan Penelitian 3

1.5Manfaat Penelitian 3

1.6Metodologi Penelitian 4

1.7Sistematika Penulisan 4

Bab 2 Landasan Teori 6

2.1Kecerdasan Buatan 6

2.1.1 Penggunaan Kecerdasan Buatan di berbagai Bidang 7

2.2Game (Permainan) 9

2.2.1 Teori Game 9

2.2.2 Klasifikasi Game 10

2.3Permainan Congklak 12

2.3.1 Sejarah Permainan Congklak 12

2.3.2 Aturan Permainan Congklak 13

2.4Teknik Pencarian (Searching) 14

2.5Algoritma Depth-First Search (DFS) 15

2.6Algoritma Minimax 16

2.7Algoritma Alpha Beta Pruning 18

2.8Android 19

2.8.1 Arsitektur Android 20

2.8.2 Versi Android 22

2.9Penelitian Sebelumnya 23

Bab 3 Analisis dan Perancangan Aplikasi 25

3.1Analisis Algoritma 25

3.1.1 Analisis Algoritma Permainan Congklak 25

3.1.2 Analisis Algoritma Minimax 29

3.1.3 Analisis Algoritma Alpha Beta Pruning 35

3.2Perancangan Sistem 35

(9)

3.2.1.1Use Case Diagram 36

3.2.1.2Activity Diagram 36

3.2.2 Perancangan Aplikasi Permainan 43

3.2.3 Perancangan Antarmuka 44

Bab 4 Implementasi dan Pengujian Aplikasi 50

4.1Implementasi 50

4.1.1 Spesifikasi Perangkat Keras 50

4.1.2 Spesifikasi Perangkat Lunak 50

4.2Tampilan Aplikasi 52

4.2.1 Tampilan Form Menu 52

4.2.2 Tampilan Form Choose Level 52

4.2.3 Tampilan form pilih giliran pemain 53

4.2.4 Tampilan form permainan 53

4.2.5 Tampilan form Rules 56

4.2.6 Tampilan form About 57

4.3Pengujian 57

4.3.1 Pengujian Aplikasi 58

4.3.2 Pengujian Antarmuka Aplikasi 58

4.3.3 Pengujian Penggunaan Aplikasi 61

Bab 5 Kesimpulan dan Saran 64

5.1Kesimpulan 64

5.2Saran 65

Daftar Pustaka 66

(10)

DAFTAR TABEL

Halaman

Tabel 2.1 Versi-versi Android 22

Tabel 2.2 Penelitian Sebelumnya 24

Tabel 3.1 Proses Single Player 37

Tabel 3.2 Proses Choose Level 38

Tabel 3.3 Proses Multiplayer 39

Tabel 3.4 Proses Play 39

Tabel 3.5 Proses Rules 41

Tabel 3.6 Proses About 42

Tabel 3.7 Proses Exit 42

Tabel 4.1 Kategori Pemberian Nilai 58

Tabel 4.2 Hasil Kuesioner Antarmuka Aplikasi 59

(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Papan Congklak 12

Gambar 2.2 Penelusuran pohon permainan dengan DFS 15

Gambar 2.3 Cara kerja algoritma Minimax 17

Gambar 2.4 Cara kerja algoritma Alpha Beta Pruning 19

Gambar 2.5 Komponen utama Arsitektur Android 20

Gambar 3.1 Keadaan papan congklak untuk menemukan langkah free turn 26 Gambar 3.2 Pohon permainan untuk menemukan langkah free turn 27 Gambar 3.3 Keadaan papan congklak untuk menemukan langkah tembak 28 Gambar 3.4 Pohon permainan untuk menemukan langkah tembak 29 Gambar 3.5 Keadaan papan congklak pada simulasi menemukan langkah terbaik 30 Gambar 3.6 Pohon permainan menggunakan algoritma Minimax pada simulasi

menemukan langkah terbaik 31

Gambar 3.7 Keadaan papan congklak setelah lubang B7 menemukan langkah

free turn 32

Gambar 3.8 Pohon permainan menggunakan algoritma Minimax pada simulasi

player (a) 32

Gambar 3.9 Keadaan papan congklak setelah lubang B7 menemukan langkah

free turn 33

Gambar 3.10 Pohon permainan menggunakan algoritma Minimax pada simulasi

player (b) 33

Gambar 3.11 Pohon penelusuran algoritma Minimax 34

Gambar 3.12 Pohon permainan menggunakan algoritma Alpha Beta Pruning 35

Gambar 3.13 Use Case Diagram 36

Gambar 3.14 Activity diagram Single Player 37

Gambar 3.15 Activity diagram Choose Level 38

Gambar 3.16 Activity diagram Multiplayer 39

Gambar 3.17 Activity diagram Play 40

Gambar 3.18 Activity diagram Rules 41

Gambar 3.19 Activity diagram About 42

Gambar 3.20 Activity diagram Exit 43

Gambar 3.21 Flowchart aplikasi permainan 44

Gambar 3.22 Form Home 45

Gambar 3.23 Form Choose Level 46

Gambar 3.24 Form pilih giliran pemain 47

Gambar 3.25 Form Rules 47

Gambar 3.26 Form About 48

Gambar 3.27 Form Arena Permainan 49

Gambar 4.1 Tampilan form menu 52

Gambar 4.2 Tampilan form Choose Level 53

Gambar 4.3 Tampilan form pilih giliran pemain 53

(12)

Gambar 4.6 Tampilan saat permainan sedang berlangsung 55 Gambar 4.7 Tampilan permainan dalam keadaan paused 55

Gambar 4.8 Message dialog 56

Gambar 4.9 Tampilan ketika permainan sudah berakhir 56

Gambar 4.10 Tampilan form Rules 57

(13)

ABSTRAK

Congklak merupakan salah satu permainan tradisional yang sudah semakin langka saat ini. Permainan ini dimainkan oleh dua pemain dengan menggunakan sebuah papan congklak dan biji congklak yang berjumlah 14 x 7 buah. Pemain yang berhasil mengumpulkan biji lebih banyak di lumbungnya adalah pemenang dari permainan ini. Kesulitan dari permainan congklak adalah menentukan lubang mana yang merupakan pilihan terbaik sehingga pemain dapat terus melanjutkan permainan. Algoritma Minimax dapat diterapkan pada permainan congklak ini karena mampu menganalisis segala kemungkinan posisi permainan untuk menghasilkan langkah optimum. Untuk mengurangi ruang pencarian sekaligus sebagai optimasi, maka penulis menggunakan algoritma Alpha Beta Pruning. Hasil yang diperoleh dari aplikasi yang dibangun adalah bahwa implementasi algoritma Minimax pada permainan congklak dapat menghasilkan langkah terbaik. Permainan congklak ini dibangun pada sistem operasi Android.

(14)

CONGKLAK APPLICATION BASED ON ANDROID USING MINIMAX ALGORITHM

ABSTRACT

Congklak is one of the traditional games which getting rare nowadays. Therefore, the author build a congklak game application based on Android to conserve the game and make the congklak game be more practical and economical. Congklak game application is built by implementing Minimax algorithm because it is able to analyze all the possible positions of the game to generate optimum step. To reduce the search space and also as optimization, the author use Alpha Beta Pruning algorithm. The results obtained from the application which has been built shows that the implementation Minimax algorithm on congklak game can generate the best move.

(15)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Congklak merupakan salah satu permainan tradisional yang sangat diminati oleh

berbagai kalangan, khususnya anak-anak. Congklak adalah permainan yang

dimainkan oleh dua orang pemain menggunakan papan congklak yang terdapat 16

buah lubang yang terdiri atas 14 lubang kecil yang saling berhadapan dan 2 lubang

besar (untuk selanjutnya disebut lumbung) yang berada di sisi kiri paling ujung setiap

pemain (Bakri, 2010). Setiap 7 lubang kecil di sisi pemain dan lubang besar di sisi

kirinya dianggap sebagai milik sang pemain. Lumbung berfungsi untuk menampung

jumlah biji yang didapatkan setiap pemain, tentu saja pemain hanya boleh

menjatuhkan biji congklak ke lumbung miliknya, tujuannya agar lumbungnya terisi

banyak biji. Lubang kecil berfungsi sebagai posisi awal jumlah biji pemain dan

menjadi media gerak pemain untuk memindahkan biji agar berpindah

sebanyak-banyaknya ke lumbung milik sendiri.

Seiring berkembangnya pengetahuan dan teknologi, permainan congklak dapat

diselesaikan oleh komputer dengan mengimplementasikan algoritma. Algoritma

Minimax dapat diterapkan pada aplikasi permainan congklak ini karena mampu

menganalisis segala kemungkinan posisi permainan untuk menghasilkan keputusan

yang terbaik. Untuk mempersingkat waktu pencarian sekaligus sebagai optimasi,

maka penulis menggunakan algoritma Alpha Beta Pruning. Alpha Beta Pruning

merupakan algoritma yang akan mengurangi ruang pencarian Minimax sehingga

(16)

Pencarian solusi pada permainan congklak sudah pernah dilakukan dengan

menggunakan beberapa metode, diantaranya Adha (2009) menggunakan algoritma

Greedy untuk membuktikan solusi optimum yang akan dihasilkan. Algoritma Greedy

dapat memecahkan masalah optimum, namun tidak selalu menghasilkan solusi yang

optimum. Selanjutnya yaitu Bakri (2010) menggunakan algoritma Backtracking.

Algoritma ini secara sistematis mencari solusi persoalan diantara semua kemungkinan

solusi yang ada. Namun langkah yang diambil belum tentu merupakan langkah yang

terbaik, sehingga memungkinkan terjadi terlalu banyak backtracking yang harus

dilakukan.

Perkembangan smartphone/tablet pc berbasis Android sangat pesat beberapa

tahun terakhir. Perkembangan tersebut mengakibatkan meningkatnya aplikasi-aplikasi

mobile berbasis Android. Untuk itu penulis tertarik untuk merancang dan membangun

aplikasi permainan congklak di smartphone/tablet pc berbasis Android.

Berdasarkan uraian diatas, diperlukan metode lain dalam membangun aplikasi

permainan congklak untuk menghasilkan solusi optimum. Oleh sebab itu penulis akan

menerapkan algoritma Minimax yang dioptimasi dengan Alpha Beta Pruning untuk

membuat aplikasi permainan congklak pada smartphone/tablet pc berbasis Android.

1.2 Rumusan Masalah

Congklak termasuk jenis permainan matematika. Dalam memainkannnya seorang

pemain dituntut untuk menghitung cepat dengan memperhitungkan hasil yang akan

terjadi sehingga menghasilkan langkah optimum. Kesulitan dari permainan congklak

adalah menentukan lubang mana yang merupakan pilihan terbaik sehingga pemain

dapat terus melanjutkan permainan.

Permasalahan yang dibahas dalam tugas akhir ini adalah diperlukan suatu

teknik pendekatan baru pada permainan congklak untuk menghasilkan langkah

(17)

1.3 Batasan Masalah

Dalam perancangan aplikasi ini penulis memberikan batasan-batasan masalah sebagai

berikut:

1. Pada aplikasi yang dibangun, permainan congklak ini dapat dimainkan oleh

satu orang pemain (Single Player) melawan sebuah agen kecerdasan buatan

dan dapat juga dimainkan oleh dua orang pemain (Multiplayer).

2. Arena permainan berjumlah 16 lubang yang terdiri dari 2 lubang besar

(lumbung) dan 14 lubang kecil. Setiap lubang kecil berisi 7 biji congklak.

3. Pada permainan Single Player terdapat tiga tingkat kesulitan yaitu easy,

medium, dan hard.

4. Permainan congklak ini tidak memberikan batasan waktu bagi pemain.

5. Aplikasi yang dibangun menggunakan bahasa pemrograman C++. Kemudian

kode program dikonversi menjadi library untuk dijalankan pada perangkat

lunak Eclipse sehingga program dapat di-compile sebagai mobile aplication

berbasis Android.

6. Platform android yang digunakan adalah minimum Android versi 2.2 (Froyo).

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah membangun aplikasi permainan congklak dengan

mengimplementasikan algoritma Minimax yang dioptimasi dengan Alpha Beta

Pruning untuk menemukan langkah optimum.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah mampu memberikan pemahaman

kepada penulis dan pembaca tentang penggunaan algoritma Minimaxyang dioptimasi

dengan Alpha Beta Pruning dalam permainan congklak. Selain itu, aplikasi permainan

(18)

dapat melestarikan permainan kebudayaan Indonesia khususnya congklak yang sudah

semakin langka di kalangan masyarakat.

1.6 Metodologi Penelitian

Metode penelitian yang akan digunakan adalah:

1. Studi Literatur

Pada tahap ini dilakukan dengan membaca dan mempelajari buku-buku

referensi atau sumber-sumber yang berkaitan dengan skripsi ini, baik berasal

dari buku, internet. jurnal, dan beberapa referensi lainnya.

2. Analisis dan Merancang Desain Sistem

Pada tahap ini dilakukan analisis bagaimana menerapkan algoritma Minimax

yang dioptimasi oleh Alpha Beta Pruning pada permainan congklak.

3. Implementasi Sistem

Pada tahap ini akan dilakukan pengkodean dan menerapkan perancangan

aplikasi tersebut ke dalam bahasa pemrograman. Pengkodean dilakukan

dengan pemrogramana C++ yang kemudian dikonversi untuk digunakan pada

perangkat lunak Eclipse, sehingga akan dihasilkan sebuah mobile aplication

berbasis Android.

4. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap aplikasi apakah berjalan

sesuai dengan tujuan penelitian atau tidak.

5. Dokumentasi Sistem

Pada tahap ini akan dilakukan penulisan laporan mengenai aplikasi tersebut

(19)

1.7 Sistematika Penulisan

Adapun sistematika penulisan dalam skripsi ini terdiri dari beberapa bagian utama

sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini berisi uraian latar belakang pemilihan judul skripsi “Aplikasi Permainan Congklak Berbasis Android Menggunakan Algoritma Minimax”, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi, serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Pada bab ini dijelaskan mengenai dasar-dasar teori, rujukan dan metode yang

digunakan sebagai dasar dan alat untuk menyelesaikan permasalahan.

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

Bab ini berisi analisis algoritma Minimax yang dioptimasi dengan Alpha Beta Pruning

dalam permainan congklak dan perancangan aplikasi.

BAB 4 IMPLEMENTASI DAN PENGUJIAN APLIKASI

Bab ini menjelaskan implementasi dari hasil analisis dan perancangan aplikasi serta

pengujian aplikasi.

BAB 5 KESIMPULAN DAN SARAN

Pada bab terakhir akan diuraikan kesimpulan dari seluruh bab-bab sebelumnya dan

hasil penelitian yang diperoleh. Pada bab ini juga memuat saran yang diharapkan

(20)

BAB 2

LANDASAN TEORI

2.1 Kecerdasan Buatan

Menurut Rich and Knight (1991) kecerdasan buatan atau Artificial Intelligence

merupakan suatu proses belajar mengenai cara membuat komputer melakukan hal-hal

yang pada saat itu dapat dilakukan lebih baik oleh manusia. Selain itu definisi

kecerdasan buatan menurut Jogiyanto H (2000) didefinisikan sebagai suatu mesin atau

alat pintar (biasanya adalah suatu komputer) yang dapat melakukan suatu tugas yang

bilamana tugas tersebut dilakukan oleh manusia akan dibutuhkan suatu kepintaran

untuk melakukannya.

Menurut Sri Kusumadewi (2003), kecerdasan buatan jika dibandingkan

dengan kecerdasan alami memiliki beberapa keuntungan, antara lain:

a. Kecerdasan buatan lebih bersifat permanen dan konsisten, karena kecerdasan

alami hanya bergantung kepada ingatan manusia, yang mungkin saja menjadi

lupa pada waktu tertentu. Sedangkan kecerdasan buatan bergantung pada

sistem komputer dan program dari aplikasi kecerdasan buatan tersebut,

sehingga selama aplikasi dan sistem komputer tidak berubah maka kecerdasan

buatan tersebut tidak akan berubah.

b. Kecerdasan buatan lebih mudah diduplikasi dan disebarkan karena berupa

sistem, sehingga dengan mudah memindahkan pengetahuan yang ada pada

sistem tersebut dari suatu komputer ke komputer lain. Sedangkan kecerdasan

alami sulit diduplikasi karena menyampaikan pengetahuan dari satu orang ke

orang lain lebih sulit untuk dilakukan. Selain membutuhkan proses yang sangat

(21)

tidak semua orang dapat menyampaikan hal yang sama persis dari satu orang

ke orang lain.

c. Kecerdasan buatan lebih murah dan cepat dibandingkan dengan kecerdasan

alami. Menyediakan layanan komputer akan lebih mudah dan lebih murah

dibandingkan harus mendatangkan seseorang untuk mengerjakan sejumlah

pekerjaan dalam jangka waktu yang lama.

d. Kecerdasan buatan dapat didokumentasikan dengan mudah. Keputusan yang

dibuat oleh komputer dapat didokumentasikan lebih mudah dengan cara

melacak setiap aktivitas dari sistem tersebut. Sedangkan kecerdasan alami sulit

didokumentasikan karena manusia selalu berubah dan sulit untuk melacak

setiap aktivitas yang berhubungan dengan kasus yang sedang dikerjakan serta

membutuhkan waktu lama dalam pelacakan tersebut.

Sedangkan kecerdasan alami memiliki keuntungan sebagai berikut:

a. Kecerdasan alami bersifat kreatif yaitu kemampuan untuk kerkreasi yang

melekat pada manusia. Kecerdasan buatan belum mampu berkreasi sendiri.

b. Kecerdasan alami memungkinkan manusia menggunakan pengalaman secara

langsung. Sedangkan kecerdasan buatan bekerja berdasarkan input yang

dimasukkan oleh pengguna dan bentuk dari inputan tersebut berupa kode-kode

tertentu yang telah ditentukan pada awal pembutan sistem.

c. Manusia dapat memanfaatkan kecerdasannya secara luas, tanpa batas.

Sedangkan kecerdasan buatan memiliki batasan.

2.1.1 Penggunaan Kecerdasan Buatan di berbagai Bidang

Kecerdasan buatan merupakan suatu hal yang dikembangkan pada sebuah sistem oleh

para ahli untuk masa depan. Beberapa bidang perkembangan kecerdasan buatan ini

adalah sebagai berikut, yaitu (Kusumadewi, 2003):

1. Expert System (Sistem Pakar)

Sistem pakar (Expert System) adalah program penasehat berbasis komputer

yang mencoba meniru proses berpikir dan pengetahuan dari seorang pakar

(22)

pakar menentukan suatu jenis penyakit, sistem pakar untuk bisnis dan

sebagainya.

2. Robotik dan Sistem Sensor

Sistem sensor, seperti sistem vision, sistem tactile, dan sistem pemrosesan

sinyal jika dikombinasikan dengan AI, dapat dikategorikan kedalam suatu

sistem yang luas yang disebut sistem robotik.

3. Permainan (Games)

Game playing (permainan game) merupakan bidang AI yang sangat populer

berupa permainan antara manusia melawan mesin yang memiliki intelektual

untuk berpikir. Bermain dengan komputer memang menarik bahkan sampai

melupakan tugas utama yang lebih penting. Komputer dapat bereaksi dan

menjawab tindakan-tindakan yang diberikan oleh lawan mainnya. Banyak

permainan komputer telah dibuat dan dikembangkan. Sebagai contohnya

adalah permainan catur.

4. Bahasa Ilmiah (Natural Languange)

Suatu teknologi yang memberikan kemampuan kepada komputer untuk

memahami bahasa manusia sehingga pengguna komputer dapat berkomunikasi

dengan komputer dengan menggunakan bahasa sehari-hari. Bahasa computer

yang khusus pada bidang ini adalah LISP, INTERLISP, SAIL, PLANNER,

KRL, PROLOG.

5. Pemodelan Kinerja (Performance) Manusia

Pemodelan kinerja manusia telah terbukti merupakan alat yang sangat

bermanfaat dalam merumuskan dan menguji teori-teori penerapan inderawi

(23)

2.2 Game (Permainan)

Game merupakan aktivitas terstruktur yang biasanya bertujuan dalam mendapatkan

kesenangan dan bahkan digunakan sebagai suatu edukasi. Menurut Salen &

Zimmerman (2003) game merupakan suatu sistem yang memiliki aturan-aturan

tertentu dimana pemain akan terlibat di dalam suatu permasalahan sehingga dapat

menghasilkan suatu hasil yang dapat diukur yaitu menang atau kalah. Game umumnya

melibatkan stimulasi mental atau fisik, dan terkadang kedua-duanya. Banyak game

membantu mengembangkan keterampilan praktis, berfungsi sebagai bentuk latihan,

atau melakukan peran pendidikan, simulational, atau psikologis.

2.2.1 Teori Game

Teori permainan adalah suatu cara belajar yang digunakan dalam menganalisa

interaksi antara sejumlah pemain maupun perorangan yang menunjukkan

strategi-strategi rasional (Leyton-Brown & Shoham, 2008).

Teori permainan dapat diklasifikasikan kedalam beberapa bagian, yaitu:

a. Number of Players

Hampir semua jenis permainan papan yang memiliki sistem pencarian langkah

berbasis algoritma pada AI hanya memiliki dua pemain. Sebagian besar bentuk

dasar dari algoritma-algoritma tersebut hanya terbatas untuk dua pemain.

b. Plies, Move and Turns

Suatu hal umum dalam teori permainan adalah giliran (turns) seorang pemain

sebagai suatu lapisan (ply) didalam suatu permainan dan pemain yang

melakukan gilirannya dalam satu putaran disebut langkah (move).

c. The Goal of the Game

Tujuan umum permainan berbasis strategi adalah untuk menang. Sebagai

pemain, pemain menang jika semua lawan pemain kalah. Hal ini dikenal

sebagai permainan zero-sum, yaitu kemenangan pemain adalah kekalahan

(24)

dengan mencetak -1 poin untuk kalah. Untuk kasus permainan non-zero-sum,

semua bisa menang atau semua bisa kalah, pemain hanya akan fokus pada

kemenangan.

d. Information

Dalam permainan papan seperti catur, Checkers, Go, dan Reversi, kedua

pemain mengetahui segala sesuatu tentang kondisi dalam permainan. Pemain

mengetahui hasil dari setiap gerakan yang dilakukan dan pilihan yang akan

dilakukan pemain untuk langkah berikutnya. Pemain mengetahui semua ini

dari awal permainan. Jenis permainan ini disebut "informasi yang sempurna".

Sedangkan dalam sebuah permainan seperti Backgammon, terdapat unsur acak

di dalamnya. Pemain sebelumnya tidak mengetahui langkah yang dapat diambil oleh

pemain karena langkah tersebut bergantung pada nilai dadu yang dimainkan pemain.

Pemain juga tidak dapat mengetahui langkah yang dapat diambil oleh lawan, karena

pemain tidak dapat memprediksi nilai dadu lawan. Jenis permainan ini disebut “informasi yang tidak sempurna”.

Kebanyakan permainan berbasis strategi merupakan “informasi yang tidak sempurna”, karena terdapat beberapa unsur acak dalam melakukan suatu tindakan. Permainan dengan “informasi yang sempurna” akan lebih mudah untuk dianalisa. Banyak algoritma dan teknik untuk permainan berbasis AI berasumsi bahwa

terdapat informasi yang sempurna yang dapat disesuaikan untuk jenis permainan lain,

tetapi biasanya hasil yang diperoleh akan menjadi lebih buruk (Millington & Funge,

2009).

2.2.2 Klasifikasi Game

Gameplay merupakan alat dan aturan-aturan yang mendefinisikan konteks

keseluruhan permainan sehingga pada saat gilirannya, menghasilkan keterampilan,

strategi, dan kesempatan (Bakri, 2010).

(25)

1. Board Games

Board games merupakan permainan yang menggunakan sebuah media papan

sebagai alat atau tempat untuk berinteraksi dan melakukan sebuah permainan .

Biasanya permainan ini dilakukan dengan menggunakan strategi untuk

memenangi permainan tersebut. Contohnya: Catur, Congklak, dll.

2. Card Games

Card games merupakan permainan yang menggunakan satu set kartu sebagai

alat utama permainan. Permainan ini biasanya diawali dengan pengacakan

kartu sehingga membutuhkan kesempatan dan keberuntungan untuk

memenangi permainan ini. Contohnya: permainan kartu Uno, permainan

Poker, permainan Spider Solitare dan sebagainya.

3. Dice Games

Dice games merupakan permainan dadu sebagai elemen utama permainan.

Permainan dilakukan dengan cara mengacak angka dadu kemudian angka dadu

inilah yang menjadi dampak kemungkinan besar kemenangan permainan ini.

Contohnya: Ludo, dadu Poker dan sebagainya.

4. Domino and Tile Games

Domino and tile games merupakan permainan yang menggunakan kartu

berbentuk ubin sebagai alat permainannya. Permainan ini mirip dengan

permainan kartu. Contohnya: Domino dan Mahjong.

5. Pencil and Paper Games

Pencil and paper games merupakan suatu permainan yang memerlukan media

kertas untuk menggambar arena permainan dan pensil untuk menulis langkah

(26)

2.3 Permainan Congklak

Congklak merupakan suatu permainan tradisional dari Indonesia yang dimainkan oleh

dua orang pemain. Permainan ini dimainkan dengan menggunakan sebuah papan yang

disebut papan congklak dan 98 (14 x 7) buah biji yang dinamakan biji congklak.

Papan congklak terdiri dari 14 lubang kecil dan dua lubang besar (lumbung) yang

terdapat di masing-masing ujung papan.

Gambar 2.1 Papan Congklak

2.3.1 Sejarah Permainan Congklak

Congklak adalah permainan tradisional Indonesia yang berasal dari Arab. Permainan

ini dibawa oleh orang-orang Arab ketika mereka berkunjung ke Indonesia untuk

berdagang beberapa abad yang lalu. Mereka membawa kebudayaaan, agama, bahasa,

makanan, tekstil, permainan, dan lain-lain untuk Indonesia (Pribadi, 2011). Congklak

memiliki banyak nama di setiap wilayah di Indonesia. Nama-nama yang diberikan

sesuai dengan kebudayaan masing-masing daerah. Nama yang paling umum adalah

congklak. Permainan ini disebut Congkak di Sumatera. Di Jawa, permainan ini

dikenal sebagai Congklak, Dakon, Dhakon atau Dhakonan. Di Lampung, permainan

ini disebut Dentuman lamban. Dan untuk orang Sulawesi, permainan ini disebut

Mokaotan, Maggaleceng, Aggacalang dan Nogarata.

Sejarah permainan congklak berawal dari permainan yang dimainkan oleh

(27)

berhubungan dekat dengan kelas atas kemudian memperkenalkan congklak kepada

mereka. Dengan berjalannya waktu, popularitas congklak tumbuh sampai sekarang

dan banyak dimainkan oleh kalangan umum juga (Pribadi, 2011).

Terdapat beragam versi dari permainan tradisional congklak. Di Malaysia

congklak terkenal dengan nama congkak, sedangkan orang Afrika, Arab, Jepang, dan

Inggris lebih mengenal jenis permainan ini dengan nama Mancala. Inti permainan

congklak di berbagai negara memiliki kesamaan satu sama lain, yaitu memindahkan

sebanyak-banyaknya biji milik sendiri dan milik lawan untuk dimasukkan ke dalam

lubang besar (lumbung) milik sendiri. Tentunya pemain yang mengumpulkan biji

terbanyak pada lumbung miliknya akan memenangkan permainan. Hal yang

membedakan congklak di setiap negara adalah peraturan permainan, jumlah biji, dan

jumlah lubang yang digunakan.

2.3.2 Aturan Permainan Congklak

Secara umum, aturan permainan congklak tidak jauh berbeda dengan permainan

Mancala. Kedua permainan ini menggunakan media yang sama. Tetapi terdapat

sedikit perbedaan dari kedua jenis permainan ini yaitu arah pergerakan permainan.

Pada permainan congklak, arah pergerakan permainan dilakukan mengikuti arah

jarum jam sedangkan Mancala berlawanan arah jarum jam. Selain itu, pada permainan

congklak apabila biji yang ditangan telah habis dan jatuh pada lubang kecil yang

berisi biji lainnya, maka giliran pemain tersebut dapat dilanjutkan sedangkan pada

Mancala tidak. Untuk lebih jelasnya, peraturan permainan congklak adalah sebagai

berikut (Bakri, 2010):

1. Papan congklak terdiri dari 2 lubang besar (lumbung) dan 14 lubang kecil.

2. Pada awal permainan, setiap lubang kecil diisi dengan tujuh buah biji

congklak.

3. Permainan dimulai dengan suit untuk menentukan giliran pertama.

4. Pemain yang mendapat giliran pertama dapat memilih lubang yang akan

dijalankan. Kemudian menjatuhkan biji congklak satu per satu ke setiap

(28)

5. Giliran pemain akan tetap berlanjut jika memenuhi kondisi berikut:

a. Apabila biji congklak di tangan habis di lumbung miliknya maka ia dapat

melanjutkan dengan memilih lubang kecil di sisinya.

b. Apabila biji congklak di tangan habis di lubang kecil yang berisi biji

lainnya, ia dapat melanjutkan permainan.

6. Giliran pemain akan berakhir apabila biji habis di lubang kecil yang kosong

pada daerah permainan sendiri atau lawan. Jika biji jatuh di daerah permainan

sendiri dan di hadapannya terdapat lubang berisi biji, maka ia dapat

mengambil seluruh biji di lubang tersebut (biji sisi lawan). Proses ini

dinamakan “tembak”.

7. Permainan selesai apabila sudah tidak ada biji lagi yang dapat diambil atau

salah satu arena pada lubang kecil tidak berisi biji lagi. Apabila biji di salah

satu arena sudah habis, maka biji yang tersisa di arena lainnya di masukkan

seluruhnya ke lumbung miliknya.

8. Pemain yang memiliki biji lebih banyak pada lumbung miliknya akan keluar

sebagai pemenang.

2.4 Teknik Pencarian (Searching)

Pencarian merupakan suatu proses menemukan solusi yang tepat dari suatu

permasalahan (Russell & Norvig, 2010).

Evaluasi strategi pencarian memiliki empat kriteria:

1. Completeness: Apakah strategi tersebut menjamin menemukan solusi jika

solusinya memang ada?

2. Time complexity: Berapa lama waktu yang diperlukan untuk menemukan

solusi?

3. Space complexity: Berapa banyak memori yang diperlukan untuk melakukan

pencarian?

4. Optimality: Apakah strategi tersebut menemukan solusi yang paling baik jika

(29)

Di dalam kecerdasan buatan, metode pencarian sangat menentukan tingkat

keberhasilan sistem cerdas tersebut. Teknik pencarian ini terbagi atas 2, yaitu

pencarian buta (blind search) dan pencarian heuristik (heuristic search). Pencarian

buta merupakan pencarian yang penelusurannya dimulai dengan tidak ada informasi

awal yang digunakan dalam proses pencarian. Contohnya adalah

Breadth-First-Search (BFS) dan Depth-First-Search (DFS). Sedangkan pencarian heuristik

merupakan pencarian yang penelusurannya dimulai dengan adanya informasi awal

yang digunakan dalam proses pencarian. Contohnya adalah Hill Climbing, Tabu

Search, Genetic Algorithm, Ant Algorithm dan Simulated Annealing (Kusumadewi &

Purnomo, 2005).

2.5 Algoritma Depth-First Search (DFS)

Depth-First Search (DFS) merupakan algoritma pencarian yang paling umum

digunakan. DFS akan melakukan pencarian pada sebuah pohon dengan cara

menelusuri satu cabang sebuah pohon sampai menemukan solusi. Pencarian dilakukan

pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling

dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan.

Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak

ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian

seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan

proses backtracking yaitu penelusuran balik untuk mendapatkan jalur yang diinginkan

(Cormen et al., 2009).

(30)

Pada Gambar 2.2 dapat diketahui bahwa proses penelusuran DFS dimulai dari

A-B-D-G-D-H-D-B-A-C-E-I-E-J. A merupakan root yang menandakan keadaan

belum diambil, lalu ditelusuri hingga kedalaman yang paling dalam sebelah kiri yaitu

G, lalu melakukan proses backtrack ke D lalu lanjut lagi ke H. Proses tersebut

berhenti karena telah mencapai goal state yaitu leaf node J.

Langkah-langkah cara kerja algoritma DFS adalah sebagai berikut:

1. Masukkan root ke dalam struktur data tumpukan (stack).

2. Ambil simpul dari tumpukan teratas, dan diperiksa apakah simpul merupakan

solusi.

3. Jika simpul merupakan solusi, maka pencarian selesai dan hasil dikembalikan.

4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan

simpul tersebut ke dalam tumpukan.

5. Jika tumpukan kosong dan setiap simpul sudah ditelusuri, pencarian selesai

dan solusi tidak ditemukan.

6. Ulangi pencarian dari poin kedua.

2.6 Algoritma Minimax

Algoritma Minimax ialah suatu metode yang sangat bermanfaat untuk permainan dua

pemain sederhana. Metode ini digunakan untuk memilih langkah terbaik yang

diberikan, dimana kedua pemain saling berusaha untuk memenangkan permainan.

Setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi

permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya

akan dapat diketahui (M. Tim Jones, 2008). Minimax merupakan algoritma yang

digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai

maksimal.

Algortima Minimax dapat menghasilkan pilihan langkah yang baik dengan

mengasumsikan bahwa pemain lawan akan selalu memilih langkah terbaik untuk

dirinya dan langkah terburuk bagi komputer. Prinsip dasar pada algoritma Minimax

(31)

node) yang akan menghasilkan nilai maksimum di jalur tersebut, dan saat lawan yang

akan bermain akan meminimalkan (min node) nilai komputer. Jadi, komputer

bertujuan untuk memaksimalkan kemungkinan nilai paling rendah yang akan

diperoleh komputer.

Jika pemain memilih suatu langkah, maka pemain akan memilih langkah yang

akan menghasilkan suatu posisi yang bagus. Kita dapat menganggap bahwa pemain

akan memilih langkah yang akan menuntunnya pada posisi terbaik. Dengan kata lain,

ketika pemain mendapat giliran bermain maka pemain akan mencoba memaksimalkan

nilainya. Ketika lawan mendapat giliran bermain, pemain akan mengganggap bahwa

lawan akan memilih langkah yang akan memberikan pemain posisi terburuk yang

tersedia. Lawan sedang berusaha meminimalkan nilai dari pemain. Untuk proses dan

cara kerja algoritma Minimax yang lebih jelas, dapat dilihat pada gambar berikut:

Level 0

Level 1

Level 2

Gambar 2.3 Cara kerja algoritma Minimax (Coppin, 2004)

Langkah-langkah cara kerja algoritma Minimax adalah sebagai berikut:

1. Hampiri node pertama pada leaf dengan nilai 5, naik ke parent pada level 2

(MAX) masukkan nilai 5, hampiri 2. Karena 2<5 maka nilai parent tidak perlu

diganti.

2. Setelah kedua leaf pertama dihampiri, naik lebih tinggi lagi ke level 1 (MIN)

masukkan nilai 5.

3. Hampiri node ketiga pada leaf dengan nilai 1, naik ke parent pada level 2

(MAX) masukkan nilai 1. Kemudian hampiri leaf keempat dengan nilai 3.

Karena 3>1 maka ganti parent pada level 2 (MAX) dengan nilai 3.

(32)

5. Setelah keempat leaf pertama dihampiri, naik lebih tinggi lagi ke level 0

(MAX) masukkan nilai 3.

6. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah 6.

2.7 Algoritma Alpha Beta Pruning

Pada dasarnya, algoritma Minimax sangat handal untuk menyelesaikan segala masalah

dalam pencarian langkah untuk permainan komputer dengan jumlah kemungkinan

penyelesaian yang kecil. Tetapi, jika algoritma Minimax digunakan pada permainan

dengan jumlah kemungkinan penyelesaian yang besar, algoritma Minimax ini

memerlukan waktu yang sangat lama untuk membangun pohon penyelesaian.

Oleh karena itu, beberapa metode lanjutan dari algoritma Minimax telah

dikembangkan untuk membatasi melonjaknya jumlah simpul dalam pembangunan

pohon penyelesaian. Berbagai jenis metode telah ditemukan untuk meningkatkan

kinerja algoritma Minimax, salah satunya adalah Alpha Beta Pruning. Dengan

menggunakan metode ini maka diharapkan sistem dapat bekerja lebih baik. Untuk

proses dan cara kerja algoritma Alpha Beta Pruning yang lebih jelas, dapat dilihat

pada gambar berikut:

Level 0

Level 1

Level 2

(33)

Langkah-langkah cara kerja algoritma Alpha Beta Pruning adalah sebagai berikut:

1. Hampiri node pertama pada leaf dengan nilai 4, naik ke parent pada level 2

(MAX) masukkan nilai 4, hampiri 1. Karena 1<4 maka nilai parent tidak

diganti.

2. Setelah kedua leaf pertama dihampiri, naik lebih tinggi lagi ke level 1 (MIN)

masukkan nilai 4.

3. Hampiri node ketiga pada leaf dengan nilai 8, naik ke parent pada level 2

(MAX) masukkan nilai 8. Jika kita menghampiri leaf berikutnya, kita mencari

nilai yang lebih tinggi dari 8, sementara pada level 1 (MIN) kita mencari yang

lebih kecil dari 4. Maka leaf keempat (5) kita potong (tidak kita hampiri).

4. Setelah keempat leaf pertama dihampiri, naik lebih tinggi lagi ke level 0

(MAX) masukkan nilai 4.

5. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah 4.

2.8 Android

Menurut Ed Burnette (2009), Android adalah sistem operasi untuk Mobile atau

telepon seluler yang berbasis Linux. Androidmenyediakan platform terbuka bagi para

pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh

bermacam perangkat Mobile. Awalnya, Google Inc. membeli Android Inc. Pada saat

perilisan perdana Android pada tanggal 5 November 2007, Android bersama Open

Handset Alliance menyatakan mendukung pengembangan standar terbuka pada

perangkat seluler. Di lain pihak, Google merilis kode-kode Android di bawah lisensi

Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.

Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google

melakukan investasi dengan mengadakan kompetisi aplikasi Mobile terbaik.

Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik.

Dengan semakin berkembangnya dan semakin bertambahnya jumlah handset

Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi

(34)

sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem

operasi Android dalam situs internet juga dianggap penting untuk menciptakan

aplikasi Android asli, contohnya MySpace dan Facebook.

2.8.1 Arsitektur Android

Secara garis besar, Arsitektur Android terbagi menjadi 5 komponen utama, yaitu

Application and Widgets, ApplicationFramework, Libaries, Android Runtime, dan

Linux Kernel.

Gambar 2.5 Komponen utama Arsitektur Android (Hoog, 2011)

Diagram arsitektur pada Gambar 2.5 menunjukkan bahwa komponen utama arsitektur

Android dibagi menjadi lima bagian, yaitu:

1. Applications and Widgets

adalah layer di mana kita berhubungan dengan aplikasi saja, di mana biasanya kita

download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut.

Pada layer tersebut terdapat aplikasi inti seperti email, SMS, kalender, peta, browser,

kontak, dan lain sebagainya. Widgets terdiri dari layer-layer seperti EditText, Spinner,

Button, TextView, dan lain-lain.

(35)

2. Applications Frameworks

Android merupakan platform yang terbuka, artinya Android menawarkan serta

memberikan kemampuan kepada para pengembangnya untuk membangun aplikasi

yang bagus dan inovatif. Tiap pengembang bebas untuk mengakses perangkat keras,

akses informasi resources, menjalankan service background, mengatur alarm, dan

lain-lain. Pengembang memiliki akses penuh ke API Framework seperti yang

dilakukan oleh aplikasi inti. Arsitektur aplikasi dirancang agar kita dengan mudah

dapat menggunakan kembali komponen yang sudah digunakan (reusable).

Komponen pada Applications Frameworks Android adalah sebagai berikut:

a. Views

b. Content Provider

c. Resource Manager

d. Notification Manager

e. Activity Manager

3. Libraries

Merupakan layer di mana fitur-fitur Android berada, biasanya para pengembang

aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas kernel,

layer ini meliputi berbagai library C/C++ inti seperti Lib-C dan SSL, serta:

- Libraries media untuk pemutaran media audio dan video

- Libraries untuk manajemen tampilan

- Libraries Graphics mencakup SGL dan OpenGL untuk grafis 2Ddan 3D

- Libraries SQLite untuk dukungan database

- Libraries SSL dan WebKit terintegrasi dengan web browser dan security

- Libraries LiveWebcore mencakup modern web browser dengan engine embeded

web view

- Libraries 3D yang mencakup implementasi API OpenGL ES 1.0

4. Android Runtime

Merupakan layer yang membuat aplikasi Android dapat dijalankan di mana dalam

prosesnya menggunakan implementasi Linux. Dalvik Virtual Machine (DVM)

merupakan mesin yang membentuk dasar kerangka aplikasi Android. Di dalam

(36)

- Core Libraries: Aplikasi Android dibangun dalam bahasa Java,sementara Dalvik

sebagai mesin virtualnya, bukan JVM (Java Virtual Machine). Sehingga

dibutuhkan sebuah libraries yang berfungsi untuk menerjemahkan bahasa Java/C

yang ditangani oleh Core Libraries ini.

- Dalvik Virtual Machin: Virtual mesin yang berbasis register yang dioptimalkan

untuk menjalankan fungsi-fungsi secara efisien, di mana merupakan

pengembangan yang mampu membuat Linux kernel untuk melakukan threading

dan manajemen tingkat rendah

5. Linux Kernel

Adalah layer dimana inti dari sistem operasi Android itu berada. Berisi file-file sistem

yang mengatur pemrosesan sistem, memory, resource, drivers, dan sistem-sistem

operasi Android lainnya. Linux kernel yang digunakan Android adalah Linux kernel

rilis 2.6

2.8.2 Versi Android

Adapun versi-versi Android yang pernah dirilis adalah sebagai berikut:

Tabel 2.1 Versi-versi Android

Platform Nama Kode Tanggal Rilis Level API

Android 1.0 Apple Pie 23 September 2008 1

Android 1.1 Banana

Bread 9 Februari 2009 2

Android 1.5 Cupcake 30 April 2009 3

Android 1.6 Donut 15 September 2009 4

Android 2.0

Eclair

26 Oktober 2009 5

Android 2.0.1 3 Desember 2009 6

Android 2.1 12 Januari 2010 7

Android 2.2 Froyo 20 May 2010 8

Android 2.3 –

Andoroid 2.3.2 Gingerbread 6 December 2010 9

Android 2.3.3 – Android 2.3.7

(37)

Platform Nama Kode Tanggal Rilis Level API

Android 3.0 22 February 2011 11

Android 3.1 Honeycomb 12

Android 3.2 13

Android 4.0 –

Android 4.0.2 Ice Cream Sandwich 19 October 2011 14

Andorid 4.0.3 15

Android 4.0.4 28 Maret 2012 15

Android 4.1 Jelly Bean 27 Juni 2012 16

Dari Tabel 2.1 dapat dilihat pada setiap perubahan versi android terdapat

perubahan API Level. API Level adalah nilai yang menunjukkan revisi framework

pada platform Android. Nomor versi android yang terus berubah dikarenakan

perubahan API Level. Setiap versi android mendukung tepat satu API Level, namun

tetap mendukung API Level sebelumnya. API Level akan menentukan apakah suatu

aplikasi bisa dijalankan pada suatu platform Android atau tidak.

2.9 Penelitian Sebelumnya

Pencarian solusi pada permainan congklak sudah pernah dilakukan dengan

menggunakan beberapa metode, diantaranya Implementasi Algoritma Greedy Pada

Permainan Congklak (Adha, 2009) dan Analisis dan Implementasi Algoritma

Backtracking Pada Permainan Congklak (Bakri, 2010). Algoritma Minimax juga

sudah pernah diimplementasikan untuk menyelesaikan permainan, diantaranya

Analisis dan Implementasi Kecerdasan Buatan Pada Permainan Checker

Menggunakan Algoritma Minimax Dengan Negascout (Akbar, 2011) dan Algoritma

Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-Tac-Toe (Akbar,

(38)

Tabel 2.2 Penelitian Sebelumnya

No Judul Pengarang Tahun Keterangan

1

2009 Algoritma Greedy dapat memecahkan masalah optimum, namun tidak selalu menghasilkan solusi yang optimum.

2

2010 Algoritma ini secara sistematis mencari solusi persoalan diantara semua kemungkinan solusi yang ada. Namun langkah yang diambil belum tentu merupakan langkah yang terbaik, sehingga memungkinkan terjadi terlalu banyak backtracking yang harus dilakukan.

2011 Algoritma Minimax kurang efesien apabila digunakan secara tunggal sehingga perlu dilakukan pemotongan dengan Negascout. Pemotongan pada Negascout dapat meminimalkan waktu yang diperlukan sistem dalam melakukan pencarian.

(39)

BAB 3

ANALISIS DAN PERANCANGAN APLIKASI

Kecerdasan buatan atau Artificial Intelligence (AI) merupakan bagian dari ilmu

pengetahuan yang penting dalam bidang komputer. Banyak permainan komputer yang

memanfaatkan kecerdasan buatan untuk membuat permainan tersebut bertindak cerdas

dengan memilih langkah terbaik pada permainan. Tetapi banyak orang yang

memainkan permainan tersebut tidak mengerti cara kerja dari kecerdasan buatan itu

sendiri. Oleh karena itu, penulis mencoba membuat suatu aplikasi permainan congklak

yang memiliki kecerdasan buatan yaitu dengan menggunakan algoritma Minimax

yang dioptimasi oleh Alpha Beta Pruning dan menjelaskan cara kerja algoritma

tersebut pada permainan congklak.

3.1 Analisis Algoritma

Pada bab sebelumnya telah dijelaskan tentang algoritma Minimax dan cara kerjanya

secara umum. Pada bab ini, penulis akan menjelaskan tentang penerapan algoritma

Minimax yang dioptimasi dengan Alpha Beta Pruning pada permainan congklak yang

akan dirancang. Tetapi sebelum membahas analisis algoritma Minimax dan Alpha

Beta Pruning penulis akan membahas analisis algoritma permainan congklak terlebih

dahulu.

3.1.1 Analisis Algoritma Permainan Congklak

Permainan congklak adalah permainan dengan 2 orang pemain, menggunakan biji

dengan arena permainan umumnya memiliki 16 buah lubang tempat biji diletakkan,

dimana 2 lubang merupakan lumbung (lubang penyimpanan) milik masing-masing

(40)

sebanyak-banyaknya di lumbung milik sendiri. Dalam bermain congklak terdapat 2 kriteria yang

diutamakan. Adapun kriteria yang dimaksud adalah sebagai berikut:

1. Pemilihan langkah free turn.

Langkah free turn merupakan langkah dimana pemain dapat melakukan

langkah selanjutnya karena telah memasukkan biji terakhir yang berada di tangan ke

dalam lumbung. Langkah ini diutamakan dalam permainan congklak karena pemain

dapat terus melanjutkan permainan. Berikut ini adalah contoh gambar keadaan papan

congklak untuk menemukan langkah free turn.

B7 B6 B5 B4 B3 B2 B1

7 7 7 7 7 7 7

L1 L2

0 0

7 7 7 7 7 7 7

A1 A2 A3 A4 A5 A6 A7

Gambar 3.1 Keadaan papan congklak untuk menemukan langkah free turn

Dari gambar di atas, hasil dari penelusuran pohon permainanadalah memilih

lubang B7. Karena jika biji pada lubang B7 dijalankan akan berhenti pada lumbung

dan dapat melakukan langkah selanjutnya (free turn). Berikut ini adalah gambar

(41)

Gambar 3.2 Pohon permainan untuk menemukan langkah free turn

Keterangan:

A1-A7 : merupakan daerah permainan Player 1

B1-B7 : merupakan daerah permainan Player 2. Pada permainan Single Player yang

bertindak sebagai Player 2 adalah AI (komputer)

L1 : daerah lumbung Player 1. Lumbung ini hanya dapat diisi oleh Player 1

L2 : daerah lumbung Player 2. Lumbung ini hanya dapat diisi oleh Player 2

(x,y) : x merupakan jumlah biji yang berada di lumbung. y merupakan jumlah biji

yang berada pada lubang yang dipilih oleh pemain

T (z) : T merupakan langkah tembak yang dilakukan pemain dan z merupakan

jumlah biji yang ditembak

2. Pemilihan langkah melakukan tembak.

Langkah ini dipilih jika tidak tersedia pilihan langkah free turn. Langkah

tembak terjadi apabila biji terakhir yang berada di tangan jatuh di lubang kosong di

arena permainan sendiri dan di hadapannya terdapat lubang lawan yang berisi biji

(biji>0). Atau pemain juga dapat memilih langkah tembak ini pada arena permainan

sendiri jika langkah ini dianggap lebih menguntungkan dibanding menjalalankan biji

B1 B2 B3 B4 B5 B6 B7

B2

B1 B3 B4 B5 B6

A1 A2 A3 A4 A5 A6

L2 L2 L2 L2 L2 L2

L2

(0,7) (0,7) (0,7) (0,7) (0,7) (0,7)

(1,8) (1,8) (1,8) (1,8) (1,8)

(7)

(10) (10) (10) (10) (10)

T(9) (1,0) T(9) (1,0) T(9) (1,0) T(9) (1,0) T(9) (1,0) T(9)

(0,7)

(1,8)

(10)

(42)

pada lubang lain. Berikut ini adalah contoh gambar keadaan papan congklak untuk

menemukan langkah tembak:

B7 B6 B5 B4 B3 B2 B1

2 3 0 1 9 5 0

L1 L2

23 20

0 11 8 0 4 12 0

A1 A2 A3 A4 A5 A6 A7

Gambar 3.3 Keadaan papan congklak untuk menemukan langkah tembak

Dari gambar di atas, hasil dari penelusuran pohon permainan adalah memilih

lubang B2. Karena jika biji pada lubang B2 dijalankan akan berhenti pada lubang

yang dapat melakukan tembak. Dan langkah B2 juga menghasilkan poin tertinggi

dibandingkan langkah lubang yang lainnya. Berikut ini adalah gambar pohon

(43)

Gambar 3.4 Pohon permainan untuk menemukan langkah tembak

3.1.2 Analisis Algoritma Minimax

Pada permainan congklak ini algoritma Minimax hanya digunakan pada level Hard.

Algoritma Minimax diterapkan pada simulasi untuk mendapatkan langkah free turn.

(44)

Langkah simulasi ini dipilih jika tidak tersedia pilihan langkah free turn dan

langkah tembak. Simulasi dilakukan sampai AI menemukan langkah free turn. Berikut

ini adalah contoh gambar keadaan papan congklak pada simulasi menemukan langkah

terbaik:

B7 B6 B5 B4 B3 B2 B1

6 2 3 1 16 0 4

L1 L2

48 4

6 2 1 1 0 0 4

A1 A2 A3 A4 A5 A6 A7

Gambar 3.5 Keadaan papan congklak pada simulasi menemukan langkah terbaik

Dari gambar di atas, hasil dari penelusuran algoritma Minimaxadalah memilih

lubang B7. Dalam kondisi ini terdapat dua nilai (free turn) yang sama yaitu 6 pada

(45)

Gambar 3.6 Pohon permainan menggunakan algoritma Minimax pada simulasi menemukan langkah terbaik

Karena terdapat dua nilai yang sama yaitu pada lubang B7 dan B3 maka

algoritma Minimax melakukan simulasi pada player dengan tujuan mengetahui nilai

maksimum yang akan diperoleh oleh player.

(46)

Berikut ini adalah gambar keadaan papan congklak setelah lubang B7

menemukan langkah free turn dan pohon permainan menggunakan algoritma

Minimax untuk mengetahui nilai maksimum yang akan diperoleh player (a):

B7 B6 B5 B4 B3 B2 B1

Gambar 3.7 Keadaan papan congklak setelah lubang B7 menemukan langkah

free turn

Gambar 3.8 Pohon permainan menggunakan algoritma Minimax pada simulasi

(47)

Berikut ini adalah gambar keadaan papan congklak setelah lubang B3

menemukan langkah free turn dan dan pohon permainan menggunakan algoritma

Minimax untuk mengetahui nilai maksimum yang akan diperoleh player (b):

B7 B6 B5 B4 B3 B2 B1

Gambar 3.9 Keadaan papan congklak setelah lubang B3 menemukan langkah

free turn

Gambar 3.10 Pohon permainan menggunakan algoritma Minimax pada simulasi player

(48)

Dari dua simulasi yang telah dilakukan pada player maka didapatkan hasil

berikut ini:

Gambar 3.11 Pohon penelusuran algoritma Minimax

Berdasarkan gambar di atas dapat dilihat bahwa nilai maksimum yang

diperoleh player jika AI memilih lubang B7 adalah 53 dan nilai maksimum yang

diperoleh player jika AI memilih lubang B3 adalah 58. Oleh sebab itu algoritma

Minimax memilih lubang B7 untuk menghindari kerugian maksimum yang akan

diperoleh AI. Untuk lebih jelasnya penerapan algoritma Minimax pada aplikasi

permainan congklak ini dapat lihat pada pseudocode berikut:

pencarian minimax

if(bestmovevalue <= Aivalue && Aivalue > 0)

if(bestmovevalue < AIvalue)

bestmovevalue ← AIvalue

bestmove ← i

else if(bestmovevalue == Aivalue)

int val ← getMinPlayer(tmpBoard) * -1

if(val > minval)

minval ← val

bestmovevalue ← AIvalue

bestmove ← i

endif endif

else if(bestmovevalue > Aivalue)

(49)

bestmovevalue ← bestmove

bestmove ← i

endif

return bestmove }

3.1.3 Analisis Algoritma Alpha Beta Pruning

Seperti yang telah dibahas pada bab sebelumnya, penulis menggunakan

algoritma Alpha Beta Pruning untuk mempersingkat waktu pencarian sekaligus

sebagai optimasi algoritma Minimax. Algoritma Alpha Beta Pruning akan mengurangi

ruang pencarian Minimax sehingga waktu eksekusi untuk algoritma ini akan lebih

efisien. Berikut ini adalah contoh pohon permainan yang dianalisis dengan algoritma

Alpha Beta Pruning:

Gambar 3.12 Pohon permainan menggunakan algoritma Alpha Beta Pruning

3.2 Perancangan Sistem

Perancangan sistem yang akan dibahas meliputi perancangan pemodelan visual

menggunakan UML, perancangan aplikasi permainan, dan perancangan antarmuka.

3.2.1 Perancangan Pemodelan Visual Menggunakan UML

Penulis juga menggunakan UML untuk merancang aplikasi permainan congklak ini.

UML yang digunakan adalah use case diagram dan activity diagram.

B7

53 58

48 52 49

49 53 53 49 49 49 53 49 58 51

B7 B3

(50)

3.2.1.1 Use Case Diagram

Use case diagram adalah teknik untuk mendeskripsikan interaksi antara user dan

aplikasi dalam sebuah sistem. Use case diagram mempresentasikan kegunaan atau

fungsi-fungsi sistem dari perspektif pengguna.

Pemain

Single Player

Multiplayer

Rules

About

Exit

Choose Level

Playing Game

<<Include>>

<<Include>>

Gambar 3.13 Use Case Diagram

3.2.1.2 Activity Diagram

Activity diagram adalah teknik untuk menggambarkan logika procedural, proses bisnis

dan aplikasi kerja (Fowler, 2005). Activity diagram sebenarnya mirip dengan

flowchart namun diperluas dengan menunjukkan aliran kendali dari satu aktivitas ke

aktivitas lain. Berikut ini adalah tabel proses dan activity diagram aplikasi permainan

congklak.

1) Single Player

(51)

Tabel 3.1 Proses Single Player

Use Case Single Player

Actors Pemain

Brief Description Use case ini mendeskripsikan proses memulai permainan baru untuk

1 orang pemain

Pre-condition Sudah masuk ke form home

Flow of events Kegiatan Pemain Respon Sistem

1.Klik menu “Single Player”

3. Pilih tingkat kesulitan permainan

2.Tampilkan formChoose

Level”

4.Tampilkan form permainan congklak sesuai dengan tingkat kesulitan yang dipilih pemain

Post-condition Tampilan form permainan congklak sesuai tingkat kesulitan yang

dipilih

Limitation Tidak ada

Penulis mendeskripsikan activity diagram Single Player yang dapat dilihat pada

gambar berikut ini:

Pemain Sistem

Klik menu Single Player Tampilkan form Choose Level

Pilih level

Tampilkan form permainan sesuai dengan level yang dipilih

Gambar 3.14 Activity diagram Single Player

2) Choose Level

(52)

Tabel 3.2 Proses Choose Level

Use Case Choose Level

Actors Pemain

Brief Description Use case ini mendeskripsikan proses memilih tingkat kesulitan

permainan

Pre-condition Sudah masuk ke form choose level

Flow of events Kegiatan Pemain Respon Sistem

1.Pilih tingkat kesulitan (level) yang ingin dimainkan, yaitu

easy, medium, atau hard.

2.Tampilkan form permainan congklak sesuai dengan tingkat kesulitan yang dipilih

Post-condition Pemain bermain sesuai dengan tingkat kesulitan yang dipilih

Limitation Tidak ada

Penulis mendeskripsikan activity diagram Choose Level yang dapat dilihat pada

gambar berikut ini:

Sistem Pemain

Pilih Level Tampilkan form permainan sesuai dengan level yang dipilih

Gambar 3.15 Activity diagram Choose Level

3) Multiplayer

Penjelasan proses Multiplayer dapat dilihat pada tabel berikut ini.

Tabel 3.3 Proses Multiplayer

Use Case Multiplayer

Actors Pemain

Brief Description Use case ini mendeskripsikan proses memulai permainan baru untuk

2 orang pemain

Pre-condition Sudah masuk ke form home

Flow of events Kegiatan Pemain Respon Sistem

1.Klik menu “Multiplayer”

(53)

3. Pilih giliran pemain

4. Tampilkan form permainan congklak untuk 2 orang pemain

Post-condition Tampilan form permainan congklak untuk 2 orang pemain

Limitation Tidak ada

Penulis mendeskripsikan activity diagramMultiplayer yang dapat dilihat pada gambar

berikut ini:

Sistem Pemain

Klik menu Multiplayer

Tampilkan form permainan untuk 2 orang pemain Tampilkan form pilih giliran pemain

Pilih giliran pemain

Gambar 3.16 Activity Diagram Multiplayer

4) Play

Penjelasan proses Play dapat dilihat pada tabel berikut ini.

Tabel 3.4 Proses Play

Use Case Play

Actors Pemain

Brief Description Use case ini mendeskripsikan proses menjalankan permainan

Pre-condition Sudah masuk ke form permainan congklak

Flow of events Kegiatan Pemain Respon Sistem

1.Player 1 memulai permainan

terlebih dahulu dan memilih lubang yang akan dijalankan

2. Update papan congkak sesuai

dengan perpindahan biji congkak

3. Mengevaluasi nilai biji

(54)

4. Perpindahan biji congkak AI ditampilkan. Jumlah biji congkak sudah ter-update

5. Jika permainan berakhir maka sistem akan menampilkan

message dialogue menang,

kalah, atau seri.

Post-condition Tampilan message dialogue

Limitation Tidak ada

Penulis mendeskripsikan activity diagram Play yang dapat dilihat pada gambar

berikut ini:

Sistem Pemain

Player 1 memilih lubang yang akan dijalankan

Update jumlah biji congkak

Tampilan perpindahan biji congkak player 2

Tampilan message dialogue menang, seri, atau kalah

Evaluasi nilai biji congkak

Generate langkah AI

Ya Tidak

End Game?

Gambar 3.17 Activity diagram Play

5) Rules

Penjelasan proses Rules dapat dilihat pada tabel berikut ini.

Tabel 3.5 Proses Rules

Use Case Rules

Gambar

Gambar 2.5 Komponen utama Arsitektur Android (Hoog, 2011)
Gambar 3.2 Pohon permainan untuk menemukan langkah free turn
Gambar 3.4 Pohon permainan untuk menemukan langkah tembak
Gambar 3.6 Pohon permainan menggunakan algoritma Minimax pada simulasi
+7

Referensi

Dokumen terkait

Langkah yang dilakukan pada algoritma Minimax first turn adalah melacak semua kemungkinan kartu yang dapat dikeluarkan oleh pemain dan dimasukkan kedalam node1, setelah itu

Analisis dan Implementasi Algoritma Minimax dengan Optimasi Alpha Betha Prunning pada permainan Five In Row.. Ilmu Komputer Universitas

Berdasarkan latar belakang di atas, maka penulis akan melakukan pengujian apakah implementasi algoritma MiniMax dengan optimasi Mtdf dapat diterapkan pada permainan checkers

Algoritmam minimax dalam pengambilan keputusan pada permainan Tic-Tac-Toe dimana masalah langkah yang diambil oleh pemain akan menghasilkan hasil yang berbeda-beda,

Tetapi, jika algoritma Minimax digunakan pada permainan dengan jumlah kemungkinan penyelesaian yang besar seperti pada permainan catur, algoritma Minimax ini

Langkah yang dilakukan pada algoritma Minimax first turn adalah melacak semua kemungkinan kartu yang dapat dikeluarkan oleh pemain dan dimasukkan kedalam node1, setelah itu

Algoritmam minimax dalam pengambilan keputusan pada permainan Tic-Tac-Toe dimana masalah langkah yang diambil oleh pemain akan menghasilkan hasil yang berbeda-beda,

Tujuan utama yang ingin dicapai dari pembuatan game ini adalah untuk menerapkan dan mengimplementasikan algoritma Minimax pada permainan Othello sehingga lawan main, yakni komputer