Metode Pencarian Minimax Untuk Permainan NIM

(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, Activity Diagram, Class Diagram, dan Sequence 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, Activity Diagram, Class Diagram, andSequence 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

4. Prof. Dr. Ir Denny Kurniadie, M.Sc. Selaku Dekan Fakultas Teknik dan Imu Komputer 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.

Pada penelitian ini permainan yang akan dijadikan sebagai objek penelitian ialah permainan nim. Permainan nim merupakan salah satu permainan


(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 hasil rancangan tersebut.


(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

Yaitu tahap penganalisisan permasalahan secara lebih mendalam dengan menyusun suatu studi kelayakan untuk mengetahui apakah sistem layak untuk dibangun atau tidak.


(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

Yaitu tahap pemeliharaan sistem secara rutin. Pemeliharaan dapat dilakukan jika ada permintaan tambahan fungsi sesuai dengan keinginan pemakai ataupun adanya pertumbuhan dan perkembangan baik perangkat lunak maupun perangkat keras.


(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 Penguji


(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 bagian fundamental dari eksistansi manusia. Secara bahasa “games” mempunyai


(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 yang dapat dibawa kemana-mana, contoh Nintendo DS dan Sony PSP.


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

4. Petualangan. Bedanya dengan jenis video game aksi-petualangan, refleks dan kelihaian pemain dalam bergerak, berlari, melompat hingga memecut


(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 penekanan pada tokoh/peran perwakilan pemain di dalam permainan, yang biasanya adalah tokoh utamanya yang sering dimainkan, karakter tersebut dapat berubah dan berkembang ke arah yang diinginkan pemain (biasanya


(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 saat kita mengambil keputusan, saat itu pihak lawan menunggu,


(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

Nim merupakan salah satu permainan tradisional yang saat ini mulai jarang dimainkan. Pada faktanya, di Indonesia banyak orang yang tidak mengetahui apa itu permainan nim. Hal ini wajar, mengingat asal dari permainan itu sendiri. Dalam permainan berbasis komputer, nim termasuk permainan yang bersifat


(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 permainan ini berbeda. Teori permainan digunakan pada teori ekonomi dan saat ini mulai banyak digunakan di bidang akademink lainnya seperti biologi, psikologi, sosiologi, dan lain-lain. Hal yang memebedakannya ialah pada teori permainan, permainan yang dipelajari sebagian besar merupakan permainan yang memiliki imperfect information, sehingga tidak semua pemain mengetahui


(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

Teori Kombinatorial, ditemukan pada awal abad 20, sesuai dengan analisis rekursif dari permainan kombinatorial, yaitu 2 pemain memiliki posisi dimana setiap pemain bermain bergantian untuk memperoleh kemenangan. Dalam aplikasinya, teori ini digunakan untuk menganalisis strategi dari permainan yang memiliki perfect information, yaitu hanya satu orang pemain yang melangkah tiap


(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

Kecerdasan buatan merupakan suatu pembelajaran tentang bagaimana membuat komputer agar dapat melakukan sesuatu sebaik yang dikerjakan manusia.


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

b. Motor inferensi (inference Engine), yaitu kemampuan untuk menarik kesimpulan berdasarkan pengalaman.


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

2. Sadsam, diprogram oleh Robert K. Lindsay pada tahun 1960. Program ini dapat mengetahui kalimat sederhana yang ditulis dalam bahasa inggris dan mampu memberikan jawaban dari fakta-fakta yang didengar dalam sebuah percakapan.


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

Dengan demikian, sistem yang menggunakan kecerdasan buatan, akan mencoba untuk memberikan output berupa solusi dari suatu masalah berdasarkan kumpulan pengetahuan yang ada.


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

Secara umum, untuk mendeskripsikan suatu masalah yang baik, maka harus: 1. Mendefinisikan suatu ruang keadaan


(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 disebut node “daun”, dapat berupa tujuan yang diharapkan (goal).


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

3. Operator-operator yang digunakan tidak terlalu banyak. 4. Sebagian besar permainan dapat dimodelkan dengan mudah.


(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)”

Metode Minimax menggunakan depth-first search dengan kedalaman terbatas. Fungsi evaluasi yang digunakan adalah fungsi evaluasi statis, dengan mengasumsikan bahwa lawan akan membuat langkah terbaik yang mungkin djalankan.


(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

2 ply 1 ply


(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 debugging.


(38)

Gambar II.7 IDE Delphi 7

IDE Delphi memiliki beberapa windows yang mempunyai fungsi tersendiri, diantaranya:


(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)

2. Pengembangan aplikasi secara cepat (RAD) 3. Menggunakan bahasa tingkat tinggi


(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).

Bahasa pemodelan grafis telah ada di industri perangkat lunak sejak lama. Pemicu utama di balik semuanya adalah bahwa bahasa pemrograman berada pada


(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

Pada inti peran UML dalam pengembangan perangkat lunak, orang-orang memiliki cara yang berbeda dalam penggunaannya. Ada 3 cara orang-orang menggunakan UML, yaitu dengan: sketsa, blueprint, dan bahasa pemrograman. Dalam penggunaan UML sebagai sketsa, developer menggunakan UML untuk membantu menyampaikan aspek dari sebuah sistem. Sama halnya dengan blueprint, kita dapat menggunakan sketsa dalam sebuah forward engineering atau reverse engineering. forward engineering menggambar sebuah diagram 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

Pada UML 2 terdiri dari 1 jenis diagram resmi. Berikut diagramnya yang disajikan dalam bentuk tabel II.1.


(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 relationship.


(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)

Gambar II.8 Klasifikasi Jenis Diagram UML

II.7.3 Kelebihan UML

Kelebihan dari UML ( Unified Modeling Languang ) adalah tidak hanya terbatas untuk object oriented software development saja tetapi juga lebih dari itu, UML dapat diterapkan untuk pengembangan software yang lainnya seperti data


(48)

modeling. UML dapat digunakan untuk menggambarkan perkembangan secara lengkap dari relasi dan objek database relasional dari kebutuhan bisnis hingga physical data model.


(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

Dalam beberapa game playing yang memiliki karakteristik permainan dengan ciri dimainkan oleh 2 pemain, dilakukan secara bergiliran, kerugian seorang pemain merupakan keuntungan pemain lainnya, dan tidak mengandung


(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

Pada faktanya bentuk permainan nim sangat variatif. Ada yang dimainkan hanya dalam satu tumpukan (baris) dan adapula yang dimainkan dalam beberapa tumpukan baris dengan masing-masing baris memiliki jumlah objek yang tidak


(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

Pada penjelasan sebelumnya sudah diterangkan tentang bagaimana memainkan permainan ini. Setiap pemain boleh mengambil satu, dua atau beberapa objek. Bagaimana caranya agar dapat memenangkan permainan ini.Kira-kira apa yang harus dilakukan? Berapa banyak objek yang harus diambil? jika


(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

Giliran kita bermain kembali dengan sisa 2 buah objek. Agar memperoleh kemenangan maka kita dapat ambil atau memindahkan semua sisa objek tersebut sehingga tidak tersisa satu objek sama sekali. Dengan demikian dalam peraturan permainan normal, kita adalah pemenangnya. Karena biasanya permainan nim ini dimainkan dalam berbagai versi, permainan versi normal maksudnya pemain yang


(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

Bagaimana strategi memenangkan permainannya? Dengan asumsi bahwa kita sebagai pemain ke-1. Kemudian cari nim-sum dari semua tumpukan dengan cara mengkonversi jumlah objek pada tiap tumpukan baris ke bilangan biner dan menjumlahkannya dengan menggunakan exclusive or (xor). Diperlihatkan pada tabel III.1


(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

Giliran pemain ke-2, sisa objek pada baris 1, 2, dan 3 adalah 2, 3, dan 1. Kita asumsikan pemain ke-2 mengambil 1 pada baris ke-3 sehingga menyisakan 2 dan 3 buah objek pada baris ke-1 dan 2.


(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

Giliran pemain ke-1 kembali. Hanya mengambil 1 objek pada baris ke-1. Selanjutnya apapun langkah yang lawan ambil, maka kita yang akan menang.


(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

1. Mengambil 1 buah objek pada tumpukan ke-2, sehingga menyisakan 1 pada tumpukan pertama dan 2 buah objek pada baris ke-2, (1,2). 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

Kemudian pemain ke-2, kita asumsikan sebagai min. Dari langkah yang dibuat oleh max, maka min dapat membuat langkahnya yang merupakan hasil turunan dari setiap node yang ada.


(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 ( ). State (2) menjadi (1) dan ( ). State (1,1) menjadi (1). Dan (1) menjadi ( ). Jika max mengambil langkah yang menghasilkan state ( ), maka max menang. Lihat gambar III.11


(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 (1,1) dengan nilai -1. Ke tahap node paling atas, berikan nilai root nya dengan nilai -1, karena nilai dari subtree sebelumnya adalah -1.


(61)

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

Analisis kebutuhan non fungsional adalah sebuah langkah dimana seorang pembangun perangkat lunak menganalisis sumber daya yang akan menggunakan perangkat lunak yang dibangun atau untuk menentukan spesifikasi kebutuhan sistem.


(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

Pemain (Player) untuk memainkan permainan nim. Umumnya permainan ini dapat dimainkan oleh siapapun dengan batas usia di atas 12 tahun. Khususnya


(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, use case ulang, use case bantuan, dan use case keluar.


(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

Sistem User


(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 Sistem User


(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

Sistem User


(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

Sistem User


(75)

5. Activity Diagram Bantuan

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

Sistem User


(76)

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 Sistem User


(77)

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

Bevel1 : TBevel ListBox1 : TListBox Solvebtn : TButton AmbilBtn : Tbutton StatisList : TListBox Shape1 : TShape Image1 : TImage Com_Image : TImage hum_Image : TImage hore_lbl : TLabel kamu_lbl : TLabel Label1 : TLabel Label10 : TLabel Label11 : TLabel Label12 : TLabel Label7 : TLabel Label8 : TLabel Label9 : TLabel Shape2 : Tshape BitBtn1 : TBitBtn NextPlayer : char Misere : bool Normal : Int tokensize : Int Usedrows : Int Clickedrows : Int Player1 : string Player2 : string blink : bool ambil : Int board : TRecord AmbilBtnClick() FormActivate() Shape1MouseDown() Panel1Resize() Button1Click() BitBtn1Click() MainbaruSBtnClick() UlangSBtnClick() Timer1Timer() FormPaint() FormCreate() SolveBtnClick() Computermove() Restoregame() Setplayernames() Setplayer()


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

1. Sequence Diagram Mulai

Gambar III.22 Sequence Diagram Mulai : User

: User : TFMenuUtama : TFMenuUtama : TFpengaturan : TFpengaturan

1: MulaiBtnClick( )

4: menentukan tipe pemain 5: menentukan tipe permainan

2: Show() 3: Menampilkan form pengaturan


(79)

2. Sequence Diagram Pilih Tipe Permainan dan Tipe Pemain

Gambar III.23 Sequence Diagram Pilih Tipe Permainan dan Tipe Pemain

: User : User

: TFpengaturan

: TFpengaturan : TFormUtama : TFormUtama

1: menentukan tipe pemain dan tipe permainan 2: BitBtn1Click( )

3: hide()

6: menampilkan form permainan

4: Show() 5: FormActivate()


(80)

3. Sequence Diagram Main Baru

Gambar III.24 Sequence Diagram Main Baru

: User

: User : TFormUtama : TFormUtama : TFPengaturan : TFPengaturan

1: MainbaruSBtnClick( ) 2: MessageDlg('ganti permainan?')

3: Pilih tidak 4: Melanjutkan permainan

5: Pilih ya

6: FormActivate( )

7: Setting permainan sesuai tipe permainan yang dipilih 8: Restoregame( )


(81)

4. Sequence Diagram Ulang

Gambar III.25 Sequence Diagram Ulang : User

: User : TFormUtama : TFormUtama

1: UlangSBtnClick( )

2: MessageDlg('Ulangi permainan?') 3: pilih tidak

4: Melanjutkan permainan 5: pilih ya

6: Restoregame( ) 7: Menampilkan permainan


(82)

5. Sequence Diagram Bantuan

Gambar III.26 Sequence Diagram Bantuan

: User : User

: TFMenuUtama

: TFMenuUtama : TFgamedirection : TFgamedirection : TFabout : TFabout

1: BantuanRgpClick( ) 2: pilih petunjuk

4: menampilkan form petunjuk permainan 5: pilih tentang aplikasi

7: menampilkan tentang aplikasi 6: Show() 3: Show()


(83)

6. Sequence Diagram Keluar

Gambar III.27 Sequence Diagram Keluar

III.2 Perancangan Sistem

Perancangan sistem merupakan metodologi pengembangan suatu perangkat lunak yang dilakukan setelah melalui tahapan analisis. Perancangan bertujuan untuk memberikan gambaran secara terperinci dan merupakan tahap lanjutan dari analisis sistem. Dimana dalam hal ini digambarkan rancangan sistem yang akan dibangun sebelum dilakukan pengodean ke dalam suatu bahasa pemrograman. Desain umum yang akan diaplikasikan bertujuan untuk

: User

: User : TFMenuUtama : TFMenuUtama

1: KeluarBtnClick( ) 2: MessageDlg('keluar aplikasi?')

3: Pilih tidak

4: Kembali ke menu utama 5: Pilih ya


(84)

memberikan gambaran secara umum kepada penggunaan tentang sistem yang akan dibangun.

III.2.1 Perancangan Komponen Permainan

Sebelum perancangan antarmuka secara lengkap, maka terlebih dahulu harus diketahui komponen-komponen dasar dari antarmuka yang akan dirancang. Secara umum, komponen-komponen yang akan ditampilkan dalam antarmuka aplikasi yang akan dibangun adalah:

1. Pemain

Dalam permainan nim terdapat dua pemain yang akan memainkan permainan. Salah satu pemain akan bertindak sebagai Opponent (lawan) yang dimainkan oleh pemain manusia dan pemain lainnya adalah komputer.

2. Pengaturan Permainan

Pengaturan yang disediakan dalam permainan yaitu pilih tipe permainan dan pilih tipe pemain. Untuk pengaturan tipe permainan, ada dua pilihan, user dapat memilih permainan normal/biasa atau permainan misere. Sedangkan tipe pemainnya, user dapat memilihi apakah komputer yang akan bergerak dahulu atau human yang bergerak dahulu.


(85)

3. Cara Bermain

Adapun cara bermain yang akan diterapkan hasil dari penelitian mengenai permainan nim. Maka dalam bermain, user dapat mengambil beberapa buah objek pada setiap tumpukan (baris). Dengan aturan user tidak dapat mengambil beberapa objek sekaligus dalam dua tumpukan (baris). User dapat langsung bermain setelah memilih tipe pemain dan tipe permainan dalam pengaturan yang sudah disediakan. Kemudian akan disediakan rekomendasi dari komputer langkah mana yang dapat diambil pemain manusia.

4. Permainan Usai

Permainan yang akan dirancang hanya untuk sekali bermain. Apabila user selesai bermain maka permainan langsung berakhir. Permainan usai diidentifikasikan dengan tidak adanya jumlah objek yang tersisa.


(1)

ANALISIS & PERANCANGAN

ANALISIS & PERANCANGAN

Activity Diagram

Keluar

Klik keluar

Menampilkan messageDlg

('keluar aplikasi?')

Menampilkan

menu utama

Menutup

aplikasi

Sistem

User


(2)

ANALISIS & PERANCANGAN

ANALISIS & PERANCANGAN

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 : TBitBt... 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

Bevel1 : TBevel ListBox1 : TListBox Solvebtn : TButton AmbilBtn : Tbutton StatisList : TListBox Shape1 : TShape Image1 : TImage Com_Image : TImage hum_Image : TImage hore_lbl : TLabel kamu_lbl : TLabel Label1 : TLabel Label10 : TLabel Label11 : TLabel Label12 : TLabel Label7 : TLabel Label8 : TLabel Label9 : TLabel Shape2 : Tshape BitBtn1 : TBitBtn NextPlayer : char Misere : bool Normal : Int tokensize : Int Usedrows : Int Clickedrows : Int Player1 : string Player2 : string blink : bool ambil : Int board : TRecord AmbilBtnClick() FormActivate() Shape1MouseDown() Panel1Resize() Button1Click() BitBtn1Click() MainbaruSBtnClick() UlangSBtnClick() Timer1Timer() FormPaint() FormCreate() SolveBtnClick() Computermove() Restoregame() Setplayernames() Setplayer()


(3)

ANALISIS & PERANCANGAN

ANALISIS & PERANCANGAN

Jaringan Semantik

T01 : form menu utama

T02 : form pengaturan

T03 : form utama

T04 : form petunjuk

T05 : form tentang aplikasi

M01 : pesan konfirmasi keluar aplikasi

M02 : pesan konfirmasi ganti permainan

M03 : pesan konfirmasi ulang permainan


(4)

IMPLEMENTASI DAN PENGUJIAN

IMPLEMENTASI DAN PENGUJIAN

Perangkat keras

Adapun Perangkat keras yang digunakan untuk pembuatan aplikasi adalah

sebagai berikut:

1. processor 1,5GHz

2. memori minimal 128 MB

3. Harddisk minimal 250 GB

4. Monitor resolusi 1024X760 pixel

5. Mouse

Perangkat lunak

Komputer

Spesifikasi perangkat lunak

Sistem Operasi

Microsoft Window 7 ultimate 32 bit

Bahasa Pemograman

Borland Delphi 7.0


(5)

IMPLEMENTASI DAN PENGUJIAN

IMPLEMENTASI DAN PENGUJIAN

Pengujian blackbox

yaitu pengujian yang fokus pada persyaratan fungsional

dari perangkat lunak yang dibangun. Berikut pengujian

menggunakan metode

blackbox

.

Pengujian whitebox

pengujian yang didasarkan pada pengecekan terhadap

detil perancangan, menggunakan struktur kontrol dari

desain program secara prosedural untuk membagi


(6)

TERIMA KASIH

TERIMA KASIH