• Tidak ada hasil yang ditemukan

Metode Pencarian Minimax Untuk Permainan NIM

N/A
N/A
Protected

Academic year: 2017

Membagikan "Metode Pencarian Minimax Untuk Permainan NIM"

Copied!
162
0
0

Teks penuh

(1)
(2)

Diajukan unt Program Stra Fakulta Unive

R

JURUSAN

FA

UNIVERSITA

SKRIPSI

n untuk Menempuh Ujian Akhir Sarjana trata satu Jurusan Teknik Informatika kultas Teknik dan Ilmu Komputer

niversitas Komputer Indonesia

RIAN HERDIANI

10106414

N TEKNIK INFORMATIKA

FAKULTAS TEKNIK

TAS KOMPUTER INDONESIA

BANDUNG

(3)
(4)
(5)

i

ABSTRAK

METODE PENCARIAN MINIMAX UNTUK PERMAINAN NIM

Oleh

Rian Herdiani 10106414

Pada permainan berbasis komputer, komputer dirancang dengan menerapkan Artificial Intelligence (AI). Algoritma yang biasa digunakan dalam bidang Artificial Intelligence ialah minimax. Dengan konsep pencarian pohon terhadap nilai evaluasi terbaik sehingga komputer dapat mengambil langkah-langkah yang tepat yang dapat memberikan keuntungan pada komputer dan merugikan pemain manusia ketika bermain.

Salah satu permainan yang dijadikan bahan penelitian ialah permainan nim. Karena pada permainan ini tidak mengandung unsur probabilistik dan hanya dimainkan oleh dua orang. Pada tahap pembuatannya, algoritma ini akan diimplementasikan menggunakan bahasa pemrograman Delphi 7.0. pada perancangan sistem, penulis menggunakan bahasa pemodelan Unified Modelling

Language (UML). Di tahap in, dibuat Use Case Diagram, Activity Diagram,

Class Diagram, dan Sequence Diagram.

Permainan ini menerapkan Artificial Intelligence (AI) dengan menggunakan metode minimax yang akan memberikan peluang bagi komputer untuk mengambil langkah terbaik. Hasil implementasi ini akan dibuktikan bahwa komputer dapat bermain maksimal ketika melawan pemain manusia, sehingga memberikan hasil kemenangan bagi komputer. Dan ditunjukan langkah-langkah yang dilakukan oleh komputer. Serta informasi langkah yang dapat diambil pemain manusia yang direkomendasikan oleh komputer.

Kata kunci: Artificial Intelligence, minimax, nim, UML, Use Case Diagram,

(6)

ii

THE MINIMAX AGORITHM FOR NIM GAME

By

Rian Herdiani 10106414

In a computer-based games, a computer designed by applying Artificial Intelligence (AI computer designed by applying Artificial Intelligence (AI) using minimax algorithm. With the concept of tree for search the best evaluation value, so the computer can take the appropriate measures that can provide benefits to the computer and harm the human player when playing.

One game that used as research material is nim game. Because the game does not have any elements of probabilistic and it only played by two people. The implementation use Delphi 7.0 as programming language. In system design, the writer use Unified Modelling Language (UML). In system design, the authors used modeling language Unified Modeling Language (UML). In the phase-in, created Use Case Diagram, Activity Diagram, Class Diagram and Sequence Diagram.

The game is applying Artificial Intelligence (AI) using minimax method that will provide opportunities for the computer to take best step. This research demonstrated that computers can play maximum while against human players, giving the results a victory for the computer. And indicated the steps taken by the computer. And information measures that can be taken human players recommended by the computer.

Key words: Artificial Intelligence, minimax, nim, UML, Use Case Diagram,

(7)

iii

Assalamualaikum Wr Wb.

Puji syukur penulis panjatkan kepada Allah SWT yang telah memberikan rahmat dan karunianya, shalawat serta salam semoga tercurah kepada Rasulullah SAW, sehingga penulis dapat menyelesaikan Skripsi yang berjudul “Metode Pencarian Minimax Untuk Permainan Nim”.

Adapun tujuan dari penyusunan skripsi ini adalah untuk memenuhi salah satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia.

Dengan keterbatasan ilmu dan pengetahuan yang dimiliki oleh penulis, maka penulis membutuhkan peran serta dari pihak lain dalam proses penyelesaian skripsi ini. Oleh karena itu ijinkanlah penulis untuk menyampaikan ucapan terima kasih yang sebesar-besarnya kepada :

1. Allah SWT. yang senantiasa memberikan banyak nikmat dan selalu membimbing dalam setiap langkah yang penulis tempuh sampai detik ini.

2. Bapak, Ibu dan adik tercinta yang telah memberikan kasih sayang, doa dan dorongan baik moril maupun materi yang tiada henti.

3. Ir. Eddy Suryanto Soegoto, M.Sc., Selaku Rektor UNIKOM

(8)

iv

5. Ibu Mira Kania Sabariah, S.T., M.T., Selaku Ketua Jurusan Program Studi Teknik Informatika UNIKOM.

6. Bapak Irfan Maliki, S.T., M.T., Selaku dosen pembimbing. Terima kasih karena telah banyak meluangkan waktu untuk memberikan bimbingan, saran dan nasehatnya selama penyusunan skripsi ini. 7. Ibu Dian Dharmayanti, S.T., selaku dosen penguji I yang telah

memberikan saran serta kritiknya dalam penyempurnaan skripsi ini. 8. Ibu Utami Dewi, S. Kom, selaku dosen penguji III yang telah

memberikan saran serta kritiknya dalam penyempurnaan skripsi ini. 9. Teman-teman Jurusan Teknik Informatika angkatan 2006 khususnya

kelas IF-9 terima kasih atas bantuan dan doronganya.

10. Teman-teman LDK UMMI UNIKOM Departemen An-Nisaa’.

11. Serta semua pihak yang telah turut membantu dalam penyusunan skripsi ini, yang tidak bisa di sebutkan semuanya satu persatu.

Di dalam penulisan skripsi ini, penulis telah berusaha semaksimal mungkin, walaupun demikian penulis menyadari bahwa skripsi ini jauh dari sempurna. Untuk itu penulis akan selalu menerima segala masukkan yang ditujukan untuk menyempurnakan skripsi ini. Akhir kata, penulis berharap semoga skripsi ini dapat bermanfaat bagi penulis pada khususnya dan pembaca pada umumnya.

Bandung, September 2012

(9)

v

DAFTAR ISI

LEMBAR JUDUL

LEMBAR PENGESAHAN

ABSTRAK...i

ABSTRACT...ii

KATA PENGANTAR...iii

DAFTAR ISI...v

DAFTAR TABEL...viii

DAFTAR GAMBAR...ix

DAFTAR SIMBOL...xii

DAFTAR LAMPIRAN...xvi

BAB I PENDAHULUAN...1

I.1 Latar Belakang Masalah...1

I.2 Identifikasi Masalah...2

I.3 Tujuan...3

I.4 Batasan Masalah...3

I.5 Metodologi Penelitian...4

I.6 Sistematika Penulisan...6

BAB II LANDASAN TEORI...9

II.1 Definisi Permainan...9

II.1.1 Klasifikasi Permainan...10

(10)

vi

II.2.1 Sejarah Permainan Nim...16

II.3 Combinatorial Game Theory...16

II.3.1 Sejarah Combinatorial Game...17

II.4 Definisi Artificial Intelligence (AI)...18

II.4.1 Sejarah AI...20

II.4.2 Konsep AI...21

II.4.3 Game Playing dalam AI...24

II.5 Minimax...25

II.6 Borland Delphi...27

II.6.1 IDE Delphi...27

II.6.2 Sejarah Borland Delphi...30

II.6.3 Kelebihan Borland Delphi...30

II.7 Definisi dan Sejarah Unified Modeling Laguage ( UML )...31

II.7.1 Cara Menggunakan UML...32

II.7.2 Diagram-Diagram pada UML...33

II.7.3 Kelebihan UML...37

BAB III ANALISIS DAN PERANCANGAN SISTEM...39

III.1 Analisis Sistem...39

III.1.1 Analisis Masalah...39

III.1.2 Analisis Permainan...39

III.1.3 Analisis Metode Minimax...46

III.1.4 Analisis Kebutuhan Non Fungsional...51

(11)

vii

III.2 Perancangan Sistem...73

III.2.1 Perancangan Komponen Permainan...74

III.2.2 Perancangan Struktur Menu...76

III.2.3 Perancangan Antarmuka...76

III.2.4 Jaringan Semantik...83

III.2.5 Perancangan Prosedural...84

BAB IV IMPLEMENTASI DAN PENGUJIAN...87

IV.1 Implementasi...87

IV.1.1 Implementasi Class...89

IV.1.2 Implementasi Antarmuka...92

IV.1.3 Implementasi Permainan...98

IV.2 Pengujian...100

IV.2.1 Pengujian Alpha...100

IV.2.2 Pengujian Beta...106

BAB V KESIMPULAN DAN SARAN...111

V.1 Kesimpulan...111

V.2 SARAN...111

(12)

1

BAB I

PENDAHULUAN

I.1 Latar Belakang Masalah

Seiring dengan semakin pesatnya kemajuan teknologi, industri hiburan kini mulai diminati. Salah satu yang paling banyak diminati adalah industri

games. Banyaknya game-game baru yang bermunculan yang menandai semakin

banyaknya peminat akan game itu sendiri. Apalagi dengan semakin banyaknya kegiatan manusia yang didominasi dengan kegiatan yang banyak menguras stamina otak membuat game itu mendapat perhatian besar.

Game yang mendapat perhatian besar adalah games atau permainan-permainan berbasis komputer. Pada games berbasis komputer ini sudah mendukung yang namanya single-player mode, dan ini juga yang menjadi salah satu kelebihan dari games berbasis komputer. Single-player mode artinya ketika kita ingin bermain game, kita tidak perlu lagi mencari lawan bermain karena komputer sudah dirancang untuk dapat berlaku seperti halnya pemain manusia.

Agar komputer dapat berlaku seperti pemain manusia, komputer dirancang dengan menggunakan Artificial Intelligince (AI) atau kecerdasan buatan dalam istilah bahasa indonesia. Dengan diterapkannya AI pada komputer maka, komputer dapat mengambil langkah-langkah yang tepat yang dapat memberikan keuntungan pada komputer dan merugikan pemain manusia ketika bermain.

(13)

tradisional yang pada saat ini jarang sekali dimainkan karena muncul dan berkembangnya permainan-permainan baru yang lebih menarik.

Metode pencarian minimax merupakan metode yang digunakan untuk menentukan pilihan agar dapat memperkecil kemungkinan kehilangan nilai maksimal. Metode pencarian ini penting sekali karena setiap state (keadaan) menggambarkan langkah-langkah untuk menyelesaikan permasalahan, dan dapat menentukan apa yang harus dilakukan. Dengan menggunakan metode pencarian minimax ini diharapkan ketika menjalankan permainan nim, maka komputer dapat mengambil langkah yang tepat yang dapat memperbesar kemungkinan komputer untuk menang dan mengalahkan pemain manusia.

Oleh karena itu, agar lebih memahami lagi mengenai bagaimana penerapan dan implementasi dari algoritma minimax pada permainan ini. Maka, pada penulisan skripsi ini penulis mengambil judul “Metode Pencarian Minimax untuk Permainan Nim”.

I.2 Identifikasi Masalah

Dari latar belakang yang telah diuraikan di atas, identifikasi masalahnya yaitu bagaimana merancang aplikasi permainan nim dengan menerapkan Artificial

Intelligence menggunakan metode pencarian minimax dan mengimplementasikan

(14)

I.3 Tujuan

Berdasarkan permasalahan yang diteliti, maka tujuan yang ingin dicapai yaitu:

1. Untuk membuat aplikasi permainan nim berbasis komputer dengan menerapkan Artificial Intelligence menggunakan metode minimax dan mengimplementasikan hasil rancangan penulis terkait judul penelitian. 2. Membuat aplikasi permainan nim berbasis desktop yang user friendly.

I.4 Batasan Masalah

Dalam penelitian ini, penulis membatasi masalah sebagai berikut :

1. Dalam permainan akan diterapkan Artificial Intelligence untuk mencari mana langkah terbaik yang harus dilakukan komputer agar dapat mengalahkan pemain manusia. Metode yang digunakan ialah dengan minimax.

2. Implementasi dari hasil rancangan akan ditambahkan urutan jalannya permainan dan informasi langkah terbaik yang dapat diikuti oleh pemain manusia.

3. Aplikasi yang dirancang akan dibuat dengan menggunakan perangkat lunak Delphi 7.

4. Perancangan sistem menggunakan bahasa pemodelan Unified Modelling

Language (UML).

(15)

I.5 Metodologi Penelitian

Metode penelitian yang digunakan dalam penulisan tugas akshir ini adalah sebagai berikut :

1. Tahap pengumpulan data a. Studi Pustaka

Metode pengumpulan data yang digunakan pada tahap ini adalah dengan cara studi literatur, jurnal, dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

b. Observasi

Teknik pengumpulan data dengan mengadakan penelitian dan peninjauan langsung terhadap permasalahan yang diambil.

2. Tahap pembuatan perangkat lunak.

Teknik analisis data dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall, yang meliputi beberapa proses diantaranya:

a. Rekayasa Sistem

Yaitu bertujuan untuk mengetahui ruang lingkup permasalahan yang muncul dan mendefinisikannya secara rinci, kemudian menetukan tujuan pembuatan sistem serta mengidentifikasi kendala – kendalanya.

b. Analisis

(16)

c. Desain

Yaitu merancang sistem sesuai dengan teknik dan metode perancangan sistem yang digunakan dengan mengindahkan pemahaman sistem sebelumnya dan kriteria – kriteria sistem yang akan dibangun.

d. Pengkodean

Yaitu tahap penterjemah data/pemecahan masalah software yang telah dirancang kedalam bahasa pemrograman yang telah ditentukan..

e. Pengujian

Yaitu tahap uji coba sistem yang telah disusun untuk memastikan bahwa sistem tersebut sudah benar sesuai karakteristik yang ditetapkan dan tidak ada kesalahan – kesalahan yang terkandung didalamnya. Pengujian ini dimulai dengan membuat suatu uji kasus untuk setiap fungsi pada perangkat lunak, kemudian dilanjutkan dengan pengujian terhadap modul-modul dan terakhir pada tampilan antar muka untuk memastikan tidak ada kesalahan dan semua berjalan dengan baik dan input yang diberikan hasilnya sesuai dengan yang diinginkan.

f. Pemeliharaan

(17)

Gambar I.1 Metode Waterfall

I.6 Sistematika Penulisan

Sistematika penulisan ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

Bab I Pendahuluan

Menguraikan tentang latar belakang permasalahan, identifikasi masalah, tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.

Rekayasa Sistem

Analisi s

Desain

Pengko dean

Pemeliharaa n

(18)

Bab II Landasan Teori

Bab ini membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan.

Bab III Analisis dan Perancangan

Bab ini berisi tentang analisis masalah yang dijadikan sebagai bahan penelitian dan perancangannya.

Bab IV Implementasi dan Pengujian

Dalam bab ini hasil dari analisis dan perancangan penelitian diimplementasikan dan akan dilakukan pengujian.

Bab V Kesimpulan dan Saran

(19)

9

II.1 Definisi Permainan

Seiring dengan majunya dunia hiburan, salah satu area entertainment yang cukup banyak melibatkan ilmuwan dan seniman adalah industri permainan

(gaming industry). Dulunya permainan merupakan salah satu aspek hiburan yang

minor, hanya sebagai selingan saja. Dan dianggap tidak menghasilkan sesuatu. Namun kini hal itu mulai berubah. Perubahan itu ditandai dengan munculnya berbagai konsul yang cukup bervariasi yang menunjukkan bahwa dunia permainan selalu mengalami perkembangan.

Menurut Agustinus Nilwan dalam bukunya “Pemrograman Animasi dan

Game Profesional” terbitan Elex Media Komputindo, game merupakan

permainan komputer yang dibuat dengan teknik dan metode animasi. Artinya jika ingin mendalami pengunaan animasi haruslah memahami pembuatan game. Atau jika ingin membuat game, maka haruslah memahami teknik dan metode animasi, sebab keduanya saling berkaitan.

Namun sebelum akhirnya memahami bagaimana pembuatan “game” harus diketahui dahulu arti dari kata “game” itu sendiri kemudian menentukan karakteristik dari seluruh permainan yang ada. Games are a fundamental part of human existence. The parlance of games has insinuated itself into our language to

refer to activities that are not truly games. (Chris Crawford, 1982). Games adalah

(20)

makna sindiran yang mengacu pada aktifitas yang bukan “games” sesungguhnya. Menurutnya apabila ingin memahami tentang “games” dan desain “game” yang harus dilakukan pertama kali ialah menentukan pokok orientasinya. Kemudian menentukan seluruh karakteristik “game” yang ada.

II.1.1 Klasifikasi Permainan

Secara umum, permainan yang ada pada saat ini dapat diklasifikasikan berdasarkan pada jenis platform dan genre permainannya. Berdasarkan jenis

platform, permainan digolongkan menjadi:

1. Arcade games, yaitu yang sering disebut ding-dong di Indonesia, biasanya

berada di daerah / tempat khusus dan memiliki box atau mesin yang memang khusus di design untuk jenis video games tertentu dan tidak jarang bahkan memiliki fitur yang dapat membuat pemainnya lebih merasa “masuk” dan “menikmati”, seperti pistol, kursi khusus, sensor gerakan, sensor injakkan dan stir mobil (beserta transmisinya tentunya).

2. PC games, yaitu permainan yang dimainkan menggunakan Personal

Computers.

3. Consule games, yaitu video games yang dimainkan menggunakan konsul

tertentu, seperti Playstation 2, Playstation 3, XBOX 360, dan Nintendo Wii.

4. Handheld games, yaitu yang dimainkan di console khusus video game

(21)

5. Mobile games, yaitu yang dapat dimainkan atau khusus untuk mobile

phone atau PDA.

Sedangkan berdasarkan genre permainannya, dikelompokkan menjadi: 1. Aksi – Shooting, (tembak-tembakan , atau hajar-hajaran bisa juga

tusuk-tusukan, tergantung cerita dan tokoh di dalamnya), video game jenis ini sangat memerlukan kecepatan refleks, koordinasi mata-tangan, juga timing, inti dari permainan jenis ini adalah tembak, tembak dan tembak. Seperti : Counter Strike, Spy Hunter, 1942, Double Dragon, dan sebagainya.

2. Fighting (pertarungan), inti dari permainan ini adalah penguasaan jurus

(hafal caranya dan lancar mengeksekusinya), hal yang sangat penting adalah pengenalan karakter dan timing. Dan berbeda seperti game Aksi pada umumnya yang umumnya hanya melawan Artificial Intellegence atau istilah umumnya melawan komputer saja, pemain jenis fighting game ini baru teruji kemampuan sesungguhnya dengan melawan pemain lainnya. Contohnya Seri Street Fighter, Tekken, Mortal Kombat, Soul Calibur dan

King of Fighter.

3. Aksi – Petualangan. Pada perkembangannya permainan jenis ini mengalami perkembangan yang sangat jauh, di tahun 2000 an, jenis ini cenderung untuk memiliki visual 3D dan sudut pandang orang ke-tiga. Contohnya Tomb Rider, Grand Theft Auto dan Prince of Persia.

(22)

atau menembak tidak diperlukan di sini. Pada permainan ini lebih menekankan pada jalan cerita dan kemampuan berpikir pemain dalam menganalisa tempat secara visual, memecahkan teka-teki maupun menyimpulkan rangkaian peristiwa dan percakapan karakter hingga penggunaan benda-benda tepat pada tempat yang tepat. Termasuk didalamnya:

a. Petualangan dengan teks atau sistem tunjuk dan klik, contoh: Kings Quest, Space Quest, Heroes Quest, Monkey Island, Sam and Max.

b. Novel atau film interaktif, seperti game “dating” yang banyak beredar di jepang, Dragons Lair dan Night Trap.

5. Simulasi, Konstruksi dan manajemen. Video permainan jenis ini seringkali menggambarkan dunia di dalamnya sedekat mungkin dengan dunia nyata dan memperhatikan dengan detil berbagai faktor. Seperti membangun rumah, gedung hingga kota. Dunia kehidupan rumah tangga sampai bisnis membangun konglomerasi, dari jualan limun pinggir jalan hingga membangun laboratorium kloning. sehingga membuat pemain harus berpikir untuk mendirikan, membangun dan mengatasi masalah dengan menggunakan dana yang terbatas. Contoh: Sim City, The Sims, Tamagotchi.

6. Role Playing. Sesuai dengan terjemahannya yaitu bermain peran, memiliki

(23)

menjadi semakin hebat, semakin kuat, semakin berpengaruh, dan sebagainya) dalam berbagai parameter yang biasanya ditentukan dengan naiknya level, baik dari status kepintaran, kecepatan dan kekuatan karakter, senjata yang semakin sakti, ataupun jumlah teman. Secara kebudayaan, pengembang game Jepang biasanya membuat Role Playing Game (RPG) ke arah cerita linear yang diarahkan seolah karakter kita adalah tokoh dalam cerita itu, seperti Final Fantasy, Dragon Quest dan

Xenogears. Sedangkan pengembang game RPG Eropa, cenderung

membuat karakter kita bebas memilih jalan cerita sendiri secara non-linear, seperti Ultima, Never Winter Nights, baldurs gate, Elder Scroll, dan

Fallout.

7. Strategy. Pada permainan ini memerlukan keahlian berpikir dan

memutuskan setiap gerakan secara hati-hati dan terencana. Pemain game strategi melihat dari sudut pandang lebih meluas dan lebih kedepan dengan waktu permainan yang biasanya lebih lama dan santai dibandingkan action-games. Permainan jenis ini terbagi atas:

a. Real time Strategy, permainan berjalan dalam waktu sebenarnya

dan serentak antara semua pihak dan pemain harus memutuskan setiap langkah yang diambil saat itu juga berbarengan mungkin saat itu pihak lawan juga sedang mengeksekusi strateginya. Contoh: Starcraft, Warcraft , dan Command and Conquer.

b. Turn based Strategy , game yang berjalan secara bergiliran, misal

(24)

begitu pula sebaliknya, layaknya catur. Contoh: Front Mission, Super robot wars, Final Fantasy tactics, Heroes of might and

magic, Master of Orion.

8. Puzzle. Inti permainan ini mengenai pemecahan teka-teki, baik itu

menyusun balok, menyamakan warna bola, memecahkan perhitungan matematika, melewati labirin, sampai mendorong-dorong kota masuk ke tempat yang seharusnya. Contoh Tetris, Minesweeper, Bejeweled, Sokoban

dan Bomberman.

9. Simulasi kendaraan. Perainan jenis ini memberikan pengalaman atau interaktifitas sedekat mungkin dengan kendaraan yang aslinya, muskipun terkadang kendaraan tersebut masih eksperimen atau bahkan fiktif, tapi ada penekanan khusus pada detil dan pengalaman realistik menggunakan kendaraan tersebut.

10. Olahraga. Biasanya permainannya diusahakan serealistik mungkin walau kadang ada yang menambah unsur fiksi seperti NBA JAM. Contohnya pun jelas, Seri Winning Eleven, seri NBA, seri FIFA, John Madden NFL,

Lakers vs Celtics, Tony hawk pro skater, dan lain-lain.

II.2 Definisi dan Konsep Permainan NIM

(25)

Single Player mode yang artinya permainan dapat dimainkan sendiri dengan komputer sebagai lawan mainnya.

Nim biasanya dimainkan sebagai misere game, dimana pemain yang mengambil objek terakhir maka ialah yang kalah. Nim juga dapat dimainkan secara normal, yaitu pemain yang mengambil objek terakhir menang. Hal ini dikatakan normal karena mengikuti konvensi, sedangkan Nim biasanya tidak mengikuti konvensi tersebut.

Nim telah secara matematika dipecahkan untuk berbagai banyaknya tumpukan dan objek. Telah ada sebuah metode untuk menentukan pemain mana yang akan menang dan strategi apa yang bisa digunakan untuk memenangkan permainan ini. Kunci dari teori permainan adalah binary digital sum dari ukuran tumpukan, yaitu jumlah dalam biner dengan mengabaikan semua kelebihan dari penjumlahan tiap digitnya. Operasi ini dikenal sebagai exclusive or (xor). Dalam permainan kombinatorial operasi ini biasanya dinamakan nim-sum.

Adapun cara bermain Nim, yaitu misal diasumsikan dengan 7 batang korek, pemain bermain secara bergiliran, setiap pemain dapat mengambil 1, 2, atau 3 batang korek, dan pemain yang terakhir mengambil batang korek maka ialah yang kalah.

(26)

II.2.1 Sejarah Permainan Nim

Nim merupakan suatu permainan strategi matematika yang dimainkan oleh dua orang pemain dimana setiap pemain harus memindahkan objek secara bergiliran dari tumpukan yang berbeda. Permainan ini sebenarnya sudah ada sejak zaman dahulu. Kabarnya permaiann ini merupakan permaian dari Cina yang bernama Tsyanshidzi atau “mengambi batu”. Asal kata “Nim” itu sendiri sebenarnya berasal dari German yaitu nimm yang artinya “take” atau “ambil”. Di Eropa permainan nim ini sudah ada sejak awal abad ke-16. Salah seorang professor matematika dari Harvard, Charles Bouton, ialah yang mengembangkan teori permainan nim ini.

II.3 Combinatorial Game Theory

Teori Permainan Kombinatorial (Combinatorial Game Theory) adalah salah satu teori matematika yang hanya mempelajari permainan dengan dua pemain yang memiliki posisi dimana setiap pemain bermain bergantian untuk memperoleh kemenangan.

Dalam teori matematika terdapat teori yang disebut teori permainan (Game

Theory). Perlu diketahui bahwa antarteori permainan kombinatorial dan teori

(27)

tindakan dari pemain lainnya. Selain itu pemain bermain secara bersama-sama. Sedangkan pada teori permainan kombinatorial, permainan dijalankan secara bergiliran.

Pada permainan kombinatorial, permainan hanya akan berakhir dengan satu kemenangan bagi satu orang pemain atau seri. Sepanjang permainan, pemain yang mendapat giliran memindahkan objek pertama kali disebut sebagai Player1

dan yang mendapat giliran kedua disebut sebagai Player2. Pada umumnya, yang disebut sebagai permainan kombinatorial ialah yang memiliki sayarat seperti : 1. Permainan memiliki tepat 2 pemain.

2. Pada umumnya pemain yang melakukan langkah terakhir ialah yang menang (seperti permainan nim).

3. Pemain bermain secara bergliran.

4. Permianan memiliki akhir, tidak berlangsung terus menerus. 5. Tidak ada informasi yang disembunyikan dari pemain. 6. Permainan tidak berdasarkan pada keberuntungan.

II.3.1 Sejarah Combinatorial Game

(28)

waktu dan masing-masing pemain mengetahui setiap tindakan dari pemain yang bergerak sebelum pemain tersebut pada setiap titik.

Dua yayasan yang bekerja di lapangan partizan games adalah Conway’s On Numbers and Games and Berkelamp, Conway, dan Guy’s Winning Ways for Your

Mathematical Plays. Pembelajaran mengenai impartial games dimulai dengan

Zermelo’s theorem. Theorem1 (Teori Zermelo, [Mortimer Brown.2006]), In a combinatorial game, either one of the players has a formal strategy that

guarantees a win, or both players have formal strategies that guarantee at least a

draw.

II.4 Definisi Artificial Intelligence (AI)

Menurut John McCarthy, 1956, Kecerdasan Buatan :

Untuk mengetahui dan memodelkan proses-proses berpikir manusia dan

mendesain mesin agar dapat menirukan perilaku manusia.

Definisi kecerdasan buatan apabila ditinjau dari berbagai macam sudut: 1. Sudut pandang kecerdasan

Bahwa kecerdasan buatan akan membuat mesin menjadi ‘cerdas’ atau mampu melakukan seperti yang dilakukan manusia.

2. Sudut pandang penelitian

(29)

Domain yang sering dibahas oleh para peneliti antara lain:

a. Mundane Task, meliputi: persepsi (vision and speech), bahasa alami

(understanding, generation and translation), pemikiran yang bersifat

commonsense, bobot kontrol.

b. Formal Task meliputi: permainan atau games, matematika (geometri,

logika, kalkulus, integral, pembuktian).

c. Expert Task, maliputi: Analisis finansial, alisis medikal, analisis ilmu

pengetahuan, rekayasa (desain, pencarian kegagalan, perencanaan manufaktur).

3. Sudut pandang bisnis

Kecerdasan buatan adalah kumpulan peralatan sangat powerfull dan metodologis dalam menyelesaikan masalah-masalah bisnis.

4. Sudut pandang pemrograman

Kecerdasn buatan meliputi studi tentang pemrograman simbolik, penyelesaian masalah (problem solving) dan pencarian (searching). Bagian utama yang dibutuhkan untuk melakukan aplikasi kecerdasan buatan:

a. Basic pengetahuan (knowledge base), yang berisi fakta-fakta, teori, pemikiran dan hubungan satu dengan lainnya.

(30)

II.4.1 Sejarah AI

Pada tahun 1950-an, seorang pionir AI dan ahli matematika Ingggris, Alan Turing melakukan sebuah percobaan (Turing Test) dengan meletakkan sebuah komputer melalui terminalnya pada jarak yang jauh. Pada ujung yang satu ada terminal dengan software AI dan pada ujung lainnya ada terminal dengan seorang operator. Operator tidak mengetahui jika di ujung terminal lainnya sudah dipasang perangkat lunak AI. Mereka berkomunikasi dengan cara memberikan respon terhadap pertanyaan yang diajukan oleh operator, sehingga operator mengira bahwa ia sedang berkomunikasi dengan operator lainnya yang berada di terminal lain.

Ia beranggapan bahwa jika mesin dapat membuat seseorang percaya bahwa dirinya mampu berkomunikasi dengan orang lain, maka dapat dikatakan bahwa mesin tersebut cerdas (seperti layaknya manusia). Dari sini kemudian berkembanglah beberapa program kecerdasan buatan.

Beberapa program kecerdasan buatan yang dibuat mulai tahun 1956-1966, antara lain:

1. Logic Theorist, diperkenalkan pada Dartmouth Conference, yang mana

program ini dapat membuktikan teorema-teorema matemtika.

(31)

3. ELIZA, diprogram oleh Joseph Weizenbaum (1967). Program ini mampu melakukan terapi terhadap pasien dengan memberikan beberapa pertanyaan.

II.4.2 Konsep AI

Berdasarkan pengertian yang telah diuraikan di atas bahwa Kecerdasan Buatan (Artificial Inteligence) merupakan bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia bahkan lebih baik daripada yang dilakukan manusia. Sama halnya seperti manusia, agar komputer dapat bertindak seperti dan sebaik yang dilakukan manusia, maka komputer harus diberi bekal pengetahuan, dan kemampuan menalar. Semakin banyak pengetahuan yang dimilikinya tentu diharapkan manusia akan lebih mampu dalam menyelesaikan permasalahan, manusia juga diberi akal untuk dapat melakukan penalaran, dan mengambil kesimpulan berdasarkan pengetahuan dan pengalaman yang telah dimilikinya. Karena itu, pada kecerdasan buatanpun akan diberikan beberapa metod untuk membekali komputer dengan pengetahuan dan pengalaman tersebut agar komputer dapat menjadi mesin yang pintar.

(32)

Gambar II.2 Penerapan Konsep Kecerdasan Buatan

Pada gambar II.2, input yang diberikan pada sistem yang menggunakan kecerdasan buatan berupa masalah. Pada sistem harus dilengkapi dengan sekumpulan pengetahuan yang terdapat pada basis pengetahuan. Sistem juga memiliki motor inferensi yang mampu mengambil kesimpulan berdasrkan fakta atau pengetahuan yang ada. Dan output yang diberikan berupa solusi masalah sebagai hasil dari inferensi.

Pada prinsipnya, secara umum untuk membangun sebuah sistem yang dapat menyelesaikan masalah, ada empat hal yang perlu dipertimbangkan:

1. Mendefinisikan masalah dengan tepat yang mencakup spesifikasi yang tepat mengenai keadaan awal dan solusi yang diharapkan.

2. Menganalisis masalah tersebut serta mencari beberapa teknik penyelesaian masalah yang sesuai.

3. Mempresentasikan pengetahuan yang perlu untuk menyelesaikan masalah tersebut.

4. Memilih teknik penyelesaian masalah yang terbaik.

(33)

2. Menetapkan satu atau lebih keadaan awal 3. Menetapkan satu atau lebih tujuan

4. Menetapkan kumpulan aturan

Dalam mempresentasikan masalah ke dalam ruang keadaan ada beberapa cara, yaitu antara lain dengan menggunakan graph keadaan, dan pohon pelacakan. Pada graph keadaan, graph terdiri dari nodes yang menunjukkan keadaan yaitu keadaan awal dan keadan baru yang akan dicapai dengan menggunakan operator. Nodes dalam ruang keadan saling dihubungkan dengan menggunakan busur yang diberi panah untuk menunjukkan arah dari suatu keadaan ke keadaan berikutnya. Biasanya bentuk graph seperti ini agak sulit jika diterapkan dalam sebuah software.

Sedangkan pohon pelacakan atau struktur pohon digunakan untuk menggambarkan keadaan secara hirarkis, biasanya digunakan untuk menghindari kemungkinan adanya proses pelacakan suatu node secara berulang. Struktur pohon juga terdiri dari beberapa node. Node yang terletak pada level 0 disebut dengan “akar” yang menunjukkan keadaan awal yang biasanya merupakan objek. Pada node akar terdapat beberapa percabangan yang terdiri dari beberapa node

sucessor atau yang disebut “anak”. Sedangkan node yang tidak memiliki anak

(34)

Gambar II.3 Struktur Pohon

II.4.3 Game Playing dalam AI

Permainan merupakan fasilitas yang sangat menarik dalam komputer. Ide permainan dimunculkan pertama kali oleh Claude Shannon (1950) yang menulis

paper tentang mekanisme pembuatan program permainan catur. Beberapa tahun

kemudian, Alan Turing mendeskripsikan program permainan catur namun ia sendiri belum pernah membuat rancangan program. Baru pada awal tahun 1960-an Arthur Samuel mencoba untuk membuat program catur tersebut.

Dalam ilmu kecerdasan buatan ada beberapa alasan mengapa permainan dapat menjadi domain yang baik untuk di eksplore, yaitu karena:

1. Mudah untuk menentukan ukuran kesuksesan dan kegagalannya. 2. Ruang keadaannya mudah direpresentasikan.

(35)

5. Sangat mungkin untuk dibandingkan dengan kemampuan manusia.

Selain itu, dalam permainan kecerdasan buatan juga terdapat beberapa ciri umum, yaitu:

1. Terdapat 2 pemain

2. Kesempatan pemain bergantian

3. Zero-sum: kerugian seorang pemain adalah keuntungan pemain lain

4. Perfect information: pemain mengetahui semua informasi state dari game

5. Tidak mengandung probabilistik (seperti dadu)

II.5 Minimax

Dalam bidang kecerdasan buatan salah satu teknik permainan yang terkenal adalah Minimax. Teorema Minimax (von Neumann, 1928), bahwa:

“A strategy tells what an agent will do in every possible situation and

strategies may be pure (deterministic) or mixed (probabilistic)”

(36)

Gambar II.4 Pohon Pelacakan Minimax

Pada Minimax, dikenal istilah ply atau gerakan ‘saya’ dan ‘lawan’. Gambar II.5 menunjukkan permainan dengan 1 ply search, sedangkan Gambar II.6 menunjukkan permainan dengan 2 ply search.

Gambar II.5 1-ply search

Gambar II.6 2-ply search

[image:36.595.156.454.431.676.2]
(37)

Minimax (StatusSaya, Kedalaman, Pemain) IF (Kedalaman==Max)

RETURN static (StatusSaya, Pemain) Bangkitkan successor S[1..n]

IF (Pemain==Saya)

RETURN max of Minimax (S[i], kedalaman+1, Lawan)

ELSE

RETURN min of Minimax (S[i], kedalaman+1, Saya)

II.6 Borland Delphi

Borland Delphi adalah sebuah alat pegembangan aplikasi-aplikasi untuk sistem operasi Microsoft Windows. Dan sangat mudah digunkan untuk membuat suatu program yang berbasiskan GUI (Graphical User Interface) atau console. Delphi juga merupakan bahasa pemrograman pertama yang memecahkan batasan antara bahasa tingkat tinggi dan pengembangan aplikasi dengan cepat (Rapid

Aplication Development/RAD). RAD merupakan perangkat pengembang yang

mampu dengan mudah dan cepat menghasilkan program aplikasi.

II.6.1 IDE Delphi

Borland Delphi juga memiliki lingkungan pengembangan terintegrasi

(Integrated Development Environment/IDE) dari Borland Delphi itu sendiri. pada

IDE terdapat beberapa fasilitas untuk melakukan desain, pengkodean maupun

(38)

Gambar II.7 IDE Delphi 7

(39)

1. Windows utama

Window utama terdiri dari menu utama, toolbar dan component pallete. Window utama berfungsi untuk memilih operasi-operasi tertentu seperti menyimpan objek, buka, dan lain-lain.

2. Component pallete

Component pallete berfungsi untuk meletakkan berbagai komponen untuk

digunakan pada aplikasi Delphi, seperti tombol, textbox, radiobutton, checkbox, dan lain-lain.

3. Object Inspector

Berfungsi untuk menampilkan properties dan event untuk komponen yang sedang dipilih dan memperbolehkan kita untuk mengganti nilai propertinya atau memilih respon terhadap suatu event yang terjadi.

4. Object treeview

Sebuah diagram pohon yang menggambarkan hubungan logis antara komponen visual dan nonvisual yang terletak pada form, dan module, atau frame.

5. Form designer

Merupakan suatu objek yang dapat dipakai sebagai tempat untuk merancang program aplikasi.

6. Code editor

(40)

II.6.2 Sejarah Borland Delphi

Dimulai pada awal 1993, anggota Borland International Incoporation di bawah pimpinan Andes Hejlberg mencoba merancang pemrograman berbasis Windows yang lebih mudah yang kemudian diberi nama Visual Foo dan sampai sekarang sudah diganti menjadi Delphi.

Pada tahun 1995, Borland Dephi dibuat. Kemudian pada bulan Maret 1996,

Borland International Incorporation meluncurkan Delphi 2.0 yang lebih

dikhususkan untuk Sistem Operasi Windows 95 dan Windows NT, setelah itu dipromosikan menjadi bahasa pemrograman terbaik yang pernah ada.

Selanjutnya Borland International Incorporation merilis Delphi 3.0 dan Delphi 4.0 berturut-turut pada tahun 1997 dan 1998. Tahun 1999, Borland Delphi 5.0 diluncurkan hingga sekarang mengalami perkebangan menjadi Borland Delphi 6.0 dan versi terbaru Delphi versi 7.0 dengan penambahan fitur-fitur baru dan fasilitas yang canggih.

II.6.3 Kelebihan Borland Delphi

Beberapa kelebihan yang dapat diambil apabila menggunakan Borland Delphi, antara lain:

1. Delphi mendukung Pemrograman Beroientasi Object (Object Orented

Programming)

(41)

4. Hasil dari proses kompilasi berupa sebuah file yang dapat dieksekusi sehingga mempermudah dalam pendistribusian program dan mengurangi banyanya file pendukung

5. Delphi menyediakan banyak sekali komponen yang dapat digunakan. Komponen juga dapat bersumber dari pihak ketiga yang biasanya disertai dengan dokumentasi, source code dan lain-lain, yang sifatnya komersil atau free.

6. Mendukung banyak database server (MySQL, SQL Server, Interbase, Oracle dan sebagainya) sehingga dapat mempermudah dalam membuat aplikasi database.

II.7 Definisi dan Sejarah Unified Modeling Laguage ( UML )

Pada kenyataannya pendapat orang tentang Unified Modeling Laguage

(UML) itu berbeda-beda satu sama lain. Hal ini dikarenakan oleh sejarahnya sendiri dan oleh perbedaan persepsi tentang apa yang membuat sebuah proses rancang bangun perangkat lunak efektif. Menurut Martin Fowler dalam bukunya yanng berjudul “UML Distilled Edisi 3 Panduan Singkat Bahasa Pemodelan

Objek Standar” ditulis bahwa UML adalah keluarga notasi grafis yang didukung

oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek (OO).

(42)

tingkat abstraksi yang tidak terlalu tinggi untuk memfasilitasi diskusi tentang desain.

Meskipun pada faktanya, bahasa pemodelan grafs ini telah ada sejak lama, masih terdapat banyak pertentangan di dalam industri perangkat lunak tentang perannya. Pertentangan-pertentangan ini berpengaruh pada bagaiman orang-orang memandang tentang UML itu sendiri.

UML merupakan standar yang relatif terbuka yang dikontrol oleh Object

Management Group (OMG), yaitu sebuah konsorsium terbuka yang terdiri dari

banyak perusahaan. OMG dibentuk untuk membuat standar-standar yang mendukung interoperabilitas, khususnya interoperabilitas sistem berorientasi objek. OMG mungkin lebih dikenal dengan standar-standar CORBA (Common

Object Request Broker Architecture). UML lahir dari penggabungan banyak bahsa

pemodelan grafis berorientasi objek yang berkembang pesat pada akhir 1980-an dan awal 1990-an.

II.7.1 Cara Menggunakan UML

(43)

sebelum membuat kode, sedangkan reverse engineering membuat diagram dari kode yang sudah ada untuk membantu memahaminnya. sketsa biasanya sedikit informal dan dinamis

Sketsa juga berguna di dokumen, di mana fokusnya lebih pada penyampaian ide daripada keutuhan. Peranti yang digunakan dalam pembuatan sketsa adalah alat gambar ringan dan biasanya orang-orang tidak terlalu mengikuti aetiap aturan dalam UML.dan sebagian besar diagram UML yang terdapat dalam buku-buku adalah sketsa.

Kebalikannya, UML sebagai blueprint menyampaikan suatu keutuhan. Perbedaan antar blueprint dansketsa terletak pada fakta bahwa sketsa dibuat tidak lengkap, hanya menunjukkan informasi penting sedangkan blueprint cenderung komprehensif dan acapkali bertujuan meringaks pemrograman menjadi aktivitas yang simpel dan sedikit mekanis. Dalam kata lain, sketsa cenderung bersifat eksploratif sedangkan blueprint bersifat definitif.

Dan UML sebagai bahasa pemrograman, dalam lingkungan ini, developer menggambar diagram UML yang digabungkan langsung menajdi kode yang dapat dijalankan dan UML menjadi source code.

II.7.2 Diagram-Diagram pada UML

(44)

1. Activity Diagram

Menggambarkan rangkaian aliran dari aktifitas, digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya seperti use case atau interaksi.

2. Class Diagram

Adalah deskripsi kelompok obyek-obyek dengan properti, perilaku dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah sistem. Hal tersebut tercermin dari class-class yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya mempunyai beberapa class diiagram. Class diagram

sangat membantudalam visualisasi struktur kelas dari suatu sistem.

3. Componen Diagram

Merupakan bagian fisik dari sebuah sistem, karena menetap di komputer tidak berada di benak para analis. Komponen merupakan implementasi

software dari sebuah atau lebih class. Component dapat berupa source code, komponen biner, atau executable component. Sebuah component berisi informasi tentang logic class atau class yang diimplentasikan sehingga membuat pemetaan dari logical view ke component view. Sehingga component diagram merepresentasikan duania real yaitu

component software yang mengandung component, interface dan

(45)

4. Collaboration Diagram

Menggambarkan kolaborasi dinamis seperti sequence diagram.

5. Deployment Diagram

Menggambarkan tata letak sebuah sistem secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat satu sama lain dan jenis hubungannya.

6. Use Case Diagram

Adalah abstraksi dari interaksi antara sistem dan aktor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah sistem dengan dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai.

7. Sequence Diagram

Digunakan untuk menggambarkan perilaku pada sebuah skenario.

8. State Diagram

Menggambarkan semua state (kondisi) yang dimiliki oleh suatu objek dari suatu class dan keadaan yang menyebabkan state berubah.

Tabel II.1 Diagram UML

Diagram Kegunaan

Activity Behavior prosedural dan paralel

Class Class, fitur, an hubungan-hubungan

(46)

jalur

Component Struktur dan koneksi komponen

Composite stucture Dekomposisi runtime sebuah class

Deployment Pemindahan artifak ke node

Interaction overview Campuran sequence dan activity

diagram

Object Contoh konfigurasi dari contoh-contoh

Package Struktur hirarki compile-time

Sequence Interaksi antar objek; penekanan pada

sequence

State machine Bagaimana objek mengubah even

selama aktif

Timing Interaksi antar objek; penekanan pada

timing

Use case Bagaiman pengguna berinteraksi dengan

(47)
[image:47.595.114.487.109.575.2]

Gambar II.8 Klasifikasi Jenis Diagram UML

II.7.3 Kelebihan UML

(48)
(49)

39

III.1 Analisis Sistem

Pada bab ini akan dibahas mengenai analisis dan perancangan pada sistem yang dibangun.

III.1.1 Analisis Masalah

Analisis masalah adalah suatu gambaran masalah yang diangkat dalam penulisan skripsi tentang penerapan algoritma minimax untuk permainan nim. Algoritma ini digunakan untuk mencari langkah yang tepat bagi komputer untuk memperoleh kemenangan.

Berikut adalah hal-hal yang akan dianalisis berkaitan dengan penerapan langkah kerja minimax dalam permainan nim :

1. Analisis komponen permainan 2. Analisis strategi bermain 3. Langkah kerja minimax

III.1.2 Analisis Permainan

(50)

probabilistik seperti permainan yang menggunakan dadu. Maka minimax merupakan metode yang cocok untuk diterapkan.

Berbeda dengan permainan lain, nim merupakan permainan logika matematika yang sangat sederhana namun jika kita perdalam lagi maka akan kita temukan strategi bermain nim yang cukup menarik. Dalam penulisan tugas akhir ini ada beberapa data dijadikan sebagai bahan penelitian yaitu data mengenai komponen permainan, strategi dalam bermain, dan data mengenai langkah kerja algoritma minimax.

III.1.2.1 Analisis Komponen Permainan

1. Identifikasi Pemain

Permainan nim hanya dapat dimainkan oleh dua pemain. Masing-masing pemain bermain secara bergiliran.

2. Cara Bermain

Sama seperti nama permainannya yaitu nimm dalam bahasa jerman yang artinya “ambil” atau istilah dalam bahasa cinanya yaitu “Tsyanshidzi”

(mengambil batu). Umumnya cara bermainnya adalah dengan mengambil sebuah atau beberapa benda dalam tumpukan (baris) yang sudah ditentukan. Permainan terus dilakukan secara bergiliran hingga jumlah benda dalam tumpukan habis. 3. Aturan Permainan

(51)

ditentukan berapa batas maksimumnya. Untuk menentukan siapa pemenangnya sendiri ada yang ditentukan berdasarkan standar konvensi permainan normal yang artinya pemain yang mengambil sisa benda terakhir adalah pemenangnya atau sebaliknya, pemain yang berhasil menyisakan benda untuk pemain lain adalah pemenangnya (misere).

4. Permainan Usai

Permainan dikatakan usai apabila tidak ada benda (objek) yang tersisa dalam tumpukan atau habis.

III.1.2.2 Analisis Strategi Permainan

Berikut akan dijelaskan bagaimana gambaran dari permainan nim. Agar lebih mudah dipahami, kita coba asumsikan dengan sebuah contoh kasus untuk permainan nim apabila ada satu tumpukan (baris) dengan jumlah bendanya (objek) sebanyak 10 buah.

Gambar III.1 Representasi 10 buah objek

(52)

peraturannya adalah pemain yang mengambil benda (objek) terakhir adalah pemenangnya.

Artinya ketika memainkan permainan ini, dibutuhkan strategi untuk dapat menjadi pemenangnya. Apabila diasumsikan kita sebagai pemain pertama. Berapa banyak objek yang akan kita ambil? Berikut akan coba di gambarkan bagaimana cara bermainnya.

Misal pemain pertama, mengambil 3 buah objek terlebih dahulu. Maka akan tersisa 7 buah objek. Lihat gambar III.2.

Gambar III.2 representasi sisa 7 buah objek

Saat giliran pemain kedua dari beberapa sisa objek yang ada, diasumsikan dia mengambil 5 objek, maka objek yang tersisa tinggal 2 buah. Lihat gambar III.3

Gambar III.3 representasi sisa 2 buah objek

(53)

terakhir mengambil objek dia sebagai pemenangnya. Sedangkan versi lainnya yaitu misere, merupakan kebalikan dari permainan normal yang membedakan adalah status pemenangnya.

Pada prinsipnya, dasar dari permainan nim adalah dengan menggunakan

binary digital sum atau yang lebih dikenal dengan exclusive or (xor) atau nim-sum. Untuk beberapa tumpukan baris maka kita dapat melakukan perhitungan

nim-sum nya. Sebagai contoh kasus lainnya apabila ada 3 tumpukan baris dengan

masing-masing tumpukan berjumlah 2, 3, 5. Direpresentasikan pada gambar III.4.

Baris 1 Baris 2 Baris 3

Gambar III.4 Nim dengan Tumpukan 3 Baris

(54)

Tabel III.1 Representasi Perhitungan Nim Sum Tumpukan (baris) Jumlah objek (desimal) Jumlah objek (biner) Jumlah objek(Biner) xor nim-sum Hasil penjumlahan

1 2 010 010 ⊕ 100 = 110 6

2 3 011 011 ⊕100 = 111 7

3 5 101 101 ⊕ 100 = 001 1

Nim-sum 2 ⊕3 ⊕5 = 4 100

Dari penjumlahan biner pada tabel III.1, kita lihat bahwa satu-satunya baris yang berkurang jumlah objeknya adalah baris ke-3. Maka kita harus menyisakan 1 buah objek pada baris ke-3 yaitu dengan mengambil 4 objek dari baris ke-3. Lihat gambar III.5

Baris 1 Baris 2 Baris 3

Gambar III.5 Representasi Nim dengan Sisa Objek 2, 3, 1 perbaris

(55)

Baris 1 Baris 2 Baris 3

Gambar III.6 Representasi Nim dengan Sisa objek 2, 3 perbaris

Giliran pemain 1, apabila hanya tersisa 2 baris, maka langkah yang harus diambil adalah dengan mengambil objek pada baris yang lebih besar untuk membuat kedua tumpukan berjumlah sama. Yaitu dengan mengambil 1 buah objek pada baris ke-2.

Baris 1 Baris 2 Baris 3

Gambar III.7 Representasi Nim dengan Sisa Objek 2, 2 perbaris

Giliran pemain ke-2, misal pemain 2 mengambil 1 pada baris ke-2, maka sisanya diperlihatkan pada gambar III.8.

Baris 1 Baris 2 Baris 3

Gambar III.8 Representasi Nim dengan Sisa Objek 2, 1 perbaris

(56)

Adapun perbedaan strategi permainan nim biasa dengan permainan misere yaitu ketika hanya tesisa 2 tumpukan baris maka langkah yang harus diambil adalah dengan menyisakan tumpukan baris yang jumlah objeknya ganjil. Berarti pemain ke-1 harus mengambil semua objek pada baris ke-1, sehingga menyisakan 1 objek pada baris ke-2. Maka pemain ke-2 lah yang akan mengambil sisa objek tersebut dan ia kalah.

III.1.3 Analisis Metode Minimax

Dalam minimax ada dua prosedur yang harus dijalankan yaitu maximasi dan minimasi. Untuk memperjelas bagaimana penerapan dari minimax ini. Akan langsung digambarkan dengan tree.

Pertama kita asumsikan pemain 1 sebagai max. Apabila diberikan 2 tumpukan baris dengan masing-masing tumpukan berjumlah 1 dan 3 buah objek. Maka kita dapat inisialisasikan baris tersebut dengan jumlah objeknya dengan

state (1,3). State (1,3) ini kita asumsikan sebagai root node. Sebagai pemain pertama, max dapat melakukan beberapa kemungkinan jalan. Perlu diperhatikan, pada permainan nim tidak diperbolehkan untuk mengambil beberapa buah objek pada 2 atau lebih tumpukan baris sekaligus. Dengan demikian kemungkinan jalan yang dapat dilalui oleh max adalah sebagai berikut:

Mengambil 1 buah objek dari tumpukan pertama, sehingga menyisakan 3 buah objek pada tumpukan ke-2. Kita inisialkan dengan state (3), atau

(57)

2. Mengambil 2 buah objek pada tumpukan ke-2, sehingga menyisakan 1 buah objek pada tumpukan pertama dan 1 buah objek pada tumpukan ke-2, (1,1). Atau,

3. Mengambil seluruh objek pada tumpukan ke-2, sehingga akan menyisakan 1 pada tumpukan pertama. Kita inisialkan (1).

Apabila digambarkan dalam tree maka hasilnya dapat diperlihatkan pada gambar III.9.

Gambar III.9 Tree Representasi Pergerakan Max

(58)

Gambar III.10 Tree Langkah Pergerakan Max dan Min

Pada gambar III.10. Digambarkan bahwa min dapat melakukan 3 langkah dari state (3), yaitu dengan mengambil 2 buah objek, sehingga menyisakan 1 buah objek, state (1). Atau min dapat mengambil 1 buah objek, sehingga menyisakan 2,

state (2). Atau min mengambil semua objek yaitu 3 buah objek dari tumpukan, sehingga untuk tipe permainan normal min akan memperoleh kemenangan. Dan seterusnya untuk masing-masing state (1,2), (1,1) dan (1).

Dilanjutkan dengan giliran max. Max dapat konversi state (1) menjadi ( ).

(59)

Gambar III.11 Tree Langkah Max Selanjutnya

Giliran min, dari semua state yang masih menghasilkan kemungkinan jalan hanya tersisa satu buah objek, artinya min akan memperoleh kemenangan. Lihat gambar III.12

(60)

Dari struktur tree yang dibuat kita dapat mengetahui berapa besar kemenangan yang dapat diperoleh oleh min (pemain ke-2) dari setiap state yang dibuat. Untuk melihat state mana yang dapat memberikan kemenangan bagi masing-masing pemain maka kita dapat memberikan nilai atau tanda pada setiap

state. Tandai nilai +1 untuk state dimana max dapat kemenangan. Dan -1 untuk min apabila min mendapat kemenangan. Dijelaskan pada gambar III.13.

Periksa mulai dari leaf node sampai root, berikan nilai untuk setiap node

yang mengasumsikan kemenangan. Mulai dari min, berikan nilai -1 untuk state

(1), karena state (1) yang menghantarkan kemenangan untuk min.

Selanjutnya maju satu tahap ke atas, giliran max yang diberikan nilai. Masih dengan mengasumsikan max akan memaximumkan langkahnya. Maka berikan

state (2) dengan nilai +1, karena state (2) mengahantarkan ke state ( ) yang merupakan kemenangan bagi max. Dan berikan nilai +1 untuk state yang memiliki kondisi yang sama dengan state (2).

Dengan asumsi bahwa min akan mengoptimalkan langkahnya, berikan state

(3) nilai -1 karena bagaimanapun min nantinya akan akan memilih state ( ). Dan berikan nilai -1 untuk state (1,2) karena min akan memilih state (1,1). Dan state

(61)
[image:61.595.127.505.110.355.2]

Gambar III.13 proses pemberian nilai pada tree

Adapun pseudocode algoritma minimaxnya:

Minimax (StatusSaya, Kedalaman, Pemain) IF (Kedalaman==Max)

RETURN static (StatusSaya, Pemain) Bangkitkan successor S[1..n]

IF (Pemain==Saya)

RETURN max of Minimax (S[i], kedalaman+1, Lawan) ELSE

RETURN min of Minimax (S[i], kedalaman+1, Saya)

III.1.4 Analisis Kebutuhan Non Fungsional

(62)

Pada analisis kebutuhan sistem nonfungsional ini dijelaskan analisis perangkat keras (hardware), perangkat lunak (software), dan pengguna (user) sebagai bahan analisis kekurangan dan kebutuhan yang harus dipenuhi dalam perancangan sistem yang akan diterapkan.

1. Analisis kebutuhan perangkat keras (hardware)

Adapun spesifikasi minimum perangkat keras yang dibutuhkan untuk menjalankan aplikasi ini, antara lain:

a. Processor intel pentium 4 b. Memori minimal 128 MB

c. Monitor resolusi 1024X768 pixel

d. Mouse

2. Analisis kebutuhan perangkat lunak (software)

Kebutuhan perangkat lunak yang digunakan untuk membangun aplikasi ini antara lain :

a. OS: Window

b. Bahasa pemrograman: Delphi 7.0

3. Analisis pengguna

(63)

pengguna yang mengerti dan memahami komputer sehingga dapat menggunakan aplikasi yang dibangun.

III.1.5 Analisis Kebutuhan Fungsional

Adalah sumber daya analisis untuk menentukan entitas-entitas baik entitas internal maupun eksternal, data yang mengalir, serta prosedur-prosedur yang bisa dilakukan oleh masing-masing entitas.

III.1.5.1 Use Case Diagram dan Skenario

Use case adalah teknik untuk merekam persyaratan fungsional sebuah

sistem. Use case mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem itu sendiri, dengan memberi sebuah narasi tentang bagaimana sistem itu digunakan. Use case diagram untuk aplikasi permainan nim ini dapat dilihat pada Gambar III.13. pada gambar terdapat beberapa use case, di antaranya: use case mulai, use case pilih tipe pemain dan tipe permainan, use case main baru,

(64)

Gambar III.14 Use Case Diagram

Sedangkan skenario menjelaskan setiap proses yang terjadidari awal hingga akhir dari sebuah use case. Berikut adalah skenario dari use case diagram yang dibuat :

Bantuan User

Keluar

Mulai Main baru

Pilih Tipe Pemain dan Tipe Permainan

Ulang <<extend>> <<extend>>

(65)

1. Skenario Use Case Mulai

Tabel III.2 Skenario Use Case Mulai

Identifikasi Masalah

Nama Use Case Mulai

Tujuan Memulai permainan

Deskripsi User memilih menu mulai untuk memulai

permainan

Aktor User

Usecase Yang Berkaitan Use Case Pilih tipe pemain dan tipe permainan

Skenario Utama

Kondisi Awal Aplikasi sudah dibuka, menampilkan menu utama

Aksi Aktor Reaksi Sistem

1. Klik tombol mulai 2. Menampilkan form pengaturan 3. Menentukan tipe pemain

dan tipe permainan

4. Klik ok 5. Menampilkan permainan

(66)

2. Skenario Use Case Pilih Tipe Pemain dan Tipe Permainan

Tabel III.3 Skenario Use Case Pilih Tipe Pemain dan Tipe Permainan

Identifikasi Masalah

Nama Use Case Pilih Tipe Pemain dan Tipe Permainan

Tujuan Memilih tipe pemain dan tipe permainan

Deskripsi

Merupakan proses untuk me-setting tipe permainan dan tipe pemain agar permainan dapat dijalnkan sesuai yang diinginkan

Aktor User

Usecase Yang Berkaitan Use Case Main baru dan Use Case Ulang

Skenario Utama

Kondisi Awal Form pengaturan sudah dibuka

Aksi Aktor Reaksi Sistem

1. pilih tipe pemain 2. pilih tipe permainan

2. Klik tombol ok 3. Menutup form pengaturan

4. Menampilkan form utama permainan

(67)

3. Skenario Use Case Main baru

Tabel III.4 Skenario Use Case Main Baru

Identifikasi Masalah

Nama Use Case Main Baru

Tujuan Mengganti permainan dengan permainan baru Deskripsi

Proses ini dilkukan jika user ingin mengganti permainan dengan permainan baru

Aktor User

Usecase Yang Berkaitan

Use Case ppilih tipe pemain dan tipe permainan

Skenario Utama

Kondisi Awal Aplikasi sudah dibuka, form utama ditampilkan

Aksi Aktor Reaksi Sistem

1. Klik tombol main baru 3. Pilih ya

2. Muncul pesan konfirmasi ‘‘ganti permainan?’’ 4. Mengaktifkan permainan

5.Setting permainan sesuai pengaturan tipe permainan yang sudah dipilih

6.Permainan ditampilkan

Skenario Alternatif (Jika Gagal)

Aksi Aktor Reaksi Sistem

1. Pilih tidak 2. Melanjutkan permainan yang sedang dimainkan

(68)

4. Skenario Use Case Ulang

Tabel III.5 Skenario Use Case Ulang

Identifikasi Masalah

Nama Use Case Ulang

Tujuan

Mengulangi permainan yang sudah/ sedang dimainkan dari mulai awal

Deskripsi Merupakan proses untuk mengulangi permainan

yang sudah/ sedang dimainkan dari mulai awal

Aktor User

Usecase Yang Berkaitan Use Case Pilih tipe pemain dan tipe permainan

Skenario Utama

Kondisi Awal

Aplikasi sudah dibuka, form utama sudah ditampilkan

Aksi Aktor Reaksi Sistem

1. Klik tombol Ulang 2. Menampilkan pesan konfirmasi ‘Ulangi permainan?’

3. Pilih ya 4. Mengulangi permainan (restoregame) 5. Menampilkan permainan

Skenario Alternatif (Jika Gagal)

Aksi Aktor Reaksi Sistem

1. Pilih tidak 2. Melanjutkan permainan terakhir yang sedang dimainkan

(69)

5. Skenario Use Case Bantuan

Tabel III.6 Skenario Use Case Bantuan Identifikasi Masalah

Nama Use Case Bantuan

Tujuan

Melihat form petunjuk permainan dan Tentang aplikasi

Deskripsi Merupakan proses untuk Melihat form petunjuk

permainan dan Tentang aplikasi

Aktor User

Usecase Yang Berkaitan -

Skenario Utama

Kondisi Awal

Aplikasi sudah dibuka, form menu utama ditampilkan

Aksi Aktor Reaksi Sistem

1. Pilih RadioButton dalam bantuan

2. Pilih petunjuk 3. Menampilkan form petunjuk 4. Pilih Tentang aplikasi 5. menampilkan form tentang aplikasi

(70)

6. Skenario Use Case Keluar

Tabel III.7 Skenario Use Case Keluar

Identifikasi Masalah

Nama Use Case Keluar

Tujuan Menutup aplikasi

Deskripsi Setelah proses ini dilakukan maka sistem akan

menutup aplikasinya

Aktor User

Usecase Yang Berkaitan -

Skenario Utama

Kondisi Awal Aplikasi sudah dibuka

Aksi Aktor Reaksi Sistem

1. Klik tombol Keluar 2. Menampilkan pesan konfirmasi ‘keluar aplikasi?’

3. Pilih ya 4. Menutup aplikasi

Skenario Alternatif (Jika Gagal)

Aksi Aktor Reaksi Sistem

1. Pilih tidak 2. Kembali ke form menu utama

(71)

III..1.5.2 Activity Diagram

Activity diagram merupakan teknik untuk menggunakan logika prosedural,

proses bisnis, dan jalur kerja. Dari skenario yang dibuat, berikut akan digambarkan activity diagramnya.

1. Activity Diagram Mulai

Gambar III.15 Activity Diagram Mulai

Klik mulai

menentukan tipe pemain dan tipe permainan

ok

menampilkan form pengaturan

membuka form permainan

(72)

2. Activity Diagram Pilih Tipe Pemain dan Tipe Permainan

Dalam activity diagram dijelaskan bahwa user dapat memilih tipe pemain dan tipe permainan kemudian sistem akanmenutup form pengaturannya dan langsung menampilkan permainan

Gambar III.16 Activity Diagram Pilih Tipe Pemain dan Tipe Permainan

pilih tipe pemain

pilih tipe permainan

ok Menutup form

pengaturan

Menampilkan form permainan

(73)

3. Activity Diagram Main Baru

Gambar III.17 Activity Diagram Main Baru

Pilih Main baru

Pilih tidak

Pilih ya

Menampilkan MessageDlg (Ganti permainan?)

Mengaktifkan permainan

setting permainan sesuai tipe permainan yang dipilih

menampilkan permainan permainan sedang aktif

(74)

4. Activity Diagram Ulang

Aplikasi dalam keadaan sedang aktif, user kemudian pilih ulang, sistem akan menampilkan pesan dialog ‘ulang permainan?’. Jika iya, sistem akan mereset permainan terakhir yang dimainkan.

Gambar III.18 Activity Diagram Ulang

Klik ulang

permainan sedang aktif

Menampilkan MessageDlg ('ulang permainan?')

Mengulang permainan dari awal

(75)

5. Activity Diagram Bantuan

[image:75.595.137.461.266.546.2]

User dapat memilih menu petunjuk atau tentang aplikasi, kemudian sistem akan menampilkan form petunjuk jika user memilih petunjuk. Dan sistem akan menampilkan tentang aplikasi jika user memilih tentang aplikasi.

Gambar III.19 Activity Diagram Bantuan

Memilih radiobutton dalam menu bantuan

Petunjuk Tentang

aplikasi

Menampilkan form tentang aplikasi

Menampilkan form petunjuk

(76)
[image:76.595.128.444.180.424.2]

6. Activity Diagram Keluar

Gambar III.20 Activity Diagram Keluar

III.1.5.3 Class Diagram

Menggambarkan keterkaitan antar kelas dan mempresentasikan struktur dari sistem. Mendeskripsikan jenis-jenis objek dalam sistem dan berbagai macam hubungan statis yang terdapat diantara mereka.

Klik keluar

Menampilkan messageDlg ('keluar aplikasi?')

Menampilkan menu utama

Menutup aplikasi

(77)
[image:77.595.133.511.134.541.2]

Gambar III.21 Class Diagram

TForm TFabout

BitBtn1 : TBitBtn PageControl1 : TPageContr... TabSheet1 : TTabSheet TabSheet2 : TTabSheet Memo1 : TMemo Panel1 : TPanel Image1 : TImage Label1 : TLabel Label2 : TLabel Label3 : TLabel Formcreate() Flatten() Showmodal()

TFgamedirection BitBtn1 : TBitB... Timer1 : TTimer Image1 : TImage Image2 : TImage name3 : TImage Memo1 : TMemo Memo2 : TMemo Memo3 : TMemo Label1 : Tlabel label2 : TLabel Label3 : TLabel Timer1Timer() FormPaint() TFMenuUtama

BitBtn1 : TBitBtn BitBtnn2 : TBitBtn BantuanRGp : TradioGrou... MulaiBtnClick() KeluarBtnClick() BantuanRGpClick()

TFPengaturan RadioGroup1 : TRadioGroup RadioGroup2 : TRadiioGrou... BitBtn1 : TBitBtn BitBtn2 : TBitBtn BitBtn1Click() BitBtn2Click()

TSetupDlg Boardgrid : TStringGrid FormPaint()

TFormUtama Panel1 : TPanel HumanRgrp : TRadioGroup UlangSBtn : TspeedButton MainBaruSBtn : TspeedButton Timer1 : TTimer

(78)

III.1.5.4 Sequence Diagram

Merupakan diagram untuk menggambarkan perilaku sistem terhadap suatu interaksi yang dilakukan pada sistem tersebut. Secara khusus, menjabarkan behavior skenario tunggal. Diagram tersebut menunjukkan sejumlah objek dan pesan-pesan yang melewati objek-objek ini di dalam use case.

[image:78.595.156.

Gambar

Gambar II.5 1-ply search
Gambar II.8 Klasifikasi Jenis Diagram UML
Gambar III.13 proses pemberian nilai pada tree
Gambar III.19 Activity Diagram Bantuan
+7

Referensi

Dokumen terkait

Kedua, saling memberi ketenangan antar pasangan.238 Sehingga, hubungan antara suami dengan istrinya adalah partner dalam menyalurkan hasrat seksualnya.239 Pandangan Husein

Berdasarkan hasil pengujian DGA Transformator#3 150/20 kV Gardu Induk Cibatu mengindikasikan telah terjadi arching (short circuit) pada internal Transformator#3 150/20 kV GI

Logam berat yang terdapat di perairan muara Sungai Air Bangis dapat berasal dari limbah domestik, pertanian, perbaikan kapal, kegiatan transportasi dan aktivitas

konsentrasi logam berat Ni, Mn dan Cr dalam air laut dan sedimen dari masing-masing stasiun. Parameter lingkungan yang diukur antara lain suhu, pH, salinitas, kecerahan,

Sudah satu minggu kita masuk dalam gerakan DOA PUASA MASSAL 50 HARI yang diadakan di gereja kita. Tuhan memberi tema untuk DOA PUASA MASSAL kita kali ini adalah THE POWER OF

Menjelaskan ja waban siswa-siswi tentang siswa-siswi senang jika guru menggunakan model pe mbela jaran kooperatif STAD dala m mengajar, dapat di ketahui sebanyak

Beberapa jenis padi lokal dapat dimanfaatkan sebagai sumber genetik untuk varietas padi yang adaptif di lahan pasang surut atau lebak, karena mempunyai sifat

mengembangkan bahan ajar dalam melaksanakan pembelajaran pokok bahasan penyebab perubahan, sehingga diharapkan pengajar menjadi lebih termotivasi untuk terus