bab 2 tinjauan pustaka - binus...
TRANSCRIPT
BAB 2
TINJAUAN PUSTAKA
2.1. Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak adalah penerapan pendekatan yang sistematis,
disiplin, dan kuantitatif untuk pengembangan, pengoperasian, dan pemeliharaan
perangkat lunak. (Pressman, 2014, pp. 15-16)
Rekayasa Perangkat Lunak memiliki 4 lapisan, yaitu sebagai berikut:
1. Tools
Tools dalam rekayasa perangkat lunak menyediakan dukungan otomatis atau
semi-otomatis untuk lapisan process dan methods. Saat lapisan tools terintegrasi,
maka informasi yang dibuat oleh 1 tool dapat digunakan oleh yang lainnya, dan
pada akhirnya sebuah sistem untuk bantuan pengembangan perangkat lunak yang
dinamakan computer-aided software engineering terbuat.
2. Methods
Methods dalam rekayasa perangkat lunak menyediakan panduan teknikal untuk
membuat perangkat lunak. Methods mencakup kumpulan tugas secara luas yang
termasuk komunikasi, analisa kebutuhan, perancangan desain, konstruksi
program, testing dan dukungan.
3. Process
Lapisan process merupakan fondasi dari rekayasa perangkat lunak. Process
dalam rekayasa perangkat lunak adalah perekat yang melekatkan lapisan-lapisan
teknologi dan memungkinkan pengembangan perangkat lunak komputer yang
rasional dan tepat waktu. Lapisan process menentukan kerangka kerja yang harus
dibuat untuk penyampaian yang efektif dalam teknologi rekayasa perangkat
lunak.
4. A Quality Focus
Qualify Focus dalam rekayasa perangkat lunak adalah batuan dasar yang
menopang dan membantu rekayasa perangkat lunak.
7
8
Gambar 2-1 Lapisan rekayasa perangkat lunak
Source: (Pressman, 2014, p. 16) 2.2. Incremental Process Model
Incremental Process Model adalah sebuah metode pengembangan perangkat
lunak yang dimana sebuah produk dirancang, diimplementasikan, dan diuji secara
bertahap sampai produk tersebut selesai. Incremental Process Model
menggabungkan elemen-elemen dari waterfall model dengan menerapkan filosofi
iterative dari prototyping model.
Incremental Process Model mempunyai 5 tahap yang harus ada dalam
prosesnya, yaitu sebagai berikut:
1. Communication
Dalam incremental process model, tahap communication bertujuan untuk
memahami apa yang menjadi tujuan yang akan dicapai.
2. Planning
Dalam incremental process model, tahap planning bertujuan untuk membuat
rencana kerja yang akan dilaksanakan bersama oleh tim.
3. Modelling
Dalam incremental process model, tahap modelling bertujuan untuk menganalisa
perancangan bisnis, perancangan data, dan perancangan proses.
4. Construction
Dalam incremental process model, tahap construction merupakan tahap dimana
kode mulai dikerjakan bersamaan dengan melakukan testing pada produk yang
akan dibuat.
5. Deployment
Dalam incremental process model, tahap deployment merupakan tahap terakhir
yang bertujuan untuk menyampaikan hasil yang setelah selesai di tahap
9
increment ini. Selain itu, pada tahap ini juga bertujuan untuk mendapatkan kritik
dan saran terhadap hasil yang dibuat di tahap increment ini.
Gambar 2-2 Incremental Process Model
Source: (Pressman, 2014, pp. 41-42)
2.3. Interaksi Manusia dan Komputer
2.3.1. Eight Golden Rules
Terdapat 8 aturan emas dalam perancangan desain antarmuka yang harus
diperhatikan berdasarkan (Shneiderman, Plaisant, Cohen, & Jacobs, 2010, pp. 88-
89), yaitu sebagai berikut:
1. Strive for consistency
User interface yang dibuat harus memiliki tampilan yang konsisten untuk aksi-
aksi yang serupa. Konsistensi yang dimaksud dapat mencakup icon, warna,
penggunaan font, layout, dan juga alur dari aplikasi. Aturan ini bertujuan untuk
membuat pengguna lebih terbiasa dan mudah menggunakan aplikasi yang dibuat.
2. Cater to universal usability
Designer harus menyadari kebutuhan dari beragam pengguna, desain yang dibuat
harus memfasilitasi perubahan konten. Designer harus dapat membuat desain
yang mudah digunakan untuk pengguna pemula, orang yang sudah lanjut usia,
pengguna ahli, dan keberagaman pengguna lainnya. Dengan menambahkan fitur-
fitur yang dibutuhkan pemula seperti panduan dan penjelasan, tentunya dapat
memudahkan pengguna pemula dalam menggunakan aplikasi. Serta
menambahkan fitur untuk pengguna ahli seperti pencarian menu, juga dapat
memudahkan pengguna ahli dalam menggunakan aplikasi tersebut.
10
3. Offer informative feedback
Untuk setiap aksi yang dilakukan pengguna, harus ada umpan balik yang
diberikan oleh sistem. Untuk aksi yang sering dilakukan atau bersifat minor,
dapat memberikan respon yang sederhana, sedangkan untuk aksi yang jarang
dilakukan atau bersifat major, respon yang diberikan harus lebih besar serta
adanya konfirmasi untuk meyakinkan pengguna dalam melakukan aksi tersebut.
4. Design dialogs to yield closure
Urutan dari aksi yang dilakukan harus dibagi menjadi awal, pertengahan, dan
akhir. Umpan balik yang informatif saat aksi selesai dilakukan oleh pengguna
dapat memberikan petunjuk untuk melanjutkan aksi yang selanjutnya. Sebagai
contoh, situs e-commerce memindahkan pengguna dari halaman pemilihan
produk ke halaman keranjang belanja, berakhir dengan halaman konfirmasi
pembayaran produk yang dibeli secara rinci.
5. Prevent errors
Sebisa mungkin, desain sistem harus dirancang sedemikian rupa sehingga
pengguna tidak dapat membuat kesalahan yang serius. Misalnya, tidak
mengizinkan adanya karakter alfabet dalam numeric entry field. Jika pengguna
membuat kesalahan, tampilan antarmuka harus mendeteksi kesalahan yang
didapat lalu memberikan instruksi yang jelas tentang seperti letak kesalahan dan
penjelasan kesalahan yang dibuat. Sehingga pengguna dapat memperbaiki
kesalahan yang dilakukan.
6. Permit easy reversal of actions
Sebisa mungkin, aksi yang dilakukan harus reversible (dapat dikembalikan).
Fitur ini dapat mengurangi kecemasan pengguna saat melakukan kesalahan,
karena pengguna mengetahui bahwa kesalahan yang dilakukan dapat dibatalkan.
7. Support internal locus of control
Pengguna yang berpengalaman memiliki perasaan bahwa mereka bertanggung
jawab atas tampilan dan respon dari tampilan yang didapatkan dari aksi yang
mereka lakukan. Mereka tidak ingin adanya perubahan pada perilaku pada
tampilan antarmuka yang sudah familiar, sehingga designer harus membuat
perilaku pada tampilan antarmuka yang berdasarkan ekspetasi pengguna.
8. Reduce short-term memory load
Karena keterbatasan kapasitas memori jangka pendek pada manusia, designer
sebaiknya mengurangi banyaknya informasi yang harus diingat oleh pengguna
11
untuk dapat menggunakan sistem dengan baik. Sehingga designer harus
membuat tampilan antarmuka yang mudah diingat dan dikenal oleh pengguna.
2.3.2. Five Measurable Human Factors
Terdapat 5 faktor manusia terukur yang harus diperhatikan dalam merancang
desain antarmuka berdasarkan (Shneiderman, Plaisant, Cohen, & Jacobs, 2010, p.
32), yaitu sebagai berikut:
1. Time to learn
Waktu yang dibutuhkan pengguna untuk mempelajari bagaimana aksi yang
terdapat didalam aplikasi dapat melakukan suatu tugas.
2. Speed of performance
Berapa lama yang dibutuhkan aplikasi untuk dapat menyelesaikan suatu tugas.
3. Rate of errors by users
Berapa banyak dan apa jenis kesalahan yang dilakukan oleh pengguna saat
melakukan tugas.
4. Retention over time
Bagaimana pengguna dapat mengingat dan memahami cara penggunaan aplikasi
setelah beberapa waktu.
5. Subjective satisfaction
Bagaimana tingkat kepuasan pengguna terhadap penggunaan aspek-aspek dari
tampilan antarmuka. Tingkat kepuasan pengguna dapat didapat dari kuisioner
atau wawancara.
2.4. Database dan DBMS
2.4.1. Database
Database adalah tempat penyimpanan data yang besar yang dapat digunakan
secara bersamaan oleh banyak pengguna. Semua data yang ada terintegrasi dengan
jumlah duplikasi yang sangat minimum, dibandingkan dengan file-file yang tidak
terhubung satu sama lain dan memiliki data redundan. Database juga dapat diartikan
sebagai kumpulan data yang berhubungan secara logical, dan deskripsi dari data-data
ini, harus dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi.
(Connoly & Begg, 2015)
12
2.4.2. DBMS (Database Management System)
Berdasarkan (Connoly & Begg, 2015), DBMS (Database Management
System) adalah perangkat lunak yang berinteraksi dengan program aplikasi pengguna
dan database. Secara khusus, DBMS menyediakan fasilitas sebagai berikut:
1. Mengizinkan pengguna untuk mendefinisikan database, biasanya melalui Data
Definition Language (DDL). DDL dapat mengizinkan pengguna untuk
menspesifikasikan tipe data, struktur, dan constraint pada data yang akan
disimpan ke dalam database.
2. Mengizinkan pengguna untuk menambahkan, menghapus, mengubah, dan
mengambil data dari database, biasanya melalui Data Manipulation Language
(DML). Dengan adanya penyimpanan utama untuk semua data, dapat
mengizinkan DML untuk menyediakan fasilitator untuk data tersebut yang
dinamakan query language.
3. Menyediakan kontrol akses ke database. Contohnya adalah security system
(untuk membatasi akses user yang mengakses database), integrity system (untuk
menjaga konsistensi data yang tersimpan), concurrency control system (untuk
mengizinkan akses yang dibagi dari database), dan recovery control system
(untuk mengembalikan database ke kondisi sebelum terjadi software failure atau
hardware failure).
2.5. Used Technology
2.5.1. HyperText Markup Language (HTML)
HTML adalah sebuah jenis Bahasa yang disebut dengan markup language
yang dirancang untuk menentukan isi dan struktur dari halaman web dengan cara
yang portabel. HTML memungkinkan penggunanya untuk membuat konten yang
diberikan dengan tepat di berbagai perangkat luar biasa yang terhubung ke internet
termasuk ponsel pintar, komputer tablet, komputer notebook, komputer desktop.
(Deitel, Deitel, & Deitel, 2011, p. 6)
2.5.2. Cascading Style Sheets (CSS)
CSS merupakan teknologi dari World Wide Web Consortium (W3C) yang
membuat pengguna mampu menentukan presentasi elemen-elemen pada halaman
web (seperti font, spasi, ukuran, warna, posisi) secara terpisah dari struktur dan isi
dokumen (seperti bagian head, body, dan footer). Pemisahan struktur membuat
13
modifikasi halaman web menjadi lebih mudah dan sederhana terutama dalam
halaman web berskala besar. (Deitel, Deitel, & Deitel, 2011, p. 106)
2.5.3. Bootstrap
Bootstrap merupakan produk yang bersifat sumber terbuka dari Mark Otto
dan Jacob Thornton yang ketika pertama kali Bootstrap diluncurkan, mereka berdua
masih bekerja di Twitter. Nama asli dari Bootstrap adalah Twitter Blue0070print.
Pada waktu itu Twitter mengharuskan adanya standardisasi toolset untuk tampilan
depan. Sejak Bootstrap diluncurkan pada bulan Agustus tahun 2011, popularitasnya
mulai menanjak. Bootstrap berkembang dari proyek CSS-driven menjadi proyek
yang menyertakan plugin JavaScript dan ikon tertentu yang berguna ketika pengguna
form dan button. Salah satu yang menarik adalah buildtool di halaman web
Bootstrap, di mana pengguna dapat menyesuaikan dengan kebutuhan mereka,
memilih fitur CSS dan JavaScript mana yang ingin disertakan di halaman web yang
sedang dibangun. (Spurlock, 2013, p. 1)
2.5.4. Javascript
JavaScript adalah bahasa scripting berbasis objek dan merupakan bahasa
pemrograman sederhana yang memperbolehkan halaman-halaman HTML untuk
menyertakan fungsi-fungsi dan script dapat mengenali dan merespons kepada
tindakan pengguna, seperti contohnya aksi klik, input pengguna, dan navigasi
halaman. Script ini dapat membantu mengimplementasikan sifat kompleks dari web
dengan upaya pemrograman yang minimum. (Deitel, Deitel, & Deitel, 2011, p. 186)
2.5.5. jQuery
jQuery merupakan library JavaScript yang saat ini paling populer dari ratusan
library JavaScript. jQuery menyederhanakan pemrograman JavaScript dengan
membuatnya lebih mudah untuk memanipulasi elemen pada halaman web dan
berinteraksi dengan server secara portabel di berbagai browser web. jQuery
menyediakan library custom Graphical User Interface (GUI) di luar kontrol GUI
dasar disediakan oleh HTML5 yang dapat digunakan untuk meningkatkan tampilan
dan nuansa halaman web. (Deitel, Deitel, & Deitel, 2011, p. 8)
14
2.5.6. Asynchronous JavaScript and XML (AJAX)
AJAX merupakan teknik dalam pembuatan halaman web di mana AJAX
memisahkan interaksi pengguna sisi klien dan komunikasi server dan
menjalankannya secara paralel, mengurangi penundaan pemrosesan sisi server yang
biasanya dialami oleh pengguna. (Deitel, Deitel, & Deitel, 2011, p. 572)
2.5.7. JavaScript Object Notation (JSON)
JSON merupakan format pertukaran data berbasis teks yang digunakan untuk
mewakili objek dalam JavaScript sebagai koleksi dari pasangan nama / nilai diwakili
sebagai String. Ini biasanya digunakan dalam aplikasi Ajax. JSON adalah format
sederhana yang membuat objek mudah dibaca, dibuat dan diuraikan, dan
memungkinkan program untuk mengirimkan data secara efisien di internet karena
jauh lebih sedikit verbose dari XML. (Deitel, Deitel, & Deitel, 2011, p. 792)
2.5.8. DataTable
DataTable merupakan plugin yang menyempurnakan tabel untuk library
JavaScript jQuery dengan menambahkan kemampuan pengurutan, paging, dan filter
pada tabel HTML biasa dengan usaha yang minimum. Tujuan utama dari DataTable
adalah: Untuk meningkatkan aksesibilitas data dalam tabel HTML. (GitHub -
DataTables/DataTables: Tables plug-in for jQuery, 2016)
2.5.9. MySQL
MySQL (diucapkan “my sequel”) merupakan Relational Database
Management System (RDBMS) yang dibuat oleh Michael Monty Widenius pada
tahun 1994 untuk perusahaan TcX. MySQL merupakan produk yang bersifat sumber
terbuka.
Beberapa manfaat penting termasuk:
a) Skalabilitas dapat menanamkannya dalam aplikasi atau menggunakannya dalam
pergudangan data yang besar.
b) Kinerja dapat mengoptimalkan kinerja berdasarkan tujuan dari basis data pada
aplikasi.
c) Dukungan untuk banyak bahasa pemrograman.
d) Implementasi MySQL untuk Windows, Mac OS X, Linux dan UNIX.
15
e) Menangani basis data yang besar (misalnya, puluhan ribu tabel dengan jutaan
baris).
Untuk alasan ini MySQL adalah basis data pilihan untuk banyak bisnis,
universitas dan individu. (Deitel, Deitel, & Deitel, 2011, p. 632)
2.5.10. PHP: Hypertext Preprocessor (PHP)
PHP merupakan bahasa server-side scripting yang paling populer untuk
pembuatan halaman web yang dinamis. PHP dibuat oleh Rasmus Lerdorf. PHP
merupakan platform independen dan dapat diimplementasikan UNIX, Linux, Mac,
dan Sistem Operasi Windows. PHP juga mendukung banyak basis data seperti
MySQL. (Deitel, Deitel, & Deitel, 2011, p. 665)
2.5.11. Laravel
Laravel merupakan framework aplikasi web PHP yang menyediakan sintak
yang elegan dengan mengurangi tugas-tugas umum yang dilakukan dalam proses
pembuatan web seperti authentication, routing, sessions, dan caching. Laravel
dibangun menggunakan konsep MVC (Model View Controller) dan dirancang untuk
meningkatkan kualitas aplikasi berbasis situs web yang menyediakan sintak yang
ekspresif, mudah dibaca dan menghemat waktu. (GitHub - laravel/laravel: A PHP
framework for web artisans, 2015)
2.5.12. Laravel Excel Maatwebsite
Laravel Excel membawa kekuatan PHPExcel PHPOffice ke Laravel 5 dengan
sentuhan Magic Laravel. Ini termasuk fitur seperti: mengimpor Excel dan CSV ke
koleksi, mengekspor model, array dan view ke Excel, mengimpor batch file dan
mengimpor file oleh config file. (GitHub - Maatwebsite/Laravel-Excel: Supercharged
Excel exports and imports in Laravel, 2016)
2.5.13. Model View Controller (MVC)
Model View Controller adalah sebuah design pattern arsitektural yang
mendukung improvisasi aplikasi dengan pemisahan fokus pada kode menjadi 3 yaitu
business data (Model), user interface (View), dan perantara ketiga yang mengatur
logika pada aplikasi (Controller). (Osmani, 2017)
16
2.6. ER Modeling
ER modeling adalah pendekatan Top-Down untuk perancangan basis data
yang diawali dengan identifikasi data yang penting yang disebut entitas / Entity dan
hubungan / Relationship antara data yang harus direpresentasikan di model.
(Connoly & Begg, 2015, p. 405) Berikut adalah beberapa komponen dalam ER
Modeling:
a) Entity Types
Entity Types adalah suatu kumpulan dari objek yang memiliki property yang
sama, yang
diidentifikasikan oleh perusahaan karena memiliki keberadaan yang mandiri /
tidak tergantung / independen. (Connoly & Begg, 2015, p. 406)
b) Relationship Types
Relationship Types adalah kumpulan dari asosiasi / hubungan yang bermakna
antara satu atau lebih entitas. (Connoly & Begg, 2015, p. 407)
c) Attributes
Attributes adalah properti dari entitas atau relationship. contohnya adalah sebuah
entitas bernama staff yang mungkin bisa dideskripsikan dengan attribute IdStaff,
nama, posisi. (Connoly & Begg, 2015, p. 413)
1. Simple and Composite Attribute
Simple Attribute adalah attribut yang terdiri dari satu komponen dengan
keberadaan yang independen. Attribut ini tidak dapat dipecah lagi menjadi
komponen yang lebih kecil dan terkadang disebut juga Atomic Attributes.
Sedangkan Composite Attribute adalah atribut yang terdiri dari lebih dari satu
komponen dimana setiap komponen memiliki keberadaan yang independen.
2. Single-Valued and Multi-Valued Attributes
Single-valued attribute adalah atribut yang memiliki satu nilai untuk setiap
kejadiannya di setiap entitas. Kebanyakan atribut adalah atribut yang bernilai
tunggal. Sedangkan Multi-valued attribute adalah atribut yang memiliki lebih
dari satu nilai untuk setiap kejadian di setiap entitas.
3. Derived Attributes
Derived Attributes adalah atribut yang merepresentasikan nilai yang dapat
diwariskan dari nilai atribut yang berhubungan atau kumpulan attribut.
4. Keys
Keys dapat dikategorikan dalam beberapa jenis berikut, yaitu:
17
a. Candidate Key
Candidate Key adalah kumpulan dari atribut minimum yang secara unik
diidentifikasi di setiap entitas.
b. Primary Key
Primary Key adalah candidate key yang terpilih untuk mengidentifikasi
secara unik setiap entitas
c. Composite Key
Composite Key adalah candidate key yang terdiri dari dua atau lebih
attribute.
d. Alternate Key
Alternate Key adalah candidate key yang tidak terpilih untuk menjadi
primary key.
e. Foreign Key
Foreign Key adalah satu atau kumpulan atribut dalam satu relasi yang
cocok dengan candidate key dari beberapa relationship.
Salah satu notasi yang dapat digunakan pada ERD adalah Crow’s Foot.
(Coronel, Morris, & Rob, 2011, p. 39) mengatakan bahwa nama Crow’s Foot berasal
dari ide symbol cabang yang digunakan untuk mewakili sisi “banyak” dari hubungan
antar entitas. Gambar dibawah menunjukkan contoh Entity Relationship Diagram
menggunakan notasi Crow’s Foot.
Gambar 2-3 ERD dengan menggunakan notasi Crow’s Foot
18
Pada notasi Crow’s Foot, terdapat simbol-simbol notasi yang dapat
digunakan untuk merancang ERD. Berikut adalah simbol-simbol yang dapat
digunakan:
Tabel 2-1 Tabel simbol-simbol pada notasi Crow’s Foot
Crow’s Foot Symbols Cardinality Comment
(0,N) Zero or many; the “many” side is
optional.
(1,N) One or many; the “many” side is
mandatory.
(1,1) One and only one; the “1” side is
mandatory.
(0,1) Zero or one; the “1” side is optional.
2.7. UML
UML adalah sekumpulan standar model konstruksi dan notasi yang
didefinisikan oleh Object Management Group (OMG), organisasi standar untuk
pengembangan system. (Satzinger & Jackson, 2011, p. 46)
Ketika mengembangkan UML ada beberapa jenis asumsi yang akan
mengarahkan analis dalam membuat diagram (Satzinger & Jackson, 2011, p. 344):
a. Perfect Technology Assumption
Perfect Technology Assumption adalah asumsi bahwa sistem akan berjalan pada
kondisi operasional and teknologi yang sempurna. (Satzinger & Jackson, 2011, p.
76)
b. Perfect Memory Assumption
Perfect Memory Assumption adalah asumsi yang menyatakan object berada pada
memory dan dapat digunakan untuk use case. Asumsi ini tidak mempertanyakan
apakah object dibuat atau tidak pada memory
c. Perfect Solution Assumption
Perfect Solution Assumption adalah asumsi dimana analis tidak mengkhawatirkan
exception condition. Banyak developer merancang tahap tahap proses sederhana
lalu kemudian menambahkan message lain dan kemudian proses untuk
menangani exception condition.
19
2.7.1. Use Case Diagram
Use Case Diagram adalah model UML yang digunakan untuk menunjukkan
secara grafis use case dan hubungannya dengan pengguna. (Satzinger & Jackson,
2011, p. 78)
Gambar 2-4 Contoh Use Case dengan Actor
Sumber: (Satzinger & Jackson, 2011, p. 82)
1. Use Case
Use Case digambarkan dengan grafis dalam bentuk elips dengan nama use case
muncul di atas, di bawah, atau dalam elips. Sebuah Use Case mewakili satu
tujuan dari sistem dan menggambarkan urutan dari aktivitas dan interaksi
pengguna untuk mencapai tujuan.
20
2. Actor
Gambar 2-5 Contoh Use Case
Sumber: (Satzinger & Jackson, 2011, p. 81)
Use Case diawali atau dipicu oleh pengguna eksternal yang disebut dengan
Actor. Actor perlu berinteraksi dengan sistem untuk bertukar informasi. Actor
mewakili peran pengguna yang berinteraksi dengan sistem dan tidak hanya
individu saja yang bisa menjadi actor melainkan bisa menjadi sebuah organisasi,
sistem informasi lain, atau perangkat eksternal seperti sensor panas. Actor
digambarkan secara grafis sebagai stick figure yang dibawahnya terdapat peran
dari Actor tersebut.
Gambar 2-6 Contoh Actor
Sumber: (Satzinger & Jackson, 2011, p. 81) 3. Relationship
Relationship adalah garis penghubung antara actor dan use case. Relationship
menandakan bahwa use case digunakan oleh seorang actor. Selama proses
pengembangan sebuah use case diagram, satu use case memungkinkan untuk
menggunakan service dari use case lain. Relationship ini disebut sebagai
<<includes>> relationship atau <<uses>> relationship.
21
Gambar 2-7 Contoh Use Case dengan <<includes>> relationship
Sumber: (Satzinger & Jackson, 2011, p. 84)
4. Automation Boundary
Automation Boundary adalah batas yang memisahkan actor dan sistem.
Automation Boundary digambarkan sebagai kotak yang berisi use case
didalamnya.
22
Gambar 2-8 Contoh Automation Boundary
Sumber: (Satzinger & Jackson, 2011, p. 81) 2.7.2. Use Case Description
Use Case Description adalah model tekstual yang mendeskripsikan informasi
atau detail proses tentang setiap use case. Use Case yang sepenuhnya dikembangkan
adalah metode paling formal untuk mendokumentasikan sebuah use case. Salah satu
kesulitan pengembang perangkat lunak adalah mereka seringkali kesulitan untuk
mendapatkan pemahaman yang mendalam tentang kebutuhan pengguna. Tapi dengan
membuat use case yang sepenuhnya dikembangkan, kemungkinan untuk mengerti
secara dalam proses bisnis dan cara sistem harus mendukung use case tersebut dapat
meningkat.
Komponen-komponen dari use case description berdasarkan (Satzinger &
Jackson, 2011, pp. 121-123) adalah sebagai berikut:
1. Use Case Name
Use Case name adalah nama dari use case yang akan dideskripsikan.
2. Scenario
Scenario adalah flow dari activity yang ada didalam use case. Sebuah use case
mungkin memiliki activity-activity yang berbeda.
3. Triggering Event
Triggering event adalah event yang menjadi pemicu atau sebab suatu use case.
4. Brief Description
Brief Description adalah penjelasan dari suatu use case atau scenario.
23
5. Actors
Actor menandakan orang-orang yang terlibat dalam suatu use case. Actor tidak
selalu orang-orang, tetapi juga dapat berupa sistem atau perangkat.
6. Related Use Cases
Related Use Case menandakan use case lain yang berhubungan dengan use case
yang sedang dideskripsikan dan bagaimana use case tersebut berhubungan.
7. Stakeholders
Stakeholders menandakan orang yang berkepentingan dalam suatu use case.
8. Preconditions
Preconditions mengidentifikasikan state atau kondisi seperti apa seharusnya
sistem sebelum use case dimulai.
9. Postconditions
Postconditions mengidentifikasikan state yang terjadi pada saat penyelesaian use
case.
10. Flow of Activities
Flow of activities mendeskripsikan langkah-langkah yang dijalankan oleh actor
dan tanggapan yang dibutuhkan oleh sistem.
11. Exception Conditions
Exception conditions adalah activity alternative dari suatu use case.
24
Gambar 2-9 Contoh Use Case Description
Sumber: (Satzinger & Jackson, 2011, p. 123) 2.7.3. Activity Diagram
Activity Diagram adalah diagram yang mendeskripsikan aktivitas pengguna
atau sistem, orang yang melakukan setiap activity, dan urutan flow dari activity
tersebut (Satzinger & Jackson, 2011, p. 57). Activity Diagram berguna ketika urutan
dari aktivitas sebuah use case sangat complex.
Simbol-simbol yang digunakan ketika mengembangkan suatu activity
diagram adalah sebagai berikut:
25
1. Starting Activity
Starting Activity dilambangkan dengan lingkaran hitam yang menandakan awal
dari sebuah workflow.
2. Ending Activity
Ending Activity dilambangkan dengan lingkaran hitam didalam lingkaran putih
yang menandakan akhir dari sebuah workflow.
3. Activity
Activity dilambangkan dengan oval yang menandakan aktivitas individual dalam
sebuah workflow.
4. Transition Arrow
Transition Arrow adalah panah penghubung yang menandakan urutan antar
activity.
5. Decision Activity
Decision Activity dilambangkan dengan wajik yang menandakan titik keputusan
dimana urutan proses akan mengikuti suatu jalur atau jalur lainnya
6. Merge Activity
Merge Activity dilambangkan dengan wajik yang sama seperti Decision Activity
yang menandakan titik penghubung antara beberapa jalur yang terpisah karena
Decision Activity
7. Synchronization Bar
Synchronization Bar dilambangkan dengan garis tebal yang memisahkan jalur
menjadi beberapa jalur secara bersamaan atau menggabungkan beberapa jalur
(join). Synchronization Bar juga dapat digunakan untuk mewakili perulangan
seperti “do while”.
8. Swimlane
Swimlane adalah daerah kotak yang mewakili agen yang melakukan activity.
26
Gambar 2-10 Simbol-simbol pada Activity Diagram
Sumber: (Satzinger & Jackson, 2011, p. 58)
27
Gambar 2-11 Contoh Activity Diagram
Sumber: (Satzinger & Jackson, 2011, p. 59)
28
2.7.4. Class Diagram
Class Diagram digunakan untuk menunjukkan class-class dari object-object
pada sistem. Sebuah class diagram terdiri dari class dan association antar class.
Salah satu tipe class diagram yang menunjukkan hal-hal dalam masalah
domain pengguna disebut sebagai domain model class diagram. Tipe lain dari class
diagram disebut sebagai design class diagram, dan ini digunakan ketika merancang
class perangkat lunak.
Design class diagram mendeskripsikan class-class dengan cara yang sangat
membantu perancangan database dan perancangan aplikasi. Selama analisis, analis
biasanya tidak menambahkan rincian attribute dalam class diagram. Selama
perancangan yang lebih rinci, menambahkan rincian attribute seperti apakah
attribute tersebut public atau private, tipe attribute, dan method-methodnya.
Pengembang biasanya membuat design class diagram dan mereka menambahkan
lebih banyak class dari yang sudah didefinisikan pada domain model.
Berdasarkan (Satzinger & Jackson, 2011) notasi-notasi yang digunakan
ketika mengembangkan class diagram adalah sebagai berikut:
1. Class
Class adalah klasifikasi yang digunakan untuk mendeskripsikan sekumpulan
object. Class dilambangkan dengan kotak. Simbol class terdiri dari 2 atau 3
bagian. Bagian paling atas terdiri dari nama class, dan bagian kedua terdiri dari
daftar attribute dalam suatu class, dan bagian ketiga (jika ada) terdiri dari daftar
method class tersebut.
29
Gambar 2-12 Notasi dari Class
Sumber: (Satzinger & Jackson, 2011, p. 310)
Nama Class dan attribute dari class diagram menggunakan notasi camelback,
yaitu setiap kata digabung tanpa menggunakan spasi atau underscore. Nama class
dimulai dengan huruf kapital, sedangkan nama attribute dimulai dengan huruf
kecil. Stereotype adalah notasi spesial yang membolehkan penggunanya
mengspesifikasikan tipe spesial dari suatu class. Stereotype memperpanjang
definisi sederhana dari sebuah model dengan menunjukkan bahwa class tersebut
memiliki karakteristik spesial yang ingin kita soroti.
Analis harus mendefinisikan format untuk setiap attribute, yang terdiri dari:
• Visibility (Jika attribute adalah public, maka dilambangkan dengan lambang
plus, jika attribute adalah private maka dilambangkan dengan lambang
minus)
• Nama Attribute
• Tipe Attribute (bisa saja character, string, integer, number, currency, atau
date)
• Initial -value, (jika diperlukan)
• Property (ditulis dengan kurung kurawal), seperti {key}, jika diperlukan
Untuk method, analis harus mendefinisikan format method yang terdiri dari:
• Method Visibility
• Nama Method
• Method Parameter List
30
• Return type
2. Association
Association pada class diagram dilambangkan dengan garis yang
menghubungkan class-class
3. Generalization/Specialization Relationships
Generalization/Specialization Relationship adalah relasi jenis hirarkis yang
mengklasifikasikan hal-hal berdasarkan persamaan dan perbedaan. Superclass
adalah kelas umum yang mungkin memiliki subclass. Subclass adalah kelas yang
lebih khusus yang memiliki karakter khusus sebagai kelas induknya (superclass).
Dalam notasi class diagram, segitiga yang menunjuk ke superclass menunjukkan
hierarki Generalization/Specialization.
Dalam Class Diagram, mungkin ada class yang dicetak miring yang berarti class
tersebut adalah abstrak. Class yang abstrak adalah class yang tidak pernah dapat
dipakai, hanya class yang diwarisi class abstrak yang dipakai. Class-class ini
disebut sebagai concrete classes.
4. Inheritance
Inheritance adalah konsep dimana subclass diwarisi atau dibagikan karakteristik
superclass mereka.
Gambar 2-13 Contoh Generalization/Specialization relationship
Sumber: (Satzinger & Jackson, 2011, p. 105)
31
5. Whole-Part Relationships
Whole-part relationship digunakan untuk menunjukkan asosiasi antara 1 class
dengan class yang lain yang merupakan bagian dari class tersebut. Ada 2 jenis
whole-part relationship yaitu:
• Aggregation
Aggregation adalah whole-part relationship antara aggregate dengan
komponennya dimana komponennya dapat eksis secara terpisah meskipun
aggregate tidak ada. Aggregate diwakili dengan simbol wajik.
• Composition
Composition adalah whole-part relationship yang lebih kuat dimana
komponen, setelah diasosiasikan, tidak dapat eksis secara terpisah.
Composition diwakili dengan symbol wajik yang berisi.
6. Navigation Visibility
Navigation Visibility menunjukkan kemampuan satu object untuk melihat dan
berinteraksi dengan object lain. Ada dua jenis Navigation Visibility: Attribute
navigation visibility dan Parameter navigation visibility. Ketika class memiliki
attribute dan merujuk pada object lain, ini disebut Attribute navigation visibility.
Parameter navigation visibility terjadi ketika class melewati parameter yang
merujuk pada object lain.
Ketika merancang class diagram, Menurut (Satzinger & Jackson, 2011, p.
317) ada 2 prinsip sederhana: cohesion dan coupling. Cohesion adalah ukuran
kualitatif dari fokus atau kesatuan tujuan dalam satu class. Coupling adalah ukuran
kualitatif seberapa dekat class dalam perancangan class diagram dihubungkan.
Analis kadang-kadang perlu mendokumentasikan perbedaan atau kesamaan
dalam hubungan antar object dalam layer yang berbeda. Package diagram dalam
UML adalah diagram tingkat tinggi yang memungkinkan analis mengasosiasikan
class-class berdasarkan kelompok-kelompok. Dengan menggunakan package
diagram, setiap layer dapat dipisahkan ke dalam package yang berbeda-beda.
2.7.5. Sequence Diagram
Sequence diagram adalah diagram yang menunjukkan use case atau scenario
dan urutan pesan antara actor eksternal dan sistem. Sequence Diagram
mendokumentasikan input dan output dan mengidentifikasi interaksi antara actor dan
sistem (Satzinger & Jackson, 2011, p. 126).
32
Berikut adalah notasi yang digunakan ketika mengembangkan sequence
diagram:
1. Actor
Actor pada sequence diagram sama seperti actor pada use case diagram yang
menandakan orang yang berinteraksi dengan sistem. Sequence diagram
mencakup bagaimana actor berinteraksi dengan sistem, bagaimana actor
memasukkan input data, dan menerima output data.
2. Object
Object pada sequence diagram dilambangkan dengan kotak yang mengacu pada
object individu. Notasinya adalah berbentuk persegi panjang dengan nama object
yang digaris bawahi. Contohnya “:System”, Object ini menandakan keseluruhan
sistem.
3. Lifeline
Lifeline adalah garis putus putus vertikal dibawah actor atau object dalam
sequence diagram. Diantara lifeline ada panah yang mewakili pesan yang dikirim
oleh actor. Tujuan dari lifeline adalah untuk menunjukkan urutan pesan yang
dikirim dan diterima oleh actor dan object.
4. Input Message
Pesan dan data input dilambangkan tanda panah yang diberi label untuk
menjelaskan tujuannya dan setiap data input yang dikirim. Nama pesan harus
mengikuti kata kerja-kata kerja sintaks untuk membuat tujuan menjadi jelas.
Dalam Sequence Diagram, sebuah pesan mirip dengan perintah yang dipanggil
pada object tujuan. Data input yang dikirim bersama pesan ditulis dalam tanda
kurung.
5. Return Value
Return value dilambangkan dengan panah dengan garis putus putus yang
menandakan respon atau jawaban. Hanya data yang dikirim pada respon yang
dicatat, karena itu adalah respon.
33
Gambar 2-14 Notasi sederhana pada Sequence Diagram
Sumber: (Satzinger & Jackson, 2011, p. 127)
6. Loop Frame
Loop Frame dalam sequence diagram menunjukkan operasi berulang. Loop
Frame dilambangkan dengan persegi panjang yang lebih besar yang memiliki
persegi panjang yang lebih kecil di bagian atas Frame. Persegi panjang yang
lebih kecil berisi teks untuk mengontrol perilaku pesan dalam persegi panjang
yang lebih besar.
34
Gambar 2-15 Contoh perulangan pada Sequence Diagram
Sumber: (Satzinger & Jackson, 2011, p. 128)
7. Opt Frame
Opt Frame pada sequence diagram digunakan ketika respon atau sekumpulan
respon adalah pilihan atau berdasarkan kondisi true/false. Brackets []
menandakan kondisi true/false.
35
Gambar 2-16 Contoh opt frame
Sumber: (Satzinger & Jackson, 2011, p. 130)
8. Alt Frame
Alt Frame pada Sequence diagram digunakan untuk menandakan logika if-then-
else. Brackets [] menandakan kondisi true/false.
36
Gambar 2-17 Contoh alt frame
Sumber: (Satzinger & Jackson, 2011, p. 130)
2.8. Skripsi
2.8.1. Skripsi
Skripsi adalah karangan ilmiah yang wajib ditulis oleh mahasiswa sebagai
bagian dari persyaratan akhir pendidikan akademisnya. Skripsi bertujuan agar
mahasiswa mampu menyusun dan menulis suatu karya ilmiah sesuai dengan bidang
ilmunya. Skripsi merupakan persyaratan untuk mendapatkan status sarjana (S1) di
setiap perguruan tinggi negeri maupun perguruan tinggi swasta yang ada di
Indonesia. (School of Computer Science, n.d.)
2.8.2. Topik Skripsi
Dalam menjalankan proses skripsi, mahasiswa harus memilih topik skripsi
yang akan diambil untuk dijadikan bahan penulisan skripsi. Topik skripsi yang dapat
dipilih oleh mahasiswa biasanya bermacam-macam sesuai dengan jurusan yang
diambil oleh mahasiswa. Dengan adanya topik skripsi, skripsi untuk satu jurusan
37
dapat dibagi-bagi sehingga proses pengecekan skripsi dilakukan oleh CCC yang
menangani suatu topik tersebut. (School of Computer Science, n.d.)
2.8.3. Tipe Skripsi
Selain memilih topik skripsi, mahasiswa yang sedang menjalankan proses
skripsi juga harus memilih tipe skripsi. Tipe Skripsi adalah jenis skripsi yang
ditempuh mahasiswa sarjana (S1) selama proses pengerjaan skripsi. Dapat berupa
non-class, class, internship, dan lain-lain. Setiap tipe skripsi dapat memiliki
ketentuan yang berbeda-beda dari segi penulisan, isi, bimbingan, dan lain-lain.
(School of Computer Science, n.d.)
2.8.4. Proposal Skripsi
Proposal Skripsi adalah usulan penelitian yang harus dibuat oleh mahasiswa
sarjana (S1) untuk dijadikan skripsi. Sebelum mahasiswa membuat penulisan skripsi,
mahasiswa harus membuat proposal skripsi untuk dapat mengajukan judul dan topik
yang akan dijadikan skripsi. Dalam proses pengumpulan proposal skripsi, akan ada
pihak yang melakukan review terhadap proposal skripsi yang dikumpulkan untuk
dapat menentukan apakah judul dan topik yang diajukan dapat dijadikan skripsi atau
tidak. (School of Computer Science, n.d.)
38