BAB II LANDASAN TEORI 2.1
Kecerdasan Buatan Kecerdasan buatan adalah ide-ide untuk membuat suatu perangkat lunak
komputer yang memiliki kecerdasan sehingga perangkat lunak komputer tersebut dapat melakukan suatu pekerjaan yang dilakukan oleh manusia. Adapun pekerjaan itu adalah berupa konsultasi yang dapat memberikan suatu informasi berupa saran-saran yang akan sangat berguna. Kecerdasan buatan memungkinkan komputer untuk berpikir dengan cara menyederhanakan program. Dengan cara ini, Kecerdasan Buatan dapat menirukan proses belajar manusia sehingga informasi baru dapat diserap dan digunakan sebagai acuan di masa-masa mendatang. Kecerdasan atau kepandaian itu didapat berdasarkan pengetahuan dan pengalaman,
untuk
itu
agar
perangkat
lunak
yang
dikembangkan
dapat
mempunyai kecerdasan maka perangkat lunak tersebut harus diberi suatu pengetahuan dan kemampuan untuk menalar dari pengetahuan yang telah didapat dalam menemukan solusi atau kesimpulan layaknya seorang pakar dalam bidang tertentu yang bersifat spesifik. Kecerdasan buatan menawarkan media dan uji teori kecerdasan. Teori ini dapat dinyatakan dalam bahasa program komputer dan dibuktikan melalui eksekusinya pada komputer nyata.
12
13
2.2
Sistem Pakar Sistem pakar pertama kali dikembangkan oleh komunitas AI pada
pertengahan tahun 1960. Sistem pakar yang muncul pertama kali adalah General Purpose Problem Solver (GPS) yang dikembangkan oleh Newel dan Simon (Turban,1995). Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalah tertentu dengan meniru kerja dari para ahli. Sistem pakar memiliki banyak definisi, tetapi pada dasarnya sistem pakar diterapkan untuk mendukung aktivitas pemecahan masalah. Beberapa definisi yang ada untuk sistem pakar (Kusumadewi, 2003) : a) Menurut Martin dan Oxman : Sistem pakar adalah sistem berbasis computer yang
menggunakan
pengetahuan,
fakta,
dan
teknik
penalaran
dalam
memecahkan masalah, yang biasanya hanya dapat diselesaikan oleh seorang pakar dalam bidang tertentu. b) Menurut Ignizio : Sistem pakar merupakan bidang yang dicirikan oleh system berbasis pengetahuan (Knowledge Base System), memungkinkan adanya komponen untuk berpikir dan mengambil kesimpulan dari sekumpulan kaidah. c) Menurut Giarratano dan Riley : Sistem pakar adalah salah satu cabang kecerdasan buatan yang menggunakan pengetahuan-pengetahuan khusus yang dimiliki oleh seorang ahli untuk menyelesaikan suatu masalah tertentu. Secara
umum,
sistem
pakar
merupakan
sistem yang
mengadopsi
pengetahuan manusia ke dalam komputer sehingga komputer dapat digunakan untuk menyelesaikan suatu masalah sebagaimana yang dilakukan oleh seorang pakar. Sistem pakar dibuat pada wilayah pengetahuan tertentu dan untuk suatu
14
keahlian tertentu yang mendekati kemampuan manusia pada salah satu bidang khusus. Sistem pakar mencoba mencari solusi yang memuaskan sebagaimana yang dilakukan seorang pakar dan dapat memberikan penjelasan terhadap langkah yang diambil serta memberikan alasan atas kesimpulan yang diambil. Sampai saat ini telah banyak sistem pakar yang telah dibuat. Misalkan MYCIN digunakan untuk mendiagnosa penyakit, DENDRAL untuk mengidentifikasi perbaikan yang dilakukan pada mesin diesel elektronik kereta api, FOLIO digunakan untuk membantu memberikan keputusan bagi seorang manajer dalam hal persediaan broker dan investasi, serta beberapa aplikasi sistem pakar lainnya. 2.2.1
Ciri-Ciri Sistem Pakar Sistem pakar yang baik harus memenuhi ciri-ciri sebagai berikut : 1) Terbatas pada bidang yang spesifik; 2) Dapat memberikan penalaran untuk data-data yang tidak lengkap atau tidak pasti; 3) Dapat mengemukakan rangkaian alasan yang diberikan dengan cara yang dapat dipahami; 4) Berdasarkan rule atau kaidah tertentu; 5) Dirancang untuk dapat dikembangkan secara bertahap; 6) Outputnya bersifat nasihat atau anjuran; 7) Output tergantung dari dialog dengan user; 8) Knowledge base dan inference engine terpisah; 9) Dapat digunakan dalam berbagai jenis komputer.
15
2.2.2
Keuntungan Sistem Pakar Secara garis besar, ada banyak keuntungan bila menggunakan sistem pakar, diantaranya adalah (Arhami, 2005): 1) Menjadikan pengetahuan dan nasihat lebih mudah didapat; 2) Meningkatkan output dan produktivitas; 3) Menyimpan kemampuan dan keahlian pakar; 4) Meningkatkan penyelesaian masalah yaitu menerusi paduan pakar, penerangan, sistem pakar khas; 5) Meningkatkan reliabilitas; 6) Memberikan respons (jawaban) yang cepat; 7) Merupakan panduan yang intelligence (cerdas); 8) Dapat bekerja dengan informasi yang kurang lengkap dan mengandung ketidakpastian; 9) Intelligence database (basis data cerdas), bahwa sistem pakar dapat digunakan untuk mengakses basis data dengan cara cerdas.
2.2.3
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 system pakar yang benar-benar berkualitas tinggi. Hal ini tentu saja erat kaitannya dengan ketersediaan pakar di bidangnya; 3) Sistem pakar tidak dapat 100% bernilai benar;
16
4) Terkadang sistem tidak dapat membuat keputusan; 5) Pengetahuan tidak selalu didapat dengan mudah karena pendekatan tiap pakar berbeda. 2.2.4
Alasan Pengembangan Sistem Pakar Sistem pakar sendiri dikembangkan lebih lanjut dengan alasan : 1) Dapat menyediakan kepakaran setiap waktu dan berbagai lokasi; 2) Secara otomatis mengerjakan tugas-tugas rutin yang membutuhkan seorang pakar ; 3) Seorang pakar akan pensiun atau pergi; 4) Seorang pakar adalah mahal; 5) Kepakaran dibutuhkan juga pada lingkungan yang tidak bersahabat.
2.2.5
Modul Penyusunan Sistem Pakar Menurut Staugaard (1987) suatu sistem pakar disusun oleh tiga modul utama yaitu : 1) Modul Penerimaan Pengetahuan (Knowledge Acquisition Mode). Sistem berada pada modul ini, pada saat ia menerima pengetahuan dari pakar. Proses mengumpulkan pengetahuan-pengetahuan yang akan digunakan untuk pengembangkan sistem, dilakukan dengan bantuan knowledge
engineer.
Peran
knowledge
engineer
adalah
sebagai
penghubung antara suatu sistem pakar dengan pakarnya. 2) Modul Konsultasi (Consultation Mode) Pada saat sistem berada pada posisi memberikan jawaban atas permasalahan yang diajukan oleh user, sistem pakar berada dalam
17
modul konsultasi. Pada modul ini, user berinteraksi dengan sistem dengan mejawab pertanyaan-pertanyaan yang diajukan oleh sistem. 3) Modul Penjelasan (Explanation Mode) Modul ini menjelaskan proses pengambilan keputusan oleh sistem mengenai bagaimana keputusan dapat diperoleh. 2.2.6
Struktur Sistem Pakar Sistem pakar disusun oleh dua bagian utama, yaitu lingkungan pengembangan (development environment) dan lingkungan konsultasi (consultation
environment)
(Kusumadewi,2003).
Lingkungan
pengembangan sistem pakar digunakan untuk memasukkan pengetahuan pakar ke dalam lingkungan sistem pakar, sedangkan lingkungan konsultasi digunakan
oleh
pengguna
yang
bukan
pakar
guna
memperoleh
pengetahuan pakar. Komponen- komponen sistem pakar dalam kedua bagian tersebut dapat dilihat dalam gambar berikut ini :
18
LINGKUNGAN PENGEM BANG AN
LINGKUNGAN KONSULTASI
Pemakai Fakta tentang Kejadian tertentu Basis Pengetahuan : fakta dan aturan
Antar Muka
Fasilitas Penjelasan Knowledge engineer
Aksi yang Direkomendasi kan
Mesin Inferensi Pengetahuan Ahli
Workplace
Gambar 2.1
Perbaikan Pengetahuan
Arsitektur Sistem Pakar (Kusumadewi, 2003)
Komponen-komponen yang terdapat dalam sistem pakar adalah seperti yang terdapat pada gambar di atas, yaitu User Interface (antarmuka pengguna), basis pengetahuan, akuisisi pengetahuan, mesin inferensi, workplace, fasilitas penjelasan, perbaikan pengetahuan.
19
2.2.6.1 Antarmuka Pengguna (User Interface) User interface merupakan mekanisme yang digunakan oleh pengguna dan sistem pakar untuk berkomunikasi. Antarmuka menerima informasi dari pemakai dan mengubahnya ke dalam bentuk yang dapat diterima oleh sistem. Selain itu antarmuka menerima informasi dari sistem dan menyajikannya ke dalam bentuk yang dapat dimengerti oleh pemakai. Menurut McLeod (1995), pada bagian ini terjadi dialog antara program dan pemakai, yang memungkinkan sistem pakar menerima intruksi dan informasi (input) dari pemakai, juga memberikan informasi (output) kepada pemakai. 2.2.6.2 Basis Pengetahuan Basis pemahaman,
pengetahuan
mengandung
formulasi dan
penyelesaian
pengetahuan masalah.
untuk
Komponen
sistem pakar ini disusun atas dua elemen dasar, yaitu fakta dan aturan. Fakta merupakan informasi tentang obyek dalam area permasalahan tertentu, sedang aturan merupakan informasi tentang cara bagaimana memperoleh fakta baru dari fakta yang telah diketahui. Dalam studi kasus pada sistem yang berbasis pengetahuan terdapat beberapa karakteristik yang dibangun untuk membantu kita dalam membentuk serangkaian prinsip-prinsip arsitekturnya. Prinsip tersebut meliputi :
20
a. Pengetahuan merupakan kunci kekuatan sistem pakar. b. Pengetahuan sering tidak pasti dan tidak lengkap. c. Pengetahuan sering miskin spesifikasi. d. Amatir menjadi ahli secara bertahap. e. Sistem pakar harus fleksibel. f.
Sistem pakar harus transparan.
Sejarah penelitian di bidang kecerdasan buatan telah menunjukkan berulang kali bahwa pengetahuan adalah kunci setiap sistem cerdas (intelligence system). 2.2.6.3 Akuisisi Pengetahaun (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. Pengetahuan diperoleh dari pakar, dilengkapi dengan buku, basis data, laporan penelitian dan pengalaman pemakai. 2.2.6.4 Mesin Inferensi Komponen ini mengandung mekanisme pola pikir dan penalaran yang digunakan oleh pakar dalam menyelasikan suatu masalah.
Mesin
inferensi
adalah
program
komputer
yang
memberikan metodologi untuk penalaran tentang informasi yang ada dalam basis pengetahuan dan dalam workplace dan untuk memformulasikan kesimpulan. (Turban, 1995)
21
2.2.6.5 Workplace Workplace merupakan area dari sekumpulan memori kerja (working memory). Workplace digunakan untuk merekam hasilhasil antara dan kesimpulan yang dicapai. Ada 3 tipe keputusan yang direkam, yaitu: a. Rencana : Bagaimana menghadapi masalah. b. Agenda : Aksi-aksi yang potensial. c. Solusi : calon aksi yang akan dibangkitkan. 2.2.6.6 Fasilitas Penjelasan Fasilitas penjelasan adalah komponen tambahan yang akan meningkatkan
kemampuan
menggambarkan penjelasan
penalaran
dapat
sistem sistem
menjelaskan
pakar. kepada
Komponen pemakai.
ini
Fasilitas
perilaku sistem pakar dengan
menjawab pertanyan-pertanyaan sebagai berikut (Turban, 1995): a. Mengapa pertanyaan tertentu ditanyakan oleh sistem pakar ? b. Bagaimana kesimpulan tertentu diperoleh ? c. Mengapa alternatif tertentu ditolak ? d. Apa rencana untuk memperoleh penyelesaian ? 2.2.6.7 Perbaikan Pengetahuan Pakar
memiliki
kemampuan
untuk
menganalisis
dan
meningkatkan kinerjanya serta kemampuan tersebut adalah penting dalam pembelajaran
terkomputerisasi,
sehingga program akan
mampu menganalisis penyebab kesuksesan dan kegagalan yang akan dialaminya.
22
2.2.7
Klasifikasi Sistem Pakar Pada penerapan ada beberapa bidang aplikasi yang sesuai dengan
teknologi ini. Bidang-bidang tersebut antara lain : a. Kontrol Sistem pakar ini digunakan untuk mengontrol kegiatan yang membutuhkan
presisi
waktu
yang
tinggi.
Misalnya
pengontrolan pada industri teknologi tinggi. b. Prediksi Keunggulan
dari
seorang
pakar
adalah
kemampuannya
memprediksi kedepan. Contoh yang mudah ditemui, bagaimana seorang
pakar
berdasarkan
meteorologi
data-data
memprediksi
sebelumnya.
cuaca
Kemampuan
besok ini juga
dipunyai sistem pakar. Penggunaan sistem pakar prediksi misalnya untuk peramalan cuaca, penentuan
masa tanam dan
sebagainya. c. Interpretasi Sistem pakar ini digunakan untuk menganalisis data-data yang tidak lengkap, tidak teratur dan data kontradiktif. Misalnya untuk interpretasi citra. d. Pengajaran Sistem pakar ini digunakan untuk mengajar, mulai dari SD sampai mahasiswa perguruan tinggi. Kelebihan dari sistem pakar
yang
digunakan
untuk
mengajar
adalah
membuat
23
diagnosa
apa
penyebab
kekurangan dari seorang siswa,
kemudian memberikan cara untuk memperbaikinya. e. Perencanaan Penggunaan sistem pakar untuk perencanaan sangat luas, mulai dari
perencanaan
mesin-mesin
sampai
manajemen
bisnis.
Penggunaan sistem pakar ini akan menghemat biaya, waktu dan material, sebab pembuatan model sudah tidak diperlukan lagi.
Contoh
penggunaan
antara
lain
sistem
konfigurasi
komputer, tata letak sirkuit dan sebagainnya. f.
Diagnosis Sistem
pakar
diagnosis
biasanya
digunakan
untuk
merekomendasikan obat untuk orang sakit, kerusakan mesin, kerusakan rangkaian elektronik dan sebagainya. Prinsipnya adalah menemukan masalah apa masalah atau kerusakan yang terjadi. Sistem pakar diagnosis adalah jenis sistem pakar yang paling popular saat ini. Biasanya
sistem
pakar
diagnosis.
Menggunakan
pohon
keputusan (decision tree) sebagai representasi pengetahuanya. Kebanyakan
sistem
pakar
diagnosis
menggunakan
shell,
sehingga sangat mudah untuk melakukan perubahan pada basis pengetahuannya. Hal lain dari dari sistem pakar diagnosis ini adalah
basis
pengetahuannya
bertambah
besar
secara
eksponensial dengan semakin kompleksnya permasalahan.
24
2.2.8
Representasi Pengetahuan Representasi
pengetahuan
adalah
suatu
teknik
untuk
merepresentasikan basis pengetahuan yang diperoleh ke dalam suatu skema/ diagram tertentu sehingga dapat diketahui relasi/ keterhubungan antara suatu data dengan data yang lain. Tekink ini membantu knowledge engineer dalam memahami struktur pengetahuan yang akan dibuat sistem pakarnya. Bahasa representasi harus dapat membuat seorang pemrogram mampu
mengekspresikan
pengetahuan
yang
diperlukan
untuk
mendapatkan solusi masalah, dapat diterjemahkan ke dalam bahasa pemrograman dan dapat disimpan. Harus dirancang agar fakta-fakta dan pengetahuan lain yan terkandung di dalamnya dapat digunakan untuk penalaran. Pengetahuan dapat direpresentasikan dalam bentuk yang sederhana atau kompleks, tergantung dari masalahnya. Beberapa model representasi pengetahuan yang penting adalah : a. Logika (logic) Logika merupakan suatu pengkajian ilmiah tentang serangkaian penalaran, sistem kaidah dan prosedur yang membantu proses penalaran. Logika mrupakan bentuk representasi pengetahuan yang paling tua, yang menjadi dasar dari teknik representasi high level.
25
Dalam
melakukan
penalaran,
komputer
menggunakan proses penalaran deduktif
harus
dapat
dan induktif
ke
dalam Logika Simbolik atau Logika Matematik. Metode ini disebut Logika komputasional. Bentuk logika komputasional ada 2 macam, yaitu Logika Proporsional atau Kalkulus dan Logika Predikat. 1. Logika Proporsional Proposisi merupakan suatu statmen atau pernyataan yang menyatakan benar (true) atau salah (false). Operator logika dan simbolnya ditunjukan oleh Tabel 2.1 Table 2.1 Operator Logika dan Simbol Operator
Simbol
AND
∩,V,&
OR
U,V,+
NOT →
IMPLIES
2. Logika Predikat Logika predikat adalah suatu logika yang lebih canggih yang
seluruhnya
menggunakan
konsep
dan
kaidah
proposional yang sama, Disebut juga kalkulus predikat, yang
memberi
tambahan
kemampuan
untuk
mempresentasikan pengetahuan dengan sangat cermat dan rinci.
26
Kalkulus predikat memungkinkan kita untuk memecahkan statetmen ke dalam bagian komponen, yang disebut objek, karakteristik objek, atau beberapa keterangan objek. Suatu proposisi atau premis dibagi menjadi dua bagian, yaitu argumen
(objek)
dan predikat (keterangan).
Argumen
adalah individu atau objek yang membuat keterangan. Predikat adalah keterangan yang membuat argumen dan predikat. Dalam suatu kalimat, predikat dapat berupa kata kerja atau bagian kata kerja. Misalnya proposisi: Mobil berada dalam garasi. Dinyatakan menjadi: Di dalam (mobil,garasi)
2.3
Di dalam
= produk (keterangan)
Mobil
= Argumen (objek)
Garasi
= Argumen (objek)
Case Based Reasoning (CBR) Case-based reasoning (CBR) adalah sebuah paradigma problem solving
yang memanfaatkan pengetahuan spesifik yang disimpan sebelumnya dalam bentuk kasus (case) yaitu situasi problem konkrit. Selain itu Case-Based Reasoning (CBR) adalah metode untuk menyelesaikan masalah dengan mengingat kejadian-kejadian yang sama/sejenis (similar) yang pernah terjadi di masa lalu kemudian menggunakan pengetahuan/informasi tersebut untuk menyelesaikan masalah yang baru, atau dengan
27
kata lain menyelesaikan masalah dengan mengadaptasi solusi-solusi yang pernah digunakan di masa lalu. CBR mencari solusi dari suatu kasus dalam domain masalah
tertentu dengan mencari kasus sebelumnya (past case) yang mirip dengan kasus yang ingin diselesaikan (current case), kemudian menggunakan solusi dari past case tersebut sebagai solusi dari current case. CBR juga bersifat incremental atau dapat berkembang karena dapat memperoleh pengetahuan baru dari kasus – kasus yang berhasil diselesaikan. CBR memiliki cara kerja yang berbeda dengan metode AI lainnya yang hanya mengandalkan pengetahuan umum dari domain masalah tertentu atau melakukan asosiasi dari relasi umum antara deskriptor masalah dan kesimpulannya. Menurut Aamodt dan Plaza (1994) Case-Based Reasoning adalah suatu pendekatan
untuk
menyelesaikan
suatu
permasalahan
(problem
solving)
berdasarkan solusi dari permasalahan sebelumnya. Case-based Reasoning ini merupakan
suatu
paradigma
pemecahan
masalah
yang
banyak
mendapat
pengakuan yang pada dasarnya berbeda dari pendekatan utama AI lainnya. Suatu masalah baru dipecahkan dengan menemukan kasus yang serupa di masa lampau, dan menggunakannya kembali pada situasi masalah yang baru. Perbedaan lain dari CBR yang tidak kalah penting adalah CBR juga merupakan suatu pendekatan ke arah incremental yaitu pembelajaran yang terus-menerus. CBR pada dasarnya adalah metode penyelesaian masalah baru dengan mengingat kondisi yang pernah dialami sebelumnya dan dengan menggunakan informasi dan pengetahuan yang berhubungan dengan kondisi itu. CBR memiliki paradigma masalah yang mirip memiliki solusi yang mirip juga (similar problems
28
have similar solutions). CBR dapat diilustrasikan dengan situasi penyelesaian masalah berikut : 1) Dokter, ketika sedang mendiagnosa salah seorang pasiennya, seorang dokter teringat akan pasien lain yang ia rawat beberapa waktu sebelumnya. Dokter ini teringat akan pasien yang lain karena kemiripan gejala penyakit pasiennya (bukan oleh warna rambut pasiennya). Kemudian dokter itu menggunakan data hasil diagnosa dan perawatan pasien sebelumnya untuk menentukan diagnosa dan perawatan pasien didepannya. 2) Drilling Engineer, ketika dia pernah mengalami dua situasi ledakan (blow out) dramatis sebelumnya, dengan cepat akan mengingat salah satu situasi ledakan tersebut (atau keduanya) ketika kombinasi pengukuran yang dihadapi sekarang cocok dengan kombinasi pengukuran sebelum terjadi ledakan di masa lalu, sehingga ia dapat menghindari kesalahan yang sama. 3) Konsultan finansial, ketika menghadapi kasus pengajuan kredit suatu perusahaan yang sulit diselesaikan, keputusan dibuat dengan mengingat kasus kredit macet yang melibatkan perusahaan dengan alasan pengajuan kredit yang sama. Berdasarkan pengalaman tersebut, pengajuan kredit perusahaan yang sekarang, ditolak. Secara umum, siklus proses pada CBR ditujukan pada gambar 2.2 adalah sebagai berikut : 1) Retrieve the most similar case(s) : ambil kasus yang mirip 2) Reuse the case(s) to attempt to solve the problem : gunakan kasus tersebut untuk menyelesaikan kasus yang ada
29
3) Revise the proposed solution if necessary : lakukan revisi pada solusi jika perlu 4) Retain the new solution as a part of a new case : simpan kembali solusi sebagai bagian dari kasus yang baru
Gambar 2.2 Siklus CBR Pada gambar diatas terlihat dengan jelas alur dari proses metodologi CBR dalam menyelesaikan suatu permasalahan. Pada saat terjadi permasalahan baru, pertama-tama sistem akan melakukan proses Retrieve. Proses Retrieve akan melakukan dua langkah pemrosesan, yaitu pengenalan masalah dan pencarian persamaan masalah pada database. Setelah proses Retrieve selesai dilakukan, selanjutnya sistem akan melakukan proses Reuse. Di dalam proses Reuse, sistem akan menggunakan informasi permasalahan sebelumnya yang memiliki kesamaan untuk menyelesaikan permasalahan yang baru. Pada proses Reuse akan menyalin, menyeleksi, dan melengkapi informasi yang akan digunakan. Selanjutnya pada
30
proses Revise, informasi tersebut akan dikalkulasi, dievaluasi, dan diperbaiki kembali untuk mengatasi kesalahan-kesalahan yang terjadi pada permasalahan baru. Pada proses terakhir, sistem akan melakukan proses Retain. Proses Retain akan mengindeks, mengintegrasi, dan mengekstrak solusi yang baru. Selanjutnya, solusi baru itu akan disimpan ke dalam knowledge-base untuk menyelesaikan permasalahan yang akan datang. Tentunya, permasalahan yang akan diselesaikan adalah permasalahan yang memiliki kesamaan dengannya. Berikut ini merupakan flow chart untuk metode yang digunakan, seperti terlihat pada gambar 2.3.
Gambar 2.3. Flow Chart CBR
31
Dalam Case-Based Reasoning ada empat tahapan yang meliputi : a) Retrieve Mendapatkan/memperoleh
kembali
kasus
yang
paling
menyerupai/relevan (similar) dengan kasus yang baru. Tahap retrieval
ini
dimulai
dengan
menggambarkan/menguraikan
sebagian masalah, dan diakhiri jika ditemukannya kecocokan terhadap masalah sebelumnya yang tingkat kecocokannya paling tinggi. Bagian ini mengacu pada segi identifikasi, kecocokan awal, pencarian dan pemilihan serta eksekusi. b) Reuse Memodelkan/menggunakan
kembali
pengetahuan
dan
informasi kasus lama berdasarkan bobot kemiripan yang paling relevan ke dalam kasus yang baru, sehingga menghasilkan usulan solusi dimana mungkin diperlukan suatu adaptasi dengan masalah yang baru tersebut. c) Revise Meninjau
kembali
solusi
yang
diusulkan
kemudian
mengetesnya pada kasus nyata (simulasi) dan jika diperlukan memperbaiki solusi tersebut agar cocok dengan kasus yang baru. d) Retain
Mengintegrasikan/menyimpan
kasus
baru
yang
telah
berhasil mendapatkan solusi agar dapat digunakan oleh kasuskasus selanjutnya yang mirip dengan kasus tersebut. Tetapi Jika solusi baru
tersebut gagal,
maka menjelaskan kegagalannya,
memperbaiki solusi yang digunakan, dan mengujinya lagi.
32
2.4
Perangkat Lunak Pendukung Software atau perangkat lunak yang mendukung dalam pembuatan website
ini yaitu : 2.4.1
PHP (hypertext preprocessor) PHP singkatan dari PHP hypertext preprocessor yang digunakan
sebagai bahasa
script
server-side dalam pengembangan web yang
disisipkan pada dokumen HTML . PHP adalah bahasa server-side scripting yang menyatu dengan HTML untuk membuat halaman web yang dinamis. Maksud dari server-side scripting adalah sintaks dan perintahperintah yang diberikan akan sepenuhnya dijadikan di server tetapi disertakan
pada
dokumen HTML.
Pembuatan web
ini merupakan
kombinasi antara PHP sendiri sebagai bahasa pemrograman dan HTML sebagai pembangun halaman web. Ketika seorang pengguna internet akan membuka situs yang menggunakan server-side scripting PHP, maka terlebih dahulu server yang bersangkutan akan memproses semua perintah PHP di server lalu mengirimkan hasilnya dalam format HTML ke web browser pengguna internet . Tetapi tidak seperti ASP yang cukup juga dikenal sebagai serverside scripting, PHP merupakan software yang Open Source dan mampu lintas platform, yaitu yang dapat digunakan dengan sistem operasi dan web server apapun. PHP mampu berjalan di Windows dan beberapa versi linux. PHP juga dapat dibangun sebagai modul pada web server Apache dan sebagai birary yang dapat berjalan sebagai CGI (Sunarfrihantono, 2003).
33
PHP merupakan script untuk pemrograman script web server-side, script yang membuat dokumen HTML, dokumen HTML yang dihasilkan dari
suatu
aplikasi
bukan
dokumen
HTML
yang
dibuat
dengan
menggunakan editor teks atau editor HTML. Dengan menggunakan PHP suatu situs web menjadi lebih mudah. Proses update data dapat dilakukan denagn menggunakan aplikasi yang dibuat dengan menggunakan script PHP. PHP/F1 merupakan nama awal dari PHP. PHP-Personal Home Page, F1 adalah form interface. Dibuat oleh Rasmus Lerdoff (Bertha sidik, 2001). Adapun kelebihan-kelebihan dari PHP yaitu: 1) PHP mudah dibuat dan kecepatan akses tinggi 2) PHP dapat berjalan dalam web server yang berbeda dan dalam sistem operasi yang berbeda pula. 3) PHP diterbitkan secara gratis 4) PHP termasuk server-side proggamming 5) PHP digunakan pada semua sistem operasi Linux, Unix, Microsoft Windows, Macintosh. 6) PHP tidak terbatas hasil keluaran HTML (Hypertext Markup Languages). Sistem database yang didukung PHP adalah: 1) Oracle 2) Sybase 3) mSQL 4) MySQL
34
5) Solid 6) Generic ODBC 7) Postgres SQL. 2.4.2
Pengenalan MySQL MySQL adalah multiuser database yang menggunakan bahasa
Structured Query Language (SQL). MySQL dalam operasi client-server melibatkan server daemon MySQL di sisi server dan berbagai macam program serta library yang berjalan di sisi client. SQL adalah bahasa standar yang digunakan untuk mengakses database server. Bahasa ini pada awalnya dikembangkan oleh IBM, namun telah
diadopsi
menggunakan
dan SQL,
digunakan proses
sebagai
akses
standar
database
industri.
menjadi
Dengan
user-friendly
dibandingkan dengan menggunakan dBase atau Clipper yang masih menggunakan perintah-perintah pemrograman (Sunarfrihantono, 2003). Dengan MySQL maka pengolahan data akan lebih mudah dan efisien karena MySQL merupakan sistem manajemen basis data yang relasional sehingga memungkinkan untuk menggabungkan beberapa tabeltabel yang terpisah, untuk mendapatkan informasi yang lengkap, cepat dan akurat. MySQL merupakan database yang dikembangkan dari bahasa SQL (Structured Query Language). SQL merupakan bahasa yang terstruktur yang digunakan untuk interaksi antara script program dengan database server dalam hal pengolahan data. MySQ didesain agar dapat berjalan mencapai 100 akses secar berkesinambungan. MySQL adalah server
35
multithreaded
sehingga
memungkinkan
daemon
untuk
menanggung
permintaan layanan secara simultan (Haris Saputro, 2003). Ada beberapa keuntungan menggunakan MySQL adalah sebagai berikut: 1) MySQL merupakan database yang memiliki kecepatan yang tinggi dalam melakukan pemrosesan data, dapat diandalkan, dan mudah digunakan serta dipelajari. 2) MySQL mendukung banyak bahasa pemrograman seperti C, C++, Perl, Java dan PHP. 3) Koneksi, kecepatan, dan keamanan membuat MySQL sangat cocok diterapkan untuk pengaksesan database melalui internet. 4) MySQL dapat melakukan koneksi dengan client menggunakan protocol TCP/IP, Unix socket. 5) Multiuser, yaitu dalam suatu database server pada MySQL dapat diakses oleh beberapa user dalam waktu yang sama tanpa mengalami konflik. 2.5
Use Case Diagram Use
case
adalah deskripsi fungsi dari sebuah sistem dari
perspektif/sudut pandang para pengguna. Use case mendefinisikan “apa” yang dilakukan oleh sistem dan elemen-elemennya, bukan “bagaimana” sistem dan elemen-elemennya saling berinteraksi. Use case bekerja dengan menggunakan “scenario”, yaitu deskripsi urutan-urutan langkah yang menerangkan apa yang dilakukan pengguna terhadap sistem.
36
Komponen simbol dasar yang dipunyai oleh
use-case diagram
adalah aktor, use-case, dan association seperti terlihat pada Tabel 2.2. Tabel 2.2 Simbol pada use case diagram Simbol
2.6
Nama
Keterangan
Actor
Actor adalah pengguna sistem. Actor tidak terbatas hanya manusia saja, jika sebuah sistem berkomunikasi dengan aplikasi lain dan membutuhkan input atau memberikan output, maka aplikasi tersebut juga bisa dianggap sebagai actor.
Use Case
Use case digambarkan sebagai lingkaran elips dengan nama use case dituliskan didalam elips tersebut.
Association
Asosiasi digunakan untuk menghubungkan actor dengan use case. Asosiasi digambarkan dengan sebuah garis yang menghubungkan antara Actor dengan Use Case.
Class Diagram Class Diagram
adalah sebuah spesifikasi yang jika
diinstansiasi
akan menghasilkan sebuah obyek dan merupakan inti dari pengembangan dan desain berorientasi obyek. Class menggambarkan keadaan (atribut/ properti) suatu sekaligus menawarkan layanan untuk
sistem,
memanipulasi keadaan tersebut
(metoda/ fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan object beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Sebuah Class memiliki tiga area pokok :
37
1. Nama, merupakan nama dari sebuah kelas 2. Atribut,
merupakan
peroperti dari sebuah kelas.
Atribut
melambangkan batas nilai yang mungkin ada pada obyek dari class 3. Operasi, adalah sesuatu yang bisa dilakukan oleh sebuah class atau yang dapat dilakukan oleh class lain terhadap sebuah class. Berikut adalah sombol-simbol yang ada pada class diagram seperti terlihat pada Tabel 2.3. Tabel 2.3 Simbol pada class diagram Simbol
Nama
Keterangan
Class
Sebuah class digambarkan sebagai kotak yang terbagi atas 3 bagian. atas adalah bagian nama dari class. tengah mendefinisikan property / class. Bagian akhir mendefinisikan dari sebuah class.
sebuah Bagian Bagian atribut method
Association
Sebuah asosiasi merupakan sebuah relationship paling umum antara 2 class, dan dilambangkan oleh sebuah garis yang menghubungkan antara 2 class. Garis ini bisa melambangkan tipe-tipe relationship dan juga dapat menampilkan hukum-hukum multiplisitas pada sebuah relationship:
Composition
Jika sebuah class tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang lain, maka class tersebut memiliki relasi Composition terhadap class tempat dia bergantung tersebut.
Dependency
Umumnya penggunaan dependency digunakan untuk menunjukkan operasi pada suatu class yang menggunakan class yang lain.
38
2.7
Aggregation
Aggregation mengindikasikan keseluruhan bagian relationship dan biasanya disebut sebagai relasi “mempunyai sebuah” atau “bagian dari”.
Generalization
Sebuah relasi generalization sepadan dengan sebuah relasi inheritance pada konsep berorientasi obyek.
Statechart Diagram Diagram statechart memungkinkan untuk memodelkan bermacammacam state yang mungkin dialami oleh objek tunggal. Jika pada diagram kelas menunjukkan gambaran statis kelas-kelas dan relasinya, diagram statechart digunakan untuk menggambarkan perilaku dinamik sebuah objek tunggal. Berikut adalah simbol-simbol yang ada pada diagram statechart seperti terlihat pada Tabel 2.4. Tabel 2.4 Simbol statechart diagram Simbol
Nama
Keterangan
Start (Initial State) Start atau initial state adalah state atau keadaan awal pada saat sistem mulai hidup
End (Final State)
End atau final state adalah state keadaan akhir dari daur hidup suatu sistem.
Event
Event adalah kegiatan menyebabkan berubahnya mesin.
State
State atau status adalah keadaan
yang status
39
sistem pada waktu tertentu. State dapat berubah jika ada event tertentu yang memicu perubahan tersebut.
State
2.8
Activity Diagram Activity diagram digunakan untuk mendokumentasikan alur kerja pada sebuah sistem. Pada dasarnya, activity diagram merupakan variasi dari statechart diagram. Activity diagram mempunyai peran seperti halnya flowchart. Berikut ini adalah simbol
activity diagram seperti terlihat pada
Tabel 2.5. Tabel 2.5 Simbol pada activity diagram Simbol
Nama
Deskripsi
Swimline
Memisahkan pelaku yang bertanggung jawab terhadap aktivitas yang terjadi.
Titik Awal
Status awal aktivitas sistem, sebuah diagram aktivitas memiliki status awal
Titik Akhir
Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir.
State
State atau status adalah keadaan sistem pada waktu tertentu. State dapat berubah jika ada event tertentu yang memicu perubahan tersebut.
Activity
Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja
40
2.9
Percabangan
Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu yang terjadi
Fork
Digunakan untuk menunjukkan kegiatan yang dilakukan secara parallel atau untuk menggabungkan dua kegiatan parallel menjadi satu.
Entity Relationship Diagram (ERD) ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data
berdasarkan objek-objek dasar data yang
mempunyai hubungan antar relasi. Ada sejumlah konvensi mengenai Notasi ERD. Notasi klasik sering digunakan untuk model konseptual. Berbagai notasi lain juga digunakan untuk menggambarkan secara logis dan fisik dari suatu basis data, salah satunya adalah IDEF1X.
Gambar 2.4 Simbol atau notasi ERD
ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol. Pada dasarnya ada tiga simbol yang digunakan, yaitu :
41
a) Entitas, Adalah segala sesuatu yang dapat digambarkan oleh data. Entitas juga dapat diartikan sebagai individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999). Ada dua macam entitas yaitu entitas kuat dan entitas lemah. Entitas
kuat
merupakan
entitas
yang
tidak
memiliki
ketergantungan dengan entitas lainnya. Contohnya entitas anggota. Sedangkan entitas lemah merupakan entitas yang kemunculannya tergantung pada keberadaaan entitas lain dalam suatu relasi. b) Atribut,
Atribut merupakan pendeskripsian karakteristik
dari entitas. Atribut digambarkan dalam bentuk lingkaran atau elips. Atribut yang menjadi kunci entitas atau key diberi garis bawah. c) Relasi
atau
hubungan
Hubungan,
diantara
Relasi
menunjukkan
adanya
sejumlah entitas yang berasal dari
himpunan entitas yang berbeda.
Penghubung
antara
himpunan
relasi
dengan
himpunan
entitas dan himpunan entitas dengan atribut dinyatakan dalam bentuk garis. Derajat relasi atau kardinalitas menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Macam-macam kardinalitas adalah:
42
1) Satu ke satu (one to one), Setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B, begitu pula sebaliknya. 2) Satu ke banyak (one to many), Setiap anggota entitas A dapat berhubungan dengan lebih dari satu anggota entitas B tetapi tidak sebaliknya. 3) Banyak ke banyak (many to many), Setiap entitas A dapat berhubungan dengan banyak entitas himpunan entitas B dan demikian pula sebaliknya.
2.4.3
Kamus Data Kamus data berisi daftar atribut yang diapit kurung kurawal (‘{‘
dan ‘}’), atribut yang berfungsi sebagai key juga dibedakan dengan yang bukan key dengan menggaris bawahi atribut tersebut. (Fathansyah, 2007 ). Kamus data (data dictionary) adalah suatu penjelasan tertulis mengenai data yang berada di dalam database. Kamus data pertama berbasis dokumen - kamus data itu tersimpan
dalam bentuk hard copy
dengan mencatat semua penjelasan data dalam bentuk tercetak. Walau sejumlah kamus berbasis dokumen masih ada, praktek yang
umum
sekarang adalah menggunakan kamus data berbasis komputer. Pada kamus data berbasis komputer penjelasan data dimasukkan ke dalam komputer dengan menggunakan data description language (DDL) dari sistem manajemen database, sistem kamus, atau peralatan CASE.
43
Dengan
menggunakan
kamus
data
analis
system
dapat
mendefinisikan data yang mengalir di system dengan lengkap. Kamus data di buat pada tahap analisis system dan digunakan baik pada tahap analisis maupun pada tahap perancangan system. Pada tahap analisis, kamus data digunakan sebagai alat komunikasi antara analisis system dengan pemakai system tentang data yang mengalir di system, yaitu tentang data yang masuk ke system dan tentang informasi yang dibutuhkan oleh pemakai system. Pada tahap perancangan sistem, kamus data digunakan untuk merancang input, merancang laporan-laporan dan database. Kamus data dibuat berdasarkan arus data yang ada di DFD. 2.10
Toyota Corolla Altis 2.10.1 Sejarah Toyota Corolla Altis Corolla diambil dari bahasa latin yang artinya mahkota kecil. Menandakan, Corolla adalah varian sedan terendah dari sedan buatan Toyota lainnya seperti Crown dan Corona yang kini diganti jadi Camry. Corolla telah diproduksi selama 40 tahun dan selama itu, sudah 35 juta unit terjual diseluruh dunia. Diperkenalkan pada tahun 1966, kode sasis dari Corolla adalah “E”. Corolla selain menjadi basis bagi dirinya sendiri, juga menjadi basis dari berbagai macam mobil produksi Toyota lainnya, bahkan pabrikan
lain
seperti
Daihatsu,
Pontiac
menggunakannya sebagai basis model mereka.
dan
Holden
juga
44
Toyota Corolla Altis adalah bahasan Mobil Mewah Terbaik Indonesia berikutnya. Seperti juga Toyota Kijang, Corolla juga sudah menjadi mobil legenda di Indonesia, khususnya untuk pasar mobil sedan. Kendaraan terbaik dang sangat responsif, sangat pas sebagai lambang kemapanan keluarga ideal di Indonesia.
Performa mantap, perpindahan gigi halus dan sistem rem juga nyaman membuatnya menjadi pilihan ideal berkendara. Toyota Corolla mempunyai penggemar fanatik
sejak
dulu sampai sekarang dengan
inovasi-inovasi yang ada. Corolla sangat pas untuk usia mapan dan keluarganya. Dengan tampilan barunya, New Corolla Altis tampil lebih sporty sekaligus anggun. Toyota Corolla Altis menampilkan kesan elegan bagi penggunanya.
Mesin Toyota Corolla Altis bertenaga dengan pengelolaan efisien serta bahan bakar irit. Bisa untuk segala kondisi, untuk suasana santai, maupun untuk kecepatan, bahkan bisa juga untuk mobil balap. Hemat bensin adalah fitur yang tidak boleh diabaikan, apalagi dengan gejolak harga bahan bakar dewasa ini. Terlebih trend sekarang juga diperkenalkan varian dengan mesin diesel.
2.11
Object-Oriented Software Engineering (OOSE) Jacobson membawa selama beberapa tahun untuk pengalaman pengembangan
perangkat
lunak
untuk
presentasi dari model baru
berorientasi objek pengembangan perangkat lunak. Sebuah model industri pengembangan perangkat lunak yang disebut Objectory, dikembangkan
45
oleh LM Ericson, telah digunakan pada beberapa proyek dari berbagai ukuran (dari 3 hingga 50 orang-tahun). Berdasarkan pengalamannya menggunakan metode ini pada sekitar 15 proyek, Jacobson menyajikan versi sederhana dari metode ini dan konsep fundamental, yang dia sebut berorientasi objek rekayasa perangkat lunak (OOSE). Object-Oriented Software Engineering (OOSE) adalah teknik desain perangkat lunak yang digunakan untuk membuat desain perangkat lunak dalam pemrograman berorientasi objek. OOSE dikembangkan oleh Ivar Jacobson pada tahun 1992. OOSE adalah metodologi berorientasi objek pertama untuk membuat desain perangkat lunak yang menggunakan kasus digunakan dalam desain perangkat lunak. OOSE adalah salah satu prekursor dari Unified Modeling Language (UML), seperti Booch dan OMT. Ini termasuk persyaratan, analisis, desain, implementasi dan model pengujian. Diagram interaksi mirip dengan diagram urutan UML. Diagram transisi seperti statechart diagram UML. OOSE merupakan paradigma dalam membangun perangkat lunak dengan memanfaatkan objek sebagai entitas yang ada di dalam lingkup permasalahan. OOSE terdiri atas 4 alur kerja utama yaitu : analisis berorientasi objek, perancangan berorientasi objek, implementasi yang di dalamnya terdapat teknik pemrograman berorientasi objek, dan pengujian perangkat lunak. Tujuan Jacobson adalah untuk menyajikan gambar yang koheren tentang bagaimana menggunakan objek-orientasi dalam pengembangan sistem sehingga membuatnya dapat diakses untuk kedua praktisi di
46
lapangan dan untuk siswa yang tidak memiliki pengetahuan sebelumnya pengembangan sistem. Jacobson menganggap keuntungan dari metode ini bahwa sistem itu memiliki berbagai jenis objek-objek kontrol, objek entitas, dan objek antarmuka. Pengembang menggambarkan semua orang yang berinteraksi dengan pelaku sistem dan menggambarkan skenario (kasus penggunaan) interaksi para aktor dengan sistem dan hasil yang diharapkan. Metodologi ini memiliki keuntungan
yang
berbeda
mengarah
ke
model yang
menggambarkan kebutuhan pengguna. OOSE adalah pendekatan yang sangat berbeda untuk orientasi objek. Ini menekankan fungsi dan proses sebagai titik awal dan merupakan model fungsional yang menggabungkan benda. Pendekatan ini berbeda dari metodologi lain, yang dimulai dengan obyek dan kemudian menurunkan proses. OOSE memperkenalkan tiga jenis benda-benda antarmuka, objek kontrol, dan objek-masing entitas memerlukan jenis mereka sendiri atribut dan asosiasi. Dengan demikian, masing-masing
membutuhkan
notasi terpisah
dan
diagram.
Struktur
kontrol dan dokumentasi yang diperlukan untuk mengontrol proses pembangunan tidak sepenuhnya ditampilkan.
47
Gambar 2.5 Gambar Struktur Object-Oriented Software Engineering