Minggu, 10 Desember 2017

metode pencarian

metode pencarian

1. Metode Pencarian Buta (Blind Search)
1.1.BFS (Breadth First Search)
Breadth First Search yaitu model pencarian yang memakai metode melebar. Untuk mencari hasilnya, model BFS ini menggunakan teknik pencarian persoalannya dengan cara membuka node (titik) pada tiap levelnya.
contoh :
1.   Masukkan simpul ujung (akar) ke dalam antrian.
2.   Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.
3.   Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
4.   Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian.
5.   Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan.
6.   Ulangi pencarian dari langkah kedua.
Contohnya terlihat dibawah ini:

Maka penyelesaiannya adalah:Gambar (a) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1.Gambar (b) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1Gambar (c) BFS(1): 1, 2, 3, 4, 5, 6, 7, 8, 9



1.2.DFS (Depth-first Search)
Algoritma DFS (Depth First Search) adalah salah satu algoritma yang digunakan untuk pencarian jalur. Contoh yang dibahas kali ini adalah mengenai pencarian jalur yang melalui semua titik.
Algoritma ini mirip dengan Algoritma BFS (Breadth First Search) yang sudah dijelaskan sebelumnya. Jika Algoritma BFS (Breadth First Search) melakukan perhitungan secara terurut dari urutan pertama sampai urutan terakhir, maka algoritma ini melakukan kebalikannya, yaitu melakukan perhitungan secara terurut dari urutan terakhir. Setelah menghabiskan semua kemungkinan dari titik terakhir, barulah mundur ke titik-titik sebelumnya sampai pada titik pertama.
contoh : 
Di dalam DFS, pencarian dilakukan pada suatu struktur pohon yaitu kumpulan semua kondisi yang mungkin yang diimplementasikan dalam sebuah struktur pohon. Paling atas adalah akar (root) yang berisi kondisi awal pencarian (initial state) dan di bawahnya adalah kondisi-kondisi berikutnya sampai kepada kondisi tujuan (goal state).


Untuk melakukan pencarian, DFS menggunakan cara sebagai berikut :

1. Masukkan Initial State pada Tumpukan.
2. Periksa apakah ada data di tumpukan.
3. Jika tidak, maka solusi tidak ditemukan, dan proses berhenti.
4. Jika ya, Ambil state pada tumpukan paling atas.
5. Bandingkan State tersebut apakah sama dengan Goal State
6. Jika sama, maka solusi ditemukan dan proses berakhir.
7. Jika tidak, ekspansikan state tersebut.
6. Masukkan seluruh state hasil ekspansi ke dalam tumpukan.
7. Kembali ke langkah 2.

Pada prinsipnya, DFS ini menggunakan tumpukan untuk menyimpan seluruh state yang ditemukan atau bisa dikatakan bahwa DFS menggunakan metode LIFO (Last In First Out).

2. Metode Pencarian Heuristik
2.1 Metode Generate-and-Test
Metode Generate-and-Test adalah metode yang paling sederhana dalam pencarian heuristic. Jika pembangkitan possible solution dikerjakan secara sistematis, maka prosedur akan mencari solusinya, jika ada. Tetapi jika ruang masalahnya sangat luas, mungkin memerlukan waktu yang sangat lama.
Algoritma Generate-and-Test adalah prosedur DFS karena solusi harus dibangkitkan secara lengkap sebelum dilakukan test. Algoritma ini berbentuk sistematis, pencarian sederhana yang mendalam dari ruang permasalahan. Generate & test juga dapat dilakukan dengan pembangkitan solusi secara acak, tetapi tidak ada jaminan solusinya akan ditemukan.
contoh : 


“Travelling Salesman Problem (TSP)” Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui rute terpendek dimana setiap kota hanya boleh dikunjungin tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti gambar dibawah ini:

Cara penyelesaian :



2.2 Hill Climbing
Hill Climbing adalah proses pengujian yang dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan

Hill Climbing berbeda Generate-and-Test, yaitu pada feedback dari prosedur test untuk membantu pembangkit menentukan yang langsung dipindahkan dalam ruang pencarian. Dalam prosedur Generate & test , respon fungsi pengujian hanya ya atau tidak. Tapi jika pengujian ditambahkan dengan atauran fungsi-fungsi yang menyediakan estimasi dari bagaimana mendekati state yang diberikan ke state tujuan, prosedur pembangkit dapat mengeksplorasi ini sebagaimana ditunjukkan di bawah. HC sering digunakan jika terdapat fungsi heuristic yang baik untuk mengevaluasi state. Sebagai contoh, anda berada di sebuah kota yang tidak dikenal, tanpa peta dan anda ingin menuju ke pusat kota. Cara sederhana adalah gedung yang tinggi. Fungsi heuristics-nya adalah jarak antara lokasi sekarang dengan gedung yang tinggi dan state yang diperlukan adalah jarak yang terpendek.
Contoh :
Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin mencari kombinasi l intasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak: 
atau sebanyak 6 kombinasi (lihat gambar dibawah). Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi 





sumber :
http://fryunfirst.blogspot.co.id/2015/06/pencarian-heuristik-heuristic-search.html
https://dimasandree.wordpress.com/2013/10/24/metode-pencarian-heuristic/
http://najibzot.blogspot.co.id/p/teknik-searching-kecerdasan-buatan-di.html
http://web.unair.ac.id/admin/file/f_22572_2_Simple_Hill_Climbing.pdf
https://amandainhere.blogspot.co.id/2016/11/contoh-pencarian-generate-and-test.html
http://cikalinspirasi.blogspot.co.id/2013/05/algoritma-dept-first-search-dfs.html
http://yoursknowladge.blogspot.co.id/2015/04/makalah-algoritma-breadth-first-search.html
http://hanz-kampus.blogspot.co.id/2010/02/heuristic-search-kecerdasan-buatan.html
https://piptools.net/algoritma-dfs-depth-first-search/
first-search/

Minggu, 29 Oktober 2017

Garis dan program garis pada C++

Nama : Komang Tri Dharma Putra
Kelas : 3KA31
NPM : 13115744

Garis adalah bentuk geometri yang dilukiskan oleh sebuah Titik yang bergerak. Garis hanya mempunyai satu dimensi yaitu panjang. Ada 3 jenis garis yaitu: 
  • Garis Horizontal : sejajar horizon (langit bagian bawah yang berbatasan dengan bumi menurut pandangan mata)
  • Garis Vertikal : garis yang dari atas ke bawah atau dari bawah ke atas atau dari utara keselatan atau selatan ke utara
  • Garis Diagonal : garis yang menghubungkan dua simpul berurutan dari poligon atau polyhedron
Berikut ini adalah program-program yang digunakan untuk membuat garis pada c++
1.C ++
Bahasa Pemrograman memang banyak. Salah satunya adalah C++ . Di bawah ini adalah asal muasal Bahasa C++ serta pengertiannya yang saya kutip dari wikipedia.org langsung aja simak :
C++ adalah bahasa pemrograman komputer yang di buat oleh (Bjarne Stroustrup) merupakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu BCL, Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an, Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding). Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented Programming).
Perbedaan Antara Bahasa pemrograman C dan C++ meskipun bahasa-bahasa tersebut menggunakan sintaks yang sama tetapi mereka memiliki perbedaan, C merupakan bahasa pemrograman prosedural, dimana penyelesaian suatu masalah dilakukan dengan membagi-bagi masalah tersebut kedalam su-submasalah yang lebih kecil, Selain itu, C++ merupakan bahasa pemrograman yang memiliki sifat Pemrograman berorientasi objek, Untuk menyelesaikan masalah, C++ melakukan langkah pertama dengan menjelaskan class-class yang merupakan anak class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik, Class tersebut berisi keadaan object, anggota-anggotanya dan kemampuan dari objectnya, Setelah beberapa Class dibuat kemudian masalah dipecahkan dengan Class.
Bahasa C adalah sebuah bahasa dasar tingkat tinggi yang sifatnya kompleks dan membangun logika atau algoritma.
C++ merupakan bahasa pemrograman yang memiliki sifat Pemrograman berorientasi objek, Untuk menyelesaikan masalah, C++ melakukan langkah pertama dengan menjelaskan class-class yang merupakan anak class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik, Class tersebut berisi keadaan object, anggota-anggotanya dan kemampuan dari objectnya, Setelah beberapa Class dibuat kemudian masalah dipecahkan dengan Class.
Bahasa C adalah bahasa pemrograman prosedural yang memungkinkan kita untuk membuat prosedur dalam menyelesaikan suatu masalah. Bahasa C++ adalah bahasa pemrograman yang berorientasi pada objek.
Bahasa tingkat tinggi merupakan bahasa yang mudah dipahami oleh manusia, C dan C++ merupakan contoh bahasa dari bahasa tingkat tinggi. Contoh lain dari bahasa tingkat tinggi adalah Pascal , Perl, Java, dan lain lain. Sedangkan bahasa tingkat rendah merupakan bahasa mesin atau bahasa asembly.

2. GLUT
GLUT merupakan pengembangan dari OpenGL yang didesain untuk aplikasi dengan level kecil hingga menengah dan menggunkan callback function untuk menambahkan interaksi dari user. GLUT menyediakan interface untuk menejemen window, menu, dan peralatan input (keyboard, dan mouse). GLUT juga menyediakan fungsi otomatis untuk menggambar objek primitif (garis, lingkaran, titik, persegi),objek 3 dimensi wire (kerangka) maupun yang solid, seperti cube (kubus), sphere (bola), dan teapot (poci teh), cone (kerucut), torus, dan lain-lain .
GLUT dikembangkan oleh Mark Kilgard, yaitu penulis  OpenGL Programming for the X Window System dan The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics, ketika dia masih bekerja di Silicon Graphics.

Dua tujuan GLUT ialah menciptakan fleksibitas code antar platform yang dapat dijalankan lebih dari satu sistem operasi (Windows, Linux, Mac OS X, FreeBSD, OpenBSD, NetBSD), dan untuk lebih mudah mempelajari OpenGL. Dengan menggunakan GLUT hanya memerlukan sedikit code dibandingkan dengan OpenGL, tanpa mengetahui spesifikasi sistem operasi, dikarenakan OpenGL adalah sebagai mesin.

Berikut ini adalah cara membuat program garis dengan menggunakan dev C++ :
link : 
2. Cara install glut di C++

sumber :

  • http://rosyidah-binti.blogspot.co.id/2013/04/opengl-glut.html
  • https://sekarsri.wordpress.com/2014/04/17/pengertian-bahasa-pemrograman-c/

Rabu, 18 Oktober 2017

DEFINISI P.E.A.S (Performance measure, Environment, Actuators, Sensors)

DEFINISI P.E.A.S
P.E.A.S adalah singkatan dari Performance measure, Environment, Actuators, Sensors.
                                                     

Ketika akan merancang agent,kita harus mendefinisikan lingkungan masalah (task environment) tersebut, yakni dengan:
  • Performance measure : Apa komponen pengukur keberhasilan agent?
  • Environment : Kondisi apa yang berada disekitar agent?
  • Actuators   : Apa yang bisa dilakukan agent?
  • Sensors     : Apa yang menjadi input agent

Contoh : Medical Diagnosis System, Sebuah agent yang dapat mendiagnosa pasien secara otomatis.
  • Performance measure : Pasien sembuh, biaya terjangkau, tidak menyalahi hukum.
  • Environment : Pasien, rumah sakit, suster, dokter.
  • Actuators   : Layar monitor (pertanyaan, tes, diagnosa, treatment, petunjuk penggunaan).
  • Sensors     : Keyboard (memasukkan gejala penyakit pasien, pasien mengetikkan jawaban).

Sumber :
  • http://artikel-teknologi-informasi.blogspot.co.id/2012/11/pengertian-agent-pada-ai-artificial.html

DEFINISI AGENT DALAM INTELLIGENT AGENT

DEFINISI AGENT DALAM INTELLIGENT AGENT
AGENT adalah segala sesuatu yang dapat dipandang sebagaimana mengamati lingkungannya melalui sensor dan bertindak atas lingkungan yang melalui efektor. Agen manusia memiliki mata, telinga, dan organ lain untuk sensor, dan tangan, kaki, mulut, dan bagian tubuh lainnya untuk efektor. Sebuah pengganti agen robot kamera dan berbagai pencari inframerah untuk sensor dan berbagai motor untuk efektor.
Konsep pada AGENT :
  • How Agents Should Act: Right things                                                                          Pengukuran Kinerja: mengukur seberapa kesuksesan sebuah agent. Tidak ada satu ukuran yang tetap dan sama untuk semua agen. Kita dapat menanyakan kepada agen secara subyektif tentang kenyamanan dengan kinerja agen itu sendiri
  • When to evaluate agent’s success?                                                                                              Ini mengarah ke definisi agen rasional yang ideal: Untuk setiap urutan persepsi yang memungkinkan, agen rasional yang ideal harus melakukan tindakan apapun yang diharapkan dapat memaksimalkan pengukuran kinerjanya, berdasarkan bukti yang diberikan oleh urutan persepsi dan apa pun yang yang merupakan pengetahuan built-in yang dimiliki agen.
  • How to evaluate agent’s success?                                                                              Mengevaluasi kinerja sangat penting. Kita harus berhati-hati untuk membedakan antara rasionalitas dan omniscience (kemahatahuan). Rasionalitas bahwa agen tahu  hasil dari sebuah tindakan yang dilakukan secara rasional. Sedangkan omniscience adalah sebuah kemustahilan dari kenyataan yang sebenarnya telah terjadi. 
Contoh Agent :
  • pengendara taxi, untuk pergi ke tempat tujuan dengan cepat, itu bertentangan dengan keadaan lebih aman. Karena untuk perjalanan taxi yang lebih cepat, tentu tingkat bahaya sangat tinggi dari pada perjalanan taxi yang santai.
  • agen untuk pengendara taxi diberikan kondisi “jika mobil di depan melakukan pengereman” maka agen akan memberikan aksi “injak rem”.

Sumber :
  • http://artikel-teknologi-informasi.blogspot.co.id/2012/11/pengertian-agent-pada-ai-artificial.html
  • http://rahmamaulana17.blogspot.co.id/2016/09/ai-artificial-intelligence-peas-agent.html


Senin, 25 September 2017

definisi dan sejarah AI

DEFINISI AI (Artificial Intelligence)
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/ 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
Contoh AI :
·       Games,AI berkembang cukup pesat dan populer dalam permainan/games antara manusia melawan mesin yang mempunyai intelektual untuk berpikir. misalnya PES/football manager
·       Visual Recognition, VR dapat kita jumpai pada laptop dan smartphone Apple keluaran terbaru. Cara kerjanya dengan memasang alat untuk mendeteksi sidik jari (fingerprints password). Sekarang ini sudah banyak digunakan face detector, sehingga untuk mengakses sebuah laptop yang sudah dipasangi password dari gambar wajah orang pemiliknya.
·       IBM Assembly Robots, diproduksi oleh IBM. ada dua macam robot dan digunakan untuk proses produksi komputer IBM dan produk-produk lainnya. Robot ini digunakan untuk memasukkan komponen ke dalam suatu lubang atau memasang komponen satu yang dilekatkan dengan komponen lainnya. Robot yang kedua berupa robot yang lebih kecil yang dapat diprogram dengan komputer IBM PC yang digunakan untuk memprogram dapat dilepas dan digunakan untuk keperluan lainnya.

SEJARAH AI (Artificial Intelligence)
Istilah AI pertama kali dikemukakan pada tahun 1956 di Konferensi Darthmouth. Sejak saat itu, AI terus dikembangkan sebab berbagai penelitian mengenai teori-teori dan prinsip-prinsipnya juga terus berkembang. Meskipun istilah AI baru muncul tahun 1956, tetapi teori-teori yan gmengarah ke AI sudah muncul sejak tahun 1941. Berikut tahapan-tahapan sejarah perkembangan AI :

·       Era Komputer Elektronik (1941)
     Pada tahun 1941 telah ditemukan alat penyimpanan dan pemrosesan informasi.

·       Masa Persiapan AI (1943 – 1956)
     Pada tahun 1943, Warren McCulloch dan Walter Pitt mengemukakan tiga hal : pengetahuan fisiologi dasar dan fungsi sel syaraf dalam otak, analisa formal tentang logika proposisi, dan teori komputasi Turing. Mereka berhasil membuat suatu model yaitu sel syaraf tiruan

·       Awal Perkembangan AI (1952 – 1969)
     Pada tahun-tahun pertama perkembangannya, AI mengalami banyak kesuksesan. Diawali dengan kesuksesan Newell dan Simon dengan ssebuah program yang disebut General Problem Solver. Program ini dirancang untuk memulai penyelesaian masalah secara manusiawi.

·       Perkembangan AI Melambat (1966 – 1974)
    Perkembangan AI melambat disebabkan adanya 3 kesulitan utama yang dihadapi AI, yaitu :
     1. Program-program AI yang bermunculan hanya mengandung sedikit atau bahkan tidak mengandung sama sekali pengetahuan (knowledge) pada subjeknya.
     2.    Banyak masalah yang harus diselesaikan oleh AI.
     3.    Ada beberapa batasan pada struktur dasar yang digunakan untuk menghasilkan perilakU intelijensia.

·       Sistem Berbasis Pengetahuan (1969 – 1979)
     Pengetahuan adalah kekuatan pendukung AI.
     Contoh :    Dendral Programs yang berfokus pada segi pengetahuan kimia.
     Feingenbaum, Bruce Buchanan dan Joshua Lederberg yang membuat program
    Computer in Biomedicine Proyek ini diawali keinginan untuk mendapatkan diagnose penyakit berdasarkan pengetahuan yang ada pada mekanisme penyebab proses penyakit.

·       AI Menjadi Sebuah Industri (1980 – 1988)
     Industrialisasi AI diawali dengan ditemukannya system pakar yang dinamakan R1 yang mampu mengkonfigurasi system-sistem computer baru. Program tersebut mulai dioperasikan di Digital Equipment Corporation (DEC), McDermott, pada tahun 1982.

·       Kembalinya Jaringan Syaraf Tiruan (1986 – sekarang)
     Para ahli fisika seperti Hopfield (1982) menggunakan teknik-teknik mekanika statistika untuk menganalisa sifat-sifat pentimpanan dan optimasi pada jaringan syaraf. Para ahli psikologi, David Rumelhart dan Geoff Hinton, melanjutkan penelitian mengenai model jaringan syaraf tiruan pada memori. 

    Pada tahun 1985-an setidaknya empat kelompok riset menemukan kembali algoritma belajar propagasi balik (Black-Propagation Learning). Algoritma ini berhasil diimplementasikan ke dalam bidang ilmu computer dan psikologi.

Sumber :
  • http://najibzot.blogspot.co.id/p/kumpulan-film.html
  • https://doyancaritahu.wordpress.com/2014/11/28/ai-pengertian-dan-contoh/
  • http://www.temukanpengertian.com/2013/08/pengertian-artificial-intelligence.html