BAB 2 LANDASAN TEORI
2.1 Teknologi Informasi Komputer dan Teknologi Informasi merupakan dua perkataan yang mempunyai makna berbeda tapi saling berkaitan erat. Menurut literatur yang ada, teknologi informasi adalah gabungan antara teknologi komputer dan teknologi komunikasi. Teknologi komputer adalah teknologi yang berkaitan dengan aspek-aspek pengolahan data, seperti menyimpan data, mengklasifikasikan, kalkulasi, penggandaan data dan sebagainya. Sedangkan teknologi komunikasi adalah teknologi yang berkaitan dengan aspek-aspek komunikasi data, seperti telepon, sistem jaringan komputer, dan sebagainya. Secara umum dapat dikatakan teknologi informasi adalah seperangkat alat yang dapat membantu manusia bekerja dengan informasi dan melakukan tugas-tugas yang berhubungan dengan pengolahan data dan informasi. Teknologi informasi dengan unsur utamanya yang dikenal dengan nama multimedia, juga dapat melahirkan fitur-fitur baru dalam dunia pendidikan sedemikian hingga dapat menyajikan berbagai macam media penyampaian yang melibatkan media teks, media suara, media gambar, media animasi dan sebagainya. Penggunaan teknologi informasi dalam dunia pendidikan pada saat ini sudah sangat diperlukan. Berbagai pempelajaran yang berbasiskan teknologi informasi sekarang ini sudah banyak pula dimanfaatkan, misalnya pembelajaran berbantuan komputer, (computer based learning), pembelajaran jarak jauh (distance learning),
6
7 pembelajaran elektronik (e-learning) dan lain-lain. Selain itu, penerapan teknologi informasi juga sangat bermanfaat untuk pengelolaan manajemen pendidikan. Para pakar teknologi informasi yang banyak bekerja dalam bidang pendidikan, mengatakan bahwa komputer lebih sesuai digunakan sebagai alat bantu dalam proses pembelajaran. Hal ini telah dibuktikan dalam banyak fakta, informasi di media masa dan juga berdasarkan penelitian yang telah dilakukan, bahwa pembelajaran yang memanfaatkan teknologi informasi jauh lebih efektif. Diharapkan teknologi ini dapat memainkan peranan yang lebih menonjol dalam proses pendidikan, melalui tenaga pengajar yang kreatif, inovatif dan sanggup mempelajari sesuatu yang baru khususnya teknologi komputer, agar penggunaannya dalam pendidikan bisa lebih optimum. Seperti halnya di negara-negara maju maupun yang sedang berkembang, teknologi informasi sudah menjadi bagian dari kehidupan pendidikannya, kurikulumnya tidak saja mengajarkan apa itu teknologi informasi tetapi juga sudah menerapkan penggunaan teknologi ini sewaktu menyampaikan pembelajaran dan pengajarannya. Berkaitan dengan masalah ini, hasil penelitian yang dilakukan baru-baru ini menunjukkan di beberapa sekolah menengah atas di Kota Medan dan sekitarnya disinyalir masih belum dapat memanfaatkan teknologi informasi ini secara maksimal, baik dalam hal pembelajaran maupun dalam sistem pengelolaan manajemen pendidikan itu sendiri.
2.2 Computer Aided Instruction (CAI) Sistem Computer Aided Instruction diciptakan pada tahun 1960an. Sistem ini dirancang untuk meningkatkan pembelajaran dengan menampilkan permasalahan-
8 permasalahan kepada pemelajar, menyimpan data jawaban/respon dari pemelajar, dan menghitung performansi rata-rata dari pemelajar. CAI adalah software untuk membantu pemahaman siswa tentang suatu obyek. Aplikasinya berupa dialog antara siswa dengan komputer. Secara bertahap komputer akan memberi pertanyaan. Berdasarkan jawaban yang dimasukkan siswa, komputer akan memberi informasi apakah siswa melakukan kesalahan. Fungsi-fungsi CAI adalah: •
Menilai kemampuan siswa dengan pre-test
•
Menyediakan materi yang prosedural
•
Menyediakan latihan-latihan untuk meningkatkan kemampuan siswa
•
Menilai kemampuan siswa dengan post-test
CAI mengacu pada tutor komputerisasi traditional dengan : •
hanya menyediakan interaktivitas yang terbatas,
•
pengiriman/penyampaian semua instruksi secara sekuensial,
•
penyedia umpan balik yang terbatas ketika pemelajar menjawab pertanyaam secara tidak benar,
•
umumnya berdasarkan ide tentang pengajaran.
Walaupun CAI telah menyediakan pembelajaran individu selama kurang lebih 25 tahun, sistem ini sangat pasif dimana sistem ini hanya menampilkan teks jika mendapatkan tanggapan dari pebelajar. CAI juga gagal meningkatkan level pengetahuan pemelajar dan tentu saja sistem ini tidak memiliki kemampuan sebagai manusia yang dapat mengetahui kapan harus membantu pemelajar ketika menghadapi kesulitan terhadap suatu objek atau kapan melanjutkan pemberian topik baru ketika pemelajar
9 sudah mengalami peningkatan. Untungnya dengan kemajuan dalam bidang intelejensia semu dan pengetahuan kognitif dikombinasikan dengan kemampuan dalam proses komputer, sebuah bidang baru yang disebut sistem tutorial intelijen (STI) telah muncul untuk mengatasi kekurangan-kekurangan CAI.
2.3 Sistem Tutorial Intelijen (STI) Pada sekitar tahun 1960-an, dikembangkan pendekatan baru yang lebih menitikberatkan proses pembelajaran berbasis komputer yang berorientasi pada struktur informasi untuk merepresentasi cara belajar manusia. Pendekatan ini disebut Sistem Tutorial Intelijen (STI). Pendekatan ini di tahap awal tidak berkembang dengan baik karena beberapa sebab. Pertama, ilmu pengetahuan tentang kognisi manusia masih relatif belum matang sejalan dengan tahap awal ilmu komputer. Kedua, pemodelan yang kompleks dan sistem berbasis aturan ternyata membutuhkan computing power yang tinggi yang belum tersedia saat itu. Sistem Tutorial Intelijen adalah sistem intelejensia yang menyediakan pembelajaran kepada pemelajar dan memiliki kemampuan membandingkan pemahaman pengetahuan belajar oleh model pakar. Oleh karena itu, tidak seperti CAI yang pasif menunggu pemelajar untuk melanjutkan subyeknya, STI secara nyata mendorong keingintahuan pemelajar dengan secara aktif memantau kemajuan pemelajar dan memberikan bantuan ketika diminta. STI mengacu pada sistem instruksional komputerisasi advance, dimana : •
menyediakan interaktivitas yang tinggi, penyampaian pembelajaran dan pelatihan berbasiskan komputer,
10 •
menyesuaikan pembelajaran dengan kekuatan dan kelemahan pemelajar,
•
menyediakan pelatihan dengan pengajar intelijensia semu,
•
memperbesar metode pembelajaran secara lebih mendalam.
Setiap STI harus mempunyai basis pengetahuan, pemelajar, dan strategi pengajaran. Basis pengetahuan berisi topik atau kurikulum yang diajarkan, pemelajar berisi murid atau pengguna STI, strategi pengajaran adalah metode dari instruksi dan bagaimana materi akan diberikan. Murid belajar dari STI dengan menyelesaikan masalah. STI menganalisa masalah dan membandingkan dengan jawabannya, lalu akan membuat analisa mengenai perbedaan antara masalah dan jawaban. Setelah itu, STI mengupdate model pemelajar. Tujuan dari penggunaan STI adalah untuk mengajarkan kepada pemelajar agar pemelajar bisa belajar dengan efektif. STI harus bisa mengambil keputusan terbaik, bukan keputusan yang paling benar.
2.3.1 Komponen-Komponen STI Pada CAI semua komponen-komponennya dikombinasi pada sebuah struktur tunggal. Struktur kombinasi ini menyebabkan banyak masalah ketika sistem akan dimodifikasi karena diperlukan restrukturisasi pada keseluruhan sistem. Oleh karena itu diperlukan pemisahan komponen sistem untuk merepresentasikan bagaimana aksi dari pengajar dan pemelajar dalam situasi pembelajaran. Maka dalam STI komponen-komponennya dipisah menjadi 5 komponen dasar, yaitu: model pemelajar, modul pedagogi, basis pengetahuan, modul komunikasi, dan model pakar.
11 Sistem STI mengetahui siapa yang diajarkan dengan mengacu pada model pemelajarnya, yang mengatur informasi detil tentang setiap pemelajar. Model pemelajar dimulai dengan hipotesa tentang apa yang diketahui dan tidak diketahui pemelajar sebelum pembelajaran. Hasil dari hipotesa tersebut akan dikirimkan ke basis pengetahuan. Koleksi dan pengaturan data dalam model pemelajar memungkinkan model pedagodi memutuskan bagaimana mengajarkan pemelajar berdasarkan tingkat pengetahuan dan kemampuannya. Modul basis pengetahuan berisi bahan-bahan ajar yang sedang diajarkan oleh pengajar dan yang paling penting, tanpa modul ini tidak akan ada bahan ajar yang bisa diajarkan kepada mahasiswa. Secara umum, modul ini membutuhkan keahlian pengetahuan untuk menyampaikan sebuah bahan ajar sehingga bagian lain dari pengajar dapat mengaksesnya. Sistem STI mengetahui bagaimana cara mengajar dengan mengacu pada model pedagogi. Model pedagogi adalah program representasi dari metode dan teknik pakar tertentu untuk pembelajaran pada target dan pengetahuan pakar umum tentang pembelajaran dan penampilan manusia. Model pedagogi mengatur proses
pembelajaran,
mendiagnosa
kesalahan
pemelajar,
menyeleksi,
mengadaptasi atau mengembangkan pembelajaran yang didasarkan pada pengetahuan dan tingkat kemampuan pemelajar sekarang, dan melatih pemelajar selama
pembelajaran.
Sebagai
tambahan
untuk
keahlian
umum
pada
pembelajaran manusia, model pedagogi memerlukan masukan dari pakar. Interaksi dengan pemelajar, termasuk dialog dan tampilan layar dikendalikan oleh modul komunikasi. Pada dasarnya, modul ini bertanggung
12 jawab untuk menyampaikan bahan-bahan ajar kepada pemelajar dengan cara seefektif mungkin. Sistem STI mengetahui apa yang diajarkan dengan mengacu pada model pakarnya. Model pakar mirip dengan modul pengetahuan karena didalamnya harus terkandung informasi yang diajarkan kepada mahasiswa. Model pakar pada prinsipnya lebih sekedar merepresentasikan data, melainkan sebuah model yang berisi bagaimana seorang yang memiliki kepakaran pada bidang tertentu merepresentasikan pengetahuannya. Dengan menggunakan model pakar, pengajar dapat membandingkan jawaban atau solusi yang diberikan pemelajar dengan jawaban pakar dan menunjukan pada bagian mana dari bahan ajar pemelajar mengalami kesulitan.
2.3.2 Jenis-Jenis User (Pengguna) STI Adapun jenis-jenis user adalah sebagai berikut: •
Pemelajar
Pemelajar belajar melalui courseware dan menguji pengetahuan para pemelajar dengan menggunakan bagian dari student model dan kuis. Courseware
adalah
kumpulan
bahan-bahan
pengajaran
program
komputer yang menyediakan interaksi antara pemelajar dan sistem biasanya menyediakan topik tertentu. •
Pengajar
Pengajar adalah seorang user yang menghasilkan isi instruksional dan courseware berdasarkan subjek dan model pemelajar.
13 •
Pakar
Fungsi utama pakar adalah penghasil pengtahuan domain. •
Administrator
Semua fungsi-fungsi diatai diatur oleh administrator sistem karena tugasnya adalah mengatur sistem dan registrasi semua user.
2.4 Pengetahuan (Knowledge) Knowledge penting sekali dan penelitian AI telah mengubah fokusnya dari paradigma dasar pengambilan kesimpulan (inference-based paradigm) ke paradigma dasar pengetahuan (knowledge-based paradigm). Knowledge terdiri dari fakta dan heuristik (metode pengajaran yang membantu pemelajar belajar sendiri). “Fakta” merupakan kumpulan informasi yang dibagikan /disiarkan secara luas, terdapat pada umumnya, dan umumnya diakui oleh ahli-ahli di bidangnya. “Heuristik” kebanyakan penilaian pribadi, aturan yang didiskusikan lebih sedikit dari penilaian yang bagus (aturan dari alasan yang masuk akal, aturan dari praduga/terkaan yang baik) yang mengkarakteristikan pengambilan keputusan oleh ahli di bidangnya.
2.4.1 Basis Pengetahuan (Knowledge-Base) Sistem
basis
penhetahuan
memiliki
banyak
karakteristik
yang
membuatnya cocok untuk pengembangan STI. Beberapa karakteristiknya adalah sebagai berikut: o Sebuah knowledge base tentang rana tertentu
14 o Alat pengambilan kesimpulan yang membantu manusia dalam membuat kesimpulan. o Sebuah fasilitas untuk melacak aturan dan menjelaskan bagaimana data-data tersebut menjadi sebuah kesimpulan o Menyediakan fasilitas program simbolik terstruktur yang membuatnya lebih dalam pengembangan STI lebih lanjut. Terdapat 3 masalah utama penelitian paradigma basis pengetahuan intelejensia semu, yaitu: •
Representasi pengetahuan
Bagaimana cara mempresentasikan pengetahuan sebagai struktur data simbolik dalam penggunaan komputer? Bagaimana mencapai suatu fleksibilitas dalam penambahan dan perubahan pengetahuan dalam perkembangan basis penetahuan? •
Pemanfaatan/penggunaan pengetahuan
Rancangan-rancangan apa yang tersedia untuk prosedur pengambilan kesimpulan digunakan oleh benda-benda hasil intelegensia semu? Bagaimana mencapai efisiensi, seperti akurasi, performa sebagai hasil kombinasi penambahan masalah? •
Tambahan pengetahuan (kemahiran)
Bagaimana pengetahuan diperoleh secara sistematis di bidangnya untuk penggunaan
komputer?
Bagaimana
pengetahuan
dihasilkan
ileh
programnya sendiri secara otomatis? Jika benar bahwa kekuatan program intejensia
semu
merupakan
fungsi
utama
dari
kualitas
dan
15 penyempurnaan dari basis pengetahuan, maka ini adalah masalah “bottleneck” kritis dari masalah paradigma basis pengetahuan.
2.5 Dynamic Courseware Generator (DCG) 2.5.1 Definisi Dynamic Courseware Generator Pada tahun 1992 kebutuhan untuk menggabungkan CAI dan ITS telah menjadi suatu keharusan. Setelah pada tahun-tahun sebelumnya dilakukan penelitian untuk menggabungkan keduanya. Maka pada tahun 1992, Vassileva berhasil membuatnya menjadi nyata dengan sistem yang dinamakan Dynamic Courseware Generator (DCG). Sistem tersebut mengimplemetasikan teknik perencanaan/pencarian berbasiskan intelejensia semu untuk menentukan jalur pembelajaran serta bahan ajar.
2.5.2 Arsitektur DCG Arsitektur DCG terdiri dari empat bagian utama, yaitu: •
Student Model yang terdiri dari: o goal yang mendefinisikan tujuan pembelajaran dari pemelajar o knowledge merupakan pengetahuan yang dikuasai oleh pemelajar tersebut o used teaching material (TM) yang merupakan materi-materi pembelajaran yang sudah diberikan kepada pemelajar tersebut
•
Course Generator terdiri dari:
16 o planner yang merupakan modul yang dapat membuat perencanaan pembelajaran yang efektif bagi pemelajar o executor yang melakukan link ke situs tujuan pembelajaran dan menyajikannya pada komputer pemelajar. Executor juga dapat melakukan test kepada pemelajar dan kemudian mengupdate knowledge pada student model o course merupakan serangkaian teaching material dan testing material •
Domain Database terdiri dari: o concept structure merupakan konsep struktur pembelajaran yang dalam hal ini direpresentasikan sebagai graph AND/OR o teaching material merupakan materi pembelajaran yang terhubung pada setiap node dari concept structure
•
Authoring Module terdiri dari: o concept structure editor merupakan editor untuk konsep struktur o teaching materials editor merupakan editor untuk teaching material.
17 Student Model
Goals
Course Generator Domain Database
Planner
Concept Structure Authoring Module
Knowledge
Used TMs
Executor
Course
Teaching Materials
Concept Structure Editor
Teaching Materials Editor Student Gambar 2.1 Aritektur DCG 2.6 Course Plan 2.6.1 Definisi Course plan adalah perencanaan urutan pembelajaran yang berhubungan dengan subyek tertentu dan ditujukan pada evolusi pengetahuan pemelajar.
2.6.2 Tujuan Instruksional Umum, Tujuan Instruksional Khusus, dan Teaching Material Dimulai dengan perancangan sistem database yang akan berisi materimateri pembelajaran. Pembangkit bahan ajar memberikan bahan ajar berdasarkan
18 data pemelajar yang tersimpan dalam database pemelajar. Kami memutuskan untuk merubah materi pembelajaran yang cukup banyak jumlahnya menjadi 3 (tiga) bagian, yaitu: •
Tujuan Instruksional Umum(TIU)
TIU merupakan tujuan keseluruhan yang ingin dicapai oleh pemelajar dalam mempelajari suatu bahan ajar. Dengan adanya TIU ini, pemelajar akan mudah mengenali apa yang mereka ingin pelajari karena bersifat luas. •
Tujuan Instruksional Khusus(TIK)
TIK merupakan subgoal-subgoal dari Tujuan Instruksional Umum yang terpecah menjadi bahan ajar yang lebih kecil yang mendukung subgoalsubgoal diatasnya dan juga mengandung bahan ajar yang merupakan isi dari TIU. •
Teaching Material
Teaching material terdiri dari 5 bagian yang akan membantu pemelajar dalam mendalami suatu konsep yaitu: bahan ajar, contoh, latihan, kuis, dan evaluasi.
2.7 Intelejensia Semu 2.7.1 Definisi Intelejensia Semu Kecerdasan buatan atau artificial intelligence merupakan salah satu bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan
19 pekerjaan seperti dan sebaik yang dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman, maka peran komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia. Manusia bisa menjadi pandai dalam menyelesaikan segala permasalahan di dunia ini karena manusia mempunyai pengetahuan dan pengalaman. Pengetahuan diperoleh dari belajar. Semakin banyak bekal pengetahuan yang dimiliki oleh seseorang tentu saja diharapkan akan lebih mampu dalam menyelesaikan permasalahan. Namun bekal pengetahuan saja tidak cukup, manusia juga diberi akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan pengetahuan dan pengalaman yang mereka miliki. Tanpa memiliki kemampuan untuk menalar dengan baik, manusia dengan segudang pengalaman dan pengetahuan tidak akan dapat menyelesaikan masalah dengan baik. Demikian pula, dengan kemampuan menalar yang sangat baik, namun tanpa bekal pengetahuan dan pengalaman yang memadai, manusia juga tidak akan bisa menyelesaikan masalah dengan baik. Agar komputer bisa bertindak seperti dan sebaik manusia, maka komputer juga harus diberi bekal pengetahuan, dan mempunyai kemampuan untuk menalar. Untuk itu pada artificial intelligence, akan mencoba untuk memberikan beberapa metoda untuk membekali komputer dengan kedua komponen tersebut agar komputer bisa menjadi mesin yang pintar.
20 Lebih detailnya, pengertian kecerdasan buatan dapat dipandang dari berbagai sudut pandang, antara lain: 1. Sudut pandang kecerdasan. Kecerdasan buatan akan membuat mesin menjadi ‘cerdas’ (mampu berbuat seperti apa yang dilakukan oleh manusia). 2. Sudut pandang penelitian. Kecerdasan buatan adalah suatu studi bagaimana membuat agar komputer dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia. Domain yang sering dibahas oleh para peneliti meliputi: a. Mundane task •
Persepsi (vision & speech).
•
Bahasa alami (understanding, generation & translation)
•
Pemikiran yang bersifat commonsense.
•
Robot control.
b. Formal task. •
Permainan/games.
•
Matematika (geometri, logika, kalkulus integral, pembuktian).
c. Expert task •
Analisis financial.
•
Analisis medikal.
•
Analisis ilmu pengetahuan.
•
Rekayasa (desain, pencarian kegagalan, perencanaan manufaktur).
3. Sudut pandang bisnis.
21 Kecerdasan buatan adalah kumpulan peralatan yang sangat powerful dan metodologis dalam menyelesaikan masalah-masalah bisnis. 4. Sudut pandang pemrograman Kecerdasan buatan meliputi studi tentang pemrograman simbolik, penyelesaian masalah (prolem solving) dan pencarian (searching). Untuk melakukan aplikasi kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan yaitu: a. Basis pengetahuan (knoledge base), berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya. b. Motor inferensi (inference engine), yaitu kemampuan menarik kesimpulan berdasarkan pengalaman.
2.7.2 Bidang-bidang Terapan Intelejensia Semu Dilihat dari kegunaannya, intelejensia semu banyak diterapkan pada berbagai bidang (Rich & Knight, p5), antara lain : •
Pemrosesan dan pemahaman bahasa alami (Natural Language Processing dan Natural Language Understanding)
Pemahaman komputer dengan bahasa sehari-hari, seperti bahasa Inggris dan bahasa Indonesia. Untuk memahami bahasa alami dilakukan banyak pemilahan terhadap kalimat menjadi bagian-bagian pengucapan dan proses melihat kamus (Knowledge Base). •
Sistem Pakar (Expert System)
22 Sistem yang dibuat dengan memperoleh informasi atau pengetahuan dari pakar dan mengkodekannya dalam bentuk yang dimengerti oleh komputer. Dalam hal ini baik buruknya suatu sistem pakar sangat bergantung pada informasi yang dimiliki. Selain itu juga bergantung pada bagaimana komputer dapat mengerti permasalahan dan memperoleh jawabannya. •
Permainan (Game)
Pada umumnya permainan merupakan sekumpulan aturan. Dalam permainan digunakan suatu pola pencarian ruang keadaan (state space pencarian) dimana permainan akan menghasilkan sejumlah pencarian ruang. Untuk memperoleh solusi terbaik digunakan heuristik. Dalam permainan, komputer dapat bertindak seolah-olah seperti dijalankan oleh manusia, dimana dapat berpikir dan menganalisa setiap langkah.
2.8 Pencarian Buta (Blind Search) 2.8.1 Pencarian Melebar Pertama (Breadth-First Search) Adalah teknik pencarian yang dilakukan dengan cara menelusuri nodenode dalam graph secara level per level. Pencarian ini dihentikan ketika menemukan goal. Jika semua node telah ditelusuri dan goal tidak ditemukan maka pencarian akan berpindah ke level berikutnya, dan seterusnya. Jika semua node paling bawah telah ditelusuri dan goalnya belum ditemukan, pencarian akan dihentikan dan goalnya diberikan sebagai dead-end goal.
23 2.8.2 Pencarian Mendalam Pertama (Depth-First Search) Adalah teknik pencarian yang dilakukan dengan cara menelusuri node2 dalam graph sampai level terdalam. Pencarian akan dihentikan jika menemukan goal. Jika pencarian telah mencapai dasar dan tidak menemukan goal, maka akan dilakukan penelusuran path kembali ke level terendah dan baru dilakukan pencarian dari node lain yang berada pada level terendah. Kedua pencarian diatas mempunyai kelemahan masing-masing. BFS mempunyai kelemahan waktu, yang berarti akan memerlukan banyak waktu jika goal berada pada level yang dalam. Dan pada DFS yang mempunyai kelemahan bila goal berada pada level yang terakhir.
2.9 Pencarian Heuristik (Heuristic Search) 2.9.1 Pengertian Heuristik Untuk menyelesaikan permasalahan-permasalahan yang sulit secara effisien, seringkali kita perlu memikirkan mobilitas dan sistematika dari hal-hal yang diperlukan dalam membentuk struktur kontrol dimana tidak ada jaminan untuk menemukan jawaban terbaik tetapi akan selalu ada kemungkinan untuk menemukan sebuah jawaban yang baik.
2.9.2 Pembangkitan Dan Pengujian (Generate And Test) Strategi pembangkitan dan pengujian adalah yang paling sederhana dari seluruh pendekatan. Jika penurunan dari solusi yang mungkin dikerjakan secara
24 sistematis, prosedur ini akan menemukan solusi, jika satu ada. Sayangnya, jika lingkup permasalahannya terlalu luas, mungkin memerlukan waktu yang panjang. Pada prinsipnya metode ini merupakan penggabungan antara DFS dengan pelacakan mundur (Back Tracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal. Nilai pengujian berupa jawaban ‘ya’ atau ‘tidak’. Untuk permasalahan yang sederhana, pembangkitan dan pengujian seringkali merupakan teknik yang masuk akal. Banyak konfigurasi tidak perlu dieksplorasi dan solusi dapat ditemukan secara agak cepat dengan menggunakan teknik heuristik. Sayangnya, untuk permasalahan yang lebih susah, bahkan dengan heuristik pembangkitan dan pengujian, bukanlah merupakan teknik yang efektif. Tetapi jika dikombinasikan dengan teknik lain-lain, teknik ini akan sangat efektif.
2.9.3 Pendakian Bukit (Hill Climbing) Metode ini hampir sama dengan metode pembangkitan dan pengujian, hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristik ini akan menunjukan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya yang mungkin.
25 2.9.3.1 Simple Hill Climbing Kunci dari perbedaan antara algoritma ini dengan pembangkitan dan pengujian adalah kegunaan fungsi evaluasi sebagai cara untuk memasukkan pengetahuan tugas tertentu ke dalam proses kontrol. Inilah kegunaan pengetahuan yang membuatnya dan merupakan pengetahuan yang sama yang memberikan metode-metode kemampuan untuk menyelesaikan beberapa permasalahan yang sulit. Untuk cara kerja algoritma, sebuah definisi “lebih baik” yang tepat harus disediakan. Dalam beberapa kasus, hal ini berarti penilaian yang lebih tinggi dari fungsi heuristik. Sebaliknya berarti penilaian yang lebih rendah. Bukanlah masalah sepanjang program hill climbing tertentu konsisten dalam penafsirannya.
2.9.3.2 Steepest-Ascent Hill Climbing Steepest-Ascent Hill Climbing sebenarnya hampir sama dengan simple hill climbing, hanya saja gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan penggunaan operator tidak menetukan penemuan solusi.
26 2.9.4 Pencarian Terbaik Pertama (Best-First Search) Metode best-first search ini merupakan kombinasi dari metode depth-first search dan metode breadth-first search dengan mengambil kelebihan dari kedua metode tersebut. Apabila pada pencarian dengan metode hill climbing tidak diperbolehkan untuk kembali ke node pada level yang lebih rendah meskipun node pada level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, lain halnya dengan metode best-first search ini. Pada metode best-first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada lebih yang lebih tinggi ternyata memiliki nilai heuristik yang lebih buruk.
2.9.5 Simulated Annealing Simulated Annealing adalah variasi dari hill climbing dimana pada proses awalnya,beberapa pergerakan downhill mungkin dilakukan. Ide tersebut adalah untuk melakukan eksplorasi
ke seluruh bagian dulu sehingga solusi akhir
berhubungan dengan state awal. Untuk mengimplementasikan Simulated Annealing, hal ini diperlukan untuk memilih sebuah annealing schedule, yang memiliki tiga komponen. Pertama adalah nilai awal yang digunakan untuk panas. Yang kedua adalah kriteria yang digunakan untuk memutuskan kapan panas dari sistem harus dikurangi. Yang ketiga dengan panas dikurangi setiap waktu diubah. Ada juga komponen keempat dari schedule, ketika keluar. Simulated annealing seringkali digunakan untuk memecahkan masalah dimana angka pergerakan dari state yang
27 diberikan sangat besar (seperti angka permutasi yang dapat digunakan untuk tujuan rute traveling salesman). Untuk permasalahan ini, tidak masuk akal menggunakan semua gerakan yang mungkin. Selain itu, mungkin berguna untuk menggunakan beberapa kriteria termasuk jumlah pergerakan-pergerakan yang telah dicoba karena sebuah perbaikan ditemukan.
2.9.6 Graph AND-OR AND-OR graph (atau tree), berguna untuk representasi solusi masalah yang dapat dipecahkan dengan mendekomposisi masalah ke dalam sejumlah masalah yang lebih kecil, semua yang harus dipecahkan kemudian. Dekomposisi atau reduksi ini, menghasilkan busur yang kita sebut busur AND. Satu busur AND dapat menunjuk ke banyak successor nodes, semua yang harus dipecahkan bagi busur untuk menunjuk ke sebuah solusi. Hanya saja pada OR graph, beberapa busur dapt muncul dari sebuah node tunggal, indikasi sejumlah cara dimana masalah dasar dapat dipecahkan. Inilah sebabnya mengapa struktur tersebut tidak disebut AND graph yang sederhana tapi AND-OR graph. Sebagai contoh AND-OR graph (yang juga menjadi AND-OR tree) pada gambar dibawah. Busur AND dindikasi dengan sebuah garis penghubung semua komponen.
28 Goal : ingin memiliki TV
Mencuri TV
Punya uang
Membeli TV
Gambar 2.2 Graph AND-OR Untuk menemukan solusi pada AND-OR graph, kita memerlukan sebuah algoritma yang mirip dengan Best First Search tetapi dengan kemampuan mengatasi busur AND dengan tepat. Algoritma ini harus menemukan sebuah path
dari
node
awal
dari
graph
untuk
mengatur
node-node
yang
merepresentasikan pernyataan-pernyataan solusi. Perhatikan bahwa hal ini mungkin diperlukan untuk mendapatkan lebih dari satu pernyataan solusi karena masing-masing arm dari AND harus mengacu pada solusi node-nya sendiri. Untuk menggambarkan algoritma pencarian AND-OR graph, kita perlu memanfaatkan nilai yang kita sebut F_UTILITY. Jika estimasi nilai dari solusi membesar daripada nilai F_UTILITY,kita harus membatalkan pencarian. F_UTILITY seharusnya dipilih untuk menghubungkan permulaan/ambang sehingga semua solusi dengan nilai diatasnya sangat mahal untuk digunakan, bahkan jika itu dapat ditemukan. Algoritma: 1. Inisialisasi graph ke node awal. 2. Kerjakan langkah-langkah di bawah ini hingga node awal SOLVED atau sampai biayanya lebih tinggi dari F_UTILITY:
29 a. Telusuri graph, mulai dari node awal dan ikuti jalur terbaik. Akumulasikan kumpulan node yang ada pada lintasan tersebut dan belum pernah diekspansi atau diberi label SOLVED. b. Ambil satu node dan ekspansi node tersebur. Jika tidak ada successor, maka set F_UTILITY sebagai nilai dari node tersebut. Bila tidak demikian, tambahkan successor-successor dari node tersebut ke graph dan hitung nilai setiap f’ (hanya gunakan h’ dan abaikan g). Jika f’=0, tandai node tersebut dengan SOLVED. c. Ubah f’ harapan dari node baru yang diekspansi. Kirimkan perubahan ini secara backward sepanjang graph. Jika node berisi suatu arc suatu successor yang semua descendant-nya berlabel SOLVED maka tandai node itu dengan SOLVED.
30
Sebelum step-1
Sebelum step-2
A
A
6
9 B
C
3
4
Sebelum step-3 A
D 5
Sebelum step-4 A
9
10
12
9 B
C
3
4
D
10
6
B
C
D
10
4 10
10
E
F
G
H
E
F
4
4
5
7
4
4
Gambar 2.3 Operasi Reduksi Masalah Dengan Graph And-Or Pada langkah-1 semula hanya ada satu node yaitu A. Node A diekspansi hasilnya adalah node B, C, D. Node D memiliki biaya yang lebih rendah (6) jika dibandingkan dengan B dan C (9). Pada langkah-2 node D terpilih untuk diekspansi, menjadi E dan F dengan biaya estimasi sebesar 10. Sehingga kita harus memperbaiki nilai f’ dari D menjadi 10. Kembali ke level sebelumnya, node B dan C memiliki biaya yang lebih rendah daripada D (9<10). Pada langkah-3, kita menelusuri arc dari node A, ke B dan C bersama-sama. Jika B dieksplore terlebih dahulu, maka akan menurunkan node G dan H. Kita perbaiki
31 nilai f’ dari B menjadi 6 (nilai G=6 lebih baik daripada H=8), sehingga biaya AND-arc B-C menjadi 12 (6+4+2). Dengan demikian nilai node D kembali menjadi lebih baik (10 < 12). Sehingga ekspansi dilakukan kembali terhadap D. Demikian seterusnya.
2.10 Interaksi Manusia Dan Komputer Interaksi Manusia dan Komputer (IMK) / Human-Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta study fenomenafenomena besar yang berhubungan dengannya. IMK menitikberatkan pada perancangan dan evaluasi antarmuka pemakai (user interface). Antarmuka pemakai (user interface) adalah bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer.
Manusia
Antarmuka Pemakai
Sistem Komputer
Gambar 2.4 Pengertian Antarmuka Pemakai Dalam merancang dan membuat suatu sistem, salah satu yang perlu diperhatikan adalah dalam perancangan user interface-nya (tampilan), karena sebuah user interface yang tidak user friendly (mudah digunakan) akan sulit dipelajari, dimengerti, dan mungkin membingungkan bagi pemakai dalam menggunakan sistem komputer tersebut, sehingga dapat membuat si pemakai menjadi frustrate, failure, fear (frustasi, gagal,
32 takut). Beberapa hal yang perlu dimengerti dalam melakukan user interface design (perancangan tampilan), adalah sebagai berikut : •
Siapa yang menggunakan sistem komputer.
•
Bagaimana pemakai menafsirkan informasi yang disampaikan dan dihasilkan oleh sistem komputer.
•
Bagaimana pemakai belajar untuk beriteraksi dengan sistem komputer.
•
Apa yang diharapkan dari pemakai sistem komputer.
Menurut Shneiderman (1992, p72) ada delapan faktor utama yang perlu diperhatikan dalam merancang tampilan (user interface design), yaitu : 1. Harus konsisten, misalnya dalam pemakaian menu dan layar help, perintah, shortcuts (tombol bantu), warna yang konsisten, jenis huruf yang digunakan, tampilan layar, dan sebagainya. 2. Memperbolehkan pemakai untuk mempergunakan shortcut key (tombol bantu). Bertujuan untuk meningkatkan suatu penggunaan suatu aplikasi, bisa berupa singkatan, special keys, perintah tersembunyi, dan fasilitas lainnya yang memahami pengetahuan user. Dengan menggunakan shortcuts maka waktu responnya pendek dan rata-rata kecepatan tampilan tinggi. Tetapi shortcuts hanya bersifat optional untuk diterapkan ke dalam aplikasi, karena tidak selalu dengan pemberian shortcuts itu akan memudahkan user. 3. Umpan balik yang informatif, sehingga tidak membingungkan pemakai. Untuk setiap aksi user, sistem harus memberikan feedback (respon) 4. Rancangan layar untuk menghasilkan keadaan akhir. Setiap layar yang ditampilkan menghasilkan keadaan akhir.
33 5. Ada penanganan kesalahan. Dalam merancang sistem harus dipikirkan kemungkinan seorang user membuat kesalahan. Untuk mengatasi hal ini maka sistem harus memberkan instruksi atau solusi yang sederhana sehingga kesalahan tersebut dapat diperbaiki oleh user. 6. Mengijinkan pemakai memperbaiki kesalahan yang dilakukan (undo). Kebanyakan suatu aksi yang dilakukan oleh user harus bisa dilakukan pembalikan aksi atau undo, bisa saja meliputi aksi tunggal, perintah pemasukan data, aksi yang rumit seperti pemasukan nama dan alamat. 7. Pengontrol terletak pada pemakai sistem. Memungkinkan user untuk menguasai sistem atau sebagai inisiator bukan sebagai responden. 8. Mengurangi hafalan bagi pemakai. Keterbatasan manusia dari proses mengingat informasi dalam ingatan jangka pendek sehingga sebaiknya tampilan layarnya dibuat sederhana saja.
2.11 PHP PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari aplikasi PHP adalah phpBB dan MediaWiki (software di belakang
Wikipedia).
ASP.NET/C#/VB.NET
PHP
juga
Microsoft,
dapat
dilihat
ColdFusion
sebagai
pilihan
Macromedia,
lain
dari
JSP/Java
Sun
Microsystems, dan CGI/Perl. Contoh aplikasi lain yang lebih kompleks berupa CMS
34 yang dibangun menggunakan PHP adalah Mambo, Joomla!, Postnuke, Xaraya, dan lainlain.
2.11.1 Sejarah PHP PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP bernama FI (Form Interpreted). Pada saat tersebut PHP adalah sekumpulan script yang digunakan untuk mengolah data form dari web. Perkembangan selanjutnya adalah Rasmus melepaskan kode sumber tersebut dan menamakannya PHP/FI, pada saat tersebut kepanjangan dari PHP/FI adalah Personal Home Page/Form Interpreter. Dengan pelepasan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter sudah diimplementasikan dalam C. Dalam rilis ini disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan. Pada tahun 1997, sebuah perusahaan bernama Zend, menulis ulang interpreter PHP menjadi lebih bersih, lebih baik dan lebih cepat. Kemudian pada Juni 1998 perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan nama rilis tersebut menjadi PHP 3.0. Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai. Versi ini banyak dipakai sebab versi ini mampu dipakai untuk
35 membangun aplikasi web kompleks tetapi tetap memiliki kecepatan proses dan stabilitas yang tinggi. Pada Juni 2004, Zend merilis PHP 5.0. Versi ini adalah versi mutakhir dari PHP. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Dalam versi ini juga dikenalkan model pemrograman berorientasi objek baru untuk menjawab perkembangan bahas pemrograman kearah pemrograman berorientasi objek.
2.11.2 Kelebihan PHP dari bahasa pemrograman lain •
Bahasa pemrograman php adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya.
•
Web Server yang mendukung php dapat ditemukan dimana - mana dari mulai IIS sampai dengan apache, dengan configurasi yang relatif mudah.
•
Dalam sisi pengembangan lebih mudah, karena banyaknya milis milis dan developer yang siap membantu dalam pengembangan.
•
Dalam sisi pemahamanan, php adalah bahasa scripting yang paling mudah karena referensi yang banyak.
•
PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system.
36 2.12 SQL SQL (Structured Query Language) adalah bahasa yang dipergunakan untuk mengakses data dalam basis data relation. Bahasa ini secara defacto adalah bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini dalam manajemen datanya.
2.12.1 Sejarah SQL Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bukan juni tahun 1970. Dalam artikel ini juga dibahas tentang kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language). Setelah terbitnya artikel tersebut, maka IBM mengadakan proyek pembuatan basis data relasional beserta SEQUEL. Akan tetapi karena permasalah hukum mengenai penamaan SQL, maka IBM merubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R. Di akhir tahun 1970-an muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar defacto bahasa dalam manajemen basis data.
37 2.12.2 Pemakaian Dasar Pemakaian dasar SQL adalah sebagai berikut: •
Mendefinisikan Tabel Untuk mendefinisikan tabel digunakan sintaks: CREATE TABLE [NAMA_TABLE] ([DEFINISI_TABLE]) Contoh: CREATE TABLE TEST ( NAMA VARCHAR(20), ALAMAT VARCHAR(255), PASSWORD VARCHAR(10) );
•
Menyimpan data Untuk menyimpan data dalam tabel dipergunakan sintaks: INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI]) Contoh: INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass');
•
Mengambil data Untuk mengambil data dipergunakan sintaks: SELECT [DAFTAR_FIELD] FROM [NAMA_TABLE] [KONDISI] Contoh: SELECT nama FROM TEST;
•
Menghapus data Untuk menghapus data dipergunakan sintaks: DELETE FROM [NAMA_TABLE] [KONDISI]
38 Contoh: DELETE FROM TEST WHERE NAMA='test';
2.13 Flowchart (Bagan Alir) Bagan alir atau flowchart (Jogiyanto, p278) adalah bagan atau chart yang menunjukkan alir atau flow di dalam program atas prosedur sistem secara logika. Flowchart digunakan terutama sebagai alat bantu komunikasi dan dokumentasi. Dalam pemrograman komputer, flowchart biasanya digunakan untuk menjelaskan setiap proses yang terjadi dalam sebuah program. Sebuah flowchart dapat menunjukkan dan menjelaskan suatu proses dengan cepat dan jelas karena mudah untuk dimengerti dan dibaca daripada bentuk teks. Flowchart menggunakan simbol-simbol yang standar sehingga setiap orang dapat mengerti ketika membacanya. Sehingga dapat dikatakan bahwa flowchart merupakan alat komunikasi yang baik. adapun simbol-simbol dasar flowchart dalam merepresentasikan perbedaan jenis dari aksi atau langkah-langkah dalam sebuah proses yaitu : 1.
Terminator : menggambarkan awal (“Start” atau “Begin”) atau akhir (“End” atau “Stop”) dari sebuah proses. 2.
39 Process : menggambarkan beberapa aktivitas atau proses dengan menuliskan proses tersebut (berupa teks) di dalam simbol. 3.
Decision : menggambarkan suatu titik percabangan dimana keputusan harus dibuat. Terdapat dua alur garis, satu dari bawah dan yang lain dari sebelahnya. Setiap garis ditandai dengan satu jawaban yang mungkin, seperti “Yes” dan “No”, atau “Benar” dan “Salah”. 4. Arrow : menggambarkan urutan langkah-langkah aktifitas (alur proses) 5.
Connector : menggambarkan hubungan antara bentuk-bentuk dalam flowchart tanpa menggunakan garis. Sebuah huruf atau nomor dalam lingkaran ini menghubungkan huruf atau nomor yang saling berhubungan tersebut. 6.
Data : menggambarkan data yang masuk atau keluar dari sebuah aktifitas. 7.
Predefined process : menggambarkan suatu proses yang sudah didefinisikan sebelumnya, seperti modul atau subrutin.
40 8.
Preparation : menggambarkan modifikasi seperti setting dari tombol atau inisialisasi suatu rutin. Berdasarkan simbol-simbol dasar yang digunakan di atas, dapat dibuat berbagai macam flowchart. Hal terpenting yang harus diperhatikan dalam membuat flowchart ini adalah membuat flowchart sesederhana mungkin, sehingga mudah dimengerti dan bukan malah membingungkan.
2.14 State Transition Diagram (STD) State Transition merupakan suatu alat perancangan yang menggambarkan sistem untuk mempengaruhi keadaan yang dinamis (Pressman 2001, P317-318). Keadaan disini dapat difokuskan dan dihubungkan dalam berbagai cara untuk merepresentasikan sifat yang sekuensial dan concurrent (bersamaan). Transisi diantara dua keadaan umumnya disebabkan oleh suatu kondisi. State Transition dikembangkan oleh I-Logix Inc., sebuah perusahaan yang mengembangkan alat bantu untuk rekayasa sistem. Adapun simbol-simbol yang digunakan dalam diagram ini adalah: •
State (tampilan kondisi sistem) Merupakan layar / tampilan kondisi yang ditampilkan menurut keadaan atau atribut, untuk memenuhi suatu tindakan pada waktu tertentu yang mewakili suatu bentuk keberadaan atau kondisi tertentu, disimbolkan dengan gambar kotak.
41
Gambar 2.5 Notasi Tampilan •
State Transition (Tindakan) Menggunakan simbol anak panah disertai keterangan tindakan yang dilakukan.
Gambar 2.6 Notasi Tindakan •
Kondisi dan aksi Untuk melengkapi suatu STD, diperlukan dua hal tambahan yaitu kondisi yang merubah state dan aksi yang dilakukan sistem ketika state berubah.
Kondisi Aksi Kondisi dan aksi digambarkan dengan anak panah yang menghubungkan Notasinya:
dua keadaan yang berkaitan seperti pada gambar berikut ini:
State 1
Kondisi Aksi
State 2
Gambar 2.7 Kondisi dan Aksi