BAB II LANDASAN TEORI 2.1.
Sistem Pakar Sistem pakar merupakan cabang dari Artificial Itellegence (AI) yang cukup tua
karena sistem ini mulai dikembangkan pada pertengahan 1960. Sistem pakar yang muncul pertama kali adalah General-purpose Problem Solver (GPS) yang dikembangkan oleh Newel dan Simon. Sampai saat ini banyak sistem pakar yang dibuat, seperti MYCIN untuk diagnosis penyakit, DENDRAL untuk mengidentifikasi struktur molekul campuran yang tak dikenal, XCON dan XSEL untuk membantu konfigurasi sistem komputer besar, SOPHIE untuk analisis sirkuit elektronik, Prospector digunakan di bidang geologi untuk membantu mencari dan menemukan deposit, FOLIO digunakan untuk membantu memberikan keputusan bagi seorang manajer dalam stok dan investasi, DELTA dipakai untuk pemeliharaan lokomotif listrik diesel, dan sebagainya (Sutojo et al, 2011 : 159).
2.1.1.
Pengertian Sistem Pakar Istilah sistem pakar berasal dari istilah knowledge-based expert system. Istilah
knowledge-based expert system muncul karena untuk memasukkan masalah, sistem pakar menggunakan pengetahuan seorang pakar yang dimasukkan ke dalam komputer. Seseorang yang bukan pakar menggunakan sistem pakar untuk meningkatkan kemampuan pemecahan masalah, sedangkan seorang pakar menggunakan sistem pakar untuk knowledge assistant (Sutojo et al, 2011 : 160). Sistem pakar adalah sebuah sistem yang menggunakan pengetahuan manusia dimana pengetahuan tersebut dimasukkan ke dalam sebuah komputer dan kemudian digunakan untuk menyelesaikan masalah-masalah yang biasanya membutuhkan kepakaran atau keahlian manusia (Turban, 2001). Sistem pakar adalah program komputer yang mempresentasikan dan melakukan penalaran dengan pengetahuan beberapa pakar untuk memecahkan masalah atau memberikan saran (Jackson, 1999). Sistem pakar adalah program yang berbasiskan pengetahuan yang menyediakan solusi ‘kualitas pakar’ kepada masalah-masalah dalam bidang (domain) yang spesifik (Luger dan Stubblefield, 1993).
2.1.2.
Ciri-Ciri Sistem Pakar Ciri-ciri sistem pakar adalah sebagai berikut (Sutojo et al, 2011 : 162) :
8
http://digilib.mercubuana.ac.id/
9
a. Terbatas pada domain keahlian tertentu. b. Mampu memberikan penalaran untuk data-data yang tidak lengkap atau tidak pasti. c. Mampu menjelaskan alasan-alasan yang diberikannya dengan cara yang dapat dipahami. d. Bekerja berdasarkan kaidah atau rule tertentu. e. Mudah dimodifikasi. f.
Basis pengetahuan dan mekanisme inferensi terpisah.
g. Keluarannya atau output bersifat anjuran. h. Sistem dapat mengaktifkan kaidah secara searah sesuai, dituntunoleh dialog dengan pengguna.
2.1.3.
Konsep Dasar Sistem Pakar Konsep dasar sistem pakar meliputi : a. Kepakaran (Expertise) Kepakaran merupakan suatu pengetahuan yang diperoleh dari pelatihan, membaca dan pengalaman. Kepakaran memungkinkan para ahli dapat mengambil keputusan lebih cepat dan lebih baik daripada seorang yang bukan pakar. Kepakaran meliputi pengetahuan tentang (Sutojo et al, 2011 : 163) : 1.
Fakta-fakta tentang bidang permasalahan tertentu.
2.
Teori-teori tentang bidang permasalahan tertentu.
3.
Aturan-aturan dan prosedur-prosedur menurut bidang permasalahan umumnya.
4.
Aturan heuristic yang harus dikerjakan dalam suatu situasi tertentu.
5.
Strategi global untuk memecahkan permasalahan.
6.
Pengetahuan tentang pengetahuan (meta knowledge).
b. Pakar (Expert) Pakar adalah seseorang yang mempunyai pengetahuan, pengalaman, dan metode khusus serta mampu menerapkannya untuk memecahkan masalah atau memberi nasihat. Seorang pakar harus mampu menjelaskan dan mempelajari hal - hal baru yang berkaitan dengan topik permasalahan, jika perlu harus mampu menyusun kembali pengetahuan-pengetahuan yang didapatkan dan dapat memecahkan aturan-aturan serta menentukan relevansi kepakarannya. Seorang pakar mampu melakukan kegiatan- kegiatan berikut (Sutojo et al, 2011 : 163) :
http://digilib.mercubuana.ac.id/
10
1.
Mengenali dan memformulasikan permasalahan.
2.
Memecahkan permasalahan secara cepat dan tepat.
3.
Menerangkan pemecahannya.
4.
Belajar dari pengalaman.
5.
Merestrukturisasi pengetahuan.
6.
Memecahkan aturan-aturan.
7.
Menentukan relevansi.
c. Pemindahan kepakaran (Transferring Expertise) Tujuan dari sistem pakar adalah memindahkan kepakaran dari seorang pakar ke dalam komputer, kemudian ditransfer kepada orang lain yang bukan pakar. Proses ini melibatkan empat kegiatan, yaitu (Sutojo et al, 2011 : 164) :
1.
Akusisi pengetahuan (dari pakar atau sumber lain).
2.
Representasi pengetahuan (pada komputer).
3.
Inferensi pengetahuan.
4.
Pemindahan pengetahuan ke pengguna.
d. Inferensi (Inferencing) Inferensi
adalah
sebuah
prosedur
(program)
yang
mempunyai
kemampuan dalam melakukan penalaran. Inferensi ditampilkan pada suatu komponen yang disebut mesin inferensi yang mencakup prosedur-prosedur mengenai pemecahan masalah. Semua pengetahuan yang dimiliki oleh seorang pakar disimpan pada basis pengetahuan oleh sistem pakar. Tugas mesin inferensi adalah mengambil kesimpulan berdasarkan basis pengetahuan yang dimilikinya (Sutojo et al, 2011 : 164). e. Aturan-aturan (Rule) Kebanyakan software sistem pakar komersial adalah sistem yang berbasis rule (rule based systems), yaitu pengetahuan disimpan terutama dalam bentuk rule, sebagai prosedur-prosedur pemecahan masalah (Sutojo et al, 2011:165). f.
Kemampuan Menjelaskan (Explanation Capability) Fasilitas
lain dari
sistem pakar
adalah kemampuannya
untuk
menjelaskan saran atau rekomendasi yang diberikan oleh sistem pakar. Penjelasan dilakukan dalam subsistem yang disebut subsistem penjelasan (explanation). Bagian dari sistem ini memungkinkan sistem untuk memeriksa penalaran yang dibuatnya sendiri dan menjelaskan operasi operasinya (Sutojo et al, 2011 : 165).
http://digilib.mercubuana.ac.id/
11
2.1.4.
Struktur Sistem Pakar Ada dua bagian penting dari sistem pakar, yaitu
lingkungan pengembangan
(development environment) dan lingkungan konsultasi (consultation environment). Lingkungan pengembangan digunakan oleh pembuat sistem pakar untuk membangun komponen-komponenya dan memasukkan pengetahuan ke dalam knowledge base (basis pengetahuan). Lingkungan konsultasi digunakan oleh pengguna untuk berkonsultasi sehingga pengguna mendapatkan pengetahuan dan nasihat dari sistem pakar layaknya berkonsultasi dengan sistem pakar (Sutojo et al, 2011 : 166).
Gambar 2.1 Struktur Sistem Pakar Sumber : Sutojo, T., Mulyanto, Edi. Dan Suhartono, Vincent : 2011
http://digilib.mercubuana.ac.id/
12
Keterangan gambar : : Pemisah
antara
lingkungn
konsultasi
dan
pengembang : Langsung : Komunikasi dua arah : Tidak langsung
Keterangan : a. Akusisi pengetahuan Subsistem ini digunakan untuk memasukkan pengetahuan dari seorang pakar dengan cara merekayasa pengetahuan agar bisa diproses oleh computer dan menaruhnya ke dalam basis pengetahuan dengan format tertentu (dalam bentuk representasi pengetahuan). Sumber-sumber pengetahuan bisa diperoleh dari pakar, buku, dokumen multimedia, basis data, laporan riset khusus, dan informasi yang terdapat di web (Sutojo et al, 2011 : 167). b. Basis pengetahuan (knowledge base) Basis pengetahuan mengandung pengetahuan yang diperlukan untuk memahami, merumuskan dan menyelesaikan malasah. Basis pengetahuan terdiri dari dua elemen dasar, yaitu (Sutojo et al, 2011 : 168) : 1. Fakta, misalnya situasi, kondisi atau permasalahan yang ada. 2. Aturan (rule), untuk mengarahkan penggunaan pengetahuan dalam memecahkan masalah. c. Mesin Inferensi (Inference Engine) Mesin inferensi adalah sebuah program yang berfungsi untuk memandu proses penalaran terhadap suatu kondisi berdasarkan pada basis pengetahuan yang ada, memanipulasi dan mengarahkan kaidah, model dan fakta yang disimpan dalam basis pengetahuan untuk mencapai solusi atau kesimpulan. Dalam prosesnya, mesin inferensi menggunakan strategi pengendalian, yaitu strategi yang berfungsi sebagai panduan arah dalam melakukan proses penalaran. Ada tiga teknik pengendalian yang digunakan, yaitu forward chaining, backward chaining, dan gabungan dari kedua teknink tersebut (Sutojo et al, 2011 : 168). d. Antarmuka pemakai (user interface) Digunakan sebagai media komunikasi antara pengguna dan sistem pakar. Komunikasi ini paling bagus bila disajikan dalam bahasa alami (natural language)
http://digilib.mercubuana.ac.id/
13
dan dilengkapi dengan grafik, menu dan formulir elektronik. Pada bagian ini akan terjadi dialog antara sistem pakar dan pengguna (Sutojo et al, 2011 : 168). e. Daerah kerja (blackboard) Untuk merekam hasil sementara yang akan dijadikan sebagai keputusan dan untuk menjelaskan sebuah masalah yang sedang terjadi, sistem pakar membutuhkan blackboard, yaitu area pada memori yang berfungsi sebagai basis data. Tiga tipe keputusan yang dapat direkam pada blackboard yaitu (Sutojo et al, 2011 : 168) : 1. Rencana : bagaimana menghadapi masalah 2. Agenda : aksi-aksi potensial yang sedang menunggu untuk dieksekusi 3. Solusi : calon aksi yang akan dibangkitkan f.
Sistem perbaikan pengetahuan (knowledge refining system) Subsistem penjelas berfungsi memberi penjelasan kepada pengguna, bagaimana suatu kesimpulan dapat diambil. Kemampuan seperti ini sangat penting bagi pengguna untuk mengetahui proses pemindahan keahlian pakar maupun dalam pemecahan masalah (Sutojo et al, 2011 : 169).
g. Sistem perbaikan pengetahuan (knowledge refining system) Kemampuan memperbaiki pengetahuan (knowledge refining system) dari seorang pakar diperlukan untuk menganalisis pengetahuan belajar dari kesalahan masa lalu, kemudian memperbaiki pengetahuannya sehingga dapat digunakan di masa mendatang. Kemampuan evaluasi diri seperti itu diperlukan oleh program agar dapat menganalisis alasan-alasan kesuksesan dan kegagalannya dalam mengambil kesimpulan. Cara ini dapat menghasilkan basis pengetahuan yang lebih baik dan penalaran yang lebih efektif (Sutojo et al, 2011 : 169).
http://digilib.mercubuana.ac.id/
14
2.1.5.
Tim Pengembangan Sistem Pakar
Project Manager
Knowledge Engineer
Domain Expert
Programmer
Sistem Pakar
End User
Gambar 2.2 Tim Pengembang Sistem Pakar Sumber : Sutojo, T., Mulyanto, Edi. Dan Suhartono, Vincent : 2011
Tim pengembangan sistem pakar terdiri dari (Sutojo et al, 2011 : 170) :
a.
Domain expert adalah pengetahuan dan kemampuan seorang pakar untuk menyelesaikan masalah terbatas pada keahliannya saja.
b.
Knowledge engineer (perekayasa pengetahuan) adalah orang yang mampu mendesain, membangun dan menguji sebuah sistem pakar.
c.
Programmer adalah orang yang membuat program sistem pakar, mengode domain pengetahuan agar dapat dimengerti oleh komputer.
d.
Project manager adalah pemimpin dalam tim pengembangan sistem pakar.
e.
End user (biasanya disebut user saja) adalah orang yang mengggunakan sistem pakar.
2.2.
Rule Sebagai Teknik Representasi Pengetahuan Setiap rule terdiri dari dua bagian, yaitu bagian IF disebut evidence (Fakta-fakta)
dan bagian THEN disebut Hipotesis atau kesimpulan. Syntax Rule adalah : IF E THEN H E : evidence (Fakta-fakta) yang ada H : Hipotesis atau kesimpulan yang dihasilkan
http://digilib.mercubuana.ac.id/
15
Secara umum, rule mempunyai evidence lebih dari satu yang dihubungkan oleh kata penghubung AND atau OR, kombinasi keduanya. Tetapi sebaiknya biasakan menghindari penggunaan AND dan OR secara sekaligus dalam satu rule. IF (E¹ AND E² AND E³……….AND Eⁿ ) THEN H IF (E¹ OR E² OR E³……….OR Eⁿ ) THEN H Satu evidence bias juga mempunyai hipotesis lebih dari satu. IF E THEN(H¹ AND H² AND H³……….AND Hⁿ )
2.3.
Teknik Inferensi Forward Chaining Dan Backward Chaining Pada sistem pakar berbasis rule, domain pengetahuan direpresentasi dalam
sebuah kumpulan rule berbentuk IF-THEN, sedangkan data direpresentasi dalam sebuah kumpulan fakta-fakta tentang kejadian saat ini. Mesin inferensi membandingkan masingmasing rule yang tersimpan dalam basis pengetahuan dengan fakta-fakta yang terdapat dalam database. Jika bagian IF (kondisi) dari rule cocok dengan fakta, maka rule dieksekusi dan bagian THEN (aksi) diletakkan dalam database sebagai fakta baru yang ditambahkan (Sutojo et al, 2011 : 171).
2.3.1. Forward Chaining Forward chaining adalah teknik pencarian yang dimulai dengan fakta yang diketahui, kemudian mencocokan fakta-fakta tersebut dengan bagian IF dari rules IFTHEN. Jika ada fakta yang cocok dengan bagian IF, maka rule tersebut dieksekusi. Bila sebuah rule dieksekusi maka sebuah fakta baru (bagian THEN) ditambahkan ke dalam database. Setiap kali pencocokan, dimulai dari rule teratas. Setiap rule hanya boleh dieksekusi sekali saja. Proses pencocokan berhenti bila tidak ada lagi rule yang bisa dieksekusi (Sutojo et al, 2011 : 171).
2.3.2. Backward Chaining Backward chaining adalah metode inferensi yang bekerja mundur ke arah kondisi awal. Proses diawali dari goal (yang berada dibagian THEN dari rule IF-THEN), kemudian pencarian mulai dijalankan untuk mencocokan apakah fakta-fakta yang ada cocok dengan premis- premis di bagian IF. Jika cocok, rule dieksekusi, kemudian hipotesis di bagian THEN ditempatkan di basis data sebagai fakta baru. Jika tidak cocok, simpan premis di bagian IF ke dalam stack sebagai subgoal. Proses berakhir jika goal ditemukan atau tidak ada rule yang bisa membuktikan kebenaran dari subGoal atau Goal (Sutojo et al, 2011 : 178).
http://digilib.mercubuana.ac.id/
16
2.4.
Metode Penelusuran Menurut Siswanto (2010), Metode Penelusuran pada sistem pakar sebagai berikut
: a. Depth-First Search Teknik penelusuran data pada node-node secara vertikal dan sudah terdefinisikan. Penelusuran dimulai dari simpul awal, kemudian ke simpul paling kiri menjadi simpul yang terdalam, lalu ada proses backtracking ke simpul parent, bila tidak ditemukan goalnya pada simpul yang terdalam, penelusuran dilanjutkan sampai dicapai simpul goalnya. Keuntungan pencarian dengan teknik ini adalah bahwa penelusuran dapat digali dengan secara mendalam sampai ditemukannya kepastian suatu solusi yang optimal. Kekurangan teknik penelusuran ini adalah membutuhkan waktu yang sangat lama untuk ruang lingkup masalah yang besar.
Gambar 2.3 Metode Penelusuran Depth-First Search
b. Breadth-First Search Teknik penelusuran data pada semua node dalam satu level atau satu tingkatan sebelum ke level atau tingkatan di bawahnya. Penelusuran dimulai dari simpul akar dan kemudian bergerak ke simpul paling kiri, lalu penelusuran dilanjutkan ke simpul-simpul yang sama level, bila tidak ditemukan simpul goalnya, penelusuran dilanjutkan pada simpul paling kiri di level, selanjutnya penelusuran dilanjutkan sampai ditemukan simpul goalnya. Keuntungan dengan pencarian teknik ini adalah sama dengan depth-first search, hanya saja penelusuran
http://digilib.mercubuana.ac.id/
17
dengan teknik ini mempunyai nilai tambah, dimana semua node akan dicek secara menyeluruh pada setiap tingkatan node. Kekurangan teknik penelusuran ini terletak pada waktu yang dibutuhkan yang sangat lama apabila solusi berada dalam posisi node terakhir sehingga menjadi tidak efisien. Kekurangan dalam implementasi juga perlu dipertimbangkan, misalnya teknik penelusuran menjadi tidak interaktif antara pemakai dan sistem menyebabkan tidak adanya relasi antara suatu topik dengan topik yang lain atau harus melompat dari topik ke topik yang lain sebelum topik tersebut selesai ditelusuri.
Gambar 2.4 Metode Penelusuran Breadth-First Search
Kedua teknik penelusuran pada pembahasan diatas merupakan teknik dasar penelusuran dalam ruang lingkup masalah yang luas tanpa menggunakan pengetahuan sehingga boleh dikatakan bahwa penelusuran tersebut merupakan penelusuran buta (blind). Ada alternatif lain penelusuran data selain kedua penelusuran tersebut yaitu Best-First Search. Penelusuran
Best-First
Search
adalah
penelusuran
yang
bekerja
berdasarkan kombinasi yang lebih dari metode depth-first search dan breadth-first search. Pencarian jenis ini dikenal juga sebagai heuristik. Pendekatan yang dilakukan adalah mencari solusi yang terbaik berdasarkan pengetahuan yang dimiliki sehingga penelusuran dapat ditentukan harus dimulai dari mana dan bagaimana menggunakan proses terbaik untuk mencari solusi.
http://digilib.mercubuana.ac.id/
18
Keuntungan jenis penelusuran ini adalah mengurangi beban komputasi karena hanya solusi yang memberikan harapan saja yang diuji dan akan berhenti apabila solusi sudah mendekati yang terbaik. Ini merupakan model yang menyerupai cara manusia mengambil solusi, hanya saja solusi yang diambil bisa saja salah dan tidak ada jaminan bahwa solusi yang dihasilkan merupakan solusi yang mutlak benar.
Level 1
A
B
C
E
D
F
H
G
I
Level 2
J
Level 3
GOAL
Gambar 2.5 Metode Penelusuran Best-First Search
2.5.
Pengertian SDLC (System Development Life Cyle) Sebuah sistem informasi bisa dikatakan berjalan dengan baik tentu dengan
pengelolaan pelaksanaan yang baik. Di dalam sistem informasi, dalam pengembangan sistem informasi, ada metode yang paling umum digunakan dikenal dengan istilah SDLC (System Developement Life Cycle). Inilah acuan untuk bisa membangun dan mengelola sebuah sistem informasi yang baik. Pengertian SDLC adalah suatu proses berkelanjutan dari planning, analisis, desain dan implementasi. Yang pada setiap prosesnya dilakukan perbaikan secara bertahap.(Dennis et al, 2012:39)
http://digilib.mercubuana.ac.id/
19
2.5.1.
Model SDLC (Model Waterfall) Model SDLC air terjun (Waterfall) sering juga disebut model sekuensial linier
(sequential linear) atau alur hidup klasik (classic life cycle). Model Air Terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis desain, pengodean, pengujian dan tahap pendukung (support). Berikut gambar model air terjun (waterfall):
Gambar 2.6 Ilustrasi Model Waterfall (Dennis et al 2012)
Berikut tahapan dalam model waterfall : 1. Perencanaan Dalam tahapan ini, menjelaskan dan mengargumentasi untuk melanjutkan proyek yang telah dipilih.Rencana kerja yang matang juga disusun untuk menjalankan tahapan-tahapan lainnya. Pada tahap ini ditentukan secara detail rencana kerja yang harus dikerjakan, durasi yang diperlukan masing–masing tahap, sumber daya manusia, perangkat lunak,dokumentasi, perangkat keras, maupun finansial diestimasi. Pembuatan perencanaan ini bukan langkah mudah karena untuk mengestimasi beban kerja dan durasi dari masing-masing tahap dibutuhkan pengalaman yang cukup banyak. Kesalahan pada tahap ini akan mengakibatkan keuntungan yang diperoleh tidak maksimal, bahkan bisa rugi. Pada tahapan ini peran manajemen sistem informasi berpengalaman sangat dibutuhkan. 2. Analisis Tahap kedua, adalah tahap analisis, yaitu tahap dimana kita berusaha mengenali segenap permasalahan yang muncul pada pengguna dengan mendekomposisi dan
http://digilib.mercubuana.ac.id/
20
merealisasikan komponen – komponen sistem. Tujuan utama dari tahap analisis adalah untuk memahami dan mendokumentasikan kebutuhan bisnis dan persyaratan proses dari sistem baru. Menganalisa kebutuhan sebagai bahan dalam membuat spesifikasi di tahapan selanjutnya. 3. Perancangan Tahap perancangan (design), dimana kita mencoba mencari solusi permasalahan yang didapat dari tahap analis.tahapan mengubah kebutuhan yang masih berupa konsep menjadi spesifikasi sistem yang riil untuk diimplementasikan.Jika pada tahapan analisis (from requirement to specification), maka tahapan desain adalah (from specification to implementation). Jadi, bagaimana membuat spesifikasi yang detail untuk bisa diimplementasikan. 4. Implementasi Tahap implementasi, dimana kita mengimplementasikan perancangan sistem ke situasi nyata. Di sini kita mulai berurusandengan pemilihan perangkat keras dan penyusunan perangkat lunak aplikasi (pengkodean/coding). 5. Sistem Pada tahapan sistem dilakukan pengujian (testing) dan pemeliharaan, yang dapat digunakan untuk menentukan apakah sistem/perangkat lunak yang kita buat sudah sesuai dengan kebutuhan pengguna atau belum. Jika belum, proses selanjutnya adalah bersifat iteratif, yaitu kembali ke tahap – tahap sebelumnya. Tahap pemeliharaan/perawatan di mana kita mulai melakukan pengoperasian sistem dan jika diperlukan melakukan perbaikan – perbaikan kecil. Kemudian jika waktu penggunaan sistem habis, maka kita akan masuk lagi pada tahap perencanaan (design).
2.6.
UML (Unified Modelling Language) UML (Unified Modeling Language) merupakan kosakata umum berbasis objek
dan diagram teknik yang cukup efektif untuk memodelkan setiap proyek pengembangan sistem mulai tahap analisis sampai tahap desain dan implementasi (Dennis et al, 2012:513). UML diaplikasikan untuk maksud tertentu, biasanya antara lain untuk : 1. Merancang perangkat lunak. 2. Sarana komunikasi antara perangkat lunak dengan proses bisnis. 3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang diperlukan sistem.
http://digilib.mercubuana.ac.id/
21
4. Mendokumentasikan sistem yang ada, proses-proses dan organisasinya. Blok pembangun utama UML adalah diagram.Beberapa diagram, ada yang rinci (jenis timing diagram) dan lainnya ada yang bersifat umum (misalnya diagram kelas).Para pengembang
sistem
berorientasi
objek
menggunakan
bahasa
model
untuk
menggambarkan, membangun dan mendokumentasikan sistem yang mereka rancang. UML memungkinkan para anggota team untuk bekerja sama dengan bahasa model yang sama dalam mengaplikasikan beragam sistem. Intinya, UML merupakan alat komunikasi yang konsisten dalam mensupport para pengembang sistem saat ini. Sebagai perancang sekedar membaca diagram UML buatan orang lain.
2.6.1.
Langkah-langkah Penggunaan Unified Modeling Language (UML) Menurut Henderi (2010:6), langkah-langkah penggunaan Unified Modeling
Language (UML) sebagai berikut: 1. Buatlah daftar business process dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul. 2. Petakan use case untuk setiap business process untuk mendefinisikan dengan tepat fungsional yang harus disediakan oleh sistem, kemudian perhalus use case diagram dan lengkapi denganrequirement, constraints dan catatan-catatan lain. 3. Buatlah deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem. 4. Definisikan requirement lain non fungsional, security dan sebagainya yang juga harus disediakan oleh sistem. 5. Berdasarkan use case diagram, mulailah membuat activity diagram. 6. Definisikan obyek-obyek level atas package atau domain dan buatlah sequence dan / atau collaboration untuk tiap alur pekerjaan, jika sebuah use case memiliki kemungkinan alur normal dan error, buat lagi satu diagram untuk masing-masing alur. 7. Buatlah rancangan user interface model yang menyediakan antar muka bagi pengguna untuk menjalankan skenario use case. 8. Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap package atau domain dipecah menjadi hirarki class lengkap dengan atribut dan metodenya. Akan lebih baik jika untuk setiap class dibuat unit test untuk menguji fungsionalitas class dan interaksi dengan class lain. 9. Setelah class diagram dibuat, kita dapat melihat kemungkinan pengelompokkan class menjadi komponen-komponen karena itu buatlah component diagram pada tahap ini.
http://digilib.mercubuana.ac.id/
22
Juga definisikan test integrasi untuk setiap komponen meyakinkan ia bereaksi dengan baik. 10. Perhalus deployment diagram yang sudah dibuat. Detilkan kemampuan dan requirement piranti lunak, sistem operasi, jaringan dan sebagainya. Petakan komponen ke dalam node. 11. Mulailah membangun sistem. Ada dua pendekatan yang tepat digunakan : Pendekatan use case dengan mengassign setiap use case kepada tim pengembang tertentu untuk mengembangkan unit kode yang lengkap dengan test dan pendekatan komponen yaitu mengassign setiap komponen kepada tim pengembang tertentu.
2.6.2.
Fokus Unified Modeling Language (UML) Pemetaan (mapping) Unified Modeling Language (UML) bersifat 2 (dua) arah,
yaitu: 1. Generasi kode bahasa pemrograman tertentu dari Unified Modeling Language (UML) foward engineering (Nugroho, 2010:21). 2. Generasi kode belum sesuai dengan kebutuhan dan harapan pengguna, pengembang dapat melakukan langkah baik bersifat iterative dari implementasi ke Unified Modeling Language (UML) hingga didapat sistem atau piranti lunak yang sesuai dengan harapan pengguna dan pengembang (Henderi, 2010:5).
2.6.3.
Konsepsi Pemodelan Menggunakan Unified Modeling Language (UML) Menurut Henderi (2010:5), Pemodelan menggunakan Unified Modeling
Language (UML) merupakan metode pemodelan berorientasi objek dan berbasis visual. Karenanya pemodelan menggunakan UML merupakan pemodelan objek yang fokus pada pendefinisian struktur statis dan model sistem informasi yang dinamis dari pada mendefinisikan data dan model proses yang tujuannya adalah pengembangan tradisional. UML menawarkan diagram yang dikelompokkan menjadi lima perspektif berbeda untuk memodelkan suatu sistem. Seperti satu set blueprint yang digunakan untuk membangun sebuah rumah.
2.6.4.
Diagram-diagram UML Beberapa literature menyebutkan bahwa UML menyediakan sembilan jenis
diagram. Namun kesembilan diagram ini tidak mutlak harus digunakan dalam pengembangan perangkat lunak, semuanya dibuat sesuai dengan kebutuhan. Diagram
http://digilib.mercubuana.ac.id/
23
yang sering digunakan adalah Diagram Use case, Diagram Aktivitas (Activity Diagram), Diagram Sequence, Diagram Class.
2.6.5.
Use Case Diagram Use case diagram merupakan suatu diagram yang menangkap kebutuhan bisnis
untuk sistem dan untuk menggambarkan interaksi antara sistem dan lingkungannya. (Dennis et al, 2012:513). Komponen pembentuk diagram Use case, adalah :
Tabel 2.1 Notasi Use Case Diagram (Dennis et al:2012)
1. Aktor (actor), menggambarkan pihak-pihak yang berperan disebuah sistem. 2. Use case, aktifitas / sarana yang disiapkan oleh bisnis / sistem. 3. System boundary, adalah sebuah kotak yang mewakili sebuah sistem. 4. Hubungan (link), aktor mana saja yang terlibat dalam Use case, dan bagaimana hubungan Use case dengan Use case lain. ada hubungan antar Use case. Digolongkan menjadi 2 : yaitu extend digambarkan dengan keterangan <<extend>>, dan include digambarkan dengan keterangan <
>, berikut perbedaanya :
http://digilib.mercubuana.ac.id/
24
Tabel 2.2 Perbedaan include dan extend pada Use Case (Dennis et al:2012) Include Use case terpanggil (included use case) selalu diperlukan oleh use case dasar Yang memutuskan kapan dipanggilnya use case included adalah use case dasar
Extend Use case ekstensi tidak selalu dibutuhkan oleh use case dasar Yang memutuskan kapan dipanggilnya use case extend adalah use case extend itu sendiri
Panah hubungan dari use case dasar ke use
use case dasar
case include
2.6.6.
Panah hubungan dari use case extend ke
Aktivity Diagram Pengertian diagram Activity adalah yang menggambarkan alur kerja bisnis
independen dari class, aliran kegiatan dalam Use case, atau desain rinci sebuah metode (Dennis et al 2012 : 516).
Tabel 2.3 Notasi Pemodelan Activity Diagram (Dennis et al, 2012 : 516) Actor
Actor Digunakan untuk melakukan tindakan .
Activity Activity
Digunakan untuk mewakili serangkaian tindakan.
Object Node
Digunakan untuk mewakili suatu objek yang
Class Diagram
terhubung ke satu set Arus Obyek. Control Flow
Menunjukkan urutan eksekusi.
Object Flow
Menunjukkan arus dari sebuah objek dari satu kegiatan (atau tindakan) untuk kegiatan lain (atau tindakan).
http://digilib.mercubuana.ac.id/
------------------>
25
Initial Node
Menggambarkan awal dari serangkaian tindakan
atau kegiatan Initial activity Node
Digunakan untuk menghentikan semua arus kontrol dan arus objek dalam suatu kegiatan (atau tindakan)
Decision Node
Digunakan untuk mewakili kondisi tes untuk memastikan bahwa aliran kontrol atau aliran objek hanya turun satu jalur
Fork Node
Adalah node kontrol yang memiliki satu dan dua atau lebih aliaran keluar.
Join Node
Adalah gabungan dari satu atau lebih activity aliran masuk
Swimline
Digunakan untuk memecah sebuah diagram aktivitas dalam baris dan kolom untuk
Name
menetapkan aktivitas individu (atau tindakan) kepada individu atau benda yang bertanggung jawab untuk melaksanakan kegiatan (atau tindakan)
2.6.7.
Sequence Diagram Sequence Diagram merupakan urutan model dinamis yang menggambarkan
contoh class yang berpartisipasi dalam use case dan pesan yang lewat di antara mereka dari waktu ke waktu. (Dennis et al 2012 : 540) Sequence diagram merupakan diagram interaksi yang disusun berdasarkan urutan waktu. Cara membaca diagram sekuensial dari atas ke bawah. Setiap diagram sekuensial mempresentasikan satu flow dari beberapa flow didalam use case.
http://digilib.mercubuana.ac.id/
26
Tabel 2.4 Notasi Pemodelan Komponen Sequence Diagram (Dennis et al :2012) Term and Definition
Symbol
An Actor (Aktor)
Orang atau sistem yang berasal dari luar sistem yang dapat memberikan manfaat. Berpartisipasi secara berurutan oleh mengirim dan / atau menerima pesan. Ditempatkan dibagian atas diagram.
An Object (sebuah Objek)
Berpartisipasi secara berurutan oleh mengirim dan / atau menerima pesan. Ditempatkan dibagian atas diagram. A Lifeline (sebuah garis hidup)
Menandakan kehidupan sebuah objek selama squance. Berisi sebua X pada titik dimana kelas tidak lagi berinteraksi A Focus of Control (Sebuah Fokus kontorl)
Menandakan sebuah persegi panjang yang sempit ditempatkan diatas sebuah garis hidup. Menandakan ketika suatu objek mengirim atau menerima pesan.
A Massege (sebuah Pesan)
Menyampaikan informasi dari satu objek ke objek yang lain.
Object destruction (Objek Penghabisan)
2.6.8.
Merupakan sebuah X ditempatkan pada akhir suatu garis hidup untuk menunjukkan bahwa itu akan keluar dari eksistensi. Class Diagram Class Diagram adalah ilustrasi hubungan antara class yang dimodelkan didalam
sistem. Class Diagram sangat mirip dengan diagram hubungan entitas (ERD). Diagram class menggambarkan class yang meliputi atribut, perilaku dan states, sementara dalam ERD hanya mencakup atribut. (Dennis et al 2012:513). Komponen class diagram :
http://digilib.mercubuana.ac.id/
27
Tabel 2.5 Komponen Class Diagram (Dennis et al :2012) Term and Definition
Symbol
A Class (sebuah class)
Mewakili jenis orang, tempat atau hal yang sistem harus menangkap dan menyimpan informasi. Memiliki nama yang diketik dengan huruf tebal dan berpusat diatas kompartemen. Memiliki daftar atribut ditengah Kompartemen. Memiliki daftar operasi
An Attribut (sebuah atribut)
Merupakan sifat yang menggambarkan bagian suatu objek Dapat diturunkan dari atribut lain, ditunjukkan oleh penempatan garis miring sebelum nama atribut.
Attribut name / derived attribut name
A Method (sebuah metode)
Merupakan tindakan atau fungsi bahwa sebuah class dapat melakukan. Dapat diklasifikasikan sebagai konstruktor, query, atau memperbaharui operasi. Termasuk tanda kurung yang mungkin mengandung parameter khusus atau informasi yang dibutuhkan untuk melakukan operasi. An Association (sebuah asosiasi)
Merupakan hubungan antara beberapa class atau class dirinya sendiri. Diberi label oleh kata kerja frase mana yang merupakan hubungan yang tepat. Bisa ada diantara satu atau lebih class Berisi banyaknya simbol yang mewakili minimum dan maximum misalnya waktu class dapat dikaitkan dengan contoh class lain.
Operation name ()
1..* verb phrase 0..1
Class diagram menggambarkan class dan hubungan antar-class didalam sistem.Class diagram dibangun berdasarkan use case diagram, sequence diagram, atau collaboration diagram yang telah dibuat sebelumnya. Diagram class memberikan pandangan secara luas dari suatu sistem dengan menunjukkan kelas-kelasnya dan hubungan mereka.
http://digilib.mercubuana.ac.id/
28
Diagram Class bersifat statis, menggambarkan hubungan apa yang terjadi bukan apa yang terjadi jika mereka berhubungan. Sebuah Class memiliki tiga area pokok : 1. Nama, merupakan nama dari sebuah kelas. 2. Atribut, merupakan properti dari sebuah kelas. Atribut melambangkan batas nilai yang mungkin ada pada obyek dari class. 3. Operasi, adalah sesuatu yang bias dilakukan oleh sebuha class atau yang dapat dilakukan oleh class lain terhadap sebuah class.
2.7.
Pengertian Basis Data Menurut Fathansyah (2012:2), Basis data terdiri atas dua 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, keadaan, dan sebagainya yang direkam dalam bentuk angka, simbol, teks, gambar, bunyi, atau kombinasinya. Sebagai satu kesatuan istilah, Basis data (database) sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti : a. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. b. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu untuk memenuhi berbagai kebutuhan. c. Kumpulan file / table / arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. Basis data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip utamanya adalah pengaturan data / arsip. Tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan kembali data / arsip. Perbedaannya hanya terletak pada media penyimpanan yang digunakan.Jika lemari arsip menggunakan lemari dari besi atau kayu sebagai media penyimpanan, maka basis data menggunakan media penyimpanan elektronis sebagai disk (disket atau harddisk). Satu hal yang juga harus diperhatikan, bahwa basis data bukan hanya sekedar penyimpanan data secara elektronis (dengan bantuan komputer). Artinya, tidak semua bentuk penyimpanan data secara elektronis bisa disebut basis data. Kita dapat menyimpan dokumen berisi data dalam file teks (dengan program pengolah kata), file spread sheet, dan lain-lain, tetapi tidak bisa disebut sebagai basis data karena didalamnya tidak ada
http://digilib.mercubuana.ac.id/
29
pemilahan dan pengelompokkan data sesuai jenis / fungsi data, sehingga akan menyulitkan pencarian data kelak.
2.8.
Pengertian PHP PHP (PHP, Hypertext Preprocessor) adalah bahasa server side scripting yang
menyatu dengan HTML untuk membuat halaman web yang dinamis, karena PHP merupakan server side scripting maka sintaks dan perintah-perintah PHP akan dieksekusi di server kemudian hasilnya dikirimkan ke browser dalam format HTML. Dengan demikian kode program yang ditulis dalam PHP tidak akan terlihat oleh user sehingga keamanan halaman web lebih terjamin.
2.8.1.
Kelebihan dan Kelemahan PHP Setiap program mempunyai kelebihan dan kekurangan. Beberapa keunggulan dan
kelemahan yang dimiliki PHP adalah :
Tabel 2.6 Kelebihan dan Kelemahan PHP (Sukarno, 2010 : 25) Kelebihan
Kelemahan
PHP dapat digunakan pada semua sistem
Tidak detail untuk pengembangan skala
operasi
besar
PHP mampu berjalan di beberapa
Tidak memiliki sistem pemrogaman
Webserver yang ada
berorientasi objek yang sesungguhnya
PHP mendukung akses ke beberapa
PHP memiliki kelemahan security tertentu
database yang sudah ada
apabila programmer tidak jeli dalam melakukan pemrogaman dan kurang memperhatikan isu konfigurasi PHP
PHP bersifat free atau gratis.
Kode PHP dapat dibaca semua orang, dan kompilasi hanya dapat dilakukan dengantool yang mahal dari Zend.
2.9.
Pengertian MySQL MySQL adalah salah satu jenis database server yang sangat terkenal dan banyak
digunakan untuk membangun aplikasi web yang menggunakan database sebagai sumber dan pengelolaan datanya. Kepopuleran MySQL antara lain karena MySQL menggunakan SQL sebagai bahan dasar untuk mengakses database-nya sehingga memudahkan untuk
http://digilib.mercubuana.ac.id/
30
digunakan, kinerja query cepat, dan mencukupi untuk kebutuhan database perusahaanperusahaan skala menengah kecil. MySQL juga bersifat open source dan free. MySQL merupakan database yang pertama kali didukung oleh bahasa pemograman script untuk internet (PHP dan Perl).MySQL dan PHP dengan sebagai pasangan software pengembangan aplikasi web yang detail.MySQL lebih sering digunakan untuk membangun aplikasi berbasis web, umumnya pengembangan aplikasinya menggunakan bahasa pemrogaman script PHP. (M. Rudyanto Arief, 2011:151).
menunjukkan
untuk membuat
memilih bahasa
database
database baru
yang digunakan
Gambar 2.7 Tampilan PHP MyAdmin (Rudyanto Arief, 2011 :152)
2.10.
Pengertian Pengujian Perangkat Lunak Pengujian perangkat lunak adalah sebuah proses yang dikatakan sebagai siklus
hidup dan merupakan bagian dari proses rekayasa perangkat lunak secara terintegrasi demi memastikan kualitas dari perangkat lunak serta memenuhi kebutuhan teknis yang telah disepakati dari awal (Rizky, 2011 : 14). Pengujian perangkat lunak merupakan elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada
http://digilib.mercubuana.ac.id/
31
kualitas perangkat lunak melibatkan sederetan aktivitas produksi dimana peluang terjadinya kesalahan manusia sangat besar,guna memotivasi dilakukannya perencanaan pada pengujian yang baik melalui pengujian yang teliti. Alasan utama yang mengapa pengujian (testing) perangkat lunak harus dilakukan adalah berdasarkan atas dua hal yaitu: 1. Software Requirement atau kebutuhan data yang harus dipenuhi perangkat lunak. 2. Software Quality atau kualitas perangkat lunak.
2.11.
Prinsip Pengujian Sebelum mengaplikasikan metode pengujian, seseorang harus memahami dasar
dari prinsip perangkat lunak yang menuntun pengujian perangkat lunak lebih baik dan efisien dalam tahap pengujian. Berikut serangkaian prinsip pengujian : a. Semua pengujian harus dapat ditelusuri dari persyaratan requirement awal. b. Pengujian harus mulai dari terkecil dan berkembang ke pengujian yang besar. Agar lebih efektif, pengujian harus dilakukan oleh pihak ketiga independen dan berpengalaman.
2.12.
Metode Pengujian Metode pengujian adalah proses cara mengeksekusi suatu program dengan
maksud menemukan kesalahan. Metode Pengujian dalam pengetesan sistem terbagi menjadi dua macam, yaitu yang pertama adalah metode Black Box, dan White Box (glass box).
2.12.1. Metode Black Box Menurut (Roger S. Pressman : 2010), Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black-box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black-box bukan merupakan alternative dari teknik white-box, tetapi merupakan pendekatan komplementor yang kemungkinan besar mampu mengungkap kesalahan dari pada metode white-box. Pengujian black-box berusaha menemukan kesalahan dalam kategori sebagai berikut : 1. Fungsi-fungsi yang tidak benar atau hilang. 2. Kesalahan interface.
http://digilib.mercubuana.ac.id/
32
3. Kesalahan dalam stuktur data atau akses database eksternal. 4. Kesalahan kinerja. 5. Inisialisasi dan kesalahan terminasi. Pengujian program aplikasi dilakukan dengan metode Black Box Testing. Metode Black Box Testing ini merupakan pengujian berdasarkan fungsi dari program. Tujuan dari metode Black Box Testing ini adalah untuk menemukan kesalahan fungsi pada program.
2.12.2. Metode White Box White Box testing secara umum merupakan jenis testing yang lebih berkonsentrasi terhadap “isi” dari perangkat lunak itu sendiri. Jenis ini lebih banyak berkonsentrasi kepada source code dari perangkat lunak yang dibuat sehingga membutuhkan proses pengetesan yang jauh lebih lama dan lebih ‘mahal’ dikarenakan membutuhkan ketelitian dari para tester serta kemampuan teknis pemrograman bagi para tester-nya (Rizky, 2011). Prinsip dari keluaran tipe pengetesan ini adalah: 1. Menjamin bahwa semua alur program yang independen (dalam bentuk modul, form, procedure, class, dan lainnya) telah diuji minimal satu kali. 2. Menjamin telah melakukan pengujian terhadap semua kondisi percabangan dengan nilai true dan false. 3. Telah melakukan testing terhadap semua jenis perulangan dengan kondisi normal dan kondisi yang dianggap melampaui batas perulangan (umumnya kondisi yang melampaui batas harus diatasi oleh prosedur tertentu). Telah melakukan pengujian terhadap struktur data internal (seperti variabel) agar terjaga validasinya, karena validasi sangat menentukan layaknya kolom-kolom yang mandatory harus diisi, pemberian peringatan ketika user melakukan kesalahan dalam penginputan agar saat penyimpanan ke database sudah benar dan telah melewati tahap validasi yang telah diberikan.
2.13.
Penjadwalan Pengujian Perangkat Lunak Penjadwalan
pengujian
perangkat
lunak
merupakan
aktivitas
yang
mendistribusikan usaha estimasi pada durasi pengujian yang direncanakan dengan mengalokasikan usaha untuk tugas rekayasa perangkat lunak tertentu. Penting untuk dicatat bahwa jadwal berkembang melampaui waktu akan membuat kemunduran waktu pada aktivitas pengetesan yang sudah dijadwalkan sebelumnya, dan akhirnya usaha pendistribusian memaksimalkan sumber-sumber daya,
http://digilib.mercubuana.ac.id/
33
dan suatu tanggal akhir yang telah dianalisis dan ditentukan akhirnya tidak menjadi efisien. Resiko ketertinggalan waktu juga berdampak pada perencanaan awal yang telah disusun sebelumnya. Agar lebih teratur, alokasi waktu setiap tugas yang dijadwalkan harus dialokasikan dalam sejumlah satuan kerja (misal person-day activity). Sebagai tambahan, pada setiap tugas yang harus ditetapkan tanggal mulai dan tanggal selesai yang merupakan fungsi dari saling ketergantungan, serta apakah kerja akan dilakukan secara penuh waktu atau paruh waktu.
http://digilib.mercubuana.ac.id/