• Tidak ada hasil yang ditemukan

Implementasi jaringan syaraf tiruan metode feed forward untuk memprediksi cara bermain player dan mengoptimalkan nilai kartu tertinggi dalam game poker

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi jaringan syaraf tiruan metode feed forward untuk memprediksi cara bermain player dan mengoptimalkan nilai kartu tertinggi dalam game poker"

Copied!
88
0
0

Teks penuh

(1)

1 BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah

Poker adalah permainan kartu keluarga yang melibatkan taruhan dan bermain individu, dimana pemenang ditentukan oleh jajaran dan kombinasi dari kartu mereka, beberapa di antaranya tetap tersembunyi hingga akhir pertandingan. Game poker bervariasi dalam jumlah kartu dibagikan, jumlah bersama atau "komunitas" kartu dan jumlah kartu yang tetap tersembunyi. Prosedur taruhan bervariasi di antara permainan poker yang berbeda dengan cara-cara seperti taruhan batas dan membelah pot antara tangan tinggi dan tangan rendah, berbeda dengan game lainnya seperti catur, poker adalah game dengan informasi yang tidak lengkap karena kita tidak dapat melihat kartu lawan, begitu juga sebaliknya, sehingga dalam pengembangan sebuah kecerdasan buatan dalam game poker dibutuhkan pendekatan yang berbeda dibandingkan dengan catur, sehingga dapat dihasilkan game poker yang menarik dan menantang untuk dimainkan, saat ini kebanyakan game poker offline yang dimainkan dengan lawan komputer menggunakan fixed model dalam kecerdasan buatannya, ini membuat lawan komputer tersebut mudah untuk dikalahkan karena pola permainan yang tidak berubah sesuai dengan cara kita bermain sehingga kita bisa dengan mudah menebak pola permainan komputer dan permainanpun menjadi membosankan.

(2)

oleh Guy Van den Broeck dkk yang melakukan penelitian dengan mengunakan metode monte carlo untuk memodelkan lawan bermain tetapi proses komputer untuk mengambil keputusan terbaik tidak ada (Broeck, Driessens dan Ramon, 2008).

Berdasarkan penelitian tersebut, metode monte carlo hanya memodelkan lawan tanpa mengambil keputusan terbaik untuk melawannya sehingga pada penelitian ini akan di gunakan jaringan syaraf tiruan untuk memprediksi cara bermain player yang membuat komputer melakukan keputusan terbaik sehingga dapat mengoptimalkan nilai kartu tertinggi.

Dengan mengunakan jaringan syaraf tiruan artificial inteligence yang terdapat di dalam game ini akan menjadi learning machine yang dapat mempelajari pola permainan player, sehingga semakin lama bermain maka artificial inteligence ini akan semakin sulit untuk dikalahkan dan memiliki pola permainan yang berbeda setiap rondenya sehingga memberikan faktor tantangan yang tidak membosankan. Sedangkan jaringan syaraf tiruan yang digunakan adalah feedforward dengan algoritma backpropagation sebagai pelatihannya. Dengan ini diharapkan metode jaringan syaraf tiruan feedforward dapat membuat artificial inteligence dalam game dapat memprediksi cara bermain player sehingga dapat mengoptimalkan nilai kartu tertinggi.

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah, maka dirumuskan sebuah masalah dalam penelitian ini adalah Bagaimana mengimplementasikan jaringan syaraf tiruan pada artificial inteligence agar dapat mengenali pola cara bermain player sehingga dapat mengoptimalkan nilai kartu tertinggi.

1.3 Maksud dan Tujuan

(3)

3

Adapun tujuan dari penulisan tugas akhir adalah memberikan kemampuan pada artificial inteligence agar dapat memprediksi cara bermain player yang membuat komputer melakukan keputusan terbaik sehingga dapat mengoptimalkan nilai kartu tertinggi.

1.4 Batasan Masalah

Dalam pembahasan dan permasalahan yang terjadi, diperlukan beberapa pembatasan masalah atau ruang lingkup kajian sehingga penyajian lebih terarah dan terkait satu sama lain.

Adapun batasan dari permasalahan ini adalah sebagai berikut :

1. Implementasi JST Feedforward pada game ini diterapkan pada AI.

2. Menggunakan bahasa pemrograman JavaScript

3. Perancangan yang digunakan dalam membangun aplikasi ini adalah pendekatan berbasis objek

4. Algoritma pelatihan untuk jaringan syaraf tiruan feedforward yang digunakan adalah algoritma backpropagation

5. Game ini hanya dapat dimainkan secara single player.

1.5 Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penulisan proposal ini adalah penelitian deskriptif, penelitian deskriptif merupaka penelitian yang berusaha mendeskripsikan dan menginterprestasikan kondisi atau hubungan yang ada. Penelitian deskriptif pada umunya dilakukan dengan tujuan utama, yaitu menggambarkan secara sistematis fakta dan karakteristik objek yang diteliti secara tepat.

1. Metode Pengumpulan Data

(4)

2. Tahap Pengembangan Perangkat Lunak

Dalam membangun sistem ini, digunakan metode pengembangan perangkat lunak dengan menggunakan metode Agile sebagai berikut :

Gambar 1.1 Metode Agile, XP Process (Pressman, 2005)

Tahapan metode pengembangan perangkat lunak dengan menggunakan metode Agile sebagai berikut :

a. Planning

Tahap perencanaan yang dilakukan adalah dengan pemodelan menggunakan metode pemrograman berorientasi objek dengan Tool Unified Modeling Language (UML) dan menerapkan metode jaringan syaraf feedforward.

b. Design

Tahap design merupakan tahap perancangan dari pembangunan game poker yang akan dibuat untuk identifikasi dan mengatur class-class di konsep object oriented.

c. Coding

(5)

5

d. Testing

Pengujian aplikasi dilakukan untuk memastikan bahwa aplikasi yang dibuat telah sesuai dengan desainnya dan semua fungsi dapat dipergunakan dengan baik tanpa ada kesalahan.

1.6 Sistematika Penulisan

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

BAB 1 PENDAHULUAN

Bab ini mengemukakan latar belakang pemilihan judul, idenfikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Membahas berbagai konsep dasar teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis permasalahan yaitu tentang game, kecerdasan buatan, jaringan saraf tiruan, OOP (object oriented programming), UML (unified modeling language), NetBeans.

BAB 3 ANALISIS DAN PERANCANGAN

Menguraikan tentang analisis sistem, Algoritma Jaringan Syaraf Tiruan Feedforward Multi Layer, analisis kebutuhan non-fungsional, dan analisis kebutuhan fungsional dari implementasi jaringan syaraf tiruan feedforward untuk memprediksi cara bermain player sehingga dapat mengoptimalkan nilai kartu tertinggi dalam game poker.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

(6)

BAB 5 KESIMPULAN DAN SARAN

(7)

7 BAB 2

LANDASAN TEORI

2.1 Game

Game merupakan salah satu media hiburan yang paling populer untuk semua kalangan usia. Game dapat dimainkan dengan aturan tertentu sehigga ada yang menang dan ada yang kalah, biasanya dalam konteks tidak serius atau dengan tujuan refreshing. Suatu cara belajar yang digunakan dalam menganalisa interaksi antara sejumlah pemain maupun perorangan yang menunjukkan strategi-strategi yang rasional. Sejak pertama kali ditemukan sampai saat sekarang, teknologi game telah mengalami kemajuan yang terbilang pesat. Hal ini dapat dilihat dengan berkembangnya jenis, produk, alat, dan jenis interaksi game dengan penggunaan yang semakin beragam.

2.1.1 Pengertian Game

Game berasal dari kata bahasa inggris yang berarti dasar permainan. Permainan dalam hal ini merujuk pada pengertian kelincahan intelektual (Intellectual Playability Game) yang juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Dalam game, ada target-target yang ingin dicapai pemainnya. Permainan adalah kegiatan yang kompleks yang didalamnya terdapat peraturan, play dan budaya.Sebuah permainan adalah sebuah sistem dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi dengan sistem dan konflik dalam permainan merupakan rekayasa atau buatan, dalam permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan menentukan permainan.

(8)

dan akan mengganggu kegiatan atau aktivitas yang sedang kita lakukan (Nilwan, 2010).

Berikut adalah Pengertian Game menurut para ahli (Nilwan, 2010):

1. Menurut David Parlett, Game adalah sesuatu yang memiliki "akhir dan cara mencapainya": artinya ada tujuan, hasil dan serangkaian peraturan untuk mencapai keduanya.

2. Menurut Clark C.Abt, Game adalah kegiatan yang melibatkan keputusan pemain, berupaya mencapai tujuan dengan;dibatasi oleh konteks tertentu (misalnya, dibatasi oleh peraturan).

3. Menurut Bernard Suits, Game adalah upaya sukarela untuk mengatasi rintangan yang tidak perlu.

4. Menurut Greg Costikyan, Game adalah sebentuk karya seni di mana peserta, yang disebut Pemain, membuat keputusan untuk mengelola sumberdaya yang dimilikinya melalui benda di dalam game demi mencapai tujuan.

5. Menurut Wijaya Ariyana & Deni Arifianto, game merupakan salah satu kebutuhan yang menjadi masalah besar bagi pengguna komputer, karena untuk dapat memainkan game dengan nyaman, semua komponen komputernya harus memiliki kualitas yang baik, terutama VGA card-nya.

2.1.2 Sejarah Game

(9)

9

menulis untuk gelar PhD di University of Cambridge jurusan Human-Computer Interraction. Douglas menciptakan permainan komputer grafis yang diberi nama Tic-Tac-Toe. Permainan ini diprogram pada komputer EDSAC vacuum-tube yang memiliki tampilan tabung sinar katode.William Higinborham menciptakan video game pertama pada tahun 1958. Permainan ini diberi judul “Tennis for Two”, diciptakan dan dimainkan di osiloskop Brookhaven National Laboratory. Pada tahun 1962, Steve Russell menciptakan SpaceWar! Permainan ini merupakan permainan pertama yang dimaksudkan untuk pemakaian komputer. Russel menggunakan MIT PDP-1 komputer mainframe untuk meciptakan permainan ini. Pada 1967, Ralph Baer menciptakan video game pertama yang dimaikan dengan televisi, sebuah permainan yang diberi nama Chase. Ralph Baer akhirnya menjadi bagian dari Sanders Associates, sebuah perusahaan elektronik militer. Ralph mencetuskan idenya untuk pertama kali pada 1951, saat sedang bekerja untuk Loral, sebuah perusahaan komputer.

(10)

2.1.3 Jenis – jenis Game

Berdasarkan jenisnya game dibagi menjadi beberapa kategori diantaranya:

Berdasarkan platfrom atau alat yang digunakan adalah (Nilwan, 2010):

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

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

2.1.4 Game Poker

(11)

11

1. Tujuan dari permainan

Tujuan dari poker adalah untuk memenangkan uang dengan menangkap pot, yang berisi taruhan yang dibuat oleh berbagai pemain selama pertandingan. Seorang pemain bertaruh taruhan dengan harapan bahwa ia memiliki kartu terbaik, atau memberi kesan bahwa ia memegang kartu yang kuat dan dengan demikian meyakinkan lawan-lawannya untuk melipat (meninggalkan) kartu mereka. Karena uang yang disimpan adalah sama nilainya dengan uang menang, mengetahui kapan harus melepaskan kartu yang tampaknya dipukuli adalah sama pentingnya dengan mengetahui kapan harus bertaruh. Dalam kebanyakan game poker, kombinasi atas lima kartu adalah kartu terbaik.

2. Jumlah pemain

Sejumlah pemain, biasanya 2-10, bisa bermain, tergantung pada permainan. Kebanyakan permainan kasino ditetapkan dengan delapan pemain untuk pertandingan tujuh kartu seperti Stud poker atau Razz, dan sembilan atau sepuluh pemain untuk Texas Holdem.

3. Dasar permainan

Poker adalah permainan sederhana untuk belajar, meskipun salah satu dapat menghabiskan seumur hidup berusaha untuk menguasainya.

Dalam permainan seperti Seven-Card Stud dan Texas Hold'em tangan terbaik adalah tangan tinggi. Pada pertandingan lain, seperti Lowball dan Razz, tangan terbaik adalah tangan rendah. (Kemungkinan tangan rendah terbaik adalah 54-3-2-A, yang terbaik berikutnya adalah 64-3-2-A.)

(12)

Delapan-atau-lebih baik (atau hanya Omaha / 8) yang terbaik tangan tinggi dan terbaik tangan rendah membagi pot (asalkan seseorang membuat tangan rendah terdiri dari lima kartu berpasangan dengan pangkat 8 atau lebih rendah). Kemungkinan terburuk tangan rendah akan terdiri dari 87-6-54. Yang terbaik dari semua tangan rendah 54-3-2-A (dikenal sebagai roda atau sepeda). Sementara tangan yang tinggi selalu akan dibuat dalam permainan split-pot, ada tidak akan selalu menjadi tangan rendah. Dan ketika tidak ada tangan rendah, tangan tinggi memenangkan seluruh pot.

Kebanyakan game mengharuskan ante atau taruhan buta. Jika antes digunakan, tiap pemain harus memasukkan jumlah mata uang dalam rangka untuk menerima kartu. Adapun tirai, satu atau dua pemain diharuskan untuk membuat taruhan atau bagian dari taruhan sebelum tangan dibahas. Persyaratan ini berputar di sekeliling meja sehingga setiap pemain membayar bagiannya secara adil.

Setiap kali putaran kartu dibagikan, pemain memiliki kesempatan untuk memeriksa, bertaruh, lipat, menelepon, atau meningkatkan. Setiap kali seorang pemain memutuskan untuk kehilangan minatnya dalam panci, ia dapat melepaskan tangannya ketika giliran untuk bertindak (melakukan sesuatu yang berhubungan dengan taruhan: meningkatkan, lipat, cek, atau panggilan). Ketika seorang pemain lipatan tangan, ia tidak diperlukan untuk menempatkan lebih banyak uang dalam pot. Jika taruhan pemain atau kenaikan gaji dan tidak ada panggilan, pot milik pemain yang, kartu dikumpulkan dan dikocok, dan tangan berikutnya dibagikan. Jika ada dua atau lebih pemain masih aktif pada akhir tangan, tangan terbaik memenangkan pot.

(13)

13

menyenangkan, dan, untuk beberapa, sumber seumur hidup kesenangan.

4. Peringkat kartu

Tujuh Kartu Stud dan Texas Hold'em adalah dua bentuk yang paling populer poker di mana ranking tertinggi menang. Permainan ini dimainkan dengan setumpuk 52- kartu tidak ada joker terdiri dari empat sesuai: sekop, hati, wajik, dan keriting. Setiap sesuai adalah sama nilainya, dan ada 13 peringkat di setiap setelan. Ace adalah kartu tertinggi peringkat dalam setelan jas, diikuti oleh raja, ratu, jack, dan 10 melalui 2 (atau deuce), dalam urutan. Ace juga dapat digunakan sebagai kartu peringkat terendah dalam lurus 5-tinggi (5-43-2-A), yang juga disebut roda atau sepeda. Meskipun Stud dan Hold'em dimainkan dengan tujuh kartu, tangan terbaik mengacu terbaik lima buah kartu. Peringkat tangan merupakan fungsi dari probabilitas. The jarang tangan, semakin berharga itu.

Kartu yang telah terbentuk dinamakan hand, berikut hands rangking yang diurutkan dari yang terkuat sampai terlemah:

a. Royal flush: Lima kartu tertinggi berurutan dalam satu suit

Gambar 2.1 Urutan Kartu Royal Flush

b. Straight Flush: Lima kartu berurutan dalam satu suit/sejenis

(14)

c. Four of a Kind: Empat kartu dengan angka atau nilai yang sama.

Gambar 2.3 Urutan Kartu Four Of a Kind

d. Full House: Tiga kartu dengan nilai yang sama di tambah dengan Dua kartu dengan nilai yang sama.

Gambar 2.4 Urutan Kartu Full House

e. Flush: Lima kartu dalam satu suit/sejenis tetapi tidak berurutan.

Gambar 2.5 Urutan Kartu Flush

f. Straight: Lima kartu berurutan.

(15)

15

g. Three of a kind: Tiga kartu dengan nilai yang sama.

Gambar 2.7 Urutan Kartu Three Of a Kind

h. Two pair: Dua kartu dengan nilai yang sama/sepasang ditambah Dua kartu dengan nilai yang sama.

Gambar 2.8 Urutan Kartu Two Pair

i. One pair: 2 kartu dengan nilai yang sama/sepasang

Gambar 2.9 Urutan Kartu One Pair

(16)

Tabel 2.1 Tingkat Keagresifan

Fold Fold (Berurutan 2 kali) -60

2.2 Kecerdasan Buatan

Para ahli mendefinisikan AI secara berbeda-beda tergantung pada sudut pandang mereka masing-masing. Ada yang fokus pada logika berpikir manusia saja, tetapi ada juga yang mendefinisikan AI secara lebih luas pada tingkah laku manusia. Stuart Russel dan Peter Norvig mengelompokkan definisi AI, yang diperoleh dari beberapa textbook berbeda, ke dalam empat kategori (Russel dan Norvig, 1995), yaitu:

A. Thinking humanly : the cognitive modeling approac Pendekatan ini dilakukan dengan dua cara sebagai berikut :

1. Melalui introspeksi : mencoba menangkap pemikiran-pemikiran kita sendiri pada saat kita berpikir. Tetapi, seorang psikolog Barat mengatakan

“how do you know that you understand?” Bagaimana anda tahu bahwa anda mengerti? Karena pada saat anda menyadari pemikiran anda. Sehingga definisi ini terkesan mengada-ngada dan tidak mungkin dilakukan.

2. Melalui eksperimen-eksperimen psikologi.

(17)

17

apakah komputer tersebut mampu mengelabui seorang manusia yang menginterogasinya melalui teletype (komunikasi berbasis teks jarak jauh). Jika interrogator tidak dapat membedakan yang dinterogasi adalah manusia atau komputer, maka komputer berintelijensia tersebut lolos dari Turning test. Komputer tersebut perlu memiliki kemampuan : Natural Language Processing, Knowledge Representation, Automated Reasoning, Machine Learning, Computer Vision, Robotics. Turing test sengaja menghindari interaksi fisik antara interrogator dan komputer karena simulasi fisik manusia tidak memerlukan intelijensia.

C. Thinking rationally : the laws of thought approach Terdapat dua masalah dalam pendekatan ini, yaitu :

1. Tidak mudah untuk membuat pengetahuan informal dan menyatakan pengetahuan tersebut ke dalam formal term yang diperlukan oleh notasi logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang dari 100%.

2. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam prinsip” dan memecahkannya “dalam dunia nyata”.

D. Acting rationally : the rational agent approach Membuat inferensi yang logis merupakan bagian dari suatu rational agent. Hal ini disebabkan satu-satunya cara untuk melakukan aksi secara rasional adalah dengan menalar secara logis. Dengan menalar secara logis, maka bisa didapatkan kesimpulan bahwa aksi yang diberikan akan mencapai tujuan atau tidak. Jika mencapai tujuan, maka agent dapat melakukan aksi berdasarkan kesimpulan tersebut.

(18)

Definisi thinking rationally terasa lebih sempit daripada acting rationally. Oleh karena itu, definisi AI yang paling tepat untuk saat ini adalah acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional berdasarkan hasil penalaran tersebut.

2.3 Jaringan Syaraf Tiruan

Jaringan saraf tiruan (JST) atau umumnya hanya disebut neural network (NN)), adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan jaringan saraf manusia. JST merupakan sistem adaptif yang dapat mengubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut.

Secara sederhana, JST adalah sebuah alat pemodelan data statistik non-linier. JST dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output untuk menemukan pola-pola pada data (kusumadewi, 2003).

2.3.1 Jaringan Syaraf Tiruan Feedforward

Jaringan Syaraf Tiruan feedforward adalah sebuah jaringan yang sederhana mempunyai struktur feedforward dimana signal bergerak dari input kemudian melewati lapisan tersembunyi dan akhirnya mencapai unit output (mempunyai struktur perilaku yang stabil).

Tipe jaringan feedforward mempunyai sel syaraf yang tersusun dari beberapa lapisan. Lapisan input bukan merupakan sel syaraf. Lapisan ini hanya memberi pelayanan dengan mengenalkan suatu nilai dari suatu variabel. Lapisan tersembunyi dan lapisan output sel syaraf terhubung satu sama lain dengan lapisan sebelumnya. Kemungkinan yang timbul adalah adanya hubungan dengan beberapa unit dari lapisan sebelumnya atau terhubung semuanya (lebih baik).

1. Unit input (Xi, i=1,2,…..,n)

1. Menerima input Xi

(19)

19

2. Unit Hidden (Zj, j=1,2,….,n)

1. Menghitung semua sinyal input dengan bobotnya :

z_inj = voj+ Σxi vij (2.1)

2. Menghitung nilai aktivasi setiap unit hidden sebagai output unit hidden

zj = f(z_inj) (2.2)

(2.3)

3. Mengirim nilai aktivasi sebagai input untuk unit output.

3. Unit Output (Yk, k=1,2,…..,n)

1. Menghitung semua sinyal inputnya dengan bobotnya :

y_ink = wok+ Σzj wjk (2.4)

2. Menghitung nilai aktivasi setiap unit output sebagai output jaringan.

yk = f(y_ink) (2.5)

(2.6)

4. Menghitung faktor δ

δk = (0 - y = f(y_ink)) (y = f(y_ink))(1- y = f(y_ink)) (2.7)

5. Menghitung error rate

δnet = δk * W (2.8)

6. Menghitung weight

(20)

Yang termasuk dalam struktur feedforward :

2.4 OOP (Object Oriented Programming)

Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan terhadapnya. Metodologi berorientasi objek merupakan suatu cara bagaimana sistem perangkat lunak dibangun melaluipendekatan objek secara sistematis. Metode berorientasi objek didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas. Metode berorientasi onjek meliputi rangkaian aktivitas analisis berorientasi objek, perancangan berorientasi objek, pemrograman berorientasi objek, dan pengujian berorientasi objek.

Pada saat ini, metode berorientasi objek banyak dipilih karena metodologi lama banyak menimbulkan masalah seperti adanya kesulitan pada saat mentransformasi hasil dari satu tahap pengembangan ke tahap berikutnya, misalnya pada metode pendekatan terstruktur, jenis aplikasi yang dikembangkan saat ini berbeda dengan masa lalu. Aplikasi yang dikembangkan saat ini sangat beragam (aplikasi bisnis, real-time, utility, dan sebagainya) dengan platform yang berbeda-beda, sehingga menimbulkan tuntutan kebutuhan metodologi pengembangan yang dapat mengakomodasi ke semua jenis aplikasi tersebut (Sutojo, Mulyanto dan Suhartono, 2010).

Keuntungan menggunakan metodologi berorientasi objek adalah sebagai berikut (Sutojo, Mulyanto dan Suhartono, 2010):

(21)

21

Karena kelas dan objek yang ditemukan dalam suatu masalahmasih dapat dipakai ulang untuk masalah lainnya yang melibatkan objek tersebut (reusable).

b. Kecepatan pengembangan

Karena sistem yang dibangun dengan baik dan benar pada saat analisis dan perancangan akan menyebabkan berkurangnya kesalahan pada saat pengkodean.

c. Kemudahan pemeliharaan

Karena dengan model objek, pola-pola yang cenderung tetap dan stabil dapat dipisahkan dan pola-pola yang mungkin sering diubah ubah.

d. Adanya konsistensi

Karena sifat pewarisan dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengkodean.

e. Meningkatkan kualitas perangkat lunak

Karena adanya pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya konsistensi pada saat pengambangannya, perangkat lunak yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.

Berikut beberapa contoh bahasa pemrograman yang mendukung pemrograman berorientasi objek (Sutojo, Mulyanto dan Suhartono, 2010) :

a. Smalltalk

Smalltalk merupakan salah satu bahasa pemrogramanyang dikembangkan untuk mendukung pemrograman berorientasi objek mulai tahun 1978. b. Bahasa Pemrograman Eiffel

Eiffel merupakan bahasa pemrograman yang dikembangkan untuk mendukung pemrograman berorientasi objek mulai tahun 1985 oleh Bertrand Meyer dan compiler Eiffel selesai pada tahun 1987.

c. Bahasa Pemrograman C++

C++ merupakan pengembangan lebih lanjut bahasa pemrograman C untuk mendukung pemrograman berorientasi objek.

(22)

PHP dibuat pertama kali oleh seorang perekayasa perangkat (software engineering) yang bernama Rasmus Lerdoff.

e. Bahasa Pemrograman Java

Java dikembangkan oleh perusahaan Sun Microsystem. Java menurut definisi dari Sun Microsystem adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada komputer standalone ataupun pada lingkungan jaringan.

2.5 UML (Unified Modelling Language)

UML adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sebuah sistem. UML adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.

UML mendefinisikan diagram-diagram sebagai berikut (Prabowo, 2011):

1). Use case diagram 2). Class diagram 3). Activity diagram 4). Sequence diagram 2.5.1 Use case Diagram

(23)

23

aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.

Use case diagram dapat sangat membantu menyusun requirement sebuah

sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.

Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal.

Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.

Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.

2.5.2 Class Diagram

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

Class Diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.

2.5.3 Activity Diagram

(24)

Activity diagram merupakan state diagram khusus, dimana sebagian besar

state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

2.5.4 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pemain, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).

Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.

2.6 NetBeans

NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra (dan terus bertambah!). Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama.

2.6.1 Pengertian NetBeans

NetBeans adalah Integrated Development Environment (IDE) berbasiskan Java dari Sun Microsystems yang berjalan di atas Swing. Swing sebuah teknologi Java untuk pengembangan aplikasi Desktop yang dapat bejalan di berbagai macam platforms seperti Windows, Linux, Mac OS X and Solaris.

(25)

25

Interface (GUI), suatu text atau kode editor, suatu compiler atau interpreter dan suatu debugger.

Netbeans merupakan software development yang Open Source, dengan kata lain software ini di bawah pengembangan bersama, bebas biaya.

2.6.2 Sejarah NetBeans

Menurut situs yang diunduh pada tanggal 5 Oktober 2014 netbeans.org Pengembangan NetBeans diawali dari Xelfi, sebuah proyek mahasiswa tahun 1997 di bawah bimbingan Fakultas Matematika dan Fisika Universitas Charles, Praha. Sebuah perusahaan kemudian dibentuk untuk proyek tersebut dan menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun Microsystem pada tahun 1999. Sun kemudian menjadikan NetBeans open source pada bulan Juni tahun 2000. Sejak itu komunitas NetBeans terus berkembang.

NetBeans mengacu pada dua hal, yakni platform untuk pengembangan aplikasi desktop java, dan sebuah Integrated Development Environment (IDE) yang dibangun menggunakan platform NetBeans.

(26)
(27)

27 BAB 3

ANALISIS DAN PERENCANAAN

3.1 Analisis Sistem

Analisis sistem merupakan proses penguraian konsep ke dalam bagian-bagian yang lebih sederhana. Pada analisis sistem akan mencakup berbagai macam analisis yang berhubungan dengan game yang akan dibangun seperti analisis masalah, gameplay, analisis kecerdasan buatan yang dipakai, analisis kebutuhan fungsional dan non-fungsional.

3.1.1 Analisis Masalah

Pada game poker ini memakai jaringan syaraf tiruan feedforward pada AI untuk memprediksi cara bermain player sehingga permainan AI akan berubah sesuai cara bermain player.

3.1.2 Analisis Game

Game yang akan dibangun adalah game poker yang bergenre card game. Game ini dibangun 2D dan dimainkan secara single player.

3.1.3 Gameplay Game Poker

(28)

1. Kartu Tertinggi (High Card)

Pemenang dengan kartu tertinggi jika kartu anda dan lawan anda tidak memiliki karu yang jadi (straight, flush, pair dan sebagainya). Sebagai contoh lawan anda memiliki kartu K&10 dan anda memiliki kartu AS&3, maka pemenangnya adalah anda karena kartu tertinggi yaitu As ada ditangan anda.

2. Kartu Pasangan (Pair)

Pemenang dengan kartu pair ini artinya ada kartu yang kembar yang dimiliki oleh pemain. Kartu Pair terdiri dari One Pair (Satu kartu kembar) Two Pair (Dua Kartu Kembar) dan Three of Kinds (3 kartu kembar). Penentuan pemenang tidak hanya dilihat dari kartu kembarnya saja, melainkan juga angka tertinggi dari kartu kembar tersebut.

Sebagai contoh kartu Pair yaitu as dan as, 5 dan 5 dsb, dan pemegang One Pair tertinggilah yang menang. One Pair kalah dengan Two Pair contohnya king, king dan jack jack, namun Two Pair kalah dengan Three of Kind atau kembar tiga contohnya 6 6 6.

Gambar 3.1 Urutan Kartu One Pair

(29)

29

Gambar 3.3 Urutan Kartu Three Of a Kind

3. Kartu Berurutan (Straight)

Pemenang dengan kartu Straight adalah anda atau lawan anda memiliki kartu berurutan seperti 45678 atau 10JQKAs. Seperti pada sebelumnya jika lawan anda memiliki kartu beruruta seperti itu pemenang juga akan dilihat dari nilai angka kartu yang paling tinggi.

Gambar 3.3 Urutan Kartu Straight

4. Semua Kartu Sama (Flush)

Pemenang dengan kartu Flush berarti anda atau lawan anda ada yang memiliki 5 kartu dengan jenis yang sama, tanpa melihat berapapun angkanya. Sebagai contoh angka 4 6 10 Jack As namun dengan jenis yang sama keriting semua.

Gambar 3.4 Urutan Kartu Flush

5. 3 Kartu Sama dan 1 Kartu Sama (Full House)

(30)

urutan seperti itu, maka pemenangnya dilihat dari nilai angka tertinggi yang memiliki urutan seperti itu juga.

Gambar 3.5 Urutan Kartu Full House

6. 4 Kartu yang sama Angkanya(Four of Kind)

Pemenang dengan kartu Four of Kind berarti ada yang memiliki 4 kartu kembar sebagai contoh As As As As Jack tanpa melihat jenis kartunya apa. Pemenang dengan kartu Four of Kind juga akan dilihat dari nilai kartu tertinggi pada empat kartu yang sama tersebut.

Gambar 3.5 Urutan Kartu Four Of a Kind

7. Semua kartu sama dan berurutan (Straight Flush)

Pemenang dengan kartu Straight Flush berarti ada yang memiliki 5 kartu berurutan dengan jenis kartu yang sama seperti 6 7 8 9 10 jenis keriting semua.

(31)

31

8. Semua kartu sama dan berutan dan nilai tertinggi (Royal Flush)

Pemenang dengan kartu Royal Flush berati memiliki 5 kartu berurutan seperti pada Straigh Flush dan Nilainya tertinggi hingga kartu As sebagai contoh 10 J Q K As.

Gambar 3.7 Urutan Kartu Royal Flush

Dalam Poker Texas hold'em terdapat 4 fase :

1. Deal Card

Setiap pemain diberikan 2 kartu awal, player diperbolehkan melakukan check, fold, dan bet, kemudian jika sudah ada yang bet dapat dilakukan raise.

2. Flop

Akan diperlihatkan 3 hole card yang merupakan kartu yang dapat digunakan bersama-sama untuk membentuk ranking kartu, player diperbolehkan melakukan check, fold, dan bet, kemudian jika sudah ada yang bet dapat dilakukan raise dan reraise.

3. Turn

Akan diperlihatkan 1 hole card lagi sehingga terdapat 4 hole card , player diperbolehkan melakukan check, fold, dan bet, kemudian jika sudah ada yang bet dapat dilakukan raise dan reraise.

4. River

(32)

akan dihitung ranking dari kartu yang dimiliki tiap player, dan dipilih pemenangnya, pemengang berhak mengambil seluruh chip yang ada di pot.

Ada bermacam-macam sistem cara main poker, diantaranya ada yang namanya: "Texas Hold'em Rules", yaitu seperti ini:

1. Misalkan ada 4 pemain. Pemain satu, pemain dua, pemain tiga, dan pemain empat.

2. Masing-masing pemain akan bergantian menjadi "dealer" (pembagi kartu), bergantian searah dengan jarum jam. Misalnya pemain satu menjadi "dealer", maka dia yang akan membagikan kartu-kartunya nanti.

3. Sebelum kartu-kartu dibagikan, 2 pemain di sebelah kiri dealer menaruh chip/taruhan, yang dinamakan "Ante". "Ante" yang pertama lebih kecil daripada "ante" yang berikutnya. Misalnya: pemain satu adalah "dealer", maka pemain sebelah kirinya, misalkan pemain dua, menaruh Ante nya 5 dolar, dan pemain selanjutnya lagi, yaitu pemain tiga, menaruh Antenya sejumlah 10 dolar. "Ante" biasa dikenal juga dengan "Blind Bets".

4. Kumpulan dari chip-chip/taruhan di tengah meja tersebut untukselanjutnya dinamakan "Pot".

5. Lalu kartu dibagi, masing-masing pemain mendapat 2 kartu. 2 Kartu ini dinamakan "Private Cards"/"Hole Cards".

6. Lalu setelah kartunya dilihat (pemain tak boleh lihat kartu milik pemain lain, harus lihat miliknya sendiri!), pemain di sebelah kiri pemain yang ngasih ante kedua, melakukan "bet" pertama kali. Dalam hal ini karena yang ngasih ante kedua adalah pemain tiga, maka yang melakukan "bet" pertama kali adalah pemain empat.

(33)

33

8. "Call" atau "Stay In", berarti dia akan ikut main, dengan menaruh taruhan sejumlah uang yang ditaruhkan oleh pemain lain terakhir kali. Dalam hal ini yang 10 dolar.

9. "Raise" berarti dia akan ikut main, menaruh taruhannya, dengan nilai taruhan yang lebih tinggi (lebih tinggi dari nilai taruhan sebelumnya, dalam hal ini lebih tinggi dari 10 dolar, misalnya dia menaruh 20 dolar).

10."Fold" berarti dia tak akan ikut main. Jadi dia tak ikut taruhan, dan menutup kartunya. Lalu disusul pemain sebelah kirinya lagi, mau "call", "raise", atau "fold", begitu seterusnya.

11.Setelah itu, 3 kartu dibagi terbuka dan diletakkan di pusat meja, memulai ronde pasang taruhan yang kedua.

12. Seperti sebelumnya, secara bergantian pemain-pemain melakukan lagi "call", "raise", atau "fold", dimulai dari pemain di sebelah kiri yang ngasih ante ke dua tadi. Kartu di pusat meja ini dinamakan "Community Cards". Dan ronde ini dinamakan "Flop".

13.Setelah itu, dibuka satu kartu lagi kartu "Community Cards" yang keempat. Ini dinamakan "Turn Card"/"4th Street" disusul dengan "bet" atau taruhan lagi seperti sebelumnya.

14.Lalu kartu terakhir "Community Cards" dibuka lagi, ini dinamakan "RiverCard"/"5th Street". disusul dengan "bet" atau taruhan lagi seperti sebelumnya. Ini adalah ronde taruhan yang terakhir.

15.Lalu pemain-pemain membuka kartu miliknya, dan mengkombinasikan kartu-kartunya dengan kartu yang terlihat di meja, membentuk 5 kartu yang paling baik kombinasinya.

3.2 Analisis Algoritma Jaringan Syaraf Tiruan Feedforward

(34)

memiliki informasi tidak lengkap (incomplete information), berbeda dengan game yang memiliki informasi yang lengkap seperti catur, maka seluruh kemungkinan langkah lawan dapat terlihat dari bidak-bidaknya, sedangkan pada game poker kartu milik player tidak terlihat, sehingga diperlukan prediksi dengan cara lain yaitu melakukan modelling terhadap lawan dan memasukannya kedalam kategori tertentu sesuai dengan tipe poker player yang biasa dibagi berdasarkan tingkat keagresifan.

Gambar 3.8 Alur Analisis Algoritma

Pada implementasi di game poker ini dibuat 1 buah layer tersembunyi dengan 3 unit yaitu z1, z2, z3, lalu terdapat 4 input yaitu i1, i2, i3, i4, dan 1 output dan max epoch adalah 3, berikut adalah tabel perceptronnya:

Tabel 3.1 Perceptron

(35)

35

Tabel 3.3 Nilai Weight

Step 2: Lakukan Perhitungan keluaran hidden layer

Rumus yang digunakan pada step ini adalah dengan persamaan (2.1) dan (2.2)

z_inj= v0j+ ∑ xi vij (sigma parameter: {p, j=1}) (2.1)

Step 3: lakukan perhitungan keluaran output layer, dalam output layer terdapat 1 buah perceptron keluaran.

Rumus yang digunakan pada step ini adalah dengan persamaan (2.4) dan (2.5)

(36)

output = 0,593

Step 4: Hitung faktor δ pada output layer perceptron:

δk = (0 - y = f(y_ink)) (y = f(y_ink))(1- y = f(y_ink)) (2.7)

δk = ( 0-0,593)( 0,593)(1-0,593) = -0,143

Step 5: hitung error rate

δnet = δk * W (2.8)

δnet_1 = -0,143(-0,2) = 0,029

δnet_2 = -0,143(-0,1) = 0,014

δnet_3 = -0,143(-0,3) = 0,043

---

δ1 = 0,029(0,45)(1-0,45) = 0,0072

δ2 = 0,014(0,31)(1-0,31) = 0,003

δ3 = 0,043(0,52)(1-0,52) = 0,011

Step 6: hitung weight adjusting

W = Wsebelum + δ (2.9)

W11 = -0,2 + 0,0072 = -0,193

W21 = -0,1 + 0,003 = -0,097

W31 = -0,3 + 0,011 = -0,29

(37)

37

Iterasi 2

Tabel 3.3 Nilai Weight

Y

w1 -0,193

w2 -0,097

w3 -0,29

1 -0,1

Step 3: lakukan perhitungan keluaran output layer, dalam output layer terdapat 1 buah perceptron keluaran.

Rumus yang digunakan pada step ini adalah dengan persamaan (2.4) dan (2.5)

y_ink = wok + Σzj wjk (sigma parameter: {m, k=1}) (2.4)

y_ink = -0,1 + 0,45(-0,193) + 0,31(-0,097) + 0,52(-0,29) = -0,367

y = f(y_ink) = 1 / (1+ ey_ink) = 1 / (1 + e-0,367,) = 0,59 (2.5)

output = 0,59

Step 4: Hitung faktor δ pada output layer perceptron:

(38)

δ2 = 0,014(0,31)(1-0,31) = 0,003

δ3 = 0,043(0,52)(1-0,52) = 0,011

Step 6: hitung weight adjusting

W11 = -0,2 + 0,006 = -0,194 (2.9)

W21 = -0,1 + 0,003 = 0,097

W31 = -0,3 + 0,011 = 0,29

Kemudian lakukan iterasi untuk mengupdate setiap perceptron berdasarkan weight adjusting mulai pada step 3.

Iterasi 3

Step 3: lakukan perhitungan keluaran output layer, dalam output layer terdapat 1 buah perceptron keluaran.

Rumus yang digunakan pada step ini adalah dengan persamaan (2.4) dan (2.5)

y_ink = wok + Σzj wjk (sigma parameter: {m, k=1}) (2.4)

y_ink = -0,1 + 0,45(-0,194) + 0,31(-0,097) + 0,52(-0,29) = -0,36

y = f(y_ink) = 1 / (1+ ey_ink) = 1 / (1 + e-0,36,) = 0,41 (2.5)

(39)

39

Karena hanya sampai iterasi ke-3 jadi iterasi ke-3 berhenti di step 3 dengan output 0,41 setalah itu ouput dikalikan dengan tingkat agresif pada tabel 3.4.

Dalam permainan poker terdapat beberapa aksi yang dapat memperlihatkan tingkat ke agresifan dari lawan, berikut adalah tabel aksi dan tingkat keagresifannya (Horroch dan Krieger, 2003):

Tabel 3.4 Tingkat Keagresifan

Fold Fold (Berurutan 2 kali) -60

jika melakukan bet maka 0,41 * 25 = 10,25

Dengan demikian tingkat keagresifan dari player yg di baca oleh bot adalah 10,25 setalah itu nilai agresifitas ini akan diterjemahkan kedalam aksi berdasarkan kondisi sekarang yang dapat terlihat sebagai berikut (Horroch dan Krieger, 2003) :

Tabel 3.4 Aksi

Agresifitas Kondisi Aksi

< 30 Kartu Ditangan Jelek Fold

> 90 Kartu Ditangan Bagus Bet, Call, reRaise

> 30 And < 90 Kartu Ditangan Bagus Bet (dengan Multiplier Bet nya berdasarkan Agresifitas / 20)

(40)

Player Bet < Pot Size

> 30 And < 90 Kartu ditangan Bagus dan Player Bet > Pot Size

Check atau Fold

3.3 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non-fungsional menggambarkan kebutuhan luar sistem yang diperlukan untuk menjalankan aplikasi yang dirancang. Adapun kebutuhan non-fungsional pada implementasi metode jarinagan syaraf tiruan feedforward pada game poker meliputi spesifikasi kebutuhan perangkat lunak, kebutuhan perangkat lunak dan kebutuhan perangkat keras. Analisis kebutuhan non-fungsional bertujuan agar aplikasi yang dibangun dapat digunakan sesuai dengan kebutuhan.

3.3.1 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak atau software merupakan hal yang terpenting dalam mendukung kinerja sebuah sistem. Perangkat lunak digunakan dalam sebuah sistem merupakan perintah-perintah yang diberikan kepada perangkat keras agar dapat saling berinteraksi diantara keduanya. Perangkat lunak yang dibutuhkan sebagai system operasi yang ada pada komputer dan sebagai media pengembangan game tenis meja ini antara lain:

1. Sistem Operasi : windows 7

2. Tools Program : Netbeans IDE 7.3.1

3.3.2 Analisis Kebutuhan Perangkat Keras

Untuk menjalankan suatu aplikasi maka diperlukan perangkat keras yang dapat mendukung proses kerja dari sistem itu sendiri. Pada dasarnya game ini dapat dijalankan di semua perangkat komputer/desktop tapi untuk kenyamanan sebaiknya dijalankan di perangkat yang mempunyai spesifikasi sebagai berikut :

a. Unit komputer lengkap

(41)

41

c. RAM 2 Gb

d. VGA 256 Mb

e. Hardisk 250 Mb.

3.4 Analisis Kebutuhan Fungsional

Spesifikasi kebutuhan fungsional adalah spesifikasi tentang hal-hal yang akan dilakukan system ketika diimplementasikan. Analisis kebutuhan ini diperlukan untuk menentukan keluaran yang akan dihasilkan sistem, masukan yang diperlukan sistem, lingkup proses yang digunakan untuk mengolah masukan menjadi keluaran.

3.4.1 Use Case Diagram

Use Case atau diagram use case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat.

Gambar 3.9 Use Case Diagram

3.4.2 Actor Definition

Actor Definition berfungsi untuk menjelaskan Actor yang terdapat pada Use case diagram.

Tabel 3.5 Actor Definition

No Actor Deskripsi

(42)

3.4.3 Use Case Scenario

Use Case Scenario merupakan bagian pada use case yang menunjukkan proses apa saja yang terjadi pada setiap bagian di dalam use case, dimana player memberikan perintah pada setiap bagian dan respon apa yang diberikan oleh sistem kepada player setelah player memberikan perintah pada setiap bagian-bagian use case. Berikut ini beberapa skenario use case berdasarkan use case yang ada yaitu :

Tabel 3.6 Tabel Use Case Scenario Memulai Permainan

Idenfikasi

Nomer 1

Nama Memulai Permainan

Tujuan Memulai permainan

Deskritif Pemain dapat memulai game ini dan bertanding melawan NPC

Aktor Pemain

Skenario Utama

Kondisi Awal Tampil awal permainan

Aksi Aktor Reaksi Sistem

1. Memilih continue

2. Membagikan kartu ke tangan

Kondisi Akhir Permainan dimulai

Tabel 3.7 Tabel Use Case Scenario Menunggu Giliran

Idenfikasi

Nomer 2

(43)

43

Deskritif Pemain menunggu giliran untuk melakukan aksi

Aktor Pemain

Skenario Utama

Kondisi Awal Tampil awal permainan

Aksi Aktor Reaksi Sistem

2. Memilih continue

3. Mengerakkan aksi bot

Kondisi Akhir Permainan dimulai

Tabel 3.8 Tabel Use Case Scenario Ikut Taruhan

Idenfikasi

Nomer 2

Nama Ikut Taruhan

Tujuan Ikut bertaruh

Deskritif Pemain dapat ikut bertaruh

Aktor Pemain

Skenario Utama

Kondisi Awal Tampil meja yang sudah ada kartu ditangan

Aksi Aktor Reaksi Sistem

1. Memilih call

(44)

Tabel 3.9 Tabel Use Case Scenario Menaikan Nilai Taruhan

Idenfikasi

Nomer 3

Nama Menaikan nilai taruhan Tujuan menaikan taruhan

Deskritif Pemain dapat menaiki nilai taruhan

Aktor Pemain

Skenario Utama

Kondisi Awal Tampil meja yang sudah ada kartu ditangan

Aksi Aktor Reaksi Sistem

1. Memilih Raise

Tabel 3.10 Tabel Use Case Scenario Tidak Ikut Taruhan

Idenfikasi

Nomer 4

Nama Tidak ikut taruhan

Tujuan Tidak mengikuti permainan pada rounde tersebut

Deskritif Pemain tidak mengikuti permainan pada rounde tersebut

Aktor Pemain

Skenario Utama

Kondisi Awal Tampil meja yang sudah ada kartu ditangan

(45)

45

1. Memilih Fold

2. Menurunkan agresif 25% 3. Mentup kartu

Kondisi Akhir Kartu pemain tertutup

Tabel 3.11 Tabel Use Case Scenario Mengecek Kartu

Idenfikasi

Nomer 5

Nama Mengecek kartu

Tujuan Mengecek

Deskritif Pemain dapat mengecek kartu yang dibagikan

Aktor Pemain

Skenario Utama

Kondisi Awal Tampil meja yang sudah ada kartu ditangan

Aksi Aktor Reaksi Sistem

1. Memilih Check

2. Membuka 3 kartu dimeja

Kondisi Akhir Kartu dimeja terbuka

Tabel 3.12 Tabel Use Case Scenario Ikut Taruhan Setelah Pot Terisi

Idenfikasi

Nomer 6

Nama Ikut taruhan setelah pot terisi

Tujuan Bertaruh setelah kartu dimeja terbuka

Deskritif Pemain dapat bertaruh setelah kartu dimeja terbuka

(46)

Skenario Utama

Kondisi Awal Tampil meja yang sudah ada kartu ditangan dan sudah ada 3 kartu di meja yang terbuka

Aksi Aktor Reaksi Sistem

1. Memilih Bet

2. Menaikan agresif 25% 3. Menyimpan taruhan di pot Kondisi Akhir Nilai taruhan di pot bertambah

3.4.4 Activity Diagram

Activity diagram menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, dimana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelum (internal processing). Berikut Activity Diagram:

1. Activity Diagram Memulai Permainan

(47)

47

Gambar 3.10 Activity Diagram Memulai Permainan

2. Activity Diagram Menunggu Giliran

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas Menunggu Giliran yang dapat dilihat pada Gambar 3.11.

Gambar 3.11 Activity Diagram Menunggu Giliran

2. Activity Diagram Ikut Taruhan

(48)

Gambar 3.12 Activity Diagram Ikut Taruhan 3. Activity Diagram Tidak Ikut Taruhan

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas tidak ikut taruhan yang dapat dilihat pada Gambar 3.14.

(49)

49

4. Activity Diagram Menaikan Nilai Taruhan

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas menaikan nilai taruhan yang dapat dilihat pada Gambar 3.15.

Gambar 3.15 Activity Diagram Menaikan Nilai Taruhan 5. Activity Diagram Mengecek Kartu

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas mengecek kartu yang dapat dilihat pada Gambar 3.16.

(50)

6. Activity Diagram Ikut Taruhan Setelah Pot Terisi

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas ikut taruhan setelah pot terisi yang dapat dilihat pada Gambar 3.17.

Gambar 3.8 Activity Diagram Bet

3.4.5 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan disekitar sistem berupa message yang digambarkan terhadap waktu. Berikut ini beberapa sequence diagram yang terdapat pada game tersebut yaitu :

1. Sequence diagram memulai permainan dapat dilihat pada gambar 3.18

(51)

51

2. Sequence diagram menunggu giliran dapat dilihat pada gambar 3.19

Gambar 3.19 Sequence Diagram Menunggu Giliran

3. Sequence diagram ikut taruhan dapat dilihat pada gambar 3.20

(52)

4. Sequence diagram mengecek kartu dapat dilihat pada gambar 3.21

Gambar 3.21 Sequence Diagram Mengecek Kartu

5. Sequence diagram tidak ikut taruhan dapat dilihat pada gambar 3.22

(53)

53

6. Sequence diagram ikut taruhan setelah pot terisi dapat dilihat pada gambar 3.23

Gambar 3.23 Sequence Diagram Ikut Taruhan Setelah Pot Terisi

7. Sequence diagram menaikan nilai taruhan dapat dilihat pada gambar 3.24

(54)

3.4.6 Class Diagram

Diagram kelas atau atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang dibuat untuk membangun sistem. Berikut ini adalah perancangan struktur sistem yang terdapat pada game Edukasi Bahaya Merokok, yang digambarkan dengan class diagram yang dapat dilihat pada Gambar 3.26.

(55)
(56)

55

metode feed forward untuk memprediksi cara bermain player dan

mengoptimalkan nilai tertinggi dalam game poker. Hasil perancangan pada tahap

sebelumnya kemudian diimplementasikan ke dalam bahasa pemrograman.

Setelah tahap implementasi selesai, maka dilakukan tahap pengujian terhadap

aplikasi Implementasi jaringan syaraf tiruan metode feed forward untuk

memprediksi cara bermain player dan mengoptimalkan nilai tertinggi dalam

game poker.

4.1 Implementasi

Tahap implementasi merupakan tahap penciptaan perangkat lunak dan

juga tahap kelanjutan dari kegiatan perancangan aplikasi.Tahap ini merupakan

tahap dimana aplikasi siap untuk dioperasikan, yang terdiri dari penjelasan

mengenai lingkungan implementasi, baik itu lingkungan perangkat keras,

maupun lingkungan perangkat lunak, serta implementasi program.

4.1.1 Implementasi Perangkat Keras

Perangkat keras yang digunakan untuk menjalankan aplikasi Implementasi

jaringan syaraf tiruan metode feed forward untuk memprediksi cara bermain

player dan mengoptimalkan nilai tertinggi dalam game poker tidak harus yang

berspesifikasi tinggi. Spesifikasi minimum yang dapat digunakan untuk

menjalankan aplikasi Implementasi jaringan syaraf tiruan metode feed forward

untuk memprediksi cara bermain player dan mengoptimalkan nilai tertinggi

dalam game poker adalah sebagai berikut :

a. Prosesor dengan kecepatan 2.0 Ghz ke atas.

b. RAM 2 Gb.

(57)

56

d. VGA Card 256 Mb. e. Monitor.

f. Mouse dan Keyboard.

4.1.2 Implementasi Perangkat Lunak

Adapun spesifikasi perangkat lunak yang digunakan untuk menjalankan

aplikasi Implementasi jaringan syaraf tiruan metode feed forward untuk

memprediksi cara bermain player dan mengoptimalkan nilai tertinggi dalam

game poker adalah perangkat komputer yang telah terinstal Java.

4.1.3 Implementasi Antarmuka

Algoritma yang telah dirancang pada sistem, diimplementasikan kedalam program dengan antarmuka sebagai berikut :

a. Antarmuka memulai permainan

(58)

Gambar 4.1. Antarmuka Memulai Permainan

b. Antarmuka menunggu giliran

(59)

58

Gambar 4.2. Antarmuka Menunggu Giliran

c. Antarmuka memilih aksi

Tampilan dibawah ini merupakan tampilan memilih aksi

Gambar 4.3. Antarmuka Memilih Aksi

4.2 Pengujian Sistem

(60)

mencari kesalahan pada sistem yang dibangun sebelum sistem digunakan oleh pengguna.

4.2.1 Pengujian Black Box

Pengujian black box adalah pengujian yang mengatakan benar bila input yang diberikan akan menghasilkan output yang sesuai dengan spesifikasi program tanpa memperhatikan struktur logika dalam program.

4.2.1.1Rencana Pengujian

Rencana pengujian yang akan dilakukan pada aplikasi ini dapat dilihat pada tabel 16

Tabel 4.1. Rencana Pengujian

Komponen yang diuji Skenario pengujian Jenis pengujian Memulai permainan Menekan tombol continue Black box Menunggu giliran Menekan tombol continue Black box

Memilih aksi

Menekan tombol call Black box Menekan tombol raise Black box Menekan tombol fold Black box Menekan tombol bet Black box Menekan tombol check Black box .

4.2.1.2Kasus Dan Hasil Pengujian (Black Box)

Kasus dan hasil uji aplikasi yang sudah dibangun dengan menggunakan metode black box berdasarkan pengamatan yang dilakukan dan menghasilkan kesimpulan dari pengujian tersebut. Kasus dan hasil pengujian dapat dilihat pada tabel 17.

Tabel 4.2. Kasus dan Hasil Pengujian

(61)

60 Menunggu giliran Menekan tombol

continue

Ikut dalam taruhan [√] Berhasil [ ] Tidak berhasil

Tidak ikut taruhan [√] Berhasil [ ] Tidak berhasil

Pengujian ditujukan pada tingkat kesesuaian nilai tingkat agresifitas dengan perilaku yang sudah ditetapkan. Kondisi parameter yang digunakan sesuai dengan tabel 7. Berikut akan diberikan data hasil pengujian terhadap beberapa kondisi.

4.3.1 Pengujian

a. Agresifitas yang di baca bot adalah kurang dari 30 epoch 500.

(62)

Gambar 4.5. Pengujian Agresifitas < 30 Epoch 500

b. Agresifitas yang di baca bot adalah antara 30 sampai 90 epoch 500.

(63)

62

Gambar 4.7. Pengujian Agresifitas Antara 30 Sampai 90 Epoch 500

c. Agresifitas yang di baca bot adalah diatas 90 epoch 500

(64)

d. Pengujian Agresifitas epoch 100

Gambar 4.9 Pengujian Agresifitas < 30 Epoch 100

(65)

64

e. Pengujian Agresifitas epoch 200

Gambar 4.11 Pengujian Agresifitas < 30 Epoch 200

(66)

f. Pengujian Agresifitas epoch 300

Gambar 4.13 Pengujian Agresifitas < 30 Epoch 300

(67)

66

g. Pengujian Agresifitas epoch 400

Gambar 4.15 Pengujian Agresifitas Antara 30 Sampai 90 Epoch 400

(68)

h. Pengujian permainan ronde 1

Gambar 1.17. Pengujian Ronde 1 A

(69)

68

Gambar 3.19. Pengujian Ronde 1 C

(70)

Gambar 5.21. Pengujian Ronde 1 E

(71)

70

i. Pengujian permainan ronde 2

Gambar 4.23. Pengujian Ronde 2

j. Pengujian permainan ronde 3

(72)

k. Pengujian permainan ronde 4

Gambar 83. Pengujian Ronde 4

l. Pengujian permainan ronde 5

(73)

72

Tabel 4.3. Hasil Pengujian

Epoch Agresifitas Kodisi Aksi

500 8 Kartu ditangan

Tabel 4.4. Hasil Pengujian Ronde 1

Agresifitas Kodisi Aksi

< 30 Kartu ditangan kurang player bet > pot zise

(74)

> 30 dan < 90 Kartu ditangan bagus dan player bet > pot zise

Fold

> 90 Kartu ditangan bagus Call

Tabel 4.5. Hasil Pengujian Ronde 2

Agresifitas Kodisi Aksi

< 30 Kartu ditangan kurang player bet > pot zise

Check

> 30 dan < 90 Kartu ditangan bagus dan player bet > pot zise

Call

> 90 Kartu ditangan bagus Call

Tabel 4.6. Hasil Pengujian Ronde 3

Agresifitas Kodisi Aksi

< 30 Kartu ditangan bagus Call player bet > pot zise

Check

> 30 dan < 90 Kartu ditangan bagus dan player bet > pot zise

Bet

(75)

74

Tabel 27. Hasil Pengujian Ronde 4

Agresifitas Kodisi Aksi

< 30 Kartu ditangan kurang player bet > pot zise

Check

> 30 dan < 90 Kartu ditangan bagus dan player bet > pot zise

Fold

> 90 Kartu ditangan kurang

bagus

Fold

Tabel 4.8. Hasil Pengujian Ronde 5

Agresifitas Kodisi Aksi

< 30 Kartu ditangan bagus Call player bet > pot zise

Check

> 90 Kartu ditangan bagus Call

(76)

4.3.2 Kesimpulan Penggujian

(77)

75 BAB 5

KESIMPULAN DAN SARAN

Pada bab ini berisikan kesimpulan dari hasil penelitian yang telah dilakukan serta saran untuk perbaikan dan pengembangan penelitian lebih lanjut.

5.1 Kesimpulan

Berdasarkan hasil yang didapat dalam penelitiaan dan penyusunan skripsi ini serta disesuaikan dengan tujuan, maka diperoleh kesimpulan bahwa dengan menerapkan jaringan syaraf tiruan feed forward dengan algoritma backpropagation sebagai pelatihannya, artificial inteligence pada game dapat memprediksi cara bermain player dan melakukan keputusan terbaik sesuai antara tabel aksi dengan aksi yang diambil.

5.2 Saran

(78)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

PUTRA CITRA NUSANTARA

10110464

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(79)

v

2.3.1 Jaringan Syaraf Tiruan Feedforward... 18

(80)

vi

3.1 Analisis Sistem ... 27

3.1.1 Analisis Masalah ... 27

3.1.2 Analisis Game ... 27

3.1.3 Gameplay Game Poker ... 27

3.2 Analisis Algoritma Jaringan Syaraf Tiruan Feedforward ... 33

3.3 Analisis Kebutuhan Non-Fungsional ... 40

3.3.1 Analisis Kebutuhan Perangkat Lunak ... 40

3.3.2 Analisis Kebutuhan Perangkat Keras ... 40

3.4 Analisis Kebutuhan Fungsional ... 41

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 55

4.1 Implementasi ... 55

BAB 5 KESIMPULAN DAN SARAN ... 75

(81)

vii

(82)

76

2. Horroch, R. dan Krieger, L., 2003. Poker For Dummies, Wiley Publishing, Inc.

3. Kusumadewi, S., 2003. Artificial Intelligence, Penerbit : Graha Ilmu 4. Nilwan, 2010. Pemrograman Animasi dan Game Profesional. Jakarta,

Indonesia: PT. Gramedia Pustaka Utama.

5. Prabowo P. W., 2011. Menggunakan UML. Bandung, Indonesia: Informatika.

6. Pressman, S. R., 2006. Rekayasa Perangkat Lunak. Yogyakarta: Andi. 7. Rabin, S., 2010. Introduction to Game Development Second Edition,

Course Technology, Inc.

8. Rosa, A. S. dan Shalahuddin, M., 2012. Rekayasa Perangkat Lunak. Penerbit : Informatika.

9. Russel, S. dan Norvig, P., 1995. Artificial Intelligence A Modern Approach Second Edition, Pearson Education, Inc., New Jersey.

10.Sutojo, T., Mulyanto, Edy Dan Suhartono, Vincent, 2010. Kecerdasan Buatan, Penerbit ANDI.

(83)

iii

KATA PENGANTAR Alhamdulillah,

Segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan iman, kekuatan, kecerdasan, kesehatan, semangat yang tinggi, serta semua kekayaan yang dilimpahkan kepada penulis, karena dengan izin dan berkah-Nya lah penelitian ini dapat diselesaikan dengan baik sesuai dengan waktu yang direncanakan.

Skripsi yang berjudul “Implementasi Jaringan Syaraf Tiruan Metode Feed Forward Untuk Memprediksi Cara Bermain Player dan Mengoptimalkan Nilai Kartu Tertinggi dalam Game Poker” disusun untuk memperoleh gelar Sarjana Teknik Informatika, Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.

Pada kesempatan ini penulis hendak menyampaikan terima kasih kepada :

1. Allah SWT atas berkah dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir ini.

2. Ayah, Ibu, Kakak dan Adik tercinta, terima kasih yang tak terhingga atas segala dukungan serta doanya sehingga penulis memiliki semangat berlebih untuk dapat menyelesaikan tugas akhir ini.

3. Bapak Galih Hermawan, S.Kom,. M.T selaku dosen pembimbing tugas akhir yang telah memberikan ide pembuatan tugas akhir serta banyak memberikan bimbingan dan saran-saran kepada penulis sampai akhirnya penulis dapat menyelesaikan tugas akhir ini.

4. Bapak Alif Finandhita, S.Kom,. M.T selaku dosen penguji 1 yang telah memberikan masukan dan saran-saran dalam penyusunan tugas akhir ini. 5. Ibu Nelly Indriani W, S.si selaku dosen penguji 3 yang telah memberikan

masukan dan saran-saran dalam penyusunan tugas akhir ini.

(84)

iv

pernah disinggahi untuk menunggu jam kuliah ataupun mengerjakan tugas kuliah.

9. Seluruh teman-teman khusunya IF-11 angkatan 2010 yang telah menjadi teman seperjuangan terbaik.

10.Seluruh pihak yang telah memberikan kontribusi dan bantuannya dalam penyelesaian tugas akhir ini, namun tidak sempat dicantumkan namanya satu per satu.

Penulis telah berupaya dengan semaksimal mungkin dalam penyelesaian tugas akhir ini, namun penulis menyadari masih banyak kelemahan baik dari segi isi maupuntata bahasa, untuk itu penulis mengharapkan kritik dan saran yang bersifat membangun dari pembaca demi kesempurnaan tugas akhir ini. Tak lupa penulis mohon maaf apabila dalam penulisan atau penyusunan tugas akhir ini, telah menyinggung perasaan atau bahkan telah menyakiti pihak tertentu baik yang disengaja maupun tidak disengaja. Kiranya isi tugas akhir ini bermanfaat dalam memperkaya khasanah ilmu pendidikan dan juga dapat dijadikan sebagai salah satu sumber referensi bagi peneliti selanjutnya yang berminat meneliti hal yang sama.

Bandung, Febuari 2015

(85)
(86)

TTL : Indramayu, 01 April 1992

Alamat : Jl. Jl. Santosa Asih V Blok N3 No 5 RT 09 RW 05 Kel. Cipamokolan Kec. Rancasari

Bandung, Jawa Barat No. Handphone : 085871648641

Email : pc8mrn_14@yahoo.co.id

RIWAYAT PEDIDIKAN

1998-2004 : SDN Karang Anyar 1 Indramayu 2004-2007 : SMPN Unggulan Indramayu 2007-2010 : SMAN 1 Sindang Indramayu

(87)
(88)

Gambar

Gambar 3.14 Activity Diagram Fold
Gambar 3.21 Sequence Diagram Mengecek Kartu
gambar 3.24
Gambar 3.26.
+7

Referensi

Dokumen terkait