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