Rabu, 02 Januari 2013

ARTIFICIAL INTELLIGENCE


KECERDASAN BUATAN




DAFTAR PUSTAKA  :

1.            Louis E. Frenzel, Jr., Crash Course in Artificial Intelligence and Expert System, Howard W. Sams & Co., Indianapolis, USA.
2.            Suparman, Mengenal Artificial Intelligence, Penerbit Andi Offset Yogyakarta, Edisi pertama, 1991.
3.            Sandi Setiawan, Artificial Intelligence, Penerbit Andi Offset Yogyakarta, Edisi pertama, 1993.
4.            M. Farid Azis, Belajar Sendiri Pemrograman Sistem Pakar, PT Elex Media Komputindo, Jakarta, 1994.
5.            Uung Ungkawa, Bahasa Pemrograman Logika Turbo Prolog, Penerbit Andi Offset Yogyakarta, Edisi pertama 1992.
6.            Tjendry Harianto, Bahasa Turbo Prolog, Penerbit Andi Offset Yogyakarta, Edisi pertama 1992.
7.            Sandi  Setiawan, Mengenal Network Saraf, Penerbit Aandi Offset Yogyakarta, 1992.
8.            Prolog Tutorial by A. Aaby, http://cs.wwc.edu/KU/PR/Prolog.html



SILABUS MATA KULIAH

1.            Pendahuluan
2.            Pengertian Kecerdasan Buatan
3.            Representasi Pengetahuan
4.            Pendekatan Penyelesaian Masalah
5.            Pembahasan Beberapa Bidang Kecerdasan Buatan
6.            Pengenalan Pemrograman Kecerdasan Buatan


TUJUAN PERKULIAHAN

Mempelajari pengertian dan konsep kecerdasan buatan (artificial intelligence) kemudian menerapkannya dalam berbagai bidang disiplin ilmu dengan membentuk pemrograman yang spesifik.




1.     PENDAHULUAN




Riwayat Singkat Kecerdasan Buatan
Kecerdasan Buatan sebenarnya sudah dimulai sejak musim panas tahun 1956. pada waktu itu sekelompok pakar komputer, pakar dan peneliti dari disiplin ilmu lain dari berbagai akademi, industri serta berbagai kalangan berkumpul di Dartmouth College untuk membahas potensi komputer dalam rangka menirukan atau mensimulasi kepandaian manusia. Beberapa ilmuwan yang terlibat adalah Allen Newel, Herbert Simon, Marvin Miskey, Oliver Selfridge, dan John McCarthy.

Sejak saat itu, para ahli mulai bekerja keras untuk membuat, mendiskusikan, merubah dan mengembangkan sampai mencapai titik kemajuan yang penuh. Mulai dari laboratorium sampai kepada pelaksanaan kerja nyata.

Pada mulanya Kecerdasan Buatan hanya ada di universitas-universitas dan laboratorium-laboratorium penelitian, dan hanya sedikit sekali – jika ada – produk praktis yang sudah dikembangkan.

Menjelang akhir tahun 1970-an dan awal tahun 1980-an, mulai dikembangkan secara penuh dan hasilnya secara berangsur-angsur mulai dipasarkan. Saat ini, sudah banyak hasil penelitian yang sedang dan sudah dikonversikan menjadi produk nyata yang membawa keuntungan bagi pemakainya.


Revolusi Pengolahan Data oleh Komputer
Awalnya komputer hanya mengolah data, kemudian menghasilkan informasi untuk pengambilan  keputusan. Seiring dengan perkembangan, saat ini komputer dapt mengolah pengetahuan sehingga proses pengambilan keputusan menjadi lebih cepat dan akurat.

Gambar 1. Pengolahan Data, Informasi dan Pengetahuan

Apabila komputer mengerjakan pengolahan data, maka manusia harus mengkonversi data tersebut menjadi informasi yang dapat digunakan dalam mengolah pengetahuan untuk menghasilkan keputusan.
Apabila komputer mengerjakan pengolahan informasi – yang berarti juga termasuk pengolahan data – maka manusia cukup mengerjakan pengolahan pengetahuan untuk menghasilkan keputusan.
Akan tetapi apabila komputer dapat melakukan pengolahan pengetahuan – juga terkandung di dalamnya pengolahan data dan ionformasi – maka akan sangat sedikitlah bagian pekerjaan yang harus dilakukan manusia, termasuk dalam penerapan hasil untuk keperluan tertentu.

Teknik yang membuat komputer mampu mengolah pengetahuan ini dinamakan teknik kecerdasan buatan (artificial intelligence technique). Dengan pendekatan ini manusia mencoba membuat komputer dapat berpikir seperti cara yang dipakai manusia dalam memecahkan masalah.


Apakah Komputer Dapat Berpikir ?

Terdapat beberapa tingkat kecerdasan seperti yang diilustrasikan oleh gambar berikut.



Gambar 2. Spektrum Kecerdasan atau “kemampuan arah”


Pikiran manusia menduduki tingkat tertinggi dalam spektrum kecerdasan, rangkaian logika sederhana ada pada tingkat spektrum terendah, sedangkan Kecerdasan Buatan terletak pada kedua hal tersebut di atas.

Beberapa pertanyaan seputar Kecerdasan Buatan yang diterapkan pada komputer:
-          Apakah kemudian komputer menjadi lebih pintar?
-          Apakah benar, komputer sekarang mempunyai kecerdasan seperti yang dimiliki manusia dalam melaksanakan tugasnya ?
-          Apabila kecepatan dan kemudahan serta peningkatan produktifitas kerja dan kemampuannya melakukan pekerjaan dengan baik sudah tercapai, apakah komputer itu sudah bisa dikatakan mempunyai tingkat kecerdasan tertentu ?
-          Bagaimana kita bisa menyatakan bahwa komputer itu memiliki kecerdasan ?
-          Kriteria apakah yang bisa digunakan untuk sampai pada kesimpulan itu ?

Kenyataannya, hampir semua program Kecerdasan Buatan yang dilaksanakan dengan teknik pelacakan dan pencocokan pola mengarah kepada suatu kesimpulan bahwa komputer tidak benar-benar pintar.

Kita boleh memberi informasi sebanyak-banyaknya kepada komputer dan beberapa pengarahan tentang cara penggunaanya. Dengan menggunakan informasi dan kriteria yang berlaku, komputer bisa menemukan suatu solusi.

Semua yang dilakukannya itu merupakan percobaan atas berbagai alternatif dan usaha untuk menemukan beberapa kombinasi yang cocok dengan kriteria terancang. Bila semua itu sudah dikerjakan, maka secara tipikal solusi tersebut bisa dicapai.

Dengan demikian, walaupun komputer itu tidak betul-betul pintar, tetapi kelihatannya seperti “berfikir” dan sering memberikan solusi yang menakjubkan.

Seorang ahli matematika dan Kecerdasan Buatan bernama Allan Turing berkebangsaan Inggris yang memiliki sumbangan besar dalam teori kemampuan penghitungan (computability), bergumul dengan pertanyaan apakah sebuah mesin dapat berpikir atau tidak ? dengan melakukan sebuah percobaan yang disebut dengan imitasi permainan (pseudo game).

Dalam uji ini, dilibatkan seorang penanya (manusia), dan 2 obyek yang ditanyai (manusia dan mesin). Penanya dan 2 obyek yang ditanyai itu terletak pada jarak yang jauh sehingga tidak dapat melihat atau berbicara dengan kedua obyek yang ditanyai itu. Penanya hanya dapat berkomunikasi dengan keduanya lewat suatu alat terminal komputer. Penanya mengira bahwa ia sedang berhubungan dengan dua operator lainnya. 

Dalam mengajukan pertanyaan, penanya bebas memilih pertanyaan. Misalnya, untuk mengetahui mana obyek yang benar-benar manusia, penanya dapat mengajukan pertanyaan yang didasarkan pada sifat emosi kedua obyek yang ditanyai, yakni pertanyaan tentang suatu puisi atau karya seni lain.

Walaupun secara dasar percobaan itu masih menimbulkan kesangsian manusiawi, tetapi Turing berpendapat bahwa jika penanya tidak dapat membedakan mana yang manusia dan mana yang mesin, maka mesin tersebut dapat diasumsikan sebagai cerdas.


Beberapa hal penting dari uji ini adalah
1.      Memberikan tanda-tanda yang obyektif dari kecerdasan, yaitu respon tingkahlaku dari kecerdasan yang telah dikenal terhadap sejumlah pertanyaan tertentu.
Cara ini memberikan standar dalam menentukan kecerdasan dan menghindarkan beda pendapat tentang apa itu sifat kecerdasan yang sebenarnya.

2.      Dapat membuat kita mempunyai pedoman dalam menerima jawaban yang membingungkan dan ketidakmampuan obyek menjawab pertanyaan kita, terlepas apakah mesin tersebut menggunakan proses internal yang memadai, atau tidak peduli apakah komputer itu sadar atau tidak dengan responya sendiri.

3.      Menghapus setiap bias yang menguntungkan organisme hidup (termasuk manusia) dibandingkan mesin cerdas dengan memaksa si penanya agar hanya memfokuskan perhatiannya pada jawaban-jawaban dari pertanyaan yang diajukannya.

Uji Turing ini menjadi dasar bagi banyak strategi yang digunakan dalam menilai program-program Kecerdasan Buatan modern.

Setiap percobaan untuk inteligensia mempunyai nilai dan kedayagunaan yang terbatas. Dia mungkin bisa mengerjakan suatu kasus, tapi belum tentu bisa mengerjakan kasus yang lain.


Faktor Pendorong Perkembangan Kecerdasan Buatan

Faktor pendorong bagi terlaksananya aplikasi Kecerdasan Buatan adalah
1.      Pesatnya perkembangan teknologi perangkat keras.
Hampir semua aplikasi Kecerdasan Buatan memerlukan perangkat keras yang memiliki kecepatan daya tampung yang lebih tinggi, walaupun hanya menjalankan perangkat lunak Kecerdasan Buatan yang paling sederhana sekalipun. Disamping itu, harga perangkat keras yang dengan kemampuan lebih memiliki harga yang relatif semakin murah.


2.      Pengembangan perangkat lunak Kecerdasan Buatan
Dewasa ini bahasa dan alat pemrograman baru yang lebih canggih sudah banyak dikembangkan dan dipasarkaan secara luas, termasuk bahasa khusus untuk Kecerdasan Buatan.


3.      Perkembangan khusus komputer pribadi (personal computer / PC).
Sekarang sudah sangat banyak orang menggunakan komputer mikro (microcomputer) khususnya komputer pribadi baik di sekolah, perusahaan, atau bahkan di rumah yang menyebabkan permintaan mereka akan perangkat lunak yang lebih unggul untuk pekerjaan mereka.


4.      Turut andilnya para investor dalam mendanai penelitian dan pengembangan teknologi Kecerdasan Buatan.

Hal ini mengakibatkan terjadinya semacam tekanan di kalnganan masyarakat Kecerdasan Buatan untuk berlomba-lomba dalam mempercepat gerak dan langkah penelitiannya dan segera memproduksi Kecerdasan Buatan dalam waktu yang singkat.



Masalah utama Kecerdasan Buatan adalah sulitnya merumuskan dan memvisualisasi inteligensia itu sendiri, karena mempunyai arti yang banyak.

Walaupun AI telah banyak membuat komputer menjadi lebih pintar dan lebih canggih, tapi tampaknya impian manusia agar bisa membuat komputer yang betul-betul bisa membuat duplikasi otak manusia, atau bisa menjadi pengganti otak manusia yang sebenarnya masih jauh dari kenyataan. Mungkin belum bisa terlaksana pada zaman atau masa kini.

Kenyataannya, masih banyak persoalan-persoalan yang timbul tentang apakah kita akan selamanya bisa membuat sebuah komputer yang secara akurat dapat melakukan hal-hal yang terbaik seperti yang dilakukan oleh pikiran manusia.

Hubert Dreyfus – ahli filsafat dari Universitas California di Berkeley – berpendapat bahwa masyarakat sekarang ini sedang dikacaukan oleh oleh pengertian Kecerdasan Buatan yang mengira seolah-olah kegunaannya sangat berlebihan dan tidak mungkin bisa mencapai tujuan. Dreyfus berkata: Kita tidak akan pernah bisa membuat suatu kaidah untuk semua cara kita berfikir, karena hal itu sangat kompleks.

Tentu saja, para peneliti yang ahli akan lebih bisa mendekati pada komputer pintar, tapi masih banyak masalah yang harus dijawab. Misalnya, bagaimana kita bisa mencerminkan keterampilan dalam menangani masalah manusia, kemampuan belajar, selera, imajinasi, emosi, kreativitas dan ‘rasa berani’. Untuk menjawab masalah-masalah tersebut di atas, para ahli kembali pada bidang yang berkaitan, seperti: filosofi, psikologi, linguistik dan sains syaraf (neuro science) dan tentu saja sains komputernya itu sendiri. Dengan demikian akan lahir bidang sains kognitif antar disiplin ilmu tersebut.

Walaupun masih banyak kritik, metode Kecerdasan Buatan tetap memperlihatkan nilai lebih dibanding dengan yang lain. Teknik Kecerdasan Buatan menunjukkan bagaimana kita berfikir dan bagaimana kita menerapkan inteligensia dengan lebih baik. Teknik Kecerdasan Buatan akan membuat komputer lebih mudah digunakan dan pengetahuan akan semakin tersebar luas di kalangan masyarakat.

Kita membuat komputer pintar bukan untuk menggantikan manusia tapi hanya sekedar untuk menjadi alat bantu manusia.

  
II. PENGERTIAN KECERDASAN BUATAN




Kedudukan Ilmu Kecerdasan Buatan


 
  















Gambar 2. Bagan Kedudukan Ilmu Kecerdasan Buatan.



Apakah Kecerdasan Itu ?
Kecerdasan berasal dari kata dasar cerdas. Cerdas dapat memiliki konotasi makna lebih baik, cepat, capable, adapted dengan kondisi umumnya/normal. Cerdas juga dapat berarti kemampuan untuk mengerti/memahami.

Kecerdasan (intelligence) dimiliki seseorang yang pandai melaksanakan pengetahuan yang dimilikinya.

Walaupun seseorang memiliki banyak pengetahuan, tetapi bila ia tidak bisa melaksanakannya dalam praktek, maka ia tidak bisa digolongkan ke dalam kecerdasan.

Dengan perkataan lain, kecerdasan adalah kemampuan manusia untuk memperoleh pengetahuan dan pandai melaksanakannya dalam praktek.


Definisi Kecerdasan Buatan
Kecerdasan buatan merupakan upa-bidang ilmu komputer (computer science) yang khusus ditujukan untuk membuat perangkat lunak dan perangkat keras yang sepenuhnya bisa menirukan beberapa fungsi otak manusia. Atau cabang ilmu komputer yang mempelajari otomatisasi tingkah laku cerdas (intelligent).


Kecerdasan harus didasarkan pada prinsip-prinsip teoritikal dan terapan yang menyangkut :
-          struktur data yang digunakan dalam representasi pengetahuan (knowledge representation),
-          algoritma yang diperlukan dalam penerapan pengetahuan itu,
-          teknik-teknik bahasa dan pemrograman yang dipakai dalam implementasinya.

Kecerdasan buatan menawarkan baik media maupun uji teori kecerdasan. Teori-teori semacam ini dapat dinyatakan dalam bahasa program komputer dan dibuktikan melalui eksekusinya pada komputer.


Bagian-bagian Kecerdasan Buatan
Bagian utama aplikasi kecerdasan buatan adalah pengetahuan (knowledge), yaitu suatu pengertian tentang beberapa wilayah subyek yang diperoleh melalui pendidikan dan pengalaman.

Pengetahuan merupakan informasi terorganisir dan teranalisa agar bisa lebih mudah dimengerti dan bisa diterapkan pada pemecahan masalah dan pengambilaan keputusan.

Pengetahuan terdiri dari fakta, pemikiran, teori, prosedur, dan hubungannya satu sama lain.


Gambar 3. Penerapan konsep Kecerdasan Buatan dalam komputer.


Komputer tidak mungkin mendapatkan pengetahuannya sendiri dengan belajar, berpengalaman atau melakukan penelitian, akan tetapi ia memperolehnya melalui upaya yang diberikan oleh seorang pakar manusia.

Hampir semua pangkalan pengetahuan (knowledge base) sangat terbatas, dalam arti terfokuskan kepada suatu masalah khusus. Pada saat pangkalan pengetahuan itu sudah terbentuk, teknik Kecerdasan Buatan bisa digunakan untuk memberi kemampuan baru kepada komputer agar bisa berfikir, menalar, dan membuat inferensi (mengambil keputusan berdasarkan pengalaman) dan membuat pertimbangan-pertimbangan yang didasarkan kepada fakta dan hubungan-hubungannya yang terkandung dalam pangkalan pengetahuan itu.

Dengan pangkalan pengetahuan dan kemampuan untuk menarik kesimpulan melalui pengalaman (inferensi), komputer dapat disejajarkan sebgai alat bantu yang bisa digunakan secara praktis dalam memecahkan masalah dan pengambilan keputusan serta bisa mencapai satu atau lebih solusi alternatif pada maslah yang diberikan.


Problema Apa Saja yang digumuli oleh Kecerdasan Buatan ?
Yang mula-mula digeluti oleh Kecerdasan Buatan adalah pembuktian teorema dan permainan (game). Misalnya Newell, ahli teori logika, berusaha untuk membuktikan teorema-teorema matematika dan Samuel yang membuat program permainan catur. Kemudian para periset Kecerdasan Buatan terus mengembangkan berbagai teknik baru untuk menangani sejumlah besar persoalan, termasuk persepsi, pemahaman bahasa alamiah, dan problema spesifik seperti diagnosa medis.

Persoalan-persoalam yang ditangani oleh Kecerdasan Buatan adalah
1.      pembuktian teorema (theorem proving), misalnya: MACSYMA untuk tugas-tugas matematika.
2.      permainan (game), seperti: chess, tic (= saraf tak sadar) tac toe (= jari kaki), othelo, dan sebagainya.
3.      pemecahan problema umum (general problem solving), misalnya pengambilan keputusan otomatis (automated decision making) dan pemodelan kinerja manusia.
4.      persepsi / perception (visi / vision dan percakapan / conversation)
5.      pemahaman bahasa alamiah (natural language), misalnya ELIZA yang dapat memberikan saran psikologis.
6.      pengenalan pola (pattern recognition), seperti pengolahan citra digital untuk kebutuhan ramalan cuaca, foto (kopi), monitor tv, dan sebagainya.
7.      pemecahan problema pakar (expert), mencakup bidang matematika simbolik, diagnosa medis, rekayasa rancang bangun, analisis kimia.
8.      pembuatan perangkat lunak otomatis (automated software generation).

Bidang-bidang teknik kecerdasan buatan diantaranya adalah
F  sistem pakar (expert system),
F  robot (robotics),
F  logika samar (fuzzy logic),
F  jaringan syaraf (neural networks) tiruan, dan
F  pengolahan bahasa alami (natural language processing)
F  pengolahan citra.


Sifat Penting Kecerdasan Buatan

Beberapa sifat penting Kecerdasan Buatan yang muncul dalam pelbagai bidang penerapannya :
1.      Digunakannya komputer untuk melakukan pertimbangan dengan proses yang memakai simbol.
2.      Pemfokusan ditujukan pada persoalan yang tidak memberikan respon terhadap solusi algoritmik.
Hal inilah yang mendasari pencarian (search) heuristik sebagai teknik pemecahan problema Kecerdasan Buatan.

3.      Usaha yang dilakukan lebih ditujukan untuk menangkap dan memanipulasi sifat-sifat kualitatif penting dari suatu situasi daripada metode numerik.
4.      Usaha yang dilakukan adalah untuk menangani arti-arti semantik dan bentuk sintaksis.
5.      Jawaban yang diberikan tidaklah eksak atau optimal, namun lebih bersifat cukup (sufficient).
Ini merupakan hasil penting dalam metode pemecahan problema heuristik pada situasi dimana hasil yang eksak atau optimal akan berharga terlalu mahal atau tidak mungkin dilakukan.
6.      Penggunaan sejumlah besar pengetahuan khusus dalam memecahkan persoalan. Ini merupakan dasar bagi sistem pakar.
7.      Penggunaan pengetahuan tingkat meta (meta-level) untuk mempengaruhi pengendalian lebih canggih dari strategi pemecahan problema.
Meskipuan hal ini merupakan persoalan yang sangat sulit dan hanya ditujukan pada sejumlah kecil sistem, namun muncul sebagai obyek riset yang penting.


Proses Komputasi Kecerdasan Buatan

Perangkat lunak Kecerdasan Buatan didasarkan kepada representasi dan manipulasi simbol (symbol).

Sebuah simbol bisa merupakan huruf, kata atau bilangan yang digunakan untuk menggambarkan obyek, proses dan saling hubungannya. Ia bisa merupakan cetakan atau elektronik.

Obyek bisa berupa orang, benda, ide, pikiran, peristiwa atau pernyataan suatu fakta.

Dengan menggunakan simbol memungkinkan komputer bisa menciptakan suatu basis data yang menyatakan fakta, pikiran dan hubungannya satu sama lain.

Berbagai proses digunakan untuk memanipulasi simbol agar mampu memecahkan masalah. Pengolahannya bersifat kwantitatif, dan bukan kwalitatif seperti halnya komputasi yang didasarkan kepada algoritma.

Apabila basis pengetahuan, fakta dan hubungannya sudah dibuat, maka penggunaannya untuk memecahkan masalah harus sudah dimulai. Teknik dasar untuk melakukan penalaran dan menarik kesimpulan dari pengalaman melalui basis pengetahuan adalah pelacakan (searching) dan pencocokan pola (pattern matching). Secara harfiah komputer terus memburu dan dan mencari pengetahuan yang ada sampai ia menemukan jawaban yang terbaik atau jawaban yang paling cocok.

Walaupun secara langsung pemecahan Kecerdasan Buatan tidak didasarkan kepada algoritma, tetapi sebenarnya dalam implementasi proses pelacakan, algoritma tetap digunakan. Program yang didasarkan kepada algoritma melaksanakan manipulasi simbolik yang menyebabkan suatu masalah dapat terpecahkan dengan cara yang sangat mendekati dengan cara kerja berfikir manusia.


Persamaan dan Perbedaan Konsep Komputasi Antara Kecerdasan Buatan dengan Komputasi Konvensional

Persamaannya :
1.      Sama-sama mengolah simbol-simbol yang dapat berupa huruf, kata, atau bilangan yang digunakan untuk menggambarkan obyek, proses, dan saling hubungannya. Obyek dapat berupa orang, benda, ide, pikiran, peristiwa atau pernyataan suatu fakta.
2.      Menggunakan komputer digital untuk melaksanakan operasi.

Perbedaanya :

KOMPUTASI KONVENSIONAL
KECERDASAN BUATAN
Menggunakan fungsi otak manusia.
Meniru beberapa fungsi otak manusia.
Komputer diperintahkan untuk  menyelesaikan suatu masalah.
Komputer diberitahu tentang suatu masalah.
Hanya dapat ditulis dalam bahasa pemrograman biasa seperti Assembler, C/C++, Fortran, Basic dan Pascal.
Programnya dapat ditulis dalam semua bahasa pemrograman termasuk bahasa pemrograman khusus untuk aplikasi Kecerdasan Buatan seperti Prolog dan LISP.
Dapat dijalankan pada semua jenis komputer tetapi tidak dibuatkan hardware  khusus.
Dapat dibuatkan hardware khusus dan dapat pula dijalankan pada semua jenis komputer.
Komputer diberikan data dan program yang berisi spesifikasi langkah demi langkah bagaimana cara data itu digunakan dan diolah untuk menghasilkan solusi.
Komputer diberi pengetahuan tentang suatu wilayah subyek masalah tertentu dengan ditambah kemampuan inferensi.
Didasarkan pada suatu algoritma yang dapat berupa rumus matematika atau prosedur berurutan yang tersusun jelas.
Didasarkan pada repesentasi dan manipulasi simbol.
Pengolahan obyek bersifat kwalitatif.
Pengolahan obyek bersifat kwantitatif.


Keuntungan dan Kerugian / Kelemahan Kecerdasan Buatan

1.            Komputer masa depan akan memberikan kenikmatan, kenyamanan, dan kesenangan yang lebih bagi penggunanya, tetapi sebaliknya akan mendorong harga komputer menjadi semakin mahal.
Hal-hal yang ditawarkan bagi para pengguna komputer Kecerdasan Buatan :
-          akan bisa berkomunikasi dengan komputer dengan bahasa alami / bahasa manusia sehari-hari
-          akan terbebas dari keharusan belajar bahasa pemrograman dan sistem operasi.
-          para pengguna komputer yang tidak terlatih sekalipun akan menghasilkan karya yang sangat berguna bagi kepentingannya dengan menggunakan komputer
-          menggunakan komputer akan tidak lebih sulit daripada menggunakan pesawat telepon


2.            Komputer akan menjadi semakin lebih berguna.
Hal ini karena bidang-bidang masalah yang tadinya tidak dapat dipecahkan oleh komputer kini akan dapat dapat dipecahkan dengan teknik Kecerdasan Buatan.
3.            Biaya pengembangan dan penelitian Kecerdasan Buatan sangat mahal.
4.            Pengembangan aplikasi Kecerdasan Buatan merupakan hal yang sangat sulit dan diperlukan waktu yang sangat lama.
5.            Masih sedikitnya perangkat lunak khusus untuk Kecerdasan Buatan.
Padahal dengan perangkat luinak khusus ini, pekerjaan pembuatan dan pengembangan perangkat lunak Kecerdasan Buatan menjadi lebih mudah dan cepat.
6.            Belum terciptanya antarmuka (interface) bahasa alami khusus untuk Kecerdasan Buatan.
Perangkat lunak Sistem Manajemen Basis Data (DataBase Management System / DBMS) merupakan salah satu tipe perangkat lunak konvensional pertama yang sudah bisa mengambil keuntungan dari terciptanya bahasa alami ini.
Perangakat lunak DBMS ini bisa lebih cepat dan lebih mudah mengambil data yang disimpan dalam basis data tanpa harus menggunakan teknik pemrograman yang rumit.
































III. KONSEP KONSEP DALAM KECERDASAN BUATAN




1.      Agen Cerdas
Agen (agent) adalah sesuatu yang dapat melihat, merasakan (perceiving), memahami, dan mengerti lingkungannya melalui detektor (detektor) / sensor (censor) dan bertindak (acting) atas lingkungan itu pula melalui media sarananya (effector).

Manusia mempunyai agen berupa mata, telinga, dan sebagainya yang berupa detektor/sensor. Sedangkan tangan, kaki, mulut, dan sebagainya merupakan efektornya. Robot mempunyai kamera, detektor infra merah, dan sebagainya sebagai sensor; dan motor-motor listrik, lengan mekanik sebagai efektornya.

Tugas dari Kecerdasan Buatan adalah merancang program agen (agent program), yaitu suatu fungsi yang mengimplementasikan peta agen dari persepsi hingga aksi. Sedangkan program yang dijalankan tersebut memerlukan sebuah peralatan tertentu yang dapat berupa komputer atau perangkat keras khusus untuk menangani tugas tertentu yang dikenal sebagai arsitektur (architecture).


2.      Komponen Pendukung Agen Cerdas
Visi (Vision)
Visi merupakan indera yang paling mengesankan / impresif (impressive). Informasi tentang dunia luar (environment) diberikan secara detail tanpa butuh banyak usaha.

Visi merupakan salah satu obyek studi Kecerdasan Buatan yang paling intensif dan salah satu cara untuk memasukkan fenomena fisik ke dalam representasi internal (internal representation). Visi dimulai dari mata, alat untuk menangkap dan memfokuskan cahaya yang memantul dari obyek, setiap titik dari obyek. Merupakan problematika bagaimana menciptakan alat yang dapat bekerja seperti mata. Sampai akhirnya pada tahun 1950-an ditemukannya teori pengenalan pola (pattern recognition).


Text Box: Citra mentah

Gambar 3.1. Tahapan pemrosesan visual
Bahasa (Language)
Sebagaimana pada visi, problematika dalam bahasa adalah bagaimana membawa informasi yang disediakan dunia luar dan diterjemahkan ke dalam representasi internal dengan tepat. Dengan adanya penelitian di bidang Kecerdasan Buatan ini telah menimbulkan kebangkitan bahasa dari model konvensional yang hanya mengandalkan bilangan (numerical) dan teks (text) ke arah manipulasi entitas simbolik dan representasi kompleks.

Untuk tingkat yang lebih luas, studi tentang bahasa ini lebih banyak menggunakan istilah representasi semantik untuk mewakili representasi internal.

Tabel berikut memperlihatkan hubungan antara bahasa pemrosesan konvensional dan bahasa komputasi.


Tabel 3.1. Konsep bahasa pemrograman konvensional v.s bahasa pemrograman Kecerdasan Buatan.

Bahasa Pemrograman Konvensional
Bahasa Pemrograman Kecerdasan Buatan
Komputasi bersifat manipulasi teks dan bilangan
Berupa simbol, konsep, aturan, relasi.
Algoritma prosedural sebagai pemecahan masalah
Bahasa deskriptif (menggambarkan fakta dan relasi-relasi yang diketahui).
Menentukan urutan langkah kepada pemecahan.
Searching/heuristic dipakai untuk pemecahan.
Kesimpulan yang deterministik secara keseluruhan
Tidak diketahui jika kumpulan algoritma bertemu
Tipe data karakter dan angka
Tipe data atom, obyek, listing program
Peubah terdeklarasi sebelumnya dan bertipe
Tidak perlu pendeklarasian sebelumnya (peubah tipe tertentu dapat dibuat jika diperlukan dalam proses)
Peubah berdimensi tetap
Dimensi dari struktur data dapat berkembang atau menyusut menurut proses pemecahan
Representasi informasi yang pasti/tepat
Representasi informasi yang tidak pasti
Jawaban eksak/pasti/tepat yang dicari
Jawaban memuaskan seperti apapun dicaris


Tahapan analisis bahasa untuk melakukan pemecahan masalah dalam bidang Kecerdasan Buatan adalah sebagai berikut:
1.        acoustic-phonetic, yaitu tanggung jawab membawa suar dan menerjemahkan input ke dalam kata-kata.
2.        morphological-syntactic, adalah tanggung jawab membawa dan menetapkan bentuk sintak dan ucapan
3.        semantic_pragmatic, adalah tanggung jawab menyiapkan arti analisis ucapan tersebut.


Gambar 3.2. tiga tingkat analisis linguistik.

Contoh:
Jika kita menemukan sebuah suara ‘k’ seperti “kite”, diikuti dengan suara ‘a’ seperti “apple”, diikuti dengan suara ‘t’, maka kita cukup beralasan untuk menyimpulkan bahwa kita mendengar kata “cat”.

Pada tingkat selanjutnya, sintaks suatu bahasa membantu memutuskan bagaimana kata digabungkan untuk membuat makna yang lebih luas. Inilah apa yang disebut dengan struktur fungsional (functional structure). Hingga kita berusaha memahamkan suatu kalimat seperti “Sebuah toko menjualkan pedagang seekor anjing”. Dari kalimat tersebut perlu ketegasan makna siapa atau apa yang dijual dan kepada siapa.

Untuk  mengatasi problem ketegasan makna di atas, diperlukan sebuah representasi internal yang dapat mengarahkan informasi sesuai dengan maksud. Level representasi internal ini berada dalam wilayah semantik dan pragmatik, dan sebagai intermediate structure antara kalimat dengan representasi internal. Sebagian peneliti Kecerdasan Buatan sepakat untuk menggunakan parsing. Dalam perancangan parsing ini mutlak diterapkan suatu aturan gramatikal agar makna informasi tidak terbelah. Aturan gramatikal yang biasa digunakan dan mungkin terbaik adalah context-free grammar.


Representasi Pengetahuan (Knowledge Representation)
Representasi pengetahuan berbentuk basis pengetahuan (knowledge base), merupakan sentral komponen dari Kecerdasan Buatan. Secara informal, representasi pengetahuan adalah himpunan tentang fakta-fakta yang  berhubungan dengan lingkungan. Tiap-tiap fakta yang ada disebut kalimat (sentence). Jadi, kalimat yang diekspresikan dalam bahasa disebut bahasa representasi pengetahuan (knowledge representation language).

Ada tiga tahap pengembangan model Kecerdasan Buatan ini, yaitu:
     Tahap Konseptual
Definisi pengetahuan (menunjukkan dunia mikro yang tidak lengkap). Obyek-obyek dengan ukuran, fungsional dan sifat-sifat deskriptif.

     Tahap Representasi
Jaringan semantik untuk merepresentasikan obyek-obyek dan sifat-sifatnya.

     Tahap Implementasi
Reduksi representasi untuk menuju tujuan yang memuaskan. Sistem aturan produksi yang digunakan untuk beroperasi pada obyek-obyek.


Perencanaan (Planning)
Perencanaan merupakan suatu teknik penyelesaian masalah yang melibatkan penentuan suatu aliran (atau urutan) aksi-aksi yang membawa suatu sistem dari suatu keadaan tertentu kepada keadaan atau tujuan yang diingini.

Perencanaan berkaitan dengan sistem produksi (production system), kendali (control), temporal reasoning, frame problem, dan pencarian (searching).

Contoh perencanaan yang sederhana disajikan sebagai berikut :

A.    Checker Board (Path Planning)
Dalam bentuk yang umum melibatkan pemilihan bagaimana menggerakkan beberapa obyek dalam dua atau tiga dimensi tanpa tumbukan.

Dalam dunia nyata, perencanaan Kecerdasan Buatan diaplikasikan pada navigasi otomatisasi kendaraan. Skenarionya berisi area, obyek kendaraan, dan lokasi tujuan. Tugas perencanaan Kecerdasan Buatan adalah mencari jalan terpendek untuk sampai ke tujuan.



Gambar 3.3. Problem perencanaan untuk ilustrasi checker board


B.     Block World
Pada gambar di bawah, lengan manipulator dipakai untuk memindahkan blok-blok di atas meja. Di sana diberikan mobilitas manipulator, spesifikasi keadaan yang diharapkan dan keadaan awal tertentu (atau pengenal otomat), kemudian diharapkan adanya suatu urutan aksi-aksi untuk mewujudkan keadaan tertentu.


Gambar 3.4. Problem perencanaan untuk ilustrasi block world


Secara umum, sebuah perencanaan Kecerdasan Buatan dinamakan plan generator, membutuhkan entitas-entitas seperti diagram berikut:



* bergantung pada representasi keadaan problem yang dipilih

Gambar 3.5. Entitas yang diperlukan untuk plan generator


Strategi Pengendalian (Controlling Strategy)
Strategi pengendalian Kecerdasan Buatan dilakukan dengan pernyataan (statement) yang merupakan kalimat deklaratif. Pernyataan ini mengandung banyak elemen. Oleh karena itu harus diolah secara bertingkat sebagaimana diagram pada Gambar 3.6.

Untuk mengarahkan suatu model Kecerdasan Buatan dapat dilakukan dengan membuat pernyataan dengan memanfaatkan antara lain: aturan logika (rule of logic), deduksi (deduction), modus ponen, logika predikat, dan manipulasi well-formed formulas (wffs).


Gambar 3.6. Tahap-tahap pengendalian model

Aturan logika berisi hubungan and, or, irisan, gabungan dan lain sebagainya. Aturan deduksi adalah suatu prosedur penyimpulan yang sistematis atas suatu kondisi dengan melihat fakta-fakta yang cakupannya lebih luas atau keseluruhan. Modus ponen adalah aturan logika dimana bila suatu implikasi bernilai benar disertai dengan diketahui benarnya anteseden maka dapat disimpulkan benarnya konsekuen. Logika predikat adalah suatu kumpulan logika pemodelan kebenaran pernyataan yang berdasar pada nilai-nilai yang diterima oleh bagian-bagian tertentu (atau frase) dari pernyataan tersebut. Misalnya, kita memiliki himpunan bilangan bulat A, maka kita dapat membuat fungsi predikat bilangan ganjil, Aganjil, dimana Aganjil dapat bernilai benar jika anggotanya memang ganjil dan salah untuk selainnya. Manipulasi wffs merupakan strategi yang lebih kompleks dan melibatkan dua topik, yaitu resolusi dan unifikasi.

Resolusi
Pendekatan resolusi menghasilkan klausa-klausa baru dari sebuah himpunan inisial. Implementasi resolusi mempunyai tujuan untuk mengembangkan suatu prosedur sistematis pada sebuah basis data, dimana wffs-nya tidak memuaaskan, dengan kata lain tidak ada interpretasi wff yang masuk akal. Untuk itu, hal pertama yang perlu dilakukan adalah mengonversi pernyataan dalam basis data logika dan hipotesis ke dalam bentuk klausa (clause) yang melibatkan disjungsi literal.

Resolusi diproses dengan menambahkan basis data dengan negasi hipotesis yang diinginkan. Kemudian klausa diselesaikan dalam basis data tambahan sampai kontradiksinya ditemukan. Jika tidak ditemukan, kita simpulkan bahwa keadaannya konsisten, dan berarti hipotesisnya, pada kenyataannya salah (false).

Contoh:
Basis data (D1) berisi pernyataan-pernyataan di bawah ini (basis data diasumsikan konsisten):
(1).     P1
(2).     P1 → q1
(3).     q1 → q2
Hasil dibuktikan menggunakan basis data D1, sehingga q2 benar (true). Kemudian, ¬q2 ditambahkan ke D1, klausa dikonversi ke sebuah bentuk yang memudahkan resolusi, dan proses resolusi pasangan dilakukan.
Basis data D2 kemudian termodifikasi menjadi
(1).     P1
(2).     ¬P1 È q1
(3).     ¬q1 È q2
(4).     ¬q2
Resolusi antara (2) dan (3) adalah sebagai berikut :
q1 È ¬P1
¬q1 È q2
¬P1 È q2
Hasil D3:
(1).     P1
(2).     ¬P1 È q1
(3).     ¬q1 È q2
(4).     ¬q2
(5).     ¬P1 È q1
Resolusi antara (4) dan (5):
¬q2
q2 È ¬q1
¬P1
Hasil D4:
(1).     P1
(2).     ¬P1 È q1
(3).     ¬q1 È q2
(4).     ¬q2
(5).     ¬P1 È q1
(6).     ¬P1

Perhatikan bahwa resolusi antara (1) dengan (6) menghasilkan kontradiksi (¬P1 Ç P1). Sehingga ¬q2 inkonsisten dengan D1; dimana q2 adalah true.

Unifikasi
Unifikasi adalah usaha untuk mencoba membuat dua ekspresi menjadi identik (mempersatukan keduanya) dengan mencari substitusi-substitusi tertentu untuk mengikuti peubah-peubah dalam ekspresi mereka tersebut. Unifikasi merupakan suatu prosedur sistematik untuk memperoleh peubah-peubah instan dalam wffs. Ketika nilai kebenaran predikat adalah sebuah fungsi dari nilai-nilai yang diasumsikan dengan argumen mereka, keinstanan terkontrol dari nilai-nilai selanjutnya yang menyediakan cara memvalidasi nilai-nilai kebenaran pernyataan yang berisi predikat. Unifikasi merupakan dasar atas kebanyakan strategi inferensi dalam Kecerdasan Buatan. Sedangkan dasar dari unifikasi adalah substitusi.
Suatu substitusi (substitution) adalah suatu himpunan penetapan istilah-istilah kepada peubah, tanpa ada peubah yang ditetapkan lebih dari satu istilah. Sebagai pengetahuan jantung dari eksekusi Prolog, adalah mekanisme unifikasi.

Aturan-aturan unifikasi :
1.      Dua atom (konstanta atau peubah) adalah identik.
2.      Dua daftar identik, atau ekspresi dikonversi ke dalam satu buah daftar.
3.      Sebuah konstanta dan satu peubah terikat dipersatukan, sehingga peubah menjadi terikat kepada konstanta.
4.      Sebuah peubah tak terikat diperssatukan dengan sebuah peubah terikat.
5.      Sebuah peubah terikat dipersatukan dengan sebuah konstanta jika pengikatan pada peubah terikat dengan konstanta tidak ada konflik.
6.      Dua peubah tidak terikat disatukan. Jika peubah yang satu lainnya menjadi terikat dalam upa-urutan langkah unifikasi, yang lainnya juga menjadi terikat ke atom yang sama (peubah atau konstanta).
7.      Dua peubah terikat disatukan jika keduanya terikat (mungkin melalui pengikatan tengah) ke atom yang sama (peubah atau konstanta).


Pencarian (Searching)
Hal pertama yang perlu diperhatikan dalam proses pencarian adalah representasi masalah. Ada beberapa skenario untuk studi pencarian sebagai fungsi untuk memilih representasi. Sebagai contoh, kita mungkin memilih untuk memperhatikan ruang masalah yakni representasi ruang keadaan dalam wilayah representasi graf (graph).

Sebelum berjalan jauh, kita perlu mendefinisikan problem pencarian. Sebuah problem pencarian, P, dinyatakan dengan

P = {D, S, T, G}
dengan,
D adalah himpunan keadaan sistem yang mewakili keadaan ruang masalah (problem sate-space).
Si Î D adalah keadaan awal
T = { t1, t2, . . . } adalah himpunan transformasi (operator dan aturan)
G Ì D adalah himpunan keadaan tujuan.
Suatu solusi untuk D dinyatakan dengan Ts, yaitu urutan ti= t1, t2, . . ., tn; dengan tn . . . (t2(t1(S1))) Î G.

Catatan:
D dan T dapat memiliki nilai tertinggi atau tak terhingga namun dapat dihitung (countably infinite). Kita juga dapat membagi D dengan dua bagian berikut:
1).      Dr Ì D dimana terdapat Ts, sehingga
tn . . . (t2(t1(S1))) Î Dr
merupakan keadaan yang dapat tercapai (reachable state).
2).      Dur Ì D dimana tidak terdapat Ts, sehingga
tn . . . (t2(t1(S1))) Î Dur
merupakan keadaan yang tidak dapat tercapai (unreachable state).
Jika G Ç Dr, maka dapat diselesaikan.


Metode State Space Graph (SSG)
Sebuah State Space Graph (SSG) adalah diagraph yang menjelaskan D dan T. Mode SSG mewakili elemen D, sedang busur (arc) mewakili elemen T; ti Î T menghasilkan busur dalam SSG antara mode di dan dj Î D ke dj – ti (di) yang diketahui.

Contoh:
Suatu graf representasi dari P mempunyai aturan sebagai berikut:
Fakta (basis data yang diketahui) : {abg} - Si
Dengan aturan :
1             jika a b, maka c
2             jika b g, maka d
3             jika a c,  maka e
4             jika e d, maka f
5             jika d g, maka f



 



1-2-3-4
2-1-3-4
1-3-2-4
2-1-3-5
1-3-2-5
1-2-3-5
1-2-5
2-1-5
2-5









(c)
 
(b)
 
 



Gambar 3.7. (a) jaring inferensi; (b) jalur pencarian melalui ruang keadaan sistem; (c) kemungkinan urutan aturan menuju Sg

Metode pencarian lain yang dipakai Kecerdasan Buatan adalah tree search, dalam hal ini terdapat dua metode, yaitu depth first dan breath first search.


Pembelajaran (Learning)
Definisi sistem pembelajaran dalam Kecerdasan Buatan adalah pengembangan kemampuan sistem melalui identifikasi dan implementasi algoritma pembelajaran (learning algorithm) yang dapat meningkatkan kinerja algoritma lain atau untuk beradaptasi atas dasar informasi atau pengalaman sebelumnya.

Sedangkan definisi pembelajaran sendiri adalah sistem pembelajaran (induktif) untuk melakukan deskripsi internal yang masuk akal (plausible) untuk menjelaskan petunjuk-petunjuk hasil pencarian dan berguna untuk memprediksi petunjuk-petunjuk baru.

Sistem yang dapat secara otomatis menerapkan suatu konsep high-level baru (semacam aturan), memodifikasi konsep, dan meningkatkan kinerja secara gradual melaui pengalaman merupakan ciri sistem pembelajaran. Generasi sekarang dari sistem Kecerdasan Buatan hampir semua secara eksklusif menggunakan deduksi sebagai dasar pembelajaran. Alasannya adalah karena kemampuan deduksi untuk membuktikan tujuan-tujuan dan fakta-fakta yang beragam. Namun demikian, mereka tak mampu untuk menghasilkan pengetahuan (fakta-fakta) baru secara otomatis. Dengan kata lain, mereka tidak dapat melakukan inferensi induktif.

Secara konseptual, pembelajaran biasanya berhubungan dengan
1.      Self-improvement atau pengembangan diri.
2.      Adaptasi ke lingkungan yang berbeda atau baru.
3.      Modifikasi perilaku.
4.      Concept formulation and refinement, termasuk generalisasi atauspesialisai model konseptual.

Beberapa paradigma pembelajaran yang digunakan dalam Kecerdasan Buatan antara lain adalah sebagai berikut:
1.      Belajar menghafal (rote learning). Ini sama dengan mengingat fakta-fakta dan aksi-aksi. Tidak diperlukan pemahaman terhadap data-data. Dalam konteks ini, lawan kata “learning” adalah “forgetting”.
2.      Memberi nasihat (advice taking), memberi kontrol informasi. Paradigma ini memudahkan pembuatan representasi aturan-aturan tambahan. Sebagai contoh saran : “if . . . , then . . . ” .
3.      Mempelajari konsep dari contoh atau bukti (learninng concept from example or evidence). Ini merupakan paradigma pembelajaran yang paling powerful dan memungkinkan untuk diimplementasikan dengan banyak cara.

Beberapa aspek untuk paradigma ini adalah:
     Belajar dari contoh secara langsung. Proses induksi digunakan untuk menghasilkan sebagian dari struktur pengetahuan yang ada dengan menggunakan informasi ‘contoh’.
     Belajar dari contoh mungkin digunakan untuk menghasilkan keseluruhan aturan-aturan baru.
     Belajar dari contoh hampir sama dengan belajar melaui analogi-analogi. Ini berarti kesimpulan atau aksi-aksi baru berdasar atau mempunyai kesamaan struktur dengan kesimpulan atau aksi-aksi sebelumnya.
     Belajar dari contoh-contoh dapat dibagi dalam dua kategori, yaitu melibatkan pencarian ruang informasi untuk konsep clustering, dan pada level yang lebih tinggi, untuk mendeskripsikan konsep.


Gambar 3.8. Paradigma belajar konsep-konsep dari bukti-bukti


4.      Belajar dengan eksplorasi (learning by exploration). Alam memberikan contoh terbaik berupa kemampuan adaptasi makhluk hidup, kemampuan untuk menjaga kehidupan (survival) tercermin dari perilaku makhluk.
5.      Belajar dari analogi (learning by analogy). Belajar dari analogi adalah suatu cara untuk menghubungkan pengetahuan dengan domainnya.



Gambar 3.9. Paradigma belajar analog





IV. ARSITEKTUR DAN LINGKUNGAN
SISTEM KECERDASAN BUATAN




4.1.      Arsitektur Sistem Kecerdasan Buatan
Dalam mengimplementasi sistem Kecerdasan Buatan, diperlukan algoritma-algoritma paralel. Algoritma-algoritma tersebut antara lain untuk pencarian, optimasi, pengukuran kepuasan, sistem produksi, pencocokan pola dan graf. Untuk mendukung algoritma-algoritma tersebut, diperlukan struktur data untuk merepresentasikan pengetahuan yang mampu melakukan manipulasi paralel.

Oleh karena itu, dalam desain arsitektur sistem pengetahuan harus melibatkan komponen-komponen berikut:
     Penyederhanaan representasi
     Struktur pengetahuan
     Mekanisme inferensi

Perangkat keras atau arsitektur komputer yang diminta oleh sistem Kecerdasan Buatan adalah sebuah komputer yang dapat melaksanakan pemrosesan paralel. Sedangkan perangkat lunaknya harus dikembangkan dengan bahasa yang mempunyai kemampuan paralel dan logika yang handal, seperti Lisp dan Prolog.

Untuk meningkatkan kecepatan pemrosesan dan ukuran memori dimungkinkan untuk tidak melakukan peningkatan kecepatan perangkat keras, tetapi melalui pembuatan arsitektur perangkat lunak dan perangkat keras yang berbeda secara radikal. Solusi yang ditawarkan dalam hal ini adalah:
     Desain pemrograman dengan kemampuan paralel.
     Keefisienan programer dalam menggunakan bahasa tersebut.
     Implementasi bahasa tersebut pada arsitektur/perangkat keras yang tepat.


4.2.      Sistem dan Lingkungan Pengembangan Kecerdasan Buatan
Komputasi Kecerdasan Buatan adalah komputasi simbolik, dimana dia sangat berbeda dari komputasi konvensional (numerik). Perbedaan komputasi – seperti juga yang telah dikemukakan pada “Proses Komputasi Kecerdasan Buatan” – itu  dapat dilihat pada Tabel 5.1.

Karena perbedaan komputasi tersebut, maka sistem pengembangan perangkat lunak Kecerdasan Buatan dan lingkungannya berbeda dengan sistem komputer konvensional.





Tabel 5.1. Perbedaan Komputasi Konvensional dengan Komputasi Kecerdasan Buatan.

Komputasi Konvensional
Komputasi Kecerdasan Buatan
Format keluaran berupa bit, byte, angka, dan fungsi
Hubungan simbol, konsep, dan aturan-aturan
Menggunakan algoritma prosedural yang menyelesaikan problem
Bahasa deskriptif (menguraikan fakta-fakta yang diketahui dan hubungan)
Menggunakan tahap-tahap urutan tertentu untuk penyelesaian (algoritma).
Penggunaan search untuk menemukan penyelesaian (heuristik).
Kesimpulan (conclusion)-nya bersifat determistik.
Tidak tahu apakah algoritma memusat (converge).
Tipe data : angka dan karakter
Tipe data : atom, obyek, list (program)
Perlu deklarasi awal dan tipe variabel
Tidak perlu deklarasi awal atau tipe data (variabel tipe-tipe tertentu dapat dapat dibuat apabila ia diperlukan selama proses penyelesaian)
Dimensi variabel yang tetap
Dimensi struktur data dapat tumbuh atau menyusut selama proses
Representasi informasi yang eksak
Representasi informasi yang tidak eksak
Jawaban yang eksak
Jawaban yang memuaskan

Sistem pengembangan perangkat lunak Kecerdasan Buatan membutuhkan fitur-fitur berikut ini:
1.      Kemungkinan untuk mengembangkan model-model dan mekanisme penyimpulan secara incemental, dengan dekomposisi penyelesaian problem ke ukuran yang lebih kecil, unit-unit penyelesaian interelated. Incremental adalah program dapat dikembangkan pada compiler/interpreter (sistem) yang berbeda tapi harus dapat dipadukan hasil akhirnya menjadi satu kesatuan.
2.      (a). Struktur kontrol yang fleksibel untuk memudahkan pengarahan pemrograman kepada tujuan akhir.
(b). Struktur kontrol yang fleksibel untuk memfasilitasi pengarahan program data.
(c). Struktur kontrol yang fleksibel untuk memfasilitasi rekursi.
3.      Struktur kontrol yang fleksibel untuk memfasilitasi pemrograman paralel.
4.      Kemampuan komunikasi sistem yang interaktif.
5.      Debugger untuk mencek program, khususnya untuk unifikasi, rekursi, dan lain-lain.
6.      Fasilitas representasi data simbolik yang buitl-in, dan cara untuk memperluas representasi tersebut menuju struktur pengetahuan yang kompleks.
7.      Fasilitas pattern-matching.
8.      Fasilitas strategi-strategi pengikatan variabel sebagaimana pendekatan penyelesaian trial and error.

Fitur-fitur lingkungan perangkat lunak Kecerdasan Buatan yang diharapkan adalah sebagai berikut:
1.      Pengembangan program bersifat incremental.
2.      Editor yang terpadu (cerdas) sebagai bagian sistem.
3.      Compiler/interpreter yang bersifat incremental.
4.      Debugger yang user friendly dan cerdas.
5.      Kemampuan layar berkecepatan dan beresolusi yang tinggi.
6.      Antarmuka yang khusus untuk instrumentasinya.
7.      Kapasitas memori yang besar.


V. REPRESENTASI PENGETAHUAN



Hampir semua aplikasi Kecerdasan Buatan tersusun dari dua bagian pokok, yaitu basis pengetahuan (knowledge base) dan mekanisme inferensi (inference mechanism).

Basis pengetahuan berisis fakta-fakta tentang objek dalam domain yang ditentukan dan saling hubungannya satu sama lain. Basis pengetahuan juga bisa berisi pikiran, teori, prosedur praktis dan saling hubungannya. Basis pengetahuan membentuk sumber sistem kecerdasan dan digunakan oleh mekansme inferensi untuk melakukan penalaran dan menarik kesimpulan.

Mekanisme inferensi adalah suatu rangkaian prosedur yang digunakan untuk menguji pangkalan pengetahuan dengan cara yang sistematik pada saat menjawab pertanyaaan, memecahkan persoalan atau membuat keputusan dalam suatu domain yang telah ditentukan.

Terdapat banyak bentuk representasi pengetahuan dan basisnya.

5.1.      Skema Representasi Pengetahuan
Agar komputer bisa bertingkah laku seperti seorang cerdas, maka ia harus mempunyai pengetahuan terlebih dahulu tentang sesuatu domain tertentu.

Pengetahuan dapat diperoleh dari/terdapat dalam otak seorang pakar atau berupa buku, artikel, jurnal ilmiah, memo, dan prosedur atau apa saja yang penting sudah terkodifikasi.

Proses pengumpulan dan pengorganisasian pengetahuan disebut rekayasa pengetahuan.

Proses ini barangkali merupakan langkah yang paling sulit dan memerlukan waktu yang banyak dalam pembuatan program Kecerdasan Buatan.

Representasi skema pengetahuan memiliki dua karakteristik umum :
1.      Bisa diprogram dengan bahasa komputer yang ada dan disimpan dalam memori.
2.      Dirancang agar fakta-fakta dan pengetahuan lain yang terkandung di dalamnya bisa digunakan untuk penalaran.

Skema representasi pengetahuan secara umum dikategorikan sebagai deklaratif atau prosedural.

Skema deklaratif digunakan untuk menggambarkan fakta-fakta pernyataan (assertion). Termasuk metoda ini adalah logika (logic), jaringan semantik (semantic networking), bingkai (frame) dan naskah (script).

Skema prosedural berhubungan dengan aksi dan prosedur. Skema representasi pengetahuan prosedural meliputi prosedur atau upa rutin dan kaidah produksi.

Kunci keberhasilan setiap pembuatan program Kecerdasan Buatan tertelak pada pemilihan skema representasi pengetahuan yang paling baik dan paling tepat serta yang sesuai dengan domain pengetahuan serta maslah yang akan dipecahkan.


5.2.      Logika (Logic)
Merupakan bentuk representasi pengetahuan yang paling tua.
Logika merupakan suatu pengkajian ilmiah tentang serangkaian penalaran, sistem kaidah dan prosedur yang membantu proses penalaran.



Gambar 1. Menggunakan logika menuju penalaran


Terdapat dua bentuk dasar penalaran dalam logika untuk membuat inferensi yang diambil dari premis :
a.      Deduktif
Penalaran ini bergerak dari prinsip/premis umum menuju konklusi khusus. Proses deduktif umumnya dimulai dari suatu silogisme atau pernyataan premis dan inferensi.
Proses deduktif umumnya terdiri dari tiga bagian : premis mayor, premis minor, dan konklusi.

Contoh :
Premis mayor : Jika Hujan turun, saya tidak akan lari pagi.
Premis minor   : Pagi ini hujan turun.
Konklusi           : Oleh karena itu, pagi ini saya tidak akan lari pagi.

b.      Induktif
Penalaran induktif dimulai dari masalah khusus menuju ke masalah umum. Atau dengan perkataan lain, penalaran induktif menggunakan sejumlah fakta atau premis yang mantap untuk menarik kesimpulan umum.

Contoh:
Premis 1   : Dioda yang salah menyebabkan peralatan elektronik rusak.
Premis 2   : Transistor rusak menyebabkan elektronik rusak.
Premis 3   :  Sirkuit terpadu (IC) rusak menyebabkan peralatan elektronik tidak berfungsi.
Konklusi : Maka, peralatan semi-konduktor rusak merupakan penyebab utama rusaknya peralatan elektronik.

Satu hal yang menarik dari penalaran induktif adalah konklusinya tidak pernah final atau mutlak. Konklusi dapat berubah jika fakta baru sudah ditemukan. Jika semua fakta yang mungkin tidak dimasukkan ke dalam salah satu premis, maka selalu akan timbul ketidakpastian di dalam konklusi. Akibatnya, hasil penalaran induktif akan selalu mengandung beberapa ukuran ketidakpastian. Walaupun demikian, jika lebih banyak fakta dan premis yang digunakan dalam penalarannya, maka ketidakpastian konklusi itu akan berkurang. Semakin banyak pengetahuan yang dimiliki, semakin banyak inferensi konklusi yang akan terjadi.


Dalam melaksanakan penalaran menggunakan logika, sebuah komputer harus menggunakan konversi silogisme dan proses penalaran deduktif atau induktif ke dalam bentuk yang sesuai dengan manipulasi komputer.

Hal ini merupakan sistem kaidah dan prosedur yang memungkinkan komputer bisa menarik inferensi dari berbagai premis yang menggunakan berbagai teknik logika. Metoda ini dikenal dengan logika komputasional (computational logic).

Bentuk logika komputasional ada dua macam :
1.      Logika Proposisional / Kalkulus Proposisional
Suatu proposisi tidak lebih daripada suatu pernyataan (statement) yang menyatakan benar atau salah. Ini merupakan premis yang dapat digunakan untuk memperoleh proposisi baru atau inferensi. Kaidah ini digunakan untuk menentukan benar atau salah suatu proposisi baru.

Suatu proposisi, premis atau kaidah disimbolkan denagn mengunakan huruf besar. Misalnya,

A = Tukang pos mengantar surat mulai senin sampai Sabtu
B = Hari ini Hari Minggu
C = Maka, hari ini tukang pos tidak mengantar surat

Dua atau lebih proposisi bisa digabungkan dengan menggunakan penghubung logika/operator logika, yaitu and, or, not dan implies.
Penggunaan penghubung logika / operator logika ini sama dengan penggunaan aljabar Boolean.

a. Not
Tabel nilai kebenaran untuk not
A
not A
T
F
F
T

Contoh :
A = Hari ini hujan
Not A = Hari ini tidak hujan

b.      And
Kombinasi dua proposisi menggunakan and akan bernilai benar jika kedua proposisi awal bernilai benar. Tabel nilai kebenarannya adalah sebagai berikut

A
B
A and B
T
T
T
T
F
F
F
T
F
F
F
F


Contoh :
A = Mobil saya berwarna hitam
B = Mesin mobil berwarna hitam itu 6 silinder
C =  A and B
    =  Mobil saya berwarna hitam dan mesinnya 6 silinder

Contoh lain.
Sebuah perusahaan akan menerima karyawan baru dengan syarat :
1.      Seorang wanita berusia tidak lebih dari 25 tahun and
2.      Lulusan Informatika
Dengan demikian, seorang pelamar baru bisa diterima menjadi karyawan bila kedua syarat tersebut dipenuhi.

c. Or
Kombinasi dua proposisi menggunakan or akan bernilai benar jika salah satu atau kedua proposisi awal bernilai benar. Tabel nilai kebenarannya adalah sebagai berikut

A
B
A or B
T
T
T
T
F
T
F
T
T
F
F
F

Jika kita tinjau contoh di atas,
A = Seorang wanita berusia tidak lebih dari 25 tahun
B = Lulusan Informatika
C =  A or B
Maka cukup salah satu persyaratan dipenuhi, seseorang dapat diterima sebagai karyawan.

Bentuk or ini dikenal dengan inclusive or. Bentuk or yang lain adalah exclusive or. Or eksklusif bernilai benar jika salah satu prososisi awal bernilai benar tapi tidak keduanya sekaligus. Notasi yang digunakan untuk eksklusif or adalah xor.


d. Implies
Penghubung logika implies dimaksudkan, bahwa jika proposisi A benar, maka proposisi B pun harus benar. Kebenaran A memasukkan kebenaran B.

Pengertian yang sama untuk operator logika ini adalah if_then. Tabel nilai kebenaran untuk operator ini adalah sebagai berikut

A
B
A ® B
T
T
T
T
F
F
F
T
T
F
F
T


Misalnya,
A = Mobil rusak
B = Saya tidak bisa naik mobil
C = A implies B
    = Mobil rusak, ‘karena itu’ saya tidak bisa naik mobil.
    = If mobil rusak, then saya tidak bisa naik mobil.


Dengan menggunakan berbagai simbol proposisi dan menghubungkannya dengan penghubung logika, maka serangkaian premis yang lengkap dengan konklusinya bisa diekpresikan.

Karena masih berkaitan dengan pernyataan, kemampuan untuk merepresentasikan pengetahuan dalam kehidupan nyata dengan benar masih diragukan atau setidaknya masih terbatas. Sehingga penggunaannya dalam Kecerdasan Buatan tidak begitu berarti. Oleh karena itu, dalam Kecerdasan Buatan lebih baik menggunakan logika predikat/kalkulus predikat.




































2.      Logika Predikat / Kalkulus Predikat.
Logika predikat merupakan suatu bentuk logika yang seluruhnya menggunakan konsep dan kaidah logika proposisional yang sama. Logika predikat dapat memecah pernyataan ke dalam bagian komponen yang disebut obyek, karakteristik obyek, atau beberapa keterangan obyek. Logika predikat dapat menggunakan variabel dan fungsi variabel di dalam pernyataan logika simbolik. Dengan demikian. Logika simbolik dapat diterapkan untuk pemecahan masalah-masalah praktis.

Dalam kalkulus predikat, suatu proposisi atau premis dibagi menjadi 2 bagian, yaitu:
-          argumen (obyek), dan
-          predikat (keterangan / karakteristik)

Argumen adalah individu atau obyek yang membuat keterangan. Dalam bahasa Inggris, obyek dan individu merupakan kata benda yang berfungsi sebagai subyek dan obyek suatu kalimat (sentence).

Dalam sebuah kalimat, predikat bisa berupa kata kerja atau bagian kata kerja. Untuk membuat suatu proposisi, keduanya (argumen dan predikat) digabungkan. Bentuk umumnya sebagai berikut:

predikat (individu[obyek]_1, individu[obyek]_2)

Contoh:
1.      Proposisi : Jhony mencintai Marry.
Ekspresi kalkulus predikat : mencintai(Jhony, Mary).
Di sini,
Mencintai -> produk (keterangan)
Jhony -> argumen (obyek)
Mary -> argumen (obyek)

2.      Proposisi : Baju disimpan di lemari.
Ekspresi kalkulus predikat : disimpan_di(lemari, baju).

3.      Proposisi : Mobil berada di dalam garasi.
Ekspresi kalkulus predikat : di_dalam(mobil, garasi).

Dalam banyak hal, predikat mungkin hanya mempunyai satu argumen saja.

Contoh:
4.      Proposisi : Pintu terbuka.
Ekspresi kalkulus predikat : buka(pintu).

5.      Proposisi : Ban gembos.
Ekspresi kalkulus predikat : gembos(ban).

6.      Proposisi : Krishna adalah seorang laki-laki.
Ekspresi kalkulus predikat : laki-laki(Krishna).

Argumen dapat juga berupa peubah (variable).

Contoh:
7.      Proposisi : Jhony suka Marry.
Bila Jhony = x, dan Marry = y, maka ekspresi kalkulus predikatnya : suka(x, y).

Dengan menggunakan peubah, basis pengetahuan dapat terbentuk. Pada contoh 7 di atas basis pengetahuannya ialah suka(x, y), yang berarti “x suka y”. Pengetahuan diekspresikan dalam kalkulus predikat yang bisa dimanipulasi agar menimbulkan inferensi.

Contoh:
8.      Proposisi :  Jhony suka Marry
Ramona suka Marry
Misalkan Jhony = x, Marry = y, dan Ramona = z.
Maka ekspresi
Suka(x,y) dan tidak suka(z,y) implies tidak suka(x,z)
menerangkan bahwa
“Jika Jhony suka Marry dan Ramona tidak suka  Mary, maka Jhony tidak suka Ramona”.

Pemberian nilai (assigning) nama individu atau obyek tertentu kepada suatu peubah dinamakan instantiasi. Individu atau obyek itu menjadi suatu “instance” (contoh) variabel tersebut. Pada contoh 8 di atas, varibel untuk Jhony, Marry, dan Ramona adalah x, y, dan z.

Pengukuraan kuantitas (quantifier) adalah simbol yang mengijinkan untuk menyatakan suatu rangkaian atau cakrawala dalam suatu ekspresi logika.
Ada dua pengukuran kuantitas yang digunakan, yaitu:
-          ukuran kuantitas universal.
Simbol yang digunakan ", berarti “untuk semua” atau “untuk  setiap”. Simbol ini menyatakan bahwa ekspresi berlaku secara universal benar, yaitu untuk semua nilai.

Contoh:
1.      Semua orang Texas adalah warga negara Amerika Serikat
Dengan quantifier ditulis
("x)[Orang Texas(x), warga negara Amerika Serikat(x)]

-          ukuran kuantitas eksistensial.
Simbol yang digunakan $, berarti “terdapat” atau “ada”.

Contoh:
2.      Beberapa mobil berwarna merah
Dengan quantifier ditulis
($x)[mobil(x)dan berwarna merah(x)]


Apa yang telah diuraikan pada bagian di atas merupakan suatu sistem untuk mengekspresikan pengetahuan (berupa fakta-fakta) ke dalam bentuk simbolik. Yang selanjutnya dilakukan adalah menggunakan simbol itu untuk membuat inferensi. Yakni bagaimana cara menggunakan pengetahuan itu untuk menjawab pertanyaan, menalar, atau menarik kesimpulan.

Berbagai kaidah digunakan untuk memanipulasi ekspresi logika dalam rangka membuat ekspresi baru. Kaidah yang dimaksud diantaranya adalah modus ponens, modul tollens, dan sillogisma. Apabila proposisi awal benar, maka – dengan langkah-langkah yang correct – akan menghasilkan kesimpulan yang juga benar.

Pengetahuan prosedural dapat direpresentasikan dalam bentuk logika predikat. Pernyataan a1, a2, a3, . . ., an -> B dapat dipandang sebagai prosedur yang digunakan untuk menghasilkan keadaan yang memenuhi kondisi B.


5.3.      Jaringan Semantik (Semantic Network)
Jaringan semantik merupakan penggambaran grafis dari pengetahuan yang melibatkan hubungan antara obyek-obyek.

Obyek direpesentasikan sebagai simpul (node) pada suatu grafik berbentuk lingkaran dan hubungan antara obyek-obyek dan faktor deskriptif dinyatakan oleh garis penghubung (link) atau garis lengkung (arch) berlabel.

Obyek dapat berupa jenis fisik, seperti: buku, mobil, meja, atau bahkan orang; merupakan pikiran, seperti: hukum Ohm; suatu peristiwa/kejadian, seperti: piknik atau suatu pemilihan; atau tindakan, seperti: membuat rumah atau menulis buku.

Atribut obyek, seperti: ukuran, warna, kelas, umur, asal-usul, atau karakteristik lainnya bisa digunakan sebagai node. Dalam hal ini, informasi rinci tentang sesuatu obyek bisa ditampilkan dengan baik.

Contoh penerapan jaringan semantik yang mudah ditemui adalah struktur kepegawaian dan garis keturunan.

Text Box: punya istriText Box: punya anakText Box: adalahText Box: adalahText Box: adalah

Gambar 2. Jaringan semantik garis keturunan




5.4.      Skema (Scheme)
Skema adalah metoda pengorganisasian, presentasi dan penggunaan pengetahuan tiruan (stereotype) agar komputer bisa menalar.

Pengetahuan tiruan merupakan pengetahuan yang sudah pasti dan sudah dikenal dengan baik. Hal ini didasarkan kepada berbagai penampilan, situasi, dan obyek-obyek khusus, seperti: pengalaman biasa yang konvensional dan proses yang tak bervariasi.

Kita representasikan pengetahuan semacam itu ke dalam sistem skema. Ada dua jenis skema: skema kerangka / bingkai (frame), dan skema naskah (script).


3.4.1.      Skema Kerangka / Bingkai (Frame)
Bingkai adalah blok-blok atau potongan-potongan yang berisi pengetahuan mengenai obyek-obyek khusus, kejadian, lokasi, situasi ataupun elemen-elemen lainnya dengan ukuran yang relatif besar.

Blok-blok ini menggambarkan obyek-obyek tersebut dengan sangat rinci.

Detail diberikan dalam bentuk rak (slot) yang menggambarkan berbagai atribut (attribute) dan karakteristik dari obyek tersebut.

Sebuah slot dapat berisi nilai default, yaitu nilai yang sudah melekat dan menjadi ciri dari suatu obyek. Misalnya bingkai pengetahuan slot mobil sedan, memiliki nilai untuk slot jumlah ban otomatis 4 buah.

Sebuah slot juga dapat mempunyai nilai procedural attachment, yaitu suatu nilai yang besarnya relatif. Akselerasi mesin misalnya, mempunyai nilai yang relatif terhadap waktu. Contohnya akselerasi suatu mesin memiliki nilai 0 – 60 km/jam dalam waktu 4 detik. Dalam waktu 2 detik, mesin tersebut memilki akselerasi yang berbeda.

Sebuah slot dapat berisi bingkai, dimana bingkai ini juga tersusun atas slot-slot. Misalnya slot mesin berisi sebuah bingkai mesin yang terdiri atas slot-slot rasio kompresi, sistem pengapian, besarnya daya dan besarnya torsi.




Gambar 3. Pengetahuan yang ditampilkan dalam hirarki bingkai yang mewariskan property tingkat bingkai pendahuluan.


Diperoleh kesimpulan,

BINGKAI MOBIL

Kelas
:  Transportasi
Pabrik
:  Audi
Negara asal
:  Jerman
Model
:  5000 Turbo
Tipe
:  Sedan
Berat
:  3300 lb
Jumlah roda
:  4
BINGKAI MESIN

Ukuran Silinder
:  3.19 inch
Rasio Kompresi
:  7.9 – 1
Tenaga
:  140 HP



3.4.2.      Naskah (Script)
Naskah menggambarkan urutan peristiwa. Naskah biasanya direpresentasikan ke dalam konteks tertentu. Dalam menggambarkan urutan peristiwa, naskah menggunakan serangkaian slot yang berisi informasi tentang orang, obyek, dan tindakan-tindakan yang terjadi dalam suatu peristiwa.

Beberapa elemen naskah yang tipikal meliputi: kondisi masukan, pendukung (prop), peran (role) dan adegan (scene).

Kondisi masukan menggambarkan situasi yang harus dipenuhi sebelum terjadi atau berlaku suatu peristiwa yang ada dalam naskah. Prop mengacu kepada obyek yang digunakan dalam urutan peristiwa yang terjadi. Role mengacu kepada orang-orang terlibat dalam naskah. Hasilnya adalah kondisi yang ada sesudah peristiwa dalam naskah berlangsung. Jalur (track) mengacu kepada variasi yang mungkin terjadi dalam naskah tertentu. Dan akhirnya, scene menggambarkan urutan peristiwa aktual yang terjadi.

Gambaran naskah tipikal variasi restoran klasik sebagai contoh representasi pengetahuan dalam format naskah diberikan sebagai berikut.

NASKAH RESTORAN

Jalur           : Restoran swalayan (fast food)
Peran           : Tamu, Pelayan
Pendukung       : Counter, baki, makanan, uang, serbet, garam, merica, kecap, sedotan, dll.
Kondisi Masukan : Tamu lapar – Tamu punya uang.

Adegan_1          : Masuk
J  Tamu parkir mobil
J  Tamu masuk restoran
J  Tamu antri
J  Tamu baca menu dan mengambil keputusan tentang apa yang dipesan

Adegan_2          : Pesanan
J  Tamu memberikan pesanan kepada pelayan
J  Pelayan mengambil pesanan dan meletakkan makanan di atas baki
J  Tamu membayar

Adegan_3          : Makan
J  Tamu mengambil serbet, sedotan, garam, dll.
J  Tamu membawa baki makanan ke meja kosong
J  Tamu makan dengan cepat

Adegan_3a (option) : Membawa pulang
J  Tamu membawa makanan dan pulang



Adegan_4          : Pulang
J  Tamu membereskan meja
J  Tamu membuang sampah
J  Tamu meninggalkan restoran
J  Tamu naik mobil dan pulang

Hasilnya
J  Tamu merasa kenyang
J  Uang tamu jadi berkurang
J  Tamu senang
J  Tamu kecewa
J  Tamu sakit perut


Pergi ke restoran merupakan situasi stereotype yang semua elemennya seperti: kondisi masukan, hasil, pendukung, peran, dan adegan adalah sama. Tampak bahwa, naskah dapat menggambarkan dengan akurat situsasi yang terjadi di hampir semua restoran swalayan (cepat saji / fast food). Adegan-adegan merupakan naskah mini yang ada di dalam naskah utama yang melukiskan berbagai upa-bagian dari seluruh proses.

Naskah sangat baik untuk meramalkan apa yang akan terjadi dalam situasi tertentu. Walaupun peristiwa itu tidak pernah diobservasi terlebih dahulu, tapi naskah dapat memberikan kemungkinan kepada komputer untuk meramalkan apa yang akan terjadi, kepada siapa dan kapan. Bila kmputer bisa ‘menembak’ naskah, maka pertanyaan apapun bisa diajukan dan jawaban akurat akan keluar, walaupun komputer hanya diberi sedikit input pengetahuan orisinil atau sama sekali tidak diberi input apapun.


VI. PENDEKATAN PENYELESAIAN MASALAH



Tiga langkah utama yang dibutuhkan untuk membuat sebuah sistem agar dapat menyelesaikan suatu persoalan khusus, yaitu:
1.            Mendefinisikan problema dengan tepat.
Definisi ini harus berisi spesifikasi tentang kondisi awal dan situasi akhir yang menghasilkan solusi yang dapat diterima dari problema tersebut.

2.            Menganalisis problema.
Beberapa sifat yang sangat penting bisa memiliki dampak yang sangat kuat pada kelayakan banyak teknik pemecahan problema yang dimungkinkan.

3.            Memilih teknik terbaik dan menerapkannya pada suatu problema.


6.1.      Hipotesis Sistem Simbol Fisis
Newell dan Simon mengemukakan bahwa aktivitas cerdas (intelligent) dicapai melalui digunakannya :
-    Pola-pola simbol untuk merepresentasikan aspek-aspek penting dari problema.
-    Operasi pada pola-pola trersebut untuk menghasilkan solusi potensial dari problema.
-    Proses pencarian untuk memilih sebuah solusi diantara kemungkinan-kemungkinan yang ada itu.

Asumsi-asumsi ini membentuk dasar bagi hipotesis sistem simbol fisis.
Hipotesis sistem simbol fisis secara implisit membedakan antara pola yang dibentuk oleh susunan simbol-simbol dan media yang dipakai untuk mengimplementasikannya.

Pendefinisian struktur dan operasi simbol yang diperlukan dalam pemecahan problema kecerdasan, serta pengembangan strategi bagi proses pencarian yang bekerja dengan efisien dan benar untuk mendapatkan solusi yang potensial, dihasilkan oleh struktur dan operasi semacam ini.

Asumsi-asumsi hipotesis sistem simbol fisis tetap mendasari hampir semua aspek praktis dan teoritis dalam sistem pakar, perencanaan, dan pemahaman bahasa alamiah.


6.2.      Representasi Pengetahuan
Perepresentasian dimaksud untuk menangkap sifat-sifat penting problema dan membuat informasi itu dapat diakses oleh prosedur pemecahan problema.

Bahasa representasi harus dapat membuat seorang pemrogram mampu mnegekspresikan pengetahuan yang diperlukan untuk mendapatkan solusi problema. Ekspresifitas dan efisiensi merupakan dimensi utama dalam melakukan evaluasi bahasa-bahasa representasi pengetahuan. Kadang-kadang, ekspresivitas harus dikorbankan untuk meningkatkan efisiensi. Namun, di lain kesempatan, representasi yang terlalu ekspresif sangat tidak efisien untuk digunakan dalam menyelesaikan problema-problema tertentu. Maka yang kemudian harus dilakukan adalah pengoptimalan keduanya.

Perepresentasian seharusnya :
i.        Memadai untuk mengekspresikan informasi yang diperlukan.
ii.      Mendukung eksekusi yang efisien dari kode yang dihasilkan.
iii.    Menghasilkan sesuatu yang alamiah untuk mengekspresikan pengetahuan yang dibutuhkan.

Pada umumnya, problema yang diusahakan untuk dapat dipecahkan oleh Kecerdasan Buatan tidak dapat menyatakan dirinya sendiri menjadi representasi yang ditawarkan oleh formalisme yang lebih tradisional semacam larik. Kecerdasan Buatan lebih ditujukan untuk menangani pemecahan problema kualitatif daripada kuantitatif, lebih dititikberatkan pada pada sebab-akibat daripada penghitungan, serta lebih diarahkan pada sejumlah pengaturan sejumlah besar pegetahuan yang bervariasi daripada diimplementasikan pada algoritma tunggal dan mapan (well-defined).

Untuk mendukung kebutuhan ini, maka bahasa Kecerdasan Buatan haruslah :
a.      Mampu menangani pengetahuan kualitatif.
Pemrograman Kecerdasan Buatan membutuhkan sesuatu untuk menangkap dan menjelaskan alasan tentang aspek-aspek kualitatif dari suatu problema. Untuk itu biasanya digunakan suatu bagian dari logika formal yang disebut kalkulus predikat yang dapat langsung menangkap informasi yang bersifat deskriptif.

b.     Memperbolehkan dilibatkannya pengetahuan baru dari sejumlah fakta dasar.
Suatu bhs representasi pengetahuan haruslah memiliki kemampuan untuk melibatkan pengetahuan tambahan secara sebab-akibat dari suatu deskripsi dasar. Ia dapat merumuskan dan bernalar dari deskripsi abstrak tentang pelbagai obyek dan situasi yang ditemui itu.

c.       Memperbolehkan digunakannya representasi prinsip-prinsip umum dan situasi-situasi khusus.
Karena sebuah sistem cerdas harus segeneral mungkin, maka setiap bahasa  representasi membutuhkan peubah. Kebutuhan akan penalaran kualitatif membuat penggunaan dan implementasi peubah menjadi berbeda dengan yang dipakai dalam bahasa pemrograman tradisional. Bahasa representasi pengetahuan yang baik mampu menangani nama-nama peubah, obyek dan niali dengan cara yang dinamis.

d.     Dapat menangkap arti semantik yang rumit.
Banyak problema yang disimak oleh Kecerdasan Buatan yang membutuhkan sejumlah besar pengetahuan yang sangat terstruktur dan saling terhubung. Hubungan semantik merupakan hal yang penting dalam menggambarkan hubungan sebab-akibat antara peristiwa yang terjadi sepanjang waktu. Sekalipun dapat digambarkan sebagai sekumpulan predikat, suatu struktur istilah dengan tingkat yang lebih tinggi diperlukan untuk membantu baik pemrogram maupun program agar dapat menangani konsep-konsep rumit secara terpadu.


e.      Memperbolehkan digunakannya kerangka sebab-akibat meta-level.
Sebuah sistem cerdas tidak hanya harus mengetahui sesuatu namun juga harus mengetahui apa yang diketauinya. Ia semestinya tidak hanya dapat menyelesaikan masalah saja namun juga harus mampu menjelaskan bagaimana ia menyelesaikan masalah dan mengapa mengambil suatu keputusan tertentu. Selain itu ia juga dapat menggambarkan pengatahuannya baik dalam istilah yang spesifik maupun yang umum, menyadari keterbatasan pengetahuannya dan belajar dari interaksinya dengan dunia luar. Cara seperti inilah yang menghasilkan pengetahuan dengan tingkat lebih tinggi yang disebut pengetahuan meta.


6.3.      Pendefinisian Problema Sebagai Proses Pencarian Ruang Keadaan (State Space Search)
Aspek tingkah laku cerdas yang mendasari teknik penyelesaian problema disebut proses pencarian ruang keadaan (space state search).

Struktur representasi ruang keadaan bersesuaian dengan struktur pemecahan problema dalam dua cara penting, yaitu:
1.      Definisi formal dari sebuah problema diperbolehkan untuk digunakan sebagai kebutuhan untuk mengubah suatu situasi yang diberikan menjadi suatu situasi yang diinginkan dengan menggunakan seperangkat operasi yang diperkenankan.
2.      Pendefinisian proses pemecahan problema khusus diijinkan untuk digunakan sebagai kombinasi teknik-teknik yang telah dikenal dan proses pencarian, teknik umum dalam mengamati ruang tersebut untuk mencoba menemukan suatu jalan keluar dari keadaan saat ini menuju keadaan yang dituju.

Proses pencarian ruang keadaan itu sendiri tidaklah cukup untuk mengotomatisasikan tingkah laku pemecahan problema secara otomatis.

Proses pencarian ruang keadaan pencarian menyeluruh (exhaustive search) melakukan pencarian terhadap seluruh ruang keadaan serangkaian langkah yang paling dimungkinkan untuk menghasilkan kemenangan. Metode ini dapat diterapkan pada setiap ruang keadaan, namun ukuran ruang keadaan yang sangat ‘besar’ membuat pendekatan ini secara praktis tidak dimungkinkan. Misalnya, dalam permainan catur, terdapat 10120 keadaan atau konfigurasi papan yang berbeda.

Kita tidak menggunakan exhaustive search tetapi menjalankan langkah-langkah yang terbukti efektif yang didasarkan pada aturan-aturan tertentu yang memandu proses pencarian ke arah ruang keadaan yang paling menjanjikan. Aturan inilah yang dikenal sebagai heuristik (heuristic dari bahasa Yunani yang artinya menemukan).

A.    Proses Pencarian Heuristik
Heuristik merupakan strategi untuk melakukan proses pencarian ruang problema secara selektif, yang memandu proses pencarian di sepanjang jalur yang memiliki kemungkinan suskses paling besar, dan mengesampingkan usaha yang bodoh dan memboroskan waktu.

Jika proses pencarian ruang keadaan merupakan alat untuk memformalkan proses pemecahan problema, maka heuristik menyuntikkan formalisme tersebut agar dapat bekerjasama dengan kecerdasan.

Heuristik mengembangkan efisiensi dalam proses pencarian, namun dengan kemungkinan mengorbankan kelengkapan.

Contoh heuristik adalah algoritma tempat terdekat (shortest path job), menghasilkan prosedur berikut :
i.        pilih sebuah kota secara sembarang sebagai awal perjalanan
ii.      untuk memilih kota persinggahan berikutnya, simak seluruh kota yang belum pernah disinggahi. Pilih kota terdekat dengan kota yang saat ini sedang dikunjungi.
iii.    ulangi langkah kedua sampai semua kota telah dikunjungi.
Eksekusi prosedur ini membutuhkan waktu n2.

Dalam heuristik, seringkali dimungkinkan untuk membutktikan adanya batas-batas kesalahan yang membuat tidak terlalu banyak mengorbankan ketepatan demi kecepatan.


B.     Deskripsi Formal Sebuah Problema

Persoalan seringkali berisi pernyataan eksplisit atau tersirat dimana di dalamnya dapat ditemukan rangkaian terpendek atau termurah. Jika hal seperti ini didapati pada suatu problema, persyaratan ini akan mempunyai pengaruh yang penting dalam memilih mekanisme yang memadai untuk memandu dalam mencari solusinya.

Secara ringkas dapat dikatakan bahwa langkah-langkah untuk mendapatkan deskripsi formal dari sebuah problema menjadi representasi ruang keadaan adalah sebagai berikut :
i.        Definisikan ruang keadaan yang berisi semua konfigurasi yang dimungkinkan dari obyek-obyek yang relevan (dan bisa pula yang tidak dimungkinkan). Tentu saja dimungkinkan untuk mendefinisikan ruang seperti ini tanpa menyebutkan semua ruang yang dikandungnya secara eksplisit.
ii.     Spesifikasikan satu atau lebih keadaan di dalam ruang keadaan yang menggambarkan situasi-situasi yang dimungkinkan sebagai keadaan awal proses pemecahan problema. Keadaan-keadaan ini disebut dengan keadaan awal.
iii.   Spesifikasikan satu atau lebih keadaan yang dapat diterima sebagai solusi problema. Keadaan-keadaan ini disebut dengan keadaan tujuan.
iv.   Spesifikasikan seperangkat aturan yang menggambarkan sesuatu yang dimungkinkan untuk dilakukan oleh operator.
Untuk hal ini dibutuhkan pemikiran tentang :
-          asumsi-asumsi tersirat yang terkandung dalam deskripsi problema informal
-          tingkat generalitas aturan-aturan yang dibuat
-          pekerjaan yang harus dilakukan untuk memecahkan problema dalam bentuk pra-perhitungan dan tergambarkan dalam aturan-aturan yang ada.

Contoh problema ember air
Kita mempunyai 2 ember. Satu ember bervolume 4 liter dan ember lainnya bervolume 3 liter. Problemanya adalah bagaimanakah kita bisa mendapatkan air bervolume tepat 2 liter di dalam ember bervolume 4 liter? Proses penakaran hanya dengan memakai dua ember yang ada.

Ruang keadaannya dapat digambarkan sebagai himpunan pasangan bilangan bulat (x, y); x = 0, 1, 2, 3 atau 4, dan y = 0, 1, 2 atau 3; dengan x = jumlah air (liter) pada ember bervolume 4 liter, dan y = jumlah air (liter) pada ember bervolume 4 liter.

Keadaan awal adalah (0, 0). Keadaan yang dituju adalah (2, n), untuk sembarang nilai n (persoalan ini tidak menentukan berapa berapa liter air yang ada di ember bervolume 3 liter).

Aturan yang digunakan untuk memecahkan problema ini adalah sebagai berikut:
1.      (x, y ï x < 4) ® (4, y)
2.      (x, y ï y < 3) ® (x, 3)
3.      (x, y ï x > 0) ® (x-D, y)
4.      (x, y ï y > 0) ® (x, y-D)
5.      (x, y ï x > 0) ® (0, y)
6.      (x, y ï y > 0) ® (x, 0)
7.      (x, y ï x+y ³ 4 Ç y > 0) ® (4, y-(4-x))
8.      (x, y ï x+y ³ 3 Ç x > 0) ® (x-(3-y), 3)
9.      (x, y ï x+y £ 4 Ç y > 0) ® (x+y, 0)
10.  (x, y ï x+y £ 3 Ç x > 0) ® (0, x+y)

Arti dari masing-masing operator aturan di atas adalah
1.      Mengisi ember bervolume 4 liter.
2.      Mengisi ember bervolume 3 liter.
3.      Mengisi sejumlah air dari ember bervolume 4 liter.
4.      Mengisi sejumlah air dari ember bervolume 3 liter.
5.      Mengosongkan/membuang air dari ember bervolume 4 liter.
6.      Mengosongkan/membuang air dari ember bervolume 3 liter.
7.      Menuangkan air dari ember bervolume 3 liter ke ember bervolume 4 liter sampai ember bervolume 4 liter menjadi penuh.
8.      Menuangkan air dari ember bervolume 4 liter ke ember bervolume 3 liter sampai ember bervolume 3 liter menjadi penuh.
9.      Menuangkan semua air dari ember bervolume 3 liter ke ember bervolume 4 liter.
10.  Menuangkan semua air dari ember bervolume 4 liter ke ember bervolume 3 liter.

Asumsi eksplisit yang diberikan misalnya :
-          ember-ember dapat diisi air dari PAM
-          membuang air dari dalam ember ke luar
-          menuangkan air dari ember yang satu ke ember yang lain, dan
-          tidak ada alat ukur.


Salah satu operasi yang dapat memecahkan problema ini adalah sebagai berikut

Jumlah air (liter) dalam
Aturan yang diterapkan
ember  bervolume 4 liter
ember  bervolume 3 liter
0
0
2
0
3
9
3
0
2
3
3
7
4
2
5
0
2
9
2
0




C.     Strategi Pengendalian
Untuk dapat memecahkan problema, dibutuhkan juga suatu struktur pengendalian/kontrol yang melakukan pengulangan (looping) melalui siklus sederhana.

Selama melakukan proses pencarian untuk mendapatkan solusi dari sebuah problema, kita tentu akan bertanya-tanya tentang bagaimanakah caranya memutuskan aturan berikutnya yang akan digunakan kemudian.

Strategi pengendalian yang baik haruslah
1.      Dapat menimbulkan adanya ‘gerak’.
Strategi pengendalian yang tidak menyebabkan adanya ‘gerak’ tidak akan pernah sampai pada sebuah solusi.
Pada problema ember air, jika kita mulai dengan memilih aturan yang pertama, maka kita tidak akan pernah dapat menyelesaikan problema.

2.      Sistematik
Strategi pengendalian yang tidak sistematik akan menyebabkan penggunaan serangkaian operator aturan beberapa kali sebelum sampai pada sebuah solusi.
Jika kita memilih aturan-aturan yang dapat digunakan secara acak (random) pada setiap siklus, walaupun akan menimbulkan adanya ‘gerak’ dan akan menghasilkan solusi, namun kita akan sampai pada keadaan yang sama beberapa kali dan menggunakan lebih banyak langkah yang semestinya diperlukan.

Strategi sistematik yang dapat digunakan adalah breadth-first search, depth-first search, dan best-first search.


D.    Sistem Produksi
Sistem produksi memiliki struktur proses pencarian. Sistem produksi terdiri dari :
1.      Seperangkat aturan yang masing-masing berisi pola sisi kiri yang menentukan pemakaian aturan tertentu, dan sisi kanan yang menggambarkan tindakan yang harus dilakukan jika aturan tertentu tersebut digunakan.
2.      Satu atau lebih basis data yang berisi informasi tentang tugas-tugas khusus. Beberapa bagian basis data mungkin bersifat permanen, sedang yang lain hanya berisi solusi problema yang sedang dihadapi saat ini. Informasi yang terdapat dalam basis data tersebut mungkin terstruktur dengan cara tertentu.
3.      Suatu strategi pengendalian yang menentukan urutan pembandingan suatu aturan dengan basis data dan cara menyelesaikan suatu konflik yang muncul bila beberapa aturan saling bertumbukan pada saat yang bersamaan.


6.4.      Penganalisisan dan Karakteristik Problema
Penganalisisan problema untuk memilih metode (atau gabungan beberapa metode) yang paling baik untuk suatu problema tertentu sangatlah penting.

Beberapa pertanyaan berkenaan dengan penganalisisan suatu problema dapat diajukan seperti :

1.      Apakah suatu problema dapat didekomposisi/dipilah-pilah menjadi sejumlah upa-problema independen yang lebih kecil atau lebih mudah ?

Contoh problema yang dapat didekomposisi adalah problema menghitung integral tak berbatas. Misalnya,

ò (x4 + 7x + cos2x) dx

Problema tersebut didekomposisi menjadi

 


















Untuk problema yang tidak dapat didekomposisi, ditangani dengan teknik bagi dan taklukan (divide and conquer).


2.      Dapatkah langkah-langkah penyelesaian yang terbukti tidak tepat, diabaikan atau tidak perlu dikerjakan ?

Berkaitan dengan langkah-langkah yang diambil dalam penyelesaian problema, akan muncul 3 problema penting yang berbeda
-          dapat diabaikan, dimana langkah solusi dapat diabaikan, seperti pada pembuktian teorema.
-          dapat diulang (recoverable), dimana langkah solusi dapat dibatalkan, seperti pada permainan teka-teki 8 (the 8-puzzle).
-          tidak dapat diulang (irrecoverable), dimana langkah solusi tidak dapat dibatalkan, seperti pada permainan catur.

Problema yang dapat diulang dapat dipecahkan dengan strategi pengendalian yang agak rumit yang kadang-kadang dapat melakukan langkah yang salah. Dibutuhkan pelacakan kembali untuk mengungkap kesalahan tersebut. Sehingga struktur pengendalian harus dilakukan dengan memakai pushdown stack, dimana keputusan-keputusan direkam agar bisa dibatalkan kemudian.

Problema yang tidak dapat diulang / dibatalkan akan membutuhkan pemecahan oleh suatu sistem yang mampu melakukan prakiraaan setiap keputusan, karena keputusan yang diambil merupakan keputusan terakhir.

Beberapa problema yang tidak dapat diulang dapat dipecahkan dengan cara memakai proses perencanaan (planning), dimana seluruh urutan langkah dianalisis terlebih dahulu untuk menemukan apa yang bakal terjadi bila langkah tersebut benar-benar dilaksanakan.


3.      Apakah ruang lingkup atau semesta pembicaraan problema dapat diprakirakan ?

Perencanaan merupakan pemecahan problema tanpa adanya umpan balik (feedback) dari lingkungannya.

Ada jenis problema yang mempunyai penyelesaian yang pasti dan ada yang tidak pasti.

Untuk memecahkan problema dengan penyelesaian yang pasti, pendekatan loop terbuka akan dapat bekerja dengan baik begitu hasil suatu tindakan dapat diprakirakan dengan sempurna. Di sini, perencanaan dapat digunakan untuk menghasilkan serangkaian operator (aturan) yang dijamin dapat sampai pada solusi.

Untuk problema yang penyelesaiannya tidak pasti, perencanaan hanya dapat menghasilkan serangkaian operator (aturan) yang memiliki probabilitas yang baik untuk sampai pada solusi. Untuk memecahkan problema semacam ini, dibutuhkan adanya proses ‘revisi rencana’ dengan cara melibatkan adanya proses umpan balik. Perencanaan seringkali menjadi sangat mahal karena jumlah jalan menuju solusi yang harus diungkapkan akan naik secara eksponensial terhadap jumlah titik yang keluarannya tidak dapat diprakirakan.

Memang, jenis problema yang paling sulit ditangani adalah problema yang tidak dapat diulang/dibatalkan dan juga dengan keluaran yang tidak pasti.


4.      Apakah solusi problema yang baik telah dibandingkan dengan semua solusi yang dimungkinkan ?

Sebuah solusi problema yang baik dapat bersifat mutlak atau relatif dengan cara dibandingkan dengan semua solusi yang dimungkinkan.

Sebuah solusi untuk suatu problema mungkin telah memperoleh jawaban yang diinginkan dengan mengikuti sebuah lintasan penalaran saja, dengan tidak mempedulikan lintasan mana yang digunakan.

Contoh sebuah problema untuk menjawab pertanyaan
“Apakah Agus hidup?”, berdasarkan pada basis data fakta-fakta sederhana berikut:
1.      Agus adalah seorang laki-laki
2.      Agus adalah seorang berkebangsaan x
3.      Agus dilahirkan pada tahun 140
4.      Semua manusia adalah fana
5.      Semua orang berkebangsaan x meninggal karena adanya bencana banjir di tahun 179
6.      Tidak ada manusia yang dapat hidup lebih lama dari 170 tahun
7.      Sekarang tahun 1990

Dengan merepresentasikan setiap fakta dalam bahasa formal, seperti dalam logika predikatif, dan kemudian dengan memakai metode inferensi (sebab-akibat), maka akan dapat memperoleh jawaban dari pertanyaan itu.

Dua lintasan (path) penalaran berikut akan sampai pada jawaban yang benar

Lintasan penalaran 1


Pembenaran
1.
Agus adalah seorang laki-laki
Aksioma 1
4.
Semua manusia adalah fana
Aksioma 4
8.
Agus adalah fana
1, 4
3.
Agus dilahirkan pada tahun 140
Aksioma 3
7.
Sekarang adalah tahun 1990
Aksioma 7
9.
Umur agus adalah 1854 tahun
3, 7
6.
Tidak ada manusia yang dapat hidup lebih lama dari 170 tahun
Aksioma 6
10.
Agus sudah meninggal
8, 6, 9

Lintasan penalaran 2


Pembenaran
7.
Sekarang adalah tahun 1992
Aksioma 7
5.
Semua orang berkebangsaan x meninggal pada tahun 179
Aksioma 5
11.
Semua orang berkebangsaan x telah meninggal seluruhnya saat ini
7, 5
2.
Agus adalah seorang berkebangsaan x
Aksioma 2
12.
Agus sudah meninggal
11, 2

Karena yang diinginkan adalah jawaban dari pertanyaan di atas, maka tidak memperdulikan lintasan mana yang digunakan.
Persoalan di atas merupakan problema sembarang lintasan. Untuk problema ini, apabila dengan mengikuti sebuah lintasan penalaran sudah berhasil memperoleh jawaban yang diinginkan, maka tak ada alasan untuk melihat adanya kemungkinan suatu lintasan lain yang juga menghasilkan jawaban yang diharapkan.

Sedangkan problema wiraniaga yang hendak mencari jarak total terpendek dalam melalui beberapa kota, merupakan problema lintasan terbaik. Dalam problema ini, sebuah jawaban tidak dapat dipastikan kebenarannya kecuali setelah semua lintasan / jalur yang ada dicoba.

Pada umumnya, problema lintasan terbaik lebih sulit dipecahkan daripada problema sembarang lintasan. Problema sembarang lintasan seringkali dapat dipecahkan dalam waktu yang tidak terlalu lama dengan menggunakan heuristik yang menawarkan lintasan-lintasan mana saja yang sebaiknya ditelusuri. Untuk problema lintasan terbaik, sebaiknya melibatkan lebih banyak exhaustive search.


5.      Apakah basis pengetahuan yang digunakan untuk memecahkan problema bersifat konsisten secara internal ?

Misalkan terdapat seperangkat aksioma untuk grup perkalian
1.      XY didefinisikan untuk semua XY
2.      X = Y Ç Y = Z ® X = Z
3.      X = X
4.      (XY)Z = X(YZ)
5.      IX = X
6.      X-1X = I
7.      X = Y ® ZX = ZY
8.      X = Y ® XZ = YZ

Aksioma tersebut di atas digunakan untuk memecahkan problema

Buktikan bahwa XI = X

Karena kekonsistenan aksioma yang ada (merupakan basis pengetahuannya), kita dapat membuktikannya dengan prosedur pembuktian matematika standar.

Sekarang kita akan memecahkan problema berikut :

“ Seseorang berdiri pada jarak 50 meter dari sebuah sasaran. Dia merencanakan untuk menembak sasaran itu dengan sebuah senapan yang pelurunya memiliki kecepatan 500 meter per detik saat keluar dari moncong senapan. Seberapa tinggikah dari sasaran dia harus mengarahkan senapannya ? “

Karena adannya ketidak konsistenan dalam basis datanya, maka problema tersebut dipecahkan sebagai berikut.
Karena adanya gravitasi yang akan membelokkan arah peluru ke bawah, maka seharusnya dia tidak mengarahkan senapannya tepat pada sasaran. Akan tetapi jika berasumsi bahwa peluru tersebut akan menempuh garis lurus, maka hal ini akan bertentangan dengan yang sesungguhnya terjadi.


6.      Apakah sebenarnya peranan pengetahuan ?

Yakni, apakah benar-benar dibutuhkan sejumlah besar informasi untuk memecahkan problema yang sedang dihadapi, atau pengetahuan hanya penting untuk membatasi proses pencarian ?

Untuk memcahkan problema berikut misalnya : “koran-koran mana yang mendukung masalah / isu tertentu dan mana yang menentangnya ?”. Jelas dibutuhkan banyak pengetahuan agar dapat memperoleh solusi yang diinginkan.

Berbeda dengan permainan catur dimana pengetahuan hanya penting untuk membatasi proses pencarian. Yakni cukup disajikan aturan-aturan untuk menentukan langkah-langkah yang diperkenankan serta suatu mekanisme pengendalian sederhana yang mengimplementasikan sebuah prosedur pencarian yang memadai. Pengetahuan tambahan seperti taktik dan strategi yang baik tentu saja akan membantu untuk membatasi proses pencarian serta mempercepat eksekusi program.


7.      Apakah pemecahan suatu problema membutuhkan interaksi antara komputer dan manusia ?

Dengan perkataan lain, apakah sebuah komputer sendirian dapat diberi problema dan kemudian menyajikan solusi secara sederhana, atau akankah solusi dari suatu problema membutuhkan interaksi antara komputer dan manusia ?

Ada 2 jenis problema yang harus dibedakan :
1.      Terkucil (solitary),
Untuk problema jenis ini, komputer diberi deskripsi problema dan akan menghasilkan sebuah jawaban, tanpa adanya komunikasi antara dan tanpa penjelasan tentang terjadinya proses penalaran.

2.      Bercakap-cakap (conversational)
Dimana akan terjadi komunikasi antara manusia dan komputer, baik itu berupa bantuan tambahan bagi komputer atau penyajian informasi tambahan bagi pemakai, atau keduanya.

Tentu saja, perbedaan ini bukanlah merupakan perbedaan yang kaku dalam menggambarkan problema tertentu.



6.5.       


























VII. PEMBAHASAN BEBERAPA BIDANG KECERDASAN BUATAN


  1.  
  2. Bahasa Alamiah
  3. Pengenalan Suara
  4. Neural Networks
  5. Logika Samar
  6. robotic
moving block

  1.  
  2.  
  3.  


5.5.Skema Representasi Pengetahuan


5.6.Logika (Logic)






























VIII. PENGENALAN PEMROGRAMAN KECERDASAN BUATAN




Ada dua alat untuk membangun suatu sistem program aplikasi kecerdasan buatan, yaitu:
1.      Bahasa Pemrograman Khusus
2.      Shell


8.1.      Bahasa Pemrograman Khusus
Hampir semua bahasa pemrograman komputer dapat digunakan untuk membuat program aplikasi kecerdasan buatan. Namun agar lebih mudah dalam implementasi pemrograman dan akuisisi pengetahuan, umumnya digunakan bahasa pemrograman khusus. Bahasa pemrograman khusus untuk aplikasi kecerdasan buatandiantaranya adalah Prolog, Lisp, SmallTalk, Planner, dan sebagainya.

Selain Bahasa Prolog dan Lisp, sebagian besarnya tidak diperoleh dalam bentuk komersial (karena tidak diperjualbelikan) hanya untuk kepentingan tertentu, misalnya hanya untuk kepentingan penelitian (research) dan pendidikan (education).

Bahasa pemrograman khusus untuk aplikasi kecerdasan buatan merupakan bahasa Pemrograman Logika. Pada bagian ini, bahasa pemrograman logika yang akan dipelajari adalah bahasa Prolog dengan compiler Turbo Prolog 2.0.



8.2.      Bahasa Prolog
PROLOG singkatan dari PROgramming in LOGic. Bahasa Prolog merupakan bahasa generasi kelima, dibangun atas dasar pemrograman alamiah dan logika.

Dari segi teori, pembangunan gagasan pemrograman dengan logika (programming in logic) yang pertama adalah Kowalski di Edinburgh. Kemudian didemonstrasikan secara eksperimental oleh Maarten van Emden juga di Edinburgh, dan diwujudkan oleh Alain Colmerauer (seorang profesor di Universitas Aix, Marseilles, Perancis) dengan berhasil membuat interpreter Prolog yang pertama bersama kelompoknya tahun 1972.

Kelahiran Prolog sendiri diawali kelika Alain Colmerauer dengan sekelompok peneliti menghadapi masalah penerjemahan bahasa dengan komputer di Montreal. Hal ini akibat hasil karya Noam Chomsky dalam ilmu bahasa alami dengan bahasa komputer.

Berikut diuraikan dasar-dasar  bahasa pemrograman Turbo Prolog.
1.      Fakta
Fakta adalah suatu kenyataan atau kebenaran yang diketahui. Fakta menyatakan hubungan (relasi) antara dua obyek atau lebih. Fakta dapat juga menunjukkan sifat suatu obyek. Obyek dapat berupa benda, manusia, hewan, tumbuhan, atau suatu kejadian/peristiwa.

Bentuk Umum penulisan fakta di Turbo Prolog:

relasi/sifat(argumen/obyek).

Penulisan fakta harus diakhiri dengan tanda titik (.).

Contoh:
pedas(cabe).
orangtua(ahmad,hasan).

Orangtua dan pedas disebut relasi/sifat. Nama relasi, seperti orangtua, disebut juga predikat. Yang berada di dalam kurung [cabe, ahmad, dan hasan] menggambarkan obyek dan disebut argumen. Predikat boleh tanpa argumen. Jadi predikat dapat dapat dikatakan sebagai nama suatu relasi dan menentukan jenis obyek yang terlibat.

Suatu unsur, obyek nyata atau konstanta yang tidak tersusun dari obyek lain disebut atom. Jadi cabe, ahmad, dan hasan merupakan atom-atom.

Misalkan terdapat fakta berupa relasi yang diberikan dengan representasi jaringan semantik berikut:

Text Box: punya anakText Box: punya anak

Gambar 4Sebuah fakta hirarki suatu keluarga.
Dari gambar jaringan semantic di atas, kita bisa mengungkapkan hubungan keluarga dengan satu relasi, misalnya orangtua(X,Y); dan dibaca “X adalah orang tua Y”.

Hubungan ini dituliskan dalam bahasa Prolog:

orangtua(ahmad,wahyu).
orangtua(siti,wahyu).
orangtua(wahyu,nani).
orangtua(wahyu,iwan).
orangtua(nani,gani).
orangtua(iwan,gina).

Selain relasi orangtua, dapat juga ditentukan realsi lain seperti anak(Y,Z), kakek(Z,S), cucu(L,M), adik(K,L), dan sebagainya. Sehingga diperoleh:

anak(wahyu,ahmad).
kakek(ahmad,nani).

Contoh fakta yang berupa sifat:

Gula berasa manis

Dinyatakan dalam Prolog:

manis(gula).


2.      Aturan
Misalkan kita ingin agar bisa menanyakan relasi kakek atau anak dari relasi orangtua tadi, sementara sudah terlanjur menyusun fakta seperti di atas.

Mungkin terlintas di fikiran kita untuk membuat saja relasi anak dan kakek sebagai berikut:

anak(wahyu,ahmad).
anak(wahyu,siti).
anak(nani,wahyu).
anak(iwan,wahyu).
anak(gani,nani).
anak(gina,iwan).
kakek(ahmad,nani).
kakek(wahyu,gani).
kakek(wahyu,gina).

Dengan dmk kita mempunyai 3 jenis predikat untuk menyatakan diagram keluarga itu. Relasi anak disusun terbalik dari fakta untuk relasi orangtua, dan fakta untuk relasi kakek dilacak dari relasi yang ada.

Maka kita dapat mengajukan pertanyaan seperti: Siapa anak ahmad?
Yang dalam prolog ditulis,

Goal: anak(X,ahmad)

X harus huruf besar (karena merupakan variabel), tidak perlu diakhiri dengan tanda titik.

Prolog akan menjawab,

X = wahyu.
1 Solutions

Untuk pertanyaan : siapa kakek iwan? Yang dalam Prolog ditulis,

Goal: kakek(X,iwan)

Prolog akan menjawab,

X = ahmad.
1 Solutions


Cara penulisan fakta baru seperti itu tentu saja membosankan dan tidak sangkil, apalagi jika kita menghendaki lebih banyak relasi baru ditambah fakta yang ada sangat banyak.

Untuk itu digunakan cara lain yaitu dengan membuat aturan, sehingga dapat memperbesar kemampuan program atau meningkatkan daya nalar program, disamping sangat sederhana dan mudah.

Untuk membuat suatu aturan kita hanya perlu suatu rumusan logika sebagai berikut.

Fakta yang ada memperlihatkan realsi orangtua, maka jika kita ingin menyatakan relasi anak atau kakek, kita harus merumuskan apa hubungan antara orangtua dan anak, juga antara orangtua dan kakek.

Secara logika,
A anak B, jika B orangtua A
Dan
A kakek C, jika A orangtua B dan B orangtua C.

Jadi, di sini kita mencari rumusan anak dan kakek dengan relasi yang ada yaitu orangtua.

Dalam relasi orangtua, aturan relasi untuk anak dalam Prolog ditulis sebagai berikut:

anak(X,Y) if orangtua(X,Y).

Kata if dapat diganti dengan tanda bagi dan minus (:-), sehingga menjadi:

anak(Y,X) :- orangtua(X,Y).



sedangkan aturan untuk relasi kakek adalah

kakek(X,Z) if laki_laki(X) and
              orangtua(X,Y) and
              orangtua(Y,Z).

Dalam aturan di atas ada relasi baru yang perlu ditambahkan, yaitu laki_laki(X), untuk memastikan bahwa X bukan seorang nenek.

Kata and dapat diganti dengan tanda koma (,), sehingga menjadi:

kakek(X,Z) :- laki_laki(X),
              orangtua(X,Y),
              orangtua(Y,Z).


Aturan-aturan di atas merupakan klausa.
 



kakek(X,Z) if laki_laki(X) and orangtua(X,Y) and orangtua(Y,Z).




Klausa (clause) adalah suatu frase (ungkapan) atau susunan kata yang dalam Prolog bisa berupa fakta atau aturan yang diakhiri dengan titik. Klausa dapat merupakan rangkaian upa-klausa-upa-klausa dengan and (konjungsi), or (disjungsi) atau if (implikasi).

Contoh penggunaan disjungsi dalam suatu aturan berikut:

orangtua(X,Y) :- ibu(X,Y) or ayah(X,Y).

Kata or dapat diganti dengan tanda titik koma (;), sehingga menjadi:

orangtua(X,Y) :- ibu(X,Y); ayah(X,Y).


3.      Variabel
Argumen suatu predikat dapat berupa konstanta (atom) atau variabel atau bahkan obyek lain. Atom disebut juga obyek nyata (concrete) sedangkan variabel disebut juga obyek umum (general). Suatu atom, variabel atau obyek lain dalam prolog disebut term. Jadi, argumen selalu berupa term.

Dalam Prolog terdapat 2 variabel, yaitu:
a.      Variabel bernama.
Yaitu variabel yang diberi nama, seperti: X, Orang, dan sebagainya.

Karakter pertama variabel harus huruf besar (capital) atau garis bawah/underscore (_). Jika tidak, Prolog akan menganggap sebagai simbol atau konstanta.

Karakter pertama variabel tidak boleh bilangan.

Nama variabel juga tidak boleh mengandung suatu karakter khusus, seperti: + (tambah), (kurang), / (bagi), * (kali) dan sebagainya.
Contoh pemberian nama variabel yang benar:

Orang
Nama_Orang
_orang
Proyek_01
_Kota

Contoh pemberian nama variabel yang salah:

2orang            /* diawali angka */
nama-orang        /* mengandung operator minus */
tgl/lahir         /* mengandung operator bagi */
proyek_01         /* diawali huruf kecil */

Untuk memudahkan pembacaan program, sebaiknya nama variabel menunjukkan (mengandung) arti yang ditunjuknya. Misalnya:

PendapatanPerKapita
GolonganRuangJabatan

Dalam mencari jawaban, Prolog melakukan pemadanan (unifikasi). Pada saat pemadanan, variabel akan mendapatkan nilai. Variabel yang belum mendapatkan nilai disebut variabel bebas (free variable) dan variabel yang sudah terikat dengan suatu nilai disebut variabel terikat (bound variable). Keterikatan ini bersifat sementara dan disebut juga instantiasi.

Secara sederhana, instantiasi berarti berarti proses pengambilan fakta contoh (instance) dari sekumpulan fakta yang ada dan mengikatkan nilai variabel pada argumen  yang sesuai secara sementara (selama belum ada lacak  balik).

Pada Prolog, keterikatan variabel hanya berlaku pada satu tahap pencarian jawaban. Nilai suatu variabel tidak dapat dimanfaatkan klausa lain tanpa adanya pemadanan dengan variabel yang dipakai klausa lain tersebut.


b.      Variabel tak bernama (anonymuous variable)
Variabel tak bernama dilambangkan dengan tanda garis bawah/underscore (_).

Variabel ini digunakan untuk suatu nilai yang diabaikan. Jadi, variabel ini tidak pernah akan terikat. Jika dipadankan dengan suatu nilai, variabel ini tidak pernah menyebabkan kegagalan, atau selalu  sepadan (match).



Contoh:

direktur(heru, keuangan).
direktur(joko, produksi).
direktur(syarif, umum).
direktur(didin, operasional).

Jika ingin menanyakan siapa saja yang jadi direktur, dengan mengabaikan direktoratnya, dalam Prolog ditulis:

direktur(Orang,_).

maka akan diperoleh jawaban:

Orang = heru
Orang = joko
Orang = syarif
Orang = didin

Bagaimana jika dalam Prolog ditanyakan seperti ini:

direktur(_,Direktorat).

Menanyakan apakah hal itu? Bagaimana pula hasil keluarannya?

Varibel ini juga bisa dipakai untuk menyatakan kata setiap/semua, seperti: setiap orang mempunyai nama, dalam Prolog ditulis:

memiliki(_,nama).

4.      Match
Match atau serasi/sepadan dalam Prolog mengandung beberapa arti dalam perbandingan fakta, yakni:

a.      Struktur fakta yang sama/identik

orangtua(ali,husein) sepadan/identik dengan orangtua(ali,husein).

b.      Struktur sepadan untuk satu variabel

orangtua(ali,X).

dengan

orangtua(ali,husein).

Di sini, X akan terikat dengan husein bila X masih bebas. Jika X sudah terikat, misalnya dengan husein, maka kedua klausa di atas masih match. Ttp jika sudah terikat dengan nilai lain, tidak akan match atau gagal (fail).




c.       Struktur sepadan untuk dua variabel

orangtua(X,husein).

dengan

orangtua(Y,husein).

Kedua variabel X dan Y masih bebas, maka akan terjadi penyatuan,n yakni jika nanti Y mendapat nilai, maka nilai itu pula yang dikandung X, demikian pula sebaliknya. Keterikatan ini disebut pula dengan freesharing variables, yakni keduanya masih bebas  dan merupakan satu variabel.


5.      Struktur Program
Lazimnya, struktur program Turbo Prolog terdiri dari beberapa bagian pokok:
-          Domains
-          Predicates
-          Clauses, dan
-          Goal
Bagian lain dari struktur program Turbo Prolog: Database, Constants, Global dan petunjuk compiler.


F  Domains
Bagian domain berisi deklarasi tipe/jenis data, jadi seperti deklarasi type dalam Pascal. Di bagian ini, kita menyatan jenis suatu variable atau argument.

Contoh:

Domains
  NamaOrang      = symbol
  Alamat         = string
  PanjangSisi    = integer
  LuasLingkaran = real
  L_alamat       = alamat*

Deklarasi L_alamat = alamat* menyatakan bahwa L_alamat merupakan list dari alamat. Jika ada dua domain sejenis, maka cara menulisakannya dipisahkan dengan tanda koma (,).

Contoh: Alamat, Jabatan = string

Deklarasi domain di atas digunakan untuk predikat misalnya

data(NamaOrang,Alamat)

Domain dalam suatu predikat adalah milik argument pada posisi yang ditempati domain dalam predikat tersebut. Deklarasi domain membedakan suatu domain buatan (yang dideklarasikan) dari domain buatan yang lain, meskipun berasal dari domain standar yang sama.

Jika kita tidak menggunakan domains sendiri, kita hanya boleh menggunakan domain standar, seperti:
data(string,string)

Domain standar (baku) Turbo Prolog adalah sebagai berikut:
a.      symbol
Berupa rangkaian huruf asalkan karakter pertama berupa huruf kecil, angka, dan garis bawah serta tidak mengandung spasi/karakter khusus.

b.      string
Rangkaian karakter yang diapit dalam tanda petik ganda (”). Panjang maksimum sebuah string adalah 255 karakter. Jika string tersebut dari file atau terkandung dalam program, bisa mencapai 64 kByte.
Contoh suatu string:

“Fakultas Ilmu Komputer UNIKU”

c.       integer
Bilangan bulat : -32.768 sampai dengan 32.767. Bilangan bulat basis 16 (hexadecimal) diawali dengan tanda dolar ($).



d.     real
Bilangan riil : 1 x 10-307 sampai dengan 1 x 10-308 (1e-307 sampai dengan 1e-308). Jika bilangan bulat diberikan pada argument riil, maka akan langsung diubah ke riil.


F  Predicates
Predikat harus dideklarasikan pada bagian Predicates dan mendefinisikannya dalam bagian Clauses. Jika tidak, Turbo Prolog tidak akan mengenalnya.

Nama predikat harus diawali dengan huruf, boleh huruf besar (tidak dianjurkan) atau huruf kecil,  selebihnya bisa huruf, angka, atau garis bawah. Nama predikat tidak boleh mengandung spasi, tanda minus, asterisk atau garis miring.

Deklarasi predikat dalam bagian Predicates harus juga disertai argument jika memang berargumen. Jumlah argument dalam predikat disebut aritas (arity).

Satu predikat boleh memiliki aritas yang berbeda asal harus dikelompokkan dalam bagian clausesnya.

anggota(Nama)
anggota(Nama,Alamat)

Jenis argument suatu predikat boleh memiliki domain yang berbeda, seperti:

anggota(nomor,alamat)
anggota(nomor,nama)

Predikat  yang sudah didefinisikan berargumen X dengan domain Xd tidak dapat mengalihkan nilai (nilai X) untuk argument predikat lain dengan domain Yd meskipun Xd dan Yd berdomain standar sama.

Domains
  anggota      = string
  nama         = string
  nomor = integer

Predicates
  menu(nomor,nama)
  tulis(anggota)

clauses
  menu(No,Nm):-tulis(Nm),…

Program ini salah karena Nm dalam predikat menu berdomain nama, sedangkan dalam predikat tulis berdomain anggota. Untuk itu salah satu predikat harus berdomain lebih dari satu, menjadi seperti:

  menu(nomor,nama)
  menu(nomor,anggota)

Bagian predikat harus ada selama kita membutuhkan predikat bukan standar.




F  Clauses
Merupakan inti program Turbo Prolog. Boleh juga tanpa Clauses tapi tentunya goal hanya terdiri dari predikat standar. Jika ada bagian Clauses harus ada bagian Predicates begitu juga sebaliknya.

Sekumpulan klausa dari predikat yang sama harus disatukan (dikelompokkan) dalam bagian Clauses dan disebur prosedur (procedure). Bila melakukan pemanggilan klausa atau matching, Turbo Prolog melacaknya dari atas ke bawah. Jika Prolog menemukan bandingan atau kalusa yang match, Prolog mencatat tempat ditemukannya.

Dengan demikian, urutan prosedur harus benar untuk menjaga agar Turbo Prolog dapat mencari jawaban dengan benar dan juga menentukan kecepatan eksekusi program.


F  Goal
Goal dalam Turbo Prolog ada dua macam:
a.      Goal eksternal (external goal)
Merupakan goal yang diketikkan langsung pada prompt Goal: di jendela Dialog pada compiler terpadu Turbo Prolog.

b.      Goal internal (internal goal)
Goal ini diketikkan pada bagian Goal di dalam program Turbo Prolog.

Hakekatnya goal ini sama seperti tubuh suatu kalusa atau dalam hal ini aturan, yang hanya terdiri dari satu atau lebih upa-goal, tanpa kepala, karenanya tidak menggunakan if (:-).

Cara menuliskan goal contoh:

Goal
  write(“Tulis kalimat apa saja, kemudian Enter\n”),
  readln(X),
  write(X),

Prolog selalu berusaha agar goal bisa tercapai, dan sebaliknya kita pun berusaha agar program berhenti dalam keadaan berhasil.


F  Komentar
Komentar satu baris digunakan tanda persen (%). Sedangkan untuk komentar yang lebih dari satu baris digunakan paduan tanda garis miring (/) dan asterisk (*).

Contoh:

%  ini komentar satu baris, baris pertama
%  ini komentar satu baris, baris kedua
/* ini komentar beberapa baris, awal komentar
*
*
*
*  akhir komentar */
/* ini komentar bersarang (nested) /* komentar dalam komentar */ adalah seperti ini */

8.3.Shell
Shell adalah sebuah program Kecerdasan Buatan yang basis pengetahuannya masih kosong.
Berdasarkan pada metode representasi pengetahuan yang dipakai, ada 5 (lima) jenis shell, yaitu :
1.      Simple rule-base tools.
Menggunakan if_then dalam merepresentasikan pengetahuan. Dapat mengelola sampai 5000 kaidah.
Contoh: EXSYS, INSIGHT 2+, VP EXPERT, dan ESP ADVISOR.

2.      Inductive tools.
Membangkitkan kaidah dari contoh-contoh dalam basis pengetahuan.
Ada dua jenis: large inductive yang dijalankan pada mainframe, dan small inductive yang dijalankan pada PC.
Contoh: TIMM, EXPERT-EASE, RULE MASTER, dan SUPER MASTER.

3.      Structured rule-base tools.
Menggunakan if_then yang disusun dalam kaidah-set untuk representasi pengetahuan.
Ada dua jenis: Large-size rule-base tools yang dijalankan pada mainframe, mesin LISP UNIX, dan small-size rule-base tools yang dijalankan pada PC. Contoh: S.1 dan OPS5e.

4.      Hybrid tools.
Menggunakan if_then dalam representasi pengetahuan. Dikembangkan dengan bahasa LISP, sehingga hanya dapat menggunakan mesin LISP, VAX, dan UNIX workstation.
Perkembangan selanjutnya, ada mid-size hybrid tools yang dapat dijalankan pada PC, dan large-size hybrid tools yang lebih lengkap dengan jumlah kaidah yang dapat ditangani lebih dari 1500.
Contoh mid-size: PC PLUS dan GOLD WORK, large-size: ART dan KEE.

5.      Domain specific tools.
Mengelola pengetahuan dengan domain yang sangat spesifik, sehingga dirancang khusus hanya untuk permasalahan yang dikaji.
















2 komentar:

  1. bagus banget artikelnya, membantu banget karna besok saya akan mengikuti lomba debat mengenai kecerdasan buatan

    BalasHapus