GRAFIS KOMPUTER&OPEN GL

Senin, 14 November 2016

GRAFIK KOMPUTER DAN PENGOLAHAN CITRA
OpenGL adalah sebuah program aplikasi interface yang digunakan untuk mendefinisikan komputer grafis 2D dan 3D. Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus atau executable ke sistem operasi. Membuat perintah dalam OpenGL dapat terjadi dalam dua cara yang berbeda. Pertama, adalah mungkin bagi programmer untuk membuat dan menyimpan daftar perintah yang dapat dieksekusi secara berulang. Ini adalah salah satu cara yang lebih rutin untuk program interface yang digunakan. Seiring dengan berkembangnya kelompok perintah yang kurang lebih permanen, maka memungkinkan untuk membuat dan menjalankan salah satu perintah dalam batas-batas waktu dari komputer grafis.
PENGERTIAN GLUT PADA OPEN GL
Dikarenakan OpenGL tidak menyediakan interface sistem window ataupun input, maka untuk tujuan ini aplikasi harus mengunakan keseragaman spesifik platform. GLUT merupakan pengembangan dari OpenGL yang didesain untuk aplikasi dengan level kecil hingga menengah dan menggunkan callback function untuk menambahkan interaksi dari user. 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 .

 LANGKAH MEMBUAT GRAFIS HORIZONTAL,VERTIKAL,DIAGONAL,MONGGO DI DOWNLOAD FILE DISINI ,DENGAN PROGRAM DEV C++ DOWNLOADhttps://drive.google.com/file/d/0B6h4uaNYmS1obndhTnlyQ24xZjQ/view?usp=sharing WORD 

HEURISTIK

Kamis, 03 November 2016


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.
Jenis-jenis Heuristic Searching:
– Generate and Test.
– Hill Climbing.
– Best First Search.
– Means-EndAnlysis, Constraint Satisfaction, dll.

PEMBANGKITAN dan PENGUJIAN (Generate and Test) 
Metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak kebelakang menuju pada suatu keadaan awal. Algoritma: Bangkitkan suatu kemungkinan solusi (membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan awal). Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan cara membandingkan node terebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan. 
    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 kal i. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti gambar di bawah ini: 

    Penyelesaian dengan metode Generate and Test

    §  Algoritma:
    1. Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
    a) Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator yang belum digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
    b) Evaluasi keadaan baru tersebut : – Jika keadaan baru merupakan tujuan, keluar – Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang. – Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
     PENCARIAN TERBAIK PERTAMA (Best-First Search)
    §  Metode ini merupakan kombinasi dari metode depthfirst search dan breadth-first search. Pada metode best-first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada level yang lebih tinggi ternyata memiliki nilai heuristic yang lebih buruk.
    §  Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost dari initial state ke goal state, yang dinyatakan dengan : 
    f’(n) = g(n) + h’(n)
    §  f’ = Fungsi evaluasi
    §  g = cost dari initial state ke current state
    §  h’ = prakiraan cost dari current state ke goal state
    §  Contoh: Misalkan kita memiliki ruang pencarian seperti pada gambar berikut. Node M merupakan keadaan awal dan node T merupakan tujuannya. Biaya edge yang menghubungkan node M dengannode A adalah biaya yang dikeluarkan untuk bergerak dari kota M ke kota A. Nilai g diperoleh berdasarkan biaya edge minimal. Sedangkan nilai h’ di node A merupakan hasil perkiraan terhadap biaya yang diperlukan dari node A untuk sampai ke tujuan. h’(n) bernilai ~ jika sudah jelas tidak ada hubungan antara node n dengan node tujuan (jalan buntu). Kita bisa merunut nilai untuk setiap node.





    BLIND SEARCH


    Blind Search merupakan pencarian asal ketemu. Jika solusi sudah ketemu, maka pencarian akan dihentikan. Jika dibuat skemanya, pencarian buta hanya mengenal tiga bagian, [masalah]-[pencarian]-[solusi]. Misalkan dalam kotak ada 3 kelereng warna merah, 3 biru, dan 3 kuning. Masalahnya adalah, ambillah satu kelereng yang berwarna merah. Solusi, setelah melakukan pencarian, kemudian didapat satu kelereng warna merah, nah, itulah solusinya.

    (Breadth-First Search)
    o  Pada metode breadth-first search, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1.

    o  Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya, demikian pula dari kiri ke kanan hingga ditemukannya solusi (lihat algoritma 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).



    Algoritma Breadth-First Search (BFS) atau dikenal juga dengan nama algoritma pencarian melebar adalah algoritma yang melakukan pencarian secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan simpulsimpul yang tadi dikunjungi , demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi lebih dahulu sebelum simpul-simpul pad aras d+1.

    2.2  Cara Kerja Algoritma BFS

    Dalam algoritma BFS, simpul anak yang telah dikunjungi disimpan dalam suatu antrian. Antrian ini digunakan untuk mengacu simpul-simpul yang bertetangga dengannya yang akan dikunjungi kemudian sesuai urutan pengantrian.Untuk memperjelas cara kerja algoritma BFS beserta antrian yang digunakannya, berikut langkah-langkah algoritma BFS:

    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.









    Depth-first search
    Depth-first search (DFS) adalah proses searching sistematis buta yang melakukan ekpansi sebuah path (jalur) menuju penyelesaian masalah sebelum melakukan ekplorasi terhadap path yang lain. Proses searching mengikuti sebuah path tunggal sampai menemukan goal atau dead end. Apabila proses searching menemukan dead-end, DFS akan melakukan penelusuran balik ke node terakhir untuk melihat apakah node tersebut memiliki path cabang yang belum dieksplorasi.
    Secara formal, DFS adalah sebuah pencarian uninformed yang berlangsung dengan memperluas simpul anak pertama dari pencarian pohon yang muncul dan dengan demikian akan semakin dalam sampai node tujuan ditemukan, atau sampai hits node yang tidak memiliki anak. Kemudian pencarian backtracks , kembali ke node terakhir kebanyakan belum selesai menjelajahi. Dalam implementasi non-rekursif, semua node yang baru diperluas ditambahkan ke stack untuk eksplorasi.
    Kelebihan dan Kelemahan DFS Kelebihan DFS adalah:
    • Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan.
    • Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat.
     Kelemahan DFS adalah:
    • Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete).
    • Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).







    SISTEM PAKAR ARTIFICIAL INTELIGENCE

    Sabtu, 01 Oktober 2016

    SISTEM PAKAR ARTIFICIAL INTELIGENCE


    PENGERTIAN ARTIFICIAL INTELIGENCE

    AI dapat didefinisikan sebagai suatu kajian yang mencoba untuk mengaplikasikan kemapuan manusia dalam memecahkan permasalahan kedalam komputer sehingga komputer dapat melakukan pekerjaan seperti dan sebaik yang dilakukan manusia.
    Definisi lain yang mendeskripsikan tentang AI adalah bahwa AI merupakan teknologi yang diaplikasikan ke dalam komputer sehingga komputer memiliki kemampuan seperti panca indera manusia ditambah dengan logika dan proses belajar dari pengalaman. Defini lebih lengkap tentang AI dibawah berikut

    Schalkof:AI adalah bidang studi yang berusaha menerangkan dan meniru perilaku cerdas dalam bentuk proses komputasi
    Rich dan Knight:AI adalah studi tentang cara membuat komputer melakukan sesuatu yang sampai saat ini orang dapat melakukannya dengan baik
    Luger dan Stubblefield:AI adalah cabang ilmu komputer yang berhubungan dengan otomasi perilaku yang cerdas
    Haag dan keen:AI adalah bidang studi yang berhubungan dengan penangkapan,pemodelan dan penyimpanan kecerdsaan manusia dalam sebuah sistem teknologi informasi sehingga sistem tersebut dapat memfasilitasi proses pengmbilan keputusan yang biasanya dilakukan oleh manusia
    Komputer yang telah mendapatkan tambahan teknologi AI diharapkan memiliki kemampuan lebih dari komputer
    Komputer yang dilengkapi dengan AI diharapkan memiliki kemampuan dan kecerdasan sebagai berikut :
    1.         Berfikir dan menalar
    2.         Memakai penalaran untuk memecahkan masalah
    3.         Menyerap dan menerapkan pengetahuan
    4.         Memperlihatkan kreatifitas dan imajinasi
    5.         Bekerja sesuai dengan situasi yang kompleks dan membingungkan
    6.         Melakukan tanggapan dengan cepat dan berhasil beradatasi
    7.         Mengenali elemen-elemen yang relatif penting dalam sebuah situasi
    8.         Menangani informasi yang rancu, tak lengkap atau  salah



    Dibandingkan dengan kecerdasan alami yang dimiliki oleh manusia, AI memiliki beberapa kelebihan antara lain :
    1.         AI bersifat lebih permanen
    2.         AI lebih mudah diduplikasikan dan disebarkan
    3.         AI dapat di dokumentasikan
    4.         AI lebih konsisten
    5.         AI dapat mengerjakan pekerjaan lbh cepat
    6.         AI dapat mengerjakan tugas lebih baik

    Namun AI memiliki kekurangan jika dibandingkan dengan kecerdasa alami, antara lain :

    1. Untuk menambahkan pengetahuan pada AI harus dilakukan melalui sistem yang dibangun

    2.  AI hanya  bisa bekerja dengan input-input simbolik

    Komponen-kompenan dalam AI

    Ada beberapa kajian dalam bidang AI. Setiap kajian mempunyai kemampuan tertentu untuk diaplikasikan pada komputer. Kajian- kajian tersebut antara lain :



    ROBOTIK
                                                   

















    berupa sebuah robot yang digunakan untuk
     menggantikan manusia dalam mengerjakan
     tugas. Robot adalah perangkat elektronik yang
     dapat diprogramkan untuk melakukan  otomasi
      terhadap suatu tugas yang biasanya dilakukan
     oleh manusia. Robot yang banyak digunakan




    ARTIFICIAL VISION (AV)
                                                    
     Sistem penglihatan buatan yang diberikan pda
     komputer sehingga komputer dapat membe
    dakan bentuk benda.Konsep AV sangat seder
    hana, yaitu menggunakan sistem kamera dan
    video. Kamera menangkap gambar dan
    Mengolahnya menjadi sinyal-sinyal digital dan menepatknnya dalam memori. Selanjutnya program AI akan melakukan analisis terhadap data yang diterima menggunakan prosedur. Program yang digunakan untuk hal ini disebut dengan image procesing. Ada beberapa teknik image procesing yang sudah diteliti bahkan diaplikasikan di berbagai bidang .


    NEURAL NETWORK

    neural network atau jaringan syaraf tiruan adalah sebuah sistem yang meniru pola pemrosesan sinyal syaraf di dalam otak manusia yang berdasarkan pada pengenalan pola. NN terdiri dari sejumlah lapisan elemen  pemrosesan dengan masing-masing lapisan melakukan komputasi sendiri dan melewatkan outputnya kelapisan selanjutnya. Setiap lapisan dalam NN bersifat independen.
    Lapisan pertama dikenal sebagai lapisan input dan lapisan terakhir sebagai lapisan output. Diantara lapisan input dan output biasanya terdapat beberapa lapisan lagi yang dinamakan hidden layer. Seperti halnya manusia yang dapat belajar dari pengalaman sebelumnya,NN dapat juga mempelajari sesuatu dengan cara diberi pelatihan . Setelah NN dapat melakukan pencocokan pola atau melakukan klasifikasi.















    Kaitan Artificial Intelligence dan Expert System

    Sistem pakar merupakan cabang dari kecerdasan buatan, yaitu dengan menyimpan kepakaran dari pakar manusia ke dalam komputer dan meyimpan pengetahuan di dalam komputer sehingga memungkinkan user dapat berkonsultasi layaknya dengan pakar manusia. Program konsultasi tersebut mencoba untuk menirukan proses penalaran seorang pakar dalam memecahkan masalah yang rumit. Sistem pakar disebut juga sebagai aplikasi atau sistem kecerdasan buatan yang banyak dikembangkan dan paling banyak digunakan. Di dalam kecerdasan buatan terdapat dua bagian utama yang dibutuhkan yaitu Knowledge Base dan Inference Engine. Lingkup utama dalam kecerdasan buatan salah satunya adalah sistem pakar. Di dalam sistem pakar sendiri terdapat tiga bagian utama, yaitu Knowledge Base dan Working Memory yang diolah dalam Inference Engine sehingga menghasilkan suatu pemecahan atas suatu masalah.

    contoh-contoh penarapan nya

    • Adver : sebuah prototipe Expert system digunakan untuk menggunakan strategi media periklanan yang sesuai dengan kondisi internal dan eksternal perusahaan dengan parameter biaya iklan per seribu pemirsa.
    • Brickwork expert(Bert) : sebuah Expert system untuk disain bangunan. BERT digunakan untuk memeriksa sebuah disain bangunan, kemudian memberikan beberapa rekomendasi untuk perbaikan. Inputnya bisa dalam bentuk gambar.
    • Delta : Expert system untuk mendiagnosa kerusakan pada mesin-mesin Diesel Electric Locomotive.
    • Dendral : Sistem pakar untuk analisis struktur molekul suatu senyawa yang belum diketahui. Senyawa yang belum diketahui tersebut dianalisis dengan menggunakan “mass spectrometer” dan “nuclear magnetic reconancy equipment”. Data hasil analisis tersebut dimasukkan ke DENDRAL yang akan membuat struktur molekulnya.
    •  Mycin : Expert system untuk mendiagnosa infeksi akibat bakteri dan menyarankan jenis obat dan dosisnya untuk penyembuhan.
    • Opera:OPERator Advisor yang digunakan untuk mendiagnosa dan menangani kerusakan pada suatu jaringan komputer. OPERA dijalankan pada malam hari untuk menggantikan Supervisor System Manager.
    • Prospector : Untuk membantu menemukan lokasi yang mengandung bahan tambang. Basis pengetahuannya berisi kaidah berdasar data empiris dan taksonomi beberapa jenis mineral dan batu-batuan. Untuk mengetahui apakah suatu daerah mengandung bahan tambang , lebih dahulu dilakukan survey keadaan geologi dan pengambilan contoh tanah dan batu-batuan. Berdasarkan data hasil survey tersebut akan diberikan rekomendasi apakah daerah tsb layak untuk dieksplorasi dan akan diputuskan apakah akan dilakukan penggalian atau tidak.
    •  Heatings : Untuk pengontrolan proses pembakaran batubara secara terus menerus dengan menggunakan sensor yang dihubungkan ke komputer. Bila terjadi kerusakan yang menimbulkan bahaya (peralatan & manusia) dapat dengan mudah mengetahui dan memberikan pemecahannya. Misal, bila bila HEATINGS mendeteksi kadar CO melewati ambang batas akan terdengar bunyi alarm dan menyuruh membuka ventilasi. 






    FUZZY LOGIC

    FUZZY LOGIC
                                   
    PENGERTIAN FUZZY LOGIC
    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.
    Fuzzy Logic (Logika Fuzzy) atau biasa juga disebut dengan Logika Samar merupakan suatu cara yang tepat untuk memetakan suatu ruang input ke dalam suatu ruang output didasari oleh konsep himpunan fuzzy.

    Gambar : Pemetaan input-output
    Diantara input dan output terdapat black box. Di dalam black box terdapat proses yang tidak diketahui, bisa didekati dengan pendekatan sistem linear, ekonometri, interpolasi, sistem pakar atau logika fuzzy, dan lain-lain. Namun, seperti yang diungkapkan Lotfi Zadeh: ”Dalam hampir setiap kasus, cara fuzzy lebih cepat dan lebih murah”.
    Logika fuzzy sebagai komponen utama pembangun softcomputing, terbukti telah memiliki kinerja yang sangat baik untuk menyelesaikan masalah-masalah yang mengandung ketidakpastian. Implementasinya luas, baik di bidang engineering, psikologi, social, dan juga bidang ekonomi.
    Logika Fuzzy adalah peningkatan dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Di mana logika klasik menyatakan bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak), logika fuzzy menggantikan kebenaran boolean dengan tingkat kebenara



    CONTOH PENERAPAN
    Alasan Kenpa 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.
    Di bawah ini adalah beberapa contoh aplikasi Fuzzy Logic:
    • Sistem Pengereman Mobil (DAIHATSU).
    • Pengontrol kereta bawah tanah di Sendai, Jepang.
    • Penghematan Konsumsi Daya Listrik AC (Mitsubhishi Heavy Industries Tokyo).

    Logika Fuzzy dengan menggunakan Matlab
    MATLAB adalah sistem perangkat lunak interaktif dengan elemen dasar basis data array. Hal ini memunginkan seorang pengguna (user) dapat memecahkan masalah yang berhubungan dengan komputasi dan matematika serta perhitungan teknik, khususnya yang melibatkan matriks dan vektor dengan waktu yang lebih singkat darik waktu yang dibutuhkan untuk menulis program dalam bahasa C atau FORTRAN.MATLAB dikeluarkan oleh perusahaan Mathwork Inc. Agar dapat menggunakan fungsi fungsi logika fuzzy yang ada pada MATLAB, maka harus diinstalkan terlebih dahulu TOOLBOX fuzzy. Fuzzy logic toolbox memberikan fasilitas Grapihcal User Interface (GUI) untuk memperindah dalam membangun suatu sistem fuzzy.



    ARTIFICIAL NEURAL NETWORK

    ARTIFICIAL NEURAL NETWORK

    PENGERTIAN ANN
    Artificial Neural Network (Jaringan Saraf Tiruan) sudah mulai
    banyak dimanfaatkan sebagai solusi terhadap berbagai macam kasus yang
    muncul beberapa dekade terakhir, sejarah ANN (Artificial Neural Network)
    menunjukan pembahasan terhadap masalah ini muncul sekitar awal tahun
    1900-an namun implementasinya baru banyak muncul beberapa dekade terakhir.
    Pemanfaatan ANN juga mulai merambah dunia security khususnya untuk
    memecahkan masalah-masalah yang sifatnya tidak tetap sehingga sulit untuk
    di pecahkan dengan menggunakan tehnik pemrograman konvensional yang ada
    saat ini.

    Artificial Neural Network merupakan suatu jaringan saraf tiruan yang
    dibangun untuk meniru cara kerja otak manusia. Dengan jaringan saraf tiruan
    maka kita dapat memberikan semacam kecerdasan pada sistem, dimana sistem
    tersebut akan diberikan waktu untuk 'belajar' dan kemudian diharapkan dari
    proses belajarnya, sistem bisa memberikan solusi dari suatu kasus.
    Analoginya seperti mengajarkan seorang anak kecil untuk mengetahui bentuk
    kursi, kita akan menunjukan pada anak tersebut berbagai macam bentuk kursi
    dan bukan kursi. Kita akan memperlihatkan mana saja yang termasuk kursi dan
    mana yang bukan, proses ini disebut proses training. Setelah proses training
    selesai, maka tiba waktunya untuk melakukan test terhadap anak tersebut
    dengan menunjukan suatu bentuk kursi dan menanyakan apakah itu termasuk kursi
    atau bukan. Hal yang menarik adalah pada saat kita menunjukan suatu bentuk
    kursi yang belum pernah diajarkan pada anak tersebut dan apabila itu memang
    variasi dari kursi (dengan ciri misalnya: kakinya ada 4, ada pegangan
    tangannya, bentuknya seperti angka 4, dll) maka dia dapat mengambil
    kesimpulan bahwa benda tersebut adalah kursi, apabila jawaban si anak salah
    maka kita kembali melatihnya (proses training) dengan memasukan bentuk kursi
    yang baru tadi kedalam data latih, sehingga si anak dapat mengambil
    kesimpulan bahwa benda tersebut (dan yang mirip benda tersebut dimasa yang
    akan datang) adalah kursi.





    PENERAPAN AAN PADA SECURITY

    Pemanfaatan ANN juga sudah mulai banyak dibicarakan pada dunia
    security, salah satu impelementasinya diterapkan pada IDS (Intrusion
    Detection System).  Teknik IDS yang umumnya digunakan saat ini adalah
    menggunakan signature serangan untuk menentukan apakah suatu paket termasuk
    dalam jenis serangan tertentu atau bukan, misalnya rule Snort yang merupakan
    salah satu IDS opensource yang sangat populer:

      "alert icmp $EXTERNAL_NET any <> $HOME_NET any (msg:"DDOS Stacheldraht
       handler->agent (ficken)"; content:"ficken"; itype:0;icmp_id:6667;
       reference:url,staff.washington.edu/dittrich/misc/stacheldraht.analysis;
       classtype:attempted-dos; sid:1856; rev:2;)"

    apabila ada paket yang melintasi jaringan dan ditangkap oleh IDS (dalam hal
    ini Snort) dan packet tersebut memenuhi kriteria rules diatas maka IDS akan
    dapat langsung memutuskan bahwa telah terjadi suatu jenis serangan DDOS yang
    memanfaatkan tools stacheldracht, dan snort akan langsung mengambil tindakan
    yang telah ditetapkan sebelumnya (misal: mengirimkan pesan alert via sms/mail
    ke administrator sistem).

            Yang menjadi masalah adalah jenis serangan akan terus berkembang dan
    umumnya signature serangan tersebut baru akan diketahui apabila telah jatuh
    'korban' oleh serangan baru tersebut, hal ini disebabkan jenis serangan baru
    belum terdapat datanya di database signature IDS. Untuk mengatasi masalah
    tersebut maka saat ini mulai banyak dikembangkan suatu IDS yang menggunakan
    teknologi ANN sehingga diharapkan IDS dapat mengenali suatu jenis serangan
    baru (walaupun sifatnya baru 'memperkirakan') dan mengambil langkah yang
    sesuai, sehingga sistem dapat lebih terlindungi dari jenis serangan baru
    tersebut.

            ANN sifatnya memperkirakan, yang artinya sistem akan diberikan suatu
    kecerdasan sehingga apabila ada jenis serangan baru yang belum pernah
    dilatihkan pada sistem, dia bisa berpikir "sepertinya ini termasuk dalam
    kategori jenis serangan DOS stacheldracht" misalnya. Dan kecerdasan sistem
    tergantung pada proses trainingnya, semakin baik jenis data yang dilatihkan
    maka semakin baik kecerdasan sistem tersebut.











    DASAR-DASAR ALGORITMA AAN


            Dasar teori yang menjelaskan implementasi ANN sangat banyak di
    Internet, intinya...mesin ANN bekerja pada 2 mode, yang pertama adalah
    'training' dan yang kedua adalah 'execution'. Pada saat proses training,
    kita akan melatih sistem dengan memberikannya sebanyak mungkin contoh
    data 'input' serta 'output' yang akan dihasilkan oleh data input tersebut.
    Contoh paling mudah adalah mengajarkan sistem operasi penjumlahan:

            input ke-1 = 0.1
            input ke-2 = 0.2
            output = 0.3
    pada contoh tersebut, kita mengajarkan pada sistem apabila inputan terdiri
    dari angka "0.1" dan "0.2" maka outputnya adalah "0.3". Jika hanya diberikan
    satu contoh maka sistem tidak akan belajar dengan baik, untuk itu sistem
    sebaiknya diberikan contoh data dengan jumlah yang sangat besar sehingga
    kecerdasan sistem bisa lebih handal.

            Konsep pertama yang harus di pahami sebelum masuk pada tahap coding
    adalah layer. ANN umumnya terdiri dari 3 layer, yaitu "input layer", "hidden
    layer", dan "output layer". Ketiga layer inilah yang akan membentuk topologi
    ANN. Tiap layer terdiri dari unit-unit node yang jumlahnya dapat kita
    tentukan sendiri, bisa dibayangkan bahwa tiap node pada ANN ibaratnya seperti
    neuron pada otak manusia. Jumlah node pada input layer tergantung pada jumlah
    data input yang akan masuk pada sistem, misalnya pada operasi penjumlahan
    diatas maka jumlah node pada input layer sebanyak 2 buah.

            Jumlah node pada hidden layer bervariasi, dan terdapat banyak
    teori yang dapat menjelaskan bagaimana mencari jumlah node yang tepat
    pada hidden layer, namun pada umumnya 5 buah node pada hidden layer suatu
    ANN sudah mencukupi  untuk memecahkan berbagai macam kasus. Node pada
    output layer tergantung dari jumlah output pada sistem, pada contoh
    operasi penjumlahan diatas dapat dilihat bahwa jumlah node di output
    layernya sebanyak 1 buah.

            Konsep kedua yang penting adalah nilai Error minimum yang diharapkan.
    Pada saat ANN di inisialisasi akan dibangkitkan nilai random untuk koneksi
    antar node dari suatu layer dengan layer sesudahnya, jadi antar node-node
    di hidden layer saling terkoneksi satu sama lain dengan node-node di hidden
    layer, dan antar node-node di hidden layer akan saling terkoneksi satu sama
    lain dengan node-node pada output layer. Nilai koneksi antar node tersebut
    sering disebut 'bobot'. Nilai bobot inilah yang akan menentukan kecerdasan
    suatu sistem. Pada saat proses training, nilai bobot tersebut akan terus
    berubah sehingga didapatkan kesesuaian antara input dengan output dengan
    Error minimum. Dengan kata lain, pada proses training kita akan menentukan
    nilai minimum error yang bisa di tolerir oleh sistem....seperti yang
    disampaikan diatas bahwa sistem tidak akan memberikan kepastian jawaban untuk
    suatu kasus yang tidak pernah dilatihkan kepadanya, pasti ada nilai Error
    dari jawaban sistem dengan jawaban yang seharusnya, nah nilai Error tersebut
    yang harus di definisikan oleh kita sebelum melatih sistem sehingga sistem
    bisa menjawab dengan tingkat kebenaran semaksimal mungkin (misal: tingkat
    kebenaran sistem 99,9999% dengan nilai Error 0.0001).