6
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. Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalahan tertentu dengan meniru kerja dari para ahli. Terdapat beberapa definisi tentang sistem pakar, antara lain: a.
Menurut Durkin, sistem pakar adalah suatu program komputer yang dirancang untuk memodelkan kemampuan penyelesaian masalah yang dilakukan oleh seorang pakar.
b. 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. c.
Menurut Giarratano dan Riley, sitem pakar adalah suatu sistem komputer yang bisa menyamai atau meniru kemampuan seorang pakar.
d. Sistem pakar ini akan diimplementasikan pada komputer yang mengalami throubleshooting untuk menyelesaikan masalah.
2.1.1 Alasan pengembangan sistem pakar Sistem pakar sendiri dikembangkan lebih lanjut dengan alasan sebagai berikut: 1. Dapat menyediakan kepakaran setiap waktu dan di berbagai lokasi. 2. Secara otomatis mengerjakan tugas-tugas rutin yang membutuhkan seorang
7
pakar. 3. Seorang pakar akan pensiun atau pergi. 4. Seorang pakar adalah mahal. 5. Kepakaran dibutuhkan juga pada lingkungan yang tidak bersahabat.
2.1.2
Keuntungan dan kelemahan sistem pakar Secara garis besar, banyak keuntungan yang dapat diambil dengan adanya
sistem pakar, antara lain : 1. Memungkinkan orang awam dapat mengerjakan pekerjaan para ahli 2. Dapat melakukan proses secara berulang secara otomatis 3. Menyimpan pengetahuan dan keahlian para pakar 4. Meningkatkan output dan produktivitas dan kualitas 5. Mampu mengambil dan kelestarian keahlian para pakar (terutama yang termasuk keahlian langka) 6. Mampu beroperasi dalam lingkungan yang berbahaya 7. Memiliki kemampuan untuk mengakses pegetahuan dan rehabilitas 8. Meningkatkan kapabilitas sistem komputer 9. Memiliki kemampuan untuk bekerja dengan informasi yangn tidak lengkap dan mengandung ketidakpastian 10. Sebagai media pelengkap dalam pelatihan 11. Meningkatkan kapabillitas dalam penyelesaian masalah 12. Menghemat waktu dalam pengambilan keputusan.
Selain terdapat beberapa keuntungan, sistem pakar juga memiliki beberapa kelemahan, antara lain:
8
1. Biaya yang diperlukan untuk membuat dan memelihara sistem pakar sangat mahal 2. Sulit dikembangkan, hal ini tentu saja erat kaitannya dengan ketersediaan pakar di bidangnya 3. Sistem pakar tidak 100% bernilai benar.
2.1.3 Komponen sistem pakar
Komponen-komponen yang ada pada sistem pakar adalah : a.
Subsistem penambahan pengetahuan. Bagian ini digunakan untuk memasukkan pengetahuan, mengkonstruksi atau memperluas pengetahuan dalam basis pengetahuan. Pengetahuan itu bisa berasal dari: ahli, buku, basisdata, penelitian, dan gambar.
b.
Basis pengetahuan. Berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami, memformulasikan dan menyelesaikan masalah.
c.
Motor inferensi (inferensi engine). Program yang berisi metodologi yang digunakan untuk melakukan penalaran terhadap informasiinformasi dalam basis pengetahuan dan blackboard, serta digunakan untuk memformulasikan konklusi. Terdapat 3 elemen utama dalam motor inferensi, yaitu: 1. Interpreter yaitu mengeksekusi item-item agenda yang terpilih dengan menggunakan aturan-aturan dalam basis pengetahuan yang sesuai 2. Scheduler, akan mengontrol agenda 3. Consistency enforcer, akan berusaha memelihara kekonsistenan dalam merepresentasikan solusi yang bersifat darurat.
d.
Blackboard, merupakan area dalam memori yang digunakan untuk merekam kejadian yang sedang berlangsung termasuk keputusan sesmentara. Ada 3 tipe keputusan yang dapat direkam, yaitu:
9
Rencana, bagaimana menghadapi masalah. Agenda, aksi-aksi yang potensial yang sedang menunggu untuk dieksekusi, dan Solusi calon aksi yang akan dibangkitkan. e.
Antarmuka, digunakan untuk media komunikasi antara user dan program.
f.
Sistem penyaring pengetahuan. Sistem ini digunakan untuk mengevaluasi kinerja sistem pakar itu sendiri untuk melihat apakah pengetahuanpengetahuan yangn ada masih cocok untuk digunakan di masa mendatang.
2.1.4
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[3]: a. Penalaran berbasis aturan (Rule-Based Reasoning) Penalaran berbasis aturan, pengetahuan direpresentasikan dengan menggunakan aturan berbentuk IF-THEN. Bentuk ini digunakan apabila memiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu, dan si pakar dapat menyelesaikan masalah tersebut secara berurutan. Bentuk ini juga digunakan apabila dibutuhkan penjelasan tentang jejak (langkahlangkah) pencapaian solusi. b. Penalaran berbasis kasus (Case-Based Reasoning) Penalaran berbasis kasus, basis pengetahuan akan berisi solusi-solusi yang telah dicapai sebelumnya, kemudian akan diturunkan suatu solusi untuk keadaan yang terjadi sekarang (fakta yang ada). Bentuk ini digunakan apabila user menginginkan untuk tahu lebih banyak lagi pada kasus-kasus yang hampir sama (mirip).
10
2.1.5
Motor inferensi (Inference engine) Ada 2 cara yang dapat dikerjakan dalam melakukan inferensi, yaitu :
a. Forward chaining. Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kiri (IF dulu), dengan kata lain penalaran dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesis. b. Backward chaining. Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kanan (THEN dulu), dengan kata lain, penalaran dimulai dari hipotesis terlebih dahulu, dan untuk menguji kebenaran hipotesis tersebut harus dicari fakta-fakta yang ada dalam basis pengetahuan.
2.1.6
Ciri-ciri sistem pakar Sistem pakar yang baik harus memenuhi ciri-ciri sebagai berikut[3]:
1)
Memiliki fasilitas informasi yang handal
2)
Mudah dimodifikasi
3)
Dapat digunakan dalam berbagai jenis komputer
4)
Memiliki kemampuan untuk belajar beradaptasi
2.2
Rekayasa Perangkat Lunak
Perangkat lunak memiliki dua peran. Satu sisi berfungsi sebagai sebuah produk dan sisi lainnya sebagai kendaraan yang mengantarkan sebuah produk. Perangkat lunak mengantarkan potensi perhitungan yang dibangun oleh perangkat lunak komputer. Tidak peduli apakah perangkat lunak beroperasi dalam sebuah telepon selular atau beroperasi disebuah mainframe komputer. Perangkat lunak merupakan
transformer
suatu
informasi
yang
memproduksi,
mengatur,
memperoleh, memodifikasi, menampilkan atau memancarkan informasi dimana pekerjaan dapat menjadi sangat sederhana. Sebagai kendaraan yang dipakai untuk mengantar produk, perangkat lunak berlaku sebagai dasar untuk kontrol komputer
11
(sistem operasi), komunikasi informasi, dan penciptaan serta kontrol dari program-program lain (piranti dan lingkungan perangkat lunak). (Pressman : 1997)
2.3
Pandangan Umum Rekayasa Perangkat Lunak
Rekayasa merupakan analisis, desain, konstruksi, verifikasi, dan manajemen kesatuan teknik atau sosial. Usaha yang berhubungan dengan rekayasa perangkat lunak dapat dikategorikan kedalam tiga fase umum dengan tanpa memperdulikan area aplikasi, ukuran proyek, atau kompleksitasnya. Diantaranya adalah sebagai berikut:
1.
Fase definisi berfokus pada “apa”; Pada definisi ini pengembang perangkat lunak harus mengidentifikasi
informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku sistem seperti apa yang diharapkan, interface apa yang akan dibangun, batasan desain apa yang ada, dan kriteria validasi apa yang dibutuhkan untuk mendefinisikan sistem yang sukses. Kebutuhan (requirement) kunci dari sistem dan perangkat lunak yang didefinisikan.
2.
Fase pengembangan berfokus pada “bagaimana” ;
Yaitu di mana selama masa pengembangan perangkat lunak, teknisi harus mendefinisikan bagaimana data dikonstruksikan, bagaimana fungsi-fungsi diimplementasikan, sebagai sebuah arsitektur perangkat lunak, bagaimana detail prosedur
akan
diimplementasikan,
bagaimana
interface
ditandai
(dikarakterisasi), bagaimana rancangan akan diterjemahkan kedalam bahasa pemrograman (atau bahasa non-prosedural), serta bagaimana prngujian akan dilakukan.
3.
Fase pemeliharaan berfokus pada ”perubahan”
12
Yang dihubungkan dengan koreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkembang, serta perubahan sehubungan dengan perkembangan yang disebabkan oleh perubahan kebutuhan pelanggan. Fase pemeliharaan mengaplikasikan lagi langkah-langkah pada fase definisi dan fase pengembangan tetapi semuanya tetap tergantung pada konteks perangkat lunak yang ada. Ada empat tipe perubahan yang terjadiselama fase pengembangan, yaitu:
Koreksi Meskipun dengan jaminan kualitas yang terbaik, sepertinya pelanggan akan tetap menemukan cacat pada perangkat lunak. Pemeliharaan korektif (Corrective maintenance) mengubah perangkat lunak, membetulkan cacat atau kerusakan.
Adaptasi Dari waktu ke waktu, lingkungan original (contohnya CPU, sistem operasi, aturan-aturan bisnis, karakteristik produk eksternal) dimana perangkat lunak dikembangkan akan terus berubah. Pemeliharaan adaptif (Adaptif maintenance) menghasilkan modifikasi kepada perangkat lunak untuk mengakomodasi perubahan pada kebutuhan fungsional original.
Perkembangan (Enchancement) Ketika perangkat lunak dipakai, pemakai/pelanggan akan mengenali fungsi-fungsi tambahan yang memberi mereka keuntungan. Perfective maintenance memperluas perangkat lunak sehingga melampaui kebutuhan fungsi originalnya.
Pencegahan Keadaan perangkat lunak semakin memburuk sehubungan dengan waktu, dan karena itu, preventive maintenance yang sering juga disebut Rekayasa perangkat lunak, harus dilakukan untuk memungkinkan perangkat lunak melayani kebutuhan para pemakainya. Pada dasarnya preventive maintenance melakukan
13
perubahan pada program komputer sehingga bisa menjadi lebih mudah untuk dikoreksi, disesuaikan, dan dikembangkan. (Pressman : 1997)
2.4
Model Proses Perangkat Lunak Model proses perangkat lunak merupakan deskripsi yang disederhanakan
dari proses perangkat lunak yang dipresentasikan dengan sudut pandang tertentu. Model, sesuai sifatnya, merupakan penyederhanaan, sehingga model proses perangkat lunak merupakan abstraksi dari proses sebenarnya yang dideskripsikan. Model proses bisa mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat pada rekayasa perangkat lunak. Beberapa contoh jenis model proses perangkat lunak yang dapat dihasilkan diantaranya :
1.
Model aliran kerja (work flow). Model ini menunjukkan urutan kegiatan
pada proses bersama dengan input, output, dan ketergantungannya. Kegiatan pada model ini mempresentasikan pekerjaan manusia. 2.
Model aliran data (data flow) atau kegiatan. Model ini mempresentasikan
proses sebagai satu set kegiatan yang masing-masing melakukan transformasi data. Model ini menunjukkan bagaimana input ke proses, misalnya spesifikasi, ditransformasikan menjadi output, misalnya desain. Kegiatan disini mungkin berada pada tingkat yang lebih rendah dari pada kegiatan pada model aliran kerja. Model ini mempresentasikan tranformasi yang dilakukan oleh orang atau komputer. 3.
Model peran/aksi. Model ini mempresentasikan peran orang yang terlibat
pada proses perangkat lunak dan kegiatan yang menjadi tanggung jawab mereka.
Salah satu model proses yang secara umum digunakan dalam pengembangan rekayasa perangkat lunak adalah model Waterfall. Model ini mengambil kegiatan proses dasar seperti spesifikasi, pengembangan, validasi, dan evolusi, dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti
14
spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya. (Sommerville : 1982) Berikut ini merupakan kegiatan-kegiatan pengembangan dasar dari aktivitas proses dalam model Waterfall yaitu :
1.
Analisis dan definisi persyaratan. Pelayanan, batasan, dan tujuan sistem ditentukan melalui konsultasi dengan user sistem. Persyaratan ini kemudian didefinisikan secara rinci dan berfungsi sebagai spesifikasi sistem.
2.
Perancangan sistem dan perangkat lunak. Proses perancangan sistem membagi persyaratan dalam sistem perangkat keras atau perangkat lunak. Kegiatan ini menentukan arsitektur sistem secara keseluruhan. Perancangan perangkat lunak melibatkan identifikasi dan deskripsi abstraksi sistem perangkat lunak yang mendasar dan hubungan-hubungannya.
3.
Implementasi dan pengujian unit. Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasi.
4.
Integrasi dan pengujian sistem. Unit program atau program individual diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem telah dipenuhi. Setelah pengujian sistem, perangkat lunak dikirim kepada pelanggan.
5.
Operasi dan pemeliharaan. Biasanya (walaupun tidak seharusnya), ini merupakan fase siklus hidup yang paling lama. Sistem diinstal dan dipakai. Pemeliharaan mencakup koreksi dari berbagai error yang tidak ditemukan pada tahap-tahap terdahulu, perbaikan atas implementasi unit sistem dan pengembangan pelayanan sistem, sementara persyaratan-persyaratan baru ditambahkan. Untuk lebih jelasnya, lihat Gambar 2.1.
15
Gambar 2.1 2. Model Waterfall. (Sommerville : 1982)
2.5
Faktor Kepastian (Certainty ( Factor) Nilai faktor kepastian pertama kali digunakan pada MYCIN, yaitu sistem
pakar untuk mendiagnosa jenis penyakit infeksi darah, kemudian menentukan jenis obat dan dosisnya. Faktor kepastian merupakan penurunan dan pengembangan dari teori peluang berkondisi (Bayes ( theorem). ). Faktor kepastian didapatkan dari operasi pengurangan nilai nil kepercayaan (measure measure of belief belief) oleh nilai ketidakpastian (measure ( of disbelief). ). Tujuan utama penggunaan faktor kepastian adalah untuk memproses ketidakpastian ketidakpastian dari fakta dan gej gejala dengan menghindarkan keperluan data dan perhitungan yang besar. Certai Certainty factor ini merupakan derajat gabungan kepercayaan dan ketidak percayaan, pada umumnya dinyatakan dalam satu harga. harga Certainty Factor (CF) merupakan nilai parameter klinis yang diberikan MYCIN untuk menunjukkan besarnya kepercayaan. Certainty factor didefinisikan idefinisikan sebagai berikut: berikut CF[H,E]= MB[H,E] - MD[H,E].
16
CF[H,E]= Certainty Factor dari hipotesis H yang dipengaruhi oleh gejala (evidence) E. Besarnya CF berkisar antara -1 sampai dengan 1. Nilai - 1 menunjukkan ketidakpercayaan mutlak, sedangkan nilai 1 menunjukkan kepercayaan mutlak.
MB[H,E]= Ukuran kenaikan kepercayaan terhadap hipotesis H yang dipengaruhi oleh gejala E. MD[H,E]= Ukuran kenaikan ketidakpercayaan terhadap hipotesis H yang dipengaruhi oleh gejala E.
2.5.1 CF gabungan CF gabungan Merupakan CF akhir dari sebuah calon konklusi. Persamaan untuk melakukan perhitungan CF gabungan ditunjukkan pada persamaan (1), persamaan (2), dan persamaan (3): CF(x) + CF(y) – (CF(x) * CF(y)), CF(x) > 0, CF(y) > 0 ... ........................ (1), CF(x)
+ CF(y) , ,salah satu (CF(x),CF(y))< 0………………………(2),
(1-(Min(|CF(x)|,|CF(y)|))) CF(x) + CF(y)*(1+CF(x))), CF(x)<0 dan CF(y)<0 ................................................ (3), dengan: CF(x) = faktor kepastian gejala x, CF(y) = faktor kepastian gejala y. Persamaan CF yang digunakan dalam pembuatan sistem pakar ini hanya persamaaan (3.1), yaitu CF(x,y) = CF(x) + CF(y) – (CF(x) * CF(y)), dengan: CF(x) > 0, CF(y) > 0.
17
2 .6
Pengertian Maintenance dan Troubleshooting Maintenance adalah suatu kegiatan yang dilakukan secara berulang-ulang
dengan tujuan agar peralatan selalu memiliki kondisi yang sama dengan keadaan awalnya. Maintenance atau pemeliharaan juga dilakukan untuk menjaga agar peralatan tetap berada dalam kondisi yang dapat diterima oleh penggunanya. Troubleshooting adalah tindakan mencari sumber permasalahan pada suatu program atau perangkat dan memperbaiki permasalahan tersebut.
2.7
Permodelan Berorientasi Objek Konsep-konsep Object Oriented (OO) telah menjadi mapan di dunia
rekayasa perangkat lunak. Berikut ini adalah deskripsi tentang konsep object oriented yang sering ditemui selama analisis model. Atribut merupakan kumpulan nilai-nilai data yang menggambarkan sebuah class. Class merupakan enkapsulasi data dan abstraksi prosedural yang diperlukan untuk menjelaskan isi dan perilaku dari beberapa entitas dunia nyata. Sebuah class adalah deskripsi umum (misalnya, template, pola, atau cetak biru) yang menggambarkan koleksi objek-objek serupa. Objek merupakan contoh class tertentu. Objek mewarisi class atribut dan operasi. Operasi juga disebut metode dan jasa, menyediakan sebuah representasi dari salah satu perilaku dari sebuah class. Subclass adalah sebuah ciri khas spesialisasi SUPERCLASS. Sebuah subcalss dapat mewarisi baik atribut-atribut dan operasioperasi dari sebuah SUPERCLASS. SUPERCLASS juga disebut class dasar, adalah generalisasi dari serangkaian class yang terkait dengan hal itu. Permodelan objek adalah suatu metoda untuk menggambarkan struktur sistem yang memperlihatkan semua objek yang ada pada sistem sehingga mudah diimplementasikan dalam bentuk perangkat lunak. Pendekatan permodelan objek selama analisis dan disain sistem disebut object-oriented analysis (OOA) atau analisis berorientasi objek. Konsep object oriented setiap objek dapat dikategorikan, digambarkan, diatur, digabungkan, dimanipulasi, diciptakan[9]. Berikut adalah karakteristik dalam pengembangan berorientasi objek, yaitu:
18
a.
Pembungkusan (Encapsulation ) Sistem berorientasi objek dalam hal ini kita menggabungkan potongan-
potongan informasi dan perilaku-perilaku spesifikasi yang bekerja pada informasi tersebut, kemudian mengemasnya menjadi apa yang disebut objek, ini dirujuk dengan kata pembungkusan (encapsulation). Cara lain untuk memahami pembungkusan adalah kita membagi aplikasi-aplikasi menjadi bagian-bagian kecil yang secara fungsional berhubungan. Keuntungan dari pembungkusan adalah membatasi efek-efek perubahan pada sistem, misalnya, saat manajemen bank menentukan jika seeorang memiliki rekening pinjaman di bank yang bersangkutan, rekening pinjaman itu harus dapat juga digunakan sebagai sarana bagi penarikan rekening. b.
Pewarisan (Inheritance ) Pewarisan adalah konsep dasar pemrograman berorientasi objek yang
lainnya. Pewarisan adalah mekanisme yang memungkinkan kita menciptakan objek-objek baru berdasarkan objek lain yang sudah ada, misal objek anak mewarisi segala sesuatunya dari objek induk. Salah satu keuntungan dari pewarisan (inheritance) adalah kemudahannya untuk dipelihara. Saat sesuatu perubahan untuk informasi atau perilaku yang sama perlu terjadi pada seluruh objek, katakanlah pada objek-objek manusia, harimau, anjing, serta onta tadi, hanya objek mamalia yang perlu diubah; objek-objek dibawahnya akan mewarisi (inheritance) perubahan pada objek mamalia tadi. c.
Polimorfisme Polimorfisme berarti suatu fungsionalitas yang diimplementasikan dengan
berbagai cara yang berbeda. Salah satu keuntungan dari polimorfisme adalah kemudahan pemeliharaannya.
2.8
Unified Modeling Language (UML) Bahasa permodelan yang terpadu UML merupakan bahasa berbasis grafis
yang digunakan untuk memodelkan sistem perangkat lunak. Bahasa ini pertama-
19
tama dikembangkan oleh tiga orang ahli pemodelan obyek, yaitu: Grady Booch, James Rumbaugh, dan Ivars Jacobson pada awal tahun 90-an. Bahasa UML telah menjadi standar untuk pemodelan software berbasis obyek[10]. UML menyediakan 9 jenis diagram yang dapat dikelompokkan berdasarkan sifatnya statis atau dinamis, yaitu:
a. Diagram kelas Diagram kelas bersifat statis. Diagram ini memperlihatkan himpunan kelaskelas,
antarmuka-antarmuka,
kolaborasi-kolaborasi,
serta
relasi-relasi.
Diagram ini umum dijumpai pada permodelan sistem berorientasi objek, meskipun bersifat statis, sering pula diagram kelas memuat kelas-kelas aktif. Untuk memperjelas, diagram kelas seperti ditunjukkan pada Gambar 2.2
Gambar 2.2 Diagram kelas
b. Diagram Objek Bersifat statis. Diagram ini memperlihatkan objek-objek serta relasi-relasi antar objek. diagram objek memperlihatkan instansiasi statis dari segala sesuatu yang dijumpai pada diagram kelas. Suatu objek dikatakan merupakan suatu kelas jika objek itu merupakan keturunan yang nyata dari suatu kelas. Untuk memperjelas, diagram kelas seperti ditunjukkan pada Gambar 2.3
20
Gambar 2.3 Diagram objek
c. Use case diagram Bersifat statis. Diagram ini memperlihatkan himpunan use case dan aktoraktor (suatu jenis khusus dari kelas). Diagram ini terutama sangat penting untuk mengorganisasi dan memodelkan perilaku dari suatu sistem yang dibutuhkan serta diharapkan pengguna. Untuk memperjelas, diagram kelas seperti ditunjukkan pada Gambar 2.4
Gambar 2.4 Diagram use case
21
d. Sequence diagram Diagram urutan adalah diagram interaksi yang menekankan pada pengiriman pesan (message) dalam suatu waktu tertentu. Untuk memperjelas, sequence diagram seperti ditunjukkan pada Gambar 2.5.
Gambar 2.5 Sequence Diagram
e. Activity diagram Diagram aktifitas ini adalah tipe khusus dari diagram state yang memperlihatkan aliran dari suatu aktifitas ke aktifitas lainnya dalam suatu sistem. Diagram ini terutama penting dalam permodelan fungsi-fungsi dalam suatu sistem dan memberi tekanan pada aliran kendali antar objek. Untuk memperjelas, activity diagram seperti ditunjukkan pada Gambar 2.6
22
Kirim invoice Activity state Terima pembayaran
Gambar 2.6 Activity diagram
2.9
Basis data (database) Basis data terdiri dari 2 kata, yaitu basis dan data. Basis kurang lebih dapat
diartikan sebagai markas atau gudang, tempat bersarang (berkumpul), sedangkan data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaannya dan sebagainya. Basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti:
Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.
Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.
Kumpulan file atau tabel atau arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis.
Prinsip utama basis data adalah pengaturan data.arsip, dan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan kembali data (arsip)
23
2.9.1 Diagram Entity-Relationship (Diagram E-R) Model Entity-Relationship yang berisi komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi atribut-atribut yang merepresentasikan seluruh fakta dari dunia nyata yang ditinjau, dapat digambarkan dengan lebih sistematis dengan menggunakan diagram entityrelationship (diagram E-R) yang dapat digunakan adalah: a)
Persegi panjang, menyatakan himpunan entitas;
b)
Lingkaran atau elip, menyatakan atribut (atribut yang berfungsi sebagai key digaris bawahi);
c)
Belah ketupat, menyatakan himpunan relasi;
d)
Garis, sebagai penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atributnya;
e)
Kardinalitas relasi dapat dinyatakan dengan banyaknya garis cabang atau dengan pemakaian angka (1 dan 1 untuk relasi satu-ke-satu, dan N untuk relasi satu-ke-banyak atau N dan N untuk relasi banyak-ke-banyak). Keterangan kardinalitas relasi seperti ditunjukkan pada Gambar 2.7
E
Himpunan entitas E
a
Atribut a sebagasi key
R
Hinpunan Relasi R
Link
Gambar 2.7 Keterangan kardinalitas relasi
Contoh penggambaran relasi antar himpunan entitas lengkap dengan kardinalitas relasi dan atribut-atributnya seperti ditunjukkan pada Gambar 2.8: 1. Relasi satu-ke-satu (one-to-one) Contoh:
24
Gambar 2.8 Diagram E-R untuk relasi satu ke satu Diagram E-R di atas dapat di lihat bahwa himpunan entitas dosen dan himpunan entitas jurusan masing-masing memiliki 2 buah atribut saja, sementara itu, pada himpunan relasi mengepalai juga terdapat 2 buah atribut yang secara bersamasama berfungsi juga sebagai key pada himpunan relasi tersebut, karena kedua atribut atau key tersebut sebetulnya berasal dari atribut key dari masing-masing himpunan entitas yang dihubungkannya, maka keduanya digolongkan sebagai key asing (Foreign-key). 1. Relasi satu-ke-banyak (one-to-many)
Diagram E-R untuk relasi satu ke banyak seperti ditunjukkan pada Gambar 2.9
Gambar 2.9 Diagram E-R untuk relasi satu ke banyak Key asing (Foreign-key) dari himpunan relasi mengajar di atas adalah nama_dos dank ode_kul, yang masing-masing berasal dari himpunan entitas dosen dan himpunan entitas kuliah, tetapi di samping kedua atribut key tersebut, ada pula 2 atribut tambahan yang tidak berasal dari salah satu himpunan entitas yang dihubungkannya. 2. Relasi banyak-ke-banyak (many-to-many)
25
Diagram E-R untuk relasi banyak ke banyak seperti ditunjukkan pada Gambar 2.10
Gambar 2.10 Diagram E-R untuk relasi banyak ke banyak Keberadaan himpunan relasi mempelajari di atas akan memiliki dua fungsi, yaitu untuk menunjukkan mata kuliah mana saja yang diambil oleh seorang mahasiswa (atau mahasiswa mana saja yang mengambil mata kuliah tertentu) dan indeks nilai yang diperoleh seorang mahasiswa untuk mata kuliah tertentu (tentu saja setelah indeks nilai tersebut disimpan).
2.10
Pengujian Perangkat Lunak Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu
pada kualitas perangkat lunak tidak dapat terlalu ditekankan seperti yang dikatakan oleh Deutsch : “Pengembangan sistem perangkat lunak melibatkan sederetan aktivitas produksi dimana peluang terjadinya kesalahan manusia sangat besar. Kesalahan dapat mulai terjadi pada permulaan proses dimana sasaran ditetapkan secara tidak sempurna, dan dalam desain dan tahap pengembangan selanjutnya… Karena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna, maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas”. (Roger S. Pressman, 1997) Pada kesempatan ini, penulis hendak melakukan pengujian dengan metode pengujian blackbox. Pengujian blackbox berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian blackbox memungkinkan
26
perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian blackbox bukan merupakan alternative dari teknik white box, tetapi merupakan
pendekatan
komplimenter
yang kemungkinan besar mampu
mengungkap kelas kesalahan daripada metode white box. Pengujian dengan metode blackbox testing dilakukan dengan cara memberikan sejumlah masukan (input) pada program aplikasi yang kemudian diproses sesuai dengan kebutuhan fungsionalnya untuk melihat apakah program aplikasi menghasilkan keluaran (output) yang diinginkan sesuai dengan fungsi dari program aplikasi tersebut. Bila dari input yang diberikan proses menghasilkan output yang sesuai dengan kebutuhan fungsionalnya, maka program aplikasi yang bersangkutan telah benar, tetapi bila output yang dihasilkan tidak sesuai dengan kebutuhan fungsionalnya, maka masih terdapat kesalahan pada program aplikasi tersebut. Pengujian dilakukan dengan mencoba semua kemungkinan yang terjadi dan dilakukan secara berulang-ulang. Jika dalam pengujian ditemukan kesalahan, maka akan dilakukan penelusuran dan perbaikan (debugging) untuk memperbaiki kesalahan yang terjadi. Jika telah selesai melakukan perbaikan maka akan dilakukan pengujian kembali. Pengujian dan perbaikan dilakukan secara terus menerus hingga diperoleh hasil yang terbaik. Pengujian pada aplikasi sitem pakar tersebut dilakukan berdasarkan metode BlackBox Testing yaitu pengujian untuk menemukan kesalahan dalam lingkup kategori sebagai berikut : 1. Fungsi-fungsi yang tidak benar atau hilang 2. Kesalahan antar muka 3. Kesalahan kinerja dan struktur data 4. Inisialisasi dan kesalahan terminasi. (Menurut Pressman: 2002)
27
2.11
Bagian-bagian Personal Computer (PC) Ada beberapa hal yang perlu diketahui bagian-bagian PC yang dapat
mengalami kerusakan, yaitu sebagai berikut: 1.
Keyboard
Keyboard adalah input device primer pada PC. Bentuk fisiknya berupa sebuah papan ketik dengan tombol abjad dan tombol numerik lengkap serta tambahan beberapa tombol fungsi lainnya. Keyboard (papan bidai) paling banyak dipakai dan paling sering rusak dari pada bagian lain dari personal computer (PC), hal ini dapat diatasi jika pemakai tidak menekan keyboard terlalu keras, walaupun keyboard berupa sarana elektronika, keyboard jarang sekali menyebabkan gangguan, seringkali permasalahan diakibatkan oleh tombol yang terjepit. Gangguan itu bisa jadi akibat pegas yang patah, kotoran atau benda yang melekat pada
gerakan
impedansi.
Memelihara
keyboard
dan
perawatan
pencegahan yang reguler akan mempermudah mencegah timbulnya gangguan keyboard. Keyboard seperti ditunjukkan pada Gambar 2.11
Gambar 2.11 keyboard 2.
Mouse Mouse merupakan sebuah alat bantu masukan (input) yang berfungsi
sebagai pointer (penunjuk) untuk membantu kerja keyboard. Kursor yang dihasilkan berbentuk pointer. Mouse dihubungkan ke komputer melalui serial port atau mouse port khusus. Bentuk fisik dari mouse jika di lihat dari fisiknya hanya memiliki dua atau tiga tombol saja. Adapun fungsi-fungsi utama dari mouse antara lain:
28
Sebagai penunjuk dalam memilih program (file) yang diinginkan.
Sebagai penunjuk dalam perintah-perintah yang diperlukan.
Sebagai penunjuk kursor yang dikehendaki.
Sebagai alat bantu dalam meletakkan (posisi) grafik atau gambar.
Sebagai alat bantu fungsi keyboard yang tidak dapat dilakukan keyboard.
Mouse seperti ditunjukkan pada Gambar 2.12
Gambar 2.12 Mouse
3.
Motherboard
Motherboard merupakan papan sirkuit utama dalam komputer tempat terpasangnya berbagai peralatan seperti prosesor, memori, kartu suara, kartu grafis, dan berbagai jenis kartu input output lainnya. Motherboard seperti ditunjukkan pada Gambar 2.13
Gambar 2.13 Motherboard
29
Terdapat bagian-bagian motherboard yang terpenting sebagai berikut: a. Mikroprosessor Mikroprosessor atau sering disebut processor adalah komponen berupa IC atau chip yang berfungsi sebagai otak dari personal computer (PC). Prosessor atau unit pengolah pusat (Central Processing Unit) adalah chip tunggal yang berisi semua elemen yang diperlukan untuk mengartikan dan melakukan semua instruksi program dalam bentuk manipulasi data, operasi logika dan aritkmatika, pewaktuan dan pengendalian sistem. Mikroprosessor seperti ditunjukkan pada Gambar 2.14
Gambar 2.14 Mikroprosessor
b.
Memory controller Ada beberapa bagian yang merupakan memory controller, yaitu sebagai
berikut: 1. ROM (Read Only Memory) ROM (Read Only Memory) yaitu memory yang hanya dapat dibaca saja datanya atau programnya. ROM terdapat pada BIOS (BasIC Input Output System) yang terdapat pada motherboard yang berfungsi untuk mengatur peripheral yang ada pada sistem. Contoh: AMIBIOS, AWARD BIOS, dan lain-lain. 2. RAM (Random Access Memory)
30
Untuk menggunakan memori, harus di lihat spesifikasi chipset motherboard untuk mengetahui tipe memori yang dapat dipasang, misal SDRAM, DDR, atau RDRAM, selain itu dapat di lihat dari tipe slot memori yang terletak pada motherboard. RAM (Random Access Memory) adalah faktor yang menentukan dalam stabilitas sistem komputer. RAM (Random Access Memory) yang baik adalah :
Memiliki kapasitas atau daya tampung yang sangat besar.
Memiliki waktu akses yang sangat cepat atau singkat.
Memiliki sifat yang universal, artinya dapat digunakan atau dipakai pada seluruh mainboard.
RAM seperti ditunjukkan pada Gambar 2.15
Gambar 2.15 RAM .3. Cache memory Memory berkapasitas terbatas, berkecepatan tinggi yang lebih mahal daripada memori utama. Cache memory ini ada diantara memori utama dan register pemroses, berfungsi agar pemroses tidak langsung mengacu pada memori utama agar kinerja dapat ditingkatkan. c. Bus controller Elemen perangkat keras yang terdapat di dalam mainboard dihubungkan dihubungkan satu sama lain dengan bus. Bus adalah sekelompok kawat
31
penghubung atau track yang digunakan sebagai jalur penghubung anatara suatu elemen dengan elemen yang lain di dalam mainboard. d. Data bus Data bus digunakan untuk mentransfer data antar processor dengan elemen-elemen yang lain di dalam mainboard, karena data harus dimasukkan dan dikeluarkan dari processor, maka data bus harus memiliki sifat bidirectional. e. Address bus Address bus digunakan untuk membawa alamat dari lokasi memory untuk mengambil data supaya dapat dibaca, atau untuk menyimpan agar dapat ditulis. Address bus ini juga digunakan untuk mengalamati elemen-elemen lain di dalam mainboard seperti I/O peripheral. Address bus memiliki sifat undirectional, yang mampu membawa informasi secara serempak. f.
Control bus . ontrol bus digunakan untuk membawa semua isyarat kontrol dari C
processor cacah jalur kontrol bergantung pada processor yang digunakan dan juga rancangan sistem dari mainboardnya. Fungsi-fungsi utama dari control bus adalah:
Penyesuaian memori.
Penyesuaian input dan output.
Penjadwalan processor, misalnya interupsi.
Reset dan clock.
g.
Input atau output unit Input atau output unit merupakan bagian dari komputer untuk menerima
data maupun mengeluarkan (menampilkan) data setelah diproses oleh processor. Ada dua bagian dalam hal ini, yaitu : 1. Port I/O
32
Port I/O merupakan port atau gerbang atau tempat dipasangnya conector dari peralatan I/O. Port I/O seperti ditunjukkan pada Gambar 2.16
Gambar 2.16 Port I/O 2. Peripheral I/O Peripheral adalah sesuatu yang mangacu ke peralatan eksternal yang dihubungkan dengan komputer. Peripheral terbagi dalam dua kategori berdasarkan fungsi. Kategori pertama terdiri atas peralatan yang melaksakan operasi input dan output, kategori ini meliputi keyboard, trackball, mouse, printer, dan display video. Kategori kedua terdiri atas peralatan yang diutamakan pada penyimpan data sekunder, yang mana penyimpan utamanya disediakan oleh memori utama komputer. Peralatan yang umum digunakan pada personal computer (PC) yaitu keyboard, monitor, mouse, printer, scanner, disk drive, sip drive, CD ROM Drive, hard disk, dan lain-lain. h. Generator clock Generator clock berfungsi membangkitkan pulsa clock dasar yang sebesar 14,31818 MHz menjadi pulsa clock yang sesuai dengan yang dibutuhkan oleh mainboard. i. Regulator
33
Bagian ini paling banyak menggunakan transistor yang diberi sebuah head sink, yang akan mengolah tegangan input yang ada menjadi beberapa volt yang dibutuhkan oleh seluruh rangkaian yang ada. j. Integrated chipset IC ini digunakan untuk pengaturan proses kerja dari komputer yang meliputi: buffer CPU ke DRAM, buffer PCI ke DRAM, kemampuan penulisan secara gabungan atau sekaligus dari CPU ke DRAM dan penyediaan ruang pada DRAM. IC chipset biasanya berbentuk bujur sangkar yang lebih kecil dengan sudut tumpul pada setiap ujungnya sehingga membentuk segidelapan, lebih tipis dan kaki-kaki juga terlihat.
4.
CDROM Drive Compact Disk Read Only Memory (CD-ROM) pada personal computer (PC) mirip CD-player untuk musik. CDROM sudah menjadi komponen standart PC untuk kemampuan mendistribusikan sejumlah data besar, dengan menggunakan CD-ROM berarti dapat membebaskan hard disk dari semua file-file yang besar, karena itu dapat diakses langsung dari CD-ROM pada saat yang dibutuhkan[1]. CD-ROM seperti ditunjukkan pada Gambar 2.17
Gambar 2.17 CD-ROM 5.
Hard disk
Hard disk adalah sebuah subsistem dari komputer yang digunakan untuk menyimpan banyak data. Hard disk sebenarnya terdiri dari beberapa platter atau piringan yang mirip dengan piringan hitam yang dilapisi oleh rumah atau
34
casing yang kuat. Banyaknya piringan tergantung dari teknologi yang digunakan oleh disk itu dan jumlah data yang perlu disimpan. Piringan-piringan itu terbuat dari metal, dan mengandung jutaan magnet-magnet kecil yang disebut magnetIC domain[1]. Hard disk seperti ditunjukkan pada Gambar 2.18
Gambar 2.18 Hard disk
6.
Power supply
Power supply salah satu bagian yang paling utama di dalam suatu personal computer (PC). Fungsi power supply adalah kritis sebab daya listrik untuk semua komponen di dalam sistem. Power supply juga salah satu penyebab kerusakkan komponen di dalam sistem komputer, terutama dalam kaitan dengan fakta bahwa sangat banyak sistem menggunakan power supply termurah. Power supply seperti ditunjukkan pada Gambar 2.19
Gambar 2.19 Power supply
7.
Monitor
Monitor atau sering disebut layar tampilan Komputer. Monitor biasanya digambarkan pada sebuah kotak layar yang dapat menampilkan sesuatu dari
35
komputer. Selain itu pula istilah monitor terkadang digambarkan untuk menilai kemampuan grafis. Monitor seperti ditunjukkan pada Gambar 2.20
Gambar 2.20 Monitor
2.12
Microsoft SQL Server 2005
SQL server 2005 merupakan produk software database yang diproduksi oleh Microsoft. Pada versi banyak terdapat pengembangan dan fasilitas baru dibandingkan versi yang sebelumnya Structure Query Language (SQL) adalah bahasa yang digunakan untuk membuat memanipulasi beberapa tabel data yang saling berhubungan. Keunggulan utama dari SQL dibandingkan teknik pemrograman basis data adalah SQL telah diakui sebagai bahasa standar pada server basis data. Oleh karena itu SQL dapat menghubungkan beberapa tabel dari platform yang berbeda.
2.13
Microsoft Visual Studio 2008 (C#) Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap
(suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library).
36
Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas .NET Framework). Visual Studio kini telah menginjak versi Visual Studio 9.0.21022.08, atau dikenal dengan sebutan Microsoft Visual Studio 2008 yang diluncurkan pada 19 November 2007, yang ditujukan untuk platform Microsoft .NET Framework 3.5.