MAKALAH AI

download MAKALAH AI

of 39

Transcript of MAKALAH AI

Penerapan Graf Pada Game Dengan Kecerdasan Buatan

Nama NPM Jurusan

: Amang Indra Lesmana : 09112017 : Teknik Informatika

KATA PENGANTAR Puji syukur penulis penjatkan kehadirat Alloh SWT, yang atas rahmat-Nya maka penulis dapat menyelesaikan penyusunan makalah yang berjudul Penerapan Graf Pada Game Dengan Kecerdasan Buatan. Penulisan makalah adalah merupakan salah satu tugas dan persyaratan untuk menyelesaikan tugas matakuliah Artifical Intlegency. Dalam Penulisan makalah ini penulis merasa masih banyak kekurangan-kekurangan baik pada teknis penulisan maupun materi, mengingat akan kemampuan yang dimiliki penulis. Untuk itu kritik dan saran dari semua pihak sangat penulis harapkan demi penyempurnaan pembuatan makalah ini. Dalam penulisan makalah ini penulis menyampaikan ucapan terima kasih yang tak terhingga kepada pihak-pihak yang membantu dalam menyelesaikan makalah ini. Akhirnya penulis berharap semoga Allah memberikan imbalan yang setimpal pada mereka yang telah memberikan bantuan, dan dapat menjadikan semua bantuan ini sebagai ibadah, Amiin Yaa Robbal Alamiin. Bandung, January 2012-01-11

Penulis

DAFTAR ISI Kata Pengantar Daftar Isi i ii

Bab 1 Pendahuluan 1.1 Kecerdasan Buatan 1.1.1 Pengertian 1.1.2 Kecerdasan Buatan dan Kecerdasan Alami 1.1.3 Komputasi Kecerdasan Buatan dan Komputasi Konvesional 1.1.4 Sejarah Kecerdasan Buatan 1.1.5 Lingkup Kecerdasan Buatan Pada Aplikasi Komersial 1.2 Sistem Pakar 1.2.1 Pengertian 1.2.2 Keuntungan Sistem Pakar 1.2.3 Kelemahan Sistem Pakar 1.2.4 Konsep Dasar Sistem Pakar 1.2.5 Bentuk Sistem Pakar 1.2.6 Struktur Sistem Pakar 1.2.7 Basis Pengetahuan 1.2.8 Motor Inferensi (Inferency Engine) 1.2.9 Ciri-ciri Sistem Pakar 1.2.10 Permasalahan Yang di Sentuh Oleh Sistem Pakar 1.3 Konsep Basis Data

1 1 1 4 5 6 7 9 9 10 11 11 13 14 16 16 17 17 18

1.3.1 Pengertian Basis Data 1.4 Metode Perancangan Sistem 1.4.1 Diagram Konteks 1.4.2 Data Flow Diagram (DFD) 1.4.3 Entity Relation Diagram (ERD) 1.4.4 Skema Relasi 1.5 Perangkat Lunak Pendukung 1.5.1 Personal Home Page 1.5.2 Database My SQL Bab 2 Pembahasan 2.1 Penerapan Graf Pada Game Dengan Kecerdasan Buatan 2.1.1 Pengertian Graf 2.1.2 Graf Dalam Game dengan Kecerdasan Buatan 2.1.3 Representasi Graf 2.2 Graf Untuk Navigasi atau Pathfinding 2.3 Defedency Graf 2.4 State Graf Bab 3 Kesimpulan 3.1 Kesimpulan

18 18 19 19 19 20 20 21 21 23 23 23 25 26 27 29 31 34 34

Daftar Pustaka

35

BAB I PENDAHULUAN 1.1 Kecerdasan Buatan 1.1.1 Pengertian

Kecerdasan buatan atau artificial intelligence merupakan salah satu bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman, maka peran komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia. Manusia bisa menjadi pandai dalam menyelesaikan segala permasalahan didunia ini karena manusia mempunyai pengetahuan dan pengalaman. Pengetahuan diperoleh dari belajar. Semakin banyak bekal pengetahuan yang dimiliki oleh seseorang tentu saja diharapkan akan lebih mampu dalam menyelesaikan permasalahan. Namun bekal pengetahuan saja tidak cukup, manusia juga diberi akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan pengetahuan dan pengalaman yang mereka miliki. Tanpa memiliki kemampuan untuk menalar dengan baik, manusia dengan segudang pengalaman dan pengetahuan tidak akan dapat menyelesaikan masalah dengan baik. Demikian pula, dengan kemampuan menalar yang sangat baik, namun tanpa bekal pengetahuan dan pengalaman yang memadai, manusia juga tidak akan bisa menyelesaikan masalah dengan baik. Agar komputer bisa bertindak seperti dan sebaik manusia, maka komputer juga harus diberi bekal pengetahuan, dan mempunyai kemampuan untuk menalar. Untuk itu pada artificial intelligence, akan mencoba memberikan beberapa metoda untuk membekali komputer dengan kedua komponen tersebuat agar komputer bisa menjadi mesin yang pintar. Lebih detilnya, 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 bagai mana membuat agar komputerd apat melakukan sesuatu sebaik yang dikerjakan oleh manusia. Domain yang sering dibahas oleh para peneliti meliputi: a. Mundane task Persepsi (vision & speech) Bahasa alami (understanding, generation & translation) Pemikiran yang bersifat commonsense

Robot control

b. Format task Permainan/games

Matematika (geometri, logika, kalkulus integral, pembuktian)

c. Expert task Analisis finansial Analisis medikal Analisis ilmu pengetahuan Rekayasa (desain, pencarian kegagalan, perencanaan manufaktur) 1. Sudut pandang bisnis Kecerdasan buatan adalah kumpulan peralatan yang sangat powerfull dan metodologis dalam menyelesaikan masalah- masalah bisnis. 2. Sudut pandang pemrograman

Kecerdasan buatan meliputi studi tentang pemrograman simbolik, penyelesaian masalah (problem solving) dan pencarian (searching). Untuk melakukan aplikasi kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan (Gambar 2.1), yaitu:a.

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

b.

Motor Inferensi (Inference Engine), yaitu kemampuan menarik kesimpulan berdasarkan pengalaman.

1.1.2 Kecerdasan Buatan dan Kecerdasan Alami Jika dibandingkan dengan kecerdasan alami (kecerdasan yang dimiliki oleh manusia), kecerdasan buatan memiliki beberapa keuntungan secara komersial antara lain: a. Kecerdasan buatan lebih bersifat permanen. Kecerdasan alami akan cepat mengalami perubahan. Hal ini dimungkinkan karena sifat manusia yang pelupa. Kecerdasan

buatan tidak akan berubah sepanjang sistem komputer dan program tidak mengubahnya. b. Kecerdasan buatan lebih mudah diduplikasi dan disebarkan. Mentransfer pengetahuan manusia dari satu orang ke orang lain membutuhkan proses yang sangat lama, dan juga suatu keahlian itu tidak akan pernah dapat diduplikasi dengan lengkap. Oleh karena itu, jika pengetahuan terletak pada suatu sistem komputer, pengetahuan tersebut dapat disalin dari komputer tersebut dan dapat dipindahkan dengan mudah ke komputer yang lain.c. Kecerdasan buatan lebih murah dibanding dengan kecerdasan alami. Menyediakan

layanan komputer akan lebih mudah dan lebih murah Basis Pengetahuan Motor Inferensi dibandingkan dengan harus mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang sangat lama. d. Kecerdasan buatan bersifat konsisten. Hal ini disebabkan karena kecerdasan buatan adalah bagian dari teknologi komputer. Sedangkan kecerdasan alami akan senantiasa berubah-ubah. e. Kecerdasan buata dapat didokomentasi. Keputusan yang dibuat oleh komputer dapat didokumentasi dengan mudah dengan cara melacak setiap aktifitas dari sistem tersebut. Kecerdasan alami sangat sulit untuk direproduksi. f. Kecerdasan buatan dapat mengerjakan pekerjaan lebih cepat dibandingkan dengan kecerdasan alami. g. Kecerdasan buatan dapat mengerjakan pekerjaan lebih baik dibandingkan dengan kecerdasan alami. Sedangkan keuntungan dari kecerdasan alami adalah: a. Kreatif. Kemampuan untuk menambah ataupun memenuhi pengetahuan pengetahuan itu sangat melekat pada jiwa manusia. Pada kecerdasan buatan, untuk menambah pengetahuan harus dilakukan pada sistem yang dibangun

b. Kecerdasan alami memungkinkan orang untuk menggunakan pengalaman secara langsung. Sedangkan pada kecerdasan buatan harus bekerja dengan input- input simbolik. c. Pemikiran manusia dapat digunakan secara luas, sedangkan kecerdasan buatan sangat terbatas.

1.1.3 Komputasi Kecerdasan Buatan dan Komputasi Konvensional Seperti telah dikatakan sebelumnya, bahwa pada awal diciptakannya, komputer hanya diperuntukkan sebagai alat hitung (komputasi konvensional). Untuk itu, ada beberapa perbedaan antara komputasi yang dilakukan pada kecerdasan buatan dengan komputasi konvensional tersebut.perbedaan komputasi kecerdasan buatan dengan komputasi

konvensional terlihat pada Tabel 2.1.

1.1.4 Sejarah Kecerdasan Buatan Kecerdasan buatan termasuk bidang ilmu yang relatif muda. Pada tahun1950-an para ilmuan dan peneliti mulai memikirkan bagaimana caranya agar mesin dapat melakukan pekerjaannya seperti yang bisa dikerjakan oleh manusia. Alan Turing, seorang matematikawan dari Inggris pertama kali mengusulkan adanya tes untuk melihat bisa tidaknya sebuah mesin dikatakan cerdas. Hasil tes tersebut

kemudian dikenal dengan Turing Test, dimana si mesin tersebut menyamar seolah-olah sebagai seseorang didalam suatu permainan yang mampu memberikan respon terhadap serangkaian pertanyaan yang diajukan. Turing beranggapan bahwa, jika mesin dapat membuat seseorang percaya dirinya mampu berkomunikasi dengan orang lain maka dapat dikatakan bahwa mesin tersebut cerdas (seperti layaknya manusia). Kecerdasan buatan atau Artificial Intelligence itu sendiri dimunculkan oleh seorang profesor dari Massachusetts Institute of Technology yang bernama John McCarty pada tahun 1956 pada Dartmouth Conference yang dihadiri oleh para peneliti AI. pada koferensi tersebut juga didefinisikan tujuan utama dari kecerdasan buatan, yaitu mengetahui dan memodelkan proses-proses berfikir manusia dan mendesain mesin agar dapat menirukan kelakuan manusia tersebut. Beberapa program AI yang mulai dibuat pada tahun 1956-1966, antara lain:1. Logic Theorist, diperkenalkan pada Dartmouth Conference, program ini dapat

membuktikan teorema-teorema matematika.2. Sad Sam, diprogram oleh Robert K. Lindsay (1960). Program ini dapatmengetahui

kalimat-kalimat sederhana yang ditulis dalam bahasa Inggris dan mampu memberikan jawaban dari fakta-fakta yang didengar dalam sebuah percakapan. 3. ELIZA, deprogram oleh Joseph Weizenbaum (1967). Program ini mampu melakukan terapi terhadap pasien dengan memberikan beberapa pertanyaan. 1.1.5 Lingkup Kecerdasan Buatan Pada Aplikasi Komersial Makin pesatnya perkembangan teknologi menyebabkan adanya perkembangan dan perluasan lingkup yang membutuhkan kehadiran kecerdasan buatan. Karakteristik cerdas sudah mulai dibutuhkan diberbagai disiplin ilmu dan teknologi. Kecerdasan buatan tidak hanya dominan dibidang ilmu komputer (informatika), namun juga sudah merambah diberbagai disiplin ilmu yang lain.

Irisan antara psikologi dan kecerdasan buatan melahirkan sebuah area yang dikenal dengan nama cognition & psycolinguistics. Irisan antara teknik elektro dengan kecerdasan buatan melahirkan berbagai ilmu seperti: pengolahan citra, teori kendali, pengenalan pola dan robotika. Dewasa ini, kecerdasan buatan juga memberikan konstribusi yang cukup besar dibidang manajemen. Adanya sistem pendukung keputusan, dan Sistem Informasi Manajemen juga tidak terlepas dari andil kecerdasan buatan. adanya irisan penggunaan kecerdasan buatan diberbagai disiplin ilmu tersebut menyebabkan cukup rumitnya untuk mengklasifikasikan kecerdasan buatan menurut disiplin ilmu yang menggunakannya. Untuk memudahkan hal tersebut, maka pengklasifikasian lingkup kecerdasan buatan didasarkan pada output yang diberikan yaitu pada aplikasi komersial (meskipun sebenarnya kecerdasan buatan itu sendiri bukan merupakan medan komersial). Lingkup utama dalam kecerdasan buatan adalah:1. Sistem Pakar (Expert System). Disini komputer digunakan sebagai sarana untuk

menyimpan pengetahuan para pakar. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan meniru keahlian yang dimiliki oleh pakar.2. Pengolahan Bahasa Alami (Natural Language Processing). Dengan pengolahan

bahasa alami ini diharapkan user dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari.3. Pengenalan Ucapan (Speech Recognition). Melalui pengenalan ucapan diharapkan

manusia dapat berkomunikasi dengan komputer dengan menggunakan suara.4. Robotika & Sistem Sensor (Robotics & Sensory Systems). 5. Computer Vision, mencoba untuk dapat menginterpretasikan gambar atau objek-objek

tampak melalui komputer.

6. Intelligent Computer-aided Instruction. Komputer dapat digunakan sebagai tutor yang

dapat melatih dan mengajar.7. Game Playing.

Beberapa karakteristik yang ada pada sistem yang menggunakan artificial intelligence adalah pemogramannya yang cenderung bersifat simbolik ketimbang algoritmik, bisa mengakomodasi input yang tidak lengkap, bisa melakukan inferensi, dan adanya pemisaha antara kontrol dengen pengetahuan. Namun, seiring dengan perkembangan teknologi, muncul beberapa teknologi yang juga bertujuan untuk membuat agar komputer menjadi cerdas sehingga dapat menirukan pekerjaan kita sehari- hari. Teknologi ini juga mampu mengakomodasi adanya ketidakpastian dan ketidaktepatan data input. Dengan didasari pada teori himpunan, maka pada tahun 1965 muncul Logika Fuzzy. Kemudian pada tahun 1975 John Holland mengatakan bahwa setiap problem berbentuk adaptasi (alami maupun buatan) secara umum dapat diformulasikan dalam terminologi genetika. Algoritma genetika ini merupakan simulasi proses evolusi Darwin dan operasi genetika atas kromosom.

1.2 Sistem Pakar 1.2.1 Pengertian Secara umum, sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahuan manusia ke komputer, agar komputer dapat menyelesaikan masalah seperti yang bisaa dilakukan oleh para ahli. Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalahan tertentu dengan meniru kerja dari para ahli. Dengan sistem pakar ini, orang awampun dapat menyelesaikan masalah yang cukup rumit yang sebenarnya hanya dapat diselesaikan dengan bantuan para ahli. Bagi para ahli, sistem pakar ini juga akan membantu aktivitasnya sebagai asisten yang sangat berpengalaman.

Ada beberapa definisi tentang sistem pakar, antara lain: 1. Menurut Durkin: Sistem pakar adalah suatu program komputer yang dirancang untuk memodelkan kemampuan penyelesaian masalah yang dilakukan oleh seorang pakar. 2. Menurut Ignizio: Sistem pakar adalah suatu model dan prosedur yang berkaitan, dalam suatu domain tertentu, yang mana tingkat keahliannya dapat dibandingkan dengan keahlian seorang pakar. 3. Menurut Giarratano dan Riley: Sistem pakar adalah suatu sistem komputer yang bisa menyamai atau meniru kemampuan seorang pakar. Sistem pakar pertama kali dikembangkan oleh komunitas AI pada pertengahan tahun 1960. Sistem pakar yang muncul pertama kali adalah Generalpurpose Problem Solver (GPS) yang dikembangkan oleh Newel dan Simon. GPS (dan program-program yang serupa) ini mengalami kegagalan dikarenakan cakupannya terlalu luas sehingga terkadang justru meninggalkan pengetahuanpengetahuan penting yang seharusnya disediakan.

Sampai saat ini sudah banyak sistem pakar yang dibuat, beberapa contoh diantaranya terlihat pada Tabel 2.2.

1.2.2 Keuntungan Sistem Pakar Secara garis besar, banyak manfaat yang dapat diambil dengan adanya sistem pakar, antara lain: 1. Memungkinkan orang awam bisa mengerjakan pekerjaan para ahli. 2. Bisa melakukan proses secara berulang secara otomatis. 3. Menyimpan pengetahuan dan keahlian para pakar. 4. Meningkatkan output dan produktivitas. 5. Meningkatkan kualitas. 6. Mampu mengambil dan melestarikan keahlian para pakar (terutama yang termasuk keahlian langka). 7. Mampu beroperasi dalam lingkungan yang berbahaya. 8. Memiliki kemampuan untuk mengakses pengetahuan. 9. Memiliki realibilitas. 10. Meningkatkan kapabilitas sistem komputer. 11. Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan mengandung ketidakpastian. 12. Sebagai media pelengkap dalam pelatihan. 13. Meningkatkan kapabilitas dalam penyelesaian masalah. 14. Menghemat waktu dalam pengambilan keputusan.

1.2.3 Kelemahan Sistem Pakar Disamping memiliki beberapa keuntungan, sistem pakar juga memiliki beberapa kelemahan, antara lain: 1. Biaya yang diperlukan untuk membuat dan memeliharanya sangat mahal. 2. Sulit dikembangkan. Hal ini tentu saja erat kaitannya dengan ketersediaan pakar dibidangnya.

3. Sistem pakar tidak 100% bernilai benar.

1.2.4 Konsep Dasar Sistem Pakar Menurut Efraim Turban, konsep dasar sistem pakar mengandung keahlian,ahli, pengalihan keahlian, inferensi, aturan dan kemampuan menjelaskan. Keahlian adalah suatu kelebihan penguasaan pengetahuan dibidang tertentu yang diperoleh dari pelatihan, membaca adat pengalaman. Contoh bentuk pengetahuan yang termasuk keahlian adalah: a. Fakta-fakta pada lingkup permasalahan tertentu. b. Teori-teori pada lingkup permasalahan tertentu. c. Prosedur-prosedur dan aturan-aturan berkenaan dengan ruang lingkup permasalahan tertentu. d. Strategi-strategi global untuk menyelesaikan masalah.e. Meta-knowledge (pengetahuan tentang pengetahuan).

Bentuk-bentuk ini memungkinkan para ahli untuk dapat mengambil keputusan lebih cepat dan lebih baik daripada seseorang yang bukan ahli. Seorang ahli adalah seorang yang mampu menjelaskan tanggapan, mempelajari hal-hal baru seputar topik permasalahan (domain), menyusun kembali pengetahuan jika dipandang perlu, memecahkan atuan-aturan jika dibutuhkan, dan menentukan relevan tidaknya keahlian mereka. Pengalihan keahlian dari para ahli ke komputer untuk kemudian dialihkan lagi ke orang lain yang bukan ahli, merupakan tujuan utama dari sistem pakar. Proses ini membutuhkan 4 aktivitas yaitu: tambahan penge tahuan (dari para ahli atau sumber-sumber lainnya), representasi pengetahuan (ke komputer), inferensi

pengetahuan, dan pengalihan pengetahuan ke user. Pengetahuan yang didimpan di komputer

disebut dengan nama basis pengetahuan. Ada 2 tipe pengetahuan, yaitu: fakta dan prosedur (bisaanya berupa aturan). Salah satu fitur yang harus dimiliki oleh sistem pakar adalah kemampuan untuk menalar.jika keahlian-keahlian sudah tersimpan sebagai basis pengetahuan dan sudah tersedia program yang mampu membuat inferensi. Proses inferensi ini dikemas dalam bentuk motor inferensi (inference engine). Sebagian besar sistem pakar komersial dibuat dalam bentuk Rule-based Systems, yang mana pengetahuan disimpan dalam bentuk aturan-aturan. Aturan tersebut bisaanya berbentuk IFTHEN.

Fitur lainnya dalam sistem pakar adalah kemampuan untuk merekomendasi. Kemampuan inilah yang membedakan sistem pakar dengansistem konvensional (Tabel 2.3).

1.2.5 Bentuk Sistem Pakar

Ada 4 bentuk sistem pakar, yaitu: 1. Berdiri sendiri. Sistem pakar jenis ini merupakan software yang berdiri-sendiri tidak tergabung dengan software yang lainnya. 2. Tergabung. Sistem pakar jenis ini merupakan bagian program yang terkandung di dalam suatu algoritma (konvensional), atau merupakan program dimana di dalamnya memanggil algoritma subrutin lain (konvensional). 3. Menghubungkan ke software lain. Bentuk ini bisaanya merupakan sistem pakar yang menghubungkan ke suatu paket program tertentu, misalnya dengan DBMS.4. Sistem mengabdi. Sis tem pakar merupakan bagian dari komputer khusus yang

dihubungkan dengan suatu fungsi tertentu. Misalnya sistem pakar yang digunakan untuk membantu menganalisis data radar. 1.2.6 Struktur Sistem Pakar Sistem pakar terdiri dari 2 bagian pokok, yaitu: lingkungan pengembangan (development environment) dan lingkungan konsultasi (consultation environment). Lingkungan pengembangan digunakan sebagai pembangun sistem pakar baik dari segi pembangun komponen maupun basis pengetahuan. Lingkungan konsultasi digunakan oleh seseorang yang bukan ahli untuk berkonsultasi.

Komponen-komponen yang ada pada sistem pakar adalah gambar 2.2: 1. Subsistem penambahan pengetahuan. Bagian ini digunakan untuk memasukkan pengetahuan, mengkonstruksi atau memperluas pengetahuan dalam basis

pengetahuan. Pengetahuan itu bisa berasal dari: ahli, buku, basis data, penelitian dan gambar. 2. Basis pengetahuan. Berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami, memformulasikan dan menyelesaikan masalah.3. Motor inferensi (inference engine). Program yang berisi metodologi yang digunakan

untuk melakukan penalaran terhadap informasi- informasi dalam basis pengetahuan dan blackboard, serta digunakan untuk memformulasikan konklusi. Ada 3 elemen utama dalam motor inferensi, yaitu:a. Interpreter:

mengeksekusi item- item agenda yang terpilih dengan

menggunakan aturan-aturan dalam basis pengetahuan yang sesuaib. Scheduler: akan mengontrol agenda.

c. Consistency enforcer: akan berusaha memelihara kekonsistenan dalam

merepresentasikansolusi yang bersifat darurat. 1. Blackboard. Merupakan area dalam memori yang digunakan untuk merekam kejadian yang sedang berlangsung termasuk keputusan sementara. Ada 3 tipe keputusan yang dapat direkam, yaitu: a. Rencana: bagaimana menghadapi masalah.b. Agenda: aksi-aksi yang potensial yang sedang menunggu untuk dieksekusi.

c. Solusi: calon aksi yang akan dibangkitkan. 1. Antarmuka. Digunakan untuk media komunikasi antar user dan program. 2. Subsistem penjelasan. Digunakan untuk melacak respond an memberikan penjelasan tentang kelakuan sistem pakar secara interaktif melalui pertanyaan: a. Mengapa suatu pertanyaan ditanyakan oleh sistem pakar? b. Bagaimana konklusi dicapai? c. Mengapa ada alternatif yang dibatalkan? d. Rencana apa yang digunakan untuk mendapatkan solusi?7. Sistem penyaring pengetahuan. Sistem ini digunakan untuk mengevaluasi kinerja

sistem pakar itu sendiri untuk melihat apakah pengetahuanpengetahuan yang ada masih cocok digunakan di masa datang.

1.2.7 Basis Pengetahuan Basis pengetahuan berisi pengetahuan-pengetahuan dalam penyelesaian masalah, tentu saja di dalam domain tertentu. Ada 2 bentuk pendekatan basis pengetahuan yang sangat umum digunakan, yaitu:a. Penalaran berbasis aturan (Rule-Based Reasoning) Pada penalaran berbasis aturan,

pengetahuan direpresentasikan dengan menggunakan aturan berbentuk: IF-THEN.

Bentuk ini digunakan apabila kita memiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu, dan si pakar dapat menyelesaikan masalah tersebut secara berurutan. Disamping itu, bentuk ini juga digunakan apabila dibutuhkan penjelasan tentang jejak (langkah- langkah) pencapaian solusi.b. Penalaran berbasis kasus (Case-Based Reasoning) Pada penalaran berbasis kasus,

basis pengetahuan akan berisi solusi-solusi yang telah dicapai sebelumnya, kemudian akan diturunkan suatu solusi untuk keadaan yang terjadi sekarang (fakta yang ada). Bentuk ini digunakan apabila user menginginkan untuk tahu lebih banyak lagi pada kasus-kasus yang hampir sama (mirip). Selain itu, bentuk ini juga digunakan apabila kita telah memiliki sejumlah situasi atau kasus tertentu dalam basis pengetahuan.

1.2.8 Motor Inferensi (Inference Engine) Ada 2 cara yang dapat dikerjakan dalam melakukan inferensi, yaitu: 1. Forward Chaining Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kiri (IF dulu). Dengan kata lain, penalaran dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesis.

2. Backward Chaining Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kanan (THEN dulu). Dengan kata lain, penalaran dimulai dari hipotesis terlebih dahulu, dan untuk menguji kebenaran hipotesis tersebut dicari harus dicari fakta-fakta yang ada dalam basis pengetahuan.

1.2.9 Ciri-Ciri Sistem Pakar

Sistem pakar yang baik harus memenuhi cirri-ciri sebagai berikut: 1. Memiliki fasilitas informasi yang handal; 2. Mudah dimodifikasi; 3. Dapat digunakan dalam berbagai jenis komputer; 4. Memiliki kemampuan untuk belajar beradaptasi.

1.2.10 Permasalahan yang Disentuh Oleh Sistem Pakar Ada beberapa masalah yang menjadi area luas aplikasi sistem pakar, antara lain: 1. Interpretasi. Pengambilan keputusan dari hasil observasi, termasuk diantaranya: pengawasan, pengenalan ucapan, analisis citra, interpretasi sinyal dan beberapa analisis kecerdasan. 2. Prediksi. Termasuk diantaranya peramalan, prediksi demografis, peramalan ekonomi, prediksi lalulintas, estimasi hasil, militer, pemasaran, atau peramalan keuangan. 3. Diagnosis. Termasuk diantaranya: medis, elektronis, mekanis dan diagnosa perangkat lunak. 4. Perancangan. Termasuk diantaranya: layot sirkuit dan perancangan bangunan. 5. Perencanaan. 6. Monitoring. 7. Debugging. 8. Perbaikan. 9. Instruksi. 10. Control.

1.3 Konsep Basis Data 1.3.1 Pengertian Basis data

Pengertian Basis Data terdiri dari dua kata, basis dan data. Basis dapat diartikan kurang lebih sebagai markas, gudang atau tempat berkumpul. Sedangkan data adalah repesentasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, dan lain-lain), barang dan sebagainya yang direkam dalam bentuk angka, huruf, symbol, teks, gambar, bunyi atau kombinasi lainnya. Basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti:1. Himpunan Kelompok Data (Arsip) yang saling berhubungan yang diorganisasikan

sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian

rupa

dan

tanpa

pengulangan

(Redundansi)

yang

tidak

perlu.

Kumpulan

File/Table/Arsip yang saling berhubungan yang disimpan daam media penyimpan Elektronik.

1.4 Metode Perancangan Sistem Dalam metode perancangan ini terdapat beberapa metode, diantaranya:

1.4.1 Diagram Konteks Merupakan gambaran sistem secara garis besar dan hanya memperlihatkan kelompok data input dan output. Diagram konteks adalah suatu diagram yang menggambarkan hubungan sistem dengan sejumlah komponen menjadi bagian penting dalam mendukung keberadaan sistem tersebut, yang akan memberikan masukan atau diberikan keluaran dari sistem sehingga data yang masuk dapat menjadi informasi bagi komponenkomponen tadi. Konteks diagram merupakan level teratas dari diagram arus data .

1.4.2 Data Flow Diagram (DFD) Data Flow Diagram (DFD) digunakan untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan dikembangkan. DFD memperlihatkan suatu sistem dalam komponenkomponennya serta interface (penghubung) antara komponen tersebut. Dalam memperlihatkan aliran data dan pengembangan suatu sistem yang ditinjau dari segi data yang ditampilkan dengan simbol dan aturan tertentu.

1.4.3 Entity Relation Diagram (ERD) ERD adalah gambar atau diagram yang menunjukan informasi dibuat, disimpan, dan digunakan dalam sistem bisnis untuk melakukan aktivitas pemodelan data. Atribut dari masing-masing objek data yang ditulis pada ERD dapat digambarkan dengan menggunakan deskripsi objek data. ERD hanya terfokus pada data dengan menunjukan jaringan data yang ada untuk sistem yang diberikan. ERD berguna bagi aplikasi dimana data dan hubungan yang mengatur data sangatlah kompleks. Serangkaian komponen utama didefinisikan untuk ERD : objek data atribut, hubungan, dan bergai tipe indicator. Tujuan utama ERD adalah untuk mewakili objek data dan hubungan mereka.

Derajat relasi diantaranya: a. Satu ke satu (1-1), yang berate setiap entitas pada himpunan A berhubungan paling banyak dengan entitas pada himpunan entitas B. b. Satu ke banyak (1-N), yang berate setiap entitas pada himpunan entitas A dapat berhubungan banyak entitas pada himpunan entitas B. tetapi tidak berlaku sebaliknya. c. Banyak ke satu (N-1), yang berarti setiap entitas pada himpunan entutas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B tetapi tidak berlaku sebaliknya.

d. Banyak ke banyak (N-N), yang berati setiap entitas pada himpunan entitas A dapat

berhubungan banyak dengan entitas pada himpunan entitas B dan berlaku sebaliknya.

1.4.3 Skema Relasi Proses skema relasi merupakan gabungan antara table yang mempunyai kunci utama yang sama, sehingga table-tabel tersebut menjadi satu kesatuan yang dihubungkan oleh field kunci masing-masing. Pada proses ini, elemen-elemen data dikelompokkan menjadi satu file database beserta entitas dan hubungannya.

1.5 Perangkat Lunak Pendukung Software atau perangkat lunak yang pendukung dalam sistem informasi ini yaitu: 1. Personal Home Page (PHP) 2. Database MySQL

1.5.1 Personal Home Page (PHP) Menurut WAN, personal home page (PHP) PHP hypertext preprocessor. Its a programming language for building dynamic, interactive web site. Artinya PHP Hypertext Preprocessor adalah bahasa pemrograman untuk membuat web site yang dinamis dan interakitf. PHP sendiri ditemukan pada tahun 1994 oleh Resmus Lerdof, pada awalnya tidak untuk didistribusikan dan hanya digunakan pada home page pribadinya. Saat ini hampir seluruh web site diseluruh dunia menggunakan PHP sebagai bahasa pemrogramannya, hal ini dikarenakan PHP dapat diikut sertakan dalam sejumlah produk komersil seperti C2s Stronghold web Server dan Redhat Linux.

Dengan menggunakan PHP, maka perawatan suatu situs web site menjadi lebih murah. Proses update data dapat dilakukan dengan menggunakan aplikasi yang dibuat dengan menggunakn script PHP, dan kemampuan PHP yang paling diandalkan dan pasti adalah dukungan kepada banyak database. Kelebihan-kelebihan PHP antara lain: PHP mudah dibuat dan cepat disajikan. PHP dapat berjalan dalam web server yang berbeda dan dalam sistem operasi yang berbeda pula. PHP dapat berjalan di sistem operasi UNIX, LINUX, Windows, dan Macintosh. PHP juga termasuk bahasa pemrograman yang bisa diletakkan didalam tag HTML.

1.5.2 Database My SQL Database MySQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat open sourse. Meski dirilis secara open sourse namun kendalanya dapat dibuktikan. MySQL mempunyai stabilitas dan kecepatan akses yang tinggi. Dapat berjalan dalam berbagai macam bahasa. MySQL dikembangkan untuk menangani database yang besar secara cepat dan telah sukses digunakan selama bertahun-tahun. Konektifitas, kecepatan, dan keamananya telah menjadian MySQL sebagai server yang cocok untuk mengakses database iinternet. MySQL memiliki arsitektur yang memungkinkan tuap tabel ditangani oleh handler yang berbeda. Ada tiga handler yang dapat dipakai, yaitu MyISAL, Barkeley DB (BDB), dan Innodb. innoDB membuat MySQL menarik karena memili fitur transaksi dengan sistem multiversi sehingga perubahan yang dilakukan oleh seorang klien tidak akan terlihat olug klien lain. Klien ini akan melihat kondidi tabel sebelum transaksi. Barulah jika transaksi ilehklien pertama di-commit, perubahan akan terlihat di semua klien. Bandingkan dengan tabel Barkeley Db, misalnya, yang akan memblok tabel yang sedang di pakai dalam sebuah

transaksi sehingga seorang klien hatus menunggu sampai transaksi yang dilakukan oleh klien pertama selesai.

BAB II PEMBAHASAN 2. Penerapan Graf Pada Game Dengan Kecerdasan Buatan 2. 1 Pengenalan Graf Graf secara formal didefinisikan sebagai himpunanpa sangan (V, E). Dituliskan sebagai: G = {V, E} yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul (vertices atau node) danE adalah himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul.[1] Gambar di bawah ini memperlihatkan berbagai macam contoh graf.

Gambar 1: Contoh graf Setiap node dalam graf biasanya diberikan sebuah nama, dapat berupa huruf atau angka. Graf dapat memiliki sisi yang memiliki bobot.

Pohon Pohon merupakan sebuah graf yang tidak memiliki sirkuit di dalamnya, artinya ia tidak memiliki koneksi yang dapat membuat lintasan kembali ke node awalnya. Struktur data pohon banyak digunakan dalam game dengan kecerdasan buatan untuk pengambilan keputusan.

Kepadatan Graf

Ratio dari jumlah sisi berbanding jumlah node disebut sebagai kepadatan graf. Kepadatan graf mengindikasikan apakah suatu graf adalah sparse atau dense. Sparse graf memiliki lebih sedikit koneksi dibanding dense graf. Di bawah ini contoh kedua graf tersebut.

Gambar 2: Contoh graf dense dan sparse Untuk mengurangi kompleksitas dan untuk meminimumkan penggunaan CPU dan memori, maka adalah lebih baik untuk memilih sparse graf jika memungkinkan, misalnya untuk mendesain graf untuk perencanaan lintasan dalam game.

Digraf

Gambar 3: Contoh digraf sederhana Digraf adalah graf yang memiliki arah. Salah satu contoh penggunaan graf berarah ini dalam game misalnya dalam kasus mencari cost perjalanan melalui gunung. Cost untuk menaiki gunung dan turun dari gunung dapat berbeda, sehingga diperlukan graf dengan representasi arah ini. Di dalam implementasi ke dalam game, lebih dianjurkan untuk menggunakan representasi digraf yang setiap koneksinya memiliki dua arah seperti pada gambar berikut.

Gambar 4: Contoh digraf untuk game Mengapa ini penting? Karena kedua tipe graf (berarah dan tidak berarah) dapat direpresentasikan dengan struktur data yang sama, sehingga programmer dapat lebih nyaman menggunakannya.

2. 2 Graf dalam Game dengan Kecerdasan Buatan Dalam pengembangan game, banyak ditemukan penggunaan teori-teori di bidang ilmu komputer seperti logika, matriks, ilmu peluang, dan juga graf. Untuk pengembangan game dengan kecerdasan buatan, graf memainkan banyak peranan penting, terutama untuk penggunaan yang paling populer, yaitu navigasi atau pathfinding. Selain itu, dalam game yang memilki agent (agent adalah subjek/objek di dalam game yang memiliki kecerdasan buatan), ditemukan beberapa penggunaan graf, yaitu dependency graf dan state graf. Dependency graf banyak digunakan untuk game yang bertipe resource management untuk menggambarkan dependency antara berbagai macam bangunan, material, unit, dan teknologi yang tersedia untuk pemain. State graf digunakan untuk

merepresentasikan setiap kemungkinan state yang mungkin dicapai sistem dan transisi di antara state-state tersebut. Himpunan semua state ini biasa disebut sebagai state space.

2.3 Representasi Graf Representasi graf ada bermacam-macam, di sini akan diberikan dua contoh representasi graf dalam program, yaitu dengan matriks dan adjacency list. Represntasi graf dengan matriks digambarkan seperti pada gambar berikut.

Gambar 5: Representasi graf dengan matriks Setiap angka 1 merepresentasikan adanya koneksi antara node-node yang terdapat pada graf. Setiap angka 0 merepresentasikan tidak adanya koneksi antar kedua node dalam graf.

Representasi dalam adjacency list digambarkan pada gambar berikut.

Gambar 6: Representasi graf dengan adjacency list Representasi ini memperlihatkan setiap node yang terkoneksi dengan node-node lainnya. Misalnya, node 1 terkoneksi dengan node 4 dan node 6, node 2 terkoneksi dengan node 4 dan node 5, dan seterusnya.

2.2. GRAF UNTUK NAVIGASI ATAU PATHFINDING Navigation graph adalah abstraksi dari semua lokasi di dalam lingkungan game yang mungkin dikunjungi oleh agent dan juga abstraksi semua koneksi antara lokasi-lokasi tersebut. Di dalam implementasinya, navigation graph berupa struktur data yang dapat menggambarkan semua kemungkinan jalan (path) dalam lingkungan game. Navigation graph ini sangat membantu agent dalam memilih lintasan dari suatu lokasi ke lokasi yang lain.

Gambar 7: Contoh navigation graph Setiap node dalam navigation graph biasanya merepresentasikan posisi suatu area penting atau posisi objek dalam game. Setiap sisinya merepresentasikan koneksi/hubungan antara node-node tersebut. Lebih lanjut, setiap sisi dapat memiliki suatu nilai/cost, misalnya nilai jarak antara node-node yang ia koneksikan.Graf tipe ini biasa disebut Euclidean graph.

Game agent dapat menelusuri jalan/lintasan di dalam graf ini untuk menemukan lokasi yangdituju. Ia dapat menggunakan graf ini untuk mengkalkulasi lintasan terbaik yang dapat ia pilih. Tipe game yang lain mungkin menggunakan tipe layout yang berbeda dengan graf sebelumnya. Misalnya, untuk game yang bertipe real time strategy (RTS) atau roleplaying game (RPG), layout-nya dapat terdiri/dibangun dari sel, dimana setiap sel merepresentasikan daerah-daerah yang berbeda, seperti rumput, jalan, atau lumpur. Oleh karena itu, untuk mencari jalan ke suatu lokasi di dalam graf, agent akan menandakan lokasi tempat dia berada saat ini sebagai titik pusat dan akan melakukan algoritma pencarian untuk menemukan jalan terbaik menuju lokasi yang dituju. Pendekatan ini membuat agent mampu mengkalkulasi lintasan untuk menghindari air, memilih berjalan di atas jalan ketimbang lumpur, atau memilih rute berkelok mengelilingi pegunungan untuk melewatinya

Gambar 8: Contoh graf dengan representasi sel Representasi dengan sel ini memiliki kelemahan untuk game yang bertipe RTS/RPG karena ukuran graf-nya yang bisa sangat besar, waktu pencarian yang relatif lama, dan akan memakan sejumlah besar ruang di memori. Untuk itu diperlukan beberapa teknik untuk menghindari hal ini tidak akan dibahas dalam makalah ini.

2.3. DEPENDENCY GRAPH Dependency graph digunakan di dalam game yang bertipe resource management untuk menggambarkan kebergantungan antara berbagai macam bangunan, material, unit, dan teknologi yang tersedia untuk pemain. Gambar di bawah ini memperlihatkan sebuah dependency graph sederhana

Gambar 9: Contoh sederhana

dependency graph

Jenis graf ini mempermudah pengembang/sistem untuk melihat persyaratan apa saja yang harus dipenuhi untuk membuat suatu jenis resource. Dependency graph sangat berguna untuk mendesain kecerdasan buatan untuk game yang bertipe seperti ini karena kecerdasan buatan dapat menggunakannya untuk memilih strategi yang cocok, memprediksi masa depan status lawan, dan menempatkan resource dengan efektif. Di bawah ini beberapa contoh kasus berdasarkan graph yang baru saja diperlihatkan:1.

Jika AI (kecerdasan buatan) akan menyiapkan pertempuran dan ia mengetahui bahwa tim pemanah merupakan solusi yang menguntungkan maka ia akan memeriksa dependency graph untuk menyimpulkan bahwa sebelum membuat pemanah, ia harus sudha membuat barak-nya terlebih dahulu dan harus sudah memiliki teknologi panahan.

Dia juga mengetahui bahwa sebelum memproduksi panah, ia sudah harus memiliki lumber mill untuk memproduksi kayu. Oleh karena itu, jika AI telah memiliki lumber mill, ia dapat menempatkan resource untuk memproduksi barak. Jika AI tidak memiliki barak dan lumber mill, maka ia harus memeriksa technology graph untuk lebih jauh untuk menentukan bahwa lebih menguntungkan untuk membangun barak daripada lumber mill dalam kondisi ini. Mengapa? Karena barak merupakan prasyarat untuk membangun tiga unit tempur, sedangkan lumber mill merupakan prasyarat untuk memproduksi kayu. Jika AI sudah mengetahui bahwa pertempuran sudah dekat, maka ia harus menyadari bahwa ia lebih baik membangun tiga unit tempur daripada membangun lumber mill.2.

Jika pasukan infantry musuh yang membawa senjata api datang ke wilayah kekuasaan AI, AI dapat menelisik ke dalam graf tadi bahwa: Musuh pasti sudah membangun pandai besi dan lumber mill Musuh pasti sudah mengembangkan teknologi bubuk mesiu Musuh sedang memproduksi kayu dan besi

Pemeriksaan lebih jauh ke dalam graf, dapat mengindikasikan bahwa musuh mungkin sudah memiliki meriam atau sedang memproduksinya. AI dapat menggunakan informasi ini untuk menentukan strategi penyerangna terbaik. Sebagai contoh, misalnya untuk menghindari lebih banyak lagi pasukan bersenjata musuh mendekati area kekuasaan AI, maka ia harus menghancurkan tempat pandai besi dan lumber mill milik musuh. AI juga dapat memproduksi assassin untuk menghancurkan pandai besi milik musuh agar musuh tidak dapat membuat pasukan lagi, maka ia harus menyediakan resource untuk membuat assassin.1.

Seringkali, sebuah unit menjadi kunci kemenangan dalam permainan. Jika biaya pembangunan unit ini dapat dilihat di dalam dependency graph, maka AI dapat memilih rute yang efisien untuk membangun unit ini.

2.4. STATE GRAPH State graph adalah representasi setiap kemungkinan state yang mungkin dicapai oleh sistem dan juga menggambarkan transisi di antara state-state tersebut. Kumpulan dari state-state ini biasa disebut dengan state space. Graf dengan jenis ini dapat dicari di dalamnya apakah suatu state mungkin ada atau untuk menemukan rute yang paling efisien untuk menuju ke suatu state. Contoh masalah sederhana untuk state graph adalah masalah Menara Hanoi

Gambar 10: Menara Hanoi Pada contoh sederhana ini, terdapat tiga buah pasak dan tiga buah piringan yang berbeda-beda ukurannya. Ketiga piringan ini diletakkan pada pasak A. Tujuan kita adlaah bagaimana memindahkan ketiga piringan ini ke pasak C dengan mengikuti aturan bahwa piringan yang lebih besar selalu di bawah piringan yang lebih kecil. Kita dapat merepresentasikan state space untuk masalah ini dengan menggunakan graf dimana setiap node pada graf tersebut menggambarkan state-state yang mungkin dicapai, dan setiap sisi menggambarkan trasnsisi dari satu state ke state yang lainnya. Graf ini

dibangun dengan cara pertama-tama membangun sebuah node yang merepresentasikan sebuah state awal dari masalah Menara Hanoi ini. Node ini disebut dengan root node. Root ini kemudian diperluas dengan menambahkan state-state yang dapat dicapai dari state tersebut. Lalu tiap state yang baru tersebut juga diperluas dan seterusnya sampai semua kemungkinan state dan transisi telah ditambahkan ke dalam graf. State sebelum suatu state dinamakan parent state, dan state setelah suatu state dinamakan child dari parent state.

Gambar di bawah ini memperlihatkan proses pembangunan graf tersebut.

Gambar 11: Tahapan pembangunan state graph masalahMenara Hanoi Graf ini bisa jadi bertambah rumit dengan cepat. Oleh karena itu di sini hanya digambarkan bagian yang menuju sebuah solusi. State graph dapat digunakan untuk mencari solusi dari suatu permasalahan. Dalam contoh ini, solusinya adalah ketika semua piringan telah berada dalam pasak C dengan sesuai dengan aturan yang berlaku, yaitu piringan yang lebih besar berada di bawah piringan

yang lebih kecil. Jumlah rata-rata child node yang tumbuh dari parent node disebut dengan branching factor. Untuk beberapa masalah, seperti contoh ini branching factor-nya relatif rendah, sehingga akan ada cukup ruang di memori untuk merepresentasikan semua state-nya. Untuk kebanyakan masalah/bidang, branching factor-nya relatif besar sehingga semua state-nya tidak mungkin dimuat ke dalam memori. Selain itu, waktu proses pencariannya juga akan sangat lama. Oleh karen itu, graf ini dipecah-pecah pada suatu node dan akan dikerjakan sendiri-sendiri secara paralel.

BAB III KESIMPULAN 3.1. KESIMPULAN Kesimpulan yang dapat diambil dari studi tentang penggunaan graf di dalam pengembangan game dengan kecerdasan buatan adalah:1.

Bermacam-macam representasi graf dapat digunakan untuk membangun struktur data dalam program untuk penerapan dalam game. Contoh representasi tersebut misalnya: matriks dan adjacency list

2.

Untuk navigasi atau pathfinding dalam game dengan kecerdasan buatan dapat digunakan graf untuk merepresentasikan setiap lokasi di dalam lingkungan game dan melakukan pencarian di dalam struktur graf itu sendiri.

3.

Untuk game yang bertipe resource management, dapat digunakan dependency graph untuk mengelola pengetahuan dari sistem kecerdasan buatan agar dapat digunakan untuk pengambilan keputusan, penaksiran, dan pengalokasian resource.

4.

State grpah dapat digunakan untuk meprepresentasikan setiap keadaan/state di dalam game yang mungkin dicapai oleh sistem. State-state ini menggambarkan keadaan sistem pada saat tertentu.

Representasi ini dapat digunakan untuk mencari solusi atas suatu permasalahan dalam game.5.

Penerapan graf beragam dan dapt berbedabeda dari suatu game ke game lainnya.

DAFTAR PUSTAKA [1] Munir, Rinaldi, Matematika Diskrit, Edisi Ketiga, Penerbit Informatika: Bandung, 2005. [2] Buckland, Mat, Programming Game AI by Example, Wordware Publishing, Inc, 2005.