• Tidak ada hasil yang ditemukan

2.1 Domino Gaple - Perancangan Permainan Domino Berbasis Android

N/A
N/A
Protected

Academic year: 2019

Membagikan "2.1 Domino Gaple - Perancangan Permainan Domino Berbasis Android"

Copied!
16
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

Pada bab ini akan diuraikan dasar perancangan permainan domino gaple pada

platform Android. Landasan teori yang diuraikan meliputi penjelasan mengenai

algoritma Minimax, perkembangan mobile game, dan platform Android.

2.1Domino Gaple

Domino gaple adalah permainan kartu yang dimainkan oleh 4 orang sekaligus. Tujuan

permainan kartu ini adalah menurunkan kartu yang ada di tangan hingga habis.

Permainan domino gaple ini menggunakan kartu domino yang berjumlah 28 lembar.

Masing-masing pemain mendapatkan 7 kartu. Pemain yang memiliki kartu balak nol

diwajibkan mengeluarkan kartu tersebut sebagai awal permainan. Pemain selanjutnya

diharuskan menurunkan kartu yang ada ditangan sesuai dengan angka-angka yang

tersaji di kedua sisi kartu yang ditawarkan. Jika salah satu pemain tidak memiliki

kartu yang ditawarkan, maka pemain selanjutnya berhak untuk melanjutkan

permainan.

(2)

2.1.1 Peraturan dan strategi permainan domino gaple

Dalam peraturan umum bermain gaple, pemain yang dinyatakan menang adalah

pemain yang telah menghabiskan seluruh kartu di tangannya. Sedangkan pemain

kedua, ketiga, dan keempat, akan dihitung sisa angka yang masih dipegang. Pemain

yang memegang sisa angka terbesar dianggap sebagai pihak yang kalah. Namun jika

kartu setiap pemain tidak dapat lagi diturunkan, maka pemenangnya adalah yang

memiliki kartu dengan nilai angka terkecil. Tetapi jika terdapat dua atau lebih pemain

memiliki jumlah nilai angka yang sama, maka pemenangnya adalah pemain dengan

jumlah sisa kartu paling sedikit. Apabila dua orang pemain memiliki jumlah nilai

angka yang sama, jumlah sisa kartu sama, maka pemenangnya adalah pemain yang

tidak memiliki kartu balak di tangannya.

(3)

Ada beberapa teknik yang biasanya digunakan orang dalam bermain domino

gaple, yaitu hitung kartu, adu kartu, dan tahan balak. Teknik hitung kartu adalah

teknik pemain yang menghapal dan menghitung jumlah kartu yang telah diturunkan

agar dapat menurunkan kartu yang tepat. Selain itu pemain juga harus dapat

menganalisa kartu yang ada di tangan lawannya. Teknik adu kartu adalah teknik

permainan dengan membuat angka kembar di kedua belah sisi, sehingga pemain

selanjutnya mendapatkan kemungkinan kecil untuk melanjutkan permainan. Teknik

tahan balak merupakan teknik menyimpan kartu balak untuk mengendalikan

permainan.

2.1.2 Jenis permainan domino gaple

Selain bermain sendiri-sendiri, variasi lain permainan domino yaitu dengan cara

berpasang-pasangan, atau bermain mandan. Bermain mandan biasa dilakukan oleh

masyarakat Minangkabau, Aceh, dan Bugis. Bermain dengan cara ini, mengharuskan

pemain untuk tidak hanya memperhatikan kartunya sendiri, tapi juga harus

memikirkan kartu mandannya agar bisa memenangkan permainan.

2.2Kecerdasan Buatan

Kecerdasan buatan atau Artificial Intelligence merupakan bagian dari ilmu

pengetahuan komputer yang khusus ditujukan dalam perancangan otomatisasi tingkah

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

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

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

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

Pengertian lain menyebutkan bahwa kecerdasan buatan adalah salah satu

bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan

(4)

Dari beberapa pengertian di atas, dapat ditarik kesimpulan bahwa kecerdasan

buatan merupakan bagian dari ilmu komputer yang merancang otomatisasi mesin yang

proses berfikirnya dan melakukan pekerjaan menyerupai manusia.

Meskipun kecerdasan buatan dapat berfikir dan melakukan pekerjaan

selayaknya manusia, namun pada dasarnya kecerdasan buatan berbeda dengan

kecerdasan alami yakni kecerdasan manusia. Berikut ini merupakan kelebihan

kecerdasan buatan dan kecerdasan alami.

Tabel 2.1 Kelebihan kecerdasan buatan dan kecerdasan alami. (Sumber: Analisis Dan Implementasi Algoritma Minimax Dengan Optimasi

Alpha Beta Pruning Pada Permainan Five In Row, 2010)

Kelebihan Kecerdasan Buatan Kelebihan Kecerdasan Alami 1. Kecerdasan buatan lebih tahan lama

dan konsisten, bahkan dapat

dikatakan permanen sejauh program

dan sistemnya tidak diubah.

2. Kecerdasan buatan lebih mudah

diduplikasi dan disebarluaskan,

berbeda dengan kecerdasan alami

yang membutuhkan proses belajar

mengajar untuk mentransfer

kecerdasan.

3. Kecerdasan buatan dapat

didokumentasi.

4. Kecerdasan buatan cenderung dapat

mengerjakan perkerjaan lebih baik

dan lebih cepat dibanding dengan

kecerdasan alami.

1. Kecerdasan alami bersifat kreatif.

Kecerdasan alami dapat berkembang

dengan mudah dan dapat

menciptakan kreasi baru.

2. Kecerdasan alami memungkinkan

manusia untuk menggunakan

pengalaman secara langsung.

Sedangkan pada kecerdasan buatan

harus bekerja dengan input-output

simbolik.

3. Manusia dapat memanfaatkan

kecerdasannya secara luas, tanpa

batas. Sedangkan kecerdasan buatan

(5)

Seperti kebanyakan bidang sains lainnya, Kecerdasan Buatan dapat dipilah

menjadi sejumlah sub-disiplin. Berikut sejumlah bidang terapan utama terhadap

kecerdasan buatan:

1. Sistem Pakar (Expert System)

Sistem Pakar adalah suatu perangkat lunak yang menyimpan pengetahuan

seorang pakar, dengan demikian komputer tersebut akan memiliki keahlian

layaknya seorang pakar.

2. Pengolahan Bahasa Alami (Natural Language Processing)

Salah satu tujuan jangka panjang kecerdasan buatan adalah membuat program

yang memiliki kemampuan untuk memahami bahasa manusia. Dengan

Pengolahan Bahasa Alami ini, diharapkan dikemudian hari manusia dapat

berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari.

3. Pengenalan Ucapan (Speech Recognition)

Dengan teknologi ini, diharapkan manusia nantinya dapat berbincang-bincang

dengan komputer.

4. Pemodelan Kinerja Manusia

Teknologi ini merupakan upaya pengenalan citra atau objek visual pada

komputer. Dengan mengunakan alat sensor atau scanner sebagai indra, maka

komputer dapat mengenali objek apa yang ditangkap oleh indranya.

5. Permainan (Game)

Mengembangkan berbagai macam bentuk permainan interaktif yang

cerdas. Diasumsikan dengan teknologi tersebut dapat menarik minat para

penggemar permainan.

2.3Algoritma Minimax

Minimax adalah salah satu algoritma yang sering digunakan untuk game kecerdasan

buatan seperti tik-tak, yang menggunakan teknik Depth First Search (DFS). Algoritma

Minimax akan melakukan pengecekan pada seluruh kemungkinan yang ada, sehingga

(6)

Keuntungan penggunaan algoritma Minimax adalah mampu menganalisis

kemungkinan posisi permainan untuk menghasilkan keputusan terbaik dengan

mencari langkah yang akan membuat lawan mengalami kerugian (Jannah, 2010).

Tujuan sebenarnya algoritma Minimax digunakan pada permainan yaitu untuk

memperkirakan kartu apakah yang dapat dikeluarkan pada 1 langkah ke depan

(Kusumadewi, 2003).

Jika pemain memilih suatu langkah, maka pemain akan memilih langkah yang

akan menghasilkan suatu posisi yang bagus. Kita dapat menganggap bahwa pemain

akan memilih langkah yang akan menuntunnya pada posisi terbaik. dengan kata lain,

ketika pemain mendapat giliran bermain maka pemain akan mencoba memaksimalkan

nilainya, perhatikan gambar 2.3.

Gambar 2.3 Langkah pemain pada algoritma minimax (Sumber: Artificial Intelligence for Games, 2006)

Ketika lawan mendapat giliran bermain, pemain akan mengganggap bahwa

lawan akan memilih langkah yang akan memberikan pemain posisi terburuk yang

tersedia. Lawan sedang berusaha meminimalkan nilai dari pemain, perhatikan gambar

2.4.

Dalam pengimplemensian pencarian DFS, Algoritma Minimax melakukan pencarian pada pohon. DFS akan menelusuri simpul terdalam lebih dahulu. Setelah

simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat

(7)

Gambar 2.4 Langkah lawan pada algoritma minimax (Sumber: Artificial Intelligence for Games, 2006)

Dalam repersentasi pohon pada algoritma Minimax, terdapat dua jenis node,

yaitu min dan max. Max akan memilih langkah dengan nilai tertinggi dan min akan

memilih langkah dengan nilai terendah. Untuk proses dan cara kerja algoritma yang

lebih jelasnya lagi, dapat dilihat pada gambar 2.5 yang merepresentasikan cara kerja

algoritma Minimax.

Gambar 2.5 Ilustrasi cara kerja algoritma minimax (Sumber: Artificial Intelligence Illuminated, 2004)

Dari gambar 2.5, proses pencarian dimulai dari jalur paling kiri terlebih

dahulu, sehingga DFS akan menelusuri simpul paling kiri bawah yaitu 5. Nilai 5

(8)

DFS merunut balik dan menelusuri simpul yang bertetangga dengan simpul 5 yaitu

simpul 2. Karena nilai 5 lebih besar dari nilai 2, maka nilai 2 tidak disimpan. Lalu

DFS akan merunut balik ke tingkat min sehingga nilai 5 yang diperoleh akan disimpan

sebagai nilai minimum sementara. Untuk simpul 1 dan 3, nilai 3 yang akan disimpan

karena merupakan nilai maksimum di tingkat max. Saat mencapai tingkat min, sudah

ada nilai minimum sementara yaitu 5, namun karena nilai 3 lebih kecil daripada nilai

5, maka nilai 5 akan digantikan dengan nilai 3. Nilai 3 akan disimpan sebagai nilai

maksimum sementara di tingkat paling atas karena merupakantingkat max. Lalu

penelusuran jalur kanan akan dilakukan dengan cara yang sama seperti penelusuran

jalur kiri sehingga diperoleh nilai 6. Karena nilai maksimum sementara pada tingkat

paling atas adalah nilai 3, maka nilai 3 akan digantikan dengan nilai 6 karena nilai 6

lebih besar daripada nilai 3. Dengan demikian, jalur yang akan dipilih menggunakan

algoritma Minimax adalah jalur sebelah kanan karena untuk kondisi terburuknya, kita

akan mendapatkan nilai 6 sedangkan jika kita memilih jalur kiri, kita hanya akan

mendapatkan nilai 3.

Berikut garis besar algoritma minimax secara umum :

Cari langkah dengan nilai maksimum

IF langkah tersebut merupakan langkah kemenangan

THEN pilih lagkah tersebut.

ELSE

FOR EACH kemungkinan langkah yang ada

Cari langkah lawan yang bernilai minimum.

RETURN nilai dari langkah tersebut.

2.3.1 Penelitian terdahulu

(9)

Tabel 2.2 Penelitian Terdahulu

No. Judul Penelitian Tahun

Penelitian Nama Peneliti Keterangan

1

Waktu pelacakan sangat

lama pada saat kombinasi

Minimax tidak efisien

digunakan secara tunggal

sehingga diperlukan

algoritma lain untuk

mengoptimalkannya.

Minimax tidak efisien

digunakan secara tunggal

sehingga diperlukan

algoritma lain untuk

mengoptimalkannya.

Tingkat kesulitan agen

yang menggunakan

algoritma Backtracking

sampai penelusuran level maksimum 10 adalah sulit

dengan persentase

(10)

2.4Mobile Game

Mobile games secara garis besar diartikan sebagai permainan yang dimainkan pada

perangkat mobile seperti telepon genggam, PDA, smartphone, ataupun perangkat

permainan portabel.

Penelitian, pengembangan, dan pengujian terhadap mobile games telah

membawa masalah dan pertanyaan yang tidak bisa diselesaikan oleh model desain

lama. Mobile games mengubah hubungan antara manusia dan komputer yang

berakibat tidak hanya dari cara bermain tetapi desain antarmuka dan juga interaksi

struktur juga berubah. Kegiatan pemain berubah. Pemain tidak duduk di depan

perangkat mereka lagi tetapi benar-benar bisa bergerak bebas sambil bermain (Grueter

et al, 2005).

2.5Sistem Operasi Android

Salah satu sistem operasi yang banyak digunakan untuk telpon pintar saat ini adalah

Android. Hal ini didukung dengan beberapa vendor besar yang mengoperasikan

sistem operasi tersebut pada produk yang mereka produksi, seperti Samsung, HTC,

Sony, LG. Sehingga menjadikan Android lebih cepat populer dibandingkan dengan

sistem operasi telpon pintar lainnya.

Android didesain sebagai platform yang open source untuk perangkat mobile. Android sendiri mencakup sistem operasi, middleware, dan aplikasi. Android sendiri

menyediakan tools dan framework untuk membuat dan mengembangkan aplikasi.

Salah satu contoh tools untuk membuat aplikasi Android adalah Android SDK

(Software Development Kit) yang memungkinkan pengembang aplikasi ber-platform

android membuat aplikasi menggunakan bahasa pemrograman Java. Selain itu ada

Cocos2D yang memungkinkan pengembang aplikasi membuat aplikasi menggunakan

(11)

Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat

peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android,

dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras,

peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola,

Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November

2007, Android bersama Open Handset Alliance menyatakan mendukung

pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis

kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan

standar terbuka perangkat seluler.

Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama

yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan

kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google

atau dikenal sebagai Open Handset Distribution (OHD).

Smartphone pertama yang menggunakan sistem operasi Android adalah Nexus

One yang menggunakan Android versi 1.0. Produk tersebut diproduksi oleh HTC Corp., diperkenalkan sekitar September 2007 dan mulai dipasarkan pada 5 Januari

2008. Pada tahun 2009 perangkat berbasis Android mengalami perkembangan. Lebih

dari 20 jenis perangkat bergerak menggunakan sistem operasi ini. Sudah banyak versi

Android yang dirilis sejak tahun 2009, antara lain versi 1.0, 1.1, 1.5 dengan kode

nama Cupcake, 1.6 dengan kode nama Donut, 2.0 dan 2.1 dengan kode nama Eclaire,

2.2 dengan kode nama Frozen Yogurt (Froyo), 2.3 dengan kode nama Gingerbread,

3.0, 3.1, dan 3.2 dengan kode nama Honeycomb, 4.0 dengan kode nama Ice Cream

Sandwich, 4.1, 4.2, dan 4.3 dengan kode nama Jelly Bean, dan yang terakir rilis

adalah versi 4.4 dengan kede nama KitKat.

Dari sekian banyak versi Android yang ada dipasaran, Android versi

Honeycomb dirancang khusus untuktablet. Android versi ini mendukung ukuran layar

yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain

untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi

perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan

(12)

Sandwich, Jelly Bean dan KitKat didesain untuk dapat dijalankan pada smartphone

maupun tablet. Daftar versi-versi Android yang telah rilis dapat dilihat pada Tabel 2.3.

Tabel 2.3 Versi-versi Android

Dari tabel tersebut dapat dilihat terdapat perubahan API (Application

Programming Interface) level. Setiap API menunjukkan revisi dari framework pada

platform Android. Versi android mendukung tepat satu API level yang mengakibatkan

versi Android terus berubah, namun tetap mendukung API level sebelumnya. API

level ini menentukan suatu aplikasi bisa dijalankan pada suatu platform Android.

Platform Nama Kode API Level Tanggal Rilis

Android 1.0 1 September 2007

Gingerbread 9 6 Desember 2010

Android 2.3.3-2.3.7 10

Ice Cream Sandwich 14 19 Oktober 2011

Android 4.0.3 15

Android 4.1 Jelly Bean 16 27 Juni 2012

Android 4.2 Jelly Bean 17 13 November 2012

Android 4.3 Jelly Bean 18 24 July 2013

(13)

2.5.1 Arsitektur android

Sistem operasi Android memiliki 4 lapisan (layer) yang merupakan komponen sistem

Android. Gambar berikut merupakan lapisan arsitektur sistem operasi Android:

Gambar 2.6 Arsitektur android (Sumber: Learning Android, 2011)

(14)

1. Linux Kernel

Tumpukan paling bawah pada arsitektur Android ini adalah kernel. Google menggunakan kernel Linux versi 2.6 untuk membangun sistem Android, yang mencakup manajemen memori, pengaturan keamanan, manajemen power, dan beberapa driver hardware. Kernel berperan sebagai lapisan abstraksi antara piranti keras dan keseluruhan piranti lunak. Sebagai contoh, HTC GI dilengkapi dengan kamera. Kernel Android terdapat driver kamera yang memungkinkan pengguna mengirimkan perintah kepada piranti keras kamera. Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan android bukanlah linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karenanya pada android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan

driver layar, kamera, tombol, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.

2. Android Runtime

Lapisan setelah Kernel Linux adalah Android Runtime. Android Runtime ini berisi Core Libraries dan Dalvik Virtual Machine. Core Libraries mencakup serangkaian inti library Java, artinya Android menyertakan satu set library

dasar yang menyediakan sebagian besar fungsi-fungsi yang ada pada library

dasar bahasa pemrograman Java. Dalvik adalah Java Virtual Machine yang memberi kekuatan pada sistem Android. Dalvik VM ini dioptimalkan untuk telepon seluler. Setiap aplikasi yang berjalan pada Android berjalan pada prosesnya sendiri, dengan instansi dari Dalvik Virtual Machine. Dalvik telah dibuat sehingga sebuah piranti yang memakainya dapat menjalankan multi Virtual Machine dengan efisien.

3. Libraries

Bertempat di level yang sama dengan Android Runtime. Android menyertakan satu set library dalam bahasa C/C++ yang digunakan oleh berbagai komponen yang ada pada sistem Android. Kemampuan ini dapat diakses oleh programmer melewati aplikasi framework Android. Sebagai contoh Android mendukung pemutaran format audio, video, dan gambar. Berikut ini beberapa

(15)

a. System C library,

diturunkan dari implementasi standard C system library (libc) milik BSD, dioptimasi untuk piranti yang tertanam berbasis Linux.

b. Media Libraries,

berdasarkan Packet Video‟s Open CORE; library ini mendukung

playback dan recording dari berbagai format audio and video populer, meliputi MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG.

c. Surface Manager,

mengatur akses pada layar dan lapisan komposit 2D and grafis 3D dari berbagai aplikasi.

d. LibWebCore,

web browser engine modern yang mendukung browser Android maupun web view yang tertanam.

e. SGL,

Mesin grafis 2 dimensi.

f. 3D libraries,

implementasi berdasarkan OpenGL ES 1.0 APIs; library ini menggunakan hardware 3D acceleration dan highly optimized 3D software rasterizer.

g. FreeType,

Perender bitmap dan vector font.

h. SQLite untuk dukungan database.

Library tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android 1.5, pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan Native Development Toolkit (NDK).

4. Application Framework

(16)

smartphone. Kerangka kerja aplikasi merupakan serangkaian tool dasar seperti alokasi resource smartphone, aplikasi telepon, pergantian antar – proses atau program, dan pelacakan lokasi fisik telepon. Para pengembang aplikasi memiliki aplikasi penuh kepada tool dasar tersebut, dan memanfaatkannya untuk menciptakan aplikasi yang lebih kompleks. Di dalam semua aplikasi terdapat servis dan sistem yang meliputi :

a. Satu set Views yang dapat digunakan untuk membangun aplikasi meliputi lists, grids, text boxes, buttons, dan embeddable web browser. b. Content Providers yang memungkinkan aplikasi untuk mengakses data dari aplikasi lain (misalnya kontak), atau untuk membagi data yang dimilikinya.

c. Resource Manager, menyediakan akses ke non-code resources

misalnya localized strings, grafis, dan layout files.

d. Notification Manager yang memungkinkan semua aplikasi untuk menampilkan custom alerts pada bar status.

e. Activity Manager yang mengelola life cycle dari dari aplikasi dan menyediakan navigasi backstack.

5. Application

Berada padai lapisan. Di lapisan ini ditemukan fungsi-fungsi dasar smartphone

Gambar

Gambar 2.1 Permainan domino gaple
Gambar 2.2 Kartu domino beserta nilainya
Tabel 2.1 Kelebihan kecerdasan buatan dan kecerdasan alami.
Gambar 2.3 Langkah pemain pada algoritma minimax
+5

Referensi

Dokumen terkait

Libraries adalah layer dimana fitur-fitur utama android berada , biasanya para pembuat aplikasi mengakses Library untuk menjalankan aplikasinya. Berjalan di atas

Menggunakan sistem operasi android memiliki keuntungan sendiri karena memiliki sifat terbuka ( open source ), dengan kata lain pengembang software bisa memanfaatkan sistem

Perancangan aplikasi media sosial dan penerapan algoritma AES dapat berjalan sesuai dengan yang diharapan pada sistem operasi Android dan dapat digunakan untuk melakukan

1) Permainan ini dibuat menggunakan Construct 2 dan dapat berjalan baik pada sistem operasi Android, serta hasil dari pengujian permainan dengan menggunakan metode black- box

1) Permainan ini dibuat menggunakan Construct 2 dan dapat berjalan baik pada sistem operasi Android, serta hasil dari pengujian permainan dengan menggunakan metode black- box

a) Hanya dapat berjalan pada ponsel yang bersistem operasi Android minimal versi 2.3. b) Jumlah soal pada latihan soal baru sedikit. c) Aplikasi belum dapat menyimpan

1) Permainan ini dibuat menggunakan Construct 2 dan dapat berjalan baik pada sistem operasi Android, serta hasil dari pengujian permainan dengan menggunakan metode black- box

Pada bagian antarmuka digunakan mikrokontroler ATmega16, sedangkan rancangan perangkat lunak berbasis pada Android versi 2.3 dan program aplikasi simulator AFL