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. System/information engineering Analysis
Design
Code
Test
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 masingmasing.
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 kaidahkaidah 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 1
Fungsi Terminal, untuk memulai dan mengakhiri suatu
2
proses/ kegiatan Proses, Suatu yang menunjukan setiap pengolahan
3
yang dilakukan oleh komputer 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 9
kegiatan lain Hard Disk Storage, input/output yang menggunakan hardisk
15 10
Predefied Process, untuk menyatakan sekumpulan
11
langkah proses yang ditulis sebagai prosedur 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 ECommerce 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 ECommerce, 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 ECommerce dapat meningkatkan efisiensi biaya dan produktifitas perusahaan, sehingga dapat meningkatkan kemampuan perusahaan dalam bersaing.