Anda di halaman 1dari 32

LAPORAN RESMI

TUGAS MATA KULIAH


KECERDASAN BUATAN
TUGAS 3

OLEH:
WISNU HADI S (0934010144)
RAKHMAD SATRIYA (0934010159)
DIQY SEVTYAN (0934010161)
DOSEN :
BIMO GUMELAR, S. KOM
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONALVETERANJAWA TIMUR
2011
KATA PENGANTAR

Puji syukur kehadirat Allah Yang Maha Esa atas limpahan Hidayah- Nya serta
Rahmad-Nya, sehingga kami dapat menyelesaikan Tugas Ke 3 Mata Kuliah Kecerdasan
Buatan Pernyataan Gerbang Logika,Mencari 10 Algoritma Dalam Informatika dan
Jaringan Semantik.
Penyusunan Tugas ini ditujukan sebagai syarat untuk mengikuti Mata Kuliah
Kecerdasan Buatan. Tugas ini diharapkan dapat memberikan solusi bagi Mahasiswa terutama
Mahasiswa dalam bidang IT, dalam hal mendalami tentang Kecerdasan Buatan.
Semoga Laporan Resmi ini bermanfaat bagi Mahasiswa terutama dalam bidang IT
agar memahami lebih jelas tentang pernyataan Gerbang Logika,Algoritma Dalam Informatika
Dan Jaringan Semantik. Terima kasih kami ucapkan kepada semua pihak yang telah
membantu dalam bentuk materi dan saran, serta dibuat dengan segala masukan dan
kekurangan yang telah diberikan pada kami sehingga Laporan ini dapat selesai.
Kami berharap kepada semua pihak dengan segala kritik dan saran yang bersifat
membangun, sangat Kami harapkan untuk dimasa yang akan datang agar bisa
menyempurnakan makalah ini, sebab makalah ini masih banyak kekurangannya.




Surabaya, 25 Oktober 2011


Penulis


BAB 1
PENDAHULUAN

1.1 LATAR BELAKANG
Logika sebagai ilmu pengetahuan merupakan sebuah ilmu pengetahuan di mana obyek
materialnya adalah berpikir (khususnya penalaran/proses penalaran) dan obyek formal logika
adalah berpikir/penalaran yang ditinjau dari segi ketepatannya.
Representasi Logika - Representasi ini menggunakanekspresi-ekspresi dalam logika formal
untuk merepresentasikan basis pengetahuan.Representasi logika terdiri dari dua jenis
yaituKalkulus proposisional (Propositional logic) danKalkulus predikatif (Predicate logic).
Kalkulus Proposisional (Propositional Logic).Proposisi adalah suatu model untuk
mendeklarasikansuatu fakta. Lambang-lambang proposisional menunjukkan proposisi atau
pernyataantentang segala sesuatu yang dapat benar atausalah.
Dalam matematika dan komputasi, algoritma atau algoritme merupakan kumpulan perintah
untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara
bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan
untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan
algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi
kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah
pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai
tugasnya selesai.
Jaringan semantik merupakan salah satu yang dipelajari dalam materi Artificial Inteligence
(Kecerdasan Buatan) . Dalam jaringan semantik terdapat gambaran pengetahuan grafis yang
menunjukkan hubungan antar berbagai objek, terdiri dari lingkaran-lingkaran yang
dihubungkan dengan anak panah yang menunjukkan objek dan informasi tentang objek-objek
tersebut.

1.2 MASALAH
Dari latar belakang di atas didapat beberapa masalah, antara lain:
1. Apakah Representasi Logika itu?
2. Apa yang dimaksud Algoritma dalam pemrograman khususnya di Informatika?
3. Apa yang dimaksud dengan Jaringan Semantik beserta contohnya?


1.3 TUJUAN
Dalam membuat laporan ini, kami mempunyai beberapa tujuan, yaitu:
1. Mengetahui bagaimana pernyataan dari Representasi Logika.
2. Mengetahui lebih lanjut mengenai Algoritma.
3. Mengetahui lebih lanjut tentang Jaringan Semantik berikut contohnya.

1.4 MANFAAT
Selain itu, diharapkan laporan ini dapat mempunyai banyak manfaat, antara lain:
1. Mengetahui tentang pernyataan dari Representasi Logika.
2. Menambah informasi tentangAlgoritma dalam pemrograman khususnya di
Informatika.
3. Bisa menerapkan Jaringan Semantik.

BAB II
LANDASAN TEORI

2.1 REPRESENTASI LOGIKA
Representasi Pengetahuan (Knowledge Representation)dimaksudkan untuk menangkap sifat-
sifatpenting masalah dan membuat infomasidapat diakses oleh prosedur pemecahanmasalah.
Bahasa representasi harus dapat membuatseorang programmer mampu
mengekspresikanpengetahuan untuk mendapatkan solusi suatumasalah.
Secara singkat Mylopoulos dan Levesquemengklasifikasikan susunan atau pola representasi
menjadi empat katagori :
1. Representasi Logika - Representasi ini menggunakan ekspresi-ekspresi dalam
logika formaluntuk merepresentasikan basis pengetahuan.
2. Representasi Prosedural Menggambarkan pengetahuan sebagai sekumpulan
instruksi untuk memecahkan suatu masalah. Dalam sistem yang berbasis aturan,
aturan if-then dapat ditafsirkan sebagai sebuah prosedur untuk mencapai tujuan
pemecahan masalah.
3. Representasi Network - Menangkap pengetahuansebagai sebuah graf dimana
simpul-simpulnyamenggambarkan obyek atau konsepdalam masalah yang dihadapi,
sedangkanlengkungan-lengkungannya menggambarkanhubungan atau asosiasi antar
mereka.Contohnya adalah jaringan semantik.
4. Representasi Terstruktur - Memperluas networkdengan cara membuat setiap
simpulnya menjadisebuah struktur data kompleks yang berisitempat-tempat
bernama slot dengan nilai-nilaitertentu. Nilai-nilai ini dapat merupakan
datanumerik atau simbolik sederhana, pointer kebingkai (frame) lain, atau bahkan
merupakanprosedur untuk mengerja kan tugas tertentu.Contoh : skrip (script),
bingkai (frame) danobyek (object).
Representasi logika terdiri dari dua jenis yaitu Kalkulus proposisional (Propositional
logic) dan Kalkulus predikatif (Predicate logic).
Kalkulus Proposisional (Propositional Logic)Proposisi adalah suatu model untuk
mendeklarasikan suatu fakta. Lambang-lambang proposisional menunjukkan proposisi atau
pernyataan tentang segala sesuatu yang dapat benar atausalah.
Lambang-lambang kalkulus proposisional :
1. Lambang pernyataan proposisionalP,Q,R,S,T,... (disebut sebagai atom-atom)
2. Lambang kebenaranbenar (True) , salah (False)
3. Lambang penghubung konjungsi,disjungsi,negasi,implikasi,Bi-implikasi,equivalen.


BAB III
PEMBAHASAN DAN IMPLEMENTASI

3.1 PROPOSITION LOGIC
1.Konjungsi (AND)
Konjungsi adalah suatu pernyataan majemuk yang menggunakan perakit "dan".
Contoh pernyataan nya adalah sebagai berikut:
Diqy makan nasi dan minum kopi
Pernyataan tersebut ekivalen dengan dua pernyataan tunggal berikut:
" Diqy makan nasi." dan sekaligus " Diqy minum kopi."
dalam hal mana pernyataan di atas bernilai benar dan dalam hal mana bernilai salah dalam
empat kasus berikut, yaitu:
(1) Diqy memang benar makan nasi dan ia juga minum kopi.
(2) Diqy makan nasi namun ia tidak minum kopi.
(3) Diqy tidak makan nasi namun ia minum kopi.
(4) Diqy tidak makan nasi dan ia tidak minum kopi.
Pada kasus pertama,Diqy memang benar makan nasi dan ia juga minum kopi.Dalam
kasus seperti ini, tidaklah mungkin Anda akan mengatakan pernyataan tadi bernilai salah.
Alasannya, pernyataan tadi sesuai dengan kenyataannya.
Pada kasus kedua,Diqy makan nasi namun ia tidak minum kopi. Dalam hal ini,tentunya
Anda akan menyatakan bahwa pernyataan tersebut majemuk.pernyataan tadi bernilai salah
karena meskipun Diqy sudah makan nasi namun ia tidak minum kopi.
Pada kasus ketiga, Diqy tidak makan nasi meskipun ia sudah minum kopi. Sebagaimana
kasus kedua tadi, Anda akan menyatakan bahwa pernyataan tersebut majemuk tadi bernilai
salah karena Diqy tidak makan nasi sebagaimana yang dinyatakan bahwa Diqy makan nasi
dan minum kopi.
Pada kasus keempat, Diqy tidak makan nasi dan ia tidak minum kopi. Dalam hal ini
Anda akan menyatakan bahwa pernyataan tersebut majemuk.pernyataan tadi bernilai salah
karena tidak ada kesesuaian antara yang dinyatakan dengan kenyataan yang sesungguhnya.
Berdasar penjelasan di atas, dapatlah disimpulkan bahwa suatu konjungsi p
bernilai benar hanya jika komponen-komponennya, yaitu baik p maupun q, keduanya
bernilai benar, sedangkan nilai kebenaran yang selain itu akan bernilai salah.
Sebagaimana ditunjukkan pada tabel kebenaran berikut:
P Q P ^ Q
T T T
T F F
F T F
F F F

2.DISJUNGSI (OR)
Disjungsi adalah pernyataan majemuk yang menggunakan perakit "atau".
Contoh pernyataan nya adalah sebagai berikut:
"Diqymakannasiatauminum kopi."
Sekarang dalam hal mana pernyataan di atas akan bernilai benar dalam empat kasus berikut,
yaitu:
(1) Diqy memang benar makan nasi dan ia juga minum kopi.
(2) Diqy makan nasi namun ia tidak minum kopi.
(3) Diqy tidak makan nasi namun ia minum kopi.
(4) Diqy tidak makan nasi dan ia tidak minum kopi.
Pada kasus pertama, Diqy memang benar makan nasi dan ia juga minum kopi. Dalam
kasus seperti ini, tidaklah mungkin Anda akan mengatakan pernyataan tadi bernilai salah,
karena pernyataan tadi sesuai dengan kenyataannya.
Pada kasus kedua,Diqy makan nasi namun ia tidak minum kopi. Dalam hal ini, tentunya
Anda akan menyatakan bahwa pernyataan majemuk tadi bernilai benar karena Diqy sudah
benar makan nasi meskipun ia tidak minum kopi sebagaimana yang dinyatakan.
Pada kasus ketiga, Diqy tidak makan nasi namun ia minum kopi. Sebagaimana kasus
kedua tadi, Anda akan menyatakan bahwa pernyataan majemuk tadi bernilai benar karena
meskipun Diqy tidak makan nasi namun ia sudah minum kopi sebagaimana yang dinyatakan.
Pada kasus keempat, Diqy tidak makan nasi dan ia tidak minum kopi. Dalam hal ini Anda
akan menyatakan bahwa pernyataan majemuk tadi bernilai salah karena tidak ada kesesuaian
antara yang dinyatakan dengan kenyataan yang sesungguhnya.

Pernyataan menyatakan Diqy makan nasi atau minum kopi namun kenyataannya,Diqy tidak
melakukan hal itu.
Berdasar penjelasan di atas, dapatlah disimpulkan bahwa suatu disjungsi p
bernilai salah hanya jika komponen-komponennya, yaitu baik p maupun q, keduanya bernilai
salah, yang selain itu akan bernilai benar sebagaimana ditunjukkan pada tabel kebenaran
berikut:
P Q P v Q
T T T
T F T
F T T
F F F

3.Implikasi
Misalkan ada dua pernyataan p dan q. Yang sering menjadi perhatian para ilmuwan maupun
matematikawan adalah menunjukkan atau membuktikan bahwa jika p bernilai benar akan
mengakibatkan q bernilai benar juga. Untuk mencapai keinginannya tersebut,diletakkanlah
kata "Jika" sebelum pernyataan pertama lalu diletakkan juga kata "maka" diantara
pernyataan pertama dan pernyataan kedua, sehingga didapatkan suatu pernyataan majemuk
yang disebut dengan implikasi, pernyataan bersyarat, kondisional atau hypothetical dengan
notasi "" seperti ini: p
Berikut ini adalah contoh pernyataan:
Jika hari hujan maka Diqy membawa payung.
Dalam hal ini dimisalkan:
p: Hari hujan.
q: Diqy membawa payung.
Dalam hal manakah pernyataan tadi akan bernilai benar atau salah untuk empat kasus
berikut, yaitu:
1) Hari benar-benar hujan dan Diqy benar-benar membawa payung.
2) Hari benar-benar hujan namun Diqy tidak membawa payung.
3) Hari tidak hujan namun Diqy membawa payung.
4) Hari tidak hujan dan Diqy tidak membawa payung.

Pada kasus pertama, hari benar-benar hujan dan Diqy benar-benar membawa payung
sebagaimana yang ia nyatakan. Bagaimana mungkin ia akan dinyatakan berbohong dalam
kasus ini? Dengan demikian jelaslah bahwa kedua komponen yang sama-sama bernilai benar
itu telah menyebabkan pernyataan majemuk (implikasi) yang dinyatakan tadi akan bernilai
benar.
Pada kasus kedua, hari itu benar-benar hujan akan tetapi Diqy tidak membawa payung
sebagaimana yang seharusnya ia lakukan seperti yang telah dinyatakannya, bagaimana
mungkin pernyataan Diqy tadi akan dinilai benar? Dengan kata lain, komponen p yang
bernilai benar namun tidak diikuti dengan komponen q yang seharusnya bernilai benar juga,
akan menyebabkan pernyataan majemuk (implikasi) yang dinyatakan tadi akan bernilai
salah.
Akhirnya, untuk kasus ketiga dan keempat, di mana hari itu tidak hujan, tentunya Anda
tidak akan menyebut pernyataan majemuk (implikasi) tersebut sebagai pernyataan yang
salah, karena Diqy hanyalah menyatakan bahwa sesuatu akan terjadi yaitu dia akan
membawa payung jikalau hari hujan. Dengan demikian jelaslah bahwa implikasi p
hanya akan bernilai salah untuk kasus kedua di mana p bernilai benar namun q-nya bernilai
salah, sedangkan yang selain itu implikasi p
tabel kebenaran berikut ini:
P Q P Q
T T T
T F F
F T T
F F T

4.Biimplikasi
Biimplikasi atau bikondisional adalah pernyataan majemuk dari dua pernyataan p dan q
yang dinotasikan dengan p
dapat dibaca: "p jika dan hanya jika q" atau "p bila dan hanya bila q.
Tabel kebenaran dari p :




P Q P Q
T T T
T F F
F T F
F F T
Dengan demikian jelaslah bahwa biimplikasi dua pernyataan p dan q hanya akan bernilai
benar jika kedua pernyataan tunggalnya bernilai sama.
Contoh biimplikasi:
(1) Suatusegitigaadalahsegitigasiku-sikujikadanhanyajikaluaspersegipada
Hipotenusan nyasamadenganjumlahluasdaripersegi-persegipadakeduasisi yang lain.
(2) Suatu segitiga adalah segitiga sama sisi bila dan hanya bila ketiga sisinya sama.

3.2 ALGORITMA DALAM INFORMATIKA
3.2.1 AlgoritmaGenetika
Algoritma Genetika adalah algoritma yang memanfaatkan proses seleksi alamiah yang
dikenal dengan proses evolus yang dikembangkan dari proses pencarian solusi menggunakan
pencarian acak, ini terlihat pada proses pembangkitan populasi awal yang menyatakan
sekumpulan solusi yang dipilih secara acak.Berikutnya pencarian dilakukan berdasarkan
proses-proses teori genetika yang memperhatikan pemikiran bagaimana memperoleh individu
yang Lebih baik, sehingga dalam proses evolusi dapat diharapkan diperoleh individu yang
terbaik.
Struktur umum dari suatu algoritma genetika dapat didefinisikan dengan langkah-langkah
sebagai berikut:
1. Membangkitkan populasi awal, Populasi awal ini dibangkitkan secara random
sehingga didapatkan solusi awal. Populasi itu sendiri terdiri dari sejumlahkromosom
yang merepresentasikan solusi yang diinginkan.
2. Membentuk generasi baru, Dalam membentuk digunakan tiga operator yang telah
disebut di atas yaitu operator reproduksi/seleksi, crossover dan mutasi.Proses ini
dilakukan berulang-ulang sehingga didapatkan jumlah kromosomyang cukup untuk
membentuk generasi baru dimana generasi baru in merupakan representasi dari solusi
baru.
3. Evaluasi solusi, Proses ini akan mengevaluasi setiap populasi dengan menghitung
nilai fitness setiap kromosom dan mengevaluasinya sampaiterpenuhi kriteria berhenti.
Bila kriteria berhenti belum terpenuhi maka akandibentuk lagi generasi baru dengan
mengulangi langkah 2.
Beberapa kriteria berhenti yang sering digunakan antara lain:
1. Berhenti pada generasi tertentu.
2. Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness
tertinggi tidak berubah.
3. Berhenti bila dalam n generasi berikut tidak didapatkan nilai fitness yanglebih tinggi

Cross Over (Pindah Silang) merupakan salah satu operator dalam algoritma genetika yang
melibatkan dua induk untuk menghasilkan keturunan yang baru.
Cross over dilakukan dengan melakukan pertukaran gen dari dua induk secara acak.
Macam-macam Cross-Over yang banyak digunakan antara lain:
1. pertukaran gen secara langsung dan
2. pertukaran gen secara aritmatika.
3. Proses cross over dilakukan pada setiap individu dengan probabilitas crossover
yang ditentukan.
Mutasi Gen merupakan operator yang menukar nilai gen dengan nilai inversinya, misalnya
gennya bernilai 0 menjadi 1. Setiap individu mengalami mutasi gen dengan probabilitas
mutasi yang ditentukan. Mutasi dilakukan dengan
memberikan nilai inversi atau menggeser nilai gen pada gen yang terpilih untuk
dimutasikan.
Algoritma genetik yang umum menyaratkan dua hal untuk didefinisikan:
1. representasi genetik dari penyelesaian
2. fungsi kemampuan untuk mengevaluasinya.
Siklus Algoritma Genetika

Gambar 1: Siklus Algoritma Genetika
Hal-hal yang harus dilakukan untuk menggunakan Algoritma Genetika yaitu :
1. Mendefinisikan individu, dimana individu menyatakan salah satu solusi
(penyelesaian) yang mungkin dari permasalahan yang diangkat.
2. Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah
individu atau baik-tidaknya solusi yang didapatkan.
3. Menentukan proses pembangkitan populasi awal. Hal ini biasanya dilakukan
dengan menggunakan pembangkitan acak seperti random-walk.
4. Menentukan proses seleksi yang akan digunakan.
5. Menentukan proses perkawinan silang (cross-over) dan mutasi gen yang akan
digunakan.

CONTOH
Evolusi pada ikan,generasi yang terbaik akan bertahan dan menciptakan generasi
baru.dimana generasi yang lemah tersingkir.


Populasi ikan 20 ekor,makanan 40 buah. Ikan terbaik 26 ekor,medium 14 ekor

Gambar 2:Generasi 0 Gambar 3:Generasi 15
Ikan terbaik 51 ekor,medium 32 ekor Ikan terbaik 64 ekor,medium 44 ekor

Gambar 4:Generasi 234 Generasi 5: Generasi 1200
3.2.2 Algoritma Insertion Sort
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua
bagian, yang belum diurutkan (meja pertama) dan yang sudah diurutkan (meja kedua).
Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan
sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan
secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum
diurutkan.
CONTOH
Gambar 6: Contoh insertion sort
3.2.3 Algoritma Selection Sort
Mari kita menelusuri bagaimana algoritma ini berfungsi terhadap satu paketkartu. Asumsikan
bahwa kartu tersebut akan diurutkan secara ascending. Padaawalnya, kartu tersebut akan
disusun secara linier pada sebuah meja dari kiri kekanan, dan dari atas ke bawah. Pilih nilai
kartu yang paling rendah, kemudiantukarkan posisi kartu ini dengan kartu yang terletak pada
pojok kiri atas meja. Lalucari kartu dengan nilai paling rendah diantara sisa kartu yang
tersedia. Tukarkankartu yang baru saja terpilih dengan kartu pada posisi kedua. Ulangi
langkah langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan
dandapat digeser dengan kartu yang bernilai lebih rendah.Ide utama dari algoritma selection
sort adalah memilih elemen dengan nilai palingrendah dan menukar elemen yang terpilih
dengan elemen ke-i. Nilai dari i dimulaidari 1 ke n, dimana n adalah jumlah total elemen
dikurangi 1.
CONTOH
Gambar 7:Contoh selection sort
3.2.4 Algoritma Merge Sort
Sebelum mendalami algoritma merge sort, mari kita mengetahui garis besar dari konsep
divide and conquer karena merge sort mengadaptasi pola tersebut.
Pola Divide and Conquer
Beberapa algoritma mengimplementasikan konsep rekursi untuk menyelesaikan
permasalahan. Permasalahan utama kemudian dipecah menjadi sub-masalah, kemudian solusi
dari sub-masalah akan membimbing menuju solusi permasalahan utama.Pada setiap tingkatan
rekursi, pola tersebut terdiri atas 3 langkah.
1. Divide
Memilah masalah menjadi sub masalah.Memilah elemen elemen dari rangkaian data
menjadi dua bagian.
2. Conquer
Selesaikan sub masalah tersebut secara rekursif. Jika sub-masalah tersebut cukup ringkas dan
sederhana, pendekatan penyelesaian secara langsung akan lebih efektif.Conquer setiap bagian
dengan memanggil prosedur merge sort secara rekursif



3. Kombinasi
Mengkombinasikan solusi dari sub-masalah, yang akan membimbing menuju penyelesaian
atas permasalahan utama.Mengkombinasikan dua bagian tersebut secara rekursif untuk
mendapatkan rangkaian data berurutan.

CONTOH

Gambar 8: Contoh Merge Sort
3.2.5 Algoritma Quicksort
Quicksort ditemukan oleh C.A.R Hoare. Seperti pada merge sort, algoritma ini jugaberdasar
pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma inihanya mengikuti
langkah langkah sebagai berikut :
1. Divide
Memilah rangkaian data menjadi dua sub-rangkaian A[pq-1] dan A[q+1r] dimana setiap
elemen A[pq-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada
A[q+1r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai
elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur
pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif Pada algoritma quicksort, langkah
kombinasi tidak di lakukan karena telah terjadi pengurutan elemen elemen pada sub-
array.

CONTOH


Gambar 9: Contoh Quick Sort

3.2.6 ALGORITMA DYNAMICPROGRAMMING
Dynamic Programming merupakan sebuah algoritmapemecahan masalah dengan cara
menguraikan solusimenjadi sekumpulan langkah (step) atau tahapan (stage)sedemikian
sehingga solusi dai persoalan dapat dipandangdari serangkaian keputusan yang saling
berkaitan. Pada penyelesaian metode in kita menggunakan persyaratan
optimasi dan kendala untuk membatasi sejumlah pilihanyang harus dipertimbangkan pada
suatu tahap.Algoritma Dynamic Programming memiliki
karakteristik sebagai berikut.
1. Persoalan dapat dibagi mejadi beberapatahap(stage), yang pada setiap tahap hanya
diambilsatu keputusan yang optimal.
2. Masing-masing tahap terdiri dari sejumlahstatus(state) yang berhubungan dengan
tahaptersebut.
3. Hasil keputusan yang diambil pada tahapditransformasikan dari status yang
bersangkutan kestatus berikutnya pada tahap berikutnya.
4. Ongkos (cost) pada suatu tahap bergantung padaongkos tahap-tahap sebelumnya dan
meningkatsecara teratur dengan bertambahnya jumlah tahapan
5. Keputusan terbaik pada suatu tahap bersifatindependen terhadap keputusan yang
dilakukantahap sebelumnya.
6. Adanya hubungan rekursif yangmengidentifikasikan keputusan terbaik untuk
setiapstatus pada tahap k memberikan keputusan terbaik untuk tahap sebelumnya.
7. Prinsip optimalitas berlaku pada persoalan tersebut.
Ciri utama dari dynamic programming adalah prinsip optimalitas yang berbunyi : jika solusi
total optimal, maka bagian solusi sampai tahap ke-k juga optimal.
Dari karakteristik poin ke-4 di atas, kita dapat menyimpulkan bahwa algoritma Dynamic
Programming dapat diaplikasikan apabila peningkatkan ongkos secara linear dan diskrit
sehingga optimasi parsial dapat dilakukan.Dalam menyelesaikan persoalan dengan Dynamic
Programming, kita dapat menggunakan 2 pendekatan berbeda yaitu:
Maju (forward atau up-down) : bergerak mulai dari tahap 1, terus maju ke tahap
2,3,..,n. Urutan variabel keputusan adalah x1,x2,...,xn
Mundur(backward atau bottom-up) : bergerak mulai dari tahap n, terus mundur ke
tahap n-1,n-2,..,2,1. Urutan variabel keputusan adalah xn xn-1,x2,x1.
Secara umum ada 4 langkah yang dilakukan dalam mengembangkan algoritma program
dinamis:
1. Karakteristikkan struktur solusi optimal.
2. Definisikan secara rekursif nilai solusi optimal.
3. Hitung nilai solusi optimal secara maju atau mundur.
4. Konstruksi solusi optimal.

CONTOH
METODE PERHITUNGAN EDIT DISTANCE MENGGUNAKAN DYNAMIC
PROGRAMMING.
Pada permasalahan string edit distance ini, nilai edit distance D menjadi ongkos (cost) yang
harus dicari solusi optimum parsial maupun globalnya. Misalnya, diketahui 2
buah yaitu string W dan string V, di mana W = W1...Wi merupakan string yang akan
diperbaiki, dan V = V1...Vj merupakan string yang akan dihitung nilai edit distancenya
terhadap string W, maka persamaan umum rekursif dari edit distance dengan menggunakan
algoritma Dynamic Programming prinsip pendekatan maju (forward
atau up-down) dapat kita bentuk sebagai berikut.

Untuk persoalan ini, kita tentukan nilai mismatch penalty P(i, j) = 0 ,jika Wi = Vj dan P(i, j) =
1, jika Wi Vj ,serta nilai gap penalty d (i, j) = 1,jika ada karakter -, dan
d (i, j) = 0 ,jika tidak ada.Pada bagian rekurens, persamaan (1) menunjukkan bahwa perlu
dilakukan penggantian (substitution) jika Wi Vj agar karakter Wi = Vj . Sedangkan,
persamaan (2) menunjukkan bahwa perlu dilakukan pemasukkan
karakter (insertion) serta persamaan (3) menunjukkan bahwa perlu dilakukan penghapusan
karakter (deletion).Untuk menyimpan nilai-nilai edit distance dari setiap
langkahnya, maka kita bentuk suatu matriks M berdimensi m x n dimana m=[panjang(V) +1]
dan n=[panjang(W) + 1] dimana M[0,0] merupakan tempat untuk menyimpan nilai basis
yaitu 0.

Tabel 1: Matriks Nilai Edit Distance Tabel 2: langkah Penetuan Nilai Matrik M[0,J]


Tabel 3:Langkah Penentuan Nilai Matrik M[1,J]
Jika langkah-langkah tersebut dilanjutkan dengan cara yang sama hingga langkah terakhir
yaitu langkah ke-5, maka...


Tabel 4:Langkah Penentuan Nilai Matrik M[4,J]
Selanjutnya, kita akan melakukan konstruksi solusi optimal yang dibaca nilai D(4,4). Maka,
solusi-solusi optimal parsial yang dipilih untuk membentuk solusi optimal global adalah
sebagai berikut.

Tabel 5:Konstruksi Solusi Optimal
Dengan demikian, edit distance dari V=PARKterhadap W=PARL bernilai D(i,j) = 1.
Penggunaan algoritma Dynamic Programming untuk
kasus ini, jika dilihat dari langkah-langkah yang sudah dibentuk di atas, langkah -langkah
tersebut berupa traversal matriks M yang berdimensi m x n. Sedangkan,nilai edit distance
yang ditentukan dilakukan dengan sendirinya akibat sifat rekursifitas persamaan edit distance
yang dibentuk. Oleh karena itu, kompleksitas dari penggunaan algoritma ini sebesar O(mn),
lebih baik dari metode penyelesaian masalah dengan exhaustive search.Untuk melihat
perbedaan nilai edit distance jika string PARL dibandingkan dengan string yang
lain,sekarang kita definisikan V=SPEAK dan W=PARL.Dalam hal ini, i j dan ada d (i, j)
= 1, karena panjang(V ) panjang(W) . Langkah-langkah penentuan nilai edit distance dan
juga konstruksi solusi optimalnya
tidak dijelaskan secara mendetail karena keterbatasan waktu dan tempat. Namun, kita dapat
menentukan nilai edit distance dari string V=PEARL terhadap W=PARL menurut definisi
yaitu sebagai berikut.

Apabila teknik ini diimplementasikan pada aplikasi word processor ataupun search engine,
maka program akan memberikan feedback berupa string W dengan nilai
D(PARL, W) yang paling kecil, dimana W merupakan kumpulan string yang ada pada
database.Jadi, jika kita merujuk ke contoh di atas, program word processor akan mengoreksi
string PARL denganPARK, bukan dengan PEARL. Begitu juga pada
Search Engine Google. Google, misalnya, akan memberikan feedback berupa pertanyaan
Did you mean PARK ?. Ini dikarenakan nilai D(PARL,
PARK)<D(PARL,PEARL).

Kesimpulan yang bisa ditarik dari penggunaan algoritma Dynamic Programming untuk kasus
String Edit Distance adalah bahwa algoritma ini bekerja cukup baik
dengan kompleksitas yang lebih kecil dari metode exhaustive search dan tingkat akurasi
pencarian solusi optimal yang lebih tinggi dari algoritma greedy. Namun, akibat penggunaan
fungsi cost yang bersifat rekursif,maka akan menyebabkan penggunaan kapasitas yang cukup
besar terhadap memori internal komputer saatmengeksekusi fungsi ini. Selama tidak ada
permasalahan yang berkenaan dengan kapasitas memori internal,algoritma Dynamic
Programming merupakan pilihan yang paling sesuai.Penerapan algoritma Dynamic
Programming untuk mencari solusi masalah String Edit Distance banyakdigunakan untuk
memecakan berbagai kasus yang serupa,khususnya di bidang disiplin ilmu
Bioinformatika.Beberapa perluasan dari metode tersebut diterapkan pada analisis sequens
DNA atau protein. Sekuen DNA yang terdiri dari kombinasi basa ATCG, dapat dibandingkan
dengan sekuen lain.
3.2.7 Algoritma Brute force
Brute force adalah sebuah pendekatan yang sangat jelas(straightforward) untuk memecahkan
suatu persoalan, biasanya didasarkan pada problem statement dan definisi konsep yang
dilibatkan.
Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan
cara yang jelas .
Cara kerja Algoritma Brute Force:
1. Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis.
2. Evaluasi setiap kemungkinan solusi satu per satu dan simpan solusi terbaik yang
ditemukan sampai sejauh ini (the best solusi found so far).
3. Bila pencarian solusi berakhir, umumkan solusi terbaik (the winner)
Karakteristik Algoritma Brute Force:
1. Algoritma brute force sebenarnya bukanlah algoritma yang cerdas dan
mangkus(efisien), karena ia membutuhkan jumlah langkah yang besar/banyak dalam
penyelesaiannya dan tentu saja membutuhkan waktu yang berbanding lurus dengan
jumlah langkah penyelesaiannya. Kadang-kadang algoritma brute force disebut juga
algoritma naif (nave algorithm).
2. Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena
ketidakmangkusannya itu, tapi kalau mencari pola2 dasar, keteraturan, atau trik-trik
khusus, biasanya dapat membantu membantu untuk menemukan algoritma yang lebih
cerdas dan lebih mangkus lagi.
3. Untuk persoalan2 yang kecil, kesederhanaan brute force lebih diperhitungkan
daripada ketidakmangkusannya. Algoritma brute force sering digunakan sebagai basis
bila membandingkan beberapa alternatif algoritma yang mangkus.
4. Meskipun brute force bukan merupakan teknik pemecahan masalah yang mangkus,
namun teknik brute force dapat diterapkan pada sebagian besar persoalan.
Bayangkan..,sangat sulit menemukan masalah yang tidak dapat dipecahkan dengan
teknik brute force, tapi ada masalah yang hanya dapat dipecahkan secara brute force.
CONTOH
Algoritma bubble sort mengimplementasikan teknik brute force dengan jelas sekali. Berikut
contoh persoalan sorting yang dipecahkan dengan algoritma bubble sort:

Setelah kita lihat lagi algoritma diatas, sangat mudah dimengerti. Dengan melooping
sebanyak isi array lalu menukarkan nilainya, jika ada nilai yang lebih kecil berada di bawah
nilai yang lebih besar, lalu melooping lagi untuk sebanyak jumlah isi array untuk memastikan
seluruh kondisi di-cek satu per satu dan menukarkan nilainya kembali jika masih terdapat
kondisi seperti diatas dan seterusnya sampai selesai.

3.2.8 Algoritma Ant colony
Ant Colony System (ACS) adalah sebuah metodologi yang dihasilkan melalui pengamatan
terhadap semut. Pada algoritma ACS, semut berfungsi sebagai agen yang ditugaskan untuk
mencari solusi terhadap suatu masalah optimisasi. ACS telah diterapkan dalam berbagai
bidang, salah satunya adalah untuk mencari solusi optimal pada Traveling Salesman Problem
(TSP). Dengan memberikan sejumlah n titik, TSP dapat didefinisikan sebagai suatu
permasalahan dalam menemukan jalur terpendek dengan mengunjungi setiap titik yang ada
hanya sekali.
Karakteristik Ants Colony System (ACS)
Terdapat tiga karakteristik utama dari ACS, yaitu : Aturan transisi status, Aturan pembaruan
pheromone lokal, Aturan pembaruan pheromone global.
1. Aturan transisi status
Aturan transisi status yang berlaku pada ACS adalah sebagai berikut: seekor semut yang
ditempatkan pada titik t memilih untuk menuju ke titik v, kemudian diberikan bilangan
pecahan acak q dimana 0q1, q0 adalah sebuah parameter yaitu Probabilitas semut
melakukan eksplorasi pada setiap tahapan, dimana (0 q01) dan pk (t,v) adalah probabilitas
dimana semut k memilih untuk bergerak dari titik t ke titik v.


dimana (t,u) adalah nilai dari jejak pheromone pada titik (t,u) , (t,u) adalah fungsi heuristik
dimana dipilih sebagai invers jarak antara titik t dan u, merupakan sebuah parameter yang
mempertimbangkan kepentingan relatif dari informasi heuristic, yaitu besarnya bobot yang
diberikan terhadap parameter informasi heuristik, sehingga solusi yang dihasilkan cenderung
berdasarkan nilai fungsi matematis.
parameter adalah 0. Pheromon adalah zat kimia yang berasal dari kelenjar endokrin dan
digunakan oleh makhluk hidup untuk mengenali sesama jenis, individu lain, kelompok, dan
untuk membantu proses reproduksi. Berbeda dengan hormon, pheromon menyebar ke luar
tubuh dapat mempengaruhi dan dikenali oleh individu lain yang sejenis (satu spesies). Proses
peninggalan pheromon ini dikenal sebagai stigmergy, sebuah proses memodifikasi
lingkungan yang tidak hanya bertujuan untuk mengingat jalan pulang ke sarang, tetapi juga
memungkinkan para semut berkomunikas dengan koloninya. Seiring waktu, bagaimanapun
juga jejak pheromon akan menguap dan akan mengurangi kekuatan daya tariknya, sehingga
jejak pheromon harus diperbaharui. Pada ACS pembaruan pheromon dibagi menjadi 2, yaitu:
Aturan pembaruan pheromon lokal, Aturan pembaruan pheromon global.
2. Aturan pembaruan pheromon lokal
Selagi melakukan tur untuk mencari solusi dari TSP, semut mengunjungi ruas-ruas dan
mengubah tingkat pheromon pada ruas-ruas tersebut dengan menerapkan aturan pembaruan
pheromon lokal yang ditunjukkan oleh persamaan (3)

dimana :
Lnn = panjang tur yang diperoleh
c = jumlah lokasi
= parameter dengan nilai 0 sampai 1
= perubahan pheromon
adalah sebuah parameter (koefisien evaporasi), yaitu besarnya koefisien penguapan
pheromon . Adanya penguapan pheromone menyebabkan tidak semua semut mengikuti jalur
yang sama dengan semut sebelumnya. Hal ini memungkinkan dihasilka solusi alternatif yang
lebih banyak. Peranan dari aturan pembaruan pheromone lokal ini adalah untuk mengacak
arah lintasan yang sedang dibangun, sehingga titik-titik yang telah dilewati sebelumnya.
oleh tur seekor semut mungkin akan dilewati kemudian oleh
tur semut yang lain. Dengan kata lain, pengaruh dari pembaruan lokal ini adalah untuk
membuat tingkat ketertarikan ruas-ruas yang ada berubah secara dinamis: setiap kali seekor
semut menggunakan sebuah ruas maka ruas ini dengan segera akan berkurang tingkat
ketertarikannya (karena ruas tersebut kehilangan sejumlah pheromon-nya), secara tidak
langsung semut yang lain akan memilih ruas-ruas lain yang belum dikunjungi.
Konsekuensinya, semut tidak akan memiliki kecenderungan untuk berkumpul pada jalur yang
sama. Fakta ini, yang telah diamati dengan melakukan percobaan [Dorigo dan Gambardella,
1997]. Merupakan sifat yang diharapkan bahwa jika semut membuat tur-tur yang berbeda
maka akan terdapat kemungkinan yang lebih tinggi dimana salah satu dari mereka akan
menemukan solusi yang lebih baik daripada mereka semua berkumpul dalam tur yang sama.
Dengan cara ini, semut akan membuatpenggunaan informasi pheromon menjadi lebih baik
tanpa pembaruanlokal, semua semut akan mencari pada lingkungan yang sempit dari tur
terbaik yang telah ditemukan sebelumnya.
3.Aturan pembaruan pheromon global
Pada sistem ini, pembaruan pheromon secara global hanya dilakukan oleh semut yang membuat
tur terpendek sejak permulaan percobaan. Pada akhir sebuah iterasi, setelah semua semut
menyelesaikan tur mereka, sejumlah pheromon ditaruh pada ruas-ruas yang dilewati oleh seekor
semut yang telah menemukan tur terbaik (ruas-ruas yang lain tidak diubah). Tingkat pheromon
itu diperbarui dengan menerapkan aturan pembaruan pheromon global yang ditunjukkan oleh
persamaan (4).


Dimana :
(t,v) = nilai pheromone akhir setelah mengalami pembaharuan lokal
gb L = panjang jalur terpendek pada akhir siklus
= parameter dengan nilai antara 0 sampai 1
= perubahan pheromone
bernilai jika ruas (t,v) merupakan bagian dari rute terbaik namun jika sebaliknya . adalah
tingkat kepentingan relatif dari pheromon atau besarnya bobot yang diberikan terhadap
pheromon, sehingga solusi yang dihasilkan cenderung mengikuti sejarah masa lalu dari semut
dari perjalanan sebelumnya, dimana nilai parameter adalah 0, dan Lgb adalah panjang
dari tur terbaik secara global sejak permulaan percobaan. Pembaruan pheromon global
dimaksudkan untuk memberikan pheromon yang lebih banyak pada tur-tur yang lebih
pendek. Persamaan (3) menjelaskan bahwa hanya ruas-ruas yang merupakan bagian dari tur
terbaik secara global yang akan menerima penambahan pheromone.

CONTOH
Sama halnya dengan cara kerja semut dalam mencari jalur yang optimal, untuk mencari jalur
terpendek dalam penyelesaian masalah Traveling Salesman Problem (TSP) diperlukan
beberapa lngkah untuk mendapatkan jalur yang optimal, antara lain :

1. Menentukan pheromone awal masing- masing semut. Tapi sebelum itu tentukan terlebih
dahulu banyaknya semut dalam proses tersebut, setelah itu tentukan titik awal masing-
masing semut.
2. Setelah itu tentukan titik selanjutnya yang akan dituju, ulangi proses sampai semua titik
terlewati. Dengan menggunakan persamaan 1 atau 2 dapat ditentukan titik mana yang
akan dituju, yaitu dengan :
Jika q q 0 maka pemilihan titik yang akan dituju menerapkan aturan yang ditunjukkan
oleh persamaan (1).

Dengan

jika titik yang dimaksud bukanlah titik yang akan akan dilalui, maka
kembali ke titik sebelumnya.
3. Apabila telah mendapatkan titik yang dituju, pheromone masing-masing pada titik
tersebut diubah dengan menggunakan persamaan 3, yaitu :


dimana :
Lnn = panjang tur yang diperoleh
c = jumlah lokasi
= parameter dengan nilai 0 sampai 1
= perubahan pheromone
Perubahan pheromon tersebut dinamakan perubahan pheromon lokal.
4. Setelah proses diatas selesai, hitung panjang lintasan masing-masing semut.
5. Kemudian akan didapatkan panjang lintasan yang minimal.
6. Ubah pheromone pada titik-titik yang yang termuat dalam lintasan tersebut.
7. Setelah semua proses telah dilalui, maka akan didapatkan lintasan dengan panjang
lintasan yang minimal.



Berikut ini adalah algoritma ACS


3.2.9 Algoritma Greedy
Algoritma greedy adalah algoritma yang memecahkan masalah langkah demi langkah, pada
setiap langkah:
1. mengambil pilihan yang terbaik yang dapat diperoleh saat itu
2. berharap bahwa dengan memilih optimum loklal pada setiap langkah akan mencapai
optimum global.
Algoritma greedy mengasumsikan bahwa optimum lokal merupakan bagian dari optimum
global.Prinsip algoritma greedy adalah: take what you can get now!. Ambil apa yang anda
peroleh sekarang!Prinsip ini juga dipakai dalam pemecahan masalah
optimasi. Dalam kehidupan sehari-hari, kita juga pernah menggunakan prinsip greedy,
misalnya:
a. Memilih jurusan di Perguruan Tinggi
b. Memilih jalur tersingkat dari Bandung ke Jakarta.

Skema Umum Algoritma Greedy
Persoalan optimasi dalam konteks algoritma greedy
disusun oleh elemen-elemen sebagai berikut:
1. Himpunan kandidat, C.Himpunan ini berisi elemen-elemen pembentuk solusi. Pada
setiap langkah, satu buah kandidat diambil dari himpunannya.
2. Himpunan solusi, S.Merupakan himpunan dari kandidat-kandidat yang terpilih
sebagai solusi persoalan. Himpunan solusi adalah himpunan bagian dari himpunan
kandidat.
3. Fungsi seleksi dinyatakan sebagai predikat SELEKSI merupakan fungsi yang
pada setiap langkah memilih kandidat yang paling mungkin untuk mendapatkan solusi
optimal. Kandidat yang sudah dipilih pada suatu langkah tidak pernah
dipertimbangkan lagi pada langkah selanjutnya.
4. Fungsi kelayakan (feasible) dinyatakan dengan predikat LAYAK merupakan
fungsi yang memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan
solusi yang layak, yakni kandidat tersebut bersama-sama dengan himpunan solusi
yang sudah terbentuk tidak melanggar kendaaran yang ada.
5. Fungsi obyektif, merupakan fungsi yang memaksimumkan atau meminimumkan nilai
solusi.
Kita berharap optimum global merupakan solusi optimum dari persoalan. Namun, ada
kalanya optimum global belum tentu merupakan solusi optimum (terbaik), tetapi dapat
merupakan solusi sub-optimum atau pseudo-optimum. Hal ini dapat dijelaskan dari dua
faktor berikut:
1. algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi
yang ada.
2. pemilihan fungsi SELEKSI: fungsi SELEKSI biasanya didasarkan pada fungsi
obyektif (fungsi SELEKSI bisa saja identik dengan fungsi obyektif).Jika fungsi
SELEKSI tidak identik dengan fungsi obyektif, kita harus memilih fungsi yang tepat
untuk menghasilkan nilai yang optimum.
Karena itu, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi
yang benar benar optimum. Tetapi, algoritma greedy pasti memberikan solusi yang
mendekati (approximation)nilai optimum.

CONTOH
Contoh penyelesaian menggunakan algoritma greedy ini adalah mencari pohon perentang
minimum, baik menggunakan Prim maupun Kruskal
Pohon perentang minimum
Misalkan G = (V, E) adalah suatu graph tidak berarah, terhubung, dan mempunyai bobot
yang non negatif. Maka pohon perentang minimum adalah subgraph G yang mempunyai sifat
berupa pohon Mengandung semua simpul pada G.Mempunyai jumlah bobot pada busur yang
minimum.
Y = {v0} untuk setiap v0 ? V
while (Y = V )
{
Cari busur (u,v)dengan bobot minimum dengan u ? Y
dan v ?/ Y
Masukkan busur (u, v) pada MST
Tambahkan v pada Y
}
Kode programnya adalah sebagai berikut

for (i = 1; i <= n; i ++)
{
V [i] . Reached = FALSE;
V [i] . Connect_Wt = INFINITY;
}
V [Start] . Connect_Wt = 0;
V [Start] . Connect_From = 0;
for (i = 1; i <= n; i ++)
{
Min_Connect = INFINITY;
for (j = 1; j <= n; j ++)
if (V [j] . Connect_Wt < Min_Connect)
{
Min_Connect = V [j] . Connect_Wt;
Min_V = j;
}
V [Min_V] . Reached = TRUE;
for (j = 1; j <= n; j ++)
if (! V [j] . Reached
&& Weight [Min_V] [j]
< V [j] . Connect_Wt)
{
V [j] . Connect_Wt = Weight [Min_V] [j];
V [j] . Connect_From = Min_V;
}
}
Algoritma Kruskal
Tempatkan masing masing simpul sebagai himpunan terpisah
for ( setiap busur (u,v) yang diurutkan bobotnya secara ascending)
if (u dan v berada dalam himpunan terpisah)
{
Masukkan busur (u,v) dalam MST
gabungkan himpunan yang mengandung u dan v
}
Inilah potongan programnya

for (i = 1; i <= n; i ++)
{
V [i] . Reached = FALSE;
V [i] . Connect_Wt = INFINITY;
}
V [Start] . Connect_Wt = 0;
V [Start] . Connect_From = 0;
for (i = 1; i <= n; i ++)
{
Min_Connect = INFINITY;
for (j = 1; j <= n; j ++)
if (V [j] . Connect_Wt < Min_Connect)
{
Min_Connect = V [j] . Connect_Wt;
Min_V = j;
}
V [Min_V] . Reached = TRUE;
for (j = 1; j <= n; j ++)
if (! V [j] . Reached
&& Weight [Min_V] [j]
< V [j] . Connect_Wt)
{
V [j] . Connect_Wt = Weight [Min_V] [j];
V [j] . Connect_From = Min_V;
}
}
3.2.10 Algoritma MiniMax
Banyak sekali algoritma yang digunakan untuk mengimplementasikan kecerdasan buatan.
Salah satu dari algoritma itu adalah minimax. Algoritma minimax merupakan salah satu
implementasi dari depth first search. Algoritma minimax terutama
diaplikasikan pada permainan yang melibatkan dua orang, dan lebih khusus lagi, permainan
dua orang yang saling berganti giliran bermain seperti checkers,
tic-tac-toe, catur, catur jawa dan lain sebagainya.Permainan-permainan tersebut dapat
dideskripsikan dengan sejumlah aturan dan premis. Dengan itu, kita dapat mengetahui, pada
titik tertentu permainan,langkah-langkah yang mungkin berikutnya.
Permainan tersebut berbagi karakteristik yang sama,yakni permainan dengan penuh
informasi. Dengan cara inilah penulis akan berusaha membuat sebuah
kecerdasan buatan untuk permainan catur jawa, yang lagi, memiliki karakteristik yang sama
dengan permainan yang telah disebutkan di atas. Pada suatu titik di makalah ini juga terdapat
cara untuk mengoptimasi algoritma minimax agar memiliki
performansi yang lebih baik, salah satunya dengan menggunakan alpha-beta.
METODE Algoritma Minimax
Algoritma minimax diaplikasikan pada permainan yang melibatkan dua orang. Permainan-
permainan tersebut dapat dideskripsikan dengan sejumlah aturan dan premis.Dengan itu, kita
dapat mengetahui, pada titik tertentu permainan, langkah-langkah yang mungkin
berikutnya.Permainan tersebut berbagi karakteristik yang sama, yakni permainan dengan
penuh informasi. Setiap pemain mengetahui semua langkah-langkah yang mungkin dari
pemain lawannya.Sebelum menjelaskan algoritma minimax, pengenalan mengenai pohon
pencarian dibutuhkan. Pohon pencarian
adalah cara untuk merepresentasikan pencarian. Kotak disebut sebagai simpul dan simpul-
simpul tersebut merepresentasikan titik keputusan pada pencarian. Simpul
dihubungkan dengan cabang. Pencarian dimulai pada simpul akar, ditunjukkan pada bagian
atas pada gambar 1.Pada setiap simpul keputusan, simpul berikutnya yang
mungkin untuk pencarian dibangkitkan, sampai tidak ada lagi keputusan yang mungkin.
Simpul yang merepresentasikan akhir pencarian disebut sebagai simpul daun.

Gambar 10. Representasi pohon pencarian untuk permainan logika
Pada algoritma ini ada dua pemain yang terlibat, kita asumsikan MAX dan MIN. Pohon
pencariandibangkitkan, depth-first, dimulai dari posisi permainan saat ini sampai pada akhir
posisi permainan. Lalu, kondisi permainan final dievaluasi sebagai sudut pandang
MAX,seperti tergambar pada gambar 1. Setelah itu, simpul-simpul di atas simpul daun diisi
secara bottom up dengan nilai pada simpul anak-anaknya. Simpul yang dimiliki
pemain MAX menerima nilai maksimum dari simpul anak-anaknya dan pemain MIN
memperoleh nilai minimum dari nilai-nilai yang dimiliki simpul anak-anaknya.

3.3 JARINGAN SEMANTIK DAN SCRIPT
Jaringan semantik adalah gambaran pengetahuan grafis yang menunjukkan hubungan antar
berbagai objek, terdiri dari lingkaran-lingkaran yang dihubungkan dengan anak panah yang
menunjukkan objek dan informasi tentang objek-objek tersebut. Gambar berikut
menunjukkan representasi pengetahuan menggunakan jaringan semantik.


Gambar 11: Jaringan Semantik

Dari gambar di atas dapat dibentuk beberapa kalimat yang menunjukkan suatu peristiwa,
seperti :
Reza adalah siswa tingkat SMA di Jakarta
Reza menonton film di bioskop daerah Jakarta
Reza menonton film berjudul Avatar di bioskop daerah Jakarta
Reza menonton film di Australia
Reza kekasih Renata
Reza bermain sepabola di kejuaraan antar SMA
SMA memiliki klub olahraga sepabola
Renata bermain drama di Australia
Renata menonton sepakbola di televisi
Film berjudul Avatar disutradarai James Cameron
James Cameron membuat film bergenre drama di Australia

Dalam mata kuliah Pengantar Kecerdasan Buatan script merupakan representasi
pengetahuan berdasarkan karakteristik yang sudah dikenal sebagai pengalaman-pengalaman
yang menggambarkan urutan peristiwa.
Terdapat enam elemen script, yaitu :

1. Kondisi input, merupakan kondisi yang harus dipenuhi sebelum terjadi
2. Track, yaitu variasi kemungkinan yang terjadi
3. Prop, yaitu objek yang digunakan dalam suatu peristiwa
4. Role, yaitu peran dalam suatu peristiwa
5. Scene, yaitu adegan dalam suatu peristiwa
6. Hasil, yaitu kondisi setelah terjadinya urutan peristiwa
Berikut ini adalah contoh script kejadian Penyewaan Film di Rental Film
Jalur (track) : menyewa film
Role (peran) : calon penyewa, penyewa, penjaga rental
Prop (pendukung) : kartu rental, uang, dvd, vcd, pulpen, formulir pendaftaran
Kondisi input : penyewa terdaftar untuk menyewa film
Adegan 1 : Calon penyewa atau penyewa datang ke tempat rental film
Calon penyewa atau penyewa telah menyiapkan uang untuk sewa
Penjaga rental mempersilahkan masuk
Penjaga rental memberi salam hangat kepada calon penyewa atau penyewa
Adegan 2 : Calon penyewa mendaftar menjadi anggota
Penjaga rental menjelaskan prosedur penyewaan film
Penjaga rental memberikan formulir pendaftaran
Calon penyewa menunjukkan KTP
Calon penyewa mengisi formulir pendaftaran
Penjaga rental memberikan kartu rental

Adegan 3 : Penyewa memilih film
Penyewa memilih film dalam bentuk dvd
Penyewa memilih film dalam bentuk vcd
Penyewa memilih film dalam berbagai genre (action, drama, comedy, horror)
Adegan 4 : Penyewa membayar uang sewa
Penyewa menunjukkan film yang dipinjam
Penjaga rental memberikan tempat atau bungkus untuk film
Penyewa membayar uang sewa
Penjaga rental memberikan tanda bukti penyewaan
Adegan 5 : Penyewa kembali ke rumah
Penyewa meninggalkan tempat rental
Penyewa menonton film
Penyewa akan kembali ke tempat rental untuk mengembalikan film yang dipinjam
sesuai jangka waktu penyewaan
Hasil :
Penyewa merasa senang
Penyewa merasa kecewa
Penyewa tertawa (karena film komedi)
Penyewa merasa sedih


DAFTAR PUSTAKA

1. http://id.wikipedia.org/wiki/Algoritma
2. http://id.wikipedia.org/wiki/Operator_logika
3. http://id.wikipedia.org/wiki/Logika
4. http://nurmanali.blogspot.com/2011/10/jaringan-semantik-kecerdasan-buatan.html
5. http://id.wikipedia.org/wiki/Algoritma_semut
6. http://herucr.com/algoritma-greedy.html
7. http://bwahyudi.staff.gunadarma.ac.id/Downloads/files/1342/ALGORITMA+PEMR
OGRAMAN.pdf
8. http://bsavitri.staff.gunadarma.ac.id/Downloads/files/12330/Bab+4+Algoritma+Penca
rian.pdf
9. http://blog.binadarma.ac.id/usman/wp-content/uploads/2011/07/JENI-Intro2-Bab06-
Algoritma-Sorting.pdf
10. http://repository.usu.ac.id/bitstream/123456789/6018/1/08E00400.pdf
11. http://wijanarto.files.wordpress.com/2011/02/7-algoritma-bruteforce.pdf
12. http://p4tkmatematika.org/downloads/sma/logika.pdf
13. http://journal.mercubuana.ac.id/data/propositional-logic.pdf

Anda mungkin juga menyukai