U N I V E R S I T A S G U N A D A R M A
PRAKTIKUM PENGANTAR KECERDASAN BUATAN
Ditulis Guna Melengkapi Sebagian Syarat
Praktikum Pengantar Kecerdasan Buatan Jenjang S1
Universitas Gunadarma
2013
MANUAL BOOK
“Flamingo Fish”
Nama : Prastika Dedyana
NPM : 55411559
Fakultas : Teknologi Industri
Jurusan : Teknik Informatika
Penanggung Jawab : Andi Shahreza
1
DAFTAR ISI
Bahasa dan Program Editor ................................................................................................ 2
Initial State .......................................................................................................................... 2
Rules ................................................................................................................................... 5
Goal .................................................................................................................................... 6
Konsep AI ............................................................................................................................ 8
Listing Program ................................................................................................................... 9
Ouput Program .................................................................................................................. 14
Daftar Pustaka .................................................................................................................. 17
Glosarium .......................................................................................................................... 18
2
BAHASA DAN PROGRAM EDITOR
Permainan Flamingo Fish ini merupakan sebuah permainan yang
menggunakan bahasa pemrograman prolog. Kemudian perangkat lunak yang
digunakan sebagai program editornya adalah Strawberry Prolog. Permainan
Flamingo Fish ini merupakan suatu permainan yang diadaptasi dari permainan
matches yang terdapat dalam Strawberry Matches.
INITIAL STATE
Permainan Flamingo Fish ini merupakan suatu permainan logika dimana user
(pemain) melawan komputer untuk memenangkan permainan ini. Game ini melatih
dan mengasah otak user untuk berpikir mengenai strategi yang digunakan agar
dapat mengalahkan komputer. Pemain harus dapat menerapkan strategi yang tepat
untuk memenangkan permainan ini.
Gambar 1. Tampilan awal game “Flamingo Fish”
Initial State yang digunakan sebagai acuan untuk membuat aplikasi Flamingo
Fish adalah background yang digunakan sebagai papan permainannya dengan
ukuran dimensi 750x460. Objek yang digunakan sebagai shape yaitu sebuah gambar
ikan berukuran dimensi 50x28 berjumlah 12 untuk level easy, 18 untuk level
medium, dan 24 untuk level hard. Gambar ikan tersebut diubah guna untuk
3
menggantikan objek korek api pada matches yang sesungguhnya. Pada permainan
ini, ikan pada setiap level akan bertambah dan bentuknya pun akan berubah. Pada
permainan tersebut, terdapat pula beberapa menu, yaitu :
1) Level : Terdapat tiga level yang dapat dipilih oleh user dalam memainkan
permainan tersebut, yaitu Easy, Medium, dan Hard.
2) Musik : Menu musik ini berfungsi sebagai media yang dibuat agar user dapat
mendengarkan musik saat bermain agar tidak bosan. Musik yang disediakan
berjumlah 3 lagu, yaitu Moondance – Michael Buble, Sunrise – Norah Jones,
dan Hot Air Balloon – Owl City.
3) Instruction : Berisi mengenai rules singkat yang digunakan untuk memainkan
permainan Flamingo Fish.
4) About Me : Berfungsi sebagai penampil identitas dari pengembang (editor)
game Flamingo Fish.
5) Exit : Menu ini digunakan untuk mengakhiri dan keluar dari permainan.
Formasi yang digunakan pada setiap level berbeda-beda. Berikut ini adalah
tampilan dari setiap level :
1. Level Easy
Gambar 2. Susunan Level Easy
5
RULES
Rules atau aturan main yang digunakan pada permainan Flamingo Fish ini adalah
sebagai berikut :
1. Permainan ini diawali dengan memilih level sesuai dengan yang user
inginkan. Jika user belum pernah bermain game seperti ini, user disarankan
untuk memilih level easy.
2. Jika user ingin mendengarkan musik saat bermain, maka user dapat meng-
klik menu “Musik” dan memilih lagu yang dinginkan. Kemudian akan muncul
jendela windows media player untuk memutar lagu yang dipilih oleh user.
3. Setelah itu, user diberikan kebebasan untuk memulai game dengan cara
memilih dan meng-klik ikan yang tersedia, dan selanjutnya akan diteruskan
oleh AI (lawan).
4. Pemain dapat mengambil objek ikan sebanyak mungkin dengan syarat ikan
tersebut masih dalam satu kolom dengan susunan objek ikan yang dipilih.
5. Jumlah ikan yang diambil dapat ditentukan dengan cara perhitungan dari
puncak kolom dan mengklik batas dasar jumlah ikan yang berada
dibawahnya.
6. AI akan melakukan pembelajaran untuk menghalangi user untuk tidak
mencapai Goal (tujuan). AI juga melakukan pembelajaran untuk
memenangkan permainan ini guna menyingkirkan user.
7. Goal (tujuan) dari game ini adalah berusaha untuk tidak mengambil sisa ikan
yang terakhir.
6
GOAL
Goal untuk menyelesaikan game Flamingo Fish pada strawberry prolog ini
adalah pemain harus terlebih dahulu mengambil objek yang ada dan dalam
pengambilan objek tersebut, jumlah objek yang akan diambil tidak dibatasi. Hal yang
harus dilakukan adalah membuat lawan untuk tidak mendahului pemain sebelum
pemain melakukan pengambilan objek tersebut. Pemain akan kalah apabila pemain
mengambil objek yang paling akhir. Berikut ini adalah gambaran untuk goal dari
permainan flamingo fish :
Gambar 5. Tampilan pada saat user memenangkan permainan
8
KONSEP AI
Artificial Intelligence atau AI dalam bahasa Indonesia artinya Kecerdasan
Buatan yaitu kecerdasan yang ditunjukkan oleh suatu entitas ilmiah. Kecerdasan
dibuat dan dimasukkan ke dalam suatu mesin atau komputer supaya bisa melakukan
pekerjaan seperti yang bisa dikerjakan oleh manusia. Contohnya adalah kemampuan
untuk menjawab diagnosa dan pertanyaan pelanggan, perencanaan dan
penjadwalan, pengendalian, serta pengenalan tulisan tangan, suara dan wajah. Hal-
hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian
pada penyediaan solusi masalah di kehidupan yang nyata. Terdapat macam-macam
bidang yang menggunakan kecerdasan buatan diantaranya yaitu: game komputer,
sistem pakar, jaringan syaraf tiruan, logika fuzzy dan robotika.
Kecerdasan buatan atau yang sering disebut dengan AI pada game ini terletak
pada komputer yang akan bertindak sebagai lawan. Komputer akan selalu berusaha
mengalahkan user. Komputer dapat menyusun strateginya sendiri agar menjadi
pemenang. Permainan Flamingo Fish ini menggunakan algoritma-algoritma sebagai
berikut :
1) Backtracking
Algoritma yang digunakan untuk mencari solusi yang lebih mangkus dengan
berbasis pada DFS. Backtracking bisa dikatakan sebagai perbaikan dari
algoritma brute force dan exhaustive search, yang secara sistematis mencari
solusi persoalan diantara semua kemungkinan yang ada. Semua kemungkinan
solusi dibuat dalam bentuk pohon (tree) terlebih dahulu, kemudian dengan
menggunakan metode DFS dilakukan pencarian sampai solusi ditemukan.
2) DFS
Pencarian mendalam pertama. Pada DFS, proses pencarian akan dilakukan
pada semua anaknya sebelum dilakukan ke node-node yang selevel.
Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi
terus hingga ditemukannya solusi.
9
LISTING PROGRAM
?-
G_Comp_First=0,
G_Take_Last=0,
G_background is bitmap_image("Image\\bg.bmp",_),
G_fish is bitmap_image("Image\\cartoon-fish.bmp",_),
pen(0,0),
window_n(G_Main, _, win_func, "Flamingo Fish",
100,100,770,525,_,_,rgb(255,255,255)),
message("Flamingo Fish", "Welcome, please help me to
find fishes but please do not take the last one or I will
die.", i),
write("OK"),nl.
% Membuat menu tab
win_func(init) :-
menu( pop_up, _, _, menu_level(_), "&Level"),
menu( pop_up, _, _, menu_music(_), "&Music"),
menu( normal, _, _, menu_help(_), "&Instruction"),
menu( normal, _, _, menu_about(_), "&About Me"),
menu( normal, _, _, menu_exit(_), "&Exit").
% Membuat menu untuk level
menu_level(init):-
menu(normal,_,_,menu_easy(_),"&Easy"),
menu(normal,_,_,menu_medium(_),"&Medium"),
menu(normal,_,_,menu_hard(_),"&Hard").
% Membuat menu untuk music
menu_music(init):-
menu(normal,_,_,menu_music1(_),"&Moondance"),
menu(normal,_,_,menu_music2(_),"&Sunrise"),
menu(normal,_,_,menu_music3(_),"&Hot Air Balloon").
% Menu Easy
menu_easy(press) :-
(G_Comp_First=0->
set(pos([1,2,3,3,2,1]))
else
Pos=[1,2,3,3,2,1],
N is 2*random(1),
el(Pos,A, N),
A2 is A - 4,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
10
% Menu Medium
menu_medium(press) :-
(G_Comp_First=0->
set(pos([2,3,4,4,3,2]))
else
Pos=[2,3,4,4,3,2],
N is 2*random(3),
el(Pos,A, N),
A2 is A - 3,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
% Menu Hard
menu_hard(press) :-
(G_Comp_First=0->
set(pos([5,4,3,3,4,5]))
else
Pos=[5,4,3,3,4,5],
N is 2*random(5),
el(Pos,A, N),
A2 is A - 1,
replace(Pos2, Pos, A2, N),
set(pos(Pos2))),
update_window(_).
% Memanggil & menampilkan isi dari sub menu "Music"
menu_music1(press) :-
shell_execute("Music\\15 Moondance.mp3").
menu_music2(press) :-
shell_execute("Music\\Sunrise.mp3").
menu_music3(press) :-
shell_execute("Music\\Owl City - Hot Air Balloon.mp3").
% Memanggil gambar sebagai background
win_func(paint):-
draw_bitmap(0,0,G_background,_,_),
pos(Pos),
el(Pos,El,N),
for(I,1,El),
% Jarak antara masing-masin item
X is 100+100*N,
Y is 255-40*I,
% Untuk bentuk item
draw_bitmap(X,Y,G_fish,_,_),
fail.
11
% Area mouse click
win_func(mouse_click(X,Y)):-
X1 is (X-50)//100,
Y1 is (255-Y)//40,
X1=<6,X>=40,
pos(Pos),
el(Pos,El,X1),
El>Y1,
replace(Pos2, Pos, Y1, X1),
rect(100*X1+40,0,100*X1+40,265- 40*Y1),
(Pos2=[0,0,0,0,0,0]->
set(pos(Pos2)),
end(0)
else
wait(0.5),
play(Pos3, Pos2),
(Pos3=[0,0,0,0,0,0]->
end(1)),
set(pos(Pos3))),
update_window(_).
win_func(mouse_click(X,Y)):-
beep.
% Inti program AI
play(Pos3, Pos2):-
G_Take_Last=0,
count_successes(not_trivial(Pos2))<2,
find_max(Pos2,Max,N),
New is (Max>1,count_successes(not_empty(Pos2)) mod
3=:=1 -> 1 else 0),
replace(Pos3, Pos2, New, N).
play(Pos3, Pos2):-
el(Pos2,A, N),
R:=0,
add_xor(R,Pos2,N),
R<A,
replace(Pos3, Pos2, R, N).
play(Pos3, Pos2):-
find_max(Pos2,Max,N),
Max2 is (Max>1, random(2)=:=0 ->
Max - 2
else
Max - 1),
replace(Pos3, Pos2, Max2, N).
not_empty(Pos):-
el(Pos,A, _),
A>0.
not_trivial(Pos):-
12
el(Pos,A, _),
A>1.
el([H|T],H,0).
el([H|T],El,N):-
el(T,El,N1),
N is N1+1.
replace([H|T],[_|T],H,0).
replace([H|T2],[H|T],El,N):-
replace(T2,T,El,N1),
N is N1+1.
find_max([H],H,0).
find_max([H|T],A, N) :-
find_max(T,A1,N1),
(A1<H->
A is H,
N is 0
else
A is A1,
N is N1+1).
add_xor(_,[],_):-!.
add_xor(R,[H|T],0):- !,
add_xor(R, T, -1).
add_xor(R,[H|T],N):-
N1 is N- 1,
R:=R xor H,
add_xor(R, T, N1).
end(Flag):-
Flag=G_Take_Last->
message("Sorry","You lose the game",i)
else
message("Congratulation","You are the winner",!).
% Deklarasi menu help
menu_help(press) :-
message("Instruction","Click under the fishes which you
want to take. You can take how much you want but only
from one column.", i).
% Deklarasi menu about
menu_about(press):-
message("About Me"," Game Prolog : Flamingo Fish
\n Kelas : 3IA15 \n NPM : 55411559 \n Create
By : Prastika Dedyana \n\n UNIVERSITAS
GUNADARMA", i).
13
% Deklarasi menu exit
menu_exit(press) :-
message("Exit","Thank you for playing Flamingo
Fish.",i),
write("OK"),nl,
close_window(_).
17
DAFTAR PUSTAKA
1. Pengertian Artificial Intelligence. [Online] Tersedia:
http://temukanpengertian.blogspot.com/2013/08/pengertian-artificial-
intelligence.html [5 November 2013, 17:50]
2. Badriya. 2012. Algoritma Matches. [Online] Tersedia: http://task-
campus.blogspot.com/2012/05/algoritma-matches-strawberry-prolog.html
[5 November 2013, 18:05]
3. Jaringan Komputer Algoritma Routing. [Online] Tersedia: http://biraman-
dianto.blogspot.com/2009/01/jaringan-komputer-algoritma-routing.html [5
November 2013, 18:23]
4. Syuryadinata. Andi. 2013. Pengertian Algoritma BFS & DFS dan Contoh
Program Menggunakan Algoritma BFS & DFS. [Online] Tersedia:
http://andi0309.blogspot.com/2013/05/pengertian-algoritma-bfs-dfs-dan-
contoh.html [5 November 2013, 18:27]
18
GLOSARIUM
- Backtracking adalah algoritma yang digunakan untuk mencari solusi yang lebih
mangkus dengan berbasis pada DFS. Backtracking bisa dikatakan sebagai perbaikan
dari algoritma brute force dan exhaustive search, yang secara sistematis mencari
solusi persoalan diantara semua kemungkinan yang ada.
- DFS (Depth-First Search) adalah pencarian mendalam pertama. Pada DFS, proses
pencarian akan dilakukan pada semua anaknya sebelum dilakukan ke node-node
yang selevel.
- AI (Artificial Intellegence) adalah kecerdasan buatan yang ditunjukkan oleh suatu
entitas ilmiah. Kecerdasan dibuat dan dimasukkan ke dalam suatu mesin atau
komputer supaya bisa melakukan pekerjaan seperti yang bisa dikerjakan oleh
manusia.