BAB II LANDASAN TEORI 2.1 Sistem Pakar Secara umum, sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahuan manusia ke komputer, agar komputer dapat menyelesaikan masalah seperti yang biasa dilakukan oleh para ahli. Ada beberapa definisi tentang sistem pakar, diantaranya : a. Menurut Turban : Sistem pakar (expert system) adalah sebuah sistem yang menggunakan pengetahuan manusia dimana pengetahuan tersebut dimasukkan ke dalam sebuah komputer dan kemudian digunakan untuk menyelesaikan masalah-masalah yang biasanya membutuhkan kepakaran atau keahlian manusia. b. Menurut Durkin : Sistem pakar adalah suatu program komputer yang dirancang untuk memodelkan kemampuan penyelesaian masalah yang dilakukan seorang pakar. c. Menurut Ignizio : Sistem pakar adalah suatu model dan prosedur yang berkaitan, dalam suatu domain tertentu, yang mana tingkat keahliannya dapat dibandingkan dengan keahlian seorang pakar. d. Menurut Giarratano dan Riley : Sistem pakar adalah suatu sistem komputer yang bisa menyamai atau meniru kemampuan seorang pakar . Sebuah sistem pakar harus memberikan suatu dialog dan setelah diberikan suatu jawaban, sistem pakar dapat memberikan nasehat atau solusi. Tujuan utama 10 11 sistem pakar bukan untuk menggantikan kedudukan seorang ahli atau seorang pakar, tetapi untuk memasyarakatkan pengetahuan dan pengalaman pakar. Bagi para ahli atau pakar, sistem pakar ini juga dapat membantu aktivitasnya sebagai asisten yang sangat berpengalaman. Sistem pakar memungkinkan seseorang dapat meningkatkan produktifitas, memperbaiki kualitas keputusan dan bisa memecahkan masalah yang rumit, tanpa bergantung sepenuhnya pada seorang pakar. Ada beberapa masalah yang menjadi area luas aplikasi sistem pakar, antara lain: 1. Interpretasi. Pengambilan keputusan dari hasil observasi, termasuk diantaranya : pengawasan, pengenalan ucapan, analisis citra, interpretasi sinyal dan beberapa analisis kecerdasan. 2. Prediksi. Termasuk diantaranya : peramalan, prediksi demografis, peramalan ekonomi, prediksi lalu lintas, estimasi hasil, militer, pemasaran, atau peramalan keuangan. 3. Diagnosis. Termasuk diantaranya : medis, hama, elektronis, mekanis dan diagnosis perangkat lunak. 4. Perancangan. Termasuk diantaranya : layout sirkuit dan perancangan bangunan. 5. Perencanaan. Termasuk diantaranya : perencanaan keuangan, komunikasi, militer, pengembangan produk, routing dan manajemen proyek. 6. Monitoring. Misalnya : Computer-Aided Monitoring Systems. 7. Debugging, memberikan resep obat terhadap suatu kegagalan. 8. Perbaikan. 12 9. Instruksi. Melakukan instruksi untuk diagnosis, debugging dan perbaikan kinerja. 10. Kontrol. Melakukan kontrol terhadap interpretasi-interpretasi, prediksi, perbaikan dan monitoring kelakuan system 2.1.1 Sejarah Sistem Pakar Sistem pakar dikembangkan oleh komunitas kecerdasan buatan pada pertengahan tahun 1960. Pada periode ini penelitian kecerdasan buatan didominasi pada kepercayaan terhadap beberapa pasang dari penalaran hukum dengan kemampuan komputer akan menghasilkan pakar atau bahkan menampilkan tujuan umum seorang manusia (Turban, 1992). Pada pertengahan tahun 1970, beberapa sistem pakar sudah mulai muncul. Memahami pentingnya peranan pengetahuan pada sistem ini, para ilmuwan kecerdasan buatan bekerja untuk mengembangkan teori-teori representasi pengetahuan dan prosedur pengambilan keputusan secara umum dan kesimpulankesimpulan (Turban, 1992). Pada awal tahun 1980–an, teknologi sistem pakar pertama dibatasi oleh pandangan akademis dan mulai terlihat sebagai aplikasi yang komersial seperti XCON, XSTL dan CATS-1. Sebagai tambahan untuk membangun sistem pakar, usaha yang sangat mendasar adalah membangun alat untuk mempercepat konstruksi dari sistem pakar seperti MYCIN dan AGE. Sejak akhir tahun 1980-an, perkembangan software berkembang sejalan dengan perkembangan komputer termasuk mikro komputer (Turban, 1992). 13 2.1.2 Konsep Dasar Sistem Pakar Konsep dasar sistem pakar meliputi enam hal berikut ini (Turban, 2001) : a. Kepakaran (Expertise) Kepakaran merupakan suatu hal yang luas, untuk tugas khusus dimana pengetahuan diperoleh dari pelatihan, membaca dan pengalaman (Turban, 2001). Kepakaran itu sendiri meliputi pengetahuan tentang : 1) Fakta-fakta tentang bidang permasalahan 2) Teori-teori tentang bidang permasalahan 3) Aturan-aturan dan prosedur-prosedur menurut bidang permasalahan umumnya 4) Aturan-aturan (heuristic) tentang apa yang harus dikerjakan dalam suatu situasi tertentu 5) Strategi global untuk memecahkan permasalahan semacam ini 6) Pengetahuan tentang pengetahuan (meta knowledge) b. Pakar (Expert) Dalam mendefinisikan apa yang dimaksud dengan seorang pakar merupakan hal yang sulit karena harus diperhatikan juga tentang derajat atau tingkat dari kepakaran (pertanyaannya adalah berapa banyak kepakaran yang harus dimiliki oleh seseorang sebelum berhak dikatakan sebagai seorang pakar) (Turban, 2001). Kepakaran dari seorang manusia meliputi kegiatan-kegiatan berikut ini yaitu : 1) Mengenali dan memformulasikan permasalahan 2) Memecahkan permasalahan secara cepat dan tepat 14 3) Menerangkan pemecahannya 4) Belajar dari pengalaman 5) Merestrukturisasi pengetahuan 6) Memecahkan aturan-aturan 7) Menentukan relevansi c. Pemindahan Kepakaran (Transferring Expertise) Tujuan dari sebuah sistem pakar adalah untuk memindahkan kepakaran dari seorang pakar ke dalam sebuah komputer dan kemudian kepada manusia lainnya (bukan pakar) (Turban, 2001). Proses ini melibatkan empat kegiatan, yaitu : 1) Akuisisi pengetahuan (dari pakar atau sumber lain) 2) Representasi pengetahuan (pada komputer) 3) Inferensi pengetahuan 4) Pemindahan pengetahuan ke user d. Inferensi (Inferencing) Inferensi merupakan bentuk yang unik dari sistem pakar karena kemampuannya dalam melakukan penalaran (“berpikir”). Semua hal yang diberikan oleh sistem pakar akan disimpan pada basis pengetahuan, kemudian program yang ada dapat mengakses ke dalam database. Komputer diprogram sehingga dapat mengambil kesimpulan. Inferensi ditampilkan pada suatu komponen yang disebut mesin inferensi dimana mencakup prosedur-prosedur mengenai pemecahan masalah (Turban, 2001). 15 e. Aturan-aturan (Rule) Banyak peralatan (tool) sistem pakar yang komersial dan sistem yang siap jadi (ready-made) adalah sistem yang berbasis rule (rule-based systems), yaitu pengetahuan disimpan terutama dalam bentuk rule, sebagai prosedurprosedur pemecahan masalah (Turban, 2001). Contoh rule pada sistem ini adalah sebagai berikut : JIKA Nafas cepat DAN Produksi telur menurun DAN Kualitas telur jelek DAN Mencret kehijau-hijauan MAKA ayam terserang penyakit Egg Drop Syndrome f. Kemampuan menjelaskan (Explanation Capability) Bentuk unik lainnya dari sistem pakar adalah kemampuannya untuk menjelaskan saran atau rekomendasi yang diberikannya. Penjelasan dan pembenaran tersebut dilakukan dalam subsistem yang disebut subsistem pembenaran (justifier) atau penjelasan (explanation). Bagian dari sistem ini memungkinkan sistem untuk memeriksa penalaran yang dibuatnya sendiri dan menjelaskan operasi-operasinya. Karakteristik dan kemampuan yang dimiliki oleh sistem pakar membuatnya berbeda dari sistem konvensional (Turban, 2001). 16 2.1.3 Ciri-Ciri Sistem Pakar Sebuah sistem pakar mempunyai ciri-ciri sebagai berikut : a. Terbatas pada domain keahlian tertentu. b. Dalam memberikan penalaran untuk data yang tidak pasti. c. Dapat mengemukakan rangkaian alasan-alasan yang diberikan dengan cara-cara yang dapat dipahami. d. Berdasarkan kaidah atau aturan tertentu. e. Dirancang untuk dikembangkan secara bertahap. f. Pengetahuan dan mekanisme inferensi jelas terpisah g. Keluaran bersifat anjuran. h. Sistem dapat mengaktifkan aturan secara searah yang sesuai, dituntun oleh dialog dengan pemakai. Jenis - jenis pengetahuan yang dimiliki dalam kepakaran adalah sebagai berikut. 1. Teori-teori dari permasalahan. 2. Aturan dan prosedur yang mengacu pada area permasalahan. 3. Aturan (heuristic) yang harus dikerjakan pada situasi yang terjadi. 4. Strategi global untuk menyelesaikan berbagai jenis masalah. 5. Meta-knowledge (pengetahuan tentang pengetahuan). 6. Fakta - fakta. 17 2.1.4 Karakteristik Sistem Pakar Berikut karakteristik sistem pakar : 1. Tujuan : mensimulasikan pakar, yaitu meniru kemampuan pengambilan keputusan pakar dalam bidang tertentu dengan pengetahuan dan penalaran yang dimliki oleh sistem. 2. Metode : ada pemisahan terhadap pemecahan masalah dan pengetahuan pakar. 3. Domain : sistem pakar cocok untuk bidang yang kepakarannya tidak umum, serta pengetahuan dan data yang tersedia biasanya tergantung pada waktu. Selain itu, sistem pakar dibuat untuk bidang pemasalahan yang sulit untuk dimengerti dan tidak biasa dipecahkan dengan program konvensional. 4. Perbandingan terhadap buku dan basis data : membaca pengetahuan yang terdapat dalam sistem pakar tidak semudah membaca data dalam basis data atau buku. Pengetahuan adalah perkembangan dari informasi yang merupakan hasil pengolahan data mentah, oleh karena itu pengetahuan dapat digunakan sebagai solusi dari suatu permasalahan. Sistem pakar dibangun berdasarkan pengetahuan. 5. Atribut : beberapa atribut yang dimiliki oleh sistem pakar adalah: a. Transparan, sistem pakar dapat menjelaskan solusi yang diberikannya melalui pengetahuan yang dimilikinya. b. Fleksibel, pengetahuan dapat dengan mudah ditambah, diubah atau dihapus. 18 c. User-Friendly, mengguanakan sistem pakar tidak membutuhkan pengetahuan sebelumnya tentang bahasa pemprograman baik dari user maupun pakar. d. Kompeten, dengan jumlah pengetahuan yang dimilki, sistem pakar memilki kemampuan memecahkan masalah yang sangat tinggi. 2.1.5 Keuntungan Sistem Pakar Secara garis besar, banyak manfaat yang dapat diambil dengan adanya sistem pakar, antara lain : 1. Memungkinkan orang awam bisa mengerjakan pekerjaan para ahli. 2. Bisa melakukan proses secara berulang secara otomatis. 3. Menyimpan pengetahuan dan keahlian para pakar. 4. Meningkatkan output dan produktivitas. 5. Meningkatkan kualitas. 6. Mampu mengambil dan melestarikan keahlian para pakar 7. Mampu beroperasi dalam lingkungan yang berbahaya. 8. Memiliki kemampuan untuk mengakses pengetahuan. 9. Memiliki reliabilitas dan meningkatkan kapabilitas sistem komputer. 10. Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan mengandung ketidakpastian. 11. Sebagai media pelengkap dalan pelatihan. 12. Meningkatkan kapabilitas dalam menyelesaikan masalah. 13. Menghemat waktu dalam pengambilan keputusan. 19 2.1.6 Kelemahan Sistem Pakar Disamping memiliki beberapa keuntungan, sistem pakar juga memiliki beberapa kelemahan, antara lain : 1. Biaya yang diperlukan untuk membuat dan memeliharanya sangat mahal. 2. Sulit dikembangkan. Hal ini tentu saja erat kaitannya dengan ketersediaan pakar di bidangnya. 3. Sistem pakar tidak 100% bernilai benar. 4. daya kerja dan produktifitas manusia menjadi berkurang karena semuanya dilakukan secara otomatis oleh sistem 5. Pengembangan perangkat lunak sistem pakar lebih sulit dibandingkan dengan perangkat lunak konvensional. 2.1.7 Bentuk Sistem Pakar Ada 4 bentuk sistem pakar, yaitu: 1. Berdiri sendiri. Sistem pakar jenis ini merupakan software yang berdiri-sendiri tidak tergabung dengan software yang lainnya. 2. Tergabung. Sistem pakar jenis ini merupakan bagian program yang terkandung didalam suatu algoritma (konvensional), atau merupakan program dimana didalamnya memanggil algoritma suburtin lain (konvensional). 3. Menghubungkan ke software lain. Bentuk ini biasanya merupakan sistem yang menghubungkan ke suatu paket program tertentu, misalnya dengan DBMS. 20 4. Sistem Mengabdi. Sistem pakar merupakan bagian dari komputer khusus yang dihubungkan dengan suatu fungsi tertentu. Misalnya sistem pakar yang digunakan untuk membantu menganalisis data radar. 2.1.8 Fitur-Fitur Sistem Pakar Sistem pakar harus memiliki fitur, yaitu sebagai berikut : 1. Keahlian. Sistem Pakar harus memiliki keahlian yang akan memungkinkan system membuat keputusan tingkat pakar. Sistem harus menampilkan performa pakar dan kekuatan yang cukup. 2. Pertimbangan Simbolik. Pengetahuan harus direpresentasikan secara simbolik dan mekanisme pertimbangan primer juga harus simbolik. Mekanisme pertimbangan simbolik biasanya menyertakan backward chaining dan forward chaining, yang akan dideskripsikan pada bagian selanjutanya. 3 Kedalam Pengetahuan (Deep Knowledge). Basis pengetahuan harus berbasis pengetahuan yang kompleks yang tidak mudah diperoleh dari nonpakar. 4 Self-Knowledge. Sistem pakar harus dapat menganalisis pertimbangannya sendiri dan menjelaskan mengapa dicapai suatu kesimpulan. 2.1.9 Struktur Sistem Pakar Sistem pakar disusun oleh dua bagian utama, yaitu lingkungan pengembangan (development environment) dan lingkungan konsultasi (consultation environment) (Turban, 2001). Lingkungan pengembangan sistem pakar digunakan untuk memasukkan pengetahuan pakar ke dalam lingkungan 21 sistem pakar, sedangkan lingkungan konsultasi digunakan oleh pengguna yang bukan pakar guna memperoleh pengetahuan pakar. 1. Antarmuka Pengguna (User Interface) Merupakan mekanisme yang digunakan oleh pengguna sistem pakar untuk berkomunikasi. Menurut McLeod (1995), pada bagian ini terjadi dialog antara program dan pemakai, yang memungkinkan sistem pakar menerima instruksi dan informasi (input) dari pemakai, juga memberikan informasi (output) kepada pemakai. 2. Basis Pengetahuan (Knowledge Base) Basis pengetahuan adalah basis atau pangkalan pengetahuan yang berisi fakta, pemikiran, teori, prosedur, dan hubungannya satu dengan yang lain atau informasi yang terorganisasi dan teranalisa (pengetahuan didalam pendidikan atau pengalaman dari seorang pakar) yang diinputkan kedalam komputer. 3. Akuisisi Pengetahuan (Knowledge acquisition) Akuisisi pengetahuan adalah akumulasi, transfer dan transformasi keahlian dalam menyelesaikan masalah dari sumber pengetahuan ke dalam program komputer. Dalam tahap ini knowledge engineer berusaha menyerap pengetahuan untuk selanjutnya ditransfer ke dalam basis pengetahuan. Terdapat tiga metode utama dalam akuisisi pengetahuan, yaitu : wawancara, analisis protokol dan observasi pada pekerjaan pakar. 4. Mesin Inferensi (Inference Engine) Mesin inferensi merupakan program komputer yang memberikan metodologi untuk penalaran tentang informasi yang ada dalam basis 22 pengetahuan dan dalam workplace, dan untuk memformulasikan kesimpulan (Turban, 1995). Mesin inferensi berperan sebagai otak dari sistem pakar. Mesin inferensi berfungsi untuk memandu proses penalaran terhadap suatu kondisi berdasarkan pada basis pengetahuan yang tersedia. Di dalam mesin inferensi terjadi proses untuk memanipulasi dan mengarahkan kaidah, model, dan fakta yang disimpan dalam basis pengetahuan untuk mencapai solusi atau kesimpulan. Dalam prosesnya, mesin inferensi menggunakan strategi penalaran dan strategi pengendalian. Strategi penalaran terdiri dari strategi penalaran pasti (Exact Reasoning) dan strategi penalaran tak pasti (Inexact Reasoning). Exact reasoning akan dilakukan jika semua data yang dibutuhkan untuk menarik suatu kesimpulan tersedia, sedangkan inexact reasoning dilakukan pada keadaan sebaliknya. Dan untuk strategi pengendalian ini berfungsi sebagai panduan arah dalam melakukan proses penalaran. Dalam penelitian ini, agar dapat menerapkan aplikasi sistem pakar untuk mendiagnosa penyakit pada ayam digunakan strategi penalaran pasti (Exact Reasioning) karena data yang digunakan untuk menarik suatu kesimpulan atau untuk membuat suatu solusi dalam mendiagnosa penyakit tersebut telah tersedia. 23 Input Output KOMPUTER Jawaban Pertanyaan Knoledge base (Basis Pengetahuan) Masalah Inferencing Capability (Teknik Pelacakan) Solusi Gambar 2.1 Mesin inferensi (sumber : Durkin, 1994) Berdasarkan gambar 2.1 dapat dijelaskan bahwa komputer terisi pengetahuan-pengetahuan dari pakar yang telah tersusun dalam knowledge base, dalam hal ini komputer juga harus mendapatkan inputan-inputan dan setelah mendapatkan inputan maka akan dicocokan dengan fakta-fakta yang ada di knowledge base oleh inference engine, selanjutnya diolah berdasarkan pengalaman dan prosedur yang ada pada inference engine yang nantinya akan menghasilkan suatu keputusan. 5. Workplace Merupakan memori kerja (working memory) yang digunakan untuk menyimpan kondisi/keadaan yang dialami oleh pengguna dan juga hipotesa serta keputusan sementara. 6. Fasilitas Penjelasan Proses menentukan keputusan yang dilakukan oleh mesin inferensi selama sesi konsultasi mencerminkan proses penalaran seorang pakar. Karena pemakai terkadang bukanlah seorang ahli dalam bidang tersebut, maka dibuatlah fasilitas penjelasan. Fasilitas penjelasan inilah yang dapat 24 memberikan informasi kepada pemakai mengenai jalannya penalaran sehingga dihasilkan suatu keputusan.Bentuk penjelasannya dapat berupa keterangan yang diberikan setelah suatu pertanyaan diajukan, yaitu penjelasan atas pertanyaan mengapa, atau penjelasan atas pertanyaan bagaimana sistem mencapai konklusi. 7. Perbaikan Pengetahuan Pakar memiliki kemampuan untuk menganalisis dan meningkatkan kinerjanya serta kemampuan untuk belajar dari kinerjanya. Kemampuan tersebut tidak bisa diremehkan dalam pembelajaran terkomputerisasi, sehingga program akan mampu menganalisis penyebab kesuksesan dan kegagalan yang terjadi. Berikut merupakan arsitektur sistem pakar : Lingkungan Konsultasi Lingkungan Pengembangan Basis Pengetahuan User Fakta-fakta tentang kejadian tertentu Antarmuka Fakta : Rule : Apa yang diketahui tentang area domain Logical reference Fasilitas Penjelasan Rekayasa pengetahuan Akuisisi Pengetahuan Mesin Inferensi Aksi yang direkomendasikan Pengetahuan pakar Blackboard -Rencana Perbaikan pengetahuan -Agenda -Solusi -Deskripsi masalah Gambar 2.2 Struktur Sistem Pakar (Sumber : Turban (1995) 25 2.1.10 Basis Pengetahuan (Knowledge Base) Basis pengetahuan berisi pengetahuan-pengetahuan dalam penyelesaian masalah, tentu saja di dalam domain tertentu. Ada 2 bentuk pendekatan basis pengetahuan yang sangat umum digunakan, yaitu sebagai berikut. 1. Penalaran Berbasis Aturan (Rule-Based Reasoning) Pada penalaran berbasis aturan, pengetahuan direpresentasikan dengan menggunakan aturan bentuk: IF-THEN. Bentuk ini digunakan apabila kita memiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu. Dan pakar dapat menyelesaikan masalah tersebut secara berurutan. Di samping itu, bentuk ini juga digunakan apabila dibutuhkan penjelasan tentang jejak (langkah-langkah) pencapaian solusi. Pengetahuan direpresentasikan dalam suatu bentuk fakta (facts) dan aturan (rules). bentuk representasi ini terdiri atas premis dan kesimpulan. 2. Penalaran Berbasis Kasus (Case-Based Reasoning) Pada penalaran berbasis kasus, basis pengetahuan berisi solusi untuk keadaan yang terjadi sekarang . Bentuk ini digunakan apabila user menginginkan untuk tahu lebih banyak lagi pada kasus – kasus yang hampir sama . Selain itu, bentuk inijuga digunakan apabila kita telah memiliki sejumlah situasi kasus tertentu dalam basis pengetahuan. 2.1.11 Perbandingan Sistem Konvensional dengan sistem Pakar Sistem konvensional berada dengan Sistem Pakar, berikut adalah perbandingan sistem konvensional dan Sistem Pakar. 26 1. Sistem Konvensional Informasi dan pemrosesannya biasanya jadi satu dengan program. Biasanya tidak bisa menjelaskan mengapa satu input data itu dibutuhkan atau bagaimana output itu diperoleh. Pengubahan program cukup sulit dan membosankan. Sistem hanya akan beroperasi jika sistem tersebut sudah lengkap. Eksekusi dilakukan langkah demi langkah menggunakan data. Tujuan utamanya adalah efisiensi. 2. Sistem Pakar Basis pengetahuan merupakan bagian dari mekanisme inferensi. Penjelasan adalah bagian terpenting dari Sistem Pakar. Pengubahan aturan dapat dilaksanakan dengan mudah. Sistem dapat beroperasi hanya dengan beberapa aturan. Eksekusi dilakukan pada keseluruhan basis pengetahuan. Menggunakan pengetahuan, tujuan utamanya adalah efektivitas. Tabel 2.1 Perbandingan Sistem Konvensional dan Sistem Pakar Sistem Konvensional Informasi dan pengolahannya biasanya digabungkan dalam satu program berurutan. Program tidak melakukan kesalahan (programmer atau pengguna yang melakukan kesalahan) Biasanya tidak menjelaskan mengapa data input diperlukan atau bagaimana kesimpulan dihasilkan Memerlukan semua data input berfungsi dengan tidak tepat jika ada data yang hilang, kecuali jika telah dirancang demikian. Perubahan dalam program sangat membosankan (kecuali dalam DOS) Sistem beroperasi jika hanya telah lengkap Eksekusi dilakukan pada basis algoritma langkah demi langkah Eksekusi dilakukan pada basis algoritma langkah demi langkah Sistem Pakar Basis pengetahuan secara nyata dipisahkan dari mekanisme pengolahan (inferensi). Program dapat melakukan kesalahan. Penjelasan adalah bagian dari sebagian besar ES. Tidak memerlukan semua fakta awal. Biasanya dapat tiba pada kesimpulan yang masuk akal, sekalipun ada fakta yang hilang. Perubahan dalam aturan mudah dilakukan. Perubahan dalam aturan mudah dilakukan. Sistem dapat beroperasi dengan hanya sedikit aturan. Eksekusi dilakukan dengan menggunakan heuristic dan logika. 27 Tabel 2.1 Perbandingan Sistem Konvensional dan Sistem Pakar (Lanjutan) Manipulasi efektif pada database besar Representasi dan penggunaan data. Efesiensi biasanya menjadi tujuan utama. Efektivitas penting hanya untuk DSS Mudah menangani data kuantitatif. Menggunakan representasi data numerik. Menyerap, memperbesar, dan mendistribusikan askes ke data atau informasi numerik. 2.2 Manipulasi efektif pada basis pengetahuan. Representasi dan penggunaan pengetahuan. Efektifitas adalah tujuan utama. Mudah menangani data kualitatif. Menggunakan representasi pengetahuan simbolik dan numeric. Menyerap, memperbesar, dan mendistribusikan akses ke penilaian atau pengetahuan. Diagnosa Diagnosa adalah suatu proses mengerti bagaimana fungsi organisasi saat ini dan menyediakan informasi yang diperlukan untuk mendesain intervensi perubahan. Kegiatan diagnosa ini biasanya dilakukan setelah adanya proses entering dan contracting yang dilakukan oleh organisasi untuk melakukan perencanaan perubahan, yang pada kedua proses tersebut organisasi telah menetapkan langkah untuk menindak lanjuti hasil diagnosa yang berhasil. Proses ini membantu praktisi pengembangan organisasi dan anggota klien (yang memakai konsultan perubahan) yang bersama-sama menentukan fokus isu organisasi pada, bagaimana mengumpulkan dan menganalisis data untuk mengerti posisi organiassi, dan bagaimana bekerja bersama dalam mengembangkan langkah aksi dari diagnosa tersebut. Diagnosa dalam pengembangan organisasi, bagaimana pun merupakan banyak kolaborasi, seperti menyiratkan perpektif medis. 28 2.3 Ayam Ayam menurut kamus Ilmiah biologi adalah hewan yang termasuk phylum chordata, subphilum dari vertebrata kelas aves (Burung), sub kelas neormithes, super ordernya carinatae, dan genus atau berspesies Gallus Domesticus adalah suatu unggas yang berasal dari daerah Indian, yang tersebar luas diseluruh dunia Dengan populasi lebih dari 24 milyar pada tahun 2003, sehingga merupakan jumlah terbesar dari jenis burung yang ada. Ayam secara alami dapat hidup selama lima sampai sebelas tahun tergantung cara pengelolaanya, pada pengelolaan peternakan komersial ayam pedaging dari ras tertentu secara umum hanya hidup selama 6 sampai 14 minggu. Karena setelah itu ayam-ayam tersebut akan disembelih untuk dikonsumsi, Jenis Ayam Petelur atau yang biasa disebut (Leghorn) dapat menghasilkan sekitar 300 telur selama kurun waktu 1 tahun. Dan setelah 12 bulan, kemampuan bertelurnya akan menurun untuk selanjutnya akan diganti dengan ayam yang baru. Ayam peliharaan (Gallus gallus bankiva Tem.) adalah unggas yang biasa dipelihara orang untuk dimanfaatkan untuk keperluan hidup pemeliharanya. Ayam peliharaan (selanjutnya disingkat "ayam" saja) merupakan keturunan langsung ayam hutan merah (Gallus gallus) atau ayam bangkiwa (bankiva fowl). Kawin silang antara ayam domestik telah menghasilkan ratusan galur unggul atau galur murni dengan bermacam-macam jenis; yang paling umum adalah ayam potong (untuk dipotong) dan ayam petelur (untuk diambil telurnya). Ayam pada dasarnya dipelihara untuk produksi telur dan daging (Gautier, 2009). 29 2.3.1 Penyebab Penyakit Ayam Drh. Agustin Polana mengemukakan bahwa, ada berbagai macam penyebab penyakit yang menjangkiti ayam diantaranya . penyakit yang disebabkan oleh virus seperti : Flu Burung (Avian Influenza), Tetelo (Newcastle Disease), Batuk Ayam Menahun (Infectious Bronchitis), Cacar Ayam (Avian Pox), Penyakit Marek (Mareks Disease), Gumboro (Gumboro Disease), Egg Drop Dyndrome (EDS). Adapun penyakit yang disebabkan oleh bakteri adalah seperti berikut : Berak Kapur (Pullorum Disease), Kolera Ayam (Fowl Cholera), Salesma Ayam (Infectious Coryza), Pernafasan Ayam Menahun (Chronic Respiratory Disease (CRD). Berak Kuning (Avian Colibacillosis), TBC Unggas (Avian Turbecolosis), Radang Kulit (Necrotic Dermatits), dan lain sebagainya. Sementara penyakit yang disebabkan oleh jamur : Aspergillosis, Candidias, Mycotoxisis, untuk penyakit yang disebabkan protozoa adalah : Berak Darah (Coccidiosis), Cryptosporidiosis, Malaria Ayam (Leucocytozoonosis) dan penyakit yang disebabkan karena ayam kekurangan nutrisi seperti Defisiensi Vitamin A, Defisiensi Vitamin B, Perosis, Rickets (Agustin, 2005). 2.3.2 Jenis Pencegahan Beberapa program pencegahan yang bisa dilakukan untuk mencegah datangnya beberapa sumber penyakit pada ayam yang dapat diaplikasikan pada peternakan ayam diantaranya ialah program sanitasi, vaksinasi dan pengobatan dini, serta program manajemen pemeliharaan yang baik, karena dengan demikian ayam yang di perlihara dapat memberikan hasil yang optimal. 30 1. Program Sanitasi. Program sanitasi adalah program yang dijalankan disuatu kawasan peternakan yang bertujuan untuk menjaga terjadinya perpindahan bibit penyakit menular sehingga ternak dipelihara ternak yang dipelihara terbebas dari infeksi penyakit serta selalu dalam kondisi yang sehat, yang dimulai dari pintu gerbang, kandang, tempat penetasan, dan lingkungan sekitar kandang. 2. Program Vaksinasi Program vaksinasi merupakan satu cara yang paling efektif dan sering disarankan untuk mencegah timbulnya penyakit disuatu kawasan peternakan ayam. Vaksinasi diartikan sebagai suatu aktifitas memasukkan agen penyakit (virus, bakteri) yang telah dilemahkan ke dalam tubuh ayam. Tingkat antibodi didalam darah ayam akan meningkat sesuai dengan agen yang telah dimasukkan. Akibatnya, ayam akan memiliki kekebalan tubuh yang kuat untuk melawan penyakit. 2.3.3 Jenis Pengobatan Program pengobatan dilakukan ketika ayam sudah mulai menunjukkan tanda-tanda klinis terkena penyakit, jika infeksi terlalu parah, pengobatan akan sulit untuk dilakukan. Mendeteksi suatu penyakit secara dini bisa dilakukan dengan mengamati perilaku ayam, konsumsi pakan dan air minum, kotoran yang dikeluarkan. Jenis Obat, dosis dan lamanya pemberian obat disesuaikan dengan rekomendasi yang tertera pada kemasan obat atau telah dikonsultasikan kepada dokter hewan. 31 2.4 Forward Chaining Forward Chaining merupakan suatu penalaran yang dimulai dari fakta untuk mendapatkan kesimpulan (conclusion) dari fakta tersebut (Giarratano and Riley, 2005). Forward chaining bisa dikatakan sebagai strategi inference yang bermula dari sejumlah fakta yang diketahui. Pencarian dilakukan dengan menggunakan rules yang premisnya cocok dengan fakta yang diketahui tersebut untuk memperoleh fakta baru dan melanjutkan proses hingga goal dicapai atau hingga sudah tidak ada rules lagi yang premisnya cocok dengan fakta yang diketahui maupun fakta yang diperoleh. Forward chaining bisa disebut juga runut maju atau pencarian yang dimotori data (data driven search). Jadi pencarian dimulai dari premis-premis atau informasi masukan (if) dahulu kemudian menuju konklusi atau derived information (then). Forward Chaining berarti menggunakan himpunan aturan kondisi-aksi. Dalam metode ini, data digunakan untuk menentukan aturan mana yang akan dijalankan atau dengan menambahkan data ke memori kerja untuk diproses agar ditemukan suatu hasil. Forward Chaining digunakan jika : a. Banyak aturan berbeda yang dapat memberikan kesimpulan yang sama. b. Banyak cara untuk mendapatkan sedikit konklusi. c. Benar-benar sudah mendapatkan berbagai fakta, dan ingin mendapatkan konklusi dari fakta-fakta tersebut. 32 Adapun tipe sistem yang dapat menggunakan teknik pelacakan forward chaining, yakni : a. Sistem yang direpresentasikan dengan satu atau beberapa kondisi. b. Untuk setiap kondisi, sistem mencari rule-rule dalam knowledge base untuk rule-rule yang berkorespondensi dengan kondisi dalam bagian if. c. Setiap rule dapat menghasilkan kondisi baru dari konklusi yang diminta pada bagian then. Kondisi baru ini dapat ditambahkan ke kondisi lain yang sudah ada. d. Setiap kondisi yang ditambahkan ke sistem akan diproses. Jika ditemui suatu kondisi, sistem akan kembali ke langkah 2 dan mencari rule-rule dalam nowledge base kembali. Jika tidak ada konklusi baru, sesi ini berakhir (Subakti, 2002). Forward Chaining adalah metode pencarian/penarikan kesimpulan berdasarkan pada data atau fakta yang ada menuju ke kesimpulan/bottom up reasoning. Forward chaining melakukan pencarian dari suatu masalah kepada solusinya. Jika klausa premis sesuai dengan situasi, maka proses akan memberikan kesimpulan. Dalam metode forward chaining, data yang digunakan untuk menentukan aturan mana yang akan dijalankan, kemudian aturan tersebut dijalankan. Proses menambahkan data ke memori kerja, proses diulang sampai ditemukan suatu hasil. Gambar 2.3 menunjukan bagaimana kerja inferensi runut maju. Berikut contoh pengunaan runut maju (forward chaining). 33 DATA ATURAN A=1 JIKA A = 1 DAN B = 2 KESIMPULAN D=4 MAKA C = 3 Gambar 2.3 Cara kerja metode runut maju (forward chaining) Dalam pendekatan ini pelacakan dimulai dari informasi masukan, dan selanjutnya mencoba menggambarkan kesimpulan. Pelacakan ke depan, mencari fakta yang sesuai dengan bagian IF dari aturan IF-THEN. Gambar 2.4 menunjukkan proses forward chaining. Observasi A Aturan R1 Fakta C Observasi B AturanR 2 Fakta D Aturan R1 Kesimpulan 1 Aturan R2 Kesimpulan 2 Fakta E Gambar 2.4 Contoh Proses Forward Chaining Jika klausa premis sesuai dengan situasi (bernilai true), maka proses akan meng-assert konklusi. Forward chaining juga digunakan jika suatu aplikasi menghasilkan tree yang lebar dan tidak dalam. Pada metode forward chaining, ada 2 cara yang dapat dilakukan untuk melakukan pencarian, yaitu : a. Dengan memasukkan semua data yang tersedia ke dalam sistem pakar pada satu kesempatan dalam sesi konsultasi. Cara ini banyak berguna pada sistem 34 pakar yang termasuk dalam proses terautomatisasi dan menerima data langsung dari komputer yang menyimpan database, atau dari satu set sensor. b. Dengan hanya memberikan elemen spesifik dari data yang diperoleh selama sesi konsultasi kepada sistem pakar. Cara ini mengurangi jumlah data yang diminta, sehingga data yang diminta hanyalah data-data yang benar-benar dibutuhkan oleh sistem pakar dalam mengambil kesimpulan. Contoh pelacakan forward chaining : Rule - rule yang diberikan : 1. R1 : Jika A dan C, maka E 2. R2 : Jika D dan C maka F 3. R3 : Jika B dan E maka F 4. R4 : Jika B maka C 5. R5 : Jika F maka G Fakta yang ada : A benar dan B benar a. Dalam Forward Chaining pencarian dimulai dengan fakta yang diketahui dan mengambil fakta baru menggunakan aturan yang telah diketahui pada sisi Jika. b. Karena diketahui A dan B benar, sistem pakar mulai dengan mengambil fakta baru menggunakan aturan yang memiliki A dan B pada sisi Jika. Dengan menggunakan R4, sistem pakar mengambil fakta baru C dan menambahkannya ke dalam assertion base sebagai benar. c. Sekarang R1 fire (karena A dan C benar) dan nyatakan E sebagai benar dalam assertion base sebagai benar. 35 d. Karena B dan E keduanya benar (berada dalam assertion base), R3 fire dan menetapkan F sebagai benar dalam assertion base. e. Sekarang R5 fire (karena F berada dalam sisi Jika), yang menetapkan G sebagai benar, jadi hasilnya adalah G. Inferensi dengan rules dibagi menjadi dua macam menurut Turban (1995), yaitu : a. Forward Chaining Menurut Turban (1995), penalaran maju (forward chaining) adalah teknik penelusuran yang berorientasi pada data (data-driven oriented search). Pendekatan dari prosedur pencarian ini dimulai dengan informasi (gejala, bukti ataupun fakta) dari masalah sebagai input, kemudian petunjuk-petunjuk yang diproses selama pencarian akan digunakan untuk menemukan solusi. Sistem pakar akan menganalisa masalah dengan menggunakan fakta-fakta yang cocok dengan bagian IF dari rules IF-THEN. Setelah setiap rule diuji, sistem pakar akan bekerja untuk mencari kesimpulan. Observasi 1 Kaidah A Fakta 1 Fakta 2 Observasi 2 Kaidah B Kaidah C Kaidah d Fakta 3 Kesimpulan 1 Kesimpulan 2 Kesimpulan 3 Kaidah E Kesimpulan 4 Gambar 2.5 Forward Chaining b. Backward Chaining Backward chaining adalah suatu metode strategi pencarian dengan pengendalian tujuan (strategi goal-driven). Metode ini dimulai dengan 36 pengendalian tujuan dan bekerja mundur ke arah kondisi awal. Proses diawali dengan sebuah hipotesis kemudian pencarian mulai dijalankan untuk menemukan dan membuktikan kebenaran akan fakta-fakta penunjang yang penting. Proses berakhir dengan penerimaan atau penolakan terhadap hipotesa (Turban, 1995). Observasi 1 Kaidah A Fakta 1 Kaidah D Observasi 2 Kaidah B Fakta 2 Kaidah C Fakta 3 Tujuan Observasi 3 Kaidah E Observasi 4 Gambar 2.6 Backward Chaining 2.5 Representasi Pengetahuan Semua sistem kecerdasan buatan terbuat dari dua bagian yaitu basis pengetahuan dan mekanisme inferensi (mesin). Basis pengetahuan mengandung fakta-fakta tentang objek-objek dalam domain terpilih. Basis pengetahuan juga dapat berupa konsep, teori, dan prosedur. Basis pengetahuan membentuk sumber kecerdasan sistem dan digunakan mekanisme inferensi untuk membuat kesimpulan (Turban, 1995). Ada beberapa cara merepresentasikan pengetahuan menurut Turban (1995), antara lain : a. Propositional Logic Proposisi adalah sebuah pernyataan yang dapat bernilai benar atau salah. Model ini menggunakan kumpulan premis atau pernyataan yang diterima untuk membentuk suatu kesimpulan (Turban, 1995). 37 Contoh : Pernyataan A = Tukang pos bertugas dari hari Senin sampai Sabtu Pernyataan B = Hari ini adalah hari Minggu Kesimpulan C = Hari ini tukang pos tidak akan datang b. Predicate Calculus Predicate calculus adalah suatu perluasan dan generalisasi (umum) yang menyediakan kekuatan dan efisiensi yang lebih besar untuk membuat inferensi logika. Predikat logis memperbolehkan untuk membagi pernyataan-pernyataan menjadi komponen-komponen yang lebih kecil yaitu penamaan objek ataupun karakteristik objek (Turban, 1995). c. Semantic Network Menurut Turban (1995) semantic network adalah gambaran grafis dari pengetahuan yang terdiri dari simpul (nodes) dan hubungan (link) yang memperlihatkan hubungan hirarkis diantara objek d. Script, list, table, tree Script adalah suatu skema representasi pengetahuan yang menggambarkan sekuen dari kejadian-kejadian (events) menurut Turban (1995). Definisi ini juga didukung oleh Luger dan Stubblefield (1989) yang mengemukakan script sebagai representasi terstruktur yang menggambarkan kejadian-kejadian yang biasa terjadi di dalam sebuah konteks khusus. Elemenelemen dari script adalah memasukkan kondisi (entry condition), prop, rule, track dan scene. Memasukkan kondisi adalah menggambarkan situasi yang harus dipenuhi sebelum kejadian-kejadian tersebut menjadi valid. Prop 38 mengacu kepada objek yang digunakan di dalam rangkaian-rangkaian kejadian yang ada. Rule mengacu kepada orang yang terlibat (Turban, 1995). List adalah daftar tertulis dari item-item yang berhubungan. Dapat berupa daftar orang yang dikenal, benda-benda yang harus dibeli, hal-hal yang harus dilakukan, atau produk-produk dalam suatu katalog. List biasanya digunakan untuk menampilkan hirarkis pengetahuan dimana objek berupa grup, kategori, tingkatan dari hubungan (Turban, 1995). Decision table (tabel keputusan) adalah pengetahuan yang diatur dalam format lembaran kerja (spreadsheet), menggunakan kolom baris menurut Turban (1995). e. Object, attribute, dan values Salah satu cara yang paling umum untuk mempresentasikan pengetahuan adalah dengan menggunakan object, attribute dan values atau disebut O-A-V triplet. Object dapat berupa fisik atau konsepsi. Attribute merupakan karakteristik dari object. Sedangkan values adalah ukuran spesifik dari attribute dalam situasi tertentu (Turban, 1995). f. Frame Frame adalah struktur data yang berisi semua pengetahuan tentang objek tertentu. Pengetahuan ini diatur dalam suatu struktur hirarki khusus yang memperbolehkan diagnosis terhadap independensi pengetahuan (Turban, 1995). Pengetahuan di dalam sebuah frame dibagi menjadi beberapa slot. Sebuah slot dapat menerangkan pengetahuan yang ada di dalam frame, misalnya warna suatu mobil atau pengetahuan berupa prosedur-prosedur. Slot 39 juga lebih dikenal sebagai konvensional program sebagai field atau attribute. Frame serupa dengan spreadsheet dan database di dalam konvensional program, karena record pada database benar-benar berisi pengetahuan. g. Production Rules Sistem produksi dikembangkan oleh Newell dan Simon sebagai model dari kognisi manusia. Ide dasar dari sistem ini adalah pengetahuan yang digambarkan sebagai production rules dalam bentuk pasangan kondisi-aksi. Sistem produksi terdiri dari rule-rule, working memory dan sebuah kontrol (Turban, 1992). Sistem semacam ini secara penuh digunakan sebagai mekanisasi untuk mengontrol interaksi antara sistem yang dideklarasikan dan prosedur-prosedur pengetahuan. 2.5.1 Pohon Keputusan Pohon (tree) Keputusan menurut Natalia (2006) yang dikutip dari Evi (2012) adalah suatu metode struktur yang terdiri dari node (simpul) yang menyimpan informasi atau pengetahuan dan cabang yang menghubungkan node. Cabang disebut juga link atau edge dan node disebut juga vertek. Dengan berorientasi pada pohon, akar node adalah node yang tertinggi dalam hirarki dan daun adalah paling bawah. Pohon dapat dianggap sebagai suatu tipe khusus dari jaringan semantik dari setiap nodenya, kecuali akar pasti memiliki satu node orang tua dan mempunyai nol atau lebih node anak. Untuk tipe biasa dari binary tree, maksimum mempunyai dua anak untuk setiap node, dan sisi kiri dari anak dibedakan. Selengkapnya diilustrasikan pada gambar 2.7 berikut : 40 Akar node Level 1 Cabang Level 2 Node Level 3 Daun Level 4 Gambar 2.7 Binary Tree yang Mempunyai 2 Cabang Jika node mempunyai lebih dari satu orang tua maka disebut dengan jaringan. Gambar 2.7 menunjukan hanya ada satu urutan dari edge atau path dari akar untuk tiap node. Sedangkan menurut Kusrini (2006) yang dikutip dari Said (2009), hasil pembentukan pohon keputusan bisa seperti pohon keputusan yang tampak pada gambar 2.8: Atr_1 N_1 Atr_2 N_2 N_3 Atr_5 H_5 N_4 N_6 Atr_3 N_9 H_1 N_10 H_6 N_7 N_8 H_7 H_8 Atr_4 N_11 H_2 N_12 H_3 Gambar 2.8 Pohon Keputusan Diagnosa Penyakit Lambang bulat pada pohon keputusan melambangkan sebagai node akar atau cabang (bukan daun) sedangkan kotak melambangkan node daun. Jika pengetahuan yang terbentuk beruka kaidah produksi dengan format : jika premis maka konklusi node-node akar akan menjadi Premis dari aturan sedangkan node 41 daun akan menjadi bagian konklusinya. Dari gambar pohon keputusan pada gambar 2.8 dapat dibentuk aturan sebagai berikut: 1. Jika Atr_1 = N_1 Dan Atr_2 = N_4 Dan Atr_3 = N_9 Maka H_1 2. Jika Atr_1 = N_1 Dan Atr_2 = N_4 Dan Atr_3 = N_10 Dan Atr_4 = N_11 Maka H_2 3. Jika Atr_1 = N_1 Dan Atr_2 = N_4 Dan Atr_3 = N_10 Dan Atr_4 = N_12 Maka H_2 4. Jika Atr_1 = N_1 Dan Atr_2 = N_5 Maka H_4 5. Jika Atr_1 = N_2 Maka H_5 6. Jika Atr_1 = N_3 Dan Atr_5 = N_6 42 Maka H_6 7. Jika Atr_1 = N_3 Dan Atr_5 = N_7 Maka H_7 8. Jika Atr_1 = N_3 Dan Atr_5 = N_8 Maka H_8 Model case based reasoning dapat digunakan sebagai metode akuisisi pengetahuan dalam aplikasi system pakar diagnosis penyakit. Aturan yang dihasilkan sistem ini mampu digunakan untuk mendiagnosis penyakit didasarkan pada data-data pasien. Dalam penentuan diagnosis penyakit belum diimplementasikan derajat kepercayaan terhadap hasil diagnosis tersebut. 2.5.2 Tabel Keputusan Tabel keputusan merupakan suatu cara untuk mendokumentasikan pengetahuan. Tabel keputusan juga merupakan matrik kondisi yang dipertimbangkan dalam pendeskripsian kaidah. Walaupun kaidah secara langsung dapat dihasilkan dari tabel keputusan tetapi untuk menghasilkan kaidah yang efisien terdapat suatu langkah yang harus ditempuh yaitu membuat pohon keputusan terlebih dahulu. 43 Contoh tabel keputusan dan pohon keputusan adalah sebagai berikut : Tabel Keputusan-1 Pertanyaan-1 Pertanyaan-2 Pertanyaan-3 Pertanyaan-4 Diagnosa-1 Diagnosa-2 Diagnosa-3 Rule-1 x x x Rule-2 x x Rule-3 x x Rule-4 - Rule-5 x x x x x x Tabel 2.2 Tabel Keputusan Jika tabel keputusan pada tabel 2.2 dikonversi kedalam bentuk rule, maka akan menjadi: Rule-1: jika Pertanyaan-1 dan Pertanyaan-2 maka Diagnosa-1 Rule-2: jika Pertanyaan-1 dan tidak (Pertanyaan-2) dan Pertanyaan-3 maka Diagnosa-1 Rule-3: jika Pertanyaan-1 dan tidak (pertanyaan-2) dan tidak (pertanyaan-3) dan pertanyaan-4 maka Diagnosa-2 Rule-4: jika tidak (Pertanyaan-1) dan Pertanyaan-3 maka Diagnosa-3 Rule-5: jika tidak (Pertanyaan-1) maka Diagnosa-2 2.6 Prototype Model prototipe ini dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari perangkat lunak, dan mengidentifikasi segala kebutuhan yang diketahui. untuk tahapan metode prototype dapat digambarkan seperti pada Gambar 2.9 44 Gambar 2.9 Model Prototipe Secara ideal prototipe berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Prototipe bisa menjadi paradigma yang efektif bagi rekayasa perangkat lunak. Kuncinya adalah mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan pengembang keduanya harus setuju bahwa prototype dibangun untuk berfungsi sebagai mekanisme pendefinisian kebutuhan. Prototype kemudian disingkirkan dan perangkat lunak actual direkayasa dengan tertuju kepada kualitas dan kemampuan pemeliharaan. Seluruh metode pengembangan sistem memiliki kelebihan dan kekurangan, berikut adalah kelebihan dan kelemahan dari metode prototype adalah: 1. Kelebihan a) Pendefinisian kebutuhan pemakai lebih baik karena keterlibatan pemakai yang lebih intensif. 45 b) Meningkatkan kepuasaan pemakai dan mengurangi resiko pemakai tidak menggunakan system mengingat keterlibatan mereka yang sangat tinggi sehingga system memenuhi kebutuhan mereka dengan lebih baik. c) Mempersingkat waktu pengembangan d) Memperkecil kesalahan disebabkan pada setiap versi prototype kesalahan segera terdeteksi oleh pemakai. e) Pemakai mempunyai kesempatan dalam meminta perubahan perubahan. f) Menghemat biaya (menurut penelitian, biaya pengembangan dapat mencapai 10% hingga 20% jika dibandingkan dengan SDLC tradisional). 2. Kelemahan a) Prototype hanya bisa berhasil jika pemakai bersungguh-sungguh dalam menyediakan waktu dan pikiran untuk menggarap prototype. b) Kemungkinan dokumentasi terabaikan karena pengembang lebih berkosentrasi pada pengujian dan pembuatan prototype. c) Mengingat target waktu yang pendek, ada kemungkinan system yang dibuat tidak lengkap dan bahkan system kurang teruji. d) Jika terlalu banyak proses perulangan dalam membuat prototype ada kemungkinan pemakai terjadi jenuh dan memberikan reaksi yang negative. e) Apabila tidak terkelola dengan baik, prototype menjadi tak pernah berakhir. Hal ini disebabkan permintaan terhadap perubahan terlalu mudah untuk dipenuhi. 46 2.7 Permodelan Data Menurut (Pressman,2002), pemodelan data menjawab serangkaian pertanyaan spesifik yang relevan dengan berbagai aplikasi pemrosesan data. Model data merupakan kumpulan tools yang secara konseptual untuk mendeskripsikan data, hubungan data, semantik data, dan konsistensi konstrain atau suatu cara untuk menjelaskan bagaimana pemakai dapat melihat data secara logic. Melalui pemodelan sistem, dapat digambarkan aliran data yang akan diproses menjadi informasi dan aliran distribusinya secara sederhana, sehingga arus data dan informasi dapat terlihat secara jelas. Ada tiga alasan yang menyebabkan pemakaian pemodelan sistem, yaitu: 1. Dapat memfokuskan perhatian pada hal-hal penting dalam sistem tanpa mesti terlibat terlalu jauh. 2. Mendiskusikan perubahan dan koneksi terhadap kebutuhan pemakai dengan resiko dan biaya minimal. 3. Menguji pengertian penganalisa sistem terhadap kebutuhan pemakai dan membantu pendisain sistem dan pemrograman membangun sistem. 2.7.1 Diagram Konteks Diagram konteks merupakan diagram yang terdiri dari suatu proses dan menggambarkan ruang lingkup suatu sistem. Diagram konteks merupakan alat pemodelan atau suatu diagram yang menggambarkan sistem berbasis komputer yang dirancang secara global dan merupakan suatu diagram alir data tingkat atas, 47 dimana di dalam diagram konteks ini menggambarkan seluruh jaringan, baik masukan maupun sebuah keluaran sebuah sistem. Diagram konteks terdiri dari sebuah simbol proses tunggal yang menggambarkan sebuah sistem dan menunjukan data aliran utama untuk dan dari terminator. Diagram ini merupakan dasar yang digunakan untuk menentukan aliran data yang mengalir menuju sistem (input system) dan keluar dari sistem (output system), yang meliputi objek berupa kesatuan luar (ekseternal entity). Pada Gambar 2.10 merupakan contoh diagram konteks. Barang Ditanya, Barang Dibeli, Uang Pembayaran Sistem Penjualan Barang Pembeli Laporan Penjualan Barang Pemilik Informasi Barang, Jumlah Uang Harus Dibayar Gambar 2.10 Diagram Konteks Diagram konteks merupakan gambaran bagaimana sistem berinteraksi dengan external entity. 2.7.2 Diagram Alir Data (DFD) Menurut (Pressman,2002) DFD adalah sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output. Diagram Alir Data atau Data Flow Diagram merupakan suatu teknik grafis yang menggambarkan aliran informasi 48 dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output. DFD juga sering disebut Grafik Alir Data atau Bubble Chart. DFD memberikan suatu mekanisme bagi pemodelan fungsional dan pemodelan aliran informasi. DFD terdapat beberapa tingkat. DFD tingkat 0 (model sistem fundamentasi atau model konteks) merepresentasikan seluruh elemen sistem sebagai sebuah bubble tunggal dengan input dan output yang ditunjukkan oleh anak panah yang masuk dan keluar secara berurutan. Berikut notasi dasar DFD pada Tabel beserta penjelasannya. Tabel 2.3 Notasi dasar DFD No Gambar Entity Eksternal 1 Keterangan Prosedur atau consumer informasi yang ada di luar bound sistem untuk dimodelkan Ttransfer informasi (fungsi) yang ada di dalam bound sistem untuk dimodelkan 2 Proses 3 Objek data O objek data; anak panah menunjukkan arah aliran data 2.7.3 Entity Relationship (ERD) Menurut (Pressman, 2002), Entity Relationship Diagram (ERD) menggambarkan hubungan antara objek data. ERD adalah notasi yang digunakan untuk melakukan aktivitas pemodelan data. Atribut dari masing-masing objek data yang ditulis pada ERD dapat digambarkan dengan deskripsi objek data. 49 Pada konteks analisis terstruktur, ERD menetapkan semua data yang dimasukkan, disimpan, ditransformasikan, dan diproduksi pada suatu aplikasi. Pada dasarnya ada 3 macam simbol yaitu: 1. Entitas (Entity) Entitas adalah suatu objek yang dapat diidentifikasikan dalam lingkungan pemakai, sesuatu yang penting bagi pemakai dalam konteks sistem yang akan dibuat. Entitas digambarkan dengan empat persegi panjang dan didalamnya dicantumkan nama entitasnya. 2. Atribut Atribut adalah identitas atau karakteristik yang melekat pada entitas. Isi atribut mempunyai sesuatu yang dapatt diidentifikasi entity satu dengan yang lain, atribut diwakili oleh simbol ellips dan didalamnya ditulis nama atributnya. 3. Hubungan (Relational) Hubungan (realitional) adalah hubungan antar entitas pada himpunan entitas yang satu dengan yang lain. Hubungan digambarkan dengan intan atau belah ketupat dan nama hubungan dapat ditulis didalam intan. 50 4. Derajat Relasi (Cardinality) Derajat relasi atau cardinality adalah hubungan maksimum yang terjadi antara satu sistem dengan entitas yang lain. Pada derajat relasi ada 3 hubungan yaitu: a. Satu ke satu (One to one) Yaitu satu entitas hanya memiliki satu hubungan dengan entitas yang lainnya. Nama_d osen Alamat_ dosen Nama_dos en 1 Dosen Kd_jur Kd_jur 1 Mengepalai Nm_jur Jurusan Gambar 2.11 Cardinality One to One b. Satu ke banyak (One to many) Yaitu entitas memiliki hubungan lebih dari satu dengan entitas yang lain. Nm_dosen Dosen Almt_dosen Nm_dosen 1 Kd_kul Mengajari Waktu Tempat Kd_kul 1 Nm_kul Kuliah sks Gambar 2.12 Cardinality One to Many semester 51 c. Banyak ke banyak (Many to many) Yaitu banyak entitas memiliki banyak hubungan dengan entitas yang lain. Nm_mh s NIM mahasiswa Almt_mh s Tgl_lhr NIM N Kd_kul mempelajari Kd_kul N Indeks_ NIL Nm_kul Kuliah sks semester Gambar 2.13 Cardinality Many to many Tahapan Pembuatan Diagram E-R (Preliminary Design) a. Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat. b. Menentukan atribut-atribut key dari masing-masing himpunan entitas. c. Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitas-himpunan entitas yang ada beserta foreign key-nya. d. Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi. 2.7.4 Kamus Data Kamus data adalah suatu daftar data elemen yang terorganisir dengan definisi yang tetap dan sesuai dengan sistem, sehingga user dan analis sistem mempunyai pengertian yang sama tentang input, output, dan komponen data strore. Kamus data ini sangat membantu analissistem dalam mendefinisikan data yang mengalir di dalam sistem, sehingga pendefinisian data itu dapat dilakukan dengan lengkap dan terstruktur. Pembentukan kamus data dilaksanakan dalam 52 tahap analisisdan perancangan suatu sistem. Pada tahap analisis, kamus data merupakan alat komunikasi antarauser dan analis sistem tentang data yang mengalir di dalam sistem, yaitu tentang data yang masuk ke sistem dan tentang informasi yang dibutuhkan oleh user. Sementara itu, pada tahap perancangan sistem kamus data digunakan untuk merancang input, laporan dan database. Pembentukan kamus data didasarkan atas alur data yang terdapat pada DFD. Alur data pada DFD ini bersifat global, dalam arti hanya menunjukan nama alur datanya tanpa menunjukan struktur dari alur data itu. Untuk menunjukan struktur dari alur data secara terinci maka dibentuklah kamus data yang didasarkan pada alur data di dalam DFD. 1. Pendefinisian Data Elemen Dalam Kamus Data Pendefinisian data elemen dalam kamus data diantaranya dengan cara : a. Menguraikan arti dari alur data dan data store dalam DFD b. Menguraikan komposisi paket data pada alur data ke dalam alur yang lebih elementary (kecil) contoh : alamat langganan yang terdiri dari nama jalan, kota dan kode pos. c. Menguraikan komposisi paket data dalam data store. d. Menspesifikasikan nilai dan unit informasi dalam alur data dan data store. e. Menguraikan hubungan yang terinci antara data strore dalam suatu entity relationship diagram (ERD) 2. Notasi Kamus Data Kamus data menggunakan beberapa notasi, Notasi itu adalah : 53 Tabel 2.4 Kamus Data (Anonim : 2012) Notasi = + () {} [] ** @ I Alias Arti terdiri dari, terbentuk dari, sama dengan dan optional iterasi/ pengulangan, misal : 1 { ... } 10 pilih salah satu dari beberapa alternatif (pilihan) misal : [AIBICID] komentar identifier suatu data store pemisah dalam bentuk [ ] nama lain untuk suatu data 2.7.5 Pengertian Sistem Database Basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi. Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan satuan fungsi atau tugas khusus) yang saling berhubungan dan saling bersama-sama bertujuan untuk memenuhi suatu proses atau pekerjaan tertentu (Fatansyah, 1999). Sedangkan basis dapat didefinisikan dalam sejumlah sudut pandang(Fatansyah, 1999), yaitu: 1. Himpunan kelompok data atau arsip yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 54 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. 3. Kumpulan file atau tabel atau arsip yang berhubungan yang disimpan dalam media penyimpanan elektronis. Secara umum sebuah basis data merupakan sistem yang terdiri atas kumpulan file (tabel) yang saling berhubungan (dalam sebuah basis data di sebuah komputer) dan sekumpulan program DBMS yang memungkinkan beberapa pemakai dan atau program lain untuk mengakses dan memanipulasi file-file (tabel-tabel) tersebut. Dalam sebuah sistem basis data secara lengkap akan terdapat komponen-komponen utama sebagai berikut: 1. Perangkat keras (Hardware) 2. Sistem Operasi (Operating System) 3. Basis Data (Database) 4. Sistem (Aplikasi perangkat lunak) Pengelola Basis Data (DBMS) 5. Pemakai (User) 6. Aplikasi (perangkat lunak) lain (bersifat opsional) Sebuah bahasa basis data biasanya dapat dipindah kedalam 2 bentuk (Fatansyah, 1999), yaitu: 1. Data Definition Language (DDL) Struktur skema basis data yang menggambarkan atau mewakili desain basis data secara keseluruhan disefinisikan dengan bahasa khusus yang disebut Data Definition Language (DDL). Dengan bahasa inilah dapat membuat tabel baru, 55 membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel, dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khususnya yang disebut kamus data (Data Dictionary). Kamus Data merupakan suatu metadata atau superdata yaitu data yang mendeskripsikan data sesungguhnya. Kamus data ini akan selalu diakses dalam suatu operasi basis data sebelum suatu file data sesungguhnya diakses. 2. Data Manipulation Language (DML) Merupakan bentuk bahasa basis data yang berguna untuk melakukan manipulasi dalam pengambilan data dalam suatu basis data. Manipulasi data dapat berupa: a. Penyisipan dan penambahan data baru ke suatu basis data b. Penghapusan data dari suatu basis data c. Pengubah data di suatu basis data 2.8 Macam – Macam DBMS (Database Managemen System) 1. Menutut C.J. Date : DBMS adalah merupakan software yang menghandel seluruh akses pada database untuk melayani kebutuhan user. 2. Menurut S, Attre : DBMS adalah software, hardware, firmware dan procedure-procedure yang memanage database. Firmware adalah software yang telah menjadi modul yang tertanam pada hardware (ROM). 3. Menurut Gordon C. Everest : DBMS adalah manajemen yang efektif untuk mengorganisasi sumber daya data. 56 4. Jadi DBMS : Semua peralatan komputer (Hardware, Software, Firmware). DBMS dilengkapi dengan bahasa yang berorientasi pada data (High level data langauage) yang sering disebut juga sebagai bahasa generasi ke 4 (fourth generation language). 2.8.1 Fungsi DBMS : Definisi data dan hubungannya a. Memanipulasi data b. Keamanan dan integritas data c. Security dan integritas data d. Recovery atau perbaikan dan concurency data e. Data dictionary f. Unjuk kerja atau performance Peralatan untuk menentukan pendekatan database disebut DBMS merupakan software dan hardware yang kusus didesain untuk melindungi memanage database. Dengan menggunakan DBMS, maka dapat : 1. Mendefinisikan data dan hubungannya. 2. Mendokumentasikan struktur dan definisi data. 3. Menggambar, mengorganisasikan dan menyimpan data untuk akses yang selektif atau dipilih dan efisien. 4. Hubungan yang sesuai antara user dengan sumber daya data. 5. Perlindungan terhadap sumber daya akan terjamin, dapat diandalkan, konsisten dan benar. 57 6. Memisahkan masalah logical dan phsycal sehingga merubah implementasi database secara fisik tidak menghendaki user untuk merubah maksud data (Logical). 7. Menentukan pembagian data kepada para user untuk mengakses secara concurent pada sumber daya data. 2.9 Pengujian Sistem (Testing) Menurut (Pressman, 2002), pengujian sistem adalah sederetan pengujian yang berbeda yang tujuan utamanya adalah sepenuhnya menggunakan sistem berbasis komputer. Meskipun masing-masing pengujian memiliki tujuan yang berbeda, perlu dilakukan pemeriksaan untuk mengetahui apakah semua elemen sistem telah diintegrasi dengan tepat dan melakukan fungsi - fungsi yang dialokasikan. Pentingnya pengujian sistem dan implikasinya yang mengacu pada kualitas sistem tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas. Meningkatnya visibilitas (kemampuan) sistem sebagai suatu elemen sistem dan “biaya” yang muncul akibat kegagalan sistem, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti. Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada sistem adalah : 58 1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan. 2. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya. 3. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya. Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yang ditemukan. Data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas sistem dan beberapa menunjukkan kualitas sistem secara keseluruhan, tetapi ada satu hal yang tidak dapat dilakukan oleh pengujian, yaitu pengujian tidak dapat memperlihatkan tidak adanya cacat, pengujian hanya dapat memperlihatkan bahwa ada kesalahan perangkat lunak. Dalam lingkungan yang ideal, sistem mendesain suatu program komputer, sebuah sistem dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program komputer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Prosedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi. Sasaran utama desain test case yaitu untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada sistem. 59 2.9.1 Pengujian Black Box Teknik pengujian black-box berfokus pada domain informasi dari sistem, dengan melakukan test case dengan menpartisi domain input dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam. Metode pengujian graph-based mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksa kemampuan program untuk menangani data pada batas yang dapat diterima. 2.10 PHP (Hypertex Preprocessor) PHP adalah bahasa pemrograman server side yang sudah banyak digunakan pada saat ini, terutama untuk pembuatan website dinamis. Untuk hal-hal tertentu dalam pembuatan web, bahasa pemrograman PHP memang diperlukan, misalnya saja untuk memproses data yang dikirimkan oleh pengunjung web. Karakteristik script PHP dapat diuraikan sebagai berikut : - file PHP disimpan dengan extensi filenya yaitu : *.php3, *.php4, *.php - Script PHP biasanya diawali dengan tag ‘<?’ atau ‘<?php’ dan ditutup dengan tag‘?>’ - File PHP dapat menginduk atau disisipkan pada bahasa script lainnya/dapat berdiri sendiri. 60 Contoh skrip PHP yang disisipkan pada HTML : 1 <html> <head> 2 <title>Contoh</title> 3 </head> 4 <body> 5 <?php 6 Echo”Hai, Aku adalah skrip PHP!”; 7 ?> 8 </body> 9 </html> 10 Sedang bentuk skrip PHP yang berdiri sendiri: 11 <?php 12 Echo”Hai, Aku adalah skrip PHP!”; 13 ?> 14 Gambar 2.14 Contoh Skrip PHP 2.10.1 Sejarah PHP Pertama kali PHP dibuat oleh Rasmus Lerdorf pada tahun 1995 menggunakan nama PHP/FI yang memiliki kepanjangan Personal Home Page/Form Interpreter. Namun pada perkembangannya, pada tahun 1997, Andi Gutmans dan Zeev Suraski menulis ulang PHP yang kemudian sampai sekarang dikenal kependekan dari kata Hypertext Preprocessor. PHP tergolong sebagai perangkat lunak open source yang diatur dalam aturan general purpose licences. Pemrograman PHP sangat cocok dikembangkan dalam lingkungan web, karena PHP dikhususkan untuk pengembangan web dinamis. Maksudnya PHP mampu menghasilkan website yang terus menerus hasilnya bisa berubah-ubah sesuai dengan pola yang diberikan. Hal tersebut bergantung pada permintaan client browsernya (Opera, Internet Explorer, Mozzila, dan lain-lain). 61 2.10.2 Kelebihan PHP PHP memiliki beberapa kelebihan, antara lain: 1. Mudah dibuat dan dijalankan. 2. Mampu berjalan pada web server dengan sistem operasi yang berbedabeda: PHP mampu berjalan dengan sistem operasi UNIX, keluarga windows dan machintos. 3. PHP bisa didapatkan secara gratis. 4. Dapat berjalan pada web server yang berbeda: PHP mampu berjalan pada web server yang berbeda-beda, seperti Microsoft personal Web Server, Apache, IIS, Xitami. 2.11 MySQL MySQL merupakan database server dimana pemrosesan data terjadi di server dan client hanya mengirim data dan memindah data. Pengaksesan dapat dilakukan dimana saja dan oleh siapa saja dengan catatan komputer telah terhubung ke server. Lain halnya dengan database dekstop dimana segala pemrosesan data seperti penambahan data ataupun penghapusan data harus dilakukan pada komputer yang bersangkutan. MySQL termasuk database yang terstruktur dalam pengolahan dan penampilan data. Salah satu keuntungan MySQL adalah MySQL merupakan perangkat lunak open source, open source berarti dapat digunakan dan dimodifikasi oleh siapa saja. Semua orang dapat mengunduh MySQL dari internet dan menggunakannya secara gratis. Untuk administrasi database, seperti pembuatan database, 62 pembuatan tabel, dan sebagainya, dapat digunakan aplikasi berbasis web seperti PHPMyAdmin. SQL adalah bahasa standar yang digunakan untuk mengakses server database. Dengan menggunakan SQL, proses akses database menjadi lebih friendly. 2.11.1 Fungsi MySQL Fungsi MySQL akan sering digunakan saat membuat website dinamis yang membutuhkan database MySQL. Misalnya, untuk membuat query, memanipulasi table, menghubungkan ke server MySQL, dan menyimpan data. Semua fungsi MySQL bekerja dengan baik jika sudah terhubung dengan server MySQL (gunakan fungsi mysql_connect). Berikut contoh penggunaan fungsi MySQL connect: 1 2 3 4 5 6 7 8 9 10 <?php $link = mysql_connect (‘localhost’ , ‘mysql_user , ‘mysql_password’) if (!$link) { die (‘koneksi gagal : ‘.mysql_error ( ) ); } echo ‘Connected Succesfully’; mysql_close ($link); ?> Gambar 2.15 Contoh Koneksi Mysql