BAB II LANDASAN TEORI 2.1 Artificial Intelligence (AI) Artificial Intelligence (AI) atau kecerdasan buatan merupakan salah satu bidang ilmu komputer yang mempelajari bagaimana cara agar komputer dapat melakukan pekerjaan seperti yang dapat dilakukan oleh manusia. Pada awalnya, komputer adalah alat yang dipakai untuk mengolah data menurut perintah yang telah dirumuskan. Namun seiring dengan perkembangan teknologi, fungsi komputer semakin ditingkatkan dan peran komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan sebagai alat pengolah data, melainkan komputer diharapkan dapat berfungsi untuk mengerjakan hal-hal yang dapat memudahkan pekerjaan manusia. Tujuan pokok dari kecerdasan buatan adalah untuk membuat suatu komputer menjadi secerdas mungkin. Ini berarti komputer harus mampu berpikir, mendengar, melihat, dan belajar sebagaimana manusia melakukannya. Jadi manusia berusaha menciptakan sesuatu yang baru yang dapat membantu menyempurnakan dan meringankan beban pekerjaan manusia dengan mengembangkan kecerdasan buatan. 2.1.1 Definisi Artificial Intelligence Definisi Artificial Intelligence yang terkenal adalah tindakan mesin yang apabila dilakukan oleh manusia disebut kecerdasan atau intelligence (Efraim Turban, 1992). Sebagian kalangan menerjemahkan Artificial Intelligence sebagai kecerdasan buatan, kecerdasan artifisial, intelijensia artifisial, atau intelijensia buatan. Para ahli mendefinisikan AI secara berbeda-beda tergantung pada sudut pandang masing-masing. Ada yang fokus pada logika berpikir manusia saja, tetapi ada juga yang mendefinisikan AI secara lebih luas pada tingkah laku manusia. Definisi lain tentang Artificial Intelligence merupakan ilmu yang mempelajari bagaimana cara membuat komputer dapat melakukan pekerjaanpekerjaan yang untuk saat ini manusia dapat mengerjakannya dengan baik (E.Rich, 1983). Tiga tujuan dari Artificial Intelligence yaitu membuat mesin 5 6 menjadi lebih pintar, memahami apa itu kecerdasan (intelligence) dan membuat mesin lebih berguna. 2.2 Perbedaan antara AI dan Kecerdasan Alami Dibandingkan dengan kecerdasan yang dimiliki oleh manusia (kecerdasan alami), AI memiliki beberapa keuntungan antara lain: a. AI lebih bersifat permanen. Kecerdasan alami akan cepat mengalami perubahan. Hal ini dimungkinkan karena sifat manusia yang pelupa. AI tidak akan berubah sepanjang sistem komputer dan program tidak diubah. b. AI lebih mudah diduplikasi dan disebarkan. Mentransfer pengetahuan manusia dari satu orang ke orang lain membutuhkan proses yang sangat lama, dan keahlian itu juga tidak akan pernah dapat diduplikasi dengan lengkap. Oleh karena itu, jika pengetahuan terletak pada suatu sistem komputer, pengetahuan tersebut dapat disalin dari komputer tersebut dan dapat dipindahkan dengan mudah ke komputer yang lain. c. AI lebih murah dibanding dengan kecerdasan alami. Menyediakan layanan komputer akan lebih mudah dan lebih murah dibandingkan dengan harus mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang sangat lama. d. AI bersifat konsisten. Hal ini disebabkan karena AI adalah bagian dari teknologi komputer. Sedangkan kecerdasan alami akan senantiasa berubah-ubah. e. AI dapat didokumentasi. Keputusan yang dibuat oleh komputer dapat didokumentasi dengan mudah dengan cara melacak setiap aktivitas dari sistem tersebut. Kecerdasan alami sangat sulit untuk direproduksi. f. AI lebih cepat. AI dapat mengerjakan pekerjaan jauh lebih cepat dibanding dengan kecerdasan alami. 7 g. AI lebih baik. AI dapat mengerjakan pekerjaan lebih baik dibanding dengan kecerdasan alami. (Sri Kusumadewi, 2003, 3-4) Sedangkan keuntungan dari kecerdasan alami adalah: a. Kreatif. Kemampuan untuk menambah ataupun memenuhi pengetahuan itu sangat melekat pada jiwa manusia. Pada kecerdasan buatan, untuk menambah pengetahuan harus dilakukan melalui sistem yang dibangun. b. Kecerdasan alami memungkinkan orang untuk menggunakan pengalaman secara langsung. Sedangkan AI buatan harus berkerja dengan input-input simbolik. c. Pemikiran manusia dapat digunakan secara luas, sedangkan AI sangat terbatas. (Sri Kusumadewi, 2003, 4) 2.3 Ruang Lingkup AI pada Aplikasi Komersial Adanya irisan penggunaan AI di berbagai disiplin ilmu tersebut menyebabkan cukup rumitnya untuk mengklasifikasikan AI menurut disiplin ilmu yang menggunakannya. Untuk memudahkan hal tersebut, maka pengklasifikasian lingkup AI didasarkan pada output yang diberikan, yaitu pada aplikasi komersial (meskipun sebenarnya AI itu sendiri bukan merupakan medan komersial). Lingkup utama dalam kecerdasan buatan adalah: a. Sistem Pakar (Expert System). Disini, komputer digunakan sebagai sarana untuk menyimpan pengetahuan para pakar. Dengan demikian, komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan meniru keahlian yang dimiliki oleh pakar. b. Pengolahan Bahasa Alami (Natural Language Processing). Dengan pengolahan bahasa alami ini diharapkan user dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari. c. Pengenalan Ucapan (Speech Recognition). Melalui pengenalan ucapan diharapkan manusia dapat berkomunikasi dengan komputer menggunakan suara. 8 d. Robotika & Sistem Sensor (Robotics & Sensory Systems). e. Computer Vision, mencoba untuk dapat menginterpretasikan gambar atau objek-objek tampak melalui komputer. f. Intelligent Computer-aided Instruction. Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar. g. Game Playing. Permainan dapat menghasilkan sejumlah besar pencarian ruang. Hal ini cukup besar dan kompleks dan membutuhkan teknik pencarian untuk menentukan alternatif pengeksplorasian ruang permasalahan. Untungnya, setiap permainan memiliki aturan main. Hal ini mempermudah upaya menghasilkan ruang pencarian. Beberapa karakteristik yang ada pada sistem yang menggunakan AI adalah pemogramannya yang cenderung bersifat simbolik ketimbang algoritmik, bisa mengakomodasi input yang tidak lengkap, bisa melakukan inferensi dan adanya pemisahan antara kontrol dengan pengetahuan. Namun, seiring dengan perkembangan teknologi, muncul beberapa teknologi yang juga bertujuan untuk membuat agar komputer menjadi cerdas sehingga dapat menirukan kerja manusia sehari-hari. Teknologi ini juga mampu mengakomodasi adanya ketidakpastian dan ketidaktepatan data input. Dengan didasari pada teori himpunan, maka pada tahun 1965 muncul Logika Fuzzy. Kemudian pada tahun 1975, John Holland mengatakan bahwa setiap permasalahan berbentuk adaptasi (alami maupun buatan) secara umum dapat diformulasikan dalam terminologi genetika. Algoritma genetika ini merupakan simulasi proses evolusi Darwin dan operasi genetika atas kromosom. (Sumber : Sri Kusumadewi, 2003, 7) 2.4. Artificial Intelligence Saat Ini Dengan semakin cepatnya perkembangan hardware dan software, berbagai produk AI telah berhasil dibuat dan digunakan dalam kehidupan sehari- hari. Disini, produk-produk tersebut dikelompokkan kedalam 4 teknik yang ada di AI, yaitu: searching, reasoning, planning dan learning. Dalam memecahkan suatu masalah dengan teknik searching atau 9 pencarian, langkah pertama yang harus dilakukan adalah mendefinsikan ruang masalah untuk suatu masalah yang dihadapi. Ruang masalah ini dapat digambarkan sebagai himpunan keadaan (state) atau bisa juga sebagai himpunan rute dari keadaan awal (initial state) menuju keadaan tujuan (goal state). Langkah kedua adalah mendefinisikan aturan produksi yang digunakan untuk mengubah suatu state ke state lainnya. Langkah terakhir adalah memilih metode pencarian yang tepat sehingga dapat menemukan solusi terbaik dengan usaha yang minimal. 2.5. Metode Pencarian Terdapat banyak metode pencarian yang telah diusulkan. Semua metode yang ada dapat dibedakan ke dalam 2 jenis: pencarian buta / tanpa informasi ( blind atau un-informed search) dan heuristik / dengan informasi (heuristic atau informed search). Setiap metode mempunyai karakteristik yang berbeda-beda dengan kelebihan dan kekurangannya masing-masing. 2.5.1. Blind / Un-informed Search Istilah blind atau buta digunakan karena memang tidak ada informasi awal yang digunakan dalam proses pencarian. Salah satu metode yang tergolong blind search dan digunakan dalam penulisan tugas akhir ini adalah Depth First Search (DFS). Pencarian dilakukan pada suatu simpul dalam setiap level dari yang paling kiri. Jika pada level yang terdalam solusi belum ditemukan, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. 10 S A B B B D E F D Gambar 2.1 Teknik Depth First Search (Sumber : Anita Desiani dan Muhammad Arhami, 2007, 30) Berdasarkan Gambar 2.1, proses pencarian dilakukan dengan mengunjungi cabang terlebih dahulu hingga tiba di simpul terakhir. Jika tujuan yang diinginkan belum tercapai maka pencarian dilanjutkan ke cabang sebelumnya, turun ke bawah jika memang masih ada cabangnya. Begitu seterusnya hingga diperoleh tujuan (goal). Operasi semacam ini dikenal dengan sebutan “backtracking”. DFS juga memiliki kelebihan di antaranya adalah cepat mencapai kedalaman ruang pencarian. Jika diketahui bahwa lintasan solusi permasalahan akan panjang maka DFS tidak akan memboros waktu untuk melakukan sejumlah besar keadaan dasar dalam permasalahan graph (pohon). DFS jauh lebih efisien untuk ruang pencarian dengan banyak cabang karena tak perlu mengevaluasi semua simpul pada suatu tingkat tertentu pada daftar open. Selain itu, DFS memerlukan memori yang relatif kecil karena hanya simpul-simpul pada lintasan yang aktif saja yang disimpan. Selain kelebihan, DFS juga memiliki kelemahan, di antaranya adalah memungkinkan tidak ditemukannya tujuan yang diharapkan dan hanya akan mendapatkan satu solusi pada setiap pencarian. (Anita Desiani dan Muhammad Arhami, 2007, 31) 11 2.5.2. Metode Pencarian Heuristik Pencarian heuristik biasanya diistilahkan dengan “informed search” atau pencarian yang berdasarkan panduan. George Poyla mendefinisikan heuristik sebagai studi metode dan kaidah penemuan. Dalam pencarian ruang keadaan, heuristik dinyatakan sebagai aturan untuk melakukan pemilihan cabang-cabang dalam ruang keadaan yang paling tepat untuk mencapai solusi permasalahan yang dapat diterima. Pemecahan masalah AI menggunakan heuristik dalam dua situasi dasar, yaitu: a. Permasalahan yang mungkin tidak mempunyai solusi yang pasti disebabkan oleh ambiguitas (keraguan / ketidakpastian) mendasar dalam pernyataan permasalahan atau data yang tersedia. Diagnosa kedokteran merupakan salah satu contohnya, dimana sejumlah gejala mungkin dapat ditimbulkan oleh berbagai macam penyebab yang mungkin. Dokter menggunakan heuristik untuk memilih atau menentukan diagnosa yang paling dapat diharapkan dan merumuskan rencana penanganannya. Vision merupakan masalah lainnya untuk permasalahan ketidakpastian mendasar. b. Permasalahan yang boleh jadi memiliki solusi pasti, tetapi biaya komputasi untuk mendapatkan solusi tersebut mungkin sangat tinggi. Dalam banyak masalah seperti catur, ruang keadaan bertambah luar biasa seiring dengan pertambahan jumlah keadaan yang dimungkinkan. Dalam kasus ini, teknik pencarian seperti BFS dan DFS mungkin gagal memperoleh solusi sehingga heuristik akan menangani kerumitan permasalahan ini dengan panduan pencarian pada sepanjang lintasan yang memberi harapan melalui state. Dengan mengelimintasi state yang tidak memberikan harapan dan turunannya dari ruang tersebut maka algoritma heuristik dapat menaklukkan ledakan kombinatorial dan menentukan solusi yang dapat diterima. Sayangnya, seperti semua kaidah penemuan lainnya, heuristik juga dapat salah. Heuristik hanyalah panduan informasi untuk menebak langkah berikutnya yang harus diambil dalam menyelesaikan suatu permasalahan, dan sering dilakukan berdasarkan eksperimen / percobaan atau secara intuisi. Oleh karena 12 menggunakan informasi yang terbatas, heuristik jarang dapat memprediksi tingkah laku yang eksak dari ruang keadaan saat dilakukan pencarian. Heuristik dapat membimbing solusi suboptimal atau gagal menemukan solusi apapun. Heuristik dan perancangan algoritma untuk mengimplementasikan pencarian heuristik telah menjadi inti permasalahan penelitian AI. Memainkan permainan (Game playing) dan pemecahan teorema (theorem solving) adalah dua aplikasi yang paling tua dari AI, yang menggunakan heuristik untuk memangkas ruang dari solusi yang mungkin. Ada 4 metode pencarian yang terdapat dalam teknik pencarian heuristik, yaitu: 1. Generate and Test 2. Hill Climbing 3. Best First Search 4. Simulated Annealing (Desiani dan Arhami, 2005, 33-35) 2.6 Basis Data (Database) Basis data dapat dibayangkan sebagai sebuah lemari arsip. Tetapi basis data terdiri atas dua kata yaitu basis dan data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. Sedangkan data adalah representasi fakta dunia nyata yang mewakili suatu objek. Beberapa definisi basis data adalah sebagai berikut: 1. Himpunan kelompok data (arsip) yang saling berhubungan dan diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan mudah dan cepat. 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan yang tidak perlu, untuk memenuhi berbagai kebutuhan. 3. Kumpulan file atau tabel atau arsip yang saling berhubungan yang disimpan pada media penyimpanan elektronik. 4. Meliputi spesifikasi tipe data struktur dan pembatasan (constraints) dari data 13 yang disimpan. Basis data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip utamanya adalah pengaturan data atau arsip. Dan tujuan utamanya adalah kemudahan dan kecepatan. yang sangat ditonjolkan dalam basis data adalah pengaturan, pemilihan, pengelompokan dan pengorganisasian data yang akan disimpan sesuai dengan fungsi dan jenisnya. Elemen-elemen dalam suatu basis data adalah sebagai berikut : 1. Record merupakan kumpulan data yang terdiri dari satu atau lebih (field). 2. Field merupakan kumpulan data yang mempunyai atau menyimpan fakta yang sama (sejenis) untuk setiap baris pada tabel. 3. Tabel merupakan bentuk matriks dari item-item data yang diorganisir menjadi baris dan kolom. 2.7 Permainan Hashi Hashi (Hashiwokakero) adalah salah satu permainan yang membutuhkan logika berpikir. Hashi diciptakan oleh Nikoli, sebuah perusahaan permainan di Jepang yang memiliki spesialisasi dalam pembuatan permainan logika. Permainan logika lain yang juga diciptakan oleh Nikoli adalah Sudoku dan Kakuro. Selain mengasyikkan, Hashi juga menguji logika dan kecerdasan orang yang memainkannya. Menurut Wikipedia, permainan Hashi muncul di Majalah Times dan dipublikasikan dalam bahasa Inggris dengan nama “Bridges atau Chopsticks”. Di Perancis, Denmark, Belanda dan Belgia, permainan Hashi dipublikasikan dengan nama “Ai-Ki-Ai”. Permainan Hashi pertama sekali muncul pada bulan Desember 1989 di majalah Puzzle Nikoli pada edisi ke-28. 2.7.1 Aturan Main Hashi dimainkan pada sebuah kotak. Di dalam kotak ini, terdapat beberapa lingkaran (sel) yang terletak secara horizontal dan vertikal. Sel ini dikenal juga dengan sebutan pulau. Di dalam setiap pulau, terdapat angka dari 1 sampai 8. Tujuan dari permainan Hashi adalah menghubungkan semua pulau dengan membuat jembatan antar pulau dan tidak ada pulau yang terisolir (atau tidak 14 terhubung satu sama lain). Aturan pembuatan jembatan pada kotak Hashi adalah sebagai berikut: 1. Satu jembatan dapat menghubungkan dua pulau yang terletak pada koordinat x yang sama (horizontal) atau koordinat y yang sama (vertikal), 2. Jembatan tidak boleh saling bertimpaan dengan jembatan lainnya, 3. Maksimum hanya boleh terdapat 2 jembatan di antara 2 pulau yang sama, 4. Banyaknya jembatan yang terhubung ke pulau harus sama dengan angka yang tertulis pada pulau. 2.7.2 Teknik Penyelesaian Hashi Menurut “Indigopuzzles”, cara terbaik untuk mencari jawaban Hashi adalah dengan berusaha menyelesaikan satu per satu masalah dalam setiap soalnya. Beberapa teknik penyelesaian Hashi yang dipublikasikan oleh “Indigopuzzles” (http://www.indigopuzzles.com/ipuz/help.action?helpId=hashi/howToSolve_01) dan dapat digunakan untuk mencari penyelesaian Hashi, yaitu: 1. Teknik Just Enough Neighbor 2. Teknik One Unsolved Neighbor 3. Teknik Few Neighbor 2.8 Algoritma Pemrograman (Flow Chart) Suatu program adalah sederetan intruksi (dalam bahasa yang dimengerti komputer yang bersangkutan) yang mengatur apa saja yang harus dikerjakan komputer, untuk mendapatkan suatu hasil atau keluaran (output) yang kita harapkan 2.8.1 Fungsi Flow Chart Flowchart berfungsi untuk membantu dalam pembuatan program secara umum setelah itu dituangkan ke dalam program secara detail. Sehingga memudahkan pembuat program dan menghasilkan program yang terstruktur serta output yang sesuai dengan perencanaan 15 2.8.2 Simbol-simbol Diagram Alir Simbol-simbol yang mengambarkan algoitma dalam perancangan program sebagai berikut Tabel 2.1 Simbol-simbol Diagram Alir Simbol Nama Fungsi Terminator Permulaan atau akhir program Garis alir (Flow Line) Arah aliran program Preparation Proses inisialisasi atau pemberian harga awal Proses Proses perhitungan atau proses pengolahan data Input atau Output Proses input atau output data, parameter, informasi Sub program (predefined process) Permulaan sub program atau proses menjalankan sub program Decision Perbandingan pernyataan atau, penyeleksian data yang memberikan pilihan untuk langkah On page connector Penghubung bagian-bagian flowchart yang berada pada satu halaman Off page connector Penghubung bagian-bagian flowchart yang berada pada halaman berbeda (Sumber : Wikipedia http://id.wikipedia.org/wiki/Algoritma )