Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

11
LAPORAN FINAL PROJECT KECERDASAN BUATAN KELOMPOK : 03 NAMA ANGGOTA : 1. FACHRIZ ARFIAN (1334010135) 2. HERO YUDHANTO (1334010126) 3. EDO ALDY HABIBY (1334010151) 4. SELAMET ISMAIL (1334010152) PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

description

daftar pustaka yang diperlukanadaftar pustaka yang diperlukanadaftar pustaka yang diperlukanadaftar pustaka yang diperlukana

Transcript of Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

Page 1: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

LAPORANFINAL PROJECT

KECERDASAN BUATAN

KELOMPOK : 03

NAMA ANGGOTA :

1. FACHRIZ ARFIAN (1334010135)2. HERO YUDHANTO (1334010126)3. EDO ALDY HABIBY (1334010151)4. SELAMET ISMAIL (1334010152)

PROGRAM STUDI TEKNIK INFORMATIKAFAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

JAWA TIMUR2014

Page 2: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

REPRESENTASI MASALAH

A. Objek

Objek yang bermacam di dalam permasalahan memberi pengurutan 8 angka puzzle, yang teracak agar menjadi bentuk yang berurut di mulai dari angka 1 sampai 8.

B. State (Keadaan)

Keadaan permasalahan dimana 8 angka pada puzzle teracak, kemudian cara mempresentasikan keadaan puzzle tersebut hingga terurut ialah dengan memindah beberapa angka dengan metode heuristc dan A*.

C. State Space (Ruang Keadaan)

Ruang keadaaan dari sebuah state acak, yaitu kemungkinan gerakan pemindahan angka ke atas, ke bawah, ke samping kiri atau pun ke samping kanan.

D. Initial State (Keadaan Awal)

Keadaaan awal dari permasalahan puzzle 8 angka ini ialah puzzle ini tersusun secara acak.

E. Goal State (State Tujuan)

Tujuan akhir dari keadaan puzzle 8 angka ini adalah angka-angka di dalam puzzle tersebut tersusun secara berurutan mulai dari angka terkecil 1 hingga ke angka 8.

Page 3: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

FUNGSI HEURISTIK 1 A* (H1A)

A. Fungsi Heuristik 1 (H1A)

Fungsi Heuristik adalah Sebuah fungsi yang mengevaluasi keadaan-keadaan problemindividual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan, dan digunakan juga untuk mencari keping – keeping jalan yang salah.

Algoritma A* menerapkan heuristic untuk menemukan solusi yang paling optimum. Heuristik ini yang menyebabkan pohon ruang status tidak perlu dibangkitkan seluruhnya, hanya yang mendekati solusi terbaik saja. Pada kasus ini solusi terbaik dapat dicapai.

B. Pseudocode H1@P=actions.length-1puts"==================================================================="puts "Solusi dengan H1 Algoritma Greedy:-------------------------------"for i in 0..actions.length-1puts actions[actions.length-1-i].toString()myState2.performAction(myState2,actions[actions.length-1-i])myState2.printState()print "H1G (JUMLAH KEPING YANG SALAH) = "[email protected]_s@P=@P-1print ("\n")end

C. Penjelasan singkat PseudocodeDimana jumlah keeping yang tidak pada tempatnya atau salah (H1) sama dengan

jumlah solusi action yang akan di lakukan,setelah action di lakukan jumlah keeping yang tidak pada tempatnya (H1) berkurang satu persatu setelah di lakukan solusinya sampi mencapi “goal test”

Page 4: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

ALGORITMA INFORMED SEARCH A*

A. Penjelasan Algoritma A*

Algoritma A* merupakan algoritma yang membantu menemukan solusi pencarian ruang keadaan dengan mempertimbangkan total biaya lintasan yang akan dilacak sesuai dengan node yang akan dilewati. Masalah ruang keadaan disebut juga dengan state space problem.

B. Pseudocode A*def solveHIA(state)

fringe=Array.newgoal=Node.breadthFirstSearch (state,fringe)action=goal,getActions ()return actions

end

C. Penjelasan Singkat Pseudocode

Mengekspansi beberapa node yang dekat dengan state goal.

D. Implementasi A*

Menggunakan metode queue yang diturunkan berdasarkan nilai fungsi evaluasi ( secara Ascending).

Page 5: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

SOURCODE

class DataMahasiswa def initialize @nama=0 @npm=0 @sem=0 @jur=0 end def input puts "Masukkan Data Mahasiswa" print "Nama :" @nama=gets.to_s print "Npm :" @npm=gets.to_s print "Semester :" @sem=gets.to_s print "Jurusan :" @jur=gets.to_s return @nama, @npm,@sem,@jur endendoby=DataMahasiswa.newnama,npm,sem,jur=oby.inputclass View def initialize (nama,npm,sem,jur) @nama=nama @npm=npm @sem=sem @jur=jur end def output puts " Data Mahasiswa " puts "NAMA :"[email protected]_s puts "NPM :"[email protected]_s puts "SEMESTER :"[email protected]_s puts "JURUSAN :"[email protected]_s endendoby1=View.new(nama,npm,sem,jur)oby1.output

Page 6: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

OUTPUT

Gambar 1 Tampilan output

Page 7: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

ANALISA MASALAH

Terdapat beberapa masalah pada modul 2, constructor dan dewstructor saat kita ingin menyimpan data @nama,@npm,@jur, @sem fungsi input pada class DataMahasiswa harus menggunakan return. Fungsi return ini bertujuan untuk menampilkan data yang telah diinputkan agar bisa dipanggil pada class lain tanpa menggunakan tanda $. Jika tidak, data tidak akan diproses dan akan muncul error sehingga tidak dapat menampilkan hasil yang diinginkan.

Pada modul 2, nilai constructor digunakan sebagai fungsi seperti inisialisasi sebuah data yang secara otomatis diproses tanpa harus melakukan pemanggilan fungsi. Karena merupakan fungsi unik yang dimiliki oleh ruby terutama destructor.

.

Page 8: Laporan Kcb daftar pustaka yang diperlukanadaftar pustaka yang diperlukana

KESIMPULAN

Dari hasil analisa masalah pada modul 2 contructor dan destructor tersebut dapat disimpulkan bahwa kita harus menginputkan data atau menginisialisasi data dengan jelas dan benar. Pada saat ingin memanggil data dari class yang lain, harus memiliki perintah yang jelas agar mengurangi kemungkinan akan terjadinya error.

Pada fungsi initialize dalam masing masing class bertujuan sebagai constructor dalam sebuah program. Definisi constructor sendiri adalah proses inisialisasi data member di dalam sebuah class dilakukan oleh sebuah fungsi anggota. Oleh karena itu, nilai constructor digunakan sebagai fungsi seperti inisialisasi sebuah data yang secara otomatis diproses tanpa harus melakukan pemanggilan fungsi.