Rabu, 08 November 2017

Mengaudit Cloud Computing dan Outsource

14 Mengaudit Cloud Computing dan Outsource

Latar Belakang



Konsep outsourcing operasi TI ke penyedia layanan eksternal bukanlah hal baru.
Perusahaan telah menerapkan konsep ini selama bertahun-tahun, mulai dari menginangi aplikasi
mereka melalui penyedia layanan aplikasi (ASP), untuk menyimpan peralatan komputer mereka
di pusat data lokasi bersama (disebut juga colo), untuk menyewa perusahaan eksternal untuk
menjalankan TI mereka. operasi. Keputusan untuk melakukan operasi outsource biasanya
didasarkan pada keinginan untuk mengurangi biaya dan memungkinkan perusahaan untuk fokus
pada kompetensi intinya. Dengan kata lain, jika saya memiliki perusahaan yang membuat
tongkat hoki dan kompetensi inti saya adalah merancang dan membangun tongkat hoki tersebut,
saya mungkin tidak ingin menginvestasikan waktu dan uang yang dibutuhkan untuk menjalankan
pusat data untuk mendukung operasi saya Ini mahal dan bukan itu yang saya sukai. Sebagai
gantinya, saya bisa membayar seseorang yang mengelola pusat data untuk mencari nafkah untuk
melakukan itu untuk saya. Mereka mungkin bisa melakukannya dengan lebih baik daripada yang
saya bisa dan dengan biaya lebih rendah, dan ini memungkinkan saya untuk fokus pada tongkat
hoki tersebut. Baru-baru ini, sebuah konsep baru diperkenalkan ke dunia operasi outsourcing
yang disebut komputasi awan, di mana layanan TI disediakan melalui Internet (yaitu, awan)
menggunakan infrastruktur bersama. Hal ini telah menghasilkan tren baru perusahaan yang
memindahkan layanan TI mereka ke penyedia eksternal.

Sistem Informasi dan Infrastruktur Outsourcing

Sistem TI dan infrastruktur outsourcing adalah praktik untuk mempekerjakan
perusahaan lain untuk menyediakan beberapa atau semua lingkungan TI Anda, seperti pusat data,
server, sistem operasi, aplikasi bisnis, dan sebagainya. Layanan ini bisa disediakan dengan
menggunakan cloud computing atau dedicated hosting.


selengkapnya. bisa liat di bawah ini :

LINK : https://www.dropbox.com/home?preview=Tugas_SosftSkill_2.docx

Jumat, 27 Januari 2017

Artifical Neural Network Tugas 1

Neural Network merupakan kategori ilmu Soft Computing. Neural Network sebenarnya mengadopsi dari kemampuan otak manusia yang mampu memberikan stimulasi/rangsangan, melakukan proses, dan memberikan output. Output diperoleh dari variasi stimulasi dan proses yang terjadi di dalam otak manusia. Kemampuan manusia dalam memproses informasi merupakan hasil kompleksitas proses di dalam otak. Misalnya, yang terjadi pada anak-anak, mereka mampu belajar untuk melakukan pengenalan meskipun mereka tidak mengetahui algoritma apa yang digunakan. Kekuatan komputasi yang luar biasa dari otak manusia ini merupakan sebuah keunggulan di dalam kajian ilmu pengetahuan.


Fungsi dari Neural Network diantaranya adalah:
  1. Pengklasifikasian pola
  2. Memetakan pola yang didapat dari input ke dalam pola baru pada output
  3. Penyimpan pola yang akan dipanggil kembali
  4. Memetakan pola-pola yang sejenis
  5. Pengoptimasi permasalahan
  6. Prediksi
Sejarah Neural Network

Perkembangan ilmu Neural Network sudah ada sejak tahun 1943 ketika Warren McCulloch dan Walter Pitts memperkenalkan perhitungan model neural network yang pertama kalinya. Mereka melakukan kombinasi beberapa processing unit sederhana bersama-sama yang mampu memberikan peningkatan secara keseluruhan pada kekuatan komputasi.


Gambar 2.1 McCulloch & Pitts, penemu pertama Neural Network

Hal ini dilanjutkan pada penelitian yang dikerjakan oleh Rosenblatt pada tahun 1950, dimana dia berhasil menemukan sebuah two-layer network, yang disebut sebagai perceptron. Perceptron memungkinkan untuk pekerjaan klasifikasi pembelajaran tertentu dengan penambahan bobot pada setiap koneksi antar-network.

Gambar 2.2 Perceptron

Konsep Neural Network

1.  Proses Kerja Jaringan Syaraf Pada Otak Manusia
Ide dasar Neural Network dimulai dari otak manusia, dimana otak memuat  sekitar 1011 neuron. Neuron ini berfungsi memproses setiap informasi yang masuk. Satu neuron memiliki 1 akson, dan minimal 1 dendrit. Setiap sel syaraf terhubung dengan syaraf lain, jumlahnya mencapai sekitar 104 sinapsis. Masing-masing sel itu saling berinteraksi satu sama lain yang menghasilkan kemampuan tertentu pada kerja otak manusia.

Gambar 2.3 Struktur Neuron pada otak manusia

Dari gambar di atas, bisa dilihat ada beberapa bagian dari otak manusia, yaitu:
  1. Dendrit (Dendrites) berfungsi untuk mengirimkan impuls yang diterima ke badan sel syaraf.
  2. Akson (Axon) berfungsi untuk mengirimkan impuls dari badan sel ke jaringan lain
  3. Sinapsis berfungsi sebagai unit fungsional di antara dua sel syaraf.
Proses yang terjadi pada otak manusia adalah:
Sebuah neuron menerima impuls dari neuron lain melalui dendrit dan mengirimkan sinyal yang dihasilkan oleh badan sel melalui akson. Akson dari sel syaraf ini bercabang-cabang dan berhubungan dengan dendrit dari sel syaraf lain dengan cara mengirimkan impuls melalui sinapsis. Sinapsis adalah unit fungsional antara 2 buah sel syaraf, misal A dan B, dimana yang satu adalah serabut akson dari neuron A dan satunya lagi adalah dendrit dari neuron B. Kekuatan sinapsis bisa menurun/meningkat tergantung seberapa besar tingkat propagasi (penyiaran) sinyal yang diterimanya. Impuls-impuls sinyal (informasi) akan diterima oleh neuron lain jika memenuhi batasan tertentu, yang sering disebut dengan nilai ambang (threshold).

2.  Struktur Neural Network
Dari struktur neuron pada otak manusia, dan proses kerja yang dijelaskan di atas, maka konsep dasar pembangunan neural network buatan (Artificial Neural Network) terbentuk. Ide mendasar dari Artificial Neural Network (ANN) adalah mengadopsi mekanisme berpikir sebuah sistem atau aplikasi yang menyerupai otak manusia, baik untuk pemrosesan berbagai sinyal elemen yang diterima, toleransi terhadap kesalahan/error, dan juga parallel processing.


Gambar 2.4 Struktur ANN

Karakteristik dari ANN dilihat dari pola hubungan antar neuron, metode penentuan bobot dari tiap koneksi, dan fungsi aktivasinya. Gambar di atas menjelaskan struktur ANN secara mendasar, yang dalam kenyataannya tidak hanya sederhana seperti itu.
  1. Input, berfungsi seperti dendrite
  2. Output, berfungsi seperti akson
  3. Fungsi aktivasi, berfungsi seperti sinapsis
Neural network dibangun dari banyak node/unit yang dihubungkan oleh link secara langsung. Link dari unit yang satu ke unit yang lainnya digunakan untuk melakukan propagasi aktivasi dari unit pertama ke unit selanjutnya. Setiap link memiliki bobot numerik. Bobot ini menentukan kekuatan serta penanda dari sebuah konektivitas.

Proses pada ANN dimulai dari input yang diterima oleh neuron beserta dengan nilai bobot dari tiap-tiap input yang ada. Setelah masuk ke dalam neuron, nilai input yang ada akan dijumlahkan oleh suatu fungsi perambatan (summing function), yang bisa dilihat seperti pada di gambar dengan lambang sigma (∑). Hasil penjumlahan akan diproses oleh fungsi aktivasi setiap neuron, disini akan dibandingkan hasil penjumlahan dengan threshold (nilai ambang) tertentu. Jika nilai melebihi threshold, maka aktivasi neuron akan dibatalkan, sebaliknya, jika masih dibawah nilaithreshold, neuron akan diaktifkan. Setelah aktif, neuron akan mengirimkan nilai output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Proses ini akan terus berulang pada input-input selanjutnya.

ANN terdiri dari banyak neuron di dalamnya. Neuron-neuron ini akan dikelompokkan ke dalam beberapa layer. Neuron yang terdapat pada tiap layer dihubungkan dengan neuron pada layer lainnya. Hal ini tentunya tidak berlaku pada layer input dan output, tapi hanya layer yang berada di antaranya. Informasi yang diterima di layer input dilanjutkan ke layer-layer dalam ANN secara satu persatu hingga mencapai layer terakhir/layer output. Layer yang terletak di antara input dan output disebut sebagai hidden layer. Namun, tidak semua ANN memiliki hidden layer, ada juga yang hanya terdapat layer input dan output saja.


Penerapan Artifical Neural Network

Artificial Neural Network (Jaringan Syaraf Tiruan), dimana dalam sepuluh tahun terakhir pengaplikasiannya telah banyak dikembangkan di berbagai bidang dalam kehidupan manusia. Seperti contoh Aplikasi Adaptive Inteligent System adalah Sistem mengenali Panas, Hangat, dan Dingin Menggunakan Jaringan Syaraf Tiruan dan Himpunan Fuzzy begitu juga seperti Adaptive Noise Canceling yang menggunakan jaringan syaraf tiruan untuk membersihkan gangguan pada telephone (dikenal dengan echo) dan mengurangi kesalahan tranmisi modem dll.

Salah satu contoh nya bisa dilihat saya mengambil dari jurnalwww.ejournal.himsya.ac.id/index.php/HIMSYATECH/article/view/45/40

Dalam perkembangannya, ilmu Kecerdasan Buatan atau Artificial Intelligence (AI) telah banyak diterapkan pada teknologi komputer dalam menyelesaikan suatu masalah yang umumnya memerlukan pemikiran seorang ahli, dan ANN Perceptron merupakan salah satu dari metode AI yang telah terbukti cukup handal untuk digunakan sebagai teknik pengenalan atau pengindentifikasian.Tujuan dari dibuatnya karya tulis ilmiah ini adalah untuk menerapkan metode Jaringan Syaraf Tiruan atau Artificial Neural Network dengan algortima Perceptron dalam menentukan penyakit cacar daun dan bercak daun pada daun tembakau serta daun cengkeh, dimana sampel daun-daun tersebut dianalisis melalui kedelapan gejala atau ciri yang ditimbulkannya.

Tahapan awal yang dilakukan yaitu mengumpulkan beberapa sampel daun tembakau dan daun cengkeh, baik yang terkena penyakit maupun tidak. Kemudian mengelompokkan gejala atau ciri khusus yang ditimbulkan pada setiap daunnya dari penyakit cacar daun dan bercak daun. Ciri penyakit yang positif terlihat pada masing-masing daun akan direpresentasikan dengan nilai bipolar [1, -1], dimana ciri tersebut akan digunakan sebagai nilai masukan pada tahap pelatihan (training) dan pengujian (testing) dalam metode ANN.

 Dari hasil pengujian terhadap sampel sebanyak 20 daun untuk tahap training dan 10 sampel daun untuk tahap testing, dengan perbandingan penyakit bercak daun dan cacar daun adalah 50 : 50, learning rate sebesar 0,7, lapisan masukan sebanyak 8 buah, dan 1 buah lapisan luaran, didapat bahwa metode ANN Perceptron memiliki persentase keberhasilan pengenalan penyakit sebesar 61% - 73% untuk data non-learning, dan 100% untuk data learning pada kedua jenis daun tersebut.

Sumber / referensi  :
  • http://socs.binus.ac.id/2012/07/26/konsep-neural-network/
  • www.ejournal.himsya.ac.id/index.php/HIMSYATECH/article/view/45/40

Fuzzy Logic Tugas 1




·       Fuzzy logic jika di atau dalam bahasa Indonesia logika Fuzzy adalah teknik/ metode yang dipakai untuk mengatasi hal yang tidak pasti pada masalah – masalah yang mempunyai banyak jawaban. Pada dasarnya Fuzzy logic merupakan logika bernilai banyak/ multivalued logic yang mampu mendefinisikan nilai diantara keadaan yang konvensional seperti benar atau salah, ya atau tidak, putih atau hitam dan lain-lain. Penalaran Logika Fuzzy memnyediakan cara untuk memahami kinerja system dengan cara menilai input dan output system dari hasil pengamatan. Logika Fuzzy menyediakan cara untuk menggambarkan kesimpulan pasti dari informasi yang samar-samar, ambigu dan tidak tepat. Fuzzy logic Pertama kali dikembangkan oleh Lotfi A. Zadeh tahun 1965.

Alasan Kenapa digunakan logika Fuzzy:
-  Karena konsep logika Fuzzy mudah dimengerti.
- Logika Fuzzy fleksibel.
- Logika Fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.
- Logika Fuzzy dapat bekerja dengan teknik-teknik kendali secara konvensional.
- Logika Fuzzy memiliki toleransi terhadap data-data yang tepat.
- Logika Fuzzy didasarkan pada bahasa alami.
- Logika Fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.

Profesor Lotfi A. Zadeh  adalah guru besar pada University of California yang merupakan pencetus sekaligus yang memasarkan ide tentang cara mekanisme pengolahan atau manajemen ketidakpastian yang kemudian dikenal dengan logika fuzzy. Dalam penyajiannya vaiabel-variabel yang akan digunakan harus cukup menggambarkan ke-fuzzy-an tetapi di lain pihak persamaan-persamaan yang dihasilkan dari variable-variabel itu haruslah cukup sederhana sehingga komputasinya menjadi cukup mudah.

 Karena itu Profesor Lotfi A Zadeh kemudian memperoleh ide untuk menyajikannya dengan menentukan “derajat keanggotaan” (membership function) dari masing-masing variabelnya. Fungsi keanggotaan (membership function), adalah suatu kurva yang menunjukkan pemetaan titik input data kedalam nilai keanggotaanya (sering juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1. ° Derajat Keanggotaan (membership function) adalah : derajat dimana nilai crisp dengan fungsi keanggotaan ( dari 0 sampai 1 ), juga mengacu sebagai tingkat keanggotaan, nilai kebenaran, atau masukan fuzzy. ° Label adalah nama deskriptif yang digunakan untuk mengidentifikasikan sebuah fungsi keanggotaan. ° Fungsi Keanggotaan adalah mendefinisikan fuzzy set dengan memetakkan masukan crisp dari domainnya ke derajat keanggotaan.  Masukan Crisp adalah masukan yang tegas dan tertentu. ° Lingkup/Domain adalah lebar fungsi keanggotaan. Jangkauan konsep, biasanya bilangan, tempat dimana fungsi keanggotaan dipetakkan. ° Daerah Batasan Crisp adalah jangkauan seluruh nilai yang dapat diaplikasikan pada variabel sistem.

Penerapan Fuzzy Logic

Di bawah ini adalah beberapa contoh aplikasi Fuzzy Logic:
• Sistem Pengereman Mobil (Nissan).
• Pengontrol kereta bawah tanah di Sendai, Jepang.
• Penghematan Konsumsi Daya Listrik AC (Mitsubhishi Heavy Industries Tokyo).

Saya mengambil contoh dari jurnal yang bisa dilihat dihttp://eprints.dinus.ac.id/12387/1/jurnal_12328.pdf

Di kehidupan sehari-hari manusia dihadapkan dalam permasalahan untuk pengambilan keputusan. Hal ini juga terjadi pada para petani dalam melakukan penilaian tentang kualitas dan menentukan harga jual gabah dari hasil panennya. Dengan menggunakan logika fuzzy untuk menetukan harga gabah bertujuan untuk membantu para petani agar dapat melakukan penilaian dengan cepat, tepat dan akurat. Pada metode Mamdani,untuk mendapatkan hasil diperlukan tahap-tahap : Fuzzifikasi, Aplikasi fungsi implikasi, Komposisi aturan-aturan dengan metode maksimum, dan Defuzzifikasi dengan metode centroid. Dengan proses tersebut diharapkan bisa mendapatkan suatu hasil keputusan yang terbaik. Dengan ini para petani ataupun pembeli dapat menggunakan sistem ini sebagai refensi untuk membantu menentukan harga gabahnya, karena harga yang dihasilkan pada sistem ini sesuai dengan harga gabah di pasaran. Jadi jika petani maupun pembeli menerapkan harga dari sistem ini harga yang diterapkan sudah sesuai dengan kualitas gabah yang akan dijual.




Sumber/referensi :

Artifical Intelligence Tugas 1

Sistem pakar adalah suatu program komputer yang dirancang untuk mengambil keputusan seperti keputusan yang diambil oleh seorang atau beberapa orang pakar. Menurut Marimin (1992), sistem pakar adalah sistem perangkat lunak komputer yang menggunakan ilmu, fakta, dan teknik berpikir dalam pengambilan keputusan untuk menyelesaikan masalah-masalah yang biasanya hanya dapat diselesaikan oleh tenaga ahli dalam bidang yang bersangkutan.


Dalam penyusunannya, sistem pakar mengkombinasikan kaidah-kaidah penarikan kesimpulan (inference rules) dengan basis pengetahuan tertentu yang diberikan oleh satu atau lebih pakar dalam bidang tertentu. Kombinasi dari kedua hal tersebut disimpan dalam komputer, yang selanjutnya digunakan dalam proses pengambilan keputusan untuk penyelesaian masalah tertentu.

Sistem Pakar menurut Siswanto (kecerdasan tiruan:2010) merupakan program komputer, yaitu :
  • Program komputer yang menangani masalah dunia nyata, masalah yang kompleks yang membutuhkan interpretasi pakar.
  • program komputer untuk menyelesaikan masalah dengan menggunakan komputer dengan model penalaran manusia dan mencapai kesimpulan yang sama dengan yang dicapai oleh seorang jika berhadapan dengan masalah.

Komputer berbasis pengetahuan sistem pakar merupakan program komputer yang mempunyai pengetahuan berasal dari manusia yang berpengetahuan luas(pakar) dalam domain tertentu, di mana pengetahuan di sini adalah pengetahuan manusia yang sangat minim penyebarannya, mahal serta susah didapat.
Walaupun sistem pakar dapat menyelesaikan masalah dalam domain yang terbatas berdasarkan pengetahuan yang dimasukkan ke dalamnya, tetapi sistem pakar tidak dapat menyelesaikan yang tidak dapat diselesaikan manusia. Oleh sebab itu keandalan dari sistem pakar terletak pada pengetahuan yang dimasukkan ke dalamnya.
Kondisi-kondisi di mana sistem pakar dapat membantu manusia dalam menyelesaikan masalahnya, antara lain:
  • Kebutuhan akan tenaga ahli (pakar) yang banyak, tetapi pakar yang tersedia jumlahnya sangat terbatas.
  • Pemakaian pakar yang berlebihan dalam membuat keputusan, walaupun dalam suatu tugas yang rutin.
  • Pertimbangan kritis harus dilakukan dalam waktu yang singkat untuk menghindari hal-hal yang tidak diinginkan.
  • Hasil yang optimal, seperti dalam pencernaan atau konfigurasi.
  • Sejumlah besar data yang harus diteliti oleh pakar secara kontinu.

Ciri-ciri Sistem Pakar
1. Terbatas pada domain keahlian tertentu
2. Dapat memberikan penalaran untuk data yang tidak pasti
3. Dapat mengemukakan rangkaian alasan-alasan yang diberikannya dengan cara yang dapat dipahami.
4. Berdasarkan pada kaidah/ketentuan/rule tertentu.
5. Dirancang untuk dapat dikembangkan secara bertahap.
6. Pengetahuan dan mekanisme penalaran (inference) jelas terpisah.
7. Keluarannya bersifat anjuran.
8. Sistem dapat mengaktifkan kaidah secara searah yang sesuai dituntun oleh dialog dengan user.

Contoh Penerapan sistem pakar adalah 

Aplikasi Sistem Pakar Tes Kepribadian Berbasis Web

Kepribadian sangatlah penting untuk diketahui setiap orang agar setiap individu mampu mengembangkankelebihan yang dimilikinya. Seseorang yang kesulitan dalam mengembangkan dirinya kemungkinan karena tidak mengetahui sama sekali kelemahan dan kekurangan yang dimilikinya. Sistem Pakar merupakan suatu sistem yang dibangun untuk memindahkan kemampuan dari seorang atau beberapa orang pakar ke dalam komputer yang digunakan untuk memecahkan masalah yang dihadapi oleh pemakai dalam bidang tertentu. Untuk membantu setiap orang yang ingin mengetahui kepribadiannya, penulis membangun sebuah aplikasi sistem pakar berbasis web yang mampu membantu pengenalan seseorang terhadap kepribadiannya. Proses pembuatan aplikasi tersebut menggunakan metodologi berorientasi obyek dengan pemodelan visual Unified Modeling Language (UML). Pada tahap implementasi penulis menggunakan perangkat pemrograman berbasis web, Apache2Triad 1.5.2 yang berisi Apache 2.0.53, dan PHP 5.0.4. Aplikasi ini dapat membantu pengguna untuk mengetahui kepribadiannya, sehingga dapat membantu untuk mengembangkannya.




Sumber/referensi :
·        http://www.zainalhakim.web.id/pengertian-sistem-pakar.html

Kamis, 26 Januari 2017

Sistem cerdas

Metode Pencarian (Blind Search) (Tugas 2 Softskill Pengenalan teknologi sistem cerdas )

 TEKNIKPENCARIAN/PENELUSURAN (SEARCHING)


·       Pada umumnya manusia mempertimbangkan sejumlah alternatif strategi dalam menyelesaikan suatu problema.

·       Dalam permainan catur misalnya, seorang pemain mempertimbangkan sejumlah kemungkinan tentang langkah-langkah berikutnya, memilih yang terbaik menurut kriteria tertentu seperti kemungkinan respon lawannya.

·       Aspek tingkahlaku cerdas yang mendasari teknik penyelesaian problema seperti dalam permainan catur tersebut dinamakan proses pencarian ruang keadaan (space state search).

·       Exhaustive search – adalah proses pencarian terhadap seluruh ruang keadaan serangakaian langkah yang paling dimungkinkan untuk menghasilkan kemenangan.

·       Walaupun metode ini dapat diterapkan pada setiap ruang keadaan, namum ukuran ruang keadaan yang sangat besar membuat pendekatan ini secara praktis tidak dimungkinkan (dalam permainan catur terdapat 10120 keadaan )

·       Bila kasus ini diimplementasikan ke dalam sisten komputer, maka akan membutuhkan memori yang sangat besar, dan waktu pencarian yang sangat lama. Dengan kata lain metodeexhaustive search ini tidak efisien dan tidak efektif, sehingga tidak praktis untuk diimplementasikan.

·       Untuk mengatasi kendala tersebut di atas, ada beberapa cara yang dapat dilakukan, diantaranya: pertama teknik pencarian parsial (Blind Search) dan yang kedua teknik pencarian heuristic (Heuristik Search).


Pencarian Parsial (Blind Search)

A. PENCARIAN MELEBAR PERTAMA
       (Breadth-First Search)

·       Pada metode breadth-first search, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1.
·       Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya, demikian pula dari kiri kekanan hingga ditemukannya solusi (lihat gambar di bawah ini).







Prosedur breadth_first_search
    Inisialisasi : open = [start]; closed [ ]
    While open  =  [ ] do
    Begin
Hapuskan keadaan paling kiri dari keadaan open,  
   sebutlah keadaan itu dengan X;
Jika X merupakan tujuan then return (sukses);
Buatlah semua child dari X;
Ambillah X dan masukkan pada closed;
Eliminasilah setiap child X yang telah berada pada
   open atau closed, yang akan menyebabkan loop
   dalam search;
Ambillah turunan di ujung kanan open sesuai urutan
   penemuan-nya;
    End;

·       Keuntungan :
Ø Tidak akan menemui jalan buntu
Ø Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan, jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.

·       Kelemahan :
Ø Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon

Ø Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk mendapatkan solusi pada level yang ke-(n+1).

B. PENCARIAN KEDALAM PERTAMA

     (Depth-First Search)


·       Pada Depth-First Search, proses pencarian akan dilakukanpada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi (lihat gambar di bawah).


sprosedur depth_first_search
inisialisasi: open = [Start]; closed = []
while open x [] do
begin
hapuskan keadaan berikutnya dari sebelah kiri open, sebutlah keadaan itu dengan X;
jika X merupakan tujuan then return(sukses);
buatlah semua child yang dimungkinkan dari X;
ambilah X dan masukkan pada closed;
eliminasilah setiap child X yang telah berada pada  
   open atau closed, yang akan menyebabkan loop
   dalam search;
ambilah child X yang tersisa di ujung kanan open
   sesuai urutan penemuannya;
end.


·       Keuntungan :
Ø Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
Ø Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.
·       Kelemahan :
Ø Memungkinkan tidak ditemukannya tujuan yang diharapakan
Ø Hanya akan menemukan 1 solusi pada setiap pencarian

Contoh penerapan nya :

Implementasi Breadth First Search pada Java

untuk mengimplementasikan java pada BFS, saya menukil kodingannya Mark Watson dalam buku beliau Programming AI with Java. Beliau memberikan dua contoh penerapan BFS untuk pencarian jalur terpendek. 
1. Pencarian jalur terpendek pada game Maze 
2. Pencarian jalur terpendek pada simpul Graph

Pencarian Jalur terpendek pada game Maze




Game maze adalah game yang mengharuskan user untuk menemukan jalan keluar dan melewati banyak halangan (obstacle) dari sebuah ruang yang mirip labirin. Titik awalnya dimulai dari huruf S (Start) dan diakhiri pada kotak bertuliskan G (Goal). Ketika program dijalankan, sistem akan otomatis mencari rute terpendek dari kotak S menuju kotak G menggunakan metode BFS. Panjang rute hasil pencarian dituliskan dalam bentuk angka disetiap kotak.






Pencarian Jalur Terpendek pada Graph 



Titik awal adalah simpul 0 dan titik akhir adalah simpul 9, program secara otomatis akan mencari jalur terpendek dari simpul 0 menuju simpul 9 menggunakan metode BFS.


  • STUDI KASUS :
    Pada suatu hari ada seorang petani yang mempunyai seekor kambing dan srigala.Pada saat itu ia baru saja panen sayuran. Karena membutuhkan uang, petani tersebut hendak menjual kambing, serigala, dan sayurannya ke pasar Johar. Untuk sampai di pasar Johar, ia harus menyeberangi sebuah sungai.
Permasalahannya adalah di sungai itu hanya tersedia satu perahu saja yang bisa memuat petani dan satu penumpang lainnya (kambing, srigala, atau sayuran). Jika ditinggalkan oleh petani tersebut, maka sayuran akan dimakan oleh kambing dan kambing akan dimakan oleh serigala
  • DESKRIPSI:
P = Petani
Sy = Sayuran
K = Kambing
Sg = Serigala
  • RUANG KEADAAN
    Untuk daerah asal dan daerah seberang
    digambarkan.
    (P, Sy, K, Sg)
  • KEADAAN AWAL
    Daerah Asal = (P, Sy, K, Sg)
    Daerah seberang = (0, 0, 0, 0)
  • TUJUAN
    Daerah Asal = (0, 0, 0, 0)
    Daerah seberang = (P, Sy, K, Sg)
  • METODE PENYELESAIAN :
Terdapat dua metode penyelesaian yang akan dibahas pada postingan kali ini. Metode pertama adalah metode breadth first search (BFS), dan metode kedua adalah metode Depth First Search (DFS). Berikut ini akan dijelaskan penyelesaian studi kasus diatas dengan kedua metode tersebut.
  • BFS (Breadth First Search)
adalah sebuah algoritma pencarian solusi yang digambarkan dengan struktur pohon. Dimana penyelesaiannya dilakukan dimulai dari simpul akar kemudian melebar sesuai dengan tingkatan yang ada di dalam pohon. Berikut ini adalah algoritma BFS :
1.  Masukkan simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi (goal node), maka stop.
2.  Jika Q kosong, tidak ada solusi. Stop.
3.  Ambil simpul v dari kepala (head) antrian, bangkitkan semua anak-anaknya. Jika v tidak mempunyai anak lagi, kembali ke langkah 2. Tempatkan semua anak dari v di belakang antrian.
4.  Jika suatu simpul anak dari v adalah simpul solusi, maka solusi telah ditemukan, kalau tidak kembali lagi ke langkah 2.
  • GAMBAR BFS :

  • DFS (Depth First Search)
adalah sebuah algoritma pencarian yang digambarkan dengan struktur pohon seperti pada BFS. Penyelesaiannya dilakukan dengan mendalam. Pencarian solusi dilakukan secara menurun sesuai urutan yang ditentukan.
1.  Masukkan simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi, maka stop.
2.  Jika Q kosong, tidak ada solusi. Stop.
3.  Ambil simpul v dari kepala (head) antrian. Jika kedalaman simpul v sama dengan batas kedalaman maksimum, kembali ke langkah 2
4.  .Bangkitkan semua anak dari simpul v. Jika v tidak mempunyai anak lagi, kembali ke langkah 2. Tempatkan semua anak dari v di awal antrian Q. Jika anak dari simpul v adalah simpul tujuan, berarti solusi telah ditemukan, kalau tidak, kembali lagi ke langkah 2.


  • GAMBAR DFS :


Sumber :
https://creactiveit.wordpress.com/2015/05/08/halo-dunia/
http://www.elangsakti.com/2013/03/bahasan-fundamental-tentang-blind.html
karmila.staff.gunadarma.ac.id/Downloads/folder/0.0

Pengenalan teknologi sistem cerdas

Metode Pencarian (Heuristic Search) (Tugas 2 Softskill Pengenalan teknologi sistem cerdas )

Pencarian Heuristik (Heuristic Search)
•         Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan (completeness).

•         Fungsi heuristik digunakan untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.
(Generate and Test)
        Metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking) , yaitu bergerak ke belakang menuju pada suatu keadaan awal.
Contoh : “Travelling Salesman Problem (TSP)”
•      Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek dimana setaip kota hanya boleh dikkunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti berikut ini :
Penyelesaian dengan metode Generate and Test

Alur pencarian dengan Generate and Test



Contoh :

Kasus 4 puzzle (kotak permainan)






b. Kasus 8 puzzle (kotak permainan)







c. Kasus Travelling Salesman Problem (TSP)













PENDAKIAN BUKIT
(Hill Climbing)
        Metode ini hampir sama dengan metode pembangkitan dan pengujian, hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic. Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lain nya yang mungkin.
Contoh Penerapan Algoritma Simple Hill Climbing
Salah satu contoh dari penerapan Algoritma Simple Hill Climbing adalah Traveling Salesman Problem.

Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Fungsi heuristik yang digunakan adalah panjang lintasan yang terjadi.

Gambar Metode Simple Hill Clibing Dengan 6 Operator

Operator yang akan kita gunakan, adalah menukar urutan posisi 2 kota dalam suatu lintasan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak :

Sehingga kalau ada 4 kota, kita bisa memperoleh :
kombinasi.



Keenam kombinasi ini akan kita pakai semuanya sebagai operator, yaitu:
  1. Tukar 1, 2 (menukar urutan posisi kota ke-1 dengan kota ke-2).
  2. Tukar 2, 3 (menukar urutan posisi kota ke-2 dengan kota ke-3).
  3. Tukar 3, 4 (menukar urutan posisi kota ke-3 dengan kota ke-4).
  4. Tukar 4, 1 (menukar urutan posisi kota ke-4 dengan kota ke-1).
  5. Tukar 2, 4 (menukar urutan posisi kota ke-2 dengan kota ke-4).
  6. Tukar 1, 3 (menukar urutan posisi kota ke-1 dengan kota ke-3).


Sumber:
karmila.staff.gunadarma.ac.id/Downloads/folder/0