7 BAB 2 LANDASAN TEORI
2.1. Intelegensia Semu 2.1.1. Definisi Menurut Turban (1992, p3), intelegensia semu adalah cabang dari ilmu komputer yang mengarah pada pembuatan piranti lunak dan piranti keras dengan tujuan menghasilkan sesuatu seperti yang dihasilkan oleh pola pikir manusia. Menurut Rich dan Knight (1993, p3), intelegensia semu adalah ilmu yang mempelajari bagaimana membuat komputer-komputer melakukan hal-hal yang mana pada saat ini, dapat dikerjakan oleh manusia dengan lebih baik. Menurut Luger dan Stublefield (1993, p1), intelegensia semu dapat didefinisikan sebagai cabang dari ilmu komputer yang berhubungan dengan otomatisasi perilaku cerdas. Menurut Jackson (1999, p15), intelegensia semu adalah bagian dari ilmu komputer yang berhubungan dengan perancangan sistem komputer intelegensi, yaitu sistem yang menggambarkan karakteristik yang diasosiasikan dengan intelegensi tingkah laku manusia – pemahaman bahasa, pembelajaran, penjelasan, pemecahan masalah dan seterusnya. Menurut Sri Kusumadewi (2003, p2), pengertian intelegensia semu dapat dipandang dari berbagai sudut pandang, antara lain : 1. Sudut pandang kecerdasan. Intelegensia semu akan membuat mesin menjadi ’cerdas’ (mampu berbuat seperti apa yang dilakukan oleh manusia). 2. Sudut pandang penelitian.
8 Intelegensia semu 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 finansial.
-
Analisis medikal.
-
Analisis ilmu pengetahuan.
-
Rekayasa (perancangan, pencarian kegagalan, perencanaan manufaktur).
3. Sudut pandang bisnis Kecerdasaan buatan adalah kumpulan peralatan yang sangat kuat dan metodologis dalam menyelesaikan masalah-masalah bisnis. 4. Sudut pandang pemrograman. Kecerdasaan buatan meliputi studi tentang pemrograman simbolik, penyelesaian masalah (problem solving) dan pencarian (searching).
9 2.1.2. Kelebihan Intelegensia Semu Menurut Turban dan Frenzel (1992, p9), intelegensia semu memiliki beberapa kelebihan diantaranya adalah : 1. Intelegensia semu lebih bersifat permanen. Intelegensia semu tidak akan berubah selama sistem komputer dan program tidak mengubahnya. 2. Intelegensia semu lebih mudah digandakan dan disebarluaskan. Mentransfer pengetahuan seorang manusia ke manusia lain membutuhkan proses yang cukup lama dan lagipula pengetahuan tersebut tidak akan digandakan dengan lengkap. Lain halnya dengan pengetahuan pada sistem komputer, pengetahuan tersebut dapat digandakan dan dipindahkan dengan mudah ke sistem komputer lain. 3. Intelegensia semu lebih murah. Akan lebih murah dan mudah menggunakan layanan komputer dibandingkan menggunakan orang untuk melakukan suatu pekerjaan dalam jangka waktu yang lama. 4. Intelegensia semu bersifat konsisten. Hal ini disebabkan karena intelegensia semu adalah bagian dari teknologi komputer yang tidak akan melakukan tindakan layaknya manusia yang terbawa perasaan. 5. Intelegensia semu dapat didokumentasikan. Keputusan ataupun tindakan yang dilakukan sistem komputer dapat didokumentasikan dengan mudah dengan cara mencatat setiap aktivitas dari sistem komputer tersebut. 6. Intelegensia dapat mengerjakan suatu pekerjaan dengan lebih cepat dan lebih baik.
10 2.1.3. Ruang Lingkup Aplikasi Intelegensia Semu Seperti kebanyakan ilmu, intelegensia semu dibagi-bagi menjadi banyak cabang ilmu yang selain fokus pada pemecahan masalah juga fokus pada aplikasiaplikasi yang berbeda. Menurut Luger (1993, p14) area aplikasi-aplikasi tersebut antara lain adalah : 1. Permainan Game Sebagian besar penelitian awal mengenai teknik pencarian dilakukan pada permainan berpapan yang umum seperti catur. Permainan berpapan tersebut memiliki properti tertentu yang membuatnya ideal sebagai subjek penelitian teknik pencarian. Sebagian besar permainan dimainkan dengan menggunakan kumpulan peraturan yang sudah didefinisikan dengan baik sehingga mudah untuk melakukan proses pencarian dan membebaskan para peneliti dari banyaknya ambiguitas dan kompleksitas yang ada. Program permainan, walaupun sederhana, menawarkan tantangan tersendiri, termasuk lawan yang langkahnya tidak dapat diperkirakan. Kehadiran lawan seperti ini membuat perancangan program semakin kompleks dengan menambahkan elemen ketidakpastian dan kebutuhan psikologi seperti taktik pada game strategi.
2. Pemikiran Terautomatisasi dan Pembuktian Teori Pembuktian teori merupakan cabang terlama dari ilmu intelegensia semu dan merupakan salah satu cabang yang banyak menghasilkan. Penelitian mengenai pembuktian teori dikatakan merupakan awal dari formalisasi algoritma pencarian dan pengembangan bahasa untuk representasi formal.
11 Hal yang menarik dari pembuktian teori terautomatisasi berada pada kekerasan dan keumuman suatu logika. Karena merupakan sistem yang formal, logika menjadikan dirinya automasi. Banyak masalah dapat dipecahkan dengan merepresentasikan deskripsi masalah dan informasi yang mendukung sebagai kebenaran logika dan memperlakukan contoh masalah sebagai teori untuk dipecahkan. Pemahaman inilah yang mendasari pekerjaan pada pembuktian teori terautomatisasi dan pemikiran matematis.
3. Sistem Pakar Salah satu pemahaman yang didapat pada penelitian awal mengenai pemecahan masalah adalah pentingnya pengetahuan mengenai domain tertentu. Seorang dokter misalnya, bukan efektif dalam mendiagnosa penyakit karena ia memiliki kemampuan pemecahan masalah, melainkan karena ia mengetahui banyak pengetahuan mengenai obat. Pengetahuan pakar adalah kombinasi dari pemahaman teori dari suatu masalah dan kumpulan dari peraturan-peraturan pemecahan masalah heuristik yang telah terbukti efektif pada suatu domain. Sistem pakar dibuat dengan mendapatkan pengetahuan pakar ini dari seorang pakar dan lalu dimasukkan pada sistem komputer agar dapat memecahkan masalah yang serupa.
4. Pemahaman Bahasa Alami dan Pemodelan Semantik Satu dari tujuan jangka panjang intelegensia semu adalah pembuatan suatu program yang dapat mengerti bahasa manusia. Kemampuan untuk memahami bahasa alami bukan hanya menjadi aspek yang fundamental bagi
12 intelegensia manusia, namun automasi yang sukses terhadapnya akan menjadi dampak yang luar biasa terhadap kegunaan dan efektivitas komputer itu sendiri. Namun sistem yang dapat menggunakan bahasa alami dengan fleksibel dan kemampuan mengkarakterisasi ucapan manusia masih jauh dari sempurna. Pemahaman bahasa alami bukan sekedar memilah kalimat-kalimat menjadi bagian-bagian kecil dan lalu mencarinya di kamus, melainkan penggunaan pengetahuan mengenai domain dan idiom serta kemampuan mengaplikasikan pengetahuan kontekstual yang umum untuk memecahkan ambiguitas yang merupakan bagian dari percakapan manusia. Jadi kesulitan bukan berada pada bagaimana sistem mengerti arti dari kata per kata, melainkan pengetahuan terhadap domain tertentu. Contoh, seseorang yang mengalami percakapan mengenai basket akan menghadapi kesulitan walaupun dia menguasai sktruktur bahasa tetapi tidak mengetahui tentang peraturan, pemain atau sejarah mengenai basket. Oleh karena itu, diperlukan suatu pengumpulan dan pengaturan pengetahuan sehingga dapat digunakan pada pemahaman bahasa alami yang dimana para peneliti telah banyak mengembangkan teknik untuk menstrukturkan arti semantik. Teknik yang biasanya dipakai untuk melakukan hal tersebut adalah pemodelan jaringan semantik.
5. Perencanaan dan Robotika Perencanaan merupakan aspek penting pada usaha untuk merancang robot. Perencanaan mencoba mencari urutan aksi-aksi bersifat atomik yang dapat digunakan untuk melakukan tugas yang lebih tinggi tingkatannya
13 seperti bergerak melalui ruangan yang penuh rintangan. Perencanaan merupakan masalah yang sulit karena pada suatu tugas yang akan dilakukan robot akan tercipta banyak sekali pilihan urutan aksi yang mungkin. Membuat suatu program komputer yang akan memecahkan suatu masalah menjadi sub-sub masalah memerlukan suatu heuristik yang rumit dan pengetahuan tambahan mengenai perencanaan terhadap suatu domain. Menentukan apa sub-rencana yang perlu disimpan dan bagaimana hal itu dapat digeneralisasikan untuk digunakan untuk kebutuhan mendatang merupakan masalah yang sulit pula.
6. Pembelajaran Mesin Salah satu perbedaan manusia dengan sistem pakar dalam memecahkan suatu masalah adalah manusia tidak perlu melakukan proses pencarian solusi ketika manusia sudah tahu solusi terhadap masalah tersebut. Sistem pakar tidak dapat mengingat solusi melainkan akan melakukan proses komputasi yang sama seperti sebelumnya, terus dan terus diulang jika diberikan masalah yang sama berulang kali. Hal ini tidaklah fleksibel sehingga diperlukan solusi, salah satunya adalah melakukan pembelajaran terhadap program, entah melalui pengalaman, penganalogian, contoh-contoh atau diperintahkan.
7. Jaringan Syaraf Tiruan Pada jaringan syaraf tiruan, tiap unit komputasi-nya menghitung fungsifungsi dengan input dan mengirimkan hasilnya ke unit lain yang terhubung pada jaringan. Intelegensia manusia lebih fleksibel, dapat mengartikan input
14 noise dengan baik seperti mengenali wajah pada ruangan gelap dari sudut pandang sulit atau dapat dengan baik mengikuti suatu percakapan pada sebuah pesta yang berisik. Jaringan syaraf tiruan, karena menyimpan pengetahuan dalam unit yang berjumlah banyak memiliki potensi untuk memisahkan noise dan mengunakan data tak lengkap. Selain itu jaringan syaraf tiruan juga menyediakan model alami untuk ke-paralel-an seperti pada manusia karena tiap neuron adalah unit yang berdiri sendiri.
2.2. Orientasi Objek 2.2.1. Definisi Objek Objek adalah suatu entitas yang memiliki identity, state, dan behavior (Mathiassen, 2000, p51). Objek adalah abstraksi dari sebuah fenomena pada domain permasalahan. Objek dapat berupa suatu entitas yang nyata (tangible) maupun tidak nyata (intangible).
2.2.2. Pendekatan Orientasi Objek 2.2.2.1. Keuntungan penggunaan orientasi objek Keuntungan dari penggunaan orientasi objek adalah sebagai berikut : 1. Dapat memodelkan hampir semua fenomena, misal noun menjadi class, verb menjadi behaviour dan adjective menjadi attribute. 2. Dapat memberikan suatu informasi yang jelas mengenai konteks sistem. 3. Mengurangi biaya pemeliharaan sistem, karena memudahkan pencarian bagian yang ingin diubah dan perubahan yang dilakukan tidak mempengaruhi modul lain.
15 2.2.2.2. Alasan penggunaan orientasi objek Alasan mengapa orientasi objek digunakan adalah sebagai berikut : 1. Dapat dilakukan pemeliharaan Selama masa hidup suatu sistem diperlukan perubahan-perubahan untuk mengikuti proses bisnis. Masalah yang terjadi adalah ketika suatu sistem dirancang dengan struktur yang tidak independen akan mengakibatkan sistem tersebut sulit untuk dipelihara. Karena perubahan radikal terhadap apa yang dilakukan akan mempengaruhi struktur dasarnya.
2. Dapat dilakukan pengujian Unit-unit terkecil yang dibangun dengan menggunakan pendekatan orientasi objek menghasilkan unit yang cukup independen sehingga pengujian terhadap suatu unit dapat dilakukan secara hati-hati tanpa mengganggu unit lainnya.
3. Dapat digunakan ulang Karena banyak masalah memiliki fitur-fitur yang sama, penggunaan kembali
solusi-solusi
yang
sudah
ada
akan
menghemat
waktu
dan
penggunaannya lebih pasti.
2.2.2.3. Class Class adalah deskripsi dari suatu kumpulan objek yang memiliki struktur behavioral pattern(methods) dan attributes (Mathiassen, 2000, p53). Class juga dapat dikatakan sebagai sebuah cetak biru atau pabrik yang membuat objek.
16 Contoh, sebuah class MesinCuci memiliki attributes merk, model, nomorSeri dan methods tambahPakaian(), tambahDeterjen() dan keluarkanPakaian().
2.2.2.4. Message Passing Dalam sistem, objek saling bekerja sama dengan cara mengirimkan message. Sebuah objek mengirimkan message untuk melakukan suatu operasi dan objek yang menerima message melakukan operasi tersebut. Contoh, sebuah objek remote mengirimkan message kepada objek televisi agar televisi menyala.
2.2.2.5. Inheritance Sebuah class dapat memiliki attributes dan methods dari class lain. Contoh, class MesinCuci memiliki attributes dan methods dari class PeralatanRumahTangga.
2.2.2.6. Abstraction Abstraction secara sederhana berarti memilah attributes dan methods dari suatu objek hingga tersisa hanya yang dibutuhkan saja. Jika seorang programmer ingin membuat suatu mesin cuci maka ia tidak memerlukan attribute nomorSeri karena tidak akan begitu berguna, namun jika yang ingin dibuat adalah sebuah aplikasi yang melacak transaksi pada laundry yang memiliki banyak mesin cuci, maka attribute nomorSeri dibutuhkan.
17 2.2.2.7. Encapsulation Ketika
sebuah
objek
melakukan
operasinya,
operasi
tersebut
disembunyikan prosesnya dari pengguna. Contoh, kita tidak perlu tahu bagaimana TV bisa menghasilkan gambar-gambar bergerak padahal dalam menghasilkan gambar-gambar tersebut, TV melakukan banyak proses.
2.2.2.8. Polymorphism Dalam class yang berbeda dimungkinkan suatu method dengan nama yang sama. Misal, class pintu memiliki method membuka(), class jendela juga memiliki method membuka(), class koran juga memiliki method membuka(). Tiap class tahu bagaimana melakukan operasi yang seharusnya dilakukan.
2.3. Computer Assisted Instruction 2.3.1. Definisi Menurut Chambers (1983, p5-6), terdapat banyak istilah yang dapat digunakan dalam penggunaan komputer sebagai alat bantu pada dunia pendidikan atau pelatihan, diantaranya di Amerika Serikat seringkali dikenal dengan nama CAI (Computer Assisted Instruction), CBI (Computer Based Instruction), dan CBE (Computer Based Education), di luar Amerika Serikat seperti Inggris lebih mengacu ke CAL (Computer Assisted Learning), dan CBT (Computer Based Training). CAI (Computer Assisted Instruction) merupakan suatu penggunaan komputer untuk menyediakan instruksi-instruksi pengajaran dalam bentuk Drill, Practice, Tutorial, dan Socratic. Penelitian CAI (Computer Assisted Instruction) di Amerika Serikat berkisar pada akhir tahun 1950-an dan mulai awal tahun 1960-an proyek CAI
18 (Computer Assisted Instruction) dibiayai oleh IBM (International Business Machine) dan Contol Data Coorporation, pemerintah seperti Nasional Science Foundation (NFS), dan Universitas-Universitas lainnya.
2.3.2. CAI Non adaptif CAI dirancang untuk meningkatkan hasil pembelajaran dengan cara membuat proses belajar menjadi menarik dan penuh dengan umpan balik dari peserta didik. Hal ini dapat dilakukan dengan cara memberikan materi pembelajaran yang disajikan kepada peserta didik secara multimedia(tulisan, suara, video, animasi). Dengan penyajian yang menarik, diharapkan dapat meningkatkan proses belajar agar lebih efisien dan konsisten, meningkatkan hasil pembelajaran, motivasi peserta didik, disertai dengan umpan balik yang cepat. Namun CAI yang telah menjadi penyedia pembelajaran 1-lawan-1 selama 25 tahun dikatakan tidak mampu meningkatkan tingkat pengetahuan peserta didik secara drastis, karena CAI non adaptif tidak mampu membedakan peserta didik dari segi kebutuhan dan tingkat kecerdasan peserta didik. CAI non adaptif dinilai pasif karena hanya menampilkan halaman demi halaman multimedia jika mendapatkan tanggapan dari peserta didik. Ditambah lagi CAI non adaptif ini tidak memiliki kemampuan sebagai pengajar sesungguhnya untuk dapat mengetahui kapan harus membantu peserta didik ketika menghadapai suatu kesulitan terhadap suatu subjek atau kapan harus melanjutkan pemberian topik baru ketika peserta didik mengalami peningkatan.
19 2.3.3. Intelligent Tutoring System Intelligent Tutoring System (ITS) merupakan CAI yang digabungkan dengan intelegensia semu untuk mendapatkan suatu CAI yang dapat mengatasi kekurangan dalam memberikan pembelajaran adaptif yang sebelumnya tidak dapat dilakukan oleh CAI non adaptif. Dengan mengetahui “apa yang diketahui” dan “tidak diketahui” peserta didik, ITS dapat memberikan pembelajaran yang bersifat adaptif. Tidak seperti CAI non adaptif, ITS mampu memberikan pembelajaran yang aktif, mendorong keingintahuan peserta didik, memantau kemampuan peserta didik dan memberikan bantuan ketika diminta. ITS mengacu pada sistem pengajaran tingkat lanjut, dimana : 1. Menyediakan interaktivitas yang tinggi, penyampaian pembelajaran dan pelatihan berbasiskan komputer. 2. Menyesuaikan pembelajaran dengan tingkat pengetahuan peserta didik. 3. Menyediakan pelatihan dengan pengajar berintelegensia semu. 4. Memperbesar metode pembelajaran secara lebih mendalam. 5. Mampu membentuk model yang merepresentasikan pengetahuan yang dimiliki peserta didik yang dibentuk berdasarkan tanggapan dan jawaban dari peserta didik.
2.3.4. Adaptive Web-Based Learning Dikarenakan perkembangan yang pesat dan peningkatan ketersediaan internet, sistem web-based learning semakin menjadi penting bagi pembelajaran jarak jauh, pelengkap pembelajaran non adaptif dan pendukung pembelajaran dalam jangka waktu lama. Web-based learning menjadi suatu sistem yang membolehkan
20 peserta didik untuk belajar sesuai personalisasinya(sesuai kebutuhan peserta didik). Untuk itu dibutuhkan integrasi pada web-based learning dengan intelegensia semu agar sistem tersebut dapat menyesuaikan diri dengan personalisasi peserta didik sehingga dapat disebut adaptive web-based learning (pembelajaran adaptif berbasiskan web). Peserta didik yang berbeda tentunya akan memiliki goal pembelajaran yang berbeda dan kebutuhan pembelajaran yang berbeda pula. Untuk itu suatu adaptive web-based learning perlu untuk membuat rencana pembelajaran yang berbeda untuk goal yang berbeda-beda tersebut dengan cara menyajikan materi sesuai preferensi peserta didik. Berikut adalah kebutuhan yang perlu untuk dipenuhi oleh sebuah sistem adaptive web-based learning : 1.
Pembelajaran dilakukan dengan menyesuaikan pada goal pembelajaran tertentu untuk peserta didik yang tertentu pula.
2.
Pembelajaran dimulai pada titik yang bergantung pada pengetahuan sebelumnya yang sudah dimiliki peserta didik.
3.
Bentuk penyajian materi harus dicocokkan dengan peserta didik.
4.
Harus bisa mengawasi jalannya pembelajaran dan melakukan perubahan perencanaan pembelajaran sesuai evaluasi terhadap keadaan peserta didik. Dalam pengembangannya, diperlukan suatu arsitektur web-based learning
yang sesuai dengan kebutuhan yang telah disebutkan di atas. Berikut adalah arsitektur sistem dari adaptive web-based learning yang disarankan oleh Julita Vassileva :
21
Gambar 2.1 Arsitektur sistem web-based learning Julita Vassileva Domain Database Pengetahuan disimpan pada komponen ini. Terdiri dari 2 bagian yaitu struktur domain dan materi ajar. Student Model Merupakan komponen yang memodelkan peserta didik. Terdiri dari 3 bagian yakni student knowledge, history, personal trait and preferences. Pedagogical Component Berisi kumpulan metode dan tugas pengajaran serta peraturan pengajaran. Course Generator Merupakan komponen yang membuat pembelajaran, melakukan interaksi dengan peserta didik dan memelihara student model. Authoring Module
22 Berisi editor untuk bahan ajar, editor untuk struktur domain dan editor untuk metode dan tugas pengajaran.
2.4. Domain Database 2.4.1. Struktur Domain Struktur domain mengandung struktur konsep dari pengetahuan yang akan diajarkan kepada peserta didik. Pada arsitektur Julita Vassileva, struktur tersebut direpresentasikan dalam bentuk AND/OR Graph. Tiap node mewakili elemen dari pengetahuan (konsep, topik, peraturan, dan lain-lain). Jika 2 node A dan B saling terhubung dengan node ke-3, C, dan memiliki relasi ”AND”, hal ini berarti bahwa node A dan B harus dipelajari. Selain itu dianggap suatu alternatif. Relasi antar node dapat memiliki berbagai macam semantik. Contoh, jika node A dan B terhubung dengan node C dengan relasi ”AND” tipe agregasi, hal ini berarti C adalah konsep umum dan memiliki sub-konsep A dan B. Terdapat banyak relasi semantik yang mungkin, contohnya saja, relasi kausal, temporal, analogi, persyaratan sederhana. AND/OR graph telah dipakai sebagai representasi formal karena cukup kuat dalam ekspresi. Selain itu AND/OR Graph dapat divisualisasikan pada layar yang memiliki kelebihan psikologi dalam authoring dan pengajaran. Tiap node dan hubungan dari struktur domain diasosiasikan pada materi ajar. Struktur domain digunakan dalam pembuatan perencanaan pengajaran untuk mencapai goal pengajaran.
23 2.4.2. Materi Ajar Materi ajar berisi presentasi yang berkomunikasi secara langsung dengan peserta didik. Tiap materi ajar difokuskan pada topik, konsep, relasi yang diberikan. Materi ajar diklasifikasikan menurut fungsi pedagogical-nya. Misal pengantar, permasalahan awal, penjelasan, pertolongan, latihan dan tes. Materi ajar bertugas melakukan dialog dengan peserta didik. Contoh latihan dan tes direpresentasikan dengan unit yang lebih kecil yang menyediakan jawaban benar pada tes/latihan, petunjuk atau pertolongan, penjelasan hingga pemecahan masalah tingkat menengah. Materi ajar juga diklasifikasikan berdasarkan medianya. Contoh : textual, gambar, animasi, video.
2.4.3. Learning Object Dalam membangun suatu struktur domain yang berisi pengetahuan yang akan diajarkan kepada peserta didik, diperlukan suatu definisi yang jelas terhadap tiap node yang mewakili elemen pengetahuan tersebut. Dalam suatu materi ajar pun terdapat bagian-bagian terkecil yang membentuk materi ajar tersebut. Untuk itulah konsep learning object diperlukan.
2.4.3.1. Definisi Menurut Wiley (2000), learning object meliputi semua sumber digital yang dapat digunakan kembali untuk mendukung pembelajaran. McGreal & Roberts (2001) memperluas definisinya yang kemudian menjadi definisi standar IEEE Learning Technology Standards Committee, learning object adalah semua entitas, digital maupun tidak digital yang dapat digunakan dan digunakan lagi
24 atau direferensikan selama pembelajaran yang didukung teknologi. Definisi mengenai learning object masih banyak diperdebatkan oleh berbagai pihak, walaupun begitu secara umum semua definisi tersebut menyebutkan bahwa learning object adalah apa saja dan harus bisa digunakan untuk membantu dalam proses pembelajaran. Sebuah metafor yang banyak digunakan untuk menjelaskan learning object adalah metafor mengenai permainan blok LEGO. Metafor LEGO menyebutkan suatu gagasan mengenai ”bagian kecil dari pengajaran (blok LEGO) yang dapat dihimpun(dipasang-pasangkan) menjadi sebuah struktur pengajaran yang lebih besar(istana atau pesawat ruang angkasa)”. Jadi secara garis besar, metafor LEGO memiliki tiga properti, yakni : 1. Tiap blok LEGO dapat dipasangkan dengan blok LEGO lainnya. 2. Blok-blok LEGO dapat dihimpun sesuai dengan yang kita inginkan. 3. Blok-blok LEGO sangat mudah dan sederhana sehingga anak-anak pun dapat memasang-masangkannya. Namun dikatakan oleh Wiley bahwa sistem learning object yang menggunakan ketiga properti tersebut tidak selalu dapat menghasilkan suatu pengajaran yang berguna dan jika hasil penghimpunan learning object tersebut tidak menghasilkan pengajaran yang berguna maka penghimpunan tersebut telah gagal walau apapun kegunaan lain dari pengajaran tersebut. Untuk itu diperlukan suatu metafor lain. Metafor lain tersebut adalah ”atom”. Sebuah atom adalah sesuatu yang kecil yang dapat dikombinasikan dan dikombinasikan ulang dengan atom lain untuk menghasilkan sesuatu yang lebih
25 besar. Metafor ini memang mirip dengan metafor LEGO, namun berbeda pada beberapa hal, yakni : 1. Tidak setiap atom dapat dikombinasikan pada setiap atom. 2. Atom hanya dapat dihimpun dengan struktur tertentu yang telah ditentukan dalam struktur internalnya masing-masing. 3. Diperlukan latihan untuk menghimpun atom-atom. Jadi tidak semua learning object dapat digabungkan dengan learning object lainnya. Learning object hanya dapat digabungkan dengan learning object yang dapat menerima struktur dari learning object tersebut. Dan untuk menggabungkan semua learning object tersebut diperlukan suatu keahlian, misal oleh seorang dosen yang mengerti benar semua learning object yang akan digabung-gabungkan tersebut.
2.4.3.2. Karakteristik Learning Object Suatu learning object memiliki karakteristik yang membuatnya disebut learning object. Berikut adalah karakteristik yang pada umumnya harus ada pada learning object : 1. Accessibility – komponen instruksional harus selalu dapat diakses dari segala lokasi baik jauh maupun dekat. 2. Interoperability – learning object harus dapat digunakan pada tool dan platform apapun. Metadata dan standar untuk learning object meningkatkan interoperability suatu learning object. 3. Adaptability – memastikan learning object dibuat sempurna untuk masingmasing individual dan situasi kebutuhannya.
26 4. Reusability – merupakan karakteristik terpenting. Sebuah learning object yang bagus harus dapat dipakai pada aplikasi lain tanpa harus melakukan usaha
berlebih.
Menyimpan,
pencarian,
dan
pengambilan
sumber
pembelajaran selalu menjadi halangan bagi pembelajaran non adaptif. Learning
object
repositories
menyediakan
solusi
untuk
masalah
pendistribusian dan penggunaan ulang sumber pengetahuan. 5. Durability – komponen learning object harus tahan lama ketika walaupun basis teknologinya berubah, tanpa harus merancang ulang atau meng-coding ulang. 6. Granularity – sampai pada tingkatan apa suatu learning object dibuat dan bagaimana menyimpannya. Unit terkecil dari sebuah learning object dapat berupa program, course, modul, pelajaran, segmen, atau objek mentah. Pada umumnya tingkatan yang bagus pada granularity akan meningkatkan reusability, dengan cara mengizinkan penggunaan untuk banyak konteks. Walaupun, semakin besar jumlah objek yang kecil memerlukan lebih dari pengkatalogan dan meningkatkan biaya pengaturan.
2.4.3.3. Orientasi Objek pada Learning Object Pendekatan berorientasi objek dapat dipakai dalam membangun sebuah learning object dan pada dasarnya learning object memiliki properti yang mirip dengan objek pada pemrograman berorientasi objek. Menurut Permanand Mohan dan Christopher Brooks(2004), learning object merupakan objek yang memiliki data dan method. Datanya adalah link yang merujuk pada sumber fisik yang sebenarnya. Sumber yang dimaksud dapat berupa text, gambar, video dan lain-
27 lain. Method pada learning object bertugas memverifikasi dan memelihara link menuju sumber yang membentuk learning object. Method tersebut juga membolehkan berbagai macam query.
Model learning object menurut Zoltan Fiala, Michael Hinz, Klaus Meissner, dan Frank Wehner(2003) pun memperlihatkan ciri orientasi objek, yakni dari sisi enkapsulasi dan abstraksi. Pada gambar 2.2, tingkat terendah dari model tersebut adalah media components yang mengenkapsulasi asset media tertentu berdasarkan metadata teknik maupun non-teknik. Kumpulan dari asset media terdiri dari teks, teks terstruktur(contoh HTML atau XML), gambar, suara, video, java applets, presentasi flash. Pada tingkat berikutnya, media components digabung secara semantik membentuk sebuah content unit. Contoh, sebuah gambar dengan penjelasan textual yang cocok dapat dijadikan sebuah content unit. Pendefinisian terhadap kumpulan objek-objek media ini adalah factor kunci dari komponen yang dapat digunakan ulang. Tingkatan abstraksi selanjutnya adalah document components yang merupakan bagian dari presentasi web dengan penggunaan aturan semantik yang baik seperti kolom baru, presentasi produk atau bahkan seluruh website. Contohnya, sebuah content unit yang mengandung objek gambar dan objek text dapat dienkapsulasi terhadap document component yang memiliki peraturan semantik “artikel koran”. Document component tidak hanya dapat berisi content unit, tetapi juga dapat meng-aggregasi document component lainnya. Aggregasi ini menghasilkan hirarki dari document component yang menjelaskan struktur logis dari suatu web site dan sangat bergantung pada konteks aplikasi.
28
Gambar 2.2 Model Learning Object 2.4.4. Peta Konsep Dalam
membangun
karakteristik
reusability
pada
learning
object,
pendefinisian terhadap learning object perlu dilakukan dengan benar. Peta konsep adalah salah satu cara untuk mendefinisikan learning object tersebut.
2.4.4.1. Definisi Peta konsep adalah alat grafik untuk mengatur dan merepresentasikan pengetahuan. Terdiri dari konsep-konsep, biasanya ditulis dalam bulatan atau kotak, dan relasi antara konsep diindikasi oleh koneksi garis yang menghubungkan 2 konsep. Kata-kata pada garis, merupakan kata atau frasa penghubung, yang menjelaskan relasi antara 2 konsep. Joseph D. Novak dan
29 Alberto J. Canas (2006) mendefinisikan konsep sebagai yang dianggap keteraturan dalam acara atau objek, atau catatan peristiwa-peristiwa atau benda, yang ditunjuk oleh label. Sedangkan Proposisi adalah pernyataan tentang beberapa obyek atau peristiwa dalam semesta, baik yang terjadi secara alami atau buatan. Proposisi berisi dua atau lebih konsep terhubung menggunakan kata atau frasa untuk membentuk sebuah pernyataan yang bermakna. Kadang-kadang ini disebut unit semantik atau unit arti. Gambar 2.3 menunjukkan contoh dari satu peta konsep yang menggambarkan struktur peta konsep dan memperlihatkan karakteristik di atas.
Gambar 2.3 Sebuah konsep peta menampilkan fitur peta konsep. Karakteristik lain dari peta konsep adalah bahwa konsep-konsep diwakili dalam bentuk hirarki dengan konsep yang paling inklusif dan paling umum di bagian atas peta dan konsep yang lebih khusus dan kurang umum berada pada hirarki di bawah. Struktur hirarki untuk domain pengetahuan tertentu juga
30 tergantung pada konteks di mana bahwa pengetahuan adalah diberikan atau dianggap. Oleh karena itu, adalah lebih baik untuk membangun peta konsep dengan referensi beberapa pertanyaan tertentu untuk diusahakan dijawab, yang disebut pertanyaan berfokus. Peta konsep dapat berhubungan dengan beberapa situasi atau peristiwa yang ingin kita coba untuk pahami melalui organisasi pengetahuan dalam bentuk peta konsep, sehingga menyediakan konteks untuk konsep peta. Karakteristik lain yang penting dari peta konsep adalah penyertaan lintaslink. Lintas-link adalah link atau hubungan antara konsep-konsep dalam domain atau segmen yang berbeda dari peta konsep. Lintas-link membantu kita melihat bagaimana sebuah konsep dalam satu domain pengetahuan yang diwakili peta terkait dengan konsep yang lain dalam domain yang ditampilkan pada peta. Dalam pembuatan pengetahuan baru, lintas-link sering mewakili lompatan kreatif pada bagian dari pembuatan pengetahuan. Ada dua fitur peta konsep yang penting dalam memfasilitasi pemikiran kreatif: struktur hirarki yang diwakili dalam peta yang baik dan kemampuan untuk mencari dan mencirikan lintas-link baru.
2.4.4.2. Ontology Dalam kamus besar bahasa indonesia, ontologi dapat diartikan sebagai cabang ilmu filsafat yang berhubungan dengan hakikat hidup. Komunitas intelegensia semu telah meneliti mengenai masalah representasi pengetahuan dan permasalahan untuk waktu yang cukup lama. Pendekatan mereka adalah dengan menentukan standar fasilitas untuk menjelaskan pengetahuan manusia di setiap
31 tingkat granularity dan untuk memperoleh kemampuannya. Menurut Tom Gruber (1993), dasar dari pendekatan intelegensia semu adalah ontologi, yang berarti konsensus konsep dari dunia nyata. Setelah ontologi yang dibutuhkan dibangun, pengindeksan terhadap pengetahuan tak terstruktur yang ada pada dokumen dan mengkonversinya ke representasi pengetahuan yang formal. Kemudian pencari dapat memanfaatkan beberapa jenis agen cerdas untuk mencari, memodifikasi query dan pengetahuan dasar. Penelitian di intelegensia semu telah menjajaki penggunaan ontologi formal sebagai cara untuk menentukan konten-perjanjian khusus untuk pemakaian ulang dan berbagi pengetahuan di antara entiti perangkat lunak. Gruber telah mengambil sebuah rekayasa perspektif pengembangan pada ontologi tersebut. Ontologi formal yang dirancang dilihat sebagai artifak, yang disusun untuk tujuan tertentu dan dievaluasi terhadap kriteria tujuan desain. Peran ontologi dijelaskan sebagai pendukung kegiatan berbagi pengetahuan, dan kemudian hadir satu set kriteria untuk memberikan ontologi untuk tujuan tersebut.
2.4.5. Jaringan Semantik Jaringan
semantik
merupakan
gambaran
pengetahuan
grafis
yang
menunjukkan hubungan antar berbagai objek. Jaringan semantik terdiri dari lingkaran-lingkaran atau kotak-kotak yang menunjukkan objek dan informasi tentang objek-objek tersebut. Objek disini bisa berupa benda atau peristiwa. Antara 2 objek dihubungkan oleh garis yang menunjukkan hubungan antar objek. Gambar 2.4
32 merupakan contoh representasi pengetahuan dengan menggunakan jaringan semantik. Salah satu kelebihan dari jaringan semantik adalah ’bisa mewariskan’. Sebagai contoh, pada gambar 2.4 ada garis yang menghubungkan antara Budi dengan laki-laki, dan laki-laki ke makhluk hidup. Sehingga apabila ada pertanyaan: Apaka Budi makhluk hidup? Maka kita bisa merunut garis dari makhluk hidup, kemudian ke laki-laki, dan akhirnya ke Budi. Sehingga terbukti bahwa Budi adalah makhluk hidup.
Gambar 2.4 Contoh Jaringan Semantik
Sistem jaringan semantik ini selalu tergantung pada jenis masalah yang akan dipecahkan. Jika masalah itu bersifat umum, maka hanya memerlukan sedikit rincian. Jika ternyata masalah itu banyak melibatkan hal-hal lain, maka di dalam jaringan awalanya diperlukan penjelasan yang lebih rinci lagi.
33 2.5. Student Model Student Model merupakan salah satu komponen penting dalam penyediaan pembelajaran yang adaptif. Student model merepresentasikan tingkat kepercayaan sistem komputer terhadap pengetahuan peserta didik. Berdasarkan arsitektur Julita Vassileva, student model mencakup 3 bagian antara lain:
2.5.1. Pengetahuan Peserta Didik Model Pengetahuan Peserta Didik adalah lapisan atas dari Struktur Domain dalam Domain Database, yang berisi evaluasi probabilistik terhadap keyakinan siswa dalam menguasai konsep. Memperbarui probabilistik pengetahuan dilakukan secara dinamis dengan cara mengambil hasil dari jawaban dari pretest terhadap peserta didik.
2.5.2. History History berisi daftar semua instruksi tugas, dan metode subtasks yang telah digunakan untuk setiap konsep selama mengikuti rencana juga menyimpan statistik tentang keberhasilan berbagai pelajaran metode dekomposisi tugas dan statistik keberhasilan dari berbagai jenis media materi ajar yang digunakan (teks, suara, grafis, animasi, video).
2.5.3. Personal Traits and Preferences Model Personal Traits and Preference dari peserta didik berisi dua daftar variabel dengan nilainya masing-masing. Bagian pertama berisi fitur psikologis seperti keyakinan, motivasi, konsentrasi dan yang kedua berisi preferensi peserta
34 didik untuk berbagai jenis media. Nilainya dapat diambil dari tiga ciri-ciri nilai (rendah, sedang, tinggi) dan ditugaskan kepada siswa di awal pembelajaran.
2.5.4. Penalaran Probabilitas Metode penalaran probabilitas membolehkan sistem intelegensia semu untuk menggunakan pengetahuan yang tak tentu atau probabilitas dan dapat membantu mengumpulkan bukti untuk melakukan hipotesa. Teori pengambilan keputusan, berhubungan dengan teori probabilitas, menyediakan teknik tambahan untuk membantu meminimalisasi resiko dalam pengambilan keputusan.
2.5.4.1 Probabilitas dan Teorema Bayes Tujuan
sistem
yang
melakukan
pemecahan
masalah
adalah
mengumpulkan bukti pada sistem yang berjalan dan memodifikasi perilaku dasar dari bukti tersebut. Untuk memodelkan perilaku ini, dibutuhkan teori statistik dari bukti tersebut, yaitu statistik Bayesian. Dugaan dasar dari statistik Bayesian adalah probabilitas bersyarat (conditional probability) P ( H | E ) . Ekspresi ini
menggambarkan probabilitas dari hipotesa H yang diberikan untuk kita amati dengan bukti (evidence) E. Teorema Bayes menyatakan: P( H i | E ) =
P( E | H i ) ⋅ P( H i ) k
∑ P( E | H n =0
n
) ⋅ P( H n )
dengan : •
P ( H i | E ) adalah probabilitas bahwa hipotesis Hi benar jika diberikan bukti E.
35 •
P ( E | H i ) adalah probabilitas munculnya bukti E jika diketahui hipotesis Hi benar.
•
P( H i ) adalah probabilitas hipotesis Hi (menurut hasil sebelumnya) tanpa memandang bukti apapun.
•
k adalah jumlah hipotesis yang mungkin. Beberapa mekanisme untuk mengeksploitasi kekuatan dari statistik
Bayesian antara lain: •
certainty factor
•
teori Dempster-Shafer
•
jejaring Bayesian
2.5.4.2 Certainty Factor
Certainty factor (CF) menunjukkan ukuran kepastian terhadap suatu fakta atau aturan. CF bernilai 1 dikatakan sebagai belief (percaya) dan CF dengan nilai -1 dikatakan sebagai disbelief (tidak percaya). Dalam sebuah sistem yang menggunakan CF, aturan-aturan (rules) belief dan disbelief yang digunakan haruslah terstruktur dengan baik. Keunggulan CF: •
cocok untuk paradigma rule-based, tidak ada perubahan yang signifikan dalam merepresentasikannya
•
mudah diimplementasikan
•
aturan propagasi pada awalnya bersifat masuk akal Kekurangan CF:
36 •
tidak ada teori keputusan dalam CF
•
aturan propagasi tidak dapat dijustifikasi secara teoritis
•
memiliki asumsi yang berdiri sendiri yang membuat CF mudah digunakan namun sangat beresiko jika aturan-aturan tidak ditulis dengan hati-hati
2.5.4.3. Teori Dempster-Shafer
Teori Dempster-Shafer merupakan generalisasi dari teori Bayesian mengenai probabilitas subjektif. Ketika teori Bayesian memerlukan probabilitas untuk setiap pertanyaan yang ada, teori Dempster-Shafer mengijinkan untuk menentukan derajat kepercayaan (degree of belief) untuk satu pertanyaan pada probabilitas untuk pertanyaaan yang berhubungan. Teori Dempster-Shafer memiliki dua ide dasar. Pertama, mendapatkan derajat kepercayaan dari satu pertanyaan dari probabilitas subjektif untuk pertanyaan yang terhubung. Kedua, mengkombinasikan beberapa derajat kepercayaan didasarkan pada ketidaktergantungan variabel pada bukti. Keunggulan teori Dempster-Shafer: •
kesulitan dalam menentukan nilai prior probability dapat diabaikan
•
aturan kombinasi dapat digunakan untuk menggabungkan bukti-bukti
•
dalam keadaan atau situasi tidak pasti, ignorance dapat ditentukan
•
mudah untuk menentukan bukti-bukti dengan tingkat abstraksi yang berbedabeda Kekurangan teori Dempster-Shafer:
•
perhitungan komputasi yang kompleks
•
teori pengambilan keputusan yang kurang
•
eksperimen perbandingan antara teori Dempster-Shafer dengan teori
37 probabilitas sulit untuk dilakukan. •
tidak adanya keuntungan yang dapat terlihat dengan jelas pada teori Dempster-Shafer
2.5.4.4. Jejaring Bayesian
Jejaring Bayesian (Bayesian network) dipelopori oleh ahli ilmu genetika Sewall Wright (1921). Kemudian beberapa variasi telah dikembangkan pada berbagai bidang, misalnya dalam bidang ilmu pengetahuan kognitif dan intelegensia semu. Pada awal perkembangannya di akhir tahun 1970-an, jejaring Bayesian memenuhi kebutuhan semantic model (top-down) dan perceptual model (bottom-up), yaitu kombinasi dari cara pembacan bukti (evidence). Dengan kemampuan untuk mengambil kesimpulan dari banyak arah dan dikombinasikan dengan dasar probabilitas yang teliti, maka jejaring Bayesian menjadi metode yang dipilih untuk mengatasi uncertain reasoning (penalaran dalam ketidakpastian) dalam bidang intelegensia semu dan sistem pakar. Jejaring Bayesian merupakan sebuah dag (directed acyclic graph) di mana setiap node-nya (verteks) menggambarkan variabel-variabel acak yang dinyatakan dari suatu kejadian. Variabel-variabel ini mempunyai dua kemungkinan nilai, yaitu true (benar) dan false (salah). Sedangkan setiap arc (edge) dari jejaring Bayesian menggambarkan probabilitas ketergantungan antara variabel-variabelnya.
Ketergantungan
tersebut
diukur
oleh
conditional
probability untuk setiap node dengan parent node-nya. Maka jika variabelvariabel dari jejaring adalah { X i , i = 1,K , n} dan Pa(Xi) menggambarkan himpunan parent dari Xi, maka parameter dari jejaring ini adalah sebuah
38 himpunan distribusi {P( X i | Pa( X i )), i = 1,K, n} . Probabilitas ini menjelaskan joint probabilities distribution untuk seluruh jejaring sebagai berikut ini: n
P ( X 1 , K, X n ) = ∏ P ( X i | Pa( X i )) i =1
Untuk mendefinisikan sebuah jejaring Bayesian, harus dispesifikasikan: •
Variabel-variabel untuk X1, X2, ..., Xn.
•
Hubungan antara variabel-variabel tersebut. Hubungan ini merepresentasikan pengaruh kasual antar variabel-variabel. Jejaring yang dibentuk dari variabelvariabel ini dan hubungan-hubungan di antaranya haruslah merupakan sebuah dag.
•
Probabilitas setiap variabel terhadap parent-nya, yaitu P(Xi | Pa(Xi)) untuk i = 1, ..., n. Jadi jejaring Bayesian merupakan sebuah model dan alat acuan untuk
memecahkan masalah-masalah yang tidak pasti dengan cara menggambarkan relasi probabilitas.
39
X1
rain
X2
X3
wet
X4
slippery
X5
sprinkler
Gambar 2.5 Contoh jejaring Bayesian dengan lima variabel
Gambar 2.5 mengilustrasikan contoh sederhana jejaring Bayesian yang menjelaskan hubungan sebab-musabab di antara musim hujan (rainy season) (X1), hujan (rain) (X2), keran air menyala (sprinkler) (X3), trotoar basah (wet) (X4), dan trotoar licin (slippery) (X5). Di sini tidak ada arc yang menghubungkan secara langsung antara variabel X1 dan X5, berarti tidak ada pengaruh langsung dari cuaca pada trotoar yang licin. Pengaruh langsung untuk trotoar yang licin (X5) adalah basahnya trotoar (X4). Arc di dalam diagram jejaring Bayesian menggambarkan hubungan sebab-musabab yang sesungguhnya dan bukan aliran informasi selama proses penalaran (reasoning process) berjalan. Proses penalaran dapat dioperasikan
40 pada jejaring Bayesian dengan mengembangkan informasi di beberapa arah. Misalnya jika keran air menyala, kemudian kemungkinan trotoar akan menjadi basah (prediksi). Sebaliknya, jika seseorang terpeleset di trotoar, juga membuktikan bahwa trotoar tersebut basah (abduksi). Di sisi lain, jika kita melihat bahwa trotoar basah, yang membuatnya basah apakah keran air menyala atau terjadi hujan (abduksi); tetapi jika kemudian kita mengamati bahwa keran air menyala, hal tersebut mengurangi kemungkinan bahwa telah terjadi hujan. Jejaring Bayesian merupakan salah satu model directed graph dengan distribusi conditional probability yang harus dispesifikasikan untuk setiap nodenya. Jika variabelnya diskrit, maka jejaring Bayesian dapat direpresentasikan sebagai tabel dari conditional probability yang menunjukkan nilai-nilai yang berbeda untuk setiap kombinasi antara child node dengan parent node-nya. Perhatikan contoh di bawah ini, di mana semua node mempunyai dua nilai, yaitu T (true) dan F (false):
41 rainy season P(X1 = F)
P(X1 = T)
0.5
0.5
X1
Rain
Sprinkler X1
P(X3 = F)
P(X3 = T)
F
0.4
0.6
T
0.9
0.1
X2
X3
X1
P(X2 = F)
P(X2 = T)
F
0.8
0.2
T
0.1
0.9
Wet X3 X2 P(X4 = F) P(X4 = T) X4
Slippery X4
P(X5 = F)
P(X5 = T)
F
1.0
0.0
T
0.2
0.8
F
F
1.0
0.0
T
F
0.1
0.9
F
T
0.1
0.9
T
T
0.01
0.99
X5
Gambar 2.6 Conditional probability untuk setiap node jejaring Bayesian
Terjadinya trotoar basah mempunyai dua sebab, yaitu keran air menyala (X3 = T) atau hujan (X2 = T). Kekuatan dari hubungan ini terlihat dalam tabel Wet pada gambar 2.5. Salah satunya adalah kemungkinan trotoar basah yang berasal dari keran air, yang bernilai probabilitas 0.9 (baris kedua pada tabel), dan kita notasikan sebagai P ( X 4 | ¬X 2 , X 3 ) . Untuk contoh jejaring Bayesian ini, joint probabilities dari semua node dapat dikalkulasi dengan perhitungan di bawah ini: P( X 1 , X 2 , X 3 , X 4 , X 5 ) = P( X 1 ) ⋅ P( X 2 | X 1 ) ⋅ P( X 3 | X 1 ) ⋅ P( X 4 | X 2 , X 3 ) ⋅ P( X 5 | X 4 )
42 Setiap variabel hanya bergantung dengan parent-nya. Sebagai contoh, parent dari X4 adalah X2 dan X3. Kedua parent ini menjelaskan X4. Namun X4 tidak bergantung pada X1, karena X1 tidak menjadi parent secara langsung bagi X4.
Jadi
X4
independen
terhadap
X1.
Hal
ini
menyatakan
P( X 4 | X 1 , X 2 , X 3 ) = P( X 4 | X 2 , X 3 ) . Karena rainy season (X1) tidak mempunyai parent maka P(X1) disebut sebagai prior probability. Tugas yang paling penting yang kita harapkan dapat terselesaikan dengan menggunakan jejaring Bayesian adalah penarikan kesimpulan probabilitas (probabilistic inference). Sebagai contoh, anggap kita sedang mengobservasi kenyataan bahwa ada seseorang terpeleset di trotoar dikarenakan trotoar tersebut licin. Kita lihat pada contoh jejaring kita sebelumnya bahwa node X5 hanya mempunyai satu parent, yaitu X4. Ini membuktikan bahwa trotoar tersebut menjadi
licin
karena
trotoar
basah.
Ada
dua
kemungkinan
yang
menyebabkannya, yaitu hujan (X2) atau keran air yang menyala (X3). Pertanyaan yang akan kita jawab di sini dengan menggunakan teorema Bayesian adalah: ”Mengapa trotoar basah? Apakah karena hujan ataukah karena keran air yang menyala?” (0 merepresentasikan false dan 1 merepresentasikan true). Probabilitas X4 = T, bila: •
X3 = T, X2 = T, X5 = T P( X 1 , X 2 , X 3 , X 4 , X 5 ) = P( X 1 ) ⋅ P( X 2 | X 1 ) ⋅ P( X 3 | X 1 ) ⋅ P( X 4 | X 2 , X 3 ) ⋅ P( X 5 | X 4 )
●
Untuk X1 = T, maka: P(X1) = 0.5
43 P(X2 | X1) = 0.9 P(X3 | X1) = 0.1 P(X4 | X2, X3) = 0.99 P(X5 | X4) = 0.8 P ( X 1 , X 2 , X 3 , X 4 , X 5 ) = 0.5 ⋅ 0.9 ⋅ 0.1 ⋅ 0.99 ⋅ 0.8 = 0.03564 ............ (1) ●
Untuk X1 = F, maka: P(X1) = 0.5 P(X2 | X1) = 0.2 P(X3 | X1) = 0.6 P(X4 |X2, X3) = 0.99 P(X5 | X4) = 0.8 P ( X 1 , X 2 , X 3 , X 4 , X 5 ) = 0.5 ⋅ 0.2 ⋅ 0.6 ⋅ 0.99 ⋅ 0.8 = 0.04752 ............ (2)
•
X3 = T, X2 = F, X3 = T P( X 1 , X 2 , X 3 , X 4 , X 5 ) = P( X 1 ) ⋅ P( X 2 | X 1 ) ⋅ P( X 3 | X 1 ) ⋅ P( X 4 | X 2 , X 3 ) ⋅ P( X 5 | X 4 )
●
Untuk X1 = T, maka: P(X1) = 0.5 P(X2 | X1) = 0.1 P(X3 | X1) = 0.1 P(X4 | X2, X3) = 0.9 P(X5 | X4) = 0.8 P ( X 1 , X 2 , X 3 , X 4 , X 5 ) = 0.5 ⋅ 0.1 ⋅ 0.1 ⋅ 0.9 ⋅ 0.8 = 0.036 .................. (3)
●
Untuk X1 = F, maka:
44 P(X1) = 0.5 P(X2 | X1) = 0.8 P(X3 | X1) = 0.6 P(X4 | X2, X3) = 0.9 P(X5 | X4) = 0.8 P ( X 1 , X 2 , X 3 , X 4 , X 5 ) = 0.5 ⋅ 0.8 ⋅ 0.6 ⋅ 0.9 ⋅ 0.8 = 0.1728 ................ (4) •
X3 = F, X2 = T, X3 = T P( X 1 , X 2 , X 3 , X 4 , X 5 ) = P( X 1 ) ⋅ P( X 2 | X 1 ) ⋅ P( X 3 | X 1 ) ⋅ P( X 4 | X 2 , X 3 ) ⋅ P( X 5 | X 4 )
●
Untuk X1 = T, maka: P(X1) = 0.5 P(X2 | X1) = 0.9 P(X3 | X1) = 0.9 P(X4 | X2, X3) = 0.9 P(X5 | X4) = 0.8 P ( X 1 , X 2 , X 3 , X 4 , X 5 ) = 0.5 ⋅ 0.9 ⋅ 0.9 ⋅ 0.9 ⋅ 0.8 = 0.2916 ................ (5)
●
Untuk X1 = F, maka: P(X1) = 0.5 P(X2 | X1) = 0.2 P(X3 | X1) = 0.4 P(X4 | X2, X3) = 0.9 P(X5 | X4) = 0.8 P ( X 1 , X 2 , X 3 , X 4 , X 5 ) = 0.5 ⋅ 0.2 ⋅ 0.4 ⋅ 0.9 ⋅ 0.8 = 0.0288 ................ (6)
45 Jadi P(X1, X2, X3, X4, X5) untuk X4 = 1 adalah:
P( X 1 , X 2 , X 3 , X 4 , X 5 ) = ∑ X
1,X2 ,X3 ,X5
P( X 1 , X 2 , X 3 , X 4 = 1, X 5 )
= (1) + (2) + (3) + (4) + (5) + (6) = 0.57996 Probabilitas trotoar basah karena keran air menyala (sprinkler):
P ( X 3 = 1 | X 4 = 1) =
P ( X 3 = 1 | X 1 = 1) = P ( X 4 = 1)
P ( X 3 = 1 | X 4 = 1) =
∑
X1 , X 2 , X 5
P ( X 1 , X 2 , X 3 = 1, X 4 = 1, X 5 ) P ( X 4 = 1)
0.25956 = 0.44754 0.57996
Probabilitas trotoar basah karena turun hujan (rain):
P ( X 2 = 1 | X 4 = 1) =
P ( X 2 = 1 | X 1 = 1) = P ( X 4 = 1)
P ( X 2 = 1 | X 4 = 1) =
∑
X1 , X 3 , X 5
P ( X 1 , X 2 = 1, X 3 , X 4 = 1, X 5 ) P ( X 4 = 1)
0.40356 = 0.69584 0.57996
Dari perhitungan di atas dapat kita simpulkan bahwa trotoar basah disebabkan karena hujan, dengan bukti P ( X 2 = 1 | X 4 = 1) > P( X 3 = 1 | X 4 = 1) , artinya probabilitas trotoar basah karena hujan lebih besar dari probabilitas karena keran air menyala.
2.5.5. Penerapan Jejaring Bayesian Untuk Student Model
ITS merupakan bagian dari sistem basis pengetahuan yang diorientasikan untuk mengajar. Khususnya, sebuah ITS merupakan sistem komputer ahli yang mempunyai pengetahuan yang dalam tentang masalah subjek tertentu dan memandu pembelajar dalam memperoleh pengetahuannya dalam sebuah proses yang interaktif.
46 Meskipun ada definisi tentang ITS yang tidak diterima dengan mempertanyakan “apa arti mengajar dengan cara yang intelijen”, sekumpulan fitur yang ada pada ITS adalah bahwa ITS dapat menyimpulkan sebuah model dari tingkat di mana seorang pembelajar telah menguasai suatu subjek pengetahuan. Model ini digunakan untuk membedakan tipe pengajaran yang dibutuhkan oleh pembelajar. Model pembelajar (student model) adalah komponen ITS yang menggambarkan keadaan sekarang dari pengetahuan pembelajar dan proses yang terdiri dari penarikan kesimpulan atas kemampuan kognitif pembelajar dari data yang diobservasi yang disebut diagnosa. Student model dan proses diagnosa merupakan dua komponen yang harus dirancang secara bersamaan dan rancangan ini disebut dengan student modeling problem. Jejaring Bayesian akan digunakan untuk mengambarkan student model ini dan proses diagnosa akan menggunakan algoritma Bayesian. Student modeling problem kemudian menjadi bentuk lain dari pengujian dan penilaian yang dapat dibangun ke dalam model sebagai maksud untuk meningkatkan representasi dari pengetahuan pembelajar (Everson, 1995). Everson kemudian menjelaskan bagaimana pendekatan psikometrik dapat diaplikasikan dalam masalah ini. Teknik baru ini termasuk pengenalan model secara statistik dan penarikan kesimpulan menggunakan jejaring Bayesian. Jejaring Bayesian telah berhasil digunakan untuk merancang sistem pakar diagnosa penyakit (Millán, 1999). Masalah diagnosa penyakit ini menyimpulkan suatu penyakit dari satu set gejala-gejala yang terobservasi. Student modeling problem sangat mirip dengan masalah diagnosa penyakit ini karena student modeling problem menyimpulkan pengetahuan pembelajar pada subjek tertentu dari satu set data yang terobservasi, misalnya jawaban pembelajar tersebut pada satu set
47 pertanyaan yang diberikan oleh sistem. Oleh karena itu, dapat disimpulkan jejaring Bayesian dapat dipakai untuk menyimpulkan student model seperti yang telah digunakan dalam masalah diagnosa penyakit. Dalam menarik kesimpulan mengenai informasi kemampuan yang dimiliki oleh pembelajar, akan lebih baik jika data kemampuan direpresentasikan dalam nilai berupa angka-angka yang mempunyai interpretasi umum dalam lingkungan pembelajaran. Representasi yang paling cocok untuk deskripsi ini adalah probabilitas. Probabilitas mempunyai kelebihan dalam merepresentasikan dan menginterpretasikan
tingkat
kemampuan
pembelajar
karena
probabilitas
menyediakan nilai-nilai matematika dan cara untuk mengatasi ketidakpastian dalam tugas menilai kemampuan dan pengetahuan yang dimiliki pembelajar. Kelebihan lainnya adalah bahwa probabilitas lebih ringkas, mudah dimengerti, dan lebih mudah untuk dimanipulasi. Hasil dari probabilitas model pembelajar akan selalu konsisten walaupun tidak selalu akurat, dan selalu dapat dijelaskan dalam bagian-bagian model yang digunakan untuk membangunnya. Dalam skripsi ini, metode yang digunakan untuk menghitung probabilitas adalah jejaring Bayesian. Alasan memakai jejaring Bayesian ini adalah karena berdasarkan survey yang dilakukan dalam penelitian-penelitian sebelumnya, tingkat kepercayaan untuk menggunakan jejaring Bayesian untuk digunakan sebagai pengambil kesimpulan mengenai student model sangatlah tinggi. Sebagai buktinya jejaring Bayesian telah berhasil diaplikasikan untuk membangun student model dalam beberapa aplikasi berikut: •
HYDRIVE (Mislevy, Gitomer, 1996) memodelkan kemampuan pembelajar dalam menemukan masalah sistem hidrolik pesawat
48 •
ANDES (Conati, et al., 1997) adalah sebuah ITS yang mengajarkan bagaimana menyelesaikan masalah Fisika Newton
2.5.6 Membangun Student Model
Jika kita menggunakan jejaring Bayesian untuk mendefinisikan sebuah student model, variabel-variabelnya dapat digambarkan dalam beberapa hal yang berbeda, tergantung pada domain yang bersangkutan. Variabel-variabel dapat berupa aturan, konsep, masalah, atau bahkan kemampuan atau keahlian. Variabel-variabel ini dihubungkan dengan pengaruh sebab-musabab (kausal) di antara variabelvariabel tersebut. Sesekali waktu hubungan antar variabel yang telah didefinisikan ini perlu untuk ditentukan nilai conditional probability-nya. Dalam jejaring Bayesian, probabilitas dihitung berdasarkan reliabilitas dari prior probability dan conditional probability yang dijelaskan dalam jejaring, yakni kemungkinan seorang peserta didik yang telah menguasai sebuah konsep menjawab dengan benar pertanyaan yang mengandung konsep tersebut. Untuk menemukan prior probability ini, digunakan tes diagnosis. Kita merencanakan untuk memeperlakukan setiap konsep sebagai sebuah subskill yang berbeda, kemudian menggunakan tes diagnosa untuk mencari tahu subskill manakah yang sudah dikuasai oleh peserta didik. Dengan menghitung berapa kali setiap konsep atau subskill dikuasai, maka dapat diperkirakan prior probability dari konsep tersebut. Bayangkan ketika menjawab sebuah pertanyaan tertentu, seorang peserta didik telah mengetahui n konsep. Untuk membangun sebuah jejaring Bayesian untuk student model, perlu kita definisikan beberapa variabel berikut: •
Untuk setiap pertanyaan, sebuah variabel Q menunjukkan kemungkinan peserta didik mampu atau tidak untuk menjawab pertanyaan. Q mempunyai dua nilai:
49 true jika peserta didik menjawab dengan benar, dan false jika sebaliknya. •
Untuk setiap i = 1, 2, …, n sebuah variabel Ci menunjukkan kemungkinan peserta didik memahami konsep ke-i. Ci juga mempunyai dua nilai: true jika peserta didik memahami konsep ke-i, atau false jika sebaliknya. Jejaring Bayesian yang menggambarkan hubungan antara Q dan Ci adalah
sebagai berikut:
C1
C2
...
C3
Q
Gambar 2.7 Jejaring Bayesian untuk node Q dan Ci
Parameter yang diperlukan untuk jejaring ini adalah: •
Prior probability C1, C2, …, n
•
Conditional probability Q yang dihasilkan oleh C1, C2, …, Cn sebanyak n + 2n parameter Untuk memudahkan dalam menentukan parameter dibuat dua parameter baru
untuk setiap konsep C: •
si (slip factor): kemungkinan seorang peserta didik yang memahami konsep ke-i
50 gagal untuk menerapkannya secara benar dalam pertanyaan tertentu. •
gi (guess): kemungkinan seorang peserta didik menebak jawaban dengan benar, bahkan ketika ia tidak menerapkan konsep ke-i dengan benar. Kemudian, probabilitas P (Q = q | C1 , C 2 , K, C n ) dapat dihitung sebagai
berikut: P (Q = q | C i = ci , i ∈ S ∧ C j = ¬c j , j ∉ S ) = ∏ (1 − s i ) ⋅ ∏ g i i∈N
i∉N
Di mana S = {i ∈ {1,2,K, n} | C i = ci } .
2.5.7 Contoh Penerapan Jejaring Bayesian untuk Student Model
Sebuah contoh sederhana akan digunakan untuk memberikan gambaran masalah dan pendekatannya. Contoh yang akan dipakai adalah melakukan operasi pertambahan pecahan dalam matematika. Konsep kemampuan yang dibutuhkan: •
C1: menjumlahkan seluruh angka (AddNum)
•
C2: menyederhanakan pecahan (SimplFract)
•
C3: menemukan faktor persekutuan terkecil (FindLCM)
•
C4: menemukan persamaan pecahan yang sesuai dan menggunakan LCM (EquivFract) Tipe masalah (pertanyaan) yang berbeda dapat dikelompokkan sesuai dengan
tingkat kesulitannya. Semakin banyak konsep yang perlu diketahui peserta didik dalam memecahkan suatu masalah berarti akan semakin tinggi tingkat kesulitan masalah tersebut. Tipe-tipe masalah dan konsep yang dibutuhkan untuk jawaban ditunjukkan pada tabel berikut:
51 Tabel 2.1 Hubungan masalah (Q) dan konsep (C)
Tipe Permasalahan Contoh Permasalahan Konsep yang Dibutuhkan Q1
1
Q2
1
Q3
1
Q4
1
3
+ 13
C1
4
+ 14
C1, C2
3
+ 14
C1, C3, C4
3
+ 16
C1, C2, C3, C4
Untuk menggambarkan informasi ini, kita gunakan Jejaring Bayesian berikut:
Gambar 2.8 Topologi jejaring Bayesian untuk pertambahan pecahan
Oleh karena itu, untuk masalah ini kita akan membutuhkan prior probability dari setiap penguasaan konsep dan conditional probability dari peserta didik untuk mampu atau tidaknya dalam memecahkan masalah tertentu. Pada contoh di atas, kita membutuhkan 4 prior probability dan 2 + 2 2 + 2 3 + 2 4 conditional probability, sehingga seluruhnya berjumlah 34 parameter. Tetapi tidak hanya jumlah parameter yang dianggap penting, tetapi juga sifat dasar parameter. Sebagai contoh, salah satu dari parameter akan menjadi probabilitas bahwa seorang peserta didik mampu untuk
52 memecahkan masalah tipe 4, dinyatakan mengenai peserta didik bahwa dia tahu bagaimana melakukan penjumlahan seluruh angka dan menemukan LCM tetapi tidak tahu bagaimana menyederhanakan pecahan serta tidak tahu menemukan persamaan pecahan. Untuk mengurangi kompleksitas parameter conditional probability yang digunakan, dengan menggunakan pendekatan yang disajikan di sini maka: •
Prior probability dapat diperkirakan oleh pengajar atau diperoleh dari tes yang diberikan untuk sebagian kelompok dari para peserta didik untuk mendapatkan sampel probabilitas dari suatu populasi.
•
Probabilitas dari faktor slip atau guess untuk setiap konsep yang ada di dalamnya harus diperkirakan oleh pengajar dan tentu saja akan dihubungkan dengan bagaimana tingkat kesulitan konsep tersebut. Akan lebih mudah untuk slip pada konsep yang mengandung perhitungan yang sulit dan untuk guess pada konsep yang mudah. Dengan ini kita telah mengurangi kompleksitas dari model menjadi 12
parameter saja. Sebagai contoh kita perkirakan parameter sesuai pada Tabel 2.2.
Tabel 2.2 Prior probability, slip probability, dan guess probability
Konsep
Prior (p) Slip (s) Guess (g)
C1 (AddNum)
0.9
0.1
0.3
C2 (SimplFract) 0.8
0.2
0.4
C3 (FindLCM)
0.6
0.4
0.1
C4 (EquivFract) 0.7
0.3
0.1
53 Kemudian conditional probability dapat dihitung dari parameter-parameter tersebut. Contohnya probabilitas bahwa seorang peserta didik mampu memecahkan masalah tipe 4, dinyatakan mengenai peserta didik bahwa dia tahu bagaimana untuk melakukan penjumlahan seluruh angka dan menemukan LCM, tetapi tidak tahu bagaimana menyederhanakan pecahan serta tidak tahu menemukan persamaan pecahan, adalah: P (Q4 = q 4 | c1 , ¬c 2 , c3 , ¬c 4 ) = (1 − s1 ) ⋅ g 2 ⋅ (1 − s 3 ) ⋅ g 4 = 0.9 × 0.4 × 0.6 × 0.1 = 0.0216 Jadi semua conditional probability dapat dihitung dengan mengalikan kombinasi antara slip dan guess seperti cara di atas.
2.6. Course Generator
Course Generator merupakan komponen yang membuat materi ajar, melakukan interaksi dengan peserta didik dan memelihara student model. 2.6.1. Course Planner
Course Planner merupakan program perencanaan AND/OR Graph yang memiliki 2 tujuan, yaitu: 1.
Menghasilkan
rencana
konten(topik/konsep)
yang
digunakan
pada
pembelajaran berdasarkan tujuan pengajaran. 2.
Menciptakan rencana presentasi(urutan tugas) untuk mengajar tujuan konsep. Algoritma planning merupakan modifikasi algoritma pencarian AO*
graph(Nilsson, 1980). Graph Solusinya adalah AND-Graph yang dimulai dari konsep / topik diketahui oleh peserta didik (probabilitas tingi kendala dalam model peserta didik) dan mengarah ke tujuan konsep / topik.
54 2.6.2. Executor
Executor melaksanakan rencana pembelajaran yang didapat dari Planner. Dengan pemilihan strategi yang tepat, executor menghasilkan materi ajar yang sesuai. Pada saat pembelajaran dilakukan pembaharuan terhadap student model berdasarkan hasil evaluasi terhadap peserta didik. Setelah itu planner bisa saja melakukan perencanaan ulang terhadap rencana pembelajaran berdasarkan student model yang sudah berubah.
2.6.3. Teknik Pencarian
Hampir semua program intelegensia semu dapat dikatakan melakukan suatu bentuk penyelesaian masalah entah itu menerjemahkan pemandangan visual, penguraian suatu kalimat atau perencanaan urutan aksi robot. Teknik pencarian adalah salah satu dari pusat pembicaraan pada sistem penyelesaian masalah. Hal itu terjadi ketika kapanpun sistem, karena kekurangan pengetahuan, dihadapkan pada sejumlah alternatif dimana tiap pilihan akan mengarahkan ke pilihan lainnya yang lebih dalam dan seterusnya sampai masalah tersebut terselesaikan.
2.6.3.1. Teknik Pencarian Melebar Pertama
Pada Teknik Pencarian Melebar Pertama, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya demikian pula dari kiri ke kanan hingga ditemukannya solusi. Contoh Teknik Pencarian Melebar Pertama
55
Gambar 2.9 Teknik Pencarian Melebar Pertama
Teknik Pencarian Melebar Pertama memiliki keunggulan antara lain adalah tidak akan menemui jalan buntu. Jika ada sebuah solusi, maka Teknik Pencarian Melebar Pertama akan menemukan solusi tersebut dan apabila ada lebih dari satu solusi, maka minimal sebuah solusi akan ditemukan. Akan tetapi teknik pencarian ini memiliki kelemahan yaitu adalah teknik pencarian ini memerlukan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon. Selain itu teknik pencarian ini juga membutuhkan waktu yang lama, karena akan menguji n level untuk mendapatkan solusi pada level yang ke-(n+1).
2.6.3.2. Teknik Pencarian Mendalam Pertama
Pada Teknik Pencarian Mendalam Pertama, proses pencarian akan dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node yang satu level. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulang terus hingga ditemukan solusi. Contoh Teknik Pencarian Mendalam Pertama
56
Gambar 2.10 Teknik Pencarian Mendalam Pertama
Teknik Pencarian Mendalam Pertama memiliki keunggulan antara lain membutuhkan memori yang relatif kecil, karena node-node pada lintasan yang aktif saja yang disimpan. Selain itu teknik pencarian ini tidak perlu memeriksa banyak ruang pencarian secara keseluruhan untuk menemukan sebuah solusi. Namun teknik pencarian ini juga memiliki kelemahan, yakni memungkinkan tidak ditemukannya tujuan yang diharapkan dan hanya akan mendapatkan satu solusi pada setiap pencarian.
2.6.3.3. Teknik Pencarian Heuristik
Heuristik adalah petunjuk praktis yang membantu kita untuk memutuskan apa yang akan kita lakukan. Dengan heuristik kita tidak perlu berpikir secara lengkap dalam menghadapi masalah-masalah. Sadar atau tidak sadar kita seringkali menggunakan heuristik. Kata heuristik itu sendiri diturunkan dari Bahasa Yunani yaitu “eureka” yang berarti “menemukan”. Dua teknik pencarian yang dibahas sebelumnya dikatakan merupakan pencarian yang exhaustive.
57 Maksudnya adalah kedua teknik pencarian tersebut melakukan pencarian secara sistematis namun tanpa mengetahui kira-kira di mana goal node akan ditemukan. Agar pencarian yang exhaustive tidak terjadi, maka diperlukan suatu cara agar mekanisme pencarian dapat lebih diarahkan menuju goal node. Hal tersebut dapat dicapai dengan memberikan petunjuk pada mekanisme pencarian. Secara teknis, petunjuk yang dimaksud inilah yang disebut heuristik. Dengan memberikan informasi mengenai jarak dari node saat ini ke node goal misalnya, akan membuat pencarian menjadi lebih terarah tanpa harus mengeksplorasi nodenode lain yang tidak akan menyebabkan tercapainya tujuan. Perhatikan gambar 2.11, pada gambar tersebut terdapat sebuah graph yang tiap path-nya memiliki informasi mengenai jarak antara node saat ini dengan node selanjutnya. Dengan petunjuk tersebut, path yang jaraknya lebih kecil akan diambil.
Gambar 2.11 Graph dengan nilai pada tiap path
58 Jika node awal adalah A dan node goal yang dimaksud adalah G, maka langkah yang akan diambil dengan menggunakan Teknik Pencarian Heuristik ini adalah A-B-D-F-E-G dengan total path yang diambil adalah 11. Pada awal, di node A antara 5 dan 9 akan dipilih 5 karena lebih kecil jarak path-nya. Pada node B dipilih path ke node D karena jarak menuju node D lebih kecil daripada ke node E. Baru dari node D dipilih path ke E karena path ke F memiliki jarak 3. Dari E langsung ke goal node dengan jarak path 3.
2.6.3.4. Pembobotan
Pada beberapa jenis grafik biasanya terdapat bobot (weight) di tiap garisnya dan biasanya direpresentasikan dengan angka riil. Angka-angka tersebut dapat dibatasi pada bilangan rasional atau bulat. Beberapa algoritma tertentu membutuhkan pembatasan lebih lanjut dalam pembobotan, contohnya algoritma Djikstra yang bekerja hanya pada bobot positif. Pada beberapa teori grafik, istilah jejaring digunakan untuk menyebut grafik yang memiliki bobot. Jejaring dapat berupa directed ataupun undirected.
2.7. PRADO
PRADO adalah sebuah framework pemrograman yang berbasikan komponen dan event-driven untuk mengembangkan aplikasi Web dalam PHP 5. PRADO merupakan singkatan dari PHP Rapid Application Development Object-oriented. Tujuan utama dari PRADO adalah memaksimalkan reusability dalam pemrograman Web. Reusability dalam hal ini, bukan hanya berarti menggunakan ulang code sendiri, tetapi juga menggunakan ulang code orang lain dengan cara yang mudah. Hal tersebut penting
59 karena menghemat waktu dalam upaya reinventing the wheel dan dapat memotong waktu pengembangan secara dramatis. Pengenalan mengenai konsep komponen ditujukan agar reusability dapat terwujud. Untuk mencapai tujuan di atas, PRADO menetapkan sebuah protokol dalam menulis dan menggunakan komponen untuk membangun aplikasi Web. Komponen adalah unit perangkat lunak yang serba lengkap dan dapat digunakan kembali dengan penyesuaian sederhana. Sebuah komponen baru dapat dibuat dengan komposisi sederhana dari komponen yang sudah ada. Untuk memudahkan interaksi dengan komponen, PRADO menerapkan sebuah paradigma pemrograman event-driven yang memungkinkan delegasi dari perilaku ke komponen. Aktivitas user, seperti mengklik tombol submit, diambil sebagai event server. Methods dapat dilampirkan pada event ini, sehingga bila terjadi event, methods tersebut secara otomatis terpanggil untuk menanggapi event. Dibandingkan dengan pemrograman Web tradisional di mana para pengembang harus berurusan dengan variabel POST atau GET, pemrograman eventdriven membantu pengembang lebih fokus pada logika yang diperlukan dan mengurangi secara signifikan penulisan code yang low-level secara berulang. Secara ringkas, mengembangkan aplikasi Web menggunakan PRADO melibatkan komponen yang telah ada, mengkonfigurasi pengaturan propertinya, menanggapi event dengan menuliskan fungsi yang menanganinya, dan menyusun mereka ke dalam halaman untuk aplikasi. Sangat mirip dengan toolkit RAD, seperti Borland Delphi dan Microsoft Visual Basic, yang digunakan untuk mengembangkan aplikasi GUI desktop.
60 2.7.1. Keuntungan menggunakan PRADO
PRADO dikatakan sebagai framework yang unik. Bahkan, karena uniknya dapat mengubah pemrograman PHP yang membosankan menjadi tugas yang menyenangkan. Berikut ini adalah ringkasan pendek dari fitur utama PRADO :
1. Reusability - Code yang mengikuti protokol komponen PRADO sangat reusable. Hal ini menguntungkan tim pengembang dalam jangka panjang, karena mereka dapat menggunakan kembali pekerjaan mereka yang lama dan mengintegrasikan pekerjaan pihak lain dengan mudah.
2. Event-driven programming - Aktivitas user, seperti mengklik tombol submit, diambil sebagai event server sehingga pengembang dapat lebih berfokus menangani interaksi dengan user.
3. Team integration - Presentasi dan logika disimpan secara terpisah. Aplikasi PRADO dapat berganti-ganti theme.
4. Powerful Web controls - PRADO hadir dengan kumpulan komponen yang menangani antarmuka pengguna Web. Halaman Web dengan interaksi yang tinggi dapat dibuat dengan beberapa baris kode. Sebagai contoh, menggunakan komponen datagrid, programmer dapat dengan cepat membuat sebuah halaman yang menyajikan tabel data yang memungkinkan paging, penyortiran, pengeditan, dan menghapus baris data.
61 5. Strong database support - Sejak versi 3.1, PRADO telah dilengkapi dengan dukungan database lengkap yang ditulis dengan baik. Sesuai dengan kompleksitas dari obyek bisnisnya, programmer dapat memilih untuk menggunakan akses data berbasis PDO sederhana, atau dengan active record yang cukup dikenal, lengkap atau skema pemetaan obyek bisnis SqlMap.
6. Seamless AJAX support - Menggunakan AJAX dalam PRADO sangat mudah dengan menggunakan active control yang inovatif yang diperkenalkan sejak versi 3.1. Programmer dapat dengan mudah menulis aplikasi AJAX tanpa menulis satu baris kode javascript sama sekali. Bahkan, menggunakan active control tidak jauh berbeda dengan menggunakan non-AJAX Web kontrol biasa.
7. I18N and L10N support - PRADO menyertakan dukungan lengkap untuk membangun aplikasi dengan beberapa bahasa dan lokalisasi. 8. XHTML compliance - halaman Web yang dihasilkan oleh PRADO adalah sesuai XHTML.
9. Accommodation of existing work - PRADO adalah framework umum dengan fokus pada lapisan presentasi. Ia tidak mengecualikan para pengembang dari penggunaan class yang ada atau toolkit.
2.7.2. PRADO dibandingkan framework lain
PRADO merupakan framework yang unik. Keunikannya terutama terletak pada paradigma pemrograman berbasis komponen dan event-driven. Walaupun
62 paradigma ini bukan merupakan hal baru dalam pemrograman aplikasi desktop dan bukan baru dalam beberapa bahasa pemrograman web, PRADO mungkin merupakan framework PHP pertama yang memungkinkan hal tersebut. Kebanyakan framework PHP berfokus pada memisahkan presentasi dan logika dan mendorong pemakaian pola desain MVC (model-view-controller). PRADO mencapai tujuan yang sama dengan cara menyimpan logika dalam class dan presentasi dalam template. PRADO melakukan hal lebih pada aspek-aspek lain selain MVC. PRADO mengisi banyak area kosong dalam pemrograman Web PHP dengan paradigma pemrograman berbasis komponen, kaya akan kumpulan kontrol untuk Web, dengan dukungan kuat database, penanganan kesalahan yang fleksibel dan fitur logging, dan sebagainya.
2.7.3. Sejarah PRADO
Inspirasi awal dari PRADO berasal dari Apache Tapestry. Selama desain dan implementasi, pengembang banyak meminjam ide dari Borland Delphi dan Microsoft ASP.NET. Versi pertama PRADO keluar pada bulan Juni 2004 dan ditulis dalam PHP 4. Digerakkan oleh Zend PHP 5 coding contest, saya menulis ulang PRADO dalam PHP 5, yang merupakan tindakan bijaksana, karena adanya model obyek baru yang disediakan oleh PHP 5. PRADO memenangkan hadiah utama dalam kontes Zend, mendapatkan perolehan suara tertinggi kedua dari masyarakat dan juri. Pada bulan Agustus 2004, PRADO mulai dimasukkan di SourceForge sebagai proyek yang open source. Segera setelah itu, proyek situs xisc.com diumumkan ke publik. Dengan dukungan fantastis dari tim pengembang PRADO
63 dan pengguna PRADO, PRADO berkembang ke versi 2.0 pada pertengahan 2005. Dalam versi ini, Wei Zhuo berkontribusi ke PRADO dengan baik dalam dukungan I18n dan L10N. Pada bulan Mei 2005, pengembang memutuskan untuk menulis ulang sepenuhnya framework PRADO yang menyelesaikan beberapa masalah mendasar ditemukan di versi 2.0 dan untuk menangkap beberapa fitur yang tersedia dalam Microsoft ASP.NET 2.0. Setelah hampir satu tahun kerja keras dengan lebih dari 50.000 baris kode baru, versi 3,0 itu akhirnya tersedia pada bulan April 2006. Mulai dari versi 3.0, usaha signifikan dialokasikan untuk memastikan kualitas dan stabilitas PRADO. Jika pengembang katakan PRADO v2.x dan v1.x adalah pekerjaan bukti-dari-konsep, kami dapat mengatakan PRADO 3.x telah berkembang sampai proyek yang cocok untuk pengembangan aplikasi bisnis.
2.7.4. Arsitektur PRADO
PRADO pada umumnya adalah sebuah framework presentasional, meskipun tidak terbatas pada itu saja. PRADO berfokus pada pembuatan pemrograman Web, yang sebagian besar berurusan dengan waktu interaksi pengguna, menjadi berbasis komponen dan event-driven agar para pengembang dapat lebih produktif. Pohon class berikut menggambarkan beberapa kelas utama yang disediakan oleh PRADO,
64
Gambar 2.12 Pohon Class utama framework PRADO
Ketika sebuah aplikasi PRADO memproses permintaan halaman, diagram objek statisnya dapat ditampilkan sebagai berikut,
Gambar 2.13 Diagram Objek Statis halaman web PRADO