• Tidak ada hasil yang ditemukan

Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Congklak

N/A
N/A
Protected

Academic year: 2016

Membagikan "Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Congklak"

Copied!
103
0
0

Teks penuh

(1)

ANALISIS DAN IMPLEMENTASI ALGORITMA BACKTRACKING

PADA PERMAINAN CONGKLAK

SKRIPSI

ADHHAL HUDA BAKRI

061401067

PROGRAM STUDI SARJANA ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

ANALISIS DAN IMPLEMENTASI ALGORITMA BACKTRACKING PADA PERMAINAN CONGKLAK

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

ADHHAL HUDA BAKRI 061401067

PROGRAM STUDI SARJANA ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : ANALISIS DAN IMPLEMENTASI ALGORITMA

BACKTRACKING PADA PERMAINAN

CONGKLAK

Kategori : SKRIPSI

Nama : ADHHAL HUDA BAKRI

Nomor Induk Mahasiswa : 061401067

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 18 Desember 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dian Rachmawati, S.Si, M.Kom Drs. James P. Marbun, M.Kom

NIP 198307232009122004 NIP 195806111986031002

Diketahui/Disetujui oleh

Departemen Ilmu Komputer FMIPA USU Ketua,

(4)

PERNYATAAN

ANALISIS DAN IMPLEMENTASI ALGORITMA BACKTRACKING PADA PERMAINAN CONGKLAK

SKRIPSI

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

Medan, 18 Desember 2010

(5)

PENGHARGAAN

Alhamdulillah penulis ucapkan kepada Sang Khaliq Allah SWT yang melimpahkan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada Drs. James P. Marbun, M.Kom selaku pembimbing pertama dan Dian Rachmawati, S.Si, M.Kom selaku pembimbing kedua yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis. Ucapan terima kasih juga ditujukan kepada Drs. Marihat Situmorang, M.Kom dan M. Andri Budiman, ST, M.Comp.Sc, MEM yang telah bersedia menjadi dosen penguji. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer, Prof. Dr. Muhammad Zarlis dan Syahriol Sitorus, S.Si, MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer FMIPA USU.

(6)

ABSTRAK

Permainan congklak merupakan salah satu permainan tradisional yang berasal dari Indonesia. Permainan ini dimainkan oleh dua pemain dengan menggunakan sebuah papan congklak dan biji congklak yang berjumlah 14 x 7 buah. Pada permainan ini, diterapkan sebuah agen cerdas sebagai salah satu pemain. Agen cerdas adalah sesuatu yang dapat mengamati dan merasakan lingkungannya melalui sensor dan memberikan tindakan terhadap lingkungan tersebut melalui actuator. Agen cerdas akan menjadi salah satu pemain dengan menggunakan algoritma Backtraking. Algoritma

backtracking merupakan perbaikan dari algoritma brute force yang tidak menelusuri

(7)

ANALYSIS AND IMPLEMENTATION BACKTRACKING ALGORITHM ON CONGKLAK GAME

ABSTRACT

(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Tinjauan Teoretis 6

2.1 Kecerdasan Buatan 6

2.1.1 Intelligent Agent (Agen Cerdas) 7

2.1.2 Penggunaan Kecerdasan Buatan di berbagai Bidang 8

2.2 Game 9

2.2.1 Sejarah Game 10

2.2.2 Klasifikasi Game 11

2.3 Permainan Congklak 12

2.3.1 Sejarah Permainan Congklak 12

2.3.2 Peraturan Permainan Congklak 13

2.4 Searching (Pencarian) 17

2.5 Depth-First Search (DFS) 17

2.6 Algoritma Runut-Balik (Backtracking Algorithm) 18

2.6.1 Properti Umum Metode Runut-Balik 19

2.6.2 Prinsip Pencarian Solusi dengan Metode Runut-Balik 19

Bab 3 Analisis dan Perancangan Sistem 23

3.1 Analisis Kebutuhan Sistem 23

3.1.1 Analisis Arena Permainan 23

3.1.2 Analisis Algoritma 24

3.2 Perancangan Sistem 29

3.2.1 Perancangan Alur Permainan 29

3.2.1.1 Flowchart Abacktracking() 32

(9)

3.2.1.3 Flowchart Tembak() 34

3.2.1.4 Flowchart CekbijiArena() 35

3.2.1.5 Flowchart Hitungskor() 36

3.2.2 Perancangan Aplikasi Permainan 37

3.2.3 Perancangan Antarmuka 38

Bab 4 Implementasi dan Pengujian 44

4.1 Implementasi Sistem 44

4.2 Spesifikasi Perangkat Lunak 44

4.3 Spesifikasi Perangkat Keras 44

4.4 Tampilan Aplikasi 45

4.4.1 Tampilan Utama 45

4.5 Pengujian Aplikasi 51

4.5.1 Pengujian Integrasi Aplikasi 51

Daftar Pustaka 65

(10)

DAFTAR TABEL

Halaman

Tabel 4.1 Hasil Evaluasi Proses pada Tampilan Utama pada Windows 52

Tabel 4.2 Hasil Evaluasi Proses pada Tampilan Panduan Permainan pada Windows 53 Tabel 4.3 Hasil Evaluasi Proses pada Tampilan Tentang Permainan pada Windows 53

Tabel 4.4 Hasil Evaluasi proses pada Tampilan Undi Giliran pada Windows 54

Tabel 4.5 Hasil Evaluasi proses pada Tampilan History Permainan pada Windows 54 Tabel 4.6 Hasil Evaluasi proses pada Tampilan Arena Permainan pada Windows 55

Tabel 4.7 Hasil Kuisioner Aspek Antarmuka 57

Tabel 4.8 Hasil Kuisioner Aspek Penggunaan 59

Tabel 4.9 Hasil Kuisioner Penilaian Aplikasi 60

(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Ilustrasi dari Agent 8

Gambar 2.2 Peralatan Permainan Congklak 13

Gambar 2.3 Proses terjadinya kondisi 4a 14

Gambar 2.4 Proses terjadinya kondisi 4b 15

Gambar 2.5 Proses giliran permainan berakhir 16

Gambar 2.6 DFS untuk mencari simpul j 17

Gambar 2.7 Pohon ruang kemungkinan solusi persoalan 4-Ratu 21

Gambar 2.8 Penelusuran Solusi Backtraking 4-Ratu pada papan catur 22

Gambar 2.9 Pohon pencarian solusi dengan Backtraking pada persoalan 4-Ratu 22

Gambar 3.1 Papan permainan congklak 23

Gambar 3.2 Keadaan papan permainan congklak untuk strategi a 27

Gambar 3.3 Pohon penelusuran backtracking untuk hasil C7 28

Gambar 3.4 Keadaan papan permainan congklak untuk strategi b 28

Gambar 3.5 Pohon penelusuran backtracking untuk hasil C2 29

Gambar 3.6 Flowchart Alur Permainan 30

Gambar 3.7 Flowchart Abacktracking() 32

Gambar 3.8 Flowchart Bermain() 33

Gambar 3.9 Flowchart tembak() 34

Gambar 3.10 Flowchart CekbijiArena() 35

Gambar 3.11 Flowchart HitungSkor() 36

Gambar 3.12 Flowchart Aplikasi 37

Gambar 3.13 Form Utama 38

Gambar 3.14 Form Undi Giliran 39

Gambar 3.15 Form Panduan Permainan 40

Gambar 3.16 Form Tentang Permainan 41

Gambar 3.17 Form History Permainan 42

Gambar 3.18 Form Arena Permainan 43

Gambar 4.1 Tampilan Utama 45

Gambar 4.2 Arena Permainan 46

Gambar 4.3 Tampilan Undi Giliran 47

Gambar 4.4 Kondisi saat permainan berlangsung 47

Gambar 4.5 Message Dialog 48

Gambar 4.6 Tampilan History Permainan 49

Gambar 4.7 Tampilan Panduan Permainan 50

(12)

ABSTRAK

Permainan congklak merupakan salah satu permainan tradisional yang berasal dari Indonesia. Permainan ini dimainkan oleh dua pemain dengan menggunakan sebuah papan congklak dan biji congklak yang berjumlah 14 x 7 buah. Pada permainan ini, diterapkan sebuah agen cerdas sebagai salah satu pemain. Agen cerdas adalah sesuatu yang dapat mengamati dan merasakan lingkungannya melalui sensor dan memberikan tindakan terhadap lingkungan tersebut melalui actuator. Agen cerdas akan menjadi salah satu pemain dengan menggunakan algoritma Backtraking. Algoritma

backtracking merupakan perbaikan dari algoritma brute force yang tidak menelusuri

(13)

ANALYSIS AND IMPLEMENTATION BACKTRACKING ALGORITHM ON CONGKLAK GAME

ABSTRACT

(14)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Permainan atau sering disebut dengan game merupakan suatu sarana hiburan yang

diminati dan dimainkan oleh banyak orang baik dari kalangan anak-anak, remaja

maupun orang dewasa. Game ini terdiri dari game tradisional dan game modern.

Game tradisional merupakan segala bentuk permainan yang telah ada sejak

zaman dahulu dan diwariskan secara turun-menurun dari generasi ke generasi. Pada

umumnya, game tradisional sangat susah untuk dicari dari mana asal muasalnya,

maupun mengenai siapa penciptanya. Biasanya game tradisional yang tumbuh dan

berkembang dalam suatu masyarakat mencerminkan warna kebudayaan setempat.

Jenis game tradisional ini yaitu layangan, kasti, petak umpet, congklak, bentengan dan

sebagainya. Sedangkan game modern merupakan game yang disajikan pada suatu

piranti atau perangkat teknologi dan dimainkan secara virtual. Media teknologi yang

digunakan, yaitu console, komputer, handphone dan elektronik lainnya. Seiring

perkembangan teknologi, game tradisional ini sudah jarang dimainkan dan kalah

bersaing dari game modern.

Kecerdasan buatan (Artificial Intelligence) merupakan bagian bidang ilmu

yang dapat menirukan tingkah laku dan fungsi otak manusia. Hal ini menyebabkan

lahirnya berbagai teknologi yang dapat dikatakan bersifat cerdas, khususnya pada

perkembangan game modern ini. Dengan adanya game berbasis AI ini, membuat para

pemain terlibat untuk mengasah dan mengatur strategi untuk mengalahkan AI

(15)

Untuk itu, penulis tertarik untuk merancang dan membangun aplikasi dari

salah satu game tradisional yaitu game congklak berbasis kecerdasan buatan di

komputer. Game congklak merupakan permainan yang menggunakan papan congkak

yang terdapat 16 buah lubang yang terdiri atas 14 lubang kecil yang saling berhadapan

dan 2 lubang besar di kedua sisinya. Setiap 7 lubang kecil di sisi pemain dan lubang

besar di sisi kananya dianggap sebagai milik sang pemain. Game ini dimainkan oleh

dua pemain yang salah satu pemain adalah intelligent agent (agen cerdas) akan

menggunakan algoritma runut balik (backtracking). Algoritma ini merupakan

perbaikan dari algoritma bruteforce, yang secara sistematis mencari solusi persoalan

diantara semua kemungkinan solusi yang ada. Dengan metode ini, tidak perlu

memeriksa semua kemungkinan solusi yang ada. Hanya pencarian yang mengarah ke

solusi saja yang selalu dipertimbangkan. Akibatnya, waktu pencarian dapat dihemat.

Oleh karena itu, penulis mengangkat judul “Analisis dan Implementasi

Algoritma Backtracking pada Permainan Congklak” sebagai salah satu syarat

kelulusan jenjang strata satu Ilmu Komputer – Universitas Sumatera Utara (USU).

1.2 Rumusan Masalah

Permasalahan yang akan diteliti dan diuraikan disini adalah:

Bagaimana mengimplementasikan algoritma backtracking sebagai kecerdasan buatan

pada permainan congklak.

1.3 Batasan Masalah

Batasan masalah pada tugas akhir ini adalah:

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

dua pemain, yaitu: seorang pengguna dan sebuah agen kecerdasan buatan.

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

lubang kecil yang masing-masing pemain memiliki 8 lubang 1 lubang besar dan

7 lubang kecil.

3. Permainan dimulai dengan menggunakan pengacakan (random) angka dari 1

(16)

4. Batas maksimum penelusuran kedalaman pohon adalah 10.

5. Pada penelitian ini, tidak dibahas masalah kompleksitas algoritma backtracking.

6. Implementasi permainan congklak ini menggunakan bahasa pemrograman

Delphi 7.0.

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah sebagai berikut:

1. Menerapkan algoritma Backtracking untuk menghasilkan suatu kecerdasan

buatan pada permainan congklak.

2. Untuk mengimplementasikan permainan congklak ini dalam bentuk permainan

komputer.

1.5 Manfaat Penelitian

Manfaat dari tugas akhir ini adalah sebagai berikut.

1. Mengasah kemampuan pemain dalam mengasah intuisi bermain, khususnya

pada permainan congklak.

2. Memperkenalkan permainan tradisional congklak ini kepada masyarakat.

3. Melestarikan permainan kebudayaan Indonesia, khususnya permainan congklak

ini pada permainan komputer.

1.6 Metode 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

(17)

2. Analisis dan Merancang Desain Sistem

Pada tahap ini akan dilakukan analisis permainan dan algoritma backtracking

serta perancangan aplikasi mengenai skripsi ini, seperti: menggambar flowchart,

perancangan aplikasi, dan perancangan antarmuka (interface).

3. Implementasi Sistem

Pada tahap ini akan dilakukan pengkodean dan menerapkan perancangan

aplikasi tersebut ke dalam bahasa pemrograman Delphi.

4. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap aplikasi apakah telah

memenuhi kriteria atau tidak.

5. Dokumentasi Sistem

Pada tahap ini akan dilakukan penulisan laporan mengenai aplikasi tersebut

yang bertujuan untuk menunjukkan hasil penelitian ini.

1.7 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai

berikut:

BAB 1: PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi “Analisis

dan Implementasi Algoritma Backtracking pada permainan congklak”, rumusan

masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian,

dan sistematika penulisan.

BAB 2: LANDASAN TEORI

Bab ini akan membahas mengenai teori-teori yang berkaitan dengan kecerdasan

buatan, agent, games, permainan congklak, depth-first search, dan algoritma

(18)

BAB 3: Analisis dan Perancangan Sistem

Bab ini akan membahas mengenai analisis kebutuhan sistem yang meliputi analisis

arena permainan dan analisis algoritma. Selain itu, dibahas mengenai perancangan

sistem baik perancangan alur permainan, perancangan aplikasi, dan perancangan

antarmuka.

BAB 4: Implementasi dan Pengujian

Bab ini akan membahas mengenai bagaimana hasil implementasi aplikasi permainan

congklak ini beserta pengujian terhadap aplikasi baik secara metode black box

maupun kuisoner.

BAB 5: KESIMPULAN dan SARAN

Bab ini akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan

saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat untuk

(19)

BAB 2

TINJAUAN TEORETIS

2.1 Kecerdasan Buatan

Kecerdasan buatan atau Artificial Intelligence merupakan bagian dari ilmu

pengetahuan komputer yang khusus ditujukan dalam perancangan otomatisasi tingkah

laku cerdas dalam sistem kecerdasan komputer. Sistem memperlihatkan sifat-sifat

khas yang dihubungkan dengan kecerdasan dalam kelakukan atau tindak-tanduk yang

sepenuhnya bisa menirukan beberapa fungsi otak manusia, seperti pengertian bahasa,

pengetahuan, pemikiran, pemecahan masalah dan lain sebagainya (Kristanto, 2004).

Adapun defenisi kecerdasan buatan menurut Paul Y. Gloess dalam Kristanto,

adalah ilmu yang mempelajari bagaimana membuat suatu mesin seolah-olah memiliki

kecerdasan dalam memecahkan suatu masalah yang diberikan kepadanya.

Ada 2 bagian utama yg dibutuhkan untuk aplikasi kecerdasan buatan, yaitu:

1. Basis pengetahuan (knowledge base) : berisi fakta-fakta, teori, pemikiran dan

hubungan antara satu dengan lainnya.

2. Motor inferensi (inference engine) : kemampuan menarik kesimpulan

berdasarkan pengetahuan

Kecerdasan alami dalam hal ini kecerdasan manusia berbeda dengan

kecerdasan buatan. Berikut beberapa kelebihan kecerdasan buatan dan kecerdasan

alami.

1. Kecerdasan buatan lebih tahan lama dan konsisten, bahkan dapat dikatakan

(20)

2. Kecerdasan buatan lebih mudah diduplikasi dan disebarluaskan, berbeda

dengan kecerdasan alami yang membutuhkan proses belajar mengajar untuk

mentransfer kecerdasan.

3. Kecerdasan buatan dapat didokumentasi.

4. Kecerdasan buatan cenderung dapat mengerjakan perkerjaan lebih baik dan

lebih cepat dibanding dengan kecerdasan alami.

Kelebihan kecerdasan alami antara lain:

1. Kecerdasan alami bersifat kreatif. Kecerdasan alami dapat berkembang dengan

mudah dan dapat menciptakan kreasi baru.

2. Kecerdasan alami memungkinkan manusia untuk menggunakan pengalaman

secara langsung. Sedangkan pada kecerdasan buatan harus bekerja dengan

input-output simbolik.

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

Sedangkan kecerdasan buatan memiliki batasan.

2.1.1 Intelligent Agent (Agen Cerdas)

Intelligent Agent atau agen cerdas adalah sesuatu yang dapat mengamati dan

merasakan lingkungannya melalui sensor dan memberikan tindakan terhadap

lingkungan tersebut melalui actuator.

Sebuah agen yang dibuat menyerupai manusia (human agent) memiliki sensor

berupa mata, telinga, dan organ lain serta actuator yang berupa kaki, mulut dan

lainnya. Berbeda dengan agen robot yang menggunakan kamera dan sinar infrared

dalam jangkauan tertentu sebagai sensor dan berbagai mesin (motor) sebagai actuator.

(21)

Gambar 2.1 Ilustrasi dari Agent

Sebuah agen dikatakan rasional jika untuk setiap deretan persepsi yang

mungkin, sebuah agen rasional hendaklah dapat memilih satu tindakan yang

diharapkan memaksimalkan ukuran performance-nya, dengan adanya bukti yang

diberikan oleh deretan presepsi dan apapun pengetahuan terpasang yang dimiliki agen

itu.

Sebuah agen dapat dikatakan otonom (autonomous) apabila perilakunya

ditentukan oleh pengalamannya sendiri (dengan kemampuan belajar dan beradaptasi).

2.1.2 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:

1. 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,

(22)

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. Expert System (Sistem Pakar)

Sistem pakar (Expert System) adalah program penasehat berbasis komputer

yang mencoba meniru proses berpikir dan pengetahuan dari seorang pakar

dalam menyelesaikan masalah-masalah spesifik. Contohnya adalah sistem

pakar menentukan suatu jenis penyakit, sistem pakar untuk bisnis dan

sebagainya.

4. Games (Permainan)

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.

2.2 Game

Game merupakan sesuatu hal yang dimainkan dengan suatu aturan tertentu yang biasa

digunakan untuk tujuan kesenangan dan kadang-kadang digunakan untuk tujuan

pendidikan. Komponen utama dari game adalah tujuan, aturan, tantangan, dan

interaksi. 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

(23)

2.2.1 Sejarah Game

Pada tahun 1952, seorang mahasiswa Universitas Cambridge bernama A.S Gouglas

membuat game OXO (tic tac toe) dalam versi grafik. Game ini ia kembangkan ketika

hendak mendemonstrasikantesisnya tentang interaksi antara manusia dan komputer.

Memasuki era modern, pada tahun 1966 game digital pertama kali dibuat oleh

Ralph Baer bersama timnya yang berjumlah 500 orang yang terdiri dari insinyur dan

teknisi dan didanai oleh Pentagon. Game ini hanya dapat dimainkan dengan komputer

seharga US$40.000. Unsur edukasi menjadi tujuan utama dalam game ini. Game

dalam bentuk game antara papan dan bola tersebut diperuntukkan untuk membantu

pasukan belajar strategi dan melatih kemampuan refleks pemainnya.

Pada tahun 1972, muncul game baru yang disebut Game Arcade, yang

dipelopori oleh Nolan Brushnel dengan gamenya berjudul Pong. Mesin untuk

memainkan game ini disebut mesin Arcade. Pemain yang ingin bermain diharuskan

untuk memasukkan koin kedalam mesin. Pada hari kedua mesin ini diletakkan pada

suatu bar, orang-orang mengantri untuk memainkan game Pong.

Tidak mau tertinggal dengan sistem Arcade, sistem konsol seperti Magnavox

Odyssey, Atari 2006, Mattel Intelvision, Calleco Vision dan Nintendo Entertaiment

System menciptakan game yang dapat dimainkan di rumah. Game yang paling

menghebohkan orang-orang dengan tampilan grafik dan gameplay yang luar biasa

pada sistem konsol tersebut adalah Super Mario Brothers yang diciptakan oleh

Nintendo.

Pada perkembangannya, game komputer berkembang dengan pesatnya seiring

perkembangan perangkat keras yang mendukung. Hal ini dibuktikan dengan program

(24)

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.

Berdasarkan media permainannya, game dapat dikelompokkan menjadi

beberapa bagian, yaitu:

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.

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

(25)

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

permainan tersebut. Contohnya, Scrabble, Tic-tac-toe, Sudoku dan sebagainya.

2.3 Permainan Congklak

Congklak merupakan suatu permainan tradisional dari Indonesia. Permainan ini

dimainkan dengan menggunakan sebuah papan yang disebut papan congkak dan 98

(14 x 7) buah biji yang dinamakan biji congkak atau buah congkak. Di Indonesia,

sebutan untuk permainan ini ada bermacam-macam seperti Congkak di Sumatera

dengan kebudayaan Melayu, Congkak, Dakon, Dhakon atau Dhakonan untuk di Jawa

dan Mokaotan, Maggaleceng, Aggalacang dan Nogarata di Sulawesi.

2.3.1 Sejarah Permainan Congklak

Permainan congklak merupakan permainan yang diadaptasi dari permainan tradisional

Afrika yang disebut dengan Mancala. Nama Mancala diadaptasi dari bahasa Arab

yaitu naqala yang artinya ”bergerak”. Di Afrika, Mancala ini dimainkan di berbagai

macam media seperti sepetak tanah yang digali lubangnya sebagai papan dengan batu

kerikil sebagai biji permainan atau sebuah papan kayu yang telah dilubangi dengan

bebijian sebagai biji permainan. Mancala ini dapat ditemukan di atas atap kuil di

daerah Memphis, Thebes, dan Luxor. Setelah diidentifikasi, permainan ini telah

dimainkan oleh penduduk setempat semenjak 1400 SM, atau sekitar 3400 tahun yang

lalu (Hakim,2007).

Menurut sejarah, permainan ini tersebar di Asia dan masuk ke Indonesia

melalui para pedagang Arab. Pada saat itu, permainan ini digunakan para pedangang

untuk melakukan dakwah kepada kalangan ningrat.

Pada umumnya di Indonesia, permainan congklak ini menggunakan papan

congkak terbuat dari kayu dan plastik, sedangkan bijinya terbuat dari cangkang

(26)

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

besar di kedua sisinya. Setiap 7 lubang kecil di sisi pemain dan lubang besar di sisi

kananya dianggap sebagai milik sang pemain. Gambar peralatan permainan congklak

ini dapat dilihat pada Gambar 2.1.

(a)

(b)

Gambar 2.2 Peralatan Permainan Congklak

Gambar (a) merupakan gambar biji congklak dan gambar (b) merupakan

gambar papan congklak.

2.3.2 Peraturan Permainan Congklak

Prinsip permainan Mancala adalah dengan memindahkan sejumlah batu-batu dari

salah satu lubang ke dalam lubang lainnya. Proses arah pergerakan ini selalu

dilakukan berlawanan arah jarum jam. Terdapat dua lubang utama di tepi papan yang

diberi nama sama dengan permainannya: lubang Mancala. Pemain yang berhasil

(27)

Permainan congklak juga mengadopsi prinsip permainan Mancala ini tetapi

memiliki beberapa perbedaan. Pada permainan congklak, arah pergerakan permainan

dilakukan mengikuti arah jarum jam. Selain itu, apabila biji yang ditangan telah habis

dan jatuh pada lubang kecil yang berisi biji lainnya, maka giliran pemain tersebut

dilanjutkan. Untuk lebih jelasnya, peraturan permainan congklak adalah sebagai

berikut:

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

congkak.

2. Permainan dimulai dengan suit untuk menentukan giliran pertama.

3. Pemain yang mendapat giliran pertama, dapat memilih lubang yang akan

dijalankan dengan mengambil biji lubang tersebut dan memasukkan satu

buah biji congkak ke dalam masing-masing lubang sesuai dengan arah

putaran jarum jam.

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

a. Apabila biji congkak ditangan habis dilubang besar miliknya maka ia

dapat melanjutkan dengan memilih lubang kecil disisinya. Proses ini

dapat dilihat pada Gambar 2.2.

Lubang yang dipilih

Gambar 2.3 Proses terjadinya kondisi 4a

Dari gambar dapat dilihat, apabila pemain yang memiliki arena

bagian atas menjalankan langkah tersebut, maka dia dapat memilih

(28)

b. Apabila biji congkak ditangan habis dilubang kecil yang berisi biji

lainnya, ia dapat melanjutkan permainan. Proses ini dapat dilihat pada

Gambar 2.4.

Lubang yang dipilih Tempat biji akhir berhenti

Gambar 2.4 Proses terjadinya kondisi 4b

Dari gambar dapat dilihat, apabila pemain yang memiliki arena

bagian bawah memilih lubang tersebut, maka ia berhenti pada lubang

yang ditunjuk oleh panah gambar di atas. Ia dapat melanjutkan gilirannya

karena lubang tersebut terdapat biji congklak.

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

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

sendiri, maka ia dapat mengambil seluruh biji di sisi yang berhadapan dengan

lubang tersebut (biji sisi lawan) , proses ini dinamakan tembak. Untuk lebih

jelasnya dapat dilihat pada Gambar 2.5. Gambar (a) memperlihatkan

permainan berhenti di daerah sendiri dan gambar (b) memperlihatkan

permainan berhenti di daerah lawan. Pada gambar (a), pemain dapat

(29)

Lubang yang dipilih Tempat biji terakhir

berhenti

(a)

tempat biji terakhir berhenti

Lubang yang dipilih

(b)

Gambar 2.5 Proses giliran permainan berakhir

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

(seluruh biji di lubang besar kedua pemain) atau salah satu arena pada lubang

kecil tidak berisi biji lagi.

7. Pemain yang memiliki banyak biji pada lubang besar, maka dialah pemenang

permainan ini.

Permainan congklak ini akan dibuat menjadi permainan yang berbasis

komputer dengan pemain permainan adalah seorang pengguna dan sebuah kecerdasan

(30)

2.4 Searching (Pencarian)

Searching atau Pencarian merupakan suatu proses mencari solusi dari suatu

permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space). Ruang

keadaan merupakan suatu ruang yang berisi semua keadaan yang mungkin.

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 heuristic (heuristic search). Pencarian

buta merupakan pencarian yang penelusurannya dimulai dengan tidak ada informasi

awal yang digunakan dalam proses pencarian. Contohnya Breath-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 hill climbing, tabu search, algoritma genetika, algoritma semut dan

simulated annealing (Kusumadewi,2005).

2.5 Depth-First Search (DFS)

Depth-First Search atau DFS merupakan pencarian yang 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 (penelusuran balik untuk mendapatkan jalur yang dinginkan). Gambar

2.6 adalah contoh DFS untuk mencari simpul j.

a

d c

b

e f h

j

g i

(31)

Kelebihan DFS adalah:

1. Pemakaian memori hanya sedikit, berbeda jauh dengan BFS yang harus

menyimpan semua node yang pernah dibangkitkan.

2. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka

DFS akan menemukannya secara cepat.

Kelemahan DFS adalah:

1. Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga),

maka tidak ada jaminan untuk menemukan solusi (Tidak Complete).

2. Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang

berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang

paling baik (Tidak Optimal).

2.6 Algoritma Runut-Balik (Backtracking Algorithm)

Istilah runut balik pertama kali diperkenalkan oleh D.H. Lehmer pada tahun 1950.

Selanjutnya di tahun 1960, R. J. Walker, Golomb, dan Baumert menyajikan uraian

umum tentang runut balik dan penerapannya pada berbagai persoalan.

Teknik runut balik (backtracking) merupakan salah satu teknik dalam

penyelesaian masalah secara umum (General Problem Solving). Adapun dasar dari

teknik ini adalah suatu teknik pencarian (Teknik Searching). Teknik pencarian ini

digunakan dalam rangka mendapatkan himpunan penyelesaian yang mungkin. Dari

himpunan penyelesaian yang mungkin ini akan diperoleh solusi optimal atau

memuaskan. Runut-balik (backtracking) adalah algoritma yang berbasis pada Depth

First Search (DFS) untuk mencari solusi persoalan secara lebih mangkus.

Runut-balik, yang merupakan perbaikan dari algoritma brute-force, secara

sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada.

Dengan metode runut balik, tidak perlu memeriksa semua kemungkinan solusi yang

ada. Hanya pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan.

Akibatnya, waktu pencarian dapat dihemat. Saat ini algoritma runut-balik banyak

(32)

dalam sebuah labirin, catur, dll) dan masalah-masalah pada bidang kecerdasan buatan

(artificial intelligence).(Munir, 2004).

2.6.1 Properti Umum Metode Runut-Balik

Untuk menerapkan metode runut-balik, properti berikut didefinisikan:

1. Solusi persoalan.

Solusi dinyatakan sebagai vektor n-tuple:

Contoh: Si = {0,1}

Si = 0 atau 1

2. Fungsi pembangkit nilai xk

Dinyatakan sebagai:

T(k)

T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor solusi

3. Fungsi pembatas (fungsi kriteria)

Dinyatakan sebagai:

B(x1, x2, ..., xk)

Fungsi pembatas menentukan apakah (x1, x2, ..., xk) mengarah ke solusi. Jika ya,

maka pembangkitan nilai untuk xk+1 dilanjutkan, tetapi jika tidak, maka (x1, x2,

..., xk) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi.

2.6.2 Prinsip Pencarian Solusi dengan Metode Runut-Balik

Di sini penulis hanya akan meninjau pencarian solusi pada pohon ruang status yang

dibangun secara dinamis. Langkah-langkah pencarian solusi adalah sebagai berikut:

1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan

yang dipakai adalah mengikuti aturan pencarian mendalam (DFS). Simpul-simpul

yang sudah dilahirkan dinamakan simpul hidup (live node). Simpul hidup yang

sedang diperluas dinamakan simpul-E (Expand-node).

(33)

2. Tiap kali simpul-E diperluas, lintasan yang dibangun olehnya bertambah panjang.

Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E

tersebut “dibunuh” sehingga menjadi simpul mati (dead node). Fungsi yang

digunakan untuk membunuh simpul-E adalah dengan menerapkan fungsi

pembatas (bounding function). Simpul yang sudah mati tidak akan pernah

diperluas lagi.

3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian

diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada lagi

simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan

melakukan runut-balik ke simpul hidup terdekat (simpul orangtua). Selanjutnya

simpul ini menjadi simpul-E yang baru.

4. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul

hidup untuk runut-balik.

Berikut ini adalah contoh penerapan algoritma Backtracking pada persoalan

N-Ratu (The N-Queens Problem).

Persoalan: Diberikan sebuah papan catur yang berukuran NxN dan empat buah

ratu. Bagaimanakah menempatkan N buah ratu (Q) itu pada petak-petak papan catur

sedemikian sehingga tidak ada dua ratu atau lebih yang terletak pada satu baris yang

sama, atau pada satu kolom yang sama atau pada satu diagonal yang sama.

Berdasarkan pada “Bahan Kuliah ke- 10 : Algoritma Runut-Balik

(Backtracking) Lanjutan” karangan Rinaldi Munir, solusi dari permasalahan tersebut

adalah sebagai berikut:

X = (x1,x2,x3,x4), dimana X merupakan vektor untuk peletakkan posisi ratu pada

papan dan xi ∈ Si

(34)

Dari hal ini, dapat dibentuk pohon ruang solusi persoalan 4-Ratu yang terlihat

pada Gambar 2.7 sebagai berikut:

Gambar 2.7 Pohon ruang kemungkinan solusi persoalan 4-Ratu

Dari gambar, dapat dilihat ruang seluruh solusi yang mungkin diterapkan pada

persoalan 4-Ratu pada papan catur tersebut. Langkah-langkah solusi dengan

menggunakan backtracking adalah berikut :

1. Menelusuri node dari akar sampai ke daun yang membentuk ruang solusi

secara DFS. Penelusuran dilakukan dengan mempertimbangkan setiap batasan

atau kriteria yang telah ditetapkan.

2. Apabila node yang dikunjungi memenuhi kriteria, maka akan dilakukan

penulusuran menuju node berikutnya. Sebaliknya, apabila node yang

dikunjungi tidak memenuhi kriteria, maka akan dilakukan backtracking

menuju node yang berada di atas dan node tersebut sampai ke bawahnya tidak

dipertimbangkan lagi.

3. Pencarian berhenti apabila ditemukan solusi atau tidak ada node hidup pada

pohon tersebut.

Dari langkah-langkah tersebut, dapat dilihat contoh solusi pada Gambar 2.8

dan pohon solusi persoalan 4-Ratu pada papan catur pada Gambar2.9.

(35)

1

Gambar 2.8 Penelusuran Solusi Backtraking 4-Ratu pada papan catur

1

(36)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Kebutuhan Sistem

Pada analisis kebutuhan sistem ini, akan dilakukan analisis terhadap arena permainan

dan analisis algoritma.

3.1.1 Analisis Arena Permainan

Pada aplikasi yang akan dibangun, permainan congklak ini akan dimainkan oleh dua

pihak, yaitu seorang pengguna yang dinamakan dengan pemain dan sebuah

kecerdasan buatan yang pada aplikasi ini dinamakan dengan Btrack.

Arena permainan pada papan congklak ini akan terbagi atas 3 daerah, yaitu:

daerah permainan yang terdiri dari daerah permainan pemain dan daerah permainan

Btrack serta daerah target yaitu lumbung pemain dan lumbung Btrack. Hal ini dapat

dilihat pada Gambar 3.1.

Apemain[1..7] Acomp[1..7]

Lpemain Lcomp

(37)

Keterangan :

1. Apemain[1..7] : merupakan daerah permainan pemain yang terdiri dari 7

buah lubang. Setiap lubang akan terisi 7 buah biji pada saat awal

permainan. Daerah ini digunakan pemain untuk pemilihan langkah

permainan dan melakukan tembak.

2. Acomp[1..7] : merupakan daerah permainan Btrack yang terdiri dari 7 buah

lubang. Setiap lubang akan terisi 7 buah biji pada saat awal permainan.

Daerah ini digunakan Btrack untuk pemilihan langkah permainan dan

melakukan tembak. Proses ini nantinya akan menggunakan algoritma

backtracking untuk melakukan pemilihan tersebut.

3. Lpemain : merupakan daerah lumbung atau target pemain. Lubang ini

hanya dapat diisi oleh pemain tersebut. Banyaknya isi pada Lpemain akan

menjadi skor untuk si pemain tersebut.

4. Lcomp : merupakan daerah lumbung atau target Btrack. Lubang ini hanya

dapat diisi oleh Btrack tersebut. Banyaknya isi pada Lcomputer akan

menjadi skor untuk Btrack tersebut.

3.1.2 Analisis Algoritma

Seperti yang telah dipaparkan pada bab sebelumnya, algoritma yang digunakan untuk

membangun aplikasi ini adalah algoritma Runut-balik (Backtraking). Algoritma ini

nantinya, akan digunakan oleh agen kecerdesan buatan yaitu Btrack untuk memilih

langkah permainan.

Pada algoritma Backtracking, ada beberapa properti yang perlu

dipertimbangkan yaitu properti solusi persoalan, properti komponen vektor solusi dan

(38)

1. Properti solusi persoalan

Properti solusi persoalan merupakan properti yang berisikan simpul-simpul

solusi dari persoalan. Pada permainan congklak ini, simpul-simpul persoalan

merupakan lubang permainan yang tersedia pada papan congklak.

Lubang-lubang tersebut diberi simbol C1 – C7 untuk Lubang-lubang daerah permainan Btrack

dan simbol P1 – P7 untuk lubang daerah permainan pemain. Untuk lubang

besar atau lumbung diberi simbol L.

S = {C1,C2,C3,C4,C5,C6,C7,P1,P2,P3,P4,P5,P6,P7,L}

2. Properti komponen vektor solusi.

Properti komponen vektor sulusi merupakan parameter yang digunakan untuk

mengarahkan penelusuran simpul menuju ke arah solusi. Parameter ini terdiri

atas dua, yaitu x dan y. x untuk menyatakan jumlah biji yang diperoleh untuk

dimasukkan ke lumbung dan y menyatakan jumlah biji simpul sebelumnya.

3. Properti kriteria pembatas

Properti kriteria pembatas merupakan properti yang berupa fungsi untuk

menentukan apakah simpul-simpul mengarah ke solusi. Kriteria pembatas

yang diterapkan pada algoritma backtracking ini, mengacu pada strategi yang

akan dipakai pada kecerdasan buatan pada permainan congklak. Strategi

tersebut, yaitu :

a) Langkah langsung menuju lumbung. Pemilihan langkah ini diambil

berdasarkan jumlah biji pada arena Btrack yang langsung berhenti pada

lubang besar. Langkah ini diambil membuat giliran permainan

berlanjut dengan memilih lubang yang lain pada arena sendiri dan

(39)

b) Langkah melakukan tembak. Pemilihan langkah ini terjadi apabila biji

permainan habis dan jatuh di daerah sendiri dan diseberang lubang

tersebut terdapat biji (biji > 0) atau melakukan pemilihan lubang yang

dapat melakukan tembak pada arena sendiri. Langkah ini diambil

membuat biji yang akan dimasukkan ke lumbung pada setiap giliran

menjadi lebih besar.

Pada kriteria pembatas ini, strategi a) menjadi prioritas utama untuk kriteria

pembatas ini. Sedangkan strategi b) dilakukan jika strategi a) tidak diperoleh

pada saat penelusuran simpul.

Berikut ini adalah pseudocode penerapan algoritma Backtracking pada

(40)

end end

if not found L then max(pointdeep)

Pada pseudocode diatas, dapat dilihat bahwa penelusuran simpul dimulai dari

lubang milik Btrack (C1 s.d C7) yaitu nodeComp. Jika isi nodeComp sama dengan nol

maka akan dilakukan backtracking menuju nodeComp berikutnya. Jika berisi, maka

akan dilakukan penelusuran simpul berikutnya sampai deepNode() ditemukan simpul

yang berbiji kosong atau sampai kedalaman 10. Jika ditemukan nextNode sama

dengan L, maka penelusuran dihentikan dan simpul tersebut menjadi langkah yang

akan diambil Btrack untuk melakukan permainan. Jika tidak, maka langkah yang

diambil adalah nodeComp yang memiliki max(pointdeep) yang terbesar.

Berikut ini adalah contoh kasus penelusuran algoritma Backtracking pada

permainan congklak.

1. Contoh kasus untuk pemilihan strategi a.

Berikut ini adalah gambar keadaan papan permainan congklak yang dapat

dilihat pada Gambar 3.2.

C7 C6 C5 C4 C3 C2 C1

P1 P2 P3 P4 P5 P6 P7

Gambar 3.2 Keadaan papan permainan congklak untuk strategi a

Pada gambar di atas, hasil dari penelusuran algoritma backtracking

adalah memilih lubang C7 karena langkah lubang tersebut langsung menuju

(41)

C1 C2 C3 C4 C5 C6 C7

Gambar 3.3 Pohon penelusuran backtracking untuk hasil C7

2. Contoh kasus untuk pemilihan strategi b.

Berikut ini adalah gambar keadaan papan permainan congklak yang dapat

dilihat pada Gambar 3.4.

C7 C6 C5 C4 C3 C2 C1

Gambar 3.4 Keadaan papan permainan congklak untuk strategi b

Pada gambar di atas, hasil dari penelusuran algoritma backtracking

adalah memilih lubang C2 karena langkah lubang tersebut memiliki jumlah

poin yang lebih besar dari lubang lainnya. Hasil penelusurannya dapat dilihat

(42)

C1 C2 C3 C4 C5 C6 C7

Gambar 3.5 Pohon penelusuran backtracking untuk hasil C2

3.2 Perancangan Sistem

Perancangan sistem yang akan dibahas meliputi perancangan alur permainan pada

permainan congklak, perancangan aplikasi permainan dan perancangan antarmuka.

3.2.1 Perancangan Alur Permainan

Pada perancangan alur permainan ini, akan dirancang langkah – langkah bermain pada

permainan congklak dengan flowchart berdasarkan peraturan permainan congklak

tersebut. Peraturan congklak ini telah dibahas pada bab sebelumnya. Gambar 3.6

(43)

Start Amilik[] = Apemain []

(44)

BijiApemain = 0 OR

Gambar 3.6 Flowchart Alur Permainan

Keterangan:

X : nilai acak untuk pemain

Y : nilai acak untuk Btrack

i : urutan lubang daerah pemain

j : urutan lubang daerah Btrack

Biji : variabel untuk jumlah biji yang dijalankan.

BijiApemain : jumlah biji pada seluruh lubang pemain

BijiAcomp : jumlah biji pada seluruh lubang Btrack

Langkah : variabel untuk langkah yang dijalankan pada permainan

Apemain[] : daerah pemain

Acomp[] : daerah Btrack

Amilik[] : daerah sendiri

(45)

3.2.1.1 Flowchart Abacktracking()

Flowchart ini menggambarkan bagaimana algoritma backtracking dilakukan untuk

mendapatkan langkah yang paling optimal untuk dijalan oleh kecerdasan buatan yaitu

Btrack . Gambar 3.7 merupakan flowchart fungsi Abacktracking().

Start

nodeComp = nodeComp + 1 Stop = false

Gambar 3.7 Flowchart Abacktracking()

Keterangan:

stop,cek : tipe boolean untuk berhenti

(46)

biji,isi[] : jumlah biji pada lubang

nextNode : simpul selanjutnya

step : langkah yang dipilih

deep : kedalaman penelusuran

L : menyatakan lubang lumbung

3.2.1.2 Flowchart Bermain()

Flowchart ini menggambarkan bagaimana biji congklak didistribusikan dari satu

lubang ke lubang lainnya sesuai banyak biji yang diperoleh. Apabila biji diperoleh

habis, maka pendistribusian biji selesai. Gambar 3.8 merupakan flowchart fungsi

bermain().

i = 0 ? Lmilik=Lmilik+1 i=i-1

j=8+I i=i-1

j > 0 ? Alawan[j]=Alawan[j]+1

j = 0 ?

(47)

Keterangan:

N : menyatakan jumlah biji yang dimainkan

Lmilik : menyatakan lumbung yang diisi pada saat bermain

3.2.1.3 Flowchart Tembak()

Flowchart ini menggambarkan proses tembak terjadi pada permainan congklak.

Apabila biji yang dimainkan berakhir pada daerah sendiri dan poinTembak tidak sama

dengan nol, maka proses tembak dapat dilakukan. Jika tidak, maka isi biji lumbung

tetap. Gambar 3.9 merupakan flowchart untuk proses tembak().

Start

j = 8 – I poinTembak = Alawan[j]

n, dLawan, i, j

n=0 AND NOT dLawan ?

Giliran = pemain?

Lumbung = Lpemain Lumbun= Lcomp

Lumbung = Lumbung + poinTembak + Amilik[i] poinTembak>0?

Lumbung = Lumbung

end

ya

ya

ya

tidak tidak

tidak

(48)

Keterangan:

Lpemain : menyatakan lumbung pemain

Lcomp : menyatakan lumbung Btrack

poinTembak : menyatakan jumlah biji tembak yang terdapat pada arena lawan

3.2.1.4 Flowchart CekbijiArena()

Gambar 3.10 merupakan flowchart untuk proses cekbijiArena(). Proses ini merupakan

pengecekan seluruh biji yang terdapat pada lubang kecil baik pada arena pemain

maupun arena Btrack. cekbijiArena() berguna untuk menentukan apakah permainan

masih berlanjut atau telah berakhir.

Start

Lubang,Apemain[], Acomp[]

BijiApemain = BijiApemain+Apemain[lubang] BjiAcomp = BijiAcomp+Acomp[lubang]

Lubang=1

BijiApemain=0 BijiAcomp=0

Lubang=lubang+1

Lubang ≤ 7?

End ya tidak

(49)

3.2.1.5 Flowchart Hitungskor()

Hitungskor() merupakan fungsi yang berguna untuk menghitung seluruh biji yang

dimiliki oleh pemain dan Btrack. Penjumlahan pada fungsi ini meliputi jumlah biji

yang terdapat padan masing-masing lumbung dengan jumlah biji yang terdapat pada

lubang kecil pada masing-masing arena permainan. Total dari jumlah biji ini akan

menjadi skor untuk pemain dan skor untuk Btrack. Gambar 3.11 merupakan flowchart

untuk proses Hitungskor().

Start

l,Lpemain,Lcomp

SkorPemain=Lpemain+Apemain[l] l=1

l<=7?

Apemain[l] ≠ 0? l=l+1

SkorComp=Lcomp+Acomp[l] Acomp[l] ≠ 0?

end ya

tidak tidak

tidak

ya ya

(50)

3.2.2 Perancangan Aplikasi Permainan

Perancangan aplikasi permainan merupakan perancangan interaksi apa yang dapat

dilakukan pengguna terhadap aplikasi permainan yang dibangun. Aplikasi ini dimulai

dengan menampilkan form Utama yang berisikan menu pilihan Mulai Baru, Menu

Panduan, Tentang Permainan dan Keluar. Pada setiap pilihan ini, akan memberikan

tampilan form-form berikutnya. Aplikasi akan berhenti jika pengguna memilih tombol

Keluar. Berikut ini adalah proses yang terjadi pada aplikasi permainan congklak yang

dapat dilihat pada Gambar 3.12.

Tampilkan Form

(51)

3.2.3 Perancangan Antarmuka

Perancangan antarmuka aplikasi permainan congklak ini terdiri dari beberapa form,

yaitu form Utama, form Undi Giliran, form Panduan Permainan, form Tentang

Permainan, form History Permainan dan form Arena Permainan. Berikut ini adalah

rancangan antarmuka form-form tersebut.

1. Form Utama

Form Utama merupakan form yang pertama kali ditampilkan pada saat aplikasi

dijalankan. Form ini berisikan menu yang dapat dipilih oleh penggunan yaitu

Mulai Baru, Panduan Permainan, Tentang Permainan dan Keluar. Rancangan

antarmuka form ini dapat dilihat pada Gambar 3.13.

CONGKLAK GAME

Tentang Permainan Panduan Permainan

Keluar Mulai Baru Utama

1

2

3

4

5

Gambar 3.13 Form Utama

Keterangan :

1. Congklak Game merupakan judul aplikasi yang dirancang dengan

menggunakan komponen Tlabel.

2. Mulai baru merupakan tombol menu yang berfungsi untuk menampilkan

form Arena Permainan yang dirancang dengan menggunakan komponen

(52)

3. Panduan permainan merupakan tombol menu yang berfungsi untuk

menampilkan form Panduan Permainan yang dirancang dengan

menggunakan komponen Tbutton.

4. Tentang permainan merupakan tombol menu yang berfungsi untuk

menampilkan form Tentang Permainan yang dirancang dengan

menggunakan komponen Tbutton.

5. Keluar merupakan tombol menu yang berfungsi untuk keluar dari aplikasi

yang dirancang dengan menggunakan komponen Tbutton.

2. Form Undi Giliran

Form undi giliran merupakan form yang digunakan untuk melakukan dan

menampilkan pengundian giliran awal permainan. Rancangan antarmuka form

ini dapat dilihat pada Gambar 3.14.

Undi Giliran

Acak

Pemain 1 Computer

3 4

5 Btrack2

Gambar 3.14 Form Undi Giliran

Keterangan :

1. Pemain merupakan nama untuk panel bagian pemain yang dirancang

dengan menggunakan komponen Tlabel.

2. Btrack merupakan nama untuk panel bagian Btrack yang dirancang

(53)

3. Komponen Tpanel yang berfungsi untuk menampilkan hasil pengacakan

angka pemain.

4. Komponen Tpanel yang berfungsi untuk menampilkan hasil pengacakan

angka Btrack.

5. Acak merupakan tombol yang berfungsi untuk mengacak angka.

Dirancang dengan menggunakan komponen Tbutton.

3. Form Panduan Permainan

Form panduan permainan merupakan form yang berisikan peraturan dan cara

bermain sehingga dapat memberikan informasi kepada pengguna tentang

permainan congklak. Rancangan antarmuka form ini dapat dilihat pada

Gambar 3.15.

Panduan Permainan

Kembali Main

Peraturan dan Cara Bermain 1

2

3 4

Gambar 3.15 Form Panduan Permainan

Keterangan :

1. Peraturan dan Cara Bermain merupakan judul dari form yang dirancang

dengan komponen Tlabel.

2. Komponen Tmemo yang berguna untuk menampilkan informasi peraturan

dan cara bermain.

3. Kembali merupakan tombol yang berguna untuk menampilkan form

(54)

4. Main merupakan tombol yang berguna untuk menampilkan form Arena

Permainan dirancang menggunakan komponen Tbutton.

4. Form Tentang Permainan

Form tentang permainan merupakan form yang berisikan informasi mengenai

author aplikasi. Rancangan antarmuka form ini dapat dilihat pada Gambar

3.16.

Tentang Permainan

Kembali

1

2

Gambar 3.16 Form Tentang Permainan

Keterangan :

1. Komponen Tmemo yang digunakan untuk menampilkan author aplikasi.

2. Kembali merupakan tombol yang berguna untuk menampilkan form

Utama dirancang menggunakan komponen Tbutton.

5. Form History Permainan

Form history permainan merupakan form yang berisikan informasi mengenai

penelusuran simpul oleh Btrack, langkah yang dipilih oleh pemain dan langkah

yang dipilih oleh Btrack. Rancangan antarmuka form ini dapat dilihat pada

(55)

History Permainan

Kembali

Penelusuran langkah 1 Langkah Pemain Langkah computer 2

4 5

6

7

Langkah Btrack3

Gambar 3.17 Form History Permainan

Keterangan :

1. Penelusuran langkah merupakan nama untuk komponen Tmemo dibawah

yang dirancang dengan menggunakan komponen Tlabel.

2. Langkah pemain merupakan nama untuk komponen Tmemo dibawah yang

dirancang dengan menggunakan komponen Tlabel.

3. Langkah Btrack merupakan nama untuk komponen Tmemo dibawah yang

dirancang dengan menggunakan komponen Tlabel.

4. Komponen Tmemo yang digunakan untuk menampilkan hasil penelusuran

langkah dengan algoritma backtracking.

5. Komponen Tmemo yang digunakan untuk menampilkan hasil pemilihan

langkah oleh pemain.

6. Komponen Tmemo yang digunakan untuk menampilkan hasil pemilihan

langkah oleh Btrack.

7. Kembali merupakan tombol untuk menampilkan form Arena Permainan.

Dirancang dengan menggunakan komponen Tbutton.

6. Form Arena Permainan

Form arena permainan merupakan form yang digunakan untuk bermain

permainan congklak. Rancangan antarmuka form ini dapat dilihat pada

(56)

Arena Permainan

computer

Pemain Kembali Mulai

2

3

4

5

6 7

History 8 Btrack1

Gambar 3.18 Form Arena Permainan

Keterangan :

1. Btrack merupakan nama untuk panel bagian Btrack yang dirancang

dengan menggunakan komponen Tlabel.

2. Komponen Tpanel yang digunakan untuk menampilkan jumlah biji yang

diambil pada arena Btrack.

3. Papan congklak yang dirancang dengan menggunakan komponen Timage.

4. Komponen Tpanel yang digunakan untuk menampilkan jumlah biji yang

diambil pada arena pemain.

5. Pemain merupakan nama untuk panel bagian pemain yang dirancang

dengan menggunakan komponen Tlabel.

6. Kembali merupakan tombol untuk menampilkan form Arena Permainan.

Dirancang dengan menggunakan komponen Tbutton.

7. Mulai merupakan tombol yang berfungsi menampilkan form Undi Giliran.

Dirancang dengan menggunakan komponen Tbutton.

(57)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Kebutuhan Sistem

Pada analisis kebutuhan sistem ini, akan dilakukan analisis terhadap arena permainan

dan analisis algoritma.

3.1.1 Analisis Arena Permainan

Pada aplikasi yang akan dibangun, permainan congklak ini akan dimainkan oleh dua

pihak, yaitu seorang pengguna yang dinamakan dengan pemain dan sebuah

kecerdasan buatan yang pada aplikasi ini dinamakan dengan Btrack.

Arena permainan pada papan congklak ini akan terbagi atas 3 daerah, yaitu:

daerah permainan yang terdiri dari daerah permainan pemain dan daerah permainan

Btrack serta daerah target yaitu lumbung pemain dan lumbung Btrack. Hal ini dapat

dilihat pada Gambar 3.1.

Apemain[1..7] Acomp[1..7]

Lpemain Lcomp

(58)

Keterangan :

1. Apemain[1..7] : merupakan daerah permainan pemain yang terdiri dari 7

buah lubang. Setiap lubang akan terisi 7 buah biji pada saat awal

permainan. Daerah ini digunakan pemain untuk pemilihan langkah

permainan dan melakukan tembak.

2. Acomp[1..7] : merupakan daerah permainan Btrack yang terdiri dari 7 buah

lubang. Setiap lubang akan terisi 7 buah biji pada saat awal permainan.

Daerah ini digunakan Btrack untuk pemilihan langkah permainan dan

melakukan tembak. Proses ini nantinya akan menggunakan algoritma

backtracking untuk melakukan pemilihan tersebut.

3. Lpemain : merupakan daerah lumbung atau target pemain. Lubang ini

hanya dapat diisi oleh pemain tersebut. Banyaknya isi pada Lpemain akan

menjadi skor untuk si pemain tersebut.

4. Lcomp : merupakan daerah lumbung atau target Btrack. Lubang ini hanya

dapat diisi oleh Btrack tersebut. Banyaknya isi pada Lcomputer akan

menjadi skor untuk Btrack tersebut.

3.1.2 Analisis Algoritma

Seperti yang telah dipaparkan pada bab sebelumnya, algoritma yang digunakan untuk

membangun aplikasi ini adalah algoritma Runut-balik (Backtraking). Algoritma ini

nantinya, akan digunakan oleh agen kecerdesan buatan yaitu Btrack untuk memilih

langkah permainan.

Pada algoritma Backtracking, ada beberapa properti yang perlu

dipertimbangkan yaitu properti solusi persoalan, properti komponen vektor solusi dan

(59)

1. Properti solusi persoalan

Properti solusi persoalan merupakan properti yang berisikan simpul-simpul

solusi dari persoalan. Pada permainan congklak ini, simpul-simpul persoalan

merupakan lubang permainan yang tersedia pada papan congklak.

Lubang-lubang tersebut diberi simbol C1 – C7 untuk Lubang-lubang daerah permainan Btrack

dan simbol P1 – P7 untuk lubang daerah permainan pemain. Untuk lubang

besar atau lumbung diberi simbol L.

S = {C1,C2,C3,C4,C5,C6,C7,P1,P2,P3,P4,P5,P6,P7,L}

2. Properti komponen vektor solusi.

Properti komponen vektor sulusi merupakan parameter yang digunakan untuk

mengarahkan penelusuran simpul menuju ke arah solusi. Parameter ini terdiri

atas dua, yaitu x dan y. x untuk menyatakan jumlah biji yang diperoleh untuk

dimasukkan ke lumbung dan y menyatakan jumlah biji simpul sebelumnya.

3. Properti kriteria pembatas

Properti kriteria pembatas merupakan properti yang berupa fungsi untuk

menentukan apakah simpul-simpul mengarah ke solusi. Kriteria pembatas

yang diterapkan pada algoritma backtracking ini, mengacu pada strategi yang

akan dipakai pada kecerdasan buatan pada permainan congklak. Strategi

tersebut, yaitu :

a) Langkah langsung menuju lumbung. Pemilihan langkah ini diambil

berdasarkan jumlah biji pada arena Btrack yang langsung berhenti pada

lubang besar. Langkah ini diambil membuat giliran permainan

berlanjut dengan memilih lubang yang lain pada arena sendiri dan

(60)

b) Langkah melakukan tembak. Pemilihan langkah ini terjadi apabila biji

permainan habis dan jatuh di daerah sendiri dan diseberang lubang

tersebut terdapat biji (biji > 0) atau melakukan pemilihan lubang yang

dapat melakukan tembak pada arena sendiri. Langkah ini diambil

membuat biji yang akan dimasukkan ke lumbung pada setiap giliran

menjadi lebih besar.

Pada kriteria pembatas ini, strategi a) menjadi prioritas utama untuk kriteria

pembatas ini. Sedangkan strategi b) dilakukan jika strategi a) tidak diperoleh

pada saat penelusuran simpul.

Berikut ini adalah pseudocode penerapan algoritma Backtracking pada

(61)

end end

if not found L then max(pointdeep)

Pada pseudocode diatas, dapat dilihat bahwa penelusuran simpul dimulai dari

lubang milik Btrack (C1 s.d C7) yaitu nodeComp. Jika isi nodeComp sama dengan nol

maka akan dilakukan backtracking menuju nodeComp berikutnya. Jika berisi, maka

akan dilakukan penelusuran simpul berikutnya sampai deepNode() ditemukan simpul

yang berbiji kosong atau sampai kedalaman 10. Jika ditemukan nextNode sama

dengan L, maka penelusuran dihentikan dan simpul tersebut menjadi langkah yang

akan diambil Btrack untuk melakukan permainan. Jika tidak, maka langkah yang

diambil adalah nodeComp yang memiliki max(pointdeep) yang terbesar.

Berikut ini adalah contoh kasus penelusuran algoritma Backtracking pada

permainan congklak.

1. Contoh kasus untuk pemilihan strategi a.

Berikut ini adalah gambar keadaan papan permainan congklak yang dapat

dilihat pada Gambar 3.2.

C7 C6 C5 C4 C3 C2 C1

P1 P2 P3 P4 P5 P6 P7

Gambar 3.2 Keadaan papan permainan congklak untuk strategi a

Pada gambar di atas, hasil dari penelusuran algoritma backtracking

adalah memilih lubang C7 karena langkah lubang tersebut langsung menuju

(62)

C1 C2 C3 C4 C5 C6 C7

Gambar 3.3 Pohon penelusuran backtracking untuk hasil C7

2. Contoh kasus untuk pemilihan strategi b.

Berikut ini adalah gambar keadaan papan permainan congklak yang dapat

dilihat pada Gambar 3.4.

C7 C6 C5 C4 C3 C2 C1

Gambar 3.4 Keadaan papan permainan congklak untuk strategi b

Pada gambar di atas, hasil dari penelusuran algoritma backtracking

adalah memilih lubang C2 karena langkah lubang tersebut memiliki jumlah

poin yang lebih besar dari lubang lainnya. Hasil penelusurannya dapat dilihat

(63)

C1 C2 C3 C4 C5 C6 C7

Gambar 3.5 Pohon penelusuran backtracking untuk hasil C2

3.2 Perancangan Sistem

Perancangan sistem yang akan dibahas meliputi perancangan alur permainan pada

permainan congklak, perancangan aplikasi permainan dan perancangan antarmuka.

3.2.1 Perancangan Alur Permainan

Pada perancangan alur permainan ini, akan dirancang langkah – langkah bermain pada

permainan congklak dengan flowchart berdasarkan peraturan permainan congklak

tersebut. Peraturan congklak ini telah dibahas pada bab sebelumnya. Gambar 3.6

(64)

Start Amilik[] = Apemain []

(65)

BijiApemain = 0 OR

Gambar 3.6 Flowchart Alur Permainan

Keterangan:

X : nilai acak untuk pemain

Y : nilai acak untuk Btrack

i : urutan lubang daerah pemain

j : urutan lubang daerah Btrack

Biji : variabel untuk jumlah biji yang dijalankan.

BijiApemain : jumlah biji pada seluruh lubang pemain

BijiAcomp : jumlah biji pada seluruh lubang Btrack

Langkah : variabel untuk langkah yang dijalankan pada permainan

Apemain[] : daerah pemain

Acomp[] : daerah Btrack

Amilik[] : daerah sendiri

(66)

3.2.1.1 Flowchart Abacktracking()

Flowchart ini menggambarkan bagaimana algoritma backtracking dilakukan untuk

mendapatkan langkah yang paling optimal untuk dijalan oleh kecerdasan buatan yaitu

Btrack . Gambar 3.7 merupakan flowchart fungsi Abacktracking().

Start

nodeComp = nodeComp + 1 Stop = false

Gambar 3.7 Flowchart Abacktracking()

Keterangan:

stop,cek : tipe boolean untuk berhenti

(67)

biji,isi[] : jumlah biji pada lubang

nextNode : simpul selanjutnya

step : langkah yang dipilih

deep : kedalaman penelusuran

L : menyatakan lubang lumbung

3.2.1.2 Flowchart Bermain()

Flowchart ini menggambarkan bagaimana biji congklak didistribusikan dari satu

lubang ke lubang lainnya sesuai banyak biji yang diperoleh. Apabila biji diperoleh

habis, maka pendistribusian biji selesai. Gambar 3.8 merupakan flowchart fungsi

bermain().

i = 0 ? Lmilik=Lmilik+1 i=i-1

j=8+I i=i-1

j > 0 ? Alawan[j]=Alawan[j]+1

j = 0 ?

(68)

Keterangan:

N : menyatakan jumlah biji yang dimainkan

Lmilik : menyatakan lumbung yang diisi pada saat bermain

3.2.1.3 Flowchart Tembak()

Flowchart ini menggambarkan proses tembak terjadi pada permainan congklak.

Apabila biji yang dimainkan berakhir pada daerah sendiri dan poinTembak tidak sama

dengan nol, maka proses tembak dapat dilakukan. Jika tidak, maka isi biji lumbung

tetap. Gambar 3.9 merupakan flowchart untuk proses tembak().

Start

j = 8 – I poinTembak = Alawan[j]

n, dLawan, i, j

n=0 AND NOT dLawan ?

Giliran = pemain?

Lumbung = Lpemain Lumbun= Lcomp

Lumbung = Lumbung + poinTembak + Amilik[i] poinTembak>0?

Lumbung = Lumbung

end

ya

ya

ya

tidak tidak

tidak

(69)

Keterangan:

Lpemain : menyatakan lumbung pemain

Lcomp : menyatakan lumbung Btrack

poinTembak : menyatakan jumlah biji tembak yang terdapat pada arena lawan

3.2.1.4 Flowchart CekbijiArena()

Gambar 3.10 merupakan flowchart untuk proses cekbijiArena(). Proses ini merupakan

pengecekan seluruh biji yang terdapat pada lubang kecil baik pada arena pemain

maupun arena Btrack. cekbijiArena() berguna untuk menentukan apakah permainan

masih berlanjut atau telah berakhir.

Start

Lubang,Apemain[], Acomp[]

BijiApemain = BijiApemain+Apemain[lubang] BjiAcomp = BijiAcomp+Acomp[lubang]

Lubang=1

BijiApemain=0 BijiAcomp=0

Lubang=lubang+1

Lubang ≤ 7?

End ya tidak

Gambar

Gambar 2.6 DFS untuk mencari simpul j
Gambar 2.7 Pohon ruang kemungkinan solusi persoalan 4-Ratu
Gambar 3.5 Pohon penelusuran backtracking untuk hasil C2
Gambar 3.6 Flowchart Alur Permainan
+7

Referensi

Dokumen terkait

Fungsi batas disini akan melakukan fungsinya jika nilai yang dicari dari algoritma depth first search telah berhasil diselesaikan dengan sempurna maka fungsi batas

Memilih langkah dengan poin tertinggi bukanlah cara yang terbaik sehingga salah satu cara yang dapat dilakukan untuk pengambilan langkah optimal saat permainan

Aplikasi game Sudoku Hijaiyah menggunakan algoritma Backtracking dan Multiplicative CRNG sebagai pembangkit dan penyelesai permainan merupakan perbaikan dari penelitian Riyadli

Algoritma backtracking merupakan salah satu metode pemecahan masalah yang termasuk dalam strategi yang berbasis pencarian pada ruang status dan bekerja secara rekursif dan

Algoritma Backtracking adalah algoritma umum yang digunakan untuk pencarian solusi pada beberapa permasalahan komputasi, yang secara bertahap membangun kandidat solusi dan

Nembak ini artinya dapat mencuri kerang dari lubang lawan dan berseberang dengan melihat semua sisi serta solusi bergantung pada langkah yang diambil sebelumnya sehingga sesuai

Untuk pembuatan TTS nya akan dikerjakan oleh aplikasi pembuat TTS ini.Dalam pembuatan aplikasi generator TTS ini menerapkan penggunaan metode algoritma backtracking

Salah satu algoritmayang dapat digunakan untuk optimasi pemilihan lubang yang dapat menghasilkan jumlah biji terbanyak dalam satu putaran permainan adalah algoritma