• Tidak ada hasil yang ditemukan

PERMAINAN KARTU BLACKJACK BERBASIS ANDROID MENGGUNAKAN ALGORITMA GREEDY

N/A
N/A
Protected

Academic year: 2023

Membagikan "PERMAINAN KARTU BLACKJACK BERBASIS ANDROID MENGGUNAKAN ALGORITMA GREEDY"

Copied!
8
0
0

Teks penuh

(1)

Jurnal Pendidikan Matematika dan Matematika

PERMAINAN KARTU BLACKJACK BERBASIS ANDROID MENGGUNAKAN ALGORITMA GREEDY

Yasin Efendi1*),Yoli Prastika Koto 2),Sari Palestina 3)

1,2,3)Fakultas Ilmu Pendidikan, Universitas Muhammadiyah Jakarta, Jl. K.H. Ahmad

Dahlan, Cireundeu, Kec. Ciputat Tim., Kota Tangerang Selatan, Banten 15419 [email protected]

ABSTRAK

Salah satu permainan kartu yang digemari oleh masyarakat internasional adalah permainan kartu Blackjack. Tujuan permainan kartu Blackjack adalah mengumpulkan jumlah nilai atau yang terdekat dengan 21 (dua puluh satu) tetapi tidak lebih dari 21 (dua puluh satu). Permainan ini akan menjadi lebih menarik, memasyarakat dan akan lebih empati saat dimainkan di lingkungan masyarakat Indonesia beserta daerah apabila bahasa pengantar dalam aplikasi permainan kartu Blackjack ini dibuat dalam bahasa Indonesia dan bahasa daerah yaitu bahasa Jawa dan bahasa Sunda dalam bentuk aplikasi permainan pada gadget Android yang telah umum digunakan oleh masyarakat.

Dalam pengimplementasian permainan kartu Blackjack dibutuhkan algoritma yang dapat menunjang terbentuknya aplikasi sesuai dengan kebutuhan permainan untuk ditanamkan pada Artificial Intelligent dalam Bandar sebagai lawan pemain.

Pemanfaatan algoritma Greedy sesuai dengan konsep permainan kartu Blackjack karena akan menemukan kemungkinan untuk memutuskan akan menambah kartu atau tidak pada setiap langkah. Diharapkan dengan mengambil solusi optimal lokal akan mendapatkan hasil optimal pada permainan (keseluruhan langkah).

Kata kunci: algoritma greedy; kartu blackjack, gadget Android.

PENDAHULUAN

Permainan kartu adalah salah satu permainan praktis yang dapat dimainkan dimana saja dan oleh siapa saja sehingga menyenangkan untuk menghabiskan waktu senggang. Permainan kartu memiliki berbagai macam jenis dan tipe permainan yang dapat dimainkan oleh masyarakat umum. Setiap negara bahkan wilayah suatu negara memiliki jenis permainannya sendiri. Di negara Indonesia permainan kartu yang banyak dikenal diantaranya adalah ; permainan kartu 41 (empat puluh satu), Cangkulan,

Song, dan sebagainya. Namun, yang populer di banyak negara antara lain Poker, Canasta, Blackjack, Solitaire, Bridge dengan jumlah pemain dan peraturan permainan yang berbeda-beda.

Di lingkungan masyarakat luas pada umumnya satu Deck kartu remi berisi 54 (lima puluh empat) lembar kartu.

Apakah yang dimaksud dengan Deck ? Deck adalah sekumpulan kartu yang dipakai dalam permainan kartu. Gambar kartu dibagi menjadi empat motif yang berbeda yaitu Sekop (♠), Hati (♥), Wajik (♦), dan Keriting (♣) yang masing- masing terdiri dari 13 (tiga belas) kartu

(2)

yakni As, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen dan King. Dan kartu tambahan berupa dua kartu Joker, yaitu kartu Joker Hitam dan kartu Joker Merah.

Karena sifatnya sangat menyenangkan, praktis untuk dimainkan, dan tidak dibatasi baik oleh waktu, tempat, usia, berbagai kalangan dan suku bangsa, dalam perkembangannya, permainan kartu ini mengalami perubahan terutama pada bidang teknologi maka jenis permainan ini dapat diimplementasikan menjadi sebuah game permainan untuk gadget berbasis Android.

Salah satu permainan yang digemari oleh masyarakat internasional adalah permainan kartu Blackjack. Blackjack atau lebih dikenal dengan Twenty - One, Vingt - et - un (bahasa Perancis untuk Twenty - One atau Pontoon) merupakan salah satu dari sebuah permainan kartu terbesar yang biasanya dimainkan di Kasino sebagai ajang untuk mengadu peruntungan.

Tetapi masyarakat pada umumnya memainkan permainan kartu ini sebagai sarana hiburan. Permainan ini dimainkan menggunakan kartu remi dengan 52 (lima puluh dua) kartu dan biasanya dimainkan oleh dua pemain atau lebih dengan tujuan mengumpulkan jumlah nilai atau mendekati 21 (dua puluh satu) tetapi tidak lebih dari nilai 21 (dua puluh satu). Oleh karena itu permainan kartu ini disebut dengan Twenty - One.

TEORI DASAR

Rekayasa Perangkat Lunak

Sebuah disiplin ilmu yang mencakup segala hal yang berhubungan dengan proses pengembangan perangkat lunak sejak dari tahap perancangan hingga tahapan implementasi serta pasca implementasi sehingga siklus hidup perangkat lunak dapat berlangsung secara efisien dan terukur.

Algoritma Greedy

Algoritma Greedy adalah algoritma yang membentuk solusi langkah per langkah.

Pada setiap langkah tersebut akan dipilih keputusan yang paling optimal.

Keputusan tersebut tidak perlu memperhatikan keputusan selanjutnya yang akan diambil, dan keputusan tersebut tidak dapat diubah lagi pada langkah selanjutnya. Prinsip utama Algoritma Greedy adalah ”Take what you can get now !”.

Maksud dari prinsip tersebut adalah sebagai berikut : pada setiap langkah dalam Algoritma Greedy, diambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya.

Dinamakan solusi tersebut dengan optimum lokal. Kemudian saat pengambilan nilai optimum local pada setiap langkah, diharapkan tercapai optimum global, yaitu tercapainya solusi optimum yang melibatkan keseluruhan langkah dari awal sampai akhir.

Blackjack

Permainan Blackjack (atau dikenal juga dengan nama lain Twenty-one, Vingt-et- un, atau Pontoon) merupakan permainan kartu yang paling sering dimainkan di kasino. Perpaduan antara permainan mengadu untung, keahlian, dan rumor tentang memenangkan permainan ini dengan ilmu hitungan peluang membuatnya menjadi permainan yang digemari para pengunjung kasino.

Peraturan permainan Blackjack :

Blackjack adalah permainan kartu yang menggunakan pack kartu remi standar (terdiri dari 52 kartu : As, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen dan King dalam 4

(3)

tipe yaitu : Wajik, Sekop, Hati, Keriting).

Dalam tiap permainan selalu terdapat seorang Dealer (Bandar) dan minimal satu orang pemain. Bandar adalah individu yang paling penting dalam permainan ini karena para pemain berusaha mengalahkan bandar dan bukan saling bersaing dengan pemain lainnya.

Pada permainan Blackjack, kartu mendapat nilai:

a. 2 - 10 : sesuai nilai yang tertera pada kartu

b. Jack, King dan Queen : 10 poin c. As : kartu spesial, dapat bernilai 1

atau 11 poin.

Deskripsi Permainan dan Parameter Keberhasilan

Pemain dan Bandar mengkombinasikan nilai kedua kartu yang telah didapatkan dari Bandar. Kombinasi nilai yang tertinggi tanpa melebihi nilai 21 (dua puluh satu) atau kombinasi nilai yang menghasilkan Blackjack akan memenangkan permainan.

Nilai setiap kartu adalah sebagai berikut:

Gambar Nilai Pada Kartu Spesifikasi Sistem

Berdasarkan dari analisis kebutuhan sistem dan ditambah dengan deskripsi sistem yang sudah dijelaskan di atas, maka selanjutnya dibuat spesifikasi sistem seperti penjelasan berikut :

1. Input

Input atau masukan pada aplikasi ini adalah fungsi-fungsi yang sudah diterapkan pada tombol-tombol yang tersedia yang kemudian digunakan oleh pemain berdasarkan fungsinya masing-masing.

2. Proses

Ketika aplikasi dijalankan, maka akan muncul halaman utama dari permainan. Di halaman tersebut untuk memulai permainan Pemain memilih pilihan bahasa terlebih dahulu. Setelah memilih bahasa, pemain akan langsung dapat memulai permainan sesuai dengan pilihan bahasa pengantar yang telah dipilih. Selama permainan berlangsung, sistem akan secara otomatis secara berulang menjalankan perintah-perintah yang sudah ditetapkan berdasarkan tindakan yang dilakukan oleh Pemain berdasarkan konsep permainan Blackjack.

3.Output

Output atau keluaran dari sistem ini adalah pemenang permainan dengan jumlah nilai kartu yang lebih besar tanpa melebihi nilai 21 (dua puluh satu).

Penerapan Algoritma Greedy

Berikut rancangan skema algoritma greedy dalam aplikasi permainan kartu Blackjack ini :

ArrKartu [1..52] of Boolean ; {Himpunan kartu, ArrKartu[i]

(1<=i<=52) true bila kartu yang bersesuaian masih mungkin terambil

(belum terbuka)}

MyKartu [] of integer; {Jumlah nilai kartu yang dimiliki}

PROCEDURE greedy() Kamus :

(4)

Stop : Boolean ; Nilai : Integer ; Algoritma : stop = false;

AwalMain(); {Menginisialisasi permainan, membagi kartu secara acak}

while (not (stop)) do if (isAmbil()) then

{predikat (fungsi) seleksi,true jika kemungkinan keberadaan kartu yang menyebabkan jumlah nilai kartu yang akan dimiliki melebihi angka 21 lebih kecil

daripada yang tidak, jika true maka ambil sebuah kartu}

Ambil();

endif if (not (isLayak())) then

{predikat (fungsi) kelayakan, false jika kartu yang diambil bersama-sama dengan kartu yang telah dimiliki jumlah nilainya melebihi angka 21, jika tidak layak maka himpunan kandidat kartu yang tersisa akan diabaikan karena memutuskan untuk tidak akan pernah mengambil kartu lagi}

stop = true;

endif endwhile nilai = solusi();

output(nilai); {mengeluarkan nilai solusi}

endprocedure

Penerapan algoritma tersebut dalam permainan kartu Blackjack ini adalah sebagai berikut :

public void btnStandClick() {

// Computer Play here do {

// Opening 1 Card of Dealer

dealerCall();

calculateDealerScore();

// Aces count as 1

if (_dealerScore > 21) { for (int i = 0; i < 5; i++) {

if

(_dealerCardArray[i] == 'A'

&& _dealerScoreCount[i] == 11) {

_dealerScoreCount[i] = 1;

break;

} }

calculateDealerScore();

}

} while (_dealerScore < 17 &&

_dealerScore <= _playerScore

&&

_dealerCardNumber < 5);

if (_dealerScore > 21) { youWon();

} else {

checkWin();

}

if (_dealerCardNumber >= 5) { checkWin();

} }

public void checkWin() { if (_dealerScore > _playerScore) {

youLose();

} else if (_playerScore > _dealerScore){

youWon();

(5)

} else {

Toast.makeText(MainActivity.this,

"Seri!!!",

Toast.LENGTH_SHORT).show();

} }

Flowchart

Flowchart dalam aplikasi ini berguna untuk mendesain dan mempresentasikan aplikasi permainan. Flowchart juga berfungsi untuk memberikan gambaran aliran permainan yang akan diterapkan ke dalam sistem.

Flowchart aplikasi permainan Blackjack dimulai dengan sistem menampilkan halaman awal. Dalam halaman awal untuk memulai permainan, Pemain akan memilih bahasa pengantar permainan terlebih dahulu. Setelah Pemain memilih bahasa, permainan dimulai dan Bandar akan langsung membagikan kartu.

Gambar Flowchart Permainan Kartu Blackjack

Pengujian

Pengujian aplikasi ini menggunakan dua metode pengujian yaitu black box dan white box. Pengujian black box yaitu pengujian yang berfokus pada persyaratan fungsional perangkat lunak.

Sedangkan pengujian dengan metode white box adalah pengujian yang dilakukan berdasarkan fungsi-fungsi yang ada di dalam setiap form.

a. Graph Matriks

Metode selanjutnya yang dipakai untuk melakukan testing adalah menggunakan metode graf matriks, dimana pengisian nilai-nilai di dalam matriks didasarkan pada hubungan antar node yang ada di dalam flowgraph. Jika ada hubungan antara node maka diberikan nilai 1, dan jika tidak ada hubungan maka diberi nilai 0 (nol). Hasil akhir dari metode graf matriks ini adalah penjumlahan dari hubungan antar node tersebut, hal ini dapat dilihat dalam tabel berikut : Ketika kondisi gabungan ditemukan, maka penggambaran flow graph akan menjadi lebih rumit. Kondisi gabungan biasanya muncul jika satu atau lebih operator boolean (OR, AND, NAND, NOR) ditemukan dalam perintah, seperti terlihat pada gambar dibawah ini :

Gambar Flowgraph Artificial Intelligent a. Cyclomatic Complexity

Cyclomatic Complexity merupakan suatu sistem pengukuran yang menyediakan menyediakan ukuran kuantitatif dari kompleksitas logika suatu program. Pada basis path testing, hasil dari cyclomatic complexity menentukan banyaknya independent path. Independent path adalah sebuah kondisi pada program yang menghubungkan node awal dengan node akhir.

START

PEMAIN MEMILIH BAHASA

MEMULAI PERMAINAN

KARTU DIBAGIKAN

BERTAHAN

MAIN LAGI ?

TAMPILKAN MENANG

END MENANG ?

TAMPILKAN PEMAIN KALAH Y

Y TAMBAH KARTU ? TAMPILKAN SCORE

N

N N

Y

(6)

Independent path adalah adalah sebuah kondisi pada program yang menghubungkan node awal dengan node akhir.

Dari flowgraph di atas terlihat bahwa kode-kode yang telah dinotasikan dalam bentuk node memiliki 9 node, 11 edge dan 3 predicate, adapun susunannya adalah sebagai berikut :

i. Node = 1; 2; 3; 4; 5; 6; 7; 8; 9 ii. Edge = 1→2; 2→3; 3→4; 4→5;

4→3; 5→6; 5→; 6→8; 6→7;

7→9; 8→3

iii. Predicate = 3

Dari hasil flowgraph diatas, maka dapat dilakukan penghitungan kompleksitas siklomatis dengan 2 persamaan yang digunakan yaitu :

1) Penghitungan berdasarkan lintasan dalam flowgraph atau path (p) dihasilkan :

P1 = 1→2→3→4→5→6→7→8→9

P2 =

1→2→3→4→5→6→8→3→4→5→6

→7→9

P3 = 1→2→3→4→3→4→5→6→7→9 P4 = 1→2→3→4→5→7→9

2) Penghitungan berdasarkan pada rumus V(G) = E-N+2, dimana E menyatakan Edge dan N menyatakan Node, dihasilkan : V(G) = E – N + 2

= 11 – 9 + 2 = 4

3) Penghitungan berdasarkan rumus V(G)= P+1 menyatakan predicate, dihasilkan :

V(G) = P + 1

= 3 + 1

= 4

Graph Matriks

Metode selanjutnya yang dipakai untuk melakukan testing adalah menggunakan metode graf matriks, dimana pengisian

nilai-nilai di dalam matriks didasarkan pada hubungan antar node yang ada di dalam flowgraph. Jika ada hubungan antara node maka diberikan nilai 1, dan jika tidak ada hubungan maka diberi nilai 0 (nol). Hasil akhir dari metode graf matriks ini adalah penjumlahan dari hubungan antar node tersebut, hal ini dapat dilihat dalam tabel berikut :

Tabel 12 Graph Matriks Artificial Intelligent

1 2 3 4 5 6 7 8 9

1 1 1 – 1 = 0

2 1 1 – 1 = 0

3 1 1 – 1 = 0

4 1 1 2 – 1 = 1

5 1 1 2 – 1 = 1

6 1 1 2 – 1 = 1

7 1 1 – 1 = 0

8 1 1 – 1 = 0

9

3 + 1

= 4

Basis Path Testing

Dalam melakukan pengujian ini, digunakan metode graph. Dimana langkah awal dari metode ini dibuatkan flowchart dari penggalan baris kode diats, adapun flowchart-nya adalah sebagai berikut :

(7)

Gambar Flowchart Artificial Intelligent Pada Bandar

Pada setiap rancangan prosedural dapat diterjemahkan ke dalam flow graph.

Dibawah ini merupakan bagian dari PDL (Program Design Language) dan flowgraph-nya.

Ketika kondisi gabungan ditemukan, maka penggambaran flow graph akan menjadi lebih rumit. Kondisi gabungan biasanya muncul jika satu atau lebih operator boolean (OR, AND, NAND, NOR) ditemukan dalam perintah, seperti terlihat pada gambar dibawah ini :

Gambar Flowgraph Artificial Intelligent Evaluasi Hasil Pengujian

Berdasarkan hasil pengujian diatas maka didapatkan beberapa kesimpulan sebagai berikut :

1. Aplikasi permainan ini dapat menjalankan fungsinya dengan baik dan benar sesuai dengan kebutuhan sistem permainan 2. Fungsi-fungsi utama dan fungsi

tombol yang berkaitan dengan konsep permainan Blackjack dapat berjalan dengan baik 3. Proses pengecekan parameter

keberhasilan dan sistem skoring berjalan dengan baik hingga permainan berakhir.

Kesimpulan

Dari hasil pelaksanaan Tugas Akhir ini, dapat disimpulkan mengenai beberapa hal sebagai berikut :

1. Aplikasi permainan kartu Blackjack ini dapat dibuat dengan memanfaatkan Algoritma Greedy sebagai dasar pembuatan permainan.

Algoritma Greedy sebagai dasar dari sistem yang akan menjadi pengambil keputusan selama permainan berlangsung.

2. Aplikasi permainan kartu Blackjack ini dapat dimainkan oleh 1 (satu) orang pemain melawan komputer dengan memanfaatkan kecerdasan buatan (Artificial Intelligent).

3. Dari sisi Pemain dalam memainkan permainan kartu Blackjack ini, faktor

keberuntungan juga

mempengaruhi hasil akhir permainan.

4. Permainan kartu Blackjack yang telah terkenal dalam skala internasional dapat diperkenalkan kepada masyarakat Indonesia yang belum familiar dengan permainan ini dengan menggunakan bahasa Indonesia,

(8)

Jawa dan Sunda sebagai bahasa pengantar.

Saran

Dari hasil pelaksanaan tugas akhir ini, diberikan beberapa saran sebagai berikut:

1. Ditambahkan pilihan Multiplayer (dapat dimainkan bersama-sama dengan pemain lain). Hal ini dibuat apabila pemain ingin memainkan permainan kartu Blackjack melawan user lain yang nantinya akan terkoneksi melalui jaringan lokal.

2. Untuk pengembangan selanjutnya, aplikasi ini sebaiknya ditambahkan efek animasi yang lebih menarik agar tidak monoton.

3. Game dapat dibuat menjadi cross-platform (dapat dimainkan di platform selain android).

DAFTAR PUSTAKA

Hidayatullah, A. Taufiq. 2009.

Pemrograman Java : Dasar-Dasar Pengenalan dan Pemahaman, Yogyakarta : Andi Publisher.

Munawar. 2005. Pemodelan Visual dengan UML. Yogyakarta : Graha Ilmu.

Petri, Jurgen. 2010. Netbeans Platform 6.9 Developer’s Guide, Packt Publishing Ltd., Birmingham, B27 6PA, UK

Pressman, Roger S. 2010. Rekayasa Perangkat Lunak Pendekatan, Yogyakarta : Andi.

Satyaputra, Alfa, M.Sc, Aritonang, Eva Maulina, S.Kom. 2014. Beginning Android Programming with ADT

Bundle. Jakarta : Elex Media Komputindo.

Shalahuddin, M, Rosa A.S. 2010. Modul Pembelajaran Algoritma dan Pemrograman. Bandung : Informatika.

Wolf, Mark J.P & Perron, Bernard, eds.

2003. The Video Game Theory, Reader. Routledge.

Referensi

Dokumen terkait

Abstrak : Penelitian ini bertujuan untuk mengetahui kualitas kelayakan media dan mengetahui respon peserta didik terhadap penggunaan media pembelajaran fisika menggunakan

Seperti yang dikemukakan (Kasmir 2010) Calon customer harus memenuhi persyaratan yang dikenal dengan prinsip 5C yaitu : (1) Character, merupakan data tentang kepribadian

Dengan menggunakan algoritma greedy pada permainan kartu black jack seorang pemain akan menyeleksi kemungkinan untuk memutuskan akan menambah kartu atau tidak pada

Dalam metode pengujian, aplikasi permainan Congklak yang telah diimplementasi dengan algoritma greedy dan minimax akan diuji, Pengujian dilakukan dengan

Adapun hasil analisis LM Tabel 31 pada bagian sektor peternakan unggas, menunjukkan bahwa, ada 3 komoditas ternak unggas di JLS Kabupaten Jember yang memiliki nilai

Rencana Kerja Pembangunan Daerah Kabupaten Jember Tahun 2016 merupakan dokumen perencanaan teknis operasional untuk kurun waktu satu tahun, yang disusun

Akan tetapi, dalam permainan kartu Blackjack kita dapat menghituung pengambilan keputusan untuk mengoptimalkan kemungkinan menang.. Pada permainan Blackjack bandar

 Jika hanya terdapat 3 pemain maka tidak ada penghilangan satu jenis kembang seperti yang dilakukan pada permainan truf, namun yang dilakukan adalah hanya