Anda di halaman 1dari 35

BAB II TINJAUAN PUSTAKA

2.1 Pengertian Sistem Pakar Sistem pakar dapat didefinisikan sebagai sebuah program komputer berbasis pengetahuan yang dapat memberikan pemecahan setingkat pakar dalam bidang tertentu yang hasil pemecahannya mirip dengan pemecahan yang diberikan oleh pakar yang sesungguhnya1. Suatu sistem pakar adalah suatu sistem komputer yang menyamai (emulates) kemampuan pengambilan keputusan dari seorang pakar2. Basis pengetahuan yang diperoleh, diambil dari pengalaman seorang pakar maupun teori-teori yang ada pada bidang yang spesifik saja, oleh karena itu sistem pakar memiliki keterbatasan. 2.2 Sejarah Singkat Sistem Pakar3 Perkembangan AI (Artificial Intelligense) merupakan teknologi baru dalam dunia komputer. AI berkembang

perusahaan General Electric menggunakan komputer pertama kali di bidang bisnis. Pada tahuan 1956, istilah AI mulai dipopulerkan oleh John McCarthy sebagai suatu tema ilmiah di bidang komputer yang diadakan di Dartmouth College.

1 2

Dologite, Development Computer Based Information System using VP-Expert, hal 1 Arhami, M. Konsep Dasar Sistem Pakar. Yogyakarta. Penerbit Andi. 2005, hal 2 3 Tim Penerbit Andi, Pengembangan Sistem Pakar Menggunakan Visual Basic. Yogyakarta. Penerbit Andi. 2009, hal 5

Pada tahun yang sama komputer berbasis AI pertama kali dikembangkan dengan nama Logic Theorist yang melakukan penalaran terbatas untuk teorema kalkulus. Perkembangan ini mendorong para peneliti untuk mengembangkan program lain yang disebut sebagai General Problem Solver (GPS). Program ini bertujuan untuk memecahkan berbagai jenis masalah dan ternyata tugas yang sangat besar dan sangat berat untuk dikembangkan. Setelah GPS, ternyata AI banyak dikembangkan dalam bidang permainan atau game, misalnya program permainan catur oleh Shannon (1955) dan program untuk pengecekan masalah oleh Samuel (1963). Banyak juga ahli yang

mengimplementasikan AI dalam bidang bisnis dan matematika. Pada tahun 1972, Newell dan Simon memperkenalkan Teori Logika secara konseptual yang kemudian berkembang pesat dan menjadi acuan pengembangan sistem berbasis kecerdasan buatan lainnya. Buchanan dan Feigenbaum juga mengembangkan

bahasa pemrograman DENDRAL, pada tahun 1978. Bahasa pemrograman ini dibuat untuk badan antariksa Amerika Serikat, yaitu NASA, dan digunakan untuk penelitian kimia di planet Mars. Pada tahun 1976, yaitu 2 tahun sebelum DENDRAL, sebenarnya program sistem pakar sudah dikembangkan secara modern, yaitu MYCIN yang dibuat oleh Shortliffe dengan bahasa pemrograman LISP. Program MYCIN menyimpan 500 basis pengetahuan dan basis aturan untuk mendiagnosis penyakit

manusia.

Program

ini

juga mengimplementasikan metode

penelusuran dan pemecahan masalah, serta mengembangkan berbagai teori penting dalam kecerdasan buatan seperti metode certainty factor, teori probabilitas dan teorema fuzzy. Dewasa ini program MYCIN menjadi acuan penting untuk pengembangan sistem pakar secara modern karena di dalamnya telah terintegrasi semua komponen standar yang dibutuhkan oleh sistem pakar itu sendiri. 2.3 2.3.1 Konsep Dasar Sistem Pakar Konsep Dasar Sistem Pakar Ada enam hal yang menjadi konsep dasar dari sebuah Sistem Pakar4, yaitu : a. Keahlian (Expertise) Keahlian dapat diperoleh dari pelatihan/training, membaca atau dari pengalaman. Keahlian itu meliputi : Fakta-fakta tentang area permasalahan. Teori-teori tentang area permasalahan. Aturan-aturan tentang apa yang harus dilakukan dalam situasi permasalahan yang diberikan. Strategi global untuk memecahkan masalah.

Arhami, Muhammad. Konsep Dasar Sistem Pakar. Yogyakarta. 2005, hal.11

b.

Pakar (Expert) Sulit untuk mendefinisikan apakah yang dimaksud dengan pakar itu. Masalahnya adalah berapa banyak keahlian yang harus dimiliki oleh seseorang agar dapat dikualifikasikan sebagai pakar. Namun berikut ini dijelaskan beberapa kualifikasi yang harus dimiliki oleh seorang pakar : Dapat mengenal dan merumuskan masalah. Dapat memecahkan masalah dengan cepat dan

semestinya. Dapat menjelaskan suatu solusi. Dapat menentukan hubungan. Belajar dari pengalaman

c.

Pemindahan Keahlian (Transferring Expertise) Tujuan dari sistem pakar adalah memindahkan keahlian dari seorang pakar ke komputer dan kemudian ke manusia lain yang bukan pakar. Proses ini meliputi empat kegiatan, yaitu : Memperoleh pengetahuan pakar. Merepresentasikan pengetahuan ke dalam komputer. Mengolah pengetahuan sehingga dapat menghasilkan kesimpulan. Memindahkan pengetahuan ke pengguna.

Pengetahuan disimpan dalam komputer berupa komponen yang disebut knowledge base. Pengetahuan ini dibedakan menjadi dua, yaitu fakta dan rule.

10

d.

Menarik Kesimpulan (Inferencing) Keistimewaan dari sistem pakar adalah kemampuan

nalarnya. Komputer diprogram sehingga dapat membuat kesimpulan. Pengambilan keputusan ini dilaksanakan dalam komponen yang disebut inference engine. e. Aturan (Rule) Kebanyakan sistem pakar adalah sistem berbasis rule, pengetahuan disimpan dalam bentuk rule-rule sebagai prosedur pemecahan masalah. f. Kemampuan Menjelaskan (Explanatin Capability) Keistimewaan lain dari sistem pakar adalah kemampuan menjelaskan darimana asal sebuah solusi/rekomendasi diperoleh. 2.3.2 Arsitektur Sistem Pakar Komponen utama yang harus ada dalam sebuah sistem pakar adalah knowledge base (basis pengetahuan), inference engine (mesin penarik kesimpulan), explanation subsystem (subsistem penjelas output), dan user interface (antarmuka pengguna). Secara umum arsitektur sistem pakar5 dapat dilihat pada gambar 2.1.

Gunawan, Ir, Pengantar ke Expert System, Indonesia : Surabaya, 2007, hal 6

11

Gambar 2.1 Arsitektur Sistem Pakar a. Basis Pengetahuan (Knowledge Base) Basis pengetahuan merupakan bagian yang paling penting pada sistem pakar, karena keahlian dari pakar disimpan di dalamnya. Basis pengetahuan tersebut berisi fakta-fakta yang didapat dari seorang ahli dan diimplementasikan ke dalam sistem komputer dengan menggunakan metode representasi

pengetahuan tertentu. Metode representasi pengetahuan adalah cara untuk menstrukturkan pengetahuan yang dimiliki oleh pakar agar mudah diolah oleh komputer. Jadi basis pengetahuan merupakan jantung sistem pakar, dimana bagian ini berisi pengetahuan penting untuk mengerti, merumuskan dan memecahkan permasalahan, yang mempunyai dua elemen dasar, yaitu fakta tentang keadaan masalah dan teori tentang area masalah. b. Mesin Pengambil Keputusan (Inference Engine) Inference Engine merupakan bagian dari sistem pakar yang bertugas untuk menemukan solusi yang tepat dari banyaknya

12

solusi yang ada. Proses dilakukan dalam inference engine adalah bagaimana pengambilan keputusan terhadap konsultasi yang terjadi dan proses penalaran pada basis pengetahuan yang dimilikinya. Penentuan sistem pendukung keputusan dan metode pelacakan sangat penting dalam rangka menyelesaikan masalah. Inference engine merupakan otak dari sistem pakar6, juga dikenal sebagai struktur kontrol/interpreter. c. Explanation Subsystem Explanation subsystem merupakan kemampuan untuk

memberikan penjelasan atas sebuah kesimpulan yang diberikan. d. User Interface User interface merupakan bagian dari sistem pakar yang berfungsi sebagai pengendali input output. User interface melayani user selama proses konsultasi, mulai dari tanya jawab untuk mendapatkan fakta-fakta yang dibutuhkan inference engine sampai menampilkan output yang merupakan kesimpulan/rekomendasi yang dihasilkan oleh inference engine. e. Knowledge Base Editor Knowledge base editor merupakan bagian yang digunakan untuk menambah, menghapus dan memperbaiki basis

pengetahuan.

Durkin, John. Expert System and Development, New York : Macmillan, 1995, hal 168

13

f.

Learning Learning adalah suatu proses belajar dari suatu sistem

pakar apabila sistem tidak menemukan solusi masalah. g. Certainty Factor Certainty factor merupakan faktor keyakinan atas fakta-fakta yang ada. 2.3.3 Metode Inferensi Komponen ini mengandung mekanisme pola pikir dan penalaran yang digunakan oleh pakar dalam menyelesaikan suatu masalah. Metode inferensi adalah program komputer yang memberikan metodologi untuk penalaran tentang informasi yang ada dalam basis pengetahuan dan dalam workspace, dan untuk menformulasikan kesimpulan (Turban, 1995). Kebanyakan sistem pakar berbasis aturan menggunakan inferensi yang dinamakan modus ponen. Berdasarkan strategi ini, jika terdapat aturan IF A THEN B, dan jika diketahui bahwa A benar, maka dapat disimpulkan bahwa B juga benar. Terdapat dua pendekatan untuk mengontrol inferensi dalam sistem pakar berbasis aturan, yaitu pelacakan ke depan (Forward Chaining) dan pelacakan ke belakang (Backward Chaining). a. Pelacakan ke depan (Forward Chaining) Pelacakan ke depan adalah pendekatan yang dimotori data (data-driven). Dalam pendekatan ini pelacakan dimulai dari informasi masukan, dan selanjutnya mencoba menggambarkan

14

kesimpulan. Pelacakan ke depan, mencari fakta yang sesuai dengan bagian IF dari aturan IF-THEN. b. Pelacakan ke belakang (Backward Chaining) Pelacakan ke belakang adalah pendekatan yang dimotori oleh tujuan (goal-driven). Dalam pendekatan ini pelacakan dimulai dari tujuan, selanjutnya dicari aturan yang memiliki tujuan tersebut untuk kesimpulannya. Selanjutnya proses pelacakan menggunakan premis untuk aturan tersebut sebagai tujuan baru dan mencari aturan lain dengan tujuan baru sebagai kesimpulannya. Proses berlanjut sampai semua kemungkinan ditemukan (Kusumadewi, 2003). 2.3.4 Ciri-ciri Sistem Pakar Adapun ciri-ciri sistem pakar diantaranya adalah : a. Bekerja secara sistematis berdasarkan pengetahuan dan mekanisme tertentu. b. c. Pengambilan keputusan berdasarkan kaidah-kaidah tertentu dan dapat merespons masukkan user (melalui kotak dialog). Dikembangkan secara bertahap dan terbatas pada bidang keahlian tertentu saja. d. Outputnya berupa saran atau anjuran. Kategori Sistem Pakar Sistem pakar saat ini telah dibuat untuk memecahkan berbagai macam permasalahan dalam berbagai bidang, seperti matematika, teknik, kedokteran, kimia, farmasi, sains komputer, bisnis, hukum, pendidikan, sampai pertahanan. Secara umum 2.3.5

15

ada beberapa kategori dan area permasalahan sistem pakar, yaitu : a. Interprestasi, yaitu pengambilan keputusan atau deskripsi tingkat tinggi dari sekumpulan data mentah, termasuk diantaranya juga pengawasan, pengenalan ucapan, analisis citra, interprestasi sinyal, dan beberapa analisis kecerdasan. b. Proyeksi, yaitu dari memprediksi situasi-situasi demografis, akibat-akibat tertentu, yang
7

dimungkinkan peramalan,

diantaranya ekonomi,

prediksi

peramalan

prediksi lalu lintas, estimasi hasil, militer, pemasaran, atau peramalan keuangan. c. Diagnosis, yaitu menentukan sebab malfungsi dalam situasi kompleks yang didasarkan pada gejala-gejala yang teramati, diantaranya medis, elektronis, mekanis dan diagnosis perangkat keras dan perangkat lunak komputer. d. Desain, yaitu menentukan konfigurasi komponen-komponen sistem yang cocok dengan tujuan-tujuan kinerja tertentu yang memenuhi kendala-kendala tertentu, diantaranya layout sirkuit dan perancangan bangunan. e. Perencanaan, yaitu merencanakan serangkaian tindakan yang akan dapat mencapai sejumlah tujuan dengan kondisi awal tertentu, diantaranya perencanaan keuangan, komunikasi, militer, pengembangan produk, routing dan manajemen proyek.

Arhami, Muhammad. Konsep Dasar Sistem Pakar. Yogyakarta. 2005, hal 23

16

f.

Pengawasan (Monitoring), yaitu membandingkan tingkah laku suatu sistem yang teramati dengan tingkah laku yang diharapkan darinya, diantaranya Computer Aided Monitoring System.

g.

Pelacakan dan Perbaikan (Debugging and Repair), yaitu menentukan dan mengimplementasikan cara-cara untuk mengatasi malfungsi, diantaranya memberikan resep obat terhadap suatu kegagalan.

h.

Instruksi, yaitu mendeteksi dan mengoreksi defisiensi dalam pemahaman domain subjek, diantaranya melakukan instruksi untuk diagnosis, debugging dan perbaikan kinerja.

i.

Pengendalian,

yaitu

mengatur

tingkah

laku

suatu

environtment yang kompleks seperti kontrol terhadap interprestasi-interprestasi, prediksi, perbaikan dan monitoring kelakuan sistem. j. k. Seleksi, yaitu mengidentifikasi pilihan terbaik dari sekumpulan (list) kemungkinan. Simulasi, yaitu pemodelan interaksi antara komponenkomponen sistem. 2.3.6 Elemen Manusia dalam Sistem Pakar Dalam pengembangan sebuah sistem pakar, faktor manusia ikut menentukan keberhasilan dari sistem pakar tersebut. Adapun faktor manusia yang dimaksud ialah8 :

Durkin, John. Expert System and Development, New York: Macmillan, 1995, hal 476-477

17

a.

Pakar (Domain Expert) Pakar adalah seorang yang mempunyai pengetahuan

khusus, pendapat, keahlian dan metode serta kemampuan untuk menggunakannya. Pakar dapat memberikan nasehat dan

memecahkan masalah. Tugasnya menyediakan pengetahuan tentang bagaimana cara melaksanakan tugasnya untuk kemudian diserap dan diimplementasikan ke dalam sistem pakar. b. Perancang (Knowledge Engineer) Knowledge engineer adalah pihak yang membantu dalam pembuatan sebuah sistem pakar. Knowledge engineer ini bertugas menyerap pengetahuan yang dimiliki oleh para pakar dan mengimplementasikannya ke dalam software sistem pakar. Tugas ini cukup sulit karena knowledge engineer tidak boleh memasukkan perkiraan atau perasaannya ke dalam pengetahuan yang diperoleh. Selain itu seorang knowledge engineer harus pandai mengorek pengetahuan pakar karena adakalanya

seorang pakar tidak dapat menceritakan/menjelaskan semua keahliannya. c. Pemakai (End User) Merupakan manusia yang menggunakan hasil dari

perancangan sistem pakar.

18

2.3.7
9

Alat Pengembangan Sistem Pakar Ada dua jenis alat untuk mengembangkan sistem pakar,

yaitu : a. Bahasa Pemrograman Bahasa tentunya mengacu pada bahasa pemograman yang digunakan oleh komputer untuk membuat suatu perangkat lunak baru. Sistem pakar dewasa ini telah dibuat atau diciptakan dengan berbagai jenis bahasa pemrograman dan bahkan hampir semua bahasa pemograman telah digunakan untuk pembuatan sistem pakar ini, diantaranya BASIC, C, Pascal, FoxPro, Delphi, PHP dan JAVA. Selain itu ada juga bahasa pemrograman yang paling baik untuk sistem pakar yang memang khusus dirancang untuk aplikasi Artificial Intelligence (AI) dan juga dapat digunakan untuk membuat sistem pakar. Bahasa-bahasa tersebut adalah CLIPS, LISP dan PROLOG. b. Shell Shell sistem pakar atau disebut juga generator merupakan paket perangkat lunak yang khusus dibuat untuk membantu pembuatan sistem pakar. Shell merupakan utility terpasang yang bisa mempermudah dan mempercepat proses pengembangan. Beberapa generator sistem pakar sebenarnya adalah sejenis compiler. Sesudah kaidah dimasukkan ke dalam editor, generator

Arhami, M. Konsep Dasar Sistem Pakar. Yogyakarta, Penerbit Andi. 2005, hal 170 (dikutip dari Suparman (1991)).

19

mengkompilasinya ke dalam kode terakhir, kemudian motor inferensi dan user interface menggunakannya. 2.3.8 Kelebihan Sistem Pakar Beberapa kelebihan yang diperoleh dari penggunaan sistem pakar adalah : a. Meningkatkan output dan produktivitas. Sistem pakar dapat bekerja lebih cepat dari manusia. b. c. Meningkatkan kualitas. Sistem pakar menyediakan nasihat yang konsisten dan dapat mengurangi tingkat kesalahan. Handal (Reability). Sistem pakar tidak lelah/bosan, juga konsisten dalam memberi jawaban. d. Merupakan arsip yang terpercaya dari sebuah keahlian, sehingga pengguna seolah-olah berkonsultasi langsung dengan pakar, meskipun sang pakar mungkin sudah pensiun. 2.3.9 Kelemahan Sistem Pakar Selain memiliki kelebihan, sistem pakar juga memiliki kelemahan10 diantaranya adalah : a. Masalah dalam mendapatkan pengetahuan, dimana

pengetahuan tidak selalu bisa didapatkan dengan mudah, karena kadangkala pakar dari masalah yang kita buat tidak ada, dan kalaupun ada kadang-kadang pendekatan yang dimiliki oleh pakar berbeda-beda.

10

Arhami, Muhammad. Konsep Dasar Sistem Pakar, Yogyakarta, 2005, hal. 10-11

20

b.

Untuk membuat suatu sistem pakar yang benar-benar berkualitas tinggi sangatlah sulit dan memerlukan biaya yang sangat besar untuk pengembangan dan pemeliharaannya.

c.

Sistem pakar tidaklah 100% bernilai benar. Oleh karena itu perlu diuji ulang secara teliti sebelum digunakan. Dalam hal ini peran manusia tetap merupakan faktor dominan.

2.3.10 Alasan Pengembangan Sistem Pakar Ada beberapa alasan mendasar mengapa sistem pakar dikembangkan diantaranya: a. Dapat menyediakan kepakaran setiap waktu dan di berbagai lokasi. b. Secara otomatis mengerjakan tugas-tugas rutin yang membutuhkan seorang pakar. c. d. e. Seorang pakar akan pensiun atau pergi. Seorang pakar adalah mahal. Kepakaran dibutuhkan juga pada lingkungan yang tidak bersahabat (hostile environtment). untuk menggantikan seorang pakar11,

2.4 2.4.1

Analisa dan Perancangan Sistem Pengertian Analisa Sistem Tahap analisa sistem dilakukan sebelum tahap desain

sistem dan tahap perancangan sistem. Tahap analisa merupakan tahap yang kritis dan sangat penting, karena kesalahan yang

11

Arhami, Muhammad. Konsep Dasar Sistem Pakar, Yogyakarta, 2005, hal. 7-8

21

terjadi pada tahap ini akan mengakibatkan terjadinya kesalahan pada tahap berikutnya. Analisa sistem adalah suatu penguraian dari suatu sistem informasi yang utuh ke dalam bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasikan permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga 12 dapat diusulkan perbaikkannya . 2.4.2 Tujuan Analisa Sistem Tujuan dari analisa sistem adalah sebagai berikut : a. Agar dapat mengetahui informasi apa saja yang dibutuhkan oleh pemakai sistem yang belum dapat dihasilkan oleh sistem lama. b. Agar dapat menemukan kelemahan-kelemahan yang lama dan dapat diusulkan perbaikkannya. 2.4.3 Pengertian Perancangan Sistem Perancangan sistem adalah kegiatan untuk menentukan bagaimana suatu sistem akan menyelesaikan apa yang harus diselesaikan, tahap ini menyangkut mengkonfigurasikan komponen-komponen perangkat lunak dan perangkat keras suatu sistem, sehingga setelah instalasi atas sistem akan benar-benar memuaskan rancang bangun yang telah ditetapkan pada akhir tahap analisis sistem13. 2.4.4 Tujuan Perancangan Sistem Tujuan perancangan sistem adalah : a.
12

Untuk memenuhi kebutuhan kepada pemakai sistem

Jogiyanto, HM., Analisis & Desain Sistem Informasi Pendekatan Terstruktur Teori dan Praktek Aplikasi Bisnis, ANDI, 2005, Hal. 129 13 Ibid, Hal. 196 (dikutip dari George M. Scott)

22

b.

Untuk memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada pemrogram komputer dan ahli-ahl teknik lainnya yang terlibat. Untuk mencapai tujuan ini, analis sistem harus dapat

mencapai sasaran sebagai berikut : a. Perancangan sistem harus berguna, mudah dipahami dan nantinya mudah digunakan b. Perancangan sistem harus dapat mendukung tujuan utama sesuai dengan yang telah didefinisikan pada tahap perencanaan dan analisis sistem. 2.5 2.5.1 Analisis dan Desain Berorientasi Objek Pengertian Analisis dan desain berorientasi objek adalah metode untuk menganalisa dan merancang sistem dengan pendekatan berorientasi objek. Objek diartikan sebagai suatu entitas yang memiliki identitas, properti dan method atau behavior. Pada analisa, identitas sebuah objek menjelaskan bagaimana seorang user membedakannya dari objek lain, dan behavior objek digambarkan melalui event yang dilakukannya. Sedangkan pada perancangan, identitas sebuah objek

digambarkan dengan cara bagaimana objek lain mengenalinya sehingga dapat diakses, dan behavior objek digambarkan dengan operasi yang dapat dilakukan objek tersebut yang dapat mempengaruhi objek lain dalam sistem.

23

2.5.2

Keuntungan Berikut ini adalah beberapa keuntungan dari analisis dan

desain berorientasi objek : 1. Merupakan konsep umum yang dapat digunakan untuk memodelkan hampir semua fenomena dan dapat dinyatakan dalam bahasa umum (natural language). Kata benda menjadi objek atau class, keterangan menjadi properti atau atribut dan kata kerja menjadi behavior atau method. 2. 3. 4. Memberikan informasi yang jelas tentang konteks dari sistem. Memudahkan untuk mencari hal yang akan diubah. Membuat perubahan pada area lokal tidak berpengaruh pada modul yang lain. 2.6 Pengantar Basis Data Basis data adalah himpunan kelompok data yang saling berhubungan dan diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah14. Merancang basis data merupakan suatu hal yang sangat penting, karena pada basis data inilah basis pengetahuan yang menjadi jantung sistem pakar akan disimpan. Kesulitan utama dalam merancang basis data adalah bagaimana merancang sehingga basis data dapat memuaskan keperluan saat ini dan masa datang. Pada perancangan konseptual akan menunjukkan

14

Fatansyah. Basis Data. Bandung, Informatika. 2007, hal 2.

24

entity dan relasinya berdasarkan proses yang diinginkan oleh suatu institusi. Ketika menentukan entity dan relasinya

dibutuhkan analisis data tentang informasi yang ada dalam spesifikasi di masa mendatang. Pada perancangan model konseptual, penekanan tinjauan dilakukan pada struktur data dan relasi antar file. Pendekatan yang dilakukan pada perancangan model konseptual adalah menggunakan model data relasional. Pada model data relasional hubungan antar file direlasikan dengan kunci relasi (relation key), yang merupakan kunci utama dari masing-masing file. Perancangan basis data yang tepat akan menyebabkan paket program relasional akan bekerja secara optimal. 2.6.1 Entity Relationship Diagram (ERD) Entity Relationship Diagram adalah satu set konsep dan simbol grafis yang dapat digunakan untuk menciptakan skema konseptual 15. memperlihatkan Diagram atau ER merupakan jaringan data yang yang menggambarkan tentang

tersimpan dari suatu sistem serta menggambarkan hubungan antar entitas dalam suatu sistem.

15

Kroenke, M, David. Database Processing Dasar-dasar, Desain dan Implementasi. Erlangga. 2008. hal 38.

25

Entity Relationship Diagram terdiri dari komponenkomponen sebagai berikut : a. Entitas Segala sesuau yang dapat dijelaskan dengan data,

sekelompok benda atau objek. Simbol : b. Atribut Menunjukkan karakteristik dari setiap atau sesuatu yang menjelaskan entitas atau hubugan. Simbol : c. Relasi atau hubungan Adanya hubungan yang terjadi antara satu atau lebih entitas. Simbol : d. Penghubung Media yang menghubungkan atribut dengan kumpulan entitas dan kumpulan entitas dengan relasi. Simbol : 2.6.2 Kardinalitas Kardinalitas merupakan tingkat hubungan yang terjadi dilihat dari segi kejadian atau banyak faktornya hubungan antara entitas pada ERD. Ada tiga kemungkinan hubungan-hubungan yang akan terjadi, yaitu : a. Satu ke satu/one to one (1 : 1) Yaitu tingkatan hubungan dimana satu kejadian entitas yang pertama hanya mempunyai hubungan dengan satu kejadian pada entitas kedua dan sebaliknya.

26

Contoh :

b.

Satu ke banyak/one to many (1 : M) atau banyak ke satu many to one (M : 1) Yaitu tingkatan hubungan dimana satu kejadian pada entitas yang pertama mempunyai hubungan dengan satu atau lebih dari satu kejadian pada entitas kedua dan sebaliknya. Contoh :

c.

Banyak ke banyak/many to many (M : N) Yaitu tingkat hubungan dimana lebih dari satu kejadian pada entitas yang pertama mempunyai hubungan lebih dari satu kejadian pada entitas kedua dan sebaliknya. Contoh :

27

2.5.3

Normalisasi Normalisasi merupakan teknik penyederhanaan relasi-

relasi yang ada pada suatu tabel dengan cara mendefinisikan ulang relasi ke dalam dua atau lebih relasi supaya mempunyai struktur yang tepat dan lebih efektif . Pada saat menormalisasi basis data, ada empat tujuan yang harus dicapai, yaitu : a. b. c. Mengatur data dalam kelompok-kelompok, sehingga masingmasing kelompok hanya menangani bagian kecil sistem. Meminimalkan jumlah data berulang dalam basis data. Membuat basis data yang datanya diakses dan dimanipulasi secara cepat dan efisien tanpa melupakan integritas data. d. Mengatur data sedemikian rupa sehingga ketika
17 16

memodifikasi data, Anda hanya mengubah pada satu tempat. Definisi dari tiap tahap normalisasi : a) Bentuk tidak normal (Unnormalized) Bentuk ini merupakan data yang akan direkam, tidak ada keharusan mengikuti format, dapat saja data tidak lengkap atau terduplikasi.

16

Kroenke, M., David. Database Processing Dasar-dasar, desain dan implementasi, Erlangga, 2008, Hal. 130 17 Paryudi, I & S, Janner. Basis Data. Yogyakarta, Penerbit Andi. 2006, hal 77

28

b)

Bentuk normal pertama (1NF) Bentuk normal pertama mempunyai ciri, yaitu setiap data dibentuk dalam file data, data dibentuk dalam satu record demi satu record dan field-field.

c)

Bentuk normal kedua (2NF) Bentuk normal kedua mempunyai syarat, yaitu bentuk data telah memenuhi kriteria bentuk normal pertama. Atribut bukan kunci harus bergantung secara fungsi pada kunci utama atau primary key.

d)

Bentuk normal ketiga (3NF) Untuk menjadi bentuk normal ketiga, maka relasi haruslah dalam bentuk normal kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Dengan kata lain, semua atribut bukan kunci tergantung secara fungsional hanya pada kunci utama.

e)

Bentuk normal Boyce-Code (BCNF) Bentuk normal Boyce-Code (BCNF) adalah versi 3NF yang lebih teliti dan berhubungan dengan tabel relasional yang mempunyai banyak kunci kandidat, kunci kandidat gabungan dan kunci kandidat yang saling tumpang tindih. BCNF didasarkan pada konsep penentu. Sebuah kolom penentu adalah kolom dimana kolom-kolom lain sepenuhnya

tergantung secara fungsional. f) Bentuk normal keempat (4NF) Normalisasi bentuk keempat didasarkan pada konsep ketergantungan multivalue. Sebuah ketergantungan

29

multivalue terjadi ketika dalam sebuah tabel relasional yang mengandung setidaknya tiga kolom, satu kolom mempunyai banyak baris bernilai sama, tetapi kolom lain bernilai berbeda. g) Bentuk normal kelima (5NF) Bentuk normal kelima dapat dipandang sebagai perluasan dari 4NF, dalam arti saat ini multi-value dependency tidak lagi bersifat independent atau melainkan menjadi bersifat dependent. 2.7 2.7.1 Pengantar Komputer Pengertian Komputer Komputer berasal dari bahasa latin, yaitu computare yang mengandung arti menghitung. Karena luasnya bidang garapan ilmu komputer, para pakar dan peneliti sedikit berbeda dalam mendefinisikan komputer. Pengertian computer menurut Hamacher : Komputer adalah mesin penghitung elektronik yang cepat dan dapat menerima informasi input digital, kemudian memprosesnya sesuai dengan program yang tersimpan di memorinya, dan menghasilkan output berupa informasi. Blissmer mendefiniskan komputer sebagai berikut : Komputer adalah suatu alat elektronik yang mampu melakukan beberapa tugas sebagai berikut : 1. Menerima input 2. Memproses input tadi sesuai dengan programnya 3. Menyimpan perintah-perintah dan hasil dari pengolahan

30

4.

Menyediakan output dalam bentuk informasi.

Sedangkan Fuori berpendapat, komputer adalah suatu pemroses data yang dapat melakukan perhitungan besar secara cepat, termasuk perhitungan aritmatika dan operasi logika, tanpa campur tangan dari manusia. Sehingga secara umum komputer dapat didefinisikan sebagai alat elektronik yang dapat menerima input data, mengolah data, dan memberikan hasil dalam bentuk informasi dengan menggunakan suatu program yang tersimpan di memori komputer dan juga dapat menyimpan program dan hasil pengolahan yang bekerja secara otomatis sehingga akan mempermudah pekerjaan manusia18. Untuk mewujudkan konsepsi komputer sebagai pengolah data dan menghasilkan suatu informasi, maka diperlukan sistem komputer (computer system) yang elemennya terdiri dari hardware, software dan brainware. Ketiga elemen sistem komputer tersebut harus saling berhubungan dan membentuk kesatuan untuk mencapai suatu tujuan. Hardware tidak akan berfungsi apabila tanpa software, demikian juga sebaliknya. Dan keduanya tiada bermanfaat apabila tidak ada manusia

(brainware) yang mengoperasikan dan mengendalikannya.

18

Madcoms. Panduan Lengkap untuk Teknisi Komputer. Yogyakarta. 2008, hal. 1

31

2.7.2

Elemen Komputer Elemen yang sangat berperan sangat penting dalam

penggunaan komputer adalah : a. Hardware (Perangkat Keras) Perangkat keras komputer adalah semua bagian fisik komputer, dan dibedakan dengan data yang berada di dalamnya atau yang beroperasi di dalamnya, dan dibedakan dengan perangkat lunak yang menyediakan instruksi untuk 19 perangkat keras dalam menyelesaikan tugasnya . Perangkat keras juga juga didefinisikan, suatu alat yang bisa dilihat dan diraba oleh manusia secara langsung yang mendukung proses komputerisasi20. b. Software (Perangkat Lunak) Perangkat lunak adalah istilah umum untuk data yang diformat dan disimpan secara digital, termasuk program komputer, dokumentasinya, dan berbagai informasi yang bisa dibaca dan ditulis oleh komputer21. Dengan kata lain, perangkat lunak adalah bagian dari sistem komputer yang tidak berwujud fisik.

19 20

http://id.wikipedia.org/wiki/Perangkat_keras Madcoms. Panduan Lengkap untuk Teknisi Komputer. Yogyakarta. 2008, hal. 1 21 http://id.wikipedia.org/wiki/Perangkat_lunak

32

c.

Brainware (Manusia) Brainware adalah bagian penting dari sebuah sistem komputer. Perangkat keras tidak dapat bekerja tanpat perangkat lunak. Sementara perangkat keras dan perangkat lunak memerlukan brainware untuk menggunakannya. Secara harafiah, brainware dapat diartikan sebagai

perangkat intelektual (dalam hal ini otak manusia) yang mengoperasikan dan mengeksplorasi kemampuan dari perangkat keras dan perangkat lunak yang ada22. 2.8 2.8.1 Pengenalan Java Sejarah Java Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems yang dipimpin oleh James Gosling dan Patrick Naughton sejak tahun 1991, sebuah perusahaan besar di Amerika Serikat. Bahasa ini dikembangkan dengan model yang mirip dengan C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan multiplatform, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Pada mulanya bahasa ini diberi nama Oak oleh James Gosling yang mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan bahasa pemrograman yang telah ada sebelumnya,

22

Madcoms. Panduan Lengkap untuk Teknisi Komputer. Yogyakarta. 2008, hal. 6

33

maka Sun menggantinya dengan Java. Nama Java sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata Java yang mengandung arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java. 2.8.2 Pemrograman Berorientasi Objek Java merupakan bahasa pemrograman yang murni berorientasi objek. Konsep pemrograman berorientasi objek adalah konsep menggabungkan antara data dan fungsi atau prosedur menjadi sebuah kesatuan unit, unit ini dikenal dengan nama class (kelas) dan instance atau implementasi dari class adalah object (objek). Dalam konsep pemrograman berorientasi objek, kita melihat program sebagai sekumpulan objek yang memuat perintah, nilai, metode dan banyak hal lainnya seperti layaknya objek pada kehidupan nyata. Dengan konsep tersebut, kita akan dimudahkan dalam pembuatan program yang kompleks dan dapat berkembang setiap saat. Selain itu, modifikasi program dapat dengan mudah dilakukan karena kita hanya cukup menambahkan objek yang diinginkan, atau menghapus objek yang tidak dibutuhkan. Tiga berorientasi Polymorphism. pilar objek utama adalah dalam konsep pemrograman dan Encapsulation, Inheritance

34

a.

Encapsulation Encapsulation atau Enkapsulasi adalah konsep

membungkus berbagai data dan metode dalam satu class. Namun, tidak semua data atau metode di dalamnya dapat dimanfaatkan. Kita bisa memilah-milah data atau metode tertentu saja yang dapat dipanggil oleh class lain (public), sedangkan metode lainnya hanya dapat diakses dalam satu class (private). Dengan membuatnya tidak bisa diakses dari luar, sama halnya dengan menyembunyikan proses dalam class. Class lain hanya mengetahui output yang dihasilkan dari class tersebut jika dijalankan pada proses input tertentu. b. Inheritance Inheritance atau pewarisan merupakan konsep penurunan sifat, properti ataupun metode yang dimiliki oleh class yang lebih atas (superclass) pada class dibawahnya (subclass). Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, kita hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh suatu class, sementara semua karakteristik yang lebih umum akan didapatkan dari class dimana ia diturunkan. Dalam pemrograman, hal ini akan menghemat jumlah baris kode yang harus ditulis, sekaligus meningkatkan reusability atau

penggunaan kembali dari kode tersebut. c. Polymorphism Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah suatu objek agar

35

melakukan suatu aksi atau tindakan yang mungkin akan memberikan hasil akhir yang serupa, tapi melalui proses yang berbeda. Dalam konsep yang lebih umum seringkali polymorphism disebut dengan istilah satu interface banyak aksi.

2.9

Netbeans IDE Netbeans IDE (Integrated Development Environment)

adalah sebuah program/alat bantu yang terdiri atas Editor, Compiler, Debugger dan Design yang terintegrasi dalam satu aplikasi . Editor Netbeans cukup luar biasa untuk membuat aplikasi Java, karena didukung dengan fasilitas drag and drop komponen. Yaitu dukungan Rapid Application Development (pemrograman berbasis visual). Satu hal lagi yang paling penting adalah produk ini bersifat free atau gratis yang dibuat oleh Sun Microsystem. 2.10 Pengenalan UML24 Pemodelan (modeling) adalah proses merancang peranti lunak (software) sebelum melakukan pengkodean (coding). Model peranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting, karena kita tidak dapat memahami sistem semacam itu secara menyeluruh.
23

23

Huda, Miftahul, 2010, Membuat Aplikasi Database dengan Java, MySQL, dan Netbeans, Jakarta : Elex Media Komputindo, hal. 23 24 Ibid, hal. 137

36

Semakin kompleks sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. 2.10.1 Pengertian UML Unified Modeling Language (UML) adalah sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem peranti lunak. UML adalah salah satu alat bantu yang sangat handal di dunia pengembangan sistem yang berorientasi objek . Secara konsep dasar, UML mendefinisikan delapan diagram sebagai berikut. a. Use Case Diagram Menggambarkan fungsionalitas dari sebuah sistem (apa fungsinya), yang mempresentasikan sebuah interaksi antara aktor dengan sistem (sebuah pekerjaan). Misalnya menambah data/membuat laporan. Aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. b. Class Diagram Class adalah sebuah spesifikasi objek yang memiliki atribut/properti dan layanan/fungsionalitas (metode/fungsi). Class diagram menggambarkan struktur dan deskripsi kelas, package, dan objek beserta hubungan satu sama lain, seperti containment, pewarisan, asosisasi, dan lain-lain. Kelas memiliki tiga hal pokok: Nama (dan stereotype), Atribut, dan Metode.
25

25

Munawar, Pemodelan Visual dengan UML, Yogyakarta : Graha Ilmu, hal. 17

37

c.

Statechart Diagram Diagram ini menggambarkan berbentuk segi transisi empat dan perubahan sudut

keadaan suatu objek akibat dari stimulus/input yang diterimanya. State digambarkan dengan

membulat dan memiliki nama sesuai kondisinya. Transisi antar state umumnya memiliki d. Activity Diagram Diagram ini menggambarkan berbagai aktivitas dalam sistem yang sedang dirancang, mulai dari titik awal, melalui kondisi (decision) yang mungkin terjadi, kemudian sampai titik akhir. Diagram ini juga mampu menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Diagram ini tidak menggambarkan perilaku/proses internal sebuah sistem maupun interaksi antara subsistem, tetapi lebih menggambarkan prosesproses dan jalur-jalur aktivitas secara umum (global). e. Sequence Diagram Diagram ini menggambarkan interaksi antar objek di dalam dan di sekitar sistem berupa pesan yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu. kondisi yang merupakan syarat

terjadinya transisi yang bersangkutan.

38

f.

Collaboration Diagram Collaboration diagram juga menggambarkan interaksi antar

objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian pesan. g. Component Diagram Diagram ini menggambarkan struktur dan hubungan antar komponen peranti lunak, termasuk ketergantungan (depency). Diantaranya modul berisi kode, baik berisi source code, binary, library, executable. h. Deployment Diagram Deployment diagram menggambarkan detail bagaimana komponen dibentuk dan didistribusikan (deploy) dalam

infrastruktur sistem. Dimana komponen akan terletak pada mesin, server atau peranti keras apa. Bagaimana jaringan pada lokasi tersebut tersebut, misalnya server, client dan hal-hal lain yang bersifat fisik. 2.11 MySQL Server 5.1 MySQL adalah sebuah perangkat lunak sistem

manajemen basis data SQL atau yang dikenal dengan DBMS (Database Management System), database ini multithread, multiuser26.

26

Huda, Miftahul, 2010, Membuat Aplikasi Database dengan Java, MySQL, dan Netbeans, Jakarta : Elex Media Komputindo, hal. 181

39

Kekuatan MySQL tidak ditopang oleh sebah komunitas, seperti Apache yang dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh pemilik masing-masing, tetapi MySQL didukung penuh oleh sebuah perusahaan

profesional dan komersial, yakni MySQL AB dari Swedia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual di bawah lisensi komersial untuk kasus-kasus yang bersifat khusus. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya, terutama dalam kecepatan. Berikut ini beberapa keistimewaan MySQL, antara lain : a. Portability MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac OS X Server, Solaris, Amiga dan masih banyak lagi. b. Multiuser MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. c. Security MySQL memiliki beberapa lapisan sekuritas seperti level subnet mask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password yang terenkripsi.

40

d.

Scalability dan Limits MySQL mampu menangani database dalam skala besar,

dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada setiap tabelnya.