bab 2 landasan teori - thesis.binus.ac.idthesis.binus.ac.id/doc/bab2/2009-2-00590-if bab 2.pdf7...
TRANSCRIPT
BAB 2
LANDASAN TEORI
2.1 Rekayasa Perangkat Lunak
Menurut Pressman (2001, p6), yang dimaksud dengan perangkat lunak atau
software adalah :
1) Instruksi (program komputer) yang apabila dieksekusi akan menghasilkan
fungsi dan hasil yang diinginkan.
2) Struktur data yang memungkinkan sebuah program untuk memanipulasi
sebuah informasi.
3) Dokumen yang mendeskripsikan operasi dan kegunaan program.
Dengan kata lain, yang dimaksud dengan perangkat lunak adalah kombinasi dari
program komputer dan struktur data, yang disertai dengan dokumentasi yang
menyediakan metode logika dan prosedur yang diinginkan.
Sedangkan yang dimaksud dengan rekayasa perangkat lunak, menurut Pressman
(2001, p20), adalah aplikasi dan pembelajaran dari pendekatan terhadap pengembangan,
pengoperasian, dan pemeliharaan perangkat lunak, yang sistematik, berdisiplin, dan
dapat diukur. Dengan kata lain rekayasa perangkat lunak adalah penerapan teknik
terhadap perangkat lunak.
6
7
Menurut Pressman (2001, p20), rekayasa perangkat lunak terdiri dari beberapa
tahapan yaitu proses (process), metode (method), dan peralatan (tools). Dasar yang
mendukung rekayasa perangkat lunak adalah fokus pada kualitas. Tahap proses dapat
mendefinisikan sebuah framework dari sejumlah kegiatan penting yang harus dilakukan
untuk menghasilkan teknologi rekayasa perangkat lunak yang efektif. Metode rekayasa
perangkat lunak menyediakan teknik atau cara untuk membangun sebuah perangkat
lunak. Peralatan rekayasa perangkat lunak menyediakan otomatisasi atau semi
otomatisasi yang mendukung proses dan metode.
Otomatisasi adalah penggunaan mesin atau perangkat lunak untuk menjalankan
tugas yang biasa dilakukan oleh manusia.
2.1.1 Karakteristik Perangkat Lunak
Menurut Pressman (2001, p6), perangkat lunak memiliki beberapa karakteristik
sebagai berikut :
1. Perangkat lunak dikembangkan atau dirancang, bukan diproduksi seperti pada
pengertian klasik.
Meskipun terdapatan kemiripan antara pengembangan perangkat lunak dan
produksi perangkat keras (hardware), namun pada dasarnya kedua hal tersebut
adalah berbeda. Keduanya memerlukan desain yang baik untuk mencapai
kualitas tinggi, namun produksi hardware dapat menemukan masalah dalam
kualitas, sedangkan dalam pengembangan perangkat lunak, hal tersebut tidak
terjadi (jika terjadi maka mudah diperbaiki).
2. Perangkat lunak tidak habis dipakai.
8
Pada hardware rusak, terdapat spare part yang dapat menggantikannya.
Sedangkan pada perangkat lunak, tahap pemeliharaan tidak semudah hardware
karena tidak memiliki spare part apapun. Kala perangkat lunak menemukan
kegagalan, berarti terjadi kesalahan pada desain atau proses.
3. Kebanyakan perangkat lunak dibuat sesuai pesanan walaupun industri mengarah
pada perakitan berbasiskan komponen.
Suatu komponen perangkat lunak harus dirancang dan mampu diterapkan pada
berbagai jenis program. Dengan demikian, komponen perangkat lunak tersebut
dapat digunakan berulangkali dan dimanipulasi, sehingga memungkinkan untuk
menghasilkan suatu perangkat lunak yang berbeda.
2.1.2 Model Proses Rekayasa Perangkat Lunak
Menurut Pressman (2001, pp26-45), rekayasa perangkat lunak memiliki
beberapa model proses yaitu linear sequential model, prototyping model, RAD model,
evolutionary software process model (incremental model, spiral model, WINWIN spiral
model, concurrent development model), component-based development, formal methods
model, dan fourth generation techniques (4GT).
Dalam sistem yang akan dikembangkan dan diterapkan pada Artefact, model
proses yang akan digunakan adalah The Linear Sequential Model atau waterfall model.
Analysis Design Code Test
System/information engineering
Gambar 2.1 The Linear Sequential Model
(Roger S. Pressman, 2001, p29)
Model ini meliputi beberapa aktivitas, yaitu :
9
a) System/information engineering and modeling
Suatu perangkat lunak merupakan bagian dari suatu sistem yang besar sehingga
perlu untuk dirancang dan dimodelkan terlebih dahulu. Aktivitas ini menetapkan
kebutuhan semua elemen dari sistem dan mengalokasikannya ke perangkat
lunak.
b) Software requirements analysis
Untuk lebih memahami program yang akan dibuat, maka seorang analis perlu
memahami domain informasi untuk perangkat lunak, fungsi yang dibutuhkan,
behavior, performance, dan interface yang diinginkan, serta membahasnya
bersaman dengan pelanggan.
c) Design
Proses desain merepresentasikan kebutuhan (requirements) untuk
memperkirakan kualitas dari perangkat lunak yang dibuat, sebelum mulai
pengkodean.
d) Code generation
Tahap ini menterjemahkan desain ke dalam bahasa mesin.
e) Testing
Proses testing memastikan bahwa semua statement telah dites, memperbaiki
kesalahan, dan memastikan bahwa input yang diberikan mengeluarkan result
yang telah disetujui.
f) Support
Perangkat lunak pendukung diperlukan dan akan diaplikasikan pada perangkat
lunak utama karena umumnya perangkat lunak utama tersebut akan mengalami
perubahan atau menemukan masalah setelah diaplikasikan oleh pelanggan
10
selama beberapa waktu.
2.2 Sistem Pakar
2.2.1 Definisi Sistem Pakar
Berikut ini merupakan beberapa definisi sistem pakar, yaitu:
1) Sistem pakar adalah suatu program yang mengkomputerisasikan laporan dengan
mencoba menirukan proses pemikiran dan pengetahuan dari pakar atau ahli
dalam memecahkan tipe tertentu dari suatu masalah.
2) Sistem pakar merupakan jembatan penghubung antara orang yang tidak
berpengalaman (awam) dengan pengetahuan dengan cara peralatan seorang ahli
(pakar)
3) Sistem pakar adalah sistem berbasis pengetahuan dimana pengetahuan tersebut
diperoleh dari hasil pengalaman orang-orang yang ahli dibidangnya masing-
masing.
Setelah mengetahui definisi-definisi sistem pakar, maka dapat ditarik suatu
kesimpulan bahwa definisi sistem pakar secara umum adalah suatu aplikasi dari
kecerdasan tiruan yang dapat memecahkan masalah secara lebih tepat, cepat dan mudah.
2.2.2. Ciri-ciri Sistem Pakar
Berikut ini beberapa ciri-ciri dari sebuah sistem pakar, diantaranya adalah:
1) Terbatas pada domain keahlian tertentu.
2) Dapat memberikan penalaran untuk data-data yang tidak pasti.
3) Dapat mengemukakan rangkaian alasan-alasan yang diberikannya dengan cara
11
yang dapat dipahami.
4) Mengacu pada kaidah produksi tertentu.
5) Dirancang untuk dapat dikembangkan secara bertahap,
6) Keluaran hasil bersifat anjuran.
7) Sistem dapat mengaktifkan kaidah secara searah yang dituntun sesuai dengan
dialog pemakai
2.2.3. Struktur sistem pakar
Sistem pakar terdiri dari 2 bagian pokok, yaitu : lingkungan pengembangan
(development environment) dan lingkungan konsultasi (consultation environment).
Lingkungan pengembangan digunakan sebagai pembangun sistem pakar baik dari segi
pembangunan komponen maupun basis pengetahuan. Lingkungan konsultasi digunakan
oleh seseorang yang bukan ahli untuk berkonsultasi.
Gambar 2.2 : Struktur Sistem Pakar
12
2.2.4 Komponen Sistem Pakar
Sistem pakar baru bisa terbentuk dari beberapa komponen yang terdiri dari:
1) Basis Pengetahuan.
Kaidah-kaidah dan fakta-fakta merupakan suatu pengetahuan seorang ahli yang
tersimpan dalam format tertentu. Format atau bentuk yang sering digunakan
adalah kaidah produksi. Setiap kaidah terdiri dari satu atau lebih klausa dan
setiap klausa dapat diindentifikasikan dengan sebuah kalimat berita. Antara
klausa-klausa dalam setiap premis dan konklusi dapat dihubungkan dengan
penghubung.
2) Mesin inferensi (inference engine).
Mesin inferensi merupakan cara kerja seorang ahli yang berupa pikiran dan
pengetahuan dalam penanganan sistem. Secara umum mesin inferensi memiliki
pengetahuan yang sangat luas. Mesin inferensi ini akan menganalisa suatu
masalah tertentu untuk selanjutnya akan mencari kesimpulan yang terbaik,
dengan demikian sistem ini akan dapat menjawab setiap pertanyaan user.
Cara kerja dari mesin inferensi dimulai dari pelacakan, pencocokan kaidah-
kaidah dalam basis pengetahuan dengan fakta-fakta yang ada dalam sebuah basis
data. Terdapat dua buah metode yang dapat membentuk sebuah mesin inferensi,
yaitu metode forward chaining dan metode backward chaining.
3) Antar muka pemakai (user interface).
Antar muka pemakai adalah suatu bagian yang menghubungkan antara program
dan user. Antar muka pemakai harus bisa menerima informasi yang diberikan
oleh pemakai dan memasukkannya kedalam bentuk yang dapat dimengerti oleh
pemakai. Pada bagian ini akan terjadi dialog antara pemakai dengan sistem,
13
sehingga pemakai dapat mengajukan masalah dalam bentuk ya atau tidak.
4) Development Engine.
Development Engine digunakan untuk membangun sebuah sistem pakar, ada data
pendekatan didalam sistem pakar yaitu, bahasa pemrograman dan shell sistem
pakar.
2.2.5 Tipe sistem pakar
Berdasarkan struktur program ada dua tipe sistem pakar:
1. Program Mandiri.
Sistem pakar yang murni berdiri sendiri artinya program utama tanpa
mengandung subroutine memakai algoritma utama.
2. Program Terkait.
Sebuah pakar yang dikelilingi program lain , artinya sebuah subroutine yang
akan dipanggil oleh program utama.
Misalnya memiliki subroutine untuk :
a) perhitungan secara matematis
b) pembuatan grafik
c) keperluan lainnya
2.3 Flowchart (Diagram alir)
Flowchart atau diagram alir adlah sekumpulan simbol-simbol atau skema yang
menunjukkan atau menggambarkan rangkaian kegiatan program dari awal sampai akhir.
Init dari pembuatan flowchart ini adalah penggambaran dari urutan langkah-langkah
pekerjaan dari suatu algoritma.
14
Jogiyanto HM (2006, p662), menyatakan bahwa bagian alir
program( flowchart) adalah bagian yang menggambarkan arus logika dari data yang
akan diproses dalam suatu program dari awal sampai akhir.
Berikut adalah gambar dan fungsi dari simbol-simbol yang digunakan pada flowchart:
No Simbol Fungsi1 Terminal, untuk memulai dan mengakhiri suatu
proses/ kegiatan2 Proses, Suatu yang menunjukan setiap pengolahan
yang dilakukan oleh komputer
3 Input, untuk memasukan hasil dari suatu proses
4 Decision, Suatu kondisi yang akan menghasilkan
beberapa kemungkinan jawaban atau pilihan
5 Display, output yang ditampilkan dilayar terminal
6 Connector, suatu prosedur akan masuk atau keluar
melalui simbol ini dalam lembar yang sama
7 Off Page Connector, merupakan symbol masuk atau
keluarnya suatu prosedur pada kertas lembar lain
8 Arus? Flow, simbol ini digunakan untuk
menggambarkan arus proses dari suatu kegiatan
kegiatan lain9 Hard Disk Storage, input/output yang menggunakan
hardisk
15
10 Predefied Process, untuk menyatakan sekumpulan
langkah proses yang ditulis sebagai prosedur
11 Stored Data, Input/ output yang menggunakan disket
12 Printer, Simbol ini digunakan untuk
menggambarkan suatu dokumen atau kegiatan
mencetak suatu informasi dengan mesin printer
Gambar 2.3 Simbol-simbol Flowchart
16
2.4 Metode Pelacakan dan Penelusuran
Metode pelacakan atau penelusuran adalah penyediaan sebuah jalan atau path
dari beberapa pendekatan tidak langsung yang tersedia untuk memecahkan dan
menyelesaikan persoalan. Metode pelacakan dapat dibedakan menjadi dua cara yaitu:
1) Teknik Pelacakan ke Belakang (Backward Chaining).
Pelacakan kebelakang adalah teknik yang memulai penalaran dari sekumpulan hipotesa
menuju fakta- fakta yang menuju hipotesis. Tujuan sudah ditentukan dan sistem pakar
mencoba menentukan kondisi-kondisi apa saja yang dibutuhkan untuk mencapai tujuan
yang dibutuhkan.
2) Teknik Pelacakan ke Depan (Forward Chaining).
Pelacakan dimulai dari sekumpulan data atau aturan-aturan yang diberikan lalu
melakukan pengecekan terhadap bagian dan aturan-aturan tersebut, apakah kondisi
benar atau salah. Jika kondisinya benar maka bagian lain dari aturan itu juga benar.
Pelacakan dilakukan sampai didapatkan kesimpulan.
Metode penelusuran dapat dibedakan menjadi tiga cara, yaitu:
a) Depth First Search
Depth first search adalah teknik penelusuran data pada node-node secara vertical
dan sudah terdefinisikan, misalnya dari kiri ke kanan (lihat gambar 2.4).
Keuntungan pencarian dengan teknik ini adalah bahwa penelusuran masalah
dapat digali secara mendalam sampai ditemukannya kapasitas suatu solusi yang
optimal. Kekurangan teknik penelusuran ini adalah membutuhkan waktu yang
17
lama untuk ruang lingkup masalah yang besar.
Gambar 2.4 : Penelusuran Data dengan Depth First Search
18
b) Breadth First Search.
Breadth first search adalah teknik penelusuran data pada semua node dalam satu
level atau satu tingkatan sebelum ke level atau tingkatan di bawahnya (lihat
gambar 2.5).
Keuntungan pencarian dengan teknik ini adalah sama dengan depth first search.
Hanya saja penelusuran menggunakan teknik ini mempunyai nilai tambah
dimana semua node akan dicek secara menyeluruh pada setiap tingkatan node.
Gambar 2.5 : Penelusuran Data dengan Breadth First Search
19
c) Best First Search.
Best first search adalah penelusuran yang menggunakan pengetahuan akan suatu
masalah untuk melakukan panduan pencarian kearah node tempat dimana solusi
berada. Pencarian jenis ini dikenal juga sebagai heuristic. 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.
Gambar 2.6 : Penelusuran Data dengan Best First Search
20
2.5 State Transition Diagram (STD)
Menurut Whitten, Bentley, dan Dittman (2004, p673), state transition diagram
adalah alat yang digunakan untuk menggambarkan urutan dan variasi dari layar, yang
dapat muncul selama user session.
Ada beberapa hal yang perlu diketahui dalam pembuatan sebuah STD, yaitu :
1. State
Adalah sebuah kondisi dari keadaan, atau form, yang dapat digunakan oleh
komponen suatu sistem.
Disimbolkan dengan
Ada dua macam state, yaitu :
(1) Current State
Keadaan terkini dari suatu sistem, atau pada state mana suatu sistem
berada saat ini, disebut current state.
(2) Final State
Final state adalah keadaan terakhir yang dapat dicapai oleh suatu sistem.
Contohnya : on atau off.
2. Transition
Merupakan simbol yang menyatakan suatu perubahan dari suatu keadaan ke
keadaan lain. Disimbolkan dengan
3. Event
Adalah suatu kejadian pada suatu lingkungan eksternal yang dapat dideteksi oleh
sistem. Kejadian tersebut dapat menyebabkan perubahan dari satu state ke state
lainnya.
21
4. Action
Saat event muncul, terjadi transisi sehingga komponen sistem menerima
perubahan state. Untuk itu dibutuhkan sebuah aksi untuk berpindah state. Aksi
disini akan menghasilkan sebuah output atau tampilan.
5. Output
Merupakan hasil keluaran dari kalkulasi dan lain sebagainya.
2.6 Data Flow Diagram (DFD)
Menurut Whitten, Bentley, dan Dittman (2004, pp344-345), data flow diagram
adalah pemodelan proses yang menggambarkan aliran data di dalam sebuah sistem dan
serta cara kerja atau proses yang dilakukan oleh sebuah sistem.
Ada tiga simbol dan satu koneksi yang digunakan dalam pembuatan DFD, yaitu :
1.
Persegi yang agak bulat melambangkan proses atau pekerjaan yang harus
diselesaikan.
2.
Persegi melambangkan external agents atau batas dari sistem.
3.
Kotak yang bagian belakangnya terbuka melambangkan penyimpanan data atau sering
disebut dengan database.
4.
22
Anak panah melambangkan aliran data, atau input dan output, menuju dan dari proses.
2.7 Entity Relationship Diagram (ERD)
Menurut Whitten, Bentley, dan Dittman (2004, pp295-307), entity relationship
diagram adalah pemodelan data yang menggunakan beberapa notasi untuk
menggambarkan data yang berhubungan dengan entity dan relationship yang
dideskripsikan oleh data tersebut.
Ada beberapa konsep dasar bagi setiap model data :
1. Entities
Entity adalah sebuah class dari orang, tempat, objek, kejadian, atau konsep mengenai
apa yang diperlukan untuk mengambil dan menyimpan data.
Entity dilambangkan dengan .
Beberapa kategori dari entity adalah sebagai berikut :
a) Orang : vendor, pelanggan, karyawan, dan lain-lain.
b) Tempat : Ruangan, kantor cabang, bangunan, dan lain-lain.
c) Objek : produk, mesin, bahan dasar, dan lain-lain.
d) Kejadian : invoice, pemesanan, penjualan, dan lain-lain.
e) Konsep : stok, dana, account, kualifikasi, dan lain-lain.
2. Attributes
Yang dimaksud dengan attribute adalah karakteristik dari sebuah entity.
3. Domain
Nilai dari tiap atribut didefinisikan ke dalam tiga properti yaitu :
a) Tipe data : properti dari atribut yang mengidentifikasikan tipe data yang
23
dapat disimpan ke dalam atribut.
b) Domain : properti dari atribut yang mendefinisikan nilai apa yang boleh
diambil oleh suatu atribut.
c) Default value : suatu nilai yang akan disimpan apabila nilai tidak
dispesifikasikan oleh user.
4. Identification
Dengan banyaknya instance yang dimiliki oleh suatu entity maka diperlukan suatu key
yang unik untuk mengidentifikasikan setiap instance berdasarkan data dari atribut. Yang
dimaksud dengan key adalah suatu atribut atau sekumpulan atribut yang mengasumsikan
nilai yang unik dari setiap bagian dari entity dan seringkali disebut dengan identifier.
Candidate key adalah salah satu key yang memiliki kemungkinan untuk dijadikan
primary key. Primary key adalah sebuah candidate key yang unik dan
mengidentifikasikan sebuah bagian dari entity.
Alternate key adalah candidate key yang tidak dijadikan primary key.
5. Relationship
Yang dimaksud dengan relationship adalah sebuah hubungan antara satu atau lebih
entity. Cardinality adalah jumlah minimum dan maksimum dari keberadaan suatu entity
yang mungkin direlasikan ke entity lain. Degree adalah sejumlah entity yang
berpartisipasi dalam sebuah relationship. Foreign key adalah sebuah primary key yang
digunakan oleh entity lain untuk mengidentifikasikan instansi dari sebuah relationship.
6. Berikut ini adalah notasi dari cardinality :
a) Tepat satu (satu dan hanya satu) : nilai minimum dan maksimum adalah 1.
b) Nol atau satu : nilai minimum adalah 0 dan nilai maksimum adalah 1.
c) Satu atau lebih : nilai minimum adalah 1 dan nilai maksimum adalah banyak
24
(>1).
d) Nol, satu, atau lebih : nilai minimum adalah nol dan nilai maksimum adalah
banyak (>1).
e) Lebih dari satu : nilai minimum dan maksimum adalah >1.
7. Generalization
Yang dimaksud dengan generalization adalah sebuah konsep dimana atribut-atribut yang
umum bagi beberapa tipe dari entity digrupkan ke dalam entity mereka masing-masing.
2.8 E-Commerce
Electronic Commerce (E-Commerce) didefinisikan sebagai proses pembelian dan
penjualan produk, jasa dan informasi yang dilakukan secara elektronik dengan
memanfaatkan jaringan komputer. Salah satu jaringan yang digunakan adalah internet.
Sementara itu Kalakota dan Whinston (1996, 3-13) mendefinisikan E-Commerce
dari beberapa perspektif, yaitu :
1) Dari perspektif komunikasi, E-Commerce adalah pengiriman informasi,
produk/jasa, atau pembayaran melalui jaringan telepon, atau jalur komunikasi
lainnya.
2) Dari perspektif proses bisnis, E-Commerce adalah aplikasi teknologi menuju
otomatisasi transaksi bisnis dan work flow.
3) Dari perspektif pelayanan, E-Commerce adalah alat yang digunakan untuk
mengurangi biaya dalam pemesanan dan pengiriman barang.
4) Dari perspektif online, E-Commerce menyediakan kemampuan untuk menjual
dan membeli produk serta informasi melalui internet dan jaringan jasa online
lainnya.
25
Selanjutnya Yuan Gao dalam Encyclopedia of Information Science and
Technology (2005), menyatakan E-Commerce adalah penggunaan jaringan komputer
untuk melakukan komunikasi bisnis dan transksaksi komersial. Kemudian di website E-
Commerce Net, E-Commerce didefinisikan sebagai kegiatan menjual barang dagangan
dan/atau jasa melalui internet. Seluruh komponen yang terlibat dalam bisnis praktis
diaplikasikan disini, seperti customer service, produk yang tersedia, cara pembayaran,
jaminan atas produk yang dijual, cara promosi dan sebagainya.
Seluruh definisi yang dijelaskan di atas pada dasarnya memiliki kesamaan yang
mencakup komponen transaksi (pembeli, penjual, barang, jasa dan informasi), subyek
dan obyek yang terlibat, serta media yang digunakan (dalam hal ini adalah internet).
Perkembangan teknologi informasi terutama internet, merupakan faktor
pendorong perkembangan E-Commerce. Internet merupakan jaringan global yang
menyatukan jaringan komputer di seluruh dunia, sehingga memungkinkan terjalinnya
komunikasi dan interaksi antara satu dengan yang lain diseluruh dunia. Dengan
menghubungkan jaringan komputer perusahaan dengan internet, perusahaan dapat
menjalin hubungan bisnis dengan rekan bisnis atau konsumen secara lebih efisien.
Sampai saat ini internet merupakan infrastruktur yang ideal untuk menjalankan E-
Commerce, sehingga istilah E-Commerce pun menjadi identik dengan menjalankan
bisnis di internet.
Pertukaran informasi dalam E-Commerce dilakukan dalam format digital
sehingga kebutuhan akan pengiriman data dalam bentuk cetak dapat dihilangkan.
Dengan menggunakan sistem komputer yang saling terhubung melalui jaringan
telekomunikasi, transaksi bisnis dapat dilakukan secara otomatis dan dalam waktu yang
26
singkat. Akibatnya informasi yang dibutuhkan untuk keperluan transaksi bisnis tersedia
pada saat diperlukan. Dengan melakukan bisnis secara elektronik, perusahaan dapat
menekan biaya yang harus dikeluarkan untuk keperluan pengiriman informasi. Proses
transaksi yang berlangsung secara cepat juga mengakibatkan meningkatnya produktifitas
perusahaan.
Dengan menggunakan teknologi informasi, E-Commerce dapat dijadikan sebagai
solusi untuk membantu perusahaan dalam mengembangkan perusahaan dan menghadapi
tekanan bisnis. Tingginya tekanan bisnis yang muncul akibat tingginya tingkat
persaingan mengharuskan perusahaan untuk dapat memberikan respon. Penggunaan E-
Commerce dapat meningkatkan efisiensi biaya dan produktifitas perusahaan, sehingga
dapat meningkatkan kemampuan perusahaan dalam bersaing.