Beruflich Dokumente
Kultur Dokumente
JUDUL
KECERDASAN BUATAN
Disusun Oleh:
TIM PELAKSANA
ii
Modul Praktikum – Kecerdasan Buatan
DAFTAR ISI
JUDUL .......................................................................................................................... i
TIM PELAKSANA ..................................................................................................... ii
DAFTAR ISI............................................................................................................... iii
DAFTAR TABEL........................................................................................................ v
DAFTAR GAMBAR .................................................................................................. vi
KATA PENGANTAR ............................................................................................... vii
BAB 1 KONSEP DASAR AI ............................................................................... 1
1.1 Tujuan ....................................................................................................... 1
1.2 Ringkasan Materi ...................................................................................... 1
1.3 Tugas Praktikum ....................................................................................... 3
BAB 2 AGEN CERDAS ....................................................................................... 4
2.1 Tujuan ....................................................................................................... 4
2.2 Ringkasan Materi ...................................................................................... 4
2.3 Percobaan .................................................................................................. 5
2.4 Tugas Praktikum ....................................................................................... 7
BAB 3 UNINFORM SEARCH ............................................................................ 8
3.1 Tujuan ....................................................................................................... 8
3.2 Ringkasan Materi ...................................................................................... 8
3.3 Percobaan ................................................................................................ 12
3.4 Contoh ..................................................................................................... 13
3.5 Latihan Praktikum ................................................................................... 24
3.6 Tugas Praktikum ..................................................................................... 27
BAB 4 INFORMED SEARCH ........................................................................... 28
4.1 Tujuan ..................................................................................................... 28
4.2 Ringkasan Materi .................................................................................... 28
4.3 Percobaan ................................................................................................ 33
4.4 Contoh ..................................................................................................... 34
4.5 Latihan Praktikum ................................................................................... 40
4.6 Tugas Praktikum ..................................................................................... 41
DAFTAR PUSTAKA ................................................................................................ 42
iii
Modul Praktikum – Kecerdasan Buatan
iv
Modul Praktikum – Kecerdasan Buatan
DAFTAR TABEL
v
Modul Praktikum – Kecerdasan Buatan
DAFTAR GAMBAR
vi
Modul Praktikum – Kecerdasan Buatan
KATA PENGANTAR
Alhamdulillah, puji syukur kehadirat Allah SWT karena atas rahmat dan
hidayah-Nya, tim pelaksana dapat menyelesaikan Modul Praktikum Kecerdasan
Buatan. Pada modul ini, lebih diarahkan untuk mencoba memahami dan mendalami
materi perkuliahan melalui kegiatan praktikum dengan melakukan review beberapa
aplikasi, kode program (dalam bentuk Library atau kode lainnya), khusus untuk materi
konsep yang memang tidak ada pembuatan kode program sama sekali. Kemudian
untuk materi yang memang ada implementasi kodingnya, dilakukan penjelasan lebih
detail di kegiatan praktikum, dan diberikan beberapa contoh kode program serta
memberikan case study untuk digunakan sebagai latihan, diskusi pembahasan dan
sekaligus tugas yang semuanya akan dimasukkan dalam modul. Diharapkan para
Praktikan mampu mencoba secara madiri maupun kelompok untuk setiap case study
yang diberikan oleh Asisten Dosen mapun Dosen pengampu MK Kecerdasan Buatan,
secara langsung.
Kami sadar bahwa modul praktikum ini masih banyak keterbatasan dan
pastinya masih sangat jauh dari kata sempurna dan diharapkan masukan dalam bentuk
kritik serta saran yang membangun untuk tetap menjaga kualitas dari materi yang
disampaikan terkait materi praktikum MK Kecerdasan Buatan. Demikain pengantar
dari kami, mohon maaf jika ada kesalahan dan kekhilafan. Semoga modul ini
bermanfaat bagi segenap praktikan. Selamat belajar.
vii
Modul Praktikum – Kecerdasan Buatan
B. Kategori AI
Terdapat 4 kategori AI secara umum yaitu acting like humans, thinking like hu-
mans, acting rationally and thinking rationally.
1
Modul Praktikum – Kecerdasan Buatan
2
Modul Praktikum – Kecerdasan Buatan
Buatlah sebuah ulasan dalam sebuah video tentang film-film yang mengandung
unsur kecerdasan buatan dan kemudian unggah pada Youtube dengan pengaturan pub-
lic. Durasi video ulasan tidak lebih dari 5 menit. Ulasan-ulasan tersebut bisa berisi
penjelasan-penjelasan karakter tokoh maupun alat yang digunakan dalam film tersebut
yang mengandung unsur kecerdasan di dalamnya.
3
Modul Praktikum – Kecerdasan Buatan
4
Modul Praktikum – Kecerdasan Buatan
Setiap agen yang diciptakan memiliki fungsi agen yang biasanya akan dil-
akukan pemetaan antara percept dan tindakannya. Dalam mendesain sebuah agen ra-
sional langkah pertama yang selalu dikakukan adalah menspesifikasikan lingkungan
kerja yang mungkin terjadi. Fungsi agen yang sudah dibuat berdasarkan lingkungan
kerjanya akan dibentuk sebuah program agen yang berjalan di arsitektur fisik dari agen
untuk menyelesaikan fungsi agen yang ada.
Terdapat 5 tipe agen cerdas yaitu: Simpel Reflex Agents agen ini merupakan
agen paling sederhana dimana agen hanya menerapkan teknik kondisi-aksi, Model-
Based Reflex Agents agen ini mampu melakukan pelacakan terhadap lingkungan
secara terus menerus sehingga lingkungan dapat dikesan dengan baik dan melakukan
tindakan seperti agen reflex sederhana, Goal-Based Agents agen mengetahui tujuan
yang ingin dicapai, sehingga agen akan bekerja terus menerus hingga tujuan agen
tercapai, Utility-Based Agents agen ini memikirkan kondisi yang baik untuk agen
sehingga agen dapat melakukan tugas jauh lebih baik, dan Learning agents merupa-
kan agen yang mampu belajar dari pengalaman, sehingga mampu meningkatkan
kinerja agen itu sendiri.
B. PEAS
Agen memiliki ukuran tertentu dalam kinerjanya (Performance Measure), ling-
kungan tempat bekerja (Environment), penggerak sebagai aksi dari suatu kejadian (Ac-
tuators), serta sensor-sensor sebagai penerima kondisi yang ada di lingkungannya
(Sensors). Lingkungan kerja (Task Environment) dari agen ini disingkat PEAS (Per-
formance measure, Environment, Actuators, Sensors). Sebagai contoh sebuah
automated taxi driver:
2.3 Percobaan
A. Agen Cerdas (Vacumm Cleaner)
Ketikkan program di bawah ini
5
Modul Praktikum – Kecerdasan Buatan
6
Modul Praktikum – Kecerdasan Buatan
B. Latihan Praktikum
Modifikasi kode program diatas sehingga dapat menyelesaikan task environment pada
Gambar 1.2.
Carilah 2 aplikasi dari 5 tipe agen (simple reflex agents, model-based reflex
agents, goal-based reflex agents, utility-based reflex agents dan Learning
agents). Berikan review masing-masing aplikasi, kenapa aplikasi tersebut masuk
pada tipe agen tertentu ?
7
Modul Praktikum – Kecerdasan Buatan
8
Modul Praktikum – Kecerdasan Buatan
9
Modul Praktikum – Kecerdasan Buatan
10
Modul Praktikum – Kecerdasan Buatan
11
Modul Praktikum – Kecerdasan Buatan
3.3 Percobaan
fringe←INSERT(MAKE-NODE(INITIAL-STATE[problem]),fringe)
loop do
if fringe is empty then return failure
node←REMOVE-FIRST(fringe)
if GOAL-TEST[problem]applied to STATE(node) succeeds then
return node
else
fringe←INSERT-ALL(EXPAND(node,problem),fringe)
end
Note:
- Fringe : Queue dari node yang belum diekspansi
- State : Keadaan yang direpresentasikan dengan node
- Expand : Membuat node baru dengan mengaplikasikan tindakan yang memung-
kinkan pada node
12
Modul Praktikum – Kecerdasan Buatan
3.4 Contoh
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package bfs;
/**
*
* @author cahkanor
*/
import java.util.ArrayList;
/**
* The Node class represents a station
* in this tutorial and will as such have
* a string representing the station's name.
13
Modul Praktikum – Kecerdasan Buatan
14
Modul Praktikum – Kecerdasan Buatan
}
if(this.middleChild2 != null) {
childNodes.add(middleChild2);
}
return childNodes;
}
BreadthFirstSearch.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package bfs;
/**
*
* @author cahkanor
*/
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
/**
15
Modul Praktikum – Kecerdasan Buatan
Node startNode;
Node goalNode;
if(this.startNode.equals(goalNode)){
System.out.println("Goal Node Found!");
System.out.println(startNode);
}
while(!queue.isEmpty()){
Node current = queue.remove();
if(current.equals(this.goalNode)) {
//System.out.println(explored);
explored.add(current);
System.out.println("Explored Node : ");
explored.stream().forEach((item) -> {
System.out.println(item.stationName+" ");
});
16
Modul Praktikum – Kecerdasan Buatan
return true;
}
else{
if(current.getChildren().isEmpty())
return false;
else
queue.addAll(current.getChildren());
}
explored.add(current);
}
return false;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package bfs;
/**
*
* @author cahkanor
*/
public class BFS {
/**
* @param args the command line arguments
17
Modul Praktikum – Kecerdasan Buatan
*/
public static void main(String[] args) {
// TODO code application logic here
Node station1 = new Node("Westminster", null, null);
Node station2 = new Node("Waterloo", station1, null);
Node station3 = new Node("Trafalgar Square", station1, station2);
Node station4 = new Node("Canary Wharf", station2, station3);
Node station5 = new Node("London Bridge", station4, station3);
Node station6 = new Node("Tottenham Court Road", station5, station4);
station1.leftChild = station2;
station1.rightChild = station3;
station2.middleChild = station3;
station2.rightChild = station4;
station3.middleChild = station4;
station3.middleChild2 = station5;
station4.middleChild = station5;
station4.middleChild2 = station6;
station5.middleChild = station6;
if(bfs.compute())
System.out.print("Path Found!");
}
18
Modul Praktikum – Kecerdasan Buatan
Output :
Explored Node :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
Tottenham Court Road
Westminster
Path Found!
Queue :
Keterangan : Node yang ditulis dengan huruf tebal adalah node yang diekspan
Node yang diberi garis bawah adalah node baru hasil ekspansi
Tottenham Court Road
Print :
Tottenham Court Road
Tottenham Court Road - London Bridge
Print :
Tottenham Court Road
London Bridge
Tottenham Court Road - London Bridge - Canary Wharf
Print :
Tottenham Court Road
London Bridge
19
Modul Praktikum – Kecerdasan Buatan
Canary Wharf
London Bridge - Canary Wharf
London Bridge - Canary Wharf - Canary Wharf
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
London Bridge - Canary Wharf - Canary Wharf - Trafalgar Square
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
London Bridge - Canary Wharf - Canary Wharf - Trafalgar Square - Tottenham Court
Road
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Canary Wharf - Canary Wharf - Trafalgar Square - Tottenham Court Road
Canary Wharf - Canary Wharf - Trafalgar Square - Tottenham Court Road - Waterloo
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Waterloo
20
Modul Praktikum – Kecerdasan Buatan
Canary Wharf - Canary Wharf - Trafalgar Square - Tottenham Court Road - Waterloo
- Trafalgar Square
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Waterloo
Trafalgar Square
Canary Wharf - Canary Wharf - Trafalgar Square - Tottenham Court Road - Waterloo
- Trafalgar Square – London Bridge
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
Canary Wharf - Canary Wharf - Trafalgar Square - Tottenham Court Road - Waterloo
- Trafalgar Square – London Bridge - Tottenham Court Road
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
21
Modul Praktikum – Kecerdasan Buatan
22
Modul Praktikum – Kecerdasan Buatan
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
Canary Wharf - Trafalgar Square - Tottenham Court Road - Waterloo - Trafalgar
Square – London Bridge - Tottenham Court Road – Waterloo - Trafalgar Square -
London Bridge - Tottenham Court Road
Print :
Tottenham Court Road
London Bridge
Canary Wharf
Canary Wharf
Trafalgar Square
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
Tottenham Court Road
Waterloo
Trafalgar Square
London Bridge
Tottenham Court Road
Trafalgar Square - Tottenham Court Road - Waterloo - Trafalgar Square – London
Bridge - Tottenham Court Road – Waterloo - Trafalgar Square - London Bridge - Tot-
tenham Court Road
23
Modul Praktikum – Kecerdasan Buatan
24
Modul Praktikum – Kecerdasan Buatan
b. 8-Puzzle Problem
c. 4-Queens problem
d. Simple Pac-Man
e. Vacuum World
25
Modul Praktikum – Kecerdasan Buatan
f. Route Finding
26
Modul Praktikum – Kecerdasan Buatan
27
Modul Praktikum – Kecerdasan Buatan
28
Modul Praktikum – Kecerdasan Buatan
a. MiniMax
Algoritma Minimax merupakan algoritma yang digunakan untuk menentukan
pilihan untuk memperkecil kemungkinan kehilangan nilai maksimal dengan menerap-
kan prinsip DFS untuk pencariannya. Algoitma ini diterapkan dalam permainan yang
melibatkan dua pemain seperti tic tac toe, checkers, go dan permainan yang
menggunakan strategi atau logika lainnya. Algoritma minimax digunakan untuk
memilih langkah terbaik, dimana kedua pemain akan saling berusaha
untuk memenangkan permainan, sehingga apabila terdapat pemain yang mengalami
keuntungan, pemain lain akan mengalami kerugian senilai dengan keuntungan yang
diperoleh lawan dan sebaliknya.
Algoritma minimax akan merepresentasikan pohon dengan 2 simpul, yaitu min
node dan max node, dimana min node akan membandingkan semua nilai anaknya dan
memilih nilai terendah yang dimiliki anaknya dan max node akan membandingkan
semua nilai yang dimiliki anaknya dan memilih nilai terbesar yang dimiliki anaknya.
Dalam penentuan langkah yang diambil untuk mendapatkan hasil maksimal,
dibutuhkan fungsi heuristic sebagai nilai yang merepresentasikan hasil permainan
yang akan terjadi jika langkah tersebut dipilih, seperti 1,0,-1.
12 Max node
-5 12 Min node
41 -5 12 90 Leaf node
29
Modul Praktikum – Kecerdasan Buatan
terbaik yang bisa diambil pemain Min. Pruning dilakukan ketika simpul yang sedang
dicek pada pemain Max, yaitu n, memiliki skor yang lebih rendah daripada alpha,
maka n tidak perlu dicek lagi pada proses selanjutnya. Hal yang sama juga dilakukan
pada pemain Min dengan menggunakan nilai beta.
10
10 <=7
>=12 10 ? ? ?
12 ? 10 5 ? ?
? ?
30
Modul Praktikum – Kecerdasan Buatan
Nilai sebenarnya g(n), adalah nilai “jarak” antara simpul akar dengan simpul saat
ini.
Simpul awal disebut juga simpul akar, adalah simpul pertama dalam pohon yang
akan dibentuk.
Simpul sekarang (current node) adalah simpul yang sedang dievaluasi dengan
fungsi evaluasi untuk ditentukan apakah layak atau tidak menjadi solusi.
Kandidat (suksesor) adalah simpul selanjutnya yang hendak diperiksa.
Open list, adalah daftar simpul yang mungkin diakses dari simpul awal atau
simpul yang sedang dijalankan.
Close list, adalah daftar simpul yang saat ini menjadi solusi sementara, yaitu solusi
terbaik saat ini
Simpul tujuan, adalah simpul yang hendak menjadi tujuan akhir
f(n) = h(n)
dimana :
f(n) : fungsi evaluasi
h(n) : estimasi biaya dari n untuk sampai pada tujuan
31
Modul Praktikum – Kecerdasan Buatan
A A A
E (4) F (6)
Step 4
B C (5) D
e. A* Search
A star merupakan salah satu algoritma pencarian Best First Search terbaik yang
mampu menemukan jalur dengan biaya pengeluaran paling sedikit dari titik permulaan
yang diberikan sampai ke titik tujuan yang diharapkan. Dalam metode A star, fungsi f
sebagai estimasi fungsi evaluasi terhadap node n, dapat dituliskan :
dimana :
f(n) : fungsi evaluasi (jumlah g(n) dengan h(n) )
g(n) : biaya (cost) yang dikeluarkan dari keadaan awal sampai keadaan n
h(n) : estimasi biaya untuk sampai pada tujuan
f. Hill Climbing
Hill Climbing merupakan sebuah metode pencarian dengan menerapkan proses
pengujian untuk setiap simpul yang dibangkitkan dengan menggunakan fungsi
32
Modul Praktikum – Kecerdasan Buatan
4.3 Percobaan
Pseudocode metode Gredy Best First Search
DEKLARASI VARIABEL
type simpul
parent : simpul
heuristik : integer
ch : list of simpul type
solusi: simpul
function GreedyBFS(S: list of simpul) list of solusi {
fungsi untuk mengembalikan solusi dari himpunan simpul}
DEKLARASI KAMUS
sol : himpunan_solusi
stemp : simpul
ALGORITMA
stemp= akar S
while stemp bukan daun do
bangkitkan anak stemp
pilih anak yang nilainya paling optimal
sol sol ∪ anakstemp
S S-stemp
stemp anakstemp
endwhile
return sol
33
Modul Praktikum – Kecerdasan Buatan
4.4 Contoh
Berikut adalah potongan program penyelesaian masalah maze/labirin
menggunakan Greedy Best-First Search. Dengan heuristic function menggunakan eu-
clidian distance berikut adalah contoh labirin yang digunakan
0 1 2 3 4 5 6 7
╔═╦═╦═╦═╦═╦═╦═╦═╗
0 ║ ║ ║
╠ ╬ ╬ ╬═╬ ╬═╬═╬ ╣
1 ║ ║ ║ ║ ║
╠ ╬═╬═╬ ╬ ╬ ╬═╬ ╣
2 ║ ●║ ║ ║ ║
╠ ╬ ╬ ╬═╬═╬ ╬═╬ ╣
3 ║ ║ ║ ║ ║ ║
╠ ╬ ╬ ╬ ╬ ╬ ╬═╬ ╣
4 ║ ║ ║ ║ ║ ║ ║ ║ ║
╠ ╬═╬ ╬ ╬ ╬ ╬ ╬ ╣
5 ║ ║ ║ ║ ║
╠ ╬═╬═╬═╬ ╬ ╬═╬ ╣
6 ║ ║ ║ ║ ║
╠ ╬═╬ ╬ ╬═╬═╬ ╬ ╣
7 ║ ║ ║ ║ ║■║
╚═╩═╩═╩═╩═╩═╩═╩═╝
Dengan tanda { ■ }sebagai goal, dan { ● } initial / start. Berikut adalah
potongan program yang dibutuhkan.
34
Modul Praktikum – Kecerdasan Buatan
35
Modul Praktikum – Kecerdasan Buatan
40 {
41 rooms[r.current.x][r.current.y + 1].parent =
42 new Pair(r.current.x, r.current.y);
43 queue.add(rooms[r.current.x][r.current.y +
44 1]);
45 }
46 if(r.s && !visitedList.contains(rooms[r.current.x
47 + 1][r.current.y]) && !queue.contains(rooms[r.current.x +
48 1][r.current.y]))
49 {
50 rooms[r.current.x + 1][r.current.y].parent =
51 new Pair(r.current.x, r.current.y);
52 queue.add(rooms[r.current.x + 1][r.cur-
53 rent.y]);
54 }
55 if(r.w && !visitedList.contains(rooms[r.cur-
56 rent.x][r.current.y - 1]) && !queue.contains(rooms[r.cur-
57 rent.x][r.current.y - 1]))
58 {
59 rooms[r.current.x][r.current.y - 1].parent =
60 new Pair(r.current.x, r.current.y);
61 queue.add(rooms[r.current.x][r.current.y -
62 1]);
63 }
64 if(r.n && !visitedList.contains(rooms[r.current.x
65 - 1][r.current.y]) && !queue.contains(rooms[r.current.x -
66 1][r.current.y]))
67 {
68 rooms[r.current.x - 1][r.current.y].parent =
69 new Pair(r.current.x, r.current.y);
70 queue.add(rooms[r.current.x - 1][r.cur-
71 rent.y]);
72 }
73 }
74 }
75
76 }
36
Modul Praktikum – Kecerdasan Buatan
37
Modul Praktikum – Kecerdasan Buatan
Satu blok menyatakan 1 petak labirin yang menggambarkan arah mata angin
NESW (North – East – South – West)
Apabila angka tersebut dirubah menghasilkan labirin seperti gambar pada con-
toh diatas.
0 1 2 3 4 5 6 7
╔═╦═╦═╦═╦═╦═╦═╦═╗
0 ║┌─┐║ ║
╠│╬│╬ ╬═╬ ╬═╬═╬ ╣
1 ║│║└───┐║ ║┌───┐║
╠│╬═╬═╬│╬ ╬│╬═╬│╣
2 ║└─●║ ║└───┘ ║│║
╠ ╬ ╬ ╬═╬═╬ ╬═╬│╣
3 ║ ║ ║ ║ ║ │║
╠ ╬ ╬ ╬ ╬ ╬ ╬═╬│╣
4 ║ ║ ║ ║ ║ ║ ║ ║│║
╠ ╬═╬ ╬ ╬ ╬ ╬ ╬│╣
5 ║ ║ ║ ║ │║
╠ ╬═╬═╬═╬ ╬ ╬═╬│╣
6 ║ ║ ║ ║│║
╠ ╬═╬ ╬ ╬═╬═╬ ╬│╣
7 ║ ║ ║ ║ ║■║
╚═╩═╩═╩═╩═╩═╩═╩═╝
Dalam program diatas menjelaskan bahwa permasalahan labirin ini diselesaikan
dengan menggunakan algoritma Greedy Best-First Search. Algoritma ini ditunjukkan
38
Modul Praktikum – Kecerdasan Buatan
39
Modul Praktikum – Kecerdasan Buatan
A G D
F E
b. 8-puzzle problem
start goal
c. 8-queen problem
X
O X X
O O
40
Modul Praktikum – Kecerdasan Buatan
3. Sesuai dengan graph beserta informasi g(n) & h(n) yang telah anda definisikan
pada jawaban soal nomor 1 a, carilah rute dari kota A ke kota D secara manual
menggunakan :
a. Greedy BFS
b. A*
41
Modul Praktikum – Kecerdasan Buatan
DAFTAR PUSTAKA
42