Implementasi Metode Generate and Test Dalam Penyelesaian Puzzle 2048 Berbasis Mobile

BAB 2

TINJAUAN PUSTAKA

2.1. Kecerdasan Buatan
Kecerdasan buatan (artificial intelligence), yang disingkat AI, merupakan
salah satu cabang dalam ilmu komputer yang mempelajari tentang bagaimana
membuat komputer menyelesaikan suatu masalah sebaik yang dapat dilakukan
oleh manusia.
Kecerdasan buatan adalah sebuah teknologi yang baru muncul pada
dekade ini dengan banyak aplikasi terapan yang sedang berkembang. Salah satu
pandangan dalam kecerdasan buatan berhubungan tentang cara membuat
komputer menjadi lebih pintar. Sehingga penelitian pada kecerdasan buatan
berfokus pada 2 hal, yaitu:
1.

Membuat mesin lebih berguna

2.

Memahami kecerdasan

Masalah dalam pengembangan kecerdasan buatan umumnya berkaitan

dengan cara mengenal proses yang kompleks, tidak pasti dan ambigu. Proses
yang tidak memiliki penyelesaian secara algoritma dan membutuhkan suatu
metode penyelesaian yang mengikuti pola pemikiran manusia dan hewan untuk
mengatasi masalah yang kompleks. (Coppin, 2004)
Manusia pandai dalam menyelesaikan permasalahan karena manusia
memiliki

kemampuan

merasakan

indera

(sentience)

dan

kecerdasan


(Inteligence).Untuk menirukan kemampuan indera manusia, komputer dapat
dihubungkan dengan sebuah kamera atau scanner sehingga dapat melihat seperti
manusia. Komputer juga dipasangkan sensor seperti microphone dan dapat
diprogram sehingga dapat mengenali kata-kata dan membalas sesuai perintah.

9

Universitas Sumatera Utara

10

Untuk mendapatkan kemampuan merasakan, komputer dapat dihubungkan
dengan sensor yang tepat.
Kecerdasan sering didefiniskan sebagai kemampuan untuk mempelajari.
Kemampuan manusia untuk mempelajari dapat dilakukan karena manusia
mempunyai

pengetahuan


dan

pengalaman.Pengetahuan

diperoleh

dari

belajar.Semakin banyak bekal pengetahuan yang dimiliki, seseorang diyakini lebih
mampu dalam menyelesaikan permasalahan.Namun, bekal ilmu pengetahuan saja
tidaklah cukup jika manusia tidak diberikan akal untuk melakukan penalaran yang
digunakan untuk mengambil kesimpulan berdasarkan pengalaman dan pengetahuan
yang dimiliki. Tanpa memiliki kemampuan untuk menalar dengan baik, manusia
dengan sejumlah pengalaman dan pengetahuan tidak akan dapat menyelesaikan
masalah dengan baik. Demikian juga dengan kemampuan menalar yang sangat
baik, namun tidak memiliki pengetahuan dan pengalaman yang memadai,
seseorang tidak akan bisa menyelesaikan masalah dengan baik.
Mesin diciptakan untuk membantu manusia dalam menyelesaikan dan
membantu manusia didalam kesehariannya.Dengan demikian, mesin juga
diharapkan dapat menjadi cerdas yaitu dapat bertindak seperti dan sebaik

manusia.Diharapkan bahwa aplikasi komputer atau mesin yang dibuat dan
diciptakan dapat menjadi lebih pintar dan mudah dalam penggunaannya serta
ditingkatkan lagi dalam efisiensi penggunaannya.Oleh karena itu, mesin diberikan
pengetahuan

sehingga

mempunyai

kemampuan

untuk

menalar

dengan

baik.(Karam, 2012)
Pengertian kecerdasan buatan dapat dipandang dari berbagai sudut
pandang, antara lain:

1.

Sudut pandang kecerdasan
Kecerdasan buatan akan membuat mesin menjadi cerdas (mampu berbuat
seperti apa yang dilakukan oleh manusia).

2.

Sudut pandang penelitian
Kecerdasan buatan adalah suatu studi bagaimana membuat agar komputer
dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia.

3.

Sudut pandang bisnis

Universitas Sumatera Utara

11


Kecerdasan buatan adalah kumpulan peralatan yang sangat kuat dan
metodologis dalam menyelesaikan masalah- masalah bisnis.
4.

Sudut pandang pemrograman
Kecerdasan buatan meliputi studi tentang pemrograman simbolik,

penyelesaian masalah dan pencarian.Dalam pembuatan aplikasi kecerdasan buatan,
ada dua bagian utama yang sangat dibutuhkan, yaitu:
a.

Basis pengetahuan (Knowledge Base), bersifat fakta- fakta, teori,
pemikiran dan hubungan antar satu dengan yang lainnya.

b.

Motor

Inferensi


(Inference

Engine),

kemampuan

menarik

kesimpulan berdasarkan pengetahuan dan pengalaman.

2.1.1 Turing Test
Untuk menentukan apakah suatu kecerdasan buatan sudah mendekati
kemampuan manusia dan dapat disebut ‘cerdas’, dilakukan suatu percobaan yang
disebut Turing Test yang ditemukan oleh Alan Turing pada tahun 1950, seorang
pioneer AI dan ahli matematika asal Inggris yang melakukan experiment dengan
menempatkan AI di satu terminal dan terminal lainnya dikendalikan oleh manusia.
Kedua terminal ini ditempatkan di posisi berjauhan. Manusia tersebut berkomunikasi
dengan komputer tersebut dan mengira bahwa lawan komunikasinya adalah manusia
juga. Menurut Turing jika seseorang bisa salah mengira komputer sebagai manusia,
maka komputer tersebut bisa dikatakan ‘cerdas’.

Untuk dapat lolos Turing Test, komputer harus setidaknya memiliki kemampuan
untuk melakukan beberapa proses berikut:
A. Natural language processing, yaitu kemampuan komputer agar dapat
berkomunikasi dengan lancar dengan struktur bahasa yang natural.
B. Knowledge representation, yaitu kemampuan komputer menyimpan informasiinformasi yang diterimanya dan bertindak sebagai pengetahuan komputer.
C. Automated reasoning, yaitu kemampuan komputer dalam mengolah informasi
yang telah disimpan dan membuat kesimpulan baru.

Universitas Sumatera Utara

12

D. Machine learning, yaitu kemampuan komputer untuk mempelajari hal baru
dan beradaptasi terhadap hal yang baru. Cara paling sederhana dalam
machine learning adalah dengan mencoba dan gagal (trial and error).
Selain Turing Test, terdapat Total Turing Test yang membutuhkan 2 proses
tambahan selain 4 proses yang telah disebutkan untuk dapat lolos tes ini. Agar dapat
lolos, sebuah komputer juga harus mampu melakukan 2 proses berikut:
A. Computer


vision,

dimana

komputer

harus

mampu

melihat

dan

menginterpretasikan objek.
B.

Robotics, dimana komputer mampu memanipulasi objek dan dapat
bergerak.(Norvig,2010)


2.2

Bidang-bidang Terapan pada Kecerdasan Buatan
Berikut beberapa bidang terapan yang dapat dihubungkan dengan kecerdasan

buatan:
a.

Sistem pakar (expert system)
Sebuah sistem komputer yang digunakan sebagai sarana untuk menyimpan
pengetahuan yang dimiliki oleh seorang pakar dengan tujuan agar komputer
memiliki keahlian untuk menyelesaikan permasalahan dengan meniru keahlian
yang dimiliki pakar tersebut.

b.

Pengolahan bahasa alami (natural language processing)
Pemrograman sistem komputer yang memungkinkan manusia berkomunikasi
dengan komputer dengan menggunakan bahasa sehari-hari.


c.

Pengenalan suara (speech recognition)
Kemampuan membuat komputer agar dapat mengenali suara dan melakukan
perintah yang diberikan kepadanya melalui suara tersebut.

d.

Robotik dan sistem sensor (robotic and sensory systems)

Universitas Sumatera Utara

13

Kumpulan sistem yang mampu memanipulasi benda dan bergerak sesuai
dengan program di dalamnya dan dilengkapi berbagai sensor untu mendeteksi
pekerjaan secara otomatis.
e.

Intelligence computer-aided instruction
Sistem komputer yang digunakan sebagai pengajar untuk manusia.

f.

Computer vision
Pemrograman yang bertujuan untuk menginterpretasikan gambar dan objek
tampak melalui komputer untuk proses selanjutnya.

g.

Game playing
Sistem permainan yang dilengkapi dengan kecerdasan buatan untuk bergerak
sendiri tanpa dikendalikan. AI akan menggerakan karakter dengan sendirinya
tanpa dikendalikan oleh pemain (Non-Player Character).
Dalam pembuatan AI dalam game playing dapat dilakukan dengan beberapa

cara, salah satunya adalah dengan menggunakan metode pencarian Heuristik.

2.3

Metode Pencarian Heuristik
Teknik pencarian heuristik (heuristic searching) atau dikenal juga dengan

rapid-prototyping merupakan suatu strategi untuk melakukan proses pencarian ruang
keadaan (state space) suatu problema secara selektif, yang memandu proses pencarian
yang kita lakukan disepanjang jalur yang memiliki kemungkinan sukses paling besar,
dan mengesampingkan usaha yang bodoh dan memboroskan waktu.
Heuristik merupakan sebuah teknik yang mengembangkan efisiensi dalam
proses

pencarian,

namun

dengan

kemungkinan

mengorbankan

kelengkapan

(completeness). Heuristik dapat diterapkan dengan baik dalam suatu domain tertentu
jika memiliki suatu fungsi heuristik, dimana fungsi heuristik ini digunakan untuk
mengevaluasi keadaan keadaan problema individual dan menentukan seberapa jauh
hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.
Jenis – jenis pencarian heuristik terdiri atas Generate and Test, Hill
Climbing, Best First Search, Alpha Beta Prunning, Means-End-Analysis, dan
Constraint Satisfaction.

Universitas Sumatera Utara

14

2.3.1

Generate and Test
Metode Generate and Testadalah metode yang paling sederhana dalam teknik

pembelajaran komputer.Metode ini menciptakan semua solusi yang mungkin
dikerjakan secara sistematis dengan aturan tertentu dan menjamin akan menemukan
solusi terhadap suatu masalah. Namun, jika ruang masalahnya sangat luas, mungkin
memerlukan waktu yang sangat lama.
Algoritma Generate And Test menggunakan prosedur Depth First
Search(DFS) karena suatu solusi harus dibangkitkan secara lengkap sebelum
dilakukan Test. Algoritma ini berbentuk sistematis, pencarian sederhana yang
mendalam dari suatu ruang permasalahan. Generate And Test juga dapat dilakukan
dengan pembangkitan solusi secara acak, tetapi tidak ada jaminan solusinya akan
ditemukan.
Di dalam Generate And Test, terdapat dua prosedur penting: pembangkit
(membangkitkan sebuah solusi yang mungkin) dan tes (menguji solusi yang
dibangkitkan tersebut). Dengan penggunaan memori yang sedikit, DFS bisa
digunakan sebagai prosedur Pembangkit yang menghasilkan suatu solusi. (Suyanto,
2007)
Contoh penyelesaian dengan menggunakan metode Generate and Test dapat
dilihat pada gambar 2.1 dan gambar 2.2. Gambar 2.1 merupakan contoh penggunaan
generate pada pencarian jalur, sedangkan gambar 2.2 merupakan contoh penggunaan
generate pada pencarian 5 langkah game 2048.
8

B

A
77

33

4

D
D

5

CB
66

Gambar 2.1Ilustrasi Lintasan metode Generate and Test

Universitas Sumatera Utara

15

Gambar 2.2. Ilustrasi Alur Pencarian Generate and Test untuk pencarian 4
langkah

Dari kedua gambar tersebut, maka dapat dihasilkan tabel hasil langkah yang
mungkin untuk kemudian dilakukan langkah test. Tabel 2.1 menujukkan hasil langkah
test untuk panjang lintasan terpilih sebagai berikut:

Tabel 2.1 Tabel hasil lintasan terpendek menggunakan Generate and Test

Pencarian
Ke -

Lintasan

Panjang

Lintasan

Lintasan

Terpilih

Panjang
Lintasan
Terpilih

1

ABCD

19

ABCD

19

2

ABDC

18

ABDC

18

3

ACBD

12

ACBD

12

4

ACDB

13

ACBD

12

5

ADBC

16

ACBD

12

Pada tabel 2.1 dapat dilihat bahwa jalur terpendek adalah melalui lintasan
ACBD dengan panjang lintasan 12. Maka langkah selanjutnya, AI akan menjalankan
langkah ACBD.

Universitas Sumatera Utara

16

Algoritma Generate and Test

2.3.1.1

Algoritma generate and test menurut (Suyanto, 2007) pada generate and test
adalah sebagai berikut:
1.

Bangkitkan sebuah solusi yang mungkin. Solusi bisa berupa suatu keadaan(state).

2.

Lakukan Testapakah solusi yang dibangkitkan tersebut adalah sebuah solusi yang
bisa diterima sesuai dengan kriteria yang diberikan.

3.

Jika solusi telah ditemukan, keluar. Jika belum, kembali ke langkah 1. (Suyanto,
2007)
Sedangkan menurut (Kyaw, 2013), algoritma generate and test adalah sebagai

berikut:
Generate_and_test()
{
Begin:
Dijabarkan solusi yang memungkinkan;
Evaluasi solusi dengan membandingkannya dengan criteria yang telah
diterima;
If (solusi memuaskan dan sesuai dengan kriteria yang diinginkan) quit;
Else go to begin;
}

Dari kedua kutipan tersebut, dapat kita dapat menarik kesimpulan bahwa
algoritma generate and test terdiri dari proses pembangkitan (generate) dan pengujian
(test).

2.4

Unity
Unity merupakan suatu aplikasi yang digunakan untuk mengembangkan

game multi platform yang didesain agar mudah digunakan. Unity dipenuhi perpaduan
dengan berbagai aplikasi professional yang akan sangat memudahkan pengguna.

Universitas Sumatera Utara

17

Editor pada Unity dibuat dengan user interface yang sederhana. Grafis pada unity
dibuat dengan grafis tingkat tinggi untuk OpenGL dan directX. Unity mendukung
semua format file, terutamanya format umum seperti semua format dari art
applications. Unity cocok dengan versi 64-bit dan dapat beroperasi pada Mac OS x
dan Windows dan dapat menghasilkan game untuk Mac, Windows, Wii, iPhone, iPad
dan Android.
Unity secara rinci dapat digunakan untuk membuat video game 3D,animasi
3D real timedan visualisasi arsitektur dengan isi serupa yang interaktif. Editor Unity
dapat menggunakan plugin web player dan menghasilkan game browser yang
didukung oleh Windows dan Mac. Plugin web player dapat juga dipakai untuk
widgets Mac. Unity juga akan mendukungconsole terbaru seperti PlayStation 3 dan
Xbox 360.
Server aset dari Unity dapat digunakan semua scripts dan aset game sebagai
solusi dari versi kontrol dan dapat mendukung proyek yang terdiri atas banyak
gigabytes dan ribuan dari file multi-megabyte. Editor Unity dapat menyimpan
metadata dan versi yang dapat berjalan, pembaharuan dan didalam perbandingan versi
grafis. Editor Unity dapat diperbaharui secara langsung seperti file yang telah
dimodifikasi. Server aset Unity juga cocok pada Mac, Windows dan Linux dan juga
berjalan pada PostgreSQL, database server opensource.

2.4.1Fitur-fitur pada Unity
Unity sebagai editor memiliki fitur-fitur seperti rendering, scripting, asset tracking,
multi-platform, asset store, physics engine yang akan turut membantu dalam
pengembangan aplikasi.

2.4.1.1 Rendering
Graphics engine yang digunakan adalah Direct3D (Windows, Xbox 360),
OpenGL (Mac, Windows, Linux, PS3), OpenGL ES (Android, iOS), dan proprietary
APIs (Wii). Ada pula kemampuan untuk bump mapping, reflection mapping, parallax

Universitas Sumatera Utara

18

mapping, screen space ambient occlusion (SSAO), dynamic shadows using shadow
maps, render-to-texture and full-screen post-processing effects.
Unity dapat mengambil format desain dari 3Ds Max, Maya, Softimage,
Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks
and Algorithmic Substance. Asset tersebut dapat ditambahkan ke game project dan
diatur melalui graphical user interface Unity.
ShaderLab adalah bahasa yang digunakan untuk shaders, dimana mampu
memberikan deklaratif “programming” dari fixed-function pipeline dan program
shader ditulis dalam GLSL atau Cg. Sebuah shader dapat menyertakan banyak varian
dan sebuah spesifikasi fallback declarative, dimana membuat Unity dapat mendeteksi
berbagai macam video card terbaik saat ini, dan jika tidak ada yang kompatibel, maka
akan digunakanshader alternatif yang mungkin dapat menurunkan fitur dan performa.

2.4.1.2 Scripting

Script game engine dibuat dengan Mono 2.6, sebuah implementasi opensource dari .NET Framework.Programmer dapat menggunakan UnityScript (bahasa
terkustomisasi yang terinspirasi dari sintax ECMAScript, dalam bentuk JavaScript),
C#, atau Boo (terinspirasi dari sintaks bahasa pemrograman phyton).Dimulai dengan
dirilisnya versi 3.0, Unity menyertakan versi MonoDevelop yang terkustomisasi untuk
debug script.

2.4.1.3 Asset Tracking

Unity juga menyertakan Server Unity Asset – sebuah solusi terkontrol untuk
developer game asset dan script. Server tersebut menggunakan PostgreSQL sebagai
backend, sistem audio dibuat menggunakan FMOD library (dengan kemampuan untuk
memutar Ogg Vorbis compressed audio), video playback menggunakan Theora codec,
engine daratan dan vegetasi (dimana mendukungtree billboarding, Occlusion Culling
dengan Umbra), built-in lightmapping dan global illumination dengan Beast,
multiplayer networking menggunakan RakNet, dan navigasi mesh pencari jalur builtin.

Universitas Sumatera Utara

19

2.4.1.4 Multi-Platforms

Unity support pengembangan ke berbagai plaform. Didalam project,
developer memiliki kontrol untuk mengirim keperangkat mobile, web browser,
desktop, and console. Unity juga mengijinkan spesifikasi kompresi textur dan
pengaturan resolusi di setiap platform yang didukung.
Saat ini platform yang didukung adalah BlackBerry 10, Windows 8,
Windows Phone 8, Windows, Mac, Linux, Android, iOS, Unity Web Player, Adobe
Flash, PlayStation 3, Xbox 360, Wii U and Wii. Meskipun tidak semua terkonfirmasi
secara resmi, Unity juga mendukung PlayStation Vita yang dapat dilihat pada game
Escape Plan dan Oddworld: New ‘n’ Tasty.

2.4.1.5 Asset Store

Diluncurkan November 2010, Unity Asset Store adalah sebuah resource yang
hadir di Unity editor. Asset store terdiri dari koleksi lebih dari 4,400 asset packages,
beserta 3D models, textures dan materials, sistem particle, musik dan efek suara,
tutorial dan project, scripting package, editor extensions dan servis online.

2.4.2.6 Physics Engine

Unity juga memiliki suport built-in untuk PhysX physicsengine (sejak Unity
3.0) dari Nvidia (sebelumnya Ageia) dengan penambahan kemampuan untuk simulasi
real-timecloth pada arbitrary dan skinned meshes, thick ray cast, dan collision layers.

2.5

Android
Permainan komputer (computer game) adalah permainan video yang

dimainkan pada komputer pribadi, dan bukan pada konsol permainan, maupun mesin
ding-dong.Permainan komputer telah berevolusi dari sistem grafis sederhana sampai
menjadi kompleks dan mutakhir.Namun, pasar permainan komputer di Amerika
Serikat mulai menurun sejak tahun 1999. (Maulina, 2014)

Universitas Sumatera Utara

20

Game komputer dibuat oleh satu atau beberapa pengembang game,
biasanyabersama dengan spesialis lainnya (seperti game artists) dan dipublikasikan
baik secara sendiri atau melalui penerbit pihak ketiga. Mereka kemudian
mendistribusikan pada media fisik seperti DVD dan CD, atau dapat didistribusikan
secara bebas melalui internet, software, atau melalui jasa pengiriman online seperti
Direct2Drive dan Steam. Game komputer membutuhkan hardware khusus di
komputer pengguna untuk bermain, seperti generasi spesifik unit pemrosesan grafik
atau koneksi internet untuk bermain online, meskipun persyaratan sistem ini
bermacam-macam pada setiap game.(Murya, 2014)

Universitas Sumatera Utara