BAB 2
TINJAUAN PUSTAKA
2.1. Teori Umum Berikut merupakan teori-teori umum dan khusus yang digunakan dalam penulisan skripsi ini: 2.1.1 Perangkat Lunak Menurut Pressman (2010, pp. 4), Definisi perangkat lunak adalah sebagai berikut: 1.
Sekumpulan perintah (program komputer) yang bila dieksekusi akan memberikan fitur, fungsi, dan kinerja yang diinginkan.
2.
Struktur-struktur data
yang memungkinkan program untuk
memanupulasi informasi. 3.
Dokumen yang menggambarkan operasi dan kegunaan dari suatu program. Komponen metodologi pengembangan perangkat lunak dapat
dibagi dalam empat unit:
Gambar 2.1 Software Engineering Layer (Sumber: Software Engineering a Practitioner’s Approach Pressman, 2010: 14)
5
6 1.
Berfokus pada kualitas Semua pendekatan dengan teknik apapun pada rekayasa perangkat
lunak
harus
berdasarkan
pada
standar
yang
mengutamakan kualitas. Pondasi dasar dan utama yang mendukung rekayasa perangkat lunak yang baik yaitu berfokus pada kualitas. 2.
Proses Proses rekayasa perangkat lunak adalah perekat yang memegang
lapisan
teknologi
bersama
dan
memungkinkan
pengembangan rasional dan tepat waktu dari perangkat lunak komputer. Proses mendefinisikan kerangka kerja untuk satu set area proses kunci yang harus dibentuk untuk pengiriman yang efektif dari teknologi rekayasa perangkat lunak. Bidang utama membentuk dasar bagi kontrol manajemen proyek perangkat lunak dan menetapkan konteks dimana metode teknis telah diterapkan, produk kerja telah dihasilkan, milestone telah dibangun, kualitas dijamin, dan perubahan dikelola dengan baik. 3.
Metode Metode rekayasa perangkat lunak memberikan teknik bagaimana membangun perangkat lunak. Metode mencakup array yang luas dari tugas-tugas yang mencakup analisis kebutuhan, desain, konstruksi program, pengujian dan dukungan, rekayasa perangkat lunak relay metode pada serangkaian prinsip dasar yang mengatur setiap area teknologi dan termasuk aktivitas pemodelan dan teknik deskriptif lain.
4.
Peralatan Alat rekayasa perangkat lunak memberikan dukungan otomatis atau semi-otomatis untuk proses atau metode. Ketika alat terintegrasi sehingga informasi yang dibuat oleh satu alat yang dapat digunakan oleh yang lain, sebuah sistem untuk mendukung pengembangan perangkat lunak, yang disebut Computer-Aided Software Engineering didirikan. CASE menggabungkan software,
7 hardware, dan database software engineering untuk membuat lingkungan rekayasa perangkat lunak untuk analog CAD / CAE (Computer-Aided Design / Engineering) untuk hardware. 2.1.2 Metode Pengembangan Prototyping Menurut Pressman (2010, pp. 43), prototyping merupakan metode pengembangan terbaik saat para stakeholder mendefinisikan satu set tujuan umum untuk perangkat lunak, tetapi tidak mengidentifikasi persyaratan rinci untuk fungsi dan fitur.
Gambar 2.2 Prototyping Paradigma (Sumber: Software Engineering a Practitioner’s Approach - Pressman, 2010: 43) Metode prototyping dimulai dari tahap communication. Tim pengembang perangkat lunak melakukan pertemuan dengan para stakeholder untuk mengidentifikasi secara garis besar kebutuhan apa saja yang sudah diketahui, dan bagian mana yang penting. Perencanaan
pembuatan
prototyping dilakukan
secara cepat.
Setelah itu dilakukan pemodelan dalam bentuk “rancangan cepat”. Pembuatan rancangan cepat berdasarkan pada representasi aspek-aspek perangkat lunak yang akan terlihat oleh para end user (misalnya
8 rancangan interface atau format tampilan output). Rancangan cepat merupakan dasar untuk memulai konstruksi pembuatan prototyping. Prototyping kemudian diserahkan kepada para stakeholder untuk mengevaluasi prototype yang telah dibuat sebelumnya dan memberikan umpan-balik yang akan digunakan untuk memperbaiki spesifikasi kebutuhan. Pengulangan terjadi saat pengembang melakukan perbaikan terhadap prototyping tersebut. Kelebihan prototyping 1. Adanya komunikasi yang baik antara pengembang dan pelanggan. 2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan. 3. Lebih menghemat waktu dalam pengembangan sistem. 4. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya. 2.1.3 Software Testing Menurut Pressman (2010, p482) tujuan dari pengujian adalah untuk menemukan dan memperbaiki sebanyak mungkin kesalahan dalam program sebelum menyerahkan program kepada customer. Salah satu pengujian yang baik adalah pengujian yang memiliki probabilitas tinggi dalam menemukan kesalahan. a. Strategy testing Menurut Pressman (2010, pp. 450), Sebuah strategi untuk pengujian perangkat lunak harus menyertakan uji tingkat rendah untuk memverifikasi bahwa source code telah di implementasi dengan benar serta uji tingkat tinggi untuk memvalidasi fungsi system utama terhadap kebutuhan stakeholder. Strategi harus memberikan panduan bagi praktisi dan satu kumpulan milestones untuk manager.
9 1. Unit testing in the OO context Uji unit dalam kontek OO tidak melakukan uji pada tiap modul secara individual seperti uji unit dari perangkat lunak konvensional, namun unit terkecil yang diuji adalah class atau object yang dienkapsulasi. Testing class untuk software OO sama dengan uji unit untuk software konvensional. uji software konvensional lebih berfokus pada detil algoritma dari modul dan aliran data sepanjang interface modul, uji class untuk software OO ditentukan oleh operasi dari class yang dienkapsulasi dan tingkah laku dari class.
2. Integration testing in the OO context Pengujian integrasi adalah pengujian terhadap unit-unit program yang saling terintegrasi dengan fokus pada masalah interfacing. Menurut Pressman (2010, pp. 516), terdapat dua strategi pengujian integrasi dari perangkat lunak object-oriented: a. Thread-based testing Mengintegrasikan sekumpulan class yang dibutuhkan untuk merespon satu input atau event. Setiap thread diintegrasikan dan diuji secara individual. b. Use-based testing Konstruksi sistem dimulai dengan menguji class-class yang menggunakan class server paling sedikit (independent class). Setelah pengujian independent class, dilanjutkan dengan pengujian dependent class yaitu class yang menggunakan independent class yang sudah diuji. Pengujian dependent class dilakukan terus sampai keseluruhan sistem dibangun.
10 3. Validation testing in the OO context Validasi pada software OO berfokus pada aksi user dan output dari system. Untuk membantu dalam pengujian validasi, penguji harus menggunakan use cases yang merupakan bagian dari requirements model. 4. System testing System testing adalah serangkaian pengujian dengan tujuan utamanya untuk menjalankan seluruh elemen sistem yang dikembangkan.
b. Metode Testing
1. White-Box Testing Menurut Pressman (2010, pp. 485), pengujian White-box atau
Glass-box
menggunakan
adalah
struktur
metode kontrol
test-case desain
desain
yang
procedural
untuk
memperoleh test-case. Dengan menggunakan metode pengujian white-box, perekayasa system dapat memperoleh test-case yang: a. Memberikankan jaminan bahwa semua jalur independent pada suatu modul telah digunakan paling tidak satu kali. b. Menggunakan semua keputusan logis dari sisi true dan false. c. Mengeksekusi
semua
batas
fungsi
loops
dan
batas
operasionalnya. d. Menggunakan struktur internal untuk menjamin validitasnya.
2. Black-Box Testng Black-box testing merupakan pengujian yang berpusat pada kebutuhan fungsional perangkat lunak dimana memungkinkan untuk memperoleh sekumpulan kondisi input yang secara penuh memeriksa fungsional dari sebuah aplikasi. Black-box testing berusaha menemukan kesalahan-kesalahan seperti kesalahan
11 fungsi dan kesalahan tampilan aplikasi. Black-box testing dapat digunakan untuk menguji aplikasi konvensional dan aplikasi yang berorientasi objek (Pressman, 2010).
2.1.4 Database
A. Database System Database system adalah kumpulan aplikasi program yang berhubungan dengan database bersama dengan DBMS dan database itu sendiri (Connolly and Begg, 2015: p52). B. Database Menurut Connolly and Begg (2015, p63), Database adalah kumpulan data yang terbagi dan saling terhubung secara logikal dan deksripsinya yang dirancang untuk memenuhi kebutuhan informasi dari organisasi. Dalam basis data, terdapat tiga istilah penting, yakni entitas, atribut, dan Relationship. Entitas adalah sebuah objek berbeda (bisa seseorang, tempat, sesuatu, konsep, ataupun kejadian) dalam organisasi yang harus direpresentasikan dalam basis data. Atribut adalah sebuah properti yang mendeskripsikan beberapa aspek dari objek yang ingin di-record. Relationship adalah asosiasi antar entitas (Connolly, 2015, p63). C. Database Management System (DBMS) Menurut Connolly dan Begg (2015, p64), Database Management System (DBMS) adalah suatu sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, membuat, memelihara dan mengatur akses ke database. DBMS memungkinkan user untuk mendefinisikan database menggunakan Data Definition Languange (DDL), serta melakukan insert, update, delete dan mendapatkan data dari database
12 menggunakan Data Manipulation Language (DML). Selain itu, fasilitas yang melayani pengaksesan data disebut query language. 1.
Structure Query Language (SQL) Menurut Connolly dan Begg (2015, p191), SQL adalah sebuah bahasa yang mucul akibat dari pengembangan model relasional, yang secara de facto menjadi bahasa standar relasi database.
2.
Data Definition Language (DDL) Menurut Thomas Connolly dan Begg (2015, p.65) DDL mengizinkan user untuk menspesifikasikan tipe data dan struktur serta batasan mengenai data yang bisa disimpan ke dalam database.
3.
Data Manupulation Language (DML) Menurut Thomas Connolly dan Begg (2015, p.92) DML merupakan bahasa yang menyediakan satu set operasi untuk mendukung operasi manipulasi data pada database.
2.1.5 Object Oriented Programming Object Oriented Programming adalah paradigma pemrograman yang memandang perangkat lunak sebagai kumpulan objek yang saling berinteraksi di dalam suatu sistem. (Azis, 2005, p. 2). Salah satu keuntungan dari object oriented programming dibandingkan
procedural
programming
adalah
memungkinkan
pengembang aplikasi untuk membuat fungsi yang tidak perlu diubah ketika sebuah objek dengan tipe berbeda ditambahkan. Seorang pengembang aplikasi hanya perlu membuat objek baru yang mewarisi beberapa fungsi atau tipe data dari objek yang sudah ada (inheritance). Pemrograman berorientasi objek (Object Oriented Programming) menekankan konsep sebagai berikut:
13 1.
Class merupakan sekumpulan objek yang memiliki atribut-atribut dan method. (Lethbridge & Laganiere, 2005, pp. 31-33). Class merupakan penggambaran dari sebuah objek atau sifat objek dan juga apa yang bisa dilakukan oleh objek tersebut. Ada juga yang disebut dengan superclass, sebuah class induk yang nantinya mempunyai class-class yang terdiri dari class dan subclass. (Lethbridge & Laganiere, 2005, p. 53).
2.
Objek dalam OOP adalah sebuah suatu bentuk dari class. Objek menggambarkan
kemampuan
untuk
menyimpan
informasi
mengenai hal tersebut, berinteraksi dengan hal tersebut atau keduanya.
3.
Encapsulation/pengkapsulan, yang merupakan pembatasan ruang lingkup program terhadap data yang diproses supaya data terlindungi oleh prosedur atau objek lain, kecuali prosedur yang berada di objek itu sendiri. (Lethbridge & Laganiere, 2005, p. 53).
4.
Polymorphism adalah konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku yang berbeda, bahwa operasi yang sama mungkin memiliki perbedaan dalam class yang berbeda. (Lethbridge & Laganiere, 2005, p. 38).
5.
inheritance (pewarisan), yaitu kepemilikan yang bersifat implisit dari fitur subclass yang didefinisikan dalam superclass. Fitur tersebut mencakup variables dan method. (Lethbridge & Laganiere, 2005, p. 39).
2.1.6 Unified Modeling Language (UML) Berdasarkan Whitten dan Bentley (2007: 371), Unified Modeling Language adalah sekumpulan konvensi pemodelan yang digunakan untuk mengspesifikasikan atau mendeskripsikan perangkat lunak berdasarkan obyek.
14 A. Use case diagram Use Case Diagram adalah diagram UML yang berguna untuk memberikan penjelasan mengenai fungsi suatu sistem yang sedang dikembangkan kepada user menggunakan istilah-istilah yang mudah dimengerti (bukan merupakan istilah yang hanya dimengerti oleh developer). Use Case Diagram memberikan representasi grafis mengenai urutan aktivitas berupa interaksi yang terjadi antara user (didalam Use Case Diagram disebut dengan Actor) dan system serta tujuan dari penggunaan system tersebut. Di dalam Use Case Diagram, fungsi-fungsi dari system dideskripsikan menggunakan alat bernama use case. Actor adalah user yang melakukan interaksi dengan sistem, sedangkan jenisjenis interaksi yang dilakukan oleh Actor terhadap use case disebut Relationship (Whitten and Bentley, 2007: 247-248). 1.
Use case Pemodelan
Use-case
mengidentifikasikan
dan
mendeskripsikan fungsi-fungsi pada system dengan alat yang disebut use cases. Sebuah use case merepresentasikan sebuah tujuan dari sistem dengan menggambarkan urutan aktivitas dan interaksi user dalam mencapai tujuan. Use case digambarkan dengan sebuah bentuk elips dengan nama dari use case yang muncul dari atas, bawah, atau dalam elips.
15
Gambar 2.3 Contoh use case diagram (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007: 246) 2.
Actor Use Case diinisiasi atau dipicu oleh pengguna external yang disebut Actor. Actor memulai suatu aktifitas di system (use case), dengan tujuan menyelesaikan suatu tugas agar menghasilkan nilai yang diinginkan. Berikut 4 jenis Actor: a.
Primary Pusiness Actor Actor yang secara utama mendapat manfaat dari pengeksekusian usecase dengan menerima sesuatu yang terukur atau teramati dengan baik. Actor primary mungkin atau mungkin tidak memulai kegiatan bisnis. Contoh aktifitas seorang pegawai menerima slip gaji (sesuatu yang terukur) dari sistem penggajian setiap jumat, karyawan tidak melakukan sesuatu untuk memulai kegiatan tersebut tetapi karyawan adalah primary Actor yang menerima sesuatu yang bernilai.
16 b.
Primary System Actor Actor yang secara langsung berinteraksi dengan sistem untuk memulai sebuah aktifitas di sistem atau bisnis. Primary system Actor bisa berinteraksi dengan primary business Actor untuk menggunakan sistem yang sebenarnya. Mereka memfasilitasi kegiatan memulai penggunaan langsung ke sistem untuk kepentingan primary business Actor. Contoh pegawai kasir yang memindaikan barang ke sistem untuk customer yang membeli barang tersebut.
c.
External Server Actor Actor yang merespon permintaan dari use case. Contoh, biro kartu kredit yang melakukan pengisian melalui kartu kredit.
d.
External Receiver Actor Actor yang bukan Actor utama tapi menerima sesuatu nilai yang penting atau terukur dari use case contoh,
gudang
mempersiapkan
menerima pengiriman
pesanan setelah
untuk customer
melakukan pemesanan. 3.
Relationship a.
Association
Gambar 2.4 Contoh Penggunaan Association pada use case (Sumber: System Analysis and Design Method Whitten and Bentley, 2007: 248)
17 Assosiation merupakan sebuah relasi dengan bentuk garis lurus antara Actor dengan use case. (1) Association yang memiliki tanda panah mengarah pada sebuah
use
case
menunjukkan
bahwa
interaksi
dinisiasikan oleh Actor. (2) Association yang tidak memiliki tanda panah menunjukkan adanya interaksi antara use case dengan external server atau Actor penerima. b.
Extends
Gambar 2.2 Contoh Penggunaan Extends pada use case (Sumber: System Analysis and Design Method Whitten and Bentley, 2007: 249)
Sebuah use case yang memiliki fungsi komplek membuat logika use case menjadi sulit dipahami. Dengen tujuan menyederhanakan use case yang bersifat komplek agar lebih mudah dipahami, bisa dengan mengekstrak fungsi yang komplek menjadi use case tersendiri yang disebut extension usecase.
18 c.
Uses (or Includes)
Gambar 2.5 Contoh Penggunaan include pada Use Case (Sumber: System Analysis and Design Method – Whitten and Bentley, 2007: 249) Sangat umum jika menemukan dua atau lebih usecase yang memiliki kemiripan. Abstract use case dibuat agar mengurangi redundansi pada use case diagram, dan dapat digunakan satu atau lebih use case yang membutuhkan fungsionalitasnya. Relationship antara abstract use case dengan use case disebut uses or include.
19
d.
Depends On
Gambar 2.6 Contoh penggunaan Depends On pada Use Case (Sumber: System Analysis and Design Method Whitten and Bentley, 2007: 250) Relationship
depend
on
digunakan
untuk
menghubungkan use case yang saling ketergantungan antara satu use case dengan use case lainnya sehingga sebuah aktivitas hanya bisa dilakukan apabila aktivitas sebelumnya sudah berjalan. e.
Inheritance
Gambar 2.7 Contoh penggunaan Inheritance pada Use Case
20 (Sumber: System Analysis and Design Method Whitten and Bentley, 2007: 250) Abstract Actor dibuat dengan tujuan mengurangi komunikasi berlebih dengan system ketika dua atau lebih Actor melakukan interaksi pada satu use case yang sama. Relationship yang menghubungkan antara Actor dengan abstract Actor disebut Inheritance B. Use case narrative Menurut Whitten dan Bentley (2007: 246), Use Case Narrative
atau
Use
Case
Description
berguna
untuk
mendeskripsikan dari dan bagaimana user akan berinteraksi dengan sistem dalam menyelesaikan sebuah tugas.
Gambar 2.8 Contoh Use Case Narrative (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007: 257) Bagian-bagian dari High-level Use Case Narrative adalah sebagai berikut: 1.
Author adalah nama-nama individu yang berkontribusi di dalam penulisan use case.
2.
Date adalah tanggal use case terakhir kali dimodifikasi.
21 3.
Version adalah versi dari use case.
4.
Use-case name adalah nama yang merepresentasikan tujuan dari use case tersebut, harus dimulai dengan kata kerja.
5.
Use-case type adalah jenis use case yang digunakan. Business requirement use-case memiliki fokus pada visi strategis dan tujuan
dari
banyak stakeholders.
Jenis
use
case ini
memberikan deskripsi penjelasan secara umum mengenai masalah dan cakupannya, tetapi tidak termasuk rincian yang harus dikomunikasikan kepada developer mengenai apa yang harus dilakukan oleh sistem. 6.
Use-case ID adalah pengidentifikasi unik dari sebuah use case yang tujuannya untuk pengelompokkan use case.
7.
Priority adalah tingkat prioritas dari sebuah use case yang menunjukkan pentingnya fungsi use case tersebut di dalam sistem.
8.
Source mendefinisikan entitas yang memicu pembuatan use case. Dapat berupa kebutuhan, dokumen, atau stakeholder.
9.
Primary business Actor adalah stakeholder yang secara utama diuntungkan oleh eksekusi use case dengan menerima suatu nilai yang terukur.
10. Other participating Actors adalah Actor lain di dalam use case yang berpartisipasi dan membantu terwujudnya tujuan dari use case yang ada. 11. Interested stakeholders adalah seseorang selain Actor yang memiliki ketertarikan pada tujuan dari use case. 12. Description adalah deskripsi singkat yang terdiri dari beberapa kalimat yang menjelaskan tujuan dari use case dan aktivitasaktivitasnya.
22
Gambar 2.9 Contoh Use Case Narrative (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007: 259-260) Setiap
high-level
use
case
dilakukan
expand
untuk
mencakupi rincian event-event yang typical dan alternate. Typical course of events adalah deskripsi langkah demi langkah
23 pelaksanaan use case, sedangkan Alternate Course of events berisi beragam kondisi yang terjadi di dalam use case. Berikut adalah konten tambahan dari sebuah ekspansi highlevel use case: 1.
Precondition adalah batasan dari kondisi/status sistem sebelum use case dapat dieksekusi.
2.
Trigger adalah event yang menyebabkan eksekusi sebuah use case.
3.
Typical course of events adalah urutan biasa dari aktivitas yang dilakukan aktor dan sistem untuk mencapai tujuan dari use case.
4.
Alternate Courses adalah apabila terdapat pengecualian atau variasi dari typical course yang terjadi.
5.
Conclusion adalah spesifikasi saat use case berhasil dieksekusi, saat primary Actor menerima suatu nilai yang terukur.
6.
Postcondition adalah batasan dari kondisi/status sebuah sistem setelah use case berhasil dieksekusi.
7.
Business rules menspesifikasikan aturan dan prosedur bisnis di dalam sistem yang baru.
8.
Implementation
constraints
and
Specifications
menspesifikasikan kebutuhan yang bersifat nonfungsional yang dapat mempengaruhi realisasi use case, dapat berguna dalam perencanaan arsitektur dan pencakupan. 9.
Assumptions adalah semua asumsi yang dibuat oleh creator saat mendokumentasikan use case.
10. Open issues adalah pertanyaan atau masalah yang harus diselesaikan atau diteliti sebelum use case disetujui.
24 C. Activity diagram Activity Diagram digunakan untuk menggambarkan alur urutan yang ada pada sebuah sistem dan menjelaskan alur dari sebuah use case. Terdapat beberapa elemen di dalam sebuah activity diagram, yaitu: Tabel 2.1 Tabel Elemen Activity Diagram Nama
Simbol
Deskripsi Lingkaran
Initial
hitam
yang
merepresentasikan awal sebuah
Mode
proses. Simbol yang merepresentasikan
Activity
langkah-langkah
individual
di
dalam activity diagram. Simbol berupa tanda panah yang menunjukkan alur perpindahan
Flow
dari satu aktivitas ke aktivitas lainya. Simbol yang sama digunakan untuk dua fungsi kondisional yang berbeda, Decision dan Merge. Decision
Decision dan Merge
mengindikasikan
percabangan
karena
adanya
pemilihan aktivitas dengan alur berbeda. Merge mengindikasikan adanya penggabungan aktivitas untuk kembali ke jalur yang sama setelah
sebelumnya dipisahkan
oleh sebuah decision. Fork
dan
Simbol
yang
sama
dapat
25 Nama Join
Simbol
Deskripsi diasosiasikan paralel
dengan
(dua
arah).
menggambarkan
dua
proses Fork aktivitas
yang akan berjalan secara paralel. Join menggambarkan berakhirnya proses
yang
berjalan
secara
paralel (dua arah)
Activity Final
Simbol ini menunjukkan akhir dari proses pada sebuah activity diagram.
26
Gambar 2.10 Contoh Activity Diagram (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007: 392) D. Class diagram Menurut Whitten dan Bentley (2007: 373-381), Class Diagram digunakan untuk menggambarkan pengorganisasian obyek-obyek bisnis dan asosiasinya terhadap satu sama lain pada sebuah sistem. Dalam hal ini, obyek bisnis disebut sebagai class. Di dalam class diagram, class-class yang ada dapat dihubungkan satu sama lain menggunakan garis lurus. Di dalam sebuah class, terdapat elemen berupa nama, attribute, dan operation. Berikut adalah beberapa jenis hubungan di dalam class diagram menurut Whitten dan Bentley (2007: 373-381):
27 1.
Mulitiplicity Multiplicity
adalah
indikator
yang
menunjukkan
banyaknya hubungan antar class.
Tabel 2.2 Jenis-Jenis Multiplicity
2.
Multiplicity
Deskripsi
1
Hanya satu.
0..1
Nol atau satu
*
Nol atau lebih.
1..*
Satu atau lebih.
x..y
Antara jumlah x dan jumlah y
Association Association adalah hubungan antara dua class atau lebih di dalam sebuah class diagram. Pada setiap association terdapat
multiplicity.
Terdapat
dua
jenis
hubungan
association di dalam class diagram, yaitu: a. Bi-directional Adanya hubungan antar class dimana kedua class sama-sama memiliki peran terhadap satu sama lain. Hubungan bi-directional digambarkan dengan garis lurus tanpa tanda panah yang menghubungkan kedua class. b. Uni-directional Adanya hubungan antar class dimana hanya salah satu class memiliki peran dalam hubungan tersebut. Hubungan uni-directional digambarkan dengan garis lurus yang memiliki tanda panah di salah satu ujungnya.
28
Gambar 2.11 Contoh Association Bi-Directional dan UniDirectional Class Diagram
3.
Generalization dan specialization Generalization dan Specialization adalah hubungan antar class dimana terdapat superclass, yaitu sebuah class yang
merupakan
berdasarkan
hasil
attribute
pengelompokan dan
behavior
class-class yang
sama
(generalization), dan sub class, yaitu class-class yang mendapatkan attribute dan behavior turunan dari sebuah super class namun dapat memiliki attribute dan behavior-nya sendiri (specialization).
Gambar 2.12 Contoh Generalization/Specialization Class Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007: 375)
29 4.
Aggregation dan composition Aggregation dan Composition adalah hubungan antar class dimana sebuah class merupakan bagian dari class lainnya.
Gambar 2.13 Contoh Aggregation Class Diagram (Sumber: System Analysis and Design Method – Whitten and Bentley, 2007: 379) Perbedaan antara composition dan aggregation adalah pada composition terdapat hubungan yang lebih erat antar class. Misalnya, jika class A adalah bagian dari class B, maka class B tidak akan bisa berdiri sendiri tanpa class A. Pada UML 2.0 notasi aggregation tidak lagi digunakan karena fungsinya kurang terlihat perbedaannya dengan bentuk association dengan multiplicity satu atau lebih (one or more). Hal ini menyebabkan beberapa praktisi menganggap aggregation tidak memiliki arti penting pada penggunaannya.
30
Gambar 2.14 Contoh Composition Class Diagram (Sumber: System Analysis and Design Method ¬- Whitten and Bentley, 2007: 379)
Gambar 2.15 Contoh Class Diagram (Sumber: System Analysis and Design Method – Whitten and Bentley, 2007: 406)
E. Sequence diagram Sequence
diagram
adalah
diagram
UML
yang
menggambarkan interaksi antara obyek-obyek di dalam sistem berdasarkan urutan waktu (Whitten and Bentley, 2007: 659). Berikut ini adalah elemen-elemen dari sequence diagram:
31 Tabel 2.3 Elemen Sequence Diagram Nama
Simbol
Deskripsi Actor adalah representasi user yang
Actor
berinteraksi
dengan
sistem.
Suatu notasi yang berfungsi Interface Class
untuk <
>
memastikan
interface
code,
agar
class tidak
terjadi kebingungan atas jenis class. Setiap use case memiliki satu
Controller Class
<>
atau
lebih
digambarkan
controller, sama
seperti
notasi interface class. Entity Classes
Simbol
yang
merepresentasikan class pada class diagram. Berfungsi
Message
untuk
menyampaikan
pesan
dari
setiap method.
Activity Bars
Berfungsi untuk menunjukan berapa lamanya waktu objek digunakan.
Return
Hasil
Message
dimasukan oleh objek.
dari
masukan
yang
32 Nama
Simbol
Deskripsi Objek
Self-call
yang
memanggil
method-nya sendiri. Menandakan diagram
Frame
seleksi,
yang
area
pada
melakukan
pengulangan,
dan
suatu pilihan khusus.
Gambar 2.16 Contoh Sequence Diagram (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007: 659) 2.1.7 Interaksi Manusia dan Komputer Menurut Shneiderman dan Plaisant (2010, p15), Interaksi Manusia dan Komputer adalah sebuah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta mempelajari fenomena-fenomena besar yang berhubungan dengannya.
33 a.
Faktor manusia terukur Menurut Shneiderman dan Plaisant (2010, p32), ada faktorfaktor manusia terukur dalam desain antarmuka user antara lain: 1.
Waktu belajar Menyatakan berapa lama waktu yang diperlukan user untuk mempelajari cara relevan dalam melakukan suatu tugas.
2.
Kecepatan kinerja Menyatakan berapa lama waktu yang diperlukan untuk melakukan suatu tugas.
3.
Tingkat kesalahan Mengukur berapa banyak kesalahan yang dilakukan oleh user ketika menjalankan sistem. Sistem tersebut harus memiliki tingkat kesalahan yang rendah bila sedang digunakan oleh user.
4.
Daya ingat Kemampuan user memelihara pengetahuannya setelah jangka waktu tertentu.
5.
Kepuasan subjektif Menyatakan tingkat kepuasan user terhadap berbagai aspek sistem.
b. Delapan aturan emas Berdasarkan Shneiderman dan Plaisant (2010), terdapat Delapan Aturan Emas (Eight Golden Rules) yang digunakan sebagai pedoman dalam merancang suatu antarmuka user (user interface) yang baik, yaitu:
34
1.
Berusaha untuk konsisten Konsisten dalam berbagai aspek yang terdapat dalam aplikasi, seperti warna yang digunakan, jenis font yang dipakai, dan tampilan menu.
2.
Menyediakan kegunaan universal Perancangan dilakukan dengan mengetahui perbedaan dari user sehingga dapat dipakai oleh semua kategori user baik yang sudah ahli maupun pemula. User yang beragam dan
desain
pertimbangan
harus dalam
mempertimbangkan hal
rentang
perbedaan
usia,
cacat
dan dan
keanekaragaman teknologi. 3.
Memberikan umpan balik yang informatif Untuk setiap sistem diharapkan adanya suatu umpan balik bagi user. Respon yang diberikan tergantung dari aksi yang dilakukan user.
4.
Merancang dialog penutupan Memberikan gambaran hasil yang akan didapat oleh user jika melakukan suatu tindakan sehingga user tidak salah dalam
memilih
tindakan
dan
melanjutkan
ke
tahap
selanjutnya. 5.
Memberikan pencegahan dan penanganan masalah Suatu sistem yang baik harus dapat menghindarkan user dari kesalahan sebelum kesalahan itu terjadi. Jika user membuat suatu kesalahan, antarmuka (interface) harus dapat mendeteksi kesalahan dan memberikan informasi yang spesifik kepada user untuk menangani kesalahan.
35
6.
Memungkinkan aksi pembalikan yang mudah Setiap aksi harus dirancang sedemikian rupa sehingga dapat melakukan pembalikan untuk kembali ke keadaan semula sebelum aksi tersebut dijalankan.
7.
Mendukung pusat kendali internal User yang sudah berpengalaman menginginkan bahwa mereka bertanggungjawab atas sebuah sistem maka sistem dapat memberikan respons terhadap setiap aksi yang dilakukan oleh user karena manusia yang memegang kontrol sistem.
8.
Mengurangi beban ingatan jangka pendek Dengan keterbatasan ingatan yang dimiliki oleh manusia, sistem harus dirancang sesederhana mungkin dengan tujuan user tidak memerlukan waktu yang lama untuk beradaptasi menggunakan sistem.
2.2. Teori Khusus 2.2.1 Visual Basic .NET Microsoft
Visual
Basic
.NET
adalah
sebuah
alat
untuk
mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan bahasa ini, para programmer dapat membangun aplikasi windows forms, aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Visual Basic dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa VB .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai
36 evolusi
dari
Microsoft
Visual
Basic
versi
sebelumnya
yang
diimplementasikan di atas .NET Framework. NET Framework merupakan model platform yang memudahkan dalam membangun lingkungan aplikasi yang terdistribusi di internet. Platform .NET Framework terdiri dari 2 bagian utama yaitu : a. Commun Language Run Time (CLR), berfungsi untuk manajemen memori, security, me-Load, mengeksekusi kode, dan mengisolasi aplikasi. b. .NET Framework Class Library (FCL), berisikan koleksi kelas yang dalam penggunaanya dapat diturunkan menjadi koleksi objek. Objek tersebut kemudian dapat digunakan untuk membangun aplikasi. 2.2.2 ASP .NET Menurut Walther (2008, pp. 11) ASP.NET adalah sebuah teknologi server-side scripting yang digunakan untuk membuat halaman-halaman web dinamic. ASP.NET adalah sebuah platform terbaru untuk mengembangkan aplikasi web, Web Services dan Web Form dalam Microsoft .NET Framework. ASP.NET merupakan evolusi teknologi dari Microsoft Active Server Pages (ASP) untuk .NET Platfrom yang baru. ASP.NET tidak hanya terbatas pada bahasa script, tetapi memungkinkan pengembang untuk menggunakan bahasa NET seperti C#, J#, VB, dll. Hal ini memungkinkan developer untuk membangun aplikasi yang sangat menarik dengan memanfaatkan Visual Studio. Keuntungan memakai ASP.NET adalah sebagai berikut: 2. ASP.NET secara drastis mengurangi jumlah code yang dibutuhkan untuk membangun aplikasi besar. 3. Dengan built-in Windows authentication membuat aplikasi Anda jauh lebih aman. 4. Menggunakan ASP.NET dipastikan lebih memiliki kinerja yang lebih baik.
37 5. ASP.NET menyediakan kemudahan bagi penggunanya, seperti contohnya mengirim formulir sederhana, authentication dari client untuk deployment dan juga konfigurasi website. 6. ASP.NET framework dilengkapi dengan peralatan yang kaya dan terintegrasi dengan Visual Studio. WYSIWYG editing, drag-anddrop server controls dan juga deployment secara otomatis adalah beberapa keunggulan dari fitur ASP.NET. 7. Karena Source code dan HTML digabung menjadikan ASP.NET lebih mudah di-maintenance dan di-edit. Ini membuat ASP.NET menjadi lebih flexible dan powerfull. 8. ASP.NET memudahkan dalam proses deployment. Tidak perlu meregister component. 9. Web server memonitor pages, applikasi, dan komponen secara otomatis. Jika ada hal yang mencurigakan, maka ASP.NET akan secara otomatis men-detect-nya. 10. Lebih mudah bekerja dengan ADO.NET yang menggunakan data binding dan feature page formatting yang membuat aplikasi dapat berjalan dengan cepat tanpa adanya masalah performa. 2.2.3 Internet Information Service (IIS) Internet Information Services atau IIS merupakan sebuah produk microsoft yang digunakan sebagai web server untuk menampilkan web page dan web service yang diminta oleh pengguna melalui web browser. Internet Information Services menyediakan semua paket sistem operasi windows. (Microsoft
Corporation,
2015,
What
is
IIS?,http://www.iis.net/overview) 2.2.4 Miscrosoft SQL Server Microsoft SQL Server merupakan produk Relational Database Management System (RDBMS) yang dibuat oleh Microsoft. Orang sering menyebutnya dengan SQL Server saja. Microsoft SQL Server juga mendukung SQL sebagai bahasa untuk memproses query ke dalam database. Microsoft SQL Server banyak digunakan pada dunia bisnis,
38 pendidikan atau juga pemerintahan sebagai solusi database atau penyimpanan data. Pada tahun 2008 Microsoft mengeluarkan SQL Server 2008 yang merupakan versi paling banyak digunakan. Berikut ini adalah beberapa fitur yang dari sekian banyak fitur yang ada pada SQL Server: a.
XML Support. Dengan fitur ini, Anda bisa menyimpan dokumen XML dalam suatu tabel, meng-query data ke dalam format XML melalui Transact-SQL dan lain sebagainya.
b.
Multi-Instance Support. Fitur ini memungkinkan Anda untuk menjalankan beberapa database engine SQL Server pada mesin yang sama.
c.
Data Warehousing and Business Intelligence (BI) Improvements. SQL Server dilengkapi dengan fungsi-fungsi untuk keperluan Business Intelligence melalui Analysis Services. Selain itu, SQL Server 2008 juga ditambah dengan tools untuk keperluan data mining.
d.
Performance
and
Scalability
Improvements.
SQL
Server
menerapkan ke beberapa server sekaligus. Peningkatan lainnya juga dicapai di sisi DBCC, indexed view, dan index reorganization. e.
Query Analyzer Improvements. Fitur yang dihadirkan antara lain: integrated debugger, object browser, dan fasilitas object search.
f. DTS Enhancement. Fasilitas ini sekarang sudah mampu untuk memperhatikan primary key dan foreign key constraints. Ini berguna pada saat migrasi tabel dari RDBMS lain. g.
Transact-SQL Enhancements. Salah satu peningkatan disini adalah T-SQL sudah mendukung UDF (User-Definable Function). Ini memungkinkan Anda untuk menyimpan secara rutin ke dalam database engine.