7 BAB 2 LANDASAN TEORI 2.1 Entity Menurut Whitten (2004, p295

advertisement
7
BAB 2
LANDASAN TEORI
2.1
Entity
Menurut Whitten (2004, p295), Entity merupakan kelompok orang, tempat,
objek, kejadian atau konsep tentang apa yang diperlukan untuk menangkap dan
menyimpan. Dapat juga diartikan sebagai sesuatu yang digunakan untuk menyimpan
data. Entity merupakan dasar dari relational data modeling. Entity sering disamakan
dengan tabel, akan tetapi entity bukanlah tabel. Entity biasanya diterapkan sebagai tabel–
tabel dan digambarkan sama seperti tabel – tabel pada grafik model data. Tabel – tabel
biasanya diterapkan secara fisik, tetapi beberapa entity terlalu konseptual untuk menjadi
tabel.
Conceptual entity biasanya tidak memiliki karakteristik lebih lanjut yang
berhubungan dengan conceptual entity dan digunakan sebagai alat untuk berkomunikasi
dengan tim untuk mempelajari garis besar permasalahan dan dianalisis lebih lanjut.
Contoh conceptual entity dapat dilihat pada gambar 2.1.
Gambar 2.1 Contoh Conceptual entities
8
Apabila conceptual entities sudah diberi hubungan (relationship) antar entity
maka akan terlihat seperti gambar 2.2.
Gambar 2.2 Contoh Conceptual entities with relationship names
Logical entity sedikit lebih rumit karena telah dijelaskan dan didokumentasikan
secara rinci. Mereka ada diantara model konseptual dan model fisik yang menunjukkan
rancangan basis data. Contoh logical entity dapat dilihat pada gambar 2.3.
Gambar 2.3 Contoh Logical entities
9
Ketika model logikal sudah diberi atribut dengan lengkap, maka akan terlihat
seperti gambar 2.4.
Gambar 2.4 Contoh Logical entities with relationship names
2.2
Atribut (Attribute)
Menurut Whitten (2004, p295), Atribut merupakan sifat atau karakteristik suatu
entity. Atribut sering dianggap data oleh kebanyakan orang. Atribut berupa nomor /
bilangan, kode, kata – kata, frasa, teks – teks besar, dan bahkan suara - suara atau
gambar – gambar yang digabungkan untuk membentuk sebuah instance pada sebuah
entity. Atribut bukanlah kolom (column) pada tabel, meskipun atribut mungkin akan
berkembang untuk diterapkan menjadi tabel. Atribut bersifat sederhana, terpisah, jelas,
dan berkarakteristik tunggal yang menggambarkan atau mengenalkan sebuah entity.
10
Atribut merupakan gen, atau DNA bagi sebuah entity. Sebuah atribut dapat dijelaskan
sebagai karakteristik yang jelas bagi data yang ada.
Atribut dapat diklasifikasikan menjadi :
-
Simple Attribute
Simple attribute adalah atribut yang terdiri dari satu komponen tunggal yang
keberadaannya bebas. Simple attribute tidak dapat dibagi lagi menjadi komponen
yang lebih kecil.
-
Composite Attribute
Composite attribute adalah atribut yang terdiri dari banyak komponen dengan
keadaan bebas. Dalam hal ini beberapa atribut dapat dipisahkan menjadi komponen
yang lebih kecil.
-
Single Value Attribute
Single value attribute adalah atribut yang memiliki nilai tunggal untuk masing –
masing kejadian dari entity.
-
Multi value attribute
Multi value attribute adalah atribut yang memiliki banyak nilai untuk masing –
masing kejadian dari entity.
11
-
Derived Attribute
Derived attribute adalah atribut yang menggantikan nilai yang diturunkan dari nilai
sebuah atribut yang berhubungan, tidak perlu pada jenis entity yang sama.
Contoh atribut dapat dilihat pada gambar 2.5.
Gambar 2.5 Contoh Atribut
2.3
Keys
Menurut Whitten (2004, p298), Keys berfungsi untuk menghubungkan suatu
objek dengan objek yang lain. Keys diletakkan pada atribut yang telah ditentukan
kedudukannya, agar dapat dihubungkan dengan atribut pada entity yang lain.
12
Beberapa jenis key yang biasa digunakan :
-
Candidate Key
Candidate key adalah himpunan yang mengidentifikasikan tiap – tiap
keberadaan suatu entity.
-
Composite Key
Composite key adalah sebuah candidate key yang terdiri dari dua atau lebih
atribut.
-
Primary Key
Primary key adalah candidate key yang dipilih secara unik untuk
mengidentifikasikan tiap – tiap keberadaan suatu tipe entity.
-
Foreign Key
Foreign key adalah himpunan atribut dalam suatu relasi yang cocok dengan
beberapa candidate key dari beberapa relasi.
-
Alternate Key
Alternate key adalah candidate key yang tidak dipilih menjadi primary key.
13
2.4
Relasi (Relationship)
Menurut Whitten (2004, p298), Relasi adalah asosiasi atau hubungan alami
antara satu entity atau lebih. Relasi merupakan hubungan logis antara entity – entity.
Relasi bersifat dua arah, merupakan hubungan timbal balik antar entity yang
dihubungkan dengan relasi tersebut. Relasi menampilkan hubungan dari satu entity ke
entity lain, atau menghubungkan entity dengan dirinya sendiri. Ada dua jenis relasi, yaitu
relasi yang mengidentifikasi (identifying relationship) dan relasi yang tidak
mengidentifikasi (nonidentifying relationship).
‐
Relasi yang mengidentifikasi (Identifying) terjadi apabila primary key pada entity
induk berpindah ke posisi primary key dari entity anak dan oleh karena itu
instance anak harus diidentifikasi.
‐
Relasi yang tidak mengidentifikasi (Nonidentifying) terjadi apabila primary key
pada entity induk berpindah ke posisi non-key dimana entity anak tidak perlu
diidentifikasi tetapi harus menjelaskan fakta tentang entity anak.
Setiap relasi memiliki simbol cardinality dan nullability. Cardinality
menjelaskan berapa banyak instance yang dapat dihubungkan untuk setiap instamce
pada entity induk. Satu entity induk dapat dihubungkan dengan entity – entity anak
dengan cardinality sebagai berikut :
‐
Nol atau satu
‐
Satu dan hanya satu
14
‐
Nol, satu, atau banyak
‐
Satu atau banyak
‐
Spesifik (angka)
‐
Interval (angka) – (angka)
‐
Apapun yang disebut tentang hubungan lebih dari satu
Derajat yang biasanya digunakan pada suatu relationship adalah binary
relationship, yang terdiri atas :
1. One – to – One (1 : 1) Relationship
Setiap relationship menggambarkan hubungan antara sebuah entity occurrence
pada entity yang satu dengan sebuah entity occurrence pada entity lainnya yang ikut
serta dalam relationship tersebut. Contoh one – to – one relationship dapat dilihat
pada gambar 2.6.
Gambar 2.6 Contoh One – to – One Relationship
15
2. One – to – Many (1 : *) Relationship
Setiap relationship menggambarkan hubungan antara sebuah entity occurrence
pada entity yang satu dengan satu atau lebih entity occurrence pada entity lainnya
yang ikut serta dalam relationship tersebut. Contoh one – to – many relationship
dapat dilihat pada gambar 2.7.
Gambar 2.7 Contoh One – to – Many Relationship
3. Many – to – Many (* : *) Relationship
Setiap relationship menggambarkan hubungan antara satu atau lebih entity
occurrence pada entity yang satu dengan satu atau lebih entity occurrence pada entity
lainnya yang ikut serta dalam relationship tersebut. Contoh many – to – many
relationship dapat dilihat pada gambar 2.8.
Gambar 2.8 Contoh Many – to – Many Relationship
16
Contoh relationship terlihat dari gambar 2.9 di bawah ini :
Gambar 2.9 Contoh Relationship
Entity Relationship Diagram (ERD) merupakan model data yang
menggunakan beberapa notasi untuk menggambarkan data dalam konteks entity
dan hubungan yang dideskripsikan oleh data tersebut.
2.5
Data Model
Menurut Elmasri (2003, p26), Data model adalah sekumpulan konsep yang bisa
digunakan untuk menggambarkan struktur basis data. Kebanyakan model data
mencakup kumpulan operasi dasar (basic operation) untuk mendapatkan update pada
database. Database Designer dapat mendefinisikan user-defined operation. Misalnya
HITUNG_NILAI dapat diletakkan pada objek MAHASISWA. Namun, operasi umum
17
seperti insert, delete, modify, atau lainnya biasanya sudah disatukan ke dalam operasi
dasar pemodelan data.
Kategori Model Data
Banyak model data yang dapat digunakan. Model – model data tersebut
dapat digolongkan menurut tipe konsep yang digunakan untuk menggambarkan
struktur basis data. High – level data model (tingkat tinggi) atau model data
konseptual (conceptual data models) menyediakan konsep yang mirip dengan
cara yang digunakan banyak orang untuk mengamati dan memahami data,
sebaliknya low – level data model (tingkat rendah) atau model data fisik
(physical data model) menyediakan konsep yang menggambarkan rincian
tentang bagaimana data disimpan dalam komputer. Di antara dua model data ini
terdapat class representational data model, yang menggambarkan konsep yang
dapat dimengerti oleh end users tetapi tetap memperhatikan bagaimana data
diorganisasikan dalam komputer. Representational data model menutupi
beberapa rincian penyimpanan data tetapi dapat diterapkan pada sistem komputer
secara langsung.
a.
Model Data Konseptual (Conceptual Data Models)
Menurut Simsion (2005, p273), Model Data Konseptual
(Conceptual Data Models), terkadang disebut juga model domain, secara
khusus digunakan untuk mengeksplorasi konsep domain dengan
pemimpin proyek. Model konseptual tingkat tinggi (high – level
18
conceptual models) biasanya dibuat sebagai bagian dari prediksi
kebutuhan tahap awal.
Model data konseptual menggunakan konsep – konsep seperti
entity, atribut, dan relasi. Suatu entity melambangkan objek atau konsep
yang nyata, seperti seorang pegawai atau sebuah proyek, yang
digambarkan di basis data. Suatu atribut melambangkan kepemilikan
yang menggambarkan entity lebih lanjut, seperti nama atau gaji pegawai.
Suatu relasi (relationship) antara dua atau lebih entity melambangkan
interaksi (timbal balik) di antara entity – entity; contohnya relasi antara
seorang pegawai dan sebuah proyek.
Manfaat penggunaan model data konseptual dalam perancangan
basis data :
‐
Memberikan gambaran yang lengkap dari struktur basis data yaitu
arti, hubungan, dan batasan – batasan
‐
Alat komunikasi antar pemakai basis data, perancang (designer),
dan analis
Contoh model data konseptual dapat dilihat pada gambar 2.10.
19
Gambar 2.10 Contoh Conceptual Data Models
b.
Model Data Logikal (Logical Data Models)
Menurut Simsion (2005, p321), Model Data Logikal (Logical
Data Model) merupakan representasi grafis dari keperluan bisnis. Model
data logikal menggambarkan hal – hal penting dari sebuah organisasi dan
bagaimana caranya mereka berhubungan satu dengan yang lain. Model
data logikal dapat divalidasi dan diterima oleh perwakilan bisnis, dan
dapat menjadi dasar perancangan basis data fisik (physical database).
Model data logikal digunakan untuk mengeksplorasi konsep
domain, dan relasinya pada ruang lingkup masalah. Hal ini dapat dibuat
untuk lingkup satu proyek atau untuk seluruh perusahaan. Model data
logikal menggambarkan tipe entity logikal, secara khas ditujukan untuk
menyederhanakan tipe entity, atribut yang dimiliki entiy – entity, dan
20
relasi antara entity – entity tersebut. Contoh model data logikal dapat
dilihat pada gambar 2.11.
Gambar 2.11 Contoh Logical Data Models
c.
Model Data Fisik (Physical Data Models)
Menurut Simsion (2005, p359), Model Data Fisik (Physical Data
Models) digunakan untuk merancang skema internal suatu basis data,
menggambarkan tabel data, kolom data dari tabel – tabel tersebut, dan
hubungan antara tabel – tabel. Model data fisik menggambarkan
bagaimana data disimpan di dalam komputer dengan melambangkan
informasi seperti record formats, record orderings, dan access paths.
Access paths merupakan struktur yang membuat pencarian suatu record
21
basis data menjadi efisien. Contoh model data fisik dapat dilihat pada
gambar 2.12.
Gambar 2.12 Contoh Physical Data Models
Table perbandingan antara model data konseptual, model data logikal,
dan model data fisik :
Tabel 2.1 Tabel Perbandingan Model Data
Feature
Conceptual Logical Physical
Entity Names
✓
✓
22
Entity Relationships ✓
✓
Attributes
✓
Primary Keys
Foreign Keys
2.6
✓
✓
✓
✓
✓
Table Names
✓
Column Names
✓
Column Data Types
✓
Algoritma Konversi Model Data Konseptual Menjadi Model Data Fisik
Untuk mengubah model data konseptual menjadi model data fisik dilakukan
melalui langkah – langkah berikut ini:
Langkah 1 : Setiap entity dalam ERD diubah menjadi tabel beserta semua atributnya.
Apabila terdapat atribut gabungan (composite attribute), maka ambil atribut
sederhana / spesifik dalam skema relasional. Primary key dari tabel yang
terbentuk dari entity tersebut diambil dari key attribute (atribut kunci) dari entity
tersebut.
Langkah 2 : Untuk setiap entity lemah, buat tabel baru untuk entity lemah tersebut
dengan memasukkan semua atribut yang dimiliki oleh entity lemah tersebut ke
dalam tabel baru tersebut. Key attribute (atribut kunci) dari entity kuatnya
23
menjadi foreign key dalam tabel tersebut. Primary key dari tabel yang dibuat
diambil dari gabungan key kuat dan key lemah.
Langkah 3 : Jika terdapat relasi binary 1 : 1, primary key pada entity dependent (entity
yang bergantung pada entity lain) akan menjadi foreign key pada entity
independent (entity yang tidak bergantung pada entity lain).
Langkah 4 : Jika terdapat relasi 1 : N, maka primary key milik entity dengan kardinalitas
(cardinality) 1 akan menjadi foreign key pada entity dengan kardinalitas
(cardinality) N.
Langkah 5 : Jika terdapat relasi M : N antara S dan T, buat tabel baru. Primary key dari
tabel ini merupakan gabungan dari primary key S dan primary key T. Atribut
tabel ini adalah kedua primary key tersebut dan atribut – atribut lainnya.
Langkah 6 : Untuk setiap atribut dengan banyak nilai (multivalued attribute), buat tabel
baru. Primary key dari tabel baru tersebut adalah gabungan primary key dari
entity pemilik. Apabila atribut dengan banyak nilai tersebut merupakan
composite attribute, maka atribut tabel ini adalah komponen – komponen
sederhana dari atribut tersebut.
Langkah 7 : Jika terdapat relasi N – ary, buat tabel baru. Primary key dari tabel baru
tersebut adalah gabungan dari primary key setiap entity yang berelasi. Sedangkan
foreign key tabel baru tersebut adalah primary key dari setiap entity yang
berelasi.
24
2.7
Oracle Database Management System
2.7.1. Sistem Basis Data
Menurut Connolly dan Begg (2002, p7), Sistem Basis Data merupakan
suatu kumpulan data yang berhubungan secara logis dan deskripsi dari data
tersebut dirancang untuk memenuhi informasi yang dibutuhkan oleh suatu
organisasi.
2.7.2. Database Management System (DBMS)
Menurut Connolly dan Begg (2002, p16), DBMS merupakan piranti
lunak yang memungkinkan user mendefinisikan, membuat, mengurus, dan
mengontrol akses ke basis data.
Database Management System menyediakan dua bahasa, yaitu Data
Definition Language (DDL) dan Data Manipulation Language (DML).
‐
Data Definition Language (DDL)
Data Definition Language digunakan untuk mendefinisikan objek – objek
pada basis data. Dengan menggunakan Data Definition Language, pengguna
dapat menentukan tipe, struktur, dan batasan data yang akan disimpan ke dalam
basis data. Secara umum, Data Definition Language yang digunakan adalah
CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER
untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek.
25
‐
Data Manipulation Language (DML)
Data Manipulation Language digunakan untuk memanipulasi dan
memproses objek – objek tertentu. Manipulasi yang biasa dilakukan antara lain
SELECT untuk menampilkan data, INSERT untuk menambahkan data baru,
UPDATE untuk mengubah data yang sudah ada, dan DELETE untuk menghapus
data.
2.7.3. Relational Database Management System (RDBMS)
Menurut Whalen (1998, p6), Relational Database Management System
merupakan Database Management System yang berhubungan. Ini berarti akses
data secara internal dilakukan dengan cara relasional. Salah satu contoh
Relational Database Management System adalah Oracle.
2.7.4. Oracle
Menurut Abramson, Abbey, dan Corry (2004, p2), Oracle merupakan
piranti lunak yang kaya dan penuh fitur yang digunakan untuk mengubah cara
banyak perusahaan melakukan pengaturan basis data mereka.
Oracle Relational Database Management System atau Oracle RDBMS
terdiri dari basis data (informasinya) dan instance (perwujudan sebuah sistem).
26
Oracle RDBMS dirancang untuk memungkinkan akses secara bersama – sama
pada sejumlah besar informasi yang tersimpan.
Cara paling sederhana untuk mengakses data dengan Oracle adalah
dengan menggunakan Structured Query Language (SQL). Menurut Gruber
(2000, p20), SQL merupakan bahasa yang dipergunakan untuk mengakses data
dalam basis data relasional. Bahasa ini merupakan bahasa standar yang
digunakan dalam manajemen basis data relasional.
Secara umum SQL terdiri dari dua bahasa, yaitu DML dan DDL.
Membuat tabel baru termasuk dalam kategori bahasa definisi data (Data
Definition Language / DDL). Aturan pembuatan tabel pada Oracle adalah
sebagai berikut ;
-
Nama tabel harus dimulai dengan huruf
-
Panjang nama tabel antara 1 – 30 karakter
-
Nama tabel hanya bisa terdiri dari A – Z, a – z, 0 – 9, _, $, dan #
-
Nama tabel baru tidak boleh sama seperti nama objek lain yang dimiliki oleh
pengguna yang sama
-
Nama tabel tidak boleh menggunakan kata kunci pada Oracle
27
Teori penulisan pembuatan tabel pada Oracle dengan menggunakan SQL :
CREATE TABLE [schema.] nama_tabel
(
nama_kolom1 tipe_data,
nama_kolom2 tipe_data [ekspresi],
);
Atau
CREATE TABLE [schema.] nama_tabel
(
nama_kolom1 tipe_data,
nama_kolom2 tipe_data,
[CONSTRAINT nama_kolom constraints]
);
Contoh sintaks pembuatan tabel pada Oracle dengan menggunakan SQL :
CREATE TABLE hire_dates (
id NUMBER(9),
hire_date DATE DEFAULT SYSDATE
);
28
Selain membuat tabel baru, yang termasuk kategori bahasa definisi data
(Data Definition Language) adalah menghapus tabel dengan menggunakan
perintah DROP. Apabila perintah drop dijalankan maka semua data dan struktur
tabel akan dihapus, semua transaksi yang menunggu akan di – commit, dan
semua indeks akan dihapus. Perintah menghapus tabel menggunakan drop tidak
dapat di – rollback. Format penulisan untuk menghapus tabel adalah sebagai
berikut :
DROP TABLE [schema.] nama_tabel ;
Contoh sintaks untuk menghapus tabel pada Oracle dengan menggunakan SQL :
DROP TABLE hire_dates ;
Yang termasuk dalam bahasa manipulasi data (Data Manipulation
Language) antara lain Insert, Update, dan Delete. Perintah insert digunakan
untuk memasukkan nilai atau data pada suatu tabel. Format penulisan perintah
insert adalah sebagai berikut :
INSERT INTO nama_tabel [(nama_kolom [, nama_kolom … ])] VALUES
(nilai[, nilai …]) ;
Contoh sintaks insert pada Oracle dengan menggunakan SQL :
INSERT INTO hire_dates VALUES (1, SYSDATE) ;
Perintah update digunakan untuk memodifikasi baris data yang ada pada
tabel. Format penulisan perintah update adalah sebagai berikut :
29
UPDATE nama_tabel
SET nama_kolom = nilai [, nama_kolom = nilai, …]
[WHERE kondisi] ;
Contoh sintaks update pada Oracle dengan menggunakan SQL :
UPDATE hire_dates
SET hire_date = SYSDATE
WHERE id = 1 ;
Perintah delete digunakan untuk menghapus baris data yang ada pada
tabel. Format penulisan perintah delete adalah sebagai berikut :
DELETE [FROM] nama_tabel [WHERE kondisi] ;
Contoh sintaks delete pada Oracle dengan menggunakan SQL :
DELETE FROM hire_dates WHERE id = 1 ;
2.8
Rekayasa Piranti Lunak
Menurut Pressman (2001, p20), rekayasa piranti lunak adalah penerapan dan
pemakaian prinsip rekayasa dalam rangka mendapatkan piranti lunak ekonomis yang
terpercaya dan bekerja secara efisien pada mesin komputer.
30
Menurut Fritz Bauer, rekayasa piranti lunak adalah peletakan dan penggunaan
prinsip-prinsip rekayasa yang tangguh / teruji dalam upaya memperoleh piranti lunak
secara ekonomis, handal dan bekerja di mesin nyata.
Piranti lunak merupakan program - program komputer, prosedur dan
dokumentasi yang ada pada sistem komputer. Beberapa macam diantaranya meliputi :
‐
Application software, seperti, pengolah kata, yang melibatkan interaksi aktif dari
user.
‐
Firmware, piranti lunak yang dibuat ke dalam alat-alat elektronik, sehingga
berintegrasi langsung dengan alat tersebut.
‐
Middleware, piranti yang mengontrol distributed system (perangkat komputer
yang berinteraksi melalui jaringan).
‐
System software, seperti sistem operasi yang berintegrasi dengan piranti keras
(hardware) sehingga dapat berinteraksi dengan piranti lunak.
‐
Software testing, berisi metode khusus yang untuk menguji kelayakan dari
sebuah piranti lunak.
Piranti lunak merupakan jembatan antara piranti keras dengan user, juga disebut
sebagai ‘penerjemah’ perintah yang di - input oleh user atau piranti keras dan
sebaliknya.
31
Beberapa tipe piranti lunak antara lain :
‐
System software, menyediakan infrastruktur dimana program bisa
beroperasi. Contohnya mengatur dan mengontrol piranti keras sehingga piranti
lunak bisa beroperasi. Contoh system software adalah sistem operasi (operating
system). System software berisi device drivers, operating systems, server,
utilities, windows systems.
‐
Programming software, menyediakan tools bagi programmer untuk
membuat piranti lunak. Programming software berisi compilers, debuggers,
interpreter, linkers, text editor.
‐
Application software, menyediakan piranti lunak bagi user.
Menurut Pressman (2001, p6-9), elemen piranti lunak bersifat logis bukan
bersifat fisik. Beberapa karakteristik piranti lunak antara lain:
a.
Piranti lunak sebenarnya direkayasa dan dikembangkan, bukan dirakit atau
dibuat seperti layaknya piranti keras. Aktifitas pengembangan piranti lunak berbeda
dengan pembuatan piranti keras.
b.
Piranti lunak tidak mudah rusak, tidak seperti piranti keras. Perbedaannya, jika
rusak, piranti keras harus diperbaiki, namun pada piranti lunak, perbaikannya berupa
software maintenance, misalnya debugger.
32
c.
Piranti lunak saat ini dikembangkan dengan metode berorientasi objek (object
oriented), sehingga lebih mudah diperbaiki dan di - maintenance.
Elemen untuk pengontrolan proses pada rekayasa piranti lunak, yaitu :
a.
Metode
Metode berupa cara-cara teknis membangun piranti lunak yang terdiri dari
perancangan proyek beserta estimasinya, analisis kebutuhan sistem dan piranti lunak,
perancangan struktur data, arsitektur program, prosedur algoritma, coding, pengujian
dan pemrograman.
b.
Alat bantu
Alat bantu merupakan dukungan baik secara otomatis atau semi otomatis untuk
metode-metode seperti CASE (Computer Aided Software Engineering) yang
mengkombinasikan piranti lunak dan piranti keras dan software engineering database
untuk pengembangan piranti lunak yang sejalan dengan CADE (Computer Aided
Design Engineering) untuk piranti keras.
c.
Prosedur
Prosedur digunakan sebagai penghubung alat bantu dengan metode. Tujuan dari
prosedur yaitu untuk mendapatkan piranti lunak yang efisien, berguna dan ekonomis.
33
2.9
Waterfall Model
Salah satu dari lima paradigma rekayasa piranti lunak dalam pengembangan
piranti lunak yang baik dan berkualitas adalah Waterfall Model. Model ini disebut juga
linear sequential model. Model rekayasa ini memberikan pendekatan – pendekatan yang
sistematik dan sekuensial dalam pengembangan perangkat lunak.
Menurut Pressman (2001, p28-29), tahapan – tahapan dalam Waterfall Model
adalah sebagai berikut :
1.
Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis)
Hasil dari pengumpulan kebutuhan – kebutuhan piranti lunak
yang telah dilakukan akan difokuskan secara khusus pada piranti lunak.
Untuk membangun suatu piranti lunak yang sesuai dengan permintaan
pengguna, perancang aplikasi (software engineer) harus mengetahui
fungsi – fungsi yang dibutuhkan antarmuka pengguna (user interface) dan
kebutuhan piranti lunak untuk didokumentasikan dan dibahas bersama
dengan konsumen (customer).
2.
Perancangan (Design)
Perancangan piranti lunak meliputi beberapa proses yang
difokuskan pada empat atribut program, yaitu perancangan struktur data,
perancangan arsitektur piranti lunak, perancangan perincian prosedur, dan
perancangan karakteristik dari antarmuka.
34
3.
Pengkodean (Coding)
Setelah dilakukan perancangan, maka selanjutnya dilakukan tahap
pengkodean. Pengkodean dilakukan untuk menerjemahkan perancangan
yang telah dibuat ke dalam bentuk yang dapat dibaca oleh mesin, yaitu
dengan membuat program.
4.
Pengujian (Testing)
Setelah program selesai dibuat, maka akan dilakukan pengujian.
Tahap pengujian perlu dilakukan agar keluaran yang dihasilkan oleh
program sesuai dengan yang diharapkan. Pengujian difokuskan pada :
a. Logical internal of the software
Pengetesan terhadap statement – statement.
b. Functional external
Pengetesan dilakukan untuk menemukan error pada program. Pada
pengetesan ini, masukan (input) yang diberikan harus mendapatkan
keluaran (output) yang sesuai dengan yang diharapkan.
Pengujian dilakukan secara menyeluruh sampai semua perintah dan
fungsi telah diuji.
35
5.
Pemeliharaan (Maintenance)
Karena kebutuhan pengguna selalu meningkat, maka piranti lunak
yang telah selesai dibuat perlu dipelihara agar dapat mengantisipasi
kebutuhan pemakai terhadap fungsi – fungsi baru yang berasal dari luar
atau perubahan –perubahan pada sistem yang dapat timbul karena
munculnya sistem operasi baru, piranti keras baru, dan sebagainya.
Pemeliharaan piranti lunak menawarkan setiap langkah daur
hidup yang terdahulu, sehingga untuk melakukan perbaikan tidak perlu
merancang piranti lunak yang baru.
Gambar model waterfall dapat dilihat pada gambar 2.13.
Analysis
Design
Coding
Testing
Maintenance
Gambar 2.13 Waterfall Model
36
2.10
Object Oriented Design
Menurut Allen dan Terry (2005), Object Oriented Design merupakan metodologi
campuran yang mengubah sistem menjadi objek, menggabungkan karakteristik data
dalam bentuk atribut dan karakteristik proses dalam bentuk metode.
Object Oriented Design menggabungkan elemen – elemen teknik perancangan
orientasi data dan orientasi fungsi, dan sistem model sebagai kumpulan objek – objek
yang bekerja bersama – sama. Rancangan sistem objek, termasuk di dalamnya fungsi
dan kebutuhan data, kemudian dilanjutkan dengan perancangan piranti lunak.
Kelebihan dari Object Oriented Design antara lain, membangun objek model
dengan tepat, penggunaan kembali dan pertukaran objek menjadi lebih mudah.
2.11
UML (Unified Modeling Language)
Model data yang akan digunakan untuk pembuatan tools adalah model data
UML.
Menurut Ponniah (2007, p61), United Modeling Language adalah bahasa
spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun
sistem perangkat lunak. Unified Modeling Languange tidak berdasarkan pada bahasa
pemrograman tertentu. Standar spesifikasi Unified Modeling Languange dijadikan
standar defacto oleh OMG (Object Management Group) pada tahun 1997. Unified
Modeling Languange yang berorientasikan object mempunyai beberapa notasi standar.
37
Unified Modeling Languange menggabungkan teknik terbaik dari pemodelan data (entity
relationship diagram / ERD), pemodelan bisnis (work flows), pemodelan objek, dan
pemodelan komponen. Unified Modeling Languange bertujuan untuk menjadi standar
bahasa pemodelan (Modeling) yang dapat membentuk sistem yang sama dan yang
terbagi – bagi (shared).
Spesifikasi ini menjadi populer dan standar karena sebelum adanya Unified
Modeling Languange, telah ada berbagai macam spesifikasi yang berbeda. Hal ini
menyulitkan komunikasi antar pengembang piranti lunak. Untuk itu beberapa
pengembang spesifikasi yang sangat berpengaruh berkumpul untuk membuat standar
baru.
Dengan menggunakan Unified Modeling Language, model dapat dibuat untuk
semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti
keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman
apapun. Karena Unified Modeling Languange menggunakan class dan operation dalam
konsep dasarnya, maka Unified Modeling Languange lebih cocok untuk penulisan
piranti lunak dalam bahasa – bahasa berorientasi objek seperti C++, Java, C# atau
VB.NET. Walaupun demikian, Unified Modeling Languange tetap dapat digunakan
untuk pemodelan aplikasi procedural dalam VB atau C.
38
Simbol – simbol Unified Modeling Language yang digunakan :
1.
B 2.
A Sebuah class bernama B
B Garis menghubungkan class A dan B secara
asosiatif
3.
Interval nomor yang diperkenankan untuk objek –
1 4.
0..* A objek asosiasi. (1 = tepat satu; 0..* = nol atau lebih)
B Aggregation : Class B merupakan bagian dari A
C Inheritance : Class C merupakan class turunan
dari B
Berikut
beberapa
diagram
dalam
Unified
Modeling
Languange
dan
penjelasannya:
‐
Use case diagram : use case diagram digunakan untuk mengidentifikasi elemen
primer dan proses yang membentuk sistem.
‐
Class diagram : class diagram digunakan untuk menyempurnakan use case
diagram dan menjelaskan rancangan sistem secara detail.
‐
Object diagram : object diagram merupakan spesialisasi dari class diagram.
Sebuah objek adalah instance dari sebuah class.
39
‐
State diagram : state diagram menggambarkan state dari objek dalam sistem.
Objek dalam sistem mengubah state sebagai respon dari event. Sebagai tambahan,
sebuah state diagram juga menggambarkan transisi dari state object mulai dari awal
sampai akhir sebagai respon terhadap event yang berdampak pada sistem.
‐
Activity diagram : activity diagram menggambarkan aliran proses dalam sistem.
‐
Sequence diagram : sequence diagram menggambarkan interaksi antar objek
dalam sistem berdasarkan waktu.
‐
Collaboration diagram : collaboration diagram mengelompokkan interaksi antar
objek berbeda.
‐
Component diagram : component diagram menggambarkan gabungan high –
level yang membangun sistem.
‐
Deployment diagram : deployment diagram menggambarkan konfigurasi elemen
runtime dari aplikasi.
2.11.1 Use Case Diagram
Menurut Allen dan Terry (2005), Use Case Diagram adalah diagram
yang menggambarkan fungsionalitas yang disediakan sistem yang disebut
dengan aktor (actor), fungsi (digambarkan sebagai use case), dan ketergantungan
antara use case tersebut.
40
Use case diagram menunjukkan posisi atau konteks dari suatu use case
diantara use case lainnya. Use case memperlihatkan diagram dari sudut pandang
perilaku sistem.
Relasi dalam use case diagram harus antara aktor dengan sistem, namun
ada relasi yang diperbolehkan antara aktor dengan aktor yang digambarkan
dengan notasi garis lurus dengan ujung segitiga kosong dari aktor khusus menuju
aktor umum. Contoh use case diagram dapat dilihat pada gambar 2.14.
Gambar 2.14 Contoh Use Case diagram
Terdapat tiga relasi dalam use case diagram yang didukung oleh standar
Unified Modeling Language, yaitu :
‐ Include
Relasi ini berguna untuk memadukan perilaku dari use case lain yang
disebutkan ke dalam use case. Notasinya dilambangkan dengan tanda panah
dari including menuju included use case disertai label “<<include>>”.
41
Notasi ini mirip seperti sebuah perluasan makro dimana included use case
ditempatkan didalam use case behavior dasar.
‐ Extend
Relasi ini mengindikasikan bahwa behavior dari extension use case boleh
dimasukkan dalam extended use case dengan syarat tertentu. Notasinya
dilambangkan tanda panah dari extension use case menuju extended use
case, dengan label “<<extend>>”
‐ Generalization
Dalam relasi antara use case, terdapat relasi generalisasi / spesialisasi.
Notasinya dilambangkan dengan sebuah garis lurus berujung segitiga kosong
dari spesialisasi ke generalisasi use case.
2.11.2 Class diagram
Menurut Whitten et al. (2004, p441), Dalam Unified Modeling Language,
class diagram adalah tipe dari static structure diagram yang menggambarkan
struktur dari sebuah sistem dengan menunjukkan kelas – kelas sistem, atributnya,
dan relasi antar kelas. Class diagram bisa berisi tampilan dari suatu package dan
bisa berisi simbol untuk nested package. Class diagram berisi elemen tingkah
laku tertentu, seperti operasi, tetapi dinamikanya digambarkan pada diagram lain,
42
seperti statechart diagram dan collaboration diagram. Contoh class diagram
dapat dilihat pada gambar 2.15.
Gambar 2.15 Class diagram
Terdapat beberapa relasi dalam class diagram :
‐ Link
Menurut Allen dan Terry (2005), Link adalah relasi dasar antara objek.
Digambarkan dengan sebuah garis yang terhubung antara dua objek atau
lebih. Dapat digunakan pada class diagram atau object diagram. Link adalah
instance dari asosiasi (association).
43
‐ Association
Association mewakili kumpulan link. Binary association (dengan dua
ujung) umumnya digambarkan sebagai sebuah garis, dengan masing –
masing ujung terhubung pada class box. Association tingkat tinggi dapat
digambarkan lebih dari dua ujung. Pada beberapa kasus, ujung – ujungnya
terhubung dengan permata pusat. Contoh association dapat dilihat pada
gambar 2.16.
Gambar 2.16 Contoh Association
‐ Aggregation
Menurut Allen dan Terry (2005), Aggregation adalah varian dari
“mempunyai” asosiasi, aggregation lebih spesifik dibandingkan asosiasi.
Aggregation adalah asosiasi yang mewakili relasi bagian – keseluruhan.
Sebagai bagian dari asosiasi, aggregation dapat dinamai dan mempunyai
bentuk yang sama dengan asosiasi. Walaupun begitu, aggregation tidak
boleh melibatkan lebih dari dua kelas. Contoh aggregation dapat dilihat pada
gambar 2.17.
44
Gambar 2.17 Contoh Aggregation
‐ Composition
Menurut Allen dan Terry (2005), Composition adalah varian yang lebih
kuat dari “mempunyai” asosiasi; composition lebih spesifik dibandingkan
aggregation. Composition biasanya mempunyai ketergantungan daur hidup
(life cycle) yang kuat antara instance dari container class dan instance dari
contained class : jika container dihancurkan, normalnya setiap instance yang
dimilikinya dihancurkan pula. Perhatikan bahwa sebuah bagian dapat (jika
diperbolehkan) dibuang dari composite sebelum composite dihapus, dan
kemudian tidak dihapus sebagai bagian dari composite. Contoh composite
dapat dilihat pada gambar 2.18.
Gambar 2.18 Contoh Composition
45
‐ Generalization
Relasi generalization mengindikasikan bahwa satu dari dua class yang
saling berhubungan (subtype) adalah bentuk spesialisasi dari class lainnya
(supertype) dan supertype adalah generalization dari subtype juga.
Generalization pada class diagram mirip dengan pada use case diagram,
begitu pula dengan notasinya.
2.11.3 Activity diagram
Menurut Whitten et al (2004, p442), Activity diagram adalah sebuah
diagram yang berisi aktifitas dan aksi untuk menggambarkan alur kerja.
Berikut beberapa simbol yang digunakan dalam activity diagram dan
fungsinya.
‐
Initial state, menggambarkan awal dari sebuah proses.
‐
State, segi empat bersudut tumpul menggambarkan tugas yang perlu
dilakukan.
‐
Transition, panah menggambarkan sasaran yang mengawali aktivitas.
‐
Transition (fork), merupakan bar sinkronisasi dimana kegiatan dapat
dilakukan secara paralel.
46
‐
Transition (join), merupakan bar sinkronisasi dimana dua aktivitas
mempunyai tujuan yang sama dan tujuan dari keduanya digabungkan menjadi
satu.
‐
Decision, menggambarkan sebuah kegiatan keputusan.
‐
Final state, menggambarkan akhir dari sebuah proses.
Sebuah activity diagram bisa menunjukkan aliran nilai objek, seperti
halnya dengan aliran kontrol. Aliran state object (object flow state)
menggambarkan objek yang merupakan input dan output dari suatu activity.
Untuk nilai output, anak panah putus – putus digambarkan dari activity ke object
flow state. Untuk nilai input, garis putus – putus digambarkan dari object flow
state ke activity. Jika activity punya lebih dari satu nilai output atau penerus dari
control flow, maka anak panah digambarkan dari simbol fork. Sama halnya
dengan multiple input yang digambarkan menuju simbol join. Contoh activity
diagram dapat dilihat pada gambar 2.19.
Gambar 2.19 Activity diagram
47
2.11.4 Sequence Diagram
Menurut Allen dan Terry (2005), Sequence Diagram adalah salah satu
diagram interaksi dalam Unified Modeling Language, yang menunjukkan
bagaimana proses beroperasi satu sama lain dan bagaimana urutannya.
Sequence diagram digambarkan sebagai interaksi dari dua grafik
dimensional. Dimensi vertikal merupakan sumbu waktu, yang berjalan makin ke
bawah.
Dimensi
horisontal
menggambarkan
peranan
classifier
yang
menampilkan objek individual di dalam kolaborasi. Tiap peranan classifier
digambarkan dengan kolom vertikal sebagai lifeline. Selama objek ada, peranan
dari objek tersebut digambarkan dengan garis putus – putus. Selama aktivasi
prosedur pada sebuah objek masih aktif, lifeline digambarkan dengan garis ganda
(double line). Contoh sequence diagram dapat dilihat pada gambar 2.20.
48
Gambar 2.20 Sequence diagram
Di bawah ini beberapa simbol yang sering digunakan saat membuat
sequence diagram :
‐ Object lifeline
Object lifeline menggambarkan waktu life cycle suatu objek selama skenario
sedang dibuat.
49
‐ Activation
Dimana proses sedang dilakukan oleh objek / class untuk memenuhi pesan /
perintah.
‐ Message
Message merupakan sebuah anak panah yang mengindikasikan pesan
diantara objek. Dan objek dapat mengirimkan pesan ke dirinya sendiri.
2.11.5 State diagram
State diagram menggambarkan transisi dan perubahan keadaan dari satu
state ke state yang lain. State diagram juga dapat menggambarkan kondisi
tampilan sebagai suatu state. Kondisi tampilan akan berubah sesuai aksi yang
diberikan. Contoh state diagram dapat dilihat pada gambar 2.21.
50
Gambar 2.21 State diagram 
Download