BAB 2
TINJAUAN PUSTAKA
2.1 Teori yang berkaitan dengan Software engineering
2.1.1 Software
Software adalah program komputer dan dokumentasi terkait. produk perangkat lunak mungkin dikembangkan untuk customer tertentu atau mungkin untuk pasar umum ( Sommerville, 2011, p. 6 ).
2.1.2 Software engineering
Menurut Sommerville ( 2011, p. 6 ) Software engineering merupakan sebuah ajaran rekayasa yang memperhatikan dengan semua aspek pada produksi software. Ada empat fundamental dalam software engineering yaitu software specification, software development, software validation, dan software evolution. Dalam software engineering terdapat banyak teknik dan metodologi namun tidak ada satupun yang terbaik karena semua tergantung dari kondisi yang sedang dihadapi. Dalam software engineering terdapat beberapa prinsip antara lain sebagai berikut: a.
Maintainability : software ditulis sedemikian rupa sehingga dapat berkembang berdasarkan harapan dari user.
b.
Dependability and security : Keandalan software harus tidak dapat menyebabkan kerusakan fisik atau ekonomi dalam kejadian gagal system.
c.
Efficiency : software tidak boleh membuang-buang sumber daya system seperti memory dan processor cycle.
9
10 d.
Acceptability : software harus dapat diterima harus dapat diterima oleh user yang ditargetkan.
Sistematika yang digunakan pada software engineering disebut juga sebagai proses software ( software process ). Sebuah proses software merupakan urutan dari aktifitas yang mengacu pada produksi dari produk software. Terdapat empat fundamental dalam hal ini: a. Software specification, dimana user dan perekayasa mententukan software yang akan diproduksi dan batasan pada tiap operasi. b. Software development, dimana software didesign dan diprogram. c. Software validation, dimana software diperiksa untuk memastikan bahwa apa yang user / pembeli butuhkan. d. Software evolution, software dimodifikasi berdasarkan perubahan pada kebutuhan user dan pasar.
2.1.3 Interaksi manusia dan komputer
2.1.3.1 Pengertian interaksi manusia dan komputer
Menurut Shneiderman dan Plaisant ( 2010, p. 22 ), interaksi manusia dan komputer adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi system komputer interatif untuk digunakan oleh manusia, serta studi fenomena fenomena besar yang berhubungan dengannya.
2.1.3.2 Perancangan Interface
Menurut Schneiderman ( 2010, p. 32 ), ada 5 faktor penting dalam perancangan interface, yaitu:
1. Waktu Belajar Waktu
belajar
yang
diperlukan
oleh
user
mempelajari sebuah fungsi dalam penyelesaian tugas.
untuk
11 2. Kecepatan Kinerja Setelah fungsi tersebut dapat dipelajari, selanjutnya adalah penghitungan waktu yang dibutuhkan user untuk mengerjakan suatu tugas.
3. Tingkat Kesalahan User Berapa banyak kemungkinan untuk terjadi kesalahan, khususnya kesalahan-kesalahan yang umum.
4. Daya Ingat Berkaitan tentang waktu ingat seorang user terhadap fungsi yang mereka pelajari. Daya ingat sangat dipengaruhi oleh waktu belajar dan frekuensi user.
5. Kepuasan Subjektif Aplikasi yang baik akan menghasilkan kepuasan dari user. Kepuasan seorang user dapat diketahui melalui kuesioner maupun wawancara.
2.1.3.3 Delapan Aturan Emas
Untuk mengoptimalisasi perancangan interface, terdapat delapan aturan emas atau yang biasa disebut 8 Golden Rules yang harus diikuti. Shneiderman ( 2010, p. 88-89 ) delapan aturan emas tersebut adalah :
1. Menjaga Konsistensi Rangkaian aksi dalam suatu keadaan harus sama dengan rangkaian aksi lain tapi dalam keadaan yang hampir sama.
2. Menggunakan Usability yang Universal
12 Apabila seorang user sudah terbiasa menggunakan aplikasi ini, maka user akan mengharapkan suatu fungsi yang dapat meningkatkan fungsi interaksi. Contohnya apabila kita ingin melakukan copy suatu rangkaian teks, maka kita bisa menggunakan fungsi klik mouse sebelah kanan lalu memilih menu copy. Tetapi, apabila kita sudah terbiasa menggunakan komputer untuk melakukan fungsi yang sama, maka kita dapat menggunakan shortcut dengan menekan tombol Ctrl bersamaan dengan tombol C.
3. Memberikan Umpan Balik yang Informatif Dalam setiap operasi, harus ada feedback yang informatif. Contohnya, apabila kita mengarahkan kursor pada icon yang bisa ditekan, maka icon tersebut akan berubah warna. Ini berarti saat kita mengarahkan cursor ke icon tersebut, ia menginformasikan kepada kita bahwa ia bisa ditekan.
4. Merancang Dialog Untuk Mengakhiri Setiap aksi harus memiliki awal, pertengahan, dan akhir. Apabila user mengetahui bahwa ia sudah mengakhiri suatu aksi, maka akan ada perasaan puas dari dalam diri user tersebut.
5. Memberikan Penanganan Kesalahan Sederhana Setiap user, khususnya user baru pertama kali menggunakan,
tidak
terlepas
dari
kemungkinan
untuk
melakukan error. Sebaiknya ada penanganan yang mencegah kesalahan - kesalahan yang sifatnya operasional dapat mempengaruhi system.
6. Memberikan Kemudahan Untuk Kembali ke Keadaan Sebelumnya
13 Fitur ini membuat user menjadi lebih aktif dalam menelusuri fungsi-fungsi yang terdapat dalam system, karena ia mengetahui bahwa akan mudah kembali ke keadaan sebelumnya.
7. Mendukung Pusat Kendali Internal Tampilan antar muka yang dirancang dapat membuat user merasa bahwa mereka yang memegang kendali dan bahwa interface merespon pada aksi - aksi yang mereka kerjakan.
8. Mengurangi Beban Ingatan Jangka Pendek Tampilan yang dirancang dibuat lebih sederhana dan tidak membebankan user untuk mengingat terlalu banyak iconicon atau prosedur - prosedur baru. Contohnya adalah icon untuk melakukan save umumnya berbentuk disket.
2.1.4 Model Waterfall
Waterfall Model biasa disebut classic life cycle, menyediakan sebuah pendekatan sekuensial semantik untuk membangun piranti lunak yang dimulai dengan mencari spesifikasi kebutuhan customer, kemudian melakukan perencanaan, perancangan, pembangunan, dan penggelaran ( Pressman, 2010, p. 39 ).
Gambar 2.1 Waterfall Model ( Sumber: Pressman, 2010, p. 39 )
14 1. Komunikasi ( Communication ) Tahap ini terbagi menjadi dua, yaitu Project Initiation dan Requirement Gathering. Requirement gathering harus dilakukan secara intensif dan difokuskan kepada software.
2. Perancanaan ( Planning ) Setelah tahap komunikasi selesai, maka akan masuk tahap berikutnya, yaitu perencanaan. Perencanaan terbagi menjadi tiga, yaitu Estimating, Scheduling, dan Tracking. Pada tahap ini software engineer melakukan estimasi biaya dan waktu untuk menyelesaikan tahap – tahap pembuatan software.
3. Perancangan ( Modeling ) Setelah tahap perencanaan selesai, selanjutnya software engineer melakukan analysis dan design system. Pada tahap design difokuskan pada empat atribut program yaitu Struktur Data, Arsitektur Software, Penggambaran Interface, dan Algoritma. Pada tahap ini requirements dirubah menjadi software representation sebelum proses pembuatan code dimulai.
4. Pembangunan ( Construction ) Pada tahap ini hasil analisis dan design yang dilakukan pada tahap perancangan akan diubah ke dalam bentuk bahasa yang dimengerti oleh mesin. Setelah penulisan code sudah selesai, maka program akan diuji. Pengujian dilakukan agar segala bentuk kesalahan yang terjadi pada program dapat diperbaiki secara bertahap dan sesuai dengan kebutuhan.
5. Penggelaran ( Deployment ) Setelah pembangunan selesai dilakukan, maka software engineer akan masuk kedalam tahap penyebaran atau deployment. Pada tahap ini software engineer menyediakan dokumentasi untuk semua fitur yang ada dalam program. Pada tahap ini juga, software engineer mendapatkan feedback dari user terhadap software yang
15 dibuat untuk perbaikan yang lebih baik dengan modifikasi dan fiturnya.
2.1.5 Unified Modelling Language ( UML )
UML menurut Whitten & Bentley ( 2007, p. 371 ) merupakan sekumpulan pemodelan konvensi yang digunakan untuk menspesifikasi atau mendeskripsikan object dari system perangkat lunak. UML tidak menetapkan suatu metode untuk mengembangkan system karena UML hanya berupa notasi yang diterima secara umum sebagai standarisasi untuk memodelkan object.
2.1.5.1 Analisis
Menurut Ramnath dan Dathan ( 2011, p. 134 ), analisis menentukan requirement dari system dan apa yang harus dilakukan oleh system. Proses ini dilakukan oleh tim analis. Tim analis akan membuat model dari system, mengidentifikasikan beberapa komponen system dan relationship diantara mereka.
2.1.5.2 Perancangan
Pressman ( 2010, p. 215 ) berpendapat perancangan adalah membuat gambaran atau model dari sebuah perangkat lunak dengan menyediakan rincian mengenai arsitektur dari software, struktur data, tampilan, dan komponen yang diperlukan untuk implementasikan system. Perancangan berperan penting karena model
ini
dapat
dinilai
terlebih
dahulu
dikembangkan sebelum system dibangun.
kualitasnya
dan
16 2.1.5.3 Use Case Diagram
Menurut Whitten & Bentley ( 2007, p. 246 ), use case diagram merupakan diagram yang menggambarkan interaksi antara system, system eksternal dan user. Diagram ini mendeskripsikan siapa yang akan menggunakan system dan dengan cara apa yang diharapkan oleh user untuk dapat berinteraksi dengan system.
Gambar 2.2 Model diagram Use Case ( Sumber: Whitten & Bentley, 2007, p. 246 )
2.1.5.3.1 Use Case
Use case mendeskripsikan fungsi dari system dari perspektif user dengan menggunakan kata - kata dan terminologi yang mereka pahami ( Whitten & Bentley, 2007, p. 246 ). Use case dilambangkan dengan simbol :
17
Gambar 2.3 Simbol Use-Case
Use case menyatakan hanya satu tujuan dari system dan mendeskripsikan rentetan aktivitas dan interaksi user dalam upaya mencapai tujuan tersebut.
2.1.5.3.2 Actor
Menurut Whitten & Bentley ( 2007, p. 247 ), actor merupakan segala sesuatu yang berinteraksi dengan system
untuk
bertukar
informasi.
Actor
merepresentasikan peran yang harus dipenuhi oleh user untuk berinteraksi dengan system. Faktanya actor tidak harus manusia, actor dapat berupa organisasi, system informasi yang lain, peralatan eksternal seperti sensor panas, atau bahkan waktu.
Gambar 2.4 Simbol Actor
18 2.1.5.3.3 Relationship
Relationship menurut Whitten & Bentley ( 2007, p. 248 ), digambarkan sebagai garis yang menghubungkan antara dua simbol pada diagram use case.
1. Association Asosiasi merupakan relationship antara actor dan use case dimana interaksi terjadi diantara mereka berdua. Asosiasi dengan tanda panah mengindikasikan use case diimitasi oleh actor pada ujung garis yang lain.
Sedangkan
asosiasi
tanpa
tanda
panah
mengindikasikan interaksi antara use case dan eksternal server atau actor penerima ( Whitten & Bentley, 2007, p. 248 ).
Gambar 2.5 Contoh Association Relationship ( Sumber: Whitten & Bentley, 2007, p. 248 )
2. Extends Menurut Whitten & Bentley ( 2007:248 ), use case yang terdiri dari langkah - langkah yang diambil dari use case lain yang lebih kompleks dengan tujuan untuk menyederhanakan
use
case
yang
asli
sehingga
memperluas fungsionalitasnya. Extend pada use case diberi label extends.
19
Gambar 2.6 Contoh Extends Relationship ( Sumber: Whitten & Bentley, 2007:249 )
Relationship extend direpresentasikan dengan garis tanda panah dimulai dari ekstensi use case, mengarah ke use case yang di extend.
3. Uses ( Include ) Abstract use case atau include menurut Whitten & Bentley ( 2007, p. 249 ) merupakan use case yang mengurangi redundansi diantara 2 atau lebih use case lain dengan mengkombinasikan langkah - langkah umum yang ditemukan dalam case.
Gambar 2.7 Contoh Uses Relationship (Sumber: Whitten & Bentley, 2007, p. 249)
20 Uses
relationship
disimbolkan
dengan
garis
bertanda panah dimulai dari original use case, menunjuk ke use case yang digunakan. Dan diberi label “<<uses>>”.
4. Depends On Merupakan
relasi
antar
use
case
yang
mengindikasikan bahwa satu use case tidak dapat dieksekusi sebelum use case lainnya dijalankan. Dapat dicontohkan dalam bisnis bank, penarikan tidak dapat dilakukan sebelum deposit, dan use case tidak akan dieksekusi sebelum pembuatan akun bank. Relasi depend on diberi label “<<depends on>>” ( Whitten & Bentley, 2007, p. 249 ).
Gambar 2.8 Contoh Depends on Relationship ( Sumber: Whitten & Bentley, 2007, p. 250 )
21 5. Inheritance Menurut Whitten & Bentley ( 2007, p. 250 ), inheritance dalam use case menunjukkan hubungan antara actor yang bertujuan untuk menyederhanakan penggambaran ketika abstract actor mewarisi peran dari beberapa actor asli lain.
Gambar 2.9 Contoh Inheritance Relationship ( Sumber: Whitten & Bentley, 2007, p. 250 )
2.1.5.4 Use Case Narrative
Whitten & Bentley ( 2007, p. 246 ) mendeskripsikan use case narrative sebagai deskripsi secara tertulis dari event bisnis dan bagaimana user akan berinteraksi dengan system untuk mencapai tujuan.
22 Tabel 2.1 Elemen Use Case Narrative
Elemen
Keterangan Nama use case harus merepresentasikan tujuan
Use case name
yang hendak dicapai use case. Nama harus diawali dengan kata kerja. Mengkomunikasikan tingkat kepentingan use case
Priority
(low, medium, high). Stakeholder yang mendapatkan keuntungan
Primary business actor
langsung dari eksekusi use case dengan menerima sesuatu yang bisa diukur maupun dinilai. Deskripsi singkat yang berisi beberapa kalimat yang
Description
Precondition
Trigger
Typical Course of Events
menguraikan tujuan dan aktivitas dari use case. Use case lain harus dijalankan terlebih dahulu sebelum use case ini dieksekusi. Event yang memulai eksekusi sebuah use case. Biasanya berupa physical action atau waktu. Rentetan aktivitas yang dilakukan oleh actor dan system dengan maksud untuk memenuhi sasaran dari use case. Menspesifikasikan kapan use case selesai secara
Conclusion
berhasil, dengan kata lain disaat aktor utama menerima sesuatu yang bernilai tinggi. Use case sudah selesai dilaksanakan, dan data telah
Postconditions
terkam di dalam Database, atau tanda terima sudah dikirimkan ke costumer
23 2.1.5.5 Class Diagram
Class diagram merupakan penggambaran struktur objek yang menunjukkan class objek yang ada pada suatu system dan berhubungan dengan class objek lainnya ( Whitten & Bentley, 2007, p. 400 ). Class diagram menggambarkan object, attribute, operation serta hubungan dan asosiasi dengan objek atau class lain. Berikut merupakan penjelasan mengenai object, attribute, dan operation. 1.
Object : sesuatu yang dapat dilihat, diraba, disentuh.
2.
Attribute : data yang merepresentasikan karakteristik ketertarikan object.
3.
Operation / Behavior : kumpulan atribut dan operation. Whitten dan Bentley ( 2007, p. 650 ) menuliskan bahwa
terdapat visibility yang mengatur bagaimana method dapat di akses oleh class lain.
Tabel 2.2 Tabel Penjelasan Visibility
Visibility
Notasi
Penjelasan Attribute dan method hanya dapat digunakan atau diakses oleh method di
Private
–
dalam class apabila method tersebut sudah mendefinisikan Attribute dan method yang ingin digunakan atau diakses. Attribute dan method dapat digunakan atau
Protected
#
diakses oleh method yang ada didalam class yang sama atau yang ada didalam subclass dari class tersebut.
Public
+
Attribute dan method dapat digunakan atau diakses oleh method dari class lain.
24 Konsep penting lainnya dari pemodelan object adalah konsep pengelompokan kategori object menjadi object class. Menurut Whitten & Bentley ( 2007, p. 392 ) object class merupakan sekumpulan instance object yang berbagi Attribute dan perilaku yang sama. Didalam class diagram terdapat association and multiplicity, generalization / specialization, dan aggregation / composition.
1.
Association and Multiplicity Association merupakan hubungan yang menyatakan apa yang perlu diketahui suatu object terhadap object lainnya. Multiplicity merupakan jumlah minimum dan maksimum kejadian suatu object / class dari kejadian tunggal untuk class object terkait.
Gambar 2.10 Notasi Objek Class Association ( Sumber : Whitten & Bentley, 2007, p. 395 )
25
Gambar 2.11 Notasi Objek Class Multiplicity ( Sumber : Whitten & Bentley, 2007, p. 377 )
2.
Generalization / Specialization Generalization / specialization merupakan teknik dimana Attribute dan perilaku umum untuk beberapa jenis class object di kelompokkan menjadi supertype dan subtype. 1. Supertype (abstract/parent class) merupakan sebuah entitas yang berisi Attribute dan perilaku yang dapat diwariskan oleh satu atau lebih class subtype.
26 2. Subtype merupakan class object yang mewarisi atribut dan perilaku dari supertype.
Gambar 2.12 Contoh Hubungan Generalization / Specialization ( Sumber : Whitten & Bentley, 2007, p. 376 )
3.
Aggregation / Composition Aggregation merupakan hubungan dimana sebuah objek memiliki/terdiri atas satu atau lebih objek yang lebih kecil.
27
Gambar 2.13 Contoh Hubungan Aggregation ( Sumber : Whitten & Bentley, 2007, p. 379 )
Composition merupakan sebuah hubungan agregasi dimana sebuah objek bertanggung jawab atas pembuatan dan penghancuran objek yang lebih kecil.
28
Gambar 2.14 Contoh Hubungan Composition ( Sumber : Whitten & Bentley, 2007, p. 379 )
Berikut merupakan langkah-langkah yang digunakan untuk membuat class diagram ( Whitten & Bentley, 2007, p. 400 ) :
1. Mencari object yang potensial menjadi class. Langkah ini dapat diselesaikan dengan meninjau setiap use case description dan mencari kata benda yang menunjukan suatu event atau entitas.
2. Memilih object yang diusulkan. Tidak semua kata benda merepresentasikan object yang dibutuhkan. Beberapa kata benda harus dihilangkan bila memenuhi kondisi berikut :
29 a. Apakah kata benda tersebut merupakan object yang sama dengan nama berbeda ? b. Apakah kata benda tersebut di luar ruang lingkup dari system? c. Apakah kata benda tersebut merupakan sebuah actor ? d. Apakah kata benda tersebut tidak jelas dan membutuhkan penjelasan lebih lanjut ? e. Apakah kata benda tersebut merupakan sebuah aksi atau atribut yang menjelaskan object lain ?
3. Mengidentifikasi
hubungan
antar
class
dan
menentukan multiplicity. Pada tahap ini, ditentukan hubungan antara class. Hubungan antar class ini menunjukkan bahwa kedua class tersebut saling mengenal satu sama lain. Setelah hubungan tersebut ditentukan, maka langkah selanjutnya adalah menentukan multiplicity dari hubungan tersebut.
4. Mengidentifikasi
hubungan
Generalization
/
Specialization antar class. Setelah hubungan dan multiplicity telah ditentukan, selanjutnya adalah menetapkan hubungan generalization / specialization. Mengingat bahwa generalization / specialization biasa disebut dengan classification hierarchies terdiri dari supertype classes ( abstract atau parent ) dan subtype ( concrete atau child ). Supertype class umumnya mengandung attribute dan behaviors of the hierarchy. Subtype class adalah spesialisasi yang berisi attribute dan perilaku unik pada object, tetapi object tersebut merupakan inherit dari class Supertype.
30 5. Mengidentifikasi hubungan Aggregation/Composition. Pada tahap ini, dilakukan identifikasi apakah terdapat
hubungan
aggregation
atau
composition
didalam class diagram.
6. Membuat class diagram. Setelah menentukan seluruh aspek yang dibutuhkan untuk membuat class diagram tersebut siap dibuat dengan menggunakan objek, hubungan, dan multiplicity yang telah dibuat sebelumnya.
2.1.5.6 Activity Diagram
Activity diagram menurut Whitten & Bentley (2007, p. 390), merupakan diagram yang digunakan untuk menggambarkan aliran proses bisnis, langkah-langkah menggunakan use case atau logika behavior dari object. Setidaknya untuk satu use case bisa menghasilkan satu activity diagram, tetapi jika use case tersebut panjang akan bisa menghasilkan lebih dari satu activity diagram.
31 Tabel 2.3 Tabel Elemen Activity Diagram
Nama
Simbol
Deskripsi
Initial
Lingkaran hitam yang
Mode
merepresentasikan proses awal. Persegi panjang bulat yang
Actions
merepresentasi langkah individual dari aktivitas.
Flow
Panah yang menunjukan jalur dari satu aktivitas ke aktivitas lainnya. Simbol wajik yang mengindikasikan keadaan kondisional. Decision mengindikasikan adanya satu aktivitas yang datang dan dua atau lebih
Decision and Merge
aktifitas yang keluar. Merge mengindikasikan adanya penggabungan aktivitas yang telah dipisahkan oleh decision sebelumnya. Proses dilanjutkan dengan satu aktifitas yang datang kedalam merge. Simbol bar hitam yang menunjukan bahwa akan terjadinya proses dua arah. Fork menggambarkan bahwa
Fork dan Join
adanya satu aktifitas yang datang dan dua atau lebih aktivitas yang akan berjalan. Join menggambarkan dua atau lebih aktifitas yang datang dan hanya satu aktifitas yang keluar. Simbol lingkaran hitam penuh di
Activity Final
dalam
lingkaran
berongga
menggamberkan penunjuk akhir dari proses.
32 Tabel 2.3 Tabel Elemen Activity Diagram ( lanjutan )
Nama
Simbol
Deskripsi Hasil pengelompokkan aktivitas berdasarkan actor dari use case yang
Swimlane
telah dibuat. Swimlane hanya digunakan jika activity diagram memerlukan kejelasan siapa pelaku dari suatu aktivitas.
Gambar 2.15 Contoh Activity Diagram ( Sumber : Whitten & Bentley, 2007, p. 392 )
33 2.1.5.7 Sequence Diagram
Menurut Whitten & Bentley ( 2007, p. 394 ), sequence diagram merupakan diagram yang menggambarkan interaksi antara actor dan system untuk use case scenario. Sequence menjelaskan bagaimana object berinteraksi dengan yang lainnya melalui pesan pada waktu eksekusi use case.
Tabel 2.4 Tabel Elemen Sequence Diagram
Nama
Simbol
Deskripsi Interaksi actor dengan user
Actor
interface ditunjukkan dengan use case simbol actor. Suatu notasi yang berfungsi
Interface Class
<
>
untuk memastikan user interface class code, untuk memastikan jenis class. Setiap use case memiliki
Controller Class
<>
satu atau lebih controller, digambarkan sama seperti notasi interface class. Menambahkan kotak pada
Entity Classes
setiap entitas yang :
diperlukan untuk kolaborasi dalam urutan langkahlangkah. Berfungsi untuk
Messages
menyampaikan pesan yang dikirim ke class.
34 Tabel 2.4 Tabel Elemen Sequence Diagram ( lanjutan )
Nama
Simbol
Deskripsi Menandakan area pada
Frame
diagram yang melakukan seleksi, pengulangan, dan suatu pilihan khusus. Berfungsi untuk
Activation
menunjukkan berapa
Bars
lamanya waktu object tersebut ada ( exists ).
Return Message
Self-call
Pengembalian pesan atau hasil dari setiap method atau behavior.
Object yang memanggil method-nya sendiri.
35
Gambar 2.16 Contoh Sequence Diagram ( Sumber : Whitten & Bentley, 2007, p. 395 )
2.1.6 Testing
2.1.6.1. White-Box Testing
Menurut Pressman ( 2010, p. 485 ), white-box testing atau glass-box testing merupakan test-case menggunakan struktur kontrol yang dideskripsikan sebagai bagian dari perancangan level komponen. Dengan menggunakan metode ini, dapat dihasilkan test-case yang :
36 - Menjamin bahwa semua jalur di dalam modul telah dijalankan setidaknya sekali. - Menjalankan semua keputusan logika yang bersifat true dan false. - Mengeksekusi semua loop pada lingkup dan di dalam wilayah operasional mereka sendiri. - Menjalankan
struktur data
internal
untuk memastikan
validitasnya.
2.1.6.2. Black-Box Testing
Menurut Pressman ( 2010, p. 495 ), black-box testing atau yang disebut juga behavioral testing berfokus pada requirement yang bersifat fungsionalitas pada software. Black-box biasanya dilakukan setelah white-box, karena black-box berkaitan dengan struktur kontrol, perhatian lebih terfokus pada wilayah informasi. Testing ini bertujuan untuk mencari error dengan kategori : - Fungsi yang salah - Error pada interface - Error pada struktur data maupun akses ke database eksternal - Error pada behavior maupun jalannya aplikasi - Error pada inisialisasi dan termination.
37 2.2 Teori yang berkaitan dengan tema penelitian
2.2.1 Perbankan
Menurut Zainal Arifin ( 2009, p. 2 ) kata bank dapat kira telusuri dari kara banque dalam bahasa Prancis, dan dari banco dalam bahasa Italia, yang dapat berarti peti / lemari atau bangku. Konotasi kedua kata ini menjelaskan dua fungsi dasar yang ditunjukkan oleh bank komersial. Jadi kesimpulannya, fungsi dasar bank adalah menyediakan tempat untuk menitipkan uang dengan aman ( safe keeping functions ) dan menyediakan alat pembayaran untuk membeli barang dan jasa ( transaction function ). Dalam perbankan konvensional terdapat kegiatan - kegiatan yang dilarang syariah Islam, seperti menerima dan membayar bunga ( riba ), membiayai kegiatan produksi dan perdagangan barang – barang yang dilarang syariah, minuman keras misalnya ( Zainal Arifin, 2009, p. 3 ). Menurut Zainal Arifin ( 2009, p. 3 ), bank Syariah didirikan dengan tujuan untuk mempromosikan dan mengembangkan penerapan prinsip -prinsip Islam, syariah dan tradisinya ke dalam transaksi keuangan dan perbankan serta bisnis lain yang terkait, Prinsip utama yang diikuti oleh bank islami itu adalah :
1. Larangan riba dalam berbagai bentuk transaksi. 2. Melakukan kegiatan usaha dan perdagangan berdasarkan perolehan keuntungan yang sah. 3. Memberikan zakat.
2.2.2 Key Performance Indicator
Menurut Parmenter ( 2007, p. 3 ), KPI menyatakan sekumpulan pengukuran yang berfokus pada aspek performa organisasi yang bersifat penting untuk kesuksesan organisasi sekarang dan masa depan. Karakteristik KPI : -
Nonfinancial measures, tidak dituliskan dalam dolar, yen atau lainnya.
-
Measured frequently, pengukuran dilakukan setiap hari.
38 -
Ditindaklanjuti oleh CEO dan senior management team.
-
Pemahaman terhadap pengukuran dan corrective action yang diperlukan oleh semua staff.
-
Tanggung jawab kepada individu dan tim.
-
Significant impact, misalnya berpengaruh terhadap faktor kesuksesan.
-
Positive impact, mempengaruhi semua performance measurement dengan cara yang positif.
2.2.3 Internet dan Intranet
Internet adalah koleksi global dari jaringan menggunakan protokol yang sama ( Satzinger, 2009, p. 336 ). Intranet adalah jaringan pribadi yang menggunakan protokol internet tetapi hanya dapat diakses oleh satu set terbatas user internal ( Satzinger, 2009, p. 336 ).
2.2.4 Aplikasi web
2.2.4.1 HTML ( HyperText Mark-up Language )
Menurut Newsome, HTML (HyperText Mark-up Language) adalah bahasa pemrograman yang digunakan untuk mengubah tampilan suatu halaman web.
2.2.4.2 PHP ( Programming Hypertext Processor )
PHP adalah bahasa pemrograman scripting berbasis server side yang dirancang spesifik untuk pengembangan pembuatan web. Dengan halaman HTML, code PHP dapat tertanam dan tereksekusi setiap kali halaman dikunjungi. PHP merupakan sebuah proyek open source dimana dapat dengan mudah mengakses source code dan menggunakan, mengubah dan mendistribusikannya tanpa pungutan biaya. ( Welling, 2009, p. 2 ).
39 Sampai pada saat penulisan skripsi ini, bahasa pemrograman PHP telah diluncurkan secara resmi telah sampai pada versi 5 . Menurut Welling ( 2009, p. 6 ) Pada PHP versi 5 ini memiliki keunggulan sebagai berikut:
1. Object Oriented Pengembangan
berorientasi
object
mencoba
untuk
menggunakan klasifikasi, hubungan, dan sifat dari object dalam system untuk membantu dalam pengembangan program dan useran
kembali
kode.
Paradigma
pemrograman
yang
berorientasi pada objek, yang menyatukanya dalam sebuah class yang terdiri dari data fields dan method, untuk membangun sebuah aplikasi.
2. Error and Exception Handling Dasar dari fitur ini adalah melemparkan exception pada blok try jika terjadi suatu error. Pada bahasa pemrograman java, exception dilempar secara otomatis, sedangkan pada PHP exceptions dilempar secara manual.
3. Simple Extensible Markup Languange ( XML ) XML adalah format text tag-based untuk dokumen. XML di rancang untuk mangantar dan menyimpan data dengan fokus pada apa yang terdapat pada data, bukan untuk menampilkan data.
2.2.4.3 CSS ( Cascading Style Sheets )
Cascading Style Sheet ( CSS ) adalah suatu bahasa untuk menggambarkan sifat presentasi dari elemen konten dalam dokumen terstruktur seperti dokumen HTML. kita juga dapat menggunakan css untuk dicuments terstruktur lainnya seperti yang dibuat dengan xml ( Casciano C., 2010, p. 2 ).
40 2.2.4.4 Javascript
JavaScript adalah sebuah bahasa pemrograman ( full programming language ) yang mampu melakukan perhitungan kompleks dan interaksi, termasuk closures, fungsi anonim ( lambda ), dan bahkan metaprogramming ( Nicholas C. Zakas, 2012, p. 1 ). JavaScript pertama kali muncul pada tahun 1995, Netscape Navigator memperkenalkan JavaScript dengan tujuan utamanya adalah untuk menangani beberapa validasi input yang sebelumnya telah ditinggalkan pada server - side languages seperti Perl. JavaScript terdiri dari 3 bagian yang berbeda, yaitu: 1.
The Core (ECMAScript) ECMAScript, yang didefinisikan dalam ECMA-262 dan menyediakan fungsionalitas inti.
2.
The Document Object Model ( DOM ) The
Document
Object
Model
(
DOM
),
yang
menyediakan metode dan interface untuk bekerja dengan isi dari halaman web. 3.
The Browser Object Model ( BOM ) Browser Object Model ( BOM ), yang menyediakan metode dan interface untuk berinteraksi dengan browser.
Pada tabel 2.5 menunjukkan kemajuan versi dari JavaScript dalam Netscape / Mozilla browser.
41 Tabel 2.5 Kemajuan Versi JavaScript
Browser
JavaScript Version
Netscape Navigator 2
1.0
Netscape Navigator 3
1.1
Netscape Navigator 4
1.2
Netscape Navigator 4.06
1.3
Netscape 6+ (Mozilla 0.6.0+)
1.5
Firefox 1
1.5
Firefox 1.5
1.6
Firefox 2
1.7
Firefox 3
1.8
Firefox 3.1
1.9
Firefox 4
2.0
2.2.5 Framework Code Igniter
2.2.5.1 Framework
Framework merupakan sebuah mini-architecture yang dapat digunakan ulang dan berfungsi sebagai sebuah pondasi dari design pattern. Sebuah framework bukan merupakan sebuah pattern arsitektural tetapi merupakan sekumpulan class yang saling berhubungan ( Pressman, 2010, p. 352 ).
2.2.5.2 Model, View, Controller ( MVC )
MVC merupakan model arsitektur yang mendekomposisikan user interface dari fungsionalitas webapp dan content. Dengan interface, application, dan navigasi yang terpisah, akan dapat menyederhanakan implementasi dan meningkatkan useran ulang.
42 MVC terbagi memiliki tiga bagian, yaitu model, view dan controller. Dalam webapp, view diperbaharui oleh controller dengan data yang berasal dari model berdasarkan input dari user ( Pressman, 2010, p. 386-387 ).
Gambar 2.17 Arsitektur MVC ( Sumber: Pressman, 2010, p. 387 )
2.2.5.2.1 Model
Model atau model object, terdiri dari semua content aplikasi yang spesifik dan logika pemrosesan, termasuk semua content object, akses ke sumber informasi eksternal, dan semua fungsionalitas ( Pressman, 2010, p. 387 ).
43 2.2.5.2.2 View
Berisi semua fungsi interface dan memungkinkan dalam presentasi content dan logika pemrosesan, termasuk semua content object, akses ke sumber informasi eksternal dan semua fungsionalitas pemrosesan yang dibutuhkan oleh user ( Pressman, 2010, p. 387 ).
2.2.5.2.3 Controller
Menurut Pressman ( 2010, p. 387 ), controller berperan sebagai pengatur akses ke model dan view, mengkoordinasikan aliran data di antara mereka. Controller menangani request data dari user dan memilih tampilan object yang cocok berdasarkan permintaan dari user. Setelah tipe request telah ditentukan, maka dia akan dikirim
ke
model,
yang
mengimplementasikan
fungsionalitas atau mengambil data yang diperlukan untuk memenuhi permintaan dari user. Model dapat mengakses data yang tersimpan di basis data, baik sebagai penyimpanan data lokal ataupun dalam bentuk files. Data yang dikembangkan oleh model harus disusun dan
diorganisasikan
oleh
view
dan
kemudian
ditransmisikan dari aplikasi server kembali ke browser berbasis client untuk ditampilkan pada mesin client.
2.2.5.3 Code Igniter
Code Igniter merupakan sebuah lightweight framework yang membantu pengembang PHP untuk mengurangi jumlah kode yang harus ditulis. Script tulisan pun akan lebih mudah untuk dibaca ataupun diperbaharui. Selain itu juga membantu mendisiplinkan
44 cara pengembang untuk melakukan pembuatan code juga memberikan website lebih terstruktur. Dikatakan lightweight karena tidak semua fitur terdapat pada CodeIgniter seperti contoh scaffolding ataupun generators sebuah kode yang dapat secara otomatis menuliskan script dasar. Hal tersebut karena CodeIgniter lebih berkonsentrasi untuk membuat hal dasar menjadi lebih mudah seperti pengelolaan session ataupun cookies, akses database dan query, mengerjakan hal yang berkaitan dengan html seperti page, form dan validasi pada isi form, pengetesan, komunikasi pada internet ( Upton, 2007, p. 16 ). Pola design pada CodeIgniter menggunakan MVC dimana terdapat tiga bagian model, view, dan controller. Model merupakan object, yang merepresentasikan data yang diperlukan atau ditampilkan. Model berhubungan erat dengan database dan melakukan akses jika diperlukan. View merupakan tampilan yang akan dihadapkan langsung dengan user dengan informasi berdasarkan kondisi model yang ada. Controller merupakan suatu pengendali pada design MVC dimana dapat mengubah kondisi model dan memberikan data yang dinamis kepada view, mereka pun juga dapat mengubah view yang akan ditampilkan berdasarkan kondisi model ( Upton, 2007, p. 28 ).
2.2.6 Responsive web design
Menurut Ethan Marcotte ( 2011, p. 9 ) Responsive Web Design adalah konsolidasi dari ketiga teknik yang sudah ada yaitu flexible grid layout, flexible images, and media queries yang menjadi salah satu pendekatan terpadu.
45 2.2.7 Database
Data merupakan komponen yang paling penting dalam Database Management System ( DBMS ), yang berasal dari sudut pandang end user. Data berperan sebagai penghubung antara mesin dengan user ( Connolly & Begg, 2015, p. 68 ). Database adalah kumpulan data logikal yang saling berhubungan, dan merupakan deskripsi dari data yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi ( Connolly & Beg, 2015, p. 63 ).
2.2.7.1 Database Management System ( DDL, DML )
Menurut Connoly dan Begg ( 2015, p. 64 ), Database Management System ( DBMS ) adalah system perangkat lunak yang membantu user untuk mendefinisikan, menciptakan, memelihara, dan mengontrol akses ke database. DBMS berinteraksi dengan program aplikasi pemakai database. Database Management System ( DBMS ) memiliki beberapa fasilitas, yaitu : - memungkinkan user untuk menentukan database, biasanya melalui
Data
Definition
Language
(
DDL
).
DDL
memungkinkan user untuk menentukan tipe data dan struktur dan kendala pada data yang akan disimpan dalam database. - memungkinkan user untuk memasukkan, update, menghapus, dan mengambil data dari database yang biasanya melalui Data Manipulation Language (DML). Memiliki repository pusat untuk semua data dan deskripsi data yang memungkinkan DML untuk memberikan fasilitas penyelidikan umum untuk data ini, yang disebut query language.
46 2.2.7.2 ERD ( Entity Relationship Diagram )
Menurut Whitten & Bentley (2007, p. 271), ERD merupakan model
data
yang
menggambarkan
menggunakan
data
yang
beberapa
melambangkan
notasi entitas
untuk dan
hubungannya yang dideskripsikan oleh data tersebut. Ada beberapa macam notasi ERD yang diberi nama sesuai dengan penemunya, seperti Chen, Bachman, Merise, atau standar penerbit, seperti IDEF1X. Tetapi yang dipakai adalah notasi Martin karena sudah dikenal dan mendukung CASE tool.
2.2.7.2.1 Entitas
Entitas merupakan class dari manusia, tempat, object, kejadian, atau konsep mengenai apa yang perlu kita dapatkan dan menyimpan data ( Whitten & Bentley, 2007, p. 271 ).
47 Kategori dari entitas meliputi :
Tabel 2.6 Kategori Entitas ERD
Entitas Persons
Places
Keterangan Dalam kehidupan nyata dapat dicontohkan agensi, kontraktor, client, divisi, karyawan, mahasiswa, dan lainnya. Object yang dapat diambil sebagai contoh seperti bangunan, kamar, universitas, dan lainnya Contohnya buku, mesin, produk, kendaraan dan lainnya. Entitas object dapat merepresentasikan object yang aktual
Objects
(seperti lisensi perangkat lunak tertentu) atau spesifikasi untuk tipe dari object (seperti spesifikasi untuk paket perangkat lunak yang berbeda).
Events Concepts
Contohnya pembatalan, penghargaan, penerbangan, invoice, pemesanan, registrasi, dan lainnya. Contohnya akun, kualifikasi, stok, dan lainnya.
Entitas digambarkan dengan :
Gambar 2.18 Contoh Entity ( Sumber: Whitten & Bentley, 2007, p. 271 )
48 2.2.7.2.2 Attributes
Atribut menurut Whitten & Bentley (2007, p. 272), adalah deskripsi properti atau karakteristik dari entitas. Atribut bisa disebut element, property, dan field. Contohnya entitas STUDENT yang memiliki atribut : Name, Address, Phone Number, Date of Birth, Gender, Race dan lainnya. Ada juga atribut yang terdiri dari atribut lainnya yang disebut compound attribute. Compound attribute dapat juga disebut concatenated attribute, composite attribute dan data structure. Misalnya pada atribut Name pada entitas Student dapat memiliki atribut seperti Last Name, First Name, dan Middle Initial.
Gambar 2.19 Contoh Attribute dan Compound Attribute ( Sumber: Whitten & Bentley, 2007, p. 272 )
49 2.2.7.2.3. Relationships
Whitten & Bentley (2007, p. 275), mendeskripsikan relationship sebagai asosiasi bisnis yang bersifat alami antara satu atau lebih entitas. Contohnya :
Gambar 2.20 Contoh Relationship (Many to Many) (Sumber: Whitten & Bentley, 2007, p. 275 )
Pada gambar di atas dapat dijelaskan bahwa entitas Student memiliki relasi dengan entitas Curriculum dimana: - Student
yang
ada
mengikuti
satu
atau
lebih
Curriculum. - Curriculum dipelajari oleh tidak ada, satu, atau lebih Student.
Cardinality
merupakan
jumlah
kejadian
baik
maksimum maupun minimum dari satu entitas yang mungkin memiliki relasi terhadap suatu kejadian dari entitas lain. Berikut adalah notasi cardinality :
50
Gambar 2.21 Notasi Cardinality (Sumber: Whitten & Bentley, 2007, p. 276 )
2.2.8 MySQL
Menurut Welling dan Thomson ( 2009, p. 3 ), MySQL adalah Relational Database Management System ( RDBMS ) yang sangat cepat, dan handal. MySQL memungkinkan user untuk menyimpan, mencari, mengurutkan, dan menerima data secara efisien. MySQL juga dilengkapi dengan pengaturan akses, sehingga mengatur otoritas user.
51 Kepopulerannya disebabkan MySQL menggunakan SQL ( Structur Query Language ) sebagai bahasa dasar untuk mengakses database tersebut. Selain itu, MySQL bersifat open source dan bisa digunakan pada berbagai platform ( kecuali untuk jenis enterprise, yang bersifat komersial ).
2.2.9 JQuery UI
JQuery UI merupakan sebuah kumpulan plug-ins untuk jQuery yang menambahkan fungsionalitas ke library utama jQuery ( Sarrion, 2012, p. 1 ). jQuery merupakan library Javascript yang dapat ditambah lagi fungsionalitas dari library tersebut dengan menggunakan plug-ins. Beberapa plug-ins secara khusus ditujukan untuk mengatur tampilan interface dan memfasilitasi interaksi dengan user, yang dikumpul secara bersamaan didalam jQuery UI library. Berikut adalah beberapa contoh dari fungsionalitas jQuery UI versi 1.8: -
Tab management
-
Accordion menu
-
Dialog box
-
Button
-
Progress bar
-
Slider
-
Date picker
-
Autocompleter
-
Drag-and-drop management
- Selection, resizing, dan switching element Visual effect
52 2.3 Hasil Penelitian atau Produk Sebelumnya
2.3.1 Hasil penelitian terdahulu
Hustinawati, Himawan, dan Latifah (2014), mengatakan bahwa CakePHP menyediakan fitur lebih dari CodeIgniter. Namun, setelah analisis komparatif dari kedua kerangka dalam pembuatan website, CodeIgniter lebih ringan dan lebih mudah untuk dipelajari, dimodifikasi, dan diintegrasikan di dalam library dan helper. Namun, itu semua datang kembali ke user Framework PHP apa jenis yang cocok untuk digunakan dalam pengembangan masing-masing berdasarkan hasil analisis (). Rosmala, Ichwan, dan Gandalisha (2011), mengatakan bahwa perbedaan dan keunggulan antara Codeigniter dan Cakephp dapat di simpulkan bahwa untuk membuat web perwalian di Jurusan Informatika Institut
Teknologi Nasional
framework
yang baik
menggunakan
codeigniter dan untuk pengembangan lebih lanjut menggunakan framework cakephp dikarenakan arsitektur di cakephp mencerminkan MVC murni. Meiliana, Bryan, Joshua, dan Raymond (2014), mengatakan bahwa hasil proses pembuatan system manajemen key performance indicator Smart KPI ini, maka dapat diambil beberapa kesimpulan sebagai berikut, yaitu Analisis masalah pengisian dan laporan KPI telah berhasil dicapai dengan ditemukannya masalah-masalah seperti karyawan tidak dapat mengisi secara otomatis score KPI, reminder kepada karyawan mengenai status pengisian KPI, data KPI yang terintegrasi antara atasan dan bawahan, dan pembuatan laporan bulanan yang masih manual sehingga dibutuhkan system yang dapat mengatasi masalah tersebut; berdasarkan model masalah dan kebutuhan system, system telah berhasil dibuat dengan fitur utama mengelola KPI dan memberikan laporan KPI pengumpulan KPI dengan cara mengirim file Excel berisikan nilai KPI karyawan melalui e-mail, saat ini sudah dapat digantikan dengan menggunakan “Smart KPI”.